Bladeren bron

采购订单货位参照添加参数,编辑、新增弹窗关闭后刷新页面

002390 2 jaren geleden
bovenliggende
commit
b9ec61dbe3

+ 18 - 20
src/components/input-dialog/index.vue

@@ -52,6 +52,15 @@ export default {
   computed: {},
   watch: {},
   methods: {
+    // 处理默认传参
+    handleMakeQueryParams() {
+      const newQueryParams = {}
+      const { source, queryParams } = this.$props;
+      for (let key in queryParams) {
+        newQueryParams[key] = queryParams[key] === key ? source[queryParams[key]] : queryParams[key]
+      }
+      return newQueryParams
+    },
     // 打开弹窗
     handleAsyncOpenDialog() {
       this.$nextTick(() => {
@@ -68,31 +77,20 @@ export default {
       this.$emit("update:source", source);
     },
   },
-  created() {},
-  mounted() {},
-  destroyed() {},
+  created() {
+    this.handleMakeQueryParams()
+  },
+  mounted() { },
+  destroyed() { },
 };
 </script>
 <template>
-  <el-input
-    v-model="value"
-    :size="size"
-    :readonly="readonly"
-    :disabled="disabled"
-    :clearable="clearable"
-    :placeholder="placeholder"
-    style="width: 100%; cursor: pointer"
-    @click.native.stop="handleAsyncOpenDialog"
-  >
+  <el-input v-model="value" :size="size" :readonly="readonly" :disabled="disabled" :clearable="clearable"
+    :placeholder="placeholder" style="width: 100%; cursor: pointer" @click.native.stop="handleAsyncOpenDialog">
     <template #suffix>
       <el-icon class="el-icon-milk-tea"></el-icon>
-      <input-dialog
-        ref="InputDialogFef"
-        :type="type"
-        :title="title"
-        :queryParams="queryParams"
-        @confirm="handleUpdateSource"
-      ></input-dialog>
+      <input-dialog ref="InputDialogFef" :type="type" :title="title" :queryParams="handleMakeQueryParams()"
+        @confirm="handleUpdateSource"></input-dialog>
     </template>
   </el-input>
 </template>

+ 3 - 0
src/views/purchase/purchase-order/add/column.js

@@ -170,6 +170,9 @@ export const Columns = [
       dataMapping: {
         goodsAllocation: "code",
         goodsAllocationName: "name",
+      },
+      queryParams: {
+        puOrg: 'puOrg',
       }
     },
     width: 200,

+ 3 - 4
src/views/purchase/purchase-order/add/index.vue

@@ -1,6 +1,5 @@
 <script>
 import orderApi from "@/api/business/purchase/purchase-order";
-import { arr2obj } from "@/utils/data-transform";
 import { initColumns, initDicts, initRules, initParams } from "@/utils/init";
 import { Columns, TabColumns } from "./column";
 
@@ -11,7 +10,7 @@ const NewTabColumns = TabColumns.map((element) => ({
 }));
 
 export default {
-  name: "AddPurchaseContractDrawer",
+  name: "AddPurchaseOrderDrawer",
   dicts: initDicts(NewColumns),
   components: {
     DrInputDialog: () => import("@/components/input-dialog/index.vue"),
@@ -86,7 +85,7 @@ export default {
       } finally {
         // this.setVisible(false);
       }
- 
+
 
 
     },
@@ -155,7 +154,7 @@ export default {
               <dr-input-dialog v-if="column.type === 'InputDialog'" v-model="params[column.key]"
                 :placeholder="column.placeholder" :clearable="column.clearable" :disabled="column.disabled"
                 :readonly="column.readonly" :title="column.title" :type="column.config.componentName"
-                :data-mapping="column.config.dataMapping" :source.sync="params">
+                :data-mapping="column.config.dataMapping" :query-params="column.config.queryParams" :source.sync="params">
               </dr-input-dialog>
               <el-input v-if="column.type === 'Textarea'" v-model="params[column.key]" type="textarea"
                 :placeholder="column.placeholder" :clearable="column.clearable" :disabled="column.disabled"

+ 1 - 1
src/views/purchase/purchase-order/edit/index.vue

@@ -10,7 +10,7 @@ const NewTabColumns = TabColumns.map((element) => ({
 }));
 
 export default {
-  name: "EditPurchaseContractDrawer",
+  name: "EditPurchaseOrderDrawer",
   dicts: initDicts(NewColumns),
   components: {
     DrInputDialog: () => import("@/components/input-dialog/index.vue"),

+ 4 - 3
src/views/purchase/purchase-order/index.vue

@@ -4,7 +4,7 @@ import { TableColumns, SearchColumns } from "./column";
 import orderApi from "@/api/business/purchase/purchase-order";
 import { initPage, initLayout, initPageSizes, initParams } from "@/utils/init";
 export default {
-  name: "PuchaseTask",
+  name: "PuchaseOrder",
   components: {
     AddDrawer: () => import('./add/index.vue'),
     SeeDrawer: () => import('./see/index.vue'),
@@ -202,6 +202,7 @@ export default {
     },
     // 重置操作
     handleResetList() {
+
       this.page = initPage();
       this.params = initParams();
       this.fetchList(this.params, this.page);
@@ -273,8 +274,8 @@ export default {
 <template>
   <el-card v-loading="loading" style="width: calc(100% - 24px); height: 100%; margin: 10px" :body-style="{ padding: 0 }">
     <SeeDrawer ref="seeDrawerFef"></SeeDrawer>
-    <AddDrawer ref="addDrawerFef" @close="handleResetList"></AddDrawer>
-    <EditDrawer ref="editDrawerFef" @close="handleResetList"></EditDrawer>
+    <AddDrawer ref="addDrawerFef" @close="handleRefreshList"></AddDrawer>
+    <EditDrawer ref="editDrawerFef" @close="handleRefreshList"></EditDrawer>
 
     <el-form size="mini" label-position="right" label-width="100px" :model="params" style="padding: 20px 0 0 0">
       <el-row :gutter="24">

+ 1 - 1
src/views/purchase/purchase-order/see/index.vue

@@ -17,7 +17,7 @@ const NewTabColumns = TabColumns.map((element) => ({
 
 
 export default {
-  name: "SeePurchaseContractDrawer",
+  name: "SeePurchaseOrderDrawer",
   dicts: initDicts(NewColumns),
   data() {
     return {