gaoluyang
7 小时以前 29be8639dc16b5d82bddc6099b1fa5cdca75f77a
src/views/CNAS/process/method/standardNoveltyRetrieval/index.vue
@@ -3,13 +3,18 @@
    <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>
          <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>
        <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'">
          <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;">
@@ -17,14 +22,10 @@
          <el-button size="small" @click="resetSearchForm">重置</el-button>
        </div>
      </div>
      <div style="line-height: 30px;">
      <div style="line-height: 30px;" v-if="tabIndex === '0'">
        <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>
@@ -42,8 +43,15 @@
          </lims-table>
        </div>
        <div v-if="tabIndex === '1'">
          <lims-table :column="oldTableColumn" :height="'calc(100vh - 20em)'" :table-data="oldTableData"
          <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>
      </div>
@@ -76,17 +84,33 @@
                   @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
  pageMethodSearchNew, pageSearchNewArchived, pageSearchNewBackups, pageAutoArchived, ratifySearchNewArchivedr
} from '@/api/cnas/process/method/standardNoveltyRetrieval'
export default {
@@ -95,6 +119,7 @@
  components: {
    FormDialog,
    limsTable,
    ImportDialog,
    EditFormDia
  },
  data() {
@@ -450,9 +475,27 @@
      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,
      upLoading: false,
      outLoading: false,
      ratifyInfo: {
        writeUserId: '',
@@ -488,7 +531,7 @@
          console.log('err---', err);
          this.tableLoading = false
        })
      } else {
      } else if (this.historyType === 'manual') {
        this.oldTableLoading = true
        pageSearchNewArchived({archivedName: this.searchForm.archivedName, ...this.oldPage}).then(res => {
          this.oldTableLoading = false
@@ -500,6 +543,18 @@
        }).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
        })
      }
    },
@@ -575,6 +630,12 @@
    // 重置查询条件
    resetSearchForm() {
      this.searchForm.standardNo = '';
      this.searchForm.archivedName = '';
      this.searchList()
    },
    switchHistoryType() {
      this.oldPage.current = 1
      this.autoArchivedPage.current = 1
      this.searchList()
    },
    // 操作新增框
@@ -609,28 +670,6 @@
        this.$download.saveAs(blob, '标准查新导出.xlsx')
      })
    },
    // 导入
    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
@@ -642,6 +681,12 @@
    },
    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();
    },
  },