adtec-hnyzfc-core-package 1.5.4 → 1.5.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/AddOrMinusMultiDialog.vue_vue_type_script_setup_true_lang-SYw6MXOl.js +1 -0
- package/dist/chunks/{comp.selectUser.vue_vue_type_script_setup_true_lang-BQDO393q.js → comp.selectUser.vue_vue_type_script_setup_true_lang-CctW6HRv.js} +1 -1
- package/dist/src/api/SysUserApi.d.ts +5 -0
- package/dist/src/api/SysUserApi.js +1 -1
- package/dist/src/components/business/comp.selectUser.vue.js +1 -1
- package/dist/src/components/business/comp.userForm.vue.js +1 -1
- package/dist/src/components/business/userSelectContent.vue.js +1 -1
- package/dist/src/components/workflow/TaskOperation.vue.js +1 -1
- package/dist/src/components/workflow/WorkflowTodoShell.vue.d.ts +1 -1
- package/dist/src/components/workflow/WorkflowTodoShell.vue.js +2 -2
- package/dist/src/components/workflow/components/AddOrMinusMultiDialog.vue.d.ts +5 -0
- package/dist/src/components/workflow/components/AddOrMinusMultiDialog.vue.js +1 -1
- package/dist/src/components/workflow/components/CheckDialog.vue.d.ts +5 -0
- package/dist/src/components/workflow/components/CheckDialog.vue.js +1 -1
- package/dist/src/hooks/userWorkflowHooks.d.ts +58 -3
- package/dist/src/hooks/userWorkflowHooks.js +1 -1
- package/dist/src/mixin/globalMixin.js +1 -1
- package/dist/src/plugins/plugins.js +1 -1
- package/dist/src/plugins/renderDialog.js +1 -1
- package/dist/src/utils/modules.js +2 -2
- package/dist/styles/element-ui.css +1 -1
- package/package.json +2 -1
- package/dist/chunks/AddOrMinusMultiDialog.vue_vue_type_script_setup_true_lang-Buyy5IIG.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{defineComponent as z,ref as k,useModel as H,computed as N,resolveComponent as s,resolveDirective as L,openBlock as p,createBlock as v,withCtx as u,withDirectives as $,createVNode as h,createElementVNode as G,toDisplayString as x,createElementBlock as J,Fragment as K,renderList as R,createCommentVNode as w,mergeModels as U}from"vue";import C from"../src/api/workflow/workflowInstApi.js";import{ElMessage as i}from"element-plus";import{userInfoStore as W}from"../src/stores/userInfoStore.js";import X from"../src/components/business/comp.userForm.vue.js";import Y from"../src/api/SysUserApi.js";import A from"../src/utils/FrameworkUtils.js";const re=z({__name:"AddOrMinusMultiDialog",props:U({taskId:{},dialogType:{},renderDialog:{type:Function}},{loading:{type:Boolean,default:!1},loadingModifiers:{}}),emits:U(["success"],["update:loading"]),setup(M,{expose:B,emit:T}){const d=M,V=T,I=W(),a=k({assignee:[]}),f=H(M,"loading"),c=N(()=>d.dialogType??""),r=k([]),_=k([]),E=N(()=>_.value.map(e=>e.userName||e.loginName||"")),F=N(()=>{const e=I.getUserInfo,n=e?.topDeptId||e?.mdmDeptId;return n?[n]:[]}),b=d.renderDialog,S=(e,n,l,o,t,m)=>{if(!b){console.warn("[AddOrMinusMultiDialog] 未注入 renderDialog,无法打开选人弹窗(请通过 props 传入 useDialogHooks 的 render)");return}b(e,n,l,o,t,m)},D=()=>{S(X,{multiple:!0,selectedUserCodes:[...r.value,..._.value.map(e=>e.loginName).filter(Boolean)],defalutQueryParam:{deptIds:F.value},onSuccess:async e=>{const n=Array.isArray(e)?e:e?[e]:[];if(!n.length){i.warning("请选择审批人员");return}const l=[];for(const o of n){const t=o?.code;if(!t||a.value.candidate?.some(y=>y.loginName===t))continue;try{await Y.addNBUserInfo([t])}catch{l.push(o.name||t);continue}const m={id:o.id,loginName:t,userName:o.name,deptName:o.deptName};a.value.candidate||(a.value.candidate=[]),a.value.candidate.push(m),a.value.assignee?.push(t),_.value.push(m)}l.length&&i.error(`以下人员不在用户表中且补建失败:${l.join("、")}`)}},{title:"选择新增审批人",width:"900px",top:"8vh",style:{height:"72vh"}},"dialog")},O=async()=>{if(!(!d.taskId||!d.dialogType))try{if(a.value={assignee:[]},_.value=[],f.value=!0,a.value={...await C.getTaskCandidate(d.taskId),assignee:[]},r.value=a.value.candidate?.map(e=>e.loginName)||[],d.dialogType==="minusMulti"&&r.value.length<=1){i.warning("至少需保留一名审核人,当前仅剩一名审核人,无法减签");return}a.value.assignee=[...r.value]}catch(e){A.messageError(e)}finally{f.value=!1}},P=e=>c.value==="addMulti"?r.value.includes(e):c.value==="minusMulti"?I.getUserInfo.userCode===e:!1;return B({resetQuery:O,confirm:async()=>{if(a.value.candidate?.length==0){i.warning("请指定执行人!");return}if(c.value==="addMulti"){if(a.value.assignee.length==0){i.warning("请指定执行人!");return}if(a.value.assignee.length<=r.value.length){i.warning("加签必须选择非原审批人!");return}}else if(c.value==="minusMulti"){if(a.value.assignee.length<1){i.warning("至少需保留一名审核人");return}if(a.value.assignee.length>=r.value.length){i.warning("减签必须取消选中原审批人!");return}}try{f.value=!0,a.value.type=c.value,await C.addOrMinusAssignee(a.value),i.success("操作成功"),V("success")}catch(e){A.messageError(e)}finally{f.value=!1}}}),(e,n)=>{const l=s("el-form-item"),o=s("el-checkbox"),t=s("el-checkbox-group"),m=s("el-icons"),y=s("el-input"),j=s("el-form"),Q=s("el-flex"),q=L("loading");return p(),v(Q,{vertical:!0,height:"100%"},{default:u(()=>[$((p(),v(j,{labelPosition:"top",size:"default",style:{width:"100%"}},{default:u(()=>[h(l,{label:"任务名"},{default:u(()=>[G("span",null,x(a.value?.taskName)+"("+x(a.value?.procName)+")",1)]),_:1}),h(l,{label:"审批人",required:!0},{default:u(()=>[a.value?.candidate&&a.value?.candidate.length>0?(p(),v(t,{key:0,modelValue:a.value.assignee,"onUpdate:modelValue":n[0]||(n[0]=g=>a.value.assignee=g)},{default:u(()=>[(p(!0),J(K,null,R(a.value?.candidate,g=>(p(),v(o,{disabled:P(g.loginName),key:g.loginName,label:g.userName,value:g.loginName},null,8,["disabled","label","value"]))),128))]),_:1},8,["modelValue"])):w("v-if",!0)]),_:1}),w(" 加签选人:与转办/产品经理同一套主数据选人,默认本部门 "),c.value==="addMulti"?(p(),v(l,{key:0,label:"新增审批人"},{default:u(()=>[h(y,{"model-value":E.value.join("、"),readonly:"",placeholder:"请选择新增审批人",onClick:D},{append:u(()=>[h(m,{"model-value":"adtec-adduser",tip:"选择新增审批人",style:{cursor:"pointer"},onClick:D})]),_:1},8,["model-value"])]),_:1})):w("v-if",!0)]),_:1})),[[q,f.value]])]),_:1})}}});export{re as _};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{defineComponent as C,watch as x,nextTick as B,ref as w,resolveComponent as
|
|
1
|
+
import{defineComponent as C,watch as x,nextTick as B,ref as w,resolveComponent as d,openBlock as i,createBlock as s,isRef as L,unref as p,withCtx as a,createCommentVNode as b,createVNode as c,createTextVNode as y}from"vue";import{useVModel as M}from"@vueuse/core";import N from"../src/api/EmployeeInfoApi.js";import Q from"../src/components/business/comp.userForm.vue.js";const F=C({__name:"comp.selectUser",props:{modelValue:{type:Boolean},title:{default:"选择人员"},fetchData:{type:Function,default:N.getMdmEmployeeListByIds},defalutQueryParam:{default:{}},diagLogLoading:{type:Boolean,default:!1},multiple:{type:Boolean,default:!0}},emits:["update:modelValue","update:diagLogLoading","success"],setup(o,{emit:V}){const r=o;x(()=>r.modelValue,l=>{l&&B(()=>{u.value?.resetQuery()})});const m=V,t=M(r,"modelValue",m),u=w(),v=async()=>{await u.value?.confirm()},g=async l=>{m("success",l)};return(l,e)=>{const f=d("el-button"),k=d("el-drawer");return i(),s(k,{modelValue:p(t),"onUpdate:modelValue":e[1]||(e[1]=n=>L(t)?t.value=n:null),title:o.title,size:"850px",onClose:e[2]||(e[2]=n=>t.value=!1)},{footer:a(()=>[c(f,{onClick:e[0]||(e[0]=n=>t.value=!1)},{default:a(()=>[...e[3]||(e[3]=[y("取消",-1)])]),_:1}),c(f,{type:"primary",onClick:v},{default:a(()=>[...e[4]||(e[4]=[y("确定",-1)])]),_:1})]),default:a(()=>[p(t)?(i(),s(Q,{key:0,ref_key:"ref_form",ref:u,multiple:o.multiple,"fetch-data":o.fetchData,onSuccess:g,"defalut-query-param":o.defalutQueryParam},null,8,["multiple","fetch-data","defalut-query-param"])):b("v-if",!0)]),_:1},8,["modelValue","title"])}}});export{F as _};
|
|
@@ -24,5 +24,10 @@ declare const _default: {
|
|
|
24
24
|
* 转办时获取可选人员,包含外部人员。
|
|
25
25
|
*/
|
|
26
26
|
getSysUserInfoUserSelectForTransfer(): Promise<ISysUserInfo[]>;
|
|
27
|
+
/**
|
|
28
|
+
* 按工号补建用户:主数据人员尚未进入 sys_user_info 时使用;
|
|
29
|
+
* 已存在的工号直接返回,不会重复新增,主数据里查不到时抛出业务异常。
|
|
30
|
+
*/
|
|
31
|
+
addNBUserInfo(userCodes: string[]): Promise<ISysUserInfo[]>;
|
|
27
32
|
};
|
|
28
33
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import t from"../utils/request.js";import"../utils/AxiosConfig.js";import"axios";import"../utils/uuid.js";import"uuid";import"../utils/encrypt.js";import"jsencrypt";import"../utils/behaviorTrack.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../utils/behaviorContext.js";import"../utils/dateTime.js";import"element-plus";import"../utils/frontendBus.js";import"../utils/globalLoading.js";import"vue";import"../utils/workflowTaskContext.js";import"../config/GlobalLoadingConfig.js";const e="/api/system/sysUserInfo/",
|
|
1
|
+
import t from"../utils/request.js";import"../utils/AxiosConfig.js";import"axios";import"../utils/uuid.js";import"uuid";import"../utils/encrypt.js";import"jsencrypt";import"../utils/behaviorTrack.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../utils/behaviorContext.js";import"../utils/dateTime.js";import"element-plus";import"../utils/frontendBus.js";import"../utils/globalLoading.js";import"vue";import"../utils/workflowTaskContext.js";import"../config/GlobalLoadingConfig.js";const e="/api/system/sysUserInfo/",C={add(r){return t.post(e+"add",r)},getInitUserListComp(r){return t.post(e+"getInitUserListComp",r)},getSysRoleUserByRoleId(r){return t.get(`/api/system/roleInfo/getSysRoleUserByRoleId/${r}`)},getSysUserInfoUserSelectComp(){return t.post(e+"getSysUserInfoUserSelectComp")},getSysUserInfoUserSelectForTransfer(){return t.post(e+"getSysUserInfoUserSelectForTransfer")},addNBUserInfo(r){return t.post(e+"addNBUserInfo",r)}};export{C as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as o}from"../../../chunks/comp.selectUser.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
import{_ as o}from"../../../chunks/comp.selectUser.vue_vue_type_script_setup_true_lang-CctW6HRv.js";import"vue";import"@vueuse/core";import"../../api/EmployeeInfoApi.js";import"../../utils/request.js";import"../../utils/AxiosConfig.js";import"axios";import"../../utils/uuid.js";import"uuid";import"../../utils/encrypt.js";import"jsencrypt";import"../../utils/behaviorTrack.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../../utils/behaviorContext.js";import"../../utils/dateTime.js";import"element-plus";import"../../utils/frontendBus.js";import"../../utils/globalLoading.js";import"../../utils/workflowTaskContext.js";import"../../config/GlobalLoadingConfig.js";import"./comp.userForm.vue.js";import"../../api/DeptInfoApi.js";import"../../hooks/useResetRefHooks.js";import"../../utils/FrameworkUtils.js";import"xlsx-js-style";import"../../config/vxeSelectColumn.js";import"../../../chunks/ElTagDisplay.vue_vue_type_script_setup_true_lang-DQXuYsW_.js";/* empty css */import"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";export{o as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{defineComponent as le,ref as v,reactive as oe,resolveComponent as c,resolveDirective as ae,withDirectives as re,openBlock as w,createBlock as
|
|
1
|
+
import{defineComponent as le,ref as v,reactive as oe,resolveComponent as c,resolveDirective as ae,withDirectives as re,openBlock as w,createBlock as V,withCtx as g,createVNode as u,unref as s,createCommentVNode as E,createElementBlock as N,Fragment as se,renderList as ie,createTextVNode as ne,toDisplayString as de,mergeProps as ce,nextTick as O}from"vue";import"@vueuse/core";import{ElMessage as ue}from"element-plus";import pe from"../../api/DeptInfoApi.js";import P from"../../api/EmployeeInfoApi.js";import{useResetRefHooks as x}from"../../hooks/useResetRefHooks.js";import I from"../../utils/FrameworkUtils.js";import{checkboxColumn as me,radioColumn as fe}from"../../config/vxeSelectColumn.js";import{_ as ve}from"../../../chunks/ElTagDisplay.vue_vue_type_script_setup_true_lang-DQXuYsW_.js";/* empty css */import{_ as ge}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../../utils/request.js";import"../../utils/AxiosConfig.js";import"axios";import"../../utils/uuid.js";import"uuid";import"../../utils/encrypt.js";import"jsencrypt";import"../../utils/behaviorTrack.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../../utils/behaviorContext.js";import"../../utils/dateTime.js";import"../../utils/frontendBus.js";import"../../utils/globalLoading.js";import"../../utils/workflowTaskContext.js";import"../../config/GlobalLoadingConfig.js";import"xlsx-js-style";const he={key:0,class:"user-form__selected"},_e=le({__name:"comp.userForm",props:{fetchData:{type:Function,default:P.getMdmEmployeeListByIds},defalutQueryParam:{default:{disabled:!1,deptIds:[]}},multiple:{type:Boolean,default:!0},showOrgInfo:{type:Boolean,default:!0},selectedUserCodes:{default:()=>[]}},emits:["success"],setup(z,{expose:B,emit:D}){const n=z,[o,S]=x({current:1,size:I.getPageSize(),...n.defalutQueryParam}),L=D,_=v([]),y=v(!1),R=v(),m=v(),f=v(""),h=v(),b=v(),[a,M]=x([]),[p,Q]=x({records:[],total:0,pages:0,current:1}),T=[n.multiple?{...me,checkboxConfig:{checkMethod:({row:e})=>e.isValid==="1",trigger:"row"}}:fe,{align:"left",field:"name",title:"用户姓名",width:120,showOverflow:!0},{align:"left",field:"postName",title:"岗位名称",width:120,showOverflow:!0},{align:"left",field:"deptName",title:"所属部门",showOverflow:!0},...n.showOrgInfo?[{align:"left",field:"orgName",title:"所属组织",width:220,showOverflow:!0}]:[]],F=oe({border:!0,height:"100%",columnConfig:{resizable:!1},radioConfig:{highlight:!0,trigger:"row"},checkboxConfig:{highlight:!1,range:!1,trigger:"row"},columns:T}),q=({row:e,rowIndex:t})=>{if(e.isValid!=="1")return"table-row-disabled"},A=async()=>{try{_.value=await pe.getMdmOrgDeptTree({})}catch(e){I.messageError(e)}},J=e=>{e.id===f.value?(h.value=void 0,f.value="",m.value?.clearRadioRow()):(f.value=e.id,h.value=e,m.value?.setRadioRow(e))},K=({row:e,checked:t})=>{e&&(t?a.value.some(l=>l.code===e.code)||a.value.push(e):a.value=a.value.filter(l=>l.code!==e.code))},$=({checked:e})=>{const t=p.value?.records??[];if(e){const l=a.value.map(r=>r.code);t.forEach(r=>{l.includes(r.code)||a.value.push(r)})}else{const l=t.map(r=>r.code);a.value=a.value.filter(r=>!l.includes(r.code))}},H=({row:e})=>{n.multiple||J(e)},U=async()=>{y.value=!0,_.value&&_.value.length||await A(),M(),Q(),R.value?.resetFields(),b.value?.setCheckedKeys([]),S(),o.value={...o.value,...n.defalutQueryParam},await j(),O(()=>{b.value?.setCheckedKeys(o.value.deptIds??[]),C()})},j=async()=>{const e=(n.selectedUserCodes||[]).filter(Boolean);if(!e.length)return;const t=[];await Promise.all(e.map(async l=>{try{const r=await P.getMdmEmployeeBaseInfo(l);r?.code&&t.push(r)}catch{}})),a.value=e.map(l=>t.find(r=>r.code===l)).filter(Boolean),!n.multiple&&a.value.length&&(f.value=a.value[0].id,h.value=a.value[0])},C=async()=>{try{y.value=!0;let e=[],t;o.value.deptIds&&o.value.deptIds.length&&o.value.deptIds.forEach(d=>{_.value.findIndex(k=>k.id===d)>=0?t=d:e.push(d)});let l=JSON.parse(JSON.stringify(o.value));l.deptIds=e,l.orgId=t,p.value=await n.fetchData(l);const r=a.value.map(d=>d.code);O(()=>{p.value.records.forEach(d=>{r.includes(d.code)&&(n.multiple?m.value?.setCheckboxRow(d,!0):d.id===f.value&&m.value?.setRadioRow(d))})}),o.value.current=p.value.current}catch(e){I.messageError(e)}finally{y.value=!1}},G=e=>{a.value=a.value.filter(l=>l.code!==e.code);const t=p.value.records.find(l=>l.code===e.code);t&&(n.multiple?m.value?.setCheckboxRow(t,!1):t.id===f.value&&(h.value=void 0,f.value="",m.value?.clearRadioRow()))};return B({confirm:async()=>{!a.value.length&&n.multiple||!h.value&&!n.multiple?ue.warning("未选择需要新增的人员!"):L("success",n.multiple?a.value:h.value)},resetQuery:U}),(e,t)=>{const l=c("el-tree-select"),r=c("el-form-item"),d=c("el-input"),k=c("el-form"),W=c("el-search"),X=c("el-title"),Y=c("el-tooltip"),Z=c("el-grid"),ee=c("el-flex"),te=ae("loading");return re((w(),V(ee,{vertical:!0,gap:"var(--space-8)"},{default:g(()=>[u(W,{class:"border",style:{"border-bottom":"var(--border)"},onReset:U,onSearch:C},{default:g(()=>[u(k,{ref_key:"queryRef",ref:R,inline:!0,model:s(o),style:{width:"100%",height:"100%"},labelPosition:"top",size:"default"},{default:g(()=>[u(r,{style:{width:"220px"},label:"所属部门",prop:"deptIds"},{default:g(()=>[u(l,{ref_key:"ref_tree",ref:b,"check-strictly":"",disabled:s(o).disabled,modelValue:s(o).deptIds,"onUpdate:modelValue":t[0]||(t[0]=i=>s(o).deptIds=i),data:_.value,filterable:"",multiple:"","default-expand-all":!0,props:{label:"name",children:"children",disabled:i=>i.isValid!=="1"||s(o).disabled},"render-after-expand":!1,clearable:"","collapse-tags":"","collapse-tags-tooltip":"","node-key":"id",placeholder:"请选择所属部门"},null,8,["disabled","modelValue","data","props"])]),_:1}),u(r,{style:{width:"220px"},label:"人员编码或名称",prop:"codeorname"},{default:g(()=>[u(d,{modelValue:s(o).codeorname,"onUpdate:modelValue":t[1]||(t[1]=i=>s(o).codeorname=i),clearable:"",placeholder:"请输入人员编码或名称"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1}),u(X,{class:"border",style:{"border-bottom":"var(--border)"},title:"人员列表"}),E(" 已选人员:间距由容器 gap 统一控制(空列表不渲染,避免多出一段 8px 间距) "),s(a).length?(w(),N("div",he,[(w(!0),N(se,null,ie(s(a),i=>(w(),V(ve,{key:i.code,closable:"",onClose:we=>G(i)},{default:g(()=>[u(Y,{placement:"top",content:i.deptName},{default:g(()=>[ne(de(i.name),1)]),_:2},1032,["content"])]),_:2},1032,["onClose"]))),128))])):E("v-if",!0),u(Z,ce({ref_key:"gridRef",ref:m},F,{data:s(p)?.records,total:s(p)?.total?s(p)?.total:0,pagination:"","current-page":s(o).current,"onUpdate:currentPage":t[2]||(t[2]=i=>s(o).current=i),"page-size":s(o).size,"onUpdate:pageSize":t[3]||(t[3]=i=>s(o).size=i),"row-class-name":q,style:{width:"100%"},onCheckboxChange:K,onCheckboxAll:$,onCellClick:H,onCurrentChange:C}),null,16,["data","total","current-page","page-size"])]),_:1})),[[te,y.value]])}}}),Ge=ge(_e,[["__scopeId","data-v-c6576c13"]]);export{Ge as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{defineComponent as G,ref as m,shallowRef as O,onMounted as P,resolveComponent as p,resolveDirective as Q,withDirectives as W,openBlock as f,createBlock as v,withCtx as s,createVNode as n,createCommentVNode as L,normalizeStyle as T,createTextVNode as I,toDisplayString as w,createElementBlock as M,Fragment as J,renderList as X,nextTick as Z}from"vue";import{watchDebounced as ee}from"@vueuse/core";import te from"../../api/BasicApi.js";import U from"../../api/SysUserApi.js";import"element-plus";import re from"../../utils/FrameworkUtils.js";import{_ as le}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../../utils/request.js";import"../../utils/AxiosConfig.js";import"axios";import"../../utils/uuid.js";import"uuid";import"../../utils/encrypt.js";import"jsencrypt";import"../../utils/behaviorTrack.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../../utils/behaviorContext.js";import"../../utils/dateTime.js";import"../../utils/frontendBus.js";import"../../utils/globalLoading.js";import"../../utils/workflowTaskContext.js";import"../../config/GlobalLoadingConfig.js";import"xlsx-js-style";const oe=G({__name:"userSelectContent",props:{selectedUserIds:{type:Array,default:()=>[]},roleId:{type:String,default:""},multiple:{type:Boolean,default:!1},includeExternal:{type:Boolean,default:!1},onConfirm:{type:Function,default:void 0}},emits:["success"],setup(V,{expose:H,emit:K}){const C=m(!1),b=O([]),c=m([]),
|
|
1
|
+
import{defineComponent as G,ref as m,shallowRef as O,onMounted as P,resolveComponent as p,resolveDirective as Q,withDirectives as W,openBlock as f,createBlock as v,withCtx as s,createVNode as n,createCommentVNode as L,normalizeStyle as T,createTextVNode as I,toDisplayString as w,createElementBlock as M,Fragment as J,renderList as X,nextTick as Z}from"vue";import{watchDebounced as ee}from"@vueuse/core";import te from"../../api/BasicApi.js";import U from"../../api/SysUserApi.js";import"element-plus";import re from"../../utils/FrameworkUtils.js";import{_ as le}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../../utils/request.js";import"../../utils/AxiosConfig.js";import"axios";import"../../utils/uuid.js";import"uuid";import"../../utils/encrypt.js";import"jsencrypt";import"../../utils/behaviorTrack.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../../utils/behaviorContext.js";import"../../utils/dateTime.js";import"../../utils/frontendBus.js";import"../../utils/globalLoading.js";import"../../utils/workflowTaskContext.js";import"../../config/GlobalLoadingConfig.js";import"xlsx-js-style";const oe=G({__name:"userSelectContent",props:{selectedUserIds:{type:Array,default:()=>[]},roleId:{type:String,default:""},multiple:{type:Boolean,default:!1},includeExternal:{type:Boolean,default:!1},onConfirm:{type:Function,default:void 0}},emits:["success"],setup(V,{expose:H,emit:K}){const C=m(!1),b=O([]),c=m([]),E=m([]),_=m([]),y=m(),g=m("");let S=new Map,B=!1;const h=V,R=K;ee(g,l=>{y.value?.filter(l.trim())},{debounce:200,maxWait:500});const Y=(l,e)=>{if(!l)return!0;const t=l.toLocaleLowerCase();return String(e.name??"").toLocaleLowerCase().includes(t)||String(e.code??"").toLocaleLowerCase().includes(t)};function $(l){const e=c.value.findIndex(t=>t.id===l.id);if(e!==-1){c.value.splice(e,1);const t=c.value.map(r=>r.id);y.value?.setCheckedKeys(t)}}const z=async()=>{_.value=[];let l=h.selectedUserIds;h.roleId&&(l=(await U.getSysRoleUserByRoleId(h.roleId)||[]).map(t=>t.sysUserInfoId).filter(Boolean).map(t=>String(t))),l.length&&(c.value=await U.getInitUserListComp(l),c.value.forEach(e=>{e.id&&_.value.push(String(e.id))}))},D=(l,e,t)=>{e.id&&l.push({id:e.id,code:e.loginName,name:e.userName,parentId:t,type:"YH",sex:e.sex})},A=l=>{const e=new Map;return S=new Map,l.forEach(t=>{if(t.id&&S.set(t.id,t),!t.mdmDeptId)return;const r=e.get(t.mdmDeptId);r?r.push(t):e.set(t.mdmDeptId,[t])}),e},N=async()=>{if(!B){B=!0,C.value=!0,c.value=[],b.value=[],g.value="";try{const l=h.includeExternal?U.getSysUserInfoUserSelectForTransfer():U.getSysUserInfoUserSelectComp(),[e,t]=await Promise.all([te.getMdmOrgDeptTree(),l,z()]),r=[];e.forEach(i=>{i.children?.forEach(o=>{o.parentId=i.id}),r.push(...j(i))});const d=[],a=A(t),u=new Set;r.forEach(i=>{i.type="BM",a.get(i.id)?.forEach(o=>{D(d,o,i.id),o.id&&u.add(o.id)})});const x=t.filter(i=>i.isIup==="0"&&!!i.id&&!u.has(i.id));if(x.length){const i="__external_users__";r.push({id:i,code:i,name:"外部人员",parentId:null,type:"BM"}),x.forEach(o=>D(d,o,i))}const k=F([...r,...d]);E.value=k.map(i=>i.id),b.value=k,await Z(),y.value?.setCheckedKeys(_.value)}catch(l){re.messageError(l)}finally{C.value=!1}}};P(()=>{N()});function F(l){const e=new Map,t=[];return l.forEach(r=>{e.set(r.id,{...r,children:[]})}),l.forEach(r=>{const d=e.get(r.id);if(r.parentId===null)t.push(d);else{const a=e.get(r.parentId);a&&a.children.push(d)}}),t}function j(l){const e=[];function t(r){r&&(e.push({id:r.id,code:r.code,name:r.name,parentId:r.parentId}),r.children&&r.children.length>0&&r.children.forEach(d=>t(d)))}return t(l),e}const q=()=>{const l=y.value?.getCheckedNodes().filter(e=>e.type==="YH")??[];c.value=l.map(e=>S.get(e.id)).filter(e=>e!==void 0)};return H({resetQuery:N,confirm:async()=>{await h.onConfirm?.(c.value),R("success",c.value)},reset:()=>{c.value=[]}}),(l,e)=>{const t=p("el-title"),r=p("el-search-input"),d=p("el-icons"),a=p("el-flex"),u=p("el-text"),x=p("el-tree"),k=p("el-icon-btn"),i=Q("loading");return W((f(),v(a,{vertical:!0,style:{height:"100%"}},{default:s(()=>[n(a,{vertical:!1},{default:s(()=>[n(a,{vertical:!0,style:{"padding-right":"15px"}},{default:s(()=>[n(t,{title:"人员列表",style:{"border-bottom":"var(--border)"}}),n(r,{modelValue:g.value,"onUpdate:modelValue":e[0]||(e[0]=o=>g.value=o),"show-action":!1,placeholder:"请输入用户名称或者编码进行搜索"},null,8,["modelValue"]),n(a,{vertical:!0},{default:s(()=>[n(x,{style:{width:"100%"},"filter-node-method":Y,"show-checkbox":"",ref_key:"ref_tree",ref:y,data:b.value,onCheck:q,"node-key":"id","default-expanded-keys":E.value,"default-checked-keys":_.value,props:{label:"name",children:"children"}},{default:s(({data:o})=>[n(a,{align:"center"},{default:s(()=>[n(a,{align:"center",justify:"center",width:"20px"},{default:s(()=>[o.type==="BM"?(f(),v(d,{key:0,"model-value":"adtec-dept",style:{color:"var(--el-color-primary)"}})):L("v-if",!0),o.type==="YH"?(f(),v(d,{key:1,"model-value":"adtec-user",style:T({color:o.sex==="1"?"#ef5fa6":"var(--el-color-primary)"})},null,8,["style"])):L("v-if",!0)]),_:2},1024),n(a,{align:"center"},{default:s(()=>[o.type==="YH"?(f(),v(u,{key:0},{default:s(()=>[I(w(o.name+`(${o.code})`),1)]),_:2},1024)):(f(),v(u,{key:1},{default:s(()=>[I(w(o.name),1)]),_:2},1024))]),_:2},1024)]),_:2},1024)]),_:1},8,["data","default-expanded-keys","default-checked-keys"])]),_:1})]),_:1}),n(a,{vertical:!0,style:{"border-left":"var(--border)","padding-left":"15px"}},{default:s(()=>[n(t,{title:`已选人员(${c.value.length})`,style:{"border-bottom":"var(--border)","margin-top":"5px"}},null,8,["title"]),n(a,{vertical:!0},{default:s(()=>[(f(!0),M(J,null,X(c.value,o=>(f(),M("div",{key:o.id,class:"user-select"},[n(a,{height:"50px",style:{"border-bottom":"var(--border)",cursor:"pointer"}},{default:s(()=>[n(a,{align:"center",width:"30px"},{default:s(()=>[n(d,{"model-value":"adtec-user",style:T([{"font-size":"20px"},{color:o.sex==="1"?"#ef5fa6":"var(--el-color-primary)"}])},null,8,["style"])]),_:2},1024),n(a,{align:"center",vertical:!0,justify:"flex-start"},{default:s(()=>[n(a,null,{default:s(()=>[n(u,null,{default:s(()=>[I(w(o.userName+`(${o.loginName})`),1)]),_:2},1024)]),_:2},1024),n(a,{align:"flex-start",height:"18px",style:{overflow:"hidden"}},{default:s(()=>[n(u,{style:{"font-size":"12px",opacity:"0.8","margin-bottom":"8px"}},{default:s(()=>[I(w(o.deptName),1)]),_:2},1024)]),_:2},1024)]),_:2},1024),n(a,{width:"50px",align:"center"},{default:s(()=>[n(k,{onClick:se=>$(o),"model-value":"adtec-close",style:{opacity:"0.8",cursor:"pointer"}},null,8,["onClick"])]),_:2},1024)]),_:2},1024)]))),128))]),_:1})]),_:1})]),_:1})]),_:1})),[[i,C.value]])}}}),Le=le(oe,[["__scopeId","data-v-22875bfe"]]);export{Le as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{defineComponent as Q,ref as g,useModel as X,computed as Y,onMounted as Z,watch as _,resolveComponent as
|
|
1
|
+
import{defineComponent as Q,ref as g,useModel as X,computed as Y,onMounted as Z,watch as _,resolveComponent as F,openBlock as s,createElementBlock as S,createVNode as ee,withCtx as u,renderSlot as $,createBlock as m,createTextVNode as f,toDisplayString as v,createCommentVNode as d,unref as te,Fragment as ae,mergeModels as P}from"vue";import w from"../../api/workflow/workflowInstApi.js";import oe from"./components/SelectAssigneeDialog.vue.js";import{_ as re}from"../../../chunks/AddOrMinusMultiDialog.vue_vue_type_script_setup_true_lang-SYw6MXOl.js";import ne from"./components/CheckDialog.vue.js";import q from"../../utils/FrameworkUtils.js";import{userInfoStore as y}from"../../stores/userInfoStore.js";import{frontendBus as L}from"../../utils/frontendBus.js";import{showTodoDialog as ie}from"../../hooks/workflowTodo.js";import{_ as le}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../../utils/request.js";import"../../utils/AxiosConfig.js";import"axios";import"../../utils/uuid.js";import"uuid";import"../../utils/encrypt.js";import"jsencrypt";import"../../utils/behaviorTrack.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../../utils/behaviorContext.js";import"../../utils/dateTime.js";import"element-plus";import"../../utils/globalLoading.js";import"../../utils/workflowTaskContext.js";import"../../config/GlobalLoadingConfig.js";import"../business/comp.userForm.vue.js";import"@vueuse/core";import"../../api/DeptInfoApi.js";import"../../api/EmployeeInfoApi.js";import"../../hooks/useResetRefHooks.js";import"../../config/vxeSelectColumn.js";import"../../../chunks/ElTagDisplay.vue_vue_type_script_setup_true_lang-DQXuYsW_.js";/* empty css */import"xlsx-js-style";import"../../api/SysUserApi.js";import"../bpmntree/components/UserSelector/UserTag.vue.js";import"../upload/CustomElUpload.vue.js";import"@element-plus/icons-vue";import"../../hooks/useFileView.js";import"../../api/DocumentApi.js";import"../../hooks/useDeleteConfirmHooks.js";import"../../hooks/useBehaviorAction.js";import"../../utils/uploadAccept.js";import"../../utils/buildUploadHeaders.js";import"pinia";import"../../utils/userSessionStorage.js";import"../../hooks/usePermissionHooks.js";import"vue-router";import"../../stores/permissionStore.js";import"../../utils/operationAuth.js";import"../../utils/routeMetaParams.js";import"../../hooks/useOpenNewMenu.js";import"../../utils/commonUtils.js";import"../../utils/tree.js";const se=Q({__name:"TaskOperation",props:P({taskId:{type:String,required:!1},showProcessBtn:{type:Boolean,required:!1,default:!1},params:{type:Object,required:!1},taskInfo:{type:Object,required:!1},showOperationsBtn:{type:Boolean,required:!1,default:!0},showCurWorkBth:{type:Boolean,required:!1,default:!0},onProcessDetail:{type:Function,required:!1},renderDialog:{type:Function,required:!1}},{butLoading:{type:Boolean,default:!1},butLoadingModifiers:{}}),emits:P(["success"],["update:butLoading"]),setup(o,{expose:h,emit:A}){const E=y(),B=g(null),n=o,i=X(o,"butLoading"),T=A,e=g({taskId:"",comment:""}),b=n.renderDialog,k=(t,a,r,x,p,J)=>{if(!b){console.warn("[TaskOperation] 未注入 renderDialog,无法打开操作弹窗(请通过 props 传入 useDialogHooks 的 render)");return}b(t,a,r,x,p,J)},N=()=>{typeof n.onProcessDetail=="function"&&n.onProcessDetail(e.value)},I=Y(()=>e.value?.operations==="assignee"),D=g(""),R=g([{source:"edit"}]),U=async()=>{await ie(g(e.value),R)},c=async t=>{if(t&&(D.value=t),!e.value)return;let a=!1;if(t==="complete"&&n.params?.beforeCompleteFunction)try{const r=await n.params?.beforeCompleteFunction({taskId:e.value.taskId,userId:y().getUserInfo.userCode,comment:"同意。",procInsId:e.value.procInsId,procDefKey:e.value.procDefKey});if(r===!1)return;r?.readonly&&(a=!0),e.value={...e.value,...r}}catch{return}if(t==="addMulti"||t==="minusMulti")k(re,{taskId:e.value.taskId,dialogType:t,renderDialog:k},{title:t==="addMulti"?"加签":"减签",size:"400px"},"dialog");else if(t==="assignee")O(e.value.taskId);else{if(e.value.variables,t==="complete"&&e.value.firstSubmitNode&&n.params?.ignoreConfirm){await V();return}k(ne,{taskVo:e.value,dialogType:t,taskOperate:n?.params,commentReadonly:a,renderDialog:k,onOpenAssignee:O,onSuccess:z},{title:K(t),size:"480px",closeOnClickModal:!1},"dialog")}},K=t=>{switch(t){case"complete":return"流程审批";case"refuse":return"终止审批";case"back":return"驳回审批";case"transfer":return"转办审批";default:return"流程审批"}},V=async()=>{if(!(!e.value||!y().getUserInfo.userCode))try{i.value=!0;const t={taskId:e.value.taskId,userId:y().getUserInfo.userCode,comment:e.value.comment??"",procInsId:e.value.procInsId,procDefKey:e.value.procDefKey,variables:e.value.variables};if(n.params?.completeFunction){const a=await n.params?.completeFunction(t);a&&a?.taskId?e.value=a:e.value=await w.getTaskInst(e.value.taskId)}else e.value=await w.taskComplete(t)}catch(t){q.messageError(t)}finally{i.value=!1}},j=()=>{n.params?.workflowComplete(),T("success")},O=t=>{k(oe,{taskId:t,onSuccess:j},{title:"指定执行人",size:"450px"},"dialog")},z=t=>{e.value=t,n.params?.workflowComplete(t,D.value),L.emit("todoRefresh"),L.emit("homePageRefresh"),T("success")},M=(t,a)=>t?t.classList?.contains(a)?t:M(t.parentElement,a):null,W=()=>{const t=M(B.value,"todo-dialog-class");return t?console.log("找到满足条件的元素:",t):console.log("未找到满足条件的元素"),t};Z(()=>{W(),C()});const l=g(!1),H=async()=>{l.value=!0},G=()=>{l.value=!1},C=async()=>{if(n.taskInfo)e.value=n.taskInfo,e.value.finishTime&&console.log("该待办已完成!");else if(n.taskId)try{H(),e.value=await w.getTaskInst(n.taskId),e.value.finishTime&&console.log("该待办已完成!")}catch(t){q.messageError(t)}finally{G()}};return h({reload:()=>{C()}}),_(()=>n.taskId,C),(t,a)=>{const r=F("el-button"),x=F("el-flex");return s(),S("div",{ref_key:"taskFlexRef",ref:B,class:"task-operation"},[ee(x,{align:"center",justify:"flex-end"},{default:u(()=>[$(t.$slots,"left",{},void 0,!0),o.params?.cancelBtnText!==""?(s(),m(r,{key:0,loading:i.value||l.value,onClick:o.params?.cancelFunction},{default:u(()=>[f(v(o.params?.cancelBtnText??"取消"),1)]),_:1},8,["loading","onClick"])):d("v-if",!0),o.showProcessBtn&&e.value?.procInsId?(s(),m(r,{key:1,type:"info",loading:i.value||l.value,onClick:N},{default:u(()=>[...a[7]||(a[7]=[f(" 流程信息 ",-1)])]),_:1},8,["loading"])):d("v-if",!0),!I.value&&e.value?.taskId&&o.showCurWorkBth&&!o.showOperationsBtn?(s(),m(r,{key:2,loading:i.value||l.value,type:"warning",disabled:e.value?.taskId&&(!e.value?.operations||te(E).getUserInfo.userCode!==e.value?.assigneeId),onClick:U},{default:u(()=>[f(v(e.value.taskName),1)]),_:1},8,["loading","disabled"])):d("v-if",!0),I.value?(s(),m(r,{key:3,type:"primary",loading:i.value||l.value,onClick:a[0]||(a[0]=p=>c("assignee"))},{default:u(()=>[...a[8]||(a[8]=[f("指定执行人 ",-1)])]),_:1},8,["loading"])):d("v-if",!0),!I.value&&e.value?.taskId&&e.value?.operations&&o.showOperationsBtn?(s(),S(ae,{key:4},[o.params?.saveBtnText?(s(),m(r,{key:0,loading:i.value||l.value,type:"primary",onClick:o.params?.saveFunction},{default:u(()=>[f(v(o.params?.saveBtnText),1)]),_:1},8,["loading","onClick"])):d("v-if",!0),e.value?.operations.indexOf("addMulti")>-1?(s(),m(r,{key:1,type:"warning",loading:i.value||l.value,onClick:a[1]||(a[1]=p=>c("addMulti"))},{default:u(()=>[...a[9]||(a[9]=[f("加签 ",-1)])]),_:1},8,["loading"])):d("v-if",!0),e.value?.operations.indexOf("minusMulti")>-1?(s(),m(r,{key:2,type:"danger",loading:i.value||l.value,onClick:a[2]||(a[2]=p=>c("minusMulti"))},{default:u(()=>[...a[10]||(a[10]=[f("减签 ",-1)])]),_:1},8,["loading"])):d("v-if",!0),e.value?.operations.indexOf("refuse")>-1&&o.params?.refuseBtnText!==""?(s(),m(r,{key:3,loading:i.value||l.value,type:"danger",onClick:a[3]||(a[3]=p=>c("refuse"))},{default:u(()=>[f(v(o.params?.refuseBtnText??"终止"),1)]),_:1},8,["loading"])):d("v-if",!0),e.value?.operations.indexOf("transfer")>-1&&o.params?.transferBtnText!==""?(s(),m(r,{key:4,loading:i.value||l.value,type:"warning",onClick:a[4]||(a[4]=p=>c("transfer"))},{default:u(()=>[f(v(o.params?.transferBtnText??"转办"),1)]),_:1},8,["loading"])):d("v-if",!0),e.value?.operations.indexOf("back")>-1&&o.params?.backBtnText!==""?(s(),m(r,{key:5,loading:i.value||l.value,type:"danger",onClick:a[5]||(a[5]=p=>c("back"))},{default:u(()=>[f(v(o.params?.backBtnText??"驳回"),1)]),_:1},8,["loading"])):d("v-if",!0),e.value?.operations.indexOf("complete")>-1&&o.params?.completeBtnText!==""?(s(),m(r,{key:6,loading:i.value||l.value,type:"primary",onClick:a[6]||(a[6]=p=>c("complete"))},{default:u(()=>[f(v(o.params?.completeBtnText??"同意"),1)]),_:1},8,["loading"])):d("v-if",!0)],64)):d("v-if",!0),$(t.$slots,"right",{},void 0,!0)]),_:3})],512)}}}),mt=le(se,[["__scopeId","data-v-d4567dcf"]]);export{mt as default};
|
|
@@ -32,8 +32,8 @@ declare const __VLS_component: import("vue").DefineComponent<__VLS_PublicProps,
|
|
|
32
32
|
}>, {
|
|
33
33
|
readonly: boolean;
|
|
34
34
|
showFooter: boolean;
|
|
35
|
-
taskInfo: IWfTaskVo;
|
|
36
35
|
renderDialog: (...args: any[]) => any;
|
|
36
|
+
taskInfo: IWfTaskVo;
|
|
37
37
|
contentComponent: Component;
|
|
38
38
|
contentProps: Record<string, unknown>;
|
|
39
39
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import{defineComponent as ge,useModel as Ie,ref as A,computed as y,resolveComponent as h,resolveDirective as Te,openBlock as a,createElementBlock as r,createCommentVNode as d,withDirectives as xe,createVNode as D,createElementVNode as i,createBlock as x,Fragment as u,renderList as C,normalizeClass as H,toDisplayString as p,renderSlot as Ce,resolveDynamicComponent as be,mergeProps as Ne,withCtx as K,normalizeStyle as De,createTextVNode as b,unref as J,mergeModels as X,nextTick as Ae}from"vue";import V from"../../api/workflow/workflowInstApi.js";import Ke from"../../api/DocumentApi.js";import Be from"../../hooks/useFileView.js";import Ee from"../../utils/FrameworkUtils.js";import{formatDateTime as Le}from"../../utils/dateTime.js";import{userInfoStore as Me}from"../../stores/userInfoStore.js";import Se from"./TaskOperation.vue.js";import{_ as Pe}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../../utils/request.js";import"../../utils/AxiosConfig.js";import"axios";import"../../utils/uuid.js";import"uuid";import"../../utils/encrypt.js";import"jsencrypt";import"../../utils/behaviorTrack.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../../utils/behaviorContext.js";import"element-plus";import"../../utils/frontendBus.js";import"../../utils/globalLoading.js";import"../../utils/workflowTaskContext.js";import"../../config/GlobalLoadingConfig.js";import"xlsx-js-style";import"pinia";import"../../utils/userSessionStorage.js";import"./components/SelectAssigneeDialog.vue.js";import"../../../chunks/AddOrMinusMultiDialog.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
import{defineComponent as ge,useModel as Ie,ref as A,computed as y,resolveComponent as h,resolveDirective as Te,openBlock as a,createElementBlock as r,createCommentVNode as d,withDirectives as xe,createVNode as D,createElementVNode as i,createBlock as x,Fragment as u,renderList as C,normalizeClass as H,toDisplayString as p,renderSlot as Ce,resolveDynamicComponent as be,mergeProps as Ne,withCtx as K,normalizeStyle as De,createTextVNode as b,unref as J,mergeModels as X,nextTick as Ae}from"vue";import V from"../../api/workflow/workflowInstApi.js";import Ke from"../../api/DocumentApi.js";import Be from"../../hooks/useFileView.js";import Ee from"../../utils/FrameworkUtils.js";import{formatDateTime as Le}from"../../utils/dateTime.js";import{userInfoStore as Me}from"../../stores/userInfoStore.js";import Se from"./TaskOperation.vue.js";import{_ as Pe}from"../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../../utils/request.js";import"../../utils/AxiosConfig.js";import"axios";import"../../utils/uuid.js";import"uuid";import"../../utils/encrypt.js";import"jsencrypt";import"../../utils/behaviorTrack.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../../utils/behaviorContext.js";import"element-plus";import"../../utils/frontendBus.js";import"../../utils/globalLoading.js";import"../../utils/workflowTaskContext.js";import"../../config/GlobalLoadingConfig.js";import"xlsx-js-style";import"pinia";import"../../utils/userSessionStorage.js";import"./components/SelectAssigneeDialog.vue.js";import"../../../chunks/AddOrMinusMultiDialog.vue_vue_type_script_setup_true_lang-SYw6MXOl.js";import"../business/comp.userForm.vue.js";import"@vueuse/core";import"../../api/DeptInfoApi.js";import"../../api/EmployeeInfoApi.js";import"../../hooks/useResetRefHooks.js";import"../../config/vxeSelectColumn.js";import"../../../chunks/ElTagDisplay.vue_vue_type_script_setup_true_lang-DQXuYsW_.js";/* empty css */import"../../api/SysUserApi.js";import"./components/CheckDialog.vue.js";import"../bpmntree/components/UserSelector/UserTag.vue.js";import"../upload/CustomElUpload.vue.js";import"@element-plus/icons-vue";import"../../hooks/useDeleteConfirmHooks.js";import"../../hooks/useBehaviorAction.js";import"../../utils/uploadAccept.js";import"../../utils/buildUploadHeaders.js";import"../../hooks/workflowTodo.js";import"../../hooks/usePermissionHooks.js";import"vue-router";import"../../stores/permissionStore.js";import"../../utils/operationAuth.js";import"../../utils/routeMetaParams.js";import"../../hooks/useOpenNewMenu.js";import"../../utils/commonUtils.js";import"../../utils/tree.js";const $e={class:"workflow-todo-shell"},Ve={class:"workflow-todo-shell__body dialog-content-fill"},je={key:1,class:"wf-progress-scroll"},Fe={class:"wf-progress-steps"},Oe={class:"wf-progress-step__icon-wrap"},Ue={class:"wf-progress-step__icon"},ze={key:0,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"},Re={key:4},Qe={class:"wf-progress-step__name"},Ge={class:"wf-progress-step__name-text"},We={class:"wf-progress-step__name-label"},Ye={key:0,class:"wf-progress-step__occurrence"},qe={key:0,class:"workflow-todo-shell__record-occurrence"},He={key:1,class:"workflow-todo-shell__record-type"},Je={key:0,class:"workflow-todo-shell__record-user"},Xe={class:"workflow-todo-shell__record-person__name"},Ze={key:0,class:"workflow-todo-shell__comment"},et={key:0,class:"workflow-todo-shell__record-files"},tt=["onClick"],st={class:"workflow-todo-shell__record-person__name"},ot={key:0,class:"workflow-todo-shell__comment"},nt={key:1,class:"workflow-todo-shell__record-files"},at=["onClick"],rt={class:"workflow-todo-shell__record-person__name"},lt={key:0,class:"workflow-todo-shell__footer"},it=ge({__name:"WorkflowTodoShell",props:X({taskId:{},taskInfo:{default:void 0},readonly:{type:Boolean,default:!1},contentComponent:{default:void 0},contentProps:{default:()=>({})},renderDialog:{type:Function,default:void 0},showFooter:{type:Boolean,default:!0}},{loading:{type:Boolean,default:!1},loadingModifiers:{}}),emits:X(["cancel","success"],["update:loading"]),setup(w,{expose:Z,emit:ee}){const m=w,B=ee,g=Ie(w,"loading"),v=A(),f=A(),E=A(),L=A(!1),te=e=>[...e].sort((t,o)=>(t.createTime||"").localeCompare(o.createTime||"")),j=y(()=>te([...f.value?.hisTasks||[],...f.value?.activeTasks||[]])),M=A({}),F=Be().fileView,O=e=>{const t=(e.split(".").pop()||"").toLowerCase();return".jpg,.jpeg,.png,.gif,.bmp".includes(t)?"adtec-image":t==="pdf"?"adtec-pdf":t==="doc"||t==="docx"?"adtec-word":t==="xls"||t==="xlsx"?"adtec-excel":t==="ppt"||t==="pptx"?"adtec-ppt":"adtec-text"},N=e=>e?M.value[e]||[]:[],se=async()=>{var t;const e=Array.from(new Set(j.value.map(o=>o.taskId).filter(o=>!!o)));if(e.length)try{const o=await Ke.getUpLoadFilesByBussinessIds(e),n={};for(const l of o)l.businessId&&(n[t=l.businessId]||(n[t]=[])).push(l);M.value=n}catch{M.value={}}},S=y(()=>{const e=new Map;for(const t of j.value){const o=Y(t),n=e.get(o);n?n.tasks.push(t):e.set(o,{taskName:t.taskName,taskDefKey:t.taskDefKey,parentExecutionId:t.parentExecutionId,tasks:[t],approvalType:t.approvalType})}return Array.from(e.values())}),oe=y(()=>v.value?.procEndTime?!0:!!(f.value&&!(f.value.activeTasks||[]).length&&(f.value.hisTasks||[]).length)),ne=y(()=>{const e=[...S.value],t=new Set(e.map(n=>U(n)));for(const n of f.value?.futureTasks||[]){const l=`${n.taskDefKey||n.taskName}-`;t.has(l)||e.push({taskName:n.taskName,taskDefKey:n.taskDefKey,tasks:[],assigneeNames:n.assigneeNames,approvalType:n.approvalType})}const o=new Map;for(const n of e){const l=n.taskDefKey||n.taskName||"";l&&(n.occurrence=(o.get(l)||0)+1,o.set(l,n.occurrence))}return e}),U=e=>`${e.taskDefKey||e.taskName}-${e.parentExecutionId||""}`,ae={single:"或签",joint:"会签",all:"会签"},z=e=>ae[e.approvalType||e.tasks[0]?.approvalType||""]||"",re=e=>(e.approvalType||e.tasks[0]?.approvalType||"")==="single",R=e=>{const t=(e.assigneeNames||"").split(",").map(o=>o.trim()).filter(Boolean);return t.length?t:["待处理"]},le={1:{label:"同意",type:"success"},2:{label:"驳回",type:"warning"},3:{label:"终止",type:"danger"},4:{label:"委派",type:"warning"},5:{label:"转办",type:"warning"},6:{label:"终止",type:"danger"},7:{label:"撤回",type:"info"}},ie=e=>Le(e.finishTime||e.createTime),ce={success:"var(--el-color-success)",warning:"var(--el-color-warning)",danger:"var(--el-color-danger)",primary:"var(--el-color-primary)"},de=e=>ce[e]||"",I=e=>{if(!e.tasks.length)return{label:"等待",type:"info",hollow:!1};const t=e.tasks;if(t.some(l=>!l.finishTime))return{label:"进行中",type:"primary",hollow:!1};let o="已办",n="success";if(t.some(l=>l.taskLocalVars?.firstTask))o="提交";else{const l=[...t].sort((k,$)=>($.finishTime||"").localeCompare(k.finishTime||""))[0]?.commentList?.[0],T=le[l?.type||""];o=T?.label||"已办",n=T?.type||"success"}return{label:o,type:n,hollow:!1}},Q=e=>{const t=e.assigneeName||e.startUserName||"待处理";return e.finishTime?`${t} · ${ie(e)}`:t},pe=e=>e.tasks.length?e.tasks.map(Q).join(" / "):R(e).join(" / "),P=e=>e.tasks.map(t=>t.comment).filter(Boolean).join(" / "),G=y(()=>{const e=new Map,t=[];for(const o of S.value){const n=o.taskDefKey||o.taskName||"";if(!n)continue;const l=o.tasks.some(k=>!k.finishTime)?"process":I(o).type,T=e.get(n);if(T!==void 0){const k=t[T];k.occurrence=(k.occurrence||1)+1,k.parentExecutionId=o.parentExecutionId,k.status=l;continue}e.set(n,t.length),t.push({taskName:o.taskName,taskDefKey:o.taskDefKey,parentExecutionId:o.parentExecutionId,status:l,occurrence:1})}for(const o of f.value?.futureTasks||[]){const n=o.taskDefKey||o.taskName||"";if(!n)continue;const l=e.get(n);if(l!==void 0){t[l].status="wait";continue}e.set(n,t.length),t.push({taskName:o.taskName,taskDefKey:o.taskDefKey,status:"wait"})}return t.push({taskName:"结束",taskDefKey:"__end__",status:oe.value?"success":"wait"}),t}),W=e=>{const t=Me().getUserInfo.userCode;return!t||!e?!1:!!(e.assigneeId===t||e.candidate&&e.candidate.split(",").map(n=>n.trim()).filter(Boolean).includes(t))},ue=y(()=>W(v.value)?!0:(f.value?.activeTasks||[]).some(e=>W(e))),me=y(()=>m.readonly||!!v.value?.finishTime||!!v.value?.procEndTime||L.value&&!(f.value?.activeTasks||[]).length||!ue.value),fe=y(()=>E.value?.taskOption),ke=y(()=>{const e=fe.value;return{...e||{},cancelFunction:(...t)=>{e?.cancelFunction?.(...t),B("cancel")},workflowComplete:(...t)=>{e?.workflowComplete?.(...t)}}}),Y=e=>`${e.taskDefKey||e.taskName}-${e.parentExecutionId||""}`,q=async(e,t=!1)=>{const o=m.taskInfo&&m.taskInfo.procInsId==null&&m.taskInfo.processInstanceId!=null?{...m.taskInfo,procInsId:m.taskInfo.processInstanceId}:m.taskInfo;if(!(!m.taskId&&!o?.procInsId))try{g.value=!0,L.value=!1,v.value=e?{...v.value,...e}:t&&m.taskId?await V.getTaskInst(m.taskId):o||await V.getTaskInst(m.taskId),v.value?.procInsId&&(f.value=await V.getProcessTaskList(v.value.procInsId)),L.value=!0,await se(),await Ae(),await E.value?.resetQuery?.()}catch(n){Ee.messageError(n)}finally{g.value=!1}},ve=async e=>{B("success",e),await q(e,!0)};return Z({resetQuery:async()=>{await q()}}),(e,t)=>{const o=h("el-title"),n=h("el-empty"),l=h("el-tag-display"),T=h("el-flex"),k=h("el-icons"),$=h("el-timeline-item"),_e=h("el-timeline"),ye=h("el-button"),we=Te("loading");return a(),r("div",$e,[d(`
|
|
2
2
|
内容区撑满剩余空间统一使用 dialog-content-fill(flex/height 由核心工具类提供),
|
|
3
3
|
滚动仅保留在本内容区,底部操作栏固定不随内容滚动。
|
|
4
4
|
`),xe((a(),r("div",Ve,[D(o,{level:"1",title:"流程进度",style:{"border-bottom":"var(--border)"}}),i("div",null,[G.value.length?(a(),r("div",je,[i("div",Fe,[(a(!0),r(u,null,C(G.value,(s,c)=>(a(),r("div",{key:Y(s),class:H(["wf-progress-step",{done:s.status==="success",current:s.status==="process",rejected:s.status==="warning",stopped:s.status==="error"||s.status==="danger"}])},[i("div",Oe,[i("div",Ue,[d(" 同意/提交:对勾 "),s.status==="success"?(a(),r("svg",ze,[...t[3]||(t[3]=[i("path",{d:"M20 6L9 17l-5-5"},null,-1)])])):s.status==="warning"?(a(),r(u,{key:1},[d(" 驳回:回退箭头 "),t[4]||(t[4]=i("svg",{viewBox:"0 0 24 24",fill:"currentColor"},[i("path",{d:"M10 9V5l-7 7 7 7v-4.1c5 0 8.5 1.6 11 5.1-1-5-4-10-11-11z"})],-1))],2112)):s.status==="danger"||s.status==="error"?(a(),r(u,{key:2},[d(" 终止:叉 "),t[5]||(t[5]=i("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round","stroke-linejoin":"round"},[i("path",{d:"M18 6L6 18"}),i("path",{d:"M6 6l12 12"})],-1))],2112)):s.status==="info"?(a(),r(u,{key:3},[d(" 撤回:撤销箭头 "),t[6]||(t[6]=i("svg",{viewBox:"0 0 24 24",fill:"currentColor"},[i("path",{d:"M12.5 8c-2.65 0-5.05.99-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8z"})],-1))],2112)):(a(),r("span",Re,p(c+1),1))])]),i("div",Qe,[i("span",Ge,[i("span",We,p(s.taskName||"未命名节点"),1),s.occurrence&&s.occurrence>1?(a(),r("sup",Ye,p(s.occurrence),1)):d("v-if",!0)])])],2))),128))])])):(a(),x(n,{key:0,description:"暂无流程进度","image-size":48}))]),d(`
|
|
5
5
|
业务审核内容:完全由业务内容组件/插槽决定(含它自己的标题、分区、网格),
|
|
6
6
|
通用抽屉不再注入任何标题,业务页面给什么就展示什么。
|
|
7
|
-
`),Ce(e.$slots,"content",{task:v.value,process:
|
|
7
|
+
`),Ce(e.$slots,"content",{task:v.value,process:f.value},()=>[w.contentComponent?(a(),x(be(w.contentComponent),Ne({key:0,ref_key:"contentRef",ref:E},w.contentProps,{loading:g.value,"onUpdate:loading":t[0]||(t[0]=s=>g.value=s)}),null,16,["loading"])):d("v-if",!0)],!0),D(o,{level:"1",title:"审批记录",style:{"border-bottom":"var(--border)"}}),i("div",null,[S.value.length?(a(),x(_e,{key:1,class:"workflow-todo-shell__timeline"},{default:K(()=>[(a(!0),r(u,null,C(ne.value,s=>(a(),x($,{key:U(s),type:I(s).type,hollow:I(s).hollow,style:De({"--el-timeline-node-color":de(I(s).type)})},{default:K(()=>[D(T,{align:"center",justify:"space-between",class:H(["workflow-todo-shell__record-title",`is-${I(s).type}`])},{default:K(()=>[i("span",null,[b(p(s.taskName||"未命名节点")+" ",1),(s.occurrence||0)>1?(a(),r("span",qe,p(s.occurrence),1)):d("v-if",!0),z(s)?(a(),r("span",He,p(z(s)),1)):d("v-if",!0)]),D(l,{type:I(s).type,size:"small"},{default:K(()=>[b(p(I(s).label),1)]),_:2},1032,["type"])]),_:2},1032,["class"]),re(s)?(a(),r("div",Je,[i("span",Xe,p(pe(s)),1),P(s)||s.tasks.some(c=>N(c.taskId).length)?(a(),r("div",Ze,[P(s)?(a(),r(u,{key:0},[b(p(P(s)),1)],64)):d("v-if",!0),(a(!0),r(u,null,C(s.tasks,c=>(a(),r(u,{key:c.taskId},[N(c.taskId).length?(a(),r("div",et,[(a(!0),r(u,null,C(N(c.taskId),_=>(a(),r("span",{key:_.id,class:"workflow-todo-shell__record-file",onClick:he=>J(F)(_.id)},[D(k,{"model-value":O(_.name)},null,8,["model-value"]),b(p(_.name),1)],8,tt))),128))])):d("v-if",!0)],64))),128))])):d("v-if",!0)])):s.tasks.length?(a(!0),r(u,{key:1},C(s.tasks,c=>(a(),r("div",{key:c.taskId,class:"workflow-todo-shell__record-user"},[i("span",st,p(Q(c)),1),c.comment||N(c.taskId).length?(a(),r("div",ot,[c.comment?(a(),r(u,{key:0},[b(p(c.comment),1)],64)):d("v-if",!0),N(c.taskId).length?(a(),r("div",nt,[(a(!0),r(u,null,C(N(c.taskId),_=>(a(),r("span",{key:_.id,class:"workflow-todo-shell__record-file",onClick:he=>J(F)(_.id)},[D(k,{"model-value":O(_.name)},null,8,["model-value"]),b(p(_.name),1)],8,at))),128))])):d("v-if",!0)])):d("v-if",!0)]))),128)):(a(!0),r(u,{key:2},C(R(s),c=>(a(),r("div",{key:c,class:"workflow-todo-shell__record-user"},[i("span",rt,p(c),1)]))),128))]),_:2},1032,["type","hollow","style"]))),128))]),_:1})):(a(),x(n,{key:0,description:"暂无审批记录","image-size":48}))])])),[[we,g.value]]),w.showFooter?(a(),r("div",lt,[me.value?(a(),x(ye,{key:0,onClick:t[1]||(t[1]=s=>B("cancel"))},{default:K(()=>[...t[7]||(t[7]=[b("取消",-1)])]),_:1})):(a(),x(Se,{key:1,"task-id":w.taskId,params:ke.value,"render-dialog":w.renderDialog,"show-process-btn":!1,"but-loading":g.value,"onUpdate:butLoading":t[2]||(t[2]=s=>g.value=s),onSuccess:ve},null,8,["task-id","params","render-dialog","but-loading"]))])):d("v-if",!0)])}}}),us=Pe(it,[["__scopeId","data-v-dd40a8b4"]]);export{us as default};
|
|
@@ -3,6 +3,11 @@ type __VLS_Props = {
|
|
|
3
3
|
taskId?: string;
|
|
4
4
|
/** addMulti:加签 minusMulti:减签 */
|
|
5
5
|
dialogType?: string;
|
|
6
|
+
/**
|
|
7
|
+
* useDialogHooks 的 render(由业务侧注入);未注入时选人弹窗会告警跳过,
|
|
8
|
+
* 便于核心包组件脱离具体工程独立使用。
|
|
9
|
+
*/
|
|
10
|
+
renderDialog?: (...args: any[]) => any;
|
|
6
11
|
};
|
|
7
12
|
type __VLS_PublicProps = __VLS_Props & {
|
|
8
13
|
"loading"?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as o}from"../../../../chunks/AddOrMinusMultiDialog.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
import{_ as o}from"../../../../chunks/AddOrMinusMultiDialog.vue_vue_type_script_setup_true_lang-SYw6MXOl.js";import"vue";import"../../../api/workflow/workflowInstApi.js";import"../../../utils/request.js";import"../../../utils/AxiosConfig.js";import"axios";import"../../../utils/uuid.js";import"uuid";import"../../../utils/encrypt.js";import"jsencrypt";import"../../../utils/behaviorTrack.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../../../utils/behaviorContext.js";import"../../../utils/dateTime.js";import"element-plus";import"../../../utils/frontendBus.js";import"../../../utils/globalLoading.js";import"../../../utils/workflowTaskContext.js";import"../../../config/GlobalLoadingConfig.js";import"../../../stores/userInfoStore.js";import"pinia";import"../../../utils/userSessionStorage.js";import"../../business/comp.userForm.vue.js";import"@vueuse/core";import"../../../api/DeptInfoApi.js";import"../../../api/EmployeeInfoApi.js";import"../../../hooks/useResetRefHooks.js";import"../../../utils/FrameworkUtils.js";import"xlsx-js-style";import"../../../config/vxeSelectColumn.js";import"../../../../chunks/ElTagDisplay.vue_vue_type_script_setup_true_lang-DQXuYsW_.js";/* empty css */import"../../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../../../api/SysUserApi.js";export{o as default};
|
|
@@ -9,6 +9,11 @@ type __VLS_Props = {
|
|
|
9
9
|
taskOperate?: ITaskOperate;
|
|
10
10
|
/** 是否只读(自定义同意函数返回 readonly 时) */
|
|
11
11
|
commentReadonly?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* useDialogHooks 的 render(由业务侧注入);未注入时转办选人弹窗会告警跳过,
|
|
14
|
+
* 便于核心包组件脱离具体工程独立使用。
|
|
15
|
+
*/
|
|
16
|
+
renderDialog?: (...args: any[]) => any;
|
|
12
17
|
};
|
|
13
18
|
type __VLS_PublicProps = __VLS_Props & {
|
|
14
19
|
"loading"?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{defineComponent as
|
|
1
|
+
import{defineComponent as te,useModel as ae,ref as y,computed as V,resolveComponent as d,resolveDirective as le,withDirectives as re,openBlock as n,createBlock as f,withCtx as o,createVNode as i,createCommentVNode as U,createElementBlock as F,Fragment as N,renderList as T,normalizeClass as oe,createElementVNode as S,toDisplayString as M,mergeModels as R}from"vue";import se from"../../bpmntree/components/UserSelector/UserTag.vue.js";import p from"../../../api/workflow/workflowInstApi.js";import{ElMessage as c}from"element-plus";import ne from"../../business/comp.userForm.vue.js";import ie from"../../upload/CustomElUpload.vue.js";import{userInfoStore as I}from"../../../stores/userInfoStore.js";import j from"../../../api/DocumentApi.js";import D from"../../../utils/FrameworkUtils.js";import ue from"../../../api/SysUserApi.js";import{_ as ce}from"../../../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../../../utils/request.js";import"../../../utils/AxiosConfig.js";import"axios";import"../../../utils/uuid.js";import"uuid";import"../../../utils/encrypt.js";import"jsencrypt";import"../../../utils/behaviorTrack.js";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../../../utils/behaviorContext.js";import"../../../utils/dateTime.js";import"../../../utils/frontendBus.js";import"../../../utils/globalLoading.js";import"../../../utils/workflowTaskContext.js";import"../../../config/GlobalLoadingConfig.js";import"@vueuse/core";import"../../../api/DeptInfoApi.js";import"../../../api/EmployeeInfoApi.js";import"../../../hooks/useResetRefHooks.js";import"../../../config/vxeSelectColumn.js";import"../../../../chunks/ElTagDisplay.vue_vue_type_script_setup_true_lang-DQXuYsW_.js";/* empty css */import"xlsx-js-style";import"@element-plus/icons-vue";import"../../../hooks/useFileView.js";import"../../../hooks/useDeleteConfirmHooks.js";import"../../../hooks/useBehaviorAction.js";import"../../../utils/uploadAccept.js";import"../../../utils/buildUploadHeaders.js";import"pinia";import"../../../utils/userSessionStorage.js";const me={style:{"font-size":"16px"}},de=te({__name:"CheckDialog",props:R({taskVo:{},dialogType:{},taskOperate:{},commentReadonly:{type:Boolean},renderDialog:{type:Function}},{loading:{type:Boolean,default:!1},loadingModifiers:{}}),emits:R(["success","openAssignee"],["update:loading"]),setup(A,{expose:L,emit:z}){const s=A,O=z,b=ae(A,"loading"),h=y(""),r=V(()=>s.dialogType??""),e=y({taskId:"",comment:""}),_=y([]),m=y({}),v=y([]),k=y(""),E=y(!1),K=V(()=>e.value?.variables?.persons?.length>0),P=async()=>{const t=s.taskVo;if(t){E.value=!!s.commentReadonly,b.value=!0,e.value={...t},e.value.comment=t.comment??"";try{_.value=await j.getBusinessDocuments("workflow",t.taskId)}catch(a){c.error(a.msg),_.value=[]}if(r.value==="complete")h.value="审批意见",e.value.comment=e.value.comment?e.value.comment:"同意。";else if(r.value==="refuse")h.value="终止原因";else if(r.value==="back"){h.value="驳回原因",k.value="",v.value=[];try{v.value=await p.findReturnTaskList(e.value.taskId),v.value.length==1&&(k.value=v.value[0].taskKey)}catch(a){v.value=[],D.messageError(a)}}else r.value==="transfer"&&(h.value="转办原因",e.value.comment="",m.value={});b.value=!1}},Q=V(()=>{const t=I().getUserInfo,a=t?.topDeptId||t?.mdmDeptId;return a?[a]:[]}),B=s.renderDialog,H=(t,a,u,g,x,w)=>{if(!B){console.warn("[CheckDialog] 未注入 renderDialog,无法打开选人弹窗(请通过 props 传入 useDialogHooks 的 render)");return}B(t,a,u,g,x,w)},q=()=>{H(ne,{multiple:!1,selectedUserCodes:m.value.loginName?[m.value.loginName]:[],defalutQueryParam:{deptIds:Q.value},onSuccess:t=>{const u=(Array.isArray(t)?t:t?[t]:[])[0];u?.code&&(m.value={id:u.id,userName:u.name,loginName:u.code},W(u.code))}},{title:"选择转办人",width:"900px",top:"8vh",style:{height:"72vh"}},"dialog")},W=async t=>{try{await ue.addNBUserInfo([t])}catch(a){m.value={},D.messageError(a)}},$=I().getUserInfo.userCode;return L({resetQuery:P,confirm:async()=>{if(!(!e.value||!$))try{if(b.value=!0,_.value.length>0){const t=_.value.map(a=>a.id);if(t.length>0)try{await j.fileStatusConfirmation(t)}catch(a){D.messageError(a);return}}if(r.value==="complete"){if(!e.value.comment){c.warning("请填写审批意见!");return}if(K.value&&!e.value.variables.nextChecker?.length){c.warning("请选择下一步审核人!");return}const t={taskId:e.value.taskId,userId:I().getUserInfo.userCode,comment:e.value.comment,procInsId:e.value.procInsId,procDefKey:e.value.procDefKey,variables:e.value.variables};if(s.taskOperate?.completeFunction){const a=await s.taskOperate.completeFunction(t);a&&a?.taskId?e.value=a:e.value=await p.getTaskInst(e.value.taskId)}else e.value=await p.taskComplete(t);if(e.value.operations&&e.value.operations?.indexOf("assignee")>-1){O("openAssignee",e.value.taskId);return}}else if(r.value==="refuse"){if(!e.value.comment){c.warning("请填写终止原因!");return}const t={taskId:e.value.taskId,userId:I().getUserInfo.userCode,comment:e.value.comment,stopWorkflow:!0};s.taskOperate?.refuseFunction?(await s.taskOperate.refuseFunction(t),e.value=await p.getTaskInst(e.value.taskId)):e.value=await p.taskReject(t),c.success("中止成功")}else if(r.value==="back"){if(!e.value.comment){c.warning("请填写驳回原因!");return}if(!k.value){c.warning("请指定回退节点!");return}const t={taskId:e.value.taskId,userId:I().getUserInfo.userCode,comment:e.value.comment,targetKey:k.value,isFirstActivity:v.value.find(a=>a.taskKey===k.value)?.isFirstActivity};s.taskOperate?.backFunction?(await s.taskOperate.backFunction(t),e.value=await p.getTaskInst(e.value.taskId)):e.value=await p.taskReturn(t),c.success("回退成功")}else if(r.value==="transfer"){if(!e.value.comment){c.warning("请填写转办原因!");return}if(!m.value.loginName){c.warning("请选择转办人!");return}const t={taskId:e.value.taskId,userId:I().getUserInfo.userCode,comment:I().getUserInfo.userName+"-》"+m.value.userName+":"+e.value.comment,assignee:m.value.loginName};s.taskOperate?.transferFunction?(await s.taskOperate.transferFunction(t),e.value=await p.getTaskInst(e.value.taskId)):e.value=await p.taskTransfer(t)}O("success",e.value)}catch(t){D.messageError(t)}finally{b.value=!1}}}),(t,a)=>{const u=d("el-input"),g=d("el-form-item"),x=d("el-icons"),w=d("el-flex"),G=d("el-space"),J=d("el-card"),X=d("el-option"),Y=d("el-select"),Z=d("el-form"),ee=le("loading");return re((n(),f(w,{vertical:!0,justify:"center",height:"100%"},{default:o(()=>[i(Z,{"label-width":"80px",style:{width:"100%"}},{default:o(()=>[i(g,{label:h.value,required:r.value!=="complete"},{default:o(()=>[i(u,{readonly:E.value,disabled:e.value?.finishTime,modelValue:e.value.comment,"onUpdate:modelValue":a[0]||(a[0]=l=>e.value.comment=l),style:{width:"100%"},maxlength:255,rows:3,resize:!1,type:"textarea",placeholder:"请填入意见"},null,8,["readonly","disabled","modelValue"])]),_:1},8,["label","required"]),r.value==="transfer"?(n(),f(g,{key:0,required:r.value==="transfer",label:"转办人"},{default:o(()=>[i(u,{"model-value":m.value.userName,readonly:"",placeholder:"请选择转办人",onClick:q},{append:o(()=>[i(x,{"model-value":"adtec-adduser",tip:"选择转办人",style:{cursor:"pointer"},onClick:q})]),_:1},8,["model-value"])]),_:1},8,["required"])):U("v-if",!0),r.value==="back"&&v.value.length>1?(n(),f(g,{key:1,label:"回退节点",required:!0},{default:o(()=>[i(w,{vertical:!0,justify:"space-around"},{default:o(()=>[(n(!0),F(N,null,T(v.value,l=>(n(),f(J,{shadow:"never",style:{width:"100%","margin-bottom":"10px"},class:oe(l.taskKey==k.value?"selected-card":""),key:l.taskKey,onClick:C=>k.value=l.taskKey??""},{default:o(()=>[i(w,{justify:"space-between"},{default:o(()=>[S("span",me,M(l.taskName),1),S("span",null,"完成于:"+M(l.endTime),1)]),_:2},1024),i(w,null,{default:o(()=>[i(G,null,{default:o(()=>[(n(!0),F(N,null,T(l.users,C=>(n(),f(se,{type:"primary",closable:!1,key:C.id,"user-id":C.id,username:C.userName},null,8,["user-id","username"]))),128))]),_:2},1024)]),_:2},1024)]),_:2},1032,["class","onClick"]))),128))]),_:1})]),_:1})):U("v-if",!0),K.value?(n(),f(g,{key:2,label:"下一步审核人",required:""},{default:o(()=>[i(Y,{modelValue:e.value.variables.nextChecker,"onUpdate:modelValue":a[1]||(a[1]=l=>e.value.variables.nextChecker=l),disabled:e.value.variables.persons?.length===1,multiple:"",placeholder:"请选择下一步审核人"},{default:o(()=>[(n(!0),F(N,null,T(e.value.variables.persons,l=>(n(),f(X,{key:l.code,label:l.name,value:l.code},null,8,["label","value"]))),128))]),_:1},8,["modelValue","disabled"])]),_:1})):U("v-if",!0),r.value!=="transfer"?(n(),f(g,{key:3,label:"附件",style:{"margin-bottom":"0"}})):U("v-if",!0)]),_:1}),i(ie,{limit:5,style:{width:"100%"},"is-edit":!0,"business-id":e.value.taskId,business:"workflow","upload-files-list":_.value,"onUpdate:uploadFilesList":a[2]||(a[2]=l=>_.value=l)},null,8,["business-id","upload-files-list"])]),_:1})),[[ee,b.value]])}}}),lt=ce(de,[["__scopeId","data-v-4e86bdba"]]);export{lt as default};
|
|
@@ -33,7 +33,10 @@ export interface WorkflowParams {
|
|
|
33
33
|
}
|
|
34
34
|
export interface ITaskOperate {
|
|
35
35
|
/**
|
|
36
|
-
*
|
|
36
|
+
* 流程操作成功后的回调(组件自己已调用工作流的推进/驳回/终止接口):
|
|
37
|
+
* 业务侧在这里做自己的后续逻辑。
|
|
38
|
+
* @param taskVo 操作后的任务对象
|
|
39
|
+
* @param actionType 本次操作类型:complete / refuse / back / transfer
|
|
37
40
|
*/
|
|
38
41
|
workflowComplete: (...args: any[]) => any;
|
|
39
42
|
/**
|
|
@@ -78,11 +81,12 @@ export interface ITaskOperate {
|
|
|
78
81
|
*/
|
|
79
82
|
refuseFunction?: (vo: IWfTaskAskVo) => Promise<any>;
|
|
80
83
|
/**
|
|
81
|
-
*
|
|
84
|
+
* 流程“驳回(回退到历史节点)”按钮文本
|
|
82
85
|
*/
|
|
83
86
|
backBtnText?: string;
|
|
84
87
|
/**
|
|
85
|
-
*
|
|
88
|
+
* 流程“驳回”自定义逻辑(需自己提交工作流,有异常需抛出)
|
|
89
|
+
* 不传时由 CheckDialog 直连工作流引擎回退
|
|
86
90
|
* @param args
|
|
87
91
|
*/
|
|
88
92
|
backFunction?: (vo: IWfTaskAskVo) => Promise<any>;
|
|
@@ -98,6 +102,57 @@ export interface ITaskOperate {
|
|
|
98
102
|
transferFunction?: (vo: IWfTaskAskVo) => Promise<any>;
|
|
99
103
|
ignoreConfirm?: boolean;
|
|
100
104
|
}
|
|
105
|
+
/**
|
|
106
|
+
* 业务审批单接入配置:业务页面只声明“业务单据 + 调哪个业务接口”,
|
|
107
|
+
* 按钮文案、空实现等默认值由 {@link createApprovalOperate} 统一提供,
|
|
108
|
+
* 避免每个业务页面各手写一份 ITaskOperate。
|
|
109
|
+
*
|
|
110
|
+
* 与统一组件 TaskOperation / CheckDialog 的约定:
|
|
111
|
+
* 1. 同意 / 终止会改写业务单据状态,必须由业务回调收口,未提供时隐藏(文案置空串),
|
|
112
|
+
* 避免误点后绕过业务后端直接推进流程;
|
|
113
|
+
* 2. 驳回(回退到历史节点)/ 转办只流转工作流、不改业务状态,默认展示:未提供回调时由 CheckDialog
|
|
114
|
+
* 直连工作流引擎(taskReturn / taskTransfer)处理,与安徽中烟保持一致,无需额外的业务接口;
|
|
115
|
+
* 3. approve / reject / back / transfer 完成后返回 undefined,统一组件会重新拉取当前任务;
|
|
116
|
+
* 4. 审批必须经业务接口同步业务状态,不要直接调工作流引擎的 taskComplete / taskReject。
|
|
117
|
+
*/
|
|
118
|
+
export interface ApprovalOperateOptions {
|
|
119
|
+
/** 同意:调业务后端审批接口 */
|
|
120
|
+
approve: (vo: IWfTaskAskVo) => Promise<any>;
|
|
121
|
+
/** 终止:调业务后端接口;不提供时隐藏“终止”按钮 */
|
|
122
|
+
reject?: (vo: IWfTaskAskVo) => Promise<any>;
|
|
123
|
+
/** 驳回(回退到历史节点):调业务后端接口;不提供时由统一组件直连工作流引擎回退 */
|
|
124
|
+
back?: (vo: IWfTaskAskVo) => Promise<any>;
|
|
125
|
+
/** 转办:调业务后端接口;不提供时由统一组件直连工作流引擎转办 */
|
|
126
|
+
transfer?: (vo: IWfTaskAskVo) => Promise<any>;
|
|
127
|
+
/**
|
|
128
|
+
* 同意前置校验(弹出审批意见框之前执行):
|
|
129
|
+
* 返回 false 阻止提交;返回对象会合并进当前任务(如 { readonly: true } 使意见框只读)。
|
|
130
|
+
*/
|
|
131
|
+
beforeApprove?: (vo: IWfTaskAskVo) => Promise<unknown> | unknown;
|
|
132
|
+
/** 流程办理完成后的业务刷新逻辑 */
|
|
133
|
+
onComplete?: (...args: any[]) => any;
|
|
134
|
+
/** 取消按钮回调(默认无) */
|
|
135
|
+
onCancel?: (...args: any[]) => any;
|
|
136
|
+
/** 按钮文案覆盖,传空串表示隐藏该按钮 */
|
|
137
|
+
buttonText?: {
|
|
138
|
+
cancel?: string;
|
|
139
|
+
complete?: string;
|
|
140
|
+
refuse?: string;
|
|
141
|
+
back?: string;
|
|
142
|
+
transfer?: string;
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
/** 业务审批单统一构造器:把默认值收在一处,业务页面只负责“调哪个业务接口”。 */
|
|
146
|
+
export declare function createApprovalOperate(options: ApprovalOperateOptions): ITaskOperate;
|
|
147
|
+
/**
|
|
148
|
+
* 只承载“流程入口按钮”、不承载业务审批回调时的最小参数:
|
|
149
|
+
* 所有操作按钮文案置空(隐藏),只保留流程信息入口,
|
|
150
|
+
* 用于详情页/抽屉里点击当前节点后跳到审核抽屉或业务页面的场景。
|
|
151
|
+
*/
|
|
152
|
+
export declare function createWorkflowEntryOperate(options?: {
|
|
153
|
+
/** 流程入口点击后的刷新逻辑 */
|
|
154
|
+
onComplete?: (...args: any[]) => any;
|
|
155
|
+
}): ITaskOperate;
|
|
101
156
|
/**
|
|
102
157
|
* 暴露工作流属性
|
|
103
158
|
* @param taskOption 流程工具栏设置
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function e(
|
|
1
|
+
function o(e){const n=e.buttonText??{},c={cancelBtnText:n.cancel??"取消",saveBtnText:"",completeBtnText:n.complete??"同意",refuseBtnText:e.reject?n.refuse??"终止":"",backBtnText:n.back??"驳回",transferBtnText:n.transfer??"转办",workflowComplete:e.onComplete??(async()=>{}),cancelFunction:e.onCancel??(async()=>{}),completeFunction:async t=>{await e.approve(t)}};if(e.reject){const t=e.reject;c.refuseFunction=async r=>{await t(r)}}if(e.back){const t=e.back;c.backFunction=async r=>{await t(r)}}if(e.transfer){const t=e.transfer;c.transferFunction=async r=>{await t(r)}}if(e.beforeApprove){const t=e.beforeApprove;c.beforeCompleteFunction=async r=>{const a=await t(r);return a===!1?!1:a&&typeof a=="object"?a:void 0}}return c}function f(e){return{cancelBtnText:"",saveBtnText:"",completeBtnText:"",refuseBtnText:"",backBtnText:"",transferBtnText:"",workflowComplete:e?.onComplete??(async()=>{}),cancelFunction:async()=>{}}}function u(e,n){return{taskOption:e,initByWorkflow:n}}export{o as createApprovalOperate,f as createWorkflowEntryOperate,u as useWorkflowHooks};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as p}from"../../chunks/operationAuth.vue_vue_type_script_lang-BgqMGXbQ.js";import{_ as e}from"../../chunks/ElFlex.vue_vue_type_script_setup_true_lang-DYk3SQcE.js";import{_ as a}from"../../chunks/ElDescForm.vue_vue_type_style_index_0_lang-DRKuI9Xa.js";import s from"../components/ElContentPanel/ElContentPanel.vue.js";import n from"../components/ElSplitPanel/ElSplitPanel.vue.js";import _ from"../components/ElCardSection/ElCardSection.vue.js";import f from"../components/upload/AttachmentPreview.vue.js";import l from"../components/ElDialogBody/ElDialogBody.vue.js";import c from"../components/ElGrid/ElGrid.vue.js";import h from"../components/Search/ElSearch.vue.js";import u from"../components/Title/ElTitle.vue.js";import d from"../components/icon/ElIcons.vue.js";import E from"../components/icon/ElIconBtn.vue.js";import $ from"../components/Search/ElIconSearch.vue.js";import v from"../components/Search/ElSearchInput.vue.js";import{_ as I}from"../../chunks/ElCopyTooltip.vue_vue_type_script_setup_true_lang-MdgIHwF2.js";/* empty css */import{reportPageLeave as i,setCurrentMenu as m,reportPageActivate as b,reportFeatureOpen as g}from"../utils/behaviorTrack.js";import{_ as P}from"../../chunks/userSelect.vue_vue_type_script_setup_true_lang-DlEso2ua.js";import{_ as A}from"../../chunks/comp.selectUser.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
import{_ as p}from"../../chunks/operationAuth.vue_vue_type_script_lang-BgqMGXbQ.js";import{_ as e}from"../../chunks/ElFlex.vue_vue_type_script_setup_true_lang-DYk3SQcE.js";import{_ as a}from"../../chunks/ElDescForm.vue_vue_type_style_index_0_lang-DRKuI9Xa.js";import s from"../components/ElContentPanel/ElContentPanel.vue.js";import n from"../components/ElSplitPanel/ElSplitPanel.vue.js";import _ from"../components/ElCardSection/ElCardSection.vue.js";import f from"../components/upload/AttachmentPreview.vue.js";import l from"../components/ElDialogBody/ElDialogBody.vue.js";import c from"../components/ElGrid/ElGrid.vue.js";import h from"../components/Search/ElSearch.vue.js";import u from"../components/Title/ElTitle.vue.js";import d from"../components/icon/ElIcons.vue.js";import E from"../components/icon/ElIconBtn.vue.js";import $ from"../components/Search/ElIconSearch.vue.js";import v from"../components/Search/ElSearchInput.vue.js";import{_ as I}from"../../chunks/ElCopyTooltip.vue_vue_type_script_setup_true_lang-MdgIHwF2.js";/* empty css */import{reportPageLeave as i,setCurrentMenu as m,reportPageActivate as b,reportFeatureOpen as g}from"../utils/behaviorTrack.js";import{_ as P}from"../../chunks/userSelect.vue_vue_type_script_setup_true_lang-DlEso2ua.js";import{_ as A}from"../../chunks/comp.selectUser.vue_vue_type_script_setup_true_lang-CctW6HRv.js";import{_ as M}from"../../chunks/DictDisplay.vue_vue_type_script_setup_true_lang-DiFlFWi1.js";import{_ as D}from"../../chunks/ElScrollbars.vue_vue_type_script_setup_true_lang-0Vhrxdyr.js";import{_ as L}from"../../chunks/ElTotalTools.vue_vue_type_script_setup_true_lang-BqRnIFkw.js";import T from"../components/ElCardList.vue.js";import C from"../components/kFrame/KFrame.vue.js";import{_ as S}from"../../chunks/ElPagePagination.vue_vue_type_style_index_0_lang-CGjSyYgn.js";import{_ as y}from"../../chunks/ElCellLink.vue_vue_type_script_setup_true_lang-DXGj9pCT.js";import{_ as O}from"../../chunks/ElTagDisplay.vue_vue_type_script_setup_true_lang-DQXuYsW_.js";import{_ as F}from"../../chunks/DragHandleIcon.vue_vue_type_script_setup_true_lang-DnMWn5jY.js";import N from"../components/ElCircleBadge/ElCircleBadge.vue.js";import U from"../components/AsideCardList/AsideCardList.vue.js";import{_ as x}from"../../chunks/ElNumericInput.vue_vue_type_script_setup_true_lang-C6KlCE6f.js";import B from"../components/ElIndicatorInput/ElIndicatorInput.vue.js";import K from"../components/ElTabsPanel/ElTabsPanel.vue.js";import"vue";import"../hooks/useBehaviorAction.js";import"../utils/behaviorContext.js";import"../utils/uuid.js";import"uuid";import"axios";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../utils/encrypt.js";import"jsencrypt";import"../utils/dateTime.js";import"../hooks/useOperationAuth.js";import"vue-router";import"../stores/permissionStore.js";import"pinia";import"../utils/frontendBus.js";import"../utils/operationAuth.js";import"../stores/userInfoStore.js";import"../utils/userSessionStorage.js";import"../interface/enum/FlexEnum.js";import"@vueuse/core";import"../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"element-plus";import"../utils/FrameworkUtils.js";import"xlsx-js-style";import"../hooks/usePreviewFullscreen.js";import"../components/upload/OfficePreview.vue.js";import"../api/DocumentApi.js";import"../utils/request.js";import"../utils/AxiosConfig.js";import"../utils/globalLoading.js";import"../utils/workflowTaskContext.js";import"../config/GlobalLoadingConfig.js";import"../utils/fileDownload.js";import"../utils/officePreviewUtil.js";import"../components/upload/OfficePreviewHeaderBar.vue.js";import"@element-plus/icons-vue";import"../components/ElGrid/ElGridColumnSetting.vue.js";import"../utils/columnSettingStorage.js";import"../components/business/userSelectContent.vue.js";import"../api/BasicApi.js";import"../api/SysUserApi.js";import"../api/EmployeeInfoApi.js";import"../components/business/comp.userForm.vue.js";import"../api/DeptInfoApi.js";import"../hooks/useResetRefHooks.js";import"../config/vxeSelectColumn.js";import"../hooks/useDictHooks.js";import"../api/SysDictCacheApi.js";import"../stores/dictStore.js";import"@vueuse/components";import"../components/kFrame/IframeOptions.js";import"../components/RichTextEditor/RichTextEditor.vue.js";import"../../chunks/preload-helper-BlTxHScW.js";import"../components/RichTextEditor/richTextHtmlUtils.js";import"../components/RichTextEditor/installUmoEditorApp.js";import"tdesign-vue-next";import"../components/RichTextEditor/richTextImageUpload.js";import"../utils/buildUploadHeaders.js";import"../components/ElIndicatorInput/interface.js";const Mr={mounted(){const t=this.$route,r=t?.meta?.sysMenuData;r?.id&&m(r);const o=this.$options?.__name||this.$options?.name;this.$options?.__isPageWrapper||this.$parent?.$options?.__isPageWrapper&&r?.id&&o&&o===t?.name&&(g(r,t.fullPath),this.__behaviorMenuId=r.id,this.__behaviorActivatedOnce=!1,this.__behaviorLeft=!1)},activated(){const t=this.$route?.meta?.sysMenuData;t?.id&&m(t);const r=this.__behaviorMenuId;if(r){if(!this.__behaviorActivatedOnce){this.__behaviorActivatedOnce=!0;return}b(r),this.__behaviorLeft=!1}},deactivated(){const t=this.__behaviorMenuId;t&&(i(t,"KEEP_ALIVE_DEACTIVATE"),this.__behaviorLeft=!0)},beforeUnmount(){const t=this.__behaviorMenuId;t&&i(t,"UNMOUNT",!0,!this.__behaviorLeft)},components:{operationAuth:p,ElFlex:e,ElDescForm:a,ElContentPanel:s,ElSplitPanel:n,ElCardSection:_,AttachmentPreview:f,ElDialogBody:l,ElGrid:c,ElSearch:h,ElTitle:u,ElIcons:d,ElIconBtn:E,ElIconSearch:$,ElSearchInput:v,ElTooltip:I,userSelect:P,mdmUserSelect:A,ElScrollbars:D,ElTotalTools:L,ElCardList:T,KFrame:C,ElPagePagination:S,ElCellLink:y,ElTagDisplay:O,DictDisplay:M,DragHandleIcon:F,ElCircleBadge:N,AsideCardList:U,ElNumericInput:x,ElIndicatorInput:B,ElTabsPanel:K}};export{Mr as globalMixin};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{globalMixin as o}from"../mixin/globalMixin.js";import"../../chunks/operationAuth.vue_vue_type_script_lang-BgqMGXbQ.js";import"vue";import"../hooks/useBehaviorAction.js";import"../utils/behaviorTrack.js";import"axios";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../utils/uuid.js";import"uuid";import"../utils/behaviorContext.js";import"../utils/encrypt.js";import"jsencrypt";import"../utils/dateTime.js";import"../hooks/useOperationAuth.js";import"vue-router";import"../stores/permissionStore.js";import"pinia";import"../utils/frontendBus.js";import"../utils/operationAuth.js";import"../stores/userInfoStore.js";import"../utils/userSessionStorage.js";import"../../chunks/ElFlex.vue_vue_type_script_setup_true_lang-DYk3SQcE.js";import"../interface/enum/FlexEnum.js";import"@vueuse/core";import"../components/icon/ElIcons.vue.js";import"../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../../chunks/ElDescForm.vue_vue_type_style_index_0_lang-DRKuI9Xa.js";import"../components/ElContentPanel/ElContentPanel.vue.js";import"../components/ElSplitPanel/ElSplitPanel.vue.js";import"../components/ElCardSection/ElCardSection.vue.js";import"../components/upload/AttachmentPreview.vue.js";import"element-plus";import"../utils/FrameworkUtils.js";import"xlsx-js-style";import"../hooks/usePreviewFullscreen.js";import"../components/upload/OfficePreview.vue.js";import"../api/DocumentApi.js";import"../utils/request.js";import"../utils/AxiosConfig.js";import"../utils/globalLoading.js";import"../utils/workflowTaskContext.js";import"../config/GlobalLoadingConfig.js";import"../utils/fileDownload.js";import"../utils/officePreviewUtil.js";import"../components/upload/OfficePreviewHeaderBar.vue.js";import"@element-plus/icons-vue";import"../components/ElDialogBody/ElDialogBody.vue.js";import"../components/ElGrid/ElGrid.vue.js";import"../components/ElGrid/ElGridColumnSetting.vue.js";import"../../chunks/DragHandleIcon.vue_vue_type_script_setup_true_lang-DnMWn5jY.js";import"../utils/columnSettingStorage.js";import"../../chunks/ElTotalTools.vue_vue_type_script_setup_true_lang-BqRnIFkw.js";import"../../chunks/ElPagePagination.vue_vue_type_style_index_0_lang-CGjSyYgn.js";import"../components/Search/ElSearch.vue.js";import"../components/Title/ElTitle.vue.js";import"../components/icon/ElIconBtn.vue.js";import"../components/Search/ElIconSearch.vue.js";import"../components/Search/ElSearchInput.vue.js";import"../../chunks/ElCopyTooltip.vue_vue_type_script_setup_true_lang-MdgIHwF2.js";/* empty css */import"../../chunks/userSelect.vue_vue_type_script_setup_true_lang-DlEso2ua.js";import"../components/business/userSelectContent.vue.js";import"../api/BasicApi.js";import"../api/SysUserApi.js";import"../../chunks/comp.selectUser.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
import{globalMixin as o}from"../mixin/globalMixin.js";import"../../chunks/operationAuth.vue_vue_type_script_lang-BgqMGXbQ.js";import"vue";import"../hooks/useBehaviorAction.js";import"../utils/behaviorTrack.js";import"axios";import"crypto-js/enc-base64";import"crypto-js/enc-utf8";import"../utils/uuid.js";import"uuid";import"../utils/behaviorContext.js";import"../utils/encrypt.js";import"jsencrypt";import"../utils/dateTime.js";import"../hooks/useOperationAuth.js";import"vue-router";import"../stores/permissionStore.js";import"pinia";import"../utils/frontendBus.js";import"../utils/operationAuth.js";import"../stores/userInfoStore.js";import"../utils/userSessionStorage.js";import"../../chunks/ElFlex.vue_vue_type_script_setup_true_lang-DYk3SQcE.js";import"../interface/enum/FlexEnum.js";import"@vueuse/core";import"../components/icon/ElIcons.vue.js";import"../../chunks/_plugin-vue_export-helper-DlAUqK2U.js";import"../../chunks/ElDescForm.vue_vue_type_style_index_0_lang-DRKuI9Xa.js";import"../components/ElContentPanel/ElContentPanel.vue.js";import"../components/ElSplitPanel/ElSplitPanel.vue.js";import"../components/ElCardSection/ElCardSection.vue.js";import"../components/upload/AttachmentPreview.vue.js";import"element-plus";import"../utils/FrameworkUtils.js";import"xlsx-js-style";import"../hooks/usePreviewFullscreen.js";import"../components/upload/OfficePreview.vue.js";import"../api/DocumentApi.js";import"../utils/request.js";import"../utils/AxiosConfig.js";import"../utils/globalLoading.js";import"../utils/workflowTaskContext.js";import"../config/GlobalLoadingConfig.js";import"../utils/fileDownload.js";import"../utils/officePreviewUtil.js";import"../components/upload/OfficePreviewHeaderBar.vue.js";import"@element-plus/icons-vue";import"../components/ElDialogBody/ElDialogBody.vue.js";import"../components/ElGrid/ElGrid.vue.js";import"../components/ElGrid/ElGridColumnSetting.vue.js";import"../../chunks/DragHandleIcon.vue_vue_type_script_setup_true_lang-DnMWn5jY.js";import"../utils/columnSettingStorage.js";import"../../chunks/ElTotalTools.vue_vue_type_script_setup_true_lang-BqRnIFkw.js";import"../../chunks/ElPagePagination.vue_vue_type_style_index_0_lang-CGjSyYgn.js";import"../components/Search/ElSearch.vue.js";import"../components/Title/ElTitle.vue.js";import"../components/icon/ElIconBtn.vue.js";import"../components/Search/ElIconSearch.vue.js";import"../components/Search/ElSearchInput.vue.js";import"../../chunks/ElCopyTooltip.vue_vue_type_script_setup_true_lang-MdgIHwF2.js";/* empty css */import"../../chunks/userSelect.vue_vue_type_script_setup_true_lang-DlEso2ua.js";import"../components/business/userSelectContent.vue.js";import"../api/BasicApi.js";import"../api/SysUserApi.js";import"../../chunks/comp.selectUser.vue_vue_type_script_setup_true_lang-CctW6HRv.js";import"../api/EmployeeInfoApi.js";import"../components/business/comp.userForm.vue.js";import"../api/DeptInfoApi.js";import"../hooks/useResetRefHooks.js";import"../config/vxeSelectColumn.js";import"../../chunks/ElTagDisplay.vue_vue_type_script_setup_true_lang-DQXuYsW_.js";import"../../chunks/DictDisplay.vue_vue_type_script_setup_true_lang-DiFlFWi1.js";import"../hooks/useDictHooks.js";import"../api/SysDictCacheApi.js";import"../stores/dictStore.js";import"../../chunks/ElScrollbars.vue_vue_type_script_setup_true_lang-0Vhrxdyr.js";import"@vueuse/components";import"../components/ElCardList.vue.js";import"../components/kFrame/KFrame.vue.js";import"../components/kFrame/IframeOptions.js";import"../../chunks/ElCellLink.vue_vue_type_script_setup_true_lang-DXGj9pCT.js";import"../components/ElCircleBadge/ElCircleBadge.vue.js";import"../components/AsideCardList/AsideCardList.vue.js";import"../../chunks/ElNumericInput.vue_vue_type_script_setup_true_lang-C6KlCE6f.js";import"../components/ElIndicatorInput/ElIndicatorInput.vue.js";import"../components/RichTextEditor/RichTextEditor.vue.js";import"../../chunks/preload-helper-BlTxHScW.js";import"../components/RichTextEditor/richTextHtmlUtils.js";import"../components/RichTextEditor/installUmoEditorApp.js";import"tdesign-vue-next";import"../components/RichTextEditor/richTextImageUpload.js";import"../utils/buildUploadHeaders.js";import"../components/ElIndicatorInput/interface.js";import"../components/ElTabsPanel/ElTabsPanel.vue.js";const Ri={install(i){i.mixin(o)}};export{Ri as default};
|