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 | 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