zouyu
2023-09-05 aae37a0534f682cb413c5bce1333820d44214dfc
src/views/laboratory/ledger/index.vue
@@ -25,7 +25,7 @@
        <div class="bom-item-search">
          <el-row>
            <el-col :span="19">
              <el-input v-model="filterText" placeholder="输入关键字进行过滤" />
              <el-input v-model="filterText" clearable placeholder="输入关键字进行过滤" />
            </el-col>
            <el-col :span="5">
              <el-button type="primary" size="small" @click="addClassVisible = true"><i
@@ -33,7 +33,7 @@
            </el-col>
          </el-row>
        </div>
        <el-tree ref="classTree" :data="classTree" :props="defaultProps" :default-expand-all="true"
        <el-tree highlight-current="true" ref="classTree" :data="classTree" :props="defaultProps" :default-expand-all="true"
          :filter-node-method="filterNode" @node-click="nodeClickHandler" />
      </div>
      <div class="library-table">
@@ -52,9 +52,9 @@
          </div>
        </div>
        <div class="table-box">
          <el-table ref="equipmentTable" node-key="father_name" :cell-style="{ textAlign: 'center' }"
            :header-cell-style="{ border: '0px', background: '#f5f7fa', color: '#606266', boxShadow: 'inset 0 1px 0 #ebeef5', textAlign: 'center' }"
            :data="equipmentTable" style="width: 100%">
          <el-table ref="equipmentTable" node-key="father_name" :cell-style="{ textAlign: 'left' }"
            :header-cell-style="{ border: '0px', background: '#f5f7fa', color: '#606266', boxShadow: 'inset 0 1px 0 #ebeef5', textAlign: 'left' }"
            :data="equipmentTable" style="width: 100%;">
            <el-table-column type="index" label="序号" min-width="90" />
            <el-table-column prop="equipment_code" label="仪器设备编号" min-width="200" />
            <el-table-column prop="equipment_name" label="仪器设备名称" min-width="150" />
@@ -63,12 +63,14 @@
            <el-table-column prop="termValidity" label="计量截止有效期" min-width="200" />
            <el-table-column prop="conditions" label="设备状态" min-width="120">
              <template slot-scope="scope">
                <el-tag :type="scope.row.conditions === 0 ? 'primary' : 'success'" disable-transitions>{{
                  scope.row.conditions | conditionsFilter }}</el-tag>
                <el-tag v-if="scope.row.conditions === 1" type="success" disable-transitions>运行</el-tag>
                <el-tag v-if="scope.row.conditions === 2" type="danger" disable-transitions>故障</el-tag>
                <el-tag v-if="scope.row.conditions === 3" type="warning" disable-transitions>报修</el-tag>
                <el-tag v-if="scope.row.conditions === 4" type="warning" disable-transitions>检修</el-tag>
                <el-tag v-if="scope.row.conditions === 5" disable-transitions>待机</el-tag>
              </template>
            </el-table-column>
            <el-table-column prop="storage_place" label="存放地" min-width="200" />
            <el-table-column label="操作" min-width="120" fixed="right">
              <template slot-scope="scope">
                <el-button type="text" size="small" @click="openDetail(scope.row)">编辑</el-button>
@@ -152,7 +154,7 @@
              <span><i class="el-icon-edit" />验收日期:{{ equipmentDetail.acceptanceDate }}</span>
            </div>
            <div class="message-item">
              <span><i class="el-icon-edit" />保管人:{{ equipmentDetail.userId }}</span>
              <span><i class="el-icon-edit" />保管人:{{ equipmentDetail.userName }}</span>
            </div>
            <div class="message-item">
              <span><i class="el-icon-edit" />是否支持数采:{{ equipmentDetail.whetherDataAcquisition == 1 ? '支持' : '不支持'
@@ -248,9 +250,9 @@
          <el-row :gutter="50">
            <el-col :span="11">
              <el-form-item label="所属分类:" prop="classifyId" label-width="80" :rules="[
                { required: true, message: '请选择所属分类', trigger: 'change' }
                { required: true, message: '请选择所属分类', trigger: 'blur' }
              ]">
                <el-cascader v-model="equipmentform.classifyId" :options="classTree" :show-all-levels="false" />
                <el-cascader style="width: 100%;" v-model="equipmentform.classifyId" :options="classTree" :show-all-levels="false" />
              </el-form-item>
            </el-col>
            <el-col :span="11">
@@ -269,7 +271,7 @@
            </el-col>
            <el-col :span="11">
              <el-form-item label="状态:" prop="conditions"
                :rules="[{ required: true, message: '请选择仪器设备状态', trigger: 'change' }]" label-width="80">
                :rules="[{ required: true, message: '请选择仪器设备状态', trigger: 'blur' }]" label-width="80">
                <el-select v-model="equipmentform.conditions" clearable filterable :allow-create="true"
                  placeholder="请选择仪器设备状态" style="width:100%">
                  <el-option v-for="item in conditionsOptions" :key="item.value" :label="item.label"
@@ -311,7 +313,7 @@
            </el-col>
            <el-col :span="11">
              <el-form-item label="到货日期:" label-width="80">
                <el-date-picker v-model="equipmentform.arrivalDate" type="date" placeholder="请选择到货日期"
                <el-date-picker value-format="yyyy-MM-dd" v-model="equipmentform.arrivalDate" type="date" placeholder="请选择到货日期"
                  style="width:100%" />
              </el-form-item>
            </el-col>
@@ -319,7 +321,7 @@
          <el-row :gutter="50">
            <el-col :span="11">
              <el-form-item label="验收日期:" label-width="80">
                <el-date-picker v-model="equipmentform.acceptanceDate" type="date" placeholder="请选择验收日期"
                <el-date-picker  value-format="yyyy-MM-dd" v-model="equipmentform.acceptanceDate" type="date" placeholder="请选择验收日期"
                  style="width:100%" />
              </el-form-item>
            </el-col>
@@ -349,7 +351,7 @@
          <el-row v-show="equipmentform.equipmentMeasurement === 1" :gutter="50">
            <el-col :span="12">
              <el-form-item label="计量截止有效期:" label-width="80">
                <el-input v-model="equipmentform.termValidity" placeholder="请填写计量有效期" type="number" />
                <el-input min="0" v-model="equipmentform.termValidity" placeholder="请填写计量有效期" type="number" />
              </el-form-item>
            </el-col>
          </el-row>
@@ -373,7 +375,7 @@
      <el-form label-position="top" ref="addmeasureForm" :model="measureForm">
        <el-row :gutter="20">
          <el-col :span="12">
            <el-form-item label="负责人" prop="userId" :rules="[{ required: true, message: '请选择负责人', trigger: 'change' }]">
            <el-form-item label="负责人" prop="userId" :rules="[{ required: true, message: '请选择负责人', trigger: 'blur' }]">
              <el-select v-model="measureForm.userId" clearable filterable :allow-create="true" placeholder="负责人"
                style="width:100%">
                <el-option v-for="item in userOpetions" :key="item.id" :label="item.label" :value="item.value" />
@@ -389,7 +391,7 @@
        </el-row>
        <el-row :gutter="20">
          <el-col :span="24">
            <el-form-item label="检定有效期" prop="date" :rules="[{ required: true, message: '请选择检定有效期', trigger: 'change' }]">
            <el-form-item label="检定有效期" prop="date" :rules="[{ required: true, message: '请选择检定有效期', trigger: 'blur' }]">
              <el-date-picker v-model="measureForm.date" type="daterange" range-separator="至" start-placeholder="开始日期"
                end-placeholder="结束日期" />
            </el-form-item>
@@ -403,7 +405,7 @@
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="结果" prop="result" :rules="[{ required: true, message: '请选择结果', trigger: 'change' }]">
            <el-form-item label="结果" prop="result" :rules="[{ required: true, message: '请选择结果', trigger: 'blur' }]">
              <el-select v-model="measureForm.result" clearable filterable :allow-create="true" placeholder="请选择结果"
                style="width:100%">
                <el-option v-for="item in resultOptions" :key="item.id" :label="item.label" :value="item.value" />
@@ -428,7 +430,7 @@
        <el-row :gutter="20">
          <el-col :span="24">
            <el-form-item label="">
              <el-upload class="upload-demo" action="#" :on-change="handleUpload" :auto-upload="false">
              <el-upload ref="upload" class="upload-demo" action="#" :on-change="handleUpload" :auto-upload="false">
                <el-button size="small" type="primary">点击上传</el-button>
              </el-upload>
            </el-form-item>
@@ -461,29 +463,7 @@
} from '@/api/laboratory/ledger'
import { parseTime } from '@/utils/index'
export default {
  filters: {
    conditionsFilter(value) {
      let returnValue = null
      switch (+value) {
        case 1:
          returnValue = '运行'
          break
        case 2:
          returnValue = '故障'
          break
        case 3:
          returnValue = '报修'
          break
        case 4:
          returnValue = '检修'
          break
        case 5:
          returnValue = '待机'
          break
      }
      return returnValue
    }
  },
  filters: {},
  data() {
    return {
      // 用户下拉框配置项
@@ -632,6 +612,12 @@
  watch: {
    filterText(val) {
      this.$refs.classTree.filter(val)
    },
    measureFormVisible(newVal){
      if(newVal === false){
        this.measureForm.file = null;
        this.$refs['upload'].clearFiles();
      }
    }
  },
  created() {
@@ -686,7 +672,7 @@
    // 节点点击处理
    nodeClickHandler(data, node, element) {
      this.nodeclicked = data
      // console.log(data)
      console.log(data)
      // 只有数据中携带id才能发送查询请求
      if (data.id) {
        this.getEquipmentTable({ classifyId: data.id, pageSize: this.pageSize, pageNo: this.currentPage, whetherWhether: this.isOut })
@@ -791,6 +777,8 @@
          this.$message.error('添加失败')
        }
        this.$message.success('添加成功')
        let d = this.nodeclicked;
        this.nodeClickHandler(d);
        this.addDrawerVisible = false
        this.equipmentform = {}
        return
@@ -799,6 +787,8 @@
      try {
        const res = await changeInstrument(this.equipmentform)
        this.$message.success('修改成功')
        let d = this.nodeclicked;
        this.nodeClickHandler(d);
        this.addDrawerVisible = false
        this.detailDrawer = false
      } catch (error) {
@@ -806,13 +796,15 @@
      }
    },
    cancelAddEq() {
      this.resetForm('addDrawer')
      this.addDrawerVisible = false
      // this.resetForm('addNewEquipment')
    },
    resetForm(formName) {
      this.$refs[formName].resetFields();
    },
    cancelAddMeasure() {
      this.$refs['upload'].clearFiles();
      this.measureForm.file = null;
      this.measureFormVisible = false
      this.resetForm('addmeasureForm')
    },
@@ -850,12 +842,16 @@
      } catch (error) {
        this.$message.error('添加失败')
      }
      this.measureForm.file = null;
      this.$refs['upload'].clearFiles();
    },
    // 关闭设备详情抽屉
    closeDetailDrawer() {
      this.equipmentDetail = {}
      this.codePointsTable = []
      this.measureTable = []
      this.measureForm.file = null;
      this.$refs['upload'].clearFiles();
    },
    // 关闭添加修改设备抽屉
    closeAddOrChangeDrawer() {
@@ -951,15 +947,13 @@
      this.deletedialogVisible = true
    },
    async deleteInstrument() {
      let up = await deleteInstrument({ instrumentId: this.instrumentId })
      if (up.data) {
        this.$message({
          message: '操作成功!',
          type: 'success'
        });
      await deleteInstrument({ instrumentId: this.instrumentId }).then(res=>{
        this.$message.success('删除成功!');
        let d = this.nodeclicked
        this.nodeClickHandler(d);
      }
      }).catch(()=>{
        this.$message.error('删除失败!');
      });
      this.deletedialogVisible = false
    },
    async submitTreeForm(formName) {
@@ -979,12 +973,15 @@
        fatherName: null,
        sonName: null
      }
      if (_that.addTreeForm.type != null && _that.addTreeForm.type[0] != 0) {
        data.fatherName = _that.addTreeForm.type[0]
        data.fatherName = _that.addTreeFormClassTree.filter(item => {
          return item.value == _that.addTreeForm.type[0]
        })[0].label
        data.sonName = _that.addTreeForm.name
      } else {
        data.fatherName = _that.addTreeForm.name
      }
      }      // return;
      let add = await addClassify(data);
      switch (add.message.split('-$')[0]) {
        case '1':
@@ -996,13 +993,13 @@
          _that.resetTreeForm('addTreeForm')
          break;
        case '2':
        this.$message({
          message: '已存在该分类',
          type: 'warning'
        });
          this.$message({
            message: '已存在该分类',
            type: 'warning'
          });
          break;
        case '0':
        this.$message.error('添加失败!请联系管理员');
          this.$message.error('添加失败!请联系管理员');
          break;
      }
@@ -1049,7 +1046,7 @@
    background: #fff;
    display: flex;
    justify-content: space-between;
    padding: 0 24px 12px 24px;
    padding: 15px 24px 12px 24px;
    .search-bar {
      .el-radio-button.is-active {
@@ -1085,6 +1082,7 @@
    .library-bom {
      flex: 2;
      margin-right: 12px;
         height: 80vh;
      .bom-item-search {
        margin-bottom: 12px;
@@ -1116,6 +1114,7 @@
      margin-left: 12px;
      display: flex;
      flex-direction: column;
         height: 80vh;
      .table-box {
        margin-top: 30px;