import { formatUpdateUserName } from '@/utils/audit'; const isEmpty = value => value === undefined || value === null || value === ''; const validateNonNegative = (rule, value, callback) => { if (isEmpty(value)) { callback(); } else if (Number(value) < 0) { callback(new Error('不能小于 0')); } else { callback(); } }; export const vehicleTypeDic = [ { label: '车辆', value: '车辆' }, { label: '船舶', value: '船舶' }, ]; export const feeTypeDic = [ { label: '加油', value: '加油' }, { label: '充电', value: '充电' }, ]; export const option = { height: 'auto', calcHeight: 32, dialogWidth: 980, labelPosition: 'top', tip: false, searchShow: true, searchMenuSpan: 6, border: true, index: true, viewBtn: true, selection: true, dialogClickModal: false, menuWidth: 180, menuFixed: 'right', column: [ { label: '卡号', prop: 'cardNo', minWidth: 150, rules: [{ max: 30, message: '最多 30 个字符', trigger: 'blur' }], }, { label: '交易时间', prop: 'transactionTime', type: 'datetime', format: 'YYYY-MM-DD HH:mm', valueFormat: 'YYYY-MM-DD HH:mm:ss', minWidth: 170, rules: [{ required: true, message: '请选择交易时间', trigger: 'click' }], }, { label: '车船类型', prop: 'vehicleType', type: 'radio', dicData: vehicleTypeDic, value: '车辆', search: true, minWidth: 110, rules: [{ required: true, message: '请选择车船类型', trigger: 'change' }], }, { label: '费用类型', prop: 'feeType', type: 'select', dicData: feeTypeDic, search: true, minWidth: 120, rules: [{ required: true, message: '请选择费用类型', trigger: 'change' }], }, { label: '油品', prop: 'oilProduct', minWidth: 160, rules: [{ max: 50, message: '最多 50 个字符', trigger: 'blur' }], }, { label: '车牌号/船号', prop: 'vehicleNo', slot: true, formslot: true, search: true, minWidth: 150, rules: [ { required: true, message: '请输入车牌号/船号', trigger: 'blur' }, { max: 30, message: '最多 30 个字符', trigger: 'blur' }, ], }, { label: '持卡人', prop: 'cardHolder', minWidth: 120, rules: [{ max: 20, message: '最多 20 个字符', trigger: 'blur' }], }, { label: '数据来源', prop: 'dataSource', value: '手工录入', minWidth: 120, addDisplay: false, editDisplay: false, }, { label: '数量', prop: 'quantity', type: 'number', precision: 2, minWidth: 110, rules: [{ validator: validateNonNegative, trigger: 'blur' }], }, { label: '单价', prop: 'unitPrice', type: 'number', precision: 2, minWidth: 120, append: '元/升', rules: [{ validator: validateNonNegative, trigger: 'blur' }], }, { label: '交易金额', prop: 'transactionAmount', type: 'number', precision: 2, minWidth: 130, rules: [ { required: true, message: '请输入交易金额', trigger: 'blur' }, { validator: validateNonNegative, trigger: 'blur' }, ], }, { label: '余额', prop: 'balance', type: 'number', precision: 2, minWidth: 110, rules: [{ validator: validateNonNegative, trigger: 'blur' }], }, { label: '站点', prop: 'station', minWidth: 150, rules: [{ max: 50, message: '最多 50 个字符', trigger: 'blur' }], }, { label: '备注', prop: 'remark', type: 'textarea', minRows: 4, span: 24, minWidth: 180, overHidden: true, rules: [{ max: 200, message: '最多 200 个字符', trigger: 'blur' }], }, { label: '附件', prop: 'attachments', type: 'upload', listType: 'text', multiple: true, accept: '.jpg,.jpeg,.png,.pdf', propsHttp: { res: 'data', url: 'link', name: 'name', }, action: '/blade-resource/oss/endpoint/put-file', span: 24, minWidth: 100, slot: true, }, { label: '交易开始时间', prop: 'transactionTimeStart', type: 'datetime', format: 'YYYY-MM-DD HH:mm:ss', valueFormat: 'YYYY-MM-DD HH:mm:ss', search: true, hide: true, addDisplay: false, editDisplay: false, viewDisplay: false, }, { label: '交易结束时间', prop: 'transactionTimeEnd', type: 'datetime', format: 'YYYY-MM-DD HH:mm:ss', valueFormat: 'YYYY-MM-DD HH:mm:ss', search: true, hide: true, addDisplay: false, editDisplay: false, viewDisplay: false, }, { label: '消费金额开始值', prop: 'transactionAmountStart', type: 'number', precision: 2, search: true, hide: true, addDisplay: false, editDisplay: false, viewDisplay: false, }, { label: '消费金额结束值', prop: 'transactionAmountEnd', type: 'number', precision: 2, search: true, hide: true, addDisplay: false, editDisplay: false, viewDisplay: false, }, { label: '创建时间', prop: 'createTime', 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: 'createTimeStart', type: 'date', format: 'YYYY-MM-DD 00:00:00', valueFormat: 'YYYY-MM-DD 00:00:00', search: true, hide: true, addDisplay: false, editDisplay: false, viewDisplay: false, }, { label: '创建结束时间', prop: 'createTimeEnd', type: 'date', format: 'YYYY-MM-DD 23:59:59', valueFormat: 'YYYY-MM-DD 23:59:59', 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', 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 excelOption = { submitBtn: false, emptyBtn: false, column: [ { label: '模板上传', prop: 'excelFile', type: 'upload', drag: true, loadText: '模板上传中,请稍等', span: 24, propsHttp: { res: 'data', }, tip: '请上传 .xls,.xlsx 标准格式文件', action: '/blade-transport/oil-electric-record/import-oil-electric-record', }, { label: '模板下载', prop: 'excelTemplate', formslot: true, span: 24, }, ], };