<template>
|
<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;">
|
<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="line-height: 30px;">
|
<el-button type="primary" size="small" @click="searchList">查询</el-button>
|
<el-button size="small" @click="resetSearchForm">重置</el-button>
|
</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>
|
</div>
|
<div>
|
<div class="table">
|
<lims-table :column="tableColumn" :height="'calc(100vh - 21em)'" :table-data="tableData"
|
:table-loading="tableLoading" :page="page" @pagination="pagination">
|
</lims-table>
|
</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="导入标准查新"
|
:action="action"
|
accept=".xls,.xlsx"
|
template-url="/import-templates/标准查新导入模板.xlsx"
|
template-name="标准查新导入模板.xlsx"
|
:tips="[
|
'表头为两行,请从第 3 行开始填写数据',
|
'标准名称、标准号请填写本次查新的标准信息',
|
'查新日期格式为 YYYY-MM-DD,查新结果填写现行有效、已修订/有新版本替代、废止(无替代)或即将实施',
|
'六个查新来源列中只能填写一个,填写“√”表示选中'
|
]"
|
@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 { displayDate, displaySearchSource } from './options'
|
import {
|
listSearchNewHistory,
|
pageSearchNewHistory,
|
pageMethodSearchNew
|
} from '@/api/cnas/process/method/standardNoveltyRetrieval'
|
|
export default {
|
name: 'StandardNoveltyRetrieval',
|
// import 引入的组件需要注入到对象中才能使用
|
components: {
|
FormDialog,
|
limsTable,
|
ImportDialog,
|
EditFormDia
|
},
|
data() {
|
// 这里存放数据
|
return {
|
historyDialog: false,
|
historyLoading: false,
|
historyRecords: [],
|
historyStandard: '',
|
historyScopeId: null,
|
historySearchNo: '',
|
historyPage: { current: 1, size: 10, total: 0 },
|
searchForm: {
|
standardNo: ''
|
},
|
tableColumn: [
|
{
|
label: '标准名称',
|
prop: 'methodName',
|
minWidth: '100'
|
},
|
{
|
label: '标准号',
|
prop: 'standardNo',
|
minWidth: '100'
|
},
|
{
|
label: '文件编号',
|
prop: 'fileNo',
|
minWidth: '100'
|
},
|
{
|
label: '最近查新日期',
|
prop: 'searchNewTime',
|
minWidth: '125',
|
formatData: displayDate
|
},
|
{
|
label: '查新结果',
|
prop: 'searchNewResult',
|
minWidth: '190'
|
},
|
{
|
label: '查新人',
|
prop: 'searchNewUserName',
|
minWidth: '100'
|
},
|
{
|
label: '查新记录来源',
|
prop: 'searchNewSource',
|
minWidth: '180',
|
formatData: displaySearchSource
|
},
|
{
|
label: '其他来源名称',
|
prop: 'searchNewWebsite',
|
minWidth: '150'
|
},
|
{ label: '下次查新日期', prop: 'nextSearchDate', minWidth: '125', formatData: displayDate },
|
{
|
dataType: 'tag', label: '查新状态', prop: 'searchDueStatus', minWidth: '100',
|
formatType: value => value === '已逾期' ? 'danger' : value === '今日到期' ? 'warning' : 'success'
|
},
|
{
|
dataType: 'action',
|
fixed: 'right',
|
label: '操作',
|
operation: [
|
{
|
name: '查新',
|
type: 'text',
|
clickFun: (row) => {
|
this.openEditFormDia(row);
|
},
|
},
|
{
|
name: '本标准记录',
|
type: 'text',
|
clickFun: (row) => {
|
this.openHistory(row);
|
},
|
},
|
]
|
}
|
],
|
tableData: [],
|
tableLoading: false,
|
page: {
|
size: 10,
|
current: 1,
|
total: 0
|
},
|
formDialog: false,
|
editFormDialog: false,
|
};
|
},
|
mounted() {
|
this.searchList()
|
},
|
// 方法集合
|
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
|
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
|
})
|
},
|
// 重置查询条件
|
resetSearchForm() {
|
this.searchForm.standardNo = '';
|
this.page.current = 1;
|
this.searchList()
|
},
|
// 操作新增框
|
openFormDia(row) {
|
this.formDialog = true
|
this.$nextTick(() => {
|
this.$refs.formDialog.openDia(row)
|
})
|
},
|
// 关闭新增弹框
|
closeDia() {
|
this.formDialog = false
|
this.searchList()
|
},
|
// 打开修改弹框
|
openEditFormDia(row) {
|
this.editFormDialog = true
|
this.$nextTick(() => {
|
this.$refs.editFormDialog.openDia(row)
|
})
|
},
|
// 关闭修改弹框
|
closeEditDia() {
|
this.editFormDialog = false
|
this.searchList()
|
},
|
// 分页
|
pagination(page) {
|
this.page.size = page.limit
|
this.page.current = page.page
|
this.searchList();
|
},
|
},
|
// 用于上传文件的信息
|
computed: {
|
action() {
|
return this.javaApi + '/processMethodSearchNew/importMethodSearchNew'
|
}
|
},
|
};
|
</script>
|