xiangpei
2024-08-25 f0951a398a2c1470422f55de1b73004e458a8137
工单优化
1个文件已修改
159 ■■■■ 已修改文件
src/views/system/work-order/index.vue 159 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/work-order/index.vue
@@ -70,7 +70,7 @@
                </div>
                <div class="work-order">
                  <el-row class="work-order-item">
                    <el-col :span="24" class="time">工单编号:{{ item.workOrderNo }}</el-col>
                    <el-col :span="24" class="time">工单号:{{ item.workOrderNo }}</el-col>
                  </el-row>
                  <el-row class="work-order-item">
                    <el-col :span="24" class="time">故障时间:{{ item.createTime }}</el-col>
@@ -92,6 +92,8 @@
                      class="my-button"
                      size="mini"
                      type="text"
                      v-hasPermi="['work:order:condition:add']"
                      v-show="item.status !== 'AUDITING_SUCCESS'"
                      @click="handleYwCondition(item)"
                    >运维情况
                    </el-button>
@@ -108,6 +110,7 @@
                      type="text"
                      @click="handleReport(item)"
                      v-hasPermi="['system:report:add']"
                      v-show="item.status !== 'AUDITING_SUCCESS'"
                    >事后报备
                    </el-button>
                  </el-row>
@@ -259,22 +262,25 @@
          <el-step title="产生工单">
            <template slot="description">
              <div>
                <div class="flow-item-x">
                  工单来源:
                  <el-tag type="danger" size="small">{{ flowForm.source }}</el-tag>
                <div class="row flow-item-x">
                  <div class="flex1">故障点位:</div>
                  <div class="flex2"><el-tag type="danger" size="small">{{ flowForm.source }}</el-tag></div>
                </div>
                <div class="flow-item-x">
                  故障类型:{{ flowForm.errorType }}
                <div class="row flow-item-x">
                  <div class="flex1">故障类型:</div>
                  <div class="flex2">{{ flowForm.errorType }}</div>
                </div>
                <div class="flow-item-x">
                  运维单位:{{ flowForm.unitName }}
                <div class="row flow-item-x">
                  <div class="flex1">运维单位:</div>
                  <div class="flex2">{{ flowForm.unitName }}</div>
                </div>
                <div class="flow-item-x">
                  创建时间:{{ flowForm.createTime }}
                <div class="row flow-item-x">
                  <div class="flex1">创建时间:</div>
                  <div class="flex2">{{ flowForm.createTime }}</div>
                </div>
                <div class="flow-item-x" v-if="flowForm.processingPeriod">
                  处理期限:
                  <el-tag type="danger" size="small">{{ flowForm.processingPeriod }}</el-tag>
                <div class="row flow-item-x" v-if="flowForm.processingPeriod">
                  <div class="flex1">处理期限:</div>
                  <div class="flex2"><el-tag type="danger" size="small">{{ flowForm.processingPeriod }}</el-tag></div>
                </div>
              </div>
            </template>
@@ -282,26 +288,47 @@
          <el-step title="运维处理">
            <template slot="description">
              <div style="max-height: 450px;overflow-y: scroll">
                <div class="y-item" v-for="(item, index) in ywHandleList" :key="index">
                  <div class="y-item-1">
                    <div class="flow-item-x">
                      现场情况:
                      <!-- <el-tooltip class="item" effect="dark" :content="item.ywCondition" placement="top"> -->
                      <span v-html="item.ywCondition"></span>
                      <!-- </el-tooltip> -->
                    </div>
                    <!-- <div class="flow-item-x">
                      <el-tag size="small" v-for="file in item.ywProofMaterials != null ? item.ywProofMaterials.split(',') : item.ywProofMaterials" :key="file" @click="handleDownload(file)">{{ file.substring(file.lastIndexOf("/") + 1) }}</el-tag>
                    </div> -->
                <div v-for="(item, index) in ywHandleList" :key="index">
                  <div v-if="item.sysMsg" class="row flow-item-x">
                    <div class="cflex1">系统消息:</div>
                    <div class="cflex2">{{item.ywCondition}}</div>
                    <div class="cflex3">{{item.createTime}}</div>
                  </div>
                  <div class="y-item-2">
                    <div>
                      {{ parseTime(item.createTime) }}
                  <div v-else style="width: 100%">
                    <div style="display: flex; flex-direction: row;width: 100%;position: relative">
                      <div class="cflex1">运维情况:</div>
                      <div class="cflex2"><el-link style="font-size: 14px" type="danger" @click="openDrawer(item)">点击查看</el-link></div>
                      <div class="cflex3">{{item.createTime}}</div>
                    </div>
                    <div>
                      第{{ index + 1 }}次
                    </div>
                    <el-drawer
                      title="运维情况"
                      :visible.sync="drawer"
                      direction="rtl"
                      :modal="false"
                      :before-close="drawerClose">
                      <div style="padding: 20px">
                        <div class="row flow-item-x">
                          <div class="flex1">上报内容:</div>
                          <div class="flex2" v-html="ywData.content"></div>
                        </div>
                        <div class="row flow-item-x">
                          <div class="flex1">佐证材料:</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>
                          </div>
                        </div>
                      </div>
                    </el-drawer>
                      <!-- <div class="flow-item-x">
                        <el-tag size="small" v-for="file in item.ywProofMaterials != null ? item.ywProofMaterials.split(',') : item.ywProofMaterials" :key="file" @click="handleDownload(file)">{{ file.substring(file.lastIndexOf("/") + 1) }}</el-tag>
                      </div> -->
                  </div>
                </div>
              </div>
            </template>
@@ -309,25 +336,26 @@
          <el-step title="审核结果">
            <template slot="description">
              <div style="max-height: 450px;overflow-y: scroll">
                <div class="y-item" v-for="(item, index) in ywAuditingList" :key="index">
                  <div class="y-item-1">
                    <div class="flow-item-x">
                <div v-for="(item, index) in ywAuditingList" :key="index">
                  <div class="row flow-item-x">
                    <div class="cflex1">
                      审核结果:
                    </div>
                    <div class="cflex2">
                      <el-tag :type="item.result == '审核通过' ? 'success' : 'danger'" size="small">{{
                          item.result
                        }}
                      </el-tag>
                    </div>
                    <div class="flow-item-x">
                      审核说明:<span v-html="item.remark"></span>
                    <div class="cflex3">
                      {{ item.createTime }}
                    </div>
                  </div>
                  <div class="y-item-2">
                    <div>
                      {{ parseTime(item.createTime) }}
                    </div>
                    <div>
                      第{{ index + 1 }}次
                  <div class="row flow-item-x">
                    <div class="flex1">审核说明:</div>
                    <div class="flex2">
                      <span v-if="item.remark" v-html="item.remark"></span>
                      <span v-else>无</span>
                    </div>
                  </div>
                </div>
@@ -341,6 +369,26 @@
  </div>
</template>
<style scoped>
.flex1 {
  flex: 2;
}
.flex2 {
  flex: 9;
}
.cflex1 {
  flex: 2;
}
.cflex2 {
  flex: 5;
  flex-wrap: wrap;
}
.cflex3 {
  flex: 4;
}
.row {
  display: flex;
  flex-direction: row;
}
.flow-item-x {
  margin: 5px 0;
}
@@ -351,7 +399,8 @@
  background-color: #d9d9d9;
  display: flex;
  flex-direction: row;
  align-items: center
  align-items: center;
  width: 100%;
}
.y-item-2 {
@@ -384,6 +433,7 @@
  components: {},
  data() {
    return {
      drawer: false,
      empty: false,
      openShowCurrent: null,
      ywConditions: [],
@@ -488,6 +538,11 @@
        errorTypes: [
          { required: true, message: '请选择故障类型', trigger: 'change' }
        ]
      },
      // 运维情况
      ywData: {
        content: '',
        fileList: ''
      }
    }
  },
@@ -495,6 +550,17 @@
    this.getList()
  },
  methods: {
    openDrawer(item) {
      this.ywData.content = item.ywCondition
      this.ywData.fileList = item.ywProofMaterials
      this.drawer = true
    },
    drawerClose() {
      this.ywData = {
        content: '',
        fileList: ''
      }
    },
    // 批量审核
    batchAuditing(result) {
      this.batchAuditingWorkOrder.auditingResult = result
@@ -534,7 +600,7 @@
    // 审核按钮
    handleAuditing(row) {
      this.auditingForm = row
      getYwCondition(row.id).then(response => {
      getYwCondition(row.workOrderNo).then(response => {
        this.ywConditions = response.data
        this.auditingOpen = true
      })
@@ -559,12 +625,12 @@
    // 过程图查看
    handleFlow(row) {
      this.flowForm = row
      getYwAuditingList(row.id).then(response => {
      getYwAuditingList(row.workOrderNo).then(response => {
        if (response.data) {
          this.ywAuditingList = response.data
        }
      })
      getYwCondition(row.id).then(response => {
      getYwCondition(row.workOrderNo).then(response => {
        if (response.data) {
          this.ywHandleList = response.data
        }
@@ -840,4 +906,7 @@
.my-col {
  margin-bottom: 20px; box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 4px; position: relative;
}
::v-deep el-step__description.is-finish {
  color: gray;
}
</style>