xiangpei
2024-07-19 c78e4ef0b98443e3568024b26b23c2a298f7970d
src/views/system/work-order/index.vue
@@ -1,6 +1,6 @@
<template>
  <div class="app-container">
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
      <el-form-item label="工单号" prop="workOrderNo">
        <el-input
          v-model="queryParams.workOrderNo"
@@ -10,13 +10,26 @@
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="故障类型" prop="workOrderNo">
        <el-select v-model="queryParams.errorType" placeholder="故障类型" clearable @clear="handleQuery">
          <el-option v-for="(item, index) in errorTypeOptions" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="工单状态" prop="status">
        <el-select v-model="queryParams.status" placeholder="工单状态" @change="handleQuery">
          <el-option label="待处理" value="DISTRIBUTED"></el-option>
          <el-option label="待审核" value="YW_HANDLE"></el-option>
          <el-option label="审核通过" value="AUDITING_SUCCESS"></el-option>
          <el-option label="审核不通过" value="AUDITING_FAIL"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="运维处理时间">
        <el-date-picker
          clearable
          @clear="handleQuery"
          v-model="daterangeYwHandleTime"
          style="width: 240px"
          value-format="yyyy-MM-dd"
          value-format="yyyy-MM-dd HH:mm:ss"
          type="daterange"
          range-separator="-"
          start-placeholder="开始日期"
@@ -30,98 +43,64 @@
    </el-form>
    <el-row :gutter="10" class="mb8">
<!--      <el-col :span="1.5">-->
<!--        <el-button-->
<!--          type="primary"-->
<!--          plain-->
<!--          icon="el-icon-plus"-->
<!--          size="mini"-->
<!--          @click="handleAdd"-->
<!--          v-hasPermi="['x:work-order:add']"-->
<!--        >新增</el-button>-->
<!--      </el-col>-->
<!--      <el-col :span="1.5">-->
<!--        <el-button-->
<!--          type="success"-->
<!--          plain-->
<!--          icon="el-icon-edit"-->
<!--          size="mini"-->
<!--          :disabled="single"-->
<!--          @click="handleUpdate"-->
<!--          v-hasPermi="['x:work-order:edit']"-->
<!--        >修改</el-button>-->
<!--      </el-col>-->
      <el-col :span="1.5">
        <el-button
          type="danger"
          type="primary"
          plain
          icon="el-icon-delete"
          size="mini"
          :disabled="multiple"
          @click="handleDelete"
          v-hasPermi="['x:work-order:remove']"
        >删除</el-button>
          @click="batchAuditingVisible = true; batchAuditingWorkOrder = {}"
          v-hasPermi="['work:order:audit']"
        >批量审核</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="warning"
          plain
          icon="el-icon-download"
          size="mini"
          @click="handleExport"
          v-hasPermi="['x:work-order:export']"
        >导出</el-button>
      </el-col>
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
    </el-row>
    <el-table v-loading="loading" :data="workOrderList" @selection-change="handleSelectionChange">
      <el-table-column type="selection" width="55" align="center" />
      <el-table-column label="工单号" align="center" prop="workOrderNo" width="170"/>
      <el-table-column label="运维单位" align="center" prop="unitName" width="150"/>
      <el-table-column label="运维人员" align="center" prop="ywPeopleName" />
      <el-table-column label="运维处理时间" align="center" prop="ywHandleTime" width="180"/>
      <el-table-column label="运维结果" align="center" prop="ywResult" />
      <el-table-column label="运维情况" align="center" prop="ywCondition" width="150"/>
      <el-table-column label="运维检测结果" align="center" prop="ywCheckResult" width="230"/>
      <el-table-column label="创建时间" align="center" prop="createTime" width="180"/>
      <el-table-column label="操作" fixed="right" width="150"  align="center" class-name="small-padding fixed-width">
        <template slot-scope="scope">
<!--          <el-button-->
<!--            size="mini"-->
<!--            type="text"-->
<!--            icon="el-icon-edit"-->
<!--            @click="handleUpdate(scope.row)"-->
<!--            v-hasPermi="['x:work-order:edit']"-->
<!--          >修改</el-button>-->
          <el-button
            size="mini"
            type="text"
            @click="handleAuditing(scope.row)"
            v-hasPermi="['x:work-order:remove']"
          >审核</el-button>
          <el-button
            size="mini"
            type="text"
            @click="handleYwCondition(scope.row)"
            v-hasPermi="['x:work-order:remove']"
          >运维情况</el-button>
          <el-button
            size="mini"
            type="text"
            @click="handleYwResult(scope.row)"
            v-hasPermi="['x:work-order:remove']"
          >运维结果</el-button>
          <el-button
            size="mini"
            type="text"
            @click="handleCheckResult(scope.row)"
            v-hasPermi="['x:work-order:remove']"
          >检测结果</el-button>
        </template>
      </el-table-column>
    </el-table>
    <el-row :gutter="20">
      <el-col :xl="6" :lg="8" :md="12" :sm="24"  v-for="item in workOrderList" :key="item.id" style="margin-bottom: 20px;">
        <el-card :body-style="{ padding: '0px',display: 'flex' }">
          <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" class="image"/>
          <div style="padding-right: 10px;padding-top: 10px;">
            <el-row>
              <el-col :span="24" class="time">故障类型:<el-tag size="small" type="danger">{{ item.errorType }}</el-tag></el-col>
            </el-row>
            <el-row class="work-order-item">
              <el-col class="time" :span="24">运维人员:{{ item.ywPeopleName }}</el-col>
            </el-row>
            <el-row class="work-order-item">
              <el-col class="time" :span="24">运维单位:{{ item.unitName }}</el-col>
            </el-row>
            <el-row class="work-order-item">
              <el-col :span="24" class="time">工单编号:{{ item.workOrderNo }}</el-col>
            </el-row>
            <el-row>
              <el-col :span="24" class="time">处理时间:{{ item.ywHandleTime }}</el-col>
            </el-row>
            <el-row>
              <el-button
                size="mini"
                type="text"
                @click="handleAuditing(item)"
              >审核</el-button>
              <el-button
                size="mini"
                type="text"
                @click="handleYwCondition(item)"
              >运维情况</el-button>
              <el-button
                size="mini"
                type="text"
                @click="handleFlow(item)"
              >过程图</el-button>
              <el-button
                size="mini"
                type="text"
                @click="handleReport(item)"
                v-hasPermi="['system:report:add']"
              >事后报备</el-button>
            </el-row>
          </div>
        </el-card>
      </el-col>
    </el-row>
    <pagination
      v-show="total>0"
@@ -131,25 +110,66 @@
      @pagination="getList"
    />
    <el-dialog title="工单审核" :visible.sync="auditingOpen" width="500px" append-to-body>
      <el-form ref="auditingForm" :model="auditingForm" :rules="auditingRules" label-width="80px">
        <el-form-item label="工单号" prop="workOrderNo">
          <el-input v-model="auditingForm.workOrderNo" disabled  />
    <!-- 事后报备 -->
    <el-dialog title="事后报备" :visible.sync="reportOpen" width="600px" append-to-body>
      <el-form ref="reportForm" :model="reportForm" :rules="reportFormRules" label-width="80px">
        <el-form-item label="点位" prop="source">
          <el-input v-model="reportForm.source" disabled />
        </el-form-item>
        <el-form-item label="运维单位" prop="unitName">
          <el-input v-model="auditingForm.unitName" disabled  />
        <el-form-item label="报备类型">
          <el-input v-model="reportForm.reportType" disabled />
        </el-form-item>
        <el-form-item label="运维人员" prop="ywPeopleName">
          <el-input v-model="auditingForm.ywPeopleName" disabled />
        <el-form-item label="故障类型" prop="errorType">
          <el-select v-model="reportForm.errorType">
            <el-option label="市政施工" value="市政施工"/>
            <el-option label="设备故障" value="设备故障"/>
            <el-option label="设备遗失" value="设备遗失"/>
          </el-select>
        </el-form-item>
        <el-form-item label="审核结果" prop="auditingResult">
          <el-radio v-model="auditingForm.auditingResult" label="pass">通过</el-radio>
          <el-radio v-model="auditingForm.auditingResult" label="return">驳回</el-radio>
        <el-form-item label="报备内容" prop="reportContent">
          <editor v-model="reportForm.reportContent" :min-height="192"/>
        </el-form-item>
        <el-form-item label="审核备注" prop="auditingRemark">
          <el-input v-model="auditingForm.auditingRemark" type="textarea" maxlength="30" show-word-limit/>
        <el-form-item label="上报材料" prop="reportMaterials">
          <file-upload v-model="reportForm.reportMaterials"/>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitReportForm">提 交</el-button>
        <el-button @click="reportOpen = false">取 消</el-button>
      </div>
    </el-dialog>
    <el-dialog title="工单审核" :visible.sync="auditingOpen" width="1000px" append-to-body>
      <el-row :gutter="20">
        <el-col :span="10">
          <el-form ref="auditingForm" :model="auditingForm" :rules="auditingRules" label-width="80px">
            <el-form-item label="工单号" prop="workOrderNo">
              <el-input v-model="auditingForm.workOrderNo" disabled  />
            </el-form-item>
            <el-form-item label="运维单位" prop="unitName">
              <el-input v-model="auditingForm.unitName" disabled  />
            </el-form-item>
            <el-form-item label="审核结果" prop="auditingResult">
              <el-radio v-model="auditingForm.auditingResult" label="AUDITING_SUCCESS">通过</el-radio>
              <el-radio v-model="auditingForm.auditingResult" label="AUDITING_FAIL">驳回</el-radio>
            </el-form-item>
            <el-form-item label="审核备注" prop="auditingRemark">
              <el-input v-model="auditingForm.auditingRemark" type="textarea" maxlength="30" show-word-limit/>
            </el-form-item>
          </el-form>
        </el-col>
        <el-col :span="14" style="max-height: 500px; overflow-y: scroll">
          <el-timeline>
            <el-timeline-item v-for="(condition, index) in ywConditions" :key="index" :timestamp="condition.commitUserName + '___' + condition.createTime" placement="top">
              <el-card>
                <div v-html="condition.ywCondition"></div>
                <el-link type="primary" v-for="item in condition.ywProofMaterials != null ? condition.ywProofMaterials.split(',') : condition.ywProofMaterials" :underline="false" :key="item.id" @click="handleDownload(item)">{{ item.substring(item.lastIndexOf("/") + 1) }}</el-link>
              </el-card>
            </el-timeline-item>
          </el-timeline>
        </el-col>
      </el-row>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitAuditing">确 定</el-button>
        <el-button @click="cancelAuditing">取 消</el-button>
@@ -157,7 +177,7 @@
    </el-dialog>
    <el-dialog title="运维情况记录" :visible.sync="ywConditionOpen" width="500px" append-to-body>
      <el-form ref="ywConditionForm" :model="ywConditionForm" :rules="ywConditionRules" label-width="80px">
      <el-form ref="form" :model="form" :rules="ywConditionRules" label-width="80px">
        <el-form-item label="工单号" prop="workOrderNo">
          <el-input v-model="ywConditionForm.workOrderNo" disabled  />
        </el-form-item>
@@ -167,8 +187,11 @@
        <el-form-item label="运维人员" prop="ywPeopleName">
          <el-input v-model="ywConditionForm.ywPeopleName" disabled />
        </el-form-item>
        <el-form-item label="运维情况" prop="ywCondition">
          <el-input v-model="ywConditionForm.ywCondition" type="textarea" maxlength="150" show-word-limit/>
        <el-form-item label="现场情况" prop="ywCondition">
          <editor v-model="form.ywCondition" :min-height="192"/>
        </el-form-item>
        <el-form-item label="佐证材料" prop="ywProofMaterials">
          <file-upload v-model="form.ywProofMaterials"/>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
@@ -177,85 +200,166 @@
      </div>
    </el-dialog>
    <el-dialog title="运维结果记录" :visible.sync="ywResultOpen" width="500px" append-to-body>
      <el-form ref="ywResultForm" :model="ywResultForm" :rules="ywResultRules" label-width="80px">
        <el-form-item label="工单号" prop="workOrderNo">
          <el-input v-model="ywResultForm.workOrderNo" disabled  />
    <el-dialog title="运维批量审核" :visible.sync="batchAuditingVisible" width="500px" append-to-body>
      <el-form ref="batchAuditingWorkOrder" :model="batchAuditingWorkOrder" label-width="80px" :rules="batchAuditingRules">
        <el-form-item label="故障类型" prop="errorType">
          <el-select v-model="batchAuditingWorkOrder.errorTypes" multiple placeholder="故障类型">
            <el-option v-for="(item, index) in errorTypeOptions" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="运维单位" prop="unitName">
          <el-input v-model="ywResultForm.unitName" disabled  />
        </el-form-item>
        <el-form-item label="运维人员" prop="ywPeopleName">
          <el-input v-model="ywResultForm.ywPeopleName" disabled />
        </el-form-item>
        <el-form-item label="运维结果" prop="ywResult">
          <el-input v-model="ywResultForm.ywResult" type="textarea" maxlength="150" show-word-limit/>
        <el-form-item label="审核说明" prop="auditingRemark">
          <el-input v-model="batchAuditingWorkOrder.auditingRemark" type="textarea" maxlength="30" show-word-limit />
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitYwResult">确 定</el-button>
        <el-button @click="cancelYwResult">取 消</el-button>
        <el-button type="primary" @click="batchAuditing('AUDITING_SUCCESS')" size="small">通 过</el-button>
        <el-button type="danger" @click="batchAuditing('AUDITING_FAIL')" size="small">驳 回</el-button>
      </div>
    </el-dialog>
    <el-dialog title="运维检测结果" :visible.sync="checkResultOpen" width="500px" append-to-body>
      <el-form ref="ywResultForm" :model="checkResultForm" :rules="checkResultRules" label-width="120px">
        <el-form-item label="工单号" prop="workOrderNo">
          <el-input v-model="checkResultForm.workOrderNo" disabled  />
        </el-form-item>
        <el-form-item label="运维单位" prop="unitName">
          <el-input v-model="checkResultForm.unitName" disabled  />
        </el-form-item>
        <el-form-item label="运维人员" prop="ywPeopleName">
          <el-input v-model="checkResultForm.ywPeopleName" disabled />
        </el-form-item>
        <el-form-item label="运维检测结果" prop="ywCheckResult">
          <el-input v-model="checkResultForm.ywCheckResult" type="textarea" maxlength="150" show-word-limit/>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitYwResult">确 定</el-button>
        <el-button @click="cancelYwResult">取 消</el-button>
    <!-- 过程图 -->
    <el-dialog title="过程图" :visible.sync="flowOpen" width="1200px" append-to-body>
      <div>
        <el-steps :active="ywAuditingList.length != 0 ? 3 : ywHandleList.length != 0 ? 2 : 1" :space="500">
          <el-step title="产生工单">
            <template slot="description">
              <div>
                <div class="flow-item-x">
                  工单来源:<el-tag type="danger" size="small">{{flowForm.source}}</el-tag>
                </div>
                <div class="flow-item-x">
                  故障类型:{{flowForm.errorType}}
                </div>
                <div class="flow-item-x">
                  运维单位:{{flowForm.unitName}}
                </div>
                <div class="flow-item-x">
                  创建时间:{{flowForm.createTime}}
                </div>
                <div class="flow-item-x" v-if="flowForm.processingPeriod">
                  处理期限:<el-tag type="danger" size="small">{{ flowForm.processingPeriod }}</el-tag>
                </div>
              </div>
            </template>
          </el-step>
          <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>
                  <div class="y-item-2">
                    <div >
                      {{ parseTime(item.createTime) }}
                    </div>
                    <div >
                      第{{ index + 1 }}次
                    </div>
                  </div>
                </div>
              </div>
            </template>
          </el-step>
          <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">
                      审核结果:<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>
                  </div>
                  <div class="y-item-2">
                    <div >
                      {{ parseTime(item.createTime) }}
                    </div>
                    <div >
                      第{{ index + 1 }}次
                    </div>
                  </div>
                </div>
              </div>
            </template>
          </el-step>
        </el-steps>
      </div>
    </el-dialog>
    <!-- 添加或修改运维工单对话框 -->
    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
        <el-form-item label="工单号" prop="workOrderNo">
          <el-input v-model="form.workOrderNo" placeholder="请输入工单号" />
        </el-form-item>
        <el-form-item label="运维处理时间" prop="ywHandleTime">
          <el-date-picker clearable
            v-model="form.ywHandleTime"
            type="date"
            value-format="yyyy-MM-dd"
            placeholder="请选择运维处理时间">
          </el-date-picker>
        </el-form-item>
        <el-form-item label="运维情况" prop="ywCondition">
          <el-input v-model="form.ywCondition" type="textarea" placeholder="请输入内容" />
        </el-form-item>
        <el-form-item label="运维检测结果" prop="ywCheckResult">
          <el-input v-model="form.ywCheckResult" type="textarea" placeholder="请输入内容" />
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitForm">确 定</el-button>
        <el-button @click="cancel">取 消</el-button>
      </div>
    </el-dialog>
  </div>
</template>
<style scoped>
.flow-item-x {
  margin: 5px 0;
}
.y-item {
  margin-bottom: 8px;
  padding: 0 3px;
  background-color: #d9d9d9;
  display: flex;
  flex-direction: row;
  align-items: center
}
.y-item-2 {
  flex: 1;
}
.y-item-1 {
  flex: 2;
}
</style>
<script>
import { listWorkOrder, getWorkOrder, delWorkOrder, addWorkOrder, updateWorkOrder } from "@/api/platform/work-order";
import { listWorkOrder, getWorkOrder, delWorkOrder, addWorkOrder, updateWorkOrder, auditing, batchAuditing, ywCondition, getYwCondition, getYwConditionList, getYwAuditingList } from "@/api/platform/work-order";
import { addReport } from "@/api/platform/report";
import { getDicts } from "@/api/system/dict/data";
export default {
  name: "Work-order",
  components: {
  },
  data() {
    return {
      errorTypeOptions: [],
      ywConditions: [],
      batchAuditingVisible: false,
      batchAuditingWorkOrder: {
        errorTypes: [],
        auditingRemark: '',
        auditingResult: ''
      },
      ywHandleList: [],
      ywAuditingList: [],
      reportFormRules: {
        reportContent: [
          { required: true, message: "报备内容不能为空", trigger: "blur" }
        ],
        reportMaterials: [
          { required: true, message: "上报材料不能为空", trigger: "blur" }
        ],
      },
      reportOpen: false,
      reportForm: {
        reportType: "事后报备",
        pointId: "",
        errorType: "",
        reportContent: "",
        reportMaterials: ""
      },
      // 过程图
      flowOpen: false,
      flowForm: {},
      certificateList:[],
      pictureList: [],
      // 遮罩层
      loading: true,
      // 选中数组
@@ -286,6 +390,7 @@
        ywHandleTime: null,
        ywResult: null,
        ywCondition: null,
        status: ''
      },
      // 表单参数
      form: {},
@@ -329,21 +434,68 @@
          { required: true, message: "运维检测结果不能为空", trigger: "blur" }
        ],
      },
      // 批量审核校验
      batchAuditingRules: {
        errorTypes: [
          { required: true, message: "请选择故障类型", trigger: "change" }
        ],
      }
    };
  },
  created() {
    this.getList();
  },
  methods: {
    // 批量审核
    batchAuditing(result) {
      this.batchAuditingWorkOrder.auditingResult = result;
      this.$refs["batchAuditingWorkOrder"].validate(valid => {
        if (valid) {
          batchAuditing(this.batchAuditingWorkOrder).then(res => {
            this.batchAuditingWorkOrder = {};
            this.batchAuditingVisible = false;
            this.$modal.msgSuccess("操作成功");
            this.getList();
          })
        }
      })
    },
    /** 下载按钮操作 */
    handleDownload (data) {
      this.$download.resource(data);
    },
    // 报备
    submitReportForm() {
      this.$refs["reportForm"].validate(valid => {
        if (valid) {
          addReport(this.reportForm).then(response => {
            this.$modal.msgSuccess("成功提交报备");
            this.reportOpen = false;
            this.getList();
          });
        }
      });
    },
    // 事后报备按钮
    handleReport(row) {
      this.reportForm.pointId = row.pointId;
      this.reportForm.source = row.source;
      this.reportOpen = true;
    },
    // 审核按钮
    handleAuditing(row) {
      this.auditingForm = row;
      this.auditingOpen = true;
      getYwCondition(row.id).then(response => {
        this.ywConditions = response.data;
        this.auditingOpen = true;
      });
    },
    // 运维情况按钮
    handleYwCondition(row) {
      this.form = {};
      this.ywConditionForm = row;
      this.ywConditionOpen = true;
      this.form.id = row.id;
    },
    // 运维结果按钮
    handleYwResult(row) {
@@ -355,18 +507,75 @@
      this.checkResultForm = row;
      this.checkResultOpen = true;
    },
    // 过程图查看
    handleFlow(row) {
      this.flowForm = row;
      getYwAuditingList(row.id).then(response => {
        if (response.data) {
          this.ywAuditingList = response.data;
        }
      });
      getYwCondition(row.id).then(response => {
        if (response.data) {
          this.ywHandleList = response.data;
        }
        this.flowOpen = true;
      });
    },
    // 提交审核
    submitAuditing() {
      // todo
      this.$refs["auditingForm"].validate(valid => {
        if (valid) {
          auditing(this.auditingForm).then(res => {
            this.auditingOpen = false;
            this.$modal.msgSuccess("操作成功");
            this.getList();
          })
        }
      })
    },
    // 取消审核
    cancelAuditing() {
      this.auditingForm = {};
      this.auditingOpen = false;
    },
    pictureRemove(file, fileList) {
      this.form.picture = null,
        this.pictureList = this.pictureList.filter(item => item.name !== file.name)
    },
    certificateRemove(file, fileList) {
      this.form.certificate = null,
        this.certificateList = this.certificateList.filter(item => item.name !== file.name)
    },
    pictureUploadSuccess(response, file, fileList) {
      this.form.picture = response.fileName,
        this.pictureList.push({
          name: response.originalFilename,
          url: response.url,
          fileName: response.fileName
        })
    },
    certificateUploadSuccess(response, file, fileList) {
      this.form.certificate = response.fileName,
        this.certificateList.push({
          name: response.originalFilename,
          url: response.url,
          fileName: response.fileName
        })
    },
    // 提交运维情况
    submitYwCondition() {
      // todo
      this.$refs["form"].validate(valid => {
        if (valid) {
          ywCondition(this.form).then(res => {
            this.ywConditionOpen = false;
            this.$modal.msgSuccess("操作成功");
            this.getList();
          })
        }
      })
    },
    cancelYwCondition() {
      this.ywConditionForm = {};
@@ -392,14 +601,17 @@
    getList() {
      this.loading = true;
      this.queryParams.params = {};
      if (null != this.daterangeYwHandleTime && '' != this.daterangeYwHandleTime) {
        this.queryParams["start"] = this.daterangeYwHandleTime[0];
        this.queryParams["end"] = this.daterangeYwHandleTime[1];
      }
      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 => {
        this.workOrderList = response.data;
        this.total = response.total;
        this.loading = false;
      });
      // 获取故障类型
      getDicts("error_type").then(response => {
        this.errorTypeOptions = response.data;
      });
    },
    // 取消按钮
@@ -455,6 +667,20 @@
        this.form = response.data;
        this.open = true;
        this.title = "修改运维工单";
        this.pictureList = JSON.parse(response.data.picture).map(item => {
          return {
            name: item,
            url: process.env.VUE_APP_FILE_API + '/' + item,
            fileName: item
          }
        })
        this.certificateList = JSON.parse(row.certificate).map(item => {
          return {
            name: item,
            url: process.env.VUE_APP_FILE_API + '/' + item,
            fileName: item
          }
        })
      });
    },
    /** 提交按钮 */
@@ -496,3 +722,26 @@
  }
};
</script>
<style scoped>
.work-order-item {
  margin-bottom: 5px;
}
.time {
  font-size: 13px;
  color: #999;
}
.image {
  width: 165px;
  height: 150px;
  padding: 10px;
}
.line-limit-length {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  width: 200px;
}
</style>