//此js文件是用来自定义扩展业务代码,可以扩展一些自定义页面或者重新配置生成的代码
let extension = {
components: {
//查询界面扩展组件
gridHeader: '',
gridBody: '',
gridFooter: '',
//新建、编辑弹出框扩展组件
modelHeader: '',
modelBody: '',
modelFooter: ''
},
tableAction: '', //指定某张表的权限(这里填写表名,默认不用填写)
buttons: { view: [], box: [], detail: [] }, //扩展的按钮
methods: {
onInit() {
this.buttons.forEach(x => {
if (x.name == "删 除") {
x.name = "处 理";
x.icon = 'el-icon-edit';
x.type = 'primary';
}
});
// 在 onInit 中直接修改列配置
this.fixColumnFormatter();
},
// 直接修改列配置
fixColumnFormatter() {
// 延迟执行,确保列已加载
this.$nextTick(() => {
setTimeout(() => {
const col = this.columns?.find(c => c.field === 'messageGroupBy');
if (col) {
// 完全替换 formatter
col.formatter = (row) => {
const value = row.messageGroupBy;
const text = this.getTextByValue(value);
if (value === 1) {
// 库存过期预警 - 根据天数分三种颜色
const info = row.messageInfo || '';
const days = this.extractDays(info);
// 设置样式
let style = '';
if (days !== null) {
if (days < 0) {
// 已过期 - 红色
style = 'background-color:#fff0f0;color:#f56c6c;border:1px solid #f56c6c33;';
} else if (days <= 30) {
// 1个月内过期 - 红色
style = 'background-color:#fff0f0;color:#f56c6c;border:1px solid #f56c6c33;';
} else if (days <= 120) {
// 大于30天且小于等于120天 - 橙色
style = 'background-color:#fdf6ec;color:#e6a23c;border:1px solid #e6a23c33;';
} else {
// 大于120天 - 绿色
style = 'background-color:#f0f9eb;color:#67c23a;border:1px solid #67c23a33;';
}
} else {
// 默认样式
style = 'background-color:#f5f5f5;color:#909399;border:1px solid #dcdfe6;';
}
return `${text}`;
}
// 其他分组 - 保持原有的样式
return this.getOtherGroupStyle(value, text);
};
console.log('列格式化函数已设置');
}
}, 200);
});
},
// 其他分组的样式
getOtherGroupStyle(value, text) {
const styleMap = {
0: 'background-color:#e8f4ff;color:#0088ff;border:1px solid #0088ff33;', // 设备报警 - 亮蓝色
2: 'background-color:#fff2e8;color:#ff8800;border:1px solid #ff880033;', // 低库存预警 - 亮橙色
3: 'background-color:#ffe8e8;color:#ff4444;border:1px solid #ff444433;', // 物料待维护报警 - 亮红色
4: 'background-color:#f0e8ff;color:#8844ff;border:1px solid #8844ff33;', // 入库单报警 - 紫色
5: 'background-color:#e8fffb;color:#00aa88;border:1px solid #00aa8833;', // 出库单报警 - 青色
6: 'background-color:#fff8e8;color:#ffaa00;border:1px solid #ffaa0033;', // 与ERP同步报警 - 金色
};
const style = styleMap[value] || 'background-color:#f5f5f5;color:#909399;border:1px solid #dcdfe6;';
return `${text}`;
},
getTextByValue(value) {
const map = {
0: '设备报警',
1: '库存过期预警',
2: '低库存预警',
3: '物料待维护报警',
4: '入库单报警',
5: '出库单报警',
6: '与ERP同步报警'
};
return map[value] || `分组${value}`;
},
extractDays(info) {
if (!info) return null;
const match1 = info.match(/还有(\d+)天过期/);
const match2 = info.match(/已过期(\d+)天/);
if (match1) return parseInt(match1[1]);
if (match2) return -parseInt(match2[1]);
return null;
},
onInited() {
//框架初始化配置后
//可以在这里配置下拉框数据
},
// 设置设备状态下拉框选项
setDeviceStatusOptions() {
},
searchBefore(param) {
//界面查询前,可以给param.wheres添加查询参数
//返回false,则不会执行查询
return true;
},
searchAfter(result) {
//查询后,result返回的查询数据,可以在显示到表格前处理表格的值
return true;
},
addBefore(formData) {
//新建保存前formData为对象,包括明细表,可以给给表单设置值
return true;
},
updateBefore(formData) {
//编辑保存前formData为对象,包括明细表、删除行的Id
return true;
},
rowClick({ row, column, event }) {
//查询界面点击行事件
this.$refs.table.$refs.table.toggleRowSelection(row); //单击行时选中当前行;
},
modelOpenAfter(row) {
//点击编辑、新建按钮弹出框后,可以在此处写逻辑
}
}
};
export default extension;