From 78a3c898908bbb8827d1c2aa6299f92ff03f5847 Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期三, 21 十月 2026 15:06:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/views/CNAS/process/method/standardNoveltyRetrieval/index.vue |  512 ++++++++------------------------------------------------
 1 files changed, 77 insertions(+), 435 deletions(-)

diff --git a/src/views/CNAS/process/method/standardNoveltyRetrieval/index.vue b/src/views/CNAS/process/method/standardNoveltyRetrieval/index.vue
index 51f8f15..8ea5d96 100644
--- a/src/views/CNAS/process/method/standardNoveltyRetrieval/index.vue
+++ b/src/views/CNAS/process/method/standardNoveltyRetrieval/index.vue
@@ -2,14 +2,9 @@
   <div class="capacity-scope">
     <div style="display: flex;justify-content: space-between">
       <div style="display: flex;">
-        <div style="margin-bottom: 18px;margin-right: 10px;display: flex;align-items: center;line-height: 32px;" v-if="tabIndex === '0'">
-          <span style="width: 68px;font-size: 14px;font-weight: 700;color: #606266;">鏍囧噯鍙�</span>
+        <div style="margin-bottom: 18px;margin-right: 10px;display: flex;align-items: center;line-height: 32px;">
+          <span style="width: 68px;font-size: 14px;font-weight: 700;color: var(--lims-text-2);">鏍囧噯鍙�</span>
           <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="searchForm.standardNo"
-                    @keyup.enter="searchList"></el-input>
-        </div>
-        <div style="margin-bottom: 18px;margin-right: 10px;display: flex;align-items: center;line-height: 32px;" v-if="tabIndex === '1'">
-          <span style="width: 88px;font-size: 14px;font-weight: 700;color: #606266;">瀛樻。鍚嶇О</span>
-          <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="searchForm.archivedName"
                     @keyup.enter="searchList"></el-input>
         </div>
         <div style="line-height: 30px;">
@@ -18,75 +13,46 @@
         </div>
       </div>
       <div style="line-height: 30px;">
-        <el-button size="small" type="primary" @click="openApprovalDialog1">寤� 妗�</el-button>
-        <el-upload ref='upload' :action="action" :before-upload="beforeUpload" :headers="uploadHeader" :on-error="onError"
-                   :on-success="handleSuccessUp" :show-file-list="false"
-                   accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar'
-                   style="display: inline-block; margin-left: 10px;">
-          <el-button :loading="upLoading" size="small" type="primary">瀵煎叆</el-button>
-        </el-upload>
+        <el-button size="small" type="primary" style="margin-left: 10px;"
+                   @click="$refs.importDialog.open()">瀵煎叆</el-button>
         <el-button size="small" style="margin-left: 10px;" type="primary" @click="openFormDia">鏂� 澧�</el-button>
       </div>
     </div>
     <div>
       <div class="table">
-        <div class="table-tab">
-          <el-radio-group v-model="tabIndex" @change="searchList">
-            <el-radio-button value="0">浠婂勾鏍囧噯璁板綍</el-radio-button>
-            <el-radio-button value="1">鍘嗗彶妗f</el-radio-button>
-          </el-radio-group>
-        </div>
-        <div v-if="tabIndex === '0'">
-          <lims-table :column="tableColumn" :height="'calc(100vh - 26em)'" :table-data="tableData"
-                      :table-loading="tableLoading" :page="page" @pagination="pagination">
-          </lims-table>
-        </div>
-        <div v-if="tabIndex === '1'">
-          <lims-table :column="oldTableColumn" :height="'calc(100vh - 20em)'" :table-data="oldTableData"
-                      :table-loading="oldTableLoading" :page="oldPage" @pagination="oldPagination">
-          </lims-table>
-        </div>
+        <lims-table :column="tableColumn" :height="'calc(100vh - 21em)'" :table-data="tableData"
+                    :table-loading="tableLoading" :page="page" @pagination="pagination">
+        </lims-table>
       </div>
-      <!--      鍘嗗彶妗f鎵瑰噯寮规-->
-      <el-dialog v-model="approvalDialog" title="鎵瑰噯" width="30%" @close="approvalDialog = false">
-        <span>
-          鎵瑰噯澶囨敞锛�
-          <el-input v-model="qualityRemark" type="textarea"></el-input>
-        </span>
-        <template #footer><span  class="dialog-footer">
-          <el-button :loading="approvalLoading" @click="handleApproval(0)">涓嶆壒鍑�</el-button>
-          <el-button :loading="approvalLoading" type="primary" @click="handleApproval(1)">鎵� 鍑�</el-button>
-        </span></template>
-      </el-dialog>
-      <el-dialog v-model="approvalDialog1" title="寤烘。" width="30%" @close="approvalDialog1 = false">
-        <span>
-          妗f鍚嶇О锛�
-          <el-input v-model="archivedName" type="textarea"></el-input>
-        </span>
-        <template #footer><span  class="dialog-footer">
-          <el-button :loading="approvalLoading" @click="approvalDialog1 = false, archivedName = ''">鍙� 娑�</el-button>
-          <el-button :loading="approvalLoading" type="primary" @click="handleApproval1()">纭� 瀹�</el-button>
-        </span></template>
-      </el-dialog>
       <FormDialog v-if="formDialog" ref="formDialog" @closeDia="closeDia"></FormDialog>
       <EditFormDia v-if="editFormDialog" ref="editFormDialog" @closeEditDia="closeEditDia"></EditFormDia>
-      <el-dialog v-model="viewRocordDia" title="璇︽儏" width="80%" @close="approvalDialog = false">
-        <limsTable :column="tableColumn1" :height="'calc(100vh - 26em)'" :table-data="tableData1"
-                   :table-loading="tableLoading1" style="padding: 0 15px;margin-bottom: 16px" :page="page1"
-                   @pagination="pagination1">
-        </limsTable>
-      </el-dialog>
+      <import-dialog
+        ref="importDialog"
+        title="瀵煎叆鏍囧噯鏌ユ柊"
+        :action="action"
+        accept=".xls,.xlsx"
+        template-url="/import-templates/鏍囧噯鏌ユ柊瀵煎叆妯℃澘.xlsx"
+        template-name="鏍囧噯鏌ユ柊瀵煎叆妯℃澘.xlsx"
+        :tips="[
+          '琛ㄥご涓轰袱琛岋紝璇蜂粠绗� 3 琛屽紑濮嬪~鍐欐暟鎹�',
+          '鏍囧噯鍚嶇О銆佹爣鍑嗗彿璇峰~鍐欑幇琛屾爣鍑嗙殑鍚嶇О鍜岀紪鍙�',
+          '鏌ユ柊鏉ユ簮鎸夆�滄爣鍑嗙綉 鈫� 濮旀墭鎯呮姤鎵� 鈫� 鏍囧噯涔﹀簵 鈫� 鍏朵粬鈥濈殑椤哄簭鍙栫涓�涓潪绌洪」',
+          '澶囨敞鍒楀彧鑳藉~鍐欌�滄浛鎹⑩�濇垨鈥滀綔搴熲�濓紝鐣欑┖琛ㄧず鏃犲娉�'
+        ]"
+        @success="searchList"
+      />
     </div>
   </div>
 </template>
 
 <script>
 import limsTable from '@/components/Table/lims-table.vue'
+import ImportDialog from '@/components/ImportDialog/index.vue'
 import FormDialog from './component/FormDialog.vue';
 import EditFormDia from './component/EditFormDia.vue';
 import {
-  addSearchNewArchived, exportMethodSearchNew,
-  pageMethodSearchNew, pageSearchNewArchived, pageSearchNewBackups, ratifySearchNewArchivedr
+  delMethodSearchNew,
+  pageMethodSearchNew
 } from '@/api/cnas/process/method/standardNoveltyRetrieval'
 
 export default {
@@ -95,20 +61,15 @@
   components: {
     FormDialog,
     limsTable,
+    ImportDialog,
     EditFormDia
   },
   data() {
     // 杩欓噷瀛樻斁鏁版嵁
     return {
       searchForm: {
-        year: '',
-        standardNo: '',
-        archivedName: ''
+        standardNo: ''
       },
-      options: [
-        { label: '涓婂崐骞�', value: '1' },
-        { label: '涓嬪崐骞�', value: '2' },
-      ],
       tableColumn: [
         {
           label: '鏍囧噯鍚嶇О',
@@ -160,8 +121,23 @@
           minWidth: '100'
         },
         {
+          label: '鏌ユ柊鏃堕棿',
+          prop: 'searchNewTime',
+          minWidth: '150'
+        },
+        {
+          label: '鏌ユ柊缁撴灉',
+          prop: 'searchNewResult',
+          minWidth: '140'
+        },
+        {
+          label: '鏌ユ柊浜�',
+          prop: 'searchNewUserName',
+          minWidth: '100'
+        },
+        {
           dataType: 'tag',
-          label: '鏌ヨ璁板綍鏉ユ簮',
+          label: '鏌ユ柊璁板綍鏉ユ簮',
           prop: 'searchNewSource',
           minWidth: '100',
           formatData: (params) => {
@@ -192,6 +168,11 @@
           }
         },
         {
+          label: '鏉ユ簮缃戝潃/缃戠珯鍚嶇О',
+          prop: 'searchNewWebsite',
+          minWidth: '150'
+        },
+        {
           dataType: 'tag',
           label: '澶囨敞',
           prop: 'remark',
@@ -217,7 +198,7 @@
         },
         {
           dataType: 'action',
-          minWidth: '100',
+          fixed: 'right',
           label: '鎿嶄綔',
           operation: [
             {
@@ -227,246 +208,25 @@
                 this.openEditFormDia(row);
               },
             },
+            {
+              name: '鍒犻櫎',
+              type: 'text',
+              clickFun: (row) => {
+                this.handleDelete(row);
+              },
+            },
           ]
         }
       ],
-      tableColumn1: [
-        {
-          label: '鏍囧噯鍚嶇О',
-          prop: 'methodName',
-          minWidth: '100'
-        },
-        {
-          label: '鏍囧噯鍙�',
-          prop: 'standardNo',
-          minWidth: '100'
-        },
-        {
-          label: '鏂囦欢缂栧彿',
-          prop: 'fileNo',
-          minWidth: '100'
-        },
-        {
-          dataType: 'tag',
-          label: '鏄惁鏄柊鏍囧噯',
-          prop: 'isNewStandard',
-          minWidth: '100',
-          formatData: (params) => {
-            if (params == 0) {
-              return '鍚�';
-            } else if (params == 1) {
-              return '鏄�';
-            } else {
-              return null
-            }
-          },
-          formatType: (params) => {
-            if (params == 0) {
-              return 'danger';
-            } else if (params == 1) {
-              return 'success';
-            } else {
-              return null
-            }
-          }
-        },
-        {
-          label: '鏂版爣鍑嗗悕绉�',
-          prop: 'newMethodName',
-          minWidth: '100'
-        },
-        {
-          label: '鏂版爣鍑嗗彿',
-          prop: 'newStandardNo',
-          minWidth: '100'
-        },
-        {
-          dataType: 'tag',
-          label: '鏌ヨ璁板綍鏉ユ簮',
-          prop: 'searchNewSource',
-          minWidth: '100',
-          formatData: (params) => {
-            if (params == 0) {
-              return '鏍囧噯缃�';
-            } else if (params == 1) {
-              return '濮旀墭鎯呮姤';
-            } else if (params == 2) {
-              return '鏍囧噯鏁�';
-            } else if (params == 3) {
-              return '鍏朵粬';
-            } else {
-              return null
-            }
-          },
-          formatType: (params) => {
-            if (params == 0) {
-              return 'success';
-            } else if (params == 1) {
-              return 'danger';
-            } else if (params == 2) {
-              return 'warning';
-            } else if (params == 3) {
-              return 'info';
-            } else {
-              return null
-            }
-          }
-        },
-        {
-          dataType: 'tag',
-          label: '澶囨敞',
-          prop: 'remark',
-          minWidth: '100',
-          formatData: (params) => {
-            if (params == 0) {
-              return '浣滃簾';
-            } else if (params == 1) {
-              return '鏇挎崲';
-            } else {
-              return null
-            }
-          },
-          formatType: (params) => {
-            if (params == 0) {
-              return 'danger';
-            } else if (params == 1) {
-              return 'success';
-            } else {
-              return null
-            }
-          }
-        }
-      ],
       tableData: [],
-      tableData1: [],
       tableLoading: false,
-      tableLoading1: false,
       page: {
         size: 10,
         current: 1,
         total: 0
       },
-      page1: {
-        size: 10,
-        current: 1,
-        total: 0
-      },
-      oldPage: {
-        size: 10,
-        current: 1,
-        total: 0,
-      },
-      oldTableColumn: [
-        {
-          label: '瀛樻。鍚嶇О',
-          prop: 'archivedName',
-          minWidth: '100'
-        },
-        {
-          label: '缂栧埗浜�',
-          prop: 'writeName',
-          minWidth: '100'
-        },
-        {
-          label: '缂栧埗鏃堕棿',
-          prop: 'writeTime',
-          minWidth: '100'
-        },
-        {
-          label: '鎵瑰噯浜�',
-          prop: 'ratifyName',
-          minWidth: '100'
-        },
-        {
-          label: '鎵瑰噯淇℃伅',
-          prop: 'ratifyRemark',
-          minWidth: '100'
-        },
-        {
-          dataType: 'tag',
-          label: '鎵瑰噯鐘舵��',
-          prop: 'ratifyStatus',
-          minWidth: '100',
-          formatData: (params) => {
-            if (params == 0) {
-              return '涓嶉�氳繃';
-            } else if (params == 1) {
-              return '閫氳繃';
-            } else {
-              return null
-            }
-          },
-          formatType: (params) => {
-            if (params == 0) {
-              return 'danger';
-            } else if (params == 1) {
-              return 'success';
-            } else {
-              return null
-            }
-          }
-        },
-        {
-          label: '鎵瑰噯鏃堕棿',
-          prop: 'ratifyTime',
-          minWidth: '100'
-        },
-        {
-          dataType: 'action',
-          minWidth: '100',
-          label: '鎿嶄綔',
-          operation: [
-            {
-              name: '鎵瑰噯',
-              type: 'text',
-              clickFun: (row) => {
-                this.openApprovalDialog(row);
-              },
-              disabled: (row) => {
-                if (row.ratifyStatus === 1) {
-                  return true
-                } else {
-                  return false
-                }
-              },
-            },
-            {
-              name: '鏌ョ湅',
-              type: 'text',
-              clickFun: (row) => {
-                this.openViewDia(row);
-              },
-            },
-            {
-              name: '瀵煎嚭',
-              type: 'text',
-              clickFun: (row) => {
-                this.handleOut(row);
-              },
-            }
-          ]
-        }
-      ],
-      oldTableData: [],
-      oldTableLoading: false,
-      tabIndex: '0',
       formDialog: false,
       editFormDialog: false,
-      upLoading: false,
-      outLoading: false,
-      ratifyInfo: {
-        writeUserId: '',
-        ratifyUserId: '',
-        writeDate: '',
-        ratifyDate: '',
-      },
-      approvalDialog: false,
-      approvalDialog1: false,
-      viewRocordDia: false,
-      approvalLoading: false,
-      qualityRemark: '',
-      archivedName: '',
-      archivedId: '',
     };
   },
   mounted() {
@@ -476,105 +236,22 @@
   methods: {
     // 鏌ヨ鍒楄〃
     searchList() {
-      if (this.tabIndex === '0') {
-        this.tableLoading = true
-        pageMethodSearchNew({ standardNo: this.searchForm.standardNo, ...this.page }).then(res => {
-          this.tableLoading = false
-          if (res.code === 200) {
-            this.tableData = res.data.records
-            this.page.total = res.data.total
-          }
-        }).catch(err => {
-          console.log('err---', err);
-          this.tableLoading = false
-        })
-      } else {
-        this.oldTableLoading = true
-        pageSearchNewArchived({archivedName: this.searchForm.archivedName, ...this.oldPage}).then(res => {
-          this.oldTableLoading = false
-          if (res.code === 200) {
-            this.oldTableData = res.data.records
-            this.oldPage.total = res.data.total
-          }
-
-        }).catch(err => {
-          console.log('err---', err);
-          this.oldTableLoading = false
-        })
-      }
-    },
-    // 鎵撳紑鍘嗗彶妗f璇︽儏寮规
-    openViewDia(row) {
-      this.archivedId = row.archivedId
-      this.viewRocordDia = true
-      this.pageSearchNewBackups()
-    },
-    pageSearchNewBackups() {
-      const entity = {
-        archivedId: this.archivedId,
-      }
-      this.tableLoading1 = true
-      pageSearchNewBackups({ ...this.page1, ...entity }).then(res => {
-        this.tableLoading1 = false
+      this.tableLoading = true
+      pageMethodSearchNew({ standardNo: this.searchForm.standardNo, ...this.page }).then(res => {
+        this.tableLoading = false
         if (res.code === 200) {
-          this.tableData1 = res.data.records
-          this.page1.total = res.data.total
+          this.tableData = res.data.records
+          this.page.total = res.data.total
         }
-
       }).catch(err => {
         console.log('err---', err);
-        this.tableLoading1 = false
-      })
-    },
-    // 鎵撳紑鎵瑰噯寮规
-    openApprovalDialog(row) {
-      this.approvalDialog = true
-      this.archivedId = row.archivedId
-    },
-    // 鎵撳紑鎵瑰噯寮规
-    openApprovalDialog1(row) {
-      this.approvalDialog1 = true
-      this.archivedId = row.archivedId
-    },
-    // 鎻愪氦鎵瑰噯
-    handleApproval(status) {
-      this.approvalLoading = true
-      let internalReport = {
-        archivedId: this.archivedId,
-        ratifyStatus: status,
-        ratifyRemark: this.ratifyRemark
-      }
-      ratifySearchNewArchivedr(internalReport).then(res => {
-        if (res.code === 200) {
-          this.$message.success('鎻愪氦鎴愬姛锛�');
-          this.approvalDialog = false
-          this.searchList()
-        }
-        this.approvalLoading = false
-      }).catch(() => {
-        this.approvalLoading = false
-      })
-    },
-    // 鎻愪氦鎵瑰噯
-    handleApproval1(status) {
-      this.approvalLoading = true
-      let internalReport = {
-        archivedName: this.archivedName,
-      }
-      addSearchNewArchived(internalReport).then(res => {
-        if (res.code === 200) {
-          this.$message.success('鎻愪氦鎴愬姛锛�');
-          this.approvalDialog1 = false
-          this.searchList()
-        }
-        this.approvalLoading = false
-      }).catch(() => {
-        this.approvalLoading = false
+        this.tableLoading = false
       })
     },
     // 閲嶇疆鏌ヨ鏉′欢
     resetSearchForm() {
       this.searchForm.standardNo = '';
+      this.page.current = 1;
       this.searchList()
     },
     // 鎿嶄綔鏂板妗�
@@ -596,52 +273,29 @@
         this.$refs.editFormDialog.openDia(row)
       })
     },
-    //
+    // 鍏抽棴淇敼寮规
     closeEditDia() {
       this.editFormDialog = false
       this.searchList()
     },
-    // 瀵煎嚭
-    handleOut(row) {
-      this.outLoading = true
-      exportMethodSearchNew({ archivedId: row.archivedId }).then(res => {
-        const blob = new Blob([res], { type: 'application/octet-stream' });
-        this.$download.saveAs(blob, '鏍囧噯鏌ユ柊瀵煎嚭.xlsx')
+    // 鍒犻櫎鏍囧噯鏌ユ柊璁板綍
+    handleDelete(row) {
+      this.$confirm('鏄惁鍒犻櫎璇ユ潯鏌ユ柊璁板綍?', '鎻愮ず', {
+        confirmButtonText: '纭畾',
+        cancelButtonText: '鍙栨秷',
+        type: 'warning'
+      }).then(() => {
+        delMethodSearchNew({ methodSearchNewId: row.methodSearchNewId }).then(res => {
+          if (res.code !== 200) return
+          this.$message.success('鍒犻櫎鎴愬姛')
+          this.searchList()
+        })
+      }).catch(() => {
       })
-    },
-    // 瀵煎叆
-    beforeUpload(file) {
-      if (file.size > 1024 * 1024 * 10) {
-        this.$message.error('涓婁紶鏂囦欢涓嶈秴杩�10M');
-        this.$refs.upload.clearFiles()
-        return false;
-      } else {
-        this.upLoading = true;
-        return true;
-      }
-    },
-    onError(err, file, fileList) {
-      this.$message.error('涓婁紶澶辫触')
-      this.$refs.upload.clearFiles()
-    },
-    handleSuccessUp(response) {
-      this.upLoading = false;
-      if (response.code == 200) {
-        this.$message.success('涓婁紶鎴愬姛');
-        this.searchList()
-      }
     },
     // 鍒嗛〉
     pagination(page) {
       this.page.size = page.limit
-      this.searchList();
-    },
-    pagination1(page) {
-      this.page1.size = page.limit
-      this.pageSearchNewBackups();
-    },
-    oldPagination(page) {
-      this.oldPage.size = page.limit
       this.searchList();
     },
   },
@@ -653,15 +307,3 @@
   },
 };
 </script>
-
-<style scoped>
-.search {
-  height: 46px;
-  display: flex;
-  justify-content: space-between;
-}
-
-.table-tab {
-  margin-bottom: 10px;
-}
-</style>

--
Gitblit v1.9.3