xiangpei
2024-09-01 a8e77f3b05d6d96c9bc64f550651b153d8238e88
src/views/system/work-order/index.vue
@@ -11,12 +11,13 @@
        />
      </el-form-item>
      <el-form-item label="故障类型" prop="errorTypeList">
        <el-select v-model="queryParams.errorTypeList" multiple placeholder="故障类型" clearable @clear="handleQuery">
        <el-select v-model="queryParams.errorTypeList" multiple @change="handleQuery" placeholder="故障类型" clearable @clear="handleQuery">
          <el-option v-for="dict in dict.type.error_type" :value="dict.value" :key="dict.value" :label="dict.label" />
        </el-select>
      </el-form-item>
      <el-form-item label="工单状态" prop="status">
        <el-select v-model="queryParams.status" placeholder="工单状态" @change="handleQuery">
          <el-option label="全部" value=""></el-option>
          <el-option label="待处理" value="DISTRIBUTED"></el-option>
          <el-option label="待审核" value="YW_HANDLE"></el-option>
          <el-option label="已完成" value="AUDITING_SUCCESS"></el-option>
@@ -63,10 +64,21 @@
              <div class="card">
                <div class="card-left">
                  <el-image
                    :preview-src-list="['https://img2.baidu.com/it/u=68398439,1553004927&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=357']"
                    fit="cover" src="https://img2.baidu.com/it/u=68398439,1553004927&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=357"
                    v-if="item.imgList && item.imgList.length > 0"
                    :preview-src-list="item.imgList"
                    fit="cover" :src="item.imgList[0]"
                    class="image"
                  />
                    style="display: flex;justify-content: center;align-items: center;"
                  >
                    <div slot="error" class="image-slot">
                      <i class="el-icon-picture-outline">加载失败</i>
                    </div>
                  </el-image>
                  <el-image class="image" style="display: flex;justify-content: center;align-items: center;" v-else>
                    <div slot="error" class="image-slot">
                      <i class="el-icon-picture-outline" style="color: gray;font-size: 14px">未取到图片</i>
                    </div>
                  </el-image>
                </div>
                <div class="work-order">
                  <el-row class="work-order-item">
@@ -160,7 +172,7 @@
        <el-form-item label="报备内容" prop="reportContent">
          <editor v-model="reportForm.reportContent" :min-height="192"/>
        </el-form-item>
        <el-form-item label="上报材料" prop="reportMaterials">
        <el-form-item label="报备材料" prop="reportMaterials">
          <file-upload v-model="reportForm.reportMaterials"/>
        </el-form-item>
      </el-form>
@@ -289,7 +301,7 @@
            <template slot="description">
              <div style="max-height: 450px;overflow-y: scroll">
                <div v-for="(item, index) in ywHandleList" :key="index">
                  <div v-if="item.sysMsg" class="row flow-item-x">
                  <div v-if="item.sysMsg === true" class="row flow-item-x">
                    <div class="cflex1">系统消息:</div>
                    <div class="cflex2">{{item.ywCondition}}</div>
                    <div class="cflex3">{{item.createTime}}</div>
@@ -305,20 +317,24 @@
                      :visible.sync="drawer"
                      direction="rtl"
                      :modal="false"
                      :before-close="drawerClose">
                      <div style="padding: 20px">
                      >
                      <div style="padding: 20px;font-size: 14px">
                        <div class="row flow-item-x">
                          <div class="flex1">上报内容:</div>
                          <div class="flex2" v-html="ywData.content"></div>
                          <div class="flex1"><p>上报内容:</p></div>
                          <div class="flex2">
                            <div v-html="ywData.content"></div>
                          </div>
                        </div>
                        <div class="row flow-item-x">
                          <div class="flex1">佐证材料:</div>
                          <div class="flex1"><p>佐证材料:</p></div>
                          <div class="flex2">
                            <el-link type="primary"
                                     v-for="item in ywData.fileList != null ? ywData.fileList.split(',') : ywData.fileList"
                                     :underline="false" :key="item.id" @click="handleDownload(item)"
                            >{{ item.substring(item.lastIndexOf('/') + 1) }}
                            </el-link>
                            <p>
                              <el-link type="primary"
                                       v-for="item in ywData.fileList != null ? ywData.fileList.split(',') : ywData.fileList"
                                       :underline="false" :key="item.id" @click="handleDownload(item)"
                              >{{ item.substring(item.lastIndexOf('/') + 1) }}
                              </el-link>
                            </p>
                          </div>
                        </div>
@@ -422,8 +438,7 @@
  batchAuditing,
  ywCondition,
  getYwCondition,
  getYwConditionList,
  getYwAuditingList
  process
} from '@/api/platform/work-order'
import { addReport } from '@/api/platform/report'
@@ -450,7 +465,7 @@
          { required: true, message: '报备内容不能为空', trigger: 'blur' }
        ],
        reportMaterials: [
          { required: true, message: '上报材料不能为空', trigger: 'blur' }
          { required: true, message: '报备材料不能为空', trigger: 'blur' }
        ]
      },
      reportOpen: false,
@@ -542,7 +557,7 @@
      // 运维情况
      ywData: {
        content: '',
        fileList: ''
        fileList: 'process.env.VUE_APP_BASE_API'
      }
    }
  },
@@ -551,15 +566,13 @@
  },
  methods: {
    openDrawer(item) {
      this.ywData.content = item.ywCondition
      this.ywData.fileList = item.ywProofMaterials
      this.drawer = true
    },
    drawerClose() {
      this.ywData = {
        content: '',
        fileList: ''
      }
      this.ywData.content = item.ywCondition
      this.ywData.fileList = item.ywProofMaterials
      this.drawer = true
    },
    // 批量审核
    batchAuditing(result) {
@@ -625,16 +638,12 @@
    // 过程图查看
    handleFlow(row) {
      this.flowForm = row
      getYwAuditingList(row.workOrderNo).then(response => {
      process(row.workOrderNo).then(response => {
        if (response.data) {
          this.ywAuditingList = response.data
          this.ywAuditingList = response.data.auditingList
          this.ywHandleList = response.data.ywList
          this.flowOpen = true
        }
      })
      getYwCondition(row.workOrderNo).then(response => {
        if (response.data) {
          this.ywHandleList = response.data
        }
        this.flowOpen = true
      })
    },
    // 提交审核
@@ -719,15 +728,15 @@
      this.queryParams.params = {}
      this.queryParams['start'] = this.daterangeYwHandleTime ? this.daterangeYwHandleTime[0] : null
      this.queryParams['end'] = this.daterangeYwHandleTime ? this.daterangeYwHandleTime[1] : null
      if (this.queryParams['status'] == '') {
        this.queryParams['status'] = 'DISTRIBUTED'
      }
      listWorkOrder(this.queryParams).then(response => {
        // response.data.forEach(item => {
        //   if (item.errorType) {
        //     item.errorTypeList = item.errorTypeList.split(",")
        //   }
        // })
        response.data.forEach(item => {
          if (item.imgList) {
            item.imgList = item.imgList.map(img => {
              return this.$img + img
            })
          }
        })
        this.workOrderList = response.data
        this.total = response.total
        this.loading = false