🎉 1.3.1.RELEASE

saber
ssc 4 years ago
parent 5d48a770e4
commit 9e1b8d3b10
  1. 4
      public/cdn/avue-form-design/index.umd.min.js
  2. BIN
      public/cdn/wf-design/fonts/codicon.22349029.ttf
  3. BIN
      public/cdn/wf-design/fonts/codicon.888f9cc0.ttf
  4. 11
      src/api/plugin/workflow/process.js
  5. 12
      src/views/plugin/workflow/design/index.vue
  6. 28
      src/views/plugin/workflow/mixins/ex-form.js
  7. 17
      src/views/plugin/workflow/mixins/theme.js
  8. 42
      src/views/plugin/workflow/ops/done.vue
  9. 16
      src/views/plugin/workflow/ops/index.vue
  10. 3
      src/views/plugin/workflow/process/claim.vue
  11. 9
      src/views/plugin/workflow/process/components/button.vue
  12. 3
      src/views/plugin/workflow/process/components/detail.vue
  13. 1
      src/views/plugin/workflow/process/components/flow.vue
  14. 3
      src/views/plugin/workflow/process/copy.vue
  15. 3
      src/views/plugin/workflow/process/done.vue
  16. 13
      src/views/plugin/workflow/process/my-done.vue
  17. 18
      src/views/plugin/workflow/process/send.vue
  18. 3
      src/views/plugin/workflow/process/start.vue
  19. 3
      src/views/plugin/workflow/process/todo.vue

File diff suppressed because one or more lines are too long

@ -228,6 +228,17 @@ export const terminateProcess = (data) => {
})
}
/**
* 撤回/撤销
*/
export const withdrawTask = (data) => {
return request({
url: `${prefix}/withdrawTask`,
method: 'post',
data
})
}
/**
* 用户列表
*/

@ -205,19 +205,15 @@ export default {
dicData: [],
event: {
change: (val) => {
this.option = {}
_this.option = { menuBtn: false, readonly: true }
if (val) {
getFormByKey({ formKey: val }).then(res => {
_this.option = { ...eval('(' + res.data.data.content.replace(/this/g, '_this') + ')'), menuBtn: false, readonly: true }
_this.step1.option.group[1].display = true
setTimeout(() => {
_this.$refs.form2.clearValidate()
})
}).catch(() => {
_this.step1.option.group[1].display = false
_this.findObject(this.step1.option.group[1].column, 'form').display = false
})
} else {
_this.step1.option.group[1].display = false
_this.findObject(this.step1.option.group[1].column, 'form').display = false
}
}
},
@ -231,7 +227,7 @@ export default {
}, {
label: '表单预览',
icon: 'el-icon-view',
display: false,
display: true,
arrow: false,
column: [{
prop: 'form',

@ -1,4 +1,4 @@
import { getFormByProcessId, startProcess, detail, completeTask, transferTask, delegateTask, rollbackTask, terminateProcess, addMultiInstance } from '@/api/plugin/workflow/process'
import { getFormByProcessId, startProcess, detail, completeTask, transferTask, delegateTask, rollbackTask, terminateProcess, addMultiInstance, withdrawTask } from '@/api/plugin/workflow/process'
import Layout from '@/page/index/'
import defaultValues from './default-values'
@ -277,6 +277,28 @@ export default {
}
this.$refs['user-select'].visible = false
},
handleWithdrawTask() {
const { taskId } = this.process
this.$confirm('<p><span style="color: red;">撤销:</span>撤销终止此流程</p><p><span style="color: red;">撤回:</span>撤回到发起人重新提交,若当前流程不存在发起人节点,功能同撤销</p>', '请选择撤销/撤回操作', {
type: 'warning',
distinguishCancelAndClose: true,
confirmButtonText: '撤销',
cancelButtonText: '撤回',
dangerouslyUseHTMLString: true
}).then(() => {
withdrawTask({taskId, withdrawType: 'wf_withdraw_end'}).then(() => {
this.$message.success("操作成功")
this.handleCloseTag('/plugin/workflow/process/todo')
})
}).catch((action) => {
if (action == 'cancel') {
withdrawTask({taskId, withdrawType: 'wf_withdraw_start'}).then(() => {
this.$message.success("操作成功")
this.handleCloseTag('/plugin/workflow/process/todo')
})
}
})
},
handlePrint() { // 打印
// const watermarkText = this.userInfo.user_name + " " + this.userInfo.dept_name
// Watermark.set({ watermark_txt: watermarkText }) // 添加水印
@ -336,6 +358,10 @@ export default {
comment = '减签:' + fullMessage
ff.class = 'nodeError'
}
if (type == 'withdrawComment') {
comment = '撤销:' + fullMessage
ff.class = 'nodeWarn'
}
if (type == 'comment') {
comment = '审批:' + fullMessage
ff.class = 'nodeSuccess'

@ -14,14 +14,17 @@ export default {
},
created() {
const theme = getStore({ name: 'wf-theme' })
if (theme || theme == '') this.theme = theme
if (theme || theme == '') this.theme = theme || 'default'
},
watch: {
theme(val) {
if (val) {
import(`../styles/theme/${val}.scss`)
}
setStore({ name: 'wf-theme', content: val })
}
theme: {
handler(val) {
if (val) {
import(`../styles/theme/${val}.scss`)
}
setStore({ name: 'wf-theme', content: val })
},
immediate: true
},
},
}

@ -87,9 +87,8 @@ export default {
delBtn: false,
align: 'center',
searchSize: 'mini',
searchMenuSpan: 6,
// searchIndex: 3,
// searchIcon: true,
searchIndex: 3,
searchIcon: true,
column: [
{
label: '流程名称',
@ -106,6 +105,7 @@ export default {
{
label: '流水号',
prop: 'serialNumber',
bind: 'variables.serialNumber',
search: true,
overHidden: true
},
@ -123,7 +123,7 @@ export default {
},
{
label: '申请人',
prop: 'applyUserName',
prop: 'startUsername',
search: true
},
{
@ -142,26 +142,42 @@ export default {
},
{
label: '开始时间',
prop: 'date',
type: 'date',
prop: 'startTimeRange',
type: 'datetime',
dataType: 'string',
format: 'yyyy-MM-dd',
valueFormat: 'yyyy-MM-dd',
format: 'yyyy-MM-dd HH:mm:ss',
valueFormat: 'yyyy-MM-dd HH:mm:ss',
hide: true,
search: true,
searchRange: true,
},
{
label: '结束时间',
prop: 'date2',
type: 'date',
prop: 'endTimeRange',
type: 'datetime',
dataType: 'string',
format: 'yyyy-MM-dd',
valueFormat: 'yyyy-MM-dd',
format: 'yyyy-MM-dd HH:mm:ss',
valueFormat: 'yyyy-MM-dd HH:mm:ss',
hide: true,
search: true,
searchRange: true,
}
},
{
label: '状态',
prop: 'processIsFinished',
dicData: [{
label: '已完成',
value: 'finished'
}, {
label: '已终结',
value: 'terminate'
}, {
label: '已撤销',
value: 'withdraw'
}],
type: 'select',
search: true
},
]
},
data: [],

@ -195,10 +195,10 @@ export default {
editBtn: false,
delBtn: false,
align: 'center',
searchSize: 'mini',
searchMenuSpan: 6,
// searchIndex: 3,
// searchIcon: true,
searchSize: 'mini',
searchIndex: 3,
searchIcon: true,
column: [
{
label: '流程名称',
@ -243,7 +243,7 @@ export default {
},
{
label: '申请人',
prop: 'applyUserName',
prop: 'startUsername',
search: true
},
{
@ -268,11 +268,11 @@ export default {
},
{
label: '时间范围',
prop: 'date',
type: 'date',
prop: 'startTimeRange',
type: 'datetime',
dataType: 'string',
format: 'yyyy-MM-dd',
valueFormat: 'yyyy-MM-dd',
format: 'yyyy-MM-dd HH:mm:ss',
valueFormat: 'yyyy-MM-dd HH:mm:ss',
hide: true,
search: true,
searchRange: true,

@ -73,6 +73,9 @@ export default {
delBtn: false,
align: 'center',
searchMenuSpan: 6,
searchSize: 'mini',
searchIndex: 3,
searchIcon: true,
column: [
{
label: '流程名称',

@ -1,5 +1,5 @@
<template>
<div v-if="process.status == 'todo' || (process.status == 'done' && buttonList.find(b => b.buttonKey == 'wf_print'))">
<div>
<div style="height: 120px;"></div>
<el-row class="foot-item avue-affix"
:style="{width: isCollapse? 'calc(100% - 80px)': 'calc(100% - 260px)' }"
@ -41,6 +41,11 @@
v-loading="loading"
@click="$emit('user-select', {type: 'addInstance', checkType: 'checkbox'})">加签</el-button>
</template>
<el-button v-if="permission.wf_process_withdraw && process.isOwner && process.isReturnable"
type="warning"
size="medium"
v-loading="loading"
@click="$emit('withdraw')">撤销</el-button>
<el-button v-if="buttonList.find(b => b.buttonKey == 'wf_print')"
type="info"
size="medium"
@ -66,7 +71,7 @@ import { mapGetters } from 'vuex'
export default {
name: 'wf-button',
computed: {
...mapGetters(['isCollapse']),
...mapGetters(['isCollapse', 'permission']),
},
props: {
loading: {

@ -69,7 +69,8 @@
@user-select="handleUserSelect"
@print="handlePrint"
@rollback="handleRollbackTask"
@terminate="handleTerminateProcess"></wf-button>
@terminate="handleTerminateProcess"
@withdraw="handleWithdrawTask"></wf-button>
<!-- 人员选择弹窗 -->
<user-select ref="user-select"
:check-type="checkType"

@ -59,6 +59,7 @@ export default {
terminateComment: '终止意见',
addMultiInstanceComment: '加签',
deleteMultiInstanceComment: '减签',
withdrawComment: '撤回',
comment: '审批意见'
}
}

@ -71,6 +71,9 @@ export default {
delBtn: false,
align: 'center',
searchMenuSpan: 6,
searchSize: 'mini',
searchIndex: 3,
searchIcon: true,
column: [
{
label: '标题',

@ -73,6 +73,9 @@ export default {
delBtn: false,
align: 'center',
searchMenuSpan: 6,
searchSize: 'mini',
searchIndex: 3,
searchIcon: true,
column: [
{
label: '流程名称',

@ -69,6 +69,9 @@ export default {
delBtn: false,
align: 'center',
searchMenuSpan: 6,
searchSize: 'mini',
searchIndex: 3,
searchIcon: true,
column: [
{
label: '流程名称',
@ -101,17 +104,17 @@ export default {
prop: "category",
search: true,
},
{
label: '当前节点',
prop: 'taskName',
},
{
label: '申请人',
prop: 'startUsername',
search: true
},
{
label: '申请时间',
label: '操作节点',
prop: 'taskName',
},
{
label: '操作时间',
prop: 'createTime',
type: 'datetime',
format: 'yyyy-MM-dd HH:mm',

@ -73,6 +73,9 @@ export default {
delBtn: false,
align: 'center',
searchMenuSpan: 6,
searchSize: 'mini',
searchIndex: 3,
searchIcon: true,
column: [
{
label: '流程名称',
@ -109,11 +112,6 @@ export default {
label: '当前节点',
prop: 'taskName',
},
{
label: '申请人',
prop: 'startUsername',
search: true
},
{
label: '申请时间',
prop: 'createTime',
@ -130,7 +128,15 @@ export default {
}, {
label: '已完成',
value: 'finished'
}]
}, {
label: '已终结',
value: 'terminate'
}, {
label: '已撤销',
value: 'withdraw'
}],
type: 'select',
search: true
},
]
},

@ -18,6 +18,7 @@
@selection-change="selectionChange"
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="onLoad(page, query)"
@on-load="onLoad">
<template #menuLeft
v-if="isDev">
@ -62,6 +63,7 @@ export default {
},
selectionList: [],
option: {
size: 'mini',
height: 'auto',
calcHeight: 30,
tip: false,
@ -73,6 +75,7 @@ export default {
delBtn: false,
align: 'center',
searchMenuSpan: 6,
searchSize: 'mini',
column: [
{
label: "流程名称",

@ -73,6 +73,9 @@ export default {
delBtn: false,
align: 'center',
searchMenuSpan: 6,
searchSize: 'mini',
searchIndex: 3,
searchIcon: true,
column: [
{
label: '流程名称',

Loading…
Cancel
Save