vxe-pc-ui 4.9.31 → 4.9.32
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.
- package/es/button/src/button.js +1 -1
- package/es/date-picker/src/date-picker.js +1 -1
- package/es/date-range-picker/src/date-range-picker.js +1 -1
- package/es/form/render/index.js +1 -1
- package/es/form/src/form.js +4 -4
- package/es/form/src/itemInfo.js +4 -4
- package/es/icon/style.css +1 -1
- package/es/image-preview/index.js +1 -1
- package/es/modal/src/modal.js +1 -1
- package/es/pager/src/pager.js +2 -2
- package/es/select/src/select.js +25 -2
- package/es/split/src/split.js +5 -5
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table-select/src/table-select.js +23 -10
- package/es/tabs/src/tabs.js +2 -2
- package/es/tree/src/tree.js +7 -3
- package/es/tree-select/src/tree-select.js +16 -4
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/es/upload/src/upload.js +2 -2
- package/lib/button/src/button.js +1 -1
- package/lib/button/src/button.min.js +1 -1
- package/lib/date-picker/src/date-picker.js +1 -1
- package/lib/date-picker/src/date-picker.min.js +1 -1
- package/lib/date-range-picker/src/date-range-picker.js +1 -1
- package/lib/date-range-picker/src/date-range-picker.min.js +1 -1
- package/lib/form/render/index.js +1 -1
- package/lib/form/render/index.min.js +1 -1
- package/lib/form/src/form.js +4 -4
- package/lib/form/src/form.min.js +1 -1
- package/lib/form/src/itemInfo.js +4 -4
- package/lib/form/src/itemInfo.min.js +1 -1
- package/lib/icon/style/style.css +1 -1
- package/lib/icon/style/style.min.css +1 -1
- package/lib/image-preview/index.js +1 -1
- package/lib/image-preview/index.min.js +1 -1
- package/lib/index.umd.js +103 -45
- package/lib/index.umd.min.js +1 -1
- package/lib/modal/src/modal.js +1 -1
- package/lib/modal/src/modal.min.js +1 -1
- package/lib/pager/src/pager.js +2 -2
- package/lib/pager/src/pager.min.js +1 -1
- package/lib/select/src/select.js +29 -2
- package/lib/select/src/select.min.js +1 -1
- package/lib/split/src/split.js +5 -5
- package/lib/split/src/split.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table-select/src/table-select.js +24 -10
- package/lib/table-select/src/table-select.min.js +1 -1
- package/lib/tabs/src/tabs.js +2 -2
- package/lib/tabs/src/tabs.min.js +1 -1
- package/lib/tree/src/tree.js +6 -2
- package/lib/tree/src/tree.min.js +1 -1
- package/lib/tree-select/src/tree-select.js +17 -4
- package/lib/tree-select/src/tree-select.min.js +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/upload/src/upload.js +2 -2
- package/lib/upload/src/upload.min.js +1 -1
- package/package.json +1 -1
- package/packages/button/src/button.ts +1 -1
- package/packages/date-picker/src/date-picker.ts +1 -1
- package/packages/date-range-picker/src/date-range-picker.ts +1 -1
- package/packages/form/render/index.ts +1 -1
- package/packages/form/src/form.ts +4 -4
- package/packages/form/src/itemInfo.ts +4 -4
- package/packages/image-preview/index.ts +2 -1
- package/packages/modal/src/modal.ts +1 -1
- package/packages/pager/src/pager.ts +2 -2
- package/packages/select/src/select.ts +25 -2
- package/packages/split/src/split.ts +5 -5
- package/packages/table-select/src/table-select.ts +24 -11
- package/packages/tabs/src/tabs.ts +2 -2
- package/packages/tree/src/tree.ts +6 -3
- package/packages/tree-select/src/tree-select.ts +16 -4
- package/packages/upload/index.ts +1 -0
- package/packages/upload/src/upload.ts +2 -2
- package/types/components/select.d.ts +2 -0
- package/types/components/table-select.d.ts +3 -1
- package/types/components/tree-select.d.ts +2 -0
- package/types/components/tree.d.ts +8 -0
- /package/es/icon/{iconfont.1758099912007.ttf → iconfont.1758173429533.ttf} +0 -0
- /package/es/icon/{iconfont.1758099912007.woff → iconfont.1758173429533.woff} +0 -0
- /package/es/icon/{iconfont.1758099912007.woff2 → iconfont.1758173429533.woff2} +0 -0
- /package/es/{iconfont.1758099912007.ttf → iconfont.1758173429533.ttf} +0 -0
- /package/es/{iconfont.1758099912007.woff → iconfont.1758173429533.woff} +0 -0
- /package/es/{iconfont.1758099912007.woff2 → iconfont.1758173429533.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1758099912007.ttf → iconfont.1758173429533.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1758099912007.woff → iconfont.1758173429533.woff} +0 -0
- /package/lib/icon/style/{iconfont.1758099912007.woff2 → iconfont.1758173429533.woff2} +0 -0
- /package/lib/{iconfont.1758099912007.ttf → iconfont.1758173429533.ttf} +0 -0
- /package/lib/{iconfont.1758099912007.woff → iconfont.1758173429533.woff} +0 -0
- /package/lib/{iconfont.1758099912007.woff2 → iconfont.1758173429533.woff2} +0 -0
|
@@ -43,6 +43,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
43
43
|
columns: Array,
|
|
44
44
|
options: Array,
|
|
45
45
|
optionProps: Object,
|
|
46
|
+
lazyOptions: Array,
|
|
46
47
|
zIndex: Number,
|
|
47
48
|
size: {
|
|
48
49
|
type: String,
|
|
@@ -161,8 +162,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
161
162
|
});
|
|
162
163
|
const computeGridOpts = (0, _vue.computed)(() => {
|
|
163
164
|
return Object.assign({}, (0, _ui.getConfig)().tableSelect.gridConfig, props.gridConfig, {
|
|
164
|
-
data: undefined
|
|
165
|
-
columns: undefined
|
|
165
|
+
data: undefined
|
|
166
166
|
});
|
|
167
167
|
});
|
|
168
168
|
const computeSelectGridOpts = (0, _vue.computed)(() => {
|
|
@@ -202,15 +202,26 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
202
202
|
});
|
|
203
203
|
const computeSelectLabel = (0, _vue.computed)(() => {
|
|
204
204
|
const {
|
|
205
|
-
modelValue
|
|
205
|
+
modelValue,
|
|
206
|
+
lazyOptions
|
|
206
207
|
} = props;
|
|
207
208
|
const {
|
|
208
209
|
fullRowMaps
|
|
209
210
|
} = reactData;
|
|
211
|
+
const valueField = computeValueField.value;
|
|
210
212
|
const labelField = computeLabelField.value;
|
|
211
213
|
return (_xeUtils.default.isArray(modelValue) ? modelValue : [modelValue]).map(val => {
|
|
212
214
|
const cacheItem = fullRowMaps[val];
|
|
213
|
-
|
|
215
|
+
if (cacheItem) {
|
|
216
|
+
return cacheItem.item[labelField];
|
|
217
|
+
}
|
|
218
|
+
if (lazyOptions) {
|
|
219
|
+
const lazyItem = lazyOptions.find(item => item[valueField] === val);
|
|
220
|
+
if (lazyItem) {
|
|
221
|
+
return lazyItem[labelField];
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
return val;
|
|
214
225
|
}).join(', ');
|
|
215
226
|
});
|
|
216
227
|
const computePopupWrapperStyle = (0, _vue.computed)(() => {
|
|
@@ -294,6 +305,9 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
294
305
|
});
|
|
295
306
|
};
|
|
296
307
|
const loadTableColumn = columns => {
|
|
308
|
+
if (!columns || !columns.length) {
|
|
309
|
+
return;
|
|
310
|
+
}
|
|
297
311
|
const {
|
|
298
312
|
multiple
|
|
299
313
|
} = props;
|
|
@@ -346,12 +360,12 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
346
360
|
rowid = getRowUniqueId();
|
|
347
361
|
}
|
|
348
362
|
if (keyMaps[rowid]) {
|
|
349
|
-
(0, _log.errLog)('vxe.error.repeatKey', [rowKeyField
|
|
363
|
+
(0, _log.errLog)('vxe.error.repeatKey', [`[table-select] ${rowKeyField}`, rowid]);
|
|
350
364
|
}
|
|
351
365
|
keyMaps[rowid] = true;
|
|
352
366
|
const value = item[valueField];
|
|
353
367
|
if (rowMaps[value]) {
|
|
354
|
-
(0, _log.errLog)('vxe.error.repeatKey', [valueField
|
|
368
|
+
(0, _log.errLog)('vxe.error.repeatKey', [`[table-select] ${valueField}`, value]);
|
|
355
369
|
}
|
|
356
370
|
rowMaps[value] = {
|
|
357
371
|
item,
|
|
@@ -678,7 +692,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
678
692
|
ref: refGrid,
|
|
679
693
|
rowConfig: rowOpts,
|
|
680
694
|
data: options,
|
|
681
|
-
columns: tableColumns,
|
|
695
|
+
columns: tableColumns.length ? tableColumns : selectGridOpts.columns,
|
|
682
696
|
height: '100%',
|
|
683
697
|
autoResize: true,
|
|
684
698
|
onRadioChange: radioChangeEvent,
|
|
@@ -696,12 +710,12 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
696
710
|
cacheDataMap();
|
|
697
711
|
});
|
|
698
712
|
(0, _vue.watch)(() => props.columns, val => {
|
|
699
|
-
loadTableColumn(val
|
|
713
|
+
loadTableColumn(val);
|
|
700
714
|
});
|
|
701
715
|
(0, _vue.watch)(() => props.modelValue, val => {
|
|
702
716
|
updateModel(val);
|
|
703
717
|
});
|
|
704
|
-
loadTableColumn(props.columns
|
|
718
|
+
loadTableColumn(props.columns);
|
|
705
719
|
cacheDataMap();
|
|
706
720
|
(0, _vue.onMounted)(() => {
|
|
707
721
|
const {
|
|
@@ -725,7 +739,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
725
739
|
});
|
|
726
740
|
(0, _vue.nextTick)(() => {
|
|
727
741
|
if (!VxeTableGridComponent) {
|
|
728
|
-
(0, _log.errLog)('vxe.error.reqComp', ['vxe-grid']);
|
|
742
|
+
(0, _log.errLog)('vxe.error.reqComp', ['[table-select] vxe-grid']);
|
|
729
743
|
}
|
|
730
744
|
});
|
|
731
745
|
(0, _vue.provide)('$xeTableSelect', $xeTableSelect);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0,exports.getRowUniqueId=getRowUniqueId;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_vn=require("../../ui/src/vn"),_utils=require("../../ui/src/utils"),_log=require("../../ui/src/log"),_input=_interopRequireDefault(require("../../input/src/input"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function getRowUniqueId(){return _xeUtils.default.uniqueId("row_")}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTableSelect",props:{modelValue:[String,Number,Array],clearable:Boolean,placeholder:{type:String,default:()=>_xeUtils.default.eqNull((0,_ui.getConfig)().tableSelect.placeholder)?(0,_ui.getI18n)("vxe.base.pleaseSelect"):(0,_ui.getConfig)().tableSelect.placeholder},readonly:{type:Boolean,default:null},loading:Boolean,disabled:{type:Boolean,default:null},multiple:Boolean,className:[String,Function],prefixIcon:String,placement:String,columns:Array,options:Array,optionProps:Object,zIndex:Number,size:{type:String,default:()=>(0,_ui.getConfig)().tableSelect.size||(0,_ui.getConfig)().size},popupConfig:Object,gridConfig:Object,transfer:{type:Boolean,default:null}},emits:["update:modelValue","change","clear","blur","focus","click","form-submit","form-reset","form-collapse","page-change"],setup(h,e){const{emit:a,slots:C}=e,y=_ui.VxeUI.getComponent("vxe-grid"),l=(0,_vue.inject)("$xeModal",null),i=(0,_vue.inject)("$xeDrawer",null),V=(0,_vue.inject)("$xeTable",null),u=(0,_vue.inject)("$xeForm",null),n=(0,_vue.inject)("xeFormItemInfo",null);var t=_xeUtils.default.uniqueId();const $=(0,_ui.useSize)(h)["computeSize"],E=(0,_vue.ref)(),T=(0,_vue.ref)(),L=(0,_vue.ref)(),I=(0,_vue.ref)(),w=(0,_vue.ref)(),S=(0,_vue.reactive)({initialized:!1,tableColumns:[],fullOptionList:[],fullRowMaps:{},panelIndex:0,panelStyle:{},panelPlacement:null,triggerFocusPanel:!1,visiblePanel:!1,isAniVisible:!1,isActivated:!1}),o={},k={refElem:E},N=(0,_vue.computed)(()=>{var e=h["readonly"];return null===e?!!u&&u.props.readonly:e}),P=(0,_vue.computed)(()=>{var e=h["disabled"];return null===e?!!u&&u.props.disabled:e}),q=(0,_vue.computed)(()=>{var e=h["transfer"];if(null===e){var t=(0,_ui.getConfig)().select.transfer;if(_xeUtils.default.isBoolean(t))return t;if(V||l||i||u)return!0}return e}),r=(0,_vue.computed)(()=>h.optionProps||{}),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0,exports.getRowUniqueId=getRowUniqueId;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_vn=require("../../ui/src/vn"),_utils=require("../../ui/src/utils"),_log=require("../../ui/src/log"),_input=_interopRequireDefault(require("../../input/src/input"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function getRowUniqueId(){return _xeUtils.default.uniqueId("row_")}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTableSelect",props:{modelValue:[String,Number,Array],clearable:Boolean,placeholder:{type:String,default:()=>_xeUtils.default.eqNull((0,_ui.getConfig)().tableSelect.placeholder)?(0,_ui.getI18n)("vxe.base.pleaseSelect"):(0,_ui.getConfig)().tableSelect.placeholder},readonly:{type:Boolean,default:null},loading:Boolean,disabled:{type:Boolean,default:null},multiple:Boolean,className:[String,Function],prefixIcon:String,placement:String,columns:Array,options:Array,optionProps:Object,lazyOptions:Array,zIndex:Number,size:{type:String,default:()=>(0,_ui.getConfig)().tableSelect.size||(0,_ui.getConfig)().size},popupConfig:Object,gridConfig:Object,transfer:{type:Boolean,default:null}},emits:["update:modelValue","change","clear","blur","focus","click","form-submit","form-reset","form-collapse","page-change"],setup(h,e){const{emit:a,slots:C}=e,y=_ui.VxeUI.getComponent("vxe-grid"),l=(0,_vue.inject)("$xeModal",null),i=(0,_vue.inject)("$xeDrawer",null),V=(0,_vue.inject)("$xeTable",null),u=(0,_vue.inject)("$xeForm",null),n=(0,_vue.inject)("xeFormItemInfo",null);var t=_xeUtils.default.uniqueId();const $=(0,_ui.useSize)(h)["computeSize"],E=(0,_vue.ref)(),T=(0,_vue.ref)(),L=(0,_vue.ref)(),I=(0,_vue.ref)(),w=(0,_vue.ref)(),S=(0,_vue.reactive)({initialized:!1,tableColumns:[],fullOptionList:[],fullRowMaps:{},panelIndex:0,panelStyle:{},panelPlacement:null,triggerFocusPanel:!1,visiblePanel:!1,isAniVisible:!1,isActivated:!1}),o={},k={refElem:E},N=(0,_vue.computed)(()=>{var e=h["readonly"];return null===e?!!u&&u.props.readonly:e}),P=(0,_vue.computed)(()=>{var e=h["disabled"];return null===e?!!u&&u.props.disabled:e}),q=(0,_vue.computed)(()=>{var e=h["transfer"];if(null===e){var t=(0,_ui.getConfig)().select.transfer;if(_xeUtils.default.isBoolean(t))return t;if(V||l||i||u)return!0}return e}),r=(0,_vue.computed)(()=>h.optionProps||{}),O=(0,_vue.computed)(()=>{var e=c.value;return Object.assign({},e.rowConfig,{isCurrent:!0})}),s=(0,_vue.computed)(()=>{return O.value.keyField||"_X_ROW_KEY"}),F=(0,_vue.computed)(()=>{return r.value.label||"label"}),v=(0,_vue.computed)(()=>{return r.value.value||"value"}),U=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().tableSelect.popupConfig,h.popupConfig)),c=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().tableSelect.gridConfig,h.gridConfig,{data:void 0})),B=(0,_vue.computed)(()=>{var e=c.value,t=e["proxyConfig"];if(t){var l=t.ajax;if(l&&l.query){var i=_xeUtils.default.clone(t,!0);const a=l.query;if(a){const u=t.response||t.props||{};Object.assign(i.ajax,{query(e,...t){return Promise.resolve(a(e,...t)).then(e=>{var t=u.list,t=(t?_xeUtils.default.isFunction(t)?t({data:e,$table:null,$grid:null,$gantt:null}):_xeUtils.default.get(e,t):e)||[];return f(t||[]),e})}})}return Object.assign({},e,{proxyConfig:i})}}return e}),M=(0,_vue.computed)(()=>{const{modelValue:e,lazyOptions:l}=h,i=S["fullRowMaps"],a=v.value,u=F.value;return(_xeUtils.default.isArray(e)?e:[e]).map(t=>{var e=i[t];if(e)return e.item[u];if(l){e=l.find(e=>e[a]===t);if(e)return e[u]}return t}).join(", ")}),D=(0,_vue.computed)(()=>{var{height:e,width:t}=U.value,l={};return t&&(l.width=(0,_dom.toCssUnit)(t)),e&&(l.height=(0,_dom.toCssUnit)(e)),l}),K={},j={xID:t,props:h,context:e,reactData:S,getRefMaps:()=>k,getComputeMaps:()=>K};const A={},d=(["form-submit","form-reset","form-collapse","page-change"].forEach(t=>{A[(0,_vn.getOnName)(_xeUtils.default.camelCase(t))]=e=>{d(t,e,e.$event)}}),(e,t,l)=>{a(e,(0,_ui.createEvent)(l,{$tableSelect:j},t))});t={dispatchEvent:d};const Z=e=>{const t=S["fullRowMaps"],l=[];return(_xeUtils.default.eqNull(e)?[]:_xeUtils.default.isArray(e)?e:[e]).forEach(e=>{e=t[e];e&&l.push(e.item)}),l},p=l=>{const i=h["multiple"];(0,_vue.nextTick)(()=>{var e,t=w.value;t&&(e=Z(l)).length&&(i?t.setCheckboxRow(e,!0):t.setRadioRow(e[0]))})},g=e=>{if(e&&e.length){var i=h["multiple"];const a=[];let t=!1,l=!1;e.forEach(e=>{t||"radio"!==e.type?l||"checkbox"!==e.type||(l=!0):t=!0,a.push(e)}),i?l||a.unshift({type:"checkbox",width:70}):t||a.unshift({type:"radio",width:70}),S.tableColumns=a}},f=e=>{var t=h["options"];const u=s.value,n=v.value;var l=c.value["treeConfig"];const o={},r={};l||_xeUtils.default.arrayEach(e||t||[],(e,t,l)=>{let i=(e=>{e=e[s.value];return e?encodeURIComponent(e):""})(e);i=i||getRowUniqueId(),r[i]&&(0,_log.errLog)("vxe.error.repeatKey",["[table-select] "+u,i]),r[i]=!0;var a=e[n];o[a]&&(0,_log.errLog)("vxe.error.repeatKey",["[table-select] "+n,a]),o[a]={item:e,index:t,items:l,parent:null,nodes:[]}}),S.fullOptionList=e||t||[],S.fullRowMaps=o,p(h.modelValue)},_=()=>{const l=h["placement"],i=S["panelIndex"],a=E.value,u=I.value,n=q.value;var e=()=>{var e=(0,_dom.updatePanelPlacement)(a,u,{placement:l,teleportTo:n}),t=Object.assign(e.style,{zIndex:i});S.panelStyle=t,S.panelPlacement=e.placement};return e(),(0,_vue.nextTick)().then(e)},m=()=>{var e=h["loading"],t=P.value;e||t||(o.vpTimeout&&clearTimeout(o.vpTimeout),o.hpTimeout&&clearTimeout(o.hpTimeout),S.initialized||(S.initialized=!0),S.isActivated=!0,S.isAniVisible=!0,o.vpTimeout=setTimeout(()=>{S.visiblePanel=!0,p(h.modelValue),o.vpTimeout=void 0},10),(e=h.zIndex)?S.panelIndex=e:S.panelIndex<(0,_utils.getLastZIndex)()&&(S.panelIndex=(0,_utils.nextZIndex)()),_())},b=()=>{S.visiblePanel=!1,o.vpTimeout&&clearTimeout(o.vpTimeout),o.hpTimeout&&clearTimeout(o.hpTimeout),o.hpTimeout=setTimeout(()=>{S.isAniVisible=!1,o.hpTimeout=void 0},350)},x=(e,t,l)=>{var i;i=t,a("update:modelValue",i),t!==h.modelValue&&(d("change",{value:t,row:l,option:l},e),u)&&n&&u.triggerItemEvent(e,n.itemConfig.field,t)},W=(e,t)=>{x(e,t,null),d("clear",{value:t},e)},X=(e,t)=>{W(t,null),b()},Y=e=>{var t=S["visiblePanel"];P.value||t&&(t=I.value,((0,_dom.getEventTargetNode)(e,t).flag?_:b)())},G=e=>{var t,l,i=S["visiblePanel"];P.value||(t=E.value,l=I.value,S.isActivated=(0,_dom.getEventTargetNode)(e,t).flag||(0,_dom.getEventTargetNode)(e,l).flag,i&&!S.isActivated&&b())},H=()=>{var{visiblePanel:e,isActivated:t}=S;e&&b(),t&&(S.isActivated=!1),(e||t)&&(e=T.value)&&e.blur()},J=()=>{var e=S["visiblePanel"];e&&_()},Q=e=>{P.value||S.visiblePanel||(S.triggerFocusPanel=!0,m(),setTimeout(()=>{S.triggerFocusPanel=!1},150)),d("focus",{},e)},ee=e=>{z(e),d("click",{},e)},te=e=>{S.isActivated=!1,d("blur",{},e)},z=e=>{e=e.$event;e.preventDefault(),S.triggerFocusPanel?S.triggerFocusPanel=!1:(S.visiblePanel?b:m)()},le=e=>{var{$event:e,row:t}=e,l=t[v.value];x(e,l,t),b()},R=e=>{var{$grid:e,$event:t,row:l}=e;const i=v.value;e&&(e=e.getCheckboxRecords().map(e=>e[i]),x(t,e,l))},ie=e=>{R(e)};Object.assign(j,t,{});return(0,_vue.watch)(()=>h.options,()=>{f()}),(0,_vue.watch)(()=>h.columns,e=>{g(e)}),(0,_vue.watch)(()=>h.modelValue,e=>{p(e)}),g(h.columns),f(),(0,_vue.onMounted)(()=>{var e=h["gridConfig"];e&&e.proxyConfig&&!1!==e.proxyConfig.autoLoad&&(S.initialized=!0),_ui.globalEvents.on(j,"mousewheel",Y),_ui.globalEvents.on(j,"mousedown",G),_ui.globalEvents.on(j,"blur",H),_ui.globalEvents.on(j,"resize",J)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(j,"mousewheel"),_ui.globalEvents.off(j,"mousedown"),_ui.globalEvents.off(j,"blur"),_ui.globalEvents.off(j,"resize")}),(0,_vue.nextTick)(()=>{y||(0,_log.errLog)("vxe.error.reqComp",["[table-select] vxe-grid"])}),(0,_vue.provide)("$xeTableSelect",j),j.renderVN=()=>{var{className:e,options:t,loading:l}=h,{initialized:i,isActivated:a,isAniVisible:u,visiblePanel:n,tableColumns:o}=S,r=$.value,s=P.value,v=M.value,c=q.value,d=N.value,p=U.value["className"],g=B.value,f=O.value,_=D.value,m=C.header,b=C.footer;const x=C.prefix;return d?(0,_vue.h)("div",{ref:E,class:["vxe-table-select--readonly",e]},[(0,_vue.h)("span",{class:"vxe-table-select-label"},v)]):(0,_vue.h)("div",{ref:E,class:["vxe-table-select",e?_xeUtils.default.isFunction(e)?e({$tableSelect:j}):e:"",{["size--"+r]:r,"is--visible":n,"is--disabled":s,"is--loading":l,"is--active":a}]},[(0,_vue.h)(_input.default,{ref:T,clearable:h.clearable,placeholder:l?(0,_ui.getI18n)("vxe.select.loadingText"):h.placeholder,readonly:!0,disabled:s,type:"text",prefixIcon:h.prefixIcon,suffixIcon:l?(0,_ui.getIcon)().TABLE_SELECT_LOADED:n?(0,_ui.getIcon)().TABLE_SELECT_OPEN:(0,_ui.getIcon)().TABLE_SELECT_CLOSE,modelValue:l?"":v,onClear:X,onClick:ee,onFocus:Q,onBlur:te,onSuffixClick:z},x?{prefix:()=>x({})}:{}),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!c||!i},[(0,_vue.h)("div",{ref:I,class:["vxe-table--ignore-clear vxe-table-select--panel",p?_xeUtils.default.isFunction(p)?p({$tableSelect:j}):p:"",{["size--"+r]:r,"is--transfer":c,"ani--leave":!l&&u,"ani--enter":!l&&n}],placement:S.panelPlacement,style:S.panelStyle},i?[(0,_vue.h)("div",{class:"vxe-table-select--panel-wrapper"},[m?(0,_vue.h)("div",{class:"vxe-table-select--panel-header"},m({})):(0,_ui.renderEmptyElement)(j),(0,_vue.h)("div",{class:"vxe-table-select--panel-body"},[(0,_vue.h)("div",{ref:L,class:"vxe-table-select-grid--wrapper",style:_},[y?(0,_vue.h)(y,Object.assign(Object.assign(Object.assign({},g),A),{class:"vxe-table-select--grid",ref:w,rowConfig:f,data:t,columns:o.length?o:g.columns,height:"100%",autoResize:!0,onRadioChange:le,onCheckboxChange:R,onCheckboxAll:ie}),Object.assign({},C,{header:void 0,footer:void 0,prefixSlot:void 0})):(0,_ui.renderEmptyElement)(j)])]),b?(0,_vue.h)("div",{class:"vxe-table-select--panel-footer"},b({})):(0,_ui.renderEmptyElement)(j)])]:[])])])},j},render(){return this.renderVN()}});
|
package/lib/tabs/src/tabs.js
CHANGED
|
@@ -665,11 +665,11 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
665
665
|
return handlePrevNext(true);
|
|
666
666
|
},
|
|
667
667
|
prevTab() {
|
|
668
|
-
(0, _log.warnLog)('vxe.error.delFunc', ['prevTab', 'prev']);
|
|
668
|
+
(0, _log.warnLog)('vxe.error.delFunc', ['[tabs] prevTab', 'prev']);
|
|
669
669
|
return tabsMethods.prev();
|
|
670
670
|
},
|
|
671
671
|
nextTab() {
|
|
672
|
-
(0, _log.warnLog)('vxe.error.delFunc', ['nextTab', 'next']);
|
|
672
|
+
(0, _log.warnLog)('vxe.error.delFunc', ['[tabs] nextTab', 'next']);
|
|
673
673
|
return tabsMethods.next();
|
|
674
674
|
}
|
|
675
675
|
};
|
package/lib/tabs/src/tabs.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_ui=require("../../ui"),_vn=require("../../ui/src/vn"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_log=require("../../ui/src/log"),_xeUtils=_interopRequireDefault(require("xe-utils")),_loading=_interopRequireDefault(require("../../loading/src/loading"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const scrollbarOffsetSize=20;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTabs",props:{modelValue:[String,Number,Boolean],options:Array,width:[String,Number],height:[String,Number],destroyOnClose:{type:Boolean,default:()=>(0,_ui.getConfig)().tabs.destroyOnClose},titleWidth:[String,Number],titleAlign:[String,Number],type:{type:String,default:()=>(0,_ui.getConfig)().tabs.type},position:{type:String,default:()=>(0,_ui.getConfig)().tabs.position},showClose:Boolean,showBody:{type:Boolean,default:!0},padding:{type:Boolean,default:()=>(0,_ui.getConfig)().tabs.padding},trigger:String,beforeChangeMethod:Function,closeConfig:Object,refreshConfig:Object,size:{type:String,default:()=>(0,_ui.getConfig)().tabs.size||(0,_ui.getConfig)().size},beforeCloseMethod:Function},emits:["update:modelValue","change","tab-change","tab-change-fail","tab-close","tab-close-fail","tab-click","tab-load"],setup(d,e){const{slots:w,emit:i}=e;var E=_xeUtils.default.uniqueId();const t=(0,_vue.inject)("$xeTabs",null),h=(0,_ui.useSize)(d)["computeSize"],c=(0,_vue.ref)(),S=(0,_vue.ref)(),u=(0,_vue.ref)(),v=(0,_vue.ref)(),O=(0,_vue.reactive)({staticTabs:[],activeName:null,initNames:[],lintLeft:0,lintTop:0,lintWidth:0,lintHeight:0,scrollbarWidth:0,scrollbarHeight:0,isTabOver:!1,resizeFlag:1,cacheTabMaps:{}}),m={slTimeout:void 0},M={refElem:c},B=(0,_vue.computed)(()=>{var e=d["type"];return e||"default"}),z=(0,_vue.computed)(()=>{var e=d["position"];return e||"top"}),L=(0,_vue.computed)(()=>{var e=z.value;return"left"===e||"right"===e}),q=(0,_vue.computed)(()=>{var{lintLeft:e,lintTop:t,lintWidth:a,lintHeight:i}=O;return L.value?{top:t+"px",height:i+"px"}:{left:e+"px",width:a+"px"}}),U=(0,_vue.computed)(()=>{var{width:e,height:t}=d,a={};return e&&(a.width=(0,_dom.toCssUnit)(e)),t&&(a.height=(0,_dom.toCssUnit)(t)),a}),W=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().tabs.closeConfig,d.closeConfig)),H=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().tabs.refreshConfig,d.refreshConfig)),g=(0,_vue.computed)(()=>{var e=d["options"];return(e||[]).filter(e=>a(e))}),b=(0,_vue.computed)(()=>{var e=O["staticTabs"];return e.filter(e=>a(e))});var I=(0,_vue.computed)(()=>t?t.reactData.resizeFlag:null);const V={},A={xID:E,props:d,context:e,reactData:O,getRefMaps:()=>M,getComputeMaps:()=>V},a=e=>{e=e.permissionCode;return!(e&&!_ui.permission.checkVisible(e))},k=(e,t)=>e&&(_xeUtils.default.isString(e)&&(e=w[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[],F=()=>{var e,t,a,i,l,s=L.value,n=S.value,o=u.value,r=v.value;n&&({scrollLeft:n,scrollTop:e,clientWidth:t,clientHeight:a,scrollWidth:i,scrollHeight:l}=n,o&&(0<(s?e:n)?(0,_dom.addClass):(0,_dom.removeClass))(o,"scrolling--middle"),r)&&((s?a<l-Math.ceil(e):t<i-Math.ceil(n))?(0,_dom.addClass):(0,_dom.removeClass))(r,"scrolling--middle")},p=()=>{var e=()=>{const t=O["activeName"];var e,a,i,l,s,n=B.value,o=g.value,r=b.value,u=S.value,v=L.value;let c=0,d=0,h=0,m=0,p=0,f=0,_=!1;u&&(r=_xeUtils.default.findIndexOf(r.length?r:o,e=>e.name===t),{children:o,offsetWidth:u,scrollWidth:e,offsetHeight:i,scrollHeight:l,clientWidth:a,clientHeight:s}=u,p=u-a,f=i-s,v?(_=l!==s,-1<r&&(u=o[r])&&(i=u.clientHeight,v=u.clientWidth,m="card"===n?(c=v,d=i,u.offsetTop):"border-card"===n?(c=v,d=i,u.offsetTop-1):(d=Math.max(4,Math.floor(.6*i)),u.offsetTop+Math.floor((i-d)/2)))):(_=e!==a,-1<r&&(l=o[r])&&(s=l.clientWidth,h="card"===n?(c=s+1,l.offsetLeft):"border-card"===n?(c=s,l.offsetLeft-1):(c=Math.max(4,Math.floor(.6*s)),l.offsetLeft+Math.floor((s-c)/2))))),O.scrollbarWidth=p,O.scrollbarHeight=f,O.lintLeft=h,O.lintTop=m,O.lintWidth=c,O.lintHeight=d,O.isTabOver=_,F()};e(),(0,_vue.nextTick)(e)},f=(e,t,a)=>{i(e,(0,_ui.createEvent)(a,{$tabs:A},t))},o=e=>{i("update:modelValue",e)},r=(e,t)=>{var a=O["initNames"];return!(!e||a.includes(e)||(f("tab-load",{name:e},t),a.push(e),0))},l=e=>{let i=null;const l={};if(e&&e.length){let a=!1;i=d.modelValue,e.forEach(e=>{var{name:e,preload:t}=e||{};e&&(l[""+e]={loading:!1},i===e&&(a=!0),t)&&r(e,null)}),a||(i=e[0].name,r(i,null),o(i))}O.activeName=i,O.cacheTabMaps=l},R=(t,a)=>{var e=d["trigger"],i=d.beforeChangeMethod||(0,_ui.getConfig)().tabs.beforeChangeMethod;const l=O["activeName"],s=a["name"],n=s;f("tab-click",{name:s},t),"manual"!==e&&s!==l&&Promise.resolve(!i||i({$tabs:A,name:s,oldName:l,newName:s,option:a})).then(e=>{e?(O.activeName=s,o(n),r(s,t),f("change",{value:n,name:s,oldName:l,newName:s,option:a},t),f("tab-change",{value:n,name:s,oldName:l,newName:s,option:a},t)):f("tab-change-fail",{value:n,name:s,oldName:l,newName:s,option:a},t)}).catch(()=>{f("tab-change-fail",{value:n,name:s,oldName:l,newName:s,option:a},t)})},P=(e,t)=>{e.stopPropagation();var{activeName:e,cacheTabMaps:a}=O,i=t["name"],l=H.value["queryMethod"];const s=i?a[""+i]:null;s&&(l?s.loading||(s.loading=!0,Promise.resolve(l({$tabs:A,value:e,name:i,option:t})).finally(()=>{s.loading=!1})):(0,_log.errLog)("vxe.error.notFunc",["refresh-config.queryMethod"]))},$=(t,e,a,i)=>{t.stopPropagation();var l=O["activeName"],s=W.value.beforeMethod||d.beforeCloseMethod||(0,_ui.getConfig)().tabs.beforeCloseMethod;const n=e["name"],o=l;let r=o;l===n&&(l=a<i.length-1?i[a+1]:i[a-1],r=l?l.name:null),Promise.resolve(!s||s({$tabs:A,value:o,name:n,nextName:r,option:e})).then(e=>{e?f("tab-close",{value:o,name:n,nextName:r},t):f("tab-close-fail",{value:o,name:n,nextName:r},t)}).catch(()=>{f("tab-close-fail",{value:o,name:n,nextName:r},t)})},s=e=>{var t=L.value,a=S.value;if(a){var{clientWidth:a,clientHeight:i}=a,t=Math.floor(.75*(t?i:a));{var c=e,i=t,a=m["slTimeout"];const d=L.value;let o=d?0:i,r=d?i:0,u=6,v=35;a&&(clearTimeout(a),m.slTimeout=void 0);const h=()=>{var e,t,a,i,l,s,n=S.value;0<u&&(u--,n)&&({clientWidth:e,clientHeight:t,scrollWidth:a,scrollHeight:i,scrollLeft:l,scrollTop:s}=n,d?(r=Math.floor(r/2),0<c?t+s<i&&(n.scrollTop+=r,v-=4,m.slTimeout=setTimeout(h,v)):0<s&&(n.scrollTop-=r,v-=4,m.slTimeout=setTimeout(h,v))):(o=Math.floor(o/2),0<c?e+l<a&&(n.scrollLeft+=o,v-=4,m.slTimeout=setTimeout(h,v)):0<l&&(n.scrollLeft-=o,v-=4,m.slTimeout=setTimeout(h,v))),p())};h()}}},j=()=>{s(-1)},D=()=>{s(1)},n=o=>{const r=g.value,u=b.value,v=L.value;return(0,_vue.nextTick)().then(()=>{var e,t,a,i,l,s,n=S.value;n&&(-1<(i=_xeUtils.default.findIndexOf(u.length?u:r,e=>e.name===o))&&({scrollLeft:e,scrollTop:s,clientWidth:t,clientHeight:l,children:a}=n,a=a[i])&&(v?(0<(l=(i=a.offsetTop)+a.clientHeight-(s+l))&&(n.scrollTop+=l),i<s&&(n.scrollTop=i)):(0<(s=(l=a.offsetLeft)+a.clientWidth-(e+t))&&(n.scrollLeft+=s),l<e&&(n.scrollLeft=l))),p())})},_=t=>{const a=O["activeName"];var i=g.value,l=b.value,l=l.length?l:i,i=_xeUtils.default.findIndexOf(l,e=>e.name===a);if(-1<i){let e=null;t?i<l.length-1&&(e=l[i+1]):0<i&&(e=l[i-1]),e&&(l=t=e.name,O.activeName=t,o(l),r(t,null))}return(0,_vue.nextTick)()},x={dispatchEvent:f,scrollToTab:n,prev(){return _(!1)},next(){return _(!0)},prevTab(){return(0,_log.warnLog)("vxe.error.delFunc",["prevTab","prev"]),x.prev()},nextTab(){return(0,_log.warnLog)("vxe.error.delFunc",["nextTab","next"]),x.next()}};Object.assign(A,x,{});const T=h=>{const{titleWidth:m,titleAlign:p,showClose:f,closeConfig:_,refreshConfig:g}=d,{activeName:b,scrollbarWidth:e,scrollbarHeight:t,isTabOver:a,cacheTabMaps:x}=O,T=B.value,y=z.value;var i=L.value,l=q.value,s=w.tabPrefix||w["tab-prefix"]||w.prefix,n=w.tabSuffix||w["tab-suffix"]||w.suffix||w.extra;const C=W.value,N=C.visibleMethod,E=H.value,M=E.visibleMethod;return(0,_vue.h)("div",{key:"th",class:["vxe-tabs-header","type--"+T,"pos--"+y]},[s?(0,_vue.h)("div",{class:["vxe-tabs-header--prefix","type--"+T,"pos--"+y]},k(s,{name:b})):(0,_ui.renderEmptyElement)(A),a?(0,_vue.h)("div",{ref:u,class:["vxe-tabs-header--bar vxe-tabs-header--prev-bar","type--"+T,"pos--"+y],onClick:j},[(0,_vue.h)("span",{class:i?(0,_ui.getIcon)().TABS_TAB_BUTTON_TOP:(0,_ui.getIcon)().TABS_TAB_BUTTON_LEFT})]):(0,_ui.renderEmptyElement)(A),(0,_vue.h)("div",{class:["vxe-tabs-header--wrapper","type--"+T,"pos--"+y]},[(0,_vue.h)("div",{ref:S,class:"vxe-tabs-header--item-wrapper",style:i?{marginRight:`-${e+scrollbarOffsetSize}px`,paddingRight:scrollbarOffsetSize+"px"}:{marginBottom:`-${t+scrollbarOffsetSize}px`,paddingBottom:scrollbarOffsetSize+"px"},onScroll:F},h.map((t,a)=>{var{title:e,titleWidth:i,titleAlign:l,icon:s,name:n}=t,o=t.slots||{},r=o.title||o.tab,u=o.titlePrefix||o["title-prefix"],o=o.titleSuffix||o["title-suffix"],i=i||m,l=l||p,v={$tabs:A,value:b,name:n,option:t},c=b===n,d=n?x[""+n]:null,d=!!d&&d.loading;return(0,_vue.h)("div",{key:""+n,class:["vxe-tabs-header--item","type--"+T,"pos--"+y,l?"align--"+l:"",{"is--active":c}],style:i?{width:(0,_dom.toCssUnit)(i)}:void 0,onClick(e){R(e,t)}},[(0,_vue.h)("div",{class:"vxe-tabs-header--item-inner"},[(0,_vue.h)("div",{class:"vxe-tabs-header--item-content"},[s?(0,_vue.h)("span",{class:"vxe-tabs-header--item-icon"},[(0,_vue.h)("i",{class:s})]):(0,_ui.renderEmptyElement)(A),u?(0,_vue.h)("span",{class:"vxe-tabs-header--item-prefix"},k(u,{name:n,title:e})):(0,_ui.renderEmptyElement)(A),(0,_vue.h)("span",{class:"vxe-tabs-header--item-name"},r?k(r,{name:n,title:e}):""+e),o?(0,_vue.h)("span",{class:"vxe-tabs-header--item-suffix"},k(o,{name:n,title:e})):(0,_ui.renderEmptyElement)(A)]),!(0,_utils.isEnableConf)(g)&&!E.enabled||M&&!M(v)?(0,_ui.renderEmptyElement)(A):(0,_vue.h)("div",{class:["vxe-tabs-header--refresh-btn",{"is--active":c,"is--loading":d,"is--disabled":d}],onClick(e){P(e,t)}},[(0,_vue.h)("i",{class:d?(0,_ui.getIcon)().TABS_TAB_REFRESH_LOADING:(0,_ui.getIcon)().TABS_TAB_REFRESH})]),!(f||(0,_utils.isEnableConf)(_)||C.enabled)||N&&!N(v)?(0,_ui.renderEmptyElement)(A):(0,_vue.h)("div",{class:["vxe-tabs-header--close-btn",{"is--active":c}],onClick(e){$(e,t,a,h)}},[(0,_vue.h)("i",{class:(0,_ui.getIcon)().TABS_TAB_CLOSE})])])])}).concat([(0,_vue.h)("span",{key:"line",class:["vxe-tabs-header--active-line","type--"+T,"pos--"+y],style:l})]))]),a?(0,_vue.h)("div",{ref:v,class:["vxe-tabs-header--bar vxe-tabs-header--next-bar","type--"+T,"pos--"+y],onClick:D},[(0,_vue.h)("span",{class:i?(0,_ui.getIcon)().TABS_TAB_BUTTON_BOTTOM:(0,_ui.getIcon)().TABS_TAB_BUTTON_RIGHT})]):(0,_ui.renderEmptyElement)(A),n?(0,_vue.h)("div",{class:["vxe-tabs-header--suffix","type--"+T,"pos--"+y]},k(n,{name:b})):(0,_ui.renderEmptyElement)(A)])},y=e=>{var{initNames:t,activeName:a}=O,{name:e,slots:i}=e,i=i?i.default:null;return e&&t.includes(e)?(0,_vue.h)("div",{key:""+e,class:["vxe-tabs-pane--item",{"is--visible":a===e}]},i?k(i,{name:e}):[]):(0,_ui.renderEmptyElement)(A)},G=e=>{var t=d["destroyOnClose"];const a=O["activeName"];return t?[(t=e.find(e=>e.name===a))?y(t):(0,_ui.renderEmptyElement)(A)]:e.map(e=>y(e))},J=e=>{var{height:t,padding:a,showBody:i}=d,{activeName:l,cacheTabMaps:s}=O,n=h.value,o=B.value,r=z.value,u=H.value["showLoading"],v=w.header,c=w.footer;return i?(s=!!(s=l?s[""+l]:null)&&s.loading,l={name:l},(0,_vue.h)("div",{key:"tb",class:["vxe-tabs-pane--wrapper","type--"+o,"pos--"+r,{"is--content":i}]},[v?(0,_vue.h)("div",{class:"vxe-tabs-pane--header"},k(v,l)):(0,_ui.renderEmptyElement)(A),(0,_vue.h)("div",{class:["vxe-tabs-pane--body","type--"+o,"pos--"+r,{["size--"+n]:n,"is--padding":a,"is--height":t}]},G(e)),c?(0,_vue.h)("div",{class:"vxe-tabs-pane--footer"},k(c,l)):(0,_ui.renderEmptyElement)(A),u&&s?(0,_ui.renderEmptyElement)(A):(0,_vue.h)(_loading.default,{class:"vxe-tabs--loading",modelValue:s})])):(0,_ui.renderEmptyElement)(A)};(0,_vue.watch)(()=>d.position,()=>{O.resizeFlag++}),(0,_vue.watch)(()=>d.modelValue,e=>{r(e,null),O.activeName=e}),(0,_vue.watch)(()=>O.activeName,e=>{n(e)});const C=(0,_vue.ref)(0),N=((0,_vue.watch)(()=>d.options?d.options.length:-1,()=>{C.value++}),(0,_vue.watch)(()=>d.options,()=>{C.value++}),(0,_vue.watch)(C,()=>{l(d.options),O.resizeFlag++}),(0,_vue.ref)(0));return(0,_vue.watch)(()=>O.staticTabs?O.staticTabs.length:-1,()=>{N.value++}),(0,_vue.watch)(()=>O.staticTabs,()=>{N.value++}),(0,_vue.watch)(N,()=>{l(O.staticTabs),O.resizeFlag++}),(0,_vue.watch)(I,()=>{O.resizeFlag++}),(0,_vue.watch)(()=>O.resizeFlag,()=>{(0,_vue.nextTick)(()=>{p()})}),(0,_vue.onMounted)(()=>{p(),_ui.globalEvents.on(A,"resize",p)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(A,"resize")}),(0,_vue.provide)("$xeTabs",A),r(d.modelValue,null),l(O.staticTabs.length?O.staticTabs:d.options),A.renderVN=()=>{var{height:e,padding:t,trigger:a}=d,i=O["activeName"],l=h.value,s=g.value,n=b.value,o=B.value,r=z.value,u=U.value,v=w.default,n=v?n:s,s=[(0,_vue.h)("div",{key:"ts",class:"vxe-tabs-slots"},v?v({name:i}):[])];return"right"===r||"bottom"===r?s.push(J(n),T(n)):s.push(T(n),J(n)),(0,_vue.h)("div",{ref:c,class:["vxe-tabs","pos--"+r,"vxe-tabs--"+o,"trigger--"+("manual"===a?"trigger":"default"),{["size--"+l]:l,"is--padding":t,"is--height":e}],style:u},s)},A},render(){return this.renderVN()}});
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_ui=require("../../ui"),_vn=require("../../ui/src/vn"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_log=require("../../ui/src/log"),_xeUtils=_interopRequireDefault(require("xe-utils")),_loading=_interopRequireDefault(require("../../loading/src/loading"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const scrollbarOffsetSize=20;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTabs",props:{modelValue:[String,Number,Boolean],options:Array,width:[String,Number],height:[String,Number],destroyOnClose:{type:Boolean,default:()=>(0,_ui.getConfig)().tabs.destroyOnClose},titleWidth:[String,Number],titleAlign:[String,Number],type:{type:String,default:()=>(0,_ui.getConfig)().tabs.type},position:{type:String,default:()=>(0,_ui.getConfig)().tabs.position},showClose:Boolean,showBody:{type:Boolean,default:!0},padding:{type:Boolean,default:()=>(0,_ui.getConfig)().tabs.padding},trigger:String,beforeChangeMethod:Function,closeConfig:Object,refreshConfig:Object,size:{type:String,default:()=>(0,_ui.getConfig)().tabs.size||(0,_ui.getConfig)().size},beforeCloseMethod:Function},emits:["update:modelValue","change","tab-change","tab-change-fail","tab-close","tab-close-fail","tab-click","tab-load"],setup(d,e){const{slots:w,emit:i}=e;var E=_xeUtils.default.uniqueId();const t=(0,_vue.inject)("$xeTabs",null),h=(0,_ui.useSize)(d)["computeSize"],c=(0,_vue.ref)(),S=(0,_vue.ref)(),u=(0,_vue.ref)(),v=(0,_vue.ref)(),O=(0,_vue.reactive)({staticTabs:[],activeName:null,initNames:[],lintLeft:0,lintTop:0,lintWidth:0,lintHeight:0,scrollbarWidth:0,scrollbarHeight:0,isTabOver:!1,resizeFlag:1,cacheTabMaps:{}}),m={slTimeout:void 0},M={refElem:c},B=(0,_vue.computed)(()=>{var e=d["type"];return e||"default"}),z=(0,_vue.computed)(()=>{var e=d["position"];return e||"top"}),L=(0,_vue.computed)(()=>{var e=z.value;return"left"===e||"right"===e}),q=(0,_vue.computed)(()=>{var{lintLeft:e,lintTop:t,lintWidth:a,lintHeight:i}=O;return L.value?{top:t+"px",height:i+"px"}:{left:e+"px",width:a+"px"}}),U=(0,_vue.computed)(()=>{var{width:e,height:t}=d,a={};return e&&(a.width=(0,_dom.toCssUnit)(e)),t&&(a.height=(0,_dom.toCssUnit)(t)),a}),W=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().tabs.closeConfig,d.closeConfig)),H=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().tabs.refreshConfig,d.refreshConfig)),g=(0,_vue.computed)(()=>{var e=d["options"];return(e||[]).filter(e=>a(e))}),b=(0,_vue.computed)(()=>{var e=O["staticTabs"];return e.filter(e=>a(e))});var I=(0,_vue.computed)(()=>t?t.reactData.resizeFlag:null);const V={},A={xID:E,props:d,context:e,reactData:O,getRefMaps:()=>M,getComputeMaps:()=>V},a=e=>{e=e.permissionCode;return!(e&&!_ui.permission.checkVisible(e))},k=(e,t)=>e&&(_xeUtils.default.isString(e)&&(e=w[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[],F=()=>{var e,t,a,i,l,s=L.value,n=S.value,o=u.value,r=v.value;n&&({scrollLeft:n,scrollTop:e,clientWidth:t,clientHeight:a,scrollWidth:i,scrollHeight:l}=n,o&&(0<(s?e:n)?(0,_dom.addClass):(0,_dom.removeClass))(o,"scrolling--middle"),r)&&((s?a<l-Math.ceil(e):t<i-Math.ceil(n))?(0,_dom.addClass):(0,_dom.removeClass))(r,"scrolling--middle")},p=()=>{var e=()=>{const t=O["activeName"];var e,a,i,l,s,n=B.value,o=g.value,r=b.value,u=S.value,v=L.value;let c=0,d=0,h=0,m=0,p=0,f=0,_=!1;u&&(r=_xeUtils.default.findIndexOf(r.length?r:o,e=>e.name===t),{children:o,offsetWidth:u,scrollWidth:e,offsetHeight:i,scrollHeight:l,clientWidth:a,clientHeight:s}=u,p=u-a,f=i-s,v?(_=l!==s,-1<r&&(u=o[r])&&(i=u.clientHeight,v=u.clientWidth,m="card"===n?(c=v,d=i,u.offsetTop):"border-card"===n?(c=v,d=i,u.offsetTop-1):(d=Math.max(4,Math.floor(.6*i)),u.offsetTop+Math.floor((i-d)/2)))):(_=e!==a,-1<r&&(l=o[r])&&(s=l.clientWidth,h="card"===n?(c=s+1,l.offsetLeft):"border-card"===n?(c=s,l.offsetLeft-1):(c=Math.max(4,Math.floor(.6*s)),l.offsetLeft+Math.floor((s-c)/2))))),O.scrollbarWidth=p,O.scrollbarHeight=f,O.lintLeft=h,O.lintTop=m,O.lintWidth=c,O.lintHeight=d,O.isTabOver=_,F()};e(),(0,_vue.nextTick)(e)},f=(e,t,a)=>{i(e,(0,_ui.createEvent)(a,{$tabs:A},t))},o=e=>{i("update:modelValue",e)},r=(e,t)=>{var a=O["initNames"];return!(!e||a.includes(e)||(f("tab-load",{name:e},t),a.push(e),0))},l=e=>{let i=null;const l={};if(e&&e.length){let a=!1;i=d.modelValue,e.forEach(e=>{var{name:e,preload:t}=e||{};e&&(l[""+e]={loading:!1},i===e&&(a=!0),t)&&r(e,null)}),a||(i=e[0].name,r(i,null),o(i))}O.activeName=i,O.cacheTabMaps=l},R=(t,a)=>{var e=d["trigger"],i=d.beforeChangeMethod||(0,_ui.getConfig)().tabs.beforeChangeMethod;const l=O["activeName"],s=a["name"],n=s;f("tab-click",{name:s},t),"manual"!==e&&s!==l&&Promise.resolve(!i||i({$tabs:A,name:s,oldName:l,newName:s,option:a})).then(e=>{e?(O.activeName=s,o(n),r(s,t),f("change",{value:n,name:s,oldName:l,newName:s,option:a},t),f("tab-change",{value:n,name:s,oldName:l,newName:s,option:a},t)):f("tab-change-fail",{value:n,name:s,oldName:l,newName:s,option:a},t)}).catch(()=>{f("tab-change-fail",{value:n,name:s,oldName:l,newName:s,option:a},t)})},P=(e,t)=>{e.stopPropagation();var{activeName:e,cacheTabMaps:a}=O,i=t["name"],l=H.value["queryMethod"];const s=i?a[""+i]:null;s&&(l?s.loading||(s.loading=!0,Promise.resolve(l({$tabs:A,value:e,name:i,option:t})).finally(()=>{s.loading=!1})):(0,_log.errLog)("vxe.error.notFunc",["refresh-config.queryMethod"]))},$=(t,e,a,i)=>{t.stopPropagation();var l=O["activeName"],s=W.value.beforeMethod||d.beforeCloseMethod||(0,_ui.getConfig)().tabs.beforeCloseMethod;const n=e["name"],o=l;let r=o;l===n&&(l=a<i.length-1?i[a+1]:i[a-1],r=l?l.name:null),Promise.resolve(!s||s({$tabs:A,value:o,name:n,nextName:r,option:e})).then(e=>{e?f("tab-close",{value:o,name:n,nextName:r},t):f("tab-close-fail",{value:o,name:n,nextName:r},t)}).catch(()=>{f("tab-close-fail",{value:o,name:n,nextName:r},t)})},s=e=>{var t=L.value,a=S.value;if(a){var{clientWidth:a,clientHeight:i}=a,t=Math.floor(.75*(t?i:a));{var c=e,i=t,a=m["slTimeout"];const d=L.value;let o=d?0:i,r=d?i:0,u=6,v=35;a&&(clearTimeout(a),m.slTimeout=void 0);const h=()=>{var e,t,a,i,l,s,n=S.value;0<u&&(u--,n)&&({clientWidth:e,clientHeight:t,scrollWidth:a,scrollHeight:i,scrollLeft:l,scrollTop:s}=n,d?(r=Math.floor(r/2),0<c?t+s<i&&(n.scrollTop+=r,v-=4,m.slTimeout=setTimeout(h,v)):0<s&&(n.scrollTop-=r,v-=4,m.slTimeout=setTimeout(h,v))):(o=Math.floor(o/2),0<c?e+l<a&&(n.scrollLeft+=o,v-=4,m.slTimeout=setTimeout(h,v)):0<l&&(n.scrollLeft-=o,v-=4,m.slTimeout=setTimeout(h,v))),p())};h()}}},j=()=>{s(-1)},D=()=>{s(1)},n=o=>{const r=g.value,u=b.value,v=L.value;return(0,_vue.nextTick)().then(()=>{var e,t,a,i,l,s,n=S.value;n&&(-1<(i=_xeUtils.default.findIndexOf(u.length?u:r,e=>e.name===o))&&({scrollLeft:e,scrollTop:s,clientWidth:t,clientHeight:l,children:a}=n,a=a[i])&&(v?(0<(l=(i=a.offsetTop)+a.clientHeight-(s+l))&&(n.scrollTop+=l),i<s&&(n.scrollTop=i)):(0<(s=(l=a.offsetLeft)+a.clientWidth-(e+t))&&(n.scrollLeft+=s),l<e&&(n.scrollLeft=l))),p())})},_=t=>{const a=O["activeName"];var i=g.value,l=b.value,l=l.length?l:i,i=_xeUtils.default.findIndexOf(l,e=>e.name===a);if(-1<i){let e=null;t?i<l.length-1&&(e=l[i+1]):0<i&&(e=l[i-1]),e&&(l=t=e.name,O.activeName=t,o(l),r(t,null))}return(0,_vue.nextTick)()},x={dispatchEvent:f,scrollToTab:n,prev(){return _(!1)},next(){return _(!0)},prevTab(){return(0,_log.warnLog)("vxe.error.delFunc",["[tabs] prevTab","prev"]),x.prev()},nextTab(){return(0,_log.warnLog)("vxe.error.delFunc",["[tabs] nextTab","next"]),x.next()}};Object.assign(A,x,{});const T=h=>{const{titleWidth:m,titleAlign:p,showClose:f,closeConfig:_,refreshConfig:g}=d,{activeName:b,scrollbarWidth:e,scrollbarHeight:t,isTabOver:a,cacheTabMaps:x}=O,T=B.value,y=z.value;var i=L.value,l=q.value,s=w.tabPrefix||w["tab-prefix"]||w.prefix,n=w.tabSuffix||w["tab-suffix"]||w.suffix||w.extra;const C=W.value,N=C.visibleMethod,E=H.value,M=E.visibleMethod;return(0,_vue.h)("div",{key:"th",class:["vxe-tabs-header","type--"+T,"pos--"+y]},[s?(0,_vue.h)("div",{class:["vxe-tabs-header--prefix","type--"+T,"pos--"+y]},k(s,{name:b})):(0,_ui.renderEmptyElement)(A),a?(0,_vue.h)("div",{ref:u,class:["vxe-tabs-header--bar vxe-tabs-header--prev-bar","type--"+T,"pos--"+y],onClick:j},[(0,_vue.h)("span",{class:i?(0,_ui.getIcon)().TABS_TAB_BUTTON_TOP:(0,_ui.getIcon)().TABS_TAB_BUTTON_LEFT})]):(0,_ui.renderEmptyElement)(A),(0,_vue.h)("div",{class:["vxe-tabs-header--wrapper","type--"+T,"pos--"+y]},[(0,_vue.h)("div",{ref:S,class:"vxe-tabs-header--item-wrapper",style:i?{marginRight:`-${e+scrollbarOffsetSize}px`,paddingRight:scrollbarOffsetSize+"px"}:{marginBottom:`-${t+scrollbarOffsetSize}px`,paddingBottom:scrollbarOffsetSize+"px"},onScroll:F},h.map((t,a)=>{var{title:e,titleWidth:i,titleAlign:l,icon:s,name:n}=t,o=t.slots||{},r=o.title||o.tab,u=o.titlePrefix||o["title-prefix"],o=o.titleSuffix||o["title-suffix"],i=i||m,l=l||p,v={$tabs:A,value:b,name:n,option:t},c=b===n,d=n?x[""+n]:null,d=!!d&&d.loading;return(0,_vue.h)("div",{key:""+n,class:["vxe-tabs-header--item","type--"+T,"pos--"+y,l?"align--"+l:"",{"is--active":c}],style:i?{width:(0,_dom.toCssUnit)(i)}:void 0,onClick(e){R(e,t)}},[(0,_vue.h)("div",{class:"vxe-tabs-header--item-inner"},[(0,_vue.h)("div",{class:"vxe-tabs-header--item-content"},[s?(0,_vue.h)("span",{class:"vxe-tabs-header--item-icon"},[(0,_vue.h)("i",{class:s})]):(0,_ui.renderEmptyElement)(A),u?(0,_vue.h)("span",{class:"vxe-tabs-header--item-prefix"},k(u,{name:n,title:e})):(0,_ui.renderEmptyElement)(A),(0,_vue.h)("span",{class:"vxe-tabs-header--item-name"},r?k(r,{name:n,title:e}):""+e),o?(0,_vue.h)("span",{class:"vxe-tabs-header--item-suffix"},k(o,{name:n,title:e})):(0,_ui.renderEmptyElement)(A)]),!(0,_utils.isEnableConf)(g)&&!E.enabled||M&&!M(v)?(0,_ui.renderEmptyElement)(A):(0,_vue.h)("div",{class:["vxe-tabs-header--refresh-btn",{"is--active":c,"is--loading":d,"is--disabled":d}],onClick(e){P(e,t)}},[(0,_vue.h)("i",{class:d?(0,_ui.getIcon)().TABS_TAB_REFRESH_LOADING:(0,_ui.getIcon)().TABS_TAB_REFRESH})]),!(f||(0,_utils.isEnableConf)(_)||C.enabled)||N&&!N(v)?(0,_ui.renderEmptyElement)(A):(0,_vue.h)("div",{class:["vxe-tabs-header--close-btn",{"is--active":c}],onClick(e){$(e,t,a,h)}},[(0,_vue.h)("i",{class:(0,_ui.getIcon)().TABS_TAB_CLOSE})])])])}).concat([(0,_vue.h)("span",{key:"line",class:["vxe-tabs-header--active-line","type--"+T,"pos--"+y],style:l})]))]),a?(0,_vue.h)("div",{ref:v,class:["vxe-tabs-header--bar vxe-tabs-header--next-bar","type--"+T,"pos--"+y],onClick:D},[(0,_vue.h)("span",{class:i?(0,_ui.getIcon)().TABS_TAB_BUTTON_BOTTOM:(0,_ui.getIcon)().TABS_TAB_BUTTON_RIGHT})]):(0,_ui.renderEmptyElement)(A),n?(0,_vue.h)("div",{class:["vxe-tabs-header--suffix","type--"+T,"pos--"+y]},k(n,{name:b})):(0,_ui.renderEmptyElement)(A)])},y=e=>{var{initNames:t,activeName:a}=O,{name:e,slots:i}=e,i=i?i.default:null;return e&&t.includes(e)?(0,_vue.h)("div",{key:""+e,class:["vxe-tabs-pane--item",{"is--visible":a===e}]},i?k(i,{name:e}):[]):(0,_ui.renderEmptyElement)(A)},G=e=>{var t=d["destroyOnClose"];const a=O["activeName"];return t?[(t=e.find(e=>e.name===a))?y(t):(0,_ui.renderEmptyElement)(A)]:e.map(e=>y(e))},J=e=>{var{height:t,padding:a,showBody:i}=d,{activeName:l,cacheTabMaps:s}=O,n=h.value,o=B.value,r=z.value,u=H.value["showLoading"],v=w.header,c=w.footer;return i?(s=!!(s=l?s[""+l]:null)&&s.loading,l={name:l},(0,_vue.h)("div",{key:"tb",class:["vxe-tabs-pane--wrapper","type--"+o,"pos--"+r,{"is--content":i}]},[v?(0,_vue.h)("div",{class:"vxe-tabs-pane--header"},k(v,l)):(0,_ui.renderEmptyElement)(A),(0,_vue.h)("div",{class:["vxe-tabs-pane--body","type--"+o,"pos--"+r,{["size--"+n]:n,"is--padding":a,"is--height":t}]},G(e)),c?(0,_vue.h)("div",{class:"vxe-tabs-pane--footer"},k(c,l)):(0,_ui.renderEmptyElement)(A),u&&s?(0,_ui.renderEmptyElement)(A):(0,_vue.h)(_loading.default,{class:"vxe-tabs--loading",modelValue:s})])):(0,_ui.renderEmptyElement)(A)};(0,_vue.watch)(()=>d.position,()=>{O.resizeFlag++}),(0,_vue.watch)(()=>d.modelValue,e=>{r(e,null),O.activeName=e}),(0,_vue.watch)(()=>O.activeName,e=>{n(e)});const C=(0,_vue.ref)(0),N=((0,_vue.watch)(()=>d.options?d.options.length:-1,()=>{C.value++}),(0,_vue.watch)(()=>d.options,()=>{C.value++}),(0,_vue.watch)(C,()=>{l(d.options),O.resizeFlag++}),(0,_vue.ref)(0));return(0,_vue.watch)(()=>O.staticTabs?O.staticTabs.length:-1,()=>{N.value++}),(0,_vue.watch)(()=>O.staticTabs,()=>{N.value++}),(0,_vue.watch)(N,()=>{l(O.staticTabs),O.resizeFlag++}),(0,_vue.watch)(I,()=>{O.resizeFlag++}),(0,_vue.watch)(()=>O.resizeFlag,()=>{(0,_vue.nextTick)(()=>{p()})}),(0,_vue.onMounted)(()=>{p(),_ui.globalEvents.on(A,"resize",p)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(A,"resize")}),(0,_vue.provide)("$xeTabs",A),r(d.modelValue,null),l(O.staticTabs.length?O.staticTabs:d.options),A.renderVN=()=>{var{height:e,padding:t,trigger:a}=d,i=O["activeName"],l=h.value,s=g.value,n=b.value,o=B.value,r=z.value,u=U.value,v=w.default,n=v?n:s,s=[(0,_vue.h)("div",{key:"ts",class:"vxe-tabs-slots"},v?v({name:i}):[])];return"right"===r||"bottom"===r?s.push(J(n),T(n)):s.push(T(n),J(n)),(0,_vue.h)("div",{ref:c,class:["vxe-tabs","pos--"+r,"vxe-tabs--"+o,"trigger--"+("manual"===a?"trigger":"default"),{["size--"+l]:l,"is--padding":t,"is--height":e}],style:u},s)},A},render(){return this.renderVN()}});
|
package/lib/tree/src/tree.js
CHANGED
|
@@ -102,6 +102,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
102
102
|
// 已废弃
|
|
103
103
|
isHover: Boolean,
|
|
104
104
|
expandAll: Boolean,
|
|
105
|
+
expandNodeKeys: Array,
|
|
105
106
|
showLine: {
|
|
106
107
|
type: Boolean,
|
|
107
108
|
default: () => (0, _ui.getConfig)().tree.showLine
|
|
@@ -684,6 +685,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
684
685
|
const loadData = list => {
|
|
685
686
|
const {
|
|
686
687
|
expandAll,
|
|
688
|
+
expandNodeKeys,
|
|
687
689
|
transform
|
|
688
690
|
} = props;
|
|
689
691
|
const {
|
|
@@ -709,7 +711,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
709
711
|
handleData(true);
|
|
710
712
|
if (sYLoad) {
|
|
711
713
|
if (!(props.height || props.maxHeight)) {
|
|
712
|
-
(0, _log.errLog)('vxe.error.reqProp', ['height | max-height | virtual-y-config.enabled=false']);
|
|
714
|
+
(0, _log.errLog)('vxe.error.reqProp', ['[tree] height | max-height | virtual-y-config.enabled=false']);
|
|
713
715
|
}
|
|
714
716
|
}
|
|
715
717
|
return computeScrollLoad().then(() => {
|
|
@@ -718,6 +720,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
718
720
|
internalData.initialized = true;
|
|
719
721
|
if (expandAll) {
|
|
720
722
|
$xeTree.setAllExpandNode(true);
|
|
723
|
+
} else if (expandNodeKeys && expandNodeKeys.length) {
|
|
724
|
+
$xeTree.setExpandByNodeId(expandNodeKeys, true);
|
|
721
725
|
}
|
|
722
726
|
handleSetCheckboxByNodeId(props.checkNodeKeys || [], true);
|
|
723
727
|
}
|
|
@@ -1751,7 +1755,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1751
1755
|
_xeUtils.default.eachTree(nodeList, (childRow, index, items, path, parent, nodes) => {
|
|
1752
1756
|
const itemNodeId = getNodeId(childRow);
|
|
1753
1757
|
nodeMaps[itemNodeId] = {
|
|
1754
|
-
item:
|
|
1758
|
+
item: childRow,
|
|
1755
1759
|
index: -1,
|
|
1756
1760
|
items,
|
|
1757
1761
|
parent: parent || parentNodeItem.item,
|
package/lib/tree/src/tree.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_ui=require("../../ui"),_util=require("./util"),_log=require("../../ui/src/log"),_xeUtils=_interopRequireDefault(require("xe-utils")),_vn=require("../../ui/src/vn"),_dom=require("../../ui/src/dom"),_loading=_interopRequireDefault(require("../../loading/src/loading"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function getNodeUniqueId(){return _xeUtils.default.uniqueId("node_")}function createInternalData(){return{treeFullData:[],afterTreeList:[],afterVisibleList:[],nodeMaps:{},selectCheckboxMaps:{},indeterminateRowMaps:{},treeExpandedMaps:{},treeExpandLazyLoadedMaps:{},lastScrollLeft:0,lastScrollTop:0,scrollYStore:{startIndex:0,endIndex:0,visibleSize:0,offsetSize:0,rowHeight:0},lastScrollTime:0}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTree",props:{data:Array,autoResize:{type:Boolean,default:()=>(0,_ui.getConfig)().tree.autoResize},height:[String,Number],maxHeight:{type:[String,Number],default:()=>(0,_ui.getConfig)().tree.maxHeight},minHeight:{type:[String,Number],default:()=>(0,_ui.getConfig)().tree.minHeight},loading:Boolean,loadingConfig:Object,accordion:{type:Boolean,default:()=>(0,_ui.getConfig)().tree.accordion},childrenField:{type:String,default:()=>(0,_ui.getConfig)().tree.childrenField},valueField:{type:String,default:()=>(0,_ui.getConfig)().tree.valueField},keyField:{type:String,default:()=>(0,_ui.getConfig)().tree.keyField},parentField:{type:String,default:()=>(0,_ui.getConfig)().tree.parentField},titleField:{type:String,default:()=>(0,_ui.getConfig)().tree.titleField},hasChildField:{type:String,default:()=>(0,_ui.getConfig)().tree.hasChildField},mapChildrenField:{type:String,default:()=>(0,_ui.getConfig)().tree.mapChildrenField},transform:Boolean,isCurrent:Boolean,isHover:Boolean,expandAll:Boolean,showLine:{type:Boolean,default:()=>(0,_ui.getConfig)().tree.showLine},trigger:String,indent:{type:Number,default:()=>(0,_ui.getConfig)().tree.indent},showRadio:{type:Boolean,default:()=>(0,_ui.getConfig)().tree.showRadio},checkNodeKey:{type:[String,Number],default:()=>(0,_ui.getConfig)().tree.checkNodeKey},radioConfig:Object,showCheckbox:{type:Boolean,default:()=>(0,_ui.getConfig)().tree.showCheckbox},checkNodeKeys:{type:Array,default:()=>(0,_ui.getConfig)().tree.checkNodeKeys},checkboxConfig:Object,nodeConfig:Object,lazy:Boolean,toggleMethod:Function,loadMethod:Function,showIcon:{type:Boolean,default:!0},iconOpen:{type:String,default:()=>(0,_ui.getConfig)().tree.iconOpen},iconClose:{type:String,default:()=>(0,_ui.getConfig)().tree.iconClose},iconLoaded:{type:String,default:()=>(0,_ui.getConfig)().tree.iconLoaded},filterValue:[String,Number],filterConfig:Object,size:{type:String,default:()=>(0,_ui.getConfig)().tree.size||(0,_ui.getConfig)().size},virtualYConfig:Object},emits:["update:modelValue","update:checkNodeKey","update:checkNodeKeys","node-click","node-dblclick","current-change","radio-change","checkbox-change","load-success","load-error","scroll"],setup(S,e){const{emit:r,slots:T}=e;var b=_xeUtils.default.uniqueId();const M=(0,_ui.useSize)(S)["computeSize"],g=(0,_vue.ref)(),L=(0,_vue.ref)(),I=(0,_vue.ref)(),f=(0,_vue.ref)(),D=(0,_vue.ref)(),w=(0,_vue.reactive)({parentHeight:0,customHeight:0,customMinHeight:0,customMaxHeight:0,currentNode:null,scrollYLoad:!1,bodyHeight:0,topSpaceHeight:0,selectRadioKey:(0,_util.enNodeValue)(S.checkNodeKey),treeList:[],updateExpandedFlag:1,updateCheckboxFlag:1}),U=createInternalData(),B={refElem:g},A=(0,_vue.computed)(()=>S.titleField||"title"),Y=(0,_vue.computed)(()=>S.keyField||"id"),c=(0,_vue.computed)(()=>{var e=Y.value;return S.valueField||e}),q=(0,_vue.computed)(()=>S.parentField||"parentId"),H=(0,_vue.computed)(()=>S.childrenField||"children"),x=(0,_vue.computed)(()=>S.mapChildrenField||"mapChildren"),$=(0,_vue.computed)(()=>S.hasChildField||"hasChild"),j=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().tree.virtualYConfig,S.virtualYConfig)),P=(0,_vue.computed)(()=>{var e=h.value["isCurrent"];return _xeUtils.default.isBoolean(e)?e:S.isCurrent}),X=(0,_vue.computed)(()=>{var e=h.value["isHover"];return _xeUtils.default.isBoolean(e)?e:S.isHover}),F=(0,_vue.computed)(()=>Object.assign({showIcon:!0},(0,_ui.getConfig)().tree.radioConfig,S.radioConfig)),R=(0,_vue.computed)(()=>Object.assign({showIcon:!0},(0,_ui.getConfig)().tree.checkboxConfig,S.checkboxConfig)),h=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().tree.nodeConfig,S.nodeConfig)),W=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().tree.loadingConfig,S.loadingConfig)),G=(0,_vue.computed)(()=>{var{customHeight:e,customMinHeight:t,customMaxHeight:a}=w,r={};return e&&(r.height=(0,_dom.toCssUnit)(e)),t&&(r.minHeight=(0,_dom.toCssUnit)(t)),a&&(r.maxHeight=(0,_dom.toCssUnit)(a)),r}),J=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().tree.filterConfig,S.filterConfig)),Q={computeChildrenField:H,computeMapChildrenField:x,computeRadioOpts:F,computeCheckboxOpts:R,computeNodeOpts:h},z={xID:b,props:S,context:e,internalData:U,reactData:w,getRefMaps:()=>B,getComputeMaps:()=>Q},V=e=>{var t=c.value,e=_xeUtils.default.get(e,t);return(0,_util.enNodeValue)(e)};const Z=e=>{var t=w["selectRadioKey"];return t===e};const O=e=>{var t=w["updateCheckboxFlag"],a=U["selectCheckboxMaps"];return!(!t||!a[e])};const ee=e=>{var t=w["updateCheckboxFlag"],a=U["indeterminateRowMaps"];return!(!t||!a[e])};const s=e=>{r("update:checkNodeKeys",e)},o=e=>{r("update:checkNodeKey",e)},u=(e,t)=>{const a=U["nodeMaps"];if(e){_xeUtils.default.isArray(e)||(e=[e]);const r=[];e.forEach(e=>{e=(0,_util.enNodeValue)(e),e=a[e];e&&r.push(e.item)}),n(r,t)}return(0,_vue.nextTick)()},n=(e,a)=>{var t=S["transform"];const r=U["selectCheckboxMaps"];var l=x.value,o=H.value,i=R.value["checkStrictly"],n=e=>{var t=V(e);a?r[t]||(r[t]=e):r[t]&&delete r[t]};i?e.forEach(n):_xeUtils.default.eachTree(e,n,{children:t?l:o}),w.updateCheckboxFlag++,C()},l=(e,t,a)=>{t?a[e]||(a[e]=!0):a[e]&&delete a[e]},K=(e,t,a)=>{r(e,(0,_ui.createEvent)(a,{$tree:z},t))},te=()=>{var e=g.value;return e?e.parentElement:null},t=e=>{var t=w["parentHeight"],e=S[e];let a=0;return a=e?"100%"===e||"auto"===e?t:(a=(0,_dom.isScale)(e)?Math.floor((_xeUtils.default.toInteger(e)||1)/100*t):_xeUtils.default.toNumber(e),Math.max(40,a)):a},v=()=>{w.customHeight=t("height"),w.customMinHeight=t("minHeight"),w.customMaxHeight=t("maxHeight"),!w.scrollYLoad||w.customHeight||w.customMinHeight||(w.customHeight=300)},ae=()=>{var e=S["transform"];const{afterTreeList:t,nodeMaps:o}=U;var a=H.value,r=x.value;_xeUtils.default.eachTree(t,(e,t,a)=>{var r=V(e),l=o[r];l?(l.items=a,l.treeIndex=t):(l={item:e,index:t,items:a,parent:parent,nodes:[],level:0,treeIndex:t,lineCount:0,treeLoaded:!1},o[r]=l)},{children:e?r:a})},_=()=>{var e=S["transform"];const{afterTreeList:t,treeExpandedMaps:n}=U;var a=x.value;const d={};if(e){const s=[];return _xeUtils.default.eachTree(t,(e,t,a,r,l)=>{var o=V(e),i=V(l);(!l||d[i]&&n[i])&&(d[o]=1,s.push(e))},{children:a}),le(s),U.afterVisibleList=s}return U.afterVisibleList},p=r=>{var e=w["scrollYLoad"],t=U["scrollYStore"];let a=U.afterVisibleList;if(r){{var{transform:r,filterValue:l}=S,{treeFullData:o,lastFilterValue:i}=U;const s=A.value;var n=H.value,d=x.value;const{autoExpandAll:u,beforeFilterMethod:c,filterMethod:h,afterFilterMethod:v}=J.value;let e=o,t=e,a="";if(l||0===l){a=""+l;l=h?e=>h({$tree:z,node:e,filterValue:a}):e=>-1<String(e[s]).toLowerCase().indexOf(a);const p={$tree:z,filterValue:a};c&&c(p),e=r?t=_xeUtils.default.searchTree(o,l,{original:!0,isEvery:!0,children:n,mapChildren:d}):o.filter(l),U.lastFilterValue=a,(0,_vue.nextTick)(()=>{u?z.setAllExpandNode(!0).then(()=>{v&&v(p)}):v&&v(p)})}else{if(r&&(t=_xeUtils.default.searchTree(o,()=>!0,{original:!0,isEvery:!0,children:n,mapChildren:d}),e=t,i)){const g={$tree:z,filterValue:a};c&&c(g),(0,_vue.nextTick)(()=>{u?z.clearAllExpandNode().then(()=>{v&&v(g)}):v&&v(g)})}U.lastFilterValue=""}U.afterVisibleList=e,U.afterTreeList=t,ae()}a=_()}l=e?a.slice(t.startIndex,t.endIndex):a.slice(0);w.treeList=l},re=_xeUtils.default.debounce(()=>p(!0),350,{trailing:!0}),a=a=>{const{expandAll:r,transform:e}=S,{initialized:l,scrollYStore:t}=U;var o=Y.value,i=q.value,n=H.value,o=e?_xeUtils.default.toArrayTree(a,{key:o,parentKey:i,mapChildren:n}):a?a.slice(0):[],i=(U.treeFullData=o,Object.assign(t,{startIndex:0,endIndex:1,visibleSize:0}),le(o));{n=U.treeFullData;const d=c.value,s=(o=H.value,{});_xeUtils.default.eachTree(n,(e,t,a,r,l,o)=>{let i=V(e);i||(i=getNodeUniqueId(),_xeUtils.default.set(e,d,i)),s[i]={item:e,index:t,items:a,parent:l,nodes:o,level:o.length,treeIndex:t,lineCount:0,treeLoaded:!1}},{children:o}),U.nodeMaps=s}return p(!0),!i||S.height||S.maxHeight||(0,_log.errLog)("vxe.error.reqProp",["height | max-height | virtual-y-config.enabled=false"]),ie().then(()=>{l||a&&a.length&&(U.initialized=!0,r&&z.setAllExpandNode(!0),u(S.checkNodeKeys||[],!0)),v();{const{lastScrollLeft:e,lastScrollTop:t}=U;se().then(()=>{if(e||t)return U.lastScrollLeft=0,U.lastScrollTop=0,scrollTo(e,t)})}})},le=e=>{var t=S["transform"],a=j.value,e=e||U.treeFullData,t=!!t&&!!a.enabled&&-1<a.gt&&(0===a.gt||a.gt<e.length);return w.scrollYLoad=t},i=()=>{var e=w["scrollYLoad"],{scrollYStore:t,afterVisibleList:a}=U;w.bodyHeight=e?a.length*t.rowHeight:0,w.topSpaceHeight=e?Math.max(t.startIndex*t.rowHeight,0):0},oe=()=>{p(),i()},ie=()=>(0,_vue.nextTick)().then(()=>{var e=w["scrollYLoad"],t=U["scrollYStore"],a=D.value,r=j.value;let l=0,o;(o=a?o||a.children[0]:o)&&(l=o.offsetHeight),l=Math.max(20,l),t.rowHeight=l,(e?(a=f.value,e=Math.max(8,a?Math.ceil(a.clientHeight/l):0),a=Math.max(0,Math.min(2,_xeUtils.default.toNumber(r.oSize))),t.offsetSize=a,t.visibleSize=e,t.endIndex=Math.max(t.startIndex,e+a,t.endIndex),oe):i)()}),d=(e,t)=>{var a=f.value;return e&&!_xeUtils.default.isNumber(e)&&(t=e.top,e=e.left),a&&(_xeUtils.default.isNumber(e)&&(a.scrollLeft=e),_xeUtils.default.isNumber(t))&&(a.scrollTop=t),w.scrollYLoad?new Promise(e=>{setTimeout(()=>{(0,_vue.nextTick)(()=>{e()})},50)}):(0,_vue.nextTick)()},m=()=>{var e,t,a,r=U["scrollYStore"],r=r["rowHeight"],l=g.value;return l&&l.clientWidth&&l.clientHeight?(l=te(),e=L.value,t=I.value,e=e?e.clientHeight:0,t=t?t.clientHeight:0,l&&(a=(0,_dom.getPaddingTopBottomSize)(l),w.parentHeight=Math.max(e+t+r,l.clientHeight-a-e-t)),v(),ie().then(()=>{v(),i()})):(0,_vue.nextTick)()},ne=()=>{var e=U["scrollYStore"],{startIndex:t,endIndex:a,visibleSize:r,offsetSize:l,rowHeight:o}=e,i=f.value;i&&(i=i.scrollTop,i=Math.floor(i/o),o=Math.max(0,i-1-l),l=i+r+l,!(i<=t||a-r-1<=i)||t===o&&a===l||(e.startIndex=o,e.endIndex=l,oe()))},de=e=>{var t=e.target,a=t.scrollTop,t=t.scrollLeft,r=t!==U.lastScrollLeft,l=a!==U.lastScrollTop;U.lastScrollTop=a,U.lastScrollLeft=t,w.scrollYLoad&&ne(),U.lastScrollTime=Date.now(),K("scroll",{scrollLeft:t,scrollTop:a,isX:r,isY:l},e)},se=()=>{var e=f.value;return e&&(e.scrollTop=0,e.scrollLeft=0),U.lastScrollTop=0,(U.lastScrollLeft=0,_vue.nextTick)()},ue=(e,t)=>{var{showRadio:a,showCheckbox:r,trigger:l}=S,o=F.value,i=R.value;let n=!1,d=!1,s=!1,u=!1;P.value?(n=!0,((e,t)=>{e.preventDefault();const a=h.value,{currentMethod:r,trigger:l}=a,o=H.value,i=_xeUtils.default.get(t,o),n=i&&i.length;let d=!!r;if(l==="child"){if(n)return}else if(l==="parent")if(!n)return;if(r)d=!r({node:t});var s;d||(s=!0,w.currentNode=t,K("current-change",{node:t,checked:!0},e))})(e,t)):w.currentNode&&(w.currentNode=null),"node"===l&&(u=!0,ve(e,t)),a&&"node"===o.trigger&&(d=!0,ge(e,t)),r&&"node"===i.trigger&&(s=!0,pe(e,t)),K("node-click",{node:t,triggerCurrent:n,triggerRadio:d,triggerCheckbox:s,triggerExpand:u},e)},ce=o=>{var e=R.value;const a=S["loadMethod"],i=e["checkStrictly"];return new Promise(e=>{if(a){var t=U["nodeMaps"];const r=V(o),l=t[r];U.treeExpandLazyLoadedMaps[r]=!0,Promise.resolve(a({$tree:z,node:o})).then(a=>{var e=U["treeExpandLazyLoadedMaps"];if(l.treeLoaded=!0,e[r]&&(e[r]=!1),a=_xeUtils.default.isArray(a)?a:[])return z.loadChildrenNode(o,a).then(e=>{var t=U["treeExpandedMaps"];return e.length&&!t[r]&&(t[r]=!0),w.updateExpandedFlag++,!i&&z.isCheckedByCheckboxNodeId(r)&&n(e,!0),K("load-success",{node:o,data:a},new Event("load-success")),(0,_vue.nextTick)()});K("load-success",{node:o,data:a},new Event("load-success"))}).catch(e=>{var t=U["treeExpandLazyLoadedMaps"];l.treeLoaded=!1,t[r]&&(t[r]=!1),K("load-error",{node:o,data:e},new Event("load-error"))}).finally(()=>(_(),p(),m()))}else e()})},he=(e,t)=>{const{lazy:r,accordion:a,toggleMethod:l}=S,{treeExpandLazyLoadedMaps:o,treeExpandedMaps:i}=U,n=U["nodeMaps"],d=H.value,s=$.value,u=[];let c=l?e.filter(e=>l({$tree:z,expanded:t,node:e})):e;a&&(c=c.length?[c[c.length-1]]:[],e=V(c[0]),e=n[e])&&e.items.forEach(e=>{e=V(e);i[e]&&delete i[e]});const h=[];return t?c.forEach(e=>{var t,a=V(e);i[a]||(t=n[a],r&&e[s]&&!t.treeLoaded&&!o[a]?u.push(ce(e)):e[d]&&e[d].length&&(i[a]=!0,h.push(e)))}):c.forEach(e=>{var t=V(e);i[t]&&(delete i[t],h.push(e))}),w.updateExpandedFlag++,_(),p(),Promise.all(u).then(()=>m())},ve=(e,t)=>{var a=S["lazy"],{treeExpandedMaps:r,treeExpandLazyLoadedMaps:l}=U,o=V(t),r=!r[o];e.stopPropagation(),a&&l[o]||he([t],r)},C=()=>{var e=S["transform"];const{selectCheckboxMaps:d,indeterminateRowMaps:s,afterTreeList:t}=U,r=H.value;var a=x.value;const{checkStrictly:l,checkMethod:u}=R.value;if(!l){const o={},i=[];_xeUtils.default.eachTree(t,e=>{var t=V(e),a=e[r];a&&a.length&&!o[t]&&(o[t]=1,i.unshift([e,t,a]))},{children:e?a:r}),i.forEach(e=>{var t=e[0],a=e[1],e=e[2];let r=0,l=0,o=0;var i=e.length;e.forEach(u?e=>{var t=V(e),a=d[t];u({$tree:z,node:e})?(a?r++:s[t]&&l++,o++):a?r++:s[t]&&l++}:e=>{e=V(e);d[e]?r++:s[e]&&l++,o++});let n=!1;e=!(n=0<i?0<o?(0<r||0<l)&&r>=o:0<r&&r>=o||!!d[a]:d[a])&&(0<r||0<l);n?(d[a]=t,s[a]&&delete s[a]):(d[a]&&delete d[a],e?s[a]=t:s[a]&&delete s[a])}),w.updateCheckboxFlag++}},pe=(e,a)=>{e.preventDefault(),e.stopPropagation();var r=S["transform"];const l=U["selectCheckboxMaps"];var o=H.value,i=x.value,{checkStrictly:n,checkMethod:d}=R.value;let t=!!d;if(!(t=d?!d({$tree:z,node:a}):t)){d=V(a);let t=!1;l[d]?delete l[d]:(t=!0,l[d]=a),n||_xeUtils.default.eachTree(_xeUtils.default.get(a,r?i:o),e=>{e=V(e);t?l[e]||(l[e]=!0):l[e]&&delete l[e]},{children:r?i:o}),w.updateCheckboxFlag++,C();d=_xeUtils.default.keys(l).map(_util.deNodeValue);s(d),K("checkbox-change",{node:a,value:d,checked:t},e)}},ge=(e,t)=>{e.preventDefault(),e.stopPropagation();var a,r=F.value["checkMethod"];let l=!!r;(l=r?!r({$tree:z,node:t}):l)||(r=V(t),a=(0,_util.deNodeValue)(r),w.selectRadioKey=r,o(a),K("radio-change",{node:t,value:a,checked:!0},e))},fe=()=>{var e=g.value;e&&e.clientWidth&&m()},k={dispatchEvent:K,getNodeId:V,getNodeById(e){var t=U["nodeMaps"];if(e){t=t[e];if(t)return t.item}return null},loadData(e){return a(e||[])},reloadData(e){return a(e||[])},clearCurrentNode(){return(w.currentNode=null,_vue.nextTick)()},getCurrentNodeId(){var e=w["currentNode"];return e?(0,_util.deNodeValue)(V(e)):null},getCurrentNode(){var e=w["currentNode"],t=U["nodeMaps"];if(e){t=t[V(e)];if(t)return t.item}return null},setCurrentNodeId(e){var t=U["nodeMaps"],t=t[(0,_util.enNodeValue)(e)];return w.currentNode=t?t.item:null,(0,_vue.nextTick)()},setCurrentNode(e){return w.currentNode=e,(0,_vue.nextTick)()},clearRadioNode(){return w.selectRadioKey=null,o(null),(0,_vue.nextTick)()},getRadioNodeId(){return w.selectRadioKey||null},getRadioNode(){var e=w["selectRadioKey"],t=U["nodeMaps"];if(e){t=t[e];if(t)return t.item}return null},setRadioNodeId(e){return w.selectRadioKey=(0,_util.enNodeValue)(e),o(e),(0,_vue.nextTick)()},setRadioNode(e){return e?(e=V(e),w.selectRadioKey=e,o((0,_util.deNodeValue)(e))):o(null),(0,_vue.nextTick)()},setCheckboxNode(e,t){return e&&(_xeUtils.default.isArray(e)||(e=[e]),n(e,t)),s(z.getCheckboxNodeIds()),(0,_vue.nextTick)()},setCheckboxByNodeId(e,t){return u(e,t),s(z.getCheckboxNodeIds()),(0,_vue.nextTick)()},getCheckboxNodeIds(){var e=U["selectCheckboxMaps"];const a=[];return _xeUtils.default.each(e,(e,t)=>{a.push((0,_util.deNodeValue)(t))}),a},getCheckboxNodes(){const{nodeMaps:a,selectCheckboxMaps:e}=U,r=[];return _xeUtils.default.each(e,(e,t)=>{t=a[t];t&&r.push(t.item)}),r},clearCheckboxNode(){return U.indeterminateRowMaps={},U.selectCheckboxMaps={},w.updateCheckboxFlag++,s([]),C(),(0,_vue.nextTick)().then(()=>({checkNodeKeys:[],checkNodes:[]}))},setAllCheckboxNode(e){var t=S["transform"];const a={};var r=H.value,l=x.value;const o=[],i=[];return e&&_xeUtils.default.eachTree(U.afterTreeList,e=>{var t=V(e);o.push(t),i.push(e),a[t]=!0},{children:t?l:r}),U.indeterminateRowMaps={},U.selectCheckboxMaps=a,w.updateCheckboxFlag++,C(),(0,_vue.nextTick)().then(()=>({checkNodeKeys:o,checkNodes:i}))},clearExpandNode(){return k.clearAllExpandNode()},clearAllExpandNode(){var{nodeMaps:e,scrollYStore:t}=U;return _xeUtils.default.each(e,e=>{e.treeLoaded=!1}),U.treeExpandedMaps={},w.updateExpandedFlag++,w.topSpaceHeight=0,t.startIndex=0,t.endIndex=1,_(),p(),m()},setExpandByNodeId(e,t){const a=U["treeExpandedMaps"];return e&&((e=_xeUtils.default.isArray(e)?e:[e]).forEach(e=>{e=(0,_util.enNodeValue)(e);l(e,t,a)}),w.updateExpandedFlag++),_(),p(),m()},getExpandNodeIds(){var e=U["treeExpandedMaps"];const a=[];return _xeUtils.default.each(e,(e,t)=>{a.push((0,_util.deNodeValue)(t))}),a},getExpandNodes(){const{nodeMaps:a,treeExpandedMaps:e}=U,r=[];return _xeUtils.default.each(e,(e,t)=>{t=a[t];t&&r.push(t.item)}),r},setExpandNode(e,t){const a=U["treeExpandedMaps"];return e&&((e=_xeUtils.default.isArray(e)?e:[e]).forEach(e=>{e=V(e);l(e,t,a)}),w.updateExpandedFlag++),_(),p(),m()},toggleExpandByNodeId(e){const t=U["treeExpandedMaps"];return e&&((e=_xeUtils.default.isArray(e)?e:[e]).forEach(e=>{e=(0,_util.enNodeValue)(e);l(e,!t[""+e],t)}),w.updateExpandedFlag++),_(),p(),m()},toggleExpandNode(e){const t=U["treeExpandedMaps"];return e&&((e=_xeUtils.default.isArray(e)?e:[e]).forEach(e=>{e=V(e);l(e,!t[e],t)}),w.updateExpandedFlag++),_(),p(),m()},setAllExpandNode(e){var t=S["transform"];const a=w["scrollYLoad"],{scrollYStore:r,treeExpandedMaps:l}=U,o=H.value;var i=x.value;return e?_xeUtils.default.eachTree(U.afterTreeList,e=>{var t=_xeUtils.default.get(e,o);t&&t.length&&(t=V(e),l[t]=!0)},{children:t?i:o}):U.treeExpandedMaps={},w.updateExpandedFlag++,w.topSpaceHeight=0,r.startIndex=0,r.endIndex=1,_(),p(),m().then(()=>(a&&ne(),m()))},reloadExpandNode(e){var t=S["lazy"];return t?(k.clearExpandLoaded(e),ce(e)):m()},clearExpandLoaded(e){var t=S["lazy"],a=U["nodeMaps"];return t&&(t=a[V(e)])&&(t.treeLoaded=!1),m()},loadChildrenNode(i,e){const{lazy:t,transform:a}=S,n=U["nodeMaps"];if(!t)return Promise.resolve([]);const r=H.value,l=x.value,d=n[V(i)],s=d?d.level:0,u=d?d.nodes:[];return(e=>{const a=c.value;return Promise.resolve(e.map(e=>{var t,e=Object.assign({},e);return V(e)||(t=getNodeUniqueId(),_xeUtils.default.set(e,a,t)),e}))})(e).then(e=>(_xeUtils.default.eachTree(e,(e,t,a,r,l,o)=>{e=V(e);n[e]={item:i,index:-1,items:a,parent:l||d.item,nodes:u.concat(o),level:s+o.length,treeIndex:-1,lineCount:0,treeLoaded:!1}},{children:r}),i[r]=e,a&&(i[l]=e),ae(),e))},isExpandByNode:e=>{var t=w["updateExpandedFlag"],a=U["treeExpandedMaps"],e=V(e);return!(!t||!a[e])},isCheckedByRadioNodeId:Z,isCheckedByRadioNode:e=>Z(V(e)),isCheckedByCheckboxNodeId:O,isIndeterminateByCheckboxNode:e=>ee(V(e)),isCheckedByCheckboxNode:e=>O(V(e)),getCheckboxIndeterminateNodes(){const{nodeMaps:a,indeterminateRowMaps:e}=U,r=[];return _xeUtils.default.each(e,(e,t)=>{t=a[t];t&&r.push(t.item)}),r},recalculate:m,scrollTo:d,scrollToNode(e){return z.scrollToNodeId(V(e))},scrollToNodeId(t){var e=S["transform"];const{scrollYStore:a,afterTreeList:r}=U;var l=H.value,o=x.value;const i=f.value;if(t&&i)if(e){e=_xeUtils.default.findTree(r,e=>V(e)===t,{children:e?o:l});if(e)return z.setExpandNode(e.nodes,!0).then(()=>{var e=_xeUtils.default.findIndexOf(U.afterVisibleList,e=>V(e)===t);if(-1<e)return e=Math.max(0,(e-1)*a.rowHeight),d(i.scrollLeft,e)})}else{o=i.querySelector(`.vxe-tree--node-wrapper[nodeid="${t}"]`);if(o)return d(i.scrollLeft,o.offsetTop)}return m()},clearScroll:se};Object.assign(z,k,{});const xe=(a,e)=>{var{lazy:t,showRadio:r,showCheckbox:l,showLine:o,indent:i,iconOpen:n,iconClose:d,iconLoaded:s,showIcon:u}=S,{currentNode:c,selectRadioKey:h,updateExpandedFlag:v}=w,{afterTreeList:p,nodeMaps:g,treeExpandedMaps:f,treeExpandLazyLoadedMaps:x}=U,_=H.value,m=A.value,C=$.value,_=_xeUtils.default.get(a,_),_=_&&_.length,k=T.icon,y=T.title,E=T.extra,v=v&&f[e],f=g[e],g=_xeUtils.default.get(a,m),m=f.level;let N=!1,b=(r&&(N=e===String(h)),!1),M=(l&&(b=O(e)),!1),L=!1,I=!1;t&&(L=!!x[e],M=a[C],I=!!f.treeLoaded);r=f.items[f.treeIndex-1],h={node:a,isExpand:v};return(0,_vue.h)("div",{key:e,class:["vxe-tree--node-wrapper","node--level-"+m],nodeid:e},[(0,_vue.h)("div",{class:["vxe-tree--node-item",{"is--current":c&&e===V(c),"is-radio--checked":N,"is-checkbox--checked":b}],style:{paddingLeft:(m-1)*(i||1)+"px"},onClick(e){ue(e,a)},onDblclick(e){var t;e=e,t=a,K("node-dblclick",{node:t},e)}},[o?(0,_vue.h)("div",{class:"vxe-tree--node-line-wrapper"},[(0,_vue.h)("div",{class:"vxe-tree--node-line",style:{height:`${V(p[0])===e?1:(0,_util.calcTreeLine)(z,a,r)}px`}})]):(0,_ui.renderEmptyElement)(z),(0,_vue.h)("div",{class:"vxe-tree--node-item-switcher"},u&&(!t||I?_:M)?[(0,_vue.h)("div",{class:"vxe-tree--node-item-icon",onClick(e){ve(e,a)}},k?(0,_vn.getSlotVNs)(k(h)):[(0,_vue.h)("i",{class:L?s||(0,_ui.getIcon)().TREE_NODE_LOADED:v?n||(0,_ui.getIcon)().TREE_NODE_OPEN:d||(0,_ui.getIcon)().TREE_NODE_CLOSE})])]:[]),((t,e)=>{var a=S["showRadio"],{showIcon:r,checkMethod:l,visibleMethod:o}=F.value,o=!o||o({$tree:z,node:t});let i=!!l;return a&&r&&o?(l&&(i=!l({$tree:z,node:t})),(0,_vue.h)("div",{class:["vxe-tree--radio-option",{"is--checked":e,"is--disabled":i}],onClick:e=>{i||ge(e,t)}},[(0,_vue.h)("span",{class:["vxe-radio--icon",e?(0,_ui.getIcon)().RADIO_CHECKED:(0,_ui.getIcon)().RADIO_UNCHECKED]})])):(0,_ui.renderEmptyElement)(z)})(a,N),((t,e,a)=>{var r=S["showCheckbox"],{showIcon:l,checkMethod:o,visibleMethod:i}=R.value,e=ee(e),i=!i||i({$tree:z,node:t});let n=!!o;return r&&l&&i?(o&&(n=!o({$tree:z,node:t})),(0,_vue.h)("div",{class:["vxe-tree--checkbox-option",{"is--checked":a,"is--indeterminate":e,"is--disabled":n}],onClick:e=>{n||pe(e,t)}},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",e?(0,_ui.getIcon)().CHECKBOX_INDETERMINATE:a?(0,_ui.getIcon)().CHECKBOX_CHECKED:(0,_ui.getIcon)().CHECKBOX_UNCHECKED]})])):(0,_ui.renderEmptyElement)(z)})(a,e,b),(0,_vue.h)("div",{class:"vxe-tree--node-item-inner"},[(0,_vue.h)("div",{class:"vxe-tree--node-item-title"},y?(0,_vn.getSlotVNs)(y(h)):""+g),E?(0,_vue.h)("div",{class:"vxe-tree--node-item-extra"},(0,_vn.getSlotVNs)(E(h))):(0,_ui.renderEmptyElement)(z)])])])},_e=e=>{var t=S["transform"];const a=U["treeExpandedMaps"],r=H.value;if(!e.length)return[(0,_vue.h)("div",{class:"vxe-tree--empty-placeholder"},(0,_ui.getI18n)("vxe.tree.searchEmpty"))];const l=[];return e.forEach(t?e=>{var t=V(e);l.push(xe(e,t))}:e=>{var t=V(e),e=(l.push(xe(e,t)),_xeUtils.default.get(e,r));e&&e.length&&a[t]&&l.push(..._e(e))}),l};const y=(0,_vue.ref)(0),E=((0,_vue.watch)(()=>S.data?S.data.length:0,()=>{y.value++}),(0,_vue.watch)(()=>S.data,()=>{y.value++}),(0,_vue.watch)(y,()=>{a(S.data||[])}),(0,_vue.watch)(()=>S.checkNodeKey,e=>{w.selectRadioKey=(0,_util.enNodeValue)(e)}),(0,_vue.ref)(0)),N=((0,_vue.watch)(()=>S.checkNodeKeys?S.checkNodeKeys.length:0,()=>{E.value++}),(0,_vue.watch)(()=>S.checkNodeKeys,()=>{E.value++}),(0,_vue.watch)(E,()=>{var e;e=S.checkNodeKeys||[],U.selectCheckboxMaps={},u(e,!0)}),(0,_vue.watch)(()=>S.filterValue,()=>{re(new Event("filter"))}),(0,_vue.ref)(0));return(0,_vue.watch)(()=>S.height,()=>{N.value++}),(0,_vue.watch)(()=>S.minHeight,()=>{N.value++}),(0,_vue.watch)(()=>S.maxHeight,()=>{N.value++}),(0,_vue.watch)(N,()=>{m()}),(0,_vue.onMounted)(()=>{var e,t,a;S.autoResize&&(e=g.value,t=te(),a=_ui.globalResize.create(()=>{S.autoResize&&m()}),e&&a.observe(e),t&&a.observe(t),U.resizeObserver=a),_ui.globalEvents.on(z,"resize",fe)}),(0,_vue.onUnmounted)(()=>{var e=U["resizeObserver"];e&&e.disconnect(),_ui.globalEvents.off(z,"resize"),_xeUtils.default.assign(U,createInternalData())}),a(S.data||[]),z.renderVN=()=>{var{loading:e,trigger:t,showLine:a}=S,{bodyHeight:r,topSpaceHeight:l,treeList:o}=w,i=M.value,n=F.value,d=R.value,s=W.value,u=X.value,c=G.value;const h=T.loading;var v=T.header,p=T.footer;return(0,_vue.h)("div",{ref:g,class:["vxe-tree",{["size--"+i]:i,"show--line":a,"checkbox--highlight":d.highlight,"radio--highlight":n.highlight,"node--hover":u,"node--trigger":"node"===t,"is--loading":e}]},[v?(0,_vue.h)("div",{ref:L,class:"vxe-tree--header-wrapper"},v({$tree:z})):(0,_ui.renderEmptyElement)(z),(0,_vue.h)("div",{ref:f,class:"vxe-tree--node-list-wrapper",style:c,onScroll:de},[(0,_vue.h)("div",{class:"vxe-tree--y-space",style:{height:r?r+"px":""}}),(0,_vue.h)("div",{ref:D,class:"vxe-tree--node-list-body",style:{transform:`translateY(${l}px)`}},_e(o))]),p?(0,_vue.h)("div",{ref:I,class:"vxe-tree--footer-wrapper"},p({$tree:z})):(0,_ui.renderEmptyElement)(z),(0,_vue.h)(_loading.default,{class:"vxe-tree--loading",modelValue:e,icon:s.icon,text:s.text},h?{default:()=>h({$tree:z})}:{})])},z},render(){return this.renderVN()}});
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_ui=require("../../ui"),_util=require("./util"),_log=require("../../ui/src/log"),_xeUtils=_interopRequireDefault(require("xe-utils")),_vn=require("../../ui/src/vn"),_dom=require("../../ui/src/dom"),_loading=_interopRequireDefault(require("../../loading/src/loading"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function getNodeUniqueId(){return _xeUtils.default.uniqueId("node_")}function createInternalData(){return{treeFullData:[],afterTreeList:[],afterVisibleList:[],nodeMaps:{},selectCheckboxMaps:{},indeterminateRowMaps:{},treeExpandedMaps:{},treeExpandLazyLoadedMaps:{},lastScrollLeft:0,lastScrollTop:0,scrollYStore:{startIndex:0,endIndex:0,visibleSize:0,offsetSize:0,rowHeight:0},lastScrollTime:0}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTree",props:{data:Array,autoResize:{type:Boolean,default:()=>(0,_ui.getConfig)().tree.autoResize},height:[String,Number],maxHeight:{type:[String,Number],default:()=>(0,_ui.getConfig)().tree.maxHeight},minHeight:{type:[String,Number],default:()=>(0,_ui.getConfig)().tree.minHeight},loading:Boolean,loadingConfig:Object,accordion:{type:Boolean,default:()=>(0,_ui.getConfig)().tree.accordion},childrenField:{type:String,default:()=>(0,_ui.getConfig)().tree.childrenField},valueField:{type:String,default:()=>(0,_ui.getConfig)().tree.valueField},keyField:{type:String,default:()=>(0,_ui.getConfig)().tree.keyField},parentField:{type:String,default:()=>(0,_ui.getConfig)().tree.parentField},titleField:{type:String,default:()=>(0,_ui.getConfig)().tree.titleField},hasChildField:{type:String,default:()=>(0,_ui.getConfig)().tree.hasChildField},mapChildrenField:{type:String,default:()=>(0,_ui.getConfig)().tree.mapChildrenField},transform:Boolean,isCurrent:Boolean,isHover:Boolean,expandAll:Boolean,expandNodeKeys:Array,showLine:{type:Boolean,default:()=>(0,_ui.getConfig)().tree.showLine},trigger:String,indent:{type:Number,default:()=>(0,_ui.getConfig)().tree.indent},showRadio:{type:Boolean,default:()=>(0,_ui.getConfig)().tree.showRadio},checkNodeKey:{type:[String,Number],default:()=>(0,_ui.getConfig)().tree.checkNodeKey},radioConfig:Object,showCheckbox:{type:Boolean,default:()=>(0,_ui.getConfig)().tree.showCheckbox},checkNodeKeys:{type:Array,default:()=>(0,_ui.getConfig)().tree.checkNodeKeys},checkboxConfig:Object,nodeConfig:Object,lazy:Boolean,toggleMethod:Function,loadMethod:Function,showIcon:{type:Boolean,default:!0},iconOpen:{type:String,default:()=>(0,_ui.getConfig)().tree.iconOpen},iconClose:{type:String,default:()=>(0,_ui.getConfig)().tree.iconClose},iconLoaded:{type:String,default:()=>(0,_ui.getConfig)().tree.iconLoaded},filterValue:[String,Number],filterConfig:Object,size:{type:String,default:()=>(0,_ui.getConfig)().tree.size||(0,_ui.getConfig)().size},virtualYConfig:Object},emits:["update:modelValue","update:checkNodeKey","update:checkNodeKeys","node-click","node-dblclick","current-change","radio-change","checkbox-change","load-success","load-error","scroll"],setup(S,e){const{emit:r,slots:T}=e;var b=_xeUtils.default.uniqueId();const M=(0,_ui.useSize)(S)["computeSize"],g=(0,_vue.ref)(),L=(0,_vue.ref)(),I=(0,_vue.ref)(),f=(0,_vue.ref)(),D=(0,_vue.ref)(),w=(0,_vue.reactive)({parentHeight:0,customHeight:0,customMinHeight:0,customMaxHeight:0,currentNode:null,scrollYLoad:!1,bodyHeight:0,topSpaceHeight:0,selectRadioKey:(0,_util.enNodeValue)(S.checkNodeKey),treeList:[],updateExpandedFlag:1,updateCheckboxFlag:1}),U=createInternalData(),B={refElem:g},A=(0,_vue.computed)(()=>S.titleField||"title"),Y=(0,_vue.computed)(()=>S.keyField||"id"),c=(0,_vue.computed)(()=>{var e=Y.value;return S.valueField||e}),q=(0,_vue.computed)(()=>S.parentField||"parentId"),H=(0,_vue.computed)(()=>S.childrenField||"children"),x=(0,_vue.computed)(()=>S.mapChildrenField||"mapChildren"),$=(0,_vue.computed)(()=>S.hasChildField||"hasChild"),j=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().tree.virtualYConfig,S.virtualYConfig)),P=(0,_vue.computed)(()=>{var e=h.value["isCurrent"];return _xeUtils.default.isBoolean(e)?e:S.isCurrent}),X=(0,_vue.computed)(()=>{var e=h.value["isHover"];return _xeUtils.default.isBoolean(e)?e:S.isHover}),F=(0,_vue.computed)(()=>Object.assign({showIcon:!0},(0,_ui.getConfig)().tree.radioConfig,S.radioConfig)),R=(0,_vue.computed)(()=>Object.assign({showIcon:!0},(0,_ui.getConfig)().tree.checkboxConfig,S.checkboxConfig)),h=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().tree.nodeConfig,S.nodeConfig)),W=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().tree.loadingConfig,S.loadingConfig)),G=(0,_vue.computed)(()=>{var{customHeight:e,customMinHeight:t,customMaxHeight:a}=w,r={};return e&&(r.height=(0,_dom.toCssUnit)(e)),t&&(r.minHeight=(0,_dom.toCssUnit)(t)),a&&(r.maxHeight=(0,_dom.toCssUnit)(a)),r}),J=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().tree.filterConfig,S.filterConfig)),Q={computeChildrenField:H,computeMapChildrenField:x,computeRadioOpts:F,computeCheckboxOpts:R,computeNodeOpts:h},z={xID:b,props:S,context:e,internalData:U,reactData:w,getRefMaps:()=>B,getComputeMaps:()=>Q},V=e=>{var t=c.value,e=_xeUtils.default.get(e,t);return(0,_util.enNodeValue)(e)};const Z=e=>{var t=w["selectRadioKey"];return t===e};const K=e=>{var t=w["updateCheckboxFlag"],a=U["selectCheckboxMaps"];return!(!t||!a[e])};const ee=e=>{var t=w["updateCheckboxFlag"],a=U["indeterminateRowMaps"];return!(!t||!a[e])};const s=e=>{r("update:checkNodeKeys",e)},o=e=>{r("update:checkNodeKey",e)},v=(e,t)=>{const a=U["nodeMaps"];if(e){_xeUtils.default.isArray(e)||(e=[e]);const r=[];e.forEach(e=>{e=(0,_util.enNodeValue)(e),e=a[e];e&&r.push(e.item)}),n(r,t)}return(0,_vue.nextTick)()},n=(e,a)=>{var t=S["transform"];const r=U["selectCheckboxMaps"];var l=x.value,o=H.value,i=R.value["checkStrictly"],n=e=>{var t=V(e);a?r[t]||(r[t]=e):r[t]&&delete r[t]};i?e.forEach(n):_xeUtils.default.eachTree(e,n,{children:t?l:o}),w.updateCheckboxFlag++,u()},l=(e,t,a)=>{t?a[e]||(a[e]=!0):a[e]&&delete a[e]},O=(e,t,a)=>{r(e,(0,_ui.createEvent)(a,{$tree:z},t))},te=()=>{var e=g.value;return e?e.parentElement:null},t=e=>{var t=w["parentHeight"],e=S[e];let a=0;return a=e?"100%"===e||"auto"===e?t:(a=(0,_dom.isScale)(e)?Math.floor((_xeUtils.default.toInteger(e)||1)/100*t):_xeUtils.default.toNumber(e),Math.max(40,a)):a},p=()=>{w.customHeight=t("height"),w.customMinHeight=t("minHeight"),w.customMaxHeight=t("maxHeight"),!w.scrollYLoad||w.customHeight||w.customMinHeight||(w.customHeight=300)},ae=()=>{var e=S["transform"];const{afterTreeList:t,nodeMaps:o}=U;var a=H.value,r=x.value;_xeUtils.default.eachTree(t,(e,t,a)=>{var r=V(e),l=o[r];l?(l.items=a,l.treeIndex=t):(l={item:e,index:t,items:a,parent:parent,nodes:[],level:0,treeIndex:t,lineCount:0,treeLoaded:!1},o[r]=l)},{children:e?r:a})},_=()=>{var e=S["transform"];const{afterTreeList:t,treeExpandedMaps:n}=U;var a=x.value;const d={};if(e){const s=[];return _xeUtils.default.eachTree(t,(e,t,a,r,l)=>{var o=V(e),i=V(l);(!l||d[i]&&n[i])&&(d[o]=1,s.push(e))},{children:a}),le(s),U.afterVisibleList=s}return U.afterVisibleList},m=r=>{var e=w["scrollYLoad"],t=U["scrollYStore"];let a=U.afterVisibleList;if(r){{var{transform:r,filterValue:l}=S,{treeFullData:o,lastFilterValue:i}=U;const s=A.value;var n=H.value,d=x.value;const{autoExpandAll:u,beforeFilterMethod:c,filterMethod:h,afterFilterMethod:v}=J.value;let e=o,t=e,a="";if(l||0===l){a=""+l;l=h?e=>h({$tree:z,node:e,filterValue:a}):e=>-1<String(e[s]).toLowerCase().indexOf(a);const p={$tree:z,filterValue:a};c&&c(p),e=r?t=_xeUtils.default.searchTree(o,l,{original:!0,isEvery:!0,children:n,mapChildren:d}):o.filter(l),U.lastFilterValue=a,(0,_vue.nextTick)(()=>{u?z.setAllExpandNode(!0).then(()=>{v&&v(p)}):v&&v(p)})}else{if(r&&(t=_xeUtils.default.searchTree(o,()=>!0,{original:!0,isEvery:!0,children:n,mapChildren:d}),e=t,i)){const g={$tree:z,filterValue:a};c&&c(g),(0,_vue.nextTick)(()=>{u?z.clearAllExpandNode().then(()=>{v&&v(g)}):v&&v(g)})}U.lastFilterValue=""}U.afterVisibleList=e,U.afterTreeList=t,ae()}a=_()}l=e?a.slice(t.startIndex,t.endIndex):a.slice(0);w.treeList=l},re=_xeUtils.default.debounce(()=>m(!0),350,{trailing:!0}),a=a=>{const{expandAll:r,expandNodeKeys:l,transform:e}=S,{initialized:o,scrollYStore:t}=U;var i=Y.value,n=q.value,d=H.value,i=e?_xeUtils.default.toArrayTree(a,{key:i,parentKey:n,mapChildren:d}):a?a.slice(0):[],n=(U.treeFullData=i,Object.assign(t,{startIndex:0,endIndex:1,visibleSize:0}),le(i));{d=U.treeFullData;const s=c.value,u=(i=H.value,{});_xeUtils.default.eachTree(d,(e,t,a,r,l,o)=>{let i=V(e);i||(i=getNodeUniqueId(),_xeUtils.default.set(e,s,i)),u[i]={item:e,index:t,items:a,parent:l,nodes:o,level:o.length,treeIndex:t,lineCount:0,treeLoaded:!1}},{children:i}),U.nodeMaps=u}return m(!0),!n||S.height||S.maxHeight||(0,_log.errLog)("vxe.error.reqProp",["[tree] height | max-height | virtual-y-config.enabled=false"]),ie().then(()=>{o||a&&a.length&&(U.initialized=!0,r?z.setAllExpandNode(!0):l&&l.length&&z.setExpandByNodeId(l,!0),v(S.checkNodeKeys||[],!0)),p();{const{lastScrollLeft:e,lastScrollTop:t}=U;se().then(()=>{if(e||t)return U.lastScrollLeft=0,U.lastScrollTop=0,scrollTo(e,t)})}})},le=e=>{var t=S["transform"],a=j.value,e=e||U.treeFullData,t=!!t&&!!a.enabled&&-1<a.gt&&(0===a.gt||a.gt<e.length);return w.scrollYLoad=t},i=()=>{var e=w["scrollYLoad"],{scrollYStore:t,afterVisibleList:a}=U;w.bodyHeight=e?a.length*t.rowHeight:0,w.topSpaceHeight=e?Math.max(t.startIndex*t.rowHeight,0):0},oe=()=>{m(),i()},ie=()=>(0,_vue.nextTick)().then(()=>{var e=w["scrollYLoad"],t=U["scrollYStore"],a=D.value,r=j.value;let l=0,o;(o=a?o||a.children[0]:o)&&(l=o.offsetHeight),l=Math.max(20,l),t.rowHeight=l,(e?(a=f.value,e=Math.max(8,a?Math.ceil(a.clientHeight/l):0),a=Math.max(0,Math.min(2,_xeUtils.default.toNumber(r.oSize))),t.offsetSize=a,t.visibleSize=e,t.endIndex=Math.max(t.startIndex,e+a,t.endIndex),oe):i)()}),d=(e,t)=>{var a=f.value;return e&&!_xeUtils.default.isNumber(e)&&(t=e.top,e=e.left),a&&(_xeUtils.default.isNumber(e)&&(a.scrollLeft=e),_xeUtils.default.isNumber(t))&&(a.scrollTop=t),w.scrollYLoad?new Promise(e=>{setTimeout(()=>{(0,_vue.nextTick)(()=>{e()})},50)}):(0,_vue.nextTick)()},C=()=>{var e,t,a,r=U["scrollYStore"],r=r["rowHeight"],l=g.value;return l&&l.clientWidth&&l.clientHeight?(l=te(),e=L.value,t=I.value,e=e?e.clientHeight:0,t=t?t.clientHeight:0,l&&(a=(0,_dom.getPaddingTopBottomSize)(l),w.parentHeight=Math.max(e+t+r,l.clientHeight-a-e-t)),p(),ie().then(()=>{p(),i()})):(0,_vue.nextTick)()},ne=()=>{var e=U["scrollYStore"],{startIndex:t,endIndex:a,visibleSize:r,offsetSize:l,rowHeight:o}=e,i=f.value;i&&(i=i.scrollTop,i=Math.floor(i/o),o=Math.max(0,i-1-l),l=i+r+l,!(i<=t||a-r-1<=i)||t===o&&a===l||(e.startIndex=o,e.endIndex=l,oe()))},de=e=>{var t=e.target,a=t.scrollTop,t=t.scrollLeft,r=t!==U.lastScrollLeft,l=a!==U.lastScrollTop;U.lastScrollTop=a,U.lastScrollLeft=t,w.scrollYLoad&&ne(),U.lastScrollTime=Date.now(),O("scroll",{scrollLeft:t,scrollTop:a,isX:r,isY:l},e)},se=()=>{var e=f.value;return e&&(e.scrollTop=0,e.scrollLeft=0),U.lastScrollTop=0,(U.lastScrollLeft=0,_vue.nextTick)()},ue=(e,t)=>{var{showRadio:a,showCheckbox:r,trigger:l}=S,o=F.value,i=R.value;let n=!1,d=!1,s=!1,u=!1;P.value?(n=!0,((e,t)=>{e.preventDefault();const a=h.value,{currentMethod:r,trigger:l}=a,o=H.value,i=_xeUtils.default.get(t,o),n=i&&i.length;let d=!!r;if(l==="child"){if(n)return}else if(l==="parent")if(!n)return;if(r)d=!r({node:t});var s;d||(s=!0,w.currentNode=t,O("current-change",{node:t,checked:!0},e))})(e,t)):w.currentNode&&(w.currentNode=null),"node"===l&&(u=!0,ve(e,t)),a&&"node"===o.trigger&&(d=!0,ge(e,t)),r&&"node"===i.trigger&&(s=!0,pe(e,t)),O("node-click",{node:t,triggerCurrent:n,triggerRadio:d,triggerCheckbox:s,triggerExpand:u},e)},ce=o=>{var e=R.value;const a=S["loadMethod"],i=e["checkStrictly"];return new Promise(e=>{if(a){var t=U["nodeMaps"];const r=V(o),l=t[r];U.treeExpandLazyLoadedMaps[r]=!0,Promise.resolve(a({$tree:z,node:o})).then(a=>{var e=U["treeExpandLazyLoadedMaps"];if(l.treeLoaded=!0,e[r]&&(e[r]=!1),a=_xeUtils.default.isArray(a)?a:[])return z.loadChildrenNode(o,a).then(e=>{var t=U["treeExpandedMaps"];return e.length&&!t[r]&&(t[r]=!0),w.updateExpandedFlag++,!i&&z.isCheckedByCheckboxNodeId(r)&&n(e,!0),O("load-success",{node:o,data:a},new Event("load-success")),(0,_vue.nextTick)()});O("load-success",{node:o,data:a},new Event("load-success"))}).catch(e=>{var t=U["treeExpandLazyLoadedMaps"];l.treeLoaded=!1,t[r]&&(t[r]=!1),O("load-error",{node:o,data:e},new Event("load-error"))}).finally(()=>(_(),m(),C()))}else e()})},he=(e,t)=>{const{lazy:r,accordion:a,toggleMethod:l}=S,{treeExpandLazyLoadedMaps:o,treeExpandedMaps:i}=U,n=U["nodeMaps"],d=H.value,s=$.value,u=[];let c=l?e.filter(e=>l({$tree:z,expanded:t,node:e})):e;a&&(c=c.length?[c[c.length-1]]:[],e=V(c[0]),e=n[e])&&e.items.forEach(e=>{e=V(e);i[e]&&delete i[e]});const h=[];return t?c.forEach(e=>{var t,a=V(e);i[a]||(t=n[a],r&&e[s]&&!t.treeLoaded&&!o[a]?u.push(ce(e)):e[d]&&e[d].length&&(i[a]=!0,h.push(e)))}):c.forEach(e=>{var t=V(e);i[t]&&(delete i[t],h.push(e))}),w.updateExpandedFlag++,_(),m(),Promise.all(u).then(()=>C())},ve=(e,t)=>{var a=S["lazy"],{treeExpandedMaps:r,treeExpandLazyLoadedMaps:l}=U,o=V(t),r=!r[o];e.stopPropagation(),a&&l[o]||he([t],r)},u=()=>{var e=S["transform"];const{selectCheckboxMaps:d,indeterminateRowMaps:s,afterTreeList:t}=U,r=H.value;var a=x.value;const{checkStrictly:l,checkMethod:u}=R.value;if(!l){const o={},i=[];_xeUtils.default.eachTree(t,e=>{var t=V(e),a=e[r];a&&a.length&&!o[t]&&(o[t]=1,i.unshift([e,t,a]))},{children:e?a:r}),i.forEach(e=>{var t=e[0],a=e[1],e=e[2];let r=0,l=0,o=0;var i=e.length;e.forEach(u?e=>{var t=V(e),a=d[t];u({$tree:z,node:e})?(a?r++:s[t]&&l++,o++):a?r++:s[t]&&l++}:e=>{e=V(e);d[e]?r++:s[e]&&l++,o++});let n=!1;e=!(n=0<i?0<o?(0<r||0<l)&&r>=o:0<r&&r>=o||!!d[a]:d[a])&&(0<r||0<l);n?(d[a]=t,s[a]&&delete s[a]):(d[a]&&delete d[a],e?s[a]=t:s[a]&&delete s[a])}),w.updateCheckboxFlag++}},pe=(e,a)=>{e.preventDefault(),e.stopPropagation();var r=S["transform"];const l=U["selectCheckboxMaps"];var o=H.value,i=x.value,{checkStrictly:n,checkMethod:d}=R.value;let t=!!d;if(!(t=d?!d({$tree:z,node:a}):t)){d=V(a);let t=!1;l[d]?delete l[d]:(t=!0,l[d]=a),n||_xeUtils.default.eachTree(_xeUtils.default.get(a,r?i:o),e=>{e=V(e);t?l[e]||(l[e]=!0):l[e]&&delete l[e]},{children:r?i:o}),w.updateCheckboxFlag++,u();d=_xeUtils.default.keys(l).map(_util.deNodeValue);s(d),O("checkbox-change",{node:a,value:d,checked:t},e)}},ge=(e,t)=>{e.preventDefault(),e.stopPropagation();var a,r=F.value["checkMethod"];let l=!!r;(l=r?!r({$tree:z,node:t}):l)||(r=V(t),a=(0,_util.deNodeValue)(r),w.selectRadioKey=r,o(a),O("radio-change",{node:t,value:a,checked:!0},e))},fe=()=>{var e=g.value;e&&e.clientWidth&&C()},y={dispatchEvent:O,getNodeId:V,getNodeById(e){var t=U["nodeMaps"];if(e){t=t[e];if(t)return t.item}return null},loadData(e){return a(e||[])},reloadData(e){return a(e||[])},clearCurrentNode(){return(w.currentNode=null,_vue.nextTick)()},getCurrentNodeId(){var e=w["currentNode"];return e?(0,_util.deNodeValue)(V(e)):null},getCurrentNode(){var e=w["currentNode"],t=U["nodeMaps"];if(e){t=t[V(e)];if(t)return t.item}return null},setCurrentNodeId(e){var t=U["nodeMaps"],t=t[(0,_util.enNodeValue)(e)];return w.currentNode=t?t.item:null,(0,_vue.nextTick)()},setCurrentNode(e){return w.currentNode=e,(0,_vue.nextTick)()},clearRadioNode(){return w.selectRadioKey=null,o(null),(0,_vue.nextTick)()},getRadioNodeId(){return w.selectRadioKey||null},getRadioNode(){var e=w["selectRadioKey"],t=U["nodeMaps"];if(e){t=t[e];if(t)return t.item}return null},setRadioNodeId(e){return w.selectRadioKey=(0,_util.enNodeValue)(e),o(e),(0,_vue.nextTick)()},setRadioNode(e){return e?(e=V(e),w.selectRadioKey=e,o((0,_util.deNodeValue)(e))):o(null),(0,_vue.nextTick)()},setCheckboxNode(e,t){return e&&(_xeUtils.default.isArray(e)||(e=[e]),n(e,t)),s(z.getCheckboxNodeIds()),(0,_vue.nextTick)()},setCheckboxByNodeId(e,t){return v(e,t),s(z.getCheckboxNodeIds()),(0,_vue.nextTick)()},getCheckboxNodeIds(){var e=U["selectCheckboxMaps"];const a=[];return _xeUtils.default.each(e,(e,t)=>{a.push((0,_util.deNodeValue)(t))}),a},getCheckboxNodes(){const{nodeMaps:a,selectCheckboxMaps:e}=U,r=[];return _xeUtils.default.each(e,(e,t)=>{t=a[t];t&&r.push(t.item)}),r},clearCheckboxNode(){return U.indeterminateRowMaps={},U.selectCheckboxMaps={},w.updateCheckboxFlag++,s([]),u(),(0,_vue.nextTick)().then(()=>({checkNodeKeys:[],checkNodes:[]}))},setAllCheckboxNode(e){var t=S["transform"];const a={};var r=H.value,l=x.value;const o=[],i=[];return e&&_xeUtils.default.eachTree(U.afterTreeList,e=>{var t=V(e);o.push(t),i.push(e),a[t]=!0},{children:t?l:r}),U.indeterminateRowMaps={},U.selectCheckboxMaps=a,w.updateCheckboxFlag++,u(),(0,_vue.nextTick)().then(()=>({checkNodeKeys:o,checkNodes:i}))},clearExpandNode(){return y.clearAllExpandNode()},clearAllExpandNode(){var{nodeMaps:e,scrollYStore:t}=U;return _xeUtils.default.each(e,e=>{e.treeLoaded=!1}),U.treeExpandedMaps={},w.updateExpandedFlag++,w.topSpaceHeight=0,t.startIndex=0,t.endIndex=1,_(),m(),C()},setExpandByNodeId(e,t){const a=U["treeExpandedMaps"];return e&&((e=_xeUtils.default.isArray(e)?e:[e]).forEach(e=>{e=(0,_util.enNodeValue)(e);l(e,t,a)}),w.updateExpandedFlag++),_(),m(),C()},getExpandNodeIds(){var e=U["treeExpandedMaps"];const a=[];return _xeUtils.default.each(e,(e,t)=>{a.push((0,_util.deNodeValue)(t))}),a},getExpandNodes(){const{nodeMaps:a,treeExpandedMaps:e}=U,r=[];return _xeUtils.default.each(e,(e,t)=>{t=a[t];t&&r.push(t.item)}),r},setExpandNode(e,t){const a=U["treeExpandedMaps"];return e&&((e=_xeUtils.default.isArray(e)?e:[e]).forEach(e=>{e=V(e);l(e,t,a)}),w.updateExpandedFlag++),_(),m(),C()},toggleExpandByNodeId(e){const t=U["treeExpandedMaps"];return e&&((e=_xeUtils.default.isArray(e)?e:[e]).forEach(e=>{e=(0,_util.enNodeValue)(e);l(e,!t[""+e],t)}),w.updateExpandedFlag++),_(),m(),C()},toggleExpandNode(e){const t=U["treeExpandedMaps"];return e&&((e=_xeUtils.default.isArray(e)?e:[e]).forEach(e=>{e=V(e);l(e,!t[e],t)}),w.updateExpandedFlag++),_(),m(),C()},setAllExpandNode(e){var t=S["transform"];const a=w["scrollYLoad"],{scrollYStore:r,treeExpandedMaps:l}=U,o=H.value;var i=x.value;return e?_xeUtils.default.eachTree(U.afterTreeList,e=>{var t=_xeUtils.default.get(e,o);t&&t.length&&(t=V(e),l[t]=!0)},{children:t?i:o}):U.treeExpandedMaps={},w.updateExpandedFlag++,w.topSpaceHeight=0,r.startIndex=0,r.endIndex=1,_(),m(),C().then(()=>(a&&ne(),C()))},reloadExpandNode(e){var t=S["lazy"];return t?(y.clearExpandLoaded(e),ce(e)):C()},clearExpandLoaded(e){var t=S["lazy"],a=U["nodeMaps"];return t&&(t=a[V(e)])&&(t.treeLoaded=!1),C()},loadChildrenNode(t,e){const{lazy:a,transform:r}=S,n=U["nodeMaps"];if(!a)return Promise.resolve([]);const l=H.value,o=x.value,d=n[V(t)],s=d?d.level:0,u=d?d.nodes:[];return(e=>{const a=c.value;return Promise.resolve(e.map(e=>{var t,e=Object.assign({},e);return V(e)||(t=getNodeUniqueId(),_xeUtils.default.set(e,a,t)),e}))})(e).then(e=>(_xeUtils.default.eachTree(e,(e,t,a,r,l,o)=>{var i=V(e);n[i]={item:e,index:-1,items:a,parent:l||d.item,nodes:u.concat(o),level:s+o.length,treeIndex:-1,lineCount:0,treeLoaded:!1}},{children:l}),t[l]=e,r&&(t[o]=e),ae(),e))},isExpandByNode:e=>{var t=w["updateExpandedFlag"],a=U["treeExpandedMaps"],e=V(e);return!(!t||!a[e])},isCheckedByRadioNodeId:Z,isCheckedByRadioNode:e=>Z(V(e)),isCheckedByCheckboxNodeId:K,isIndeterminateByCheckboxNode:e=>ee(V(e)),isCheckedByCheckboxNode:e=>K(V(e)),getCheckboxIndeterminateNodes(){const{nodeMaps:a,indeterminateRowMaps:e}=U,r=[];return _xeUtils.default.each(e,(e,t)=>{t=a[t];t&&r.push(t.item)}),r},recalculate:C,scrollTo:d,scrollToNode(e){return z.scrollToNodeId(V(e))},scrollToNodeId(t){var e=S["transform"];const{scrollYStore:a,afterTreeList:r}=U;var l=H.value,o=x.value;const i=f.value;if(t&&i)if(e){e=_xeUtils.default.findTree(r,e=>V(e)===t,{children:e?o:l});if(e)return z.setExpandNode(e.nodes,!0).then(()=>{var e=_xeUtils.default.findIndexOf(U.afterVisibleList,e=>V(e)===t);if(-1<e)return e=Math.max(0,(e-1)*a.rowHeight),d(i.scrollLeft,e)})}else{o=i.querySelector(`.vxe-tree--node-wrapper[nodeid="${t}"]`);if(o)return d(i.scrollLeft,o.offsetTop)}return C()},clearScroll:se};Object.assign(z,y,{});const xe=(a,e)=>{var{lazy:t,showRadio:r,showCheckbox:l,showLine:o,indent:i,iconOpen:n,iconClose:d,iconLoaded:s,showIcon:u}=S,{currentNode:c,selectRadioKey:h,updateExpandedFlag:v}=w,{afterTreeList:p,nodeMaps:g,treeExpandedMaps:f,treeExpandLazyLoadedMaps:x}=U,_=H.value,m=A.value,C=$.value,_=_xeUtils.default.get(a,_),_=_&&_.length,y=T.icon,N=T.title,k=T.extra,v=v&&f[e],f=g[e],g=_xeUtils.default.get(a,m),m=f.level;let E=!1,b=(r&&(E=e===String(h)),!1),M=(l&&(b=K(e)),!1),L=!1,I=!1;t&&(L=!!x[e],M=a[C],I=!!f.treeLoaded);r=f.items[f.treeIndex-1],h={node:a,isExpand:v};return(0,_vue.h)("div",{key:e,class:["vxe-tree--node-wrapper","node--level-"+m],nodeid:e},[(0,_vue.h)("div",{class:["vxe-tree--node-item",{"is--current":c&&e===V(c),"is-radio--checked":E,"is-checkbox--checked":b}],style:{paddingLeft:(m-1)*(i||1)+"px"},onClick(e){ue(e,a)},onDblclick(e){var t;e=e,t=a,O("node-dblclick",{node:t},e)}},[o?(0,_vue.h)("div",{class:"vxe-tree--node-line-wrapper"},[(0,_vue.h)("div",{class:"vxe-tree--node-line",style:{height:`${V(p[0])===e?1:(0,_util.calcTreeLine)(z,a,r)}px`}})]):(0,_ui.renderEmptyElement)(z),(0,_vue.h)("div",{class:"vxe-tree--node-item-switcher"},u&&(!t||I?_:M)?[(0,_vue.h)("div",{class:"vxe-tree--node-item-icon",onClick(e){ve(e,a)}},y?(0,_vn.getSlotVNs)(y(h)):[(0,_vue.h)("i",{class:L?s||(0,_ui.getIcon)().TREE_NODE_LOADED:v?n||(0,_ui.getIcon)().TREE_NODE_OPEN:d||(0,_ui.getIcon)().TREE_NODE_CLOSE})])]:[]),((t,e)=>{var a=S["showRadio"],{showIcon:r,checkMethod:l,visibleMethod:o}=F.value,o=!o||o({$tree:z,node:t});let i=!!l;return a&&r&&o?(l&&(i=!l({$tree:z,node:t})),(0,_vue.h)("div",{class:["vxe-tree--radio-option",{"is--checked":e,"is--disabled":i}],onClick:e=>{i||ge(e,t)}},[(0,_vue.h)("span",{class:["vxe-radio--icon",e?(0,_ui.getIcon)().RADIO_CHECKED:(0,_ui.getIcon)().RADIO_UNCHECKED]})])):(0,_ui.renderEmptyElement)(z)})(a,E),((t,e,a)=>{var r=S["showCheckbox"],{showIcon:l,checkMethod:o,visibleMethod:i}=R.value,e=ee(e),i=!i||i({$tree:z,node:t});let n=!!o;return r&&l&&i?(o&&(n=!o({$tree:z,node:t})),(0,_vue.h)("div",{class:["vxe-tree--checkbox-option",{"is--checked":a,"is--indeterminate":e,"is--disabled":n}],onClick:e=>{n||pe(e,t)}},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",e?(0,_ui.getIcon)().CHECKBOX_INDETERMINATE:a?(0,_ui.getIcon)().CHECKBOX_CHECKED:(0,_ui.getIcon)().CHECKBOX_UNCHECKED]})])):(0,_ui.renderEmptyElement)(z)})(a,e,b),(0,_vue.h)("div",{class:"vxe-tree--node-item-inner"},[(0,_vue.h)("div",{class:"vxe-tree--node-item-title"},N?(0,_vn.getSlotVNs)(N(h)):""+g),k?(0,_vue.h)("div",{class:"vxe-tree--node-item-extra"},(0,_vn.getSlotVNs)(k(h))):(0,_ui.renderEmptyElement)(z)])])])},_e=e=>{var t=S["transform"];const a=U["treeExpandedMaps"],r=H.value;if(!e.length)return[(0,_vue.h)("div",{class:"vxe-tree--empty-placeholder"},(0,_ui.getI18n)("vxe.tree.searchEmpty"))];const l=[];return e.forEach(t?e=>{var t=V(e);l.push(xe(e,t))}:e=>{var t=V(e),e=(l.push(xe(e,t)),_xeUtils.default.get(e,r));e&&e.length&&a[t]&&l.push(..._e(e))}),l};const N=(0,_vue.ref)(0),k=((0,_vue.watch)(()=>S.data?S.data.length:0,()=>{N.value++}),(0,_vue.watch)(()=>S.data,()=>{N.value++}),(0,_vue.watch)(N,()=>{a(S.data||[])}),(0,_vue.watch)(()=>S.checkNodeKey,e=>{w.selectRadioKey=(0,_util.enNodeValue)(e)}),(0,_vue.ref)(0)),E=((0,_vue.watch)(()=>S.checkNodeKeys?S.checkNodeKeys.length:0,()=>{k.value++}),(0,_vue.watch)(()=>S.checkNodeKeys,()=>{k.value++}),(0,_vue.watch)(k,()=>{var e;e=S.checkNodeKeys||[],U.selectCheckboxMaps={},v(e,!0)}),(0,_vue.watch)(()=>S.filterValue,()=>{re(new Event("filter"))}),(0,_vue.ref)(0));return(0,_vue.watch)(()=>S.height,()=>{E.value++}),(0,_vue.watch)(()=>S.minHeight,()=>{E.value++}),(0,_vue.watch)(()=>S.maxHeight,()=>{E.value++}),(0,_vue.watch)(E,()=>{C()}),(0,_vue.onMounted)(()=>{var e,t,a;S.autoResize&&(e=g.value,t=te(),a=_ui.globalResize.create(()=>{S.autoResize&&C()}),e&&a.observe(e),t&&a.observe(t),U.resizeObserver=a),_ui.globalEvents.on(z,"resize",fe)}),(0,_vue.onUnmounted)(()=>{var e=U["resizeObserver"];e&&e.disconnect(),_ui.globalEvents.off(z,"resize"),_xeUtils.default.assign(U,createInternalData())}),a(S.data||[]),z.renderVN=()=>{var{loading:e,trigger:t,showLine:a}=S,{bodyHeight:r,topSpaceHeight:l,treeList:o}=w,i=M.value,n=F.value,d=R.value,s=W.value,u=X.value,c=G.value;const h=T.loading;var v=T.header,p=T.footer;return(0,_vue.h)("div",{ref:g,class:["vxe-tree",{["size--"+i]:i,"show--line":a,"checkbox--highlight":d.highlight,"radio--highlight":n.highlight,"node--hover":u,"node--trigger":"node"===t,"is--loading":e}]},[v?(0,_vue.h)("div",{ref:L,class:"vxe-tree--header-wrapper"},v({$tree:z})):(0,_ui.renderEmptyElement)(z),(0,_vue.h)("div",{ref:f,class:"vxe-tree--node-list-wrapper",style:c,onScroll:de},[(0,_vue.h)("div",{class:"vxe-tree--y-space",style:{height:r?r+"px":""}}),(0,_vue.h)("div",{ref:D,class:"vxe-tree--node-list-body",style:{transform:`translateY(${l}px)`}},_e(o))]),p?(0,_vue.h)("div",{ref:I,class:"vxe-tree--footer-wrapper"},p({$tree:z})):(0,_ui.renderEmptyElement)(z),(0,_vue.h)(_loading.default,{class:"vxe-tree--loading",modelValue:e,icon:s.icon,text:s.text},h?{default:()=>h({$tree:z})}:{})])},z},render(){return this.renderVN()}});
|
|
@@ -51,6 +51,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
51
51
|
popupClassName: [String, Function],
|
|
52
52
|
prefixIcon: String,
|
|
53
53
|
placement: String,
|
|
54
|
+
lazyOptions: Array,
|
|
54
55
|
options: Array,
|
|
55
56
|
optionProps: Object,
|
|
56
57
|
zIndex: Number,
|
|
@@ -238,16 +239,27 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
238
239
|
});
|
|
239
240
|
const computeSelectLabel = (0, _vue.computed)(() => {
|
|
240
241
|
const {
|
|
241
|
-
modelValue
|
|
242
|
+
modelValue,
|
|
243
|
+
lazyOptions
|
|
242
244
|
} = props;
|
|
243
245
|
const {
|
|
244
246
|
fullNodeMaps
|
|
245
247
|
} = internalData;
|
|
248
|
+
const valueField = computeValueField.value;
|
|
246
249
|
const labelField = computeLabelField.value;
|
|
247
250
|
const selectVals = _xeUtils.default.eqNull(modelValue) ? [] : _xeUtils.default.isArray(modelValue) ? modelValue : [modelValue];
|
|
248
251
|
return selectVals.map(val => {
|
|
249
252
|
const cacheItem = fullNodeMaps[val];
|
|
250
|
-
|
|
253
|
+
if (cacheItem) {
|
|
254
|
+
return cacheItem.item[labelField];
|
|
255
|
+
}
|
|
256
|
+
if (lazyOptions) {
|
|
257
|
+
const lazyItem = lazyOptions.find(item => item[valueField] === val);
|
|
258
|
+
if (lazyItem) {
|
|
259
|
+
return lazyItem[labelField];
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
return val;
|
|
251
263
|
}).join(', ');
|
|
252
264
|
});
|
|
253
265
|
const computePopupWrapperStyle = (0, _vue.computed)(() => {
|
|
@@ -311,12 +323,12 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
311
323
|
nodeid = getOptUniqueId();
|
|
312
324
|
}
|
|
313
325
|
if (keyMaps[nodeid]) {
|
|
314
|
-
(0, _log.errLog)('vxe.error.repeatKey', [nodeKeyField
|
|
326
|
+
(0, _log.errLog)('vxe.error.repeatKey', [`[tree-select] ${nodeKeyField}`, nodeid]);
|
|
315
327
|
}
|
|
316
328
|
keyMaps[nodeid] = true;
|
|
317
329
|
const value = item[valueField];
|
|
318
330
|
if (nodeMaps[value]) {
|
|
319
|
-
(0, _log.errLog)('vxe.error.repeatKey', [valueField
|
|
331
|
+
(0, _log.errLog)('vxe.error.repeatKey', [`[tree-select] ${valueField}`, value]);
|
|
320
332
|
}
|
|
321
333
|
nodeMaps[value] = {
|
|
322
334
|
item,
|
|
@@ -815,6 +827,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
815
827
|
hasChildField: treeOpts.hasChildField || hasChildField,
|
|
816
828
|
accordion: treeOpts.accordion,
|
|
817
829
|
expandAll: treeOpts.expandAll,
|
|
830
|
+
expandNodeKeys: treeOpts.expandNodeKeys,
|
|
818
831
|
nodeConfig: treeNodeOpts,
|
|
819
832
|
lazy: treeOpts.lazy,
|
|
820
833
|
loadMethod: treeOpts.loadMethod,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_util=require("../../tree/src/util"),_log=require("../../ui/src/log"),_xeUtils=_interopRequireDefault(require("xe-utils")),_input=_interopRequireDefault(require("../../input/src/input")),_button=_interopRequireDefault(require("../../button/src/button")),_tree=_interopRequireDefault(require("../../tree/src/tree"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function getOptUniqueId(){return _xeUtils.default.uniqueId("node_")}function createInternalData(){return{fullOptionList:[],fullNodeMaps:{}}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTreeSelect",props:{modelValue:[String,Number,Array],clearable:Boolean,placeholder:{type:String,default:()=>_xeUtils.default.eqNull((0,_ui.getConfig)().treeSelect.placeholder)?(0,_ui.getI18n)("vxe.base.pleaseSelect"):(0,_ui.getConfig)().treeSelect.placeholder},readonly:{type:Boolean,default:null},loading:Boolean,disabled:{type:Boolean,default:null},filterable:Boolean,filterConfig:Object,multiple:Boolean,className:[String,Function],popupClassName:[String,Function],prefixIcon:String,placement:String,options:Array,optionProps:Object,zIndex:Number,size:{type:String,default:()=>(0,_ui.getConfig)().treeSelect.size||(0,_ui.getConfig)().size},remote:Boolean,remoteConfig:Function,popupConfig:Object,treeConfig:Object,virtualYConfig:Object,autoClose:{type:Boolean,default:()=>(0,_ui.getConfig)().treeSelect.autoClose},showTotalButoon:{type:Boolean,default:()=>(0,_ui.getConfig)().treeSelect.showTotalButoon},showCheckedButoon:{type:Boolean,default:()=>(0,_ui.getConfig)().treeSelect.showCheckedButoon},showClearButton:{type:Boolean,default:()=>(0,_ui.getConfig)().treeSelect.showClearButton},showExpandButton:{type:Boolean,default:()=>(0,_ui.getConfig)().treeSelect.showExpandButton},transfer:{type:Boolean,default:null},remoteMethod:Function},emits:["update:modelValue","change","all-change","clear","blur","focus","click","node-click"],setup(j,e){const{emit:n,slots:L}=e,l=(0,_vue.inject)("$xeModal",null),a=(0,_vue.inject)("$xeDrawer",null),i=(0,_vue.inject)("$xeTable",null),o=(0,_vue.inject)("$xeForm",null),u=(0,_vue.inject)("xeFormItemInfo",null);var t=_xeUtils.default.uniqueId();const z=(0,_ui.useSize)(j)["computeSize"],M=(0,_vue.ref)(),D=(0,_vue.ref)(),R=(0,_vue.ref)(),ae=(0,_vue.ref)(),$=(0,_vue.ref)(),H=(0,_vue.ref)(),K=(0,_vue.reactive)({initialized:!1,searchValue:"",searchLoading:!1,panelIndex:0,panelStyle:{},panelPlacement:null,triggerFocusPanel:!1,visiblePanel:!1,isAniVisible:!1,isActivated:!1}),v=createInternalData(),h={refElem:M},ne=(0,_vue.computed)(()=>{var e=j["readonly"];return null===e?!!o&&o.props.readonly:e}),Y=(0,_vue.computed)(()=>{var e=j["disabled"];return null===e?!!o&&o.props.disabled:e}),Z=(0,_vue.computed)(()=>{var e=j["transfer"];if(null===e){var t=(0,_ui.getConfig)().select.transfer;if(_xeUtils.default.isBoolean(t))return t;if(i||l||a||o)return!0}return e}),G=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().treeSelect.popupConfig,j.popupConfig)),J=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().treeSelect.treeConfig,j.treeConfig,{data:void 0})),ie=(0,_vue.computed)(()=>{var e=J.value;return Object.assign({isHover:!0},e.nodeConfig)}),oe=(0,_vue.computed)(()=>{var e=J.value;return Object.assign({showIcon:!!e.showCheckbox},e.checkboxConfig,{trigger:"node"})}),ue=(0,_vue.computed)(()=>{var e=J.value;return Object.assign({showIcon:!!e.showRadio},e.radioConfig,{trigger:"node"})}),r=(0,_vue.computed)(()=>j.optionProps||{}),Q=(0,_vue.computed)(()=>{return J.value.keyField||"id"}),W=(0,_vue.computed)(()=>{return r.value.label||"label"}),X=(0,_vue.computed)(()=>{return r.value.value||"value"}),ee=(0,_vue.computed)(()=>{return r.value.children||"children"}),re=(0,_vue.computed)(()=>{return r.value.parent||"parentField"}),se=(0,_vue.computed)(()=>{return r.value.hasChild||"hasChild"}),ce=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().treeSelect.virtualYConfig,j.virtualYConfig)),s=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().treeSelect.remoteConfig,j.remoteConfig)),de=(0,_vue.computed)(()=>{var e=J.value;return Object.assign({},e.filterConfig,j.filterConfig)}),ve=(0,_vue.computed)(()=>{var e=j["modelValue"];const l=v["fullNodeMaps"],a=W.value;return(_xeUtils.default.eqNull(e)?[]:_xeUtils.default.isArray(e)?e:[e]).map(e=>{var t=l[e];return t?t.item[a]:e}).join(", ")}),pe=(0,_vue.computed)(()=>{var{height:e,width:t}=G.value,l={};return t&&(l.width=(0,_dom.toCssUnit)(t)),e&&(l.height=(0,_dom.toCssUnit)(e),l.maxHeight=(0,_dom.toCssUnit)(e)),l}),m={},te={xID:t,props:j,context:e,reactData:K,internalData:v,getRefMaps:()=>h,getComputeMaps:()=>m},c=(e,t,l)=>{n(e,(0,_ui.createEvent)(l,{$treeSelect:te},t))};t={dispatchEvent:c};const d=()=>{var e=j["options"],t=J.value;const r=Q.value;var l=ee.value;const s=X.value;t=t.transform;const c={},d={},a=(e,t,l,a,n,i)=>{let o=(e=>{e=e[Q.value];return e?encodeURIComponent(e):""})(e);o=o||getOptUniqueId(),d[o]&&(0,_log.errLog)("vxe.error.repeatKey",[r,o]),d[o]=!0;var u=e[s];c[u]&&(0,_log.errLog)("vxe.error.repeatKey",[s,u]),c[u]={item:e,index:t,items:l,parent:n,nodes:i}};e&&(t?e.forEach((e,t,l)=>{a(e,t,l,0,null,[])}):_xeUtils.default.eachTree(e,a,{children:l})),v.fullOptionList=e||[],v.fullNodeMaps=c},p=()=>{const l=j["placement"],a=K["panelIndex"],n=M.value,i=$.value,o=Z.value;var e=()=>{var e=(0,_dom.updatePanelPlacement)(n,i,{placement:l,teleportTo:o}),t=Object.assign(e.style,{zIndex:a});K.panelStyle=t,K.panelPlacement=e.placement};return e(),(0,_vue.nextTick)().then(e)},_=()=>{var{loading:e,remote:t,filterable:l}=j,a=v["fullOptionList"],n=Y.value,i=s.value;e||n||(clearTimeout(v.hpTimeout),K.initialized||(K.initialized=!0),K.isActivated=!0,K.isAniVisible=!0,l&&t&&i.enabled&&i.autoLoad&&!a.length&&({modelValue:e,remote:n,remoteMethod:l}=j,t=K["searchValue"],i=s.value,a=i.queryMethod||l,n)&&a&&i.enabled&&(K.searchLoading=!0,Promise.resolve(a({$treeSelect:te,searchValue:t,value:e})).then(()=>(0,_vue.nextTick)()).catch(()=>(0,_vue.nextTick)()).finally(()=>{K.searchLoading=!1})),setTimeout(()=>{K.visiblePanel=!0,j.filterable&&(0,_vue.nextTick)(()=>{var e=R.value;e&&e.focus()})},10),(l=j.zIndex)?K.panelIndex=l:K.panelIndex<(0,_utils.getLastZIndex)()&&(K.panelIndex=(0,_utils.nextZIndex)()),p())},g=()=>{K.visiblePanel=!1,v.hpTimeout=setTimeout(()=>{K.isAniVisible=!1},350)},f=(e,t,l)=>{var a,t=_xeUtils.default.isArray(t)?t.map(_util.deNodeValue):(0,_util.deNodeValue)(t);a=t,n("update:modelValue",a),t!==j.modelValue&&(c("change",{value:t,node:l,option:l},e),o)&&u&&o.triggerItemEvent(e,u.itemConfig.field,t)},x=(e,t)=>{f(e,t,null),c("clear",{value:t},e)},_e=(e,t)=>{x(t,null),g()},ge=e=>{const l=e["$event"],{multiple:t,autoClose:a}=j;e=H.value;t&&e&&e.setAllCheckboxNode(!0).then(({checkNodeKeys:e,checkNodes:t})=>{f(l,e,t[0]),c("all-change",{value:e},l),a&&g()})},fe=e=>{e=e.$event;const{multiple:t,autoClose:l}=j;var a,n=H.value;n&&(a=t?[]:null,n.clearCheckboxNode().then(()=>{l&&g()}),f(e,a,null),c("clear",{value:a},e))},he=()=>{var e=H.value;e&&e.setAllExpandNode(!0)},me=()=>{var e=H.value;e&&e.clearAllExpandNode()},b=e=>{var t=K["visiblePanel"];Y.value||t&&(t=$.value,((0,_dom.getEventTargetNode)(e,t).flag?p:g)())},C=e=>{var t,l,a=K["visiblePanel"];Y.value||(t=M.value,l=$.value,K.isActivated=(0,_dom.getEventTargetNode)(e,t).flag||(0,_dom.getEventTargetNode)(e,l).flag,a&&!K.isActivated&&g())},E=()=>{var{visiblePanel:e,isActivated:t}=K;e&&g(),t&&(K.isActivated=!1),(e||t)&&(e=D.value)&&e.blur()},y=()=>{var e=K["visiblePanel"];e&&p()},xe=e=>{Y.value||K.visiblePanel||(K.triggerFocusPanel=!0,_(),setTimeout(()=>{K.triggerFocusPanel=!1},150)),c("focus",{},e)},be=e=>{le(e),c("click",{},e)},Ce=e=>{K.isActivated=!1,c("blur",{},e)},Ee=e=>{K.searchValue=e},le=e=>{e=e.$event;e.preventDefault(),K.triggerFocusPanel?K.triggerFocusPanel=!1:(K.visiblePanel?g:_)()},ye=e=>{var t=e["$event"];c("node-click",e,t)},Ie=e=>{var{value:e,$event:t,node:l}=e;f(t,e,l),g()},Se=e=>{var{value:e,$event:t,node:l}=e;f(t,e,l)},ke=()=>{d()};Object.assign(te,t,{});return(0,_vue.watch)(()=>j.options,()=>{d()}),d(),(0,_vue.onMounted)(()=>{_ui.globalEvents.on(te,"mousewheel",b),_ui.globalEvents.on(te,"mousedown",C),_ui.globalEvents.on(te,"blur",E),_ui.globalEvents.on(te,"resize",y)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(te,"mousewheel"),_ui.globalEvents.off(te,"mousedown"),_ui.globalEvents.off(te,"blur"),_ui.globalEvents.off(te,"resize"),_xeUtils.default.assign(v,createInternalData())}),(0,_vue.provide)("$xeTreeSelect",te),te.renderVN=()=>{var{className:e,modelValue:t,multiple:l,options:a,loading:n,filterable:i,showTotalButoon:o,showCheckedButoon:u,showClearButton:r,showExpandButton:s}=j,{initialized:c,isActivated:d,isAniVisible:v,visiblePanel:p,searchValue:_}=K,g=z.value,f=Y.value,h=ve.value,m=Z.value,x=ne.value,b=pe.value,C=L.header,E=L.footer;const y=L.prefix;var I=G.value,S=I.className||j.popupClassName,k=J.value,w=ie.value,N=oe.value,T=ue.value,B=Q.value,O=W.value,P=X.value,V=ee.value,F=re.value,q=se.value,A=ce.value,U=de.value;return x?(0,_vue.h)("div",{ref:M,class:["vxe-tree-select--readonly",e]},[(0,_vue.h)("span",{class:"vxe-tree-select-label"},h)]):(x=_xeUtils.default.eqNull(t)?[]:_xeUtils.default.isArray(t)?t:[t],(0,_vue.h)("div",{ref:M,class:["vxe-tree-select",e?_xeUtils.default.isFunction(e)?e({$treeSelect:te}):e:"",{["size--"+g]:g,"is--filterable":i,"is--visible":p,"is--disabled":f,"is--loading":n,"is--active":d}]},[(0,_vue.h)(_input.default,{ref:D,clearable:j.clearable,placeholder:n?(0,_ui.getI18n)("vxe.select.loadingText"):j.placeholder,readonly:!0,disabled:f,type:"text",prefixIcon:j.prefixIcon,suffixIcon:n?(0,_ui.getIcon)().TREE_SELECT_LOADED:p?(0,_ui.getIcon)().TREE_SELECT_OPEN:(0,_ui.getIcon)().TREE_SELECT_CLOSE,modelValue:n?"":h,title:h,onClear:_e,onClick:be,onFocus:xe,onBlur:Ce,onSuffixClick:le},y?{prefix:()=>y({})}:{}),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!m||!c},[(0,_vue.h)("div",{ref:$,class:["vxe-table--ignore-clear vxe-tree-select--panel",S?_xeUtils.default.isFunction(S)?S({$treeSelect:te}):S:"",{["size--"+g]:g,"is--transfer":m,"ani--leave":!n&&v,"ani--enter":!n&&p}],placement:K.panelPlacement,style:K.panelStyle},c?[(0,_vue.h)("div",{class:"vxe-tree-select--panel-wrapper"},[i?(0,_vue.h)("div",{class:"vxe-tree-select--panel-search"},[(0,_vue.h)(_input.default,{ref:R,class:"vxe-tree-select-search--input",modelValue:_,clearable:!0,disabled:!1,readonly:!1,placeholder:(0,_ui.getI18n)("vxe.treeSelect.search"),prefixIcon:(0,_ui.getIcon)().INPUT_SEARCH,"onUpdate:modelValue":Ee})]):(0,_ui.renderEmptyElement)(te),o||u&&l||r||s||C?(0,_vue.h)("div",{class:"vxe-tree-select--panel-header"},C?C({}):[(0,_vue.h)("div",{class:"vxe-tree-select--header-button"},[o?(0,_vue.h)("div",{class:"vxe-tree-select--header-total"},(0,_ui.getI18n)("vxe.treeSelect.total",[x.length])):(0,_ui.renderEmptyElement)(te),(0,_vue.h)("div",{class:"vxe-tree-select--header-btns"},[u&&l?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.treeSelect.allChecked"),mode:"text",onClick:ge}):(0,_ui.renderEmptyElement)(te),r?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.treeSelect.clearChecked"),mode:"text",onClick:fe}):(0,_ui.renderEmptyElement)(te),s?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.treeSelect.allExpand"),mode:"text",onClick:he}):(0,_ui.renderEmptyElement)(te),s?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.treeSelect.clearExpand"),mode:"text",onClick:me}):(0,_ui.renderEmptyElement)(te)])])]):(0,_ui.renderEmptyElement)(te),(0,_vue.h)("div",{class:"vxe-tree-select--panel-body"},[(0,_vue.h)("div",{ref:ae,class:"vxe-tree-select-tree--wrapper",style:b},[(0,_vue.h)(_tree.default,{ref:H,class:"vxe-tree-select--tree",height:I.height?"100%":k.height,minHeight:k.minHeight,maxHeight:I.height?"":k.maxHeight,autoResize:!0,data:a,indent:k.indent,showRadio:!l,radioConfig:T,checkNodeKey:l?null:t,showCheckbox:!!l,checkNodeKeys:l?t:null,checkboxConfig:N,titleField:O,valueField:P,keyField:B,childrenField:k.childrenField||V,parentField:k.parentField||F,hasChildField:k.hasChildField||q,accordion:k.accordion,expandAll:k.expandAll,nodeConfig:w,lazy:k.lazy,loadMethod:k.loadMethod,toggleMethod:k.toggleMethod,transform:k.transform,trigger:k.trigger,showIcon:k.showIcon,showLine:k.showLine,iconOpen:k.iconOpen,iconLoaded:k.iconLoaded,iconClose:k.iconClose,filterValue:_,filterConfig:U,virtualYConfig:A,onNodeClick:ye,onRadioChange:Ie,onCheckboxChange:Se,onLoadSuccess:ke})])]),E?(0,_vue.h)("div",{class:"vxe-tree-select--panel-footer"},E({})):(0,_ui.renderEmptyElement)(te)])]:[])])]))},te},render(){return this.renderVN()}});
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_util=require("../../tree/src/util"),_log=require("../../ui/src/log"),_xeUtils=_interopRequireDefault(require("xe-utils")),_input=_interopRequireDefault(require("../../input/src/input")),_button=_interopRequireDefault(require("../../button/src/button")),_tree=_interopRequireDefault(require("../../tree/src/tree"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function getOptUniqueId(){return _xeUtils.default.uniqueId("node_")}function createInternalData(){return{fullOptionList:[],fullNodeMaps:{}}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTreeSelect",props:{modelValue:[String,Number,Array],clearable:Boolean,placeholder:{type:String,default:()=>_xeUtils.default.eqNull((0,_ui.getConfig)().treeSelect.placeholder)?(0,_ui.getI18n)("vxe.base.pleaseSelect"):(0,_ui.getConfig)().treeSelect.placeholder},readonly:{type:Boolean,default:null},loading:Boolean,disabled:{type:Boolean,default:null},filterable:Boolean,filterConfig:Object,multiple:Boolean,className:[String,Function],popupClassName:[String,Function],prefixIcon:String,placement:String,lazyOptions:Array,options:Array,optionProps:Object,zIndex:Number,size:{type:String,default:()=>(0,_ui.getConfig)().treeSelect.size||(0,_ui.getConfig)().size},remote:Boolean,remoteConfig:Function,popupConfig:Object,treeConfig:Object,virtualYConfig:Object,autoClose:{type:Boolean,default:()=>(0,_ui.getConfig)().treeSelect.autoClose},showTotalButoon:{type:Boolean,default:()=>(0,_ui.getConfig)().treeSelect.showTotalButoon},showCheckedButoon:{type:Boolean,default:()=>(0,_ui.getConfig)().treeSelect.showCheckedButoon},showClearButton:{type:Boolean,default:()=>(0,_ui.getConfig)().treeSelect.showClearButton},showExpandButton:{type:Boolean,default:()=>(0,_ui.getConfig)().treeSelect.showExpandButton},transfer:{type:Boolean,default:null},remoteMethod:Function},emits:["update:modelValue","change","all-change","clear","blur","focus","click","node-click"],setup(j,e){const{emit:n,slots:z}=e,l=(0,_vue.inject)("$xeModal",null),a=(0,_vue.inject)("$xeDrawer",null),i=(0,_vue.inject)("$xeTable",null),o=(0,_vue.inject)("$xeForm",null),u=(0,_vue.inject)("xeFormItemInfo",null);var t=_xeUtils.default.uniqueId();const L=(0,_ui.useSize)(j)["computeSize"],M=(0,_vue.ref)(),D=(0,_vue.ref)(),R=(0,_vue.ref)(),ae=(0,_vue.ref)(),$=(0,_vue.ref)(),H=(0,_vue.ref)(),K=(0,_vue.reactive)({initialized:!1,searchValue:"",searchLoading:!1,panelIndex:0,panelStyle:{},panelPlacement:null,triggerFocusPanel:!1,visiblePanel:!1,isAniVisible:!1,isActivated:!1}),v=createInternalData(),h={refElem:M},ne=(0,_vue.computed)(()=>{var e=j["readonly"];return null===e?!!o&&o.props.readonly:e}),Y=(0,_vue.computed)(()=>{var e=j["disabled"];return null===e?!!o&&o.props.disabled:e}),Z=(0,_vue.computed)(()=>{var e=j["transfer"];if(null===e){var t=(0,_ui.getConfig)().select.transfer;if(_xeUtils.default.isBoolean(t))return t;if(i||l||a||o)return!0}return e}),G=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().treeSelect.popupConfig,j.popupConfig)),J=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().treeSelect.treeConfig,j.treeConfig,{data:void 0})),ie=(0,_vue.computed)(()=>{var e=J.value;return Object.assign({isHover:!0},e.nodeConfig)}),oe=(0,_vue.computed)(()=>{var e=J.value;return Object.assign({showIcon:!!e.showCheckbox},e.checkboxConfig,{trigger:"node"})}),ue=(0,_vue.computed)(()=>{var e=J.value;return Object.assign({showIcon:!!e.showRadio},e.radioConfig,{trigger:"node"})}),r=(0,_vue.computed)(()=>j.optionProps||{}),Q=(0,_vue.computed)(()=>{return J.value.keyField||"id"}),W=(0,_vue.computed)(()=>{return r.value.label||"label"}),X=(0,_vue.computed)(()=>{return r.value.value||"value"}),ee=(0,_vue.computed)(()=>{return r.value.children||"children"}),re=(0,_vue.computed)(()=>{return r.value.parent||"parentField"}),se=(0,_vue.computed)(()=>{return r.value.hasChild||"hasChild"}),de=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().treeSelect.virtualYConfig,j.virtualYConfig)),s=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().treeSelect.remoteConfig,j.remoteConfig)),ce=(0,_vue.computed)(()=>{var e=J.value;return Object.assign({},e.filterConfig,j.filterConfig)}),ve=(0,_vue.computed)(()=>{const{modelValue:e,lazyOptions:l}=j,a=v["fullNodeMaps"],n=X.value,i=W.value;return(_xeUtils.default.eqNull(e)?[]:_xeUtils.default.isArray(e)?e:[e]).map(t=>{var e=a[t];if(e)return e.item[i];if(l){e=l.find(e=>e[n]===t);if(e)return e[i]}return t}).join(", ")}),pe=(0,_vue.computed)(()=>{var{height:e,width:t}=G.value,l={};return t&&(l.width=(0,_dom.toCssUnit)(t)),e&&(l.height=(0,_dom.toCssUnit)(e),l.maxHeight=(0,_dom.toCssUnit)(e)),l}),m={},te={xID:t,props:j,context:e,reactData:K,internalData:v,getRefMaps:()=>h,getComputeMaps:()=>m},d=(e,t,l)=>{n(e,(0,_ui.createEvent)(l,{$treeSelect:te},t))};t={dispatchEvent:d};const c=()=>{var e=j["options"],t=J.value;const r=Q.value;var l=ee.value;const s=X.value;t=t.transform;const d={},c={},a=(e,t,l,a,n,i)=>{let o=(e=>{e=e[Q.value];return e?encodeURIComponent(e):""})(e);o=o||getOptUniqueId(),c[o]&&(0,_log.errLog)("vxe.error.repeatKey",["[tree-select] "+r,o]),c[o]=!0;var u=e[s];d[u]&&(0,_log.errLog)("vxe.error.repeatKey",["[tree-select] "+s,u]),d[u]={item:e,index:t,items:l,parent:n,nodes:i}};e&&(t?e.forEach((e,t,l)=>{a(e,t,l,0,null,[])}):_xeUtils.default.eachTree(e,a,{children:l})),v.fullOptionList=e||[],v.fullNodeMaps=d},p=()=>{const l=j["placement"],a=K["panelIndex"],n=M.value,i=$.value,o=Z.value;var e=()=>{var e=(0,_dom.updatePanelPlacement)(n,i,{placement:l,teleportTo:o}),t=Object.assign(e.style,{zIndex:a});K.panelStyle=t,K.panelPlacement=e.placement};return e(),(0,_vue.nextTick)().then(e)},_=()=>{var{loading:e,remote:t,filterable:l}=j,a=v["fullOptionList"],n=Y.value,i=s.value;e||n||(clearTimeout(v.hpTimeout),K.initialized||(K.initialized=!0),K.isActivated=!0,K.isAniVisible=!0,l&&t&&i.enabled&&i.autoLoad&&!a.length&&({modelValue:e,remote:n,remoteMethod:l}=j,t=K["searchValue"],i=s.value,a=i.queryMethod||l,n)&&a&&i.enabled&&(K.searchLoading=!0,Promise.resolve(a({$treeSelect:te,searchValue:t,value:e})).then(()=>(0,_vue.nextTick)()).catch(()=>(0,_vue.nextTick)()).finally(()=>{K.searchLoading=!1})),setTimeout(()=>{K.visiblePanel=!0,j.filterable&&(0,_vue.nextTick)(()=>{var e=R.value;e&&e.focus()})},10),(l=j.zIndex)?K.panelIndex=l:K.panelIndex<(0,_utils.getLastZIndex)()&&(K.panelIndex=(0,_utils.nextZIndex)()),p())},g=()=>{K.visiblePanel=!1,v.hpTimeout=setTimeout(()=>{K.isAniVisible=!1},350)},f=(e,t,l)=>{var a,t=_xeUtils.default.isArray(t)?t.map(_util.deNodeValue):(0,_util.deNodeValue)(t);a=t,n("update:modelValue",a),t!==j.modelValue&&(d("change",{value:t,node:l,option:l},e),o)&&u&&o.triggerItemEvent(e,u.itemConfig.field,t)},x=(e,t)=>{f(e,t,null),d("clear",{value:t},e)},_e=(e,t)=>{x(t,null),g()},ge=e=>{const l=e["$event"],{multiple:t,autoClose:a}=j;e=H.value;t&&e&&e.setAllCheckboxNode(!0).then(({checkNodeKeys:e,checkNodes:t})=>{f(l,e,t[0]),d("all-change",{value:e},l),a&&g()})},fe=e=>{e=e.$event;const{multiple:t,autoClose:l}=j;var a,n=H.value;n&&(a=t?[]:null,n.clearCheckboxNode().then(()=>{l&&g()}),f(e,a,null),d("clear",{value:a},e))},he=()=>{var e=H.value;e&&e.setAllExpandNode(!0)},me=()=>{var e=H.value;e&&e.clearAllExpandNode()},b=e=>{var t=K["visiblePanel"];Y.value||t&&(t=$.value,((0,_dom.getEventTargetNode)(e,t).flag?p:g)())},C=e=>{var t,l,a=K["visiblePanel"];Y.value||(t=M.value,l=$.value,K.isActivated=(0,_dom.getEventTargetNode)(e,t).flag||(0,_dom.getEventTargetNode)(e,l).flag,a&&!K.isActivated&&g())},y=()=>{var{visiblePanel:e,isActivated:t}=K;e&&g(),t&&(K.isActivated=!1),(e||t)&&(e=D.value)&&e.blur()},E=()=>{var e=K["visiblePanel"];e&&p()},xe=e=>{Y.value||K.visiblePanel||(K.triggerFocusPanel=!0,_(),setTimeout(()=>{K.triggerFocusPanel=!1},150)),d("focus",{},e)},be=e=>{le(e),d("click",{},e)},Ce=e=>{K.isActivated=!1,d("blur",{},e)},ye=e=>{K.searchValue=e},le=e=>{e=e.$event;e.preventDefault(),K.triggerFocusPanel?K.triggerFocusPanel=!1:(K.visiblePanel?g:_)()},Ee=e=>{var t=e["$event"];d("node-click",e,t)},Ie=e=>{var{value:e,$event:t,node:l}=e;f(t,e,l),g()},Se=e=>{var{value:e,$event:t,node:l}=e;f(t,e,l)},ke=()=>{c()};Object.assign(te,t,{});return(0,_vue.watch)(()=>j.options,()=>{c()}),c(),(0,_vue.onMounted)(()=>{_ui.globalEvents.on(te,"mousewheel",b),_ui.globalEvents.on(te,"mousedown",C),_ui.globalEvents.on(te,"blur",y),_ui.globalEvents.on(te,"resize",E)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(te,"mousewheel"),_ui.globalEvents.off(te,"mousedown"),_ui.globalEvents.off(te,"blur"),_ui.globalEvents.off(te,"resize"),_xeUtils.default.assign(v,createInternalData())}),(0,_vue.provide)("$xeTreeSelect",te),te.renderVN=()=>{var{className:e,modelValue:t,multiple:l,options:a,loading:n,filterable:i,showTotalButoon:o,showCheckedButoon:u,showClearButton:r,showExpandButton:s}=j,{initialized:d,isActivated:c,isAniVisible:v,visiblePanel:p,searchValue:_}=K,g=L.value,f=Y.value,h=ve.value,m=Z.value,x=ne.value,b=pe.value,C=z.header,y=z.footer;const E=z.prefix;var I=G.value,S=I.className||j.popupClassName,k=J.value,N=ie.value,w=oe.value,T=ue.value,O=Q.value,B=W.value,P=X.value,V=ee.value,A=re.value,F=se.value,q=de.value,U=ce.value;return x?(0,_vue.h)("div",{ref:M,class:["vxe-tree-select--readonly",e]},[(0,_vue.h)("span",{class:"vxe-tree-select-label"},h)]):(x=_xeUtils.default.eqNull(t)?[]:_xeUtils.default.isArray(t)?t:[t],(0,_vue.h)("div",{ref:M,class:["vxe-tree-select",e?_xeUtils.default.isFunction(e)?e({$treeSelect:te}):e:"",{["size--"+g]:g,"is--filterable":i,"is--visible":p,"is--disabled":f,"is--loading":n,"is--active":c}]},[(0,_vue.h)(_input.default,{ref:D,clearable:j.clearable,placeholder:n?(0,_ui.getI18n)("vxe.select.loadingText"):j.placeholder,readonly:!0,disabled:f,type:"text",prefixIcon:j.prefixIcon,suffixIcon:n?(0,_ui.getIcon)().TREE_SELECT_LOADED:p?(0,_ui.getIcon)().TREE_SELECT_OPEN:(0,_ui.getIcon)().TREE_SELECT_CLOSE,modelValue:n?"":h,title:h,onClear:_e,onClick:be,onFocus:xe,onBlur:Ce,onSuffixClick:le},E?{prefix:()=>E({})}:{}),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!m||!d},[(0,_vue.h)("div",{ref:$,class:["vxe-table--ignore-clear vxe-tree-select--panel",S?_xeUtils.default.isFunction(S)?S({$treeSelect:te}):S:"",{["size--"+g]:g,"is--transfer":m,"ani--leave":!n&&v,"ani--enter":!n&&p}],placement:K.panelPlacement,style:K.panelStyle},d?[(0,_vue.h)("div",{class:"vxe-tree-select--panel-wrapper"},[i?(0,_vue.h)("div",{class:"vxe-tree-select--panel-search"},[(0,_vue.h)(_input.default,{ref:R,class:"vxe-tree-select-search--input",modelValue:_,clearable:!0,disabled:!1,readonly:!1,placeholder:(0,_ui.getI18n)("vxe.treeSelect.search"),prefixIcon:(0,_ui.getIcon)().INPUT_SEARCH,"onUpdate:modelValue":ye})]):(0,_ui.renderEmptyElement)(te),o||u&&l||r||s||C?(0,_vue.h)("div",{class:"vxe-tree-select--panel-header"},C?C({}):[(0,_vue.h)("div",{class:"vxe-tree-select--header-button"},[o?(0,_vue.h)("div",{class:"vxe-tree-select--header-total"},(0,_ui.getI18n)("vxe.treeSelect.total",[x.length])):(0,_ui.renderEmptyElement)(te),(0,_vue.h)("div",{class:"vxe-tree-select--header-btns"},[u&&l?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.treeSelect.allChecked"),mode:"text",onClick:ge}):(0,_ui.renderEmptyElement)(te),r?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.treeSelect.clearChecked"),mode:"text",onClick:fe}):(0,_ui.renderEmptyElement)(te),s?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.treeSelect.allExpand"),mode:"text",onClick:he}):(0,_ui.renderEmptyElement)(te),s?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.treeSelect.clearExpand"),mode:"text",onClick:me}):(0,_ui.renderEmptyElement)(te)])])]):(0,_ui.renderEmptyElement)(te),(0,_vue.h)("div",{class:"vxe-tree-select--panel-body"},[(0,_vue.h)("div",{ref:ae,class:"vxe-tree-select-tree--wrapper",style:b},[(0,_vue.h)(_tree.default,{ref:H,class:"vxe-tree-select--tree",height:I.height?"100%":k.height,minHeight:k.minHeight,maxHeight:I.height?"":k.maxHeight,autoResize:!0,data:a,indent:k.indent,showRadio:!l,radioConfig:T,checkNodeKey:l?null:t,showCheckbox:!!l,checkNodeKeys:l?t:null,checkboxConfig:w,titleField:B,valueField:P,keyField:O,childrenField:k.childrenField||V,parentField:k.parentField||A,hasChildField:k.hasChildField||F,accordion:k.accordion,expandAll:k.expandAll,expandNodeKeys:k.expandNodeKeys,nodeConfig:N,lazy:k.lazy,loadMethod:k.loadMethod,toggleMethod:k.toggleMethod,transform:k.transform,trigger:k.trigger,showIcon:k.showIcon,showLine:k.showLine,iconOpen:k.iconOpen,iconLoaded:k.iconLoaded,iconClose:k.iconClose,filterValue:_,filterConfig:U,virtualYConfig:q,onNodeClick:Ee,onRadioChange:Ie,onCheckboxChange:Se,onLoadSuccess:ke})])]),y?(0,_vue.h)("div",{class:"vxe-tree-select--panel-footer"},y({})):(0,_ui.renderEmptyElement)(te)])]:[])])]))},te},render(){return this.renderVN()}});
|
package/lib/ui/index.js
CHANGED
|
@@ -26,7 +26,7 @@ Object.keys(_core).forEach(function (key) {
|
|
|
26
26
|
});
|
|
27
27
|
var _dynamics = require("../dynamics");
|
|
28
28
|
var _log = require("./src/log");
|
|
29
|
-
const version = exports.version = "4.9.
|
|
29
|
+
const version = exports.version = "4.9.32";
|
|
30
30
|
_core.VxeUI.uiVersion = version;
|
|
31
31
|
_core.VxeUI.dynamicApp = _dynamics.dynamicApp;
|
|
32
32
|
function config(options) {
|