cnhis-design-vue 3.1.42-beta.26 → 3.1.42-beta.27

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 (48) hide show
  1. package/README.md +87 -87
  2. package/es/components/fabric-chart/src/hooks/useCenter.js +1 -1
  3. package/es/components/field-set/src/FieldSet.vue.js +1 -1
  4. package/es/components/form-config/index.d.ts +5 -10
  5. package/es/components/form-config/src/FormConfig.vue.d.ts +5 -10
  6. package/es/components/form-config/src/components/FormConfigEdit.vue.d.ts +3 -6
  7. package/es/components/form-render/src/components/renderer/levelSearchCascader.d.ts +18 -0
  8. package/es/components/form-render/src/components/renderer/levelSearchCascader.js +1 -1
  9. package/es/components/form-render/src/components/renderer/radio&checkbox.d.ts +36 -0
  10. package/es/components/form-render/src/components/renderer/radio_checkbox.js +1 -1
  11. package/es/components/form-render/src/components/renderer/remoteSearch.d.ts +18 -0
  12. package/es/components/form-render/src/components/renderer/remoteSearch.js +1 -1
  13. package/es/components/form-render/src/components/renderer/searchCascade.d.ts +18 -0
  14. package/es/components/form-render/src/components/renderer/searchCascade.js +1 -1
  15. package/es/components/form-render/src/components/renderer/select.d.ts +30 -3
  16. package/es/components/form-render/src/components/renderer/select.js +1 -1
  17. package/es/components/form-render/src/hooks/useFormRenderOptions.d.ts +13 -8
  18. package/es/components/form-render/src/hooks/useFormRenderOptions.js +1 -1
  19. package/es/components/form-render/src/types/fieldItem.d.ts +3 -4
  20. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/selectRendererPlugin/editSelect.js +1 -1
  21. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/selectRendererPlugin/index.js +1 -1
  22. package/es/components/map/index.d.ts +2 -14
  23. package/es/components/map/src/Map.vue.d.ts +1 -14
  24. package/es/components/map/src/types/index.d.ts +19 -0
  25. package/es/components/map/src/types/index.js +1 -0
  26. package/es/components/recommend-search/index.d.ts +2 -0
  27. package/es/components/recommend-search/src/RecommendSearch.vue.d.ts +2 -0
  28. package/es/components/recommend-search/src/RecommendSearch.vue.js +1 -1
  29. package/es/components/recommend-search/src/components/BaseSearch.js +1 -1
  30. package/es/components/recommend-search/src/constant/index.d.ts +2 -1
  31. package/es/components/recommend-search/src/constant/index.js +1 -1
  32. package/es/components/scale-view/src/ScaleView.vue.js +1 -1
  33. package/es/components/scale-view/src/hooks/use-component.d.ts +0 -3
  34. package/es/components/select-label/src/LabelFormContent.vue.js +1 -1
  35. package/es/components/shortcut-setter/index.d.ts +1 -2
  36. package/es/components/shortcut-setter/src/ShortcutSetter.vue.d.ts +1 -2
  37. package/es/components/vod-chunk-upload/index.d.ts +0 -3
  38. package/es/components/vod-chunk-upload/src/vod-chunk-upload/vod-chunk-upload.vue.d.ts +0 -3
  39. package/es/components/vod-chunk-upload/src/vod-chunk-upload/vod-chunk-upload.vue.js +1 -1
  40. package/es/env.d.ts +24 -24
  41. package/package.json +2 -2
  42. package/es/components/bpmn-workflow/src/BpmnWorkflow.d.ts +0 -0
  43. package/es/components/bpmn-workflow/types/BpmnViewer.d.ts +0 -1
  44. package/es/components/bpmn-workflow/types/ModelingModule.d.ts +0 -1
  45. package/es/components/bpmn-workflow/types/MoveCanvasModule.d.ts +0 -1
  46. package/es/components/fabric-chart/src/utils/index.d.ts +0 -6823
  47. package/es/shared/components/VueDraggable/src/vuedraggable.d.ts +0 -86
  48. package/es/shared/utils/tapable/index.d.ts +0 -139
@@ -23,6 +23,14 @@ export declare const SEARCH_CASCADER: import("vue").DefineComponent<{
23
23
  type: BooleanConstructor;
24
24
  default: boolean;
25
25
  };
26
+ labelField: {
27
+ type: StringConstructor;
28
+ default: string;
29
+ };
30
+ valueField: {
31
+ type: StringConstructor;
32
+ default: string;
33
+ };
26
34
  onChange: {};
27
35
  value: {};
28
36
  }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:value"[], "update:value", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
@@ -47,12 +55,22 @@ export declare const SEARCH_CASCADER: import("vue").DefineComponent<{
47
55
  type: BooleanConstructor;
48
56
  default: boolean;
49
57
  };
58
+ labelField: {
59
+ type: StringConstructor;
60
+ default: string;
61
+ };
62
+ valueField: {
63
+ type: StringConstructor;
64
+ default: string;
65
+ };
50
66
  onChange: {};
51
67
  value: {};
52
68
  }>> & {
53
69
  "onUpdate:value"?: ((...args: any[]) => any) | undefined;
54
70
  }, {
55
71
  options: AnyObject[];
72
+ labelField: string;
73
+ valueField: string;
56
74
  requestCache: boolean;
57
75
  filterable: boolean;
58
76
  }>;
@@ -1 +1 @@
1
- import{defineComponent as e,ref as t,computed as a,inject as o,watch as r,createVNode as l,nextTick as n}from"vue";import{isEqual as i,isArray as u}from"lodash-es";import"../../../index.js";import{useCommonInjection as s}from"../../hooks/useCommonInjection.js";import{InjectionAsyncQueue as c,InjectionFormUUID as p}from"../../constants/index.js";import"../../../../../shared/utils/index.js";import"../../utils/index.js";import{useFormField as m}from"../../hooks/useFormField.js";import{NCascader as d}from"naive-ui";import"@vueuse/core";import"date-fns";import"../../../../../shared/utils/tapable/SyncHook.js";import"../../../../../shared/utils/tapable/SyncBailHook.js";import"../../../../../shared/utils/tapable/SyncWaterfallHook.js";import"../../../../../shared/utils/tapable/SyncLoopHook.js";import"../../../../../shared/utils/tapable/AsyncParallelHook.js";import"../../../../../shared/utils/tapable/AsyncParallelBailHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesBailHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesLoopHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesWaterfallHook.js";import"../../hooks/useFormValidator.js";import"@formily/core";import"@formily/reactive";import{connect as v,mapProps as f}from"@formily/vue";import"@vue/shared";import"./index.js";import"../../hooks/useFormRenderOptions.js";import{createVisitedSetter as h,assignUpdateValue as y,traverseDependKey as j}from"../../utils/schema.js";const b=v(e({name:"FormCascader",props:{options:{type:Array,default:()=>[]},depth:{type:[Number,String]},urlConfig:{type:Object},requestCache:{type:Boolean,default:!0},onFocus:{type:Function},filterable:{type:Boolean,default:!1},onChange:{},value:{}},emits:["update:value"],setup(e,{slots:v,emit:f}){const y=t(),{field:b,title:k}=m(),C=a((()=>{var t,a;return null!=(a=null==(t=e.urlConfig)?void 0:t.nameKey)?a:"text"})),g=a((()=>{var t,a;return null!=(a=null==(t=e.urlConfig)?void 0:t.valueKey)?a:"value"})),A=a((()=>{try{const t=Array.isArray(e.value)?e.value:JSON.parse(e.value||"");return Array.isArray(t)&&t.length?t.map((e=>e[C.value])).join(" / "):null}catch(e){return null}}));function S(e,t,a){f("update:value",a.map((function(e){return{...e,label:e[C.value],children:void 0,parent:void 0}})))}const F=o(c);async function w(t){e.filterable?await async function(){if(!e.urlConfig||y.value&&e.requestCache)return;const t=await F.addAsync({...e.urlConfig,params:{lvlnr:"1"},key:k.value,cache:e.requestCache});function a(e,t){const o={[C.value]:e[C.value],[g.value]:e[g.value],depth:t+1,isLeaf:!0};return u(e.children)&&(o.children=e.children.map((e=>a(e,t+1))),o.isLeaf=!e.children.length),o}y.value=t.map((e=>a(e,0)))}():await async function(t){if(r(e,t))return;const a=await F.addAsync(l(s(t),u(e),k.value,t));if(!a.length&&t)return t.isLeaf=!0,S(0,0,n(t)),void(K.value=!1);const o=a.map((e=>i(e,s(t))));function r(e,t){return!u(e)||!t&&y.value&&e.requestCache||s(t)>=s(e)-1}function l(t,a,o,r){const l={lvlnr:t+1+""};return r&&a.dependKey&&j(a.dependKey,((e,t)=>{l[t]=r[e]})),{params:l,...a,key:o,cache:e.requestCache}}function n(e){let t=e;const a=[e];for(;t.parent;)a.unshift(t.parent),t=t.parent;return a}function i(a,o){return{[C.value]:a[C.value],[g.value]:a[g.value],depth:o+1,parent:t,isLeaf:o+2>=s(e)}}function u(e){return e.urlConfig}function s(e){var t;return null!=(t=null==e?void 0:e.depth)?t:-1}t?t.children=o:y.value=o}(t),await x()}const H=`form-render__cascade--menu-${o(p)}`;async function x(){await n();const e=document.querySelector(`.${H} .v-vl`);e&&e.dispatchEvent(new CustomEvent("scroll"))}const{injectValueValidate:L,injectValueWatchFromEmpty:q,injectValueBindKey:B}=s();q((()=>e.value),w),L((()=>e.value)),r((()=>e.urlConfig),(async(e,t)=>{i(e,t)||(y.value=null,await w())}));const K=t(!1);function V(e){K.value=!!e,e&&w()}const E=a((()=>y.value||e.options||[])),O=a((()=>!e.filterable)),W=B(A);return()=>l(d,{key:W.value,remote:O.value,filterable:e.filterable,"menu-props":{class:H,onClick:x},checkStrategy:"child",show:!!K.value,"onUpdate:show":V,value:A.value,"onUpdate:value":S,labelField:C.value,valueField:g.value,options:E.value,onLoad:w,onFocus:h(b)},v)}}),f({dataSource:"options"},y));export{b as SEARCH_CASCADER};
1
+ import{defineComponent as e,ref as t,computed as a,inject as l,watch as r,createVNode as o,nextTick as n}from"vue";import{isEqual as i,isArray as u}from"lodash-es";import"../../../index.js";import{useCommonInjection as s}from"../../hooks/useCommonInjection.js";import{InjectionAsyncQueue as c,InjectionFormUUID as p}from"../../constants/index.js";import"../../../../../shared/utils/index.js";import"../../utils/index.js";import{useFormField as d}from"../../hooks/useFormField.js";import{NCascader as m}from"naive-ui";import"@vueuse/core";import"date-fns";import"../../../../../shared/utils/tapable/SyncHook.js";import"../../../../../shared/utils/tapable/SyncBailHook.js";import"../../../../../shared/utils/tapable/SyncWaterfallHook.js";import"../../../../../shared/utils/tapable/SyncLoopHook.js";import"../../../../../shared/utils/tapable/AsyncParallelHook.js";import"../../../../../shared/utils/tapable/AsyncParallelBailHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesBailHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesLoopHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesWaterfallHook.js";import"../../hooks/useFormValidator.js";import"@formily/core";import"@formily/reactive";import{connect as v,mapProps as f}from"@formily/vue";import"@vue/shared";import"./index.js";import"../../hooks/useFormRenderOptions.js";import{createVisitedSetter as h,assignUpdateValue as y,traverseDependKey as j}from"../../utils/schema.js";const b=v(e({name:"FormCascader",props:{options:{type:Array,default:()=>[]},depth:{type:[Number,String]},urlConfig:{type:Object},requestCache:{type:Boolean,default:!0},onFocus:{type:Function},filterable:{type:Boolean,default:!1},labelField:{type:String,default:"text"},valueField:{type:String,default:"value"},onChange:{},value:{}},emits:["update:value"],setup(e,{slots:v,emit:f}){const y=t(),{field:b,title:k}=d(),C=a((()=>{var t,a,l;return null!=(l=null!=(a=null==(t=e.urlConfig)?void 0:t.nameKey)?a:e.labelField)?l:"text"})),g=a((()=>{var t,a,l;return null!=(l=null!=(a=null==(t=e.urlConfig)?void 0:t.valueKey)?a:e.valueField)?l:"value"})),F=a((()=>{try{const t=Array.isArray(e.value)?e.value:JSON.parse(e.value||"");return Array.isArray(t)&&t.length?t.map((e=>e[C.value])).join(" / "):null}catch(e){return null}}));function S(e,t,a){f("update:value",a.map((function(e){return{...e,label:e[C.value],children:void 0,parent:void 0}})))}const A=l(c);async function w(t){e.filterable?await async function(){if(!e.urlConfig||y.value&&e.requestCache)return;const t=await A.addAsync({...e.urlConfig,params:{lvlnr:"1"},key:k.value,cache:e.requestCache});function a(e,t){const l={[C.value]:e[C.value],[g.value]:e[g.value],depth:t+1,isLeaf:!0};return u(e.children)&&(l.children=e.children.map((e=>a(e,t+1))),l.isLeaf=!e.children.length),l}y.value=t.map((e=>a(e,0)))}():await async function(t){if(r(e,t))return;const a=await A.addAsync(o(s(t),u(e),k.value,t));if(!a.length&&t)return t.isLeaf=!0,S(0,0,n(t)),void(K.value=!1);const l=a.map((e=>i(e,s(t))));function r(e,t){return!u(e)||!t&&y.value&&e.requestCache||s(t)>=s(e)-1}function o(t,a,l,r){const o={lvlnr:t+1+""};return r&&a.dependKey&&j(a.dependKey,((e,t)=>{o[t]=r[e]})),{params:o,...a,key:l,cache:e.requestCache}}function n(e){let t=e;const a=[e];for(;t.parent;)a.unshift(t.parent),t=t.parent;return a}function i(a,l){return{[C.value]:a[C.value],[g.value]:a[g.value],depth:l+1,parent:t,isLeaf:l+2>=s(e)}}function u(e){return e.urlConfig}function s(e){var t;return null!=(t=null==e?void 0:e.depth)?t:-1}t?t.children=l:y.value=l}(t),await x()}const H=`form-render__cascade--menu-${l(p)}`;async function x(){await n();const e=document.querySelector(`.${H} .v-vl`);e&&e.dispatchEvent(new CustomEvent("scroll"))}const{injectValueValidate:L,injectValueWatchFromEmpty:q,injectValueBindKey:B}=s();q((()=>e.value),w),L((()=>e.value)),r((()=>e.urlConfig),(async(e,t)=>{i(e,t)||(y.value=null,await w())}));const K=t(!1);function V(e){K.value=!!e,e&&w()}const E=a((()=>y.value||e.options||[])),O=a((()=>!e.filterable)),W=B(F);return()=>o(m,{key:W.value,remote:O.value,filterable:e.filterable,"menu-props":{class:H,onClick:x},checkStrategy:"child",show:!!K.value,"onUpdate:show":V,value:F.value,"onUpdate:value":S,labelField:C.value,valueField:g.value,options:E.value,onLoad:w,onFocus:h(b)},v)}}),f({dataSource:"options"},y));export{b as SEARCH_CASCADER};
@@ -20,6 +20,14 @@ export declare const SELECT: import("vue").DefineComponent<{
20
20
  default: () => never[];
21
21
  };
22
22
  onChange: {};
23
+ labelField: {
24
+ type: StringConstructor;
25
+ default: string;
26
+ };
27
+ valueField: {
28
+ type: StringConstructor;
29
+ default: string;
30
+ };
23
31
  allowCreate: BooleanConstructor;
24
32
  urlConfig: {
25
33
  type: PropType<UrlConfig>;
@@ -58,7 +66,11 @@ export declare const SELECT: import("vue").DefineComponent<{
58
66
  getRecommendInfo: {
59
67
  type: PropType<() => RecommendIds>;
60
68
  };
61
- recommendNum: {
69
+ commonNum: {
70
+ type: NumberConstructor;
71
+ default: number;
72
+ };
73
+ recentNum: {
62
74
  type: NumberConstructor;
63
75
  default: number;
64
76
  };
@@ -83,6 +95,14 @@ export declare const SELECT: import("vue").DefineComponent<{
83
95
  default: () => never[];
84
96
  };
85
97
  onChange: {};
98
+ labelField: {
99
+ type: StringConstructor;
100
+ default: string;
101
+ };
102
+ valueField: {
103
+ type: StringConstructor;
104
+ default: string;
105
+ };
86
106
  allowCreate: BooleanConstructor;
87
107
  urlConfig: {
88
108
  type: PropType<UrlConfig>;
@@ -121,7 +141,11 @@ export declare const SELECT: import("vue").DefineComponent<{
121
141
  getRecommendInfo: {
122
142
  type: PropType<() => RecommendIds>;
123
143
  };
124
- recommendNum: {
144
+ commonNum: {
145
+ type: NumberConstructor;
146
+ default: number;
147
+ };
148
+ recentNum: {
125
149
  type: NumberConstructor;
126
150
  default: number;
127
151
  };
@@ -134,10 +158,13 @@ export declare const SELECT: import("vue").DefineComponent<{
134
158
  onPostRecommend?: ((...args: any[]) => any) | undefined;
135
159
  }, {
136
160
  options: AnyObject[];
161
+ labelField: string;
162
+ valueField: string;
137
163
  lazyRequest: boolean;
138
164
  requestCache: boolean;
139
165
  recommend: boolean;
140
166
  recommendCache: boolean;
141
- recommendNum: number;
167
+ commonNum: number;
168
+ recentNum: number;
142
169
  allowCreate: boolean;
143
170
  }>;
@@ -1 +1 @@
1
- import{defineComponent as e,computed as o,inject as t,ref as a,createVNode as r}from"vue";import{useDebounceFn as l}from"@vueuse/core";import{cloneDeep as s,isString as i}from"lodash-es";import{useCommonInjection as n,useSelectOptionProps as u}from"../../hooks/useCommonInjection.js";import{InjectionChangeContextCollector as p}from"../../constants/index.js";import"../../../../../shared/utils/index.js";import"../../../index.js";import"../../utils/index.js";import{useFormField as m}from"../../hooks/useFormField.js";import{NSelect as c}from"naive-ui";import"date-fns";import"../../../../../shared/utils/tapable/SyncHook.js";import"../../../../../shared/utils/tapable/SyncBailHook.js";import"../../../../../shared/utils/tapable/SyncWaterfallHook.js";import"../../../../../shared/utils/tapable/SyncLoopHook.js";import"../../../../../shared/utils/tapable/AsyncParallelHook.js";import"../../../../../shared/utils/tapable/AsyncParallelBailHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesBailHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesLoopHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesWaterfallHook.js";import"../../hooks/useFormValidator.js";import"@formily/core";import"@formily/reactive";import{connect as d,mapProps as y}from"@formily/vue";import"@vue/shared";import"./index.js";import{useUrlConfigOptions as v,useAutographOptions as f,useRecommendOptions as h,searchContentMatcher as j}from"../../hooks/useFormRenderOptions.js";import{createVisitedSetter as b,assignUpdateValue as k,assignClearBindVisited as S}from"../../utils/schema.js";const g=d(e({name:"FormSelect",props:{value:{type:[String,Array]},lazyRequest:{type:Boolean,default:!0},requestCache:{type:Boolean,default:!0},options:{type:Array,default:()=>[]},onChange:{},allowCreate:Boolean,urlConfig:{type:Object},autograph:{type:String},wordbook:{type:Object},recommend:{type:Boolean,default:!1},commonList:{type:Array},recentList:{type:Array},getRecommendInfo:{type:Function},recommendNum:{type:Number,default:10},recommendCache:{type:Boolean,default:!1}},emits:["update:value","postRecommend"],setup(e,{slots:d,emit:y}){const k=o({get:()=>e.value,async set(e){y("update:value",e),C(e)}}),{labelKey:S,valueKey:g,fetchData:A,fullOptions:F,filterOptions:H}=e.urlConfig?v(e,k):f(e,k),{getRecommend:B,postRecommend:C,sortedOptions:x}=h(e,H,y,S,g),{field:O,fieldKey:R}=m();t(p).setContext(R.value,(e=>{return{currentOption:s((o=e,F.value.find((e=>e[g.value]===o))))};var o}));const L=a(""),V=l((async(e="")=>{L.value=e,A(e),B(e)}),300),{injectValueValidate:w,injectValueWatchFromEmpty:K,injectValueBindKey:P}=n();K(k,V),w(k);const W=P(k),{menuProps:q,nodeProps:I}=u();function N(e){const o=e[S.value];if(!o||!i(o))return"";const t=j(L.value,o);return t?r("section",null,[t.map(((e,o)=>0!==o&&e?r("span",{style:{color:o%2==0?"var(--n-option-text-color-active)":""}},[e]):null))]):o}const U=o((()=>x.value.length||!e.allowCreate?x.value:L.value?[{[S.value]:L.value,[g.value]:L.value},...x.value]:x.value));return()=>r(c,{key:W.value,remote:!0,filterable:!0,value:k.value,"onUpdate:value":e=>k.value=e,"menu-props":q,"node-props":I,labelField:S.value,valueField:g.value,options:U.value,onSearch:V,"onUpdate:show":e=>e&&V(),onFocus:b(O),renderLabel:N},d)}}),y({dataSource:"options"},k,S));export{g as SELECT};
1
+ import{defineComponent as e,computed as o,inject as t,ref as a,createVNode as l}from"vue";import{useDebounceFn as r}from"@vueuse/core";import{cloneDeep as s,isString as i}from"lodash-es";import{useCommonInjection as n,useSelectOptionProps as u}from"../../hooks/useCommonInjection.js";import{InjectionChangeContextCollector as p}from"../../constants/index.js";import"../../../../../shared/utils/index.js";import"../../../index.js";import"../../utils/index.js";import{useFormField as m}from"../../hooks/useFormField.js";import{NSelect as d}from"naive-ui";import"date-fns";import"../../../../../shared/utils/tapable/SyncHook.js";import"../../../../../shared/utils/tapable/SyncBailHook.js";import"../../../../../shared/utils/tapable/SyncWaterfallHook.js";import"../../../../../shared/utils/tapable/SyncLoopHook.js";import"../../../../../shared/utils/tapable/AsyncParallelHook.js";import"../../../../../shared/utils/tapable/AsyncParallelBailHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesBailHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesLoopHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesWaterfallHook.js";import"../../hooks/useFormValidator.js";import"@formily/core";import"@formily/reactive";import{connect as c,mapProps as y}from"@formily/vue";import"@vue/shared";import"./index.js";import{useUrlConfigOptions as v,useAutographOptions as f,useRecommendOptions as h,searchContentMatcher as j}from"../../hooks/useFormRenderOptions.js";import{createVisitedSetter as b,assignUpdateValue as k,assignClearBindVisited as S}from"../../utils/schema.js";const g=c(e({name:"FormSelect",props:{value:{type:[String,Array]},lazyRequest:{type:Boolean,default:!0},requestCache:{type:Boolean,default:!0},options:{type:Array,default:()=>[]},onChange:{},labelField:{type:String,default:"text"},valueField:{type:String,default:"value"},allowCreate:Boolean,urlConfig:{type:Object},autograph:{type:String},wordbook:{type:Object},recommend:{type:Boolean,default:!1},commonList:{type:Array},recentList:{type:Array},getRecommendInfo:{type:Function},commonNum:{type:Number,default:10},recentNum:{type:Number,default:10},recommendCache:{type:Boolean,default:!1}},emits:["update:value","postRecommend"],setup(e,{slots:c,emit:y}){const k=o({get:()=>e.value,async set(e){y("update:value",e),B(e)}}),{labelKey:S,valueKey:g,fetchData:F,fullOptions:A,filterOptions:H}=e.urlConfig?v(e,k):f(e,k),{getRecommend:x,postRecommend:B,sortedOptions:C}=h(e,H,y,S,g),{field:O,fieldKey:R}=m();t(p).setContext(R.value,(e=>{return{currentOption:s((o=e,A.value.find((e=>e[g.value]===o))))};var o}));const L=a(""),V=r((async(e="")=>{L.value=e,F(e),x(e)}),300),{injectValueValidate:w,injectValueWatchFromEmpty:K,injectValueBindKey:N}=n();K(k,V),w(k);const P=N(k),{menuProps:W,nodeProps:q}=u();function I(e){const o=e[S.value];if(!o||!i(o))return"";const t=j(L.value,o);return t?l("section",null,[t.map(((e,o)=>0!==o&&e?l("span",{style:{color:o%2==0?"var(--n-option-text-color-active)":""}},[e]):null))]):o}const U=o((()=>C.value.length||!e.allowCreate?C.value:L.value?[{[S.value]:L.value,[g.value]:L.value},...C.value]:C.value));return()=>l(d,{key:P.value,remote:!0,filterable:!0,value:k.value,"onUpdate:value":e=>k.value=e,"menu-props":W,"node-props":q,labelField:S.value,valueField:g.value,options:U.value,onSearch:V,"onUpdate:show":e=>e&&V(),onFocus:b(O),renderLabel:I},c)}}),y({dataSource:"options"},k,S));export{g as SELECT};
@@ -9,13 +9,16 @@ export declare function useRecommendOptions(props: {
9
9
  recentList?: RecommendItem[];
10
10
  getRecommendInfo?: () => RecommendIds;
11
11
  recommendCache: boolean;
12
- recommendNum: number;
12
+ commonNum: number;
13
+ recentNum: number;
13
14
  }, options: Ref<AnyObject[]>, emit: Func, labelKey: Ref<string>, valueKey: Ref<string>): {
14
15
  postRecommend: (value: unknown) => Promise<void>;
15
16
  getRecommend: (content?: string) => Promise<void>;
16
17
  sortedOptions: import("vue").ComputedRef<AnyObject[]>;
17
18
  };
18
19
  export declare function useUrlConfigOptions(props: {
20
+ labelField?: string;
21
+ valueField?: string;
19
22
  urlConfig?: UrlConfig;
20
23
  options?: AnyObject[];
21
24
  requestCache: boolean;
@@ -27,13 +30,15 @@ export declare function useUrlConfigOptions(props: {
27
30
  fullOptions: import("vue").ComputedRef<AnyObject[]>;
28
31
  fetchData: (content?: string) => Promise<null | undefined>;
29
32
  };
30
- export declare function useAutographOptions(props: {
31
- requestCache?: boolean;
32
- wordbook?: FormWordbook;
33
- autograph?: string;
34
- lazyRequest?: boolean;
35
- options?: AnyObject[];
36
- }, valueRef: Ref): {
33
+ export declare function useAutographOptions(props: Partial<{
34
+ labelField: string;
35
+ valueField: string;
36
+ requestCache: boolean;
37
+ wordbook: FormWordbook;
38
+ autograph: string;
39
+ lazyRequest: boolean;
40
+ options: AnyObject[];
41
+ }>, valueRef: Ref): {
37
42
  labelKey: import("vue").ComputedRef<string>;
38
43
  valueKey: import("vue").ComputedRef<string>;
39
44
  filterOptions: import("vue").ComputedRef<AnyObject[]>;
@@ -1 +1 @@
1
- import{checkInSetupEnv as e,jsonParse as n}from"../../../../shared/utils/index.js";import{useMemoize as t,useDebounceFn as o}from"@vueuse/core";import{identity as r,uniqBy as u,isString as l,isEqual as a,omit as i,isFunction as c}from"lodash-es";import{computed as s,inject as v,ref as m,watch as d}from"vue";import"../../index.js";import{InjectionAsyncQueue as f,InjectionFormItemDepsCollector as y}from"../constants/index.js";import{createUrlConfigParams as p,formRenderLog as h,keywordMatcher as g}from"../utils/index.js";import{useFormField as w}from"./useFormField.js";import{useFormRequest as k}from"./useFormRequest.js";function R(e,n){const t=m();return s({get:()=>t.value?t.value:e[n],set(e){t.value=e}})}const C=(()=>{const e=new Map,n=t((e=>new RegExp(`(.*)${e.split("").map((e=>`(${e})`)).join("(.*)")}(.*)`)),{getKey:r});return(t,o)=>{const r=e.get(t)||{};return e.set(t,r),Reflect.has(r,o)?r[o]:r[o]=o.match(n(t))}})();function b(){const e=m();return{searchContent:e,optionSearchFilter:function(n,t){return e.value?n.filter((n=>function(n,t){if(!e.value)return!0;const o=n?n[t]:"";return!!l(o)&&(!!C(e.value,o)||g(e.value,n.keyword))}(n,t))):n}}}function K(e,t,o,r,l){const a=R(e,"commonList"),m=R(e,"recentList"),{searchContent:d,optionSearchFilter:y}=b();function p(e){return n(e.itemObj)}const h=s((()=>{var e,n;return null!=(n=null==(e=a.value)?void 0:e.map(p))?n:[]})),g=s((()=>{var e,n;return null!=(n=null==(e=m.value)?void 0:e.map(p))?n:[]})),C=s((()=>{if(!e.recommend||!h.value.length&&!g.value.length)return t.value;const n=u(h.value.concat(g.value),(e=>e[l.value])),o=t.value.filter((e=>n.every((function(n){return n[l.value]!==e[l.value]}))));return[...y(n,r.value),...o]})),{getRecommendRequestInfo:K,getHttpInstance:j}=k();function O(n){const{url:t,getRecommendIds:o}=K(),r=c(o)?o():{},u=c(e.getRecommendInfo)?e.getRecommendInfo():{};return{url:t[n],info:Object.assign({},r,u)}}const{fieldKey:q}=w(),x=v(f);return{postRecommend:async function(n){if(!e.recommend)return;const t=j();if(!t)return;const{url:r,info:u}=O("post"),a=C.value.find((e=>e[l.value]===n));a&&o("postRecommend",await t.post(r,{...u,keyword:"",itemId:l.value,itemObj:JSON.stringify(a)}))},getRecommend:async function(n){if(!e.recommend)return;if(d.value=n,a.value&&m.value&&e.recommendCache)return;const t=await x.addAsync(function(n,t){const{url:o,info:r}=O("get");return{url:o,method:"get",key:n,cache:t,params:{...r,recNum:e.recommendNum,keyword:""}}}(q.value,e.recommendCache)),{commonly:o,recently:r}=t.reduce(((e,n)=>("commonly"===n.type?e.commonly.push(i(n,["type"])):"recently"===n.type&&e.recently.push(i(n,["type"])),e)),{commonly:[],recently:[]});a.value=o,m.value=r},sortedOptions:C}}function j(n,t){e();const r=v(f),u=s((()=>{var e,t;return null!=(t=null==(e=n.urlConfig)?void 0:e.nameKey)?t:"text"})),i=s((()=>{var e,t;return null!=(t=null==(e=n.urlConfig)?void 0:e.valueKey)?t:"value"})),{searchContent:c,optionSearchFilter:g}=b(),k=m(null),{field:R,fieldKey:C}=w(),K=o((async function(e){if(c.value=e||"",!n.urlConfig)return k.value=null;try{k.value=await r.addAsync(await p({config:n.urlConfig,cache:n.requestCache,field:R.value}))}catch(e){l(e)&&h(e)}}),300),j=s((()=>k.value?g(k.value,u.value):Array.isArray(n.options)?g(n.options,u.value):[])),O=s((()=>k.value||n.options||[])),q=v(y);return d((()=>n.urlConfig),((e,o)=>{a(e,o)||(k.value=null,e&&(q.setDeps(C.value,e.dependKey||[],(async()=>{k.value=null,t.value=null,!n.lazyRequest&&await K()})),(t.value||!n.lazyRequest)&&K()))}),{immediate:!0}),{labelKey:u,valueKey:i,filterOptions:j,fullOptions:O,fetchData:K}}function O(n,t){e();const r=v(f),u=s((()=>{var e,t,o;return null!=(o=null==(t=null==(e=n.wordbook)?void 0:e.render_key)?void 0:t[0])?o:"text"})),i=s((()=>{var e,t;return null!=(t=null==(e=n.wordbook)?void 0:e.value_key)?t:"value"})),{searchContent:c,optionSearchFilter:y}=b(),p=m(null),{fieldKey:g}=w(),{getSearchRequestInfo:R}=k(),C=o((async function(e){if(c.value=e||"",!n.autograph||!n.wordbook)return p.value=null;try{p.value=await r.addAsync(function(e,t,o){const r={autograph:t,wordbookId:e.id,wordbookType:e.type,fieldKeys:e.search_key,keyword:"",page:1};return{...R(),params:r,key:o,cache:n.requestCache}}(n.wordbook,n.autograph,g.value))}catch(e){l(e)&&h(e)}}),300),K=s((()=>p.value?y(p.value,u.value):Array.isArray(n.options)?y(n.options,u.value):[])),j=s((()=>p.value||n.options||[]));return d((()=>n.wordbook),((e,o)=>{a(e,o)||(p.value=null,e&&(t.value||!n.lazyRequest)&&C())}),{immediate:!0}),{labelKey:u,valueKey:i,filterOptions:K,fullOptions:j,fetchData:C}}export{C as searchContentMatcher,O as useAutographOptions,K as useRecommendOptions,j as useUrlConfigOptions};
1
+ import{checkInSetupEnv as e,jsonParse as n}from"../../../../shared/utils/index.js";import{useMemoize as t,useDebounceFn as l}from"@vueuse/core";import{identity as u,uniqBy as o,isString as r,isEqual as a,omit as i,isFunction as c}from"lodash-es";import{computed as s,inject as m,ref as v,watch as d}from"vue";import"../../index.js";import{InjectionAsyncQueue as f,InjectionFormItemDepsCollector as y}from"../constants/index.js";import{createUrlConfigParams as p,formRenderLog as h,keywordMatcher as g}from"../utils/index.js";import{useFormField as w}from"./useFormField.js";import{useFormRequest as k}from"./useFormRequest.js";function R(e,n){const t=v();return s({get:()=>t.value?t.value:e[n],set(e){t.value=e}})}const b=(()=>{const e=new Map,n=t((e=>new RegExp(`(.*)${e.split("").map((e=>`(${e})`)).join("(.*)")}(.*)`)),{getKey:u});return(t,l)=>{const u=e.get(t)||{};return e.set(t,u),Reflect.has(u,l)?u[l]:u[l]=l.match(n(t))}})();function C(){const e=v();return{searchContent:e,optionSearchFilter:function(n,t){return e.value?n.filter((n=>function(n,t){if(!e.value)return!0;const l=n?n[t]:"";return!!r(l)&&(!!b(e.value,l)||g(e.value,n.keyword))}(n,t))):n}}}function K(e,t,l,u,r){const a=R(e,"commonList"),v=R(e,"recentList"),{searchContent:d,optionSearchFilter:y}=C();function p(e){return n(e.itemObj)}const h=s((()=>{var e,n;return null!=(n=null==(e=a.value)?void 0:e.map(p))?n:[]})),g=s((()=>{var e,n;return null!=(n=null==(e=v.value)?void 0:e.map(p))?n:[]})),b=s((()=>{if(!e.recommend||!h.value.length&&!g.value.length)return t.value;const n=o(h.value.concat(g.value),(e=>e[r.value])),l=t.value.filter((e=>n.every((function(n){return n[r.value]!==e[r.value]}))));return[...y(n,u.value),...l]})),{getRecommendRequestInfo:K,getHttpInstance:F}=k();function j(n){const{url:t,getRecommendIds:l}=K(),u=c(l)?l():{},o=c(e.getRecommendInfo)?e.getRecommendInfo():{};return{url:t[n],info:Object.assign({},u,o)}}const{fieldKey:x}=w(),O=m(f);return{postRecommend:async function(n){if(!e.recommend)return;const t=F();if(!t)return;const{url:u,info:o}=j("post"),a=b.value.find((e=>e[r.value]===n));a&&l("postRecommend",await t.post(u,{...o,keyword:"",itemId:r.value,itemObj:JSON.stringify(a)}))},getRecommend:async function(n){if(!e.recommend)return;if(d.value=n,a.value&&v.value&&e.recommendCache)return;const t=await O.addAsync(function(n,t){const{url:l,info:u}=j("get");return{url:l,method:"get",key:n,cache:t,params:{...u,recNum:Math.max(e.commonNum,e.recentNum),keyword:""}}}(x.value,e.recommendCache)),{commonly:l,recently:u}=t.reduce(((e,n)=>("commonly"===n.type?e.commonly.push(i(n,["type"])):"recently"===n.type&&e.recently.push(i(n,["type"])),e)),{commonly:[],recently:[]});a.value=l.slice(0,e.commonNum),v.value=u.slice(0,e.recentNum)},sortedOptions:b}}function F(n,t){e();const u=m(f),o=s((()=>{var e,t,l;return null!=(l=null!=(t=null==(e=n.urlConfig)?void 0:e.nameKey)?t:n.labelField)?l:"text"})),i=s((()=>{var e,t,l;return null!=(l=null!=(t=null==(e=n.urlConfig)?void 0:e.valueKey)?t:n.valueField)?l:"value"})),{searchContent:c,optionSearchFilter:g}=C(),k=v(null),{field:R,fieldKey:b}=w(),K=l((async function(e){if(c.value=e||"",!n.urlConfig)return k.value=null;try{k.value=await u.addAsync(await p({config:n.urlConfig,cache:n.requestCache,field:R.value}))}catch(e){r(e)&&h(e)}}),300),F=s((()=>k.value?g(k.value,o.value):Array.isArray(n.options)?g(n.options,o.value):[])),j=s((()=>k.value||n.options||[])),x=m(y);return d((()=>n.urlConfig),((e,l)=>{a(e,l)||(k.value=null,e&&(x.setDeps(b.value,e.dependKey||[],(async()=>{k.value=null,t.value=null,!n.lazyRequest&&await K()})),(t.value||!n.lazyRequest)&&K()))}),{immediate:!0}),{labelKey:o,valueKey:i,filterOptions:F,fullOptions:j,fetchData:K}}function j(n,t){e();const u=m(f),o=s((()=>{var e,t,l,u;return null!=(u=null!=(l=null==(t=null==(e=n.wordbook)?void 0:e.render_key)?void 0:t[0])?l:n.labelField)?u:"text"})),i=s((()=>{var e,t,l;return null!=(l=null!=(t=null==(e=n.wordbook)?void 0:e.value_key)?t:n.valueField)?l:"value"})),{searchContent:c,optionSearchFilter:y}=C(),p=v(null),{fieldKey:g}=w(),{getSearchRequestInfo:R}=k(),b=l((async function(e){if(c.value=e||"",!n.autograph||!n.wordbook)return p.value=null;try{p.value=await u.addAsync(function(e,t,l){const u={autograph:t,wordbookId:e.id,wordbookType:e.type,fieldKeys:e.search_key,keyword:"",page:1};return{...R(),params:u,key:l,cache:n.requestCache}}(n.wordbook,n.autograph,g.value))}catch(e){r(e)&&h(e)}}),300),K=s((()=>p.value?y(p.value,o.value):Array.isArray(n.options)?y(n.options,o.value):[])),F=s((()=>p.value||n.options||[]));return d((()=>n.wordbook),((e,l)=>{a(e,l)||(p.value=null,e&&(t.value||!n.lazyRequest)&&b())}),{immediate:!0}),{labelKey:o,valueKey:i,filterOptions:K,fullOptions:F,fetchData:b}}export{b as searchContentMatcher,j as useAutographOptions,K as useRecommendOptions,F as useUrlConfigOptions};
@@ -25,14 +25,13 @@ export declare type ValidateItem = Partial<{
25
25
  message: string;
26
26
  [key: string]: any;
27
27
  }>;
28
- export interface FormOptionItem {
29
- text: string;
30
- value: any;
28
+ export declare type FormOptionItem = {
31
29
  keyword?: string;
32
30
  disabled?: boolean;
33
31
  children?: FormOptionItem[];
34
32
  childrenFields?: FieldItem[];
35
- }
33
+ [key: string]: any;
34
+ };
36
35
  interface FormRendererPayload {
37
36
  clearable: boolean;
38
37
  disabled: boolean;
@@ -1 +1 @@
1
- import{defineComponent as e,reactive as o,createVNode as t,mergeProps as r}from"vue";import{NSelect as l}from"naive-ui";import{useIhoTableFormEvent as a}from"../../../../utils/index.js";import{useAutoFocus as n}from"../hooks/useAutoFocus.js";import{useDebounceFn as i}from"@vueuse/core";var u=e({name:"EditSelect",inheritAttrs:!1,components:{NSelect:l},props:{value:{type:[Array,String,Number],default:void 0},column:{type:Object,required:!0},row:{type:Object,required:!0},rowIndex:{type:Number,required:!0}},emits:["update:value"],setup(e,{attrs:u,emit:s}){const{isShow:c,setRef:p}=n(),{emitFormChangeWithParams:d}=a(e),m=o({placeholder:u.placeholder||"请选择",options:u.options});async function v(o){var t;m.loading=!0;const r={keyword:o,row:e.row,column:e.column,rowIndex:e.rowIndex};try{m.options=await(null==(t=u.queryOptions)?void 0:t.call(u,r)),m.loading=!1}catch(o){console.log(`获取${e.column.field}_options错误`)}}function h(o){const t=e.value;s("update:value",o),d({oldValue:t})}m.options||(m.remote=!0,m.loading=!1,m.onSearch=i(v,400),m.onSearch(""));const f=()=>({class:"iho-table__selectOption"}),w={class:"iho-table__selectMenu"};return()=>t(l,r({ref:p,show:c.value,"onUpdate:show":e=>c.value=e},u,m,{value:e.value,clearable:!0,filterable:!0,nodeProps:f,menuProps:w,onUpdateValue:h}),null)}});export{u as default};
1
+ import{defineComponent as e,reactive as o,watch as t,createVNode as n,mergeProps as l}from"vue";import{NSelect as r}from"naive-ui";import{useIhoTableFormEvent as a}from"../../../../utils/index.js";import{useAutoFocus as u}from"../hooks/useAutoFocus.js";import{useDebounceFn as i}from"@vueuse/core";import{cloneDeep as s}from"lodash-es";var c=e({name:"EditSelect",inheritAttrs:!1,components:{NSelect:r},props:{value:{type:[Array,String,Number],default:void 0},column:{type:Object,required:!0},row:{type:Object,required:!0},rowIndex:{type:Number,required:!0}},emits:["update:value"],setup(e,{attrs:c,emit:p}){const{isShow:d,setRef:m,formRef:v}=u(),{emitFormChangeWithParams:f}=a(e),h=o({placeholder:c.placeholder||"请选择",options:c.options});var w;async function y(o){var t;h.loading=!0;const n={keyword:o,row:e.row,column:e.column,rowIndex:e.rowIndex};try{h.options=await(null==(t=c.queryOptions)?void 0:t.call(c,n)),h.loading=!1}catch(o){console.log(`获取${e.column.field}_options错误`)}}function b(o){const t=e.value;p("update:value",o),f({oldValue:t})}function g(e){var o,t;const n=s(e);"Tab"===e.key&&(null==(t=null==(o=v.value)?void 0:o.handleKeydown)||t.call(o,{...n,key:"Enter",preventDefault:e.preventDefault.bind(e)}))}t((()=>c.options),(e=>{e.length&&(h.options=e,h.remote=!1,h.onSearch=null)})),(null==(w=h.options)?void 0:w.length)||(h.remote=!0,h.loading=!1,h.onSearch=i(y,400),h.onSearch(""));const S=()=>({class:"iho-table__selectOption"}),x={class:"iho-table__selectMenu"};return()=>n(r,l({ref:m,show:d.value,"onUpdate:show":e=>d.value=e},c,h,{value:e.value,clearable:!0,filterable:!0,nodeProps:S,menuProps:x,onUpdateValue:b,onKeydown:g}),null)}});export{c as default};
@@ -1 +1 @@
1
- import{reactive as e,inject as o,createVNode as t,mergeProps as i,onBeforeUnmount as n}from"vue";import"../../../../../index.js";import{EDITABLE_WIDGET_TYPE as l,InjectionIhoTableUUID as r}from"../../../../constants/index.js";import{createIhoTableClearActivedInterceptor as s,IhoTableRenderHelper as d}from"../../../../utils/index.js";import u from"./editSelect.js";import{getDefaultValue as p}from"./selectUtils.js";import{defineTablePlugin as a}from"../../../../hooks/useTablePlugin.js";function c(){const c="selectRendererPlugin",f=e(new Map),m=e(new Map);return a({name:c,vxe(e){e.interceptor.add("event.clearActived",s(l.SELECT,(e=>e.classList.contains("iho-table__selectMenu")))),e.renderer.add(l.SELECT,{renderCell({props:e},{row:i,column:n}){var l;const s=o(r),d=(null==(l=f.get(s).find((e=>e.field===n.field)))?void 0:l.options)||[],u=p(i,e,d);return[t("span",null,[u])]},renderEdit:d.createRenderEdit((({fieldItem:e,emitFormClick:o,row:n,column:l,$rowIndex:r})=>[t(u,i({options:e.options,queryOptions:e.queryOptions},e.componentProps,{column:l,row:n,"row-index":r,value:n[l.field],"onUpdate:value":e=>n[l.field]=e,onClick:o}),null)]))})},apply(e){e.fieldHooks.fieldList.tap(c,((e,{uuid:o})=>(o&&(m.set(o,e),f.set(o,[])),e))),e.fieldHooks.fieldEnd.tapPromise(c,(async({uuid:e},{$table:o})=>{if(!e)return;const t=m.get(e),i=f.get(e);t.forEach((async o=>{var t;if(o.field&&"select"===o.formType){if(i.findIndex((e=>e.field===o.field))>-1)return;let n=o.options||[];if(o.queryOptions)try{const e={keyword:"",column:o,isFullData:!0};n=await(null==(t=o.queryOptions)?void 0:t.call(o,e))}catch(e){console.log(`获取${o.field}_options错误`)}i.push({field:o.field,options:n}),f.set(e,i)}}))})),e.setupHooks.setup.tap(c,(e=>{n((()=>{e.value.uuid&&(m.delete(e.value.uuid),f.delete(e.value.uuid))}))}))}})}export{c as selectRendererPlugin};
1
+ import{reactive as e,inject as o,createVNode as t,mergeProps as i,onBeforeUnmount as n}from"vue";import"../../../../../index.js";import{EDITABLE_WIDGET_TYPE as l,InjectionIhoTableUUID as r}from"../../../../constants/index.js";import{createIhoTableClearActivedInterceptor as s,IhoTableRenderHelper as d}from"../../../../utils/index.js";import u from"./editSelect.js";import{getDefaultValue as a}from"./selectUtils.js";import{defineTablePlugin as p}from"../../../../hooks/useTablePlugin.js";function f(){const f="selectRendererPlugin",c=e(new Map),m=e(new Map);return p({name:f,vxe(e){e.interceptor.add("event.clearActived",s(l.SELECT,(e=>e.classList.contains("iho-table__selectMenu")))),e.renderer.add(l.SELECT,{renderCell({props:e},{row:i,column:n}){var l;const s=o(r),d=(null==(l=c.get(s).find((e=>e.field===n.field)))?void 0:l.options)||[],u=a(i,e,d);return[t("span",null,[u])]},renderEdit:d.createRenderEdit((({fieldItem:e,emitFormClick:n,row:l,column:s,$rowIndex:d})=>{var a;const p=o(r),f=(null==(a=c.get(p).find((e=>e.field===s.field)))?void 0:a.options)||[];return[t(u,i({queryOptions:e.queryOptions},e.componentProps,{options:f,column:s,row:l,"row-index":d,value:l[s.field],"onUpdate:value":e=>l[s.field]=e,onClick:n}),null)]}))})},apply(e){e.fieldHooks.fieldList.tap(f,((e,{uuid:o})=>(o&&(m.set(o,e),c.set(o,[])),e))),e.fieldHooks.fieldEnd.tapPromise(f,(async({uuid:e},{$table:o})=>{if(!e)return;const t=m.get(e),i=c.get(e);t.forEach((async o=>{var t;if(o.field&&"select"===o.formType){if(i.findIndex((e=>e.field===o.field))>-1)return;let n=o.options||[];if(o.queryOptions)try{const e={keyword:"",column:o,isFullData:!0};n=await(null==(t=o.queryOptions)?void 0:t.call(o,e))}catch(e){console.log(`获取${o.field}_options错误`)}i.push({field:o.field,options:n}),c.set(e,i)}}))})),e.setupHooks.setup.tap(f,(e=>{n((()=>{e.value.uuid&&(m.delete(e.value.uuid),c.delete(e.value.uuid))}))}))}})}export{f as selectRendererPlugin};
@@ -1,4 +1,5 @@
1
1
  import { SFCWithInstall } from '../../../es/shared/types';
2
+ export * from './src/types';
2
3
  declare const Map: SFCWithInstall<import("vue").DefineComponent<{
3
4
  locationProp: {
4
5
  type: StringConstructor;
@@ -21,20 +22,7 @@ declare const Map: SFCWithInstall<import("vue").DefineComponent<{
21
22
  }>> & {
22
23
  onSelectLocation?: ((...args: any[]) => any) | undefined;
23
24
  }>>;
24
- state: {
25
- qq: any;
26
- searchKey: any;
27
- centrePoint: any;
28
- location: any;
29
- localObj: any;
30
- map: any;
31
- ac: any;
32
- addressList: any[];
33
- markers: any[];
34
- timeout: any;
35
- searchService: any;
36
- geocoder: any;
37
- };
25
+ state: import("./src/types").IState;
38
26
  defAdress: import("vue").ComputedRef<any>;
39
27
  emit: (event: "selectLocation", ...args: any[]) => void;
40
28
  calculateLocationProp: import("vue").ComputedRef<any>;
@@ -1,17 +1,4 @@
1
- declare type IState = {
2
- qq: any;
3
- searchKey: any;
4
- centrePoint: any;
5
- location: any;
6
- localObj: any;
7
- map: any;
8
- ac: any;
9
- addressList: any[];
10
- markers: any[];
11
- timeout: any;
12
- searchService: any;
13
- geocoder: any;
14
- };
1
+ import { IState } from '../../../../es/components/map/src/types';
15
2
  declare const _default: import("vue").DefineComponent<{
16
3
  locationProp: {
17
4
  type: StringConstructor;
@@ -0,0 +1,19 @@
1
+ export declare type IState = {
2
+ qq: any;
3
+ searchKey: any;
4
+ centrePoint: any;
5
+ location: any;
6
+ localObj: any;
7
+ map: any;
8
+ ac: any;
9
+ addressList: any[];
10
+ markers: any[];
11
+ timeout: any;
12
+ searchService: any;
13
+ geocoder: any;
14
+ };
15
+ export declare type IMapLocation = Partial<{
16
+ isInit: boolean;
17
+ locationProp: string;
18
+ [key: string]: any;
19
+ }>;
@@ -628,6 +628,8 @@ declare const RecommendSearch: SFCWithInstall<import("vue").DefineComponent<{
628
628
  }>;
629
629
  };
630
630
  currentComponent: import("vue").ComputedRef<any>;
631
+ inputRef: import("vue").Ref<any>;
632
+ exposeMethods: {};
631
633
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("delete" | "clear" | "update:value" | "search" | "choose" | "openMenu" | "closeMenu")[], "search" | "closeMenu" | "delete" | "clear" | "update:value" | "choose" | "openMenu", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
632
634
  mode: {
633
635
  type: import("vue").PropType<"input" | "select">;
@@ -630,6 +630,8 @@ declare const _default: import("vue").DefineComponent<{
630
630
  }>;
631
631
  };
632
632
  currentComponent: import("vue").ComputedRef<any>;
633
+ inputRef: import("vue").Ref<any>;
634
+ exposeMethods: {};
633
635
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("delete" | "clear" | "update:value" | "search" | "choose" | "openMenu" | "closeMenu")[], "search" | "closeMenu" | "delete" | "clear" | "update:value" | "choose" | "openMenu", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
634
636
  mode: {
635
637
  type: PropType<"input" | "select">;
@@ -1 +1 @@
1
- import{defineComponent as e,computed as t,provide as o,useSlots as l,openBlock as r,createBlock as n,resolveDynamicComponent as p,unref as a,mergeProps as u,isRef as m,withCtx as i,renderSlot as s}from"vue";import{useVModel as c}from"@vueuse/core";import{InjectionRecommendSearchRootSlots as d}from"./constant/index.js";import y from"./components/RecommendInput.vue.js";import f from"./components/RecommendSelect.vue.js";import v from"../../../_virtual/plugin-vue_export-helper.js";var h=v(e({__name:"RecommendSearch",props:{mode:{type:String,default:"input"},value:{type:[String,Number]},labelKey:{type:String,default:"label"},valueKey:{type:String,default:"value"},placeholder:{type:String},editPlaceholder:{type:String,default:"请输入关键字进行搜索"},clearable:{type:Boolean,default:!0},options:{type:Array,default:()=>[]},commonList:{type:Array,default:()=>[]},recentList:{type:Array,default:()=>[]},recommendDeletable:{type:Boolean,default:!0},inputProps:{type:Object},popProps:{type:Object}},emits:["update:value","search","delete","choose","clear","openMenu","closeMenu"],setup(e,{emit:v}){const h=e,S=c(h,"value",v),b={input:y,select:f},g=t((()=>b[h.mode]));return o(d,l()),(e,t)=>(r(),n(p(a(g)),u(e.$props,{value:a(S),"onUpdate:value":t[0]||(t[0]=e=>m(S)?S.value=e:null),onSearch:t[1]||(t[1]=t=>e.$emit("search",t)),onChoose:t[2]||(t[2]=t=>e.$emit("choose",t)),onOpenMenu:t[3]||(t[3]=t=>e.$emit("openMenu",t)),onCloseMenu:t[4]||(t[4]=t=>e.$emit("closeMenu",t)),onDelete:t[5]||(t[5]=t=>e.$emit("delete",t))}),{empty:i((()=>[s(e.$slots,"empty")])),_:3},16,["value"]))}}),[["__file","RecommendSearch.vue"]]);export{h as default};
1
+ import{defineComponent as e,computed as t,provide as o,useSlots as l,ref as r,watchEffect as n,openBlock as p,createBlock as a,resolveDynamicComponent as u,unref as m,mergeProps as s,isRef as c,withCtx as i,renderSlot as d}from"vue";import{useVModel as y}from"@vueuse/core";import{InjectionRecommendSearchRootSlots as f,InjectionRecommendSearchRef as v}from"./constant/index.js";import h from"./components/RecommendInput.vue.js";import S from"./components/RecommendSelect.vue.js";import b from"../../../_virtual/plugin-vue_export-helper.js";var g=b(e({__name:"RecommendSearch",props:{mode:{type:String,default:"input"},value:{type:[String,Number]},labelKey:{type:String,default:"label"},valueKey:{type:String,default:"value"},placeholder:{type:String},editPlaceholder:{type:String,default:"请输入关键字进行搜索"},clearable:{type:Boolean,default:!0},options:{type:Array,default:()=>[]},commonList:{type:Array,default:()=>[]},recentList:{type:Array,default:()=>[]},recommendDeletable:{type:Boolean,default:!0},inputProps:{type:Object},popProps:{type:Object}},emits:["update:value","search","delete","choose","clear","openMenu","closeMenu"],setup(e,{expose:b,emit:g}){const j=e,$=y(j,"value",g),_={input:h,select:S},M=t((()=>_[j.mode]));o(f,l());const O=r();o(v,O);const R={};return n((()=>{Object.keys(R).forEach((e=>Reflect.deleteProperty(R,e))),Object.assign(R,O.value)})),b(R),(e,t)=>(p(),a(u(m(M)),s(e.$props,{value:m($),"onUpdate:value":t[0]||(t[0]=e=>c($)?$.value=e:null),onSearch:t[1]||(t[1]=t=>e.$emit("search",t)),onChoose:t[2]||(t[2]=t=>e.$emit("choose",t)),onOpenMenu:t[3]||(t[3]=t=>e.$emit("openMenu",t)),onCloseMenu:t[4]||(t[4]=t=>e.$emit("closeMenu",t)),onDelete:t[5]||(t[5]=t=>e.$emit("delete",t))}),{empty:i((()=>[d(e.$slots,"empty")])),_:3},16,["value"]))}}),[["__file","RecommendSearch.vue"]]);export{g as default};
@@ -1 +1 @@
1
- import{defineComponent as e,inject as a,ref as t,computed as o,createVNode as l,mergeProps as n}from"vue";import{isFunction as r}from"lodash-es";import{uuidGenerator as u}from"../../../../shared/utils/index.js";import{useDebounceFn as s,onClickOutside as p}from"@vueuse/core";import{NPopover as i,NInput as c,NSpin as d}from"naive-ui";import{InjectionRecommendSearchRootSlots as v}from"../constant/index.js";var m=e({props:{displayValue:{type:String},valueFormatter:{type:Function},show:{type:Boolean},loading:{type:Boolean},placeholder:{type:String,default:"请输入"},clearable:{type:Boolean,default:!0},inputProps:{type:Object,default:()=>({})},popProps:{type:Object,default:()=>({})},clearPatternOnOpenMenu:{type:Boolean,default:!0}},emits:["update:show","keydown","clear","search","openMenu","closeMenu"],setup(e,{expose:m,emit:f,slots:h}){const g=a(v,{}),y=u(),w=s(((e="")=>{f("search",e)}),300),b=t(e.show),M=o({get:()=>b.value||e.show,set(e){f("update:show",e),b.value=e}}),P=t(),O=t(""),x=o({get:()=>M.value?O.value:e.displayValue,set(e){O.value=e||"",w(e)}});function j(e){var a;"INPUT"===(null==(a=e.target)?void 0:a.tagName)&&k()}function k(){M.value||(M.value=!0,f("openMenu"),e.clearPatternOnOpenMenu&&(O.value=""))}function B(){var e;M.value=!1,null==(e=P.value)||e.blur(),f("closeMenu")}function F(){f("clear")}return p(P,(e=>{var a;if(!M.value)return;const t=e;if(!t.target)return B();!function(e){let a=!1,t=e;for(;t;){if(t.id===y){a=!0;break}t=t.parentElement}return a}(t.target)?B():null==(a=P.value)||a.focus()})),m({setPattern(e){O.value=e},closeMenu:B,openMenu:k}),()=>l(i,n({trigger:"manual",class:"recommend-search",placement:"bottom-start",show:M.value,"onUpdate:show":e=>M.value=e,"show-arrow":!1,width:"trigger"},e.popProps),{trigger:()=>l(c,n(e.inputProps,{placeholder:e.placeholder,clearable:e.clearable,onClear:F,onFocus:j,onClick:j,onKeydown:e=>f("keydown",e),ref:P,value:x.value,"onUpdate:value":e=>x.value=e}),g),default:()=>l(d,{show:e.loading},{default:()=>[l("section",{id:y,class:"base-search__menu",style:"min-height: 100px"},[r(null==h?void 0:h.menu)?h.menu():null])]})})}});export{m as default};
1
+ import{defineComponent as e,inject as a,ref as t,computed as o,createVNode as l,mergeProps as n}from"vue";import{isFunction as r}from"lodash-es";import{uuidGenerator as u}from"../../../../shared/utils/index.js";import{useDebounceFn as s,onClickOutside as p}from"@vueuse/core";import{NPopover as i,NInput as c,NSpin as d}from"naive-ui";import{InjectionRecommendSearchRootSlots as v,InjectionRecommendSearchRef as m}from"../constant/index.js";var f=e({props:{displayValue:{type:String},valueFormatter:{type:Function},show:{type:Boolean},loading:{type:Boolean},placeholder:{type:String,default:"请输入"},clearable:{type:Boolean,default:!0},inputProps:{type:Object,default:()=>({})},popProps:{type:Object,default:()=>({})},clearPatternOnOpenMenu:{type:Boolean,default:!0}},emits:["update:show","keydown","clear","search","openMenu","closeMenu"],setup(e,{expose:f,emit:h,slots:g}){const y=a(v,{}),w=u(),b=s(((e="")=>{h("search",e)}),300),M=t(e.show),P=o({get:()=>M.value||e.show,set(e){h("update:show",e),M.value=e}}),O=a(m,t()),x=t(""),j=o({get:()=>P.value?x.value:e.displayValue,set(e){x.value=e||"",b(e)}});function k(e){var a;"INPUT"===(null==(a=e.target)?void 0:a.tagName)&&B()}function B(){P.value||(P.value=!0,h("openMenu"),e.clearPatternOnOpenMenu&&(x.value=""))}function F(){var e;P.value=!1,null==(e=O.value)||e.blur(),h("closeMenu")}function U(){h("clear")}return p(O,(e=>{var a;if(!P.value)return;const t=e;if(!t.target)return F();!function(e){let a=!1,t=e;for(;t;){if(t.id===w){a=!0;break}t=t.parentElement}return a}(t.target)?F():null==(a=O.value)||a.focus()})),f({setPattern(e){x.value=e},closeMenu:F,openMenu:B}),()=>l(i,n({trigger:"manual",class:"recommend-search",placement:"bottom-start",show:P.value,"onUpdate:show":e=>P.value=e,"show-arrow":!1,width:"trigger"},e.popProps),{trigger:()=>l(c,n(e.inputProps,{placeholder:e.placeholder,clearable:e.clearable,onClear:U,onFocus:k,onClick:k,onKeydown:e=>h("keydown",e),ref:O,value:j.value,"onUpdate:value":e=>j.value=e}),y),default:()=>l(d,{show:e.loading},{default:()=>[l("section",{id:w,class:"base-search__menu",style:"min-height: 100px"},[r(null==g?void 0:g.menu)?g.menu():null])]})})}});export{f as default};
@@ -1,6 +1,7 @@
1
- import { InjectionKey } from 'vue';
1
+ import { InjectionKey, Ref } from 'vue';
2
2
  export declare enum RecommendType {
3
3
  COMMONLY = "COMMONLY",
4
4
  RECENTLY = "RECENTLY"
5
5
  }
6
6
  export declare const InjectionRecommendSearchRootSlots: InjectionKey<Record<string, any>>;
7
+ export declare const InjectionRecommendSearchRef: InjectionKey<Ref>;
@@ -1 +1 @@
1
- var o=(o=>(o.COMMONLY="COMMONLY",o.RECENTLY="RECENTLY",o))(o||{});const e=Symbol("InjectionRecommendSearchRootSlots ");export{e as InjectionRecommendSearchRootSlots,o as RecommendType};
1
+ var o=(o=>(o.COMMONLY="COMMONLY",o.RECENTLY="RECENTLY",o))(o||{});const e=Symbol("InjectionRecommendSearchRootSlots"),c=Symbol("InjectionRecommendSearchRef");export{c as InjectionRecommendSearchRef,e as InjectionRecommendSearchRootSlots,o as RecommendType};
@@ -1 +1 @@
1
- import{defineComponent as e,reactive as t,ref as a,watch as o,nextTick as i,openBlock as l,createElementBlock as n,normalizeClass as s,unref as r,createCommentVNode as u,Fragment as c,createBlock as p,mergeProps as d,createElementVNode as m,normalizeStyle as v,createVNode as f,withCtx as g,renderList as y,toDisplayString as b,createTextVNode as h,resolveDynamicComponent as k,h as C}from"vue";import S from"./hooks/use-noData.js";import{getScaleViewState as w}from"./hooks/scaleview-state.js";import{ScaleViewComputed as E}from"./hooks/scaleview-computed.js";import{ScaleViewInit as _}from"./hooks/scaleview-init.js";import{ScaleViewSubmit as j}from"./hooks/scaleview-submit.js";import{handleQueryParams as A,isCollection as O,isEvaluation as T}from"./utils/judge-types.js";import{useEvent as L}from"./hooks/use-event.js";import D from"./components/NoData.vue.js";import P from"../../../shared/components/SvgIcon/SvgIcon.vue.js";import F from"./components/EvaluateCountdown.vue.js";import x from"./components/EvaluatePage.vue.js";import N from"./components/AnswerParse.vue.js";import B from"./components/ScaleScore.js";import{useDialog as I,useMessage as M,NForm as q,NFormItem as R,NButton as K}from"naive-ui";import U from"../../../_virtual/plugin-vue_export-helper.js";const V=["innerHTML"],H={key:0,class:"required-text"},W={key:1,class:"evalute-label"},J=["onClick"],Y={key:1,class:"footer"};var X=U(e({__name:"ScaleView",props:{guageData:{type:Object,default:()=>({})},styleSetting:{type:Object,default:()=>({})},ids:{type:Object,default:()=>({guage_id:"",db_id:void 0})},params:{default:()=>({}),type:Object},noBtn:{type:[Boolean,String,Number],default:!1},hideBtn:{type:[Boolean,String,Number],default:!1},isLock:{type:[Boolean,String,Number],default:!1},type:{type:String,default:""},openType:{type:String,default:""},scaleApiConfig:{type:Object,default:()=>({})},getSelectOptions:{type:Function,default:()=>Promise.resolve([])},getSearchOptions:{type:Function,default:()=>Promise.resolve([])},getCascadeOptions:{type:Function,default:()=>Promise.resolve([])},getLabelList:{type:Function,default:()=>Promise.resolve([])},deleteLabel:{type:Function,default:()=>Promise.resolve({status:!0})},saveLabelItem:{type:Function,default:()=>Promise.resolve({status:!0})},uploadPictureUrl:{type:String,default:""},uploadFileUrl:{type:String,default:""},ak:{type:String,default:"KP3BZ-OAC3W-PY6RY-OJ6DV-JYKN3-H6F72"},sourceType:{type:String,default:""},getChunkUploadConfig:{type:Function,default:()=>Promise.resolve({checkFileMd5Exist:"http://192.168.1.223:12060/storage/checkFileMd5Exist",fileChannel:"null",md5:"9ed34823e7ef4754819704135b29c9ab",objectName:"0/0/20220602",partFileMerge:"http://192.168.1.223:12060/storage/partFileMerge",partFileUpload:"http://192.168.1.223:12060/storage/partFileUpload",token:"4d0eb8f174994d33adb71766d1ef8ce4"})}},emits:["onCloseSetting","submitNoRequest","onSubmit","startWriteScale"],setup(e,{expose:U,emit:X}){const G=e,{ScaleViewState:Q}=w(),Z=t(Q),$=I(),z=M(),ee=a(null),te=a(null),{noDataState:ae,setNoData:oe,resetNodata:ie}=S(),le=A(),{showEvatip:ne,isFormBoldOpen:se,scaleStyle:re,handlePageClass:ue,isShowItem:ce,handleShowQuestionNumber:pe,hasScore:de,isPreviewScale:me,showEvaluateEntry:ve,showEvaluateCoundownPage:fe,showSaveBtn:ge,showEvaluateLabel:ye,showAnswerParse:be,propsConfig:he,evaluatePageProps:ke,evaluateCountdownProps:Ce,skipCover:Se,scaleEdit:we}=E(G,Z,{query:le}),{initForm:Ee}=_(G,Z,X,{query:le}),{submitMethod:_e}=j(G,Z,X,{query:le}),{nextLogicEvent:je,handleDynamicDataRelation:Ae}=L(G,Z);(()=>{let{id:e}=le;e&&(Z.shareId=e)})();const Oe=e=>{try{ie(),Ee(e)}catch(e){console.log(e,"--error"),Z.spinning=!1,Z.hasFrontAddress=!1,oe(!0,null==e?void 0:e.resultMsg,null==e?void 0:e.result)}};o((()=>G.ids),((e,t)=>{t?e.guage_id&&e.guage_id!=t.guage_id&&Oe(e):e.guage_id&&Oe(e)}),{immediate:!0}),o((()=>G.guageData),(e=>{if(!e||!Object.keys(e||{}).length)return;Z.form={},Z.formArray=[];const t=JSON.parse(JSON.stringify(e));i((()=>{Ee(t)}))}),{immediate:!0});const Te=e=>{Z.showEvaluateSettingWrap=!1,Z.showEvaluateCountdown=!!e,X("startWriteScale")},Le=()=>{console.log("----closeEvaluateCountdown"),Z.showEvaluateCountdown=!1,me.value||(Z.banSubmit=!0,_e(),$.warning({title:"温馨提示",content:"测评时间到了,结束测评!",maskClosable:!1,positiveText:"确定",onPositiveClick:()=>{}}))},De=e=>{$.warning({title:"提示",content:()=>C("div",{class:"evatip-container"},[C("span","答案解析:"),C("p",e)]),class:"c-evatip-dialog-wrap",showIcon:!1,positiveText:"确定",negativeText:"关闭",maskClosable:!1,onPositiveClick(){},onNegativeClick(){}})},Pe=(e,t,a)=>{console.log(e,"--val");let{choiceObj:o,isSetObj:i}=a||{};switch(t.type.includes("SELECT")||(Z.form[t.val_key]=e),t.type){case"SELECT":case"EVALUATE_SELECT":let{value:a,list:l=[]}=e;Z.form[t.val_key]=a,je(e,t,Z.formArray),Ae(l,t,Z.formArray);break;case"RADIO_BLOCK":case"CHECKBOX_BLOCK":i&&(Z.choiceComObj[t.val_key]=o),je(e,t,Z.formArray);break;case"EVALUATE_RADIO_BLOCK":case"EVALUATE_CHECKBOX_BLOCK":je(e,t,Z.formArray);break;case"DATE":case"TIME":case"DATETIME":case"SEARCH_CASCADE":Z.submitForm[t.val_key]=e}},Fe=(e,t)=>{console.log(t),Z.form[t.val_key]=e},xe=e=>{if(!e||!e.length)return{labelStr:"",labels:[]};const t=e||[],a=[],o=[];return t.forEach((e=>{o.push(e),a.push(e.labelName)})),Z.labelSelectedList=t,{labelStr:a.join(","),labels:o}},Ne=()=>{var e;if(!Z.formArray.find((e=>T(e.type))))return void Be("确认要提交吗?");let{evaluateResultSetting:t}=Z.config;if(!t||!Object.keys(t).length&&!ve.value||we.value)return void Be("确认要结束测评吗?");if("formIframe"==G.openType&&ve.value)return void X("submitNoRequest");let a="确定要提前结束测评吗?";if(fe.value&&(null==(e=ee.value)?void 0:e.getCountdownObj)){const e=ee.value.getCountdownObj(),{setAnswered:t,totalLen:o}=e;t<o?a="存在未作答的题目,确定要提前结束测评吗?":!(null==Z?void 0:Z.showEvaluateCountdown)&&(a="确认要结束测评吗?")}Be(a)},Be=e=>{$.warning({title:"温馨提示",content:()=>C("div",{style:{paddingLeft:"30px"}},e),positiveText:"确定",negativeText:"取消",maskClosable:!1,closable:!1,positiveButtonProps:{type:"primary"},onPositiveClick:()=>{Ie()},onNegativeClick(){}})},Ie=()=>{var e;null==(e=te.value)||e.validate((e=>{var t;if(e){console.log(e);let a=(null==(t=e[0])?void 0:t[0])||{},o=a.field,i=a.message,l=Z.formArray.find((e=>e.databaseTitle===o));return l&&(o=l.title),z.error(o+i),!1}_e()}))},Me=()=>{X("onCloseSetting")};return U({getScaleData:()=>({...Z}),onSubmit:Ne,cancel:Me}),(e,t)=>(l(),n("div",{class:s(["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):(l(),n(c,{key:0},[r(ae).noData?(l(),p(D,{key:0,noDataImg:r(ae).noDataImg,noDataTip:r(ae).noDataTip},null,8,["noDataImg","noDataTip"])):(l(),n(c,{key:1},[r(ve)&&!r(Se)?(l(),p(x,d({key:0},r(ke),{onWriteGuage:Te}),null,16)):(l(),n(c,{key:1},[r(fe)?(l(),p(F,d({key:0,ref_key:"countdownDom",ref:ee},r(Ce),{onCloseEvaluateCountdown:Le}),null,16)):u("v-if",!0),m("div",{class:s(["scale-container",{"scale-container-nopadding":r(ue),"scale-container-hasfooter":r(ge)}]),style:v(r(re))},[r(de)?(l(),p(r(B),{key:0,config:Z.config,maxScore:Z.maxScore},null,8,["config","maxScore"])):u("v-if",!0),f(r(q),{ref_key:"formRef",ref:te,model:Z.form,rules:Z.rules,"require-mark-placement":"left",class:"main"},{default:g((()=>[(l(!0),n(c,null,y(Z.formArray,((e,t)=>(l(),n(c,{key:(e.id||e.seq)+t},[r(ce)(e)?(l(),p(r(R),{key:0,path:e.val_key,"show-label":!r(O)(e.type),class:"c-scle-form-item"},{label:g((()=>[m("span",{class:s({"scale-label-required":r(se)(e)}),innerHTML:r(pe)(e)},null,10,V),r(se)(e)?(l(),n("span",H,"(必填)")):u("v-if",!0),r(ye)(e)?(l(),n("span",W,b(r(ye)(e)),1)):u("v-if",!0),r(ne)(e)?(l(),n("span",{key:2,class:"evalute-tip",onClick:t=>(async e=>{var t;if(Z.evatipMap[e.id])return void De(Z.evatipMap[e.id]);let a="getSubjectAnswer";const o=(null==(t=G.scaleApiConfig)?void 0:t[a])||null;if(!o||"function"!=typeof o)return void z.error(`${a} Is not a function`);let i=await o(e.id);i&&(Z.evatipMap[e.id]||(Z.evatipMap[e.id]=i,De(i)))})(e)},[f(r(P),{"icon-class":"a-xitongtubiaotishi"}),h(" 查看提示 ")],8,J)):u("v-if",!0)])),default:g((()=>[(l(),p(k(e.renderCom),d(r(he)(e,t),{key:(e.id||e.seq)+t,onScaleChange:Pe,onOnChange:t=>((e,t)=>{Z.form[t.val_key]=xe(e)})(t,e),onVodFileList:Fe}),null,16,["onOnChange"])),r(be)(e)?(l(),p(N,{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)?(l(),n("div",Y,[u(" 分享的链接 隐藏取消按钮 "),"guage"!==G.sourceType?(l(),p(r(K),{key:0,onClick:Me},{default:g((()=>[h("取消")])),_:1})):u("v-if",!0),G.isLock?u("v-if",!0):(l(),p(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{X as default};
1
+ import{defineComponent as e,reactive as t,ref as a,watch as o,nextTick as i,openBlock as l,createElementBlock as n,normalizeClass as s,unref as r,createCommentVNode as u,Fragment as c,createBlock as p,mergeProps as d,createElementVNode as m,normalizeStyle as v,createVNode as f,withCtx as g,renderList as y,toDisplayString as b,createTextVNode as h,resolveDynamicComponent as k,h as C}from"vue";import S from"./hooks/use-noData.js";import{getScaleViewState as w}from"./hooks/scaleview-state.js";import{ScaleViewComputed as E}from"./hooks/scaleview-computed.js";import{ScaleViewInit as _}from"./hooks/scaleview-init.js";import{ScaleViewSubmit as j}from"./hooks/scaleview-submit.js";import{handleQueryParams as A,isCollection as O,isEvaluation as T}from"./utils/judge-types.js";import{useEvent as L}from"./hooks/use-event.js";import D from"./components/NoData.vue.js";import P from"../../../shared/components/SvgIcon/SvgIcon.vue.js";import F from"./components/EvaluateCountdown.vue.js";import x from"./components/EvaluatePage.vue.js";import N from"./components/AnswerParse.vue.js";import B from"./components/ScaleScore.js";import{useDialog as I,useMessage as M,NForm as q,NFormItem as R,NButton as K}from"naive-ui";import U from"../../../_virtual/plugin-vue_export-helper.js";const V=["innerHTML"],H={key:0,class:"required-text"},W={key:1,class:"evalute-label"},J=["onClick"],Y={key:1,class:"footer"};var X=U(e({__name:"ScaleView",props:{guageData:{type:Object,default:()=>({})},styleSetting:{type:Object,default:()=>({})},ids:{type:Object,default:()=>({guage_id:"",db_id:void 0})},params:{default:()=>({}),type:Object},noBtn:{type:[Boolean,String,Number],default:!1},hideBtn:{type:[Boolean,String,Number],default:!1},isLock:{type:[Boolean,String,Number],default:!1},type:{type:String,default:""},openType:{type:String,default:""},scaleApiConfig:{type:Object,default:()=>({})},getSelectOptions:{type:Function,default:()=>Promise.resolve([])},getSearchOptions:{type:Function,default:()=>Promise.resolve([])},getCascadeOptions:{type:Function,default:()=>Promise.resolve([])},getLabelList:{type:Function,default:()=>Promise.resolve([])},deleteLabel:{type:Function,default:()=>Promise.resolve({status:!0})},saveLabelItem:{type:Function,default:()=>Promise.resolve({status:!0})},uploadPictureUrl:{type:String,default:""},uploadFileUrl:{type:String,default:""},ak:{type:String,default:"KP3BZ-OAC3W-PY6RY-OJ6DV-JYKN3-H6F72"},sourceType:{type:String,default:""},getChunkUploadConfig:{type:Function,default:()=>Promise.resolve({checkFileMd5Exist:"http://192.168.1.223:12060/storage/checkFileMd5Exist",fileChannel:"null",md5:"9ed34823e7ef4754819704135b29c9ab",objectName:"0/0/20220602",partFileMerge:"http://192.168.1.223:12060/storage/partFileMerge",partFileUpload:"http://192.168.1.223:12060/storage/partFileUpload",token:"4d0eb8f174994d33adb71766d1ef8ce4"})}},emits:["onCloseSetting","submitNoRequest","onSubmit","startWriteScale"],setup(e,{expose:U,emit:X}){const G=e,{ScaleViewState:Q}=w(),Z=t(Q),$=I(),z=M(),ee=a(null),te=a(null),{noDataState:ae,setNoData:oe,resetNodata:ie}=S(),le=A(),{showEvatip:ne,isFormBoldOpen:se,scaleStyle:re,handlePageClass:ue,isShowItem:ce,handleShowQuestionNumber:pe,hasScore:de,isPreviewScale:me,showEvaluateEntry:ve,showEvaluateCoundownPage:fe,showSaveBtn:ge,showEvaluateLabel:ye,showAnswerParse:be,propsConfig:he,evaluatePageProps:ke,evaluateCountdownProps:Ce,skipCover:Se,scaleEdit:we}=E(G,Z,{query:le}),{initForm:Ee}=_(G,Z,X,{query:le}),{submitMethod:_e}=j(G,Z,X,{query:le}),{nextLogicEvent:je,handleDynamicDataRelation:Ae}=L(G,Z);(()=>{let{id:e}=le;e&&(Z.shareId=e)})();const Oe=e=>{try{ie(),Ee(e)}catch(e){console.log(e,"--error"),Z.spinning=!1,Z.hasFrontAddress=!1,oe(!0,null==e?void 0:e.resultMsg,null==e?void 0:e.result)}};o((()=>G.ids),((e,t)=>{t?e.guage_id&&e.guage_id!=t.guage_id&&Oe(e):e.guage_id&&Oe(e)}),{immediate:!0}),o((()=>G.guageData),(e=>{if(!e||!Object.keys(e||{}).length)return;Z.form={},Z.formArray=[];const t=JSON.parse(JSON.stringify(e));i((()=>{Ee(t)}))}),{immediate:!0});const Te=e=>{Z.showEvaluateSettingWrap=!1,Z.showEvaluateCountdown=!!e,X("startWriteScale")},Le=()=>{console.log("----closeEvaluateCountdown"),Z.showEvaluateCountdown=!1,me.value||(Z.banSubmit=!0,_e(),$.warning({title:"温馨提示",content:"测评时间到了,结束测评!",maskClosable:!1,positiveText:"确定",onPositiveClick:()=>{}}))},De=e=>{$.warning({title:"提示",content:()=>C("div",{class:"evatip-container"},[C("span","答案解析:"),C("p",e)]),class:"c-evatip-dialog-wrap",showIcon:!1,positiveText:"确定",negativeText:"关闭",maskClosable:!1,onPositiveClick(){},onNegativeClick(){}})},Pe=(e,t,a)=>{console.log(e,"--val");let{choiceObj:o,isSetObj:i}=a||{};switch(t.type.includes("SELECT")||(Z.form[t.val_key]=e),t.type){case"SELECT":case"EVALUATE_SELECT":let{value:a,list:l=[]}=e;Z.form[t.val_key]=a,je(e,t,Z.formArray),Ae(l,t,Z.formArray);break;case"RADIO_BLOCK":case"CHECKBOX_BLOCK":i&&(Z.choiceComObj[t.val_key]=o),je(e,t,Z.formArray);break;case"EVALUATE_RADIO_BLOCK":case"EVALUATE_CHECKBOX_BLOCK":je(e,t,Z.formArray);break;case"DATE":case"TIME":case"DATETIME":case"SEARCH_CASCADE":Z.submitForm[t.val_key]=e}},Fe=(e,t)=>{console.log(t),Z.form[t.val_key]=e},xe=e=>{if(!e||!e.length)return{labelStr:"",labels:[]};const t=e||[],a=[],o=[];return t.forEach((e=>{o.push(e),a.push(e.labelName)})),Z.labelSelectedList=t,{labelStr:a.join(","),labels:o}},Ne=()=>{var e;if(!Z.formArray.find((e=>T(e.type))))return void Be("确认要提交吗?");let{evaluateResultSetting:t}=Z.config;if(!t||!Object.keys(t).length&&!ve.value||we.value)return void Be("确认要结束测评吗?");if("formIframe"==G.openType&&ve.value)return void X("submitNoRequest");let a="确定要提前结束测评吗?";if(fe.value&&(null==(e=ee.value)?void 0:e.getCountdownObj)){const e=ee.value.getCountdownObj(),{setAnswered:t,totalLen:o}=e;t<o?a="存在未作答的题目,确定要提前结束测评吗?":!(null==Z?void 0:Z.showEvaluateCountdown)&&(a="确认要结束测评吗?")}Be(a)},Be=e=>{$.warning({title:"温馨提示",content:()=>C("div",{style:{paddingLeft:"30px"}},e),positiveText:"确定",negativeText:"取消",maskClosable:!1,closable:!1,positiveButtonProps:{type:"primary"},onPositiveClick:()=>{Ie()},onNegativeClick(){}})},Ie=()=>{var e;null==(e=te.value)||e.validate((e=>{var t;if(e){console.log(e);let a=(null==(t=e[0])?void 0:t[0])||{},o=a.field,i=a.message,l=Z.formArray.find((e=>e.databaseTitle===o));return l&&(o=l.title),z.error(o+i),!1}_e()}))},Me=()=>{X("onCloseSetting")};return U({getScaleData:()=>({...Z}),onSubmit:Ne,cancel:Me}),(e,t)=>(l(),n("div",{class:s(["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):(l(),n(c,{key:0},[r(ae).noData?(l(),p(D,{key:0,noDataImg:r(ae).noDataImg,noDataTip:r(ae).noDataTip},null,8,["noDataImg","noDataTip"])):(l(),n(c,{key:1},[r(ve)&&!r(Se)?(l(),p(x,d({key:0},r(ke),{onWriteGuage:Te}),null,16)):(l(),n(c,{key:1},[r(fe)?(l(),p(F,d({key:0,ref_key:"countdownDom",ref:ee},r(Ce),{onCloseEvaluateCountdown:Le}),null,16)):u("v-if",!0),m("div",{class:s(["scale-container",{"scale-container-nopadding":r(ue),"scale-container-hasfooter":r(ge)}]),style:v(r(re))},[r(de)?(l(),p(r(B),{key:0,config:Z.config,maxScore:Z.maxScore},null,8,["config","maxScore"])):u("v-if",!0),f(r(q),{ref_key:"formRef",ref:te,model:Z.form,rules:Z.rules,"require-mark-placement":"left",class:"main"},{default:g((()=>[(l(!0),n(c,null,y(Z.formArray,((e,t)=>(l(),n(c,{key:(e.id||e.seq)+t},[r(ce)(e)?(l(),p(r(R),{key:0,path:e.val_key,"show-label":!r(O)(e.type),class:"c-scle-form-item"},{label:g((()=>[m("span",{class:s({"scale-label-required":r(se)(e)}),innerHTML:r(pe)(e)},null,10,V),r(se)(e)?(l(),n("span",H,"(必填)")):u("v-if",!0),r(ye)(e)?(l(),n("span",W,b(r(ye)(e)),1)):u("v-if",!0),r(ne)(e)?(l(),n("span",{key:2,class:"evalute-tip",onClick:t=>(async e=>{var t;if(Z.evatipMap[e.id])return void De(Z.evatipMap[e.id]);let a="getSubjectAnswer";const o=(null==(t=G.scaleApiConfig)?void 0:t[a])||null;if(!o||"function"!=typeof o)return void z.error(`${a} Is not a function`);let i=await o(e.id);i&&(Z.evatipMap[e.id]||(Z.evatipMap[e.id]=i,De(i)))})(e)},[f(r(P),{"icon-class":"a-xitongtubiaotishi"}),h(" 查看提示 ")],8,J)):u("v-if",!0)])),default:g((()=>[(l(),p(k(e.renderCom),d(r(he)(e,t),{key:(e.id||e.seq)+t,onScaleChange:Pe,onOnChange:t=>((e,t)=>{Z.form[t.val_key]=xe(e)})(t,e),onVodFileList:Fe}),null,16,["onOnChange"])),r(be)(e)?(l(),p(N,{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)?(l(),n("div",Y,[u(" 分享的链接 隐藏取消按钮 "),"guage"!==G.sourceType?(l(),p(r(K),{key:0,onClick:Me},{default:g((()=>[h("取消")])),_:1})):u("v-if",!0),G.isLock?u("v-if",!0):(l(),p(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{X as default};
@@ -1125,7 +1125,6 @@ export declare const componentMap: {
1125
1125
  type: ObjectConstructor;
1126
1126
  default: () => {};
1127
1127
  };
1128
- defList: (ArrayConstructor | StringConstructor)[];
1129
1128
  source: StringConstructor;
1130
1129
  limitNum: {
1131
1130
  default: number;
@@ -1190,7 +1189,6 @@ export declare const componentMap: {
1190
1189
  type: ObjectConstructor;
1191
1190
  default: () => {};
1192
1191
  };
1193
- defList: (ArrayConstructor | StringConstructor)[];
1194
1192
  source: StringConstructor;
1195
1193
  limitNum: {
1196
1194
  default: number;
@@ -1322,7 +1320,6 @@ export declare const componentMap: {
1322
1320
  type: ObjectConstructor;
1323
1321
  default: () => {};
1324
1322
  };
1325
- defList: (ArrayConstructor | StringConstructor)[];
1326
1323
  source: StringConstructor;
1327
1324
  limitNum: {
1328
1325
  default: number;
@@ -1 +1 @@
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
+ 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};
@@ -86,8 +86,7 @@ declare const ShortcutSetter: SFCWithInstall<import("vue").DefineComponent<{
86
86
  message?: string | undefined;
87
87
  } | undefined;
88
88
  option?: {
89
- text: string;
90
- value: any;
89
+ [x: string]: any;
91
90
  keyword?: string | undefined;
92
91
  disabled?: boolean | undefined;
93
92
  children?: any[] | undefined;
@@ -88,8 +88,7 @@ declare const _default: import("vue").DefineComponent<{
88
88
  message?: string | undefined;
89
89
  } | undefined;
90
90
  option?: {
91
- text: string;
92
- value: any;
91
+ [x: string]: any;
93
92
  keyword?: string | undefined;
94
93
  disabled?: boolean | undefined;
95
94
  children?: any[] | undefined;
@@ -5,7 +5,6 @@ declare const VodChunkUpload: SFCWithInstall<import("vue").DefineComponent<{
5
5
  type: ObjectConstructor;
6
6
  default: () => {};
7
7
  };
8
- defList: (ArrayConstructor | StringConstructor)[];
9
8
  source: StringConstructor;
10
9
  limitNum: {
11
10
  default: number;
@@ -70,7 +69,6 @@ declare const VodChunkUpload: SFCWithInstall<import("vue").DefineComponent<{
70
69
  type: ObjectConstructor;
71
70
  default: () => {};
72
71
  };
73
- defList: (ArrayConstructor | StringConstructor)[];
74
72
  source: StringConstructor;
75
73
  limitNum: {
76
74
  default: number;
@@ -202,7 +200,6 @@ declare const VodChunkUpload: SFCWithInstall<import("vue").DefineComponent<{
202
200
  type: ObjectConstructor;
203
201
  default: () => {};
204
202
  };
205
- defList: (ArrayConstructor | StringConstructor)[];
206
203
  source: StringConstructor;
207
204
  limitNum: {
208
205
  default: number;
@@ -3,7 +3,6 @@ declare const _default: import("vue").DefineComponent<{
3
3
  type: ObjectConstructor;
4
4
  default: () => {};
5
5
  };
6
- defList: (ArrayConstructor | StringConstructor)[];
7
6
  source: StringConstructor;
8
7
  limitNum: {
9
8
  default: number;
@@ -68,7 +67,6 @@ declare const _default: import("vue").DefineComponent<{
68
67
  type: ObjectConstructor;
69
68
  default: () => {};
70
69
  };
71
- defList: (ArrayConstructor | StringConstructor)[];
72
70
  source: StringConstructor;
73
71
  limitNum: {
74
72
  default: number;
@@ -200,7 +198,6 @@ declare const _default: import("vue").DefineComponent<{
200
198
  type: ObjectConstructor;
201
199
  default: () => {};
202
200
  };
203
- defList: (ArrayConstructor | StringConstructor)[];
204
201
  source: StringConstructor;
205
202
  limitNum: {
206
203
  default: number;