From c4187de9a01fbb40ca6fa1eb204ca6eb7a284659 Mon Sep 17 00:00:00 2001 From: lb Date: Tue, 1 Aug 2023 16:02:31 +0800 Subject: [PATCH] =?UTF-8?q?fix=200801=20=E4=B8=8A=E6=96=99=E7=AE=A1?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/modules/pms/brokeLog/config.js | 162 +++++++---- src/views/modules/pms/brokeLogHand/config.js | 276 +++++++++++++++++++ src/views/modules/pms/brokeLogHand/index.vue | 32 +++ 3 files changed, 415 insertions(+), 55 deletions(-) create mode 100644 src/views/modules/pms/brokeLogHand/config.js create mode 100644 src/views/modules/pms/brokeLogHand/index.vue diff --git a/src/views/modules/pms/brokeLog/config.js b/src/views/modules/pms/brokeLog/config.js index 3db7914..e2b5c3d 100644 --- a/src/views/modules/pms/brokeLog/config.js +++ b/src/views/modules/pms/brokeLog/config.js @@ -1,11 +1,11 @@ import TableOperaionComponent from "@/components/noTemplateComponents/operationComponent"; // import switchBtn from "@/components/noTemplateComponents/switchBtn"; import request from "@/utils/request"; -import { timeFilter, dictFilter } from '@/utils/filters' +import { timeFilter, dictFilter } from "@/utils/filters"; export default function () { const tableProps = [ - { type: 'index', label: '序号' }, + { type: "index", label: "序号" }, // { prop: "updateTime", label: "上料时间", filter: timeFilter }, { prop: "materialName", label: "原料" }, // { prop: "material", label: "原料编码" }, @@ -13,9 +13,12 @@ export default function () { { prop: "siloName1", label: "上料料仓1" }, { prop: "siloName2", label: "上料料仓2" }, { prop: "siloName3", label: "上料料仓3" }, - { prop: 'startTime', label: "开始上料时间", filter: timeFilter }, - { prop: 'endTime', label: "结束上料时间", filter: timeFilter }, - { prop: "statusDictValue", label: "破碎作业", filter: val => ['正常停止', '废除'][val] ?? '-' }, + { prop: "startTime", label: "开始上料时间", filter: timeFilter }, + { prop: "endTime", label: "结束上料时间", filter: timeFilter }, + { prop: "silo1Change", label: "料仓1变化" }, + { prop: "silo2Change", label: "料仓2变化" }, + { prop: "silo3Change", label: "料仓3变化" }, + { prop: "statusDictValue", label: "破碎作业", filter: (val) => ["正常停止", "废除"][val] ?? "-" }, // { prop: "description", label: "描述" }, { prop: "remark", label: "备注" }, { prop: "createTime", label: "添加时间", filter: timeFilter }, @@ -25,71 +28,73 @@ export default function () { fixed: "right", width: 90, subcomponent: TableOperaionComponent, - options: [{ name: "edit", label: "编辑", icon: "edit-outline" }, { name: "delete", icon: "delete", label: "删除", emitFull: true, permission: "pms:brokeLog:delete" }], + options: [ + { name: "edit", label: "编辑", icon: "edit-outline" }, + { name: "delete", icon: "delete", label: "删除", emitFull: true, permission: "pms:brokeLog:delete" }, + ], }, ]; - - /** + /** * 数据字典hack * @param {object} row 行数据 * @param {string} dictId 从哪个数据字典映射数据 * @param {string} dataProp 把字典值附加到哪个 prop 字段上 - * @param {string} dictProp 哪个prop是字典数据 + * @param {string} dictProp 哪个prop是字典数据 **/ let dictList; tableProps.attachDictValue = (row, dictId, dataProp, dictProp, forceFlushDictList = false) => { /** 缓存一下 dictList **/ - if (!dictList || (dictList && forceFlushDictList)) dictList = dictFilter(dictId) + if (!dictList || (dictList && forceFlushDictList)) dictList = dictFilter(dictId); - if (typeof row === 'object' && dictList) { - const value = dictList(row[dictProp]) - const data = row[dataProp] - row[dataProp] = data + ' ' + (value === '-' ? '' : value) + if (typeof row === "object" && dictList) { + const value = dictList(row[dictProp]); + const data = row[dataProp]; + row[dataProp] = data + " " + (value === "-" ? "" : value); } else { this.$message({ - message: 'tableProps.attachDictValue() 出错!', - type: 'error', - duration: 1500 - }) + message: "tableProps.attachDictValue() 出错!", + type: "error", + duration: 1500, + }); } - } + }; const headFormFields = [ { - prop: 'material', + prop: "material", label: "按原料搜索", // input: true, select: [], - fieldOptionValue: 'name', // 把料仓筛选条件的label改为展示code,而不是展示name + fieldOptionValue: "name", // 把料仓筛选条件的label改为展示code,而不是展示name default: { value: "" }, fn: () => this.$http.get("/pms/material/page", { params: { page: 1, limit: 999 } }), bind: { - placeholder: '请输入原料名', - filterable: true - } + placeholder: "请输入原料名", + filterable: true, + }, }, { - prop: 'silo', + prop: "silo", label: "按料仓搜索", - fieldOptionLabel: 'name', // 把料仓筛选条件的label改为展示code,而不是展示name + fieldOptionLabel: "name", // 把料仓筛选条件的label改为展示code,而不是展示name select: [], - fn: () => this.$http.get("/pms/materialStorage/page", { params: { page: 1, limit: 999, typeDictValue: '0' } }), + fn: () => this.$http.get("/pms/materialStorage/page", { params: { page: 1, limit: 999, typeDictValue: "0" } }), bind: { - placeholder: '请选择料仓', + placeholder: "请选择料仓", filterable: true, - } + }, }, { timerange: true, - prop: 'timerange', + prop: "timerange", label: "时间段", bind: { - placeholder: '请选择上料时间段', + placeholder: "请选择上料时间段", type: "datetimerange", "start-placeholder": "开始时间", "end-placeholder": "结束时间", - } + }, }, { button: { @@ -101,11 +106,11 @@ export default function () { button: { type: "primary", name: "新增", - permission: "pms:brokeLog:save" + permission: "pms:brokeLog:save", }, bind: { plain: true, - } + }, }, ]; @@ -124,8 +129,8 @@ export default function () { options: [], label: "原料", prop: "material", - optionValue: 'code', - customLabel: 'description', + optionValue: "code", + customLabel: "description", rules: { required: true, message: "必填项不能为空", trigger: "blur" }, // elparams: { placeholder: "请输入原料名称" }, elparams: { filterable: true, placeholder: "请选择原料" }, @@ -136,42 +141,79 @@ export default function () { input: true, label: "上料量", prop: "qty", - rules: [{ required: true, message: "必填项不能为空", trigger: "blur" }, { type: 'number', message: '请输入正确的数字类型', trigger: 'blur', transform: val => Number(val) }], + rules: [ + { required: true, message: "必填项不能为空", trigger: "blur" }, + { type: "number", message: "请输入正确的数字类型", trigger: "blur", transform: (val) => Number(val) }, + ], elparams: { placeholder: "请输入上料量" }, }, - { select: true, label: "破碎作业", prop: "statusDictValue", options: [{ label: '正常停止', value: 0 }, { label: '废除', value: '1' }], elparams: { placeholder: "破碎作业", filterable: true } }, - + { + select: true, + label: "破碎作业", + prop: "statusDictValue", + options: [ + { label: "正常停止", value: 0 }, + { label: "废除", value: "1" }, + ], + elparams: { placeholder: "破碎作业", filterable: true }, + }, ], [ { - prop: 'silo1', - label: '上料料仓1', + prop: "silo1", + label: "上料料仓1", select: true, options: [], rules: { required: true, message: "必填项不能为空", trigger: "blur" }, - fetchData: () => this.$http.get("/pms/materialStorage/page", { params: { page: 1, limit: 999, typeDictValue: '0' } }), + fetchData: () => + this.$http.get("/pms/materialStorage/page", { params: { page: 1, limit: 999, typeDictValue: "0" } }), elparams: { filterable: true, placeholder: "请选择上料料仓1" }, - customLabel: 'description', + customLabel: "description", }, { - prop: 'silo2', - label: '上料料仓2', + prop: "silo2", + label: "上料料仓2", select: true, options: [], rules: { required: true, message: "必填项不能为空", trigger: "blur" }, - fetchData: () => this.$http.get("/pms/materialStorage/page", { params: { page: 1, limit: 999, typeDictValue: '0' } }), + fetchData: () => + this.$http.get("/pms/materialStorage/page", { params: { page: 1, limit: 999, typeDictValue: "0" } }), elparams: { filterable: true, placeholder: "请选择上料料仓2" }, - customLabel: 'description', + customLabel: "description", }, { - prop: 'silo3', - label: '上料料仓3', + prop: "silo3", + label: "上料料仓3", select: true, options: [], rules: { required: true, message: "必填项不能为空", trigger: "blur" }, - fetchData: () => this.$http.get("/pms/materialStorage/page", { params: { page: 1, limit: 999, typeDictValue: '0' } }), + fetchData: () => + this.$http.get("/pms/materialStorage/page", { params: { page: 1, limit: 999, typeDictValue: "0" } }), elparams: { filterable: true, placeholder: "请选择上料料仓3" }, - customLabel: 'description', + customLabel: "description", + }, + ], + [ + { + prop: "silo1Change", + label: "料仓1变化", + input: true, + // rules: { required: true, message: "必填项不能为空", trigger: "blur" }, + elparams: { placeholder: "请填写料仓1变化" }, + }, + { + prop: "silo2Change", + label: "料仓2变化", + input: true, + // rules: { required: true, message: "必填项不能为空", trigger: "blur" }, + elparams: { placeholder: "请填写料仓2变化" }, + }, + { + prop: "silo3Change", + label: "料仓3变化", + input: true, + // rules: { required: true, message: "必填项不能为空", trigger: "blur" }, + elparams: { placeholder: "请填写料仓3变化" }, }, ], [ @@ -180,18 +222,27 @@ export default function () { label: "开始上料时间", prop: "startTime", rules: { required: true, message: "必填项不能为空", trigger: "blur" }, - elparams: { placeholder: "请选择上料时间", type: 'datetime' }, + elparams: { placeholder: "请选择上料时间", type: "datetime" }, }, { datetime: true, label: "结束上料时间", prop: "endTime", rules: { required: true, message: "必填项不能为空", trigger: "blur" }, - elparams: { placeholder: "请选择上料结束时间", type: 'datetime' }, + elparams: { placeholder: "请选择上料结束时间", type: "datetime" }, }, { input: true, label: "描述信息", prop: "description", elparams: { placeholder: "描述信息" } }, ], - [{ input: true, label: "备注", prop: "remark", elparams: { placeholder: "备注" } }], + [ + { + forceDisabled: true, + // input: true, + label: "备注", + prop: "remark", + default: "Crushing", + elparams: { placeholder: "备注" }, + }, + ], ], operations: [ { name: "add", label: "保存", type: "primary", permission: "pms:brokeLog:save", showOnEdit: false }, @@ -215,7 +266,8 @@ export default function () { }, urls: { base: "/pms/brokeLog", - page: "/pms/brokeLog/page", + // page: "/pms/brokeLog/page", + page: "/pms/brokeLog/pagebroke", // subase: '/pms/blenderStepParam', // subpage: '/pms/blenderStepParam/page', // more... diff --git a/src/views/modules/pms/brokeLogHand/config.js b/src/views/modules/pms/brokeLogHand/config.js new file mode 100644 index 0000000..a8589a4 --- /dev/null +++ b/src/views/modules/pms/brokeLogHand/config.js @@ -0,0 +1,276 @@ +import TableOperaionComponent from "@/components/noTemplateComponents/operationComponent"; +// import switchBtn from "@/components/noTemplateComponents/switchBtn"; +import request from "@/utils/request"; +import { timeFilter, dictFilter } from "@/utils/filters"; + +export default function () { + const tableProps = [ + { type: "index", label: "序号" }, + // { prop: "updateTime", label: "上料时间", filter: timeFilter }, + { prop: "materialName", label: "原料" }, + // { prop: "material", label: "原料编码" }, + { prop: "qty", label: "计划上料量" }, + { prop: "siloName1", label: "上料料仓" }, + // { prop: "siloName2", label: "上料料仓2" }, + // { prop: "siloName3", label: "上料料仓3" }, + { prop: "startTime", label: "开始上料时间", filter: timeFilter }, + { prop: "endTime", label: "结束上料时间", filter: timeFilter }, + { prop: "silo1Change", label: "料仓变化" }, + // { prop: "silo2Change", label: "料仓2变化" }, + // { prop: "silo3Change", label: "料仓3变化" }, + { prop: "statusDictValue", label: "破碎作业", filter: (val) => ["正常停止", "废除"][val] ?? "-" }, + // { prop: "description", label: "描述" }, + { prop: "remark", label: "备注" }, + { prop: "createTime", label: "添加时间", filter: timeFilter }, + { + prop: "operations", + name: "操作", + fixed: "right", + width: 90, + subcomponent: TableOperaionComponent, + options: [ + { name: "edit", label: "编辑", icon: "edit-outline" }, + { name: "delete", icon: "delete", label: "删除", emitFull: true, permission: "pms:brokeLog:delete" }, + ], + }, + ]; + + /** + * 数据字典hack + * @param {object} row 行数据 + * @param {string} dictId 从哪个数据字典映射数据 + * @param {string} dataProp 把字典值附加到哪个 prop 字段上 + * @param {string} dictProp 哪个prop是字典数据 + **/ + let dictList; + tableProps.attachDictValue = (row, dictId, dataProp, dictProp, forceFlushDictList = false) => { + /** 缓存一下 dictList **/ + if (!dictList || (dictList && forceFlushDictList)) dictList = dictFilter(dictId); + + if (typeof row === "object" && dictList) { + const value = dictList(row[dictProp]); + const data = row[dataProp]; + row[dataProp] = data + " " + (value === "-" ? "" : value); + } else { + this.$message({ + message: "tableProps.attachDictValue() 出错!", + type: "error", + duration: 1500, + }); + } + }; + + const headFormFields = [ + { + prop: "material", + label: "按原料搜索", + // input: true, + select: [], + fieldOptionValue: "name", // 把料仓筛选条件的label改为展示code,而不是展示name + default: { value: "" }, + fn: () => this.$http.get("/pms/material/page", { params: { page: 1, limit: 999 } }), + bind: { + placeholder: "请输入原料名", + filterable: true, + }, + }, + { + prop: "silo", + label: "按料仓搜索", + fieldOptionLabel: "name", // 把料仓筛选条件的label改为展示code,而不是展示name + select: [], + fn: () => this.$http.get("/pms/materialStorage/page", { params: { page: 1, limit: 999, typeDictValue: "0" } }), + bind: { + placeholder: "请选择料仓", + filterable: true, + }, + }, + { + timerange: true, + prop: "timerange", + label: "时间段", + bind: { + placeholder: "请选择上料时间段", + type: "datetimerange", + "start-placeholder": "开始时间", + "end-placeholder": "结束时间", + }, + }, + { + button: { + type: "primary", + name: "查询", + }, + }, + { + button: { + type: "primary", + name: "新增", + permission: "pms:brokeLog:save", + }, + bind: { + plain: true, + }, + }, + ]; + + /** + * dialog config 有两个版本,一个适用于 DialogWithMenu 组件,另一个适用于 DialogJustForm 组件 + * 适用于 DialogWithMenu 组件的配置示例详见 blenderStep/config.js + * 此为后者的配置: + */ + const dialogJustFormConfigs = { + form: { + rows: [ + [ + { + // input: true, + select: true, + options: [], + label: "原料", + prop: "material", + optionValue: "code", + customLabel: "description", + rules: { required: true, message: "必填项不能为空", trigger: "blur" }, + // elparams: { placeholder: "请输入原料名称" }, + elparams: { filterable: true, placeholder: "请选择原料" }, + fetchData: () => this.$http.get("/pms/material/page", { params: { limit: 999, page: 1 } }), + // rules: { required: true, message: "必填项不能为空", trigger: "change" }, + }, + { + input: true, + label: "计划上料量", + prop: "qty", + rules: [ + { required: true, message: "必填项不能为空", trigger: "blur" }, + { type: "number", message: "请输入正确的数字类型", trigger: "blur", transform: (val) => Number(val) }, + ], + elparams: { placeholder: "请输入计划上料量" }, + }, + { + select: true, + label: "破碎作业", + prop: "statusDictValue", + options: [ + { label: "正常停止", value: 0 }, + { label: "废除", value: "1" }, + ], + elparams: { placeholder: "破碎作业", filterable: true }, + }, + { + prop: "silo1", + label: "上料料仓", + select: true, + options: [], + rules: { required: true, message: "必填项不能为空", trigger: "blur" }, + fetchData: () => + this.$http.get("/pms/materialStorage/page", { params: { page: 1, limit: 999, typeDictValue: "0" } }), + elparams: { filterable: true, placeholder: "请选择上料料仓" }, + customLabel: "description", + }, + ], + // [ + // { + // prop: "silo2", + // label: "上料料仓2", + // select: true, + // options: [], + // rules: { required: true, message: "必填项不能为空", trigger: "blur" }, + // fetchData: () => + // this.$http.get("/pms/materialStorage/page", { params: { page: 1, limit: 999, typeDictValue: "0" } }), + // elparams: { filterable: true, placeholder: "请选择上料料仓2" }, + // customLabel: "description", + // }, + // { + // prop: "silo3", + // label: "上料料仓3", + // select: true, + // options: [], + // rules: { required: true, message: "必填项不能为空", trigger: "blur" }, + // fetchData: () => + // this.$http.get("/pms/materialStorage/page", { params: { page: 1, limit: 999, typeDictValue: "0" } }), + // elparams: { filterable: true, placeholder: "请选择上料料仓3" }, + // customLabel: "description", + // }, + // ], + // [ + // { + // prop: "silo2Change", + // label: "料仓2变化", + // input: true, + // // rules: { required: true, message: "必填项不能为空", trigger: "blur" }, + // elparams: { placeholder: "请填写料仓2变化" }, + // }, + // { + // prop: "silo3Change", + // label: "料仓3变化", + // input: true, + // // rules: { required: true, message: "必填项不能为空", trigger: "blur" }, + // elparams: { placeholder: "请填写料仓3变化" }, + // }, + // ], + [ + { + prop: "silo1Change", + label: "料仓变化", + input: true, + // rules: { required: true, message: "必填项不能为空", trigger: "blur" }, + elparams: { placeholder: "请填写料仓变化" }, + }, + { + datetime: true, + label: "开始上料时间", + prop: "startTime", + rules: { required: true, message: "必填项不能为空", trigger: "blur" }, + elparams: { placeholder: "请选择上料时间", type: "datetime" }, + }, + { + datetime: true, + label: "结束上料时间", + prop: "endTime", + rules: { required: true, message: "必填项不能为空", trigger: "blur" }, + elparams: { placeholder: "请选择上料结束时间", type: "datetime" }, + }, + { input: true, label: "描述信息", prop: "description", elparams: { placeholder: "描述信息" } }, + ], + [ + { + forceDisabled: true, + // input: true, + label: "备注", + prop: "remark", + default: "Handload", + elparams: { placeholder: "备注" }, + }, + ], + ], + operations: [ + { name: "add", label: "保存", type: "primary", permission: "pms:brokeLog:save", showOnEdit: false }, + { name: "update", label: "更新", type: "primary", permission: "pms:brokeLog: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/brokeLog", + // page: "/pms/brokeLog/page", + page: "/pms/brokeLog/pagehand", + // subase: '/pms/blenderStepParam', + // subpage: '/pms/blenderStepParam/page', + // more... + }, + }; +} diff --git a/src/views/modules/pms/brokeLogHand/index.vue b/src/views/modules/pms/brokeLogHand/index.vue new file mode 100644 index 0000000..7ccdd8e --- /dev/null +++ b/src/views/modules/pms/brokeLogHand/index.vue @@ -0,0 +1,32 @@ + + + + +