qushaowei
2025-05-30 289367f7066d1179685a501ec5a108fa11a7c0f2
src/views/eam/modules/repairorder/moudles/RepairOrderActualHoursReport.vue
@@ -35,15 +35,25 @@
          <!--          <a-switch @change='(e)=>onChange(e, record.key, col, index)' :value='text' :disabled="repairOrderStatus=='4'"-->
          <!--                    v-if="col.dataIndex == 'principalContractor'" />-->
          <a-select default-value='0' :value='text' :disabled="repairOrderStatus=='4'"
                    v-if="col.dataIndex == 'principalContractor'"
                    style="width: 100%;"
                    @change='(e)=>handleChange(e, record.key, col, index)'>
          <a-select
            default-value='0'
            :value='text'
            :disabled="repairOrderStatus=='4'"
            v-if="col.dataIndex == 'principalContractor'"
            style="width: 100%;"
            @change='(e)=>handleChange(e, record.key, col, index)'
          >
            <a-select-opt-group>
              <a-select-option value='1' style="width: 100%;">
              <a-select-option
                value='1'
                style="width: 100%;"
              >
                是
              </a-select-option>
              <a-select-option value='0' style="width: 100%;">
              <a-select-option
                value='0'
                style="width: 100%;"
              >
                否
              </a-select-option>
            </a-select-opt-group>
@@ -61,14 +71,16 @@
            :value='text'
            format='YYYY-MM-DD HH:mm'
            :show-time="{ defaultValue: moment('00:00', 'HH:mm') }"
            v-if="col.dataIndex == 'startTime'" @change='(e)=>handleChange(e, record.key, col, index)'
            v-if="col.dataIndex == 'startTime'"
            @change='(e)=>handleChange(e, record.key, col, index)'
          />
          <!--          :disabled="repairOrderStatus=='4'"-->
          <a-date-picker
            :value='text'
            format='YYYY-MM-DD HH:mm'
            :show-time="{ defaultValue: moment('00:00', 'HH:mm') }"
            v-if="col.dataIndex == 'endTime'" @change='(e)=>handleChange(e, record.key, col, index)'
            v-if="col.dataIndex == 'endTime'"
            @change='(e)=>handleChange(e, record.key, col, index)'
          />
          <!--          <a-input-number-->
@@ -225,7 +237,7 @@
          key: 'rowIndex',
          width: 60,
          align: 'center',
          customRender: function(t, r, index) {
          customRender: function (t, r, index) {
            return parseInt(index) + 1
          }
        },
@@ -234,7 +246,7 @@
          dataIndex: 'userId',
          align: 'center',
          scopedSlots: { customRender: 'userId' },
          className: 'red',
          // className: 'red',
          width: 200
        },
        {
@@ -242,14 +254,14 @@
          dataIndex: 'principalContractor',
          align: 'center',
          scopedSlots: { customRender: 'principalContractor' },
          className: 'red',
          // className: 'red',
          width: 150
        },
        {
          title: '*实际工时',
          dataIndex: 'actualHour',
          align: 'center',
          className: 'red',
          // className: 'red',
          scopedSlots: { customRender: 'actualHour' },
          width: 150
        },
@@ -297,7 +309,7 @@
    repairOrderId: {
      immediate: true,
      handler(val) {
        if(this.repairOrderId){
        if (this.repairOrderId) {
          this.clearList()
          this.queryParam['repairOrderId'] = val
          this.loadData(1)
@@ -310,7 +322,7 @@
    onChange(checked) {
      console.log(`a-switch to ${checked}`)
    },
//时间选择修改
    //时间选择修改
    onStartTimeChange() {
      console.log()
@@ -365,8 +377,11 @@
          for (let i = 0; i < formData.repairOrderActualWorkHoursList.length; i++) {
            const start = formData.repairOrderActualWorkHoursList[i].startTime
            const end = formData.repairOrderActualWorkHoursList[i].endTime
            formData.repairOrderActualWorkHoursList[i].startTime = moment(start).format('yyyy-MM-DD HH:mm')
            formData.repairOrderActualWorkHoursList[i].endTime = moment(end).format('yyyy-MM-DD HH:mm')
            formData.repairOrderActualWorkHoursList[i].startTime = this.formattedTime(start);
            formData.repairOrderActualWorkHoursList[i].endTime = this.formattedTime(end);
            // formData.repairOrderActualWorkHoursList[i].startTime = moment(start).format('yyyy-MM-DD HH:mm')
            // formData.repairOrderActualWorkHoursList[i].endTime = moment(end).format('yyyy-MM-DD HH:mm')
          }
          // formData.equipmentId = that.equipmentId;
          let obj = obj = postAction(this.url.confirmHour, formData)
@@ -385,6 +400,24 @@
        }
      })
    },
    formattedTime(originalTime) {
      // 创建 Date 对象
      const date = new Date(originalTime)
      // 检查 Date 对象是否有效
      if (isNaN(date.getTime())) return '无效时间'
      // 获取年、月、日、时、分
      const year = date.getFullYear()
      const month = String(date.getMonth() + 1).padStart(2, '0')
      const day = String(date.getDate()).padStart(2, '0')
      const hours = String(date.getHours()).padStart(2, '0')
      const minutes = String(date.getMinutes()).padStart(2, '0')
      // 拼接成指定格式
      return `${year}-${month}-${day} ${hours}:${minutes}`
    },
    handleChange(value, key, column, index) {
      let that = this
      const temp = [...that.dataSource]
@@ -395,26 +428,26 @@
        }
        if ('principalContractor' == column.dataIndex) {
          target['principalContractor'] = value
          if(value==='1'){
            for(var i = 0;i<temp.length;i++){
                if(i!==index){
                  temp[i]['principalContractor']='0';
                }
          if (value === '1') {
            for (var i = 0; i < temp.length; i++) {
              if (i !== index) {
                temp[i]['principalContractor'] = '0';
              }
            }
          }
        }
        if ('actualHour' == column.dataIndex) {
          if(target['theoreticalTime']!==null&&target['theoreticalTime']<value){
          if (target['theoreticalTime'] !== null && target['theoreticalTime'] < value) {
            that.$message.error('请检查第' + (index + 1) + '行实际工时不能小于理论工时,请重新填写')
            target['actualHour']=null;
          }else if(target['theoreticalTime']===null||target['theoreticalTime']===undefined){
            target['actualHour'] = null;
          } else if (target['theoreticalTime'] === null || target['theoreticalTime'] === undefined) {
            that.$message.error('请检查第' + (index + 1) + '请先填写开始时间与结束时间')
            target['actualHour']=null;
          }else{
            target['actualHour'] = null;
          } else {
            target['actualHour'] = value
          }
        }
        // if ('theoreticalTime' == column.dataIndex) {
        //   target['theoreticalTime'] = value
@@ -423,28 +456,28 @@
          if (target['endTime'] == null) {
            target['startTime'] = value
          } else  {
          } else {
            const diffInHours = this.getTimeDiff(value, target['endTime'])
            if (diffInHours < 0) {
              target['startTime'] = ''
              target['theoreticalTime'] = ''
              that.$message.error('开始时间不能小于结束时间,请重新选择')
            } else {
              if(target['actualHour']!==null){
                  if(diffInHours<target['actualHour']){
                    target['startTime'] = ''
                    target['theoreticalTime'] = ''
                    that.$message.error('实际工时不能小于理论工时,请重新填写')
                  }else{
                    target['startTime'] = value
                    target['theoreticalTime'] = diffInHours
                  }
              }else{
              if (target['actualHour'] !== null) {
                if (diffInHours < target['actualHour']) {
                  target['startTime'] = ''
                  target['theoreticalTime'] = ''
                  that.$message.error('实际工时不能小于理论工时,请重新填写')
                } else {
                  target['startTime'] = value
                  target['theoreticalTime'] = diffInHours
                }
              } else {
                target['startTime'] = value
                target['theoreticalTime'] = diffInHours
              }
            }
          }
          }
        }
        if ('endTime' == column.dataIndex) {
@@ -457,16 +490,16 @@
              target['theoreticalTime'] = ''
              that.$message.error('开始时间不能小于结束时间,请重新选择')
            } else {
              if(target['actualHour']!==null){
                  if(diffInHours<target['actualHour']){
                    target['endTime'] = ''
                    target['theoreticalTime'] = ''
                    that.$message.error('实际工时不能小于理论工时,请重新填写')
                  }else{
                    target['endTime'] = value
                    target['theoreticalTime'] = diffInHours
                  }
              }else{
              if (target['actualHour'] !== null) {
                if (diffInHours < target['actualHour']) {
                  target['endTime'] = ''
                  target['theoreticalTime'] = ''
                  that.$message.error('实际工时不能小于理论工时,请重新填写')
                } else {
                  target['endTime'] = value
                  target['theoreticalTime'] = diffInHours
                }
              } else {
                target['endTime'] = value
                target['theoreticalTime'] = diffInHours
              }