zhaowei
2025-03-06 ddd818f74d59c1fdeeed29714d660d7e49200c04
src/views/eam/modules/equipmentCalibrationOrder/EquipmentCalibrationOrderModal.vue
@@ -1,78 +1,77 @@
<template>
  <a-modal
    :title="title"
    :width="1250"
    :visible="visible"
    :maskClosable="false"
    @ok="handleOk"
    cancelText="关闭"
    @cancel="handleCancel"
    :confirmLoading="confirmLoading"
    :title='title'
    :width='650'
    :visible='visible'
    :maskClosable='false'
    @ok='handleOk'
    cancelText='关闭'
    @cancel='handleCancel'
    :confirmLoading='confirmLoading'
  >
    <a-spin :spinning="confirmLoading">
      <a-form :form="form">
        <a-row :gutter="24">
          <a-col :span="12">
    <a-spin :spinning='confirmLoading'>
      <a-form :form='form'>
        <a-row :gutter='24'>
          <a-col :span='24'>
            <a-form-item
              label="工单号"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              label='工单号'
              :labelCol='labelCol'
              :wrapperCol='wrapperCol'
            >
              <a-input
                allow-clear
                :disabled="codeDisable"
                :disabled='codeDisable'
                :placeholder="disableSubmit?'':'请输入工单号编码'"
                v-decorator="['num', validatorRules.num ]"
              />
            </a-form-item>
          </a-col>
          <a-col :span="12">
          <a-col :span='24'>
            <a-form-item
              label="检定方式"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
            >
              <j-dict-select-tag
                allow-clear
                :disabled="disableSubmit"
                :placeholder="disableSubmit?'':'请选择检定方式'"
                :triggerChange="true"
                dictCode="calibration_type"
                v-decorator="['calibrationType', validatorRules.calibrationType]"
              />
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="12">
            <a-form-item
              label="设备"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              label='设备'
              :labelCol='labelCol'
              :wrapperCol='wrapperCol'
            >
              <a-input-search
                :disabled="disableSubmit"
                placeholder="请选择设备"
                :disabled='disableSubmit'
                placeholder='请选择设备'
                enter-button
                @search="onEquipmentList()"
                :read-only="true"
                @search='onEquipmentList()'
                :read-only='true'
                v-decorator="['equipmentName', validatorRules.equipmentName]"
              />
            </a-form-item>
          </a-col>
          <a-col :span="12">
          <a-col :span='24'>
            <a-form-item
              label="判断依据"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              label='鉴定方式'
              :labelCol='labelCol'
              :wrapperCol='wrapperCol'
            >
              <j-dict-select-tag
                allow-clear
                :disabled="disableSubmit"
                :disabled='disableSubmit'
                :placeholder="disableSubmit?'':'请选择鉴定方式'"
                :triggerChange='true'
                dictCode='calibration_type'
                v-decorator="['calibrationType', validatorRules.calibrationType]"
              />
            </a-form-item>
          </a-col>
          <a-col :span='24'>
            <a-form-item
              label='判断依据'
              :labelCol='labelCol'
              :wrapperCol='wrapperCol'
            >
              <j-dict-select-tag
                allow-clear
                :read-only='true'
                :disabled='disableSubmit'
                :placeholder="disableSubmit?'':'请选择判断依据'"
                :triggerChange="true"
                dictCode="management_mode"
                :triggerChange='true'
                dictCode='management_mode'
                v-decorator="['managementMode', validatorRules.managementMode]"
              />
            </a-form-item>
@@ -80,35 +79,50 @@
        </a-row>
        <a-row
          hidden
          :gutter="24"
          :gutter='24'
        >
          <a-col :span="12">
          <a-col :span='24'>
            <a-form-item
              label="设备Id"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              label='设备Id'
              :labelCol='labelCol'
              :wrapperCol='wrapperCol'
            >
              <a-input
                allow-clear
                :disabled="true"
                :placeholder="disableSubmit?'':'请输入设备编码/名称/型号'"
                :disabled='true'
                :placeholder="disableSubmit?'':'请输入统一编码/名称/型号'"
                v-decorator="['equipmentId', validatorRules.equipmentId ]"
              />
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="24">
        <a-row :gutter='24'>
          <!-- <a-col :span='24'>
            <a-form-item
              :labelCol="{span:3}"
              :wrapperCol="{span:21}"
              label="备注"
              :labelCol='{span:3}'
              :wrapperCol='{span:21}'
              label='备注'
            >
              <a-textarea
                allow-clear
                :disabled="disableSubmit"
                :disabled='disableSubmit'
                :placeholder="disableSubmit?'':'请输入备注'"
                v-decorator="['remark', validatorRules.remark]"
              />
            </a-form-item>
          </a-col> -->
          <a-col :span='24'>
            <a-form-item
              :labelCol='{span:3}'
              :wrapperCol='{span:21}'
              label='精度参数模板ID'
              hidden
            >
              <a-textarea
                allow-clear
                :disabled='disableSubmit'
                :placeholder="disableSubmit?'':'请输入精度参数模板ID'"
                v-decorator="['calibrationOrderUda1', validatorRules.calibrationOrderUda1]"
              />
            </a-form-item>
          </a-col>
@@ -116,32 +130,37 @@
      </a-form>
    </a-spin>
    <a-table
      ref="table"
      v-show='false'
      ref='table'
      bordered
      size="middle"
      size='middle'
      rowKey='id'
      :columns="columns"
      :dataSource="dataSource"
      :columns='columns'
      :pagination='ipagination'
      :loading='loading'
      :dataSource='dataSource'
      @change='handleTableChange'
    >
    </a-table>
    <template slot="footer">
    <template slot='footer'>
      <a-button
        :style="{marginRight: '8px'}"
        @click="handleCancel()"
        @click='handleCancel()'
      >
        关闭
      </a-button>
      <a-button
        @click="handleOk()"
        type="primary"
        :loading="confirmLoading"
      >确定</a-button>
        @click='handleOk()'
        type='primary'
        :loading='confirmLoading'
      >确定
      </a-button>
    </template>
    <equipment-list
      ref="EquipmentList"
      ref='EquipmentList'
      @sendEquipmentRecord='sendEquipmentRecord'
    ></equipment-list>
  </a-modal>
@@ -154,197 +173,222 @@
import JMultiSelectTag from '@/components/dict/JMultiSelectTag'
import Tooltip from 'ant-design-vue/es/tooltip'
import EquipmentList from './EquipmentList'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import Vue from 'vue'
export default {
  name: "EquipmentCalibrationOrderModal",
  name: 'EquipmentCalibrationOrderModal',
  mixins: [JeecgListMixin],
  components: {
    JMultiSelectTag,
    Tooltip,
    EquipmentList
  },
  data() {
    return {
      columns: [
        {
          title: '#',
          dataIndex: '',
          key: 'rowIndex',
          align: 'center',
          customRender: function (t, r, index) {
            return parseInt(index) + 1
          },
          width: 50,
          dataIndex: 'sort',
          width: 100,
          align: 'center'
        },
        {
          title: '精度参数编码',
          title: '检验项目名称',
          align: 'center',
          dataIndex: 'num'
          dataIndex: 'precisionParametersName',
          width: 300
        },
        {
          title: '精度参数名称',
          title: '位置',
          align: 'center',
          dataIndex: 'name'
          dataIndex: 'precisionParametersUda1',
          width: 300
        },
        {
          title: '单位',
          title: '允差(mm)',
          align: 'center',
          dataIndex: 'unitName'
        },
        {
          title: '下限值',
          align: 'center',
          dataIndex: 'lowerLimit'
        },
        {
          title: '上限值',
          align: 'center',
          dataIndex: 'upperLimit'
        },
        {
          title: '实际测定值',
          align: 'center',
          dataIndex: 'actualValue',
        },
          dataIndex: 'tolerance',
          width: 300
        }
      ],
      title: "操作",
      title: '操作',
      precisionParametersTemplateId: '',
      visible: false,
      disableSubmit: false,
      codeDisable: true,
      dataSource: [],
      model: {},
      num: "",
      model: { 'management_mode': 'report', 'calibration_type': 'self' },
      labelCol: {
        xs: { span: 24 },
        sm: { span: 6 },
        sm: { span: 6 }
      },
      wrapperCol: {
        xs: { span: 24 },
        sm: { span: 18 },
        sm: { span: 18 }
      },
      confirmLoading: false,
      form: this.$form.createForm(this),
      validatorRules: {
        num: {
          rules: [
            { required: true, message: '请输入工单编码!' },
            { required: true, message: '请输入工单编码!' }
          ]
        },
        calibrationType: {
          rules: [
            { required: true, message: '请选择检定方式!' },
            { required: true, message: '请选择鉴定方式!' }
          ]
        },
        managementMode: {
          rules: [
            { required: true, message: '请选择判定依据!' },
            { required: true, message: '请选择判定依据!' }
          ]
        },
        equipmentName: {
          rules: [
            { required: true, message: '请选择设备!' },
            { required: true, message: '请选择设备!' }
          ]
        },
        }
      },
      url: {
        add: "/eam/calibrationOrder/addNew",
        edit: "/eam/calibrationOrder/editNew",
        getPrecisionParameterList: "/eam/calibrationOrder/getPrecisionParameterList",
      },
        add: '/eam/calibrationOrder/addNew',
        edit: '/eam/calibrationOrder/editNew',
        list: '/eam/precisionParametersTemplateDetail/listByPrecisionParametersTemplateId',
        getNum: '/eam/sysIdentity/getNumNew',
      }
    }
  },
  created() {
    // this.initNum()
  },
  methods: {
    // 初始化技术状态鉴定工单号
    // initNum(){
    //   getAction(this.url.getNum, { type: 'CalibrationOrder', length: '4' }).then((res) => {
    //     if (res.success) {
    //       this.num = res.message
    //     }
    //   })
    // },
    add() {
      this.dataSource = []
      this.edit({})
      this.precisionParametersTemplateId = '-1'
      getAction(this.url.getNum, { type: 'CalibrationOrder', length: '4' }).then((res) => {
        if (res.success) {
          // this.num = res.message
          this.form.setFieldsValue({ "num": res.message })
        }
      })
      // 新增时候设置鉴定类型为自检、 判定依据为报告
      this.edit({ "num": this.num, 'calibrationType': 'self', 'managementMode': 'report' })
    },
    edit(record) {
      let that = this;
      this.form.resetFields();
      this.model = Object.assign({}, record);
      this.visible = true;
      let that = this
      this.form.resetFields()
      this.model = Object.assign({}, record)
      this.visible = true
      this.maintenanceCycles = record.maintenanceCycles
      if (record.precisionParameterList != undefined) {
        this.dataSource = record.precisionParameterList;
        this.dataSource = record.precisionParameterList
      }
      that.$nextTick(() => {
        that.form.setFieldsValue(pick(that.model, 'num', 'equipmentName', 'equipmentId', 'calibrationType', 'managementMode'));
      });
        that.form.setFieldsValue(pick(that.model, 'num', 'equipmentName', 'equipmentId', 'calibrationType', 'managementMode'))
      })
      if (record.id) {
        this.codeDisable = true;
        this.codeDisable = true
      } else {
        this.codeDisable = false;
        this.codeDisable = false
      }
    },
    close() {
      this.$emit('close');
      this.visible = false;
      this.$emit('close')
      this.visible = false
    },
    handleCancel() {
      this.close();
      this.close()
    },
    handleOk() {
      const that = this;
      const that = this
      this.form.validateFields((err, values) => {
        if (!err) {
          that.confirmLoading = true;
          let formData = Object.assign(this.model, values);
          let obj;
          that.confirmLoading = true
          let formData = Object.assign(this.model, values)
          let obj
          if (!this.model.id) {
            obj = postAction(this.url.add, formData);
            obj = postAction(this.url.add, formData)
          } else {
            obj = requestPut(this.url.edit, formData, { id: this.model.id });
            obj = requestPut(this.url.edit, formData, { id: this.model.id })
          }
          obj.then((res) => {
            if (res.success) {
              that.$message.success(res.message);
              that.$emit('ok');
              that.$message.success(res.message)
              that.$emit('ok')
            } else {
              that.$message.warning(res.message);
              that.$message.warning(res.message)
            }
          }).finally(() => {
            that.confirmLoading = false;
            that.close();
            that.confirmLoading = false
            that.close()
          })
        }
      })
    },
    onEquipmentList() {
      this.$refs.EquipmentList.list();
      this.$refs.EquipmentList.title = "选择设备信息";
      this.$refs.EquipmentList.list()
      this.$refs.EquipmentList.title = '选择设备信息'
    },
    sendEquipmentRecord(data) {
      this.dataSource = [];
      let record = data.record;
      this.form.setFieldsValue({ equipmentId: record.id, equipmentName: record.num + "/" + record.name + "/" + record.model });
      this.getPrecisionParameterList(record.id);
    },
    getPrecisionParameterList(equipmentId) {
      getAction(this.url.getPrecisionParameterList, { equipmentId: equipmentId }).then((res) => {
        if (res.success) {
          this.dataSource = res.result
        }
      this.dataSource = []
      let record = data.record
      this.form.setFieldsValue({
        calibrationOrderUda1: record.precisionParametersTemplateId,
        equipmentId: record.id,
        equipmentName: record.num + '/' + record.name + '/' + record.model
      })
      this.precisionParametersTemplateId = record.precisionParametersTemplateId
    },
  },
    clearList() {
      this.dataSource = []
      this.selectedRowKeys = []
      this.ipagination.current = 1
    }
  }
  ,
  watch: {
    precisionParametersTemplateId: {
      immediate: true,
      handler(val) {
        if (!this.precisionParametersTemplateId) {
          this.clearList()
        } else {
          this.queryParam['precisionParametersTemplateId'] = val
          this.queryParam['delFlag'] = 0
          this.loadData(1)
        }
      }
    }
  }
}
</script>
<style lang="less" scoped>
<style lang='less' scoped>
/deep/ .frozenRowClass {
  color: #c9c9c9;
}
.fontweight {
  font-weight: bold;
}
.ant-btn {
  padding: 0 10px;
  margin-left: 3px;