Commit 5b109410 by yuzhenWang

添加了scrm的返回路径和带入客户ID

parent 2024115a
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -252,7 +252,12 @@ export default { ...@@ -252,7 +252,12 @@ export default {
} }
} }
</script> </script>
<style>
/* 当前页面所有 confirm 弹窗 */
.el-message-box__wrapper {
top: -20% !important;
margin-top: 0 !important;
}
</style>
<style scoped> <style scoped>
</style> </style>
...@@ -158,6 +158,14 @@ export default { ...@@ -158,6 +158,14 @@ export default {
}).then((response) => { }).then((response) => {
this.processStructureValue = response.data this.processStructureValue = response.data
this.currentNode = this.processStructureValue.nodes[0] this.currentNode = this.processStructureValue.nodes[0]
// 检查是否有 readonlyTpls 包含 5,如果有则设置默认值
if (
this.currentNode.readonlyTpls &&
this.currentNode.readonlyTpls.includes(5)
) {
this.setDefaultValues(this.scrmParams, 5)
}
}) })
}, },
submitAction(item) { submitAction(item) {
...@@ -224,7 +232,8 @@ export default { ...@@ -224,7 +232,8 @@ export default {
// this.$router.push({ path: '/process/upcoming' }) // this.$router.push({ path: '/process/upcoming' })
if (window.parent) { if (window.parent) {
const returnTarget = const returnTarget =
this.scrmParams?.returnTarget || '/process/upcoming' (this.scrmParams && this.scrmParams.returnTarget) ||
'/process/upcoming'
// 发送消息给父窗口 // 发送消息给父窗口
window.parent.postMessage( window.parent.postMessage(
...@@ -234,7 +243,7 @@ export default { ...@@ -234,7 +243,7 @@ export default {
// 可以附加其他数据,如新创建的工单ID // 可以附加其他数据,如新创建的工单ID
// workOrderId: response.data.id // workOrderId: response.data.id
}, },
this.scrmParams?.baseUrl this.scrmParams && this.scrmParams.baseUrl
) )
} else { } else {
// 备用方案 // 备用方案
...@@ -251,6 +260,33 @@ export default { ...@@ -251,6 +260,33 @@ export default {
}) })
} }
}) })
},
setDefaultValues(defaultVal, id) {
// 找到 id 为 5 的模板
const tpl5 = this.processStructureValue.tpls.find((tpl) => tpl.id === id)
if (tpl5) {
// 遍历模板中的字段
tpl5.form_structure.list.forEach((field) => {
// 如果是 grid 类型,需要遍历 columns
if (field.type === 'grid') {
field.columns.forEach((column) => {
column.list.forEach((item) => {
if (item.model === 'customerId' && defaultVal.customerId) {
item.options.defaultValue = Number(defaultVal.customerId)
}
// else if (item.model === 'customerPhone') {
// item.options.defaultValue = defaultVal.customerPhone
// }
})
})
} else if (field.model === 'customerId' && defaultVal.customerId) {
field.options.defaultValue = Number(defaultVal.customerId)
}
// else if (field.model === 'customerPhone') {
// field.options.defaultValue = defaultVal.customerPhone
// }
})
}
} }
} }
} }
......
...@@ -7,11 +7,24 @@ ...@@ -7,11 +7,24 @@
</el-form> </el-form>
</el-form> </el-form>
<el-table v-loading="loading" border :data="ticketList" @selection-change="handleSelectionChange"> <el-table
v-loading="loading"
border
:data="ticketList"
@selection-change="handleSelectionChange"
>
<!-- <el-table-column type="selection" width="55" align="center" /> --> <!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column label="ID" prop="id" width="120" /> <el-table-column label="ID" prop="id" width="120" />
<el-table-column label="标题" prop="title" :show-overflow-tooltip="true" /> <el-table-column
<el-table-column label="流程" prop="process_name" :show-overflow-tooltip="true" /> label="标题"
prop="title"
:show-overflow-tooltip="true"
/>
<el-table-column
label="流程"
prop="process_name"
:show-overflow-tooltip="true"
/>
<el-table-column label="当前状态" :show-overflow-tooltip="true"> <el-table-column label="当前状态" :show-overflow-tooltip="true">
<template slot-scope="scope"> <template slot-scope="scope">
<span> <span>
...@@ -21,15 +34,22 @@ ...@@ -21,15 +34,22 @@
</el-table-column> </el-table-column>
<el-table-column label="当前处理人" :show-overflow-tooltip="true"> <el-table-column label="当前处理人" :show-overflow-tooltip="true">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.is_end===0">{{ scope.row.principals }}</span> <span v-if="scope.row.is_end === 0">{{
scope.row.principals
}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="优先级" :show-overflow-tooltip="true" width="120" align="left"> <el-table-column
label="优先级"
:show-overflow-tooltip="true"
width="120"
align="left"
>
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.priority===2"> <span v-if="scope.row.priority === 2">
<el-tag type="warning">紧急</el-tag> <el-tag type="warning">紧急</el-tag>
</span> </span>
<span v-else-if="scope.row.priority===3"> <span v-else-if="scope.row.priority === 3">
<el-tag type="danger">非常紧急</el-tag> <el-tag type="danger">非常紧急</el-tag>
</span> </span>
<span v-else> <span v-else>
...@@ -37,18 +57,37 @@ ...@@ -37,18 +57,37 @@
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="是否结束" :show-overflow-tooltip="true" width="80" align="center"> <el-table-column
label="是否结束"
:show-overflow-tooltip="true"
width="80"
align="center"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag v-if="scope.row.is_end===0" size="mini" type="success"></el-tag> <el-tag
v-if="scope.row.is_end === 0"
size="mini"
type="success"
></el-tag>
<el-tag v-else size="mini" type="danger"></el-tag> <el-tag v-else size="mini" type="danger"></el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="创建时间" align="center" prop="create_time" width="180"> <el-table-column
label="创建时间"
align="center"
prop="create_time"
width="180"
>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.create_time) }}</span> <span>{{ parseTime(scope.row.create_time) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180"> <el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
width="180"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
v-permisaction="['process:list:myCreate:select']" v-permisaction="['process:list:myCreate:select']"
...@@ -65,7 +104,7 @@ ...@@ -65,7 +104,7 @@
@click="handleReopen(scope.row.id)" @click="handleReopen(scope.row.id)"
>重开</el-button> >重开</el-button>
<el-button <el-button
v-if="scope.row.is_end===0" v-if="scope.row.is_end === 0"
v-permisaction="['process:list:upcoming:urge']" v-permisaction="['process:list:upcoming:urge']"
size="mini" size="mini"
type="text" type="text"
...@@ -77,7 +116,7 @@ ...@@ -77,7 +116,7 @@
</el-table> </el-table>
<pagination <pagination
v-show="total>0" v-show="total > 0"
:total="total" :total="total"
:page.sync="queryParams.pageIndex" :page.sync="queryParams.pageIndex"
:limit.sync="queryParams.pageSize" :limit.sync="queryParams.pageSize"
...@@ -88,7 +127,11 @@ ...@@ -88,7 +127,11 @@
</template> </template>
<script> <script>
import { workOrderList, urgeWorkOrder, reopenWorkOrder } from '@/api/process/work-order' import {
workOrderList,
urgeWorkOrder,
reopenWorkOrder
} from '@/api/process/work-order'
// 搜索 // 搜索
import WorkOrderSearch from './components/search/index' import WorkOrderSearch from './components/search/index'
...@@ -113,12 +156,8 @@ export default { ...@@ -113,12 +156,8 @@ export default {
remarks: '' remarks: ''
}, },
rules: { rules: {
node_id: [ node_id: [{ required: true, message: '请选择节点', trigger: 'change' }],
{ required: true, message: '请选择节点', trigger: 'change' } user_id: [{ required: true, message: '请选择用户', trigger: 'change' }]
],
user_id: [
{ required: true, message: '请选择用户', trigger: 'change' }
]
} }
} }
}, },
...@@ -131,7 +170,7 @@ export default { ...@@ -131,7 +170,7 @@ export default {
this.listQuery.page = this.queryParams.pageIndex this.listQuery.page = this.queryParams.pageIndex
this.listQuery.per_page = this.queryParams.pageSize this.listQuery.per_page = this.queryParams.pageSize
this.listQuery.classify = 2 this.listQuery.classify = 2
workOrderList(this.listQuery).then(response => { workOrderList(this.listQuery).then((response) => {
this.ticketList = response.data.data this.ticketList = response.data.data
this.queryParams.pageIndex = response.data.page this.queryParams.pageIndex = response.data.page
this.queryParams.pageSize = response.data.per_page this.queryParams.pageSize = response.data.per_page
...@@ -146,7 +185,10 @@ export default { ...@@ -146,7 +185,10 @@ export default {
this.getList() this.getList()
}, },
handleView(row) { handleView(row) {
this.$router.push({ name: 'ProcessListHandle', query: { workOrderId: row.id, processId: row.process }}) this.$router.push({
name: 'ProcessListHandle',
query: { workOrderId: row.id, processId: row.process }
})
}, },
handleReopen(id) { handleReopen(id) {
this.$confirm('根据此工单新建一个新的工单?', '提示', { this.$confirm('根据此工单新建一个新的工单?', '提示', {
...@@ -154,7 +196,7 @@ export default { ...@@ -154,7 +196,7 @@ export default {
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'info' type: 'info'
}).then(() => { }).then(() => {
reopenWorkOrder(id).then(res => { reopenWorkOrder(id).then((res) => {
this.getList() this.getList()
this.$message({ this.$message({
type: 'success', type: 'success',
...@@ -165,21 +207,27 @@ export default { ...@@ -165,21 +207,27 @@ export default {
}, },
handleSelectionChange() {}, handleSelectionChange() {},
handleUrge(row) { handleUrge(row) {
this.$confirm('<span style="font-size:15px ">对此工单处理人进行催办通知提醒, 是否继续?</span><br><span style="color: #c33; font-size: 10px">注意:十分钟内只能催办一次。</span>', '催办', { this.$confirm(
'<span style="font-size:15px ">对此工单处理人进行催办通知提醒, 是否继续?</span><br><span style="color: #c33; font-size: 10px">注意:十分钟内只能催办一次。</span>',
'催办',
{
dangerouslyUseHTMLString: true, dangerouslyUseHTMLString: true,
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning'
}).then(() => { }
)
.then(() => {
urgeWorkOrder({ urgeWorkOrder({
workOrderId: row.id workOrderId: row.id
}).then(response => { }).then((response) => {
this.$message({ this.$message({
type: 'success', type: 'success',
message: '已进行催办通知!' message: '已进行催办通知!'
}) })
}) })
}).catch(() => { })
.catch(() => {
this.$message({ this.$message({
type: 'info', type: 'info',
message: '已取消' message: '已取消'
...@@ -189,7 +237,11 @@ export default { ...@@ -189,7 +237,11 @@ export default {
} }
} }
</script> </script>
<style>
<style scoped> /* 当前页面所有 confirm 弹窗 */
.el-message-box__wrapper {
top: -30% !important;
margin-top: 0 !important;
}
</style> </style>
<style scoped></style>
...@@ -7,11 +7,24 @@ ...@@ -7,11 +7,24 @@
</el-form> </el-form>
</el-form> </el-form>
<el-table v-loading="loading" border :data="ticketList" @selection-change="handleSelectionChange"> <el-table
v-loading="loading"
border
:data="ticketList"
@selection-change="handleSelectionChange"
>
<!-- <el-table-column type="selection" width="55" align="center" /> --> <!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column label="ID" prop="id" width="120" /> <el-table-column label="ID" prop="id" width="120" />
<el-table-column label="标题" prop="title" :show-overflow-tooltip="true" /> <el-table-column
<el-table-column label="流程" prop="process_name" :show-overflow-tooltip="true" /> label="标题"
prop="title"
:show-overflow-tooltip="true"
/>
<el-table-column
label="流程"
prop="process_name"
:show-overflow-tooltip="true"
/>
<el-table-column label="当前状态" :show-overflow-tooltip="true"> <el-table-column label="当前状态" :show-overflow-tooltip="true">
<template slot-scope="scope"> <template slot-scope="scope">
<span> <span>
...@@ -21,15 +34,22 @@ ...@@ -21,15 +34,22 @@
</el-table-column> </el-table-column>
<el-table-column label="当前处理人" :show-overflow-tooltip="true"> <el-table-column label="当前处理人" :show-overflow-tooltip="true">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.is_end===0">{{ scope.row.principals }}</span> <span v-if="scope.row.is_end === 0">{{
scope.row.principals
}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="优先级" :show-overflow-tooltip="true" width="120" align="left"> <el-table-column
label="优先级"
:show-overflow-tooltip="true"
width="120"
align="left"
>
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.priority===2"> <span v-if="scope.row.priority === 2">
<el-tag type="warning">紧急</el-tag> <el-tag type="warning">紧急</el-tag>
</span> </span>
<span v-else-if="scope.row.priority===3"> <span v-else-if="scope.row.priority === 3">
<el-tag type="danger">非常紧急</el-tag> <el-tag type="danger">非常紧急</el-tag>
</span> </span>
<span v-else> <span v-else>
...@@ -37,18 +57,37 @@ ...@@ -37,18 +57,37 @@
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="是否结束" :show-overflow-tooltip="true" width="80" align="center"> <el-table-column
label="是否结束"
:show-overflow-tooltip="true"
width="80"
align="center"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag v-if="scope.row.is_end===0" size="mini" type="success"></el-tag> <el-tag
v-if="scope.row.is_end === 0"
size="mini"
type="success"
></el-tag>
<el-tag v-else size="mini" type="danger"></el-tag> <el-tag v-else size="mini" type="danger"></el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="创建时间" align="center" prop="create_time" width="180"> <el-table-column
label="创建时间"
align="center"
prop="create_time"
width="180"
>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.create_time) }}</span> <span>{{ parseTime(scope.row.create_time) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180"> <el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
width="180"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
v-permisaction="['process:list:related:select']" v-permisaction="['process:list:related:select']"
...@@ -61,34 +100,60 @@ ...@@ -61,34 +100,60 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-dialog <el-dialog title="转交工单" :visible.sync="dialogVisible" width="30%">
title="转交工单" <el-form
:visible.sync="dialogVisible" ref="ruleForm"
width="30%" :model="ruleForm"
:rules="rules"
label-width="60px"
class="demo-ruleForm"
> >
<el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="60px" class="demo-ruleForm">
<el-form-item label="节点" prop="node_id"> <el-form-item label="节点" prop="node_id">
<el-select v-model="ruleForm.node_id" placeholder="选择节点" size="small" style="width: 100%"> <el-select
<el-option v-for="(item, index) in nodeList" :key="index" :label="item.label" :value="item.id" /> v-model="ruleForm.node_id"
placeholder="选择节点"
size="small"
style="width: 100%"
>
<el-option
v-for="(item, index) in nodeList"
:key="index"
:label="item.label"
:value="item.id"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="用户" prop="user_id"> <el-form-item label="用户" prop="user_id">
<el-select v-model="ruleForm.user_id" filterable placeholder="选择用户" size="small" style="width: 100%"> <el-select
<el-option v-for="(item, index) in users" :key="index" :label="item.nickName" :value="item.userId" /> v-model="ruleForm.user_id"
filterable
placeholder="选择用户"
size="small"
style="width: 100%"
>
<el-option
v-for="(item, index) in users"
:key="index"
:label="item.nickName"
:value="item.userId"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="备注"> <el-form-item label="备注">
<el-input v-model="ruleForm.remarks" type="textarea" size="small" /> <el-input v-model="ruleForm.remarks" type="textarea" size="small" />
</el-form-item> </el-form-item>
<el-form-item style="text-align: right"> <el-form-item style="text-align: right">
<el-button type="primary" @click="submitForm('ruleForm')">提交</el-button> <el-button
type="primary"
@click="submitForm('ruleForm')"
>提交</el-button>
<el-button @click="dialogVisible = false">关闭</el-button> <el-button @click="dialogVisible = false">关闭</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-dialog> </el-dialog>
<pagination <pagination
v-show="total>0" v-show="total > 0"
:total="total" :total="total"
:page.sync="queryParams.pageIndex" :page.sync="queryParams.pageIndex"
:limit.sync="queryParams.pageSize" :limit.sync="queryParams.pageSize"
...@@ -126,12 +191,8 @@ export default { ...@@ -126,12 +191,8 @@ export default {
remarks: '' remarks: ''
}, },
rules: { rules: {
node_id: [ node_id: [{ required: true, message: '请选择节点', trigger: 'change' }],
{ required: true, message: '请选择节点', trigger: 'change' } user_id: [{ required: true, message: '请选择用户', trigger: 'change' }]
],
user_id: [
{ required: true, message: '请选择用户', trigger: 'change' }
]
} }
} }
}, },
...@@ -144,7 +205,7 @@ export default { ...@@ -144,7 +205,7 @@ export default {
this.listQuery.page = this.queryParams.pageIndex this.listQuery.page = this.queryParams.pageIndex
this.listQuery.per_page = this.queryParams.pageSize this.listQuery.per_page = this.queryParams.pageSize
this.listQuery.classify = 3 this.listQuery.classify = 3
workOrderList(this.listQuery).then(response => { workOrderList(this.listQuery).then((response) => {
this.ticketList = response.data.data this.ticketList = response.data.data
this.queryParams.pageIndex = response.data.page this.queryParams.pageIndex = response.data.page
this.queryParams.pageSize = response.data.per_page this.queryParams.pageSize = response.data.per_page
...@@ -159,13 +220,20 @@ export default { ...@@ -159,13 +220,20 @@ export default {
this.getList() this.getList()
}, },
handleView(row) { handleView(row) {
this.$router.push({ name: 'ProcessListHandle', query: { workOrderId: row.id, processId: row.process }}) this.$router.push({
name: 'ProcessListHandle',
query: { workOrderId: row.id, processId: row.process }
})
}, },
handleSelectionChange() {} handleSelectionChange() {}
} }
} }
</script> </script>
<style>
<style scoped> /* 当前页面所有 confirm 弹窗 */
.el-message-box__wrapper {
top: -30% !important;
margin-top: 0 !important;
}
</style> </style>
<style scoped></style>
...@@ -199,7 +199,13 @@ export default { ...@@ -199,7 +199,13 @@ export default {
} }
} }
</script> </script>
<style>
/* 当前页面所有 confirm 弹窗 */
.el-message-box__wrapper {
top: -30% !important;
margin-top: 0 !important;
}
</style>
<style scoped> <style scoped>
</style> </style>
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