pms-aomei/src/views/modules/pms/material/config.js
2023-04-23 10:13:02 +08:00

279 lines
11 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 StatusComponent from "@/components/noTemplateComponents/statusComponent";
import { timeFilter, dictFilter } from "@/utils/filters";
export default function () {
const tableProps = [
{ type: "index", label: "序号" },
{ width: 90, prop: "code", label: "原料编码" },
{ width: 240, prop: "description", label: "原料描述" },
{ width: 90, prop: "name", label: "原料名称" },
{ width: 90, prop: "typeDictValue", label: "类型", filter: dictFilter("material_category") }, // subcomponent: {/** TODO: create a new component for this option */} },
{ prop: "baseMaterialCode", label: "基础原料编码" },
{ prop: "baseMaterialDescription", label: "基础原料描述" },
// { prop: "type", label: "原料类型" },
{ width: 90, prop: "density", label: "堆积密度" },
// { prop: "brandsOwner", label: "品牌" },
{ width: 90, prop: "dosLow", label: "加料下限" },
{ width: 90, prop: "dosHigh", label: "加料上限" },
// { prop: "description", label: "详情", subcomponent: TableTextComponent },
// { prop: "remark", label: "中文描述" },
{ prop: "createTime", label: "添加时间", filter: timeFilter },
/** TODO: parentId 是用来前端重构成树形结构的... */
{
prop: "operations",
name: "操作",
fixed: "right",
width: 90,
subcomponent: TableOperaionComponent,
options: [
// { name: "add-sub", permission: "pms:material:save" },
{ name: "edit", label: "编辑", icon: "edit-outline" },
{ name: "delete", icon: "delete", label: "删除", emitFull: true, permission: "pms:material:save" },
],
},
];
const headFormFields = [
{
label: "原料名称/编码",
prop: "key",
input: true,
default: { value: "" },
bind: { placeholder: "请输入原料名称或编码" },
},
{
button: {
type: "primary",
name: "查询",
},
},
{
button: {
type: "primary",
name: "新增",
permission: "",
},
bind: {
plain: true,
},
},
{
button: {
type: "success",
name: "导入",
permission: "",
},
bind: {
plain: true,
},
},
];
/**
* dialog config 有两个版本,一个适用于 DialogWithMenu 组件,另一个适用于 DialogJustForm 组件
* 适用于 DialogWithMenu 组件的配置示例详见 blenderStep/config.js
* 此为后者的配置:
*/
const dictList = JSON.parse(localStorage.getItem("dictList"));
const dialogConfigs = {
menu: [
{ name: "原料信息", key: "info" },
{ name: "原料属性信息", key: "attr", onlyEditMode: true },
// { name: "添加子类", key: "add-sub", onlyEditMode: true },
],
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: "description", elparams: { placeholder: "原料描述" } },
],
[
// {
// cascader: true,
// label: "父级原料",
// prop: "parentId",
// // TODO: 待解决DialogWithMenu 中设置default只在初始化的时候有效一旦清空过就无效了
// // default: '0',
// // rules: { required: true, message: "必填项不能为空", trigger: "blur" },
// options: [{ id: '0', name: '无' }], // 手动注入额外选项,用到的场景不多...
// fetchData: () => this.$http.get('/pms/material/page', { params: { page: 1, limit: 999, key: '' } }),
// elparams: { placeholder: "请选择父级原料", filterable: true, clearable: true },
// // fetchTreeData: () => {
// // // TODO前提是工厂里总的设备类型数不会超过 999
// // return this.$http.get('/pms/material/tree', {
// // params: { rootId: '0' }
// // })
// // },
// // elparams: { placeholder: "请选择父级原料", 'show-all-levels': false, props: { checkStrictly: true } },
// },
// {
// select: true,
// label: "原料类型",
// prop: "typeId",
// rules: { required: true, message: "必填项不能为空", trigger: "blur" },
// options: [],
// fetchData: () => this.$http.get('/pms/materialType/page', { params: { page: 1, limit: 999 } }),
// elparams: { placeholder: "请输入原料类型" },
// // autoDisabled: true, // 有某个条件触发后,自动变成 disabled 状态
// },
{
select: true,
label: "原料类别",
prop: "typeDictValue",
options: dictList["material_category"].map((u) => ({ label: u.dictLabel, value: u.dictValue })),
elparams: { placeholder: "原料类别" },
// autoDisabled: true
},
{
select: true,
label: "基础原料",
prop: "baseMaterialId",
options: [],
optionLabel: "code",
fetchData: () => this.$http.get("/pms/baseMaterial/page", { params: { limit: 999, page: 1, key: "" } }),
elparams: { placeholder: "请选择基础原料" },
},
{ input: true, label: "堆积密度(g/cm³)", prop: "density", elparams: { placeholder: "堆积密度" } },
// {
// input: true,
// label: "设备类型",
// prop: "eqTypeId",
// rules: { required: true, message: "必填项不能为空", trigger: "blur" },
// elparams: { placeholder: "请输入设备类型" },
// },
],
[
{
input: true,
label: "加料下限",
prop: "dosLow",
rules: [
{ required: true, message: "必填项不能为空", trigger: "blur" },
{ type: "number", message: "请输入正确的数字类型", trigger: "blur", transform: (val) => Number(val) },
],
elparams: { placeholder: "请输入加料下限" },
},
{
input: true,
label: "加料上限",
prop: "dosHigh",
rules: [
{ required: true, message: "必填项不能为空", trigger: "blur" },
{ type: "number", message: "请输入正确的数字类型", trigger: "blur", transform: (val) => Number(val) },
],
elparams: { placeholder: "请输入加料上限" },
},
{ input: true, label: "备注", prop: "remark", elparams: { placeholder: "请输入备注" } },
// {
// select: true,
// label: "单位",
// prop: "unitDictValue",
// options: dictList["unit"].map((u) => ({ label: u.dictLabel, value: u.dictValue })),
// elparams: { placeholder: "单位" },
// },
],
// [
// {
// input: true,
// label: "缩写",
// prop: "enAb",
// elparams: { placeholder: "请输入缩写" },
// },
// {
// input: true,
// label: "品牌",
// prop: "brandsOwner",
// elparams: { placeholder: "请输入品牌" },
// },
// { input: true, label: "中文描述", prop: "remark", elparams: { placeholder: "备注" } },
// ],
],
operations: [
{ name: "add", label: "保存", type: "primary", permission: "pms:material:save", showOnEdit: false },
{ name: "update", label: "更新", type: "primary", permission: "pms:material:save", showOnEdit: true },
{ name: "reset", label: "重置", type: "warning", showAlways: true },
// { name: 'cancel', label: '取消', showAlways: true },
],
},
table: {
// extraParams: ['stepId'],
extraParams: "materialId",
props: [
{ type: "index", label: "序号" },
{ prop: "name", label: "属性名", isEditField: true },
{ prop: "value", 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:materialArrt:save" },
{ name: "delete", icon: "delete", label: "删除", emitFull: true, permission: "pms:materialArrt:save" },
],
},
],
data: [
// TOOD 暂时用不到,但获取可以考虑把拉取接口数据的函数迁移到此文件(没有太大必要)
],
},
subDialog: {
extraParam: "materialId",
forceAttachCode: true,
rows: [
[{ input: true, label: "属性名", prop: "name", elparams: { placeholder: "请输入属性名" } }],
[{ input: true, label: "属性值", prop: "value", elparams: { placeholder: "请输入属性值" } }],
[{ input: true, label: "备注", prop: "remark", elparams: { placeholder: "请输入备注" } }],
],
operations: [
{ name: "add", label: "保存", type: "primary", permission: "pms:materialArrt:save", showOnEdit: false },
{ name: "update", label: "更新", type: "primary", permission: "pms:materialArrt:update", showOnEdit: true },
// { name: 'reset', label: '重置', type: 'warning', showAlways: true },
// { name: 'cancel', label: '取消', showAlways: 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/material",
page: "/pms/material/page",
tree: "/pms/material/tree",
subase: "/pms/materialArrt",
subpage: "/pms/materialArrt/page",
importUrl: "/pms/material/importExcel",
templateUrl: "/importTemplates/materialImport.xlsx",
// more...
},
};
}