UNPKG

@jecloud/ui

Version:

JECloud UI库,基于ant-design-vue封装

1 lines 1.99 kB
var e=this&&this.__assign||function(){return e=Object.assign||function(e){for(var o,n=1,r=arguments.length;n<r;n++)for(var t in o=arguments[n])Object.prototype.hasOwnProperty.call(o,t)&&(e[t]=o[t]);return e},e.apply(this,arguments)};import{useListeners as o,useField as n}from"../../../hooks";import{pick as r,get as t,cloneDeep as i,toQuerysTemplate as l}from"@jecloud/utils";import{useInjectFormItemContext as s}from"../../../form/src/context";export function useFuncSelect(c){var u,a,f=c.props,d=c.context,p=c.value,v=c.type,g=["tree","grid","user"];if(g.includes(v)){var m=o({props:f,context:d}).fireListener,y=n({props:f,context:d}),j=y.func,I=y.getModel,b=y.setModel,h=y.getName,w=y.getLabel,F=y.resetModel,O=y.getModelOwner;if(j){var x=s(),M=null!==(a=null===(u=f.selectOptions)||void 0===u?void 0:u.configInfo)&&void 0!==a?a:f.configInfo,q=j.Field.parseConfigInfo({configInfo:M}),S=j.FuncUtil.useInjectFunc();return{onReset:function(){m("reset",e({},O())),F(q.targetFields)},onSelect:function(){var o,n;if(f.readonly)return!1;var s=I(),c=i(Object.assign(r(f,["idProperty","configInfo","querys","orders","product","selectExp","multiple"]),null!==(o=f.selectOptions)&&void 0!==o?o:{}));!1!==m("before-select",e(e({},O()),{options:c}))&&(c.querys&&l({querys:c.querys,model:s,parentModel:null===(n=null==S?void 0:S.parentFunc)||void 0===n?void 0:n.store.activeBean}),j.SelectWindow.show(e(e({value:p.value,name:null==x?void 0:x.name,model:s,title:w(),type:v},c),{callback:function(o){var n,r=o.rows,i=o.config,l=m("select",e(e({},O()),{rows:r}));if(!1!==l){var s=j.Field.getConfigInfo({type:v,configInfo:i,rows:r});b(s);var c=h(),u=null===(n=i.fieldMaps)||void 0===n?void 0:n.targetToSource[c];u&&(p.value=r.map((function(e){var o;return t(e,u)||t(null!==(o=e.bean)&&void 0!==o?o:{},u)})).join(","))}return l}})))}}}console.error("未安装@jecloud/func,无法使用功能选择字段!")}else console.error("功能选择字段类型不在支持的列表中:"+[g.join(",")])}