Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
saas-manage
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
chehuidong
saas-manage
Commits
3415c1bc
Commit
3415c1bc
authored
Sep 05, 2023
by
yangzhi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
工单优化
parent
e9d3d67e
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
645 additions
and
427 deletions
+645
-427
src/assets/work/PatorName.png
+0
-0
src/common/api/order.js
+6
-1
src/views/taskManage/index.vue
+639
-426
No files found.
src/assets/work/PatorName.png
0 → 100644
View file @
3415c1bc
692 Bytes
src/common/api/order.js
View file @
3415c1bc
...
@@ -21,7 +21,12 @@ export function workAssigned(data) {
...
@@ -21,7 +21,12 @@ export function workAssigned(data) {
data
,
data
,
)
)
}
}
export
function
reallocate
(
data
)
{
return
axios
.
post
(
'platform/platformWorkOrder/reallocate'
,
data
,
)
}
export
function
startWorder
(
id
,
estimateCompleteTime
)
{
export
function
startWorder
(
id
,
estimateCompleteTime
)
{
return
axios
.
post
(
'platform/platformWorkOrder/start'
,
{
return
axios
.
post
(
'platform/platformWorkOrder/start'
,
{
id
:
id
,
id
:
id
,
...
...
src/views/taskManage/index.vue
View file @
3415c1bc
...
@@ -6,209 +6,225 @@
...
@@ -6,209 +6,225 @@
* @LastEditTime: 2020-11-18 09:25:23
* @LastEditTime: 2020-11-18 09:25:23
-->
-->
<
template
>
<
template
>
<div
class=
'wraper'
>
<div
class=
"wraper"
>
<div
class=
'page_left'
>
<div
class=
"page_left"
>
<el-tree
<el-tree
:data=
'treeData'
:data=
"treeData"
:props=
'defaultProps'
:props=
"defaultProps"
ref=
'tree'
ref=
"tree"
highlight-current
highlight-current
:node-key=
"'statusCode'"
:node-key=
"'statusCode'"
:expand-on-click-node=
'false'
:expand-on-click-node=
"false"
default-expand-all
default-expand-all
@
node-click=
'handleNodeClick'
@
node-click=
"handleNodeClick"
>
>
<span
<span
class=
'custom-tree-node'
class=
"custom-tree-node"
slot-scope=
'
{ node, data }'
slot-scope=
"
{ node, data }"
>
>
<span
v-html=
'node.label'
></span>
<span
v-html=
"node.label"
></span>
<span>
(
{{
data
.
quantity
}}
)
</span>
<span>
(
{{
data
.
quantity
}}
)
</span>
</span>
</span>
</el-tree>
</el-tree>
</div>
</div>
<div
class=
'page_right'
>
<div
class=
"page_right"
>
<el-form
<el-form
v-show=
'is_tab == 1'
v-show=
"is_tab == 1"
:model=
'searchForm'
:model=
"searchForm"
size=
'mini'
size=
"mini"
v-enter-submit=
'getlist'
v-enter-submit=
"getlist"
:inline=
'true'
:inline=
"true"
ref=
'form'
ref=
"form"
class=
'search_form'
class=
"search_form"
>
>
<el-form-item>
<el-form-item>
<el-select
<el-select
v-model=
'searchForm.prop'
v-model=
"searchForm.prop"
placeholder=
'请选择'
placeholder=
"请选择"
clearable
clearable
style=
'width: 88px'
style=
"width: 88px"
>
>
<el-option
<el-option
label=
'开始时间'
label=
"开始时间"
value=
'startTime'
value=
"startTime"
></el-option>
></el-option>
<el-option
<el-option
label=
'创建时间'
label=
"创建时间"
value=
'createTime'
value=
"createTime"
></el-option>
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<choose-time-period
<choose-time-period
v-model=
'periodTime'
v-model=
"periodTime"
></choose-time-period>
></choose-time-period>
</el-form-item>
</el-form-item>
<el-form-item
label=
'工单编号'
>
<el-form-item
label=
"工单编号"
>
<el-input
<el-input
style=
'width: 110px'
style=
"width: 110px"
v-model=
'searchForm.orderNo'
v-model=
"searchForm.orderNo"
placeholder=
'请输入'
placeholder=
"请输入"
clearable
clearable
></el-input>
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
'工单标题'
>
<el-form-item
label=
"工单标题"
>
<el-input
<el-input
style=
'width: 110px'
style=
"width: 110px"
v-model=
'searchForm.title'
v-model=
"searchForm.title"
placeholder=
'请输入'
placeholder=
"请输入"
clearable
clearable
></el-input>
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
'工单类型'
>
<el-form-item
label=
"工单类型"
>
<el-select
<el-select
v-model=
'searchForm.orderType'
v-model=
"searchForm.orderType"
style=
'width: 110px'
style=
"width: 110px"
value-key=
''
value-key=
""
placeholder=
'请选择'
placeholder=
"请选择"
clearable
clearable
filterable
filterable
>
>
<el-option
<el-option
v-for=
'(type, index) in orderTypes'
v-for=
"(type, index) in orderTypes"
:key=
'index'
:key=
"index"
:label=
'type.value'
:label=
"type.value"
:value=
'type.key'
:value=
"type.key"
></el-option>
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
'负责人/参与人'
v-if=
"!(statusCode=== 'PRE_HANDLING'||statusCode==='TO_BE_ASSIGN')"
>
<el-form-item
label=
"负责人/参与人"
v-if=
"
!(
statusCode === 'PRE_HANDLING' ||
statusCode === 'TO_BE_ASSIGN'
)
"
>
<el-select
<el-select
style=
'width: 150px'
style=
"width: 150px"
placeholder=
'请选择'
placeholder=
"请选择"
clearable
clearable
multiple
multiple
collapse-tags
collapse-tags
v-model=
'searchForm.leaderAndParticipator'
v-model=
"searchForm.leaderAndParticipator"
>
>
<el-option
<el-option
v-for=
'user in userList'
v-for=
"user in userList"
:key=
'user.id'
:key=
"user.id"
:label=
'user.realName'
:label=
"user.realName"
:value=
'user.id'
:value=
"user.id"
></el-option>
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
'验收人'
v-if=
"!(statusCode=== 'PRE_HANDLING'||statusCode==='TO_BE_ASSIGN')"
>
<el-form-item
label=
"验收人"
v-if=
"
!(
statusCode === 'PRE_HANDLING' ||
statusCode === 'TO_BE_ASSIGN'
)
"
>
<el-select
<el-select
style=
'width: 110px'
style=
"width: 110px"
placeholder=
'请选择'
placeholder=
"请选择"
clearable
clearable
v-model=
'searchForm.acceptanceUserId'
v-model=
"searchForm.acceptanceUserId"
>
>
<el-option
<el-option
v-for=
'user in userList'
v-for=
"user in userList"
:key=
'user.id'
:key=
"user.id"
:label=
'user.realName'
:label=
"user.realName"
:value=
'user.id'
:value=
"user.id"
></el-option>
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
'优先级'
>
<el-form-item
label=
"优先级"
>
<el-select
<el-select
style=
'width: 110px'
style=
"width: 110px"
filterable
filterable
clearable
clearable
v-model=
'searchForm.priorityStatus'
v-model=
"searchForm.priorityStatus"
placeholder=
'请选择'
placeholder=
"请选择"
>
>
<el-option
<el-option
v-for=
"(
v-for=
"(priorityStatus,
priorityStatus, index
index) in priorityStatusList"
) in priorityStatusList"
:key=
"index"
:key=
"index"
:value=
"priorityStatus.value"
:value=
"priorityStatus.value"
:label=
"priorityStatus.name"
:label=
"priorityStatus.name"
></el-option>
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
'沟通状态'
>
<el-form-item
label=
"沟通状态"
>
<el-select
<el-select
v-model=
'searchForm.sign'
v-model=
"searchForm.sign"
placeholder=
'请选择'
placeholder=
"请选择"
style=
'width: 110px'
style=
"width: 110px"
clearable
clearable
>
>
<el-option
<el-option
label=
'待回复'
label=
"待回复"
:value=
'1'
:value=
"1"
></el-option>
></el-option>
<el-option
<el-option
label=
'已回复'
label=
"已回复"
:value=
'0'
:value=
"0"
></el-option>
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label
>
<el-form-item
label
>
<el-button
<el-button
@
click=
'getlist()'
@
click=
"getlist()"
type=
'primary'
type=
"primary"
size=
'mini'
size=
"mini"
>
>
查询
查询
</el-button>
</el-button>
</el-form-item>
</el-form-item>
<el-form-item
v-if=
"statusCode === 'PRE_HANDLING'"
>
<el-form-item
v-if=
"statusCode === 'PRE_HANDLING'"
>
<el-button
<el-button
type=
'success'
type=
"success"
size=
'mini'
size=
"mini"
@
click=
'addData'
@
click=
"addData"
>
新增
>
新增
</el-button
</el-button>
>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
<div
class=
'table-wrap'
v-loading=
'loading'
>
<div
class=
"table-wrap"
v-loading=
"loading"
>
<table-view
<table-view
:tableColumns=
'tableColumns'
:tableColumns=
"tableColumns"
:sourceData=
'sourceData'
:sourceData=
"sourceData"
:cellClassName=
'cellClassName'
:cellClassName=
"cellClassName"
:cellStyle=
'cellStyle'
:cellStyle=
"cellStyle"
@
sortChange=
'sortChange'
@
sortChange=
"sortChange"
>
>
</table-view>
</table-view>
</div>
</div>
<div
class=
'pagination'
>
<div
class=
"pagination"
>
<el-pagination
<el-pagination
layout=
'sizes, total, prev, pager, next, jumper'
layout=
"sizes, total, prev, pager, next, jumper"
background
background
:total=
'centerPageOptions.total'
:total=
"centerPageOptions.total"
:page-size=
'centerPageOptions.pageSize'
:page-size=
"centerPageOptions.pageSize"
:current-page=
'centerPageOptions.currentPage'
:current-page=
"centerPageOptions.currentPage"
@
size-change=
'sizeChange'
@
size-change=
"sizeChange"
@
current-change=
'onCurrentChange'
@
current-change=
"onCurrentChange"
>
>
</el-pagination>
</el-pagination>
</div>
</div>
</div>
</div>
<!-- 详情 -->
<!-- 详情 -->
<el-dialog
<el-dialog
:close-on-click-modal=
'false'
:close-on-click-modal=
"false"
:visible
.
sync=
'detailVisible'
:visible
.
sync=
"detailVisible"
class=
'dialogDetail'
class=
"dialogDetail"
:class=
"[dialogFullScreen ? 'fullscreen' : 'no_fullscreen']"
:class=
"[
:fullscreen=
'dialogFullScreen'
dialogFullScreen ? 'fullscreen' : 'no_fullscreen',
@
close=
'getlist()'
]"
:fullscreen=
"dialogFullScreen"
@
close=
"getlist()"
>
>
<!--
<div
class=
"step-bar"
>
<!--
<div
class=
"step-bar"
>
step-pass 已经完成,step-active当前步骤
step-pass 已经完成,step-active当前步骤
...
@@ -260,46 +276,49 @@
...
@@ -260,46 +276,49 @@
<span>
已归档
</span>
<span>
已归档
</span>
</div>
</div>
</div>
-->
</div>
-->
<template
slot=
'title'
>
<template
slot=
"title"
>
<div
class=
'custom_dialog_header'
>
<div
class=
"custom_dialog_header"
>
<span
class=
'el_dialog_title'
>
详情
</span>
<span
class=
"el_dialog_title"
>
详情
</span>
<div
class=
'custom_dialog_menu'
@
click=
'dialogFullScreen = !dialogFullScreen'
<div
style=
'text-align: right;margin-top: 11px'
>
class=
"custom_dialog_menu"
<i
class=
'el-icon-full-screen'
></i>
@
click=
"dialogFullScreen = !dialogFullScreen"
style=
"text-align: right;margin-top: 11px"
>
<i
class=
"el-icon-full-screen"
></i>
</div>
</div>
</div>
</div>
</
template
>
</
template
>
<div
class=
'content'
v-loading=
'detailLoading'
>
<div
class=
"content"
v-loading=
"detailLoading"
>
<div
class=
'detail_list'
>
<div
class=
"detail_list"
>
<div
class=
'item_wrap'
>
<div
class=
"item_wrap"
>
<p
class=
'item'
style=
'width: 100%'
>
<p
class=
"item"
style=
"width: 100%"
>
<span
class=
'label'
>
工单标题
</span>
<span
class=
"label"
>
工单标题
</span>
<span
class=
'value'
style=
'width: 732px'
>
{{
<span
class=
"value"
style=
"width: 732px"
>
{{
detail.title
detail.title
}}
</span>
}}
</span>
</p>
</p>
<p
class=
'item'
>
<p
class=
"item"
>
<span
class=
'label'
>
工单编码
</span>
<span
class=
"label"
>
工单编码
</span>
<span
class=
'value'
>
{{
<span
class=
"value"
>
{{
detail.orderNo
detail.orderNo
}}
</span>
}}
</span>
</p>
</p>
<p
class=
'item'
>
<p
class=
"item"
>
<span
class=
'label'
>
工单类型
</span>
<span
class=
"label"
>
工单类型
</span>
<span
class=
'value'
>
<span
class=
"value"
>
{{ detail.orderTypeTxt }}
{{ detail.orderTypeTxt }}
</span>
</span>
</p>
</p>
<p
class=
'item'
>
<p
class=
"item"
>
<span
class=
'label'
>
工单状态
</span>
<span
class=
"label"
>
工单状态
</span>
<span
class=
'value'
>
<span
class=
"value"
>
{{ detail.orderStatusTxt }}
{{ detail.orderStatusTxt }}
</span>
</span>
</p>
</p>
<p
class=
'item'
>
<p
class=
"item"
>
<span
class=
'label'
>
优先级
</span>
<span
class=
"label"
>
优先级
</span>
<span
class=
'value'
>
<span
class=
"value"
>
{{
{{
handlePriorityStatus(
handlePriorityStatus(
detail.priorityStatus,
detail.priorityStatus,
...
@@ -308,88 +327,94 @@
...
@@ -308,88 +327,94 @@
</span>
</span>
</p>
</p>
<p
<p
class=
'item'
class=
"item"
style=
'width: 100%; display: flex'
style=
"width: 100%; display: flex"
>
>
<span
class=
'label'
>
工单内容
</span>
<span
class=
"label"
>
工单内容
</span>
<span
<span
style=
'flex: 1; display: inline-block;max-width: 84%;'
style=
"flex: 1; display: inline-block;max-width: 84%;"
class=
'value'
class=
"value"
@
click
.
stop=
'hanldeImage($event)'
@
click
.
stop=
"hanldeImage($event)"
v-html=
'detail.content'
v-html=
"detail.content"
></span>
></span>
<el-image-viewer
<el-image-viewer
v-if=
'imgPreviewUrl'
v-if=
"imgPreviewUrl"
:initial-index=
'subscript'
:initial-index=
"subscript"
:src=
'imgPreviewUrl'
:src=
"imgPreviewUrl"
:on-close=
'closeViewer'
:on-close=
"closeViewer"
:url-list=
'imgList'
:url-list=
"imgList"
style=
'z-index: 3000'
style=
"z-index: 3000"
></el-image-viewer>
></el-image-viewer>
</p>
</p>
</div>
</div>
<div
<div
style=
'padding: 5px; overflow: auto'
style=
"padding: 5px; overflow: auto"
v-html=
'detail.taskContent'
v-html=
"detail.taskContent"
@
click=
'fullScreenDisplay'
@
click=
"fullScreenDisplay"
></div>
></div>
</div>
</div>
<div
class=
'record'
>
<div
class=
"record"
>
<div
class=
'title'
>
备注
</div>
<div
class=
"title"
>
备注
</div>
<ul
class=
'chat_content'
>
<ul
class=
"chat_content"
>
<el-input
<el-input
style=
'width: 95%'
style=
"width: 95%"
type=
'textarea'
type=
"textarea"
:rows=
'4'
:rows=
"4"
v-model=
'detail.remark'
v-model=
"detail.remark"
placeholder=
'备注'
placeholder=
"备注"
></el-input>
></el-input>
<el-button
type=
'success'
size=
'mini'
@
click=
'saveRemark'
v-if=
'detail.remark'
style=
'margin-left: 8px'
>
<el-button
type=
"success"
size=
"mini"
@
click=
"saveRemark"
v-if=
"detail.remark"
style=
"margin-left: 8px"
>
保存
保存
</el-button>
</el-button>
</ul>
</ul>
</div>
</div>
<div
class=
'record'
>
<div
class=
"record"
>
<div
class=
'title'
>
沟通记录
</div>
<div
class=
"title"
>
沟通记录
</div>
<ul
<ul
class=
'chat_content'
class=
"chat_content"
v-if=
'chatRecord.length > 0'
v-if=
"chatRecord.length > 0"
>
>
<li
<li
v-for=
'(item, index) in chatRecord'
v-for=
"(item, index) in chatRecord"
:key=
'index'
:key=
"index"
class=
'chat_item'
class=
"chat_item"
:class=
'{ chat_right: item.type === 2 }'
:class=
"{ chat_right: item.type === 2 }"
>
>
<div
class=
'chat_warp'
v-if=
'item.type === 2'
>
<div
class=
"chat_warp"
v-if=
"item.type === 2"
>
<div
class=
'chat_user'
>
<div
class=
"chat_user"
>
<div
class=
'chat_user_time'
>
<div
class=
"chat_user_time"
>
{{
{{
item.createTime
item.createTime
}}
客服
}}
客服
</div>
</div>
<div
class=
'chat_text'
>
<div
class=
"chat_text"
>
{{ item.msg }}
{{ item.msg }}
</div>
</div>
</div>
</div>
<div
class=
'chat_icon'
>
<div
class=
"chat_icon"
>
<img
<img
width=
'100%'
width=
"100%"
src=
'http://img.alicdn.com/tfs/TB14feR0AL0gK0jSZFAXXcA9pXa-64-64.png'
src=
"http://img.alicdn.com/tfs/TB14feR0AL0gK0jSZFAXXcA9pXa-64-64.png"
alt=
''
alt=
""
/>
/>
</div>
</div>
</div>
</div>
<div
v-else
class=
'chat_warp'
>
<div
v-else
class=
"chat_warp"
>
<div
class=
'chat_icon'
>
<div
class=
"chat_icon"
>
<img
<img
width=
'100%'
width=
"100%"
src=
'http://img.alicdn.com/tfs/TB14feR0AL0gK0jSZFAXXcA9pXa-64-64.png'
src=
"http://img.alicdn.com/tfs/TB14feR0AL0gK0jSZFAXXcA9pXa-64-64.png"
alt=
''
alt=
""
/>
/>
</div>
</div>
<div
class=
'chat_user'
>
<div
class=
"chat_user"
>
<div
class=
'chat_user_time'
>
<div
class=
"chat_user_time"
>
{{
{{
item.sendUserName
item.sendUserName
}}:
{{
}}:
{{
...
@@ -397,210 +422,290 @@
...
@@ -397,210 +422,290 @@
}}
}}
</div>
</div>
<div
class=
'chat_text'
>
<div
class=
"chat_text"
>
{{ item.msg }}
{{ item.msg }}
</div>
</div>
</div>
</div>
</div>
</div>
</li>
</li>
</ul>
</ul>
<div
class=
'empty-data'
v-else
>
暂无数据
</div>
<div
class=
"empty-data"
v-else
>
暂无数据
</div>
</div>
</div>
</div>
</div>
<div
style=
'margin-top: 10px'
>
<div
style=
"margin-top: 10px"
>
<div>
<div>
<el-input
<el-input
type=
'textarea'
type=
"textarea"
:rows=
'4'
:rows=
"4"
maxlength=
'1000'
maxlength=
"1000"
placeholder=
'请输入内容'
placeholder=
"请输入内容"
v-model=
'textarea'
v-model=
"textarea"
>
>
</el-input>
</el-input>
</div>
</div>
<div
style=
'margin-top: 10px; text-align: right'
>
<div
style=
"margin-top: 10px; text-align: right"
>
<el-button
<el-button
size=
'mini'
size=
"mini"
type=
'primary'
type=
"primary"
@
click=
'reply'
@
click=
"reply"
>
回复
>
回复
</el-button
</el-button>
>
<el-button
<el-button
size=
'mini'
size=
"mini"
type=
'success'
type=
"success"
v-if=
"statusCode === 'PRE_HANDLING'"
v-if=
"statusCode === 'PRE_HANDLING'"
@
click=
'confirm'
@
click=
"confirm"
>
受理
>
受理
</el-button
</el-button>
>
<el-button
<el-button
size=
'mini'
size=
"mini"
type=
'danger'
type=
"danger"
v-if=
"statusCode === 'PRE_HANDLING'"
v-if=
"statusCode === 'PRE_HANDLING'"
@
click=
'closeForPendingDialog'
@
click=
"closeForPendingDialog"
>
不受理
>
不受理
</el-button
</el-button>
>
</div>
</div>
</div>
</div>
</el-dialog>
</el-dialog>
<edit
<edit
:editDialog
.
sync=
'editDialog'
:editDialog
.
sync=
"editDialog"
@
onSubmit=
'onSubmit'
@
onSubmit=
"onSubmit"
@
onChangeModule=
'onChangeModule'
@
onChangeModule=
"onChangeModule"
:editForm=
'editForm'
:editForm=
"editForm"
:orderTypes=
'orderTypes'
:orderTypes=
"orderTypes"
:isEdit=
'isEdit'
:isEdit=
"isEdit"
:editFlag=
'editFlag'
:editFlag=
"editFlag"
ref=
'edit'
ref=
"edit"
></edit>
></edit>
<!-- 修改参与人 -->
<el-dialog
title=
"修改参与人"
:close-on-click-modal=
"false"
:visible
.
sync=
"updateVisible"
width=
"900px"
>
<el-form
:inline=
"true"
size=
"mini"
:model=
"updateForm"
ref=
"updateForm"
:rules=
"updateFormRules"
label-width=
"130px"
>
<el-form-item
label=
"负责人"
prop=
"leaders"
>
<el-select
style=
"width: 100%"
size=
"small"
v-model=
"updateForm.leaders"
>
<el-option
v-for=
"user in userList"
:key=
"user.id"
:label=
"user.realName"
:value=
"user.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"参与人"
prop=
"participator"
>
<el-select
style=
"width: 100%"
size=
"small"
v-model=
"updateForm.participator"
multiple
>
<el-option
v-for=
"user in userList"
:key=
"user.id"
:label=
"user.realName"
:value=
"user.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"验收人"
prop=
"acceptanceUserId"
>
<el-select
style=
"width: 100%"
size=
"small"
v-model=
"updateForm.acceptanceUserId"
>
<el-option
v-for=
"user in userList"
:key=
"user.id"
:label=
"user.realName"
:value=
"user.id"
></el-option>
</el-select>
</el-form-item>
</el-form>
<span
slot=
"footer"
>
<el-button
size=
"mini"
@
click=
"updateVisible = false"
>
取消
</el-button
>
<el-button
size=
"mini"
type=
"primary"
@
click=
"submitUpdate"
>
确定
</el-button
>
</span>
</el-dialog>
<!-- 指派 -->
<!-- 指派 -->
<el-dialog
<el-dialog
title=
'指派给'
title=
"指派给"
:close-on-click-modal=
'false'
:close-on-click-modal=
"false"
:visible
.
sync=
'assignVisible'
:visible
.
sync=
"assignVisible"
width=
'900px'
width=
"900px"
>
>
<el-form
<el-form
:inline=
'true'
:inline=
"true"
size=
'mini'
size=
"mini"
:model=
'assignForm'
:model=
"assignForm"
ref=
'assignForm'
ref=
"assignForm"
:rules=
'assignFormRules'
:rules=
"assignFormRules"
label-width=
'130px'
label-width=
"130px"
>
>
<el-form-item
label=
'负责人'
prop=
'leaders'
>
<el-form-item
label=
"负责人"
prop=
"leaders"
>
<el-select
<el-select
style=
'width: 100%'
style=
"width: 100%"
size=
'small'
size=
"small"
v-model=
'assignForm.leaders'
v-model=
"assignForm.leaders"
>
>
<el-option
<el-option
v-for=
'user in userList'
v-for=
"user in userList"
:key=
'user.id'
:key=
"user.id"
:label=
'user.realName'
:label=
"user.realName"
:value=
'user.id'
:value=
"user.id"
></el-option>
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
'参与人'
prop=
'participator'
>
<el-form-item
label=
"参与人"
prop=
"participator"
>
<el-select
<el-select
style=
'width: 100%'
style=
"width: 100%"
size=
'small'
size=
"small"
v-model=
'assignForm.participator'
v-model=
"assignForm.participator"
multiple
multiple
>
>
<el-option
<el-option
v-for=
'user in userList'
v-for=
"user in userList"
:key=
'user.id'
:key=
"user.id"
:label=
'user.realName'
:label=
"user.realName"
:value=
'user.id'
:value=
"user.id"
></el-option>
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
<el-form-item
label=
'验收人'
label=
"验收人"
prop=
'acceptanceUserId'
prop=
"acceptanceUserId"
>
>
<el-select
<el-select
style=
'width: 100%'
style=
"width: 100%"
size=
'small'
size=
"small"
v-model=
'assignForm.acceptanceUserId'
v-model=
"assignForm.acceptanceUserId"
>
>
<el-option
<el-option
v-for=
'user in userList'
v-for=
"user in userList"
:key=
'user.id'
:key=
"user.id"
:label=
'user.realName'
:label=
"user.realName"
:value=
'user.id'
:value=
"user.id"
></el-option>
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
<span
slot=
'footer'
>
<span
slot=
"footer"
>
<el-button
<el-button
size=
'mini'
size=
"mini"
@
click=
'assignVisible = false'
@
click=
"assignVisible = false"
>
取消
</el-button
>
取消
</el-button
>
>
<el-button
<el-button
size=
'mini'
size=
"mini"
type=
'primary'
type=
"primary"
@
click=
'submitAssign'
@
click=
"submitAssign"
>
确定
</el-button
>
确定
</el-button
>
>
</span>
</span>
</el-dialog>
</el-dialog>
<el-dialog
<el-dialog
title=
'预计完成时间'
title=
"预计完成时间"
:visible
.
sync=
'completeVisible'
:visible
.
sync=
"completeVisible"
width=
'500px'
width=
"500px"
:close-on-click-modal=
'false'
:close-on-click-modal=
"false"
>
<el-form
size=
"mini"
:rules=
"addRules"
:model=
"ruleForm"
ref=
"ruleForm"
>
<el-form-item
label=
"预计完成时间"
prop=
"estimateCompleteTime"
>
>
<el-form
size=
'mini'
:rules=
'addRules'
:model=
'ruleForm'
ref=
'ruleForm'
>
<el-form-item
label=
'预计完成时间'
prop=
'estimateCompleteTime'
>
<el-date-picker
<el-date-picker
style=
'width: 100%'
style=
"width: 100%"
v-model=
'ruleForm.estimateCompleteTime'
v-model=
"ruleForm.estimateCompleteTime"
value-format=
'yyyy-MM-dd HH:mm:ss'
value-format=
"yyyy-MM-dd HH:mm:ss"
type=
'datetime'
type=
"datetime"
default-time=
'23:59:59'
default-time=
"23:59:59"
placeholder=
'选择日期'
placeholder=
"选择日期"
:picker-options=
'pickerOptions'
:picker-options=
"pickerOptions"
></el-date-picker>
></el-date-picker>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
<span
slot=
'footer'
>
<span
slot=
"footer"
>
<el-button
<el-button
size=
'small'
size=
"small"
@
click=
'completeVisible = false'
@
click=
"completeVisible = false"
>
取消
</el-button
>
取消
</el-button
>
>
<el-button
<el-button
size=
'small'
size=
"small"
type=
'primary'
type=
"primary"
@
click=
'submitTime'
@
click=
"submitTime"
>
确认
</el-button
>
确认
</el-button
>
>
</span>
</span>
</el-dialog>
</el-dialog>
<!-- 指派 -->
<!-- 指派 -->
<el-dialog
<el-dialog
title=
'验收'
title=
"验收"
:close-on-click-modal=
'false'
:close-on-click-modal=
"false"
:visible
.
sync=
'acceptVisible'
:visible
.
sync=
"acceptVisible"
width=
'800px'
width=
"800px"
>
>
<el-form
<el-form
:inline=
'true'
:inline=
"true"
size=
'mini'
size=
"mini"
:model=
'acceptForm'
:model=
"acceptForm"
ref=
'acceptForm'
ref=
"acceptForm"
:rules=
'acceptFormRules'
:rules=
"acceptFormRules"
label-width=
'110px'
label-width=
"110px"
>
>
<el-form-item
<el-form-item
label=
'验收结果'
label=
"验收结果"
prop=
'acceptanceResult'
prop=
"acceptanceResult"
>
>
<el-radio-group
<el-radio-group
v-model=
'acceptForm.acceptanceResult'
v-model=
"acceptForm.acceptanceResult"
size=
'small'
size=
"small"
style=
'width: 100%'
style=
"width: 100%"
>
>
<el-radio
<el-radio
:label=
'item.value'
:label=
"item.value"
v-for=
'(item, index) in acceptanceResultList'
v-for=
"(item, index) in acceptanceResultList"
:key=
'index'
:key=
"index"
>
{{ item.label }}
>
{{ item.label }}
</el-radio
</el-radio>
>
</el-radio-group>
</el-radio-group>
</el-form-item>
</el-form-item>
<el-form-item
<el-form-item
label=
'验收意见'
label=
"验收意见"
prop=
'acceptanceContent'
prop=
"acceptanceContent"
:rules=
"[
:rules=
"[
{
{
required:
required:
...
@@ -613,46 +718,46 @@
...
@@ -613,46 +718,46 @@
]"
]"
>
>
<el-input
<el-input
type=
'textarea'
type=
"textarea"
:autosize=
'{ minRows: 4 }'
:autosize=
"{ minRows: 4 }"
style=
'width:400px'
style=
"width:400px"
placeholder=
'请输入内容'
placeholder=
"请输入内容"
v-model=
'acceptForm.acceptanceContent'
v-model=
"acceptForm.acceptanceContent"
>
>
</el-input>
</el-input>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
<span
slot=
'footer'
>
<span
slot=
"footer"
>
<el-button
<el-button
size=
'mini'
size=
"mini"
@
click=
'acceptVisible = false'
@
click=
"acceptVisible = false"
>
取消
</el-button
>
取消
</el-button
>
>
<el-button
<el-button
size=
'mini'
size=
"mini"
type=
'primary'
type=
"primary"
@
click=
'submitAccept'
@
click=
"submitAccept"
>
确定
</el-button
>
确定
</el-button
>
>
</span>
</span>
</el-dialog>
</el-dialog>
<!-- 不受理 -->
<!-- 不受理 -->
<el-dialog
<el-dialog
title=
'不受理'
title=
"不受理"
:close-on-click-modal=
'false'
:close-on-click-modal=
"false"
:visible
.
sync=
'pendingVisible'
:visible
.
sync=
"pendingVisible"
width=
'800px'
width=
"800px"
>
>
<el-form
<el-form
:inline=
'true'
:inline=
"true"
size=
'mini'
size=
"mini"
:model=
'pendingForm'
:model=
"pendingForm"
ref=
'pendingForm'
ref=
"pendingForm"
label-width=
'110px'
label-width=
"110px"
>
>
<el-form-item
<el-form-item
label=
'原因'
label=
"原因"
prop=
'closeReason'
prop=
"closeReason"
:rules=
"[
:rules=
"[
{
{
required: true,
required: true,
...
@@ -662,25 +767,25 @@
...
@@ -662,25 +767,25 @@
]"
]"
>
>
<el-input
<el-input
type=
'textarea'
type=
"textarea"
:autosize=
'{ minRows: 4 }'
:autosize=
"{ minRows: 4 }"
style=
'width:400px'
style=
"width:400px"
placeholder=
'请输入'
placeholder=
"请输入"
v-model=
'pendingForm.closeReason'
v-model=
"pendingForm.closeReason"
>
>
</el-input>
</el-input>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
<span
slot=
'footer'
>
<span
slot=
"footer"
>
<el-button
<el-button
size=
'mini'
size=
"mini"
@
click=
'pendingVisible = false'
@
click=
"pendingVisible = false"
>
取消
</el-button
>
取消
</el-button
>
>
<el-button
<el-button
size=
'mini'
size=
"mini"
type=
'primary'
type=
"primary"
@
click=
'submitPending'
@
click=
"submitPending"
>
确定
</el-button
>
确定
</el-button
>
>
</span>
</span>
...
@@ -698,6 +803,7 @@ import {
...
@@ -698,6 +803,7 @@ import {
getOrderTree
,
getOrderTree
,
workConfirmed
,
workConfirmed
,
workAssigned
,
workAssigned
,
reallocate
,
startWorder
,
startWorder
,
archiveWorkOrder
,
archiveWorkOrder
,
completeWorkOrder
,
completeWorkOrder
,
...
@@ -715,6 +821,7 @@ import {
...
@@ -715,6 +821,7 @@ import {
import
{
getSystemUserList
}
from
'@/common/api/system'
import
{
getSystemUserList
}
from
'@/common/api/system'
import
{
mapState
}
from
'vuex'
import
{
mapState
}
from
'vuex'
// import confirmWork from '@/assets/work/confirm.png'
// import confirmWork from '@/assets/work/confirm.png'
import
updatePatorName
from
'@/assets/work/PatorName.png'
import
assignWork
from
'@/assets/work/assign.png'
import
assignWork
from
'@/assets/work/assign.png'
import
startWork
from
'@/assets/work/start.png'
import
startWork
from
'@/assets/work/start.png'
import
archiveWork
from
'@/assets/work/archive.png'
import
archiveWork
from
'@/assets/work/archive.png'
...
@@ -762,6 +869,31 @@ export default {
...
@@ -762,6 +869,31 @@ export default {
return
time
.
getTime
()
<
Date
.
now
()
-
8.64e7
return
time
.
getTime
()
<
Date
.
now
()
-
8.64e7
},
},
},
},
updateForm
:
{},
updateVisible
:
false
,
updateFormRules
:
{
leaders
:
[
{
required
:
true
,
message
:
'请选择负责人'
,
trigger
:
'blur'
,
},
],
fromUser
:
[
{
required
:
true
,
message
:
'请选择参与人'
,
trigger
:
'blur'
,
},
],
acceptanceUserId
:
[
{
required
:
true
,
message
:
'请选择验收人'
,
trigger
:
'blur'
,
},
],
},
assignFormRules
:
{
assignFormRules
:
{
leaders
:
[
leaders
:
[
{
{
...
@@ -890,14 +1022,14 @@ export default {
...
@@ -890,14 +1022,14 @@ export default {
key
:
'title'
,
key
:
'title'
,
minWidth
:
120
,
minWidth
:
120
,
align
:
'left'
,
align
:
'left'
,
render
:
(
item
)
=>
(
render
:
item
=>
(
<
span
style
=
"position: relative;"
>
<
span
style
=
"position: relative;"
>
<
span
>
{
item
.
title
}
<
/span
>
<
span
>
{
item
.
title
}
<
/span
>
{
item
.
sign
===
1
&&
{
item
.
sign
===
1
&&
item
.
orderStatus
===
'PRE_HANDLING'
&&
(
item
.
orderStatus
===
'PRE_HANDLING'
&&
(
<
i
<
i
class
=
'el-icon-info'
class
=
"el-icon-info"
title
=
'待回复'
title
=
"待回复"
><
/i
>
><
/i
>
)}
)}
<
/span
>
<
/span
>
...
@@ -924,27 +1056,27 @@ export default {
...
@@ -924,27 +1056,27 @@ export default {
?
String
(
item
.
priorityStatus
)
?
String
(
item
.
priorityStatus
)
:
''
:
''
return
(
return
(
<
div
class
=
'priorityStatus-select'
>
<
div
class
=
"priorityStatus-select"
>
<
el
-
select
<
el
-
select
v
-
model
=
{
item
.
priorityStatus
}
v
-
model
=
{
item
.
priorityStatus
}
placeholder
=
''
placeholder
=
""
onChange
=
{
v
=>
this
.
setStatus
(
item
,
v
)}
onChange
=
{
v
=>
this
.
setStatus
(
item
,
v
)}
>
>
<
el
-
option
<
el
-
option
label
=
''
label
=
""
value
=
''
value
=
""
><
/el-option
>
><
/el-option
>
<
el
-
option
<
el
-
option
label
=
'低'
label
=
"低"
value
=
'1'
value
=
"1"
><
/el-option
>
><
/el-option
>
<
el
-
option
<
el
-
option
label
=
'中'
label
=
"中"
value
=
'2'
value
=
"2"
><
/el-option
>
><
/el-option
>
<
el
-
option
<
el
-
option
label
=
'高'
label
=
"高"
value
=
'3'
value
=
"3"
><
/el-option
>
><
/el-option
>
<
/el-select
>
<
/el-select
>
<
/div
>
<
/div
>
...
@@ -973,13 +1105,19 @@ export default {
...
@@ -973,13 +1105,19 @@ export default {
{
{
label
:
'负责人'
,
label
:
'负责人'
,
key
:
'leaderNames'
,
key
:
'leaderNames'
,
show
:
!
(
this
.
statusCode
===
'PRE_HANDLING'
||
this
.
statusCode
===
'TO_BE_ASSIGN'
),
show
:
!
(
this
.
statusCode
===
'PRE_HANDLING'
||
this
.
statusCode
===
'TO_BE_ASSIGN'
),
width
:
80
,
width
:
80
,
},
},
{
{
label
:
'参与人'
,
label
:
'参与人'
,
key
:
'participatorName'
,
key
:
'participatorName'
,
show
:
!
(
this
.
statusCode
===
'PRE_HANDLING'
||
this
.
statusCode
===
'TO_BE_ASSIGN'
),
show
:
!
(
this
.
statusCode
===
'PRE_HANDLING'
||
this
.
statusCode
===
'TO_BE_ASSIGN'
),
width
:
80
,
width
:
80
,
},
},
{
{
...
@@ -989,12 +1127,6 @@ export default {
...
@@ -989,12 +1127,6 @@ export default {
width
:
80
,
width
:
80
,
},
},
{
{
label
:
'验收意见'
,
key
:
'acceptanceContent'
,
show
:
this
.
statusCode
===
'ACCEPTANCEING'
,
width
:
80
,
},
{
label
:
'创建时间'
,
label
:
'创建时间'
,
key
:
'createTime'
,
key
:
'createTime'
,
sortable
:
true
,
sortable
:
true
,
...
@@ -1003,7 +1135,10 @@ export default {
...
@@ -1003,7 +1135,10 @@ export default {
{
{
label
:
'开始时间'
,
label
:
'开始时间'
,
key
:
'startTime'
,
key
:
'startTime'
,
show
:
!
(
this
.
statusCode
===
'PRE_HANDLING'
||
this
.
statusCode
===
'TO_BE_ASSIGN'
),
show
:
!
(
this
.
statusCode
===
'PRE_HANDLING'
||
this
.
statusCode
===
'TO_BE_ASSIGN'
),
width
:
130
,
width
:
130
,
},
},
{
{
...
@@ -1014,25 +1149,37 @@ export default {
...
@@ -1014,25 +1149,37 @@ export default {
{
{
label
:
'预计完成时间'
,
label
:
'预计完成时间'
,
key
:
'estimateCompleteTime'
,
key
:
'estimateCompleteTime'
,
show
:
!
(
this
.
statusCode
===
'PRE_HANDLING'
||
this
.
statusCode
===
'TO_BE_ASSIGN'
),
show
:
!
(
this
.
statusCode
===
'PRE_HANDLING'
||
this
.
statusCode
===
'TO_BE_ASSIGN'
),
width
:
130
,
width
:
130
,
},
},
{
{
label
:
'验收时间'
,
label
:
'验收时间'
,
key
:
'acceptanceTime'
,
key
:
'acceptanceTime'
,
show
:
!
(
this
.
statusCode
===
'PRE_HANDLING'
||
this
.
statusCode
===
'TO_BE_ASSIGN'
),
show
:
!
(
this
.
statusCode
===
'PRE_HANDLING'
||
this
.
statusCode
===
'TO_BE_ASSIGN'
),
width
:
130
,
width
:
130
,
},
},
{
{
label
:
'完成时间'
,
label
:
'完成时间'
,
key
:
'completeTime'
,
key
:
'completeTime'
,
show
:
!
(
this
.
statusCode
===
'PRE_HANDLING'
||
this
.
statusCode
===
'TO_BE_ASSIGN'
),
show
:
!
(
this
.
statusCode
===
'PRE_HANDLING'
||
this
.
statusCode
===
'TO_BE_ASSIGN'
),
width
:
130
,
width
:
130
,
},
},
{
{
label
:
'用户评价'
,
label
:
'用户评价'
,
key
:
'evaluations'
,
key
:
'evaluations'
,
show
:
!
(
this
.
statusCode
===
'PRE_HANDLING'
||
this
.
statusCode
===
'TO_BE_ASSIGN'
),
show
:
!
(
this
.
statusCode
===
'PRE_HANDLING'
||
this
.
statusCode
===
'TO_BE_ASSIGN'
),
width
:
140
,
width
:
140
,
},
},
{
{
...
@@ -1043,12 +1190,19 @@ export default {
...
@@ -1043,12 +1190,19 @@ export default {
{
{
label
:
'验收人'
,
label
:
'验收人'
,
key
:
'acceptanceUserName'
,
key
:
'acceptanceUserName'
,
show
:
!
(
this
.
statusCode
===
'PRE_HANDLING'
||
this
.
statusCode
===
'TO_BE_ASSIGN'
||
this
.
statusCode
===
'ACCEPTANCEING'
),
show
:
!
(
this
.
statusCode
===
'PRE_HANDLING'
||
this
.
statusCode
===
'TO_BE_ASSIGN'
||
this
.
statusCode
===
'ACCEPTANCEING'
),
width
:
80
,
width
:
80
,
},
},
{
{
label
:
'验收意见'
,
label
:
'验收意见'
,
show
:
!
(
this
.
statusCode
===
'PRE_HANDLING'
||
this
.
statusCode
===
'TO_BE_ASSIGN'
||
this
.
statusCode
===
'ACCEPTANCEING'
),
show
:
!
(
this
.
statusCode
===
'PRE_HANDLING'
||
this
.
statusCode
===
'TO_BE_ASSIGN'
),
key
:
'acceptanceContent'
,
key
:
'acceptanceContent'
,
width
:
80
,
width
:
80
,
},
},
...
@@ -1072,54 +1226,54 @@ export default {
...
@@ -1072,54 +1226,54 @@ export default {
fixed
:
'right'
,
fixed
:
'right'
,
width
:
120
,
width
:
120
,
align
:
'center'
,
align
:
'center'
,
render
:
(
item
)
=>
(
render
:
item
=>
(
<
span
>
<
span
>
{
{
<
span
<
span
title
=
'详情'
title
=
"详情"
class
=
'icon-view icon-tools-view'
class
=
"icon-view icon-tools-view"
>
>
<
i
<
i
class
=
'el-icon-tickets'
class
=
"el-icon-tickets"
onClick
=
{()
=>
this
.
showDetail
(
item
)}
onClick
=
{()
=>
this
.
showDetail
(
item
)}
><
/i
>
><
/i
>
<
/span
>
<
/span
>
}
}
{
(
item
.
orderStatus
===
'PRE_HANDLING'
)
&&
(
{
item
.
orderStatus
===
'PRE_HANDLING'
&&
(
<
span
title
=
'修改'
class
=
'icon-view'
>
<
span
title
=
"修改"
class
=
"icon-view"
>
<
img
<
img
width
=
'24'
width
=
"24"
height
=
'24'
height
=
"24"
src
=
{
updateWork
}
src
=
{
updateWork
}
onClick
=
{()
=>
this
.
update
(
item
)}
onClick
=
{()
=>
this
.
update
(
item
)}
/
>
/
>
<
/span
>
<
/span
>
)}
)}
{
item
.
orderStatus
===
'TO_BE_ASSIGN'
&&
(
{
item
.
orderStatus
===
'TO_BE_ASSIGN'
&&
(
<
span
title
=
'指派给'
class
=
'icon-view'
>
<
span
title
=
"指派给"
class
=
"icon-view"
>
<
img
<
img
width
=
'24'
width
=
"24"
height
=
'24'
height
=
"24"
src
=
{
assignWork
}
src
=
{
assignWork
}
onClick
=
{()
=>
this
.
showAssign
(
item
)}
onClick
=
{()
=>
this
.
showAssign
(
item
)}
/
>
/
>
<
/span
>
<
/span
>
)}
)}
{
item
.
orderStatus
===
'IN_PROGRESS'
&&
(
{
item
.
orderStatus
===
'IN_PROGRESS'
&&
(
<
span
title
=
'暂停'
class
=
'icon-view'
>
<
span
title
=
"修改参与人"
class
=
"icon-view"
>
<
img
<
img
width
=
'24'
width
=
"24"
height
=
'24'
height
=
"24"
src
=
{
pauseWork
}
src
=
{
updatePatorName
}
onClick
=
{()
=>
this
.
paus
e
(
item
)}
onClick
=
{()
=>
this
.
showUpdat
e
(
item
)}
/
>
/
>
<
/span
>
<
/span
>
)}
)}
{
item
.
orderStatus
===
'PAUSEING'
&&
(
{
item
.
orderStatus
===
'PAUSEING'
&&
(
<
span
title
=
'恢复'
class
=
'icon-view'
>
<
span
title
=
"恢复"
class
=
"icon-view"
>
<
img
<
img
width
=
'24'
width
=
"24"
height
=
'24'
height
=
"24"
src
=
{
resumetWork
}
src
=
{
resumetWork
}
onClick
=
{()
=>
this
.
resume
(
item
)}
onClick
=
{()
=>
this
.
resume
(
item
)}
/
>
/
>
...
@@ -1129,12 +1283,12 @@ export default {
...
@@ -1129,12 +1283,12 @@ export default {
item
.
leaders
&&
item
.
leaders
&&
item
.
leaders
item
.
leaders
.
split
(
','
)
.
split
(
','
)
.
map
(
(
e
)
=>
+
e
)
.
map
(
e
=>
+
e
)
.
includes
(
this
.
userInfo
.
id
)
&&
(
.
includes
(
this
.
userInfo
.
id
)
&&
(
<
span
title
=
"开始"
class
=
"icon-view"
>
<
span
title
=
"开始"
class
=
"icon-view"
>
<
img
<
img
width
=
'24'
width
=
"24"
height
=
'24'
height
=
"24"
src
=
{
startWork
}
src
=
{
startWork
}
onClick
=
{()
=>
onClick
=
{()
=>
this
.
startWorkOrder
(
item
)
this
.
startWorkOrder
(
item
)
...
@@ -1143,41 +1297,42 @@ export default {
...
@@ -1143,41 +1297,42 @@ export default {
<
/span
>
<
/span
>
)}
)}
{
item
.
orderStatus
===
'CLOSED'
&&
(
{
item
.
orderStatus
===
'CLOSED'
&&
(
<
span
title
=
'归档'
class
=
'icon-view'
>
<
span
title
=
"归档"
class
=
"icon-view"
>
<
img
<
img
width
=
'24'
width
=
"24"
height
=
'24'
height
=
"24"
src
=
{
archiveWork
}
src
=
{
archiveWork
}
onClick
=
{()
=>
this
.
archive
(
item
)}
onClick
=
{()
=>
this
.
archive
(
item
)}
/
>
/
>
<
/span
>
<
/span
>
)}
)}
{
item
.
orderStatus
===
'IN_PROGRESS'
&&
(
{
item
.
orderStatus
===
'IN_PROGRESS'
&&
(
<
span
title
=
'处理完成'
class
=
'icon-view'
>
<
span
title
=
"处理完成"
class
=
"icon-view icon-tools-view"
>
<
img
<
img
width
=
'24'
width
=
"24"
height
=
'24'
height
=
"24"
src
=
{
completeWork
}
src
=
{
completeWork
}
onClick
=
{()
=>
this
.
complete
(
item
)}
onClick
=
{()
=>
this
.
complete
(
item
)}
/
>
/
>
<
/span
>
<
/span
>
)}
)}
{
item
.
orderStatus
===
'ACCEPTANCEING'
&&
Number
(
item
.
acceptanceUserId
)
===
{
item
.
orderStatus
===
'ACCEPTANCEING'
&&
Number
(
item
.
acceptanceUserId
)
===
this
.
userInfo
.
id
&&
(
this
.
userInfo
.
id
&&
(
<
span
title
=
'已完成'
class
=
'icon-view'
>
<
span
title
=
"已完成"
class
=
"icon-view"
>
<
img
<
img
width
=
'24'
width
=
"24"
height
=
'24'
height
=
"24"
src
=
{
anceingWork
}
src
=
{
anceingWork
}
onClick
=
{()
=>
this
.
anceing
(
item
)}
onClick
=
{()
=>
this
.
anceing
(
item
)}
/
>
/
>
<
/span
>
<
/span
>
)}
)}
{
item
.
orderStatus
===
'IN_COMPLETE'
&&
(
{
item
.
orderStatus
===
'IN_COMPLETE'
&&
(
<
span
title
=
'关闭'
class
=
'icon-view'
>
<
span
title
=
"关闭"
class
=
"icon-view"
>
<
img
<
img
width
=
'24'
width
=
"24"
height
=
'24'
height
=
"24"
src
=
{
closetWork
}
src
=
{
closetWork
}
onClick
=
{()
=>
this
.
close
(
item
)}
onClick
=
{()
=>
this
.
close
(
item
)}
/
>
/
>
...
@@ -1187,15 +1342,25 @@ export default {
...
@@ -1187,15 +1342,25 @@ export default {
item
.
orderStatus
===
'TO_BE_CONFIRMED'
||
item
.
orderStatus
===
'TO_BE_CONFIRMED'
||
item
.
orderStatus
===
'IN_PROGRESS'
||
item
.
orderStatus
===
'IN_PROGRESS'
||
item
.
orderStatus
===
'IN_COMPLETE'
)
&&
(
item
.
orderStatus
===
'IN_COMPLETE'
)
&&
(
<
span
title
=
'驳回'
class
=
'icon-view'
>
<
span
title
=
"驳回"
class
=
"icon-view"
>
<
img
<
img
width
=
'24'
width
=
"24"
height
=
'24'
height
=
"24"
src
=
{
rejectWork
}
src
=
{
rejectWork
}
onClick
=
{()
=>
this
.
reject
(
item
)}
onClick
=
{()
=>
this
.
reject
(
item
)}
/
>
/
>
<
/span
>
<
/span
>
)}
)}
{
item
.
orderStatus
===
'IN_PROGRESS'
&&
(
<
span
title
=
"暂停"
class
=
"icon-view"
>
<
img
width
=
"24"
height
=
"24"
src
=
{
pauseWork
}
onClick
=
{()
=>
this
.
pause
(
item
)}
/
>
<
/span
>
)}
<
/span
>
<
/span
>
),
),
},
},
...
@@ -1216,10 +1381,7 @@ export default {
...
@@ -1216,10 +1381,7 @@ export default {
设置优先级
设置优先级
*/
*/
setStatus
(
data
,
i
)
{
setStatus
(
data
,
i
)
{
const
{
const
{
id
,
priorityStatus
}
=
data
id
,
priorityStatus
,
}
=
data
axios
axios
.
post
(
'platform/platformWorkOrder/updatePriority'
,
{
.
post
(
'platform/platformWorkOrder/updatePriority'
,
{
id
,
id
,
...
@@ -1250,7 +1412,7 @@ export default {
...
@@ -1250,7 +1412,7 @@ export default {
this
.
$refs
.
editForm
.
resetFields
()
this
.
$refs
.
editForm
.
resetFields
()
},
},
update
(
v
)
{
update
(
v
)
{
getInfo
(
v
.
id
).
then
(
(
res
)
=>
{
getInfo
(
v
.
id
).
then
(
res
=>
{
if
(
res
.
code
===
200
)
{
if
(
res
.
code
===
200
)
{
this
.
editForm
=
JSON
.
parse
(
this
.
editForm
=
JSON
.
parse
(
JSON
.
stringify
(
res
.
data
),
JSON
.
stringify
(
res
.
data
),
...
@@ -1274,11 +1436,7 @@ export default {
...
@@ -1274,11 +1436,7 @@ export default {
this
.
getlist
()
this
.
getlist
()
this
.
getOrderTree
()
this
.
getOrderTree
()
},
},
cellClassName
({
cellClassName
({
row
,
columnIndex
,
column
})
{
row
,
columnIndex
,
column
,
})
{
if
(
if
(
(
row
.
orderStatus
===
'TO_BE_ASSIGN'
||
(
row
.
orderStatus
===
'TO_BE_ASSIGN'
||
row
.
orderStatus
===
'TO_BE_CONFIRMED'
||
row
.
orderStatus
===
'TO_BE_CONFIRMED'
||
...
@@ -1305,10 +1463,7 @@ export default {
...
@@ -1305,10 +1463,7 @@ export default {
return
'order-grey'
return
'order-grey'
}
}
},
},
cellStyle
({
cellStyle
({
row
,
column
})
{
row
,
column
,
})
{
if
(
if
(
(
row
.
orderStatus
===
'PRE_HANDLING'
||
(
row
.
orderStatus
===
'PRE_HANDLING'
||
row
.
orderStatus
===
'TO_BE_ASSIGN'
||
row
.
orderStatus
===
'TO_BE_ASSIGN'
||
...
@@ -1393,6 +1548,26 @@ export default {
...
@@ -1393,6 +1548,26 @@ export default {
window
.
open
(
uri
)
window
.
open
(
uri
)
}
}
},
},
// 修改参与人
showUpdate
(
data
)
{
const
{
id
,
leaders
,
participator
,
acceptanceUserId
,
}
=
data
this
.
updateForm
=
{
id
,
leaders
:
Number
(
leaders
),
participator
:
participator
?
participator
.
split
(
','
)
.
map
(
item
=>
Number
(
item
))
:
''
,
acceptanceUserId
,
}
this
.
updateVisible
=
true
},
showAssign
(
item
)
{
showAssign
(
item
)
{
this
.
currentRowId
=
item
.
id
this
.
currentRowId
=
item
.
id
this
.
taskLeader
=
''
this
.
taskLeader
=
''
...
@@ -1433,8 +1608,7 @@ export default {
...
@@ -1433,8 +1608,7 @@ export default {
this
.
getlist
()
this
.
getlist
()
}
}
})
})
}
catch
(
error
)
{
}
catch
(
error
)
{}
}
}
}
})
})
},
},
...
@@ -1461,7 +1635,28 @@ export default {
...
@@ -1461,7 +1635,28 @@ export default {
this
.
getlist
()
this
.
getlist
()
}
}
})
})
}
catch
(
error
)
{
}
catch
(
error
)
{}
}
})
},
submitUpdate
()
{
this
.
$refs
.
updateForm
.
validate
(
v
=>
{
if
(
v
)
{
try
{
reallocate
({
...
this
.
updateForm
,
participator
:
this
.
updateForm
.
participator
.
join
(
','
,
),
}).
then
(
res
=>
{
if
(
res
.
code
===
200
)
{
this
.
updateVisible
=
false
this
.
getOrderTree
()
this
.
getlist
()
}
})
}
catch
(
e
)
{
console
.
error
(
e
)
}
}
}
}
})
})
...
@@ -1509,8 +1704,10 @@ export default {
...
@@ -1509,8 +1704,10 @@ export default {
},
},
async
getlist
()
{
async
getlist
()
{
this
.
loading
=
true
this
.
loading
=
true
const
{
pageSize
,
currentPage
}
=
const
{
this
.
centerPageOptions
pageSize
,
currentPage
,
}
=
this
.
centerPageOptions
axios
axios
.
post
(
'platform/platformWorkOrder/list_page'
,
{
.
post
(
'platform/platformWorkOrder/list_page'
,
{
pageSize
,
pageSize
,
...
@@ -1519,9 +1716,14 @@ export default {
...
@@ -1519,9 +1716,14 @@ export default {
startTime
:
this
.
periodTime
&&
this
.
periodTime
[
0
],
startTime
:
this
.
periodTime
&&
this
.
periodTime
[
0
],
endTime
:
this
.
periodTime
&&
this
.
periodTime
[
1
],
endTime
:
this
.
periodTime
&&
this
.
periodTime
[
1
],
...
this
.
searchForm
,
...
this
.
searchForm
,
leaderAndParticipator
:
this
.
searchForm
.
leaderAndParticipator
?
this
.
searchForm
.
leaderAndParticipator
.
join
(
','
)
:
''
,
leaderAndParticipator
:
this
.
searchForm
.
leaderAndParticipator
?
this
.
searchForm
.
leaderAndParticipator
.
join
(
','
,
)
:
''
,
})
})
.
then
(
(
res
)
=>
{
.
then
(
res
=>
{
if
(
res
.
code
!==
200
)
return
if
(
res
.
code
!==
200
)
return
this
.
sourceData
=
res
.
data
.
records
this
.
sourceData
=
res
.
data
.
records
this
.
centerPageOptions
.
total
=
res
.
data
.
total
this
.
centerPageOptions
.
total
=
res
.
data
.
total
...
@@ -1595,8 +1797,7 @@ export default {
...
@@ -1595,8 +1797,7 @@ export default {
})
})
}
}
})
})
}
catch
{
}
catch
{}
}
},
},
async
resume
(
v
)
{
async
resume
(
v
)
{
try
{
try
{
...
@@ -1629,7 +1830,7 @@ export default {
...
@@ -1629,7 +1830,7 @@ export default {
cancelButtonText
:
'取消'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
,
type
:
'warning'
,
}).
then
(()
=>
{
}).
then
(()
=>
{
reject
(
v
.
id
).
then
(
(
res
)
=>
{
reject
(
v
.
id
).
then
(
res
=>
{
if
(
res
.
code
===
200
)
{
if
(
res
.
code
===
200
)
{
this
.
$message
.
success
(
'已驳回'
)
this
.
$message
.
success
(
'已驳回'
)
this
.
getlist
()
this
.
getlist
()
...
@@ -1637,11 +1838,10 @@ export default {
...
@@ -1637,11 +1838,10 @@ export default {
}
}
})
})
})
})
}
catch
{
}
catch
{}
}
},
},
async
submitTime
()
{
async
submitTime
()
{
this
.
$refs
.
ruleForm
.
validate
(
(
valid
)
=>
{
this
.
$refs
.
ruleForm
.
validate
(
valid
=>
{
if
(
valid
)
{
if
(
valid
)
{
startWorder
(
startWorder
(
this
.
rowId
,
this
.
rowId
,
...
@@ -1690,18 +1890,27 @@ export default {
...
@@ -1690,18 +1890,27 @@ export default {
document
.
documentElement
.
style
.
overflowY
=
'auto'
document
.
documentElement
.
style
.
overflowY
=
'auto'
},
},
hanldeImage
(
event
)
{
hanldeImage
(
event
)
{
if
(
event
.
target
.
nodeName
===
'IMG'
||
event
.
target
.
nodeName
===
'img'
)
{
if
(
this
.
imgPreviewUrl
=
decodeURIComponent
(
event
.
target
.
currentSrc
)
event
.
target
.
nodeName
===
'IMG'
||
const
subscript
=
this
.
imgList
.
indexOf
(
this
.
imgPreviewUrl
)
event
.
target
.
nodeName
===
'img'
)
{
this
.
imgPreviewUrl
=
decodeURIComponent
(
event
.
target
.
currentSrc
,
)
const
subscript
=
this
.
imgList
.
indexOf
(
this
.
imgPreviewUrl
,
)
this
.
subscript
=
subscript
>
-
1
?
subscript
:
0
this
.
subscript
=
subscript
>
-
1
?
subscript
:
0
document
.
documentElement
.
style
.
overflowY
=
'hidden'
document
.
documentElement
.
style
.
overflowY
=
'hidden'
}
}
},
},
saveRemark
()
{
saveRemark
()
{
axios
.
post
(
'platform/platformWorkOrder/updateRemark'
,
{
axios
.
post
(
'platform/platformWorkOrder/updateRemark'
,
{
id
:
this
.
currentRowId
,
id
:
this
.
currentRowId
,
remark
:
this
.
detail
.
remark
,
remark
:
this
.
detail
.
remark
,
}).
then
(
res
=>
{
})
.
then
(
res
=>
{
if
(
res
.
code
===
200
)
{
if
(
res
.
code
===
200
)
{
this
.
$message
.
success
(
'保存成功'
)
this
.
$message
.
success
(
'保存成功'
)
}
}
...
@@ -1709,12 +1918,17 @@ export default {
...
@@ -1709,12 +1918,17 @@ export default {
},
},
async
showDetail
(
item
)
{
async
showDetail
(
item
)
{
this
.
currentRowId
=
item
.
id
this
.
currentRowId
=
item
.
id
await
axios
.
get
(
`platform/platformWorkOrder/get?id=
${
item
.
id
}
`
,
await
axios
).
then
(
res
=>
{
.
get
(
`platform/platformWorkOrder/get?id=
${
item
.
id
}
`
)
.
then
(
res
=>
{
if
(
res
.
code
===
200
)
{
if
(
res
.
code
===
200
)
{
this
.
detail
=
res
.
data
this
.
detail
=
res
.
data
this
.
imgList
=
Object
.
values
(
this
.
getimgsrc
(
this
.
detail
.
content
))
this
.
imgList
=
Object
.
values
(
const
subscript
=
this
.
imgList
.
indexOf
(
this
.
imgPreviewUrl
)
this
.
getimgsrc
(
this
.
detail
.
content
),
)
const
subscript
=
this
.
imgList
.
indexOf
(
this
.
imgPreviewUrl
,
)
this
.
subscript
=
subscript
>
-
1
?
subscript
:
0
this
.
subscript
=
subscript
>
-
1
?
subscript
:
0
}
else
{
}
else
{
this
.
detailLoading
=
false
this
.
detailLoading
=
false
...
@@ -1724,7 +1938,7 @@ export default {
...
@@ -1724,7 +1938,7 @@ export default {
.
get
(
.
get
(
`platform/platformWorkOrderChat/getByWorkOrder?workOrderId=
${
item
.
id
}
`
,
`platform/platformWorkOrderChat/getByWorkOrder?workOrderId=
${
item
.
id
}
`
,
)
)
.
then
(
(
res
)
=>
{
.
then
(
res
=>
{
if
(
res
.
code
===
200
)
{
if
(
res
.
code
===
200
)
{
this
.
chatRecord
=
res
.
data
this
.
chatRecord
=
res
.
data
}
else
{
}
else
{
...
@@ -1734,8 +1948,7 @@ export default {
...
@@ -1734,8 +1948,7 @@ export default {
this
.
detailVisible
=
true
this
.
detailVisible
=
true
this
.
textarea
=
''
this
.
textarea
=
''
},
},
}
},
,
}
}
</
script
>
</
script
>
<
style
lang=
'scss'
scoped
>
<
style
lang=
'scss'
scoped
>
...
@@ -1836,7 +2049,7 @@ export default {
...
@@ -1836,7 +2049,7 @@ export default {
margin-left
:
10px
;
margin-left
:
10px
;
}
}
.search_form
>
>
>
.el-form-item
{
.search_form
>
.el-form-item
{
margin-bottom
:
5px
;
margin-bottom
:
5px
;
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment