import TableOperaionComponent from "@/components/noTemplateComponents/operationComponent"; // import switchBtn from "@/components/noTemplateComponents/switchBtn"; import request from "@/utils/request"; import { dictFilter, timeFilter } from '@/utils/filters' const syncTimeComponent = { name: 'syncTimeComponent', props: { injectData: { type: Object, default: () => ({}) } }, data() { return {} }, mounted() { console.log('syncTimeComponent mounted', this.injectData) }, render: function (h) { return h('div', { style: { background: this.injectData.syncTime ? 'none' : '#fc1010' , color: this.injectData.syncTime ? 'none' : 'white' , } }, timeFilter(this.injectData.syncTime)) } } export default function () { const tableProps = [ { type: 'index', label: '序号' }, // no-padding-class 是硬编码在 BaseListTable 里的 { width: 150, prop: "syncTime", label: "同步时间", className: 'no-padding-class', showOverflowTooltip: false, subcomponent: syncTimeComponent }, { prop: "code", label: "配方号" }, { prop: "name", label: "牌号" }, { prop: "version", label: "版本" }, { prop: "sumqty", label: "总重量" }, { prop: "description", label: "物料销售文本" }, { width: 150, prop: "shortDesc", label: "物料销售文本短描述" }, { prop: "remark", label: "备注" }, { prop: "createTime", label: "添加时间", filter: timeFilter }, { prop: "operations", name: "操作", fixed: "right", width: 160, subcomponent: TableOperaionComponent, options: [ { name: "sync", label: "同步", icon: "refresh" }, { name: "copy", label: "复制", icon: "copy-document" }, { name: "edit", label: "编辑", icon: "edit-outline" }, { name: "delete", icon: "delete", label: "删除", emitFull: true, permission: "pms:bom:delete" }, ], }, ]; 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: "version", rules: { required: true, message: "必填项不能为空", trigger: "blur" }, elparams: { placeholder: "请输入版本号" }, }, { input: true, label: "物料销售文本(短)", prop: "shortDesc", elparams: { placeholder: "物料销售文本" } }, ], [{ textarea: true, label: "物料销售文本", prop: "description", elparams: { placeholder: "物料销售文本" } }], [{ input: true, label: "备注", prop: "remark", elparams: { placeholder: "备注" } }], [ { // input: true, forceDisabled: true, label: "同步状态", prop: "sync", key: "sync", // rules: { required: true, message: "必填项不能为空", trigger: "blur" }, // elparams: { placeholder: "请输入同步状态" }, }, ], ], operations: [ { name: "add", label: "保存", type: "primary", permission: "pms:bom:save", showOnEdit: false }, { name: "update", label: "更新", type: "primary", permission: "pms:bom:update", showOnEdit: true }, { name: "reset", label: "重置", type: "warning", showAlways: true }, // { name: 'cancel', label: '取消', showAlways: true }, ], }, table: { // extraParams: ['stepId'], extraParams: "bomId", props: [ { type: "index", label: "序号" }, { prop: "material", label: "原料", isEditField: true }, { width: 130, prop: "qty", label: "配方原料重量", filter: (val) => (!!val ? val + " kg" : "-"), isEditField: true }, { width: 130, prop: "sumqty", label: "配方总重量", filter: (val) => (!!val ? val + " kg" : "-"), isEditField: true }, { prop: "percent", label: "配比 [%]", filter: (val) => (!!val ? val + " %" : "-"), isEditField: true }, { prop: "remark", label: "备注", isEditField: true }, { prop: "materialDesc", label: "原料描述", isEditField: true }, { prop: "createTime", label: "添加时间", filter: timeFilter }, { prop: "operations", name: "操作", fixed: "right", width: 90, subcomponent: TableOperaionComponent, options: [ { name: "edit", label: "编辑", icon: "edit-outline", permission: "pms:bomMaterial:update" }, { name: "delete", icon: "delete", label: "删除", emitFull: true, permission: "pms:bomMaterial:delete" }, ], }, ], data: [ // TOOD 暂时用不到,但获取可以考虑把拉取接口数据的函数迁移到此文件(没有太大必要) ], }, subDialog: { extraParam: "bomId", forceAttachCode: true, // 产品属性新增必填 code 字段...... rows: [ [ { select: true, label: "物料", prop: "materialId", rules: { required: true, message: "必填项不能为空", trigger: "blur" }, elparams: { placeholder: "请选择物料", filterable: true }, options: [], customLabel: 'description', fetchData: () => this.$http.get("/pms/material/page", { params: { limit: 999, page: 1 } }), }, ], [ { input: true, label: "物料重量[kg]", prop: "qty", rules: { required: true, message: "必填项不能为空", trigger: "blur" }, elparams: { placeholder: "请输入物料重量" }, }, ], [ { input: true, label: "原料描述", prop: "materialDesc", // rules: { required: true, message: "必填项不能为空", trigger: "blur" }, elparams: { placeholder: "请输入原料描述" }, }, ], [{ textarea: true, label: "备注", prop: "remark", elparams: { placeholder: "添加备注" } }], ], operations: [ { name: "add", label: "保存", type: "primary", permission: "pms:bomMaterial:save", showOnEdit: false }, { name: "update", label: "更新", type: "primary", permission: "pms:bomMaterial:update", showOnEdit: true }, ], }, }; return { dialogConfigs, tableConfig: { table: null, // 此处可省略,el-table 上的配置项 column: tableProps, // el-column-item 上的配置项 }, urls: { base: "/pms/bom", page: "/pms/bom/pageVersion", syncUrl: "/pms/bom/bomSync", copyUrl: "/pms/bom/copy", subase: "/pms/bomMaterial", subpage: "/pms/bomMaterial/page", // more... }, }; }