| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 |
- import { BasicColumn } from '/@/components/Table';
- import { FormSchema } from '/@/components/Table';
- import { h } from 'vue';
- // 生产状态映射表(扩展所有状态)
- const productionStatusMap: Record<string | number, { text: string; value: number; color: string }> = {
- 0: { text: '正常生产矿井', value: 0, color: 'green' },
- 1: { text: '拟建矿井', value: 1, color: 'blue' },
- 2: { text: '正常建设煤矿', value: 2, color: 'red' },
- 3: { text: '自行停产矿井', value: 3, color: 'red' },
- 4: { text: '正在关闭', value: 4, color: 'red' },
- 5: { text: '责令停产整顿', value: 5, color: 'red' },
- 6: { text: '责令停止建设', value: 6, color: 'red' },
- 7: { text: '已关闭矿井', value: 7, color: 'red' },
- 8: { text: '长期停产矿井', value: 8, color: 'red' },
- 9: { text: '长期停建矿井', value: 9, color: 'red' },
- 10: { text: '停产整改矿井', value: 10, color: 'red' },
- 11: { text: '长期停建无法联系', value: 11, color: 'red' },
- 12: { text: '停建整改', value: 12, color: 'red' },
- 13: { text: '自行停建', value: 13, color: 'red' },
- 14: { text: '正在实施关闭', value: 14, color: 'red' },
- // 15: { text: '已关闭矿井', color: 'red' },
- };
- // 基于productionStatusMap生成下拉选项
- export const productionStatusOptions = Object.entries(productionStatusMap).map(([key, item]) => ({
- label: item.text, // 状态名称
- value: key, // 状态值
- }));
- // 颜色映射
- const colorHexMap: Record<string, string> = {
- blue: '#1890ff',
- green: '#208840',
- gold: '#faad14',
- red: '#f5222d',
- gray: '#8c8c8c',
- black: '#000000',
- };
- export const columns: BasicColumn[] = [
- {
- title: '煤矿编号',
- dataIndex: 'mineCode',
- width: 100,
- },
- {
- title: '所属执法处',
- dataIndex: 'managementName',
- width: 100,
- },
- {
- title: '煤矿名称',
- dataIndex: 'mineName',
- width: 200,
- },
- {
- title: '煤矿简称',
- dataIndex: 'mineNameAbbr',
- width: 100,
- },
- {
- title: '生产状态',
- dataIndex: 'productionStatus',
- width: 100,
- customRender: ({ record }) => {
- // 空值/异常值处理
- const status = String(record.productionStatus || '');
- const { text, color } = productionStatusMap[status] || { text: '未知状态', color: 'balck' };
- // 渲染普通span,仅设置文字颜色
- return h('span', { style: { color: colorHexMap[color] || colorHexMap.gray } }, text);
- },
- },
- {
- title: '自燃情况',
- dataIndex: 'alarmLevel',
- width: 100,
- },
- {
- title: '接入状态',
- dataIndex: 'accessStatus',
- width: 100,
- customRender: ({ record }) => {
- // 空值/异常值处理
- const status = String(record.accessStatus || '');
- if (!status || status === 'undefined' || status === 'null') {
- return h('span', { style: { color: colorHexMap.black } }, '/');
- }
- const text = status === '1' ? '接入' : '未接入';
- const textColor = status === '1' ? colorHexMap.green : colorHexMap.gold;
- return h('span', { style: { color: textColor } }, text);
- },
- },
- {
- title: '在线状态',
- dataIndex: 'status',
- width: 100,
- customRender: ({ record }) => {
- const status = String(record.status || '');
- if (!status || status === 'undefined' || status === 'null') {
- return h('span', { style: { color: colorHexMap.black } }, '/');
- }
- const text = status === '1' ? '在线' : '离线';
- const textColor = status === '1' ? colorHexMap.green : colorHexMap.red;
- return h('span', { style: { color: textColor } }, text);
- },
- },
- {
- title: '应接数量',
- dataIndex: 'yingjieNum',
- width: 100,
- },
- {
- title: '已接数量',
- dataIndex: 'accessGoafNum',
- width: 100,
- },
- {
- title: '未接数量',
- dataIndex: 'notAccessGoafNum',
- width: 100,
- },
- ];
- export const searchFormSchema: FormSchema[] = [
- {
- field: 'mineCode',
- label: '煤矿名称',
- component: 'MineCascader',
- colProps: { span: 6 },
- },
- {
- field: 'mineNameAbbr',
- label: '煤矿简称',
- component: 'Input',
- colProps: { span: 6 },
- },
- {
- field: 'productionStatus',
- label: '生产状态',
- component: 'Select',
- componentProps: {
- options: productionStatusOptions,
- },
- colProps: { span: 6 },
- },
- {
- field: 'accessStatus',
- label: '接入状态',
- component: 'Select',
- componentProps: {
- options: [
- { label: '接入', value: 1 },
- { label: '未接入', value: 0 },
- ],
- },
- colProps: { span: 6 },
- },
- {
- field: 'status',
- label: '在线状态',
- component: 'Select',
- componentProps: {
- options: [
- { label: '离线', value: '0' },
- { label: '在线', value: '1' },
- ],
- },
- colProps: { span: 6 },
- },
- {
- field: 'riskLevel',
- label: '风险等级',
- component: 'Select',
- componentProps: {
- options: [
- { label: 'Ⅰ类容易自燃', value: '0' },
- { label: 'Ⅱ类自燃', value: '1' },
- { label: 'Ⅲ类不易自燃', value: '2' },
- ],
- },
- colProps: { span: 6 },
- },
- ];
|