Pārlūkot izejas kodu

元素表回显

duy 4 dienas atpakaļ
vecāks
revīzija
9213195305

+ 9 - 0
src/api/exctab/excelmodel.js

@@ -305,4 +305,13 @@ export const checkTableExist = (form) => {
         method: 'get',
         params: form
     })
+}
+
+//清表模板详情
+export const getTemplateExcelDetail = (form) => {
+    return request({
+        url: '/api/blade-manager/exceltab/templateExcelDetail',
+        method: 'get',
+        params: form
+    })
 }

+ 90 - 70
src/api/manager/wbsformelement.js

@@ -1,115 +1,135 @@
-import request from '@/router/axios';
+import request from "@/router/axios";
 
 export const getList = (current, size, params) => {
   return request({
-    url: '/api/blade-manager/wbsFormElement/list',
-    method: 'get',
+    url: "/api/blade-manager/wbsFormElement/list",
+    method: "get",
     params: {
       ...params,
       current,
       size,
-    }
-  })
-}
+    },
+  });
+};
 
 export const getDetail = (id) => {
   return request({
-    url: '/api/blade-manager/wbsFormElement/detail',
-    method: 'get',
+    url: "/api/blade-manager/wbsFormElement/detail",
+    method: "get",
     params: {
-      id
-    }
-  })
-}
+      id,
+    },
+  });
+};
 
-export const remove = (ids,initTableName,eKey) => {
+export const remove = (ids, initTableName, eKey) => {
   return request({
-    url: '/api/blade-manager/wbsFormElement/remove',
-    method: 'post',
+    url: "/api/blade-manager/wbsFormElement/remove",
+    method: "post",
     params: {
       ids,
       initTableName,
-      eKey
-    }
-  })
-}
+      eKey,
+    },
+  });
+};
 
 export const add = (row) => {
   return request({
-    url: '/api/blade-manager/wbsFormElement/submit',
-    method: 'post',
-    data: row
-  })
-}
+    url: "/api/blade-manager/wbsFormElement/submit",
+    method: "post",
+    data: row,
+  });
+};
 
 export const update = (row) => {
   return request({
-    url: '/api/blade-manager/wbsFormElement/submit',
-    method: 'post',
-    data: row
-  })
-}
+    url: "/api/blade-manager/wbsFormElement/submit",
+    method: "post",
+    data: row,
+  });
+};
 export const saveElement = (row) => {
   return request({
-    url: '/api/blade-manager/wbsFormElement/save',
-    method: 'post',
-    data: row
-  })
-}
+    url: "/api/blade-manager/wbsFormElement/save",
+    method: "post",
+    data: row,
+  });
+};
 
-export const updateBatchElements = (list,initTableName) => {
+export const updateBatchElements = (list, initTableName) => {
   return request({
-    url: '/api/blade-manager/wbsTree/update-batch-elements?initTableName='+initTableName,
-    method: 'post',
-    data: list
-  })
-}
+    url:
+      "/api/blade-manager/wbsTree/update-batch-elements?initTableName=" +
+      initTableName,
+    method: "post",
+    data: list,
+  });
+};
 
 export const getTemplate = () => {
   return request({
-    url: '/api/blade-manager/wbsFormElement/export-template',
-    method: 'get',
-    responseType:'arraybuffer'
-  })
-}
+    url: "/api/blade-manager/wbsFormElement/export-template",
+    method: "get",
+    responseType: "arraybuffer",
+  });
+};
 
 export const importWbsElement = (formData) => {
   return request({
-    url: '/api/blade-manager/wbsFormElement/import-wbsElement',
-    method: 'post',
-    data: formData
-  })
-}
+    url: "/api/blade-manager/wbsFormElement/import-wbsElement",
+    method: "post",
+    data: formData,
+  });
+};
 //同步查询功能
 export const querySyncRecord = (data) => {
   return request({
-    url: '/api/blade-manager/synchronousRecord/querySyncRecord',
-    method: 'get',
-    params:data
-  })
-}
+    url: "/api/blade-manager/synchronousRecord/querySyncRecord",
+    method: "get",
+    params: data,
+  });
+};
 
 //复制节点
 export const copyNode = (formData) => {
   return request({
-    url: '/api/blade-manager/wbsTree/copyNode',
-    method: 'post',
-    data: formData
-  })
-}
+    url: "/api/blade-manager/wbsTree/copyNode",
+    method: "post",
+    data: formData,
+  });
+};
 //删除同步记录
 export const deleteRecord = (data) => {
   return request({
-    url: '/api/blade-manager/synchronousRecord/delete',
-    method: 'get',
-    params:data
-  })
-}
+    url: "/api/blade-manager/synchronousRecord/delete",
+    method: "get",
+    params: data,
+  });
+};
 //刷新同步记录状态
 export const reFlush = (data) => {
   return request({
-    url: '/api/blade-manager/synchronousRecord/reFlush',
-    method: 'get',
-    params:data
-  })
-}
+    url: "/api/blade-manager/synchronousRecord/reFlush",
+    method: "get",
+    params: data,
+  });
+};
+
+//获取元素实体表详情
+export const getElementDetail = (data) => {
+  return request({
+    url: "/api/blade-manager/wbsFormElement/elementDetail",
+    method: "get",
+    params: data,
+  });
+};
+
+//获取元素实体表详情 对应的清表列表
+export const getElementDetailPage = (data) => {
+  return request({
+    url: "/api/blade-manager/wbsFormElement/elementDetailPage",
+    method: "get",
+    params: data,
+  });
+};

+ 20 - 19
src/views/exctab/excelmodel/excelmodel.vue

@@ -87,27 +87,19 @@
       <div class="basic-info">
         <div class="info-title">清表基础信息</div>
         <div class="info-content">
-          <div class="info-name-time">上传信息:张三 2025-12-03 17:30:30</div>
+          <div class="info-name-time">上传信息:{{ templateExcelDetail.updateUserName }}&nbsp;&nbsp;&nbsp;{{
+            templateExcelDetail.updateTime }}</div>
           <div class="info-table">
-            元素表:ZJ1001隧道总体质量检验表
-            <div class="copy-icon">
-              <i @click="copyText('元素表:ZJ1001隧道总体质量检验表')" class="el-icon-document-copy" style="color: #2550A2;"></i>
+            元素表:{{ templateExcelDetail.tabChName }}
+            <div class="copy-icon" v-if="templateExcelDetail.tabChName">
+              <i @click="copyText(templateExcelDetail.tabChName)" class="el-icon-document-copy"
+                style="color: #2550A2;"></i>
             </div>
           </div>
           <div class="info-project">
             <div class="project-title">使用项目:</div>
             <div class="project-content">
-              <div class="project-item" v-for="(item, index) in [
-                '甬台温高速公路(G15沈阳至海口国家高速公路)改扩建工程临海青岭至温岭大溪岭段',
-                2,
-                '甬台温高速公路(G15沈阳至海口国家高速公路)改扩建工程临海青岭至温岭大溪岭段',
-                '甬台温高速公路(G15沈阳至海口国家高速公路)改扩建工程临海青岭至温岭大溪岭段',
-                '甬台温高速公路(G15沈阳至海口国家高速公路)改扩建工程临海青岭至温岭大溪岭段',
-                '甬台温高速公路(G15沈阳至海口国家高速公路)改扩建工程临海青岭至温岭大溪岭段',
-                '甬台温高速公路(G15沈阳至海口国家高速公路)改扩建工程临海青岭至温岭大溪岭段',
-                '甬台温高速公路(G15沈阳至海口国家高速公路)改扩建工程临海青岭至温岭大溪岭段',
-                '甬台温高速公路(G15沈阳至海口国家高速公路)改扩建工程临海青岭至温岭大溪岭段',
-              ]" :key="index">
+              <div class="project-item" v-for="(item, index) in templateExcelDetail.projectNameList" :key="index">
                 {{ item }}
               </div>
             </div>
@@ -284,11 +276,10 @@ import { mapGetters } from "vuex";
 import { copyText } from "@/util/util";
 import {
   detailExcel, excelType, tabLazytree, getWbsTypeList, wbstree, selectByNodeTable, Excelmodify, uploadExcel, deleteExcelshu, deleteExcel, deleteExcelmodel, tabLazytreeAll,
-  uploadcoverfileExcel, downExcelFile, downExcelFileModel, exctabSort, batchUploadExcelTab
+  uploadcoverfileExcel, downExcelFile, downExcelFileModel, exctabSort, batchUploadExcelTab, getTemplateExcelDetail
 } from '@/api/exctab/excelmodel';
 import ManualSorting from '@/components/WbsTree/ManualSorting'
 import VabOnlyOffice from '@/components/online-office/index'
-// import { log } from '@antv/g2plot/lib/utils';
 import screenfull from "screenfull";
 
 export default {
@@ -408,7 +399,8 @@ export default {
       uploadId: '',
       excelfileList: [],
       dataList: [],
-      fileobj: []
+      fileobj: [],
+      templateExcelDetail: {},//模板详情
     }
   },
   computed: {
@@ -819,13 +811,18 @@ export default {
     },
     nodeClick(data) {//外层树结构
       this.curTreeData = data;
+      console.log("nodeClick", data);
+
       this.from.import = ""
       if (data.hasChildren == false) {
         this.from.checkd = true
+        this.getTemplateExcelDetail(data.id)
       } else if (data.fileType == 3) {
         this.from.checkd = true
+        this.templateExcelDetail = {}
       } else {
         this.from.checkd = false
+        this.templateExcelDetail = {}
       }
       if (this.from.checkd) {
         this.detailExcel(data.id)
@@ -835,7 +832,6 @@ export default {
           id: '',//清表树ID
           extension: '', //文件名称
           fileUrl: '',//文件路径
-
         }
       }
     },
@@ -1160,6 +1156,11 @@ export default {
       this.exceldialogVisible = false
       this.dataList = []
       this.excelfileList = []
+    },
+    async getTemplateExcelDetail(id) {
+      const { data } = await getTemplateExcelDetail({ id })
+      console.log(data.data)
+      this.templateExcelDetail = data.data
     }
   },
   created() {

+ 40 - 29
src/views/manager/wbsinfo/element.vue

@@ -52,7 +52,8 @@
                 </div>
               </template>
               <template slot-scope="{type,size,row}" slot="menu">
-                <el-button :size="size" :type="type" @click="getDetail(row)">查看详情</el-button>
+                <el-button :size="size" :type="type" @click="getDetail(row)"
+                  :loading="detailBtnLoading">查看详情</el-button>
                 <!-- <el-button  :size="size" :type="type" @click="distribution(row)">分配节点</el-button> -->
                 <el-button :size="size" :type="type" @click="handleEditFormula(row)">公式配置</el-button>
                 <el-button :size="size" :type="type" @click="editElement(row)">编辑元素</el-button>
@@ -245,23 +246,25 @@
       </span>
     </el-dialog>
 
-    <el-dialog title="元素表信息" custom-class="detail-dialog" :visible.sync="detailVisible" width="60%" append-to-body>
+    <el-dialog title="元素表信息" custom-class="detail-dialog" :visible.sync="detailVisible" width="60%" append-to-body
+      :close-on-click-modal="false">
       <div class="detail-container">
         <div class="detail-header">
           <div class="left">
-            <div class="tag">无数据存储</div>
+            <div v-if="detailTableData.isExistData" class="tag">有数据存储</div>
+            <div v-else class="tag no-data">无数据存储</div>
             <div class="basic-info">
-              <div class="name">D4.10表-隔离工程土工合成材料处置层质量检验单</div>
-              <div class="desc">创建信息:张三 2025-08-05 16:42:07</div>
+              <div class="name">{{ detailTableData.tabChName }}</div>
+              <div class="desc">创建信息:{{ detailTableData.name }}&nbsp;&nbsp;&nbsp;{{ detailTableData.createTime }}</div>
             </div>
           </div>
           <div class="right">
             <div class="item">
-              <div class="num">3</div>
+              <div class="num">{{ detailTableData.privateCount }}</div>
               <div class="label">使用项目数</div>
             </div>
             <div class="item">
-              <div class="num">2023</div>
+              <div class="num">{{ detailTableData.tabExcelCount }}</div>
               <div class="label">使用清表数</div>
             </div>
           </div>
@@ -271,17 +274,7 @@
             使用项目明细
           </div>
           <div class="content-project">
-            <div class="project-item" v-for="(item, index) in [
-              '甬台温高速公路(G15沈阳至海口国家高速公路)改扩建工程临海青岭至温岭大溪岭段',
-              2,
-              '甬台温高速公路(G15沈阳至海口国家高速公路)改扩建工程临海青岭至温岭大溪岭段',
-              '甬台温高速公路(G15沈阳至海口国家高速公路)改扩建工程临海青岭至温岭大溪岭段',
-              '甬台温高速公路(G15沈阳至海口国家高速公路)改扩建工程临海青岭至温岭大溪岭段',
-              '甬台温高速公路(G15沈阳至海口国家高速公路)改扩建工程临海青岭至温岭大溪岭段',
-              '甬台温高速公路(G15沈阳至海口国家高速公路)改扩建工程临海青岭至温岭大溪岭段',
-              '甬台温高速公路(G15沈阳至海口国家高速公路)改扩建工程临海青岭至温岭大溪岭段',
-              '甬台温高速公路(G15沈阳至海口国家高速公路)改扩建工程临海青岭至温岭大溪岭段',
-            ]" :key="index">
+            <div class="project-item" v-for="(item, index) in detailTableData.projectList" :key="index">
               {{ item }}
             </div>
           </div>
@@ -289,11 +282,11 @@
             使用清表明细
           </div>
           <div class="content-table">
-            <el-table :data="detailTableData" style="width: 100%" height="400px" v-loading="detailTableLoading"
+            <el-table :data="detailTablePage" style="width: 100%" max-height="400px" v-loading="detailTableLoading"
               :header-row-style="{ backgroundColor: '#F9FAFB' }">
               <el-table-column align="center" type="index" width="50" label="序号"></el-table-column>
               <el-table-column prop="tableName" label="清表模板名称"></el-table-column>
-              <el-table-column prop="tableName" label="清表节点名称"></el-table-column>
+              <el-table-column prop="nodeName" label="清表节点名称"></el-table-column>
             </el-table>
             <el-pagination hide-on-single-page style="float: right" background class="martop20 marbottom20"
               layout="total, prev, pager, next, jumper, sizes" :total="detailTableTotal" @size-change="handleSizeChange"
@@ -317,7 +310,7 @@ import {
 } from "@/api/manager/wbstree";
 import { getTableElments } from "@/api/manager/wbstree";
 import { tabTypeLazyTreeAll, delTabInfoAll } from "@/api/manager/wbsprivate";
-import { saveElement, remove as removeElement, updateBatchElements, getTemplate, importWbsElement } from "@/api/manager/wbsformelement";
+import { saveElement, remove as removeElement, updateBatchElements, getElementDetail, getElementDetailPage, getTemplate, importWbsElement } from "@/api/manager/wbsformelement";
 import FormulaEdit from "@/views/formula/edit1.vue";
 import PublicWbs from './components/PublicWbs.vue'
 import { searchNodeTables, } from "@/api/exctab/excelmodel";
@@ -550,7 +543,9 @@ export default {
       searchinput: '',
       eTypeVal: '',
       detailVisible: false,
-      detailTableData: [],
+      detailBtnLoading: false,
+      detailTablePage: [],//详情数据
+      detailTableData: {},
       detailTableLoading: false,
       detailTableTotal: 0,
       detailTableQuery: {
@@ -584,14 +579,24 @@ export default {
       this.query.pageIndex = val;
       this.listTablePage();
     },
-    listTablePage() {
-
-      this.detailTableData = []
+    async listTablePage() {
+      const { data } = await getElementDetailPage({
+        id: this.detailTableData.id,
+        current: this.detailTableQuery.pageIndex,
+        pageSize: this.detailTableQuery.pageSize
+      });
+      console.log(data, 'data.records');
+      this.detailTableTotal = data.data.total
+      this.detailTablePage = data.data.records
 
     },
-    getDetail(row) {
+    async getDetail(row) {
+      this.detailBtnLoading = true;
+      const { data } = await getElementDetail({ id: row.id });
+      this.detailTableData = data.data;
+      this.detailBtnLoading = false;
       this.detailVisible = true
-      this.listTablePage();
+      await this.listTablePage();
     },
     // 查看详情===========================end
     //关闭公式弹窗
@@ -1399,9 +1404,14 @@ export default {
           border-radius: 20px;
           font-size: 12px;
           padding: 3px 5px;
-          background-color: #fee2e3;
-          color: #e03b3f;
+          background-color: #DCFCE7;
+          color: #16A34A;
           margin-right: 10px;
+
+          &.no-data {
+            background-color: #fee2e3;
+            color: #e03b3f;
+          }
         }
 
         .basic-info {
@@ -1476,6 +1486,7 @@ export default {
 
       .content-table {
         margin-top: 6px;
+        margin-bottom: 20px;
       }
     }
   }