249 lines
8.5 KiB
JavaScript
249 lines
8.5 KiB
JavaScript
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'
|
||
},
|
||
};
|
||
}
|