cnhis-design-vue 3.1.42-beta.1 → 3.1.42-beta.2

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.
Files changed (38) hide show
  1. package/README.md +87 -87
  2. package/es/components/annotation-edit/src/AnnotationEdit.js +1 -1
  3. package/es/components/base-search/index.d.ts +0 -22
  4. package/es/components/base-search/src/index.vue.d.ts +0 -22
  5. package/es/components/base-search/src/index.vue.js +1 -1
  6. package/es/components/big-table/src/BigTable.vue2.js +1 -1
  7. package/es/components/bpmn-workflow/src/BpmnWorkflow.d.ts +0 -0
  8. package/es/components/bpmn-workflow/types/BpmnViewer.d.ts +1 -0
  9. package/es/components/bpmn-workflow/types/ModelingModule.d.ts +1 -0
  10. package/es/components/bpmn-workflow/types/MoveCanvasModule.d.ts +1 -0
  11. package/es/components/classification/src/index.vue.js +1 -1
  12. package/es/components/date-picker/index.d.ts +5 -13
  13. package/es/components/date-picker/src/DatePicker.vue.d.ts +5 -13
  14. package/es/components/date-picker/src/DatePicker.vue.js +1 -1
  15. package/es/components/fabric-chart/src/utils/index.d.ts +6823 -0
  16. package/es/components/form-config/src/FormConfig.vue.js +1 -1
  17. package/es/components/iho-table/src/IhoTable.vue.js +1 -1
  18. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/dateRendererPlugin/editDate.vue.d.ts +5 -13
  19. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/timeRendererPlugin/editTime.vue.d.ts +4 -10
  20. package/es/components/scale-view/src/ScaleView.vue.js +1 -1
  21. package/es/components/select-label/src/LabelFormContent.vue.js +1 -1
  22. package/es/components/steps-wheel/src/StepsWheel.vue.js +1 -1
  23. package/es/components/table-filter/src/components/classify-filter/index.vue.js +1 -1
  24. package/es/components/time-picker/index.d.ts +4 -10
  25. package/es/components/time-picker/src/TimePicker.vue.d.ts +4 -10
  26. package/es/components/time-picker/src/TimePicker.vue.js +1 -1
  27. package/es/env.d.ts +24 -24
  28. package/es/shared/components/VueDraggable/src/vuedraggable.d.ts +86 -0
  29. package/es/shared/mixins/index.d.ts +1 -0
  30. package/es/shared/mixins/index.js +1 -1
  31. package/es/shared/mixins/useDateTime.d.ts +6 -0
  32. package/es/shared/mixins/useDateTime.js +1 -0
  33. package/es/shared/utils/tapable/index.d.ts +139 -0
  34. package/package.json +2 -2
  35. package/es/components/base-search/src/directive/resize.d.ts +0 -4
  36. package/es/components/base-search/src/directive/resize.js +0 -1
  37. package/es/components/base-search/src/tool/resizeSensor.d.ts +0 -16
  38. package/es/components/base-search/src/tool/resizeSensor.js +0 -1
@@ -1 +1 @@
1
- import{defineComponent as e,ref as o,provide as r,toRaw as t,openBlock as i,createElementBlock as a,normalizeStyle as m,unref as n,createElementVNode as s,createVNode as f,mergeProps as l,withCtx as u,createTextVNode as c}from"vue";import{useTheme as p}from"../../../shared/mixins/useTheme.js";import{uuidGenerator as d}from"../../../shared/utils/index.js";import{cloneDeep as g,isFunction as v}from"lodash-es";import _ from"../../../shared/components/VueDraggable/src/vuedraggable.js";import h from"./components/FormConfigCreator.vue.js";import j from"./components/FormConfigDragDisplay.vue.js";import x from"./components/FormConfigEdit.vue.js";import C from"./components/FormConfigMaterialItem.js";import{useDataNormalize as y}from"./hooks/useDataNormalize.js";import{InjectionFieldList as F,InjectionMaterialList as V,InjectionActiveFieldItem as b,FORM_CONFIG_GROUP as k}from"./constants/index.js";import"@vicons/ionicons5";import"naive-ui";import D from"../../../_virtual/plugin-vue_export-helper.js";import"./utils/index.js";import{useSortableConfig as R}from"./hooks/useSortalbeConfig.js";import"./hooks/useConfigurationField.js";const H=["id"],E={class:"form-config__material"},L=s("header",{class:"form-config__materialHeader"},"物料区",-1),S={class:"form-config__displayWrapper"},I={class:"form-config__displayHeader"},N={class:"form-config__config"},O=s("header",{class:"form-config__configHeader"},"配置区",-1),T={class:"form-config__configContent"};var U=D(e({__name:"FormConfig",props:{maxHeight:{type:String},fieldVisitor:{type:Object},textFormatter:{type:Function},formRenderRef:{type:Object}},setup(e,{expose:D}){const U=e,w=d(),z=p(),{getCommonConfig:A}=R(),B=o([]);r(F,B);const M=o([]);function W(e){B.value.some((o=>o.key===e.key))||B.value.push(e)}r(V,M);const q=(e,o)=>v(U.textFormatter)?U.textFormatter(e,o):o,G=o();r(b,G);const J=o(),{transform:K,inverseTransform:P}=y(U);return D({loadData({fieldList:e}){let o=[],r=[];e.forEach((e=>function(e){"LINE_BAR"===e.type&&(e.children=[]);!1===e.show?r.push(e):o.push(e)}(g(t(e))))),B.value=K(o),M.value=r,G.value=void 0},validate(){var e;return null==(e=J.value)?void 0:e.validate()},getData:()=>({fieldList:P(g(t(B.value))),materialList:P(g(t(M.value)))})}),(o,r)=>(i(),a("section",{class:"form-config",style:m({"--max-height":e.maxHeight,...n(z)}),id:n(w)},[s("section",E,[L,f(n(_),l(n(A)(),{class:"form-config__materialContent",modelValue:M.value,"onUpdate:modelValue":r[0]||(r[0]=e=>M.value=e)}),{item:u((({element:e})=>[f(n(C),{"form-config-item":e,"text-formatter":q},null,8,["form-config-item"])])),_:1},16,["modelValue"])]),s("section",S,[s("header",I,[c(" 布局区 "),f(h,{onSubmit:W})]),f(j,{class:"form-config__displayContent",group:n(k),"text-formatter":q,modelValue:B.value,"onUpdate:modelValue":r[1]||(r[1]=e=>B.value=e)},null,8,["group","modelValue"])]),s("section",N,[O,s("section",T,[f(x,{ref_key:"formConfigEditRef",ref:J,uuid:n(w),"form-render-ref":e.formRenderRef},null,8,["uuid","form-render-ref"])])])],12,H))}}),[["__file","FormConfig.vue"]]);export{U as default};
1
+ import{defineComponent as e,ref as o,provide as r,toRaw as t,openBlock as i,createElementBlock as a,normalizeStyle as m,unref as n,createElementVNode as s,createVNode as f,mergeProps as l,withCtx as u,createTextVNode as c}from"vue";import{useTheme as p}from"../../../shared/mixins/useTheme.js";import"@vueuse/core";import{uuidGenerator as d}from"../../../shared/utils/index.js";import{cloneDeep as g,isFunction as v}from"lodash-es";import _ from"../../../shared/components/VueDraggable/src/vuedraggable.js";import h from"./components/FormConfigCreator.vue.js";import j from"./components/FormConfigDragDisplay.vue.js";import x from"./components/FormConfigEdit.vue.js";import C from"./components/FormConfigMaterialItem.js";import{useDataNormalize as y}from"./hooks/useDataNormalize.js";import{InjectionFieldList as F,InjectionMaterialList as V,InjectionActiveFieldItem as b,FORM_CONFIG_GROUP as k}from"./constants/index.js";import"@vicons/ionicons5";import"naive-ui";import D from"../../../_virtual/plugin-vue_export-helper.js";import"./utils/index.js";import{useSortableConfig as R}from"./hooks/useSortalbeConfig.js";import"./hooks/useConfigurationField.js";const H=["id"],E={class:"form-config__material"},L=s("header",{class:"form-config__materialHeader"},"物料区",-1),S={class:"form-config__displayWrapper"},I={class:"form-config__displayHeader"},N={class:"form-config__config"},O=s("header",{class:"form-config__configHeader"},"配置区",-1),T={class:"form-config__configContent"};var U=D(e({__name:"FormConfig",props:{maxHeight:{type:String},fieldVisitor:{type:Object},textFormatter:{type:Function},formRenderRef:{type:Object}},setup(e,{expose:D}){const U=e,w=d(),z=p(),{getCommonConfig:A}=R(),B=o([]);r(F,B);const M=o([]);function W(e){B.value.some((o=>o.key===e.key))||B.value.push(e)}r(V,M);const q=(e,o)=>v(U.textFormatter)?U.textFormatter(e,o):o,G=o();r(b,G);const J=o(),{transform:K,inverseTransform:P}=y(U);return D({loadData({fieldList:e}){let o=[],r=[];e.forEach((e=>function(e){"LINE_BAR"===e.type&&(e.children=[]);!1===e.show?r.push(e):o.push(e)}(g(t(e))))),B.value=K(o),M.value=r,G.value=void 0},validate(){var e;return null==(e=J.value)?void 0:e.validate()},getData:()=>({fieldList:P(g(t(B.value))),materialList:P(g(t(M.value)))})}),(o,r)=>(i(),a("section",{class:"form-config",style:m({"--max-height":e.maxHeight,...n(z)}),id:n(w)},[s("section",E,[L,f(n(_),l(n(A)(),{class:"form-config__materialContent",modelValue:M.value,"onUpdate:modelValue":r[0]||(r[0]=e=>M.value=e)}),{item:u((({element:e})=>[f(n(C),{"form-config-item":e,"text-formatter":q},null,8,["form-config-item"])])),_:1},16,["modelValue"])]),s("section",S,[s("header",I,[c(" 布局区 "),f(h,{onSubmit:W})]),f(j,{class:"form-config__displayContent",group:n(k),"text-formatter":q,modelValue:B.value,"onUpdate:modelValue":r[1]||(r[1]=e=>B.value=e)},null,8,["group","modelValue"])]),s("section",N,[O,s("section",T,[f(x,{ref_key:"formConfigEditRef",ref:J,uuid:n(w),"form-render-ref":e.formRenderRef},null,8,["uuid","form-render-ref"])])])],12,H))}}),[["__file","FormConfig.vue"]]);export{U as default};
@@ -1 +1 @@
1
- import{defineComponent as e,provide as t,computed as o,ref as a,watch as l,resolveComponent as s,openBlock as i,createElementBlock as n,unref as r,normalizeStyle as u,createBlock as f,resolveDynamicComponent as c,createVNode as d,mergeProps as p,createSlots as m,renderList as v,withCtx as b,createCommentVNode as h,renderSlot as g}from"vue";import{useTheme as x}from"../../../shared/mixins/useTheme.js";import{uuidGenerator as k}from"../../../shared/utils/index.js";import{useDebounceFn as y}from"@vueuse/core";import{promiseTimeout as j}from"@vueuse/shared";import{isFunction as C}from"lodash-es";import{VxeTableEventNameList as D,InjectionIhoTableEmits as _,InjectionIhoTableAnnotation as $,InjectionIhoTableUUID as H,InjectionIhoTableInstance as T,InjectionIhoTableConfig as A,InjectionIhoTableFieldList as L,InjectionIhoTableHandler as w}from"./constants/index.js";import{createTableHooks as R,applyTableConfigHooks as E,applyTableFieldHooks as F,createTableEventHandlers as I,createDomInsertComponent as O,createDataTransfer as S}from"./hooks/tapHooks/index.js";import{provideIhoTableEventListener as q}from"./hooks/tapHooks/useEventHooks.js";import{eventName2EventListener as z}from"./utils/index.js";import B from"../../../_virtual/plugin-vue_export-helper.js";const G=["id"];var J=B(e({__name:"IhoTable",props:{tableConfig:{type:Object,default:()=>({})},fieldList:{type:Array,default:()=>[]},tableData:{type:Array,default:()=>[]},annotation:{type:Object}},emits:["formChange","settingClick","formClick","keyboard",...D],setup(e,{expose:D,emit:B}){var J,K;const M=e,N=x({"--c-border-color":"#e2e2e2","--c-head-bg-color":"#f2f2f2","--c-hover-color":"#f7f7f7"}),P=q(),Q=function(e,...t){B(e,...t);const o=r(X)[z(e)];C(o)&&o(...t),P.trigger(e,...t)};t(_,Q);const U=R();t($,o((()=>M.annotation)));const V=k();t(H,V);const W=a();t(T,W);const X=a({uuid:null!=(K=null==(J=M.tableConfig)?void 0:J.uuid)?K:V});t(A,X);const Y=y(Z,10);function Z(){X.value=E(U,M.tableConfig),X.value.uuid=V}const ee=a([]);t(L,ee);const te=y(oe,10);function oe(){ee.value=F(U,M.fieldList,X.value,{$table:W,emits:Q})}const ae=S(U,X,W),le=a([]),se=y(ie,10);async function ie(){var e;le.value=await ae(M.tableData),null==(e=W.value)||e.recalculate(!0)}const ne={updateTableDataRef:se,updateConfigRef:Y,updateFieldListRef:te};t(w,ne);const re=I({hooks:U,config:X,$table:W,context:ne,emits:Q}),ue=o((()=>({...X.value,...re})));l((()=>M.tableConfig),(()=>{Y(),te(),se()}),{deep:!0}),l((()=>M.fieldList),(()=>{te(),se()}),{deep:!0}),l([()=>M.tableData,()=>{var e;return null==(e=M.tableData)?void 0:e.length}],(async()=>{var e,t;(null==(e=X.value.treeConfig)?void 0:e.expandAll)&&(await j(11),null==(t=W.value)||t.setAllTreeExpand(!0))})),l((()=>[...M.tableData]),se),Z(),oe(),ie();const{header:fe,footer:ce}=O(U);return D({$table:W,async loadData(e){var t;null==(t=W.value)||t.loadData(await ae(e))},setSort:(e,t)=>({field:e,value:t}),setFilter:(e,t)=>({field:e,value:t}),...U.exposeHooks.expose.call({},X,{$table:W,emits:Q})}),U.setupHooks.setup.call(X,ee),(e,t)=>{const o=s("vxe-grid");return i(),n("section",{class:"iho-table",id:r(V),style:u(r(N))},[(i(),f(c(r(fe)))),d(o,p({ref_key:"$table",ref:W},r(ue),{columns:ee.value,data:le.value}),m({_:2},[v(e.$slots,((t,o)=>({name:o,fn:b((()=>[h(" 实际上所有的vxe-grid插槽都支持 "),g(e.$slots,o)]))})))]),1040,["columns","data"]),(i(),f(c(r(ce))))],12,G)}}}),[["__file","IhoTable.vue"]]);export{J as default};
1
+ import{defineComponent as e,provide as t,computed as o,ref as a,watch as l,resolveComponent as s,openBlock as i,createElementBlock as n,unref as r,normalizeStyle as u,createBlock as f,resolveDynamicComponent as c,createVNode as d,mergeProps as p,createSlots as m,renderList as v,withCtx as b,createCommentVNode as h,renderSlot as g}from"vue";import{useTheme as x}from"../../../shared/mixins/useTheme.js";import{useDebounceFn as k}from"@vueuse/core";import{uuidGenerator as y}from"../../../shared/utils/index.js";import{promiseTimeout as j}from"@vueuse/shared";import{isFunction as C}from"lodash-es";import{VxeTableEventNameList as D,InjectionIhoTableEmits as _,InjectionIhoTableAnnotation as $,InjectionIhoTableUUID as H,InjectionIhoTableInstance as T,InjectionIhoTableConfig as A,InjectionIhoTableFieldList as L,InjectionIhoTableHandler as w}from"./constants/index.js";import{createTableHooks as R,applyTableConfigHooks as E,applyTableFieldHooks as F,createTableEventHandlers as I,createDomInsertComponent as O,createDataTransfer as S}from"./hooks/tapHooks/index.js";import{provideIhoTableEventListener as q}from"./hooks/tapHooks/useEventHooks.js";import{eventName2EventListener as z}from"./utils/index.js";import B from"../../../_virtual/plugin-vue_export-helper.js";const G=["id"];var J=B(e({__name:"IhoTable",props:{tableConfig:{type:Object,default:()=>({})},fieldList:{type:Array,default:()=>[]},tableData:{type:Array,default:()=>[]},annotation:{type:Object}},emits:["formChange","settingClick","formClick","keyboard",...D],setup(e,{expose:D,emit:B}){var J,K;const M=e,N=x({"--c-border-color":"#e2e2e2","--c-head-bg-color":"#f2f2f2","--c-hover-color":"#f7f7f7"}),P=q(),Q=function(e,...t){B(e,...t);const o=r(X)[z(e)];C(o)&&o(...t),P.trigger(e,...t)};t(_,Q);const U=R();t($,o((()=>M.annotation)));const V=y();t(H,V);const W=a();t(T,W);const X=a({uuid:null!=(K=null==(J=M.tableConfig)?void 0:J.uuid)?K:V});t(A,X);const Y=k(Z,10);function Z(){X.value=E(U,M.tableConfig),X.value.uuid=V}const ee=a([]);t(L,ee);const te=k(oe,10);function oe(){ee.value=F(U,M.fieldList,X.value,{$table:W,emits:Q})}const ae=S(U,X,W),le=a([]),se=k(ie,10);async function ie(){var e;le.value=await ae(M.tableData),null==(e=W.value)||e.recalculate(!0)}const ne={updateTableDataRef:se,updateConfigRef:Y,updateFieldListRef:te};t(w,ne);const re=I({hooks:U,config:X,$table:W,context:ne,emits:Q}),ue=o((()=>({...X.value,...re})));l((()=>M.tableConfig),(()=>{Y(),te(),se()}),{deep:!0}),l((()=>M.fieldList),(()=>{te(),se()}),{deep:!0}),l([()=>M.tableData,()=>{var e;return null==(e=M.tableData)?void 0:e.length}],(async()=>{var e,t;(null==(e=X.value.treeConfig)?void 0:e.expandAll)&&(await j(11),null==(t=W.value)||t.setAllTreeExpand(!0))})),l((()=>[...M.tableData]),se),Z(),oe(),ie();const{header:fe,footer:ce}=O(U);return D({$table:W,async loadData(e){var t;null==(t=W.value)||t.loadData(await ae(e))},setSort:(e,t)=>({field:e,value:t}),setFilter:(e,t)=>({field:e,value:t}),...U.exposeHooks.expose.call({},X,{$table:W,emits:Q})}),U.setupHooks.setup.call(X,ee),(e,t)=>{const o=s("vxe-grid");return i(),n("section",{class:"iho-table",id:r(V),style:u(r(N))},[(i(),f(c(r(fe)))),d(o,p({ref_key:"$table",ref:W},r(ue),{columns:ee.value,data:le.value}),m({_:2},[v(e.$slots,((t,o)=>({name:o,fn:b((()=>[h(" 实际上所有的vxe-grid插槽都支持 "),g(e.$slots,o)]))})))]),1040,["columns","data"]),(i(),f(c(r(ce))))],12,G)}}}),[["__file","IhoTable.vue"]]);export{J as default};
@@ -70,20 +70,12 @@ declare const _default: import("vue").DefineComponent<{
70
70
  attrs: {
71
71
  [x: string]: unknown;
72
72
  };
73
- emits: (event: "update:formattedValue", ...args: any[]) => void;
74
- datePickerRef: import("vue").Ref<null>;
75
- __formattedValue: import("vue").Ref<any>;
76
- keyupValue: import("vue").Ref<string>;
77
- inputIndex: number;
78
- placeholder: string;
79
- formatRef: import("vue").ComputedRef<unknown>;
80
- updateFormattedValue: (value: any) => void;
81
- onBlur: () => void;
82
- onKeyUp: (event: AnyObject) => any;
73
+ datePickerRef: import("vue").Ref<AnyObject | null>;
74
+ formatRef: import("vue").ComputedRef<string>;
75
+ focus: () => any;
76
+ blur: () => any;
83
77
  NDatePicker: any;
84
- }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:formattedValue"[], "update:formattedValue", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>> & {
85
- "onUpdate:formattedValue"?: ((...args: any[]) => any) | undefined;
86
- }, {}>>;
78
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>>;
87
79
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:value"[], "update:value", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
88
80
  value: {
89
81
  type: StringConstructor;
@@ -64,18 +64,12 @@ declare const _default: import("vue").DefineComponent<{
64
64
  attrs: {
65
65
  [x: string]: unknown;
66
66
  };
67
- emits: (event: "update:formattedValue", ...args: any[]) => void;
68
- timePickerRef: import("vue").Ref<null>;
69
- __formattedValue: import("vue").Ref<any>;
70
- keyupValue: import("vue").Ref<string>;
67
+ timePickerRef: import("vue").Ref<AnyObject | null>;
71
68
  formatRef: import("vue").ComputedRef<string>;
72
- updateFormattedValue: (value: any) => void;
73
- onBlur: () => void;
74
- onKeyUp: (event: AnyObject) => any;
69
+ focus: () => any;
70
+ blur: () => any;
75
71
  NTimePicker: any;
76
- }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:formattedValue"[], "update:formattedValue", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>> & {
77
- "onUpdate:formattedValue"?: ((...args: any[]) => any) | undefined;
78
- }, {}>>;
72
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>>;
79
73
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("click" | "update:formattedValue")[], "click" | "update:formattedValue", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
80
74
  formattedValue: {
81
75
  type: StringConstructor;
@@ -1 +1 @@
1
- import{defineComponent as e,reactive as o,ref as a,watch as t,nextTick as i,openBlock as n,createElementBlock as s,normalizeClass as l,unref as r,createCommentVNode as u,Fragment as c,createBlock as m,mergeProps as v,createElementVNode as p,normalizeStyle as d,createVNode as f,withCtx as g,renderList as y,toDisplayString as k,createTextVNode as h,resolveDynamicComponent as C,h as w}from"vue";import b from"./hooks/use-noData.js";import{getScaleViewState as S}from"./hooks/scaleview-state.js";import E from"./hooks/scaleview-props.js";import{ScaleViewComputed as _}from"./hooks/scaleview-computed.js";import{ScaleViewInit as A}from"./hooks/scaleview-init.js";import{ScaleViewSubmit as j}from"./hooks/scaleview-submit.js";import{handleQueryParams as T,isCollection as D,isEvaluation as O}from"./utils/judge-types.js";import{useEvent as L}from"./hooks/use-event.js";import x from"./components/NoData.vue.js";import I from"../../../shared/components/SvgIcon/SvgIcon.vue.js";import P from"./components/EvaluateCountdown.vue.js";import N from"./components/EvaluatePage.vue.js";import q from"./components/AnswerParse.vue.js";import M from"./components/ScaleScore.js";import{useDialog as B,useMessage as R,NForm as V,NFormItem as F,NButton as K}from"naive-ui";import H from"../../../_virtual/plugin-vue_export-helper.js";const W=["innerHTML"],U={key:0,class:"required-text"},J={key:1,class:"evalute-label"},X=["onClick"],G={key:1,class:"footer"};var Q=H(e({__name:"ScaleView",props:E,emits:["onCloseSetting","submitNoRequest","onSubmit","startWriteScale"],setup(e,{expose:E,emit:H}){const Q=e,{ScaleViewState:$}=S(),z=o($),Y=B(),Z=R(),ee=a(null),oe=a(null),{noDataState:ae,setNoData:te,resetNodata:ie}=b(),ne=T(),{showEvatip:se,isFormBoldOpen:le,scaleStyle:re,handlePageClass:ue,isShowItem:ce,handleShowQuestionNumber:me,hasScore:ve,isPreviewScale:pe,showEvaluateEntry:de,showEvaluateCoundownPage:fe,showSaveBtn:ge,showEvaluateLabel:ye,showAnswerParse:ke,propsConfig:he,evaluatePageProps:Ce,evaluateCountdownProps:we,skipCover:be,scaleEdit:Se}=_(Q,z,{query:ne}),{initForm:Ee}=A(Q,z,H,{query:ne}),{submitMethod:_e}=j(Q,z,H,{query:ne}),{nextLogicEvent:Ae,handleDynamicDataRelation:je}=L(Q,z);(()=>{let{id:e}=ne;e&&(z.shareId=e)})();const Te=e=>{try{ie(),Ee(e)}catch(e){console.log(e,"--error"),z.spinning=!1,z.hasFrontAddress=!1,te(!0,null==e?void 0:e.resultMsg,null==e?void 0:e.result)}};t((()=>Q.ids),((e,o)=>{o?e.guage_id&&e.guage_id!=o.guage_id&&Te(e):e.guage_id&&Te(e)}),{immediate:!0}),t((()=>Q.guageData),(e=>{if(!e||!Object.keys(e||{}).length)return;z.form={},z.formArray=[];const o=JSON.parse(JSON.stringify(e));i((()=>{Ee(o)}))}),{immediate:!0});const De=e=>{z.showEvaluateSettingWrap=!1,z.showEvaluateCountdown=!!e,H("startWriteScale")},Oe=()=>{console.log("----closeEvaluateCountdown"),z.showEvaluateCountdown=!1,pe.value||(z.banSubmit=!0,_e(),Y.warning({title:"温馨提示",content:"测评时间到了,结束测评!",maskClosable:!1,positiveText:"确定",onPositiveClick:()=>{}}))},Le=e=>{Y.warning({title:"提示",content:()=>w("div",{class:"evatip-container"},[w("span","答案解析:"),w("p",e)]),class:"c-evatip-dialog-wrap",showIcon:!1,positiveText:"确定",negativeText:"关闭",maskClosable:!1,onPositiveClick(){},onNegativeClick(){}})},xe=(e,o,a)=>{console.log(e,"--val");let{choiceObj:t,isSetObj:i}=a||{};switch(o.type.includes("SELECT")||(z.form[o.val_key]=e),o.type){case"SELECT":case"EVALUATE_SELECT":let{value:a,list:n=[]}=e;z.form[o.val_key]=a,Ae(e,o,z.formArray),je(n,o,z.formArray);break;case"RADIO_BLOCK":case"CHECKBOX_BLOCK":i&&(z.choiceComObj[o.val_key]=t),Ae(e,o,z.formArray);break;case"EVALUATE_RADIO_BLOCK":case"EVALUATE_CHECKBOX_BLOCK":Ae(e,o,z.formArray);break;case"DATE":case"TIME":case"DATETIME":case"SEARCH_CASCADE":z.submitForm[o.val_key]=e}},Ie=(e,o)=>{console.log(o),z.form[o.val_key]=e},Pe=e=>{if(!e||!e.length)return{labelStr:"",labels:[]};const o=e||[],a=[],t=[];return o.forEach((e=>{t.push(e),a.push(e.labelName)})),z.labelSelectedList=o,{labelStr:a.join(","),labels:t}},Ne=()=>{var e;if(!z.formArray.find((e=>O(e.type))))return void qe("确认要提交吗?");let{evaluateResultSetting:o}=z.config;if(!o||!Object.keys(o).length&&!de.value||Se.value)return void qe("确认要结束测评吗?");if("formIframe"==Q.openType&&de.value)return void H("submitNoRequest");let a="确定要提前结束测评吗?";if(fe.value&&(null==(e=ee.value)?void 0:e.getCountdownObj)){const e=ee.value.getCountdownObj(),{setAnswered:o,totalLen:t}=e;o<t?a="存在未作答的题目,确定要提前结束测评吗?":!(null==z?void 0:z.showEvaluateCountdown)&&(a="确认要结束测评吗?")}qe(a)},qe=e=>{Y.warning({title:"温馨提示",content:()=>w("div",{style:{paddingLeft:"30px"}},e),positiveText:"确定",negativeText:"取消",maskClosable:!1,closable:!1,positiveButtonProps:{type:"primary"},onPositiveClick:()=>{Me()},onNegativeClick(){}})},Me=()=>{var e;null==(e=oe.value)||e.validate((e=>{var o;if(e){console.log(e);let a=(null==(o=e[0])?void 0:o[0])||{},t=a.field,i=a.message,n=z.formArray.find((e=>e.databaseTitle===t));return n&&(t=n.title),Z.error(t+i),!1}_e()}))},Be=()=>{H("onCloseSetting")};return E({getScaleData:()=>({...z}),onSubmit:Ne,cancel:Be}),(e,o)=>(n(),s("div",{class:l(["c-scale",{"c-scale-nobtn":r(ge)}])},[u(' <template v-if="state.spinning">\r\n <n-spin :show="state.spinning" description="加载中"></n-spin>\r\n </template> '),z.spinning||z.hasFrontAddress?u("v-if",!0):(n(),s(c,{key:0},[r(ae).noData?(n(),m(x,{key:0,noDataImg:r(ae).noDataImg,noDataTip:r(ae).noDataTip},null,8,["noDataImg","noDataTip"])):(n(),s(c,{key:1},[r(de)&&!r(be)?(n(),m(N,v({key:0},r(Ce),{onWriteGuage:De}),null,16)):(n(),s(c,{key:1},[r(fe)?(n(),m(P,v({key:0,ref_key:"countdownDom",ref:ee},r(we),{onCloseEvaluateCountdown:Oe}),null,16)):u("v-if",!0),p("div",{class:l(["scale-container",{"scale-container-nopadding":r(ue),"scale-container-hasfooter":r(ge)}]),style:d(r(re))},[r(ve)?(n(),m(r(M),{key:0,config:z.config,maxScore:z.maxScore},null,8,["config","maxScore"])):u("v-if",!0),f(r(V),{ref_key:"formRef",ref:oe,model:z.form,rules:z.rules,"require-mark-placement":"left",class:"main"},{default:g((()=>[(n(!0),s(c,null,y(z.formArray,((e,o)=>(n(),s(c,{key:(e.id||e.seq)+o},[r(ce)(e)?(n(),m(r(F),{key:0,path:e.val_key,"show-label":!r(D)(e.type),class:"c-scle-form-item"},{label:g((()=>[p("span",{class:l({"scale-label-required":r(le)(e)}),innerHTML:r(me)(e)},null,10,W),r(le)(e)?(n(),s("span",U,"(必填)")):u("v-if",!0),r(ye)(e)?(n(),s("span",J,k(r(ye)(e)),1)):u("v-if",!0),r(se)(e)?(n(),s("span",{key:2,class:"evalute-tip",onClick:o=>(async e=>{var o;if(z.evatipMap[e.id])return void Le(z.evatipMap[e.id]);let a="getSubjectAnswer";const t=(null==(o=Q.scaleApiConfig)?void 0:o[a])||null;if(!t||"function"!=typeof t)return void Z.error(`${a} Is not a function`);let i=await t(e.id);i&&(z.evatipMap[e.id]||(z.evatipMap[e.id]=i,Le(i)))})(e)},[f(r(I),{"icon-class":"a-xitongtubiaotishi"}),h(" 查看提示 ")],8,X)):u("v-if",!0)])),default:g((()=>[(n(),m(C(e.renderCom),v(r(he)(e,o),{key:(e.id||e.seq)+o,onScaleChange:xe,onOnChange:o=>((e,o)=>{z.form[o.val_key]=Pe(e)})(o,e),onVodFileList:Ie}),null,16,["onOnChange"])),r(ke)(e)?(n(),m(q,{key:0,item:e},null,8,["item"])):u("v-if",!0)])),_:2},1032,["path","show-label"])):u("v-if",!0)],64)))),128))])),_:1},8,["model","rules"])],6),r(ge)?(n(),s("div",G,[u(" 分享的链接 隐藏取消按钮 "),"guage"!==Q.sourceType?(n(),m(r(K),{key:0,onClick:Be},{default:g((()=>[h("取消")])),_:1})):u("v-if",!0),Q.isLock?u("v-if",!0):(n(),m(r(K),{key:1,onClick:Ne,disabled:z.banSubmit,type:"primary"},{default:g((()=>[h("保存")])),_:1},8,["disabled"]))])):u("v-if",!0)],64))],64))],64))],2))}}),[["__file","ScaleView.vue"]]);export{Q as default};
1
+ import{defineComponent as e,reactive as o,ref as a,watch as t,nextTick as i,openBlock as n,createElementBlock as s,normalizeClass as l,unref as r,createCommentVNode as u,Fragment as c,createBlock as m,mergeProps as v,createElementVNode as p,normalizeStyle as d,createVNode as f,withCtx as g,renderList as y,toDisplayString as k,createTextVNode as h,resolveDynamicComponent as C,h as w}from"vue";import b from"./hooks/use-noData.js";import{getScaleViewState as S}from"./hooks/scaleview-state.js";import E from"./hooks/scaleview-props.js";import{ScaleViewComputed as _}from"./hooks/scaleview-computed.js";import{ScaleViewInit as A}from"./hooks/scaleview-init.js";import{ScaleViewSubmit as j}from"./hooks/scaleview-submit.js";import{handleQueryParams as T,isCollection as D,isEvaluation as O}from"./utils/judge-types.js";import{useEvent as L}from"./hooks/use-event.js";import x from"./components/NoData.vue.js";import I from"../../../shared/components/SvgIcon/SvgIcon.vue.js";import P from"./components/EvaluateCountdown.vue.js";import N from"./components/EvaluatePage.vue.js";import q from"./components/AnswerParse.vue.js";import M from"./components/ScaleScore.js";import{useDialog as B,useMessage as R,NForm as V,NFormItem as F,NButton as K}from"naive-ui";import H from"../../../_virtual/plugin-vue_export-helper.js";const W=["innerHTML"],U={key:0,class:"required-text"},J={key:1,class:"evalute-label"},X=["onClick"],G={key:1,class:"footer"};var Q=H(e({__name:"ScaleView",props:E,emits:["onCloseSetting","submitNoRequest","onSubmit","startWriteScale"],setup(e,{expose:E,emit:H}){const Q=e,{ScaleViewState:$}=S(),z=o($),Y=B(),Z=R(),ee=a(null),oe=a(null),{noDataState:ae,setNoData:te,resetNodata:ie}=b(),ne=T(),{showEvatip:se,isFormBoldOpen:le,scaleStyle:re,handlePageClass:ue,isShowItem:ce,handleShowQuestionNumber:me,hasScore:ve,isPreviewScale:pe,showEvaluateEntry:de,showEvaluateCoundownPage:fe,showSaveBtn:ge,showEvaluateLabel:ye,showAnswerParse:ke,propsConfig:he,evaluatePageProps:Ce,evaluateCountdownProps:we,skipCover:be,scaleEdit:Se}=_(Q,z,{query:ne}),{initForm:Ee}=A(Q,z,H,{query:ne}),{submitMethod:_e}=j(Q,z,H,{query:ne}),{nextLogicEvent:Ae,handleDynamicDataRelation:je}=L(Q,z);(()=>{let{id:e}=ne;e&&(z.shareId=e)})();const Te=e=>{try{ie(),Ee(e)}catch(e){console.log(e,"--error"),z.spinning=!1,z.hasFrontAddress=!1,te(!0,null==e?void 0:e.resultMsg,null==e?void 0:e.result)}};t((()=>Q.ids),((e,o)=>{o?e.guage_id&&e.guage_id!=o.guage_id&&Te(e):e.guage_id&&Te(e)}),{immediate:!0}),t((()=>Q.guageData),(e=>{if(!e||!Object.keys(e||{}).length)return;z.form={},z.formArray=[];const o=JSON.parse(JSON.stringify(e));i((()=>{Ee(o)}))}),{immediate:!0});const De=e=>{z.showEvaluateSettingWrap=!1,z.showEvaluateCountdown=!!e,H("startWriteScale")},Oe=()=>{console.log("----closeEvaluateCountdown"),z.showEvaluateCountdown=!1,pe.value||(z.banSubmit=!0,_e(),Y.warning({title:"温馨提示",content:"测评时间到了,结束测评!",maskClosable:!1,positiveText:"确定",onPositiveClick:()=>{}}))},Le=e=>{Y.warning({title:"提示",content:()=>w("div",{class:"evatip-container"},[w("span","答案解析:"),w("p",e)]),class:"c-evatip-dialog-wrap",showIcon:!1,positiveText:"确定",negativeText:"关闭",maskClosable:!1,onPositiveClick(){},onNegativeClick(){}})},xe=(e,o,a)=>{console.log(e,"--val");let{choiceObj:t,isSetObj:i}=a||{};switch(o.type.includes("SELECT")||(z.form[o.val_key]=e),o.type){case"SELECT":case"EVALUATE_SELECT":let{value:a,list:n=[]}=e;z.form[o.val_key]=a,Ae(e,o,z.formArray),je(n,o,z.formArray);break;case"RADIO_BLOCK":case"CHECKBOX_BLOCK":i&&(z.choiceComObj[o.val_key]=t),Ae(e,o,z.formArray);break;case"EVALUATE_RADIO_BLOCK":case"EVALUATE_CHECKBOX_BLOCK":Ae(e,o,z.formArray);break;case"DATE":case"TIME":case"DATETIME":case"SEARCH_CASCADE":z.submitForm[o.val_key]=e}},Ie=(e,o)=>{console.log(o),z.form[o.val_key]=e},Pe=e=>{if(!e||!e.length)return{labelStr:"",labels:[]};const o=e||[],a=[],t=[];return o.forEach((e=>{t.push(e),a.push(e.labelName)})),z.labelSelectedList=o,{labelStr:a.join(","),labels:t}},Ne=()=>{var e;if(!z.formArray.find((e=>O(e.type))))return void qe("确认要提交吗?");let{evaluateResultSetting:o}=z.config;if(!o||!Object.keys(o).length&&!de.value||Se.value)return void qe("确认要结束测评吗?");if("formIframe"==Q.openType&&de.value)return void H("submitNoRequest");let a="确定要提前结束测评吗?";if(fe.value&&(null==(e=ee.value)?void 0:e.getCountdownObj)){const e=ee.value.getCountdownObj(),{setAnswered:o,totalLen:t}=e;o<t?a="存在未作答的题目,确定要提前结束测评吗?":!(null==z?void 0:z.showEvaluateCountdown)&&(a="确认要结束测评吗?")}qe(a)},qe=e=>{Y.warning({title:"温馨提示",content:()=>w("div",{style:{paddingLeft:"30px"}},e),positiveText:"确定",negativeText:"取消",maskClosable:!1,closable:!1,positiveButtonProps:{type:"primary"},onPositiveClick:()=>{Me()},onNegativeClick(){}})},Me=()=>{var e;null==(e=oe.value)||e.validate((e=>{var o;if(e){console.log(e);let a=(null==(o=e[0])?void 0:o[0])||{},t=a.field,i=a.message,n=z.formArray.find((e=>e.databaseTitle===t));return n&&(t=n.title),Z.error(t+i),!1}_e()}))},Be=()=>{H("onCloseSetting")};return E({getScaleData:()=>({...z}),onSubmit:Ne,cancel:Be}),(e,o)=>(n(),s("div",{class:l(["c-scale",{"c-scale-nobtn":r(ge)}])},[u(' <template v-if="state.spinning">\n <n-spin :show="state.spinning" description="加载中"></n-spin>\n </template> '),z.spinning||z.hasFrontAddress?u("v-if",!0):(n(),s(c,{key:0},[r(ae).noData?(n(),m(x,{key:0,noDataImg:r(ae).noDataImg,noDataTip:r(ae).noDataTip},null,8,["noDataImg","noDataTip"])):(n(),s(c,{key:1},[r(de)&&!r(be)?(n(),m(N,v({key:0},r(Ce),{onWriteGuage:De}),null,16)):(n(),s(c,{key:1},[r(fe)?(n(),m(P,v({key:0,ref_key:"countdownDom",ref:ee},r(we),{onCloseEvaluateCountdown:Oe}),null,16)):u("v-if",!0),p("div",{class:l(["scale-container",{"scale-container-nopadding":r(ue),"scale-container-hasfooter":r(ge)}]),style:d(r(re))},[r(ve)?(n(),m(r(M),{key:0,config:z.config,maxScore:z.maxScore},null,8,["config","maxScore"])):u("v-if",!0),f(r(V),{ref_key:"formRef",ref:oe,model:z.form,rules:z.rules,"require-mark-placement":"left",class:"main"},{default:g((()=>[(n(!0),s(c,null,y(z.formArray,((e,o)=>(n(),s(c,{key:(e.id||e.seq)+o},[r(ce)(e)?(n(),m(r(F),{key:0,path:e.val_key,"show-label":!r(D)(e.type),class:"c-scle-form-item"},{label:g((()=>[p("span",{class:l({"scale-label-required":r(le)(e)}),innerHTML:r(me)(e)},null,10,W),r(le)(e)?(n(),s("span",U,"(必填)")):u("v-if",!0),r(ye)(e)?(n(),s("span",J,k(r(ye)(e)),1)):u("v-if",!0),r(se)(e)?(n(),s("span",{key:2,class:"evalute-tip",onClick:o=>(async e=>{var o;if(z.evatipMap[e.id])return void Le(z.evatipMap[e.id]);let a="getSubjectAnswer";const t=(null==(o=Q.scaleApiConfig)?void 0:o[a])||null;if(!t||"function"!=typeof t)return void Z.error(`${a} Is not a function`);let i=await t(e.id);i&&(z.evatipMap[e.id]||(z.evatipMap[e.id]=i,Le(i)))})(e)},[f(r(I),{"icon-class":"a-xitongtubiaotishi"}),h(" 查看提示 ")],8,X)):u("v-if",!0)])),default:g((()=>[(n(),m(C(e.renderCom),v(r(he)(e,o),{key:(e.id||e.seq)+o,onScaleChange:xe,onOnChange:o=>((e,o)=>{z.form[o.val_key]=Pe(e)})(o,e),onVodFileList:Ie}),null,16,["onOnChange"])),r(ke)(e)?(n(),m(q,{key:0,item:e},null,8,["item"])):u("v-if",!0)])),_:2},1032,["path","show-label"])):u("v-if",!0)],64)))),128))])),_:1},8,["model","rules"])],6),r(ge)?(n(),s("div",G,[u(" 分享的链接 隐藏取消按钮 "),"guage"!==Q.sourceType?(n(),m(r(K),{key:0,onClick:Be},{default:g((()=>[h("取消")])),_:1})):u("v-if",!0),Q.isLock?u("v-if",!0):(n(),m(r(K),{key:1,onClick:Ne,disabled:z.banSubmit,type:"primary"},{default:g((()=>[h("保存")])),_:1},8,["disabled"]))])):u("v-if",!0)],64))],64))],64))],2))}}),[["__file","ScaleView.vue"]]);export{Q as default};
@@ -1 +1 @@
1
- import{defineComponent as t,ref as e,reactive as l,computed as a,watch as i,openBlock as n,createElementBlock as r,unref as s,createCommentVNode as d,withDirectives as o,createElementVNode as c,normalizeClass as b,createVNode as u,withCtx as p,Fragment as f,renderList as h,createBlock as y,createTextVNode as v,toDisplayString as m,vShow as g,nextTick as C}from"vue";import{useMessage as L,NAnchor as I,NAnchorLink as S}from"naive-ui";import E from"./components/label-classify.vue.js";import{handleLabelColor as w}from"../../../shared/utils/vexutils.js";import x from"../../../_virtual/plugin-vue_export-helper.js";import A from"xe-utils";const O={key:0,class:"label-disable-wrap"},K=[c("p",{class:"label-disable-title"},"无可选标签",-1),c("p",{class:"label-disable-desc"},"请联系管理员进行标签管理设置",-1)],j={style:{height:"100%"}},k={class:"label-wrap"},T=["id"],_={class:"edit-label-type"};var B=x(t({__name:"LabelFormContent",props:{item:{default:()=>({})},isEdit:{type:Boolean,default:!0},isLock:{type:Boolean,default:!1},labelSelectedList:null,isChangeWindow:{type:Boolean},getLabelList:{type:Function,default:()=>Promise.resolve({rows:[]})},deleteLabel:{type:Function,default:()=>Promise.resolve({status:!0})},saveLabelItem:{type:Function,default:()=>Promise.resolve({status:!0})},labelOptions:null,sourceType:{default:""},explicit:{type:Boolean,default:!1}},emits:["explicitOnChange","change","updateLabelData"],setup(t,{expose:x,emit:B}){const D=t,F=L(),V=e(null),P=l({editLabelItem:{},inited:!1,labelSelectedEdit:[],labelAnchorKey:"",cacheAnchorKey:"",labelConfig:{}});let N=e(0);const W=a((()=>{if(!P.inited)return!1;let t=P.labelConfig;return!t||Object.keys(t).every((e=>!t[e].itemList))})),$=a((()=>{let t=[].concat(...P.labelSelectedEdit,...D.labelSelectedList);return J(t,"labelId")})),q=a((()=>{const t=$.value||[];return Array.isArray(t)?t.map((t=>t.labelId)):[]})),J=(t,e)=>{let l={};return t.reduce(((t,a)=>(!l[a[e]]&&(l[a[e]]=t.push(a)),t)),[])},R=()=>{if(P.labelSelectedEdit=$.value,"object"==typeof P.labelConfig){Object.keys(P.labelConfig||{}).forEach((t=>{var e;let l=(null==(e=P.labelConfig[t])?void 0:e.itemList)||[];l.length&&l.forEach((t=>{q.value.includes(t.labelId)&&(t.isSelect=!0)}))}))}},z=(t,e)=>{if(!t)return;let l=Object.keys(t)||[];if(!l.length)return;let a=t[l[0]].curKey;if(e&&"string"==typeof e){let[i]=e.split("~"),n=l.find((e=>t[e]&&t[e].curKey&&t[e].curKey.includes(i)));n&&(a=t[n].curKey)}a&&Y(a)},G=(t,e)=>{e.showAdd=!0;const l=t.target.nextElementSibling;C((()=>{var t;null==(t=null==l?void 0:l.firstChild)||t.focus()}))},H=(t,e)=>{setTimeout((()=>{e.addVal?Q(e):e.showAdd=!1}),150)},M=(t,e)=>{e.addVal="",e.showAdd=!1},Q=async t=>{var e;if(!!t.itemList.filter((t=>!(t.isPublic&&1==t.isPublic))).find((e=>e.labelName===t.addVal)))return F.error("标签名称重复!"),!1;let l="";l=(null==(e=t.itemList)?void 0:e.length)?t.itemList[0].parentColor||t.parentColor||"":(null==t?void 0:t.parentColor)||"";const a={type:t.typeId,name:t.addVal,parentColor:l},{status:i}=await D.saveLabelItem(a,t);i&&(F.success("添加成功!"),B("updateLabelData"),t.showAdd=!1)},U=(t,e,l,a)=>{var i;const n=l.itemList,r=l.multipleChoice;let s=(null==(i=P.labelSelectedEdit)?void 0:i.length)&&A.clone(P.labelSelectedEdit,!0)||[];if(t){if(s.some((t=>t.labelId==e.labelId)))return;if(2==r){const{typeId:t,labelId:l}=e;s=s.filter((e=>e.typeId!==t)),n.forEach((t=>{t.labelId!==l&&(t.isSelect=!1)}))}s.push(e)}else{const t=s.findIndex((t=>t.labelId==e.labelId));-1!=t&&s.splice(t,1)}P.labelSelectedEdit=[...s],N.value++,D.explicit&&B("explicitOnChange",[...P.labelSelectedEdit])},X=async t=>{const{status:e}=await D.deleteLabel(t,D.item);if(e){F.success("删除成功!");for(const e in P.labelConfig){const l=P.labelConfig[e].itemList.findIndex((e=>e.labelId==t.labelId));-1!=l&&P.labelConfig[e].itemList.splice(l,1)}const e=P.labelSelectedEdit||[],l=D.labelSelectedList||[];if(e&&e.length){const l=e.findIndex((e=>e.labelId==t.labelId));-1!=l&&e.splice(l,1)}if(l&&l.length){const e=l.findIndex((e=>e.labelId==t.labelId));-1!=e&&l.splice(e,1),B("change",[...l],D.item)}B("updateLabelData")}else F.warning("删除失败")},Y=t=>{t&&setTimeout((()=>{let e,l="#"+t;e=V.value.querySelector("a[href='"+l+"']"),e&&e.click(),P.labelAnchorKey=t}),32)},Z=t=>{t.preventDefault()},tt=t=>{if(!t)return;let e=t.slice(1);P.cacheAnchorKey=e},et=()=>{var t;return null==(t=V.value)?void 0:t.querySelector(".right-label-wrap")};return i((()=>D.labelOptions),(t=>{t&&(()=>{var t;if(D.isLock)return;const e=JSON.parse(JSON.stringify(D.labelOptions));for(let l in e){let a=(null==(t=e[l])?void 0:t.typeId)||"";Object.assign(e[l],{curKey:`${l}_${a}}`})}P.labelConfig=e,C((()=>{let t;R(),D.explicit&&P.inited&&(t=P.labelAnchorKey),z(P.labelConfig,t),P.inited=!0}))})()}),{immediate:!0,deep:!0}),x({resetShowAdd:()=>{let{labelObj:t}=P.editLabelItem;if(t&&Object.keys(t).length)for(let e in t){let l=t[e];Object.assign(l,{showAdd:!1})}},handleLabelForm:t=>{t([...P.labelSelectedEdit||[]])},handleResetOptions:()=>{},hanldeSetLabelItem:(t,e)=>{if("object"==typeof P.labelConfig){Object.keys(P.labelConfig||{}).forEach((l=>{var a;let i=(null==(a=P.labelConfig[l])?void 0:a.itemList)||[];i.length&&i.forEach((l=>{t==l.labelId&&(l.isSelect=e)}))}))}if(!1===e&&Array.isArray(P.labelSelectedEdit)){const e=P.labelSelectedEdit.findIndex((e=>e.labelId==t));-1!=e&&P.labelSelectedEdit.splice(e,1)}}}),(e,l)=>(n(),r("div",{class:"c-label-form-content",ref_key:"labelFormContent",ref:V},[s(W)?(n(),r("div",O,K)):d("v-if",!0),o(c("div",j,[c("div",k,[d(" 表单内嵌打开标签组件的样式 "),d(' <div v-if="explicit" class="explicit-continer">\r\n\t\t\t\t\t<n-tabs :value="state.labelAnchorKey" type="card" @change="labelAnchorTabsOnChange" tab-position="top">\r\n\t\t\t\t\t\t<template v-for="(v, i) in state.labelConfig">\r\n\t\t\t\t\t\t\t<n-tab-pane :name="v.curKey">\r\n\t\t\t\t\t\t\t\t<span slot="tab">\r\n\t\t\t\t\t\t\t\t\t{{ i }}\r\n\t\t\t\t\t\t\t\t\t<span class="edit-label-type">({{ v.multipleChoice == 2 ? \'单\' : \'多\' }}选)</span>\r\n\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t<div class="explicit-label-wrap left-label-wrap">\r\n\t\t\t\t\t\t\t\t\t<div class="edit-label-content">\r\n\t\t\t\t\t\t\t\t\t\t<labelClassify\r\n\t\t\t\t\t\t\t\t\t\t\t:classifyItem="v"\r\n\t\t\t\t\t\t\t\t\t\t\t:handleLabelChange="handleLabelChange"\r\n\t\t\t\t\t\t\t\t\t\t\t:handleLabelColor="handleLabelColor"\r\n\t\t\t\t\t\t\t\t\t\t\t:handleDelLabel="handleDelLabel"\r\n\t\t\t\t\t\t\t\t\t\t\t:hanldeBlur="hanldeBlur"\r\n\t\t\t\t\t\t\t\t\t\t\t:handleAddLabel="handleAddLabel"\r\n\t\t\t\t\t\t\t\t\t\t\t:clearaddVal="clearaddVal"\r\n\t\t\t\t\t\t\t\t\t\t\t:isEdit="isEdit"\r\n\t\t\t\t\t\t\t\t\t\t\t:sourceType="sourceType"\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</n-tab-pane>\r\n\t\t\t\t\t\t</template>\r\n\t\t\t\t\t</n-tabs>\r\n\t\t\t\t</div> '),d("\r\n\t\t\t\t\t普通标签样式\r\n\t\t\t\t\tv-else\r\n\t\t\t\t\texplicit\r\n\t\t\t\t "),c("div",{class:b(["left-label-wrap",{"total-left-label-wrap":t.isChangeWindow}])},[u(s(I),{"offset-target":et,type:"block",onClick:Z,onChange:tt},{default:p((()=>[(n(!0),r(f,null,h(P.labelConfig,((t,e)=>(n(),y(s(S),{href:`#${t.curKey}`,title:String(e)},null,8,["href","title"])))),256))])),_:1})],2),d(' v-if="!explicit" '),c("div",{class:b(["right-label-wrap",{"total-right-label-wrap":t.isChangeWindow}])},[(n(!0),r(f,null,h(P.labelConfig,((e,l)=>(n(),r("div",{key:l,class:"edit-label-content"},[c("div",{class:"edit-label",id:e.curKey},[v(m(l)+" ",1),c("span",_,"("+m(2==e.multipleChoice?"单":"多")+"选)",1)],8,T),u(E,{classifyItem:e,handleLabelChange:U,handleLabelColor:s(w),handleDelLabel:X,hanldeBlur:H,handleAddLabel:G,clearaddVal:M,isEdit:t.isEdit,sourceType:t.sourceType},null,8,["classifyItem","handleLabelColor","isEdit","sourceType"])])))),128))],2)])],512),[[g,!s(W)]])],512))}}),[["__file","LabelFormContent.vue"]]);export{B as default};
1
+ import{defineComponent as t,ref as e,reactive as l,computed as a,watch as i,openBlock as n,createElementBlock as s,unref as d,createCommentVNode as o,withDirectives as r,createElementVNode as c,normalizeClass as b,createVNode as u,withCtx as p,Fragment as f,renderList as h,createBlock as y,createTextVNode as v,toDisplayString as m,vShow as g,nextTick as C}from"vue";import{useMessage as L,NAnchor as I,NAnchorLink as S}from"naive-ui";import E from"./components/label-classify.vue.js";import{handleLabelColor as w}from"../../../shared/utils/vexutils.js";import x from"../../../_virtual/plugin-vue_export-helper.js";import A from"xe-utils";const O={key:0,class:"label-disable-wrap"},K=[c("p",{class:"label-disable-title"},"无可选标签",-1),c("p",{class:"label-disable-desc"},"请联系管理员进行标签管理设置",-1)],j={style:{height:"100%"}},k={class:"label-wrap"},T=["id"],_={class:"edit-label-type"};var B=x(t({__name:"LabelFormContent",props:{item:{default:()=>({})},isEdit:{type:Boolean,default:!0},isLock:{type:Boolean,default:!1},labelSelectedList:null,isChangeWindow:{type:Boolean},getLabelList:{type:Function,default:()=>Promise.resolve({rows:[]})},deleteLabel:{type:Function,default:()=>Promise.resolve({status:!0})},saveLabelItem:{type:Function,default:()=>Promise.resolve({status:!0})},labelOptions:null,sourceType:{default:""},explicit:{type:Boolean,default:!1}},emits:["explicitOnChange","change","updateLabelData"],setup(t,{expose:x,emit:B}){const D=t,F=L(),V=e(null),P=l({editLabelItem:{},inited:!1,labelSelectedEdit:[],labelAnchorKey:"",cacheAnchorKey:"",labelConfig:{}});let N=e(0);const W=a((()=>{if(!P.inited)return!1;let t=P.labelConfig;return!t||Object.keys(t).every((e=>!t[e].itemList))})),$=a((()=>{let t=[].concat(...P.labelSelectedEdit,...D.labelSelectedList);return J(t,"labelId")})),q=a((()=>{const t=$.value||[];return Array.isArray(t)?t.map((t=>t.labelId)):[]})),J=(t,e)=>{let l={};return t.reduce(((t,a)=>(!l[a[e]]&&(l[a[e]]=t.push(a)),t)),[])},R=()=>{if(P.labelSelectedEdit=$.value,"object"==typeof P.labelConfig){Object.keys(P.labelConfig||{}).forEach((t=>{var e;let l=(null==(e=P.labelConfig[t])?void 0:e.itemList)||[];l.length&&l.forEach((t=>{q.value.includes(t.labelId)&&(t.isSelect=!0)}))}))}},z=(t,e)=>{if(!t)return;let l=Object.keys(t)||[];if(!l.length)return;let a=t[l[0]].curKey;if(e&&"string"==typeof e){let[i]=e.split("~"),n=l.find((e=>t[e]&&t[e].curKey&&t[e].curKey.includes(i)));n&&(a=t[n].curKey)}a&&Y(a)},G=(t,e)=>{e.showAdd=!0;const l=t.target.nextElementSibling;C((()=>{var t;null==(t=null==l?void 0:l.firstChild)||t.focus()}))},H=(t,e)=>{setTimeout((()=>{e.addVal?Q(e):e.showAdd=!1}),150)},M=(t,e)=>{e.addVal="",e.showAdd=!1},Q=async t=>{var e;if(!!t.itemList.filter((t=>!(t.isPublic&&1==t.isPublic))).find((e=>e.labelName===t.addVal)))return F.error("标签名称重复!"),!1;let l="";l=(null==(e=t.itemList)?void 0:e.length)?t.itemList[0].parentColor||t.parentColor||"":(null==t?void 0:t.parentColor)||"";const a={type:t.typeId,name:t.addVal,parentColor:l},{status:i}=await D.saveLabelItem(a,t);i&&(F.success("添加成功!"),B("updateLabelData"),t.showAdd=!1)},U=(t,e,l,a)=>{var i;const n=l.itemList,s=l.multipleChoice;let d=(null==(i=P.labelSelectedEdit)?void 0:i.length)&&A.clone(P.labelSelectedEdit,!0)||[];if(t){if(d.some((t=>t.labelId==e.labelId)))return;if(2==s){const{typeId:t,labelId:l}=e;d=d.filter((e=>e.typeId!==t)),n.forEach((t=>{t.labelId!==l&&(t.isSelect=!1)}))}d.push(e)}else{const t=d.findIndex((t=>t.labelId==e.labelId));-1!=t&&d.splice(t,1)}P.labelSelectedEdit=[...d],N.value++,D.explicit&&B("explicitOnChange",[...P.labelSelectedEdit])},X=async t=>{const{status:e}=await D.deleteLabel(t,D.item);if(e){F.success("删除成功!");for(const e in P.labelConfig){const l=P.labelConfig[e].itemList.findIndex((e=>e.labelId==t.labelId));-1!=l&&P.labelConfig[e].itemList.splice(l,1)}const e=P.labelSelectedEdit||[],l=D.labelSelectedList||[];if(e&&e.length){const l=e.findIndex((e=>e.labelId==t.labelId));-1!=l&&e.splice(l,1)}if(l&&l.length){const e=l.findIndex((e=>e.labelId==t.labelId));-1!=e&&l.splice(e,1),B("change",[...l],D.item)}B("updateLabelData")}else F.warning("删除失败")},Y=t=>{t&&setTimeout((()=>{let e,l="#"+t;e=V.value.querySelector("a[href='"+l+"']"),e&&e.click(),P.labelAnchorKey=t}),32)},Z=t=>{t.preventDefault()},tt=t=>{if(!t)return;let e=t.slice(1);P.cacheAnchorKey=e},et=()=>{var t;return null==(t=V.value)?void 0:t.querySelector(".right-label-wrap")};return i((()=>D.labelOptions),(t=>{t&&(()=>{var t;if(D.isLock)return;const e=JSON.parse(JSON.stringify(D.labelOptions));for(let l in e){let a=(null==(t=e[l])?void 0:t.typeId)||"";Object.assign(e[l],{curKey:`${l}_${a}}`})}P.labelConfig=e,C((()=>{let t;R(),D.explicit&&P.inited&&(t=P.labelAnchorKey),z(P.labelConfig,t),P.inited=!0}))})()}),{immediate:!0,deep:!0}),x({resetShowAdd:()=>{let{labelObj:t}=P.editLabelItem;if(t&&Object.keys(t).length)for(let e in t){let l=t[e];Object.assign(l,{showAdd:!1})}},handleLabelForm:t=>{t([...P.labelSelectedEdit||[]])},handleResetOptions:()=>{},hanldeSetLabelItem:(t,e)=>{if("object"==typeof P.labelConfig){Object.keys(P.labelConfig||{}).forEach((l=>{var a;let i=(null==(a=P.labelConfig[l])?void 0:a.itemList)||[];i.length&&i.forEach((l=>{t==l.labelId&&(l.isSelect=e)}))}))}if(!1===e&&Array.isArray(P.labelSelectedEdit)){const e=P.labelSelectedEdit.findIndex((e=>e.labelId==t));-1!=e&&P.labelSelectedEdit.splice(e,1)}}}),(e,l)=>(n(),s("div",{class:"c-label-form-content",ref_key:"labelFormContent",ref:V},[d(W)?(n(),s("div",O,K)):o("v-if",!0),r(c("div",j,[c("div",k,[o(" 表单内嵌打开标签组件的样式 "),o(' <div v-if="explicit" class="explicit-continer">\n\t\t\t\t\t<n-tabs :value="state.labelAnchorKey" type="card" @change="labelAnchorTabsOnChange" tab-position="top">\n\t\t\t\t\t\t<template v-for="(v, i) in state.labelConfig">\n\t\t\t\t\t\t\t<n-tab-pane :name="v.curKey">\n\t\t\t\t\t\t\t\t<span slot="tab">\n\t\t\t\t\t\t\t\t\t{{ i }}\n\t\t\t\t\t\t\t\t\t<span class="edit-label-type">({{ v.multipleChoice == 2 ? \'单\' : \'多\' }}选)</span>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<div class="explicit-label-wrap left-label-wrap">\n\t\t\t\t\t\t\t\t\t<div class="edit-label-content">\n\t\t\t\t\t\t\t\t\t\t<labelClassify\n\t\t\t\t\t\t\t\t\t\t\t:classifyItem="v"\n\t\t\t\t\t\t\t\t\t\t\t:handleLabelChange="handleLabelChange"\n\t\t\t\t\t\t\t\t\t\t\t:handleLabelColor="handleLabelColor"\n\t\t\t\t\t\t\t\t\t\t\t:handleDelLabel="handleDelLabel"\n\t\t\t\t\t\t\t\t\t\t\t:hanldeBlur="hanldeBlur"\n\t\t\t\t\t\t\t\t\t\t\t:handleAddLabel="handleAddLabel"\n\t\t\t\t\t\t\t\t\t\t\t:clearaddVal="clearaddVal"\n\t\t\t\t\t\t\t\t\t\t\t:isEdit="isEdit"\n\t\t\t\t\t\t\t\t\t\t\t:sourceType="sourceType"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</n-tab-pane>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</n-tabs>\n\t\t\t\t</div> '),o("\n\t\t\t\t\t普通标签样式\n\t\t\t\t\tv-else\n\t\t\t\t\texplicit\n\t\t\t\t "),c("div",{class:b(["left-label-wrap",{"total-left-label-wrap":t.isChangeWindow}])},[u(d(I),{"offset-target":et,type:"block",onClick:Z,onChange:tt},{default:p((()=>[(n(!0),s(f,null,h(P.labelConfig,((t,e)=>(n(),y(d(S),{href:`#${t.curKey}`,title:String(e)},null,8,["href","title"])))),256))])),_:1})],2),o(' v-if="!explicit" '),c("div",{class:b(["right-label-wrap",{"total-right-label-wrap":t.isChangeWindow}])},[(n(!0),s(f,null,h(P.labelConfig,((e,l)=>(n(),s("div",{key:l,class:"edit-label-content"},[c("div",{class:"edit-label",id:e.curKey},[v(m(l)+" ",1),c("span",_,"("+m(2==e.multipleChoice?"单":"多")+"选)",1)],8,T),u(E,{classifyItem:e,handleLabelChange:U,handleLabelColor:d(w),handleDelLabel:X,hanldeBlur:H,handleAddLabel:G,clearaddVal:M,isEdit:t.isEdit,sourceType:t.sourceType},null,8,["classifyItem","handleLabelColor","isEdit","sourceType"])])))),128))],2)])],512),[[g,!d(W)]])],512))}}),[["__file","LabelFormContent.vue"]]);export{B as default};
@@ -1 +1 @@
1
- import{defineComponent as e,computed as t,toRefs as l,ref as n,watch as s,openBlock as o,createElementBlock as i,normalizeStyle as p,unref as r,normalizeClass as a,createElementVNode as d,Fragment as u,renderList as c,createCommentVNode as m,withDirectives as f,renderSlot as h,toDisplayString as v,vShow as g,createBlock as I,withCtx as x,createVNode as y,createTextVNode as B}from"vue";import{NTooltip as w,NEmpty as T}from"naive-ui";import{useTheme as S}from"../../../shared/mixins/useTheme.js";import{defaultCssVars as _}from"./constants/index.js";import b from"../../../_virtual/plugin-vue_export-helper.js";const k={class:"stepBox"},C=["title"],$=d("ul",{class:"nodeTipContent"},[d("li",null,[d("p",null,[d("span",{style:{"margin-right":"10px"}},"(1)"),B(" 2022-07-30 14:15:12 ")]),d("p",null,"周老师"),d("p",null,"步骤条提示"),d("p",null,"咱这是测试案例,请使用插槽:#nodeTipBox 自定义")]),d("li",null,[d("p",null,[d("span",{style:{"margin-right":"10px"}},"(2)"),B(" 2022-07-30 14:15:12 ")]),d("p",null,"周老师"),d("p",null,"步骤条提示"),d("p",null,"咱这是个测试案例,请使用插槽:#nodeTipBox 自定义")])],-1),L=["title"],R=["title"],j=["title"],M={key:0,style:{height:"48px"}},N={key:1},D={key:1};var W=b(e({__name:"StepsWheel",props:{stepInfo:{type:Object,default:()=>({list:[],cols:6})},currentStep:{type:Number,default:1},toolTipShow:{type:Boolean,default:!0},lastNodeRender:{type:Boolean,default:!1},noDataMsg:{type:String,default:"暂无节点数据"},placement:{type:String,default:"center"}},setup(e){const B=e,b=S(_,"StepsWheel"),W=t((()=>Math.ceil(P.value.length/B.stepInfo.cols))),A=t((()=>B.lastNodeRender)),{noDataMsg:E}=l(B),O=n(null),F=t((()=>{var e;let t=72;if(null==(e=null==O?void 0:O.value)?void 0:e.length){let e=O.value[0],l=window.getComputedStyle?window.getComputedStyle(e):e.currentStyle;t=isNaN(parseInt(l["min-width"]))?72:parseInt(l["min-width"])}return`${20+B.stepInfo.cols*t}px`})),P=n([]),q=n([]),z=e=>{if(q.value.length){if(e.rowIndex===q.value.length)return!0;if(e.rowIndex<q.value.length)return q.value[e.rowIndex].some((e=>null==e?void 0:e.title))}return!1},G=e=>{const{list:t=[]}=B.stepInfo;return e.rowIndex%2==0&&"frist"==e.nodeType&&e.nodeIndex!==t.length},H=e=>{const{list:t=[]}=B.stepInfo;return e.rowIndex%2!=0&&"last"==e.nodeType&&e.nodeIndex!==t.length},J=(e,t)=>e.rowIndex%2==0?B.currentStep>=t+(B.stepInfo.cols-2*e.sort):B.currentStep>=t+2,K=(e,t)=>{let l=e.length,n=l%t==0?l/t:Math.floor(l/t+1),s=[];for(let l=0;l<n;l++){let n=e.slice(l*t,l*t+t);s.push(n)}return s},Q=e=>{const{cols:t}=B.stepInfo;let l=K(P.value,t),n=l[l.length-1].filter((e=>e));return W.value%2==0?e!=n[n.length-1].nodeIndex-(t-2*n[n.length-1].sort):e!=n[n.length-1].nodeIndex-1},U=e=>{const{cols:t}=B.stepInfo;let l=K(P.value,t),n=l[l.length-1].filter((e=>e));return W.value%2==0?A.value&&e==n[0].nodeIndex-(t-2*n[0].sort):A.value&&e==n[n.length-1].nodeIndex-1},V=(e,t)=>{const{cols:l}=B.stepInfo;let n=K(P.value,l),s=n[n.length-1].filter((e=>e));return W.value%2==0?"circle"===t?A.value&&e==s[0].nodeIndex-(l-2*s[0].sort)-l:A.value&&e==s[0].nodeIndex-(l-2*s[0].sort):"circle"===t?A.value&&e==s[s.length-1].nodeIndex-1-l:A.value&&e==s[s.length-1].nodeIndex-2};return s((()=>B.stepInfo),(e=>{var t;(null==(t=null==e?void 0:e.list)?void 0:t.length)&&((e,t)=>{let l=e.length+1,n=Math.ceil(e.length/t),s=!0,o=[];for(var i=0;i<n;i++)o[i]=new Array(t),o[i].fill(null);let p=0,r=0;for(let n=1;n<l;n++)o[p][r]=Object.assign(e[n-1],{nodeIndex:n,rowIndex:p+1}),s?n%t!=0?r++:(s=!s,p++):n%t!=0?r--:(s=!s,p++);let a=[];o.map((e=>{e.map(((e,t)=>e&&(e.sort=t))),e[0]&&(e[0].nodeType="frist"),e[e.length-1]&&(e[e.length-1].nodeType="last"),a=[...a,...e]})),P.value=a,q.value=o})(e.list,e.cols)}),{immediate:!0,deep:!0}),(t,l)=>(o(),i("div",{class:"step-wheel-box",style:p({minWidth:r(F),...r(b)})},[P.value.length?(o(),i("div",{key:0,class:a(["stepOut",{placementLeft:"left"===e.placement,placementRight:"right"===e.placement}])},[d("ul",k,[(o(!0),i(u,null,c(P.value,((l,n)=>(o(),i("li",{ref_for:!0,ref_key:"stepItemRef",ref:O,key:(null==l?void 0:l.stepId)||n,class:a(["stepItem",{[`stepItem_${n+1}`]:!0,[`${null==l?void 0:l.stepId}`]:!!(null==l?void 0:l.stepId)}])},[l?(o(),i(u,{key:0},[m(" 步骤头部信息 "),f(d("div",{class:a(["stepTopBox",{finished:U(n),stepTopBox_right:"right"===e.placement,stepTopBox_left:"left"===e.placement}])},[h(t.$slots,"stepTopBox",{stepItem:l},(()=>[d("span",{title:l.title},v(l.title),9,C)]))],2),[[g,l.title]]),m(" 步骤条的节点,此处为圆圈 "),e.toolTipShow?(o(),I(r(w),{key:0,placement:"top","show-arrow":!0,trigger:"hover",style:p({opacity:"0.88"})},{trigger:x((()=>[d("div",{class:a(["icon",{active:e.currentStep>=l.nodeIndex,finished:U(n)}])},null,2)])),default:x((()=>[h(t.$slots,"nodeTipBox",{stepItem:l,stepId:l.stepId},(()=>[$]))])),_:2},1032,["style"])):(o(),i("div",{key:1,class:a(["icon",{active:e.currentStep>=l.nodeIndex,finished:U(n)}])},null,2)),m(" 步骤条连接线,动态显示 "),"last"!==l.nodeType?f((o(),i("div",{key:2,class:a(["line",{lineActive:J(l,n),finished:V(n)}])},null,2)),[[g,Q(n)]]):m("v-if",!0),m(" 步骤条弯曲连线,动态渲染 "),G(l)||H(l)?(o(),i("div",{key:3,class:a({lineCircleActive:e.currentStep>l.nodeIndex,lineCircleFinished:V(n,"circle"),lineCircleRight:H(l),lineCircleLeft:G(l),lineCirclePlacementRight:H(l)&&"right"===e.placement,lineCirclePlacementLeft:G(l)&&"left"===e.placement})},null,2)):m("v-if",!0),m(" 步骤底部信息 "),d("div",{class:a(["stepBottomBox",{stepBottomBox_right:"right"===e.placement,stepBottomBox_left:"left"===e.placement}])},[h(t.$slots,"stepBottomBox",{stepItem:l},(()=>[m(" 步骤名称 "),f(d("p",{class:a(["stepLabel",{labelFinsh:U(n),stepLabel_right:"right"===e.placement,stepLabel_left:"left"===e.placement}]),title:l.label},v(l.label),11,L),[[g,l.label]]),d("div",{class:a({stepBottomCustomBox:!0,alignItemsEnd:"left"===e.placement,alignItemsStart:"right"===e.placement})},[h(t.$slots,"stepBottomCustomBox",{stepItem:l},(()=>[d("div",{class:a({stepBottomDefaultBox:!0,alignItemsEnd:"left"===e.placement,alignItemsStart:"right"===e.placement}),style:{width:"100%",display:"flex",flexDirection:"column"}},[f(d("p",{class:"stepExtra",title:l.person},v(l.person),9,R),[[g,l.person]]),m(" 步骤时间 "),f(d("p",{class:"statusTime",title:l.statusTime},v(l.statusTime),9,j),[[g,l.statusTime]])],2)]))],2)])),z(l)?(o(),i("div",M)):m("v-if",!0)],2)],64)):(o(),i("div",N,[m("null元素占位")]))],2)))),128))])],2)):(o(),i("div",D,[y(r(T),{description:r(E)},null,8,["description"])]))],4))}}),[["__file","StepsWheel.vue"]]);export{W as default};
1
+ import{defineComponent as e,computed as t,toRefs as l,ref as n,watch as s,openBlock as o,createElementBlock as i,normalizeStyle as p,unref as r,normalizeClass as a,createElementVNode as d,Fragment as u,renderList as c,createCommentVNode as m,withDirectives as f,renderSlot as h,toDisplayString as v,vShow as g,createBlock as I,withCtx as x,createVNode as y,createTextVNode as B}from"vue";import{NTooltip as w,NEmpty as T}from"naive-ui";import{useTheme as S}from"../../../shared/mixins/useTheme.js";import"@vueuse/core";import{defaultCssVars as _}from"./constants/index.js";import b from"../../../_virtual/plugin-vue_export-helper.js";const k={class:"stepBox"},C=["title"],$=d("ul",{class:"nodeTipContent"},[d("li",null,[d("p",null,[d("span",{style:{"margin-right":"10px"}},"(1)"),B(" 2022-07-30 14:15:12 ")]),d("p",null,"周老师"),d("p",null,"步骤条提示"),d("p",null,"咱这是测试案例,请使用插槽:#nodeTipBox 自定义")]),d("li",null,[d("p",null,[d("span",{style:{"margin-right":"10px"}},"(2)"),B(" 2022-07-30 14:15:12 ")]),d("p",null,"周老师"),d("p",null,"步骤条提示"),d("p",null,"咱这是个测试案例,请使用插槽:#nodeTipBox 自定义")])],-1),L=["title"],R=["title"],j=["title"],M={key:0,style:{height:"48px"}},N={key:1},D={key:1};var W=b(e({__name:"StepsWheel",props:{stepInfo:{type:Object,default:()=>({list:[],cols:6})},currentStep:{type:Number,default:1},toolTipShow:{type:Boolean,default:!0},lastNodeRender:{type:Boolean,default:!1},noDataMsg:{type:String,default:"暂无节点数据"},placement:{type:String,default:"center"}},setup(e){const B=e,b=S(_,"StepsWheel"),W=t((()=>Math.ceil(P.value.length/B.stepInfo.cols))),A=t((()=>B.lastNodeRender)),{noDataMsg:E}=l(B),O=n(null),F=t((()=>{var e;let t=72;if(null==(e=null==O?void 0:O.value)?void 0:e.length){let e=O.value[0],l=window.getComputedStyle?window.getComputedStyle(e):e.currentStyle;t=isNaN(parseInt(l["min-width"]))?72:parseInt(l["min-width"])}return`${20+B.stepInfo.cols*t}px`})),P=n([]),q=n([]),z=e=>{if(q.value.length){if(e.rowIndex===q.value.length)return!0;if(e.rowIndex<q.value.length)return q.value[e.rowIndex].some((e=>null==e?void 0:e.title))}return!1},G=e=>{const{list:t=[]}=B.stepInfo;return e.rowIndex%2==0&&"frist"==e.nodeType&&e.nodeIndex!==t.length},H=e=>{const{list:t=[]}=B.stepInfo;return e.rowIndex%2!=0&&"last"==e.nodeType&&e.nodeIndex!==t.length},J=(e,t)=>e.rowIndex%2==0?B.currentStep>=t+(B.stepInfo.cols-2*e.sort):B.currentStep>=t+2,K=(e,t)=>{let l=e.length,n=l%t==0?l/t:Math.floor(l/t+1),s=[];for(let l=0;l<n;l++){let n=e.slice(l*t,l*t+t);s.push(n)}return s},Q=e=>{const{cols:t}=B.stepInfo;let l=K(P.value,t),n=l[l.length-1].filter((e=>e));return W.value%2==0?e!=n[n.length-1].nodeIndex-(t-2*n[n.length-1].sort):e!=n[n.length-1].nodeIndex-1},U=e=>{const{cols:t}=B.stepInfo;let l=K(P.value,t),n=l[l.length-1].filter((e=>e));return W.value%2==0?A.value&&e==n[0].nodeIndex-(t-2*n[0].sort):A.value&&e==n[n.length-1].nodeIndex-1},V=(e,t)=>{const{cols:l}=B.stepInfo;let n=K(P.value,l),s=n[n.length-1].filter((e=>e));return W.value%2==0?"circle"===t?A.value&&e==s[0].nodeIndex-(l-2*s[0].sort)-l:A.value&&e==s[0].nodeIndex-(l-2*s[0].sort):"circle"===t?A.value&&e==s[s.length-1].nodeIndex-1-l:A.value&&e==s[s.length-1].nodeIndex-2};return s((()=>B.stepInfo),(e=>{var t;(null==(t=null==e?void 0:e.list)?void 0:t.length)&&((e,t)=>{let l=e.length+1,n=Math.ceil(e.length/t),s=!0,o=[];for(var i=0;i<n;i++)o[i]=new Array(t),o[i].fill(null);let p=0,r=0;for(let n=1;n<l;n++)o[p][r]=Object.assign(e[n-1],{nodeIndex:n,rowIndex:p+1}),s?n%t!=0?r++:(s=!s,p++):n%t!=0?r--:(s=!s,p++);let a=[];o.map((e=>{e.map(((e,t)=>e&&(e.sort=t))),e[0]&&(e[0].nodeType="frist"),e[e.length-1]&&(e[e.length-1].nodeType="last"),a=[...a,...e]})),P.value=a,q.value=o})(e.list,e.cols)}),{immediate:!0,deep:!0}),(t,l)=>(o(),i("div",{class:"step-wheel-box",style:p({minWidth:r(F),...r(b)})},[P.value.length?(o(),i("div",{key:0,class:a(["stepOut",{placementLeft:"left"===e.placement,placementRight:"right"===e.placement}])},[d("ul",k,[(o(!0),i(u,null,c(P.value,((l,n)=>(o(),i("li",{ref_for:!0,ref_key:"stepItemRef",ref:O,key:(null==l?void 0:l.stepId)||n,class:a(["stepItem",{[`stepItem_${n+1}`]:!0,[`${null==l?void 0:l.stepId}`]:!!(null==l?void 0:l.stepId)}])},[l?(o(),i(u,{key:0},[m(" 步骤头部信息 "),f(d("div",{class:a(["stepTopBox",{finished:U(n),stepTopBox_right:"right"===e.placement,stepTopBox_left:"left"===e.placement}])},[h(t.$slots,"stepTopBox",{stepItem:l},(()=>[d("span",{title:l.title},v(l.title),9,C)]))],2),[[g,l.title]]),m(" 步骤条的节点,此处为圆圈 "),e.toolTipShow?(o(),I(r(w),{key:0,placement:"top","show-arrow":!0,trigger:"hover",style:p({opacity:"0.88"})},{trigger:x((()=>[d("div",{class:a(["icon",{active:e.currentStep>=l.nodeIndex,finished:U(n)}])},null,2)])),default:x((()=>[h(t.$slots,"nodeTipBox",{stepItem:l,stepId:l.stepId},(()=>[$]))])),_:2},1032,["style"])):(o(),i("div",{key:1,class:a(["icon",{active:e.currentStep>=l.nodeIndex,finished:U(n)}])},null,2)),m(" 步骤条连接线,动态显示 "),"last"!==l.nodeType?f((o(),i("div",{key:2,class:a(["line",{lineActive:J(l,n),finished:V(n)}])},null,2)),[[g,Q(n)]]):m("v-if",!0),m(" 步骤条弯曲连线,动态渲染 "),G(l)||H(l)?(o(),i("div",{key:3,class:a({lineCircleActive:e.currentStep>l.nodeIndex,lineCircleFinished:V(n,"circle"),lineCircleRight:H(l),lineCircleLeft:G(l),lineCirclePlacementRight:H(l)&&"right"===e.placement,lineCirclePlacementLeft:G(l)&&"left"===e.placement})},null,2)):m("v-if",!0),m(" 步骤底部信息 "),d("div",{class:a(["stepBottomBox",{stepBottomBox_right:"right"===e.placement,stepBottomBox_left:"left"===e.placement}])},[h(t.$slots,"stepBottomBox",{stepItem:l},(()=>[m(" 步骤名称 "),f(d("p",{class:a(["stepLabel",{labelFinsh:U(n),stepLabel_right:"right"===e.placement,stepLabel_left:"left"===e.placement}]),title:l.label},v(l.label),11,L),[[g,l.label]]),d("div",{class:a({stepBottomCustomBox:!0,alignItemsEnd:"left"===e.placement,alignItemsStart:"right"===e.placement})},[h(t.$slots,"stepBottomCustomBox",{stepItem:l},(()=>[d("div",{class:a({stepBottomDefaultBox:!0,alignItemsEnd:"left"===e.placement,alignItemsStart:"right"===e.placement}),style:{width:"100%",display:"flex",flexDirection:"column"}},[f(d("p",{class:"stepExtra",title:l.person},v(l.person),9,R),[[g,l.person]]),m(" 步骤时间 "),f(d("p",{class:"statusTime",title:l.statusTime},v(l.statusTime),9,j),[[g,l.statusTime]])],2)]))],2)])),z(l)?(o(),i("div",M)):m("v-if",!0)],2)],64)):(o(),i("div",N,[m("null元素占位")]))],2)))),128))])],2)):(o(),i("div",D,[y(r(T),{description:r(E)},null,8,["description"])]))],4))}}),[["__file","StepsWheel.vue"]]);export{W as default};
@@ -1 +1 @@
1
- import{defineComponent as e,useAttrs as a,reactive as t,ref as l,toRef as i,openBlock as o,createElementBlock as n,createVNode as s,unref as d,withCtx as r,createElementVNode as p,createCommentVNode as c,Fragment as u,renderList as y,normalizeClass as m,toDisplayString as v,createBlock as f,withDirectives as g,createTextVNode as C,vShow as h}from"vue";import{useMessage as k,NSpin as b,NInput as A,NIcon as L,NButton as _,NSelect as w,NTooltip as U}from"naive-ui";import{CloseOutline as N,AddOutline as x,AddCircleSharp as V}from"@vicons/ionicons5";import D from"./ValueCfg.vue.js";import{DataTypeEnums as B,ConditionEnums as I}from"../../types/enums.js";import{useDisplayCategory as j}from"./hooks/useDisplayCategory.js";import{useFilterConditions as S}from"./hooks/useFilterConditions.js";import{conditionOptions as F}from"./helpers/options.js";import z from"../../../../../_virtual/plugin-vue_export-helper.js";const O={class:"searchConditionByApi_wrapper"},P={class:"class-filter-content"},q={key:0,class:"item-name"},E=p("span",{class:"label"},"筛选分类名称:",-1),R={key:1,class:"quickSearch-content"},J=p("span",{class:"label"},"父类名称:",-1),K=["onDblclick","onClick"],M={key:0,class:"s-content"},Q={key:2,class:"item-name"},G=p("span",{class:"label"}," 过滤条件: ",-1),H=p("span",null,"添加",-1),T={class:"select-item-list"},W={class:"index-span"},X=["onClick"];var Y=z(e({__name:"index",props:{actionList_prop:{type:Object,default:()=>({})},conditionList:{type:Array,default:()=>[]},tableId:{type:String,default:""},searchFieldList:{type:Array,default:()=>[]},showItemName:{type:Boolean,default:!0},hideAddBtn:{type:Boolean,default:!1}},emits:["saveAdd","cancelSaveAdd"],setup(e,{expose:z,emit:Y}){const Z=e,$=k(),ee=a(),ae=t({className:"",displayCategory:"",filterConditions:[]}),te=l(!1),{State:le,isEnableAddDisplayCategory:ie,editDisplayCategory:oe,handleDisplayCategorySelect:ne,handleDisplayCategoryRemove:se,handleDisplayCategoryAdd:de,handlerBlur:re,initDisplayCategories:pe}=j(i(ae,"displayCategory"),{conditionList:Z.conditionList},$),{State:ce,paramOptions:ue,addFilterCondition:ye,delFilterCondition:me,updateKey:ve,updateCondition:fe,getParamCfg:ge,initFilterConditions:Ce,getRawFilterConditions:he}=S(i(ae,"filterConditions"),Z.searchFieldList,B.API);function ke(){ae.className="",ae.displayCategory="",ae.filterConditions=[]}async function be(){var e;try{if(ke(),te.value=!0,pe(ee.displayCategoryList,Z.actionList_prop.displayCategory||"custom"),Z.actionList_prop){ae.className=Z.actionList_prop.name,await Ce(Z.tableId,null!=(e=Z.actionList_prop.conObj)?e:[]);ae.filterConditions.length<1&&ue.value&&ue.value.length>0&&ye()}}finally{te.value=!1}}return be(),z({handleInitConditions:be,saveAdd:function(){new Promise((e=>{ae.className||!Z.showItemName?0!==ae.filterConditions.length?ae.filterConditions.some((({key:e,condition:a,value:t,presetVal:l})=>!e||!a||a===I.EQUAL&&!t&&!l))?$.warning("请补充完整条件内容"):e(!0):$.warning("请至少添加一个条件"):$.warning("请输入分类名称")})).then((()=>{let e;var a;"edit"===Z.actionList_prop.from&&(a=Z.actionList_prop.displayCategory,e=null==Z?void 0:Z.conditionList.find((e=>e.displayCategory===a)));const t={displayCategory:ae.displayCategory,name:ae.className||"",conObj:he()},l={id:e?e.sid:"",tableId:Z.tableId,setting:JSON.stringify(t)};Y("saveAdd",l,!1)}))},cancelSaveAdd:function(){ke(),Y("cancelSaveAdd")},addAction:ye,checkActionList:function(){return ae.filterConditions.every((e=>!e.field_key))}}),(a,t)=>(o(),n("div",O,[s(d(b),{show:te.value},{default:r((()=>[p("div",P,[e.showItemName?(o(),n("div",q,[E,s(d(A),{value:ae.className,"onUpdate:value":t[0]||(t[0]=e=>ae.className=e),placeholder:"请输入分类名称",style:{width:"250px"},maxlength:"10"},null,8,["value"])])):c("v-if",!0),e.showItemName?(o(),n("div",R,[J,(o(!0),n(u,null,y(d(le).displayCategories,((e,a)=>(o(),n("div",{class:m(["edit-tag",{"edit-tag-select":e.value===ae.displayCategory&&e.disabled}]),key:a,onDblclick:a=>d(oe)(a,e),onClick:a=>function(e){ne(e)}(e)},[e.disabled?(o(),n("div",M,[p("span",null,v(e.value),1)])):(o(),f(d(A),{key:1,style:{width:"100px"},disabled:e.disabled,onBlur:()=>e.disabled=!0,value:e.value,"onUpdate:value":a=>e.value=a,maxlength:10},null,8,["disabled","onBlur","value","onUpdate:value"])),s(d(L),{component:d(N),class:"anticon-close",size:"20",onClick:t=>d(se)(a,e)},null,8,["component","onClick"])],42,K)))),128)),d(ie)?(o(),n(u,{key:0},[g(s(d(_),{class:"ant-btn",icon:"plus",dashed:"",onClick:d(de)},{default:r((()=>[s(d(L),{component:d(x),size:"20"},null,8,["component"]),C(" "+v("添加父类"))])),_:1},8,["onClick"]),[[h,!d(le).showAdd]]),g(s(d(A),{class:"edit-tag",value:d(le).addDisplayCategory,"onUpdate:value":t[1]||(t[1]=e=>d(le).addDisplayCategory=e),valueModifiers:{trim:!0},style:{width:"100px"},onBlur:d(re),maxLength:10},null,8,["value","onBlur"]),[[h,d(le).showAdd]])],64)):c("v-if",!0)])):c("v-if",!0),e.hideAddBtn?c("v-if",!0):(o(),n("div",Q,[G,p("span",{class:"addAction",onClick:t[2]||(t[2]=(...e)=>d(ye)&&d(ye)(...e)),style:{cursor:"pointer"}},[s(d(L),{component:d(V),class:"blue",size:"18"},null,8,["component"]),H])])),p("ul",T,[(o(!0),n(u,null,y(ae.filterConditions,((e,a)=>(o(),n("li",{key:a},[p("span",W,v(a+1)+"   ",1),c(" 选择 field_key "),s(d(w),{class:"form-item",placeholder:"请选择",value:e.key,to:"body",filterable:"",options:d(ue),"onUpdate:value":e=>d(ve)(a,e)},null,8,["value","options","onUpdate:value"]),c(" 选择 关系 "),e.key?(o(),f(d(w),{key:0,class:"form-item",placeholder:"请选择",value:e.condition,to:"body",filterable:"",options:d(F),"onUpdate:value":e=>d(fe)(a,e)},null,8,["value","options","onUpdate:value"])):c("v-if",!0),c(" 自定义 "),e.key&&e.condition&&e.condition!==d(I).NULL?(o(),f(D,{key:1,modelValue:e.value,"onUpdate:modelValue":a=>e.value=a,presetVal:e.presetVal,"onUpdate:presetVal":a=>e.presetVal=a,"param-cfg":d(ge)(e.key)},null,8,["modelValue","onUpdate:modelValue","presetVal","onUpdate:presetVal","param-cfg"])):c("v-if",!0),s(d(U),{title:"删除",trigger:"hover"},{trigger:r((()=>[p("i",{onClick:e=>d(me)(a),class:"iconfont-table-filter delete-item-icon icon-table-filter-menzhenyishengzhananniuqingchu"},null,8,X)])),default:r((()=>[C(" 删除 ")])),_:2},1024)])))),128))])])])),_:1},8,["show"])]))}}),[["__file","index.vue"]]);export{Y as default};
1
+ import{defineComponent as e,useAttrs as a,reactive as l,ref as t,toRef as i,openBlock as o,createElementBlock as n,createVNode as s,unref as d,withCtx as r,createElementVNode as p,createCommentVNode as c,Fragment as u,renderList as y,normalizeClass as m,toDisplayString as v,createBlock as f,withDirectives as g,createTextVNode as C,vShow as h}from"vue";import{useMessage as k,NSpin as b,NInput as A,NIcon as L,NButton as _,NSelect as w,NTooltip as U}from"naive-ui";import{CloseOutline as N,AddOutline as x,AddCircleSharp as V}from"@vicons/ionicons5";import D from"./ValueCfg.vue.js";import{DataTypeEnums as B,ConditionEnums as I}from"../../types/enums.js";import{useDisplayCategory as j}from"./hooks/useDisplayCategory.js";import{useFilterConditions as S}from"./hooks/useFilterConditions.js";import{conditionOptions as F}from"./helpers/options.js";import z from"../../../../../_virtual/plugin-vue_export-helper.js";const O={class:"searchConditionByApi_wrapper"},P={class:"class-filter-content"},q={key:0,class:"item-name"},E=p("span",{class:"label"},"筛选分类名称:",-1),R={key:1,class:"quickSearch-content"},J=p("span",{class:"label"},"父类名称:",-1),K=["onDblclick","onClick"],M={key:0,class:"s-content"},Q={key:2,class:"item-name"},G=p("span",{class:"label"}," 过滤条件: ",-1),H=p("span",null,"添加",-1),T={class:"select-item-list"},W={class:"index-span"},X=["onClick"];var Y=z(e({__name:"index",props:{actionList_prop:{type:Object,default:()=>({})},conditionList:{type:Array,default:()=>[]},tableId:{type:String,default:""},searchFieldList:{type:Array,default:()=>[]},showItemName:{type:Boolean,default:!0},hideAddBtn:{type:Boolean,default:!1}},emits:["saveAdd","cancelSaveAdd"],setup(e,{expose:z,emit:Y}){const Z=e,$=k(),ee=a(),ae=l({className:"",displayCategory:"",filterConditions:[]}),le=t(!1),{State:te,isEnableAddDisplayCategory:ie,editDisplayCategory:oe,handleDisplayCategorySelect:ne,handleDisplayCategoryRemove:se,handleDisplayCategoryAdd:de,handlerBlur:re,initDisplayCategories:pe}=j(i(ae,"displayCategory"),{conditionList:Z.conditionList},$),{State:ce,paramOptions:ue,addFilterCondition:ye,delFilterCondition:me,updateKey:ve,updateCondition:fe,getParamCfg:ge,initFilterConditions:Ce,getRawFilterConditions:he}=S(i(ae,"filterConditions"),Z.searchFieldList,B.API);function ke(){ae.className="",ae.displayCategory="",ae.filterConditions=[]}async function be(){var e;try{if(ke(),le.value=!0,pe(ee.displayCategoryList,Z.actionList_prop.displayCategory||void 0),Z.actionList_prop){ae.className=Z.actionList_prop.name,await Ce(Z.tableId,null!=(e=Z.actionList_prop.conObj)?e:[]);ae.filterConditions.length<1&&ue.value&&ue.value.length>0&&ye()}}finally{le.value=!1}}return be(),z({handleInitConditions:be,saveAdd:function(){new Promise((e=>{ae.className||!Z.showItemName?0!==ae.filterConditions.length?ae.filterConditions.some((({key:e,condition:a,value:l,presetVal:t})=>!e||!a||a===I.EQUAL&&!l&&!t))?$.warning("请补充完整条件内容"):e(!0):$.warning("请至少添加一个条件"):$.warning("请输入分类名称")})).then((()=>{let e;var a;"edit"===Z.actionList_prop.from&&(a=Z.actionList_prop.displayCategory,e=null==Z?void 0:Z.conditionList.find((e=>e.displayCategory===a)));const l={displayCategory:ae.displayCategory,name:ae.className||"",conObj:he()},t={id:e?e.sid:"",tableId:Z.tableId,setting:JSON.stringify(l)};Y("saveAdd",t,!1)}))},cancelSaveAdd:function(){ke(),Y("cancelSaveAdd")},addAction:ye,checkActionList:function(){return ae.filterConditions.every((e=>!e.field_key))}}),(a,l)=>(o(),n("div",O,[s(d(b),{show:le.value},{default:r((()=>[p("div",P,[e.showItemName?(o(),n("div",q,[E,s(d(A),{value:ae.className,"onUpdate:value":l[0]||(l[0]=e=>ae.className=e),placeholder:"请输入分类名称",style:{width:"250px"},maxlength:"10"},null,8,["value"])])):c("v-if",!0),e.showItemName?(o(),n("div",R,[J,(o(!0),n(u,null,y(d(te).displayCategories,((e,a)=>(o(),n("div",{class:m(["edit-tag",{"edit-tag-select":e.value===ae.displayCategory&&e.disabled}]),key:a,onDblclick:a=>d(oe)(a,e),onClick:a=>function(e){ne(e)}(e)},[e.disabled?(o(),n("div",M,[p("span",null,v(e.value),1)])):(o(),f(d(A),{key:1,style:{width:"100px"},disabled:e.disabled,onBlur:()=>e.disabled=!0,value:e.value,"onUpdate:value":a=>e.value=a,maxlength:10},null,8,["disabled","onBlur","value","onUpdate:value"])),s(d(L),{component:d(N),class:"anticon-close",size:"20",onClick:l=>d(se)(a,e)},null,8,["component","onClick"])],42,K)))),128)),d(ie)?(o(),n(u,{key:0},[g(s(d(_),{class:"ant-btn",icon:"plus",dashed:"",onClick:d(de)},{default:r((()=>[s(d(L),{component:d(x),size:"20"},null,8,["component"]),C(" "+v("添加父类"))])),_:1},8,["onClick"]),[[h,!d(te).showAdd]]),g(s(d(A),{class:"edit-tag",value:d(te).addDisplayCategory,"onUpdate:value":l[1]||(l[1]=e=>d(te).addDisplayCategory=e),valueModifiers:{trim:!0},style:{width:"100px"},onBlur:d(re),maxLength:10},null,8,["value","onBlur"]),[[h,d(te).showAdd]])],64)):c("v-if",!0)])):c("v-if",!0),e.hideAddBtn?c("v-if",!0):(o(),n("div",Q,[G,p("span",{class:"addAction",onClick:l[2]||(l[2]=(...e)=>d(ye)&&d(ye)(...e)),style:{cursor:"pointer"}},[s(d(L),{component:d(V),class:"blue",size:"18"},null,8,["component"]),H])])),p("ul",T,[(o(!0),n(u,null,y(ae.filterConditions,((e,a)=>(o(),n("li",{key:a},[p("span",W,v(a+1)+"   ",1),c(" 选择 field_key "),s(d(w),{class:"form-item",placeholder:"请选择",value:e.key,to:"body",filterable:"",options:d(ue),"onUpdate:value":e=>d(ve)(a,e)},null,8,["value","options","onUpdate:value"]),c(" 选择 关系 "),e.key?(o(),f(d(w),{key:0,class:"form-item",placeholder:"请选择",value:e.condition,to:"body",filterable:"",options:d(F),"onUpdate:value":e=>d(fe)(a,e)},null,8,["value","options","onUpdate:value"])):c("v-if",!0),c(" 自定义 "),e.key&&e.condition&&e.condition!==d(I).NULL?(o(),f(D,{key:1,modelValue:e.value,"onUpdate:modelValue":a=>e.value=a,presetVal:e.presetVal,"onUpdate:presetVal":a=>e.presetVal=a,"param-cfg":d(ge)(e.key)},null,8,["modelValue","onUpdate:modelValue","presetVal","onUpdate:presetVal","param-cfg"])):c("v-if",!0),s(d(U),{title:"删除",trigger:"hover"},{trigger:r((()=>[p("i",{onClick:e=>d(me)(a),class:"iconfont-table-filter delete-item-icon icon-table-filter-menzhenyishengzhananniuqingchu"},null,8,X)])),default:r((()=>[C(" 删除 ")])),_:2},1024)])))),128))])])])),_:1},8,["show"])]))}}),[["__file","index.vue"]]);export{Y as default};
@@ -3,16 +3,10 @@ declare const TimePicker: SFCWithInstall<import("vue").DefineComponent<{}, {
3
3
  attrs: {
4
4
  [x: string]: unknown;
5
5
  };
6
- emits: (event: "update:formattedValue", ...args: any[]) => void;
7
- timePickerRef: import("vue").Ref<null>;
8
- __formattedValue: import("vue").Ref<any>;
9
- keyupValue: import("vue").Ref<string>;
6
+ timePickerRef: import("vue").Ref<import("../../../es/shared/types").AnyObject | null>;
10
7
  formatRef: import("vue").ComputedRef<string>;
11
- updateFormattedValue: (value: any) => void;
12
- onBlur: () => void;
13
- onKeyUp: (event: import("../../../es/shared/types").AnyObject) => any;
8
+ focus: () => any;
9
+ blur: () => any;
14
10
  NTimePicker: any;
15
- }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:formattedValue"[], "update:formattedValue", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>> & {
16
- "onUpdate:formattedValue"?: ((...args: any[]) => any) | undefined;
17
- }, {}>>;
11
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>>;
18
12
  export default TimePicker;
@@ -3,16 +3,10 @@ declare const _default: import("vue").DefineComponent<{}, {
3
3
  attrs: {
4
4
  [x: string]: unknown;
5
5
  };
6
- emits: (event: "update:formattedValue", ...args: any[]) => void;
7
- timePickerRef: import("vue").Ref<null>;
8
- __formattedValue: import("vue").Ref<any>;
9
- keyupValue: import("vue").Ref<string>;
6
+ timePickerRef: import("vue").Ref<AnyObject | null>;
10
7
  formatRef: import("vue").ComputedRef<string>;
11
- updateFormattedValue: (value: any) => void;
12
- onBlur: () => void;
13
- onKeyUp: (event: AnyObject) => any;
8
+ focus: () => any;
9
+ blur: () => any;
14
10
  NTimePicker: any;
15
- }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:formattedValue"[], "update:formattedValue", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>> & {
16
- "onUpdate:formattedValue"?: ((...args: any[]) => any) | undefined;
17
- }, {}>;
11
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
18
12
  export default _default;
@@ -1 +1 @@
1
- import{defineComponent as e,useAttrs as t,ref as u,computed as l,watch as a,openBlock as r,createBlock as o,unref as i,mergeProps as n,createSlots as v,renderList as m,withCtx as f,renderSlot as d}from"vue";import{NTimePicker as s}from"naive-ui";import{parse as c,isValid as p,format as _}from"date-fns";import k from"../../../_virtual/plugin-vue_export-helper.js";var P=k(e({__name:"TimePicker",emits:["update:formattedValue"],setup(e,{expose:k,emit:P}){const $=t(),b=u(null),x=u(),y=u(""),V=l((()=>$.format?$.format:"HH:mm:ss"));function g(e){P("update:formattedValue",e)}function H(){const e=c(y.value,V.value.replace(/:/,""),new Date);p(e)&&(x.value=_(e,V.value),g(x.value))}function T(e){var t,u;const{keyCode:l=0}=e;if(13==l)return null==(t=b.value)?void 0:t.blur();y.value=(null==(u=e.target)?void 0:u.value)||""}return a((()=>$["formatted-value"]),(e=>{x.value=e}),{immediate:!0}),k({$timePicker:b,focus:()=>{var e,t;return null==(t=null==(e=b.value)?void 0:e.focus)?void 0:t.call(e)},blur:()=>{var e,t;return null==(t=null==(e=b.value)?void 0:e.blur)?void 0:t.call(e)}}),(e,t)=>(r(),o(i(s),n({ref_key:"timePickerRef",ref:b},e.$attrs,{"formatted-value":x.value,"onUpdate:formattedValue":g,onBlur:H,onKeyup:T}),v({_:2},[m(e.$slots,((t,u)=>({name:u,fn:f((()=>[d(e.$slots,u)]))})))]),1040,["formatted-value"]))}}),[["__file","TimePicker.vue"]]);export{P as default};
1
+ import{defineComponent as e,useAttrs as r,ref as i,computed as s,openBlock as t,createBlock as m,unref as o,mergeProps as u,createSlots as a,renderList as f,withCtx as l,renderSlot as p}from"vue";import{NTimePicker as n}from"naive-ui";import"../../../shared/utils/index.js";import"lodash-es";import{useDateTime as _}from"../../../shared/mixins/useDateTime.js";import c from"../../../_virtual/plugin-vue_export-helper.js";var v=c(e({__name:"TimePicker",setup(e,{expose:c}){const v=r(),d=i(null),k=s((()=>v.format?v.format:"HH:mm:ss")),{focus:x,blur:h}=_(d,k);return c({$timePicker:d,focus:x,blur:h}),(e,r)=>(t(),m(o(n),u({ref_key:"timePickerRef",ref:d},e.$attrs),a({_:2},[f(e.$slots,((r,i)=>({name:i,fn:l((()=>[p(e.$slots,i)]))})))]),1040))}}),[["__file","TimePicker.vue"]]);export{v as default};
package/es/env.d.ts CHANGED
@@ -1,24 +1,24 @@
1
- /// <reference types="vite/client" />
2
-
3
- interface ImportMetaEnv {
4
- readonly VITE_APP_TYPE: string;
5
- // 更多环境变量...
6
- }
7
-
8
- interface ImportMeta {
9
- readonly env: ImportMetaEnv;
10
- }
11
-
12
- declare module '*.vue' {
13
- // @ts-ignore
14
- import type { App, defineComponent } from 'vue';
15
- // // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types
16
- // // const component: DefineComponent<{}, {}, any>
17
- const component: ReturnType<typeof defineComponent> & {
18
- install(app: App): void;
19
- };
20
- // @ts-ignore
21
- export default component;
22
- }
23
-
24
- declare module '*.js';
1
+ /// <reference types="vite/client" />
2
+
3
+ interface ImportMetaEnv {
4
+ readonly VITE_APP_TYPE: string;
5
+ // 更多环境变量...
6
+ }
7
+
8
+ interface ImportMeta {
9
+ readonly env: ImportMetaEnv;
10
+ }
11
+
12
+ declare module '*.vue' {
13
+ // @ts-ignore
14
+ import type { App, defineComponent } from 'vue';
15
+ // // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types
16
+ // // const component: DefineComponent<{}, {}, any>
17
+ const component: ReturnType<typeof defineComponent> & {
18
+ install(app: App): void;
19
+ };
20
+ // @ts-ignore
21
+ export default component;
22
+ }
23
+
24
+ declare module '*.js';
@@ -0,0 +1,86 @@
1
+ declare const draggableComponent: import('vue').DefineComponent<
2
+ {
3
+ list: {
4
+ type: ArrayConstructor;
5
+ required: boolean;
6
+ default: any;
7
+ };
8
+ modelValue: {
9
+ type: ArrayConstructor;
10
+ required: boolean;
11
+ default: any;
12
+ };
13
+ itemKey: {
14
+ type: (FunctionConstructor | StringConstructor)[];
15
+ required: boolean;
16
+ };
17
+ clone: {
18
+ type: FunctionConstructor;
19
+ default: (original: any) => any;
20
+ };
21
+ tag: {
22
+ type: StringConstructor;
23
+ default: string;
24
+ };
25
+ move: {
26
+ type: FunctionConstructor;
27
+ default: any;
28
+ };
29
+ componentData: {
30
+ type: ObjectConstructor;
31
+ required: boolean;
32
+ default: any;
33
+ };
34
+ },
35
+ unknown,
36
+ {
37
+ error: boolean;
38
+ },
39
+ {
40
+ realList(): any;
41
+ getKey(): any;
42
+ },
43
+ {
44
+ getUnderlyingVm(domElement: any): any;
45
+ getUnderlyingPotencialDraggableComponent(htmElement: any): any;
46
+ emitChanges(evt: any): void;
47
+ alterList(onList: any): void;
48
+ spliceList(): void;
49
+ updatePosition(oldIndex: any, newIndex: any): void;
50
+ getRelatedContextFromMoveEvent({ to, related }: { to: any; related: any }): any;
51
+ getVmIndexFromDomIndex(domIndex: any): any;
52
+ onDragStart(evt: any): void;
53
+ onDragAdd(evt: any): void;
54
+ onDragRemove(evt: any): void;
55
+ onDragUpdate(evt: any): void;
56
+ computeFutureIndex(relatedContext: any, evt: any): any;
57
+ onDragMove(evt: any, originalEvent: any): any;
58
+ onDragEnd(): void;
59
+ },
60
+ import('vue').ComponentOptionsMixin,
61
+ import('vue').ComponentOptionsMixin,
62
+ any[],
63
+ any,
64
+ import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps,
65
+ Readonly<
66
+ {
67
+ move: Function;
68
+ tag: string;
69
+ clone: Function;
70
+ list: unknown[];
71
+ modelValue: unknown[];
72
+ componentData: Record<string, any>;
73
+ } & {
74
+ itemKey?: string | Function;
75
+ }
76
+ >,
77
+ {
78
+ move: Function;
79
+ tag: string;
80
+ clone: Function;
81
+ list: unknown[];
82
+ modelValue: unknown[];
83
+ componentData: Record<string, any>;
84
+ }
85
+ >;
86
+ export default draggableComponent;
@@ -1 +1,2 @@
1
1
  export * from './useTheme';
2
+ export * from './useDateTime';
@@ -1 +1 @@
1
- export{useTheme}from"./useTheme.js";
1
+ export{useTheme}from"./useTheme.js";export{useDateTime}from"./useDateTime.js";
@@ -0,0 +1,6 @@
1
+ import { Ref } from 'vue';
2
+ import { AnyObject } from '../../../es/shared/types';
3
+ export declare function useDateTime(datePickerRef: Ref<AnyObject | null>, formatRef: Ref<string>): {
4
+ focus: () => any;
5
+ blur: () => any;
6
+ };
@@ -0,0 +1 @@
1
+ import{computed as e,onMounted as t,onUnmounted as n}from"vue";import{useDebounceFn as l}from"@vueuse/core";function o(o,c){const u=l((e=>{!function(e){const t=e.target;if(["INPUT"].includes(t.tagName)){const{selectionStart:e=0,selectionEnd:n=0}=t;e===n&&t.select()}}(e)}),200),s=e((()=>{var e;return null==(e=o.value)?void 0:e.$el}));function r(e){const t=e.target;t.value&&Reflect.get(t,"_f_")&&(Reflect.set(t,"_f_",0),a(t,!0)&&(e.preventDefault(),e.stopPropagation()))}function i(e){const{key:t,target:n}=e;/\d/.test(t)&&n?Reflect.set(n,"_f_",1):"Enter"===t&&a(e.target,!1,!0)}function a(e,t,n){const l=e.value;if(!l)return;const o=e.selectionEnd||0,u=l.length;let s=0,r=0,i=0,a="",v=0;for(;s<u;){const e=l[s++];if(/\d/.test(e)&&(a+=e),s===o){i=a.length;const e=l.slice(s).match(/^\d+/);v=e?e[0].length:0}}const d=c.value;let f="",g=0,h=0;for(s=0;s<d.length&&(n||!(r>=a.length));){const e=d[s++];if(/[yMdHms]/.test(e)?f+=a[r++]||"0":f+=e,t&&r===i){i=-1,g=f.length,h=g;let e=d.slice(s).match(/^[yMdHms]+/);e?(v=Math.min(v,e[0].length),v&&(f+=a.slice(r,r+v),r+=v),s+=e[0].length):(e=d.slice(s).match(/^([^yMdHms]+)([yMdHms]*)/),e&&(g+=e[1].length,h=g+e[2].length))}}const m=f!==l;if(m){e.value=f;const t=new InputEvent("input");e.dispatchEvent(t)}return t&&(g=g||f.length+1,h=h||f.length+1,e.setSelectionRange(g,h)),m}return t((()=>{s.value&&(s.value.addEventListener("input",r,!0),s.value.addEventListener("keydown",i,!0),s.value.addEventListener("click",u,!0))})),n((()=>{s.value&&(s.value.removeEventListener("input",r,!0),s.value.removeEventListener("keydown",i,!0),s.value.removeEventListener("click",u,!0))})),{focus:()=>{var e,t;return null==(t=null==(e=o.value)?void 0:e.focus)?void 0:t.call(e)},blur:()=>{var e,t;return null==(t=null==(e=o.value)?void 0:e.blur)?void 0:t.call(e)}}}export{o as useDateTime};
@@ -0,0 +1,139 @@
1
+ type FixedSizeArray<T extends number, U> = T extends 0
2
+ ? void[]
3
+ : ReadonlyArray<U> & {
4
+ 0: U;
5
+ length: T;
6
+ };
7
+ type Measure<T extends number> = T extends 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 ? T : never;
8
+ type Append<T extends any[], U> = {
9
+ 0: [U];
10
+ 1: [T[0], U];
11
+ 2: [T[0], T[1], U];
12
+ 3: [T[0], T[1], T[2], U];
13
+ 4: [T[0], T[1], T[2], T[3], U];
14
+ 5: [T[0], T[1], T[2], T[3], T[4], U];
15
+ 6: [T[0], T[1], T[2], T[3], T[4], T[5], U];
16
+ 7: [T[0], T[1], T[2], T[3], T[4], T[5], T[6], U];
17
+ 8: [T[0], T[1], T[2], T[3], T[4], T[5], T[6], T[7], U];
18
+ }[Measure<T['length']>];
19
+ type AsArray<T> = T extends any[] ? T : [T];
20
+
21
+ declare class UnsetAdditionalOptions {
22
+ _UnsetAdditionalOptions: true;
23
+ }
24
+ type IfSet<X> = X extends UnsetAdditionalOptions ? {} : X;
25
+
26
+ type Callback<E, T> = (error: E | null, result?: T) => void;
27
+ type InnerCallback<E, T> = (error?: E | null | false, result?: T) => void;
28
+
29
+ type FullTap = Tap & {
30
+ type: 'sync' | 'async' | 'promise';
31
+ fn: Function;
32
+ };
33
+
34
+ type Tap = TapOptions & {
35
+ name: string;
36
+ };
37
+
38
+ type TapOptions = {
39
+ before?: string;
40
+ stage?: number;
41
+ };
42
+
43
+ interface HookInterceptor<T, R, AdditionalOptions = UnsetAdditionalOptions> {
44
+ name?: string;
45
+ tap?: (tap: FullTap & IfSet<AdditionalOptions>) => void;
46
+ call?: (...args: any[]) => void;
47
+ loop?: (...args: any[]) => void;
48
+ error?: (err: Error) => void;
49
+ result?: (result: R) => void;
50
+ done?: () => void;
51
+ register?: (tap: FullTap & IfSet<AdditionalOptions>) => FullTap & IfSet<AdditionalOptions>;
52
+ }
53
+
54
+ type ArgumentNames<T extends any[]> = FixedSizeArray<T['length'], string>;
55
+
56
+ declare class Hook<T, R, AdditionalOptions = UnsetAdditionalOptions> {
57
+ constructor(args?: ArgumentNames<AsArray<T>>, name?: string);
58
+ name: string | undefined;
59
+ taps: FullTap[];
60
+ intercept(interceptor: HookInterceptor<T, R, AdditionalOptions>): void;
61
+ isUsed(): boolean;
62
+ callAsync(...args: Append<AsArray<T>, Callback<Error, R>>): void;
63
+ promise(...args: AsArray<T>): Promise<R>;
64
+ tap(options: string | (Tap & IfSet<AdditionalOptions>), fn: (...args: AsArray<T>) => R): void;
65
+ withOptions(options: TapOptions & IfSet<AdditionalOptions>): Omit<this, 'call' | 'callAsync' | 'promise'>;
66
+ }
67
+
68
+ export class SyncHook<T, R = void, AdditionalOptions = UnsetAdditionalOptions> extends Hook<T, R, AdditionalOptions> {
69
+ call(...args: AsArray<T>): R;
70
+ }
71
+
72
+ export class SyncBailHook<T, R, AdditionalOptions = UnsetAdditionalOptions> extends SyncHook<T, R, AdditionalOptions> {}
73
+ export class SyncLoopHook<T, AdditionalOptions = UnsetAdditionalOptions> extends SyncHook<T, void, AdditionalOptions> {}
74
+ export class SyncWaterfallHook<T, AdditionalOptions = UnsetAdditionalOptions> extends SyncHook<
75
+ T,
76
+ AsArray<T>[0],
77
+ AdditionalOptions
78
+ > {}
79
+
80
+ declare class AsyncHook<T, R, AdditionalOptions = UnsetAdditionalOptions> extends Hook<T, R, AdditionalOptions> {
81
+ tapAsync(
82
+ options: string | (Tap & IfSet<AdditionalOptions>),
83
+ fn: (...args: Append<AsArray<T>, InnerCallback<Error, R>>) => void
84
+ ): void;
85
+ tapPromise(options: string | (Tap & IfSet<AdditionalOptions>), fn: (...args: AsArray<T>) => Promise<R>): void;
86
+ }
87
+
88
+ export class AsyncParallelHook<T, AdditionalOptions = UnsetAdditionalOptions> extends AsyncHook<
89
+ T,
90
+ void,
91
+ AdditionalOptions
92
+ > {}
93
+ export class AsyncParallelBailHook<T, R, AdditionalOptions = UnsetAdditionalOptions> extends AsyncHook<
94
+ T,
95
+ R,
96
+ AdditionalOptions
97
+ > {}
98
+ export class AsyncSeriesHook<T, AdditionalOptions = UnsetAdditionalOptions> extends AsyncHook<
99
+ T,
100
+ void,
101
+ AdditionalOptions
102
+ > {}
103
+ export class AsyncSeriesBailHook<T, R, AdditionalOptions = UnsetAdditionalOptions> extends AsyncHook<
104
+ T,
105
+ R,
106
+ AdditionalOptions
107
+ > {}
108
+ export class AsyncSeriesLoopHook<T, AdditionalOptions = UnsetAdditionalOptions> extends AsyncHook<
109
+ T,
110
+ void,
111
+ AdditionalOptions
112
+ > {}
113
+ export class AsyncSeriesWaterfallHook<T, AdditionalOptions = UnsetAdditionalOptions> extends AsyncHook<
114
+ T,
115
+ AsArray<T>[0],
116
+ AdditionalOptions
117
+ > {}
118
+
119
+ type HookFactory<H> = (key: any, hook?: H) => H;
120
+
121
+ interface HookMapInterceptor<H> {
122
+ factory?: HookFactory<H>;
123
+ }
124
+
125
+ export class HookMap<H> {
126
+ constructor(factory: HookFactory<H>, name?: string);
127
+ name: string | undefined;
128
+ get(key: any): H | undefined;
129
+ for(key: any): H;
130
+ intercept(interceptor: HookMapInterceptor<H>): void;
131
+ }
132
+
133
+ export class MultiHook<H> {
134
+ constructor(hooks: H[], name?: string);
135
+ name: string | undefined;
136
+ tap(options: string | Tap, fn?: Function): void;
137
+ tapAsync(options: string | Tap, fn?: Function): void;
138
+ tapPromise(options: string | Tap, fn?: Function): void;
139
+ }