Răsfoiți Sursa

[Fix 0000] 修复问题反馈页面的接口对接问题及数据质量跳转问题

houzekong 2 luni în urmă
părinte
comite
79b5d23f4c

+ 10 - 5
src/views/dashboard/basicInfo/basicInfo.api.ts

@@ -97,12 +97,17 @@ export const addGoafQuestionReport = (params) =>
     params,
   });
 export const deleteGoafQuestionReport = (params) =>
-  defHttp.delete({
-    url: Api.deleteGoafQuestionReport,
-    params,
-  });
+  defHttp.delete(
+    {
+      url: Api.deleteGoafQuestionReport,
+      params,
+    },
+    {
+      joinParamsToUrl: true,
+    }
+  );
 export const editGoafQuestionReport = (params) =>
-  defHttp.get({
+  defHttp.post({
     url: Api.editGoafQuestionReport,
     params,
   });

+ 2 - 2
src/views/dashboard/basicInfo/dataQuality/index.vue

@@ -416,7 +416,7 @@
   async function handleGoToPage(record: any) {
     try {
       const mineCode = record.mineCode;
-      const targetNode = findNode(mineStore.getDepartTree, (item) => item.id === mineCode, { id: 'id', pid: 'parentId', children: 'childDepart' });
+      const targetNode = findNode(mineStore.getDepartTree, (item) => item.fax === mineCode, { id: 'id', pid: 'parentId', children: 'childDepart' });
 
       let minePath = '';
       if (targetNode) {
@@ -427,7 +427,7 @@
       }
 
       // 跳转页面(可携带拼接后的矿名/路径等参数)
-      router.push({ path: `/sealed/${minePath}`, query: { mineCode } });
+      router.push({ path: `/sealed/${minePath}`, query: { id: targetNode.id } });
     } catch (error) {
       console.error('矿节点定位失败:', error);
       message.error('矿节点定位失败,请稍后重试');

+ 21 - 14
src/views/dashboard/basicInfo/problemReport/components/ProblemReportModal.vue

@@ -26,7 +26,7 @@
         <div class="que-item" v-for="(item, index) in queList" :key="index">
           <div class="que-details">
             <div class="que-field">
-              <span class="que-value que-goafName">{{ item.goafName || '-' }}</span>
+              <span class="que-value que-goafName">{{ item.queTitle || '-' }}</span>
             </div>
             <div class="que-field time-field">
               <span class="que-label">时间:</span>
@@ -48,19 +48,20 @@
 
       <!-- 编辑/新增模式 -->
       <div v-else class="edit-container">
-        <!-- 动态渲染topFormSchema字段(编辑/新增模式) -->
-        <!-- <div class="mine-base-info" v-if="mode === 'add'">
-          <a-form-item v-for="schema in topFormSchema" :key="schema.field" :name="schema.field" :label="schema.label" :rules="schema.rules">
-            <component
-              :is="getComponent(schema.component)"
-              v-model:value="currentRecord[schema.field]"
-              v-bind="schema.componentProps"
-              :placeholder="`请输入${schema.label}`"
-              style="width: 100%"
-              disabled
+        <div class="mine-base-info" v-if="mode === 'add'">
+          <a-form-item name="deptId" label="煤矿名称">
+            <MineCascader
+              v-model:value="innerValue"
+              :sync-to-store="false"
+              :init-from-store="false"
+              :change-on-select="false"
+              @change="changeCascader"
             />
           </a-form-item>
-        </div> -->
+          <a-form-item name="goafId" label="密闭名称">
+            <a-select v-model:value="goafId" :options="goafOptions" placeholder="请选择" />
+          </a-form-item>
+        </div>
 
         <!-- 问题项编辑区 -->
         <div class="que-item" v-for="(item, index) in queList" :key="item.orderNum || index">
@@ -96,13 +97,14 @@
 <script setup lang="ts">
   import { ref, computed, reactive, watch } from 'vue';
   import { BasicModal, useModalInner } from '/@/components/Modal';
-  import { formSchema, topFormSchema } from '../problemReport.data';
+  import { formSchema } from '../problemReport.data';
   import { Select, Input, DatePicker, message } from 'ant-design-vue';
   import { PlusOutlined } from '@ant-design/icons-vue';
   import dayjs, { Dayjs } from 'dayjs';
   import MineCascader from '/@/components/Form/src/jeecg/components/MineCascader/MineCascader.vue';
   import type { FormInstance, RuleObject } from 'ant-design-vue/es/form';
   import { JEditor, JImageUpload } from '/@/components/Form';
+  import { useInitForm } from '/@/views/analysis/warningAnalysis/connectAnalysis/hooks/form';
 
   // 组件映射表
   const componentMap = {
@@ -117,6 +119,7 @@
 
   // 定义事件发射
   const emit = defineEmits(['success']);
+  const { goafOptions, goafId, innerValue, initGoafOptions } = useInitForm();
 
   // 模态框模式:查看/编辑/新增
   const mode = ref<'view' | 'edit' | 'add'>('view');
@@ -142,7 +145,6 @@
 
   // 合并表单规则(从schema中提取)
   const formRules = reactive({
-    mineCode: topFormSchema.find((item) => item.field === 'mineCode')?.rules || [],
     queList: {
       type: 'array',
       required: true,
@@ -372,6 +374,11 @@
       setModalProps({ confirmLoading: false });
     }
   }
+
+  function changeCascader(val) {
+    innerValue.value = val;
+    initGoafOptions(val);
+  }
 </script>
 
 <style scoped>

+ 18 - 6
src/views/dashboard/basicInfo/problemReport/index.vue

@@ -5,7 +5,15 @@
     <TabPane key="unresolved" tab="未解决">
       <BasicTable style="padding: 0" @register="registerUnresolvedTable">
         <template #resetBefore>
-          <a-button type="primary" class="ml-8px" preIcon="mdi:page-next-outline" @click="handleOpenModal({}, 'add')"> 新增问题 </a-button>
+          <a-button
+            v-if="mineStore.getRoot?.isLeaf"
+            type="primary"
+            class="ml-8px"
+            preIcon="mdi:page-next-outline"
+            @click="handleOpenModal({}, 'add')"
+          >
+            新增问题
+          </a-button>
           <a-button type="default" class="ml-8px" preIcon="mdi:download" @click="handleOpenExportModal('unresolved')"> 导出 </a-button>
         </template>
         <template #queJson="{ record }">
@@ -220,7 +228,7 @@
           ...params,
           isOk: false,
           goafId: goafId.value,
-          deptId: innerValue.value,
+          deptId: mineStore.getRootId,
         });
       },
       columns: columns, // 绑定动态列
@@ -258,7 +266,7 @@
           ...params,
           isOk: true,
           goafId: goafId.value,
-          deptId: innerValue.value,
+          deptId: mineStore.getRootId,
         });
       },
       columns: columns,
@@ -451,7 +459,11 @@
   async function handleModalSuccess(result: any) {
     try {
       if (pageMode.value === 'add') {
-        await addGoafQuestionReport(result);
+        await addGoafQuestionReport({
+          ...result,
+          deptId: mineStore.getRootId,
+          mineCode: mineStore.getRoot?.fax,
+        });
       } else if (pageMode.value === 'edit') {
         await editGoafQuestionReport(result);
       }
@@ -468,7 +480,7 @@
   async function handleGoToPage(record: any) {
     try {
       const mineCode = record.mineCode;
-      const targetNode = findNode(mineStore.getDepartTree, (item) => item.id === mineCode, { id: 'id', pid: 'parentId', children: 'childDepart' });
+      const targetNode = findNode(mineStore.getDepartTree, (item) => item.fax === mineCode, { id: 'id', pid: 'parentId', children: 'childDepart' });
 
       let minePath = '';
       if (targetNode) {
@@ -479,7 +491,7 @@
       }
 
       // 跳转页面(可携带拼接后的矿名/路径等参数)
-      router.push({ path: `/sealed/${minePath}`, query: { mineCode } });
+      router.push({ path: `/sealed/${minePath}`, query: { id: targetNode.id } });
     } catch (error) {
       console.error('矿节点定位失败:', error);
       message.error('矿节点定位失败,请稍后重试');

+ 6 - 0
src/views/dashboard/basicInfo/problemReport/problemReport.data.ts

@@ -224,6 +224,9 @@ export const formSchema: FormSchema[] = [
       //最大上传数量
       fileMax: 9,
     },
+    colProps: {
+      span: 6,
+    },
   },
   {
     label: '密闭墙确认照片',
@@ -241,6 +244,9 @@ export const formSchema: FormSchema[] = [
       //最大上传数量
       fileMax: 9,
     },
+    colProps: {
+      span: 6,
+    },
   },
   // {
   //   field: 'param',