From 38323fdecf0a242a38e691e610d460407d135d2d Mon Sep 17 00:00:00 2001 From: lb Date: Wed, 22 Feb 2023 16:11:50 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E5=8E=8B=E5=88=B6=E5=B7=A5=E8=89=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/DialogWithMenu.vue | 2 +- src/views/atomViews/ListViewWithHead.vue | 86 ++++++---- src/views/modules/pms/bom/config.js | 4 +- src/views/modules/pms/shapeStep/config.js | 199 ++++++++++++++++++++++ src/views/modules/pms/shapeStep/index.vue | 51 ++++++ 5 files changed, 306 insertions(+), 36 deletions(-) create mode 100644 src/views/modules/pms/shapeStep/config.js create mode 100644 src/views/modules/pms/shapeStep/index.vue diff --git a/src/components/DialogWithMenu.vue b/src/components/DialogWithMenu.vue index e2138bc..cca1a3f 100644 --- a/src/components/DialogWithMenu.vue +++ b/src/components/DialogWithMenu.vue @@ -16,7 +16,7 @@
{ - params[name] = ""; + this.listQueryExtra.map((nameOrObj) => { + if (typeof nameOrObj === "string") params[nameOrObj] = ""; + else if (typeof nameOrObj === "object") { + Object.keys(nameOrObj).forEach((key) => { + params[key] = nameOrObj[key]; + }); + } }); } - this.$http - .get(this.urls.page, { - params, - }) - .then(({ data: res }) => { - console.log("[http response] res is: ", res); + // if (this.urls.pageIsPostApi) { + // } else { + // 默认是 get 方式请求 page + this.$http[this.urls.pageIsPostApi ? "post" : "get"]( + this.urls.page, + this.urls.pageIsPostApi + ? { + ...params, + } + : { + params, + } + ).then(({ data: res }) => { + console.log("[http response] res is: ", res); - // page 场景: - if ("list" in res.data) { - // real env: - this.dataList = res.data.list.map((item) => { - return { - ...item, - id: item._id ?? item.id, - }; - // } - }); - this.totalPage = res.data.total; - } else if ("records" in res.data) { - this.dataList = res.data.records.map((item) => ({ + // page 场景: + if ("list" in res.data) { + // real env: + this.dataList = res.data.list.map((item) => { + return { ...item, id: item._id ?? item.id, - })); - this.totalPage = res.data.total; - } else { - this.dataList.splice(0); - this.totalPage = 0; - } - this.tableLoading = false; - }); + }; + // } + }); + this.totalPage = res.data.total; + } else if ("records" in res.data) { + this.dataList = res.data.records.map((item) => ({ + ...item, + id: item._id ?? item.id, + })); + this.totalPage = res.data.total; + } else { + this.dataList.splice(0); + this.totalPage = 0; + } + this.tableLoading = false; + }); + // } }, layoutTable() { @@ -268,10 +282,16 @@ export default { case "查询": { const params = {}; this.listQueryExtra?.map((cond) => { - if (!!payload[cond]) { - params[cond] = payload[cond]; - } else { - params[cond] = ""; + if (typeof cond === "string") { + if (!!payload[cond]) { + params[cond] = payload[cond]; + } else { + params[cond] = ""; + } + } else if (typeof cond === 'object') { + Object.keys(cond).forEach(key => { + params[key] = cond[key] + }) } }); console.log("查询", params); diff --git a/src/views/modules/pms/bom/config.js b/src/views/modules/pms/bom/config.js index df18559..b386d71 100644 --- a/src/views/modules/pms/bom/config.js +++ b/src/views/modules/pms/bom/config.js @@ -82,10 +82,10 @@ export default function () { }, { input: true, - label: "物料编码", + label: "配方编码", prop: "code", rules: { required: true, message: "必填项不能为空", trigger: "blur" }, - elparams: { placeholder: "请输入物料编码" }, + elparams: { placeholder: "请输入配方编码" }, }, // { input: true, label: '版本号', prop: 'version', elparams: { placeholder: '请输入版本号' } }, // { diff --git a/src/views/modules/pms/shapeStep/config.js b/src/views/modules/pms/shapeStep/config.js new file mode 100644 index 0000000..f0585cd --- /dev/null +++ b/src/views/modules/pms/shapeStep/config.js @@ -0,0 +1,199 @@ +import TableOperaionComponent from "@/components/noTemplateComponents/operationComponent"; +import TableTextComponent from "@/components/noTemplateComponents/detailComponent"; +import StatusComponent from "@/components/noTemplateComponents/statusComponent"; +import { timeFilter } from "@/utils/filters"; + +export default function () { + const tableProps = [ + { type: "index", label: "序号" }, + { prop: "createTime", label: "添加时间", filter: timeFilter }, + { prop: "name", label: "工艺名称" }, + { prop: "code", label: "工艺编码" }, + // { prop: 'version', label: '配方号' }, + { prop: "shapeCode", label: "砖型" }, + // { prop: 'status', label: '状态', subcomponent: StatusComponent }, // subcomponent + { prop: "description", label: "详情", subcomponent: TableTextComponent }, + { prop: "remark", label: "备注" }, + { + prop: "operations", + name: "操作", + fixed: "right", + width: 120, + subcomponent: TableOperaionComponent, + options: ["edit", { name: "delete", emitFull: true, permission: "pms:shapeStep:delete" }], + }, + ]; + + const headFormFields = [ + { + prop: "key", + label: "工艺名称/编码", + input: true, + default: { value: "" }, + bind: { + placeholder: "请输入工艺名称或编码", + }, + }, + { + prop: "shape", + label: "砖型", + input: true, + default: { value: "" }, + bind: { + placeholder: "请输入砖型", + }, + }, + // { + // prop: 'bom', + // label: '配方号', + // input: true, + // default: { value: '' }, + // bind: { + // placeholder: '请输入配方号' + // } + // }, + { + button: { + type: "primary", + name: "查询", + }, + }, + { + button: { + type: "plain", + name: "新增", + permission: "pms:shapeStep:save", + }, + }, + ]; + + const dialogConfigs = { + menu: [{ name: "压制工艺", key: 'info' }, { name: "工艺参数", key: 'attr', onlyEditMode: true }], + form: { + rows: [ + [ + { + input: true, + label: "工艺名称", + prop: "name", + rules: { required: true, message: "必填项不能为空", trigger: "blur" }, + elparams: { placeholder: "请输入混料程序名称" }, + }, + { + input: true, + label: "工艺编码", + prop: "code", + rules: { required: true, message: "必填项不能为空", trigger: "blur" }, + elparams: { placeholder: "请输入混料程序编码" }, + }, + { + select: true, + label: "砖型", + prop: "shape", + options: [], + elparams: { clearable: true, filterable: true, placeholder: "请选择砖型" }, + fetchData: () => this.$http.get("/pms/shape/page", { params: { limit: 999, page: 1 } }), + }, + ], + [{ textarea: true, label: "备注", prop: "remark", elparams: { placeholder: "备注" } }], + ], + operations: [ + { name: "add", label: "保存", type: "primary", permission: "pms:shapeStep:save", showOnEdit: false }, + { name: "update", label: "更新", type: "primary", permission: "pms:shapeStep:update", showOnEdit: true }, + { name: "reset", label: "重置", type: "warning", showAlways: true }, + // { name: 'cancel', label: '取消', showAlways: true }, + ], + }, + table: { + extraParams: "techId ", + props: [ + // { type: 'index', label: '序号' }, + // { prop: "createTime", label: "添加时间", filter: timeFilter }, + { prop: "name", label: "参数名称", isEditField: true }, + { prop: "code", label: "参数编码", isEditField: true }, + { prop: "specifications", label: "规格", isEditField: true }, + { prop: "description", label: "描述", isEditField: true }, + { prop: "value", label: "设定值", isEditField: true }, + { prop: "valueFloor", label: "值下限", isEditField: true }, + { prop: "valueTop", label: "值上限", isEditField: true }, + { + prop: "operations", + name: "操作", + fixed: "right", + width: 120, + subcomponent: TableOperaionComponent, + options: [ + { name: "edit", permission: "pms:blenderStepParam:update" }, + { name: "delete", emitFull: true, permission: "pms:blenderStepParam:delete" }, + ], + }, + ], + data: [ + // TOOD 暂时用不到,但获取可以考虑把拉取接口数据的函数迁移到此文件(没有太大必要) + ], + }, + + subDialog: { + extraParam: "stepId", + rows: [ + [ + { + input: true, + label: "步骤", + prop: "sort", + rules: { required: true, message: "必填项不能为空", trigger: "blur" }, + elparams: { placeholder: "请输入步骤" }, + }, + { + input: true, + label: "步骤描述", + prop: "description", + rules: { required: true, message: "必填项不能为空", trigger: "blur" }, + elparams: { placeholder: "请输入描述" }, + }, + ], + [ + { input: true, label: "参数名称", prop: "name", elparams: { placeholder: "请输入参数名称" } }, + { + input: true, + label: "参数编码", + prop: "code", + rules: { required: true, message: "必填项不能为空", trigger: "blur" }, + elparams: { placeholder: "请输入描述" }, + }, + ], + [ + { input: true, label: "参数值上限", prop: "valueTop", elparams: { placeholder: "请输入参数值上限" } }, + { input: true, label: "参数值下限", prop: "valueFloor", elparams: { placeholder: "请输入参数值下限" } }, + ], + [{ input: true, label: "参数值", prop: "value", elparams: { placeholder: "请输入参数值" } }], + ], + operations: [ + { name: "add", label: "保存", type: "primary", permission: "pms:blenderStepParam:save", showOnEdit: false }, + { name: "update", label: "更新", type: "primary", permission: "pms:blenderStepParam:update", showOnEdit: true }, + // { name: 'reset', label: '重置', type: 'warning', showAlways: true }, + // { name: 'cancel', label: '取消', showAlways: true }, + ], + }, + }; + + return { + dialogConfigs, + tableConfig: { + table: null, // 此处可省略,el-table 上的配置项 + column: tableProps, // el-column-item 上的配置项 + }, + headFormConfigs: { + rules: null, // 名称是由 BaseSearchForm.vue 组件固定的 + fields: headFormFields, // 名称是由 BaseSearchForm.vue 组件固定的 + }, + urls: { + base: "/pms/equipmentTech", + page: "/pms/equipmentTech/pageView", + pageIsPostApi: true, // 使用post接口来获取page数据,极少用,目前基本上只有工艺管理模块里在用 + subase: "/pms/equipmentTechParam", + subpage: "/pms/equipmentTechParam/page", + // more... + }, + }; +} diff --git a/src/views/modules/pms/shapeStep/index.vue b/src/views/modules/pms/shapeStep/index.vue new file mode 100644 index 0000000..c0cae3d --- /dev/null +++ b/src/views/modules/pms/shapeStep/index.vue @@ -0,0 +1,51 @@ + + + + +