-
+
+ 当前节点: {{ operation.operationName }}
+
+
-
-
-
-
{{ operation.operationName }}
-
{{ operation.remark }}
+
+
+ {{ user.name }}
+
+
+
+
+
审批人:
+
{{ user.name }}
+
+
+
{{ user.operationTime }}
+
+ 审批意见:
+
+
+
+
+
@@ -32,7 +47,6 @@
diff --git a/src/views/workflow/form/components/AmountInputback.vue b/src/views/workflow/form/components/AmountInputback.vue
index f53c2db..60b1e66 100644
--- a/src/views/workflow/form/components/AmountInputback.vue
+++ b/src/views/workflow/form/components/AmountInputback.vue
@@ -66,7 +66,7 @@ const _value = computed({
return props.value;
},
set(val) {
- console.log(val,"组件")
+ // console.log(val,"组件")
emit("update:value", val);
}
})
@@ -76,7 +76,7 @@ const chinese = computed(()=>{
})
const convertCurrency = (money) => {
- console.log("zhuanhuan ",money)
+ // console.log("zhuanhuan ",money)
//汉字的数字
const cnNums = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
//基本单位
diff --git a/src/views/workflow/form/components/TableList.vue b/src/views/workflow/form/components/TableList.vue
index a4578f4..2e648c2 100644
--- a/src/views/workflow/form/components/TableList.vue
+++ b/src/views/workflow/form/components/TableList.vue
@@ -187,7 +187,7 @@ const getMinWidth = (col) => {
}
}
const showError = (col, val) => {
- console.log('showError', val)
+ // console.log('showError', val)
if (col.props.required) {
switch (col.valueType) {
case ValueType.dept:
@@ -208,7 +208,7 @@ const delRow = (i) => {
_value.value.splice(i, 1)
}
const addRow = () => {
- console.log('添加', props.maxSize, _value.value)
+ // console.log('添加', props.maxSize, _value.value)
if (props.maxSize > 0 && _value.value.length >= props.maxSize) {
console.log('限制大小')
ElMessage.warning(`最多只能添加${props.maxSize}行`)
diff --git a/src/views/workflow/form/components/UserPicker.vue b/src/views/workflow/form/components/UserPicker.vue
index 4f8cf6a..a454767 100644
--- a/src/views/workflow/form/components/UserPicker.vue
+++ b/src/views/workflow/form/components/UserPicker.vue
@@ -79,7 +79,7 @@ const chooseUser=()=>{
userPicker.value.showUserPicker()
}
watch(() => props.perm, (newVal, oldVal) => {
- console.log('newVal',newVal,userPicker.value)
+ // console.log('newVal',newVal,userPicker.value)
});
const selected = (select) => {
@@ -93,7 +93,7 @@ const selected = (select) => {
userInfoList.push(userInfo)
}
userList.value = userInfoList
- console.log('select',userList.value)
+ // console.log('select',userList.value)
}
const delDept = (i) => {
userList.value.splice(i, 1)
diff --git a/src/views/workflow/form/config/DateTimeRangeConfig.vue b/src/views/workflow/form/config/DateTimeRangeConfig.vue
index 2756486..50fd543 100644
--- a/src/views/workflow/form/config/DateTimeRangeConfig.vue
+++ b/src/views/workflow/form/config/DateTimeRangeConfig.vue
@@ -38,7 +38,7 @@ export default {
}
},
created() {
- console.log("出发了",this.value.placeholder,!this.value.placeholder)
+ // console.log("出发了",this.value.placeholder,!this.value.placeholder)
if (undefined !== this.value.placeholder){
this.placeholder = this.value.placeholder
}else {
diff --git a/src/views/workflow/process/DefaultNodeProps.js b/src/views/workflow/process/DefaultNodeProps.js
index fa9ebdb..f2cbce8 100644
--- a/src/views/workflow/process/DefaultNodeProps.js
+++ b/src/views/workflow/process/DefaultNodeProps.js
@@ -1,118 +1,119 @@
//审批节点默认属性
export const APPROVAL_PROPS = {
- assignedType: "ASSIGN_USER", //审批类型
- mode: "AND", //会签模式
- sign: false, //是否签字
- headerBgc: '#ff943e', //节点背景颜色
- nobody: { //没有审批的的时候需要的操作
- handler: "TO_PASS", //操作
- assignedUser: [] //审批人列表
+ assignedType: "ASSIGN_USER", //审批类型
+ mode: "AND", //会签模式
+ sign: false, //是否签字
+ headerBgc: '#ff943e', //节点背景颜色
+ nobody: { //没有审批的的时候需要的操作
+ handler: "TO_PASS", //操作
+ assignedUser: [] //审批人列表
+ },
+ matrixApproval: true,
+ timeLimit: { //边界事件
+ timeout: { //超时提醒时间
+ unit: "H",
+ value: 0
},
- timeLimit: { //边界事件
- timeout: { //超时提醒时间
- unit: "H",
- value: 0
- },
- handler: { //超时提醒触发时候的操作
- type: "REFUSE", //操作
- notify: {
- once: true, //是否循环
- hour: 1
- }
- }
- },
- assignedUser: [], // 审批人列表
- formPerms: [], //表单权限
- selfSelect: { //用户自选
- multiple: false //用户自选时是否是多选
- },
- leaderTop: { //领导
- endCondition: "TOP",
- endLevel: 1,
- },
- leader: { //第几级领导
- level: 1
- },
- listener:{
- state: false,
- list:[]
- },
- roleList: [], //角色列表
- refuse: { //拒绝的操作
- type: 'TO_END', //驳回规则 TO_END TO_NODE TO_BEFORE
- target: '' //驳回到指定ID的节点
- },
- formUser: '' //表单用户
+ handler: { //超时提醒触发时候的操作
+ type: "REFUSE", //操作
+ notify: {
+ once: true, //是否循环
+ hour: 1
+ }
+ }
+ },
+ assignedUser: [], // 审批人列表
+ formPerms: [], //表单权限
+ selfSelect: { //用户自选
+ multiple: false //用户自选时是否是多选
+ },
+ leaderTop: { //领导
+ endCondition: "TOP",
+ endLevel: 1,
+ },
+ leader: { //第几级领导
+ level: 1
+ },
+ listener: {
+ state: false,
+ list: []
+ },
+ roleList: [], //角色列表
+ refuse: { //拒绝的操作
+ type: 'TO_END', //驳回规则 TO_END TO_NODE TO_BEFORE
+ target: '' //驳回到指定ID的节点
+ },
+ formUser: '' //表单用户
}
//根节点默认属性
export const ROOT_PROPS = {
- assignedUser: [], //审批人
- formPerms: [] //表单权限
+ assignedUser: [], //审批人
+ formPerms: [] //表单权限
}
//条件节点默认属性
export const CONDITION_PROPS = {
- groupsType: "OR", //条件组逻辑关系 OR、AND
- groups: [
- {
- groupType: "AND", //条件组内条件关系 OR、AND
- cids: [], //条件ID集合
- conditions: [] //组内子条件
- }
- ],
- expression: "" //自定义表达式,灵活构建逻辑关系
+ groupsType: "OR", //条件组逻辑关系 OR、AND
+ groups: [
+ {
+ groupType: "AND", //条件组内条件关系 OR、AND
+ cids: [], //条件ID集合
+ conditions: [] //组内子条件
+ }
+ ],
+ expression: "" //自定义表达式,灵活构建逻辑关系
}
//抄送节点默认属性
export const CC_PROPS = {
- shouldAdd: false,
- assignedUser: [],
- formPerms: []
+ shouldAdd: false,
+ assignedUser: [],
+ formPerms: []
}
//触发器节点默认属性
export const TRIGGER_PROPS = {
- type: 'WEBHOOK',
- http: {
- method: 'GET', //请求方法 支持GET/POST
- url: '', //URL地址,可以直接带参数
- headers: [ //http header
- {
- name: '',
- isField: true,
- value: '' //支持表达式 ${xxx} xxx为表单字段id
- }
- ],
- contentType: 'FORM', //请求参数类型
- params: [ //请求参数
- {
- name: '',
- isField: true, //是表单字段还是自定义
- value: '' //支持表达式 ${xxx} xxx为表单字段id
- }
- ],
- retry: 1,
- handlerByScript: false,
- success: 'function handlerSuccess(res) {\n return {\n state: true, \n msg: "请求成功!" \n };\n}',
- fail: 'function handlerFail(res) {\n return {\n state: true, \n msg: "请求失败!" \n };\n}'
- },
- email: {
- subject: '',
- to: [],
- cc: [],
- content: ''
- }
+ type: 'WEBHOOK',
+ http: {
+ method: 'GET', //请求方法 支持GET/POST
+ url: '', //URL地址,可以直接带参数
+ headers: [ //http header
+ {
+ name: '',
+ isField: true,
+ value: '' //支持表达式 ${xxx} xxx为表单字段id
+ }
+ ],
+ contentType: 'FORM', //请求参数类型
+ params: [ //请求参数
+ {
+ name: '',
+ isField: true, //是表单字段还是自定义
+ value: '' //支持表达式 ${xxx} xxx为表单字段id
+ }
+ ],
+ retry: 1,
+ handlerByScript: false,
+ success: 'function handlerSuccess(res) {\n return {\n state: true, \n msg: "请求成功!" \n };\n}',
+ fail: 'function handlerFail(res) {\n return {\n state: true, \n msg: "请求失败!" \n };\n}'
+ },
+ email: {
+ subject: '',
+ to: [],
+ cc: [],
+ content: ''
+ }
}
//延时节点默认属性
export const DELAY_PROPS = {
- type: "FIXED", //延时类型 FIXED:到达当前节点后延时固定时长 、AUTO:延时到 dateTime设置的时间
- time: 0, //延时时间
- unit: "M", //时间单位 D天 H小时 M分钟
- dateTime: "" //如果当天没有超过设置的此时间点,就延时到这个指定的时间,到了就直接跳过不延时
+ type: "FIXED", //延时类型 FIXED:到达当前节点后延时固定时长 、AUTO:延时到 dateTime设置的时间
+ time: 0, //延时时间
+ unit: "M", //时间单位 D天 H小时 M分钟
+ dateTime: "" //如果当天没有超过设置的此时间点,就延时到这个指定的时间,到了就直接跳过不延时
}
export default {
- APPROVAL_PROPS, CC_PROPS, DELAY_PROPS, CONDITION_PROPS, ROOT_PROPS, TRIGGER_PROPS
+ APPROVAL_PROPS, CC_PROPS, DELAY_PROPS, CONDITION_PROPS, ROOT_PROPS, TRIGGER_PROPS
}
diff --git a/src/views/workflow/process/ProcessEdit.vue b/src/views/workflow/process/ProcessEdit.vue
index 02854ee..ee52dd1 100644
--- a/src/views/workflow/process/ProcessEdit.vue
+++ b/src/views/workflow/process/ProcessEdit.vue
@@ -57,7 +57,7 @@ import ProcessSetting from "./ProcessSetting.vue";
import Ellipsis from '@/views/workflow/process/common/Ellipsis.vue'
import {getCurrentInstance} from '@vue/runtime-core';
import {useTagsView} from '@/stores/tagsview.js'
-import {ElMessageBox,ElNotification} from "element-plus";
+import {ElMessageBox, ElNotification} from "element-plus";
const tagsViewStore = useTagsView()
@@ -87,7 +87,7 @@ const validOptions = ref([
{title: '审批流程', description: '', icon: '', status: ''},
// {title: '扩展设置', description: '', icon: '', status: ''}
])
-onActivated(()=>{
+onActivated(() => {
activeSelect.value = 'processSetting'
init()
})
@@ -157,27 +157,31 @@ const loadInitFrom = () => {
type: "END",
}
],
- processFromPerms: [{
- id: "projectName",
- title: "项目名称",
- required: true,
- perm: "R"
- }, {
- id: "projectType",
- title: "项目类型",
- required: true,
- perm: "R"
- }, {
- id: "projectDesc",
- title: "项目描述",
- required: true,
- perm: "R"
- }, {
- id: "projectManager",
- title: "项目经理",
- required: true,
- perm: "R"
- }],
+ processFromPerms: [
+ {
+ id: "projectName",
+ title: "项目名称",
+ required: true,
+ perm: "R"
+ },
+ {
+ id: "projectType",
+ title: "项目类型",
+ required: true,
+ perm: "R"
+ },
+ {
+ id: "projectDesc",
+ title: "项目描述",
+ required: true,
+ perm: "R"
+ },
+ {
+ id: "projectManager",
+ title: "项目经理",
+ required: true,
+ perm: "R"
+ }],
remark: "备注说明"
}
processStore.setDesign(design)
@@ -187,17 +191,6 @@ const loadInitFrom = () => {
})
}
-const getRandomId = () => {
- let d = new Date().getTime()
- // x 是 0-9 或 a-f 范围内的一个32位十六进制数
- let id = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
- let r = (d + Math.random() * 16) % 16 | 0
- d = Math.floor(d / 16)
- return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16)
- })
- return id
-}
-
const getProcessInfo = async () => {
getProcessDefinitionInfo(params.deploymentId).then(res => {
ElNotification({
@@ -252,7 +245,7 @@ const getDefaultValidErr = () => {
}
}
const showValidFinish = (success, err) => {
- console.log("处理完成")
+ // console.log("处理完成")
validResult.value.success = success
validResult.value.finished = true
validResult.value.title = success ? '校验完成 😀' : '校验失败 '
@@ -312,11 +305,11 @@ const doPublish = () => {
type: 'warning'
}).then(() => {
let design = processStore.getDesign()
- console.log(design)
+ // console.log(design)
let template = {
...design
}
- console.log(template)
+ // console.log(template)
addProcessDefinition(template).then(res => {
ElNotification({
title: '提示',
@@ -332,7 +325,7 @@ const doPublish = () => {
ElNotification({
title: '提示',
message: err,
- type:'error'
+ type: 'error'
})
})
})
diff --git a/src/views/workflow/process/ProcessTree.vue b/src/views/workflow/process/ProcessTree.vue
index 79c1cf9..e41759b 100644
--- a/src/views/workflow/process/ProcessTree.vue
+++ b/src/views/workflow/process/ProcessTree.vue
@@ -402,7 +402,8 @@ const insertConditionsNode = (node) => {
props: deepCopy(DefaultProps.CONDITION_PROPS),
name: "条件1",
children: {}
- }, {
+ },
+ {
id: getRandomId(),
parentId: node.id,
type: "CONDITION",
@@ -437,7 +438,8 @@ const insertConcurrentsNode = (node) => {
props: deepCopy(DefaultProps.CONDITION_PROPS),
name: "分支1",
children: {}
- }, {
+ },
+ {
id: getRandomId(),
parentId: node.id,
type: "CONCURRENT",
diff --git a/src/views/workflow/process/common/AvatarEllipsis.vue b/src/views/workflow/process/common/AvatarEllipsis.vue
index 925023e..142549d 100644
--- a/src/views/workflow/process/common/AvatarEllipsis.vue
+++ b/src/views/workflow/process/common/AvatarEllipsis.vue
@@ -7,7 +7,7 @@
-
+
{
//获取部门信息
getDepartmentTree().then(res => {
deptList.value = res.data;
- console.log("获取部门信息===========", res.data);
+ // console.log("获取部门信息===========", res.data);
});
};
const filterNode = (value, data) => {
diff --git a/src/views/workflow/process/common/UserPicker.vue b/src/views/workflow/process/common/UserPicker.vue
index 523e2d7..835a571 100644
--- a/src/views/workflow/process/common/UserPicker.vue
+++ b/src/views/workflow/process/common/UserPicker.vue
@@ -5,7 +5,7 @@
+ clearable placeholder="输入昵称进行搜索">
搜索
@@ -20,7 +20,7 @@
-
+
{{ node.label }}-{{ data.companyName }}
@@ -51,6 +51,9 @@
+
+
+
{{ selectItem.name }}-{{ selectItem.companyName }}
@@ -67,9 +70,8 @@