From 13753f0c6caf46344ccbde97c42067ef878b8112 Mon Sep 17 00:00:00 2001 From: lb Date: Mon, 3 Apr 2023 10:58:58 +0800 Subject: [PATCH] update --- --- src/components/DialogJustForm.vue | 18 ++++++++++++++---- .../pms/qualityInspectionRecord/config.js | 9 +++++++-- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/components/DialogJustForm.vue b/src/components/DialogJustForm.vue index 59f1f65..d070454 100644 --- a/src/components/DialogJustForm.vue +++ b/src/components/DialogJustForm.vue @@ -142,6 +142,7 @@ export default { const savedDatalist = {}; const cachedList = {}; const watchList = []; + const promiseChain = {}; this.configs.form.rows.forEach((row) => { row.forEach((col) => { @@ -152,8 +153,8 @@ export default { savedDatalist[col.prop] = []; } - if (col.fetchData && typeof col.fetchData === "function") { - col.fetchData().then(({ data: res }) => { + if (col.fetchData && typeof col.fetchData === "function" && !col.fetchDataWait) { + const ps = col.fetchData().then(({ data: res }) => { if (res.code === 0) { if ("list" in res.data) { if ("injectTo" in col) { @@ -196,6 +197,8 @@ export default { } // dataForm[col.prop] = col.default ?? null; // not perfect! }); + + promiseChain[col.prop] = ps; } else if (col.fetchTreeData && typeof col.fetchTreeData === "function") { // 获取设备类型时触发的,用于前端构建属性结构,约定,parentId 为0时是顶级节点 col.fetchTreeData().then(({ data: res }) => { @@ -220,6 +223,7 @@ export default { savedDatalist, cachedList, watchList, + promiseChain, detailMode: false, baseDialogConfig: null, defaultQuillConfig: { @@ -278,8 +282,14 @@ export default { if ("toggleFetchData" in col) { const unwatch = this.$watch( () => this.dataForm[col.toggleFetchData], - (carId) => { - col.fetchData(carId).then(({ data: res }) => { + (val) => { + const { search, get } = col.fetchDataParam; // 伴随着 toggleFetchData 出现的 + const chosenObject = this.cachedList[col.toggleFetchData]?.find((i) => i[search] === val); + const paramValue = chosenObject ? chosenObject[get] : ""; + console.log("((( chosenObject )))", chosenObject); + + col.fetchData(paramValue).then(({ data: res }) => { + console.log("((( col.fetchData )))", paramValue, data); if (res.code === 0) { if ("list" in res.data) { if ("injectTo" in col) this.$set(this.cachedList, col.prop, res.data.list); diff --git a/src/views/modules/pms/qualityInspectionRecord/config.js b/src/views/modules/pms/qualityInspectionRecord/config.js index b784ff3..04f8d90 100644 --- a/src/views/modules/pms/qualityInspectionRecord/config.js +++ b/src/views/modules/pms/qualityInspectionRecord/config.js @@ -102,9 +102,10 @@ export default function () { options: [], optionLabel: 'code', optionValue: 'carId', + needCache: true, fetchData: () => this.$http.post("/pms/carHandle/pageView", { page: 1, limit: 999 }), rules: { required: true, message: "必填项不能为空", trigger: "blur" }, - elparams: { placeholder: "请输入批次编码", filterable: true }, + elparams: { placeholder: "请输入窑车号", filterable: true }, injectTo: [ ['posCode', 'posCode'], // TODO ['carState', 'stateDictValue'] @@ -150,7 +151,11 @@ export default function () { options: [], optionLabel: 'orderCode', toggleFetchData: 'carId', // 当 carId 改变的时候,也会 fetchData - fetchData: (carId) => this.$http.post("/pms/carHandle/getCurrent", { id: carId ?? null, page: 1, limit: 999 }), + // 需要保存当前状态 + needCache: true, + fetchDataParam: { search: 'carId', get: 'id' }, // 伴随着 toggleFetchData 出现 + fetchData: (hisId) => this.$http.get(`/pms/carHandle/${hisId}`), + fetchDataWait: true, rules: { required: true, message: "必选项不能为空", trigger: "blur" }, elparams: { placeholder: "请选择订单" }, injectTo: [