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: "计划上料量[kg]", filter: val => (val != null) ? (+val).toFixed(0) : '-' }, { prop: "siloName1", label: "上料料仓" }, // { prop: "siloName2", label: "上料料仓2" }, // { prop: "siloName3", label: "上料料仓3" }, { prop: "startTime", label: "开始上料时间", filter: timeFilter }, { prop: "endTime", label: "结束上料时间", filter: timeFilter }, { prop: "silo1Change", label: "料仓变化[kg]", filter: val => (val != null) ? (+val).toFixed(0) : '-' }, // { 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 now = new Date(); const [y, m, d] = [now.getFullYear(), now.getMonth(), now.getDate()]; const today = new Date(y, m, d, 0, 0, 0, 0).getTime(); const headFormFields = [ { prop: "material", label: "按原料搜索", // input: true, complexSelect: [], fieldOptionLabel: 'code', fieldOptionValue: "code", // 把料仓筛选条件的label改为展示code,而不是展示name default: { value: "" }, customLabels: ["description", "name"], 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": "结束时间", }, default: { value: [today - 24 * 7 * 1000 * 3600, today + 3600 * 24 * 1000] }, }, { 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... }, }; }