You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

123 lines
4.3 KiB

<template>
<div class="mod-config">
<el-descriptions title="工单详情" direction="vertical" :column="column" size="mini" border>
<template slot="extra">
<el-button v-if="String(ticketsData.status) === '1'" type="primary" size="small" @click="doOperate">审批</el-button>
</template>
<el-descriptions-item label="工单ID">
<el-tag size="small">{{ ticketsData.ticketsId }}</el-tag>
</el-descriptions-item>
<el-descriptions-item label="小车类型">
{{ ticketsData.carName }}
</el-descriptions-item>
<el-descriptions-item label="异常类型">
{{ ticketsData.errorType }}
</el-descriptions-item>
<el-descriptions-item label="合同编号">{{ ticketsData.contractNumber }}</el-descriptions-item>
<el-descriptions-item label="客户">{{ ticketsData.clientName }}</el-descriptions-item>
<el-descriptions-item label="故障描述">{{ ticketsData.description }}</el-descriptions-item>
<el-descriptions-item label="工单对接人">{{ ticketsData.deptPeople }}</el-descriptions-item>
<el-descriptions-item label="客户联系电话">{{ ticketsData.deptPhone }}</el-descriptions-item>
<el-descriptions-item label="创建者">{{ ticketsData.createUser }}</el-descriptions-item>
<el-descriptions-item label="创建时间">{{ ticketsData.createTime }}</el-descriptions-item>
<el-descriptions-item label="是否验收">{{ ['否', '是'][Number(ticketsData.isCheck)] }}</el-descriptions-item>
<el-descriptions-item label="工单状态">{{ statusOpt | findByValue(ticketsData.status) }}</el-descriptions-item>
<el-descriptions-item label="工单审批完成时间">{{ ticketsData.updateTime }}</el-descriptions-item>
</el-descriptions>
</div>
</template>
<script>
export default {
data () {
return {
column: 0,
ticketsData: {},
statusOpt: [{value: '0', label: '未开始'}, {value: '1', label: '已指派'}, {value: '2', label: '处理中'}, {value: '3', label: '已完成'}]
}
},
created () {
if (this.isMobile() || window.innerWidth < 768) {
this.column = 2
} else {
this.column = 4
}
this.getDataList()
},
methods: {
isMobile() {
const userAgentInfo = navigator.userAgent;
const mobileAgents = [
"Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"
];
let isMobile = false;
for (let i = 0; i < mobileAgents.length; i++) {
if (userAgentInfo.indexOf(mobileAgents[i]) > -1) {
isMobile = true;
break;
}
}
return isMobile;
},
// 获取数据列表
getDataList () {
this.$http({
url: this.$http.adornUrl(`/tickets/tickets/info/${this.$route.query.id}`),
method: 'get',
params: this.$http.adornParams({})
}).then(({data}) => {
if (data && data.code === 0) {
this.ticketsData = data.tickets
}
})
},
// 每页数
sizeChangeHandle (val) {
this.pageSize = val
this.pageIndex = 1
this.getDataList()
},
// 当前页
currentChangeHandle (val) {
this.pageIndex = val
this.getDataList()
},
doOperate () {
this.$confirm(`确定进行审批操作?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$http({
url: this.$http.adornUrl('/flw/instance/completeFlow'),
method: 'post',
data: this.$http.adornData({ticketsId: this.ticketsData.ticketsId, processInstance: this.ticketsData.processInstance})
}).then(({data}) => {
if (data && data.code === 0) {
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.$router.push('/tickets-tickets')
}
})
} else {
this.$message.error(data.msg)
}
})
}).catch(() => {})
}
}
}
</script>
<style scoped>
.mod-config {
padding: 30px 30px;
}
.el-pagination {
margin-top: 15px;
text-align: right;
}
</style>