新增委托功能
This commit is contained in:
parent
56c4393f2e
commit
fe1f6dc08d
|
@ -9,13 +9,14 @@
|
||||||
</el-form>
|
</el-form>
|
||||||
<template slot="footer">
|
<template slot="footer">
|
||||||
<el-button @click="visible = false">{{ $t('cancel') }}</el-button>
|
<el-button @click="visible = false">{{ $t('cancel') }}</el-button>
|
||||||
<el-button type="primary" @click="entrustTask()">{{ $t('confirm') }}</el-button>
|
<el-button type="primary" @click="entrustTask($store.state.contentTabsActiveName)">{{ $t('confirm') }}</el-button>
|
||||||
</template>
|
</template>
|
||||||
<select-user v-if="selectUserVisible" ref="selectUser" ></select-user>
|
<select-user v-if="selectUserVisible" ref="selectUser" ></select-user>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import bus from '@/views/bus.js'
|
||||||
import SelectUser from './select-user'
|
import SelectUser from './select-user'
|
||||||
import qs from 'qs'
|
import qs from 'qs'
|
||||||
export default {
|
export default {
|
||||||
|
@ -52,11 +53,11 @@ export default {
|
||||||
init () {
|
init () {
|
||||||
this.visible = true
|
this.visible = true
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.$refs['dataForm'].resetFields()
|
this.$refs.dataForm.resetFields()
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 委托
|
// 委托
|
||||||
entrustTask () {
|
entrustTask (data) {
|
||||||
if (!this.dataForm.entrustUserId) {
|
if (!this.dataForm.entrustUserId) {
|
||||||
this.$message.error(this.$t('process.entrustError'))
|
this.$message.error(this.$t('process.entrustError'))
|
||||||
return
|
return
|
||||||
|
@ -65,9 +66,11 @@ export default {
|
||||||
taskId: this.dataForm.taskId,
|
taskId: this.dataForm.taskId,
|
||||||
assignee: this.dataForm.entrustUserId
|
assignee: this.dataForm.entrustUserId
|
||||||
})
|
})
|
||||||
this.$http['post']('/act/task/entrust', task).then(({ data: res }) => {
|
this.$http.post('/act/task/entrust', task).then(({ data: res }) => {
|
||||||
if (res.code !== 0) {
|
if (res.code !== 0) {
|
||||||
this.$message.error(res.msg)
|
this.$message.error(res.msg)
|
||||||
|
this.tabRemoveHandle(data)
|
||||||
|
bus.$emit('updateTaskNum')
|
||||||
if (this.callbacks.taskHandleErrorCallback) {
|
if (this.callbacks.taskHandleErrorCallback) {
|
||||||
this.callbacks.taskHandleErrorCallback(res)
|
this.callbacks.taskHandleErrorCallback(res)
|
||||||
}
|
}
|
||||||
|
@ -79,6 +82,8 @@ export default {
|
||||||
duration: 500,
|
duration: 500,
|
||||||
onClose: () => {
|
onClose: () => {
|
||||||
this.visible = false
|
this.visible = false
|
||||||
|
this.tabRemoveHandle(data)
|
||||||
|
bus.$emit('updateTaskNum')
|
||||||
if (this.callbacks.taskHandleSuccessCallback) {
|
if (this.callbacks.taskHandleSuccessCallback) {
|
||||||
this.callbacks.taskHandleSuccessCallback(res)
|
this.callbacks.taskHandleSuccessCallback(res)
|
||||||
}
|
}
|
||||||
|
@ -93,6 +98,33 @@ export default {
|
||||||
this.$refs.selectUser.init(this.setUserInfo)
|
this.$refs.selectUser.init(this.setUserInfo)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
tabRemoveHandle (tabName) {
|
||||||
|
console.log(tabName, 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')
|
||||||
|
if (tabName === 'home') {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
this.$store.state.contentTabs = this.$store.state.contentTabs.filter(
|
||||||
|
(item) => item.name !== tabName
|
||||||
|
)
|
||||||
|
if (this.$store.state.contentTabs.length <= 0) {
|
||||||
|
this.$store.state.sidebarMenuActiveName =
|
||||||
|
this.$store.state.contentTabsActiveName = 'home'
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
// 当前选中tab被删除
|
||||||
|
if (tabName === this.$store.state.contentTabsActiveName) {
|
||||||
|
const tab =
|
||||||
|
this.$store.state.contentTabs[
|
||||||
|
this.$store.state.contentTabs.length - 1
|
||||||
|
]
|
||||||
|
this.$router.push({
|
||||||
|
name: /^iframe_.+/.test(tab.name) ? 'iframe' : tab.name,
|
||||||
|
params: { ...tab.params },
|
||||||
|
query: { ...tab.query }
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
setUserInfo (userInfo) {
|
setUserInfo (userInfo) {
|
||||||
this.dataForm.entrustUserId = userInfo.id
|
this.dataForm.entrustUserId = userInfo.id
|
||||||
this.dataForm.entrustUserName = userInfo.realName
|
this.dataForm.entrustUserName = userInfo.realName
|
||||||
|
|
|
@ -72,33 +72,33 @@
|
||||||
|
|
||||||
</el-card>
|
</el-card>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import * as moment from 'moment';
|
import * as moment from 'moment'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data () {
|
||||||
return {
|
return {
|
||||||
// 详情信息
|
// 详情信息
|
||||||
detailInfo: {},
|
detailInfo: {},
|
||||||
dataList: [],
|
dataList: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created () {
|
||||||
this.detailInfo = this.$route.params.params || {};
|
this.detailInfo = this.$route.params.params || {}
|
||||||
console.log('this.detailInfo------------>', this.detailInfo);
|
console.log('this.detailInfo------------>', this.detailInfo)
|
||||||
// 表格数据
|
// 表格数据
|
||||||
let durationInSeconds = ''
|
let durationInSeconds = ''
|
||||||
if (this.detailInfo.auditTime && this.detailInfo.auditTime) {
|
if (this.detailInfo.auditTime && this.detailInfo.auditTime) {
|
||||||
durationInSeconds = moment(this.detailInfo.auditTime).diff(moment(this.detailInfo.createDate), 'seconds')
|
durationInSeconds = moment(this.detailInfo.auditTime).diff(moment(this.detailInfo.createDate), 'seconds')
|
||||||
}
|
}
|
||||||
let _obj = {
|
const _obj = {
|
||||||
activityName: this.detailInfo.title || '',
|
activityName: this.detailInfo.title || '',
|
||||||
assigneeName: this.detailInfo.auditorName || '',
|
assigneeName: this.detailInfo.auditorName || '',
|
||||||
startTime: this.detailInfo.createDate || '',
|
startTime: this.detailInfo.createDate || '',
|
||||||
endTime: this.detailInfo.auditTime,
|
endTime: this.detailInfo.auditTime,
|
||||||
comment: this.detailInfo.auditViem,
|
comment: this.detailInfo.auditViem,
|
||||||
durationInSeconds: durationInSeconds,
|
durationInSeconds: durationInSeconds
|
||||||
}
|
}
|
||||||
this.dataList.push(_obj)
|
this.dataList.push(_obj)
|
||||||
}
|
}
|
||||||
|
@ -242,7 +242,7 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .agreeOr>div {
|
::v-deep .agreeOr > div {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
|
@ -252,7 +252,7 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .agreeOr>div:last-of-type {
|
::v-deep .agreeOr > div:last-of-type {
|
||||||
margin-top: 15px;
|
margin-top: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -268,7 +268,7 @@ export default {
|
||||||
border: 1px solid #0558e1;
|
border: 1px solid #0558e1;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .el-radio-button__orig-radio:checked+.el-radio-button__inner {
|
::v-deep .el-radio-button__orig-radio:checked + .el-radio-button__inner {
|
||||||
box-shadow: unset !important;
|
box-shadow: unset !important;
|
||||||
background: #0558e1;
|
background: #0558e1;
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
|
@ -301,7 +301,7 @@ export default {
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .el-radio-button__orig-radio:checked+.el-radio-button__inner {
|
::v-deep .el-radio-button__orig-radio:checked + .el-radio-button__inner {
|
||||||
box-shadow: unset !important;
|
box-shadow: unset !important;
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
background: #e83a48;
|
background: #e83a48;
|
||||||
|
@ -316,4 +316,3 @@ export default {
|
||||||
padding-right: 10px;
|
padding-right: 10px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<!--
|
<!--
|
||||||
* @Author: hisense.liangjunhua
|
* @Author: hisense.liangjunhua
|
||||||
* @Date: 2022-06-29 15:59:51
|
* @Date: 2022-06-29 15:59:51
|
||||||
* @LastEditors: hisense.liangjunhua
|
* @LastEditors: Light
|
||||||
* @LastEditTime: 2022-08-04 14:34:45
|
* @LastEditTime: 2022-10-20 14:39:06
|
||||||
* @Description: 告诉大家这是什么
|
* @Description: 告诉大家这是什么
|
||||||
-->
|
-->
|
||||||
<!-- 流程业务表单 -->
|
<!-- 流程业务表单 -->
|
||||||
|
@ -93,6 +93,8 @@
|
||||||
<el-radio-button label="同意" class="blueAll" @click="showDialog('同意')">同意</el-radio-button>
|
<el-radio-button label="同意" class="blueAll" @click="showDialog('同意')">同意</el-radio-button>
|
||||||
<el-radio-button label="退回" class="redAll" @click="showDialog('退回')">退回</el-radio-button>
|
<el-radio-button label="退回" class="redAll" @click="showDialog('退回')">退回</el-radio-button>
|
||||||
</el-radio-group> -->
|
</el-radio-group> -->
|
||||||
|
<!-- 委托 -->
|
||||||
|
<el-button type="info" @click="entrustTask()" v-if='taskEntrustFlag'>{{ $t('process.entrustTask') }}</el-button>
|
||||||
<el-button type="primary" @click="showDialog('同意')">同意</el-button>
|
<el-button type="primary" @click="showDialog('同意')">同意</el-button>
|
||||||
<el-button type="danger" plain @click="showDialog('驳回')">驳回</el-button>
|
<el-button type="danger" plain @click="showDialog('驳回')">驳回</el-button>
|
||||||
<!-- <el-input v-if="agreeOrList ==='同意' " v-model="inputAgree" placeholder="请输入同意意见"></el-input>
|
<!-- <el-input v-if="agreeOrList ==='同意' " v-model="inputAgree" placeholder="请输入同意意见"></el-input>
|
||||||
|
@ -101,6 +103,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<ren-task-entrust v-if="renTaskEntrustVisible" ref="renTaskEntrust"></ren-task-entrust>
|
||||||
<!-- 流程详情 -->
|
<!-- 流程详情 -->
|
||||||
<ren-process-detail></ren-process-detail>
|
<ren-process-detail></ren-process-detail>
|
||||||
<el-dialog title="审批意见" :close-on-click-modal="false" :visible.sync="dialogVisible" width="30%"
|
<el-dialog title="审批意见" :close-on-click-modal="false" :visible.sync="dialogVisible" width="30%"
|
||||||
|
@ -116,6 +119,7 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// 引入工作流公共方法
|
// 引入工作流公共方法
|
||||||
|
import RenTaskEntrust from '@/components/ren-process-running/src/ren-task-entrust'
|
||||||
import processModule from '@/mixins/process-module'
|
import processModule from '@/mixins/process-module'
|
||||||
// import mixinViewModule from '@/mixins/view-module'
|
// import mixinViewModule from '@/mixins/view-module'
|
||||||
import debounce from 'lodash/debounce'
|
import debounce from 'lodash/debounce'
|
||||||
|
@ -125,9 +129,11 @@ import bus from '@/views/bus.js'
|
||||||
export default {
|
export default {
|
||||||
// 注入公共方法
|
// 注入公共方法
|
||||||
mixins: [processModule],
|
mixins: [processModule],
|
||||||
data() {
|
data () {
|
||||||
return {
|
return {
|
||||||
|
taskEntrustFlag: false,
|
||||||
dialogVisible: false,
|
dialogVisible: false,
|
||||||
|
renTaskEntrustVisible: false,
|
||||||
dialogType: '',
|
dialogType: '',
|
||||||
input: '',
|
input: '',
|
||||||
visible: true,
|
visible: true,
|
||||||
|
@ -154,7 +160,18 @@ export default {
|
||||||
agreeOrList: '同意'
|
agreeOrList: '同意'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created () {
|
||||||
|
// 获取角色信息
|
||||||
|
this.$http.get('/sys/user/info').then(({ data: res }) => {
|
||||||
|
res.data.roleIdList.map(val => {
|
||||||
|
this.$http.get('/sys/role/' + val).then(role => {
|
||||||
|
console.log('depid', role.data.data)
|
||||||
|
if (role.data.data.name === '申请流转员') {
|
||||||
|
this.taskEntrustFlag = true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
// 将业务KEY赋值给表单
|
// 将业务KEY赋值给表单
|
||||||
console.log('params=================>', this.$route, this.$route.params)
|
console.log('params=================>', this.$route, this.$route.params)
|
||||||
this.dataForm.taskId = this.$route.params.taskId
|
this.dataForm.taskId = this.$route.params.taskId
|
||||||
|
@ -185,10 +202,11 @@ export default {
|
||||||
// }
|
// }
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
RenProcessDetail
|
RenProcessDetail,
|
||||||
|
RenTaskEntrust
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
init() {
|
init () {
|
||||||
// this.visible = true
|
// this.visible = true
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
// this.$refs.dataForm.resetFields()
|
// this.$refs.dataForm.resetFields()
|
||||||
|
@ -200,11 +218,19 @@ export default {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
showDialog(title) {
|
entrustTask () {
|
||||||
|
this.renTaskEntrustVisible = true
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$refs.renTaskEntrust.dataForm.taskId = this.dataForm.taskId
|
||||||
|
this.$refs.renTaskEntrust.callbacks = this.callbacks
|
||||||
|
this.$refs.renTaskEntrust.init()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
showDialog (title) {
|
||||||
this.dialogVisible = true
|
this.dialogVisible = true
|
||||||
this.dialogType = title
|
this.dialogType = title
|
||||||
},
|
},
|
||||||
handleClose(done) {
|
handleClose (done) {
|
||||||
this.$confirm('确认关闭?')
|
this.$confirm('确认关闭?')
|
||||||
.then((_) => {
|
.then((_) => {
|
||||||
this.input = ''
|
this.input = ''
|
||||||
|
@ -212,11 +238,11 @@ export default {
|
||||||
})
|
})
|
||||||
.catch((_) => { })
|
.catch((_) => { })
|
||||||
},
|
},
|
||||||
handleClose2() {
|
handleClose2 () {
|
||||||
this.dialogVisible = false
|
this.dialogVisible = false
|
||||||
this.input = ''
|
this.input = ''
|
||||||
},
|
},
|
||||||
downloadFile2(url) {
|
downloadFile2 (url) {
|
||||||
console.log(window.SITE_CONFIG.previewUrl)
|
console.log(window.SITE_CONFIG.previewUrl)
|
||||||
window.open(
|
window.open(
|
||||||
window.SITE_CONFIG.previewUrl +
|
window.SITE_CONFIG.previewUrl +
|
||||||
|
@ -225,7 +251,7 @@ export default {
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
// 获取信息
|
// 获取信息
|
||||||
getInfo() {
|
getInfo () {
|
||||||
let params = ''
|
let params = ''
|
||||||
if (this.dataForm.taskId) {
|
if (this.dataForm.taskId) {
|
||||||
params = `taskId=${this.dataForm.taskId}`
|
params = `taskId=${this.dataForm.taskId}`
|
||||||
|
@ -344,7 +370,7 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 申请能力
|
// 申请能力
|
||||||
applyData() {
|
applyData () {
|
||||||
this.$http
|
this.$http
|
||||||
.get(`/resource/select/${this.dataForm.instanceId}`)
|
.get(`/resource/select/${this.dataForm.instanceId}`)
|
||||||
.then(({ data: res }) => {
|
.then(({ data: res }) => {
|
||||||
|
@ -436,7 +462,7 @@ export default {
|
||||||
1000,
|
1000,
|
||||||
{ leading: true, trailing: false }
|
{ leading: true, trailing: false }
|
||||||
),
|
),
|
||||||
tabRemoveHandle(tabName) {
|
tabRemoveHandle (tabName) {
|
||||||
console.log(tabName, 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')
|
console.log(tabName, 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')
|
||||||
if (tabName === 'home') {
|
if (tabName === 'home') {
|
||||||
return false
|
return false
|
||||||
|
@ -453,7 +479,7 @@ export default {
|
||||||
if (tabName === this.$store.state.contentTabsActiveName) {
|
if (tabName === this.$store.state.contentTabsActiveName) {
|
||||||
const tab =
|
const tab =
|
||||||
this.$store.state.contentTabs[
|
this.$store.state.contentTabs[
|
||||||
this.$store.state.contentTabs.length - 1
|
this.$store.state.contentTabs.length - 1
|
||||||
]
|
]
|
||||||
this.$router.push({
|
this.$router.push({
|
||||||
name: /^iframe_.+/.test(tab.name) ? 'iframe' : tab.name,
|
name: /^iframe_.+/.test(tab.name) ? 'iframe' : tab.name,
|
||||||
|
@ -463,19 +489,19 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 启动流程出错回调
|
// 启动流程出错回调
|
||||||
startProcessErrorCallback(data) {
|
startProcessErrorCallback (data) {
|
||||||
console.log(data)
|
console.log(data)
|
||||||
},
|
},
|
||||||
// 任务处理出错回调
|
// 任务处理出错回调
|
||||||
taskHandleErrorCallback(data) { },
|
taskHandleErrorCallback (data) { },
|
||||||
download(data) {
|
download (data) {
|
||||||
const alink = document.createElement('a')
|
const alink = document.createElement('a')
|
||||||
alink.download = '附件' // 文件名,大部分浏览器兼容,IE10及以下不兼容
|
alink.download = '附件' // 文件名,大部分浏览器兼容,IE10及以下不兼容
|
||||||
alink.href = data.attachment // 创建 url地址
|
alink.href = data.attachment // 创建 url地址
|
||||||
alink.click() // 自动点击
|
alink.click() // 自动点击
|
||||||
},
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted () {
|
||||||
// this.applyData()
|
// this.applyData()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -618,7 +644,7 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .agreeOr>div {
|
::v-deep .agreeOr > div {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
|
@ -628,7 +654,7 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .agreeOr>div:last-of-type {
|
::v-deep .agreeOr > div:last-of-type {
|
||||||
margin-top: 15px;
|
margin-top: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -644,7 +670,7 @@ export default {
|
||||||
border: 1px solid #0558e1;
|
border: 1px solid #0558e1;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .el-radio-button__orig-radio:checked+.el-radio-button__inner {
|
::v-deep .el-radio-button__orig-radio:checked + .el-radio-button__inner {
|
||||||
box-shadow: unset !important;
|
box-shadow: unset !important;
|
||||||
background: #0558e1;
|
background: #0558e1;
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
|
@ -677,7 +703,7 @@ export default {
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .el-radio-button__orig-radio:checked+.el-radio-button__inner {
|
::v-deep .el-radio-button__orig-radio:checked + .el-radio-button__inner {
|
||||||
box-shadow: unset !important;
|
box-shadow: unset !important;
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
background: #e83a48;
|
background: #e83a48;
|
||||||
|
|
Loading…
Reference in New Issue