pms-aomei/src/views/modules/pms/brokeLog/config.js
2023-03-17 11:32:29 +08:00

221 lines
8.2 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 { timeFilter, dictFilter } from '@/utils/filters'
export default function () {
const tableProps = [
{ type: 'index', label: '序号' },
{ prop: "createTime", label: "添加时间", filter: timeFilter },
// { prop: "updateTime", label: "上料时间", filter: timeFilter },
{ prop: "materialName", label: "原料" },
// { prop: "material", label: "原料编码" },
{ prop: "qty", label: "上料量" },
{ prop: "siloCode1", label: "上料料仓1" },
{ prop: "siloCode2", label: "上料料仓2" },
{ prop: "siloCode3", label: "上料料仓3" },
{ prop: 'startTime', label: "开始上料时间", filter: timeFilter },
{ prop: 'endTime', label: "结束上料时间", filter: timeFilter },
{ prop: "statusDictValue", label: "破碎作业", filter: val => ['正常停止', '废除'][val] ?? '-' },
// { prop: "description", label: "描述" },
{ prop: "remark", label: "备注" },
{
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:brokeLog:delete" }],
},
];
/**
* 数据字典hack
* @param {object} row 行数据
* @param {string} dictId 从哪个数据字典映射数据
* @param {string} dataProp 把字典值附加到哪个 prop 字段上
* @param {string} dictProp 哪个prop是字典数据
**/
let dictList;
tableProps.attachDictValue = (row, dictId, dataProp, dictProp, forceFlushDictList = false) => {
/** 缓存一下 dictList **/
if (!dictList || (dictList && forceFlushDictList)) dictList = dictFilter(dictId)
if (typeof row === 'object' && dictList) {
const value = dictList(row[dictProp])
const data = row[dataProp]
row[dataProp] = data + ' ' + (value === '-' ? '' : value)
} else {
this.$message({
message: 'tableProps.attachDictValue() 出错!',
type: 'error',
duration: 1500
})
}
}
const headFormFields = [
{
prop: 'material',
label: "按原料搜索",
// input: true,
select: [],
fieldOptionValue: 'name', // 把料仓筛选条件的label改为展示code而不是展示name
default: { value: "" },
fn: () => this.$http.get("/pms/material/page", { params: { page: 1, limit: 999 } }),
bind: {
placeholder: '请输入原料名',
filterable: true
}
},
{
prop: 'silo',
label: "按料仓搜索",
fieldOptionLabel: 'code', // 把料仓筛选条件的label改为展示code而不是展示name
select: [],
fn: () => this.$http.get("/pms/materialStorage/page", { params: { page: 1, limit: 999, typeDictValue: '0' } }),
bind: {
placeholder: '请选择料仓',
filterable: true,
}
},
{
timerange: true,
prop: 'timerange',
label: "时间段",
bind: {
placeholder: '请选择上料时间段',
type: "datetimerange",
"start-placeholder": "开始时间",
"end-placeholder": "结束时间",
}
},
{
button: {
type: "primary",
name: "查询",
},
},
{
button: {
type: "primary",
name: "新增",
permission: "pms:brokeLog:save"
},
bind: {
plain: true,
}
},
];
/**
* dialog config 有两个版本,一个适用于 DialogWithMenu 组件,另一个适用于 DialogJustForm 组件
* 适用于 DialogWithMenu 组件的配置示例详见 blenderStep/config.js
* 此为后者的配置:
*/
const dialogJustFormConfigs = {
form: {
rows: [
[
{
// input: true,
select: true,
options: [],
label: "原料",
prop: "material",
optionValue: 'code',
rules: { required: true, message: "必填项不能为空", trigger: "blur" },
// elparams: { placeholder: "请输入原料名称" },
elparams: { placeholder: "请选择原料" },
fetchData: () => this.$http.get("/pms/material/page", { params: { limit: 999, page: 1 } }),
// rules: { required: true, message: "必填项不能为空", trigger: "change" },
},
{
input: true,
label: "上料量",
prop: "qty",
rules: [{ required: true, message: "必填项不能为空", trigger: "blur" }, { type: 'number', message: '请输入正确的数字类型', trigger: 'blur', transform: val => Number(val) }],
elparams: { placeholder: "请输入上料量" },
},
{ select: true, label: "破碎作业", prop: "statusDictValue", options: [{ label: '正常停止', value: 0 }, { label: '废除', value: '1' }], elparams: { placeholder: "破碎作业", filterable: true } },
],
[
{
prop: 'silo1',
label: '上料料仓1',
select: true,
options: [],
rules: { required: true, message: "必填项不能为空", trigger: "blur" },
fetchData: () => this.$http.get("/pms/materialStorage/page", { params: { page: 1, limit: 999, typeDictValue: '0' } }),
elparams: { placeholder: "请选择上料料仓1" }
},
{
prop: 'silo2',
label: '上料料仓2',
select: true,
options: [],
rules: { required: true, message: "必填项不能为空", trigger: "blur" },
fetchData: () => this.$http.get("/pms/materialStorage/page", { params: { page: 1, limit: 999, typeDictValue: '0' } }),
elparams: { placeholder: "请选择上料料仓2" }
},
{
prop: 'silo3',
label: '上料料仓3',
select: true,
options: [],
rules: { required: true, message: "必填项不能为空", trigger: "blur" },
fetchData: () => this.$http.get("/pms/materialStorage/page", { params: { page: 1, limit: 999, typeDictValue: '0' } }),
elparams: { placeholder: "请选择上料料仓3" }
},
],
[
{
datetime: true,
label: "开始上料时间",
prop: "startTime",
rules: { required: true, message: "必填项不能为空", trigger: "blur" },
elparams: { placeholder: "请选择上料时间", type: 'datetime' },
},
{
datetime: true,
label: "结束上料时间",
prop: "endTime",
rules: { required: true, message: "必填项不能为空", trigger: "blur" },
elparams: { placeholder: "请选择上料结束时间", type: 'datetime' },
},
{ input: true, label: "描述信息", prop: "description", elparams: { placeholder: "描述信息" } },
],
[{ input: true, label: "备注", prop: "remark", elparams: { placeholder: "备注" } }],
],
operations: [
{ name: "add", label: "保存", type: "primary", permission: "pms:brokeLog:save", showOnEdit: false },
{ name: "update", label: "更新", type: "primary", permission: "pms:brokeLog:update", showOnEdit: true },
{ name: "reset", label: "重置", type: "warning", showAlways: true },
// { name: 'cancel', label: '取消', showAlways: true },
],
},
};
// 备注:弹窗弹出的时间和网速有关......
return {
dialogConfigs: dialogJustFormConfigs,
tableConfig: {
table: null, // 此处可省略el-table 上的配置项
column: tableProps, // el-column-item 上的配置项
},
headFormConfigs: {
rules: null, // 名称是由 BaseSearchForm.vue 组件固定的
fields: headFormFields, // 名称是由 BaseSearchForm.vue 组件固定的
},
urls: {
base: "/pms/brokeLog",
page: "/pms/brokeLog/page",
// subase: '/pms/blenderStepParam',
// subpage: '/pms/blenderStepParam/page',
// more...
},
};
}