import TableOperaionComponent from "@/components/noTemplateComponents/operationComponent"; import TableTextComponent from "@/components/noTemplateComponents/detailComponent"; // import StatusComponent from "@/components/noTemplateComponents/statusComponent"; import { timeFilter, dictFilter } from "@/utils/filters"; export default function () { const tableProps = [ { type: "index", label: "序号" }, { prop: "name", label: "物料名称" }, { prop: "code", label: "物料编码" }, { prop: "typeDictValue", label: "物料类型", filter: dictFilter("product_type") }, { prop: "specifications", label: "规格" }, { prop: "unitDictValue", label: "单位", filter: dictFilter("unit") }, { prop: "weight", label: "重量", filter: (val) => (val ? val + " kg" : "-") }, { prop: "processTime", label: "产线完成单位产品用时", width: 200, filter: (val) => val + " (分钟)" }, { prop: "remark", label: "备注" }, { prop: "description", label: "附件信息", subcomponent: TableTextComponent, buttonContent: "查看附件", actionName: "view-attachment", }, { 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:product:delete", }, ], }, ]; const headFormFields = [ { label: "物料名称/编码", prop: "key", input: true, default: { value: "" }, bind: { placeholder: "请输入物料名称或编码" }, }, { button: { type: "primary", name: "查询", }, }, { button: { type: "primary", name: "新增", permission: "pms:product:save", }, bind: { plain: true } }, { button: { type: "success", name: "导入", permission: "", }, bind: { plain: true } }, ]; const dictList = JSON.parse(localStorage.getItem("dictList") || {}); const dialogConfigs = { menu: [ { name: "物料信息", key: "info" }, { name: "物料属性信息", key: "attr", onlyEditMode: true }, { name: "附件", key: "attachment", onlyEditMode: true, actionUrl: window.SITE_CONFIG["apiURL"] + "/pms/attachment/uploadFileFormData?typeCode=ProductAttachment", }, ], 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: "请输入设备编码" }, }, // { input: true, label: '版本号', prop: 'version', elparams: { placeholder: '请输入版本号' } }, { select: true, label: "物料类型", prop: "typeDictValue", options: "product_type" in dictList ? dictList["product_type"].map((item) => ({ value: item.dictValue, label: item.dictLabel })) : [], elparams: { placeholder: "选择一个物料类型" }, }, ], [ // { input: true, label: '单位平方数', prop: 'code', rules: { required: true, message: '必填项不能为空', trigger: 'blur' }, elparams: { placeholder: '请输入设备名称编码' } }, { select: true, label: "单位", prop: "unitDictValue", options: "unit" in dictList ? dictList["unit"].map((item) => ({ value: item.dictValue, label: item.dictLabel })) : [], elparams: { placeholder: "选择单位" }, }, { input: true, label: "规格", prop: "specifications", rules: { required: true, message: "必填项不能为空", trigger: "blur" }, elparams: { placeholder: "请输入规格" }, }, { input: true, label: "产线完成单位产品用时", prop: "processTime", rules: [ { required: true, message: "必填项不能为空", trigger: "blur" }, { type: 'number', message: "请输入数字类型", trigger: "blur", transform: val => Number(val) } ], elparams: { placeholder: "请输入规格" }, }, ], [ { input: true, label: "重量", prop: "weight", rules: [ { required: true, message: "必填项不能为空", trigger: "blur" }, { type: 'number', message: "请输入数字类型", trigger: "blur", transform: val => Number(val) } ], elparams: { placeholder: "请输入重量" }, }, ], [{ textarea: true, label: "备注", prop: "remark", elparams: { placeholder: "备注" } }], ], operations: [ { name: "add", label: "保存", type: "primary", permission: "pms:product:save", showOnEdit: false }, { name: "update", label: "更新", type: "primary", permission: "pms:product:update", showOnEdit: true }, { name: "reset", label: "重置", type: "warning", showAlways: true }, // { name: 'cancel', label: '取消', showAlways: true }, ], }, table: { // extraParams: ['stepId'], extraParams: "productId", props: [ { type: "index", label: "序号" }, // { prop: 'productId', label: '产品ID' }, { prop: "name", label: "属性名称", isEditField: true }, { prop: "value", label: "属性值", isEditField: true }, { prop: "remark", label: "备注", isEditField: true }, { prop: "createTime", label: "添加时间", filter: timeFilter }, { prop: "operations", name: "操作", fixed: "right", width: 120, subcomponent: TableOperaionComponent, options: [ { name: { name: "edit", label: "编辑", icon: "edit-outline" }, permission: "pms:productArrt:update" }, { name: "delete", icon: "delete", label: "删除", emitFull: true, permission: "pms:productArrt:delete" }, ], }, ], data: [ // TOOD 暂时用不到,但获取可以考虑把拉取接口数据的函数迁移到此文件(没有太大必要) ], }, subDialog: { extraParam: "productId", forceAttachCode: true, // 产品属性新增必填 code 字段...... rows: [ [ { input: true, label: "属性名称", prop: "name", rules: { required: true, message: "必填项不能为空", trigger: "blur" }, elparams: { placeholder: "请输入属性名称" }, }, { input: true, label: "属性值", prop: "value", rules: { required: true, message: "必填项不能为空", trigger: "blur" }, elparams: { placeholder: "请输入属性值" }, }, ], [{ textarea: true, label: "备注", prop: "remark", elparams: { placeholder: "添加备注" } }], ], operations: [ { name: "add", label: "保存", type: "primary", permission: "pms:productArrt:save", showOnEdit: false }, { name: "update", label: "更新", type: "primary", permission: "pms:productArrt:update", showOnEdit: 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/product", page: "/pms/product/page", subase: "/pms/productArrt", subpage: "/pms/productArrt/page", importUrl: "/pms/product/import", templateUrl: '/importTemplates/productImport.xlsx' }, }; }