cnhis-design-vue 3.1.50-beta.0 → 3.1.50-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.
@@ -1 +1 @@
1
- import{defineComponent as e,ref as l,computed as t,reactive as i,watch as o,openBlock as d,createElementBlock as a,normalizeStyle as s,createBlock as n,unref as r,withKeys as u,withModifiers as c,createCommentVNode as f,createElementVNode as h,Fragment as p,renderList as m,withCtx as v,createTextVNode as y,toDisplayString as b,createVNode as k,mergeProps as g,renderSlot as x}from"vue";import{useThemeVars as w,NInput as A,NCheckbox as _,NTooltip as S,NIcon as C,NPopconfirm as W,NButton as E}from"naive-ui";import q from"../../../shared/components/VueDraggable/src/vuedraggable.js";import F from"./components/Row.vue.js";import{isArray as N,cloneDeep as R,isString as j,omit as B}from"lodash-es";import{isDisable as I,setStyle as U,getGroupTree as D}from"./utils/index.js";import{uuidGenerator as O}from"../../../shared/utils/index.js";import{HelpCircleSharp as T}from"@vicons/ionicons5";const V={class:"c-field-set__table-header"},P=h("span",null,"数值越小,优先级越高",-1),K=["tabindex"],L={key:1,class:"c-field-set__table-footer"};var G=e({__name:"FieldSet",props:{fields:{type:Array,default:()=>[]},footerFlag:{type:Boolean,default:!0},type:{type:String,default:"old"},isEdit:{type:Boolean,default:!1},showColumnNames:{type:Array},groupSetting:{type:Object},customColumns:{type:Array,default:()=>[]},showSeq:{type:Boolean,default:!1},showSearch:{type:Boolean,default:!1}},emits:["save","close","reset"],setup(e,{expose:G,emit:H}){const M=e,$={sid:"id",columnName:"name",isShow:"show",isSort:"sort",isFixed:"fixedWay",colWidth:"columnWidth"},z=l(w().value.primaryColor),J=l(""),Q=l(),X=l([]),Y=l([{title:"所有字段",type:"text",field:"title"},{title:"显示",type:"checkbox",checkedAll:!1,disabledAll:!1,field:"show"},{title:"编辑",type:"checkbox",checkedAll:!1,disabledAll:!1,field:"editable"},{title:"必填",type:"checkbox",checkedAll:!1,disabledAll:!1,field:"required"},{title:"排序",type:"checkbox",checkedAll:!1,disabledAll:!1,field:"sort"},{title:"加粗",type:"checkbox",checkedAll:!1,disabledAll:!1,field:"bold"},{title:"默认排序",type:"select",field:"sortDirection"},{title:"固定",type:"select",field:"fixedWay"},{title:"自定义标题",type:"input",field:"alias"},{title:"列宽",type:"inputNumber",field:"columnWidth"}]),Z=t((()=>X.value.flat())),ee=i({columns:Y.value,fieldList:Z.value,onUpdateChecked:function({checked:e,column:l}){const t=!e||ue(l.field);l.checkedAll=!t}}),le={keyword:J.value,idx:0,startIdx:0},te=()=>{H("save",{tableFields:ae()})},ie=()=>{H("close")};function oe(){X.value=de(),re(),H("reset")}function de(){const e=R(M.fields).map((e=>({...e,uuid:O()})));return Object.keys($).forEach((l=>{e.forEach((e=>{"old"==M.type&&Reflect.has(e,l)&&("isFixed"==l?e.fixedWay=1==e[l]?"LEFT":2==e[l]?"RIGHT":"NONE":["isShow","isSort"].includes(l)&&"boolean"!=typeof l?e[$[l]]=1==e[l]:e[$[l]]=e[l],Reflect.deleteProperty(e,l)),e.columnWidth=+e.columnWidth||null,Reflect.has(e,"alias")||(e.alias=""),Reflect.has(e,"bold")||(e.bold=!1)}))})),function(e){if(M.groupSetting){return D(M.groupSetting,e).reduce(((t,i)=>{const o=j(i)?e.find((e=>e.name===i)):l(i.children);return o&&t.push(o),t}),[])}return e;function l(t){const i=[];return t.forEach((t=>{if(t.children)i.push(...l(t.children));else{const l=e.find((e=>e.name===t));l&&i.push(l)}})),i}}(e)}function ae(){let e=[];return e="old"==M.type?Z.value.map(((e,l)=>({id:e.id,field:e.name,visible:e.show,sequence:l,sortable:e.sort,title:e.alias,fixed:e.fixedWay,minWidth:e.columnWidth,bold:e.bold,sortDirection:e.sortDirection,...M.isEdit?{required:e.required,editable:e.editable}:{}}))):Z.value,e.map((e=>B(e,["uuid"])))}function se(){const e=le.keyword!==J.value;let l=J.value?Z.value.findIndex(((l,t)=>{var i;if(null==(i=l.title)?void 0:i.includes(J.value))return!!e||t>le.idx})):0;-1!==l||e||(l=le.startIdx),Q.value.scrollTop=52*l,Object.assign(le,{keyword:J.value,idx:l},e?{startIdx:l}:{})}function ne(e){var l;return!!J.value&&(null==(l=e.title)?void 0:l.includes(J.value))}function re(){var e,l;(null==(e=M.showColumnNames)?void 0:e.length)&&(Y.value=Y.value.filter((e=>{var l,t;return"title"===e.field||(null==(t=null==(l=M.showColumnNames)?void 0:l.includes)?void 0:t.call(l,e.field))}))),(null==(l=M.customColumns)?void 0:l.length)&&Y.value.push(...M.customColumns),M.showSeq&&Y.value.splice(1,0,{title:"排序",type:"text",field:"seq"}),Y.value.forEach((e=>{if(function(e){const l=["editable","required"].includes(e.field);return l&&M.isEdit||!l}(e)&&(e.isShow=!0),"checkbox"===e.type){const l=X.value.flat().every((l=>!Reflect.has(l,e.field)));e.checkedAll=!ue(e.field)&&!l}}))}function ue(e){return X.value.flat().some((l=>!I(l,e)&&!l[e]&&"0001"!=l.id))}return o([()=>M.fields,()=>{var e;return null==(e=M.showColumnNames)?void 0:e.length}],(([e,l])=>{e.length>0&&(X.value=de(),re())}),{immediate:!0,deep:!0}),G({getTableFields:ae}),(l,t)=>(d(),a("div",{class:"c-field-set",style:s({"--row-height":"52px","--primary-color":z.value})},[e.showSearch?(d(),n(r(A),{key:0,class:"c-field-set__search-wrapper",value:J.value,"onUpdate:value":t[0]||(t[0]=e=>J.value=e),valueModifiers:{trim:!0},placeholder:"请输入字段标题",onKeydown:u(c(se,["prevent"]),["enter"])},null,8,["value","onKeydown"])):f("v-if",!0),h("div",V,[(d(!0),a(p,null,m(Y.value,((e,l)=>(d(),a(p,{key:l},[e.isShow?(d(),a("span",{key:0,class:"table-cell",style:s(r(U)(e))},["checkbox"===e.type?(d(),n(r(_),{key:0,checked:e.checkedAll,"onUpdate:checked":[l=>e.checkedAll=l,l=>{return t=l,i=e.field,void Z.value.forEach((e=>{I(e,i)||(e[i]=t)}));var t,i}],disabled:e.disabledAll},{default:v((()=>[y(b(e.title),1)])),_:2},1032,["checked","onUpdate:checked","disabled"])):f("v-if",!0),y(" "+b("checkbox"!==e.type?e.title:"")+" ",1),"sortPriority"===e.field?(d(),n(r(S),{key:1,trigger:"hover"},{trigger:v((()=>[k(r(C),{component:r(T),style:{top:"2px"}},null,8,["component"])])),default:v((()=>[P])),_:1})):f("v-if",!0)],4)):f("v-if",!0)],64)))),128))]),h("div",{class:"c-field-set__table-body",ref_key:"tableBodyRef",ref:Q},[k(r(q),{modelValue:X.value,"onUpdate:modelValue":t[1]||(t[1]=e=>X.value=e),animation:"150","item-key":"id",draggable:".item"},{item:v((({element:e,index:l})=>[e.hide?f("v-if",!0):(d(),a("div",{key:0,class:"item",tabindex:l},[r(N)(e)?(d(!0),a(p,{key:0},m(e,((e,t)=>(d(),n(F,g(ee,{key:t,element:e,idx:l+1,"is-highlight":ne(e)}),null,16,["element","idx","is-highlight"])))),128)):(d(),n(F,g({key:1},ee,{element:e,idx:l+1,"is-highlight":ne(e)}),null,16,["element","idx","is-highlight"]))],8,K))])),_:1},8,["modelValue"])],512),e.footerFlag?(d(),a("div",L,[f(" 底部按钮插槽 "),x(l.$slots,"footer",{},(()=>[k(r(W),{onPositiveClick:oe},{trigger:v((()=>[k(r(E),{style:{"margin-right":"8px"}},{default:v((()=>[y("恢复默认设置")])),_:1})])),default:v((()=>[y(" 确认要恢复系统默认设置吗? ")])),_:1}),k(r(E),{style:{"margin-right":"8px"},onClick:ie},{default:v((()=>[y("取消")])),_:1}),k(r(E),{type:"primary",onClick:te},{default:v((()=>[y("保存")])),_:1})]))])):f("v-if",!0)],4))}});export{G as default};
1
+ import{defineComponent as e,ref as l,computed as t,reactive as i,watch as o,openBlock as d,createElementBlock as a,normalizeStyle as s,createBlock as n,unref as r,withKeys as u,withModifiers as c,createCommentVNode as f,createElementVNode as h,Fragment as p,renderList as m,withCtx as v,createTextVNode as y,toDisplayString as b,createVNode as k,mergeProps as g,renderSlot as x}from"vue";import{useThemeVars as w,NInput as A,NCheckbox as _,NTooltip as S,NIcon as C,NPopconfirm as W,NButton as E}from"naive-ui";import q from"../../../shared/components/VueDraggable/src/vuedraggable.js";import F from"./components/Row.vue.js";import{isArray as N,cloneDeep as R,isString as j,omit as B}from"lodash-es";import{isDisable as I,setStyle as U,getGroupTree as D}from"./utils/index.js";import{uuidGenerator as O}from"../../../shared/utils/index.js";import{HelpCircleSharp as T}from"@vicons/ionicons5";const V={class:"c-field-set__table-header"},P=h("span",null,"数值越小,优先级越高",-1),K=["tabindex"],L={key:1,class:"c-field-set__table-footer"};var G=e({__name:"FieldSet",props:{fields:{type:Array,default:()=>[]},footerFlag:{type:Boolean,default:!0},type:{type:String,default:"old"},isEdit:{type:Boolean,default:!1},showColumnNames:{type:Array},groupSetting:{type:Object},customColumns:{type:Array,default:()=>[]},showSeq:{type:Boolean,default:!1},showSearch:{type:Boolean,default:!1}},emits:["save","close","reset"],setup(e,{expose:G,emit:H}){const M=e,$={sid:"id",columnName:"name",isShow:"show",isSort:"sort",isFixed:"fixedWay",colWidth:"columnWidth"},z=l(w().value.primaryColor),J=l(""),Q=l(),X=l([]),Y=l([{title:"所有字段",type:"text",field:"title"},{title:"显示",type:"checkbox",checkedAll:!1,disabledAll:!1,field:"show"},{title:"编辑",type:"checkbox",checkedAll:!1,disabledAll:!1,field:"editable"},{title:"必填",type:"checkbox",checkedAll:!1,disabledAll:!1,field:"required"},{title:"排序",type:"checkbox",checkedAll:!1,disabledAll:!1,field:"sort"},{title:"加粗",type:"checkbox",checkedAll:!1,disabledAll:!1,field:"bold"},{title:"默认排序",type:"select",field:"sortDirection"},{title:"固定",type:"select",field:"fixedWay"},{title:"自定义标题",type:"input",field:"alias"},{title:"列宽",type:"inputNumber",field:"columnWidth"}]),Z=t((()=>X.value.flat())),ee=i({columns:Y,fieldList:Z,onUpdateChecked:function({checked:e,column:l}){const t=!e||ue(l.field);l.checkedAll=!t}}),le={keyword:J.value,idx:0,startIdx:0},te=()=>{H("save",{tableFields:ae()})},ie=()=>{H("close")};function oe(){X.value=de(),re(),H("reset")}function de(){const e=R(M.fields).map((e=>({...e,uuid:O()})));return Object.keys($).forEach((l=>{e.forEach((e=>{"old"==M.type&&Reflect.has(e,l)&&("isFixed"==l?e.fixedWay=1==e[l]?"LEFT":2==e[l]?"RIGHT":"NONE":["isShow","isSort"].includes(l)&&"boolean"!=typeof l?e[$[l]]=1==e[l]:e[$[l]]=e[l],Reflect.deleteProperty(e,l)),e.columnWidth=+e.columnWidth||null,Reflect.has(e,"alias")||(e.alias=""),Reflect.has(e,"bold")||(e.bold=!1)}))})),function(e){if(M.groupSetting){return D(M.groupSetting,e).reduce(((t,i)=>{const o=j(i)?e.find((e=>e.name===i)):l(i.children);return o&&t.push(o),t}),[])}return e;function l(t){const i=[];return t.forEach((t=>{if(t.children)i.push(...l(t.children));else{const l=e.find((e=>e.name===t));l&&i.push(l)}})),i}}(e)}function ae(){let e=[];return e="old"==M.type?Z.value.map(((e,l)=>({id:e.id,field:e.name,visible:e.show,sequence:l,sortable:e.sort,title:e.alias,fixed:e.fixedWay,minWidth:e.columnWidth,bold:e.bold,sortDirection:e.sortDirection,...M.isEdit?{required:e.required,editable:e.editable}:{}}))):Z.value,e.map((e=>B(e,["uuid"])))}function se(){const e=le.keyword!==J.value;let l=J.value?Z.value.findIndex(((l,t)=>{var i;if(null==(i=l.title)?void 0:i.includes(J.value))return!!e||t>le.idx})):0;-1!==l||e||(l=le.startIdx),Q.value.scrollTop=52*l,Object.assign(le,{keyword:J.value,idx:l},e?{startIdx:l}:{})}function ne(e){var l;return!!J.value&&(null==(l=e.title)?void 0:l.includes(J.value))}function re(){var e,l;(null==(e=M.showColumnNames)?void 0:e.length)&&(Y.value=Y.value.filter((e=>{var l,t;return"title"===e.field||(null==(t=null==(l=M.showColumnNames)?void 0:l.includes)?void 0:t.call(l,e.field))}))),(null==(l=M.customColumns)?void 0:l.length)&&Y.value.push(...M.customColumns),M.showSeq&&Y.value.splice(1,0,{title:"排序",type:"text",field:"seq"}),Y.value.forEach((e=>{if(function(e){const l=["editable","required"].includes(e.field);return l&&M.isEdit||!l}(e)&&(e.isShow=!0),"checkbox"===e.type){const l=X.value.flat().every((l=>!Reflect.has(l,e.field)));e.checkedAll=!ue(e.field)&&!l}}))}function ue(e){return X.value.flat().some((l=>!I(l,e)&&!l[e]&&"0001"!=l.id))}return o([()=>M.fields,()=>{var e;return null==(e=M.showColumnNames)?void 0:e.length}],(([e,l])=>{e.length>0&&(X.value=de(),re())}),{immediate:!0,deep:!0}),G({getTableFields:ae}),(l,t)=>(d(),a("div",{class:"c-field-set",style:s({"--row-height":"52px","--primary-color":z.value})},[e.showSearch?(d(),n(r(A),{key:0,class:"c-field-set__search-wrapper",value:J.value,"onUpdate:value":t[0]||(t[0]=e=>J.value=e),valueModifiers:{trim:!0},placeholder:"请输入字段标题",onKeydown:u(c(se,["prevent"]),["enter"])},null,8,["value","onKeydown"])):f("v-if",!0),h("div",V,[(d(!0),a(p,null,m(Y.value,((e,l)=>(d(),a(p,{key:l},[e.isShow?(d(),a("span",{key:0,class:"table-cell",style:s(r(U)(e))},["checkbox"===e.type?(d(),n(r(_),{key:0,checked:e.checkedAll,"onUpdate:checked":[l=>e.checkedAll=l,l=>{return t=l,i=e.field,void Z.value.forEach((e=>{I(e,i)||(e[i]=t)}));var t,i}],disabled:e.disabledAll},{default:v((()=>[y(b(e.title),1)])),_:2},1032,["checked","onUpdate:checked","disabled"])):f("v-if",!0),y(" "+b("checkbox"!==e.type?e.title:"")+" ",1),"sortPriority"===e.field?(d(),n(r(S),{key:1,trigger:"hover"},{trigger:v((()=>[k(r(C),{component:r(T),style:{top:"2px"}},null,8,["component"])])),default:v((()=>[P])),_:1})):f("v-if",!0)],4)):f("v-if",!0)],64)))),128))]),h("div",{class:"c-field-set__table-body",ref_key:"tableBodyRef",ref:Q},[k(r(q),{modelValue:X.value,"onUpdate:modelValue":t[1]||(t[1]=e=>X.value=e),animation:"150","item-key":"id",draggable:".item"},{item:v((({element:e,index:l})=>[e.hide?f("v-if",!0):(d(),a("div",{key:0,class:"item",tabindex:l},[r(N)(e)?(d(!0),a(p,{key:0},m(e,((e,t)=>(d(),n(F,g(ee,{key:t,element:e,idx:l+1,"is-highlight":ne(e)}),null,16,["element","idx","is-highlight"])))),128)):(d(),n(F,g({key:1},ee,{element:e,idx:l+1,"is-highlight":ne(e)}),null,16,["element","idx","is-highlight"]))],8,K))])),_:1},8,["modelValue"])],512),e.footerFlag?(d(),a("div",L,[f(" 底部按钮插槽 "),x(l.$slots,"footer",{},(()=>[k(r(W),{onPositiveClick:oe},{trigger:v((()=>[k(r(E),{style:{"margin-right":"8px"}},{default:v((()=>[y("恢复默认设置")])),_:1})])),default:v((()=>[y(" 确认要恢复系统默认设置吗? ")])),_:1}),k(r(E),{style:{"margin-right":"8px"},onClick:ie},{default:v((()=>[y("取消")])),_:1}),k(r(E),{type:"primary",onClick:te},{default:v((()=>[y("保存")])),_:1})]))])):f("v-if",!0)],4))}});export{G as default};
@@ -34,6 +34,10 @@ export declare const SELECT: import("vue").DefineComponent<{
34
34
  allowCreate: BooleanConstructor;
35
35
  shouldSave: BooleanConstructor;
36
36
  allowModify: BooleanConstructor;
37
+ cursorPlacement: {
38
+ type: PropType<"end" | "start">;
39
+ default: string;
40
+ };
37
41
  urlConfig: {
38
42
  type: PropType<UrlConfig>;
39
43
  };
@@ -128,6 +132,10 @@ export declare const SELECT: import("vue").DefineComponent<{
128
132
  allowCreate: BooleanConstructor;
129
133
  shouldSave: BooleanConstructor;
130
134
  allowModify: BooleanConstructor;
135
+ cursorPlacement: {
136
+ type: PropType<"end" | "start">;
137
+ default: string;
138
+ };
131
139
  urlConfig: {
132
140
  type: PropType<UrlConfig>;
133
141
  };
@@ -209,4 +217,5 @@ export declare const SELECT: import("vue").DefineComponent<{
209
217
  allowCreate: boolean;
210
218
  useLoading: boolean;
211
219
  shouldSave: boolean;
220
+ cursorPlacement: "end" | "start";
212
221
  }>;
@@ -1 +1 @@
1
- import{defineComponent as e,computed as l,inject as o,useAttrs as t,ref as a,createVNode as u,mergeProps as n,toRaw as r,nextTick as s}from"vue";import{arrayed as i}from"../../../../../shared/utils/index.js";import{HelpCircleSharp as p}from"@vicons/ionicons5";import{cloneDeep as m,isArray as c,isString as d,isObject as v,omit as f}from"lodash-es";import{useCommonInjection as y,useSelectOptionProps as h}from"../../hooks/useCommonInjection.js";import{useComplexOptions as j,useComplexOptionsSpan as g}from"../../hooks/useComplexOptions.js";import{InjectionChangeContextCollector as b,InjectionFormUUID as S}from"../../constants/index.js";import"../../../index.js";import"@formily/core";import"@formily/path";import"@vue/shared";import"@vueuse/core";import{NSelect as C,NTooltip as k,NIcon as w,NTag as F}from"naive-ui";import"date-fns";import{assignUpdateValue as B,assignClearBindVisited as x,createVisitedSetter as O}from"../../utils/schema.js";import{useFormField as A}from"../../hooks/useFormField.js";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{connect as H,mapProps as K}from"@formily/vue";import"./index.js";import{useUrlConfigOptions as L,useAutographOptions as P,useRecommendOptions as E,searchContentMatcher as R}from"../../hooks/useFormRenderOptions.js";const V=H(e({name:"FormSelect",props:{value:{type:[String,Array,Number]},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"},showField:{type:String},allowCreate:Boolean,shouldSave:Boolean,allowModify: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},useLoading:{type:Boolean,default:!0},multiple:{type:Boolean}},emits:["update:value","postRecommend"],setup(e,{slots:B,emit:x}){const H=l({get:()=>e.value,async set(e){x("update:value",e),J(e)}}),K=l((()=>(e.multiple&&e.allowModify&&console.warn("多选模式下不支持allowModify"),!e.multiple&&e.allowModify))),{labelKey:V,valueKey:_,showKey:I,fetchData:N,searchContent:M,fullOptions:W,filterOptions:q,remoteOptions:U,loading:z}=e.urlConfig?L(e,H):P(e,H),{renderComplexOption:D,hasComplexOption:T}=j(e,H),{getRecommend:G,postRecommend:J,sortedOptions:Q}=E(e,q,x,V,_),{field:X,fieldKey:Y}=A();o(b).setContext(Y.value,(e=>({currentOption:m(function(e){const l=ne(W.value);return c(e)?function(e){const o=l.reduce(((e,l)=>(e[l[_.value]]=l,e)),{});return e.map((e=>o[e]))}(e):(o=e,l.find((e=>e[_.value]===o)));var o}(e))})));const Z=async(e="")=>(M.value=e,Promise.allSettled([N(e),G(e)])),{injectValueValidate:$,injectValueWatchFromEmpty:ee,injectValueBindKey:le}=y();ee(H,Z),$(H);const oe=le(H),{menuProps:te,nodeProps:ae}=h();function ue(e){const l=e[V.value];if(!l||!d(l))return"";const o=M.value?R(M.value,l):null,t=o?u("section",null,[o.map(((e,l)=>0!==l&&e?u("span",{style:{color:l%2==0?"var(--n-option-text-color-active)":""}},[e]):null))]):l;return e.desc?u("section",{style:{display:"flex",alignItems:"center",gap:"4px"}},[t,e.desc?u(k,null,{trigger:()=>u(w,{component:p},null),default:()=>e.desc}):null]):t}function ne(l){return e.allowCreate&&M.value&&!l.some((e=>e[V.value]===M.value))?[...l,{[V.value]:M.value,[_.value]:M.value,created:!0,shouldSave:e.shouldSave}]:l}const re=l((()=>ne(K.value?W.value:Q.value))),se=t(),ie=l((()=>{if(e.allowCreate)return H.value;const l=e.multiple&&c(H.value);return W.value.find((e=>l?H.value.includes(e[_.value]):e[_.value]===H.value))?H.value:null})),pe=a(!1);async function me(e){e&&await Z(),pe.value=e}let ce=null;async function de(e,l){H.value=e,ce&&v(l)&&K.value&&(ce.focus(),await s(),ce.value=l[V.value]||"",ce.dispatchEvent(new CustomEvent("input"))),U.value&&l&&i(l).forEach((e=>{if(!v(e))return;const l=e;l.created&&l.shouldSave&&U.value.push(f(r(l),["created","shouldSave"]))}))}const ve=o(S),{getSpan:fe}=g(),ye=O(X,(async e=>{var l,o;K.value&&(ce=e.target,ce&&H.value&&(await s(),ce.value=null!=(o=null==(l=W.value.find((e=>e[_.value]===H.value)))?void 0:l[V.value])?o:"",ce.dispatchEvent(new CustomEvent("input"))))}));function he(e){if(!K.value)return;if(ce=e.target,!ce)return;if(!ce.value)return H.value=null;const l=W.value.find((e=>e[V.value]===ce.value));l?H.value=l[_.value]:(M.value=ce.value,H.value=ce.value)}function je({option:l,handleClose:o}){var t;const a=null!=(t=I.value&&l[I.value])?t:l[V.value];return e.multiple?u(F,{closable:!0,onClose:e=>{e.stopPropagation(),o()}},{default:()=>a}):a}function ge(l){return u(C,n({key:oe.value,multiple:e.multiple,remote:!0,filterable:!0,loading:z.value,value:ie.value,onUpdateValue:de,"menu-props":te,"node-props":ae,labelField:V.value,valueField:_.value,options:re.value,onSearch:Z,show:pe.value,"onUpdate:show":me,onFocus:ye,onBlur:he,renderLabel:ue,renderTag:je},l,se),B)}return()=>{var e,l;if(!T.value)return ge();const o=null!=(l=null==(e=X.value.decoratorProps)?void 0:e.span)?l:6,t=fe(ve,X.value.address);return u("section",{class:"form-render__selectChildField",style:{"--column":t+o}},[ge({class:"form-render__selectChildFieldItem",style:{"--form-item-column":o}}),W.value.map((e=>D({option:e,value:H.value,valueKey:_.value,labelKey:V.value,childFieldStrategy:"checked",renderLabel:!1,attrs:{class:"form-render__selectChildFieldItem",style:{"--form-item-column":t}}})))])}}}),K({dataSource:"options"},B,x));export{V as SELECT};
1
+ import{defineComponent as e,computed as l,inject as t,useAttrs as o,ref as a,createVNode as u,mergeProps as n,toRaw as r,nextTick as s}from"vue";import{arrayed as i}from"../../../../../shared/utils/index.js";import{HelpCircleSharp as p}from"@vicons/ionicons5";import{promiseTimeout as m}from"@vueuse/shared";import{cloneDeep as c,isArray as d,isString as v,isObject as f,omit as y}from"lodash-es";import{useCommonInjection as h,useSelectOptionProps as g}from"../../hooks/useCommonInjection.js";import{useComplexOptions as S,useComplexOptionsSpan as j}from"../../hooks/useComplexOptions.js";import{InjectionChangeContextCollector as b,InjectionFormUUID as C}from"../../constants/index.js";import"../../../index.js";import"@formily/core";import"@formily/path";import"@vue/shared";import"@vueuse/core";import{NSelect as w,NTooltip as k,NIcon as F,NTag as B}from"naive-ui";import"date-fns";import{assignUpdateValue as x,assignClearBindVisited as O,createVisitedSetter as A}from"../../utils/schema.js";import{useFormField as H}from"../../hooks/useFormField.js";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{connect as P,mapProps as R}from"@formily/vue";import"./index.js";import{useUrlConfigOptions as K,useAutographOptions as L,useRecommendOptions as E,searchContentMatcher as V}from"../../hooks/useFormRenderOptions.js";const _=P(e({name:"FormSelect",props:{value:{type:[String,Array,Number]},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"},showField:{type:String},allowCreate:Boolean,shouldSave:Boolean,allowModify:Boolean,cursorPlacement:{type:String,default:"end"},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},useLoading:{type:Boolean,default:!0},multiple:{type:Boolean}},emits:["update:value","postRecommend"],setup(e,{slots:x,emit:O}){const P=l({get:()=>e.value,async set(e){O("update:value",e),Q(e)}}),R=l((()=>(e.multiple&&e.allowModify&&console.warn("多选模式下不支持allowModify"),!e.multiple&&e.allowModify))),{labelKey:_,valueKey:I,showKey:N,fetchData:M,searchContent:W,fullOptions:q,filterOptions:U,remoteOptions:z,loading:D}=e.urlConfig?K(e,P):L(e,P),{renderComplexOption:T,hasComplexOption:G}=S(e,P),{getRecommend:J,postRecommend:Q,sortedOptions:X}=E(e,U,O,_,I),{field:Y,fieldKey:Z}=H();t(b).setContext(Z.value,(e=>({currentOption:c(function(e){const l=re(q.value);return d(e)?function(e){const t=l.reduce(((e,l)=>(e[l[I.value]]=l,e)),{});return e.map((e=>t[e]))}(e):(t=e,l.find((e=>e[I.value]===t)));var t}(e))})));const $=async(e="")=>(W.value=e,Promise.allSettled([M(e),J(e)])),{injectValueValidate:ee,injectValueWatchFromEmpty:le,injectValueBindKey:te}=h();le(P,$),ee(P);const oe=te(P),{menuProps:ae,nodeProps:ue}=g();function ne(e){const l=e[_.value];if(!l||!v(l))return"";const t=W.value?V(W.value,l):null,o=t?u("section",null,[t.map(((e,l)=>0!==l&&e?u("span",{style:{color:l%2==0?"var(--n-option-text-color-active)":""}},[e]):null))]):l;return e.desc?u("section",{style:{display:"flex",alignItems:"center",gap:"4px"}},[o,e.desc?u(k,null,{trigger:()=>u(F,{component:p},null),default:()=>e.desc}):null]):o}function re(l){return e.allowCreate&&W.value&&!l.some((e=>e[_.value]===W.value))?[...l,{[_.value]:W.value,[I.value]:W.value,created:!0,shouldSave:e.shouldSave}]:l}const se=l((()=>re(R.value?q.value:X.value))),ie=o(),pe=l((()=>{if(e.allowCreate)return P.value;const l=e.multiple&&d(P.value);return q.value.find((e=>l?P.value.includes(e[I.value]):e[I.value]===P.value))?P.value:null})),me=a(!1);async function ce(e){e&&await $(),me.value=e}let de=null;async function ve(l,t){P.value=l,de&&f(t)&&R.value&&(de.focus(),await s(),de.value=t[_.value]||"",de.dispatchEvent(new CustomEvent("input")),"start"===e.cursorPlacement&&de.setSelectionRange(0,0)),z.value&&t&&i(t).forEach((e=>{if(!f(e))return;const l=e;l.created&&l.shouldSave&&z.value.push(y(r(l),["created","shouldSave"]))}))}const fe=t(C),{getSpan:ye}=j(),he=A(Y,(async l=>{var t,o,a;R.value&&(de=l.target,de&&P.value&&(await s(),de.value=null!=(a=null!=(o=null==(t=q.value.find((e=>e[I.value]===P.value)))?void 0:t[_.value])?o:P.value)?a:"",de.dispatchEvent(new CustomEvent("input")),"start"===e.cursorPlacement&&(await m(0),de.setSelectionRange(0,0))))}));function ge(e){if(!R.value)return;if(de=e.target,!de)return;if(!de.value)return P.value=null;const l=q.value.find((e=>e[_.value]===de.value));l?P.value=l[I.value]:(W.value=de.value,P.value=de.value)}function Se({option:l,handleClose:t}){var o;const a=null!=(o=N.value&&l[N.value])?o:l[_.value];return e.multiple?u(B,{closable:!0,onClose:e=>{e.stopPropagation(),t()}},{default:()=>a}):a}function je(l){return u(w,n({key:oe.value,multiple:e.multiple,remote:!0,filterable:!0,loading:D.value,value:pe.value,onUpdateValue:ve,"menu-props":ae,"node-props":ue,labelField:_.value,valueField:I.value,options:se.value,onSearch:$,show:me.value,"onUpdate:show":ce,onFocus:he,onBlur:ge,renderLabel:ne,renderTag:Se},l,ie),x)}return()=>{var e,l;if(!G.value)return je();const t=null!=(l=null==(e=Y.value.decoratorProps)?void 0:e.span)?l:6,o=ye(fe,Y.value.address);return u("section",{class:"form-render__selectChildField",style:{"--column":o+t}},[je({class:"form-render__selectChildFieldItem",style:{"--form-item-column":t}}),q.value.map((e=>T({option:e,value:P.value,valueKey:I.value,labelKey:_.value,childFieldStrategy:"checked",renderLabel:!1,attrs:{class:"form-render__selectChildFieldItem",style:{"--form-item-column":o}}})))])}}}),R({dataSource:"options"},x,O));export{_ as SELECT};
@@ -1 +1 @@
1
- import{createVNode as e,nextTick as l}from"vue";import{jsonParse as r,traverse as t,arrayed as i}from"../../../../../shared/utils/index.js";import{isObject as o}from"@vue/shared";import{isArray as n,first as u,isString as s}from"lodash-es";import"../../../index.js";import{IhoTableRenderHelper as a,isCompatibleColumn as d,parseRichContent as f}from"../../utils/index.js";import c from"./filter.vue.js";import{defineTablePlugin as v}from"../../hooks/useTablePlugin.js";function p(){const p="filterRenderPlugin";return v({name:p,vxe(l){l.renderer.mixin({[p]:{showFilterFooter:!1,renderFilter:(l,r)=>e(c,{payload:r,key:r.column.field},null)}})},apply(e){let c=[];e.fieldHooks.field.tap(p,((e,l,t,{$table:i})=>{var c,v,m,h,g,b,k,y;const x=null==(c=e.editRender)?void 0:c.props;if(!o(x))return e;const C=r(x.fieldSetting||"");if(!a.hasFilter(x))return e;e.editRender={...e.editRender,props:{...null==(v=e.editRender)?void 0:v.props,sortable:e.sortable}},e.filterRender={name:p};const F=null==(m=i.value)?void 0:m.getColumnByField(e.field),R={};F&&n(F.filters)&&F.filters.forEach((e=>{e&&(R[`${e.label}_${e.value}`]=e.checked)}));let $=null!=(b=null==(g=null==(h=C.mapping)?void 0:h.mappingFiled)?void 0:g.reduce(((e,l)=>{var r;const t=u(l.value);return o(t)&&e.push({label:t.key,value:t.value,data:null!=(r=t.keyword)?r:t.value}),e}),[]))?b:[];if(d(x)&&($=null!=(k=x.options)?k:[]),e.filters=$.reduce(((e,l)=>(o(l)&&e.push({...l,checked:!!R[`${l.label}_${l.value}`]}),e)),[]),!e.filterMethod){const l=null==(y=t.treeConfig)?void 0:y.children;e.filterMethod=function({option:e,column:r,row:t}){if(l&&n(t[l])&&t[l].length)return!1;const i=t[r.field];if(!s(i))return!1;if(i===e.value||i===e.label)return!0;const{value:o,change_text:u}=f(i);return u===e.label||o===e.value}}return t.filterConfig={iconMatch:"iho-table--iconfont iho-table-icon-filter",iconNone:"iho-table--iconfont iho-table-icon-filter",...t.filterConfig},e})),e.fieldHooks.fieldList.tap(p,(e=>c=e)),e.fieldHooks.fieldEnd.tapPromise(p,(async(e,{$table:r})=>{var i;try{if(await l(),!r.value)return;const n=null!=(i=r.value.getColumns())?i:[],u=[];if(t(c,(e=>{n.find((l=>l.field===e.field))||u.push(e)})),!u.length)return;setTimeout((()=>{var l,t;if(null==(l=e.sortConfig)?void 0:l.multiple){const e=null!=(t=r.value.getColumns())?t:[],l=u.concat(e).reduce(((e,l)=>{var r;const t=null==(r=l.editRender)?void 0:r.props;return o(t)&&m(t.isOrder)&&e.push({field:l.field,order:t.isOrder}),e}),[]);r.value.sort(l)}else u.reverse().some((e=>{var l;const t=null==(l=e.editRender)?void 0:l.props;if(o(t)&&m(t.isOrder))return e&&r.value.sort(e.field,t.isOrder),!0}))}),100)}finally{c=[]}})),e.exposeHooks.expose.tap(p,((e,l,{$table:r})=>(Object.assign(e,{setSort(e,l){r.value&&r.value.sort(e,l)},setFilter(e,l){if(!r.value)return;const t=r.value.getColumnByField(e);if(!t||!n(t.filters))return;const o=i(l);t.filters.forEach((e=>{e.checked=o.includes(e.value)})),r.value.updateData()}}),e)))}})}function m(e){return["asc","desc",null].includes(e)}export{p as filterRenderPlugin};
1
+ import{createVNode as e,nextTick as l}from"vue";import{jsonParse as t,traverse as i,arrayed as r}from"../../../../../shared/utils/index.js";import{isObject as n}from"@vue/shared";import{isArray as o,isString as u,first as s}from"lodash-es";import"../../../index.js";import{IhoTableRenderHelper as d,isCompatibleColumn as a,parseRichContent as f}from"../../utils/index.js";import c from"./filter.vue.js";import{defineTablePlugin as v}from"../../hooks/useTablePlugin.js";function p(){const p="filterRenderPlugin";return v({name:p,vxe(l){l.renderer.mixin({[p]:{showFilterFooter:!1,renderFilter:(l,t)=>e(c,{payload:t,key:t.column.field},null)}})},apply(e){let c=[];e.fieldHooks.field.tap(p,((e,l,i,{$table:r})=>{var c,v,m,h,g,b,k,y;const x=null==(c=e.editRender)?void 0:c.props;if(!n(x))return e;if(!d.hasFilter(x))return e;e.editRender={...e.editRender,props:{...null==(v=e.editRender)?void 0:v.props,sortable:e.sortable}},e.filterRender={name:p};const C=null==(m=r.value)?void 0:m.getColumnByField(e.field),F={};let R;if(C&&o(C.filters)&&C.filters.forEach((e=>{e&&(F[`${e.label}_${e.value}`]=e.checked)})),a(x))R=null!=(h=x.options)?h:[];else{R=null!=(k=null==(b=null==(g=(n(x.fieldSetting)?x.fieldSetting:u(x.fieldSetting)?t(x.fieldSetting||""):{}).mapping)?void 0:g.mappingFiled)?void 0:b.reduce(((e,l)=>{var t;const i=s(l.value);return n(i)&&e.push({label:i.key,value:i.value,data:null!=(t=i.keyword)?t:i.value}),e}),[]))?k:[]}if(e.filters=R.reduce(((e,l)=>(n(l)&&e.push({...l,checked:!!F[`${l.label}_${l.value}`]}),e)),[]),!e.filterMethod){const l=null==(y=i.treeConfig)?void 0:y.children;e.filterMethod=function({option:e,column:t,row:i}){if(l&&o(i[l])&&i[l].length)return!1;const r=i[t.field];if(!u(r))return!1;if(r===e.value||r===e.label)return!0;const{value:n,change_text:s}=f(r);return s===e.label||n===e.value}}return i.filterConfig={iconMatch:"iho-table--iconfont iho-table-icon-filter",iconNone:"iho-table--iconfont iho-table-icon-filter",...i.filterConfig},e})),e.fieldHooks.fieldList.tap(p,(e=>c=e)),e.fieldHooks.fieldEnd.tapPromise(p,(async(e,{$table:t})=>{var r;try{if(await l(),!t.value)return;const o=null!=(r=t.value.getColumns())?r:[],u=[];if(i(c,(e=>{o.find((l=>l.field===e.field))||u.push(e)})),!u.length)return;setTimeout((()=>{var l,i;if(null==(l=e.sortConfig)?void 0:l.multiple){const e=null!=(i=t.value.getColumns())?i:[],l=u.concat(e).reduce(((e,l)=>{var t;const i=null==(t=l.editRender)?void 0:t.props;return n(i)&&m(i.isOrder)&&e.push({field:l.field,order:i.isOrder}),e}),[]);t.value.sort(l)}else u.reverse().some((e=>{var l;const i=null==(l=e.editRender)?void 0:l.props;if(n(i)&&m(i.isOrder))return e&&t.value.sort(e.field,i.isOrder),!0}))}),100)}finally{c=[]}})),e.exposeHooks.expose.tap(p,((e,l,{$table:t})=>(Object.assign(e,{setSort(e,l){t.value&&t.value.sort(e,l)},setFilter(e,l){if(!t.value)return;const i=t.value.getColumnByField(e);if(!i||!o(i.filters))return;const n=r(l);i.filters.forEach((e=>{e.checked=n.includes(e.value)})),t.value.updateData()}}),e)))}})}function m(e){return["asc","desc",null].includes(e)}export{p as filterRenderPlugin};
@@ -54,12 +54,12 @@ export declare namespace IhoTableLowCodeField {
54
54
  type FieldSetting = Partial<{
55
55
  mergedFeildExpression: string;
56
56
  notParticipatingSearch: IHO_TABLE_STRING_STATUS;
57
- mapping: {
57
+ mapping: Partial<{
58
58
  type: string;
59
59
  mappingFiled: Array<{
60
- value: Array<Record<'key' | 'value' | 'keyword', string>>;
60
+ value: Array<Partial<Record<'key' | 'value' | 'keyword', string>>>;
61
61
  }>;
62
- };
62
+ }>;
63
63
  }>;
64
64
  type FilterSetting = Partial<{
65
65
  daterange: boolean;
@@ -101,7 +101,7 @@ export declare type LowCodeTableFieldItem = {
101
101
  isSort: MaybeString<0 | 1>;
102
102
  isOrder: MaybeString<0> | VxeTablePropTypes.SortOrder;
103
103
  formType: string;
104
- fieldSetting: string;
104
+ fieldSetting: string | IhoTableLowCodeField.FieldSetting;
105
105
  filterCapacity: number;
106
106
  notParticipatingSearch: 0 | 1;
107
107
  componentProps: AnyObject;
@@ -1 +1 @@
1
- var e="@cnhis-design-vue/shared",i="3.1.50-beta.0",s="index.ts",n={"naive-ui":"^2.30.0",vue:"^3.2.0"},a={"@vicons/ionicons5":"^0.12.0","lodash-es":"^4.17.21",moment:"^2.29.1","video.js":"^7.19.2","videojs-contrib-hls":"^5.15.0",viewerjs:"^1.10.5","xe-utils":"^3.5.4"},d={name:e,version:"3.1.50-beta.0",private:!0,main:"index.ts",peerDependencies:n,dependencies:a};export{d as default,a as dependencies,s as main,e as name,n as peerDependencies,i as version};
1
+ var e="@cnhis-design-vue/shared",i="3.1.50-beta.2",s="index.ts",n={"naive-ui":"^2.30.0",vue:"^3.2.0"},a={"@vicons/ionicons5":"^0.12.0","lodash-es":"^4.17.21",moment:"^2.29.1","video.js":"^7.19.2","videojs-contrib-hls":"^5.15.0",viewerjs:"^1.10.5","xe-utils":"^3.5.4"},d={name:e,version:"3.1.50-beta.2",private:!0,main:"index.ts",peerDependencies:n,dependencies:a};export{d as default,a as dependencies,s as main,e as name,n as peerDependencies,i as version};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cnhis-design-vue",
3
- "version": "3.1.50-beta.0",
3
+ "version": "3.1.50-beta.2",
4
4
  "license": "ISC",
5
5
  "module": "./es/components/index.js",
6
6
  "main": "./es/components/index.js",
@@ -63,5 +63,5 @@
63
63
  "iOS 7",
64
64
  "last 3 iOS versions"
65
65
  ],
66
- "gitHead": "184f72d6422422e3fab486ddd9e44b5d4b69ac4e"
66
+ "gitHead": "8d51cebadcaaa5ecb90e2beec223e419b39f4b5d"
67
67
  }