Files
tms-erp-web/src/option/vehicle/tire-replacement-record.js
T

248 lines
5.9 KiB
JavaScript

import { formatUpdateUserName } from '@/utils/audit';
const validateNonNegative = (rule, value, callback) => {
if (value === undefined || value === null || value === '') {
callback();
} else if (Number(value) < 0) {
callback(new Error('不能小于 0'));
} else {
callback();
}
};
const validatePositiveInteger = (rule, value, callback) => {
if (value === undefined || value === null || value === '') {
callback();
} else if (!Number.isInteger(Number(value)) || Number(value) <= 0) {
callback(new Error('换胎数量必须为正整数'));
} else {
callback();
}
};
export const option = {
height: 'auto',
calcHeight: 32,
dialogWidth: 960,
labelPosition: 'right',
labelWidth: 'auto',
searchLabelWidth: 88,
tip: false,
searchBtnText: '查询',
emptyBtnText: '重置',
saveBtnText: '提交',
updateBtnText: '提交',
searchShow: true,
searchMenuSpan: 24,
searchIcon: true,
searchIndex: 4,
searchMenuPosition: 'right',
border: true,
index: true,
indexLabel: '序号',
indexWidth: 90,
viewBtn: true,
selection: true,
dialogClickModal: false,
menuWidth: 180,
column: [
{
label: '车牌号',
prop: 'vehicleNo',
type: 'select',
slot: true,
formslot: true,
search: true,
searchType: 'input',
minWidth: 130,
span: 12,
placeholder: '请选择车牌号',
rules: [
{ required: true, message: '请选择车牌号', trigger: 'change' },
{ max: 30, message: '最多 30 个字符', trigger: 'blur' },
],
},
{
label: '处理人',
prop: 'handler',
minWidth: 120,
span: 12,
placeholder: '请输入',
rules: [{ max: 20, message: '最多 20 个字符', trigger: 'blur' }],
},
{
label: '换胎时间',
prop: 'replacementTime',
sortable: true,
type: 'date',
format: 'YYYY-MM-DD',
valueFormat: 'YYYY-MM-DD',
minWidth: 130,
span: 12,
placeholder: '请选择',
rules: [{ required: true, message: '请选择换胎时间', trigger: 'click' }],
},
{
label: '轮胎品牌',
prop: 'tireBrand',
minWidth: 140,
span: 12,
placeholder: '请输入',
rules: [{ max: 50, message: '最多 50 个字符', trigger: 'blur' }],
},
{
label: '换胎数量',
prop: 'tireQuantity',
type: 'input',
formslot: true,
minWidth: 110,
span: 12,
placeholder: '请输入',
rules: [{ validator: validatePositiveInteger, trigger: 'blur' }],
},
{
label: '换胎费用',
prop: 'replacementCost',
type: 'input',
formslot: true,
minWidth: 120,
span: 12,
placeholder: '请输入',
rules: [
{ required: true, message: '请输入换胎费用', trigger: 'blur' },
{ validator: validateNonNegative, trigger: 'blur' },
],
},
{
label: '换胎说明',
prop: 'replacementDescription',
minWidth: 180,
overHidden: true,
span: 24,
placeholder: '请输入',
rules: [{ max: 200, message: '最多 200 个字符', trigger: 'blur' }],
},
{
label: '备注',
prop: 'remark',
type: 'textarea',
minRows: 2,
span: 24,
minWidth: 180,
overHidden: true,
placeholder: '请输入',
rules: [{ max: 500, message: '最多 500 个字符', trigger: 'blur' }],
},
{
label: '附件',
prop: 'attachments',
hide: true,
span: 24,
minWidth: 100,
slot: true,
formslot: true,
},
{
label: '创建时间',
prop: 'createTime',
sortable: true,
type: 'date',
format: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'YYYY-MM-DD HH:mm:ss',
addDisplay: false,
editDisplay: false,
viewDisplay: false,
display: false,
minWidth: 170,
},
{
label: '创建时间',
prop: 'createTimeRange',
type: 'date',
format: 'YYYY-MM-DD',
valueFormat: 'YYYY-MM-DD',
searchRange: true,
search: true,
hide: true,
addDisplay: false,
editDisplay: false,
viewDisplay: false,
},
{
label: '组织',
prop: 'createDept',
type: 'tree',
dicData: [],
props: {
label: 'title',
value: 'id',
},
checkStrictly: true,
search: true,
hide: true,
addDisplay: false,
editDisplay: false,
viewDisplay: false,
},
{
label: '更新人',
prop: 'updateUserName',
formatter: formatUpdateUserName,
addDisplay: false,
editDisplay: false,
display: false,
minWidth: 180,
},
{
label: '更新时间',
prop: 'updateTime',
sortable: true,
type: 'datetime',
format: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'YYYY-MM-DD HH:mm:ss',
addDisplay: false,
editDisplay: false,
display: false,
minWidth: 170,
},
],
};
export const exportColumns = [
{ prop: 'vehicleNo', label: '车牌号' },
{ prop: 'handler', label: '处理人' },
{ prop: 'replacementTime', label: '换胎时间' },
{ prop: 'tireBrand', label: '轮胎品牌' },
{ prop: 'tireQuantity', label: '换胎数量' },
{ prop: 'replacementCost', label: '换胎费用' },
{ prop: 'replacementDescription', label: '换胎说明' },
{ prop: 'remark', label: '备注' },
];
export const excelOption = {
labelPosition: 'right',
submitBtn: false,
emptyBtn: false,
column: [
{
label: '模板上传',
prop: 'excelFile',
type: 'upload',
drag: true,
loadText: '模板上传中,请稍等',
span: 24,
propsHttp: {
res: 'data',
},
tip: '请上传 .xls,.xlsx 标准格式文件',
action: '/blade-transport/tire-replacement-record/import-tire-replacement-record',
},
{
label: '模板下载',
prop: 'excelTemplate',
formslot: true,
span: 24,
},
],
};