|
|
|
@ -65,7 +65,7 @@ |
|
|
|
<el-table-column label="操作" width="300" align="center" > |
|
|
|
<template slot-scope="scope"> |
|
|
|
<a type="text" @click="openEditDialog(scope.row)">修改</a> |
|
|
|
<a type="text" @click="openAssignDialog(scope.row)" :disabled="!scope.row.id">分配人员</a> |
|
|
|
<a type="text" @click="openAssignDialog(scope.row)" :disabled="!scope.row.orderNo">分配人员</a> |
|
|
|
<a type="text" @click="finishOrder(scope.row)" :disabled="scope.row.status === '已完成'">完工</a> |
|
|
|
<a type="text" style="color:#F56C6C" @click="deleteOrder(scope.row)">删除</a> |
|
|
|
</template> |
|
|
|
@ -86,7 +86,7 @@ |
|
|
|
<div class="detail-tabs-wrap"> |
|
|
|
<el-tabs v-model="detailTabName" type="border-card"> |
|
|
|
<el-tab-pane label="节点状态和日志" name="statusLogs"> |
|
|
|
<div v-if="selectedOrder.id" class="two-column-layout"> |
|
|
|
<div v-if="selectedOrder.orderNo" class="two-column-layout"> |
|
|
|
<div class="stages-column"> |
|
|
|
<div class="column-header"> |
|
|
|
<i class="el-icon-s-order"></i> |
|
|
|
@ -138,7 +138,7 @@ |
|
|
|
</el-tabs> |
|
|
|
</div> |
|
|
|
|
|
|
|
<el-dialog :title="saveHeaderData.id ? '修改家用梯销售订单' : '新增家用梯销售订单'" :visible.sync="setUp.reviewFlag" width="700px" :close-on-click-modal="false" v-drag> |
|
|
|
<el-dialog :title="saveHeaderData.orderNo ? '修改家用梯销售订单' : '新增家用梯销售订单'" :visible.sync="setUp.reviewFlag" width="700px" :close-on-click-modal="false" v-drag> |
|
|
|
<el-form |
|
|
|
ref="editForm" |
|
|
|
:model="saveHeaderData" |
|
|
|
@ -156,6 +156,15 @@ |
|
|
|
<el-col :span="12"><el-form-item label="计划发货日期"><el-date-picker v-model="saveHeaderData.planDeliveryDate" type="date" value-format="yyyy-MM-dd" style="width: 100%"></el-date-picker></el-form-item></el-col> |
|
|
|
<el-col :span="12"><el-form-item label="状态"><el-select v-model="saveHeaderData.status" style="width: 100%"><el-option label="已排产" value="已排产"></el-option><el-option label="进行中" value="进行中"></el-option><el-option label="已完成" value="已完成"></el-option></el-select></el-form-item></el-col> |
|
|
|
</el-row> |
|
|
|
<el-form-item label=""> |
|
|
|
<el-switch |
|
|
|
v-model="saveHeaderData.autoAssignAllUsers" |
|
|
|
:active-value="true" |
|
|
|
:inactive-value="false" |
|
|
|
active-text="创建后默认分配对应角色全部人员" |
|
|
|
inactive-text="手动分配人员"> |
|
|
|
</el-switch> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="特殊要求"><el-input v-model="saveHeaderData.specialRequirement" type="textarea" :rows="3"></el-input></el-form-item> |
|
|
|
</el-form> |
|
|
|
<el-footer style="height: 40px; margin-top: 50px; text-align: center"> |
|
|
|
@ -208,11 +217,11 @@ export default { |
|
|
|
return { |
|
|
|
searchData: { projectNo: '', modelNo: '', color: '', status: '', deliveryStartDate: '', deliveryEndDate: '', page: 1, limit: 20 }, |
|
|
|
saveHeaderData: {}, |
|
|
|
reportData: { id: 0, projectNo: '', nodeCode: '', remark: '' }, |
|
|
|
reportData: { orderNo: '', projectNo: '', nodeCode: '', remark: '' }, |
|
|
|
reportNodeOptions: [], |
|
|
|
setUp: { reviewFlag: false, reportFlag: false, assignFlag: false, saveButton: false, reportButton: false, assignButton: false }, |
|
|
|
dataList: [], |
|
|
|
currentAssignOrder: { id: 0, orderType: 'HOME_LIFT' }, |
|
|
|
currentAssignOrder: { orderNo: '', orderType: 'HOME_LIFT' }, |
|
|
|
assignNodeList: [], |
|
|
|
selectedOrder: {}, |
|
|
|
detailTabName: 'statusLogs', |
|
|
|
@ -253,7 +262,7 @@ export default { |
|
|
|
const done = list.filter(item => item.status === '已完成').length |
|
|
|
const currentNode = (list.find(item => item.status !== '已完成') || {}).nodeName || '全部完成' |
|
|
|
const assigneeSummary = list.filter(item => item.assigneeUserName).map(item => `${item.nodeName}:${item.assigneeUserName}`).join(';') |
|
|
|
return { ...row, nodeList: list, nodeDoneCount: done, nodeTotalCount: list.length, currentNode: row.currentNode || currentNode, assigneeSummary: assigneeSummary || '-' } |
|
|
|
return { ...row, autoAssignAllUsers: !!row.autoAssignAllUsers, nodeList: list, nodeDoneCount: done, nodeTotalCount: list.length, currentNode: row.currentNode || currentNode, assigneeSummary: assigneeSummary || '-' } |
|
|
|
}, |
|
|
|
loadMockData() { |
|
|
|
this.dataList = [].map(this.normalizeRow) |
|
|
|
@ -266,8 +275,8 @@ export default { |
|
|
|
this.selectedOrderLogList = [] |
|
|
|
return |
|
|
|
} |
|
|
|
const selectedId = this.selectedOrder && this.selectedOrder.id |
|
|
|
const matched = selectedId ? this.dataList.find(item => item.id === selectedId) : null |
|
|
|
const selectedOrderNo = this.selectedOrder && this.selectedOrder.orderNo |
|
|
|
const matched = selectedOrderNo ? this.dataList.find(item => item.orderNo === selectedOrderNo) : null |
|
|
|
const current = matched || this.dataList[0] |
|
|
|
this.selectedOrder = current |
|
|
|
this.$nextTick(() => { |
|
|
|
@ -278,7 +287,7 @@ export default { |
|
|
|
this.loadSelectedOrderLogList(current) |
|
|
|
}, |
|
|
|
onCurrentRowChange(row) { |
|
|
|
if (!row || !row.id) { |
|
|
|
if (!row || !row.orderNo) { |
|
|
|
this.selectedOrder = {} |
|
|
|
this.selectedOrderLogList = [] |
|
|
|
return |
|
|
|
@ -287,12 +296,12 @@ export default { |
|
|
|
this.loadSelectedOrderLogList(row) |
|
|
|
}, |
|
|
|
loadSelectedOrderLogList(row) { |
|
|
|
if (!row || !row.id) { |
|
|
|
if (!row || !row.orderNo) { |
|
|
|
this.selectedOrderLogList = [] |
|
|
|
return |
|
|
|
} |
|
|
|
this.detailLogLoading = true |
|
|
|
getReportLogList({ orderId: row.id, orderType: 'HOME_LIFT' }).then(({ data }) => { |
|
|
|
getReportLogList({ orderNo: row.orderNo, orderType: 'HOME_LIFT' }).then(({ data }) => { |
|
|
|
this.detailLogLoading = false |
|
|
|
this.selectedOrderLogList = data && data.code === 0 ? (data.rows || []) : [] |
|
|
|
}).catch(() => { |
|
|
|
@ -305,7 +314,7 @@ export default { |
|
|
|
this.getDataList('Y') |
|
|
|
}, |
|
|
|
openEditDialog(row) { |
|
|
|
this.saveHeaderData = row ? { ...row } : { id: 0, projectNo: '', modelNo: '', color: '', floorCount: 1, specialRequirement: '', planDeliveryDate: '', status: '已排产', nodeList: [] } |
|
|
|
this.saveHeaderData = row ? { ...row, autoAssignAllUsers: !!row.autoAssignAllUsers } : { orderNo: '', projectNo: '', modelNo: '', color: '', floorCount: 1, specialRequirement: '', planDeliveryDate: '', status: '已排产', autoAssignAllUsers: true, nodeList: [] } |
|
|
|
this.setUp.reviewFlag = true |
|
|
|
}, |
|
|
|
saveOrder() { |
|
|
|
@ -322,11 +331,11 @@ export default { |
|
|
|
} |
|
|
|
}).catch(() => { |
|
|
|
this.setUp.saveButton = false |
|
|
|
const id = this.saveHeaderData.id || Date.now() |
|
|
|
const index = this.dataList.findIndex(item => item.id === id) |
|
|
|
const orderNo = this.saveHeaderData.orderNo || String(Date.now()) |
|
|
|
const index = this.dataList.findIndex(item => item.orderNo === orderNo) |
|
|
|
const saveData = this.normalizeRow({ |
|
|
|
...this.saveHeaderData, |
|
|
|
id: id, |
|
|
|
orderNo: orderNo, |
|
|
|
nodeList: this.saveHeaderData.nodeList && this.saveHeaderData.nodeList.length ? this.saveHeaderData.nodeList : [ |
|
|
|
{ nodeCode: 'stocking', nodeName: '仓库配料', status: '未开始' }, |
|
|
|
{ nodeCode: 'platformDebug', nodeName: '平台组装/调试', status: '未开始' }, |
|
|
|
@ -344,13 +353,13 @@ export default { |
|
|
|
}, |
|
|
|
openReportDialog(row) { |
|
|
|
this.reportNodeOptions = (row.nodeList || []).filter(item => item.status !== '已完成') |
|
|
|
this.reportData = { id: row.id, projectNo: row.projectNo, nodeCode: '', remark: '' } |
|
|
|
this.reportData = { orderNo: row.orderNo, projectNo: row.projectNo, nodeCode: '', remark: '' } |
|
|
|
this.setUp.reportFlag = true |
|
|
|
}, |
|
|
|
openAssignDialog(row) { |
|
|
|
if (!row.id) return this.$message.warning('请先保存订单后再分配人员') |
|
|
|
this.currentAssignOrder = { id: row.id, orderType: 'HOME_LIFT' } |
|
|
|
getNodeAssigneeList({ orderId: row.id, orderType: 'HOME_LIFT' }).then(({ data }) => { |
|
|
|
if (!row.orderNo) return this.$message.warning('请先保存订单后再分配人员') |
|
|
|
this.currentAssignOrder = { orderNo: row.orderNo, orderType: 'HOME_LIFT' } |
|
|
|
getNodeAssigneeList({ orderNo: row.orderNo, orderType: 'HOME_LIFT' }).then(({ data }) => { |
|
|
|
const assignRows = data && data.code === 0 ? (data.rows || []) : [] |
|
|
|
this.assignNodeList = assignRows.map(item => ({ ...item, assigneeUserIdList: item.assigneeUserIdList || [], userOptions: [] })) |
|
|
|
const requests = this.assignNodeList.map(item => |
|
|
|
@ -371,7 +380,7 @@ export default { |
|
|
|
assigneeUserIdList: item.assigneeUserIdList || [] |
|
|
|
})) |
|
|
|
saveNodeAssignee({ |
|
|
|
orderId: this.currentAssignOrder.id, |
|
|
|
orderNo: this.currentAssignOrder.orderNo, |
|
|
|
orderType: this.currentAssignOrder.orderType, |
|
|
|
assigneeList: assigneeList |
|
|
|
}).then(({ data }) => { |
|
|
|
@ -398,13 +407,13 @@ export default { |
|
|
|
} else this.$message.error(data.msg || '报工失败') |
|
|
|
}).catch(() => { |
|
|
|
this.setUp.reportButton = false |
|
|
|
this.simulateNodeReport(this.reportData.id, this.reportData.nodeCode) |
|
|
|
this.simulateNodeReport(this.reportData.orderNo, this.reportData.nodeCode) |
|
|
|
this.setUp.reportFlag = false |
|
|
|
this.$message.success('后端未完成,已在前端演示节点报工') |
|
|
|
}) |
|
|
|
}, |
|
|
|
simulateNodeReport(id, nodeCode) { |
|
|
|
const row = this.dataList.find(item => item.id === id) |
|
|
|
simulateNodeReport(orderNo, nodeCode) { |
|
|
|
const row = this.dataList.find(item => item.orderNo === orderNo) |
|
|
|
if (!row) return |
|
|
|
const node = row.nodeList.find(item => item.nodeCode === nodeCode) |
|
|
|
if (!node) return |
|
|
|
@ -419,7 +428,7 @@ export default { |
|
|
|
} |
|
|
|
}, |
|
|
|
finishOrder(row) { |
|
|
|
finishHomeLiftOrder({ id: row.id }).then(({data}) => { |
|
|
|
finishHomeLiftOrder({ orderNo: row.orderNo }).then(({data}) => { |
|
|
|
if (data && data.code === 0) { |
|
|
|
this.$message.success(data.msg || '完工成功') |
|
|
|
this.getDataList() |
|
|
|
@ -435,13 +444,13 @@ export default { |
|
|
|
}, |
|
|
|
deleteOrder(row) { |
|
|
|
this.$confirm('确定删除该订单吗?', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { |
|
|
|
deleteHomeLiftOrder({ id: row.id }).then(({data}) => { |
|
|
|
deleteHomeLiftOrder({ orderNo: row.orderNo }).then(({data}) => { |
|
|
|
if (data && data.code === 0) { |
|
|
|
this.$message.success(data.msg || '删除成功') |
|
|
|
this.getDataList() |
|
|
|
} else this.$message.error(data.msg || '删除失败') |
|
|
|
}).catch(() => { |
|
|
|
this.dataList = this.dataList.filter(item => item.id !== row.id) |
|
|
|
this.dataList = this.dataList.filter(item => item.orderNo !== row.orderNo) |
|
|
|
this.totalPage = this.dataList.length |
|
|
|
this.$message.success('后端未完成,已在前端演示删除') |
|
|
|
}) |
|
|
|
|