zhangherong
2025-04-07 d4be0ab305a9917c7cd59bf9df0fb3850a38223f
src/views/eam/maintenance/modules/EamWeekMaintenanceOrderModal.vue
@@ -21,7 +21,7 @@
            <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentId" label="设备编码">
              <maintenance-equipment-select placeholder="请输入设备编号或名称搜索" v-model="model.equipmentId"
                                            :maintenanceCategory="maintenanceCategory"
                                            @autocompleteForm="autocompleteForm"></maintenance-equipment-select>
                                            @autocompleteForm="autocompleteForm" :disabled="editable"></maintenance-equipment-select>
            </a-form-model-item>
          </a-col>
          <a-col :span="8">
@@ -33,14 +33,14 @@
        <a-row :gutter="24">
          <a-col :span="8">
            <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="maintenanceDate" label="保养日期">
              <a-date-picker placeholder="请选择保养日期" v-model="model.maintenanceDate" format="YYYY-MM-DD"
              <a-date-picker placeholder="请选择计划保养日期" v-model="model.maintenanceDate" format="YYYY-MM-DD"
                             style="width: 100%" />
            </a-form-model-item>
          </a-col>
          <a-col :span="8">
            <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="operator" label="保养人">
              <j-dict-select-tag v-model="model.operator" placeholder="请选择保养人"
                                 dictCode="sys_user,realname,username,username!='admin' order by create_time" />
              <j-search-select-tag v-model="model.operator" placeholder="请选择保养人"
                                 :dictOptions="maintenanceOperatorOptions" />
            </a-form-model-item>
          </a-col>
          <a-col :span="8">
@@ -94,9 +94,10 @@
      editable: false,
      model: {},
      maintenanceCategory: 'WEEK_MAINTENANCE',
      maintenanceOperatorOptions: [],
      labelCol: {
        xs: { span: 24 },
        sm: { span: 5 }
        sm: { span: 6 }
      },
      wrapperCol: {
        xs: { span: 24 },
@@ -113,7 +114,10 @@
      confirmLoading: false,
      validatorRules: {
        equipmentId: [
          {}
          { required: true, message: '请选择设备!' }
        ],
        maintenanceDate: [
          { required: true, message: '请选择计划保养日期!' }
        ]
      },
      url: {
@@ -121,6 +125,7 @@
        edit: '/eam/weekMaintenanceOrder/edit',
        standardDetail: '/eam/eamMaintenanceStandardDetail/queryList',
        detail: '/eam/weekMaintenanceOrderDetail/queryList',
        userSelect: '/eam/user_select/list',
      },
      detail: {
        loading: false,
@@ -184,21 +189,23 @@
    }
  },
  created() {
    this.loadMaintenanceOperatorList();
  },
  methods: {
    add() {
      //初始化默认值
      this.model = {};
      this.visible = true;
      this.editable = false;
      this.detail.dataSource = [];
      this.model = {}
      this.visible = true
      this.editable = false
      this.detail.dataSource = []
    },
    edit(record) {
      // debugger
      this.model = Object.assign({}, record)
      this.visible = true
      this.editable = true;
      this.detail.dataSource = [];
      this.loadDetail(record.id);
      this.editable = true
      this.detail.dataSource = []
      this.loadDetail(record.id)
    },
    close() {
      this.$emit('close')
@@ -207,18 +214,18 @@
    },
    async handleOk() {
      const that = this
      let errMap = await that.$refs.editableDetailTable.validateTable();
      if(errMap){
        this.$message.warning("数据校验失败!");
        return;
      let errMap = await that.$refs.editableDetailTable.validateTable()
      if (errMap) {
        this.$message.warning('数据校验失败!')
        return
      }
      // 触发表单验证
      this.$refs.form.validate(valid => {
        if (valid) {
          let tableData = that.$refs.editableDetailTable.getTableData();
          let removeData = that.$refs.editableDetailTable.getDeleteData();
          that.model.tableDetailList = [...tableData];
          that.model.removeDetailList = [...removeData];
          let tableData = that.$refs.editableDetailTable.getTableData()
          let removeData = that.$refs.editableDetailTable.getDeleteData()
          that.model.tableDetailList = [...tableData]
          that.model.removeDetailList = [...removeData]
          that.confirmLoading = true
          let httpurl = ''
@@ -250,12 +257,25 @@
      this.close()
    },
    autocompleteForm(selectObj) {
      this.model.standardName = selectObj.standardName
      this.model.maintenancePeriod = selectObj.maintenancePeriod
      this.model.standardId = selectObj.id
      if(!this.model.id) {
        this.loadStandardDetail(selectObj.id);
      //标准名称,保养周期不刷新解决办法
      //办法一  validatorRules equipmentId 还是有问题
      // const newObj = {
      //   standardName: selectObj.standardName,
      //   maintenancePeriod: selectObj.maintenancePeriod,
      //   standardId : selectObj.id,
      //   equipmentId: selectObj.equipmentId,
      // };
      // this.model = Object.assign({}, newObj, this.model)
      //办法二
      this.$set(this.model, 'standardName', selectObj.standardName)
      this.$set(this.model, 'maintenancePeriod', selectObj.maintenancePeriod)
      this.$set(this.model, 'standardId', selectObj.id)
      this.$set(this.model, 'equipmentId', selectObj.equipmentId)
      // console.log('model', this.model)
      if (!this.model.id) {
        this.loadStandardDetail(selectObj.id)
      }
      this.loadMaintenanceOperatorList(this.model.equipmentId);
    },
    //加载详情数据
    loadStandardDetail(standardId) {
@@ -274,13 +294,29 @@
    },
    //标准选择变化
    loadDetail(orderId) {
        if (orderId) {
          getAction(this.url.detail, { orderId: orderId }).then(res => {
            if (res.success) {
              this.detail.dataSource = [...res.result]
            }
          })
      if (orderId) {
        getAction(this.url.detail, { orderId: orderId }).then(res => {
          if (res.success) {
            this.detail.dataSource = [...res.result]
          }
        })
      }
    },
    loadMaintenanceOperatorList(equipmentId) {
      this.maintenanceOperatorOptions = []
      let params = { positionCode: 'PCR0001' }
      if (equipmentId) {
        params.equipmentId = equipmentId
      }
      getAction(this.url.userSelect, params).then(res => {
        if (res.success) {
          this.maintenanceOperatorOptions = res.result.map(item => ({
            key: item.id,
            value: item.username,
            text: item.realname
          }))
        }
      })
    }
  }