|
|
@@ -126,11 +126,11 @@
|
|
|
import type { FormInstance } from 'ant-design-vue/es/form';
|
|
|
import ProblemReportModal from './components/ProblemReportModal.vue';
|
|
|
import { SvgIcon } from '/@/components/Icon';
|
|
|
- import { getColumns, getSearchFormSchema, type ProductionStatusMap, exportFormSchema } from './problemReport.data';
|
|
|
+ import { columns, searchFormSchema, exportFormSchema } from './problemReport.data';
|
|
|
import { getDataQuaQueList, addDataQuaQue, deleteDataQuaQue, editDataQuaQue } from '../basicInfo.api';
|
|
|
import { findNode } from '/@/utils/helper/treeHelper';
|
|
|
import { useMineDepartmentStore } from '/@/store/modules/mine';
|
|
|
- import { getDictItemsByCode } from '/@/utils/dict';
|
|
|
+ // import { getDictItemsByCode } from '/@/utils/dict';
|
|
|
import dayjs, { Dayjs } from 'dayjs';
|
|
|
import { useListPage } from '/@/hooks/system/useListPage';
|
|
|
|
|
|
@@ -149,7 +149,7 @@
|
|
|
const exportType = ref<'resolved' | 'unresolved'>('unresolved'); // 记录当前导出类型
|
|
|
const exportConfig = ref({
|
|
|
url: '/province/dataQuaQue/exportDataQuaQueList',
|
|
|
- name: '问题反馈',
|
|
|
+ name: '数据质量',
|
|
|
params: {
|
|
|
isOk: 0,
|
|
|
startTime: '',
|
|
|
@@ -157,7 +157,7 @@
|
|
|
},
|
|
|
});
|
|
|
|
|
|
- // 导出表单数据和规则(参考DataQualityModal写法)
|
|
|
+ // 导出表单数据和规则(参考ProblemReportModal写法)
|
|
|
const exportFormData = reactive({
|
|
|
startTime: null as Dayjs | null,
|
|
|
endTime: null as Dayjs | null,
|
|
|
@@ -179,58 +179,6 @@
|
|
|
return exportFormComponentMap[componentName as keyof typeof exportFormComponentMap];
|
|
|
};
|
|
|
|
|
|
- // ========== 定义动态状态映射/下拉选项 ==========
|
|
|
- // 1. 动态生产状态映射(key: 状态value,value: 包含label/color的配置)
|
|
|
- const dynamicProductionStatusMap = ref<ProductionStatusMap>({});
|
|
|
- // 2. 动态下拉选项(供搜索表单使用)
|
|
|
- const dynamicProductionStatusOptions = ref<{ label: string; value: string | number }[]>([]);
|
|
|
-
|
|
|
- // 3. 颜色分配规则(可根据业务灵活调整)
|
|
|
- const getStatusColor = (statusText: string) => {
|
|
|
- if (statusText.includes('正常生产')) return 'green'; // 正常生产 → 绿色
|
|
|
- if (statusText.includes('拟建矿井'))
|
|
|
- return 'blue'; // 拟建矿井 → 蓝色
|
|
|
- else return 'red'; // 停产/停建/关闭/整改/责令 → 红色
|
|
|
- };
|
|
|
-
|
|
|
- // 4. 从接口获取生产状态列表并生成动态映射/下拉选项
|
|
|
- const fetchProductionStatus = async () => {
|
|
|
- try {
|
|
|
- // 调用接口获取状态列表
|
|
|
- const statusList = await getDictItemsByCode('mineProStatus');
|
|
|
- if (!Array.isArray(statusList)) return;
|
|
|
-
|
|
|
- // 生成动态映射和下拉选项
|
|
|
- const statusMap: ProductionStatusMap = {};
|
|
|
- const statusOptions: { label: string; value: string | number }[] = [];
|
|
|
-
|
|
|
- statusList.forEach((item) => {
|
|
|
- const value = item.value; // 接口返回的value(数字/字符串)
|
|
|
- const label = item.text || item.label; // 接口返回的文本
|
|
|
- const color = getStatusColor(label); // 按规则分配颜色
|
|
|
-
|
|
|
- // 填充映射表
|
|
|
- statusMap[value] = { label, value, color };
|
|
|
- // 填充下拉选项
|
|
|
- statusOptions.push({ label, value });
|
|
|
- });
|
|
|
-
|
|
|
- // 赋值到响应式变量
|
|
|
- dynamicProductionStatusMap.value = statusMap;
|
|
|
- dynamicProductionStatusOptions.value = statusOptions;
|
|
|
-
|
|
|
- // 刷新表格(确保表格使用最新的映射)
|
|
|
- await safeReloadActiveTable();
|
|
|
- } catch (error) {
|
|
|
- console.error('获取生产状态列表失败:', error);
|
|
|
- message.error('生产状态数据加载失败');
|
|
|
- }
|
|
|
- };
|
|
|
-
|
|
|
- // 生成动态列和搜索表单配置
|
|
|
- const columns = computed(() => getColumns(dynamicProductionStatusMap));
|
|
|
- const searchFormSchema = computed(() => getSearchFormSchema(dynamicProductionStatusOptions));
|
|
|
-
|
|
|
// 未解决表格注册
|
|
|
const { tableContext: tableContextA, onExportXls: onExportXlsA } = useListPage({
|
|
|
tableProps: {
|
|
|
@@ -240,7 +188,7 @@
|
|
|
columns: columns, // 绑定动态列
|
|
|
formConfig: {
|
|
|
labelWidth: 120,
|
|
|
- schemas: searchFormSchema.value,
|
|
|
+ schemas: searchFormSchema,
|
|
|
showAdvancedButton: false,
|
|
|
schemaGroupNames: ['常规查询'],
|
|
|
actionColOptions: { span: 6 },
|
|
|
@@ -273,7 +221,7 @@
|
|
|
columns: columns,
|
|
|
formConfig: {
|
|
|
labelWidth: 120,
|
|
|
- schemas: searchFormSchema.value,
|
|
|
+ schemas: searchFormSchema,
|
|
|
showAdvancedButton: false,
|
|
|
schemaGroupNames: ['常规查询'],
|
|
|
},
|
|
|
@@ -322,7 +270,7 @@
|
|
|
async function handleExportConfirm() {
|
|
|
try {
|
|
|
exportConfirmLoading.value = true;
|
|
|
- // 表单校验(参考DataQualityModal的校验方式)
|
|
|
+ // 表单校验(参考ProblemReportModal的校验方式)
|
|
|
if (!exportFormRef.value) return;
|
|
|
const validateResult = await exportFormRef.value.validate();
|
|
|
if (!validateResult) return;
|
|
|
@@ -375,13 +323,13 @@
|
|
|
// 解析queJson并拼接orderNum+queCon的辅助函数
|
|
|
function formatQueJson(queJsonStr: string) {
|
|
|
// 空值处理
|
|
|
- if (!queJsonStr) return '无问题反馈';
|
|
|
+ if (!queJsonStr) return '无质量问题';
|
|
|
try {
|
|
|
const queList = JSON.parse(queJsonStr);
|
|
|
// 非数组格式处理
|
|
|
if (!Array.isArray(queList)) return '问题格式异常';
|
|
|
// 空数组处理
|
|
|
- if (queList.length === 0) return '无问题反馈';
|
|
|
+ if (queList.length === 0) return '无质量问题';
|
|
|
return queList
|
|
|
.map((item) => {
|
|
|
const goafName = item.goafName;
|
|
|
@@ -390,7 +338,7 @@
|
|
|
})
|
|
|
.join('\n'); // 多个问题分行显示
|
|
|
} catch (error) {
|
|
|
- console.error('解析问题反馈JSON失败:', error);
|
|
|
+ console.error('解析质量问题JSON失败:', error);
|
|
|
return '问题数据解析失败';
|
|
|
}
|
|
|
}
|
|
|
@@ -537,7 +485,6 @@
|
|
|
|
|
|
// ========== 初始化:先获取状态数据,再加载表格 ==========
|
|
|
onMounted(async () => {
|
|
|
- await fetchProductionStatus(); // 先获取动态状态数据
|
|
|
await safeReloadActiveTable();
|
|
|
});
|
|
|
</script>
|