xiangpei
2024-09-25 b9346c0dad8727fce46482c5ed29009717a902d0
src/views/system/work-order/detail/index.vue
@@ -29,7 +29,8 @@
              </div>
              <div class="item-warp">
                <div>处理时限:</div>
                <div>{{workOrderInfo.processingPeriod}}(小时)</div>
                <div v-if="workOrderInfo.processingPeriod">{{workOrderInfo.processingPeriod}}(小时)</div>
                <div v-else>无</div>
              </div>
              <div class="item-warp">
                <div>下发时间:</div>
@@ -64,10 +65,10 @@
              </div>
              <div style="margin-left: 2px">是否报备</div>
            </div>
            <div class="warp">
            <div class="warp" style="display: flex;flex-direction: row;align-items: center">
              <div v-if="workOrderInfo.hasReport"><el-link @click type="primary">{{workOrderInfo.hasReport ? '已报备' : '未报备'}}</el-link></div>
              <div v-else>{{workOrderInfo.hasReport ? '已报备' : '未报备'}}</div>
              <div v-if="!workOrderInfo.hasReport"><el-link type="primary">事后报备</el-link></div>
              <div v-if="!workOrderInfo.hasReport"><el-link type="primary">(事后报备)</el-link></div>
            </div>
          </div>
          <div class="info-item weight4">
@@ -77,11 +78,16 @@
              </div>
              <div style="margin-left: 2px">处理结果</div>
            </div>
            <div class="warp">{{covertStatus(workOrderInfo.status)}}</div>
            <div class="warp" style="display: flex;flex-direction: row;align-items: center">
              <div>{{covertStatus(workOrderInfo.status)}}</div>
              <div v-if="workOrderInfo.status ==='YW_HANDLE'">
                <el-link type="primary" @click="handleAuditing">(审核)</el-link>
              </div>
            </div>
          </div>
        </div>
      </el-tab-pane>
      <el-tab-pane v-loading="loading2" name="report" label="报备信息">
      <el-tab-pane v-loading="loading2" name="report" label="报备记录">
        <div v-if="reportList && reportList.length > 0">
          <el-timeline>
            <el-timeline-item
@@ -106,20 +112,76 @@
        </div>
        <el-empty v-else description="未查到报备信息"></el-empty>
      </el-tab-pane>
      <el-tab-pane v-loading="loading3" name="handle" label="运维信息">角色管理</el-tab-pane>
      <el-tab-pane v-loading="loading4" name="auditing" label="审核信息">定时任务补偿</el-tab-pane>
      <el-tab-pane v-loading="loading3" name="handle" label="处理记录">
        <div v-if="ywList && ywList.length > 0">
          <el-timeline>
            <el-timeline-item
              placement="top"
              v-for="(yw, index) in ywList"
              :key="index"
              :timestamp="yw.createTime">
              <div>
                <div style="margin: 8px 0">
                  <el-link
                    v-for="item in yw.ywProofMaterials != null ? yw.ywProofMaterials.split(',') : yw.ywProofMaterials"
                    :underline="false" type="primary" :key="item" @click="handleDownload(item)">{{ item.substring(item.lastIndexOf("/") + 1)
                    }}</el-link>
                </div>
                <div v-html="yw.ywCondition"></div>
              </div>
            </el-timeline-item>
          </el-timeline>
        </div>
        <el-empty v-else description="未查到运维处理信息"></el-empty>
      </el-tab-pane>
      <el-tab-pane v-loading="loading4" name="auditing" label="审核记录">
        <div v-if="auditingList && auditingList.length > 0">
          <el-timeline>
            <el-timeline-item
              placement="top"
              v-for="(auditing, index) in auditingList"
              :key="index"
              :timestamp="auditing.createTime">
              <div>
                <div style="margin: 8px 0"><el-tag :type="auditing.result === '审核通过' ? 'success' : 'warning'">{{auditing.result}}</el-tag></div>
                <div v-html="auditing.remark"></div>
              </div>
            </el-timeline-item>
          </el-timeline>
        </div>
        <el-empty v-else description="未查到审核信息"></el-empty>
      </el-tab-pane>
    </el-tabs>
    <div class="work-order-img">
      <div class="img-info" v-for="(img, index) in workOrderInfo.imgList" :key="index">
        <div>
          <el-image
            style="width: 160px; height: 100px"
            :src="getImgUrl(img.imgUrl)"
            :preview-src-list="getImgUrl(img.imgUrl)">
          </el-image>
        </div>
        <div style="margin-top: 8px">{{img.createTime}}</div>
      </div>
    </div>
    <WorkOrderAuditing :auditingOpen="auditingOpen" :dataForm="auditingForm" :ywConditions="ywConditions" @close="closeAuditing"/>
  </div>
</template>
<script>
import {getWorkOrderInfo} from '@/api/platform/work-order'
import {getWorkOrderInfo, getYwConditionList, getYwAuditingList, getYwCondition, listWorkOrder} from '@/api/platform/work-order'
import {getReportByGb} from '@/api/platform/report'
import WorkOrderAuditing from "@/components/WorkOrder/WorkOrderAuditing";
export default {
  name: "index",
  components: {WorkOrderAuditing},
  data() {
    return {
      ywConditions: [],
      auditingOpen: false,
      auditingForm: {},
      selectedTab: 'workorder',
      loading1: false,
      loading2: false,
@@ -141,6 +203,8 @@
        hasReport: null
      },
      reportList: [],
      ywList: [],
      auditingList: [],
      workOrderNo: ''
    }
  },
@@ -149,6 +213,20 @@
    this.getWorkOrder()
  },
  methods: {
    closeAuditing() {
      this.auditingOpen = false
    },
    // 审核按钮
    handleAuditing() {
      this.auditingForm = this.workOrderInfo
      getYwCondition(this.workOrderInfo.workOrderNo).then(response => {
        this.ywConditions = response.data
        this.auditingOpen = true
      })
    },
    getImgUrl(path) {
      return this.$img + path;
    },
    getWorkOrder() {
      this.loading1 = true
      getWorkOrderInfo(this.workOrderInfo.workOrderNo).then(res => {
@@ -161,6 +239,20 @@
      getReportByGb(this.workOrderInfo.serialNumber).then(res => {
        this.reportList = res.data
        this.loading2 = false
      })
    },
    getYw() {
      this.loading3 = true;
      getYwConditionList(this.workOrderInfo.workOrderNo).then(res => {
        this.ywList = res.data
        this.loading3 = false
      })
    },
    getAuditing() {
      this.loading4 = true;
      getYwAuditingList(this.workOrderInfo.workOrderNo).then(res => {
        this.auditingList = res.data
        this.loading4 = false
      })
    },
    covertStatus(status) {
@@ -179,6 +271,10 @@
        this.getWorkOrder()
      } else if (tab.name === 'report') {
        this.getReport()
      } else if (tab.name === 'handle') {
        this.getYw()
      } else if (tab.name === 'auditing') {
        this.getAuditing()
      }
    },
@@ -190,6 +286,16 @@
</script>
<style scoped>
.img-info {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 0 5px;
}
.work-order-img {
  margin-top: 15px;
}
.work-order-info {
  width: 100%;
  display: flex;