| | |
| | | </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> |
| | |
| | | class="my-button" |
| | | size="mini" |
| | | type="text" |
| | | v-hasPermi="['work:order:condition:add']" |
| | | v-show="item.status !== 'AUDITING_SUCCESS'" |
| | | @click="handleYwCondition(item)" |
| | | >运维情况 |
| | | </el-button> |
| | |
| | | type="text" |
| | | @click="handleReport(item)" |
| | | v-hasPermi="['system:report:add']" |
| | | v-show="item.status !== 'AUDITING_SUCCESS'" |
| | | >事后报备 |
| | | </el-button> |
| | | </el-row> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | </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; |
| | | } |
| | |
| | | background-color: #d9d9d9; |
| | | display: flex; |
| | | flex-direction: row; |
| | | align-items: center |
| | | align-items: center; |
| | | width: 100%; |
| | | } |
| | | |
| | | .y-item-2 { |
| | |
| | | components: {}, |
| | | data() { |
| | | return { |
| | | drawer: false, |
| | | empty: false, |
| | | openShowCurrent: null, |
| | | ywConditions: [], |
| | |
| | | errorTypes: [ |
| | | { required: true, message: '请选择故障类型', trigger: 'change' } |
| | | ] |
| | | }, |
| | | // 运维情况 |
| | | ywData: { |
| | | content: '', |
| | | fileList: '' |
| | | } |
| | | } |
| | | }, |
| | |
| | | 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 |
| | |
| | | // 审核按钮 |
| | | handleAuditing(row) { |
| | | this.auditingForm = row |
| | | getYwCondition(row.id).then(response => { |
| | | getYwCondition(row.workOrderNo).then(response => { |
| | | this.ywConditions = response.data |
| | | this.auditingOpen = true |
| | | }) |
| | |
| | | // 过程图查看 |
| | | 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 |
| | | } |
| | |
| | | .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> |