Fixiaobai
2023-08-15 3f3f8aa865dd03a9dd2363ceabc61cc458a088d7
	modified:   src/views/laboratory/ledger/index.vue
modified: src/views/standardLibrary/index.vue
已修改2个文件
235 ■■■■ 文件已修改
src/views/laboratory/ledger/index.vue 221 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/standardLibrary/index.vue 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/laboratory/ledger/index.vue
@@ -16,7 +16,8 @@
        </el-form>
      </div>
      <div class="serve-btn">
        <el-button type="primary" icon="el-icon-plus" @click="addDrawerVisible = true">新增仪器</el-button>
        <el-button type="primary" icon="el-icon-plus"
          @click="addDrawerVisible = true; equipmentform.equipmentMeasurement = 1; equipmentform.whetherDataAcquisition = 1">新增仪器</el-button>
      </div>
    </div>
    <div class="content-main">
@@ -83,14 +84,11 @@
                <el-form-item prop="name" label="分类名称" label-width="100px" :rules="[
                  { required: true, message: '分类名称不能为空' }
                ]">
                  <el-input  v-model="addTreeForm.name"
                   />
                  <el-input placeholder="请填写分类名称" v-model="addTreeForm.name" />
                </el-form-item>
                <el-form-item label="父级分类" label-width="100px">
                  <el-select style="width: 100%;" v-model="addTreeForm.type" placeholder="请选择">
                    <el-option label="原材料" value="0" />
                    <el-option label="电线电缆" value="1" />
                  </el-select>
                  <el-cascader v-model="addTreeForm.type" :options="addTreeFormClassTree" style="width: 374.88px;"
                    :show-all-levels="false" />
                </el-form-item>
              </el-form>
              <div slot="footer" class="dialog-footer">
@@ -123,8 +121,8 @@
          <div class="message">
            <div class="message-item"><span><i class="el-icon-edit" />所属分类:{{ equipmentDetail.classifyId }}</span></div>
            <div class="message-item">
              <span><i class="el-icon-edit" />创建人:{{ equipmentDetail.createUserId }}</span>
              <el-tag type="primary"><i class="el-icon-info" :style="{ marginRight: '4px', color: '#409EFF' }" /></el-tag>
              <span><i class="el-icon-user" />创建人:{{ equipmentDetail.createUserId }}</span>
              <!-- <el-tag type="primary"><i class="el-icon-info" :style="{ marginRight: '4px', color: '#409EFF' }" /></el-tag> -->
            </div>
            <div class="message-item">
              <span><i class="el-icon-edit" />建档日期:{{ equipmentDetail.acceptanceDate }}</span>
@@ -204,8 +202,8 @@
                  <el-input v-show="codePointesTableStatus" v-model="scope.row.unit" />
                </template>
              </el-table-column>
              <el-table-column prop="name" label="更新人" min-width="100" />
              <el-table-column prop="updateTime" label="更新日期" min-width="120" />
              <!-- <el-table-column prop="name" label="更新人" min-width="100" />
              <el-table-column prop="updateTime" label="更新日期" min-width="120" /> -->
              <el-table-column prop="descriptiveness" label="描述" min-width="200">
                <template slot-scope="scope">
                  <span v-show="!codePointesTableStatus">{{ scope.row.descriptiveness }}</span>
@@ -246,27 +244,32 @@
    <el-drawer ref="addDrawer" :title="equipmentDetail.id ? '修改仪器设备信息' : '新增仪器设备'" :append-to-body="true"
      :visible.sync="addDrawerVisible" class="addDrawer" size="40%" @close="closeAddOrChangeDrawer">
      <div class="demo-drawer__content">
        <el-form label-position="top" :model="equipmentform">
        <el-form label-position="top" ref="addNewEquipment" :model="equipmentform">
          <el-row :gutter="50">
            <el-col :span="11">
              <el-form-item label="所属分类:" label-width="80">
              <el-form-item label="所属分类:" prop="classifyId" label-width="80" :rules="[
                { required: true, message: '请选择所属分类', trigger: 'change' }
              ]">
                <el-cascader v-model="equipmentform.classifyId" :options="classTree" :show-all-levels="false" />
              </el-form-item>
            </el-col>
            <el-col :span="11">
              <el-form-item label="设备编号:" label-width="80">
                <el-input v-model="equipmentform.equipmentCode" autocomplete="off" />
              <el-form-item label="设备编号:" prop="equipmentCode"
                :rules="[{ required: true, message: '请填写设备编号', trigger: 'blur' }]" label-width="80">
                <el-input v-model="equipmentform.equipmentCode" placeholder="请填写设备编号" autocomplete="off" />
              </el-form-item>
            </el-col>
          </el-row>
          <el-row :gutter="50">
            <el-col :span="11">
              <el-form-item label="仪器设备名称:" label-width="80">
                <el-input v-model="equipmentform.equipmentName" autocomplete="off" />
              <el-form-item label="仪器设备名称:" prop="equipmentName"
                :rules="[{ required: true, message: '请填写仪器设备名称', trigger: 'blur' }]" label-width="80">
                <el-input v-model="equipmentform.equipmentName" placeholder="请填写仪器设备名称" autocomplete="off" />
              </el-form-item>
            </el-col>
            <el-col :span="11">
              <el-form-item label="状态:" label-width="80">
              <el-form-item label="状态:" prop="conditions"
                :rules="[{ required: true, message: '请选择仪器设备状态', trigger: 'change' }]" 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"
@@ -277,32 +280,33 @@
          </el-row>
          <el-row :gutter="50">
            <el-col :span="11">
              <el-form-item label="型号规格:" label-width="80">
                <el-input v-model="equipmentform.specificationsModels" autocomplete="off" />
              <el-form-item label="型号规格:" prop="specificationsModels"
                :rules="[{ required: true, message: '请填写型号规格', trigger: 'blur' }]" label-width="80">
                <el-input v-model="equipmentform.specificationsModels" placeholder="请填写型号规格" autocomplete="off" />
              </el-form-item>
            </el-col>
            <el-col :span="11">
              <el-form-item label="测量范围:" label-width="80">
                <el-input v-model="equipmentform.measuringRange" autocomplete="off" />
                <el-input v-model="equipmentform.measuringRange" placeholder="请填写测量范围" autocomplete="off" />
              </el-form-item>
            </el-col>
          </el-row>
          <el-row :gutter="50">
            <el-col :span="11">
              <el-form-item label="不确定度/准确度/最大允许误差:" label-width="80">
                <el-input v-model="equipmentform.errorRate" autocomplete="off" />
                <el-input v-model="equipmentform.errorRate" placeholder="请填写不确定度/准确度/最大允许误差" autocomplete="off" />
              </el-form-item>
            </el-col>
            <el-col :span="11">
              <el-form-item label="生产厂家:" label-width="80">
                <el-input v-model="equipmentform.manufacturer" autocomplete="off" />
                <el-input v-model="equipmentform.manufacturer" placeholder="请填写生产厂家" autocomplete="off" />
              </el-form-item>
            </el-col>
          </el-row>
          <el-row :gutter="50">
            <el-col :span="11">
              <el-form-item label="存放地点:" label-width="80">
                <el-input v-model="equipmentform.storagePlace" autocomplete="off" />
                <el-input v-model="equipmentform.storagePlace" placeholder="请填写存放地点" autocomplete="off" />
              </el-form-item>
            </el-col>
            <el-col :span="11">
@@ -345,7 +349,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" type="number" />
                <el-input v-model="equipmentform.termValidity" placeholder="请填写计量有效期" type="number" />
              </el-form-item>
            </el-col>
          </el-row>
@@ -359,17 +363,17 @@
          </el-row>
        </el-form>
        <div class="demo-drawer__footer">
          <el-button class="el-button--default" @click="addDrawerVisible = false">取 消</el-button>
          <el-button class="el-button--default" @click="cancelAddEq">取 消</el-button>
          <el-button type="primary" class="el-button--primary el-button--medium" @click="addNewEquipment">确 定</el-button>
        </div>
      </div>
    </el-drawer>
    <!-- 新增计量信息弹窗 -->
    <el-dialog class="measureForm" title="新增计量" :visible.sync="measureFormVisible">
      <el-form label-position="top" :model="measureForm">
      <el-form label-position="top" ref="addmeasureForm" :model="measureForm">
        <el-row :gutter="20">
          <el-col :span="12">
            <el-form-item label="负责人">
            <el-form-item label="负责人" prop="userId" :rules="[{ required: true, message: '请选择负责人', trigger: 'change' }]">
              <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" />
@@ -377,14 +381,15 @@
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="计量单位">
              <el-input v-model="measureForm.measurementUnit" />
            <el-form-item label="计量单位" prop="measurementUnit"
              :rules="[{ required: true, message: '请填写计量单位', trigger: 'blur' }]">
              <el-input placeholder="请填写计量单位" v-model="measureForm.measurementUnit" />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="20">
          <el-col :span="24">
            <el-form-item label="检定有效期">
            <el-form-item label="检定有效期" prop="date" :rules="[{ required: true, message: '请选择检定有效期', trigger: 'change' }]">
              <el-date-picker v-model="measureForm.date" type="daterange" range-separator="至" start-placeholder="开始日期"
                end-placeholder="结束日期" />
            </el-form-item>
@@ -392,13 +397,14 @@
        </el-row>
        <el-row :gutter="20">
          <el-col :span="12">
            <el-form-item label="不确定度">
              <el-input v-model="measureForm.uncertainty" />
            <el-form-item label="不确定度" prop="uncertainty"
              :rules="[{ required: true, message: '请填写不确定度', trigger: 'blur' }]">
              <el-input placeholder="请填写不确定度" v-model="measureForm.uncertainty" />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="结果">
              <el-select v-model="measureForm.result" clearable filterable :allow-create="true" placeholder="负责人"
            <el-form-item label="结果" prop="result" :rules="[{ required: true, message: '请选择结果', trigger: 'change' }]">
              <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" />
              </el-select>
@@ -432,7 +438,7 @@
      <span slot="footer" class="dialog-footer">
        <el-button type="primary" @click="addMeasure">确 定</el-button>
        <el-button @click="measureFormVisible = false">取 消</el-button>
        <el-button @click="cancelAddMeasure">取 消</el-button>
      </span>
    </el-dialog>
    <!-- 删除仪器弹出框 -->
@@ -451,7 +457,7 @@
  getClassifyList, getInstrumentList,
  addInstrumentUser, addInstrument, getInstrumentDetail,
  getEquipmentPointList, addEquipmentPoint,
  getMetricalInformationList, changeInstrument, addMetricalInformation, deleteInstrument
  getMetricalInformationList, changeInstrument, addMetricalInformation, deleteInstrument, addClassify
} from '@/api/laboratory/ledger'
import { parseTime } from '@/utils/index'
export default {
@@ -528,7 +534,10 @@
      // 分类tree数据,分类配置项
      classTree: [],
      // 添加分类参数
      addTreeForm: {},
      addTreeForm: {
        name: null,
        type: null
      },
      // tree默认值
      defaultProps: {
        children: 'children',
@@ -580,19 +589,28 @@
      // 码点表格
      codePointsTable: [
        {
          'unit': 'mm',
          'descriptiveness': '疯了,做不了',
          'equipmentPoint': 'Area-1',
          'name': '小小',
          'updateTime': '2023-07-24',
          'unit': '',
          'descriptiveness': '',
          'equipmentPoint': '',
          'name': '',
          'updateTime': '',
          'id': 1,
          'equipmentPointName': '导体屏蔽(壁厚面积)'
          'equipmentPointName': ''
        }
      ],
      // 计量信息表
      measureTable: [],
      // 添加计量信息参数对象
      measureForm: {},
      measureForm: {
        userId: null,
        measurementUnit: null,
        date: null,
        uncertainty: null,
        result: null,
        performanceIndex: null,
        remarks: null,
        file: null
      },
      activeTabsName: 'codePoints',
      // 码点表格的状态:数据展示false/新增输入true
      codePointesTableStatus: false,
@@ -607,7 +625,8 @@
      conditionTable: '',
      nodeclicked: '',
      expireData: '',
      instrumentId: ''
      instrumentId: '',
      addTreeFormClassTree: []
    }
  },
  watch: {
@@ -632,7 +651,18 @@
        }
        return { ...item, label: item.father_name, value: item.id ? item.id : item.father_name }
      })
      // console.log(this.classTree)
      this.addTreeFormClassTree = JSON.parse(JSON.stringify(this.classTree))
      let father = {
        children: null,
        father_name: "无",
        id: 0,
        label: "无",
        value: 0
      }
      this.addTreeFormClassTree.unshift(father)
      this.addTreeFormClassTree.forEach(item => {
        item.children = null
      })
    },
    // 获取用户信息配置项
    async getUserOptions() {
@@ -666,7 +696,6 @@
    async getEquipmentTable(ages) {
      // console.log('条件对象', ages)
      const { data } = await getInstrumentList(ages)
      console.log(data)
      this.equipmentTable = data.row
      this.total = data.total
      this.oldtableData = this.equipmentTable
@@ -697,12 +726,12 @@
        this.codePointsTable = []
      }
      const newObj = {}
      newObj.name = '小小' // 当前用户的名称
      newObj.updateTime = '2023-07-24' // 获取当前时间
      newObj.equipmentPoint = 'Area-1'
      newObj.equipmentPointName = '导体屏蔽(壁厚面积)'
      newObj.name = '' // 当前用户的名称
      newObj.updateTime = '' // 获取当前时间
      newObj.equipmentPoint = ''
      newObj.equipmentPointName = ''
      newObj.descriptiveness = ''
      newObj.unit = 'mm'
      newObj.unit = ''
      newObj.instrumentId = this.equipmentDetail.id
      this.codePointsTable.push(newObj)
    },
@@ -732,18 +761,29 @@
      const { data: pointList } = await getEquipmentPointList({ InstrumentId: this.equipmentDetail.id })
      this.codePointsTable = pointList
    },
    async submitForm(formName) {
      this.$refs[formName].validate((valid) => {
        if (valid) {
          return true
        } else {
          return false;
        }
      });
    },
    // 点击新增仪器设备或当存在仪器详情时是修改仪器设备信息
    async addNewEquipment() {
      let v = this.submitForm('addNewEquipment')
      if (!v) {
        return
      }
      if (Array.isArray(this.equipmentform.classifyId)) {
        this.equipmentform.classifyId = this.equipmentform.classifyId.pop()
      }
      if (!this.equipmentDetail.id) {
        // 格式化日期
        console.log('新增仪器')
        this.equipmentform.arrivalDate = parseTime(this.equipmentform.arrivalDate, '{y}-{m}-{d}')
        this.equipmentform.acceptanceDate = parseTime(this.equipmentform.acceptanceDate, '{y}-{m}-{d}')
        // this.equipmentform.termValidity = parseTime(this.equipmentform?.termValidity, '{y}-{m}-{d}')
        console.log('新增仪器设备参数', this.equipmentform)
        try {
          const res = await addInstrument(this.equipmentform)
          console.log(res)
@@ -758,7 +798,6 @@
      console.log('修改仪器参数', this.equipmentform)
      try {
        const res = await changeInstrument(this.equipmentform)
        console.log(res)
        this.$message.success('修改成功')
        this.addDrawerVisible = false
        this.detailDrawer = false
@@ -766,8 +805,24 @@
        this.$message.error('添加失败')
      }
    },
    cancelAddEq() {
      this.addDrawerVisible = false
      // this.resetForm('addNewEquipment')
    },
    resetForm(formName) {
      this.$refs[formName].resetFields();
    },
    cancelAddMeasure() {
      this.measureFormVisible = false
      this.resetForm('addmeasureForm')
    },
    // 添加计量信息
    async addMeasure() {
      let v = this.submitForm('addmeasureForm')
      console.log(v);
      if (!v) {
        return
      }
      // 格式化时间
      this.measureForm.instrumentId = this.equipmentDetail.id
      if (Array.isArray(this.measureForm.date)) {
@@ -788,6 +843,8 @@
        const { data } = await addMetricalInformation(formData)
        console.log(data)
        this.$message.success('添加成功')
        const { data: informationList } = await getMetricalInformationList({ InstrumentId: this.equipmentDetail.id })
        this.measureTable = informationList
        this.measureForm = {}
        this.measureFormVisible = false
      } catch (error) {
@@ -894,23 +951,65 @@
      this.deletedialogVisible = true
    },
    async deleteInstrument() {
      // console.log(row.id)
      await deleteInstrument({ instrumentId: this.instrumentId })
      let up = await deleteInstrument({ instrumentId: this.instrumentId })
      if (up.data) {
        this.$message({
          message: '操作成功!',
          type: 'success'
        });
        let d = this.nodeclicked
        this.nodeClickHandler(d);
      }
      this.deletedialogVisible = false
    },
    submitTreeForm(formName) {
    async submitTreeForm(formName) {
      let _that = this
      this.$refs[formName].validate((valid) => {
        if (valid) {
          alert('submit!');
          _that.addClassifyInfo()
        } else {
          console.log('error submit!!');
          return false;
        }
      });
    },
    async addClassifyInfo() {
      let _that = this
      let data = {
        fatherName: null,
        sonName: null
      }
      if (_that.addTreeForm.type != null && _that.addTreeForm.type[0] != 0) {
        data.fatherName = _that.addTreeForm.type[0]
        data.sonName = _that.addTreeForm.name
      } else {
        data.fatherName = _that.addTreeForm.name
      }
      let add = await addClassify(data);
      switch (add.message.split('-$')[0]) {
        case '1':
          this.$message({
            message: '操作成功!',
            type: 'success'
          });
          _that.getThreeData()
          _that.resetTreeForm('addTreeForm')
          break;
        case '2':
        this.$message({
          message: '已存在该分类',
          type: 'warning'
        });
          break;
        case '0':
        this.$message.error('添加失败!请联系管理员');
          break;
      }
    },
    resetTreeForm(formName) {
      this.$refs[formName].resetFields();
      this.addClassVisible=false
      this.addClassVisible = false
    }
  }
}
src/views/standardLibrary/index.vue
@@ -1,7 +1,7 @@
<template>
  <div class="standard-library-main">
    <div class="content-main">
      <div class="library-bom">
      <div class="library-bom" style="width: 300px;">
        <el-input
          v-model="filterText"
          placeholder="输入关键字进行过滤"
@@ -9,6 +9,7 @@
        <el-button type="text">全部</el-button>
        <el-tree
          ref="tree"
          style="width: 100%;"
          class="filter-tree"
          :data="standardTree"
          :props="defaultProps"
@@ -20,7 +21,7 @@
          @node-click="nodeClick"
        />
      </div>
      <div class="library-table">
      <div class="library-table" style="width: 80%;">
        <div class="table-header">
          <div class="search-bar">
            <el-form ref="form" :inline="true" :model="searchData">
@@ -398,14 +399,15 @@
      background: #fff;
    }
    .library-bom{
      padding-right: 10px;
      width: 40vh;
      // padding-right: 10px;
      width: 300px;
      // height: 100%;
      max-height: 100%;
      margin-right: 12px;
      // margin-right: 12px;
      // overflow-y: scroll;
      .el-tree {
        // margin-top: 12px;
        // margin-top:
        width: 100%;
        ::v-deep .el-tree-node__content{
          height: 24px !important;
          font-size: 18px;