UNPKG

approval-flow-preview1

Version:

This template should help get you started developing with Vue 3 in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.

7 lines (6 loc) 38.9 kB
(function(u,v){typeof exports=="object"&&typeof module<"u"?module.exports=v(require("vue")):typeof define=="function"&&define.amd?define(["vue"],v):(u=typeof globalThis<"u"?globalThis:u||self,u.ApprovalFlowPreview=v(u.Vue))})(this,function(u){"use strict";var Me=Object.defineProperty;var je=(u,v,h)=>v in u?Me(u,v,{enumerable:!0,configurable:!0,writable:!0,value:h}):u[v]=h;var U=(u,v,h)=>(je(u,typeof v!="symbol"?v+"":v,h),h);function v(o){return o&&o.__esModule&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o}function h(){return h=Object.assign?Object.assign.bind():function(o){for(var e,i=1;i<arguments.length;i++)for(var t in e=arguments[i],e)Object.prototype.hasOwnProperty.call(e,t)&&(o[t]=e[t]);return o},h.apply(this,arguments)}var B=["attrs","props","domProps"],J=["class","style","directives"],q=["on","nativeOn"],G=function(o){return o.reduce(function(e,i){for(var t in i)if(!e[t])e[t]=i[t];else if(B.indexOf(t)!==-1)e[t]=h({},e[t],i[t]);else if(J.indexOf(t)!==-1){var r=e[t]instanceof Array?e[t]:[e[t]],s=i[t]instanceof Array?i[t]:[i[t]];e[t]=[].concat(r,s)}else if(q.indexOf(t)!==-1)for(var n in i[t])if(e[t][n]){var l=e[t][n]instanceof Array?e[t][n]:[e[t][n]],a=i[t][n]instanceof Array?i[t][n]:[i[t][n]];e[t][n]=[].concat(l,a)}else e[t][n]=i[t][n];else if(t==="hook")for(var c in i[t])e[t][c]=e[t][c]?H(e[t][c],i[t][c]):i[t][c];else e[t]=i[t];return e},{})},H=function(o,e){return function(){o&&o.apply(this,arguments),e&&e.apply(this,arguments)}},X=G;const O=v(X),W={start:{type:"start",content:"所有人",properties:{title:"发起人",initiator:"ALL"}},approver:{type:"approver",content:"请设置审批人",properties:{title:"审批人"}},copy:{type:"copy",content:"发起人自选",properties:{title:"抄送人",menbers:[],userOptional:!0}},condition:{type:"condition",content:"请设置条件",properties:{title:"条件",conditions:[],initiator:null}},branch:{type:"branch",content:"",properties:{}},empty:{type:"empty",content:"",properties:{}}},y=o=>Array.isArray(o)?o.length===0:!0;class p{static getMaxNodeId(e){let i=e.nodeId;const t=n=>{n&&(i<n.nodeId&&(i=n.nodeId),n.childNode&&t(n.childNode),Array.isArray(n.conditionNodes)&&n.conditionNodes.forEach(l=>t(l)))};t(e);const r="0123456789ABCDEFGHIGKLMNOPQRSTUVWXYZabcdefghigklmnopqrstuvwxyz",s=r.length;return i.split("").reduce((n,l,a)=>n+r.indexOf(l)*Math.pow(s,a),0)}static idGenerator(){let e=++this.globalID;const i="0123456789ABCDEFGHIGKLMNOPQRSTUVWXYZabcdefghigklmnopqrstuvwxyz",t=i.split(""),r=i.length,s=[];do{let n=e%r;e=(e-n)/r,s.push(t[n])}while(e);return s.join("")}static isConditionNode(e){return e&&e.type==="condition"}static isCopyNode(e){return e&&e.type==="copy"}static isStartNode(e){return e&&e.type==="start"}static isApproverNode(e){return e&&e.type==="approver"}static createNode(e,i){let t=JSON.parse(JSON.stringify(W[e]));return t.nodeId=this.idGenerator(),t.prevId=i,t}static getPreviousNode(e,i){if(i.nodeId===e)return i;if(i.childNode){let t=this.getPreviousNode(e,i.childNode);if(t)return t}if(i.conditionNodes)for(let t of i.conditionNodes){let r=this.getPreviousNode(e,t);if(r)return r}}static deleteNode(e,i,t=!0){let r=this.getPreviousNode(e.prevId,i);if(t&&r.type==="empty"){this.isConditionNode(e)?this.deleteNode(r,i):(y(r.conditionNodes)&&this.deleteNode(r,i),this.deleteNode(e,i,!1));return}let s=(n,l)=>{n.childNode=l.childNode,y(n.conditionNodes)&&(n.conditionNodes=l.conditionNodes),n.childNode&&(n.childNode.prevId=n.nodeId),n.conditionNodes&&n.conditionNodes.forEach(a=>a.prevId=n.nodeId)};if(this.isConditionNode(e)){let n=r.conditionNodes,l=n.findIndex(a=>a.nodeId===e.nodeId);if(n.length>2)n.splice(l,1);else{let a=n[+!l];if(delete r.conditionNodes,r.childNode){let c=a;for(;c.childNode;)c=c.childNode;c.childNode=r.childNode,c.childNode.prevId=c.nodeId}s(r,a)}n.forEach((a,c)=>a.properties.priority=c);return}s(r,e)}static addApprovalNode(e,i,t=void 0){let r=e.childNode;t=t||this.createNode("approver",e.nodeId),e.childNode=t,r&&(t.childNode=r,r.prevId=t.nodeId);let s=e.conditionNodes;Array.isArray(s)&&!i&&s.length&&(t.conditionNodes=s.map(n=>(n.prevId=t.nodeId,n)),delete e.conditionNodes),r&&r.type==="empty"&&this.deleteNode(r,e)}static addEmptyNode(e){let i=this.createNode("empty",e.nodeId);return this.addApprovalNode(e,!0,i),i}static addCopyNode(e,i){this.addApprovalNode(e,i,this.createNode("copy",e.nodeId))}static appendConditionNode(e){const i=e.conditionNodes;let t=this.createNode("condition",e.nodeId),r=i.findIndex(s=>s.properties.isDefault);t.properties.priority=i.length,r>-1?(i.splice(-1,0,t),t.properties.priority=i.length-2,i[i.length-1].properties.priority=i.length-1):i.push(t),this.setDefaultCondition(t,e)}static appendBranch(e,i){let t=e;if(Array.isArray(e.conditionNodes)&&e.conditionNodes.length)if(i)t=this.addEmptyNode(t,!0);else{let s=this.addEmptyNode(t,!0);s.conditionNodes=t.conditionNodes,s.conditionNodes.forEach(n=>{n.prevId=s.nodeId})}let r=[this.createNode("condition",t.nodeId),this.createNode("condition",t.nodeId)].map((s,n)=>(s.properties.title+=n+1,s.properties.priority=n,s));t.conditionNodes=r}static resortPrioByCNode(e,i,t){if(e.properties.isDefault){e.properties.priority=i;return}let r=this.getPreviousNode(e.prevId,t),s=e.properties.priority;if(r.conditionNodes[s].properties.isDefault){e.properties.priority=i;return}let n=r.conditionNodes.splice(s,1,e)[0];n.properties.priority=i,r.conditionNodes[i]=n}static increasePriority(e,i){if(e.properties.isDefault)return;let r=this.getPreviousNode(e.prevId,i).conditionNodes,s=r.findIndex(n=>n===e);s&&(r[s-1].properties.priority=s,r[s].properties.priority=s-1,r[s-1]=r.splice(s,1,r[s-1])[0])}static decreasePriority(e,i){let r=this.getPreviousNode(e.prevId,i).conditionNodes,s=r.findIndex(n=>n.nodeId===e.nodeId);if(s<r.length-1){let n=r[s+1];if(n.properties.isDefault)return;n.properties.priority=s,r[s].properties.priority=s+1,r[s+1]=r.splice(s,1,r[s+1])[0]}}static setDefaultCondition(e,i){const t="其他情况进入此流程",r=this.getPreviousNode(e.prevId,i).conditionNodes,s=d=>d.properties&&(d.properties.initiator||!y(d.properties.conditions)),n=d=>{d.properties.isDefault=!1,d.content===t&&(d.content="请设置条件")},l=d=>{d.properties.isDefault=!0,d.content=t};let a=0;r.slice(0,-1).forEach(d=>{s(d)&&a++,n(d)});const c=r[r.length-1];a>0&&!s(c)?l(c):n(c)}static checkNode(e,i){let t=!0;const r=e.properties;this.isStartNode(e)&&!r.initiator&&(t=!1),this.isConditionNode(e)&&!r.isDefault&&!r.initiator&&y(r.conditions)&&(t=!1);const s=["myself","optional","director"];return this.isApproverNode(e)&&!s.includes(r.assigneeType)&&y(r.approvers)&&(t=!1),t}static checkAllNode(e){let i=!0;const t=(r,s,n)=>{!this.checkNode(r,n)&&s(),r.childNode&&t(r.childNode,s,n),y(r.conditionNodes)||r.conditionNodes.forEach(l=>t(l,s,r))};return t(e,()=>i=!1),i}}U(p,"globalID",1e4);function K(){let o=p.createNode("start");return o.childNode=p.createNode("approver",o.nodeId),o}const Q=o=>o.type==="condition",Y=o=>Array.isArray(o)&&o.length>0,S=o=>Y(o.conditionNodes),$=o=>o.stopPropagation();function Z(o,e,i){const t=["flow-path-card"],r=(a,c)=>(a&&t.push(c),a),s=r(p.isStartNode(e),"start-node"),n=r(p.isApproverNode(e),"approver"),l=r(p.isCopyNode(e),"copy");return i("section",{class:t.join(" "),on:{click:this.eventLancher.bind(o,"edit",e)}},[i("header",{class:"header"},[i("div",{class:"title-box",style:{height:"100%",width:"190px"}},[n&&i("i",{class:"iconfont iconshenpi",style:{fontSize:"12px",color:"white",marginRight:"4px"}}),l&&i("i",{class:"el-icon-s-promotion",style:{fontSize:"12px",color:"white",marginRight:"4px"}}),i("span",{class:"title-text"},[e.properties.title]),!s&&!o.readOnly?i("input",O([{on:{blur:a=>{this.$forceUpdate()},input:a=>{a.target.composing||this.$set(e.properties,"title",a.target.value.trim())},click:$},class:"title-input",style:{marginTop:"3px"},domProps:{value:e.properties.title}},{directives:[{name:"model",value:e.properties.title,modifiers:{trim:!0}}]}])):""]),i("div",{class:"actions",style:{marginRight:"4px"}},[i("i",{class:"el-icon-close icon",on:{click:this.eventLancher.bind(o,"deleteNode",e,o.data)}})])]),i("div",{class:"body"},[i("span",{class:"text"},[e.content]),i("div",{class:"icon-wrapper right"},[i("i",{class:"el-icon-arrow-right icon right-arrow"})])])])}const C=(...o)=>Z.call(o[0],...o);let x={start:C,approver:C,copy:C,empty:o=>"",condition:function(o,e,i){return i("section",{class:"flow-path-card condition",on:{click:this.eventLancher.bind(o,"edit",e)}},[i("header",{class:"header"},[i("div",{class:"title-box",style:"height: 20px;width:160px;"},[i("span",{class:"title-text"},[e.properties.title]),o.readOnly?"":i("input",O([{on:{blur:t=>{this.$forceUpdate()},input:t=>{t.target.composing||this.$set(e.properties,"title",t.target.value.trim())},click:$},class:"title-input",style:"margin-top:1px;",domProps:{value:e.properties.title}},{directives:[{name:"model",value:e.properties.title,modifiers:{trim:!0}}]}]))]),i("span",{class:"priority"},["优先级",e.properties.priority+1]),i("div",{class:"actions"},[i("i",{class:"el-icon-close icon",on:{click:this.eventLancher.bind(o,"deleteNode",e,o.data)}})])]),i("div",{class:"body"},[i("pre",{class:"text"},[e.content])]),i("div",{class:"icon-wrapper left",on:{click:o.eventLancher.bind(o,"increasePriority",e,o.data)}},[i("i",{class:"el-icon-arrow-left icon left-arrow"})]),i("div",{class:"icon-wrapper right",on:{click:o.eventLancher.bind(o,"decreasePriority",e,o.data)}},[i("i",{class:"el-icon-arrow-right icon right-arrow"})])])}};function w(o,e,i,t=!1){return S(e),e.type==="empty"&&!t?"":i("div",{class:"add-node-btn-box flex justify-center"},[i("div",{class:"add-node-btn"},[i("el-popover",{attrs:{placement:"right",trigger:o.readOnly?"manual":"click",width:"300"}},[i("div",{class:"condition-box"},[i("div",[i("div",{class:"condition-icon",on:{click:o.readOnly?()=>{}:o.eventLancher.bind(o,"addApprovalNode",e,t)}},[i("i",{class:"iconfont iconshenpi"})]),"审批人"]),i("div",[i("div",{class:"condition-icon",on:{click:o.readOnly?()=>{}:o.eventLancher.bind(o,"addCopyNode",e,t)}},[i("i",{class:"el-icon-s-promotion iconfont",style:"vertical-align: middle;"})]),"抄送人"]),i("div",[i("div",{class:"condition-icon",on:{click:o.readOnly?()=>{}:o.eventLancher.bind(o,"appendBranch",e,t)}},[i("i",{class:"iconfont iconcondition"})]),"条件分支"])]),i("button",{class:"btn",attrs:{type:"button",disabled:o.readOnly},slot:"reference"},[i("i",{class:"el-icon-plus icon"})])])])])}function b(o,e,i){if(!e)return;const t=o.verifyMode&&p.checkNode(e)===!1;let r=[],s="",n=i("div",{class:"node-wrap"},[i("div",{class:`node-wrap-box ${e.type} ${t?"error":""}`},[i("el-tooltip",{attrs:{content:"未设置条件",placement:"top",effect:"dark"}},[i("div",{class:"error-tip",on:{click:this.eventLancher.bind(o,"edit",e)}},["!!!"])]),x[e.type]?x[e.type].call(o,o,e,i):i("div",["Invalid node type: ",e.type]),w.call(o,o,e,i)])]);return S(e)&&(s=i("div",{class:"branch-wrap"},[i("div",{class:"branch-box-wrap"},[i("div",{class:"branch-box flex justify-center relative"},[i("button",{class:"btn",on:{click:this.eventLancher.bind(o,"appendConditionNode",e)}},["添加条件"]),e.conditionNodes.map(l=>b.call(o,o,l,i))])]),w.call(o,o,e,i,!0)])),Q(e)?i("div",{class:"col-box"},[i("div",{class:"center-line"}),i("div",{class:"top-cover-line"}),i("div",{class:"bottom-cover-line"}),n,s,b.call(o,o,e.childNode,i)]):(r.push(n),s&&r.push(s),e.childNode&&r.push(b.call(o,o,e.childNode,i)),r)}function ee(o){return o("section",{class:"end-node"},["流程结束"])}const te={name:"FlowCard",props:{data:{type:Object,required:!0},verifyMode:{type:Boolean,default:!0},readOnly:{type:Boolean,default:!1}},watch:{},methods:{eventLancher(o,...e){if(this.readOnly)return;let i={event:o,args:e.slice(0,-1)};this.$emit("emits",i)}},render(o){return o("div",{style:"display: inline-flex; flex-direction: column; align-items: center;"},[this.data&&b.call(this,this,this.data,o),ee(o)])}},ze="";function g(o,e,i,t,r,s,n,l){var a=typeof o=="function"?o.options:o;e&&(a.render=e,a.staticRenderFns=i,a._compiled=!0),t&&(a.functional=!0),s&&(a._scopeId="data-v-"+s);var c;if(n?(c=function(m){m=m||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,!m&&typeof __VUE_SSR_CONTEXT__<"u"&&(m=__VUE_SSR_CONTEXT__),r&&r.call(this,m),m&&m._registeredComponents&&m._registeredComponents.add(n)},a._ssrRegister=c):r&&(c=l?function(){r.call(this,(a.functional?this.parent:this).$root.$options.shadowRoot)}:r),c)if(a.functional){a._injectStyles=c;var d=a.render;a.render=function(Re,z){return c.call(z),d(Re,z)}}else{var j=a.beforeCreate;a.beforeCreate=j?[].concat(j,c):[c]}return{exports:o,options:a}}let ie,oe;const I={};var re=g(te,ie,oe,!1,se,"7b24cb0e",null,null);function se(o){for(let e in I)this[e]=I[e]}const ne=function(){return re.exports}(),ae=u.prototype.$isServer,F=function(){return!ae&&document.addEventListener?function(o,e,i){o&&e&&i&&o.addEventListener(e,i,!1)}:function(o,e,i){o&&e&&i&&o.attachEvent("on"+e,i)}}(),_=[],f="@@clickoutsideContext";let D,le=0;!u.prototype.$isServer&&F(document,"mousedown",o=>D=o),!u.prototype.$isServer&&F(document,"mouseup",o=>{_.forEach(e=>e[f].documentHandler(o,D))});function A(o,e,i){return function(t={},r={}){!i||!i.context||!t.target||!r.target||o.contains(t.target)||o.contains(r.target)||o===t.target||i.context.popperElm&&(i.context.popperElm.contains(t.target)||i.context.popperElm.contains(r.target))||(e.expression&&o[f].methodName&&i.context[o[f].methodName]?i.context[o[f].methodName]():o[f].bindingFn&&o[f].bindingFn())}}const ce={bind(o,e,i){_.push(o);const t=le++;o[f]={id:t,documentHandler:A(o,e,i),methodName:e.expression,bindingFn:e.value}},update(o,e,i){o[f].documentHandler=A(o,e,i),o[f].methodName=e.expression,o[f].bindingFn=e.value},unbind(o){let e=_.length;for(let i=0;i<e;i++)if(_[i][f].id===o[f].id){_.splice(i,1);break}delete o[f]}};var pe=function(e,i){var t=i._c;return t("el-row",{staticClass:"cmp-container"},[t("el-col",{staticClass:"label",attrs:{span:4}},[i._v(i._s(i.props.title))]),t("el-col",{attrs:{span:18}},[i._t("default")],2),t("el-col",{staticClass:"icon-wrapper",attrs:{span:2}},[i._t("action")],2)],1)},de=[];const Ue="",ue={},P={};var ve=g(ue,pe,de,!0,fe,"70192252",null,null);function fe(o){for(let e in P)this[e]=P[e]}const L=function(){return ve.exports}();var he=function(){var e=this,i=e.$createElement,t=e._self._c||i;return t("el-row",{attrs:{gutter:12}},[t("el-col",{attrs:{span:e.isRange?24:12}},[t("el-select",{staticStyle:{width:"100%"},attrs:{size:"small",placeholder:"请选择"},on:{change:e.onTypeChange},model:{value:e.cloneData.type,callback:function(s){e.$set(e.cloneData,"type",s)},expression:"cloneData.type"}},[t("el-option",{attrs:{label:"小于",value:"lt"}}),t("el-option",{attrs:{label:"小于等于",value:"lte"}}),t("el-option",{attrs:{label:"大于",value:"gt"}}),t("el-option",{attrs:{label:"大于等于",value:"gte"}}),t("el-option",{attrs:{label:"等于",value:"eq"}}),t("el-option",{attrs:{label:"介于两数之间",value:"bet"}})],1)],1),t("el-col",{attrs:{span:e.isRange?24:12}},[e.isRange?t("div",{staticStyle:{width:"100%",overflow:"hidden","margin-top":"10px"}},[t("el-col",{staticStyle:{"padding-left":"0"},attrs:{span:6}},[t("el-input-number",{staticStyle:{width:"100%"},attrs:{size:"small","controls-position":"right"},on:{change:e.update},model:{value:e.cloneData.value[0],callback:function(s){e.$set(e.cloneData.value,0,s)},expression:"cloneData.value[0]"}})],1),t("el-col",{attrs:{span:4}},[t("el-select",{attrs:{size:"small",placeholder:"请选择"},on:{change:e.update},model:{value:e.cloneData.value[1],callback:function(s){e.$set(e.cloneData.value,1,s)},expression:"cloneData.value[1]"}},[t("el-option",{attrs:{label:"<",value:"lt"}}),t("el-option",{attrs:{label:"≤",value:"lte"}})],1)],1),t("el-col",{staticClass:"range-title",attrs:{span:4,title:e.title}},[e._v(e._s(e.title))]),t("el-col",{attrs:{span:4}},[t("el-select",{attrs:{size:"small",placeholder:"请选择"},on:{change:e.update},model:{value:e.cloneData.value[2],callback:function(s){e.$set(e.cloneData.value,2,s)},expression:"cloneData.value[2]"}},[t("el-option",{attrs:{label:"<",value:"lt"}}),t("el-option",{attrs:{label:"≤",value:"lte"}})],1)],1),t("el-col",{staticStyle:{"padding-left":"0"},attrs:{span:6}},[t("el-input-number",{staticStyle:{width:"100%"},attrs:{size:"small","controls-position":"right"},on:{change:e.update},model:{value:e.cloneData.value[3],callback:function(s){e.$set(e.cloneData.value,3,s)},expression:"cloneData.value[3]"}})],1)],1):t("el-input-number",{staticStyle:{width:"100%"},attrs:{size:"small","controls-position":"right"},on:{change:e.update},model:{value:e.cloneData.value,callback:function(s){e.$set(e.cloneData,"value",s)},expression:"cloneData.value"}})],1)],1)},me=[];const Be="",ye={model:{prop:"value",event:"update"},props:["value","title"],components:{"row-wrapper":L},data(){let o=JSON.parse(JSON.stringify(this.value||{}));return o=Object.assign({type:"gt",value:null},o),{cloneData:o}},computed:{isRange(){return this.cloneData.type==="bet"}},mounted(){this.update()},methods:{onTypeChange(o){o==="bet"&&(this.cloneData.value=[1,"lt","lt",2]),this.update()},update(){this.$emit("update",this.cloneData)}}},T={};var ge=g(ye,he,me,!1,_e,"a1dc0fc0",null,null);function _e(o){for(let e in T)this[e]=T[e]}const be=function(){return ge.exports}();var Ne=function(){var e=this,i=e.$createElement,t=e._self._c||i;return e.properties?t("el-drawer",{staticClass:"drawer",staticStyle:{"text-align":"left"},attrs:{size:"550px",visible:e.visible,"show-close":!1},on:{"update:visible":function(s){e.visible=s},close:e.cancel}},[e.value&&e.value.type=="start"&&e.properties.title?t("header",{staticClass:"header",attrs:{slot:"title"},slot:"title"},[e._v(e._s(e.properties.title))]):t("header",{staticClass:"header",attrs:{slot:"title"},slot:"title"},[t("span",{directives:[{name:"show",rawName:"v-show",value:!e.titleInputVisible,expression:"!titleInputVisible"}],staticStyle:{cursor:"pointer"},on:{click:function(s){e.titleInputVisible=!0}}},[e._v(" "+e._s(e.properties.title)+" "),t("i",{staticClass:"el-icon-edit"})]),t("el-input",{directives:[{name:"show",rawName:"v-show",value:e.titleInputVisible,expression:"titleInputVisible"},{name:"clickoutside",rawName:"v-clickoutside",value:function(s){return e.titleInputVisible=!1},expression:"_ => titleInputVisible=false"}],staticStyle:{"z-index":"9","max-width":"200px"},attrs:{size:"mini"},model:{value:e.properties.title,callback:function(s){e.$set(e.properties,"title",s)},expression:"properties.title"}}),e.isConditionNode()?t("el-select",{staticClass:"priority-select",attrs:{size:"mini"},model:{value:e.properties.priority,callback:function(s){e.$set(e.properties,"priority",s)},expression:"properties.priority"}},e._l(e.priorityLength,function(r){return t("el-option",{key:r,attrs:{value:r-1,label:"优先级"+r}})}),1):e._e()],1),e.value&&e.isConditionNode()?t("section",{staticClass:"condition-pane"},[e.showingPCons.includes(-1)?t("row-wrapper",{attrs:{title:"发起人"}},[t("fc-org-select",{ref:"condition-org",attrs:{tabList:["dep&user"]},model:{value:e.initiator,callback:function(s){e.initiator=s},expression:"initiator"}})],1):e._e(),e._l(e.pconditions,function(r,s){return[e.couldShowIt(r,"el-input-number","fc-date-duration","fc-time-duration","fc-amount","fc-calculate")?t("row-wrapper",{key:s,attrs:{title:r.label},scopedSlots:e._u([{key:"action",fn:function(){return[t("i",{staticClass:"el-icon-delete",staticStyle:{cursor:"pointer"},on:{click:function(a){return e.onDelCondition(r)}}})]},proxy:!0}],null,!0)},[t("num-input",{key:s,staticStyle:{"padding-right":"6px"},attrs:{title:e.timeTangeLabel(r)},model:{value:r.conditionValue,callback:function(l){e.$set(r,"conditionValue",l)},expression:"item.conditionValue"}})],1):e._e(),e.couldShowIt(r,"el-radio-group")?t("row-wrapper",{key:s,attrs:{title:r.label},scopedSlots:e._u([{key:"action",fn:function(){return[t("i",{staticClass:"el-icon-delete",staticStyle:{cursor:"pointer"},on:{click:function(a){return e.onDelCondition(r)}}})]},proxy:!0}],null,!0)},[t("el-radio-group",{staticClass:"radio-group",model:{value:r.conditionValue,callback:function(l){e.$set(r,"conditionValue",l)},expression:"item.conditionValue"}},e._l(r.options,function(n){return t("el-radio",{key:n.label,attrs:{label:n.label}},[e._v(e._s(n.label))])}),1)],1):e._e(),e.couldShowIt(r,"el-select")?t("row-wrapper",{key:s,attrs:{title:r.label},scopedSlots:e._u([{key:"action",fn:function(){return[t("i",{staticClass:"el-icon-delete",staticStyle:{cursor:"pointer"},on:{click:function(a){return e.onDelCondition(r)}}})]},proxy:!0}],null,!0)},[t("el-select",{attrs:{placeholder:"请选择",size:"small"},model:{value:r.conditionValue,callback:function(l){e.$set(r,"conditionValue",l)},expression:"item.conditionValue"}},e._l(r.options,function(n){return t("el-option",{key:n.value,attrs:{label:n.label,value:n.value}})}),1)],1):e._e(),e.couldShowIt(r,"fc-org-select")?t("row-wrapper",{key:s,attrs:{title:r.label},scopedSlots:e._u([{key:"action",fn:function(){return[t("i",{staticClass:"el-icon-delete",staticStyle:{cursor:"pointer"},on:{click:function(a){return e.onDelCondition(r)}}})]},proxy:!0}],null,!0)},[t("fc-org-select",{ref:"org"+s,refInFor:!0,attrs:{tabList:["dep"]},model:{value:r.conditionValue,callback:function(l){e.$set(r,"conditionValue",l)},expression:"item.conditionValue"}})],1):e._e()]}),t("div",{staticStyle:{"padding-left":"10px","margin-top":"2em"}},[t("el-button",{attrs:{type:"primary",size:"small",icon:"el-icon-plus"},on:{click:function(s){e.dialogVisible=!0}}},[e._v("添加条件")]),t("span",{staticStyle:{color:"#aaa","margin-left":"16px"}},[e._v("还有"+e._s(e.notUseConNum)+"个可用条件")])],1)],2):e._e(),e.value&&(e.isApproverNode()||e.isStartNode())?t("section",{staticClass:"approver-pane",staticStyle:{height:"100%"}},[t("el-tabs",{staticClass:"pane-tab",model:{value:e.activeName,callback:function(s){e.activeName=s},expression:"activeName"}},[t("el-tab-pane",{attrs:{label:"设置"+(e.value.type==="approver"?"审批人":"发起人"),name:"config"}},[e.value.type==="start"?t("el-row",{staticStyle:{padding:"10px"}},[t("el-col",{staticStyle:{"font-size":"12px"},attrs:{span:4}},[e._v("发起人")]),t("el-col",{staticStyle:{"padding-left":"12px"},attrs:{span:18}},[t("fc-org-select",{ref:"start-org",attrs:{tabList:["dep&user"]},model:{value:e.initiator,callback:function(s){e.initiator=s},expression:"initiator"}})],1)],1):e.value.type==="approver"?t("div",[t("div",{staticStyle:{padding:"12px"}},[t("el-radio-group",{staticStyle:{"line-height":"32px"},on:{change:e.resetOrgColl},model:{value:e.approverForm.assigneeType,callback:function(s){e.$set(e.approverForm,"assigneeType",s)},expression:"approverForm.assigneeType"}},e._l(e.assigneeTypeOptions,function(r){return t("el-radio",{key:r.value,staticClass:"radio-item",attrs:{label:r.value}},[e._v(e._s(r.label))])}),1)],1),t("div",{staticStyle:{"border-bottom":"1px solid #e5e5e5","padding-bottom":"1rem"}},[e.approverForm.assigneeType==="myself"?t("div",{staticClass:"option-box",staticStyle:{color:"#a5a5a5"}},[e._v("发起人自己将作为审批人处理审批单")]):e.approverForm.assigneeType==="optional"?t("div",{staticClass:"option-box"},[t("p",[e._v("可选多人")]),t("el-switch",{attrs:{"active-color":"#13ce66"},model:{value:e.approverForm.optionalMultiUser,callback:function(s){e.$set(e.approverForm,"optionalMultiUser",s)},expression:"approverForm.optionalMultiUser"}}),t("p",[e._v("选择范围")]),t("el-select",{attrs:{size:"mini"},model:{value:e.approverForm.optionalRange,callback:function(s){e.$set(e.approverForm,"optionalRange",s)},expression:"approverForm.optionalRange"}},e._l(e.rangeOptions,function(r,s){return t("el-option",{key:s,attrs:{label:r.label,value:r.value,disabled:r.disabled}})}),1)],1):e.approverForm.assigneeType==="director"?t("div",[t("div",{staticStyle:{"font-size":"14px","padding-left":"1rem"}},[e._v("发起人的 "),t("el-select",{attrs:{size:"small"},model:{value:e.directorLevel,callback:function(s){e.directorLevel=s},expression:"directorLevel"}},e._l(5,function(r){return t("el-option",{key:r,attrs:{label:r===1?"直接主管":"第".concat(r,"级主管"),value:r}})}),1),t("br"),t("el-checkbox",{staticStyle:{"margin-top":"1rem"},model:{value:e.useDirectorProxy,callback:function(s){e.useDirectorProxy=s},expression:"useDirectorProxy"}},[e._v("找不到主管时,由上级主管代审批")])],1)]):t("div",{staticClass:"option-box"},[t("fc-org-select",{ref:"approver-org",attrs:{buttonType:"button",title:e.getAssignTypeLabel(),tabList:e.fcOrgTabList.includes(e.approverForm.assigneeType)?[e.approverForm.assigneeType]:["dep"]},on:{change:e.onOrgChange},model:{value:e.orgCollection,callback:function(s){e.orgCollection=s},expression:"orgCollection"}})],1)]),e.orgCollection[e.approverForm.assigneeType]&&e.orgCollection[e.approverForm.assigneeType].length>1||["optional"].includes(e.approverForm.assigneeType)?t("div",{staticClass:"option-box",staticStyle:{"border-bottom":"1px solid #e5e5e5"}},[t("p",[e._v("多人审批时采用的审批方式")]),t("el-radio",{staticClass:"radio-item",attrs:{label:!0},model:{value:e.approverForm.counterSign,callback:function(s){e.$set(e.approverForm,"counterSign",s)},expression:"approverForm.counterSign"}},[e._v("会签(须所有审批人同意)")]),t("br"),t("el-radio",{staticClass:"radio-item",attrs:{label:!1},model:{value:e.approverForm.counterSign,callback:function(s){e.$set(e.approverForm,"counterSign",s)},expression:"approverForm.counterSign"}},[e._v("或签(一名审批人同意或拒绝即可)")])],1):e._e()]):e._e()],1),t("el-tab-pane",{attrs:{label:"表单权限",name:"formAuth"}},[t("div",{staticClass:"form-auth-table"},[t("header",{staticClass:"auth-table-header"},[t("div",{staticClass:"row"},[t("div",{staticClass:"label"},[e._v("表单字段")]),t("el-radio-group",{staticClass:"radio-group",on:{change:e.changeAllFormOperate},model:{value:e.globalFormOperate,callback:function(s){e.globalFormOperate=s},expression:"globalFormOperate"}},[t("el-radio",{staticStyle:{"margin-left":"1rem"},attrs:{label:2}},[e._v("可编辑")]),t("el-radio",{attrs:{label:1}},[e._v("只读")]),t("el-radio",{attrs:{label:0}},[e._v("隐藏")])],1)],1)]),t("div",{staticClass:"auth-table-body"},e._l(e.getFormOperates(),function(r){return t("div",{key:r.formId,staticClass:"row"},[t("div",{staticClass:"label"},[t("span",{directives:[{name:"show",rawName:"v-show",value:r.required,expression:"item.required"}],staticClass:"required"},[e._v("*")]),e._v(" "+e._s(r.label)+" ")]),t("el-radio-group",{staticClass:"radio-group",model:{value:r.formOperate,callback:function(n){e.$set(r,"formOperate",n)},expression:"item.formOperate"}},[t("el-radio",{staticStyle:{"margin-left":"1rem"},attrs:{label:2}},[t("span",{staticStyle:{opacity:"0"}},[e._v("可编辑")])]),t("el-radio",{attrs:{label:1}},[t("span",{staticStyle:{opacity:"0"}},[e._v("只读")])]),t("el-radio",{attrs:{label:0}},[t("span",{staticStyle:{opacity:"0"}},[e._v("隐藏")])])],1)],1)}),0)])])],1)],1):e._e(),e.value&&e.isCopyNode()?t("section",{staticStyle:{"padding-left":"1rem"}},[t("p",[e._v("抄送人")]),t("fc-org-select",{ref:"copy-org",attrs:{buttonType:"button",title:"抄送人"},model:{value:e.properties.menbers,callback:function(s){e.$set(e.properties,"menbers",s)},expression:"properties.menbers"}}),t("br"),t("el-checkbox",{model:{value:e.properties.userOptional,callback:function(s){e.$set(e.properties,"userOptional",s)},expression:"properties.userOptional"}},[e._v("允许发起人自选抄送人")])],1):e._e(),t("el-dialog",{attrs:{title:"选择条件",visible:e.dialogVisible,width:"500px","append-to-body":!0,"custom-class":"condition-dialog"},on:{"update:visible":function(s){e.dialogVisible=s}}},[t("el-checkbox-group",{model:{value:e.showingPCons,callback:function(s){e.showingPCons=s},expression:"showingPCons"}},[t("el-checkbox",{attrs:{label:-1}},[e._v("发起人")]),e._l(e.pconditions,function(r,s){return t("el-checkbox",{key:s,attrs:{label:r.formId}},[e._v(" "+e._s(r.label)+" ")])})],2)],1),t("div",{staticClass:"actions"},[t("el-button",{attrs:{size:"small"},on:{click:e.cancel}},[e._v("取消")]),t("el-button",{attrs:{size:"small",type:"primary"},on:{click:e.confirm}},[e._v("确定")])],1)],1):e._e()},Ce=[];const Je="",qe="",k={lt:"<",lte:"≤",gt:">",gte:"≥",eq:"="},E={approvers:[],assigneeType:"user",formOperates:[],counterSign:!0,optionalMultiUser:!1,optionalRange:"ALL"},ke={props:["value","processData"],data(){return{fcOrgTabList:["dep","role","user","position"],visible:!1,globalFormOperate:null,titleInputVisible:!1,activeName:"config",showingPCons:[],pconditions:[],dialogVisible:!1,properties:{},initiator:{"dep&user":[]},priorityLength:0,orgCollection:{dep:[],role:[],user:[],position:[]},useDirectorProxy:!0,directorLevel:1,startForm:{formOperates:[]},approverForm:JSON.parse(JSON.stringify(E)),optionalOptions:[{label:"自选一个人",value:!1},{label:"自选多个人",value:!0}],rangeOptions:[{label:"全公司",value:"ALL"},{label:"指定成员",value:"USER"},{label:"角色",value:"ROLE"}],assigneeTypeOptions:[{label:"指定成员",value:"user"},{label:"主管",value:"director"},{label:"角色",value:"role"},{label:"岗位",value:"position"},{label:"发起人自己",value:"myself"},{label:"发起人自选",value:"optional"}]}},computed:{notUseConNum(){return this.pconditions.length-this.showingPCons.length+1},usedFormItems(){return this.$store.state.formItemList}},directives:{Clickoutside:ce},methods:{getFormOperates(){let o=[];return this.isApproverNode()&&(o=this.approverForm.formOperates),this.isStartNode()&&(o=this.startForm.formOperates),o},resetOrgColl(){for(let o in this.orgCollection)this.$set(this.orgCollection,o,[])},onOrgChange(o){},timeTangeLabel(o){const e=["fc-time-duration","fc-date-duration"].findIndex(i=>i===o.tag);return e>-1?"时长"+["(小时)","(天)"][e]:o.label},getAssignTypeLabel(){const o=this.assigneeTypeOptions.find(e=>e.value===this.approverForm.assigneeType);return o?o.label:""},changeAllFormOperate(o){(this.isStartNode()?this.startForm:this.approverForm).formOperates.forEach(i=>i.formOperate=o)},couldShowIt(o,...e){return e.includes(o.tag)&&this.showingPCons.includes(o.formId)},initFormOperates(o){const e=o.properties&&o.properties.formOperates||[],i=[],t=this.isApproverNode()?1:2,r=l=>{const a=e.find(c=>c.formId===l);return a!==void 0?a.formOperate:t},s=(l,a="")=>l.map(c=>{const d={formId:c.formId,required:c.required,label:a?[a,c.label].join("."):c.label,formOperate:r(c.formId)};i.push(d),Array.isArray(c.children)&&s(c.children,c.label)}),n=this.$store.state.formItemList.filter(l=>l.cmpType!=="custom");return s(n),i},initCopyNode(){this.properties=this.value.properties},initStartNodeData(){this.initInitiator(),this.startForm.formOperates=this.initFormOperates(this.value)},copyNodeConfirm(){this.$emit("confirm",this.properties,this.getOrgSelectLabel("copy")||"发起人自选"),this.visible=!1},conditionNodeComfirm(){let o="";const e=[];this.showingPCons.map(i=>this.pconditions.find(t=>t.formId===i)).forEach(i=>{if(!i)return;const t=i.conditionValue;if(t==null)return;if(["el-input-number","fc-date-duration","fc-time-duration","fc-amount","fc-calculate"].includes(i.tag))if(t.type==="bet"){const n=t.value;o+=`[${n[0]} ${k[n[1]]} ${i.label} ${k[n[2]]} ${n[3]}] `}else o+=`[${i.label} ${k[t.type]} ${t.value}] `;else if(i.tag==="fc-org-select"){const n=this.pconditions.findIndex(a=>a.formId===i.formId),l=this.$refs["org"+n][0].selectedLabels;o+=`[${i.label} = ${l}] `}else o+=`[${i.label} = ${t}] `;const s={formId:i.formId,conditionValue:t};e.push(s)},[]),this.properties.conditions=e,this.properties.initiator=this.initiator["dep&user"],this.initiator["dep&user"]&&(o=`[发起人: ${this.getOrgSelectLabel("condition")}] `+o),this.$emit("confirm",this.properties,o||"请设置条件"),this.visible=!1},getOrgSelectLabel(o){return this.$refs[o+"-org"].selectedLabels},startNodeComfirm(){this.properties.initiator=this.initiator["dep&user"];const o=this.startForm.formOperates.map(e=>({formId:e.formId,formOperate:e.formOperate}));Object.assign(this.properties,{formOperates:o}),this.$emit("confirm",this.properties,this.getOrgSelectLabel("start")||"所有人"),this.visible=!1},approverNodeComfirm(){const o=this.approverForm.assigneeType;let e="";["optional","myself"].includes(o)?e=this.assigneeTypeOptions.find(t=>t.value===o).label:o==="director"?e=this.directorLevel===1?"直接主管":`第${this.directorLevel}级主管`:e=this.getOrgSelectLabel("approver");const i=this.approverForm.formOperates.map(t=>({formId:t.formId,formOperate:t.formOperate}));this.approverForm.approvers=this.orgCollection[o],Object.assign(this.properties,this.approverForm,{formOperates:i}),this.$emit("confirm",this.properties,e||"请设置审批人"),this.visible=!1},confirm(){this.isCopyNode()&&this.copyNodeConfirm(),this.isStartNode()&&this.startNodeComfirm(),this.isApproverNode()&&this.approverNodeComfirm(),this.isConditionNode()&&this.conditionNodeComfirm()},cancel(){setTimeout(()=>{this.$emit("cancel"),this.visible=!1},0)},onDelCondition(o){const e=this.showingPCons.findIndex(i=>i===o.formId);e>-1&&(this.showingPCons.splice(e,1),this.pconditions.find(i=>i.formId===o.formId).conditionValue=void 0)},getPrevData(){return p.getPreviousNode(this.value.prevId,this.processData)},getPriorityLength(){this.priorityLength=this.getPrevData().conditionNodes.length},isConditionNode(){return this.value?p.isConditionNode(this.value):!1},isApproverNode(){return this.value?p.isApproverNode(this.value):!1},isStartNode(){return this.value?p.isStartNode(this.value):!1},isCopyNode(){return this.value?p.isCopyNode(this.value):!1},initInitiator(){const o=this.value.properties&&this.value.properties.initiator;this.initiator["dep&user"]=Array.isArray(o)?o:[]},initApproverNodeData(){for(const e in this.approverForm)this.value.properties.hasOwnProperty(e)&&(this.approverForm[e]=this.value.properties[e]);const o=this.approverForm.approvers;this.resetOrgColl(),Array.isArray(this.approverForm.approvers)&&(this.orgCollection[this.approverForm.assigneeType]=o),this.approverForm.formOperates=this.initFormOperates(this.value)},initConditionNodeData(){let o=this.value.properties&&this.value.properties.conditions;if(this.pconditions=JSON.parse(JSON.stringify(this.$store.state.processConditions)),this.initiator["dep&user"]=this.value.properties.initiator,Array.isArray(this.pconditions)){let e;this.showingPCons=[-1],this.pconditions.forEach(i=>{if(Array.isArray(o)){const t=o.find(r=>r.formId==i.formId);t&&t.conditionValue&&(e=t.conditionValue,this.showingPCons.push(i.formId))}this.$set(i,"conditionValue",e)})}}},watch:{visible(o){if(!o){this.approverForm=JSON.parse(JSON.stringify(E));return}this.processData.properties.formOperates=this.initFormOperates(this.processData).map(e=>({formId:e.formId,formOperate:e.formOperate})),this.isStartNode()&&this.initStartNodeData(),this.isApproverNode()&&this.initApproverNodeData(),this.isConditionNode()&&this.initConditionNodeData()},value(o){o&&o.properties&&(this.visible=!0,this.properties=JSON.parse(JSON.stringify(o.properties)),this.properties&&p.isConditionNode(o)&&this.getPriorityLength())}},components:{"num-input":be,"row-wrapper":L}},V={};var Oe=g(ke,Ne,Ce,!1,Se,"702743b4",null,null);function Se(o){for(let e in V)this[e]=V[e]}const $e=function(){return Oe.exports}();var xe=function(){var e=this,i=e.$createElement,t=e._self._c||i;return t("div",{staticClass:"flow-container"},[t("div",{staticClass:"scale-slider"},[t("span",{staticClass:"btn",on:{click:function(s){return e.changeScale(-e.step)}}},[e._v("-")]),t("span",[e._v(e._s(e.scaleVal)+"%")]),t("span",{staticClass:"btn",on:{click:function(s){return e.changeScale(e.step)}}},[e._v("+")])]),t("div",{staticClass:"preview-process",style:{transform:"scale(".concat(e.scaleVal/100,")")}},[e.data?t("flow-card",{attrs:{data:e.data,"verify-mode":e.verifyMode,"read-only":e.readOnly},on:{emits:e.eventReciver}}):e._e()],1),e.activeData?t("prop-panel",{attrs:{data:e.activeData},on:{confirm:e.onPropEditConfirm,cancel:e.onClosePanel}}):e._e()],1)},we=[];const Ge="",Ie={name:"Process",components:{FlowCard:ne,PropPanel:$e},props:["tabName","conf","readOnly"],data(){let o=K();return typeof this.conf=="object"&&this.conf!==null&&Object.assign(o,this.conf),{data:o,scaleVal:100,step:5,updateId:1,activeData:null,isProcessCmp:!0,verifyMode:!1}},methods:{getData(){return this.verifyMode=!0,p.checkAllNode(this.data)?Promise.resolve({formData:this.data}):Promise.reject({target:this.tabName})},eventReciver({event:o,args:e}){if(!this.readOnly){if(o==="edit"){this.activeData=e[0];return}p[o](...e),this.forceUpdate()}},forceUpdate(){this.updateId=this.updateId+1},changeScale(o){this.scaleVal>0&&this.scaleVal<200&&(this.scaleVal+=o)},onPropEditConfirm(o,e){if(this.readOnly)return;this.activeData.content=e||"请设置条件";let i=this.activeData.properties;this.activeData.properties=o,p.isConditionNode(this.activeData)&&o.priority!==i.priority&&(p.resortPrioByCNode(this.activeData,i.priority,this.data),p.setDefaultCondition(this.activeData,this.data)),p.isStartNode(this.activeData)&&this.$emit("startNodeChange",this.data),this.onClosePanel(),this.forceUpdate()},onClosePanel(){this.readOnly||(this.activeData=null)},isFilledPCon(o){let e=!1;const i=(r,s)=>r.childNode&&t(r.childNode,s),t=(r,s)=>{e||!r||(Array.isArray(r.conditionNodes)&&(r.conditionNodes.some(l=>{const a=l.properties.conditions||[];return Array.isArray(o)?a.some(c=>o.includes(c.formId)):a.length>0})?s():r.conditionNodes.forEach(l=>i(l,s))),i(r,s))};return t(this.data,()=>e=!0),e}}},R={};var Fe=g(Ie,xe,we,!1,De,"8ab28138",null,null);function De(o){for(let e in R)this[e]=R[e]}const Ae=function(){return Fe.exports}();var Pe=function(){var e=this,i=e.$createElement,t=e._self._c||i;return t("el-dialog",{attrs:{visible:e.visible,title:"流程设计预览",width:"80%"},on:{"update:visible":function(s){e.visible=s},close:e.handleClose}},[t("div",{staticClass:"preview-container"},[t("Process",{staticClass:"preview-process",style:{transform:"scale(".concat(this.scaleVal/100,")")},attrs:{conf:e.previewData,readOnly:!0}})],1),t("span",{attrs:{slot:"footer"},slot:"footer"},[t("el-button",{on:{click:function(s){e.visible=!1}}},[e._v("关闭")])],1)])},Le=[];const He="",Te={components:{Process:Ae},data(){return{scaleVal:100,step:10,minScale:50,maxScale:200}},props:{visible:{type:Boolean,default:!1},previewData:{type:Object,required:!0}},computed:{},methods:{changeScale(o){this.scaleVal=Math.min(Math.max(this.scaleVal+o,this.minScale),this.maxScale),this.applyScale()},handleClose(){this.$emit("update:value",!1),this.$emit("close")}}},M={};var Ee=g(Te,Pe,Le,!1,Ve,"f2d7e672",null,null);function Ve(o){for(let e in M)this[e]=M[e]}const N=function(){return Ee.exports}();return N.install=o=>{o.component(N.name||"ProcessPreview",N)},N});