UNPKG

@jecloud/func

Version:

JECloud 功能库

1 lines 5.69 kB
var e=this&&this.__assign||function(){return e=Object.assign||function(e){for(var n,o=1,t=arguments.length;o<t;o++)for(var i in n=arguments[o])Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i]);return e},e.apply(this,arguments)};import{createVNode as n}from"vue";import{ref as o,computed as t,watch as i}from"vue";import{FuncRefEnum as r,FuncButtonTypeEnum as a}from"../../data/enum";import{useFunc as c}from"../../func/src/hooks/use-func";import{getFuncData as u}from"../../func-util";import{useInjectFunc as s}from"../../func/src/context";import{isEmpty as d,isPromise as l}from"@jecloud/utils";import{Form as f,Hooks as p}from"@jecloud/ui";export function useFuncChildrenField(n){var l=n.props,m=n.context,g=m.expose,T=o(),F=o(!0),I=t((function(){return!(l.readonly||l.disabled)})),R=s(),b=f.useInjectFormItemContext(),y=o(""),E=p.useListeners({props:l}).fireListener,O=c({funcCode:l.funcCode,props:l,context:m}).$func,A=O.action.baseAction,N=A.doInsert4Grid,_=A.getDefaultValues;O.resetFunc=function(){O.doUpdateListIng||T.value.reset()};var $={$func:O,validator:function(e){return void 0===e&&(e={}),e.required&&d(T.value.store.data)?(y.value=e.message,Promise.reject(e.message)):(y.value="",T.value.validate(!0).then((function(e){return e?Promise.reject(e):Promise.resolve()})))},clearValidate:function(){y.value=""},addRecords:function(n){var o=n.records,t=void 0===o?[]:o,i=n.useDefaultValues,r=[];if(void 0===i||i){var c=_({buttonCode:a.GRID_INSERT_BUTTON});t.forEach((function(n){r.push(e(e({},c),n))}))}else r=t;return r.length?N({records:r}).then((function(e){var n=e.insertRecords;return O.getFuncGrid().store.data.forEach((function(e,n){e.SY_ORDERINDEX=n+1})),n})):Promise.resolve([])}};null==b||b.addSlotItem($),g($);var D=l.actionColumn,j="1"==(void 0===D?{}:D).removes;O.setViewRef(r.FUNC_GRID,T),O.setRefMaps(r.FUNC_GRID,T),u(l.funcCode).then((function(){F.value=!1}));return O.doUpdateList=function(e){v({$func:O,bean:e,props:l})},null==R||R.addFuncField(l.funcCode,O),i((function(){return I.value}),(function(e){T.value&&C({$grid:T.value,editable:e,props:l})})),{$func:O,$grid:T,onGridRendered:function(){h({$func:O,props:l,editable:I,fireListener:E,$childField:$}),T.value.store.on("before-load",(function(){T.value.clearScroll()}))},loading:F,editable:I,multiple:j,errorMessage:y}}function v(e){var n,o=e.$func,t=e.bean,i=e.props,r=o.action.baseAction.doUpdateList,a=o.getFuncGrid();if(a&&t){o.doUpdateListIng=!0;var c=o.parentFunc.getFuncData(),u=c.info.pkCode,s=null===(n=o.parentFunc.store.activeBean)||void 0===n?void 0:n[u],l=o.store.getParentInfo(t).values,f=void 0===l?{}:l;f[i.fkCode]=t[c.info.pkCode],a.store.data.forEach((function(e){Object.assign(e,f)}));var p=d(s);return r({showMessage:!1}).then((function(){o.doUpdateListIng=!1,p&&o.resetFunc()}))}return Promise.resolve()}var m={BEFORE_ACTION:"before-action",AFTER_ACTION:"after-action"};function h(o){var t=o.$func,i=o.$childField,r=o.props,c=o.editable,u=o.fireListener,s=t.getFuncGrid(),d=r.actionColumn,f=void 0===d?{}:d,p=f.buttonAlign,v=void 0===p?"right":p,h=f.remove,g=void 0===h?"1":h,T=f.removes,F=void 0===T?"0":T,I=f.add,R=void 0===I?"1":I,b=f.adds,y=void 0===b?"0":b,E=f.addsType,O=void 0===E?"grid":E,A=f.addsConfigInfo,N=function(e,n){var o=n.actionType,i=n.options,r=!1!==u(e,{$fieldFunc:t,$fieldGrid:s,actionType:o,options:i});return l(r)?r:!1!==r?Promise.resolve():Promise.reject()},_=function(e){var n=t.action.baseAction,o=n.doRemove,r=n.doInsert4Multi,c=n.getDefaultValues,u=e.actionType;switch(u){case"add":var s=c({buttonCode:a.GRID_INSERT_BUTTON});N(m.BEFORE_ACTION,{actionType:u,options:{values:s}}).then((function(){i.addRecords({records:[s],useDefaultValues:!1}).then((function(e){N(m.AFTER_ACTION,{actionType:u,options:{records:e}})}))}));break;case"adds":var d={type:O,configInfo:A};N(m.BEFORE_ACTION,{actionType:u,options:d}).then((function(){r(d).then((function(e){var n=e.records;i.addRecords({records:n,useDefaultValues:!1}).then((function(e){N(m.AFTER_ACTION,{actionType:u,options:{records:e}})}))}))}));break;case"remove":var l=e.row;N(m.BEFORE_ACTION,{actionType:u,options:{row:l}}).then((function(){o({row:l}).then((function(){N(m.AFTER_ACTION,{actionType:u,options:{row:l}})}))}));break;case"removes":N(m.BEFORE_ACTION,{actionType:u}).then((function(){o().then((function(){N(m.AFTER_ACTION,{actionType:u})}))}))}},$=["1"==R,"1"==y&&O&&A,"1"==F].filter((function(e){return e})).length,D={width:$>1?20*$+20:40,resizable:!1,align:"center",field:"actionColumn",headerAlign:"center",className:"je-func-children-field-action-cell",headerClassName:"je-func-children-field-action-header",slots:{header:function(){var e=[];return"1"==R&&e.push(n("i",{class:"action-item green fas fa-plus-circle",onClick:function(){return _({actionType:"add"})}},null)),"1"==y&&O&&A&&e.push(n("i",{class:"action-item green fas fa-list-ul",onClick:function(){return _({actionType:"adds",addsType:O,addsConfigInfo:A})}},null)),"1"==F&&e.push(n("i",{class:"action-item red fas fa-trash-alt",onClick:function(){return _({actionType:"removes"})}},null)),e},default:function(o){return"1"==g?n("i",{class:"action-item red fas fa-times-circle",onClick:function(){return _(e({actionType:"remove"},o))}},null):null}}},j=s.getTableColumn().collectColumn;"right"===v?(D.fixed="right",j.push(D)):(D.fixed="left",j.splice(1,0,D)),s.loadColumn(j),C({$grid:s,editable:c.value,props:r})}function C(e){var n=e.$grid,o=e.editable,t=e.props;if(n){var i=t.actionColumn,r=void 0===i?{}:i,a=r.remove,c=void 0===a?"1":a,u=r.removes,s=void 0===u?"0":u,d=r.add,l=void 0===d?"1":d,f=r.adds,p=void 0===f?"0":f,v=n.getColumnByField("actionColumn");!o||"1"!=c&&"1"!=s&&"1"!=l&&"1"!=p?n.hideColumn(v):n.showColumn(v)}}