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: "上料料仓1" }, { prop: "siloName2", label: "上料料仓2" }, { prop: "siloName3", label: "上料料仓3" }, { 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 }, { 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: "上料料仓1", 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: "请选择上料料仓1" }, 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: "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变化" }, }, ], [ { 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: "Crushing", 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/pagebroke", // subase: '/pms/blenderStepParam', // subpage: '/pms/blenderStepParam/page', // more... }, }; }