pms-aomei/src/views/modules/pms/bom/config.js
2023-02-23 11:29:31 +08:00

233 lines
8.7 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import TableOperaionComponent from "@/components/noTemplateComponents/operationComponent";
import TableTextComponent from "@/components/noTemplateComponents/detailComponent";
import { timeFilter, dictFilter } from "@/utils/filters";
// import switchBtn from "@/components/noTemplateComponents/switchBtn";
export default function () {
const tableProps = [
{ type: "index", label: "序号" },
{ prop: "createTime", label: "添加时间", filter: timeFilter },
{ prop: "name", label: "牌号" },
{ prop: "code", label: "配方编码" },
{ prop: "externalCode", label: "版本号" },
// { prop: "specifications", label: "程序号" },
// { prop: "unitDictValue", label: "砖型", filter: dictFilter("unit") },
// { prop: "unitDictValue", label: "物料号", filter: dictFilter("unit") },
// { prop: "enabled", label: "状态", subcomponent: switchBtn }, // subcomponent
{ prop: "sumqty", label: "配方总重量[kg]", filter: val => !!val ? val + ' kg' : '-' },
{ prop: "sync", label: "同步状态" },
{ prop: "remark", label: "备注" },
{ prop: "description", label: "详情", subcomponent: TableTextComponent, buttonContent: "查看配方详情", actionName: 'view-recipe' },
{
prop: "operations",
name: "操作",
fixed: "right",
width: 160,
subcomponent: TableOperaionComponent,
options: ["copy", "edit", { name: "delete", emitFull: true, permission: "pms:bom:delete" }],
},
];
const headFormFields = [
{
label: "关键字",
prop: "key",
input: true,
default: { value: "" },
bind: { placeholder: "请输入关键字" },
},
{
button: {
type: "primary",
name: "查询",
},
},
{
button: {
type: "plain",
name: "新增",
permission: "pms:bom:save",
},
},
{
button: {
// type: "plain",
name: "同步",
type: 'primary'
},
},
];
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: "externalCode",
// rules: { required: true, message: "必填项不能为空", trigger: "blur" },
elparams: { placeholder: "请输入版本号" },
},
{
// input: true,
forceDisabled: true,
label: "同步状态",
prop: "sync",
key: 'sync',
// rules: { required: true, message: "必填项不能为空", trigger: "blur" },
// elparams: { placeholder: "请输入同步状态" },
},
],
[{ textarea: true, label: "备注", prop: "remark", 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: "createTime", label: "添加时间", filter: timeFilter },
{ prop: "material", label: "物料", isEditField: true },
{ prop: "qty", label: "配方物料重量[kg]", filter: val => !!val ? val + ' kg' : '-', isEditField: true },
{ prop: "sumqty", label: "配方总重量[kg]", filter: val => !!val ? val + ' kg' : '-', isEditField: true },
{ prop: "percent", label: "配比[%]", filter: val => !!val ? val + ' %' : '-', isEditField: true },
{ prop: "remark", label: "备注", isEditField: true },
{
prop: "operations",
name: "操作",
fixed: "right",
width: 120,
subcomponent: TableOperaionComponent,
options: [
{ name: "edit", permission: "pms:bomMaterial:update" },
{ name: "delete", 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: [],
fetchData: () => this.$http.get('/pms/material/page', { params: { limit: 999, page: 1 } })
// fetchData: () => new Promise((resolve) => {
// setTimeout(() => {
// resolve({
// data: {
// code: 0,
// data: {
// total: 0,
// list:
// [
// { id: 10001, name: 'mock物料1' },
// { id: 10002, name: 'mock物料2' },
// { id: 10003, name: 'mock物料3' },
// { id: 10004, name: 'mock物料4' },
// { id: 10005, name: 'mock物料5' },
// ]
// }
// }
// })
// }, 800)
// })
},
{
input: true,
label: "物料重量[kg]",
prop: "qty",
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 上的配置项
},
headFormConfigs: {
rules: null, // 名称是由 BaseSearchForm.vue 组件固定的
fields: headFormFields, // 名称是由 BaseSearchForm.vue 组件固定的
},
urls: {
base: "/pms/bom",
page: "/pms/bom/page",
syncUrl: "/pms/bom/sync",
copyUrl: "/pms/bom/copy",
subase: "/pms/bomMaterial",
subpage: "/pms/bomMaterial/page",
},
};
}