Răsfoiți Sursa

部分新需求

cz 1 an în urmă
părinte
comite
7fddfed913

+ 111 - 94
src/layout/components/TagsView/index.vue

@@ -1,53 +1,66 @@
 <template>
   <div id="tags-view-container" class="tags-view-container">
-    <scroll-pane ref="scrollPaneRef" class="tags-view-wrapper" @scroll="handleScroll">
+    <scroll-pane
+      ref="scrollPaneRef"
+      class="tags-view-wrapper"
+      @scroll="handleScroll"
+    >
       <router-link
         v-for="tag in visitedViews"
-        :key="tag.path"
-        :data-path="tag.path"
+        :key="tag.fullPath"
+        :data-path="tag.fullPath"
         :class="isActive(tag) ? 'active' : ''"
         :to="{ path: tag.path, query: tag.query, fullPath: tag.fullPath }"
         class="tags-view-item"
-        
         @click.middle="!isAffix(tag) ? closeSelectedTag(tag) : ''"
         @contextmenu.prevent="openMenu(tag, $event)"
       >
         {{ tag.title }}
         <!-- v-if="!isAffix(tag)" -->
-        <span  style="margin-left:8px" @click.prevent.stop="closeSelectedTag(tag)">
-          <close class="el-icon-close" style="width: 1em; height: 1em;vertical-align: middle;" />
+        <span
+          style="margin-left: 8px"
+          @click.prevent.stop="closeSelectedTag(tag)"
+        >
+          <close
+            class="el-icon-close"
+            style="width: 1em; height: 1em; vertical-align: middle"
+          />
         </span>
       </router-link>
     </scroll-pane>
-    <ul v-show="visible" :style="{ left: left + 'px', top: top + 'px' }" class="contextmenu">
+    <ul
+      v-show="visible"
+      :style="{ left: left + 'px', top: top + 'px' }"
+      class="contextmenu"
+    >
       <li @click="refreshSelectedTag(selectedTag)">
-        <refresh-right style="width: 1em; height: 1em;" /> 刷新页面
+        <refresh-right style="width: 1em; height: 1em" /> 刷新页面
       </li>
       <li v-if="!isAffix(selectedTag)" @click="closeSelectedTag(selectedTag)">
-        <close style="width: 1em; height: 1em;" /> 关闭当前
+        <close style="width: 1em; height: 1em" /> 关闭当前
       </li>
       <li @click="closeOthersTags">
-        <circle-close style="width: 1em; height: 1em;" /> 关闭其他
+        <circle-close style="width: 1em; height: 1em" /> 关闭其他
       </li>
       <li v-if="!isFirstView()" @click="closeLeftTags">
-        <back style="width: 1em; height: 1em;" /> 关闭左侧
+        <back style="width: 1em; height: 1em" /> 关闭左侧
       </li>
       <li v-if="!isLastView()" @click="closeRightTags">
-        <right style="width: 1em; height: 1em;" /> 关闭右侧
+        <right style="width: 1em; height: 1em" /> 关闭右侧
       </li>
       <li @click="closeAllTags(selectedTag)">
-        <circle-close style="width: 1em; height: 1em;" /> 全部关闭
+        <circle-close style="width: 1em; height: 1em" /> 全部关闭
       </li>
     </ul>
   </div>
 </template>
 
 <script setup>
-import ScrollPane from './ScrollPane'
-import { getNormalPath } from '@/utils/ruoyi'
-import useTagsViewStore from '@/store/modules/tagsView'
-import useSettingsStore from '@/store/modules/settings'
-import usePermissionStore from '@/store/modules/permission'
+import ScrollPane from "./ScrollPane";
+import { getNormalPath } from "@/utils/ruoyi";
+import useTagsViewStore from "@/store/modules/tagsView";
+import useSettingsStore from "@/store/modules/settings";
+import usePermissionStore from "@/store/modules/permission";
 
 const visible = ref(false);
 const top = ref(0);
@@ -65,91 +78,95 @@ const routes = computed(() => usePermissionStore().routes);
 const theme = computed(() => useSettingsStore().theme);
 
 watch(route, () => {
-  
-  addTags()
-  moveToCurrentTag()
-})
+  addTags();
+  moveToCurrentTag();
+});
 watch(visible, (value) => {
   if (value) {
-    document.body.addEventListener('click', closeMenu)
+    document.body.addEventListener("click", closeMenu);
   } else {
-    document.body.removeEventListener('click', closeMenu)
+    document.body.removeEventListener("click", closeMenu);
   }
-})
+});
 onMounted(() => {
-  initTags()
-  addTags()
-})
+  initTags();
+  addTags();
+});
 
 function isActive(r) {
-  return r.path === route.path
+  return r.fullPath === route.fullPath;
 }
 function activeStyle(tag) {
   if (!isActive(tag)) return {};
   return {
     "background-color": theme.value,
-    "border-color": 'none'
+    "border-color": "none",
   };
 }
 function isAffix(tag) {
-  return tag.meta && tag.meta.affix
+  return tag.meta && tag.meta.affix;
 }
 function isFirstView() {
   try {
-    return selectedTag.value.fullPath === '/index' || selectedTag.value.fullPath === visitedViews.value[1].fullPath
+    return (
+      selectedTag.value.fullPath === "/index" ||
+      selectedTag.value.fullPath === visitedViews.value[1].fullPath
+    );
   } catch (err) {
-    return false
+    return false;
   }
 }
 function isLastView() {
   try {
-    return selectedTag.value.fullPath === visitedViews.value[visitedViews.value.length - 1].fullPath
+    return (
+      selectedTag.value.fullPath ===
+      visitedViews.value[visitedViews.value.length - 1].fullPath
+    );
   } catch (err) {
-    return false
+    return false;
   }
 }
-function filterAffixTags(routes, basePath = '') {
-  let tags = []
-  routes.forEach(route => {
+function filterAffixTags(routes, basePath = "") {
+  let tags = [];
+  routes.forEach((route) => {
     if (route.meta && route.meta.affix) {
-      const tagPath = getNormalPath(basePath + '/' + route.path)
+      const tagPath = getNormalPath(basePath + "/" + route.path);
       tags.push({
         fullPath: tagPath,
         path: tagPath,
         name: route.name,
-        meta: { ...route.meta }
-      })
+        meta: { ...route.meta },
+      });
     }
     if (route.children) {
-      const tempTags = filterAffixTags(route.children, route.path)
+      const tempTags = filterAffixTags(route.children, route.path);
       if (tempTags.length >= 1) {
-        tags = [...tags, ...tempTags]
+        tags = [...tags, ...tempTags];
       }
     }
-  })
-  return tags
+  });
+  return tags;
 }
 function initTags() {
   const res = filterAffixTags(routes.value);
   affixTags.value = res;
   for (const tag of res) {
     // Must have tag name
-    if (tag.name && tag.name != 'processApproval') {
-      
-       useTagsViewStore().addVisitedView(tag)
+    if (tag.name && tag.name != "processApproval") {
+      useTagsViewStore().addVisitedView(tag);
     }
   }
 }
 function addTags() {
-  const { name } = route
-  console.log(route)
+  const { name } = route;
+  console.log(route);
   if (name) {
-    useTagsViewStore().addView(route)
+    useTagsViewStore().addView(route);
     if (route.meta.link) {
       useTagsViewStore().addIframeView(route);
     }
   }
-  return false
+  return false;
 }
 function moveToCurrentTag() {
   nextTick(() => {
@@ -158,11 +175,11 @@ function moveToCurrentTag() {
         scrollPaneRef.value.moveToTarget(r);
         // when query is different then update
         if (r.fullPath !== route.fullPath) {
-          useTagsViewStore().updateVisitedView(route)
+          useTagsViewStore().updateVisitedView(route);
         }
       }
     }
-  })
+  });
 }
 function refreshSelectedTag(view) {
   proxy.$tab.refreshPage(view);
@@ -171,78 +188,78 @@ function refreshSelectedTag(view) {
   }
 }
 function closeSelectedTag(view) {
-  console.log(view)
+  console.log(view);
   proxy.$tab.closePage(view).then(({ visitedViews }) => {
     if (isActive(view)) {
-      toLastView(visitedViews, view)
+      toLastView(visitedViews, view);
     }
-  })
+  });
 }
 function closeRightTags() {
-  proxy.$tab.closeRightPage(selectedTag.value).then(visitedViews => {
-    if (!visitedViews.find(i => i.fullPath === route.fullPath)) {
-      toLastView(visitedViews)
+  proxy.$tab.closeRightPage(selectedTag.value).then((visitedViews) => {
+    if (!visitedViews.find((i) => i.fullPath === route.fullPath)) {
+      toLastView(visitedViews);
     }
-  })
+  });
 }
 function closeLeftTags() {
-  proxy.$tab.closeLeftPage(selectedTag.value).then(visitedViews => {
-    if (!visitedViews.find(i => i.fullPath === route.fullPath)) {
-      toLastView(visitedViews)
+  proxy.$tab.closeLeftPage(selectedTag.value).then((visitedViews) => {
+    if (!visitedViews.find((i) => i.fullPath === route.fullPath)) {
+      toLastView(visitedViews);
     }
-  })
+  });
 }
 function closeOthersTags() {
-  router.push(selectedTag.value).catch(() => { });
+  router.push(selectedTag.value).catch(() => {});
   proxy.$tab.closeOtherPage(selectedTag.value).then(() => {
-    moveToCurrentTag()
-  })
+    moveToCurrentTag();
+  });
 }
 function closeAllTags(view) {
   proxy.$tab.closeAllPage().then(({ visitedViews }) => {
-    if (affixTags.value.some(tag => tag.path === route.path)) {
-      return
+    if (affixTags.value.some((tag) => tag.path === route.path)) {
+      return;
     }
-    toLastView(visitedViews, view)
-  })
+    toLastView(visitedViews, view);
+  });
 }
 function toLastView(visitedViews, view) {
-  const latestView = visitedViews.slice(-1)[0]
+  const latestView = visitedViews.slice(-1)[0];
   if (latestView) {
-    router.push(latestView.fullPath)
+    router.push(latestView.fullPath);
   } else {
     // now the default is to redirect to the home page if there is no tags-view,
     // you can adjust it according to your needs.
-    if (view.name === 'Dashboard') {
+    if (view.name === "Dashboard") {
       // to reload home page
-      router.replace({ path: '/redirect' + view.fullPath })
+      router.replace({ path: "/redirect" + view.fullPath });
     } else {
-      router.push('/')
+      router.push("/");
     }
   }
 }
 function openMenu(tag, e) {
-  const menuMinWidth = 105
-  const offsetLeft = proxy.$el.getBoundingClientRect().left // container margin left
-  const offsetWidth = proxy.$el.offsetWidth // container width
-  const maxLeft = offsetWidth - menuMinWidth // left boundary
-  const l = e.clientX - offsetLeft + 15 // 15: margin right
+  const menuMinWidth = 105;
+  const offsetLeft = proxy.$el.getBoundingClientRect().left; // container margin left
+  const offsetWidth = proxy.$el.offsetWidth; // container width
+  const maxLeft = offsetWidth - menuMinWidth; // left boundary
+  const l = e.clientX - offsetLeft + 15; // 15: margin right
 
   if (l > maxLeft) {
-    left.value = maxLeft
+    left.value = maxLeft;
   } else {
-    left.value = l
+    left.value = l;
   }
 
-  top.value = e.clientY
-  visible.value = true
-  selectedTag.value = tag
+  top.value = e.clientY;
+  visible.value = true;
+  selectedTag.value = tag;
 }
 function closeMenu() {
-  visible.value = false
+  visible.value = false;
 }
 function handleScroll() {
-  closeMenu()
+  closeMenu();
 }
 </script>
 
@@ -251,7 +268,7 @@ function handleScroll() {
   height: 50px;
   width: 100%;
   background: #fff;
-  
+
   .tags-view-wrapper {
     .tags-view-item {
       display: inline-block;
@@ -259,12 +276,12 @@ function handleScroll() {
       cursor: pointer;
       height: 50px;
       line-height: 50px;
-      
+
       color: #999999;
       background: #fff;
       padding: 0 20px;
       font-size: 12px;
-      margin:0;
+      margin: 0;
       &:first-of-type {
         // margin-left: 15px;
       }
@@ -272,8 +289,8 @@ function handleScroll() {
         margin-right: 15px;
       }
       &.active {
-        background-color: #D9EDFF!important;
-        color: #0084FF!important;
+        background-color: #d9edff !important;
+        color: #0084ff !important;
         //border-color: #42b983;
         // &::before {
         //   content: "";

+ 26 - 19
src/store/modules/tagsView.js

@@ -1,6 +1,5 @@
 const useTagsViewStore = defineStore(
-  'tags-view',
-  {
+  'tags-view', {
     state: () => ({
       visitedViews: [],
       cachedViews: [],
@@ -12,18 +11,26 @@ const useTagsViewStore = defineStore(
         this.addCachedView(view)
       },
       addIframeView(view) {
-        if (this.iframeViews.some(v => v.path === view.path)) return
+        if (this.iframeViews.some(v => v.fullPath === view.fullPath)) return
+        let title = view.meta.title || 'no-name'
+        if (view.path == '/platform_manage/process/processApproval') {
+          title = view.query.processType == 10 ? '审批' : view.query.processType == 20 ? '查看' : '发起'
+        }
         this.iframeViews.push(
           Object.assign({}, view, {
-            title: view.meta.title || 'no-name'
+            title: title
           })
         )
       },
       addVisitedView(view) {
-        if (this.visitedViews.some(v => v.path === view.path)) return
+        if (this.visitedViews.some(v => v.fullPath === view.fullPath)) return
+        let title = view.meta.title || 'no-name'
+        if (view.path == '/platform_manage/process/processApproval') {
+          title = view.query.processType == 10 ? '审批' : view.query.processType == 20 ? '查看' : '发起'
+        }
         this.visitedViews.push(
           Object.assign({}, view, {
-            title: view.meta.title || 'no-name'
+            title: title
           })
         )
       },
@@ -47,18 +54,18 @@ const useTagsViewStore = defineStore(
       delVisitedView(view) {
         return new Promise(resolve => {
           for (const [i, v] of this.visitedViews.entries()) {
-            if (v.path === view.path) {
+            if (v.fullPath === view.fullPath) {
               this.visitedViews.splice(i, 1)
               break
             }
           }
-          this.iframeViews = this.iframeViews.filter(item => item.path !== view.path)
+          this.iframeViews = this.iframeViews.filter(item => item.fullPath !== view.fullPath)
           resolve([...this.visitedViews])
         })
       },
       delIframeView(view) {
         return new Promise(resolve => {
-          this.iframeViews = this.iframeViews.filter(item => item.path !== view.path)
+          this.iframeViews = this.iframeViews.filter(item => item.fullPath !== view.fullPath)
           resolve([...this.iframeViews])
         })
       },
@@ -82,9 +89,9 @@ const useTagsViewStore = defineStore(
       delOthersVisitedViews(view) {
         return new Promise(resolve => {
           this.visitedViews = this.visitedViews.filter(v => {
-            return v.meta.affix || v.path === view.path
+            return v.meta.affix || v.fullPath === view.fullPath
           })
-          this.iframeViews = this.iframeViews.filter(item => item.path === view.path)
+          this.iframeViews = this.iframeViews.filter(item => item.fullPath === view.fullPath)
           resolve([...this.visitedViews])
         })
       },
@@ -125,7 +132,7 @@ const useTagsViewStore = defineStore(
       },
       updateVisitedView(view) {
         for (let v of this.visitedViews) {
-          if (v.path === view.path) {
+          if (v.fullPath === view.fullPath) {
             v = Object.assign(v, view)
             break
           }
@@ -133,7 +140,7 @@ const useTagsViewStore = defineStore(
       },
       delRightTags(view) {
         return new Promise(resolve => {
-          const index = this.visitedViews.findIndex(v => v.path === view.path)
+          const index = this.visitedViews.findIndex(v => v.fullPath === view.fullPath)
           if (index === -1) {
             return
           }
@@ -145,8 +152,8 @@ const useTagsViewStore = defineStore(
             if (i > -1) {
               this.cachedViews.splice(i, 1)
             }
-            if(item.meta.link) {
-              const fi = this.iframeViews.findIndex(v => v.path === item.path)
+            if (item.meta.link) {
+              const fi = this.iframeViews.findIndex(v => v.fullPath === item.fullPath)
               this.iframeViews.splice(fi, 1)
             }
             return false
@@ -156,7 +163,7 @@ const useTagsViewStore = defineStore(
       },
       delLeftTags(view) {
         return new Promise(resolve => {
-          const index = this.visitedViews.findIndex(v => v.path === view.path)
+          const index = this.visitedViews.findIndex(v => v.fullPath === view.fullPath)
           if (index === -1) {
             return
           }
@@ -168,8 +175,8 @@ const useTagsViewStore = defineStore(
             if (i > -1) {
               this.cachedViews.splice(i, 1)
             }
-            if(item.meta.link) {
-              const fi = this.iframeViews.findIndex(v => v.path === item.path)
+            if (item.meta.link) {
+              const fi = this.iframeViews.findIndex(v => v.fullPath === item.fullPath)
               this.iframeViews.splice(fi, 1)
             }
             return false
@@ -180,4 +187,4 @@ const useTagsViewStore = defineStore(
     }
   })
 
-export default useTagsViewStore
+export default useTagsViewStore

+ 9 - 0
src/views/WDLY/purchaseManage/alreadyPurchase/index.vue

@@ -323,6 +323,15 @@
                             prop="quantity"
                             width="100"
                           />
+                          <el-table-column
+                            label="入库状态"
+                            prop="receiptStatus"
+                            width="100"
+                            :formatter="
+                              (row) =>
+                                row.receiptStatus == 1 ? '部分入库' : '完全入库'
+                            "
+                          />
                         </el-table>
                       </div>
                       <template #reference>

+ 132 - 2
src/views/WDLY/purchaseManage/payment/index.vue

@@ -140,10 +140,26 @@
             </el-table>
           </div>
         </template>
+        <template #file>
+          <div style="width: 100%">
+            <el-upload
+              v-model:fileList="formData.data.fileList"
+              action="https://winfaster.obs.cn-south-1.myhuaweicloud.com"
+              :data="uploadData"
+              multiple
+              :before-upload="uploadFile"
+              :on-success="handleSuccess"
+              :on-preview="onPreviewFile"
+            >
+              <el-button type="primary" plain>选择</el-button>
+            </el-upload>
+          </div>
+        </template>
       </byForm>
       <template #footer>
         <el-button @click="handleClose" size="large">取 消</el-button>
         <el-button
+          v-if="modalType == 'add'"
           type="primary"
           @click="submitForm('byform')"
           size="large"
@@ -198,14 +214,35 @@
             :key="index"
             :timestamp="activity.payUserName"
           >
+            <el-button
+              type="primary"
+              plain
+              style="float: right"
+              @click="handleGetDtl(activity)"
+              >查看详情</el-button
+            >
             <div>
-              付款账号: {{ dictValueLabel(activity.payAccount, accountData) }}
+              付款账号:
+              {{ dictValueLabel(activity.payAccount, accountData) }}
             </div>
             <div style="margin-top: 5px">
               付款金额:{{ moneyFormat(activity.amount, 2) }}
             </div>
             <div style="margin-top: 5px">付款时间: {{ activity.payDate }}</div>
             <div style="margin-top: 5px">付款备注: {{ activity.remark }}</div>
+            <div
+              style="width: 100%; margin-top: 5px"
+              v-if="activity.fileList && activity.fileList.length > 0"
+            >
+              <div v-for="(item, index) in activity.fileList" :key="index">
+                <div
+                  style="cursor: pointer; color: #409eff"
+                  @click="openFile(item)"
+                >
+                  {{ item.fileName }}
+                </div>
+              </div>
+            </div>
           </el-timeline-item>
         </el-timeline>
       </div>
@@ -354,6 +391,7 @@
 import { ElMessage, ElMessageBox } from "element-plus";
 import byTable from "@/components/byTable/index";
 import byForm from "@/components/byForm/index";
+const uploadData = ref({});
 
 const loading = ref(false);
 const submitLoading = ref(false);
@@ -560,6 +598,7 @@ let formData = reactive({
   dataTwo: {},
 });
 const formOption = reactive({
+  disabled: false,
   inline: true,
   labelWidth: 100,
   itemWidth: 100,
@@ -605,6 +644,11 @@ let formConfig = computed(() => [
     disabled: false,
   },
   {
+    type: "slot",
+    slotName: "file",
+    label: "附件",
+  },
+  {
     type: "title",
     title: "付款明细",
   },
@@ -722,6 +766,7 @@ const submitForm = () => {
         });
       }
     }
+
     // const total = list.reduce((total, x) => (total += Number(x.amount)), 0);
     // if (Number(formData.data.amount) != total) {
     //   return ElMessage({
@@ -729,6 +774,14 @@ const submitForm = () => {
     //     type: "info",
     //   });
     // }
+    formData.data.fileList = formData.data.fileList.map((item) => {
+      return {
+        id: item.raw.id,
+        fileName: item.raw.fileName,
+        fileUrl: item.raw.fileUrl,
+        uploadState: item.raw.uploadState,
+      };
+    });
     proxy.post("/purchasePayRecord/add", formData.data).then(
       (res) => {
         ElMessage({
@@ -825,6 +878,7 @@ const handlePayment = (type, data) => {
       paymentMethod: x.paymentMethod,
       remark: x.remark,
     })),
+    fileList: [],
   };
   dialogVisible.value = true;
 };
@@ -840,13 +894,34 @@ const handleRefund = (row) => {
   };
   dialogVisibleTwo.value = true;
 };
-
+const currentRow = ref({});
 const handleClickPayStatus = (row) => {
+  currentRow.value = row;
   proxy
     .post("/purchasePayRecordDetail/page", { purchaseId: row.id })
     .then((res) => {
       if (res && res.rows && res.rows.length > 0) {
         activities.value = res.rows;
+        const idList = activities.value.map((x) => x.purchasePayRecordId);
+        // 请求文件数据并回显
+        if (idList.length > 0) {
+          proxy
+            .post("/fileInfo/getList", {
+              businessIdList: idList,
+            })
+            .then((fileObj) => {
+              if (fileObj) {
+                for (let i = 0; i < activities.value.length; i++) {
+                  const e = activities.value[i];
+                  for (const key in fileObj) {
+                    if (e.purchasePayRecordId === key) {
+                      e.fileList = fileObj[key];
+                    }
+                  }
+                }
+              }
+            });
+        }
         dialogVisibleOne.value = true;
       } else {
         return ElMessage({
@@ -965,6 +1040,61 @@ const handleClickContractCode = (row) => {
 
 getList();
 getDict();
+
+// 上传文件
+const uploadFile = async (file) => {
+  const res = await proxy.post("/fileInfo/getSing", { fileName: file.name });
+  uploadData.value = res.uploadBody;
+  file.id = res.id;
+  file.fileName = res.fileName;
+  file.fileUrl = res.fileUrl;
+  file.uploadState = true;
+  return true;
+};
+const handleSuccess = (any, UploadFile) => {
+  UploadFile.raw.uploadState = false;
+};
+const onPreviewFile = (file) => {
+  window.open(file.raw.fileUrl, "_blank");
+};
+const openFile = (item) => {
+  window.open(item.fileUrl, "_blank");
+};
+
+const handleGetDtl = (row) => {
+  modalType.value = "edit";
+  formOption.disabled = true;
+  dialogVisible.value = true;
+  proxy
+    .post("/purchasePayRecord/detail", {
+      id: row.purchasePayRecordId,
+    })
+    .then((res) => {
+      res.supplyName = currentRow.value.supplyName;
+      formData.data = res;
+      formData.data.purchasePayRecordDetailList =
+        formData.data.purchasePayRecordDetailList.map((x) => ({
+          ...x,
+          code: x.contractCode,
+          waitAmount: x.purchaseAmount,
+          alreadyAmount: x.paidAmount,
+        }));
+
+      proxy
+        .post("/fileInfo/getList", {
+          businessIdList: [res.id],
+        })
+        .then((fileObj) => {
+          if (fileObj[res.id] && fileObj[res.id].length > 0) {
+            formData.data.fileList = fileObj[res.id].map((x) => ({
+              raw: x,
+              name: x.fileName,
+              url: x.fileUrl,
+            }));
+          }
+        });
+    });
+};
 </script>
   
 <style lang="scss" scoped>

+ 1 - 1
src/views/WDLY/purchaseManage/purchase/index.vue

@@ -359,7 +359,7 @@ const start = (type) => {
     const flagDeptId = selectAllData.value.every((x) => x.deptId === deptId);
     if (flagReceiptWarehouseId && flagDeptId) {
       let ids = selectAllData.value.map((x) => x.id).join();
-      proxy.$router.replace({
+      proxy.$router.push({
         path: "/platform_manage/process/processApproval",
         query: {
           flowKey: "wdly_purchase",

+ 1 - 1
src/views/WDLY/purchaseManage/subscribe/index.vue

@@ -289,7 +289,7 @@ const getList = async (req) => {
   );
 };
 const openModal = () => {
-  proxy.$router.replace({
+  proxy.$router.push({
     path: "/platform_manage/process/processApproval",
     query: {
       flowKey: "wdly_apply_purchase",

+ 2 - 2
vite.config.js

@@ -39,9 +39,9 @@ export default defineConfig(({
       proxy: {
         // https://cn.vitejs.dev/config/#server-proxy
         '/dev-api': {
-          // target: 'http://139.9.102.170:10006/test-api',
+          target: 'http://139.9.102.170:10006/test-api',
           // 正式地址
-          target: "http://139.9.102.170/prod-api",
+          // target: "http://139.9.102.170/prod-api",
           changeOrigin: true,
           rewrite: (p) => p.replace(/^\/dev-api/, '')
         }