“linengliang”
2023-11-18 ad78578ae893565ff723a22c3e2a165d5ccf534d
src/views/eam/modules/repairorder/repairOrderExcuteDrawer.vue
@@ -4,29 +4,64 @@
    :width="drawerWidth"
    :visible="visible"
    @close="handleCancel"
    :confirmLoading="confirmLoading"
    :loading="confirmLoading"
    :maskClosable="maskClosable"
  >
    <a-card :style="getBackground()">
      <template>
        <a-card>
          <div :style="{width: '100%',border: '1px solid #e9e9e9',padding: '10px 16px',background: '#fff',}">
            <a-row :style="{textAlign:'left'}">
              <a-button
                :style="{marginRight: '8px'}"
                @click="handleStart"
                :loading="confirmLoading"
                :disabled="repairOrder.status!='2'"
                type="primary"
              >开工</a-button>
              <a-button
                :style="{marginRight: '8px'}"
                @click="handleReport"
                :disabled="repairOrder.status!='3'"
                @click="handleSpare"
                :loading="confirmLoading"
                :disabled="repairOrder.status!=='3'
                ||repairOrder.repairOrderUda1==='needSpare'||repairOrder.repairOrderUda1==='needPart'
                ||(repairOrder.repairOrderUda2!==null&&repairOrder.repairOrderUda3!==null)"
                type="primary"
                v-if="repairOrder.repairOrderUda1!=='needSpare'"
              >等采购件</a-button>
              <a-button
                :style="{marginRight: '8px'}"
                @click="handleSpareStop"
                :loading="confirmLoading"
                type="primary"
                v-if="repairOrder.repairOrderUda1==='needSpare'"
              >等采购件停止</a-button>
              <a-button
                :style="{marginRight: '8px'}"
                @click="handlePart"
                :loading="confirmLoading"
                :disabled="repairOrder.status!='3'
                ||repairOrder.repairOrderUda1==='needPart'||repairOrder.repairOrderUda1==='needSpare'
                ||(repairOrder.repairOrderUda4!==null&&repairOrder.repairOrderUda5!==null)"
                type="primary"
                v-if="repairOrder.repairOrderUda1!=='needPart'"
              >等加工件</a-button>
              <a-button
                :style="{marginRight: '8px'}"
                @click="handlePartStop"
                :loading="confirmLoading"
                type="primary"
                v-if="repairOrder.repairOrderUda1==='needPart'"
              >等加工件停止</a-button>
              <a-button
                :style="{marginRight: '8px'}"
                @click="handleReportPro"
                :loading="confirmLoading"
                :disabled="repairOrder.status!='3'||repairOrder.repairOrderUda1==='needPart'||repairOrder.repairOrderUda1==='needSpare'"
                type="primary"
              >报工</a-button>
              <a-button
                :style="{marginRight: '8px'}"
                @click="handleRevoke"
                :loading="confirmLoading"
                :disabled="repairOrder.status!='4'"
                type="primary"
              >撤销</a-button>
@@ -45,6 +80,23 @@
                    v-if="this.repairOrder != null"
                    class="hightColor"
                  >{{this.repairOrder.status_dictText}}</span>
                  <span
                    v-else
                    class="frozenRowClass"
                  >-</span>
                </a-form-item>
              </a-col>
              <a-col :span="6">
                <a-form-item
                  :labelCol="labelCol"
                  :wrapperCol="wrapperCol"
                  label="维修状态"
                  class="hightColor"
                >
                  <span
                    v-if="this.repairOrder != null"
                    class="hightColor"
                  >{{this.repairOrder.repairOrderUda1_dictText}}</span>
                  <span
                    v-else
                    class="frozenRowClass"
@@ -85,6 +137,8 @@
                  >-</span>
                </a-form-item>
              </a-col>
            </a-row>
            <a-row :gutter="24">
              <a-col :span="6">
                <a-form-item
                  :labelCol="labelCol"
@@ -102,8 +156,6 @@
                  >-</span>
                </a-form-item>
              </a-col>
            </a-row>
            <a-row :gutter="24">
              <a-col :span="6">
                <a-form-item
                  :labelCol="labelCol"
@@ -139,13 +191,29 @@
                <a-form-item
                  :labelCol="labelCol"
                  :wrapperCol="wrapperCol"
                  label="工时定额"
                  label="关键设备?"
                  class="hightColor"
                >
                  <span
                    v-if="this.repairOrder != null"
                    class="hightColor"
                  >{{ this.repairOrder.workingHourQuota }}</span>
                  >{{ this.repairOrder.specificEquipment_dictText}}</span>
                  <span
                    v-else
                    class="frozenRowClass"
                  >-</span>
                </a-form-item>
              </a-col>
            </a-row>
            <a-row :gutter="24">
              <a-col :span="6">
                <a-form-item
                  :labelCol="labelCol"
                  :wrapperCol="wrapperCol"
                  label="报修时间"
                  class="hightColor"
                >
                  <span v-if="this.repairOrder != null">{{ this.repairOrder.faultTime }}</span>
                  <span
                    v-else
                    class="frozenRowClass"
@@ -156,13 +224,38 @@
                <a-form-item
                  :labelCol="labelCol"
                  :wrapperCol="wrapperCol"
                  label="执行人"
                  label="报修人"
                  class="hightColor"
                >
                  <span v-if="this.repairOrder != null">{{ this.repairOrder.errUda2 }}</span>
                  <span
                    v-if="this.repairOrder != null"
                    class="hightColor"
                  >{{ this.repairOrder.recipientUserId_dictText}}</span>
                    v-else
                    class="frozenRowClass"
                  >-</span>
                </a-form-item>
              </a-col>
              <a-col :span="6">
                <a-form-item
                  :labelCol="labelCol"
                  :wrapperCol="wrapperCol"
                  label="领取时间"
                  class="hightColor"
                >
                  <span v-if="this.repairOrder != null">{{ this.repairOrder.createTime }}</span>
                  <span
                    v-else
                    class="frozenRowClass"
                  >-</span>
                </a-form-item>
              </a-col>
              <a-col :span="6">
                <a-form-item
                  :labelCol="labelCol"
                  :wrapperCol="wrapperCol"
                  label="领取人"
                  class="hightColor"
                >
                  <span v-if="this.repairOrder != null">{{ this.repairOrder.responsibilityName }}</span>
                  <span
                    v-else
                    class="frozenRowClass"
@@ -171,17 +264,16 @@
              </a-col>
            </a-row>
            <a-row
              hidden
              :gutter="24"
            >
              <a-col :span="6">
            <a-col :span="6">
                <a-form-item
                  :labelCol="labelCol"
                  :wrapperCol="wrapperCol"
                  label="开始时间"
                  label="开工时间"
                  class="hightColor"
                >
                  <span v-if="this.repairOrder != null">{{ this.repairOrder.actualStartTime }}</span>
                  <span v-if="this.repairOrder != null">{{ this.repairOrder.actualStartTime}}</span>
                  <span
                    v-else
                    class="frozenRowClass"
@@ -192,13 +284,10 @@
                <a-form-item
                  :labelCol="labelCol"
                  :wrapperCol="wrapperCol"
                  label="创建人"
                  label="完工时间"
                  class="hightColor"
                >
                  <span
                    v-if="this.repairOrder != null"
                    class="hightColor"
                  >{{ this.repairOrder.createBy}}</span>
                  <span v-if="this.repairOrder != null">{{ this.repairOrder.actualEndTime }}</span>
                  <span
                    v-else
                    class="frozenRowClass"
@@ -209,13 +298,162 @@
                <a-form-item
                  :labelCol="labelCol"
                  :wrapperCol="wrapperCol"
                  label="创建人"
                  label="维修时长"
                  class="hightColor"
                >
                  <span v-if="this.repairOrder != null">{{ this.repairOrder.actualHour }}</span>
                  <span
                    v-if="this.repairOrder != null"
                    class="hightColor"
                  >{{ this.repairOrder.createTime}}</span>
                    v-else
                    class="frozenRowClass"
                  >-</span>
                </a-form-item>
              </a-col>
              <a-col :span="6">
                <a-form-item
                  :labelCol="labelCol"
                  :wrapperCol="wrapperCol"
                  label="完成人"
                  class="hightColor"
                >
                  <span v-if="this.repairOrder != null">{{ this.repairOrder.recipientUserId_dictText }}</span>
                  <span
                    v-else
                    class="frozenRowClass"
                  >-</span>
                </a-form-item>
              </a-col>
            </a-row>
            <a-row
              :gutter="24"
            >
            <a-col :span="6">
                <a-form-item
                  :labelCol="labelCol"
                  :wrapperCol="wrapperCol"
                  label="验收时间"
                  class="hightColor"
                >
                  <span v-if="this.repairOrder != null">{{ this.repairOrder.acceptTime }}</span>
                  <span
                    v-else
                    class="frozenRowClass"
                  >-</span>
                </a-form-item>
              </a-col>
              <a-col :span="6">
                <a-form-item
                  :labelCol="labelCol"
                  :wrapperCol="wrapperCol"
                  label="验收人"
                  class="hightColor"
                >
                  <span v-if="this.repairOrder != null">{{ this.repairOrder.errUda3 }}</span>
                  <span
                    v-else
                    class="frozenRowClass"
                  >-</span>
                </a-form-item>
              </a-col>
              <a-col :span="6">
                <a-form-item
                  :labelCol="labelCol"
                  :wrapperCol="wrapperCol"
                  label="故障时长"
                  class="hightColor"
                >
                  <span v-if="this.repairOrder != null">{{ this.repairOrder.faultHour }}</span>
                  <span
                    v-else
                    class="frozenRowClass"
                  >-</span>
                </a-form-item>
              </a-col>
            </a-row>
            <a-row
            :gutter="24"
            >
            <a-col :span="6">
                <a-form-item
                  :labelCol="labelCol"
                  :wrapperCol="wrapperCol"
                  label="等采购件开始"
                  class="hightColor"
                >
                  <span v-if="this.repairOrder != null">{{ this.repairOrder.repairOrderUda2}}</span>
                  <span
                    v-else
                    class="frozenRowClass"
                  >-</span>
                </a-form-item>
              </a-col>
              <a-col :span="6">
                <a-form-item
                  :labelCol="labelCol"
                  :wrapperCol="wrapperCol"
                  label="等采购件结束"
                  class="hightColor"
                >
                  <span v-if="this.repairOrder != null">{{ this.repairOrder.repairOrderUda3 }}</span>
                  <span
                    v-else
                    class="frozenRowClass"
                  >-</span>
                </a-form-item>
              </a-col>
              <a-col :span="6">
                <a-form-item
                  :labelCol="labelCol"
                  :wrapperCol="wrapperCol"
                  label="累计时间"
                  class="hightColor"
                >
                  <span v-if="this.repairOrder != null">{{ this.repairOrder.spareTime }}</span>
                  <span
                    v-else
                    class="frozenRowClass"
                  >-</span>
                </a-form-item>
              </a-col>
            </a-row>
            <a-row
            :gutter="24"
            >
            <a-col :span="6">
                <a-form-item
                  :labelCol="labelCol"
                  :wrapperCol="wrapperCol"
                  label="等加工件开始"
                  class="hightColor"
                >
                  <span v-if="this.repairOrder != null">{{ this.repairOrder.repairOrderUda4 }}</span>
                  <span
                    v-else
                    class="frozenRowClass"
                  >-</span>
                </a-form-item>
              </a-col>
              <a-col :span="6">
                <a-form-item
                  :labelCol="labelCol"
                  :wrapperCol="wrapperCol"
                  label="等加工件结束"
                  class="hightColor"
                >
                  <span v-if="this.repairOrder != null">{{ this.repairOrder.repairOrderUda5 }}</span>
                  <span
                    v-else
                    class="frozenRowClass"
                  >-</span>
                </a-form-item>
              </a-col>
              <a-col :span="6">
                <a-form-item
                  :labelCol="labelCol"
                  :wrapperCol="wrapperCol"
                  label="累计时间"
                  class="hightColor"
                >
                  <span v-if="this.repairOrder != null">{{ this.repairOrder.partTime }}</span>
                  <span
                    v-else
                    class="frozenRowClass"
@@ -224,6 +462,8 @@
              </a-col>
            </a-row>
          </div>
    </a-card>
    <a-card :style="getBackground()">
          <a-tabs
            type="card"
            defaultActiveKey="1"
@@ -233,10 +473,6 @@
              key="1"
              class="hightColor"
            >
              <!-- <fault-analysis-edit-table
                :repairOrderId="repairOrder.id"
                :repairOrderStatus="repairOrder.status"
              ></fault-analysis-edit-table> -->
              <RepairOrderFaultAnalysisList :repairOrderId="repairOrderId" :repairOrder="repairOrder"/>
            </a-tab-pane>
            <a-tab-pane
@@ -255,16 +491,10 @@
              key="2"
              class="hightColor"
            >
              <!-- <actual-material-edit-table
                :repairOrderId="repairOrder.id"
                :repairOrderStatus="repairOrder.status"
              ></actual-material-edit-table> -->
              <RepairOrderActualMaterialList :mainId="repairOrder" />
            </a-tab-pane>
          </a-tabs>
        </a-card>
      </template>
    </a-card>
    <div :style="{width: '100%',border: '1px solid #e9e9e9',padding: '10px 16px',background: '#fff',}">
      <a-row :style="{textAlign:'right'}">
        <a-button
@@ -288,6 +518,7 @@
import RepairOrderActualMaterialList from './moudles/RepairOrderActualMaterialReport'
import RepairOrderActualWorkHoursList from './moudles/RepairOrderActualHoursReport'
import RepairOrderFaultAnalysisList from './moudles/RepairOrderFaultAnalysisReport.vue'
import { getAction } from '../../../../api/manage'
export default {
  name: 'RepairOrderExcuteDrawer',
  mixins: [JeecgListMixin],
@@ -336,7 +567,13 @@
      url: {
        orderStart: "eam/repairOrder/start",
        orderReport: "eam/repairOrder/report",
        orderRevoke: "eam/repairOrder/revoke"
        orderRevoke: "eam/repairOrder/revoke",
        reload:"/eam/repairOrder/list",
        handleSpare:"/eam/repairOrder/handleSpare",
        handlePart:"/eam/repairOrder/handlePart",
        handleSpareStop:"/eam/repairOrder/handleSpareStop",
        handlePartStop:"/eam/repairOrder/handlePartStop",
        getInfo:'/eam/repairOrderFaultAnalysis/list',
      },
    }
  },
@@ -368,17 +605,6 @@
      this.visible = false;
      //this.repairOrder.id = "-1"
    },
    // handleStart(record) {
    //   putAction(this.url.orderStart, this.repairOrder).then(res => {
    //     if (res.result) {
    //       this.$message.success('开工成功');
    //       this.repairOrder.status = '3'
    //       this.$emit('loadData');
    //     } else {
    //       this.$message.error('开工出现异常')
    //     }
    //   })
    // },
    //开工
    handleStart() {
      const that = this;
@@ -394,6 +620,7 @@
              that.$message.success('开工成功');
              that.repairOrder.status = '3'
              that.$emit('loadData');
              that.reload();
            } else {
              that.$message.error('开工出现异常')
            }
@@ -404,20 +631,27 @@
        },
      })
    },
    // handleReport() {
    //   putAction(this.url.orderReport, this.repairOrder).then(res => {
    //     if (res.result) {
    //       this.$message.success('报工成功');
    //       this.repairOrder.status = '4'
    //       this.$emit('loadData');
    //     } else {
    //       this.$message.error('报工出现异常')
    //     }
    //   })
    // },
    //报工
    handleReportPro(){
      let that = this;
      getAction(that.url.getInfo,{repairOrderId:this.repairOrder.id}).then(res=>{
                if(res.success){
                   if(res.result.records.length===0){
                      that.$message.warning("故障分析尚未填写,请填写后再报工")
                   }else if(res.result.records[0].faultPhenomenon===null||res.result.records[0].faultPhenomenon===undefined||res.result.records[0].faultPhenomenon===''){
                      that.$message.warning("故障现象尚未填写,请填写后再报工")
                   }else if(res.result.records[0].faultCause===null||res.result.records[0].faultCause===undefined||res.result.records[0].faultCause===''){
                      that.$message.warning("故障检查尚未填写,请填写后再报工")
                   }else if(res.result.records[0].maintenanceMeasures===null||res.result.records[0].maintenanceMeasures===undefined||res.result.records[0].maintenanceMeasures===''){
                      that.$message.warning("故障维修尚未填写,请填写后再报工")
                   }else if(res.result.records[0].suggestion===null||res.result.records[0].suggestion===undefined||res.result.records[0].suggestion===''){
                      that.$message.warning("故障预防尚未填写,请填写后再报工")
                   }else{
                      that.handleReport();
                   }
                }
      })
    },
    handleReport() {
      const that = this;
      that.confirmLoading = true;
@@ -442,18 +676,6 @@
        },
      })
    },
    // handleRevoke() {
    //   putAction(this.url.orderRevoke, this.repairOrder).then(res => {
    //     if (res.result) {
    //       this.$message.success('撤销成功');
    //       this.repairOrder.status = '3'
    //       this.$emit('loadData');
    //     } else {
    //       this.$message.error('撤销出现异常')
    //     }
    //   })
    // },
    //撤销
    handleRevoke() {
      const that = this;
@@ -479,6 +701,109 @@
        },
      })
    },
    handleSpare(){
      const that = this;
      that.confirmLoading = true;
      this.$confirm({
        title: '等采购件',
        content: '提示:该操作不可撤销,确认开始等采购件?',
        okText: '确认',
        cancelText: '取消',
        onOk() {
          putAction(that.url.handleSpare, that.repairOrder).then(res => {
            if (res.result) {
              that.$message.success('操作成功');
              that.reload();
              that.$emit('loadData');
            } else {
              that.$message.error('操作出现异常')
            }
          }).finally(() => {
            that.confirmLoading = false;
            // that.close();
          })
        },
      })
    },
    handleSpareStop(){
      const that = this;
      that.confirmLoading = true;
      this.$confirm({
        title: '停止等采购件',
        content: '提示:该操作不可撤销,确认停止等采购件?',
        okText: '确认',
        cancelText: '取消',
        onOk() {
          putAction(that.url.handleSpareStop, that.repairOrder).then(res => {
            if (res.result) {
              that.$message.success('操作成功');
              that.reload();
              that.$emit('loadData');
            } else {
              that.$message.error('操作出现异常')
            }
          }).finally(() => {
            that.confirmLoading = false;
            // that.close();
          })
        },
      })
    },
    handlePart(){
      const that = this;
      that.confirmLoading = true;
      this.$confirm({
        title: '等采购件',
        content: '提示:该操作不可撤销,确认等采购件?',
        okText: '确认',
        cancelText: '取消',
        onOk() {
          putAction(that.url.handlePart, that.repairOrder).then(res => {
            if (res.result) {
              that.$message.success('操作成功');
              that.reload();
              that.$emit('loadData');
            } else {
              that.$message.error('操作出现异常')
            }
          }).finally(() => {
            that.confirmLoading = false;
            // that.close();
          })
        },
      })
    },
    handlePartStop(){
      const that = this;
      that.confirmLoading = true;
      this.$confirm({
        title: '停止等采购件',
        content: '提示:该操作不可撤销,确认停止等采购件?',
        okText: '确认',
        cancelText: '取消',
        onOk() {
          putAction(that.url.handlePartStop, that.repairOrder).then(res => {
            if (res.result) {
              that.$message.success('操作成功');
              that.reload();
              that.$emit('loadData');
            } else {
              that.$message.error('操作出现异常')
            }
          }).finally(() => {
            that.confirmLoading = false;
            // that.close();
          })
        },
      })
    },
    reload(){
      getAction(this.url.reload,{id:this.repairOrder.id}).then(res=>{
        if( res.result.records.length!==0){
          this.repairOrder = res.result.records[0];
        }
      })
    }
  },
}