|
|
@@ -1,14 +1,9 @@
|
|
|
<template>
|
|
|
<div class="app-container">
|
|
|
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
|
|
- <el-form-item prop="elevatorName">
|
|
|
- <el-input
|
|
|
- v-model="queryParams.elevatorName"
|
|
|
- placeholder="请输入安全码/电梯名称查询工单"
|
|
|
- clearable
|
|
|
- @keyup.enter.native="handleQuery"
|
|
|
- style="width: 300px"
|
|
|
- />
|
|
|
+ <el-form-item prop="elevatorName">
|
|
|
+ <el-input v-model="queryParams.elevatorName" placeholder="请输入安全码/电梯名称查询工单" clearable
|
|
|
+ @keyup.enter.native="handleQuery" style="width: 300px" />
|
|
|
</el-form-item>
|
|
|
<!--
|
|
|
<el-form-item label="电梯安全码" prop="securityCode">
|
|
|
@@ -22,27 +17,17 @@
|
|
|
-->
|
|
|
<el-form-item label="状态" prop="status">
|
|
|
<el-select v-model="queryParams.status" placeholder="请选择接单状态" clearable>
|
|
|
- <el-option
|
|
|
- v-for="dict in dict.type.sys_accept_status"
|
|
|
- :key="dict.value"
|
|
|
- :label="dict.label"
|
|
|
- :value="dict.value"
|
|
|
- />
|
|
|
+ <el-option v-for="dict in dict.type.sys_accept_status" :key="dict.value" :label="dict.label"
|
|
|
+ :value="dict.value" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="创建日期" prop="createDateStart">
|
|
|
- <el-date-picker clearable
|
|
|
- v-model="queryParams.createDateStart"
|
|
|
- type="date"
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
+ <el-date-picker clearable v-model="queryParams.createDateStart" type="date" value-format="yyyy-MM-dd"
|
|
|
placeholder="请选择开始日期">
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
- <el-form-item prop="createDateEnd">
|
|
|
- <el-date-picker clearable
|
|
|
- v-model="queryParams.createDateEnd"
|
|
|
- type="date"
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
+ <el-form-item prop="createDateEnd">
|
|
|
+ <el-date-picker clearable v-model="queryParams.createDateEnd" type="date" value-format="yyyy-MM-dd"
|
|
|
placeholder="请选择结束日期">
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
@@ -52,7 +37,7 @@
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
|
|
|
-<!-- <el-row :gutter="10" class="mb8">
|
|
|
+ <!-- <el-row :gutter="10" class="mb8">
|
|
|
<el-col :span="1.5">
|
|
|
<el-button
|
|
|
type="primary"
|
|
|
@@ -100,16 +85,16 @@
|
|
|
|
|
|
<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="id" />-->
|
|
|
+ <!-- <el-table-column label="主键" align="center" prop="id" />-->
|
|
|
<el-table-column label="被困人员电话" align="center" prop="trappedPersonTel" />
|
|
|
-<!-- <el-table-column label="所在地区" align="center" prop="region" />
|
|
|
+ <!-- <el-table-column label="所在地区" align="center" prop="region" />
|
|
|
<el-table-column label="所在小区" align="center" prop="community" />
|
|
|
<el-table-column label="所在楼栋" align="center" prop="building" />-->
|
|
|
<el-table-column label="电梯名称" align="center" prop="elevatorName" />
|
|
|
<el-table-column label="电梯安全码" align="center" prop="securityCode" />
|
|
|
<el-table-column label="接单状态" align="center" prop="status">
|
|
|
<template slot-scope="scope">
|
|
|
- <dict-tag :options="dict.type.sys_accept_status" :value="scope.row.status"/>
|
|
|
+ <dict-tag :options="dict.type.sys_accept_status" :value="scope.row.status" />
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="创建日期" align="center" prop="createDate" width="180">
|
|
|
@@ -117,7 +102,7 @@
|
|
|
<span>{{ parseTime(scope.row.createDate, '{y}-{m}-{d}') }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
-<!-- <el-table-column label="录音时长" align="center" prop="recordingDuration" />
|
|
|
+ <!-- <el-table-column label="录音时长" align="center" prop="recordingDuration" />
|
|
|
<el-table-column label="通话录音地址" align="center" prop="callRecording" />
|
|
|
<el-table-column label="维保公司" align="center" prop="maintCompany" />
|
|
|
<el-table-column label="维保人员1" align="center" prop="maintFristPerson" />
|
|
|
@@ -129,45 +114,25 @@
|
|
|
<el-table-column label="处理人" align="center" prop="handler" />
|
|
|
<el-table-column label="处理部门" align="center" prop="handleDepart" />
|
|
|
<el-table-column label="人员电话" align="center" prop="handleContactTel" />
|
|
|
-<!-- <el-table-column label="处理时间" align="center" prop="handleTime" width="180">
|
|
|
+ <!-- <el-table-column label="处理时间" align="center" prop="handleTime" width="180">
|
|
|
<template slot-scope="scope">
|
|
|
<span>{{ parseTime(scope.row.handleTime, '{y}-{m}-{d}') }}</span>
|
|
|
</template>
|
|
|
</el-table-column>-->
|
|
|
<el-table-column label="操作" 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="['work:workOrder:edit']"
|
|
|
- >详情</el-button>
|
|
|
- <el-button
|
|
|
- size="mini"
|
|
|
- type="text"
|
|
|
- icon="el-icon-delete"
|
|
|
- @click="handleDelete(scope.row)"
|
|
|
- v-hasPermi="['work:workOrder:remove']"
|
|
|
- >时间线</el-button>
|
|
|
- <el-button
|
|
|
- size="mini"
|
|
|
- type="text"
|
|
|
- icon="el-icon-delete"
|
|
|
- @click="handleDelete(scope.row)"
|
|
|
- v-hasPermi="['work:workOrder:remove']"
|
|
|
- >删除</el-button>
|
|
|
+ <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
|
|
|
+ v-hasPermi="['work:workOrder:edit']">详情</el-button>
|
|
|
+ <el-button size="mini" type="text" icon="el-icon-delete" @click="timeLineClick(scope.row)"
|
|
|
+ v-hasPermi="['work:workOrder:remove']">时间线</el-button>
|
|
|
+ <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
|
|
|
+ v-hasPermi="['work:workOrder:remove']">删除</el-button>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
|
|
|
- <pagination
|
|
|
- v-show="total>0"
|
|
|
- :total="total"
|
|
|
- :page.sync="queryParams.pageNum"
|
|
|
- :limit.sync="queryParams.pageSize"
|
|
|
- @pagination="getList"
|
|
|
- />
|
|
|
+ <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
|
|
|
+ @pagination="getList" />
|
|
|
|
|
|
<!-- 添加或修改工单列表对话框 -->
|
|
|
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
|
|
@@ -192,18 +157,12 @@
|
|
|
</el-form-item>
|
|
|
<el-form-item label="接单状态" prop="status">
|
|
|
<el-radio-group v-model="form.status">
|
|
|
- <el-radio
|
|
|
- v-for="dict in dict.type.sys_accept_status"
|
|
|
- :key="dict.value"
|
|
|
- :label="parseInt(dict.value)"
|
|
|
- >{{dict.label}}</el-radio>
|
|
|
+ <el-radio v-for="dict in dict.type.sys_accept_status" :key="dict.value" :label="parseInt(dict.value)">{{
|
|
|
+ dict.label }}</el-radio>
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="创建日期" prop="createDate">
|
|
|
- <el-date-picker clearable
|
|
|
- v-model="form.createDate"
|
|
|
- type="date"
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
+ <el-date-picker clearable v-model="form.createDate" type="date" value-format="yyyy-MM-dd"
|
|
|
placeholder="请选择创建日期">
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
@@ -211,7 +170,7 @@
|
|
|
<el-input v-model="form.recordingDuration" placeholder="请输入录音时长" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="通话录音地址" prop="callRecording">
|
|
|
- <file-upload v-model="form.callRecording"/>
|
|
|
+ <file-upload v-model="form.callRecording" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="维保公司" prop="maintCompany">
|
|
|
<el-input v-model="form.maintCompany" placeholder="请输入维保公司" />
|
|
|
@@ -244,10 +203,7 @@
|
|
|
<el-input v-model="form.handleDepart" placeholder="请输入处理部门" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="处理时间" prop="handleTime">
|
|
|
- <el-date-picker clearable
|
|
|
- v-model="form.handleTime"
|
|
|
- type="date"
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
+ <el-date-picker clearable v-model="form.handleTime" type="date" value-format="yyyy-MM-dd"
|
|
|
placeholder="请选择处理时间">
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
@@ -263,11 +219,38 @@
|
|
|
<el-button @click="cancel">取 消</el-button>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
+
|
|
|
+ <el-dialog title="时间线" :visible.sync="timeLineOpen" width="600px">
|
|
|
+ <div style="width: 100%;height: 70vh; display: flex;flex-wrap: wrap;overflow-y:auto;">
|
|
|
+ <el-timeline style="width:90%;margin-top: 5px;">
|
|
|
+ <el-timeline-item v-for="(item, index) in nodeList" :key="index" :hide-timestamp="true" color="#3291f8">
|
|
|
+ <div>
|
|
|
+ <div style="flex-direction: row;display: flex;justify-content: space-between;">
|
|
|
+ <div>{{ item.nodeName }}</div>
|
|
|
+ <div>{{ item.nodeTime }}</div>
|
|
|
+ </div>
|
|
|
+ <div style="flex-direction: row;display: flex;justify-content: space-between;margin-top: 10px;">
|
|
|
+ <div style="height: 30px;background-color:gainsboro;border-radius: 4px;padding: 5px;"
|
|
|
+ v-if="item.contentName != null">
|
|
|
+ {{ item.contentName }}</div>
|
|
|
+ <div v-else></div>
|
|
|
+ <div style="">{{ item.isSuccess ? "已完成" : "未完成" }}</div>
|
|
|
+ </div>
|
|
|
+ <div v-if="item.contentRemark != null"
|
|
|
+ style="height: 30px;background-color:gainsboro;border-radius: 4px;padding: 5px;margin-top: 10px;">
|
|
|
+ <div> {{ item.contentRemark }}</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-timeline-item>
|
|
|
+ </el-timeline>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { listWorkOrder, getWorkOrder, delWorkOrder, addWorkOrder, updateWorkOrder } from "@/api/work/workOrder";
|
|
|
+import { listWorkOrder, getWorkOrder, delWorkOrder, addWorkOrder, updateWorkOrder, getNodeList } from "@/api/work/workOrder";
|
|
|
|
|
|
export default {
|
|
|
name: "WorkOrder",
|
|
|
@@ -306,7 +289,9 @@ export default {
|
|
|
form: {},
|
|
|
// 表单校验
|
|
|
rules: {
|
|
|
- }
|
|
|
+ },
|
|
|
+ timeLineOpen: false,
|
|
|
+ nodeList: []
|
|
|
};
|
|
|
},
|
|
|
created() {
|
|
|
@@ -359,6 +344,14 @@ export default {
|
|
|
};
|
|
|
this.resetForm("form");
|
|
|
},
|
|
|
+ timeLineClick(row) {
|
|
|
+ this.timeLineOpen = true;
|
|
|
+ this.nodeList = [];
|
|
|
+ getNodeList(row.id).then(response => {
|
|
|
+ console.log(response);
|
|
|
+ this.nodeList = response.rows;
|
|
|
+ })
|
|
|
+ },
|
|
|
/** 搜索按钮操作 */
|
|
|
handleQuery() {
|
|
|
this.queryParams.pageNum = 1;
|
|
|
@@ -372,7 +365,7 @@ export default {
|
|
|
// 多选框选中数据
|
|
|
handleSelectionChange(selection) {
|
|
|
this.ids = selection.map(item => item.id)
|
|
|
- this.single = selection.length!==1
|
|
|
+ this.single = selection.length !== 1
|
|
|
this.multiple = !selection.length
|
|
|
},
|
|
|
/** 新增按钮操作 */
|
|
|
@@ -414,12 +407,12 @@ export default {
|
|
|
/** 删除按钮操作 */
|
|
|
handleDelete(row) {
|
|
|
const ids = row.id || this.ids;
|
|
|
- this.$modal.confirm('是否确认删除工单列表编号为"' + ids + '"的数据项?').then(function() {
|
|
|
+ this.$modal.confirm('是否确认删除工单列表编号为"' + ids + '"的数据项?').then(function () {
|
|
|
return delWorkOrder(ids);
|
|
|
}).then(() => {
|
|
|
this.getList();
|
|
|
this.$modal.msgSuccess("删除成功");
|
|
|
- }).catch(() => {});
|
|
|
+ }).catch(() => { });
|
|
|
},
|
|
|
/** 导出按钮操作 */
|
|
|
handleExport() {
|