licp
2024-12-20 f2d864f310854aafbdae6683430c72aad19464a7
完成标准物质清单迁移
已修改2个文件
已添加3个文件
888 ■■■■ 文件已修改
src/assets/api/controller.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/do/a6-standard-material-list/borrowDia.vue 152 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/do/a6-standard-material-list/formDia.vue 183 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/do/a6-standard-material-list/returnDia.vue 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/a6-standard-material-list.vue 418 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/api/controller.js
@@ -68,6 +68,7 @@
    internalWastes,
    foreignRegister,
    feCalibrationSchedule,
    feStandardSubstance,
  }
}
@@ -902,3 +903,11 @@
  exportOfValueTraceabilityPlan: '/feCalibrationSchedule/exportOfValueTraceabilityPlan', // é‡å€¼æº¯æºè®¡åˆ’ å¯¼å‡º
  importOfValueTraceabilityPlan: '/feCalibrationSchedule/importOfValueTraceabilityPlan', // é‡å€¼æº¯æºè®¡åˆ’ å¯¼å…¥
}
// 6.5标准物质清单
const feStandardSubstance = {
  getPageStandardSubstance:'/feStandardSubstance/getPageStandardSubstance',// æ ‡å‡†ç‰©è´¨æ¸…单查询
  addStandardSubstance:'/feStandardSubstance/addStandardSubstance',//标准物质清单新增编辑
  removeStandardSubstance:'/feStandardSubstance/removeStandardSubstance',//删除标准物质清单
  exportOfStandardSubstanceList: '/feStandardSubstance/exportOfStandardSubstanceList', // æ ‡å‡†ç‰©è´¨æ¸…单 å¯¼å‡º
}
src/components/do/a6-standard-material-list/borrowDia.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,152 @@
<template>
  <div>
    <el-dialog v-loading="diaLoading" :close-on-click-modal="false"
               :close-on-press-escape="false"
               :visible.sync="formDia"
               title="标准物质借用"
               width="80%" @close="closeBorrowDia">
      <el-form ref="form" :model="form" :rules="rules" label-position="right" label-width="auto">
        <el-row :gutter="20">
          <el-col :span="12">
            <el-form-item label="标准物质名称">
              <el-input v-model="form.name" disabled size="small"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="型号">
              <el-input v-model="form.model" disabled size="small"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="完好性" prop="integrity">
              <el-input v-model="form.integrity" clearable size="small"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="借用人" prop="borrowUser">
              <el-input v-model="form.borrowUser" clearable size="small"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="联系方式" prop="phone">
              <el-input v-model="form.phone" clearable size="small"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="借出日期" prop="borrowDate">
              <el-date-picker
                v-model="form.borrowDate"
                clearable
                format="yyyy-MM-dd HH:mm:ss" placeholder="选择日期"
                size="small" style="width: 100%"
                type="datetime" value-format="yyyy-MM-dd HH:mm:ss">
              </el-date-picker>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="约定归还日期" prop="borrowReturnDate">
              <el-date-picker
                v-model="form.borrowReturnDate"
                clearable
                format="yyyy-MM-dd HH:mm:ss" placeholder="选择日期"
                size="small" style="width: 100%"
                type="datetime" value-format="yyyy-MM-dd HH:mm:ss">
              </el-date-picker>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="借出人" prop="lender">
              <el-input v-model="form.lender" clearable size="small"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
      <span slot="footer" class="dialog-footer">
        <el-button @click="closeBorrowDia">取 æ¶ˆ</el-button>
        <el-button :loading="loading" type="primary" @click="handleEdit">提 äº¤</el-button>
      </span>
    </el-dialog>
  </div>
</template>
<script>
export default {
  name: 'borrowDia',
  // import å¼•入的组件需要注入到对象中才能使用
  components: {},
  data() {
    // è¿™é‡Œå­˜æ”¾æ•°æ®
    return {
      formDia: false,
      diaLoading: false,
      loading: false,
      form: {
        name: '',
        model: '',
        integrity: '',
        borrowUser: '',
        phone: '',
        borrowDate: '',
        borrowReturnDate: '',
        lender: '',
        substanceId: ''
      },
      rules: {
        integrity: [{required: true, message: '请填写完好性',trigger: 'blur'}],
        borrowUser: [{required: true, message: '请填写借用人',trigger: 'blur'}],
        phone: [{required: true, message: '请填写联系方式',trigger: 'blur'}],
        borrowDate: [{required: true, message: '请选择借出日期',trigger: 'change'}],
        borrowReturnDate: [{required: true, message: '请选择约定归还日期',trigger: 'change'}],
        lender: [{required: true, message: '请选择lender',trigger: 'blur'}],
      },
    };
  },
  mounted() {
  },
  // æ–¹æ³•集合
  methods: {
    // æ‰“开弹框
    openDia (row) {
      this.formDia = true
      this.form.name = row.name
      this.form.model = row.model
      this.form.substanceId = row.id
    },
    // æäº¤å¼¹æ¡†æ•°æ®
    handleEdit () {
      this.$refs['form'].validate((valid) => {
        if (valid) {
          this.loading = true
          let internalReport = this.HaveJson(this.form)
          internalReport.status = '0'
          this.$axios.post(this.$api.feStandardSubstanceRecord.borrowSubstance, internalReport, {
            headers: {
              "Content-Type": "application/json"
            },
            noQs: true
          }).then(res => {
            this.loading = false
            if (res.code === 201) return
            this.$message.success('操作成功')
            this.closeBorrowDia()
          }).catch(err => {
            this.$message.success(err.message)
            this.loading = false
          })
        } else {
          return false;
        }
      });
    },
    closeBorrowDia () {
      this.$refs.form.resetFields();
      this.formDia = false
      this.$emit('closeBorrowDia')
    },
  }
};
</script>
<style scoped>
</style>
src/components/do/a6-standard-material-list/formDia.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,183 @@
<template>
  <div>
    <el-dialog v-loading="diaLoading" :close-on-click-modal="false"
               :close-on-press-escape="false"
               :visible.sync="formDia"
               title="标准物质"
               width="80%" @close="closeYearDia">
      <el-form ref="form" :model="form" :rules="rules" label-position="right" label-width="auto">
        <el-row :gutter="20">
          <el-col :span="12">
            <el-form-item label="标准物质名称" prop="name">
              <el-input v-model="form.name" clearable size="small"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="规格型号" prop="model">
              <el-input v-model="form.model" clearable size="small"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="生产厂家" prop="factoryManufacturer">
              <el-input v-model="form.factoryManufacturer" clearable size="small"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="出厂编号" prop="factoryNum">
              <el-input v-model="form.factoryNum" clearable size="small"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="管理编号" prop="manageNum">
              <el-input v-model="form.manageNum" clearable size="small"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="不确定度" prop="uncertainty">
              <el-input v-model="form.uncertainty" clearable size="small"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="数量" prop="quantity">
              <el-input v-model="form.quantity" clearable size="small"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="购置日期" prop="acquisitionDate">
              <el-date-picker
                v-model="form.acquisitionDate"
                clearable
                format="yyyy-MM-dd HH:mm:ss" placeholder="选择日期"
                size="small" style="width: 100%"
                type="datetime" value-format="yyyy-MM-dd HH:mm:ss">
              </el-date-picker>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="有效期" prop="effectiveDate">
              <el-date-picker
                v-model="form.effectiveDate"
                clearable
                format="yyyy-MM-dd HH:mm:ss" placeholder="选择日期"
                size="small" style="width: 100%"
                type="datetime" value-format="yyyy-MM-dd HH:mm:ss">
              </el-date-picker>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="档案编号" prop="fileNum">
              <el-input v-model="form.fileNum" clearable size="small"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item label="存放位置" prop="position">
              <el-input v-model="form.position" clearable size="small"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item label="备注" prop="remark">
              <el-input v-model="form.remark" clearable size="small"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
      <span slot="footer" class="dialog-footer">
        <el-button @click="closeYearDia">取 æ¶ˆ</el-button>
        <el-button :loading="loading" type="primary" @click="handleEdit">提 äº¤</el-button>
      </span>
    </el-dialog>
  </div>
</template>
<script>
export default {
  name: 'formDia',
  // import å¼•入的组件需要注入到对象中才能使用
  components: {},
  data() {
    // è¿™é‡Œå­˜æ”¾æ•°æ®
    return {
      formDia: false,
      diaLoading: false,
      loading: false,
      form: {
        name: '',
        model: '',
        factoryManufacturer: '',
        factoryNum: '',
        manageNum: '',
        uncertainty: '',
        quantity: '',
        acquisitionDate: '',
        effectiveDate: '',
        fileNum: '',
        position: '',
        remark: '',
        id: '',
      },
      rules: {
        name: [{required: true, message: '请填写标准物质名称',trigger: 'blur'}],
        model: [{required: true, message: '请填写规格型号',trigger: 'blur'}],
        factoryManufacturer: [{required: true, message: '请填写生产厂家',trigger: 'blur'}],
        factoryNum: [{required: true, message: '请填写出厂编号',trigger: 'blur'}],
        manageNum: [{required: true, message: '请填写管理编号',trigger: 'blur'}],
        uncertainty: [{required: true, message: '请填写不确定度',trigger: 'blur'}],
        quantity: [{required: true, message: '请填写数量',trigger: 'blur'}],
        acquisitionDate: [{required: true, message: '请选择购置日期',trigger: 'change'}],
        effectiveDate: [{required: true, message: '请选择有效期',trigger: 'change'}],
        fileNum: [{required: true, message: '请填写档案编号',trigger: 'blur'}],
        position: [{required: true, message: '请填写存放位置',trigger: 'blur'}],
      },
      operationType: '',
    };
  },
  mounted() {
  },
  // æ–¹æ³•集合
  methods: {
    // æ‰“开弹框
    openDia (type, row) {
      this.formDia = true
      this.operationType = type
      if (type !== 'add') {
        this.form = row
      }
    },
    // æäº¤å¼¹æ¡†æ•°æ®
    handleEdit () {
      this.$refs['form'].validate((valid) => {
        if (valid) {
          this.loading = true
          const internalReport = this.HaveJson(this.form)
          this.$axios.post(this.$api.feStandardSubstance.addStandardSubstance, internalReport, {
            headers: {
              "Content-Type": "application/json"
            },
            noQs: true
          }).then(res => {
            this.loading = false
            if (res.code === 201) return
            this.$message.success('操作成功')
            this.closeYearDia()
          }).catch(err => {
            console.log('err---', err);
            this.loading = false
          })
        } else {
          console.log('error submit!!');
          return false;
        }
      });
    },
    closeYearDia () {
      this.$refs.form.resetFields();
      this.formDia = false
      this.$emit('closeYearDia')
    },
  }
};
</script>
<style scoped>
</style>
src/components/do/a6-standard-material-list/returnDia.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,126 @@
<template>
  <div>
    <el-dialog v-loading="diaLoading" :close-on-click-modal="false"
               :close-on-press-escape="false"
               :visible.sync="formDia"
               title="标准物质归还"
               width="80%" @close="closeReturnDia">
      <el-form ref="form" :model="form" :rules="rules" label-position="right" label-width="auto">
        <el-row :gutter="20">
          <el-col :span="12">
            <el-form-item label="标准物质名称" prop="name">
              <el-input v-model="form.name" disabled size="small"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="型号" prop="model">
              <el-input v-model="form.model" disabled size="small"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="归还日期" prop="returnDate">
              <el-date-picker
                v-model="form.returnDate"
                clearable
                format="yyyy-MM-dd HH:mm:ss" placeholder="选择日期"
                size="small" style="width: 100%"
                type="datetime" value-format="yyyy-MM-dd HH:mm:ss">
              </el-date-picker>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="归还人" prop="returnedPerson">
              <el-input v-model="form.returnedPerson" clearable size="small"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="完好性" prop="returnIntegrity">
              <el-input v-model="form.returnIntegrity" clearable size="small"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="检查人" prop="rummager">
              <el-input v-model="form.rummager" clearable size="small"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
      <span slot="footer" class="dialog-footer">
        <el-button @click="closeReturnDia">取 æ¶ˆ</el-button>
        <el-button :loading="loading" type="primary" @click="handleEdit">提 äº¤</el-button>
      </span>
    </el-dialog>
  </div>
</template>
<script>
export default {
  name: 'returnDia',
  // import å¼•入的组件需要注入到对象中才能使用
  components: {},
  data() {
    // è¿™é‡Œå­˜æ”¾æ•°æ®
    return {
      formDia: false,
      diaLoading: false,
      loading: false,
      form: {
        name: '',
        model: '',
        returnedPerson: '',
        returnDate: '',
        returnIntegrity: '',
        rummager: '',
      },
      rules: {
      },
    };
  },
  mounted() {
  },
  // æ–¹æ³•集合
  methods: {
    // æ‰“开弹框
    openDia (row) {
      this.formDia = true
      this.form.name = row.name
      this.form.model = row.model
      this.form.substanceId = row.id
    },
    // æäº¤å¼¹æ¡†æ•°æ®
    handleEdit () {
      this.$refs['form'].validate((valid) => {
        if (valid) {
          this.loading = true
          let internalReport = this.HaveJson(this.form)
          internalReport.status = '1'
          this.$axios.post(this.$api.feStandardSubstanceRecord.returnSubstance, internalReport, {
            headers: {
              "Content-Type": "application/json"
            },
            noQs: true
          }).then(res => {
            this.loading = false
            if (res.code === 201) return
            this.$message.success('操作成功')
            this.closeReturnDia()
          }).catch(err => {
            this.loading = false
          })
        } else {
          return false;
        }
      });
    },
    closeReturnDia () {
      this.$refs.form.resetFields();
      this.formDia = false
      this.$emit('closeReturnDia')
    },
  }
};
</script>
<style scoped>
</style>
src/components/view/a6-standard-material-list.vue
@@ -1,139 +1,331 @@
<style scoped>
  .title {
    height: 60px;
    line-height: 60px;
  }
  .search {
    background-color: #fff;
    height: 80px;
    display: flex;
    align-items: center;
  }
  .search_thing {
    display: flex;
    align-items: center;
    height: 50px;
  }
  .search_label {
    width: 120px;
    font-size: 14px;
    text-align: right;
  }
  .search_input {
    width: calc(100% - 120px);
  }
  .table {
    margin-top: 10px;
    background-color: #fff;
    width: calc(100% - 40px);
    height: calc(100% - 60px - 80px - 10px - 40px);
    padding: 20px;
  }
</style>
<template>
  <div class="below-standard-main">
    <div style="width: 100%;height: 100%;">
      <div>
        <el-row class="title">
          <el-col :span="12" style="padding-left: 20px;text-align: left;">标准物质清单</el-col>
          <el-col :span="12" style="text-align: right;">
                        <el-button size="medium" type="primary" @click="$refs['ValueTable'].openAddDia('新增接口')" v-if="addPower">新 å¢ž</el-button>
            <el-button size="medium" @click="$refs['ValueTable'].openDownDia()">导 å‡º</el-button>
                    </el-col>
        </el-row>
  <div>
    <div>
      <div class="view-title">
        <span>标准物质清单</span>
        <span>
          <el-button size="medium" @click="exportFun">导 å‡º</el-button>
          <el-button size="medium" type="primary" @click="openFormDia('add')">新 å¢ž</el-button>
        </span>
      </div>
      <div class="search">
        <div class="search_thing">
          <div class="search_label">名称:</div>
          <div class="search_input">
              <el-input size="small" placeholder="请输入" clearable v-model="componentData.entity.model"
                        @keyup.enter.native="refreshTable()"></el-input></div>
        </div>
        <div class="search_thing">
          <div class="search_label">生产厂家:</div>
          <div class="search_input">
            <el-input size="small" placeholder="请输入" clearable v-model="componentData.entity.sample"
              @keyup.enter.native="refreshTable()"></el-input>
          </div>
        </div>
        <div class="search_thing" style="padding-left: 30px;">
          <el-button size="small" @click="refresh()">重 ç½®</el-button>
          <el-button size="small" type="primary" @click="refreshTable()">查 è¯¢</el-button>
        </div>
      <div class="search-background">
        <span class="search-group">
          <span style="width: 180px">标准物质名称:</span>
          <el-input v-model="searchForm.name" clearable size="small"></el-input>
        </span>
        <span class="search-group">
          <span style="width: 120px">生产厂家:</span>
          <el-input v-model="searchForm.factoryManufacturer" clearable size="small"></el-input>
        </span>
        <span class="search-group">
          <el-button size="medium"  @click="resetSearchForm">重 ç½®</el-button>
          <el-button size="medium" type="primary" @click="searchList">查 è¯¢</el-button>
        </span>
      </div>
      <div class="table">
          <ValueTable ref="ValueTable" :url="$api.unPass.pageInsUnPass" :componentData="componentData"
          :key="upIndex" />
        <div>
          <TableCard :showForm="false" :showTitle="false">
            <template v-slot:table>
              <ZTTable
                :column="tableColumn"
                :height="'calc(100vh - 23em)'"
                :table-data="tableData"
                :table-loading="tableLoading"
                style="padding: 0 15px;margin-bottom: 16px">
              </ZTTable>
            </template>
          </TableCard>
          <el-pagination :current-page="1" :page-size="page.size" :page-sizes="[10, 20, 30, 50, 100]"
                         :total="total" layout="->,total, sizes, prev, pager, next, jumper"
                         @size-change="handleSizeChange"
                         @current-change="handleCurrentChange">
          </el-pagination>
        </div>
      </div>
    </div>
    <form-dia v-if="formDia" ref="formDia" @closeYearDia="closeYearDia"></form-dia>
    <borrow-dia v-if="borrowDia" ref="borrowDia" @closeYearDia="closeBorrowDia"></borrow-dia>
    <return-dia v-if="returnDia" ref="returnDia" @closeYearDia="closeReturnDia"></return-dia>
  </div>
</template>
<script>
  import ValueTable from '../tool/value-table.vue'
  import ZTTable from '../caorui/ZTTable/index.vue';
  import TableCard from '../caorui/TableCard/index.vue';
  import FormDia from '../do/a6-standard-material-list/formDia.vue';
  import BorrowDia from '../do/a6-standard-material-list/borrowDia.vue';
  import ReturnDia from '../do/a6-standard-material-list/returnDia.vue';
export default {
  components: {
    ReturnDia,
    BorrowDia,
    FormDia,
    TableCard,
    ZTTable,
    ValueTable,
  },
  data() {
    return {
        componentData: {
          entity: {
            sample: null,
            model: null,
            orderBy: {
              field: 'id',
              order: 'asc'
            }
          },
          isIndex: true,
          showSelect: false,
          select: false,
          do: [
            {
              id: 'update',
              font: '编辑',
              type: 'text',
              method: 'doDiy',
              field:['createUserName','updateUserName']
            },{
              id: 'delete',
              font: '删除',
              type: 'text',
              method: 'doDiy'
            }
          ],
          tagField: [],
          selectField: [],
          requiredAdd: ['model','sample',],
          requiredUp: [],
          needSort: ['sample'],
      searchForm: {
        name: '',
        factoryManufacturer: '',
      },
      tableColumn: [
        {
          label: '标准物质名称',
          prop: 'name',
          minWidth: '120'
        },
        entityCopy: {},
        upIndex: 0,
        stateList: [],
        addPower:true,
      }
        {
          label: '规格型号',
          prop: 'model',
          minWidth: '100'
        },
        {
          label: '生产厂家',
          prop: 'factoryManufacturer',
          minWidth: '100'
        },
        {
          label: '出厂编号',
          prop: 'factoryNum',
          minWidth: '100'
        },
        {
          label: '管理编号',
          prop: 'manageNum',
          minWidth: '100'
        },
        {
          label: '不确定度',
          prop: 'uncertainty',
          minWidth: '100'
        },
        {
          label: '数量',
          prop: 'quantity',
          minWidth: '100'
        },
        {
          label: '购置日期',
          prop: 'acquisitionDate',
          minWidth: '150'
        },
        {
          label: '有效期',
          prop: 'effectiveDate',
          minWidth: '150'
        },
        {
          label: '档案编号',
          prop: 'fileNum',
          minWidth: '100'
        },
        {
          label: '存放位置',
          prop: 'position',
          minWidth: '100'
        },
        {
          label: '备注',
          prop: 'remark',
          minWidth: '100'
        },
        // {
        //   label: '创建人',
        //   prop: 'createUser',
        //   minWidth: '100'
        // },
        {
          label: '创建时间',
          prop: 'createTime',
          minWidth: '150'
        },
        {
          dataType: 'action',
          fixed: 'right',
          minWidth: '180',
          label: '操作',
          operation: [
            {
              name: '编辑',
              type: 'text',
              clickFun: (row) => {
                this.openFormDia('edit', row);
              },
            },
            {
              name: '借用',
              type: 'text',
              clickFun: (row) => {
                this.borrow(row);
              },
            },
            {
              name: '归还',
              type: 'text',
              clickFun: (row) => {
                this.return(row);
              }
            },
            {
              name: '删除',
              type: 'text',
              color: '#f56c6c',
              clickFun: (row) => {
                this.delPlan(row)
              },
            }
          ]
        }
      ],
      tableData: [],
      tableLoading: false,
      page: {
        size: 20,
        current: 1,
      },
      total: 0,
      formDia: false,
      borrowDia: false,
      returnDia: false,
    }
  },
  mounted() {
    this.entityCopy = this.HaveJson(this.componentData.entity)
    this.getPower()
    this.searchList()
  },
  methods :{
    refreshTable() {
        this.$refs['ValueTable'].selectList()
      },
    refresh() {
        this.componentData.entity = this.HaveJson(this.entityCopy)
        this.upIndex++
      },
    // æƒé™åˆ†é…
    getPower(radio) {
      let power = JSON.parse(sessionStorage.getItem('power'))
    exportFun() {
      this.outLoading = true
      this.$axios.get(this.$api.feStandardSubstance.exportOfStandardSubstanceList + '?factoryManufacturer=' + this.searchForm.factoryManufacturer
        + '&name=' + this.searchForm.name, {responseType: "blob"}).then(res => {
        this.outLoading = false
        this.$message.success('导出成功')
        const blob = new Blob([res], {type: 'application/octet-stream'});
        const url = URL.createObjectURL(blob);
        const link = document.createElement('a');
        link.href = url;
        link.download = '标准物质清单.xlsx';
        link.click();
      }).finally(() => {
        this.outLoading = false
      })
    },
    // æŸ¥è¯¢åˆ—表
    searchList () {
      this.tableLoading = true
      this.$axios.get(this.$api.feStandardSubstance.getPageStandardSubstance + '?factoryManufacturer=' + this.searchForm.factoryManufacturer
        + '&name=' + this.searchForm.name
        + '&pages=' + this.page.current + '&size=' + this.page.size).then(res => {
        this.tableLoading = false
        if (res.code === 201) return
        this.tableData = res.data.records
        this.total = res.data.total
      }).catch(err => {
        this.tableLoading = false
      })
    },
    // åˆ é™¤
    delPlan (row) {
      this.$confirm('此操作将永久删除该数据, æ˜¯å¦ç»§ç»­?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        this.tableLoading = true
        this.$axios.get(this.$api.feStandardSubstance.removeStandardSubstance + '?id=' + row.id).then(res => {
          this.tableLoading = false
          if (res.code === 201) return
          this.$message.success('删除成功')
          this.searchList()
        }).catch(err => {
          this.tableLoading = false
        })
      }).catch(() => {
        this.$message({
          type: 'info',
          message: '已取消删除'
        });
      });
    },
    // æ–°å¢žï¼Œç¼–辑,批准弹框
    openFormDia (type, row) {
      this.formDia = true
      this.$nextTick(() => {
        this.$refs.formDia.openDia(type, row)
      })
    },
    closeYearDia () {
      this.formDia = false
      this.searchList()
    },
    // å€Ÿç”¨
    borrow (row) {
      this.borrowDia = true
      this.$nextTick(() => {
        this.$refs.borrowDia.openDia(row)
      })
    },
    closeBorrowDia () {
      this.borrowDia = false
      this.searchList()
    },
    // å½’还
    return (row) {
      this.returnDia = true
      this.$nextTick(() => {
        this.$refs.returnDia.openDia(row)
      })
    },
    closeReturnDia () {
      this.returnDia = false
      this.searchList()
    },
    // é‡ç½®æŸ¥è¯¢æ¡ä»¶
    resetSearchForm () {
      this.searchForm.name = '';
      this.searchForm.factoryManufacturer = '';
      this.searchList()
    },
    // åˆ†é¡µ
    handleSizeChange(val) {
      this.page.size = val;
      this.searchList();
    },
    handleCurrentChange(val) {
      this.page.current = val;
      this.searchList();
    },
  }
}
</script>
<style scoped>
.view-title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 60px;
  padding-left: 20px;
}
.search-background {
  width: 100%;
  height: 80px;
  line-height: 80px;
  background-color: #ffffff;
  display: flex;
}
.search-group {
  display: flex;
  align-items: center;
  margin: 0 20px;
}
.table {
  margin-top: 20px;
  background-color: #ffffff;
  padding-top: 20px;
}
</style>