From bb0e99f8cd27dd6cbe60db96d0e985aebd6e45ed Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期三, 21 十月 2026 15:05:36 +0800
Subject: [PATCH] feat: 标准查新支持删除并补充查新信息

---
 src/views/CNAS/process/method/standardNoveltyRetrieval/index.vue |  519 ++++++---------------------------------------------------
 1 files changed, 58 insertions(+), 461 deletions(-)

diff --git a/src/views/CNAS/process/method/standardNoveltyRetrieval/index.vue b/src/views/CNAS/process/method/standardNoveltyRetrieval/index.vue
index 06292dc..8ea5d96 100644
--- a/src/views/CNAS/process/method/standardNoveltyRetrieval/index.vue
+++ b/src/views/CNAS/process/method/standardNoveltyRetrieval/index.vue
@@ -2,17 +2,7 @@
   <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: 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' && historyType === 'manual'">
-          <span style="width: 88px;font-size: 14px;font-weight: 700;color: var(--lims-text-2);">瀛樻。鍚嶇О</span>
-          <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="searchForm.archivedName"
-                    @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' && historyType === 'auto'">
+        <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>
@@ -22,8 +12,7 @@
           <el-button size="small" @click="resetSearchForm">閲嶇疆</el-button>
         </div>
       </div>
-      <div style="line-height: 30px;" v-if="tabIndex === '0'">
-        <el-button size="small" type="primary" @click="openApprovalDialog1">寤� 妗�</el-button>
+      <div style="line-height: 30px;">
         <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>
@@ -31,59 +20,12 @@
     </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'">
-          <el-radio-group v-model="historyType" size="small" style="margin-bottom: 10px" @change="switchHistoryType">
-            <el-radio-button value="manual">鎵嬪姩妗f</el-radio-button>
-            <el-radio-button value="auto">鑷姩褰掓。璁板綍</el-radio-button>
-          </el-radio-group>
-          <lims-table v-if="historyType === 'manual'" :column="oldTableColumn" :height="'calc(100vh - 23em)'" :table-data="oldTableData"
-                      :table-loading="oldTableLoading" :page="oldPage" @pagination="oldPagination">
-          </lims-table>
-          <lims-table v-else :column="autoArchivedColumn" :height="'calc(100vh - 23em)'" :table-data="autoArchivedData"
-                      :table-loading="autoArchivedLoading" :page="autoArchivedPage" @pagination="autoArchivedPagination">
-          </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="瀵煎叆鏍囧噯鏌ユ柊"
@@ -109,8 +51,8 @@
 import FormDialog from './component/FormDialog.vue';
 import EditFormDia from './component/EditFormDia.vue';
 import {
-  addSearchNewArchived, exportMethodSearchNew,
-  pageMethodSearchNew, pageSearchNewArchived, pageSearchNewBackups, pageAutoArchived, ratifySearchNewArchivedr
+  delMethodSearchNew,
+  pageMethodSearchNew
 } from '@/api/cnas/process/method/standardNoveltyRetrieval'
 
 export default {
@@ -126,14 +68,8 @@
     // 杩欓噷瀛樻斁鏁版嵁
     return {
       searchForm: {
-        year: '',
-        standardNo: '',
-        archivedName: ''
+        standardNo: ''
       },
-      options: [
-        { label: '涓婂崐骞�', value: '1' },
-        { label: '涓嬪崐骞�', value: '2' },
-      ],
       tableColumn: [
         {
           label: '鏍囧噯鍚嶇О',
@@ -185,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) => {
@@ -217,6 +168,11 @@
           }
         },
         {
+          label: '鏉ユ簮缃戝潃/缃戠珯鍚嶇О',
+          prop: 'searchNewWebsite',
+          minWidth: '150'
+        },
+        {
           dataType: 'tag',
           label: '澶囨敞',
           prop: 'remark',
@@ -242,7 +198,7 @@
         },
         {
           dataType: 'action',
-          minWidth: '100',
+          fixed: 'right',
           label: '鎿嶄綔',
           operation: [
             {
@@ -252,264 +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',
-      historyType: 'manual',
-      autoArchivedData: [],
-      autoArchivedLoading: false,
-      autoArchivedPage: {size: 10, current: 1, total: 0},
-      autoArchivedColumn: [
-        {label: '鏍囧噯鍚嶇О', prop: 'methodName', minWidth: '120'},
-        {label: '鏍囧噯鍙�', prop: 'standardNo', minWidth: '100'},
-        {label: '鏂囦欢缂栧彿', prop: 'fileNo', minWidth: '110'},
-        {
-          dataType: 'tag', label: '鏄惁鏄柊鏍囧噯', prop: 'isNewStandard', minWidth: '110',
-          formatData: () => '鍚�', formatType: () => 'danger'
-        },
-        {
-          dataType: 'tag', label: '鏌ヨ璁板綍鏉ユ簮', prop: 'searchNewSource', minWidth: '110',
-          formatData: (value) => ({0: '鏍囧噯缃�', 1: '濮旀墭鎯呮姤', 2: '鏍囧噯鏁�', 3: '鍏朵粬'}[value] || ''),
-          formatType: (value) => ({0: 'success', 1: 'danger', 2: 'warning', 3: 'info'}[value] || 'info')
-        },
-        {label: '鑷姩褰掓。鏃堕棿', prop: 'autoArchivedTime', minWidth: '150'}
-      ],
       formDialog: false,
       editFormDialog: false,
-      outLoading: false,
-      ratifyInfo: {
-        writeUserId: '',
-        ratifyUserId: '',
-        writeDate: '',
-        ratifyDate: '',
-      },
-      approvalDialog: false,
-      approvalDialog1: false,
-      viewRocordDia: false,
-      approvalLoading: false,
-      qualityRemark: '',
-      archivedName: '',
-      archivedId: '',
     };
   },
   mounted() {
@@ -519,123 +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 if (this.historyType === 'manual') {
-        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
-        })
-      } else {
-        this.autoArchivedLoading = true
-        pageAutoArchived({standardNo: this.searchForm.standardNo, ...this.autoArchivedPage}).then(res => {
-          this.autoArchivedLoading = false
-          if (res.code === 200) {
-            this.autoArchivedData = res.data.records
-            this.autoArchivedPage.total = res.data.total
-          }
-        }).catch(err => {
-          console.log('err---', err);
-          this.autoArchivedLoading = 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.searchForm.archivedName = '';
-      this.searchList()
-    },
-    switchHistoryType() {
-      this.oldPage.current = 1
-      this.autoArchivedPage.current = 1
+      this.page.current = 1;
       this.searchList()
     },
     // 鎿嶄綔鏂板妗�
@@ -657,36 +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(() => {
       })
     },
     // 鍒嗛〉
     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.oldPage.current = page.page
-      this.searchList();
-    },
-    autoArchivedPagination(page) {
-      this.autoArchivedPage.size = page.limit
-      this.autoArchivedPage.current = page.page
       this.searchList();
     },
   },
@@ -698,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