@jecloud/func
Version:
JECloud 功能库
1 lines • 3.35 kB
JavaScript
var e,n=this&&this.__assign||function(){return n=Object.assign||function(e){for(var n,t=1,o=arguments.length;t<o;t++)for(var r in n=arguments[t])Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r]);return e},n.apply(this,arguments)};import{createVNode as t}from"vue";import{computed as o,resolveComponent as r,h as u}from"vue";import{Hooks as a,Button as l}from"@jecloud/ui";import{FuncFieldTypeEnum as c,QueryConnectorEnum as i}from"../../../func-util";import{pick as p}from"@jecloud/utils";import{parseConfigInfo as E}from"../../../field/src/config-info";export function useFormQueryItem(e){var p=e.props,E=e.context,v=E.emit,I=a.useModelValue({props:p,context:E}),m=o((function(){return[i.IN,i.NOT_IN].includes(I.value.type)})),N=o((function(){return[i.BETWEEN].includes(I.value.type)})),d=o((function(){return[i.LIKE].includes(I.value.type)})),y=p.field,_=f(y.field),L=_.component,C=_.componentAttr,S=o((function(){return i.LIKE===I.value.type?c.INPUT.component:L})),U=T(L);I.value.type=(I.value.type||U[0].value).trim();var g=function(){switch(I.value.sort){case"ASC":I.value.sort="DESC";break;case"DESC":I.value.sort="";break;case"":I.value.sort="ASC"}v("sort-click",{code:y.name,type:I.value.sort})},O=o((function(){switch(I.value.sort){case"ASC":return"fas fa-sort-alpha-down";case"DESC":return"fas fa-sort-alpha-up";default:return"fas fa-sort-alt"}}));return{sortIcon:O,onSortClick:g,fieldSlot:function(e){var t=e?"betweenValue":"value",o=s(y.field,t);return!e||N.value?u(r(S.value),n(n({},C),{configInfo:o,editable:y.editable||d.value,model:I.value,value:I.value[t],multiple:m.value,"onUpdate:value":function(e){I.value[t]=e},class:"query-value",getPopupContainer:function(){return document.body}})):null},sortSlot:function(){return y.enableSort?t(l,{class:"query-order",icon:O.value,onClick:g},null):null},model:I,queryTypes:U}}function f(e){var n,t=c.getComponent(e.xtype),o=p(e,["configInfo","selectExp","querys"]);if([c.CHECKBOX_GROUP.type,c.RADIO_GROUP.type].includes(e.xtype)?t=c.SELECT.component:[c.TEXTAREA.type,c.INPUT_CODE].includes(e.xtype)&&(t=c.INPUT.type),[c.SELECT.type,c.INPUT_SELECT_GRID.type,c.INPUT_SELECT_TREE.type,c.INPUT_SELECT_USER.type].includes(e.xtype)){var r=E({configInfo:e.configInfo});o.configInfo=r.code;var u=null===(n=r.fieldMaps)||void 0===n?void 0:n.targetToSource[e.name];u&&(o.configInfo+=","+o.name+","+u)}return{component:t,componentAttr:o}}function s(e,n){var t,o=e.configInfo;if([c.SELECT.type,c.INPUT_SELECT_GRID.type,c.INPUT_SELECT_TREE.type,c.INPUT_SELECT_USER.type].includes(e.xtype)){var r=E({configInfo:e.configInfo});o=r.code;var u=null===(t=r.fieldMaps)||void 0===t?void 0:t.targetToSource[e.name];u&&(o+=","+n+","+u)}return o}function T(e){return[c.SELECT.component,c.INPUT_SELECT_TREE.component].includes(e)?[i.EQ,i.IN,i.NOT_IN,i.NOT_NULL].map((function(e){return{label:v[e],value:e}})):[c.INPUT_NUMBER.component,c.DATE_PICKER.component,c.TIME_PICKER.component].includes(e)?[i.BETWEEN,i.EQ,i.LIKE,i.GT,i.GE,i.LT,i.LE,i.NOT_IN,i.NOT_NULL].map((function(e){return{label:v[e],value:e}})):[i.LIKE,i.EQ,i.IN,i.NOT_IN,i.NOT_NULL].map((function(e){return{label:v[e],value:e}}))}var v=((e={})[i.LIKE]="模糊",e[i.EQ]="精确",e[i.IN]="包含",e[i.NOT_IN]="不包含",e[i.NOT_NULL]="非空",e[i.BETWEEN]="区间",e[i.GT]="大于",e[i.GE]="大于等于",e[i.LT]="小于",e[i.LE]="小于等于",e);