From 2b94c7ac5209e46f2791c89022b56f70a8222c49 Mon Sep 17 00:00:00 2001 From: lb Date: Mon, 13 Feb 2023 13:52:42 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E5=AE=A2=E5=95=86=E5=85=B3=E7=B3=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/index.html | 4 +- src/components/DialogJustForm.vue | 12 +- src/views/modules/pms/customer/config.js | 159 ++++++++++++++++++ src/views/modules/pms/customer/index.vue | 32 ++++ src/views/modules/pms/equipmentType/config.js | 2 +- src/views/modules/pms/supplier/config.js | 159 ++++++++++++++++++ src/views/modules/pms/supplier/index.vue | 32 ++++ 7 files changed, 393 insertions(+), 7 deletions(-) create mode 100644 src/views/modules/pms/customer/config.js create mode 100644 src/views/modules/pms/customer/index.vue create mode 100644 src/views/modules/pms/supplier/config.js create mode 100644 src/views/modules/pms/supplier/index.vue diff --git a/public/index.html b/public/index.html index d204e3c..2a3aa34 100644 --- a/public/index.html +++ b/public/index.html @@ -38,8 +38,8 @@ <% if (process.env.VUE_APP_NODE_ENV === 'dev') { %> <% } %> diff --git a/src/components/DialogJustForm.vue b/src/components/DialogJustForm.vue index f789045..5ececf6 100644 --- a/src/components/DialogJustForm.vue +++ b/src/components/DialogJustForm.vue @@ -49,7 +49,7 @@ { const currentNode = listObj[key]; - currentNode.label = currentNode.name; - currentNode.value = currentNode.id; + if (currentNode.parentId === "0") { entry.push(listObj[key]); return; // return { label: currentNode.name, value: currentNode.id, children: currentNode.children ?? [] }; @@ -121,6 +122,7 @@ function reConstructTreeData(listObj) { } parentNode.children.push(currentNode); }); + console.log("[reConstructTreeData]", entry); return entry; } @@ -176,6 +178,7 @@ export default { // 再过滤这个对象 let filteredList = reConstructTreeData(obj); // 最后设置 options + console.log("[DialogJustForm fetchTreeData 2 -->]", filteredList); this.$set(col, "options", filteredList); } else { col.options.splice(0); @@ -231,7 +234,7 @@ export default { id: file.id, name: file.name, url: file.url, - typeCode: file.typeCode + typeCode: file.typeCode, })); }, @@ -342,6 +345,7 @@ export default { case "add": case "update": { if ("parentId" in this.dataForm) { + console.log("[DialogJustForm parentId]", this.dataForm.parentId); // 对特殊的键做特殊处理,如 parentId 是一个 cascader,获取的值是 ["xxx"],后端只需要xxx const lastItem = this.dataForm.parentId.length - 1; this.dataForm.parentId = this.dataForm.parentId[lastItem]; diff --git a/src/views/modules/pms/customer/config.js b/src/views/modules/pms/customer/config.js new file mode 100644 index 0000000..2761bf2 --- /dev/null +++ b/src/views/modules/pms/customer/config.js @@ -0,0 +1,159 @@ +import TableOperaionComponent from "@/components/noTemplateComponents/operationComponent"; +import switchBtn from "@/components/noTemplateComponents/switchBtn"; +import request from "@/utils/request"; + +export default function () { + const tableProps = [ + { prop: "name", label: "客户名称" }, + { prop: "code", label: "编码" }, + { prop: "tel", label: "联系电话" }, + { prop: "email", label: "联系邮箱" }, + { prop: "address", label: "地址" }, + { prop: "contact", label: "联系人" }, + // { prop: "status", label: "产线状态", subcomponent: switchBtn }, // subcomponent + { prop: "description", label: "描述" }, + { prop: "remark", label: "备注" }, + { + prop: "operations", + name: "操作", + fixed: "right", + width: 120, + subcomponent: TableOperaionComponent, + options: ["edit", { name: "delete", permission: "pms:customer:delete" }], + }, + ]; + + const headFormFields = [ + { + prop: 'key', + label: "客户名称/编码", + input: true, + default: { value: "" }, + bind: { + placeholder: '请输入客户名称或编码' + } + }, + { + button: { + type: "primary", + name: "查询", + }, + }, + { + button: { + type: "primary", + name: "新增", + permission: "pms:customer:save" + }, + bind: { + plain: true, + } + }, + ]; + + /** + * dialog config 有两个版本,一个适用于 DialogWithMenu 组件,另一个适用于 DialogJustForm 组件 + * 适用于 DialogWithMenu 组件的配置示例详见 blenderStep/config.js + * 此为后者的配置: + */ + const dialogJustFormConfigs = { + form: { + rows: [ + [ + { + input: true, + label: "客户名称", + prop: "name", + rules: { required: true, message: "not empty", trigger: "blur" }, + elparams: { placeholder: "请输入客户名称" }, + }, + { + input: true, + label: "编码", + prop: "code", + rules: { required: true, message: "not empty", trigger: "blur" }, + elparams: { placeholder: "请输入编码" }, + }, + ], + [ + { + input: true, + label: "联系电话", + prop: "tel", + // rules: { required: true, message: "not empty", trigger: "blur" }, + elparams: { placeholder: "请输入联系电话" }, + }, + { + input: true, + label: "联系邮箱", + prop: "email", + // rules: { required: true, message: "not empty", trigger: "blur" }, + elparams: { placeholder: "请输入联系邮箱" }, + }, + // { + // select: true, + // label: "所属工厂", + // prop: "factoryId", + // fetchData: () => this.$http.get("/pms/factory/page", { params: { limit: 999, page: 1 } }), + // option: [], + // rules: { required: true, message: "not empty", trigger: "change" }, + // }, + // { + // input: true, + // label: "产线TT值", + // prop: "tvalue", + // rules: [ + // { required: true, message: "not empty", trigger: "blur" }, + // { type: "number", message: "数字", trigger: "blur", transform: (val) => Number(val) }, + // ], + // elparams: { placeholder: "设定TT值(每小时下片数量)" }, + // }, + ], + [ + { + input: true, + label: "地址", + prop: "address", + // rules: { required: true, message: "not empty", trigger: "blur" }, + elparams: { placeholder: "请输入客户地址" }, + }, + { + input: true, + label: "联系人", + prop: "contact", + // rules: { required: true, message: "not empty", trigger: "blur" }, + elparams: { placeholder: "请输入联系人" }, + }, + ], + [{ textarea: true, label: "描述信息", prop: "description", elparams: { placeholder: "描述信息" } }], + [{ input: true, label: "备注", prop: "remark", elparams: { placeholder: "备注" } }], + ], + operations: [ + { name: "add", label: "保存", type: "primary", permission: "pms:customer:save", showOnEdit: false }, + { name: "update", label: "更新", type: "primary", permission: "pms:customer:update", showOnEdit: true }, + { name: "reset", label: "重置", type: "warning", showAlways: true }, + // { name: 'cancel', label: '取消', showAlways: true }, + ], + }, + }; + // 备注:弹窗弹出的时间和网速有关...... + + return { + dialogConfigs: dialogJustFormConfigs, + tableConfig: { + table: null, // 此处可省略,el-table 上的配置项 + column: tableProps, // el-column-item 上的配置项 + }, + headFormConfigs: { + rules: null, // 名称是由 BaseSearchForm.vue 组件固定的 + fields: headFormFields, // 名称是由 BaseSearchForm.vue 组件固定的 + }, + urls: { + base: "/pms/customer", + page: "/pms/customer/page", + // subase: '/pms/blenderStepParam', + // subpage: '/pms/blenderStepParam/page', + // more... + }, + }; +} diff --git a/src/views/modules/pms/customer/index.vue b/src/views/modules/pms/customer/index.vue new file mode 100644 index 0000000..7ccdd8e --- /dev/null +++ b/src/views/modules/pms/customer/index.vue @@ -0,0 +1,32 @@ + + + + + diff --git a/src/views/modules/pms/equipmentType/config.js b/src/views/modules/pms/equipmentType/config.js index b200247..369c8b5 100644 --- a/src/views/modules/pms/equipmentType/config.js +++ b/src/views/modules/pms/equipmentType/config.js @@ -90,7 +90,7 @@ export default function () { }, label: "父类", rules: { required: false, message: "not empty", trigger: "change" }, - elparams: { placeholder: "请输选择父类", 'show-all-levels': false, props: { checkStrictly: true } }, + elparams: { placeholder: "请输选择父类", 'show-all-levels': false, props: { checkStrictly: true, value: 'id', label: 'name' } }, }, ], // [{ textarea: true, label: "描述信息", prop: "description", elparams: { placeholder: "描述信息" } }], diff --git a/src/views/modules/pms/supplier/config.js b/src/views/modules/pms/supplier/config.js new file mode 100644 index 0000000..90575e4 --- /dev/null +++ b/src/views/modules/pms/supplier/config.js @@ -0,0 +1,159 @@ +import TableOperaionComponent from "@/components/noTemplateComponents/operationComponent"; +import switchBtn from "@/components/noTemplateComponents/switchBtn"; +import request from "@/utils/request"; + +export default function () { + const tableProps = [ + { prop: "name", label: "供应商名称" }, + { prop: "code", label: "编码" }, + { prop: "tel", label: "联系电话" }, + { prop: "email", label: "联系邮箱" }, + { prop: "address", label: "地址" }, + { prop: "contact", label: "联系人" }, + // { prop: "status", label: "产线状态", subcomponent: switchBtn }, // subcomponent + { prop: "description", label: "描述" }, + { prop: "remark", label: "备注" }, + { + prop: "operations", + name: "操作", + fixed: "right", + width: 120, + subcomponent: TableOperaionComponent, + options: ["edit", { name: "delete", permission: "pms:supplier:delete" }], + }, + ]; + + const headFormFields = [ + { + prop: 'key', + label: "供应商名称/编码", + input: true, + default: { value: "" }, + bind: { + placeholder: '请输入供应商名称或编码' + } + }, + { + button: { + type: "primary", + name: "查询", + }, + }, + { + button: { + type: "primary", + name: "新增", + permission: "pms:supplier:save" + }, + bind: { + plain: true, + } + }, + ]; + + /** + * dialog config 有两个版本,一个适用于 DialogWithMenu 组件,另一个适用于 DialogJustForm 组件 + * 适用于 DialogWithMenu 组件的配置示例详见 blenderStep/config.js + * 此为后者的配置: + */ + const dialogJustFormConfigs = { + form: { + rows: [ + [ + { + input: true, + label: "供应商名称", + prop: "name", + rules: { required: true, message: "not empty", trigger: "blur" }, + elparams: { placeholder: "请输入供应商名称" }, + }, + { + input: true, + label: "编码", + prop: "code", + rules: { required: true, message: "not empty", trigger: "blur" }, + elparams: { placeholder: "请输入编码" }, + }, + ], + [ + { + input: true, + label: "联系电话", + prop: "tel", + // rules: { required: true, message: "not empty", trigger: "blur" }, + elparams: { placeholder: "请输入联系电话" }, + }, + { + input: true, + label: "联系邮箱", + prop: "email", + // rules: { required: true, message: "not empty", trigger: "blur" }, + elparams: { placeholder: "请输入联系邮箱" }, + }, + // { + // select: true, + // label: "所属工厂", + // prop: "factoryId", + // fetchData: () => this.$http.get("/pms/factory/page", { params: { limit: 999, page: 1 } }), + // option: [], + // rules: { required: true, message: "not empty", trigger: "change" }, + // }, + // { + // input: true, + // label: "产线TT值", + // prop: "tvalue", + // rules: [ + // { required: true, message: "not empty", trigger: "blur" }, + // { type: "number", message: "数字", trigger: "blur", transform: (val) => Number(val) }, + // ], + // elparams: { placeholder: "设定TT值(每小时下片数量)" }, + // }, + ], + [ + { + input: true, + label: "地址", + prop: "address", + // rules: { required: true, message: "not empty", trigger: "blur" }, + elparams: { placeholder: "请输入供应商地址" }, + }, + { + input: true, + label: "联系人", + prop: "contact", + // rules: { required: true, message: "not empty", trigger: "blur" }, + elparams: { placeholder: "请输入联系人" }, + }, + ], + [{ textarea: true, label: "描述信息", prop: "description", elparams: { placeholder: "描述信息" } }], + [{ input: true, label: "备注", prop: "remark", elparams: { placeholder: "备注" } }], + ], + operations: [ + { name: "add", label: "保存", type: "primary", permission: "pms:supplier:save", showOnEdit: false }, + { name: "update", label: "更新", type: "primary", permission: "pms:supplier:update", showOnEdit: true }, + { name: "reset", label: "重置", type: "warning", showAlways: true }, + // { name: 'cancel', label: '取消', showAlways: true }, + ], + }, + }; + // 备注:弹窗弹出的时间和网速有关...... + + return { + dialogConfigs: dialogJustFormConfigs, + tableConfig: { + table: null, // 此处可省略,el-table 上的配置项 + column: tableProps, // el-column-item 上的配置项 + }, + headFormConfigs: { + rules: null, // 名称是由 BaseSearchForm.vue 组件固定的 + fields: headFormFields, // 名称是由 BaseSearchForm.vue 组件固定的 + }, + urls: { + base: "/pms/supplier", + page: "/pms/supplier/page", + // subase: '/pms/blenderStepParam', + // subpage: '/pms/blenderStepParam/page', + // more... + }, + }; +} diff --git a/src/views/modules/pms/supplier/index.vue b/src/views/modules/pms/supplier/index.vue new file mode 100644 index 0000000..7ccdd8e --- /dev/null +++ b/src/views/modules/pms/supplier/index.vue @@ -0,0 +1,32 @@ + + + + +