pms-aomei/src/views/modules/pms/bomDetails/config.js
2023-06-27 14:23:42 +08:00

226 lines
8.6 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 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...
},
};
}