cnhis-design-vue 3.1.42-beta.21 → 3.1.42-beta.22

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.
@@ -9,12 +9,15 @@ declare const BpmnWorkflow: SFCWithInstall<import("vue").DefineComponent<{
9
9
  token: StringConstructor;
10
10
  getBpmnXml: {
11
11
  type: FunctionConstructor;
12
+ default: () => Promise<{}>;
12
13
  };
13
14
  getInstanceHistory: {
14
15
  type: FunctionConstructor;
16
+ default: () => Promise<{}>;
15
17
  };
16
18
  getNodeApprovaler: {
17
19
  type: FunctionConstructor;
20
+ default: () => Promise<{}>;
18
21
  };
19
22
  }, {
20
23
  $message: import("naive-ui").MessageApi;
@@ -30,12 +33,15 @@ declare const BpmnWorkflow: SFCWithInstall<import("vue").DefineComponent<{
30
33
  token: StringConstructor;
31
34
  getBpmnXml: {
32
35
  type: FunctionConstructor;
36
+ default: () => Promise<{}>;
33
37
  };
34
38
  getInstanceHistory: {
35
39
  type: FunctionConstructor;
40
+ default: () => Promise<{}>;
36
41
  };
37
42
  getNodeApprovaler: {
38
43
  type: FunctionConstructor;
44
+ default: () => Promise<{}>;
39
45
  };
40
46
  }>> & {}>>;
41
47
  instance: import("axios").AxiosInstance;
@@ -59,14 +65,20 @@ declare const BpmnWorkflow: SFCWithInstall<import("vue").DefineComponent<{
59
65
  token: StringConstructor;
60
66
  getBpmnXml: {
61
67
  type: FunctionConstructor;
68
+ default: () => Promise<{}>;
62
69
  };
63
70
  getInstanceHistory: {
64
71
  type: FunctionConstructor;
72
+ default: () => Promise<{}>;
65
73
  };
66
74
  getNodeApprovaler: {
67
75
  type: FunctionConstructor;
76
+ default: () => Promise<{}>;
68
77
  };
69
78
  }>>, {
70
79
  flowType: string;
80
+ getBpmnXml: Function;
81
+ getInstanceHistory: Function;
82
+ getNodeApprovaler: Function;
71
83
  }>>;
72
84
  export default BpmnWorkflow;
@@ -12,12 +12,15 @@ declare const _default: import("vue").DefineComponent<{
12
12
  token: StringConstructor;
13
13
  getBpmnXml: {
14
14
  type: FunctionConstructor;
15
+ default: () => Promise<{}>;
15
16
  };
16
17
  getInstanceHistory: {
17
18
  type: FunctionConstructor;
19
+ default: () => Promise<{}>;
18
20
  };
19
21
  getNodeApprovaler: {
20
22
  type: FunctionConstructor;
23
+ default: () => Promise<{}>;
21
24
  };
22
25
  }, {
23
26
  $message: import("naive-ui").MessageApi;
@@ -33,12 +36,15 @@ declare const _default: import("vue").DefineComponent<{
33
36
  token: StringConstructor;
34
37
  getBpmnXml: {
35
38
  type: FunctionConstructor;
39
+ default: () => Promise<{}>;
36
40
  };
37
41
  getInstanceHistory: {
38
42
  type: FunctionConstructor;
43
+ default: () => Promise<{}>;
39
44
  };
40
45
  getNodeApprovaler: {
41
46
  type: FunctionConstructor;
47
+ default: () => Promise<{}>;
42
48
  };
43
49
  }>> & {}>>;
44
50
  instance: import("axios").AxiosInstance;
@@ -62,14 +68,20 @@ declare const _default: import("vue").DefineComponent<{
62
68
  token: StringConstructor;
63
69
  getBpmnXml: {
64
70
  type: FunctionConstructor;
71
+ default: () => Promise<{}>;
65
72
  };
66
73
  getInstanceHistory: {
67
74
  type: FunctionConstructor;
75
+ default: () => Promise<{}>;
68
76
  };
69
77
  getNodeApprovaler: {
70
78
  type: FunctionConstructor;
79
+ default: () => Promise<{}>;
71
80
  };
72
81
  }>>, {
73
82
  flowType: string;
83
+ getBpmnXml: Function;
84
+ getInstanceHistory: Function;
85
+ getNodeApprovaler: Function;
74
86
  }>;
75
87
  export default _default;
@@ -1 +1 @@
1
- import{defineComponent as e,ref as t,reactive as n,onMounted as o,openBlock as r,createElementBlock as i,createCommentVNode as s,createElementVNode as l}from"vue";import"bpmn-js/dist/assets/diagram-js.css";import"bpmn-js/dist/assets/bpmn-font/css/bpmn.css";import"bpmn-js/dist/assets/bpmn-font/css/bpmn-codes.css";import"bpmn-js/dist/assets/bpmn-font/css/bpmn-embedded.css";import{attr as a}from"tiny-svg";import{useMessage as p}from"naive-ui";import d from"axios";import c from"moment";import m from"bpmn-js/lib/Viewer";import u from"./custom/customOtherModule/zoomScroll.js";import v from"bpmn-js/lib/features/modeling";import b from"diagram-js/lib/navigation/movecanvas";import f from"./custom/customOtherModule/customViewerRenderer.js";import y from"../../../_virtual/plugin-vue_export-helper.js";const g={class:"containers"};var h=y(e({__name:"BpmnWorkflow",props:{flowType:{type:String,default:"workflow"},processId:String,instanceId:String,token:String,getBpmnXml:{type:Function},getInstanceHistory:{type:Function},getNodeApprovaler:{type:Function}},setup(e){const y=e;p();const h=t(null),w=n({nodeMenu:[],currentCanvasXml:null,eventType:["element.click","element.hover","element.out"]});d.create({withCredentials:!0,timeout:5e3,headers:{"Content-Type":"application/x-www-form-urlencoded",Authorization:"bearer "+y.token},baseURL:"/"}),o((()=>{console.log("生成bpmnModeler,展示画布"),x(y.processId,y.instanceId)}));const x=async(e,t)=>{"function"==typeof y.getBpmnXml&&(w.currentCanvasXml=await y.getBpmnXml(e),k(e,t))},k=async(e,t)=>{w.bpmnModeler&&w.bpmnModeler.destroy(),w.bpmnModeler=new m({container:h.value,additionalModules:[v,b,u,f,{bendpoints:["value",{}]}]});try{const{err:n}=await w.bpmnModeler.importXML(w.currentCanvasXml);if(n&&n.length)return console.error(n);w.bpmnModeler.get("canvas").zoom("fit-viewport","auto"),I(),j(e,t)}catch(e){console.error(`[Process Designer Warn]: ${(null==e?void 0:e.message)||e}`)}},I=()=>{let e=w.bpmnModeler.get("eventBus"),t=w.bpmnModeler.get("overlays"),n=w.bpmnModeler.get("selection");w.eventType.forEach((o=>{e.on(o,(e=>{let{element:r}=e;if(r.parent){if(!e||"bpmn:Process"===r.type)return!1;switch(o){case"element.hover":(async(e,t)=>{var n;let o="",{id:r,type:i}=e;if(!["label","bpmn:SequenceFlow"].includes(e.type)){const t=w.bpmnModeler.get("selection");t.select(null),t.select(e,!0)}if("bpmn:UserTask"==i){let e=w.nodeMenu.find((e=>e.key==r));(null==(n=null==e?void 0:e.auditor)?void 0:n.length)&&(o=`审核人:${e.auditor.map((e=>e.name)).join("、")}`,t.add(r,"tip",{position:{top:0,right:-12},html:`<div style="position: absolute;\n top: calc(50% - 5px);\n left: -10px;\n width: 0px;\n height: 0px;\n border:5px solid rgba(0, 0, 0, 0.75);\n border-top: 5px solid transparent;\n border-left: 5px solid transparent;\n border-bottom: 5px solid transparent;">\n </div>\n <div class="diagram-note"\n style="background-color: rgba(0, 0, 0, 0.75);\n color: #fff;\n font-size: 14px;\n text-align:left;\n width: 200px;\n max-height: 71px;\n padding: 5px;\n border-radius: 4px;\n word-break: break-word;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 3;">\n ${o}\n </div>`}))}})(r,t);break;case"element.out":n.select(null),t.clear()}}}))}))},M=(e,t)=>{const n=w.bpmnModeler.get("modeling");e.renderPathColor=t,n.setColor(e,{stroke:t})},j=async(e,t)=>{if("function"!=typeof y.getInstanceHistory)return;const n=w.bpmnModeler.get("elementRegistry");let o=n.filter((e=>!["label","bpmn:Process","bpmn:SequenceFlow"].includes(e.type))),r=await y.getInstanceHistory(e,t),i={},s=[],l=[];var p,d,m;r.historyActivity.map((e=>{-1!=e.activityId.indexOf("#multiInstanceBody")&&(s.push(e.activityId.replace("#multiInstanceBody","")),l.push(e))})),(p=r.historyActivity,d="activityId",m={},p.reduce((function(e,t){return!m[t[d]]&&(m[t[d]]=e.push(t)),e}),[])).filter((e=>![...new Set(s)].includes(e.activityId)&&"StartEvent_1"!=e.activityId&&!e.activityId.startsWith("Event_"))).map((e=>{let t=e.activityId.replace("#multiInstanceBody",""),n=e,o=l.filter((t=>e.activityId==t.activityId));(null==o?void 0:o.length)&&(n=o.reduce(((e,t)=>c(e.endTime).isBefore(t.endTime)?t:e))),i[t]=n.activityState}));let u=[];await Promise.all(o.map((async t=>{var o;if(Object.keys(i).includes(t.id)){let r=n.getGraphics(t.id).childNodes[2];a(r,{rx:10,ry:10,strokeWidth:3,strokeDasharray:0});let s=n.get(t.id);4==i[t.id]&&M(s,"#5aa36a"),2==i[t.id]&&M(s,"#d14141");let l={};if("bpmn:UserTask"==t.type){if("function"!=typeof y.getNodeApprovaler)return;l=await y.getNodeApprovaler(e,t.id),u.push({key:t.id,value:null==(o=null==t?void 0:t.businessObject)?void 0:o.name,auditor:null==l?void 0:l.auditor})}}}))),w.nodeMenu=u};return(e,t)=>(r(),i("div",g,[s(" 流程画布部分 "),l("div",{class:"canvas",ref_key:"canva",ref:h},null,512)]))}}),[["__file","BpmnWorkflow.vue"]]);export{h as default};
1
+ import{defineComponent as e,ref as t,reactive as n,onMounted as o,openBlock as r,createElementBlock as i,createCommentVNode as s,createElementVNode as l}from"vue";import"bpmn-js/dist/assets/diagram-js.css";import"bpmn-js/dist/assets/bpmn-font/css/bpmn.css";import"bpmn-js/dist/assets/bpmn-font/css/bpmn-codes.css";import"bpmn-js/dist/assets/bpmn-font/css/bpmn-embedded.css";import{attr as a}from"tiny-svg";import{useMessage as d}from"naive-ui";import p from"axios";import m from"moment";import c from"bpmn-js/lib/Viewer";import u from"./custom/customOtherModule/zoomScroll.js";import v from"bpmn-js/lib/features/modeling";import f from"diagram-js/lib/navigation/movecanvas";import b from"./custom/customOtherModule/customViewerRenderer.js";import y from"../../../_virtual/plugin-vue_export-helper.js";const g={class:"containers"};var h=y(e({__name:"BpmnWorkflow",props:{flowType:{type:String,default:"workflow"},processId:String,instanceId:String,token:String,getBpmnXml:{type:Function,default:()=>Promise.resolve({})},getInstanceHistory:{type:Function,default:()=>Promise.resolve({})},getNodeApprovaler:{type:Function,default:()=>Promise.resolve({})}},setup(e){const y=e;d();const h=t(null),w=n({nodeMenu:[],currentCanvasXml:null,eventType:["element.click","element.hover","element.out"]});p.create({withCredentials:!0,timeout:5e3,headers:{"Content-Type":"application/x-www-form-urlencoded",Authorization:"bearer "+y.token},baseURL:"/"}),o((()=>{console.log("生成bpmnModeler,展示画布"),x(y.processId,y.instanceId)}));const x=async(e,t)=>{"function"==typeof y.getBpmnXml&&(w.currentCanvasXml=await y.getBpmnXml(e),k(e,t))},k=async(e,t)=>{w.bpmnModeler&&w.bpmnModeler.destroy(),w.bpmnModeler=new c({container:h.value,additionalModules:[v,f,u,b,{bendpoints:["value",{}]}]});try{const{err:n}=await w.bpmnModeler.importXML(w.currentCanvasXml);if(n&&n.length)return console.error(n);w.bpmnModeler.get("canvas").zoom("fit-viewport","auto"),I(),j(e,t)}catch(e){console.error(`[Process Designer Warn]: ${(null==e?void 0:e.message)||e}`)}},I=()=>{let e=w.bpmnModeler.get("eventBus"),t=w.bpmnModeler.get("overlays"),n=w.bpmnModeler.get("selection");w.eventType.forEach((o=>{e.on(o,(e=>{let{element:r}=e;if(r.parent){if(!e||"bpmn:Process"===r.type)return!1;switch(o){case"element.hover":(async(e,t)=>{var n;let o="",{id:r,type:i}=e;if(!["label","bpmn:SequenceFlow"].includes(e.type)){const t=w.bpmnModeler.get("selection");t.select(null),t.select(e,!0)}if("bpmn:UserTask"==i){let e=w.nodeMenu.find((e=>e.key==r));(null==(n=null==e?void 0:e.auditor)?void 0:n.length)&&(o=`审核人:${e.auditor.map((e=>e.name)).join("、")}`,t.add(r,"tip",{position:{top:0,right:-12},html:`<div style="position: absolute;\n top: calc(50% - 5px);\n left: -10px;\n width: 0px;\n height: 0px;\n border:5px solid rgba(0, 0, 0, 0.75);\n border-top: 5px solid transparent;\n border-left: 5px solid transparent;\n border-bottom: 5px solid transparent;">\n </div>\n <div class="diagram-note"\n style="background-color: rgba(0, 0, 0, 0.75);\n color: #fff;\n font-size: 14px;\n text-align:left;\n width: 200px;\n max-height: 71px;\n padding: 5px;\n border-radius: 4px;\n word-break: break-word;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 3;">\n ${o}\n </div>`}))}})(r,t);break;case"element.out":n.select(null),t.clear()}}}))}))},M=(e,t)=>{const n=w.bpmnModeler.get("modeling");e.renderPathColor=t,n.setColor(e,{stroke:t})},j=async(e,t)=>{if("function"!=typeof y.getInstanceHistory)return;const n=w.bpmnModeler.get("elementRegistry");let o=n.filter((e=>!["label","bpmn:Process","bpmn:SequenceFlow"].includes(e.type))),r=await y.getInstanceHistory(e,t),i={},s=[],l=[];var d,p,c;r.historyActivity.map((e=>{-1!=e.activityId.indexOf("#multiInstanceBody")&&(s.push(e.activityId.replace("#multiInstanceBody","")),l.push(e))})),(d=r.historyActivity,p="activityId",c={},d.reduce((function(e,t){return!c[t[p]]&&(c[t[p]]=e.push(t)),e}),[])).filter((e=>![...new Set(s)].includes(e.activityId)&&"StartEvent_1"!=e.activityId&&!e.activityId.startsWith("Event_"))).map((e=>{let t=e.activityId.replace("#multiInstanceBody",""),n=e,o=l.filter((t=>e.activityId==t.activityId));(null==o?void 0:o.length)&&(n=o.reduce(((e,t)=>m(e.endTime).isBefore(t.endTime)?t:e))),i[t]=n.activityState}));let u=[];await Promise.all(o.map((async t=>{var o;if(Object.keys(i).includes(t.id)){let r=n.getGraphics(t.id).childNodes[2];a(r,{rx:10,ry:10,strokeWidth:3,strokeDasharray:0});let s=n.get(t.id);4==i[t.id]&&M(s,"#5aa36a"),2==i[t.id]&&M(s,"#d14141");let l={};if("bpmn:UserTask"==t.type){if("function"!=typeof y.getNodeApprovaler)return;l=await y.getNodeApprovaler(e,t.id),u.push({key:t.id,value:null==(o=null==t?void 0:t.businessObject)?void 0:o.name,auditor:null==l?void 0:l.auditor})}}}))),w.nodeMenu=u};return(e,t)=>(r(),i("div",g,[s(" 流程画布部分 "),l("div",{class:"canvas",ref_key:"canva",ref:h},null,512)]))}}),[["__file","BpmnWorkflow.vue"]]);export{h as default};
@@ -1 +1 @@
1
- import{defineComponent as e,ref as o,computed as t,watch as r,inject as i,createVNode as n}from"vue";import{isObjectField as a}from"@formily/core";import{RecursionField as m,connect as s}from"@formily/vue";import{AddCircleOutline as l,RemoveCircle as u}from"@vicons/ionicons5";import{isNumber as p,isArray as c,range as d}from"lodash-es";import{NButton as f,NIcon as v}from"naive-ui";import"../../../index.js";import{InjectionBusinessCollector as y}from"../../constants/index.js";import"../../utils/index.js";import{useFormField as x}from"../../hooks/useFormField.js";import{useFieldListAdaptor as h}from"../../hooks/useFieldListAdaptor.js";import{createObjSchema as b}from"../../utils/schema.js";const _=s(e({name:"FormCombination",props:{title:{type:String,default:""},value:{type:Array},maxGroupNum:{type:Number},disabled:{type:Boolean},getProperties:{type:Function,default:()=>[]},onInput:{},onBlur:{},onChange:{}},emits:["update:value"],setup(e){const{field:s,fieldKey:_}=x(),j=o(1),C=t((()=>p(e.maxGroupNum)?e.maxGroupNum<1?0:~~e.maxGroupNum:1/0));function g(){j.value++}r((()=>e.value),(e=>{c(e)&&(j.value=Math.min(Math.max(e.length,1),C.value))}),{immediate:!0});const k=i(y),{schemaAdaptor:F}=h(k);return()=>n("section",{class:"form-render__combination"},[n("header",{class:"form-render__combinationHeader"},[n("div",{class:"form-render__combinationHeaderText"},[e.title]),n(f,{onClick:g,type:"info",text:!0,disabled:j.value>=C.value||e.disabled},{icon:()=>n(v,{component:l},null),default:()=>"新增"})]),d(j.value).map(((o,t)=>n("section",{class:"form-render__combinationContent"},[n(m,{schema:b(F(e.getProperties())),name:t},null),n(f,{text:!0,type:"error",class:"form-render__combinationClose",onClick:()=>async function(e){if(j.value>1)j.value--,await s.value.remove(e);else{const o=s.value.query(`${_.value}.${e}`).take();if(!o||!a(o))return;await o.reset()}}(t)},{icon:()=>n(v,{component:u},null)})])))])}}));export{_ as COMBINATION};
1
+ import{defineComponent as e,ref as o,computed as t,watch as r,inject as i,createVNode as n}from"vue";import{isObjectField as a}from"@formily/core";import{RecursionField as m,connect as l}from"@formily/vue";import{AddCircleOutline as s,RemoveCircle as u}from"@vicons/ionicons5";import{isNumber as p,isArray as c,range as d}from"lodash-es";import{NButton as f,NIcon as v}from"naive-ui";import"../../../index.js";import{InjectionBusinessCollector as y}from"../../constants/index.js";import"../../utils/index.js";import{useFormField as x}from"../../hooks/useFormField.js";import{useFieldListAdaptor as h}from"../../hooks/useFieldListAdaptor.js";import{createObjSchema as b}from"../../utils/schema.js";const _=l(e({name:"FormCombination",props:{title:{type:String,default:""},value:{type:Array},maxGroupNum:{type:Number},disabled:{type:Boolean},getProperties:{type:Function,default:()=>[]},onInput:{},onBlur:{},onChange:{}},emits:["update:value"],setup(e){const{field:l,fieldKey:_}=x(),j=o(1),C=t((()=>p(e.maxGroupNum)?e.maxGroupNum<1?0:~~e.maxGroupNum:1/0));function g(){j.value++}r((()=>e.value),(e=>{c(e)&&(j.value=Math.min(Math.max(e.length,1),C.value))}),{immediate:!0});const k=i(y),{schemaAdaptor:F}=h(k);return()=>n("section",{class:"form-render__combination"},[n("header",{class:"form-render__combinationHeader"},[n("div",{class:"form-render__combinationHeaderText"},[e.title]),n(f,{onClick:g,text:!0,style:{"--n-text-color":"var(--primary-color)"},disabled:j.value>=C.value||e.disabled},{icon:()=>n(v,{component:s},null),default:()=>"新增"})]),d(j.value).map(((o,t)=>n("section",{class:"form-render__combinationContent"},[n(m,{schema:b(F(e.getProperties())),name:t},null),n(f,{text:!0,type:"error",class:"form-render__combinationClose",onClick:()=>async function(e){if(j.value>1)j.value--,await l.value.remove(e);else{const o=l.value.query(`${_.value}.${e}`).take();if(!o||!a(o))return;await o.reset()}}(t)},{icon:()=>n(v,{component:u},null)})])))])}}));export{_ as COMBINATION};
@@ -1 +1 @@
1
- import{defineComponent as e,ref as o,computed as t,watch as n,onMounted as r,createVNode as i}from"vue";import{isField as l}from"@formily/core";import{Path as a}from"@formily/path";import{AddCircleOutline as u,RemoveCircle as s}from"@vicons/ionicons5";import{isNumber as m,range as c,isArray as p,isEqual as f}from"lodash-es";import{useDeepValidate as v}from"./hooks/useDeepValidate.js";import{formRenderLog as d,mergeDeepProperties as h}from"../../../utils/index.js";import{connect as y,mapProps as g}from"@formily/vue";import{useDebounceFn as b,isObject as N}from"@vueuse/core";import{NButton as _,NIcon as x}from"naive-ui";import C from"../../../FormRender.vue.js";import{assignUpdateValue as j}from"../../../utils/schema.js";const F=y(e({name:"FormJsonCombination",props:{title:{type:String,default:""},value:{type:[String,Array]},maxGroupNum:{type:Number},getProperties:{type:Function,default:()=>[]},onInput:{},onBlur:{},onChange:{}},emits:["update:value"],setup(e,{emit:y}){d("当前COMBINATION控件为json模式,推荐使用非json模式,FieldItem.jsonCombination=false");const g=b((function(){y("update:value",JSON.stringify(j.value))}),300),j=o([]),F=t((()=>j.value.length));function I(o,t=!1){p(o)&&(o.length||o.push({}),o=JSON.stringify(o));const n=function(e){try{if(!e)return null;const o=JSON.parse(e);return Array.isArray(o)?o:null}catch(e){return null}}(o);var r;(r=n)&&!f(r,j.value)&&(n.splice(A.value),n.forEach((function(o,n){if(!N(o))return;j.value[n]=o,t&&h(o,e.getProperties())})),j.value.splice(n.length),j.value.forEach(J))}n((()=>e.value),(e=>I(e))),r((()=>{I(e.value||"[{}]",!0),g()}));const S=o([]);function J(e,o){var t;null==(t=S.value[o])||t.setFieldState("*",(o=>{l(o)&&(o.value=a.getIn(e,o.path))}))}function O(){j.value.push(h({},e.getProperties())),g()}v().bindDeepValidate(S);const A=t((()=>m(e.maxGroupNum)?e.maxGroupNum<1?0:~~e.maxGroupNum:1/0));n(A,(e=>{F.value<=e||(j.value.splice(e),g(),S.value.splice(e))}),{immediate:!0});const G=C;return()=>i("section",{class:"form-render__combination"},[i("header",{class:"form-render__combinationHeader"},[i("div",{class:"form-render__combinationHeaderText"},[e.title]),i(_,{onClick:O,type:"info",text:!0,disabled:F.value>=A.value},{icon:()=>i(x,{component:u},null),default:()=>"新增"})]),c(F.value).map(((o,t)=>i("section",{class:"form-render__combinationContentJson"},[i(G,{ref:e=>function(e,o){S.value[e]=o,J(j.value[e]||{},e)}(t,e),fieldList:e.getProperties(),onFormChange:e=>function(e,{fieldKey:o,value:t}){!j.value[e]&&(j.value[e]={}),a.setIn(j.value[e],o,t),g()}(t,e)},null),i(_,{text:!0,class:"form-render__combinationClose",type:"error",onClick:()=>function(e){j.value.length>1?(j.value.splice(e,1),S.value.splice(e,1)):j.value.splice(e,1,{}),g()}(t)},{icon:()=>i(x,{component:s},null)})])))])}}),g(j));export{F as JSON_COMBINATION};
1
+ import{defineComponent as e,ref as o,computed as t,watch as r,onMounted as n,createVNode as i}from"vue";import{isField as l}from"@formily/core";import{Path as a}from"@formily/path";import{AddCircleOutline as u,RemoveCircle as s}from"@vicons/ionicons5";import{isNumber as m,range as c,isArray as p,isEqual as f}from"lodash-es";import{useDeepValidate as v}from"./hooks/useDeepValidate.js";import{formRenderLog as d,mergeDeepProperties as h}from"../../../utils/index.js";import{connect as y,mapProps as g}from"@formily/vue";import{useDebounceFn as b,isObject as x}from"@vueuse/core";import{NButton as N,NIcon as _}from"naive-ui";import C from"../../../FormRender.vue.js";import{assignUpdateValue as j}from"../../../utils/schema.js";const F=y(e({name:"FormJsonCombination",props:{title:{type:String,default:""},value:{type:[String,Array]},maxGroupNum:{type:Number},getProperties:{type:Function,default:()=>[]},onInput:{},onBlur:{},onChange:{}},emits:["update:value"],setup(e,{emit:y}){d("当前COMBINATION控件为json模式,推荐使用非json模式,FieldItem.jsonCombination=false");const g=b((function(){y("update:value",JSON.stringify(j.value))}),300),j=o([]),F=t((()=>j.value.length));function I(o,t=!1){p(o)&&(o.length||o.push({}),o=JSON.stringify(o));const r=function(e){try{if(!e)return null;const o=JSON.parse(e);return Array.isArray(o)?o:null}catch(e){return null}}(o);var n;(n=r)&&!f(n,j.value)&&(r.splice(A.value),r.forEach((function(o,r){if(!x(o))return;j.value[r]=o,t&&h(o,e.getProperties())})),j.value.splice(r.length),j.value.forEach(J))}r((()=>e.value),(e=>I(e))),n((()=>{I(e.value||"[{}]",!0),g()}));const S=o([]);function J(e,o){var t;null==(t=S.value[o])||t.setFieldState("*",(o=>{l(o)&&(o.value=a.getIn(e,o.path))}))}function O(){j.value.push(h({},e.getProperties())),g()}v().bindDeepValidate(S);const A=t((()=>m(e.maxGroupNum)?e.maxGroupNum<1?0:~~e.maxGroupNum:1/0));r(A,(e=>{F.value<=e||(j.value.splice(e),g(),S.value.splice(e))}),{immediate:!0});const G=C;return()=>i("section",{class:"form-render__combination"},[i("header",{class:"form-render__combinationHeader"},[i("div",{class:"form-render__combinationHeaderText"},[e.title]),i(N,{onClick:O,style:{"--n-text-color":"var(--primary-color)"},text:!0,disabled:F.value>=A.value},{icon:()=>i(_,{component:u},null),default:()=>"新增"})]),c(F.value).map(((o,t)=>i("section",{class:"form-render__combinationContentJson"},[i(G,{ref:e=>function(e,o){S.value[e]=o,J(j.value[e]||{},e)}(t,e),fieldList:e.getProperties(),onFormChange:e=>function(e,{fieldKey:o,value:t}){!j.value[e]&&(j.value[e]={}),a.setIn(j.value[e],o,t),g()}(t,e)},null),i(N,{text:!0,class:"form-render__combinationClose",type:"error",onClick:()=>function(e){j.value.length>1?(j.value.splice(e,1),S.value.splice(e,1)):j.value.splice(e,1,{}),g()}(t)},{icon:()=>i(_,{component:s},null)})])))])}}),g(j));export{F as JSON_COMBINATION};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cnhis-design-vue",
3
- "version": "3.1.42-beta.21",
3
+ "version": "3.1.42-beta.22",
4
4
  "license": "ISC",
5
5
  "module": "./es/components/index.js",
6
6
  "main": "./es/components/index.js",
@@ -61,5 +61,5 @@
61
61
  "iOS 7",
62
62
  "last 3 iOS versions"
63
63
  ],
64
- "gitHead": "ebec4005f599cf7cd12718e640f3f7dd5bb2326f"
64
+ "gitHead": "c3fa17e711832e72aadc4209ed2a795b74e281be"
65
65
  }