| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | </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">历史档案</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">手动档案</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> |
| | | <!-- 历史档案批准弹框--> |
| | | <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> |
| | | 档案名称: |
| | | <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="导入标准查新" |
| | |
| | | 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 { |
| | |
| | | // 这里存放数据 |
| | | return { |
| | | searchForm: { |
| | | year: '', |
| | | standardNo: '', |
| | | archivedName: '' |
| | | standardNo: '' |
| | | }, |
| | | options: [ |
| | | { label: '上半年', value: '1' }, |
| | | { label: '下半年', value: '2' }, |
| | | ], |
| | | tableColumn: [ |
| | | { |
| | | label: '标准名称', |
| | |
| | | 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) => { |
| | |
| | | } |
| | | }, |
| | | { |
| | | label: '来源网址/网站名称', |
| | | prop: 'searchNewWebsite', |
| | | minWidth: '150' |
| | | }, |
| | | { |
| | | dataType: 'tag', |
| | | label: '备注', |
| | | prop: 'remark', |
| | |
| | | }, |
| | | { |
| | | dataType: 'action', |
| | | minWidth: '100', |
| | | fixed: 'right', |
| | | label: '操作', |
| | | operation: [ |
| | | { |
| | |
| | | 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() { |
| | |
| | | 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 |
| | | }) |
| | | } |
| | | }, |
| | | // 打开历史档案详情弹框 |
| | | 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() |
| | | }, |
| | | // 操作新增框 |
| | |
| | | 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(); |
| | | }, |
| | | }, |
| | |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .search { |
| | | height: 46px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | .table-tab { |
| | | margin-bottom: 10px; |
| | | } |
| | | </style> |