UNPKG

@jecloud/func

Version:

JECloud 功能库

1 lines 3.82 kB
import{createTextVNode as e,createVNode as t}from"vue";import{nextTick as o,onMounted as r,ref as n}from"vue";import{useRenderer as l}from"./use-renderer";import{useFuncSelectEvents as i}from"../../../func-manager/events/func-select-events";import{Modal as a,Grid as c,Data as u,Panel as s}from"@jecloud/ui";import{useBase as d}from"./use-base";import{FuncDataTypeEnum as f}from"../../../data/enum";import{isNotEmpty as m,encode as p,split as g,isEmpty as v,cloneDeep as h}from"@jecloud/utils";import{loadGrid as C}from"../../../data/api/common";import{FuncColumnTypeEnum as S}from"../../../func-util";export function useFuncDataSelect(e){var t=e.props,n=e.context,c=f.SELECT,u=d({props:t,context:n,type:c}),s=u.$func,m=u.$tree,p=u.$grid,g=t.selectOptions,v=t.funcCode,h=g.querys,C=g.orders,S=g.multiple,$=i({type:"grid",$func:s,modal:a.useInjectModal(),selectOptions:g}),w=$.selectConfig,j=$.onTreeSelectChange,k=$.onGridCellDblclick,D=y({$func:s,$grid:p}),x=D.resultStore,O=D.resultSlot,R=D.onSelectChange,E=D.onLoad;Object.assign(s,{select:k,getResultRecords:function(){return null==x?void 0:x.data}});var F=l({$func:s,$tree:m,$grid:p,funcCode:v,type:c,gridProps:{multiple:null!=S?S:w.multiple,querys:h,orders:C,onCellDblclick:k,onSelectChange:R,onLoad:E},treeProps:{onSelectChange:j}}),I=F.treeSlot,N=F.gridSlot;return r((function(){o((function(){b({$func:s}).then((function(e){var t=e.rows,o=void 0===t?[]:t;null==x||x.loadData(o)}))}))})),{treeSlot:I,gridSlot:N,resultSlot:O}}function b(e){var t=e.$func,o=t.selectConfig,r=t.selectOptions,n=(0,t.getFuncData)().info,l=n.tableCode,i=n.funcCode,a=n.productCode,c=void 0===a?"meta":a,u=n.pkCode,s=n.funcAction,d=r.model,f=r.idProperty,v=void 0===f?u:f,h=o.sourceFields,S=o.targetFields[h.indexOf(v)];if(v&&S){var b=g(d[S],",");if(m(b))return C({pd:c,action:s,params:{tableCode:l,funcCode:i,j_query:p([{code:v,type:"in",value:b}])}})}return Promise.resolve({rows:[]})}function y(o){var r,l,i=o.$func,a=o.$grid,d=i.selectConfig,f=i.selectOptions,m=(0,i.getFuncData)(),p=m.info.pkCode,g=d.multiple,C=d.fieldMaps,b=u.Store.useGridStore({data:[],idProperty:p}),y=m.getData("columns.select"),$=f.name,w=C.targetToSource[$],j=null!==(l=h(null!==(r=m.basic.columns.get(w))&&void 0!==r?r:y.find((function(e){return!Object.values(S).includes(e.type)&&v(e.children)&&!e.hidden}))))&&void 0!==l?l:{};Object.assign(j,{width:void 0,resizable:!1,hidden:!1,visible:!0});var k=[{title:"No.",type:S.SEQ,width:45},j,{width:40,resizable:!1,align:"center",headerAlign:"center",className:"je-func-children-field-action-cell",headerClassName:"je-func-children-field-action-header",slots:{header:function(){return t("i",{class:"action-item red fas fa-trash-alt",onClick:function(){return D()}},null)},default:function(e){var o=e.row;return t("i",{class:"action-item red fas fa-times-circle",onClick:function(){return D(o)}},null)}}}],D=function(e){e?(b.remove(e),a.value.setCheckboxRow(e,!1)):(b.loadData([]),a.value.setAllCheckboxRow(!1))},x=n();return{resultStore:b,onLoad:function(e){var t=e.store.data.filter((function(e){return b.getRecordById(e[p])}));a.value.setSelectRow(t,!0)},onSelectChange:function(e){var t=e.row,o=e.checked,r=e.newValue,n=a.value.store;g||(o=!!r),(t?[t]:n.data).forEach((function(e){var t=e[p];o?g?b.getRecordById(t)||b.insert(e,-1):b.loadData([e]):g?b.getRecordById(t)&&b.remove(e):b.loadData([])}))},resultSlot:function(){return g?t(s.Item,{ref:x,region:"right",split:!0,collapsible:!0,size:"232"},{default:function(){return[t(c,{size:"small",class:"je-grid-func-select-result",columns:k,store:b,bodyBorder:!0,draggable:!0},{tbar:function(){return t("div",{class:"title"},[e("已选数据"),t("span",{class:"red"},[e("("),b.data.length,e("条)")]),t("i",{class:"icon fal fa-chevron-right",onClick:function(){x.value.setExpand(!1)}},null)])}})]}}):null}}}