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
2a0cddf3
Commit
2a0cddf3
authored
Feb 22, 2023
by
qinjianhui
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 工单管理
parent
2b69bb65
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
290 additions
and
396 deletions
+290
-396
.prettierrc
+1
-1
package-lock.json
+52
-50
src/common/api/order.js
+5
-0
src/common/style/index.scss
+54
-2
src/main.js
+2
-0
src/utils/directives/enter-submit.js
+26
-0
src/utils/directives/index.js
+7
-0
src/views/taskManage/index.vue
+143
-343
No files found.
.prettierrc
View file @
2a0cddf3
{
"tabWidth": 2,
"singleQuote": true,
"printWidth": 80,
"printWidth":
1
80,
"semi": false,
"trailingComma": "none",
"bracketSpacing": true,
...
...
package-lock.json
View file @
2a0cddf3
...
...
@@ -2012,6 +2012,49 @@
"webpack-merge"
:
"^5.7.3"
,
"webpack-virtual-modules"
:
"^0.4.2"
,
"whatwg-fetch"
:
"^3.6.2"
},
"dependencies"
:
{
"@vue/vue-loader-v15"
:
{
"version"
:
"npm:vue-loader@15.10.1"
,
"resolved"
:
"https://registry.npmmirror.com/vue-loader/-/vue-loader-15.10.1.tgz"
,
"integrity"
:
"sha512-SaPHK1A01VrNthlix6h1hq4uJu7S/z0kdLUb6klubo738NeQoLbS6V9/d8Pv19tU0XdQKju3D1HSKuI8wJ5wMA=="
,
"dev"
:
true
,
"requires"
:
{
"@vue/component-compiler-utils"
:
"^3.1.0"
,
"hash-sum"
:
"^1.0.2"
,
"loader-utils"
:
"^1.1.0"
,
"vue-hot-reload-api"
:
"^2.3.0"
,
"vue-style-loader"
:
"^4.1.0"
},
"dependencies"
:
{
"hash-sum"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmmirror.com/hash-sum/-/hash-sum-1.0.2.tgz"
,
"integrity"
:
"sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA=="
,
"dev"
:
true
}
}
},
"json5"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmmirror.com/json5/-/json5-1.0.2.tgz"
,
"integrity"
:
"sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA=="
,
"dev"
:
true
,
"requires"
:
{
"minimist"
:
"^1.2.0"
}
},
"loader-utils"
:
{
"version"
:
"1.4.2"
,
"resolved"
:
"https://registry.npmmirror.com/loader-utils/-/loader-utils-1.4.2.tgz"
,
"integrity"
:
"sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg=="
,
"dev"
:
true
,
"requires"
:
{
"big.js"
:
"^5.2.2"
,
"emojis-list"
:
"^3.0.0"
,
"json5"
:
"^1.0.1"
}
}
}
},
"@vue/cli-shared-utils"
:
{
...
...
@@ -2172,47 +2215,6 @@
"eslint-import-resolver-webpack"
:
"^0.13.1"
}
},
"@vue/vue-loader-v15"
:
{
"version"
:
"npm:vue-loader@15.10.0"
,
"resolved"
:
"https://registry.npmmirror.com/vue-loader/-/vue-loader-15.10.0.tgz"
,
"integrity"
:
"sha512-VU6tuO8eKajrFeBzMssFUP9SvakEeeSi1BxdTH5o3+1yUyrldp8IERkSdXlMI2t4kxF2sqYUDsQY+WJBxzBmZg=="
,
"dev"
:
true
,
"requires"
:
{
"@vue/component-compiler-utils"
:
"^3.1.0"
,
"hash-sum"
:
"^1.0.2"
,
"loader-utils"
:
"^1.1.0"
,
"vue-hot-reload-api"
:
"^2.3.0"
,
"vue-style-loader"
:
"^4.1.0"
},
"dependencies"
:
{
"hash-sum"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmmirror.com/hash-sum/-/hash-sum-1.0.2.tgz"
,
"integrity"
:
"sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA=="
,
"dev"
:
true
},
"json5"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmmirror.com/json5/-/json5-1.0.1.tgz"
,
"integrity"
:
"sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow=="
,
"dev"
:
true
,
"requires"
:
{
"minimist"
:
"^1.2.0"
}
},
"loader-utils"
:
{
"version"
:
"1.4.0"
,
"resolved"
:
"https://registry.npmmirror.com/loader-utils/-/loader-utils-1.4.0.tgz"
,
"integrity"
:
"sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA=="
,
"dev"
:
true
,
"requires"
:
{
"big.js"
:
"^5.2.2"
,
"emojis-list"
:
"^3.0.0"
,
"json5"
:
"^1.0.1"
}
}
}
},
"@vue/web-component-wrapper"
:
{
"version"
:
"1.3.0"
,
"resolved"
:
"https://registry.npmmirror.com/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz"
,
...
...
@@ -2670,7 +2672,7 @@
},
"async-validator"
:
{
"version"
:
"1.8.5"
,
"resolved"
:
"https://registry.npm
mirror.com
/async-validator/-/async-validator-1.8.5.tgz"
,
"resolved"
:
"https://registry.npm
js.org
/async-validator/-/async-validator-1.8.5.tgz"
,
"integrity"
:
"sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA=="
,
"requires"
:
{
"babel-runtime"
:
"6.x"
...
...
@@ -2713,7 +2715,7 @@
},
"babel-helper-vue-jsx-merge-props"
:
{
"version"
:
"2.0.3"
,
"resolved"
:
"https://registry.npm
mirror.com
/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz"
,
"resolved"
:
"https://registry.npm
js.org
/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz"
,
"integrity"
:
"sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg=="
},
"babel-loader"
:
{
...
...
@@ -2769,7 +2771,7 @@
},
"babel-runtime"
:
{
"version"
:
"6.26.0"
,
"resolved"
:
"https://registry.npm
mirror.com
/babel-runtime/-/babel-runtime-6.26.0.tgz"
,
"resolved"
:
"https://registry.npm
js.org
/babel-runtime/-/babel-runtime-6.26.0.tgz"
,
"integrity"
:
"sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g=="
,
"requires"
:
{
"core-js"
:
"^2.4.0"
,
...
...
@@ -2778,12 +2780,12 @@
"dependencies"
:
{
"core-js"
:
{
"version"
:
"2.6.12"
,
"resolved"
:
"https://registry.npm
mirror.com
/core-js/-/core-js-2.6.12.tgz"
,
"resolved"
:
"https://registry.npm
js.org
/core-js/-/core-js-2.6.12.tgz"
,
"integrity"
:
"sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ=="
},
"regenerator-runtime"
:
{
"version"
:
"0.11.1"
,
"resolved"
:
"https://registry.npm
mirror.com
/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz"
,
"resolved"
:
"https://registry.npm
js.org
/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz"
,
"integrity"
:
"sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
}
}
...
...
@@ -3923,7 +3925,7 @@
},
"element-ui"
:
{
"version"
:
"2.15.10"
,
"resolved"
:
"https://registry.npm
mirror.com
/element-ui/-/element-ui-2.15.10.tgz"
,
"resolved"
:
"https://registry.npm
js.org
/element-ui/-/element-ui-2.15.10.tgz"
,
"integrity"
:
"sha512-jmD++mU2wKXbisvx4fxOl2mHaU+HWHTAq/3Wf8x9Bwyu4GdDZPLABb+CGi3DWN6fPqdgRcd74aX39DO+YHObLw=="
,
"requires"
:
{
"async-validator"
:
"~1.8.1"
,
...
...
@@ -6661,7 +6663,7 @@
},
"normalize-wheel"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npm
mirror.com
/normalize-wheel/-/normalize-wheel-1.0.1.tgz"
,
"resolved"
:
"https://registry.npm
js.org
/normalize-wheel/-/normalize-wheel-1.0.1.tgz"
,
"integrity"
:
"sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA=="
},
"npm-run-path"
:
{
...
...
@@ -7722,7 +7724,7 @@
},
"resize-observer-polyfill"
:
{
"version"
:
"1.5.1"
,
"resolved"
:
"https://registry.npm
mirror.com
/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz"
,
"resolved"
:
"https://registry.npm
js.org
/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz"
,
"integrity"
:
"sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
},
"resolve"
:
{
...
...
@@ -8544,7 +8546,7 @@
},
"throttle-debounce"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npm
mirror.com
/throttle-debounce/-/throttle-debounce-1.1.0.tgz"
,
"resolved"
:
"https://registry.npm
js.org
/throttle-debounce/-/throttle-debounce-1.1.0.tgz"
,
"integrity"
:
"sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg=="
},
"thunky"
:
{
...
...
src/common/api/order.js
0 → 100644
View file @
2a0cddf3
import
axios
from
'./axios'
export
function
getOrderTree
()
{
return
axios
.
get
(
'platform/platformWorkOrder/saas/findStateGroupList'
)
}
src/common/style/index.scss
View file @
2a0cddf3
...
...
@@ -66,6 +66,10 @@
padding-top
:
5px
;
padding-bottom
:
5px
;
}
.el-form-item--mini.el-form-item
{
margin-bottom
:
10px
;
}
.icon-view
{
font-size
:
18px
;
cursor
:
pointer
;
...
...
@@ -73,4 +77,53 @@
}
.icon-view
+
.icon-view
{
margin-left
:
10px
;
}
\ No newline at end of file
}
.icon-view
{
width
:
23px
;
height
:
23px
;
font-size
:
16px
;
line-height
:
23px
;
border-radius
:
4px
;
text-align
:
center
;
display
:
inline-block
;
color
:
#fff
;
cursor
:
pointer
;
vertical-align
:
middle
;
}
.icon-view
:not
(
:first-child
)
{
margin-left
:
5px
;
}
.icon-edit-view
{
background-color
:
#ff9900
;
}
.icon-edit-view
:hover
{
background-color
:
#ffd36a
;
}
.icon-del-view
{
background-color
:
#f56c6c
;
}
.icon-del-view
:hover
{
background-color
:
#f78989
;
}
.icon-tools-view
{
background-color
:
#8cc34b
;
}
.icon-tools-view
:hover
{
background-color
:
#85ce61
;
}
.icon-primary-view
{
background-color
:
#4168FF
;
}
.icon-primary-view
:hover
{
background-color
:
#66b1ff
;
}
src/main.js
View file @
2a0cddf3
...
...
@@ -5,9 +5,11 @@ import store from './store'
import
element
from
'@/common/components/element-ui.js'
import
vxeTable
from
'@/common/components/vxeTable.js'
import
'./common/style/index.scss'
import
Directives
from
'./utils/directives'
// import { getToken } from '@/utils/auth'
Vue
.
config
.
productionTip
=
false
Vue
.
use
(
Directives
)
Vue
.
use
(
element
)
Vue
.
use
(
vxeTable
)
...
...
src/utils/directives/enter-submit.js
0 → 100644
View file @
2a0cddf3
/**
* @type {import("vue/types/options").DirectiveOptions}
*/
const
enterSubmit
=
{
inserted
:
(
el
,
binding
)
=>
{
el
.
_enterSubmitFn
=
(
e
)
=>
{
if
(
e
.
key
!==
'Enter'
)
return
if
(
typeof
binding
.
value
===
'function'
)
{
setTimeout
(()
=>
{
binding
.
value
()
},
100
)
}
}
el
.
addEventListener
(
'keydown'
,
el
.
_enterSubmitFn
,
true
)
},
unbind
:
(
el
)
=>
{
el
.
removeEventListener
(
'keydown'
,
el
.
_enterSubmitFn
,
true
,
)
},
}
export
default
enterSubmit
src/utils/directives/index.js
0 → 100644
View file @
2a0cddf3
import
enterSubmit
from
'./enter-submit'
export
default
{
install
(
Vue
)
{
Vue
.
directive
(
'enter-submit'
,
enterSubmit
)
},
}
src/views/taskManage/index.vue
View file @
2a0cddf3
...
...
@@ -12,8 +12,10 @@
:data=
"treeData"
:props=
"defaultProps"
highlight-current
:node-key=
"'continentCode'"
current-node-key=
""
:node-key=
"'statusCode'"
:expand-on-click-node=
"false"
current-node-key=
"PRE_HANDLING"
default-expand-all
@
node-click=
"handleNodeClick"
>
<span
...
...
@@ -103,16 +105,53 @@
查询
</el-button>
</el-form-item>
<!--
<el-form-item
label
>
<el-form-item
v-if=
"statusCode === 'PRE_HANDLING'"
>
<el-button
type=
"primary"
size=
"mini"
>
确认
</el-button
>
</el-form-item>
<el-form-item
v-if=
"statusCode === 'TO_BE_CONFIRMED'"
>
<el-button
type=
"success"
size=
"mini"
>
开始
</el-button
>
</el-form-item>
<el-form-item
v-if=
"statusCode === 'IN_PROGRESS'"
>
<el-button
type=
"success"
size=
"mini"
>
关闭
</el-button
>
</el-form-item>
<el-form-item
v-if=
"statusCode === 'TO_BE_ASSIGN'"
>
<el-button
type=
"success"
size=
"mini"
@
click=
"showAssign"
>
指派给
</el-button>
</el-form-item>
<el-form-item
v-if=
"statusCode === 'PRE_HANDLING'"
>
<el-button
type=
"primary"
size=
"mini"
>
评价
</el-button
>
</el-form-item>
<!--
<el-form-item>
<el-button
type=
"danger"
size=
"mini"
>
作废
</el-button
>
</el-form-item>
-->
<!--
<el-form-item>
<el-button
type=
"danger"
size=
"mini"
>
删除
</el-button
>
</el-form-item>
-->
<el-form-item
v-if=
"statusCode !== 'PRE_HANDLING'"
>
<el-button
@
click=
"showEdit()"
type=
"success"
type=
"warning"
size=
"mini"
@
click=
"rejectTask"
>
驳回
</el-button
>
</el-form-item>
<!--
<el-form-item>
<el-button
type=
"primary"
size=
"mini"
>
关闭
</el-button
>
新增
</el-button>
</el-form-item>
-->
<el-form-item
label
v-if=
"statusCode === '
8
'"
>
<el-form-item
label
v-if=
"statusCode === '
CLOSED
'"
>
<el-button
@
click=
"archive()"
type=
"success"
...
...
@@ -122,10 +161,11 @@
</el-button>
</el-form-item>
</el-form>
<div
class=
"table-wrap"
>
<div
class=
"table-wrap"
v-loading=
"loading"
>
<table-view
:tableColumns=
"tableColumns"
:sourceData=
"sourceData"
selection
:selectionChange=
"selectionChange"
></table-view>
</div>
...
...
@@ -195,9 +235,7 @@
style=
"padding: 5px; overflow: auto"
v-html=
"detail.taskContent"
@
click=
"fullScreenDisplay"
>
这里有一段描述
</div>
></div>
<div
style=
"margin-top: 10px"
>
<div>
<el-input
...
...
@@ -467,6 +505,7 @@
width=
"300px"
>
<el-cascader
style=
"width: 100%"
size=
"small"
v-model=
"taskLeader"
:props=
"
{ emitPath: false, multiple: true }"
...
...
@@ -474,10 +513,15 @@
:show-all-levels="false"
>
</el-cascader>
<span
slot=
"footer"
>
<el-button
@
click=
"assignVisible = false"
<el-button
size=
"mini"
@
click=
"assignVisible = false"
>
取消
</el-button
>
<el-button
type=
"primary"
@
click=
"submitAssign"
<el-button
size=
"mini"
type=
"primary"
@
click=
"submitAssign"
>
确定
</el-button
>
</span>
...
...
@@ -486,16 +530,15 @@
</
template
>
<
script
>
import
axios
from
'../../common/api/axios'
import
{
emptyArray
,
getIds
}
from
'../../utils/commonUtil'
import
tableView
from
'@/common/components/base/tableView.vue'
import
ChooseTimePeriod
from
'../../components/base/chooseTimePeriod.vue'
import
pagination
from
'../../mixins/pagination'
import
Edit
from
'./edit.vue'
import
axios
from
'../../common/api/axios'
import
{
getOrderTree
}
from
'@/common/api/order'
import
{
emptyArray
,
getIds
}
from
'../../utils/commonUtil'
import
{
mapState
}
from
'vuex'
import
ChooseTimePeriod
from
'../../components/base/chooseTimePeriod.vue'
/* 工单管理 */
import
tableView
from
'@/common/components/base/tableView.vue'
export
default
{
name
:
'task_center'
,
mixins
:
[
pagination
],
...
...
@@ -512,11 +555,13 @@ export default {
}
return
{
loading
:
false
,
pickerOption
:
{
disabledDate
:
(
time
)
=>
{
return
time
.
getTime
()
<
Date
.
now
()
-
8.64e7
},
},
textarea
:
''
,
centerPageOptions
:
{
pageSize
:
100
,
currentPage
:
1
,
...
...
@@ -604,59 +649,15 @@ export default {
}
},
mounted
()
{
const
arr
=
[
{
statusCode
:
'all'
,
statusName
:
'全部'
,
quantity
:
35
,
children
:
null
,
},
{
statusCode
:
'preprocessing'
,
statusName
:
'预处理'
,
quantity
:
27
,
children
:
null
,
},
{
statusCode
:
'to_be_dispatched'
,
statusName
:
'待分派'
,
quantity
:
3
,
children
:
null
,
},
{
statusCode
:
'to_be_confirmed'
,
statusName
:
'待确认'
,
quantity
:
0
,
children
:
null
,
},
{
statusCode
:
'processing'
,
statusName
:
'处理中'
,
quantity
:
0
,
children
:
null
,
},
{
statusCode
:
'pending_feedback'
,
statusName
:
'待反馈'
,
quantity
:
0
,
children
:
null
,
},
{
statusCode
:
'closed'
,
statusName
:
'已关闭'
,
quantity
:
0
,
children
:
null
,
},
]
this
.
treeData
=
arr
this
.
getOrderTree
()
this
.
getlist
()
},
computed
:
{
...
mapState
([
'deptStaff'
]),
tableColumns
()
{
const
employeeId
=
this
.
employeeId
//
const employeeId = this.employeeId
return
[
{
label
:
'工单编号'
,
key
:
'
taskNumber
'
,
width
:
90
},
{
label
:
'工单编号'
,
key
:
'
orderNo
'
,
width
:
90
},
{
label
:
'工单模块'
,
key
:
'taskModuleName'
,
...
...
@@ -665,53 +666,41 @@ export default {
},
{
label
:
'工单类型'
,
key
:
'type'
,
width
:
60
,
render
:
(
item
)
=>
item
.
taskType
?.
desc
,
key
:
'orderTypeTxt'
,
width
:
80
,
},
{
label
:
'工单标题'
,
key
:
't
askT
itle'
,
w
idth
:
120
,
key
:
'title'
,
minW
idth
:
120
,
align
:
'left'
,
},
{
label
:
'负责人'
,
key
:
'taskLeaderName'
,
width
:
65
,
width
:
80
,
},
{
label
:
'执行人'
,
key
:
'taskCompleteUserName'
,
width
:
65
,
width
:
80
,
},
{
label
:
'验收人'
,
key
:
'taskAcceptanceUserName'
,
width
:
65
,
width
:
80
,
},
{
label
:
'抄送人'
,
key
:
'ccName'
,
width
:
80
},
{
label
:
'创建人'
,
key
:
'taskCreatorName'
,
width
:
65
,
width
:
80
,
},
{
label
:
'工单状态'
,
key
:
'taskStatus'
,
width
:
60
,
render
:
(
item
)
=>
(
<
span
style
=
{{
color
:
this
.
getStatusColor
(
item
?.
taskStatus
?.
name
,
),
}}
>
{
item
?.
taskStatus
?.
desc
}
<
/span
>
),
key
:
'orderStatusTxt'
,
width
:
80
,
},
{
...
...
@@ -722,7 +711,7 @@ export default {
{
label
:
'操作'
,
fixed
:
'right'
,
width
:
1
35
,
width
:
1
00
,
align
:
'left'
,
render
:
(
item
)
=>
(
<
span
>
...
...
@@ -735,241 +724,19 @@ export default {
onClick
=
{()
=>
this
.
showDetail
(
item
)}
><
/i
>
<
/span
>
{
this
.
statusCode
!==
'-1'
&&
employeeId
===
item
.
taskCreator
&&
item
?.
taskStatus
?.
name
===
'NOT_YET_ASSIGNED'
&&
item
.
reasonForReject
&&
(
<
span
title
=
"作废"
class
=
"icon-view icon-del-view"
style
=
"text-align:center;"
onClick
=
{()
=>
this
.
invalid
(
item
)}
>
<
svg
t
=
"1635313137975"
style
=
"margin-left:3px;margin-top:3px"
viewBox
=
"0 0 1024 1024"
version
=
"1.1"
xmlns
=
"http://www.w3.org/2000/svg"
p
-
id
=
"4954"
width
=
"18"
height
=
"18"
>
<
path
d
=
"M526.5 385.2c-17.6 0-32-14.3-32-31.9L493.9 63c0-12.8 7.6-24.4 19.4-29.5 11.8-5.1 25.4-2.6 34.7 6.2l305 290.2c9.5 9 12.5 22.9 7.7 35.1-4.9 12.2-16.6 20.1-29.7 20.1l-304.5 0.1z m31.6-247.6l0.4 183.6 192.5-0.1-192.9-183.5z"
fill
=
"#ffffff"
p
-
id
=
"4955"
><
/path
>
<
path
d
=
"M799.2 353.9v469.3c0 27.9-11 54.2-30.9 74.1s-46.2 30.9-74.1 30.9H200.3c-27.9 0-54.2-11-74.1-30.9s-30.9-46.2-30.9-74.1V200.3c0-27.9 11-54.2 30.9-74.1 19.9-19.9 46.2-30.9 74.1-30.9h322.1v-64H200.3c-93.2 0-169 75.8-169 169v622.9c0 93.2 75.8 169 169 169h493.9c93.2 0 169-75.8 169-169V353.9h-64z"
fill
=
"#ffffff"
p
-
id
=
"4956"
><
/path
>
<
path
d
=
"M624 497.1L314.9 806.2c-12.6 12.6-33.3 12.6-46 0-12.6-12.6-12.6-33.3 0-46L578 451.1c12.6-12.6 33.3-12.6 46 0 12.7 12.7 12.7 33.3 0 46z"
fill
=
"#ffffff"
p
-
id
=
"4957"
><
/path
>
<
path
d
=
"M267 490.2l317 317c12.6 12.6 33.3 12.6 46 0 12.6-12.6 12.6-33.3 0-46l-317-317c-12.6-12.6-33.3-12.6-46 0-12.6 12.7-12.6 33.4 0 46z"
fill
=
"#ffffff"
p
-
id
=
"4958"
><
/path
>
<
/svg
>
<
/span
>
)}
{
this
.
statusCode
!==
'-1'
&&
item
?.
taskStatus
?.
name
===
'NOT_YET_ASSIGNED'
&&
(
<
span
class
=
"icon-view icon-tools-view"
title
=
"指派给"
onClick
=
{()
=>
this
.
showAssign
(
item
)}
>
<
svg
t
=
"1629105857363"
style
=
"vertical-align: middle;margin-bottom: 3px;"
viewBox
=
"0 0 1024 1024"
version
=
"1.1"
xmlns
=
"http://www.w3.org/2000/svg"
p
-
id
=
"1916"
width
=
"18"
height
=
"18"
>
<
path
d
=
"M865.83 328.187H545.556l21.133-26.23a34.055 34.055 0 0 0 4.407-7.141c13.433-30.053 25.274-91.855-15.716-132.846-46.246-46.167-127.854-32.84-169.003 22.115L286.08 305.329c-17.894 11.336-74.76 48.874-105.608 86.944l-105.394 6.292c-17.203 1.036-30.636 15.318-30.636 32.574v320.008c0 17.654 14.017 32.096 31.698 32.6l122.439 3.478 270.735 86.998c3.345 1.62 33.397 15.822 68.068 15.822h0.053c40.725 0 72.741-19.592 90.528-56.334a102.65 102.65 0 0 0 7.805-27.212c23.68-0.716 63.343-11.92 82.192-74.732 6.477-23.92 6.902-46.511 1.38-65.758 23.31-12.584 38.654-34.672 42.69-63.583 2.6-18.476 4.034-40.431-2.655-61.139H863.39c57.82 0 116.173-31.83 116.173-102.953-0.002-82.166-73.22-107.944-113.732-110.147z m-3.505 147.845H620.633c-17.999 0-32.6 14.601-32.6 32.627 0 18.025 14.601 32.627 32.6 32.627 54.902 0 69.821 10.327 73.697 14.76 4.832 5.549 5.84 17.787 3.132 37.326-1.009 7.169-2.708 19.194-28.777 19.194-3.982 0-6.903-0.344-7.38-0.424-17.257-2.974-34.406 8.707-37.645 26.362-3.132 17.628 8.496 34.512 26.07 37.857 2.867 0.531 3.982 1.514 4.99 3.16 3.186 5.043 5.15 17.282 0.532 34.3-8.283 27.476-18.69 27.476-22.088 27.476-7.434 0-15.451-3.796-17.575-5.07-12.265-7.7-27.875-6.133-38.76 3.372-10.884 9.478-14.017 25.38-8.017 38.521 0.265 0.558 6.212 13.91-0.053 28.194-6.371 13.141-15.451 18.504-31.327 18.504h-0.053c-19.858 0-39.344-9.186-43.697-10.939l-279.496-90.156c-2.974-0.956-6-1.487-9.132-1.567l-95.413-2.707V461.882l90.156-5.39c10.62-0.637 20.283-6.45 25.858-15.53 15.663-25.592 69.237-64.485 99.289-82.988 3.027-1.885 5.788-4.248 8.017-7.009l104.599-126.5c19.38-25.752 52.405-35.575 71.68-16.354 15.981 16.008 7.008 46.857 3.503 56.838l-60.795 75.397c-7.91 9.769-9.451 23.202-4.035 34.538a32.576 32.576 0 0 0 29.415 18.557l386.43-0.08c8.443 0.61 50.6 5.602 50.6 44.972 0 32.787-31.857 37.699-52.033 37.699z"
fill
=
"#fff"
p
-
id
=
"1917"
><
/path
>
<
/svg
>
<
/span
>
)}
{
this
.
statusCode
!==
'-1'
&&
item
.
taskCompleteUserId
&&
item
.
taskCompleteUserId
.
indexOf
(
employeeId
,
)
!==
-
1
&&
item
?.
taskStatus
?.
name
===
'HAS_NOT_CONFIRM'
&&
(
<
span
class
=
"icon-view icon-tools-view"
title
=
"确认"
onClick
=
{()
=>
this
.
confimTask
(
item
)}
>
<
i
class
=
"el-icon-circle-check"
><
/i
>
<
/span
>
)}
{
this
.
statusCode
!==
'-1'
&&
item
.
taskCompleteUserId
&&
item
.
taskCompleteUserId
.
indexOf
(
employeeId
,
)
!==
-
1
&&
(
item
?.
taskStatus
?.
name
===
'HAS_NOT_STARTED'
||
item
?.
taskStatus
?.
name
===
'REJECTED'
)
&&
(
<
span
title
=
"开始"
class
=
"icon-view icon-tools-view"
>
<
i
class
=
"el-icon-video-play"
onClick
=
{()
=>
this
.
startTask
(
item
)}
><
/i
>
<
/span
>
)}
{
this
.
statusCode
!==
'-1'
&&
item
.
taskCompleteUserId
&&
item
.
taskCompleteUserId
.
indexOf
(
employeeId
,
)
!==
-
1
&&
(
item
?.
taskStatus
?.
name
===
'HAS_NOT_CONFIRM'
||
item
?.
taskStatus
?.
name
===
'HAS_NOT_STARTED'
||
item
?.
taskStatus
?.
name
===
'REJECTED'
||
item
?.
taskStatus
?.
name
===
'REJECTED_ING'
)
&&
(
<
span
title
=
"驳回"
class
=
"icon-view icon-del-view"
style
=
"text-align:center;"
onClick
=
{()
=>
this
.
rejectTask
(
item
)}
>
<
svg
t
=
"1635312421961"
style
=
"margin-top:3px"
class
=
"icon"
viewBox
=
"0 0 1024 1024"
version
=
"1.1"
xmlns
=
"http://www.w3.org/2000/svg"
p
-
id
=
"2573"
width
=
"18"
height
=
"18"
>
<
path
fill
=
"#fff"
d
=
"M84.80292 468.232171l384.630101-267.805372c0 0 89.454358-47.038316 111.239524 32.574906l0 126.663818c0 0 411.269831 54.283324 374.97009 477.706963 0 0-146.379858-238.867296-374.97009-224.37728l0 137.492444c0 0 1.233084 86.883813-114.861004 47.062875L81.205998 518.906294C81.205998 518.906294 44.906258 493.562069 84.80292 468.232171z"
p
-
id
=
"2574"
><
/path
>
<
/svg
>
<
/span
>
)}
{
this
.
statusCode
!==
'-1'
&&
employeeId
===
item
.
taskCreator
&&
(
item
?.
taskStatus
?.
name
===
'PROCESSING'
||
item
?.
taskStatus
?.
name
===
'REJECTED'
||
item
?.
taskStatus
?.
name
===
'REJECTED_ING'
)
&&
(
<
span
title
=
"终止"
class
=
"icon-view icon-del-view"
style
=
"text-align:center;"
onClick
=
{()
=>
this
.
cadence
(
item
)}
>
<
svg
t
=
"1627628609045"
class
=
"icon"
style
=
"margin-top:3px"
viewBox
=
"0 0 1024 1024"
version
=
"1.1"
xmlns
=
"http://www.w3.org/2000/svg"
p
-
id
=
"2698"
width
=
"18"
height
=
"18"
>
<
path
d
=
"M509.41569707 75.874304c-238.88418133 0-432.5376 193.65341867-432.5376 432.5376s193.65341867 432.5376 432.5376 432.5376c107.184128 0 205.26312107-38.98627413 280.8283136-103.55234133a435.09787307 435.09787307 0 0 0 17.56255573-15.8564352c10.69438293-8.75342507 19.63567787-18.8809216 19.63567787-33.1808768a37.70395307 37.70395307 0 0 0-9.74411094-25.346048l0.01201494-0.01201494-0.29709654-0.29709653a38.1026304 38.1026304 0 0 0-2.162688-2.162688L285.3830656 230.67579733c61.24776107-49.4665728 139.1722496-79.10741333 224.03263147-79.10741333 197.07876693 0 356.84352 159.76475307 356.84352 356.84352 0 28.71022933-3.39039573 56.6296576-9.79326294 83.37708373l0.0425984 0.01419947a37.91694507 37.91694507 0 0 0-1.1370496 9.22309973c0 20.9027072 16.9443328 37.84704 37.84704 37.84704 17.3146112 0 31.9029248-11.63154773 36.40415574-27.50327466l0.00218453-0.00436907 0.0065536-0.0294912c0.29709653-1.05294507 0.55268693-2.1233664 0.75912533-3.211264a429.9194368 429.9194368 0 0 0 4.554752-21.7546752c4.60281173-25.28815787 7.00689067-51.34199467 7.00689067-77.9583488 0.00109227-238.88418133-193.6523264-432.5376-432.53650773-432.5376z m-356.84352 432.5376c0-84.95213227 29.704192-162.95417173 79.26797653-224.23251627l501.82116693 501.82116694c-61.27834453 49.56378453-139.2934912 79.25377707-224.24562346 79.25377706-197.0798592 0.00109227-356.84352-159.76256853-356.84352-356.84242773z"
fill
=
"#fff"
p
-
id
=
"2699"
><
/path
>
<
/svg
>
<
/span
>
)}
{((
this
.
statusCode
!==
'-1'
&&
item
?.
taskStatus
?.
name
===
'PROCESSING'
)
||
item
?.
taskStatus
?.
name
===
'REJECTED_ING'
)
&&
(
{
<
span
title
=
"
完成
"
title
=
"
评价
"
class
=
"icon-view icon-tools-view"
>
<
i
class
=
"el-icon-c
ircle-check
"
class
=
"el-icon-c
hat-dot-square
"
onClick
=
{()
=>
this
.
operation
(
'
1
'
,
item
)
this
.
operation
(
'
2
'
,
item
)
}
><
/i
>
<
/span
>
)}
{
this
.
statusCode
!==
'-1'
&&
item
?.
taskStatus
?.
name
===
'FOR_ACCEPTANCE'
&&
employeeId
===
item
.
taskAcceptanceUser
&&
(
<
span
title
=
"验收"
class
=
"icon-view icon-tools-view"
>
<
i
class
=
"el-icon-s-claim"
onClick
=
{()
=>
this
.
operation
(
'2'
,
item
)
}
><
/i
>
<
/span
>
)}
{
employeeId
===
item
.
taskCreator
&&
item
?.
taskStatus
?.
name
===
'NOT_YET_ASSIGNED'
&&
(
<
span
title
=
"删除"
class
=
"icon-view icon-del-view"
>
<
i
class
=
"el-icon-delete"
onClick
=
{()
=>
this
.
remove
(
item
)}
><
/i
>
<
/span
>
)}
{
this
.
statusCode
!==
'-1'
&&
this
.
statusCode
===
'8'
&&
item
?.
taskStatus
?.
name
===
'COMPLETED'
&&
employeeId
===
item
.
taskAcceptanceUser
&&
!
item
.
score
&&
(
<
span
title
=
"评价"
class
=
"icon-view icon-tools-view"
>
<
i
class
=
"el-icon-chat-dot-square"
onClick
=
{()
=>
this
.
operation
(
'2'
,
item
)
}
><
/i
>
<
/span
>
)}
}
<
/span
>
),
},
...
...
@@ -1157,6 +924,16 @@ export default {
methods
:
{
sizeChange
()
{},
onCurrentChange
()
{},
async
getOrderTree
()
{
try
{
const
res
=
await
getOrderTree
()
if
(
res
.
code
===
200
)
{
this
.
treeData
=
[
res
.
data
]
}
}
catch
(
e
)
{
console
.
error
(
e
)
}
},
getStatusColor
(
type
)
{
if
(
type
===
'NOT_YET_ASSIGNED'
)
{
return
'#CCCCCC'
...
...
@@ -1339,11 +1116,9 @@ export default {
return
'#ddd'
},
handleNodeClick
({
item
})
{
if
(
item
)
{
this
.
statusCode
=
item
.
statusCode
this
.
getlist
()
}
handleNodeClick
(
data
)
{
this
.
statusCode
=
data
.
statusCode
this
.
getlist
()
},
getStatusTree
()
{
this
.
detailVisible
=
false
...
...
@@ -1429,25 +1204,21 @@ export default {
}
callback
&&
callback
()
},
getlist
()
{
// const { pageSize, currentPage } =
// this.centerPageOptions
// axios
// .post('financeTaskManagement/list_page', {
// pageSize,
// currentPage,
// taskStatus: this.statusCode,
// copyMe: this.assignMe,
// startTime:
// this.periodTime && this.periodTime[0],
// endTime: this.periodTime && this.periodTime[1],
// ...this.searchForm,
// })
// .then((res) => {
// this.sourceData = res.data.records
// this.centerPageOptions.total = res.data.total
// })
this
.
sourceData
=
[{}]
async
getlist
()
{
this
.
loading
=
true
const
{
pageSize
,
currentPage
}
=
this
.
centerPageOptions
axios
.
post
(
'platform/platformWorkOrder/list_page'
,
{
pageSize
,
currentPage
,
statusCode
:
this
.
statusCode
,
})
.
then
((
res
)
=>
{
this
.
sourceData
=
res
.
data
.
records
this
.
centerPageOptions
.
total
=
res
.
data
.
total
this
.
loading
=
false
})
},
planList
()
{
const
{
pageSize
,
currentPage
}
=
this
.
planPageOptions
...
...
@@ -1618,11 +1389,40 @@ export default {
},
}
</
script
>
<
style
scoped
>
<
style
lang=
"scss"
scoped
>
.wraper
{
height
:
100%
;
display
:
flex
;
overflow
:
hidden
;
&::v-deep
{
.el-tree-node
{
font-size
:
14px
;
}
.el-tree-node__content
{
height
:
32px
;
padding
:
4px
0px
;
padding-left
:
10px
!important
;
}
.el-tree-node__children
.el-tree-node.is-current
{
.el-tree-node__content
{
position
:
relative
;
color
:
#1565c0
;
font-size
:
16px
;
}
.el-tree-node__content
::before
{
position
:
absolute
;
content
:
''
;
top
:
0
;
bottom
:
0
;
left
:
0
;
width
:
4px
;
display
:
block
;
background-color
:
#1565c0
;
}
}
}
}
.page_left
{
width
:
200px
;
...
...
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