liding
10 小时以前 49cdc0884a9a4381cd968cffff65e2a332bc675a
src/views/CNAS/process/method/standardNoveltyRetrieval/index.vue
@@ -13,6 +13,7 @@
        </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>
@@ -26,6 +27,36 @@
      </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="导入标准查新"
@@ -35,9 +66,9 @@
        template-name="标准查新导入模板.xlsx"
        :tips="[
          '表头为两行,请从第 3 行开始填写数据',
          '标准名称、标准号请填写现行标准的名称和编号',
          '查新来源按“标准网 → 委托情报所 → 标准书店 → 其他”的顺序取第一个非空项',
          '备注列只能填写“替换”或“作废”,留空表示无备注'
          '标准名称、标准号请填写本次查新的标准信息',
          '查新日期格式为 YYYY-MM-DD,查新结果填写现行有效、已修订/有新版本替代、废止(无替代)或即将实施',
          '六个查新来源列中只能填写一个,填写“√”表示选中'
        ]"
        @success="searchList"
      />
@@ -50,8 +81,10 @@
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'
@@ -67,6 +100,13 @@
  data() {
    // 这里存放数据
    return {
      historyDialog: false,
      historyLoading: false,
      historyRecords: [],
      historyStandard: '',
      historyScopeId: null,
      historySearchNo: '',
      historyPage: { current: 1, size: 10, total: 0 },
      searchForm: {
        standardNo: ''
      },
@@ -87,48 +127,15 @@
          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: '查新人',
@@ -136,65 +143,20 @@
          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',
@@ -202,17 +164,17 @@
          label: '操作',
          operation: [
            {
              name: '编辑',
              name: '查新',
              type: 'text',
              clickFun: (row) => {
                this.openEditFormDia(row);
              },
            },
            {
              name: '删除',
              name: '本标准记录',
              type: 'text',
              clickFun: (row) => {
                this.handleDelete(row);
                this.openHistory(row);
              },
            },
          ]
@@ -234,6 +196,43 @@
  },
  // 方法集合
  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
@@ -278,24 +277,10 @@
      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();
    },
  },