| | |
| | | </div> |
| | | </div> |
| | | <div style="line-height: 30px;"> |
| | | <el-button size="small" @click="openAllHistory">查新记录</el-button> |
| | | <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> |
| | | <FormDialog v-if="formDialog" ref="formDialog" @closeDia="closeDia"></FormDialog> |
| | | <EditFormDia v-if="editFormDialog" ref="editFormDialog" @closeEditDia="closeEditDia"></EditFormDia> |
| | | <el-dialog v-model="historyDialog" :title="`${historyStandard} · 查新记录`" width="960px"> |
| | | <div v-if="historyScopeId === null" style="display: flex; gap: 8px; margin-bottom: 12px;"> |
| | | <el-input v-model="historySearchNo" clearable placeholder="按标准号查询" style="width: 260px" |
| | | @keyup.enter="searchAllHistory" /> |
| | | <el-button type="primary" @click="searchAllHistory">查询</el-button> |
| | | </div> |
| | | <el-table v-loading="historyLoading" :data="historyRecords" border> |
| | | <el-table-column prop="methodName" label="标准名称" min-width="160" /> |
| | | <el-table-column prop="standardNo" label="标准号" min-width="135" /> |
| | | <el-table-column prop="fileNo" label="文件编号" min-width="120" /> |
| | | <el-table-column prop="searchNewDate" label="查新日期" width="115" /> |
| | | <el-table-column prop="nextSearchDate" label="下次查新日期" width="125" /> |
| | | <el-table-column prop="searchNewResult" label="查新结果" width="190" /> |
| | | <el-table-column label="查新来源" min-width="210"> |
| | | <template #default="scope"> |
| | | {{ displaySearchSource(scope.row.searchNewSource) }} |
| | | <span v-if="scope.row.searchNewWebsite">({{ scope.row.searchNewWebsite }})</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="searchNewUserName" label="查新人" width="110" /> |
| | | <el-table-column prop="newMethodName" label="新版标准名称" min-width="150" /> |
| | | <el-table-column prop="newStandardNo" label="新版标准号" min-width="135" /> |
| | | <el-table-column prop="createTime" label="提交时间" width="165" /> |
| | | </el-table> |
| | | <el-empty v-if="!historyLoading && historyRecords.length === 0" description="暂无查新记录" /> |
| | | <el-pagination v-if="historyScopeId === null" v-model:current-page="historyPage.current" |
| | | v-model:page-size="historyPage.size" :total="historyPage.total" |
| | | layout="total, prev, pager, next" style="margin-top: 12px; justify-content: flex-end;" |
| | | @current-change="loadHistory" /> |
| | | </el-dialog> |
| | | <import-dialog |
| | | ref="importDialog" |
| | | title="导入标准查新" |
| | |
| | | template-name="标准查新导入模板.xlsx" |
| | | :tips="[ |
| | | '表头为两行,请从第 3 行开始填写数据', |
| | | '标准名称、标准号请填写现行标准的名称和编号', |
| | | '查新来源按“标准网 → 委托情报所 → 标准书店 → 其他”的顺序取第一个非空项', |
| | | '备注列只能填写“替换”或“作废”,留空表示无备注' |
| | | '标准名称、标准号请填写本次查新的标准信息', |
| | | '查新日期格式为 YYYY-MM-DD,查新结果填写现行有效、已修订/有新版本替代、废止(无替代)或即将实施', |
| | | '六个查新来源列中只能填写一个,填写“√”表示选中' |
| | | ]" |
| | | @success="searchList" |
| | | /> |
| | |
| | | import ImportDialog from '@/components/ImportDialog/index.vue' |
| | | import FormDialog from './component/FormDialog.vue'; |
| | | import EditFormDia from './component/EditFormDia.vue'; |
| | | import { displayDate, displaySearchSource } from './options' |
| | | import { |
| | | delMethodSearchNew, |
| | | listSearchNewHistory, |
| | | pageSearchNewHistory, |
| | | pageMethodSearchNew |
| | | } from '@/api/cnas/process/method/standardNoveltyRetrieval' |
| | | |
| | |
| | | data() { |
| | | // 这里存放数据 |
| | | return { |
| | | historyDialog: false, |
| | | historyLoading: false, |
| | | historyRecords: [], |
| | | historyStandard: '', |
| | | historyScopeId: null, |
| | | historySearchNo: '', |
| | | historyPage: { current: 1, size: 10, total: 0 }, |
| | | searchForm: { |
| | | standardNo: '' |
| | | }, |
| | |
| | | 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' |
| | | }, |
| | | { |
| | | label: '查新时间', |
| | | label: '最近查新日期', |
| | | prop: 'searchNewTime', |
| | | minWidth: '150' |
| | | minWidth: '125', |
| | | formatData: displayDate |
| | | }, |
| | | { |
| | | label: '查新结果', |
| | | prop: 'searchNewResult', |
| | | minWidth: '140' |
| | | minWidth: '190' |
| | | }, |
| | | { |
| | | label: '查新人', |
| | |
| | | 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 |
| | | } |
| | | } |
| | | minWidth: '180', |
| | | formatData: displaySearchSource |
| | | }, |
| | | { |
| | | label: '来源网址/网站名称', |
| | | label: '其他来源名称', |
| | | prop: 'searchNewWebsite', |
| | | minWidth: '150' |
| | | }, |
| | | { label: '下次查新日期', prop: 'nextSearchDate', minWidth: '125', formatData: displayDate }, |
| | | { |
| | | 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 |
| | | } |
| | | } |
| | | dataType: 'tag', label: '查新状态', prop: 'searchDueStatus', minWidth: '100', |
| | | formatType: value => value === '已逾期' ? 'danger' : value === '今日到期' ? 'warning' : 'success' |
| | | }, |
| | | { |
| | | dataType: 'action', |
| | |
| | | label: '操作', |
| | | operation: [ |
| | | { |
| | | name: '编辑', |
| | | name: '查新', |
| | | type: 'text', |
| | | clickFun: (row) => { |
| | | this.openEditFormDia(row); |
| | | }, |
| | | }, |
| | | { |
| | | name: '删除', |
| | | name: '本标准记录', |
| | | type: 'text', |
| | | clickFun: (row) => { |
| | | this.handleDelete(row); |
| | | this.openHistory(row); |
| | | }, |
| | | }, |
| | | ] |
| | |
| | | }, |
| | | // 方法集合 |
| | | methods: { |
| | | displaySearchSource, |
| | | openAllHistory() { |
| | | this.historyStandard = '全部标准' |
| | | this.historyScopeId = null |
| | | this.historySearchNo = '' |
| | | this.historyPage.current = 1 |
| | | this.historyRecords = [] |
| | | this.historyDialog = true |
| | | this.loadHistory() |
| | | }, |
| | | searchAllHistory() { |
| | | this.historyPage.current = 1 |
| | | this.loadHistory() |
| | | }, |
| | | openHistory(row) { |
| | | this.historyStandard = row.standardNo || row.methodName |
| | | this.historyScopeId = row.methodSearchNewId |
| | | this.historyRecords = [] |
| | | this.historyDialog = true |
| | | this.loadHistory() |
| | | }, |
| | | loadHistory() { |
| | | this.historyLoading = true |
| | | const request = this.historyScopeId === null |
| | | ? pageSearchNewHistory({ standardNo: this.historySearchNo, |
| | | current: this.historyPage.current, size: this.historyPage.size }) |
| | | : listSearchNewHistory({ methodSearchNewId: this.historyScopeId }) |
| | | request.then(res => { |
| | | if (res.code !== 200) return |
| | | if (this.historyScopeId === null) { |
| | | this.historyRecords = res.data?.records || [] |
| | | this.historyPage.total = res.data?.total || 0 |
| | | } else { |
| | | this.historyRecords = res.data || [] |
| | | } |
| | | }).finally(() => { this.historyLoading = false }) |
| | | }, |
| | | // 查询列表 |
| | | searchList() { |
| | | this.tableLoading = true |
| | |
| | | this.editFormDialog = false |
| | | this.searchList() |
| | | }, |
| | | // 删除标准查新记录 |
| | | 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.page.current = page.page |
| | | this.searchList(); |
| | | }, |
| | | }, |