Commit ba44fab6 by yangzhi

fix:工单管理

parent 7948aeff
...@@ -15,11 +15,8 @@ export function workConfirmed(id) { ...@@ -15,11 +15,8 @@ export function workConfirmed(id) {
) )
} }
export function workAssigned(id, user) { export function workAssigned(data) {
return axios.post('platform/platformWorkOrder/assign', { return axios.post('platform/platformWorkOrder/assign', data)
id: id,
leaders: user,
})
} }
export function startWorder(id, estimateCompleteTime) { export function startWorder(id, estimateCompleteTime) {
......
...@@ -67,6 +67,14 @@ ...@@ -67,6 +67,14 @@
clearable clearable
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="工单标题">
<el-input
style="width: 120px"
v-model="searchForm.title"
placeholder="请输入"
clearable
></el-input>
</el-form-item>
<el-form-item label="工单类型"> <el-form-item label="工单类型">
<el-select <el-select
v-model="searchForm.orderType" v-model="searchForm.orderType"
...@@ -84,21 +92,11 @@ ...@@ -84,21 +92,11 @@
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="工单标题">
<el-input
style="width: 120px"
v-model="searchForm.title"
placeholder="请输入"
clearable
></el-input>
</el-form-item>
<el-form-item label="负责人"> <el-form-item label="负责人">
<el-select <el-select
style="width: 120px" style="width: 120px"
placeholder="请选择" placeholder="请选择"
clearable clearable
multiple
collapse-tags
v-model="searchForm.leaders" v-model="searchForm.leaders"
> >
<el-option <el-option
...@@ -409,21 +407,63 @@ ...@@ -409,21 +407,63 @@
title="指派给" title="指派给"
:close-on-click-modal="false" :close-on-click-modal="false"
:visible.sync="assignVisible" :visible.sync="assignVisible"
width="300px" width="650px"
> >
<el-select <el-form
style="width: 100%" :inline="true"
size="small" size="mini"
v-model="user" :model="assignForm"
multiple ref="assignForm"
:rules="assignFormRules"
label-width="110px"
> >
<el-option <el-form-item label="负责人" prop="leaders">
v-for="user in userList" <el-select
:key="user.id" style="width: 100%"
:label="user.realName" size="small"
:value="user.id" v-model="assignForm.leaders"
></el-option> >
</el-select> <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="assignForm.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="assignForm.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"> <span slot="footer">
<el-button <el-button
size="mini" size="mini"
...@@ -517,6 +557,29 @@ export default { ...@@ -517,6 +557,29 @@ export default {
data() { data() {
const userInfo = localStorage.getItem('user') const userInfo = localStorage.getItem('user')
return { return {
assignFormRules: {
leaders: [
{
required: true,
message: '请选择负责人',
trigger: 'blur',
},
],
fromUser: [
{
required: true,
message: '请选择参与人',
trigger: 'blur',
},
],
acceptanceUserId: [
{
required: true,
message: '请选择验收人',
trigger: 'blur',
},
],
},
priorityStatusList: [ priorityStatusList: [
{ {
value: 1, value: 1,
...@@ -533,7 +596,7 @@ export default { ...@@ -533,7 +596,7 @@ export default {
], ],
loading: false, loading: false,
detailLoading: false, detailLoading: false,
user: [], assignForm: {},
textarea: '', textarea: '',
centerPageOptions: { centerPageOptions: {
pageSize: 100, pageSize: 100,
...@@ -549,7 +612,6 @@ export default { ...@@ -549,7 +612,6 @@ export default {
statusCode: 'PRE_HANDLING', statusCode: 'PRE_HANDLING',
searchForm: { searchForm: {
timeProp: 'create_time', timeProp: 'create_time',
leaders: [],
prop: 'createTime', prop: 'createTime',
}, },
isEdit: false, isEdit: false,
...@@ -573,6 +635,7 @@ export default { ...@@ -573,6 +635,7 @@ export default {
editDialog: false, editDialog: false,
completeVisible: false, completeVisible: false,
estimateCompleteTime: '', estimateCompleteTime: '',
currentItem: null,
} }
}, },
mounted() { mounted() {
...@@ -624,7 +687,7 @@ export default { ...@@ -624,7 +687,7 @@ export default {
width: 80, width: 80,
}, },
{ {
label: '验收意见', label: '用户评价',
key: 'evaluations', key: 'evaluations',
width: 140, width: 140,
}, },
...@@ -644,16 +707,25 @@ export default { ...@@ -644,16 +707,25 @@ export default {
width: 80, width: 80,
}, },
{ {
label: '参与人',
key: 'fromBusiness',
width: 80,
},
{
label: '优先级', label: '优先级',
key: 'priorityStatus', key: 'priorityStatus',
width: 80, width: 80,
render: item => { render: item => {
if (item.priorityStatus) { if (item.orderStatus === 'TO_BE_ASSIGN') {
return this.priorityStatusList.find(v => { console.log(132)
return v.value === item.priorityStatus
}).name
} else { } else {
return '' if (item.priorityStatus) {
return this.priorityStatusList.find(v => {
return v.value === item.priorityStatus
}).name
} else {
return ''
}
} }
}, },
}, },
...@@ -788,7 +860,8 @@ export default { ...@@ -788,7 +860,8 @@ export default {
/> />
</span> </span>
)} )}
{item.orderStatus === 'PRE_HANDLING' && ( {(item.orderStatus === 'PRE_HANDLING' ||
item.orderStatus === 'IN_COMPLETE') && (
<span title="关闭" class="icon-view"> <span title="关闭" class="icon-view">
<img <img
width="24" width="24"
...@@ -818,6 +891,7 @@ export default { ...@@ -818,6 +891,7 @@ export default {
}, },
}, },
methods: { methods: {
setStatus() {},
handlePriorityStatus(data) { handlePriorityStatus(data) {
if (data) { if (data) {
return this.priorityStatusList.find(v => { return this.priorityStatusList.find(v => {
...@@ -959,42 +1033,52 @@ export default { ...@@ -959,42 +1033,52 @@ export default {
this.currentRowId = item.id this.currentRowId = item.id
this.taskLeader = '' this.taskLeader = ''
this.assignVisible = true this.assignVisible = true
this.user = '' this.assignForm = JSON.parse(
JSON.stringify({
leaders: '',
participator: [],
acceptanceUserId: '',
}),
)
}, },
// 开始工单 // 开始工单
async startWorkOrder(item) { async startWorkOrder(item) {
this.estimateCompleteTime = '' this.estimateCompleteTime = ''
this.completeVisible = true this.completeVisible = true
this.rowId = item.id this.rowId = item.id
this.currentItem = item
}, },
// 提交分派 // 提交分派
async submitAssign() { async submitAssign() {
if (this.user.length === 0) { this.$refs.assignForm.validate(v => {
return this.$message.warning('请选择负责人') if (v) {
} try {
const user = this.user.join(',') workAssigned({
try { id: this.currentRowId,
const res = await workAssigned( ...this.assignForm,
this.currentRowId, participator: this.assignForm.participator.join(
user, ',',
) ),
if (res.code === 200) { }).then(res => {
this.assignVisible = false if (res.code === 200) {
this.getOrderTree() this.assignVisible = false
this.getlist() this.getOrderTree()
this.getlist()
}
})
} catch (e) {
console.error(e)
}
} }
} catch (e) { })
console.error(e)
}
}, },
handleNodeClick(data) { handleNodeClick(data) {
if (data.statusCode === 'IN_PROGRESS') { if (data.statusCode === 'IN_PROGRESS') {
this.$set(this.searchForm, 'leaders', [ this.$set(
this.searchForm,
'leaders',
this.userInfo.id, this.userInfo.id,
]) )
}
if (data.statusCode !== 'IN_PROGRESS') {
this.searchForm.leaders = []
} }
this.statusCode = data.statusCode this.statusCode = data.statusCode
this.getlist() this.getlist()
...@@ -1013,9 +1097,6 @@ export default { ...@@ -1013,9 +1097,6 @@ 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,
leaders:
this.searchForm.leaders &&
this.searchForm.leaders.join(','),
}) })
.then(res => { .then(res => {
if (res.code !== 200) return if (res.code !== 200) return
...@@ -1124,10 +1205,28 @@ export default { ...@@ -1124,10 +1205,28 @@ export default {
}) })
} catch {} } catch {}
}, },
formaTime(data) {
const date1 = new Date()
const date2 = new Date(data)
if (date2 >= date1) {
return true
} else {
return false
}
},
async submitTime() { async submitTime() {
if (!this.estimateCompleteTime) { if (!this.estimateCompleteTime) {
return this.$message.warning('请选择预计完成时间') return this.$message.warning('请选择预计完成时间')
} }
if (
this.formaTime(
this.currentItem.estimateCompleteTime,
)
) {
return this.$message.warning(
'预计完成时间不能小于当前时间',
)
}
try { try {
const res = await startWorder( const res = await startWorder(
this.rowId, this.rowId,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment