vxe-pc-ui 4.6.9 → 4.6.10
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 +2 -4
- package/es/form/render/index.js +2 -4
- package/es/form/src/form.js +97 -37
- package/es/form-design/src/form-view.js +1 -3
- package/es/icon/style.css +1 -1
- package/es/list-design/src/layout-preview.js +5 -7
- package/es/list-design/src/list-view.js +5 -7
- package/es/modal/src/modal.js +2 -4
- package/es/pager/src/pager.js +1 -3
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table-select/src/table-select.js +5 -7
- package/es/tabs/src/tabs.js +2 -6
- package/es/tree/src/tree.js +238 -173
- package/es/ui/index.js +3 -7
- package/es/ui/src/log.js +1 -1
- package/es/upload/src/upload.js +5 -7
- package/lib/button/src/button.js +2 -4
- package/lib/button/src/button.min.js +1 -1
- package/lib/form/render/index.js +2 -4
- package/lib/form/render/index.min.js +1 -1
- package/lib/form/src/form.js +95 -36
- package/lib/form/src/form.min.js +1 -1
- package/lib/form-design/src/form-view.js +1 -3
- package/lib/form-design/src/form-view.min.js +1 -1
- package/lib/icon/style/style.css +1 -1
- package/lib/icon/style/style.min.css +1 -1
- package/lib/index.umd.js +422 -275
- package/lib/index.umd.min.js +1 -1
- package/lib/list-design/src/layout-preview.js +5 -7
- package/lib/list-design/src/layout-preview.min.js +1 -1
- package/lib/list-design/src/list-view.js +5 -7
- package/lib/list-design/src/list-view.min.js +1 -1
- package/lib/modal/src/modal.js +2 -4
- package/lib/modal/src/modal.min.js +1 -1
- package/lib/pager/src/pager.js +1 -3
- package/lib/pager/src/pager.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 +5 -7
- package/lib/table-select/src/table-select.min.js +1 -1
- package/lib/tabs/src/tabs.js +2 -6
- package/lib/tabs/src/tabs.min.js +1 -1
- package/lib/tree/src/tree.js +293 -179
- package/lib/tree/src/tree.min.js +1 -1
- package/lib/ui/index.js +3 -7
- 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 +5 -7
- package/lib/upload/src/upload.min.js +1 -1
- package/package.json +1 -1
- package/packages/button/src/button.ts +2 -4
- package/packages/form/render/index.ts +2 -4
- package/packages/form/src/form.ts +98 -35
- package/packages/form-design/src/form-view.ts +1 -3
- package/packages/list-design/src/layout-preview.ts +5 -7
- package/packages/list-design/src/list-view.ts +5 -7
- package/packages/modal/src/modal.ts +2 -4
- package/packages/pager/src/pager.ts +1 -3
- package/packages/table-select/src/table-select.ts +5 -7
- package/packages/tabs/src/tabs.ts +2 -6
- package/packages/tree/src/tree.ts +235 -172
- package/packages/ui/index.ts +2 -6
- package/packages/upload/src/upload.ts +5 -7
- package/types/components/tree.d.ts +7 -5
- /package/es/icon/{iconfont.1747279440023.ttf → iconfont.1747318422186.ttf} +0 -0
- /package/es/icon/{iconfont.1747279440023.woff → iconfont.1747318422186.woff} +0 -0
- /package/es/icon/{iconfont.1747279440023.woff2 → iconfont.1747318422186.woff2} +0 -0
- /package/es/{iconfont.1747279440023.ttf → iconfont.1747318422186.ttf} +0 -0
- /package/es/{iconfont.1747279440023.woff → iconfont.1747318422186.woff} +0 -0
- /package/es/{iconfont.1747279440023.woff2 → iconfont.1747318422186.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1747279440023.ttf → iconfont.1747318422186.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1747279440023.woff → iconfont.1747318422186.woff} +0 -0
- /package/lib/icon/style/{iconfont.1747279440023.woff2 → iconfont.1747318422186.woff2} +0 -0
- /package/lib/{iconfont.1747279440023.ttf → iconfont.1747318422186.ttf} +0 -0
- /package/lib/{iconfont.1747279440023.woff → iconfont.1747318422186.woff} +0 -0
- /package/lib/{iconfont.1747279440023.woff2 → iconfont.1747318422186.woff2} +0 -0
package/es/ui/index.js
CHANGED
|
@@ -1,19 +1,15 @@
|
|
|
1
1
|
import { VxeUI, setConfig, setIcon } from '@vxe-ui/core';
|
|
2
2
|
import { dynamicApp } from '../dynamics';
|
|
3
3
|
import { warnLog } from './src/log';
|
|
4
|
-
export const version = "4.6.
|
|
4
|
+
export const version = "4.6.10";
|
|
5
5
|
VxeUI.uiVersion = version;
|
|
6
6
|
VxeUI.dynamicApp = dynamicApp;
|
|
7
7
|
export function config(options) {
|
|
8
|
-
|
|
9
|
-
warnLog('vxe.error.delFunc', ['config', 'setConfig']);
|
|
10
|
-
}
|
|
8
|
+
warnLog('vxe.error.delFunc', ['config', 'setConfig']);
|
|
11
9
|
return setConfig(options);
|
|
12
10
|
}
|
|
13
11
|
export function setup(options) {
|
|
14
|
-
|
|
15
|
-
warnLog('vxe.error.delFunc', ['setup', 'setConfig']);
|
|
16
|
-
}
|
|
12
|
+
warnLog('vxe.error.delFunc', ['setup', 'setConfig']);
|
|
17
13
|
return setConfig(options);
|
|
18
14
|
}
|
|
19
15
|
VxeUI.config = config;
|
package/es/ui/src/log.js
CHANGED
package/es/upload/src/upload.js
CHANGED
|
@@ -1578,13 +1578,11 @@ export default defineComponent({
|
|
|
1578
1578
|
updateFileList();
|
|
1579
1579
|
});
|
|
1580
1580
|
onMounted(() => {
|
|
1581
|
-
if (
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
warnLog('vxe.error.delProp', ['image-style', 'image-config']);
|
|
1587
|
-
}
|
|
1581
|
+
if (props.multiple && props.singleMode) {
|
|
1582
|
+
errLog('vxe.error.errConflicts', ['multiple', 'single-mode']);
|
|
1583
|
+
}
|
|
1584
|
+
if (props.imageStyle) {
|
|
1585
|
+
warnLog('vxe.error.delProp', ['image-style', 'image-config']);
|
|
1588
1586
|
}
|
|
1589
1587
|
if (props.dragSort) {
|
|
1590
1588
|
initTpImg();
|
package/lib/button/src/button.js
CHANGED
|
@@ -720,10 +720,8 @@ const VxeButtonComponent = (0, _vue.defineComponent)({
|
|
|
720
720
|
};
|
|
721
721
|
$xeButton.renderVN = renderVN;
|
|
722
722
|
(0, _vue.onMounted)(() => {
|
|
723
|
-
if (
|
|
724
|
-
|
|
725
|
-
(0, _log.warnLog)('vxe.error.delProp', ['type=text', 'mode=text']);
|
|
726
|
-
}
|
|
723
|
+
if (props.type === 'text') {
|
|
724
|
+
(0, _log.warnLog)('vxe.error.delProp', ['type=text', 'mode=text']);
|
|
727
725
|
}
|
|
728
726
|
_ui.globalEvents.on($xeButton, 'mousewheel', handleGlobalMousewheelEvent);
|
|
729
727
|
_ui.globalEvents.on($xeButton, 'mousedown', handleGlobalMousedownEvent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_log=require("../../ui/src/log"),_tooltip=_interopRequireDefault(require("../../tooltip/src/tooltip"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const VxeButtonComponent=(0,_vue.defineComponent)({name:"VxeButton",props:{type:String,mode:String,className:[String,Function],popupClassName:[String,Function],size:{type:String,default:()=>(0,_ui.getConfig)().button.size||(0,_ui.getConfig)().size},name:[String,Number],routerLink:Object,permissionCode:[String,Number],content:String,placement:String,status:String,title:String,icon:String,round:Boolean,circle:Boolean,disabled:Boolean,loading:Boolean,trigger:{type:String,default:()=>(0,_ui.getConfig)().button.trigger},align:String,prefixTooltip:Object,suffixTooltip:Object,options:Array,destroyOnClose:{type:Boolean,default:()=>(0,_ui.getConfig)().button.destroyOnClose},transfer:{type:Boolean,default:null}},emits:["click","mouseenter","mouseleave","dropdown-click","dropdownClick"],setup(O,e){const{slots:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_log=require("../../ui/src/log"),_tooltip=_interopRequireDefault(require("../../tooltip/src/tooltip"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const VxeButtonComponent=(0,_vue.defineComponent)({name:"VxeButton",props:{type:String,mode:String,className:[String,Function],popupClassName:[String,Function],size:{type:String,default:()=>(0,_ui.getConfig)().button.size||(0,_ui.getConfig)().size},name:[String,Number],routerLink:Object,permissionCode:[String,Number],content:String,placement:String,status:String,title:String,icon:String,round:Boolean,circle:Boolean,disabled:Boolean,loading:Boolean,trigger:{type:String,default:()=>(0,_ui.getConfig)().button.trigger},align:String,prefixTooltip:Object,suffixTooltip:Object,options:Array,destroyOnClose:{type:Boolean,default:()=>(0,_ui.getConfig)().button.destroyOnClose},transfer:{type:Boolean,default:null}},emits:["click","mouseenter","mouseleave","dropdown-click","dropdownClick"],setup(O,e){const{slots:w,emit:i}=e,n=(0,_vue.inject)("$xeModal",null),o=(0,_vue.inject)("$xeDrawer",null),u=(0,_vue.inject)("$xeTable",null),l=(0,_vue.inject)("$xeForm",null),a=(0,_vue.inject)("$xeButtonGroup",null);var t=_xeUtils.default.uniqueId();const P=(0,_ui.useSize)(O)["computeSize"],N=(0,_ui.usePermission)(O)["computePermissionInfo"],S=(0,_vue.reactive)({initialized:!1,visiblePanel:!1,isAniVisible:!1,isActivated:!1,panelIndex:0,panelStyle:{},panelPlacement:""}),s={showTime:void 0,tooltipTimeout:void 0},B=(0,_vue.ref)(),I=(0,_vue.ref)(),j=(0,_vue.ref)(),r={refElem:B},z={xID:t,props:O,context:e,reactData:S,internalData:s,getRefMaps:()=>r};const M=(0,_vue.computed)(()=>{var e=O["transfer"];if(null===e){var t=(0,_ui.getConfig)().button.transfer;if(_xeUtils.default.isBoolean(t))return t;if(u||n||o||l)return!0}return e}),U=(0,_vue.computed)(()=>{var e=O["disabled"],t=N.value;return e||t.disabled}),$=(0,_vue.computed)(()=>{var e=O["type"];return!!e&&-1<["submit","reset","button"].indexOf(e)}),E=(0,_vue.computed)(()=>{var{type:e,mode:t}=O;return"text"===t||"text"===e||a&&"text"===a.props.mode?"text":"button"}),V=(0,_vue.computed)(()=>{var e=O["status"];return e||(a?a.props.status:"")}),A=(0,_vue.computed)(()=>{var e=O["align"];return e||!!a&&a.props.align}),W=(0,_vue.computed)(()=>{var e=O["round"];return e||!!a&&a.props.round}),Z=(0,_vue.computed)(()=>{var e=O["circle"];return e||!!a&&a.props.circle}),J=(0,_vue.computed)(()=>{var e=O["options"];return e?e.filter(e=>{e=e.permissionCode;return!e||_ui.permission.checkVisible(e)}):[]}),p=(0,_vue.computed)(()=>Object.assign({},O.prefixTooltip)),_=(0,_vue.computed)(()=>Object.assign({},O.suffixTooltip)),m=()=>{S.panelIndex<(0,_utils.getLastZIndex)()&&(S.panelIndex=(0,_utils.nextZIndex)())},v=()=>{const n=O["placement"],i=S["panelIndex"],o=I.value,u=j.value,l=M.value;var e=()=>{var e=(0,_dom.updatePanelPlacement)(o,u,{placement:n,teleportTo:l}),t=Object.assign(e.style,{zIndex:i});S.panelStyle=t,S.panelPlacement=e.placement};return e(),(0,_vue.nextTick)().then(e)},D=e=>{a&&a.handleClick({name:O.name},e),H("click",{$event:e},e)},K=e=>{0===e.button&&e.stopPropagation()},Q=e=>{var t=e.currentTarget;const n=j.value;var{flag:t,targetElem:i}=(0,_dom.getEventTargetNode)(e,t,"vxe-button");t&&(n&&(n.dataset.active="N"),S.visiblePanel=!1,setTimeout(()=>{n&&"Y"===n.dataset.active||(S.isAniVisible=!1)},350),H("dropdown-click",{name:i.getAttribute("name"),option:null},e))},q=()=>{const e=j.value;e&&(e.dataset.active="Y",S.isAniVisible=!0,setTimeout(()=>{"Y"===e.dataset.active&&(S.visiblePanel=!0,m(),v(),setTimeout(()=>{S.visiblePanel&&v()},50))},20))},X=e=>{var t=O["loading"];U.value||t||(c(),F(e))},ee=e=>{R(),L(e)},F=e=>{H("mouseenter",{},e)},L=e=>{H("mouseleave",{},e)},Y=e=>{var{loading:t,trigger:n}=O;U.value||t||("click"===n&&(S.visiblePanel?R:c)(),D(e))},c=()=>{var e=O["trigger"];const t=j.value;return t&&(t.dataset.active="Y",S.initialized||(S.initialized=!0),s.showTime=setTimeout(()=>{"Y"===t.dataset.active?q():S.isAniVisible=!1},"click"===e?50:250)),(0,_vue.nextTick)()},R=()=>{const e=j.value;return clearTimeout(s.showTime),e?(e.dataset.active="N",setTimeout(()=>{"Y"!==e.dataset.active&&(S.visiblePanel=!1,setTimeout(()=>{"Y"!==e.dataset.active&&(S.isAniVisible=!1)},350))},100)):(S.isAniVisible=!1,S.visiblePanel=!1),(0,_vue.nextTick)()},te=()=>{R()},d=(e,t)=>(0,_vue.h)(_tooltip.default,{useHTML:e.useHTML,content:e.content,enterable:e.enterable,theme:e.theme},{default(){return(0,_vue.h)("i",{class:[`vxe-button--tooltip-${t}-icon`,e.icon||(0,_ui.getIcon)().BUTTON_TOOLTIP_ICON]})}}),G=()=>{var{content:e,icon:t,loading:n,prefixTooltip:i,suffixTooltip:o}=O,u=p.value,l=_.value,a=w.icon,s=w.default,r=[];return i&&r.push(d(u,"prefix")),n?r.push((0,_vue.h)("i",{class:["vxe-button--loading-icon",(0,_ui.getIcon)().BUTTON_LOADING]})):a?r.push((0,_vue.h)("span",{class:"vxe-button--custom-icon"},a({}))):t&&r.push((0,_vue.h)("i",{class:["vxe-button--icon",t]})),s?r.push((0,_vue.h)("span",{class:"vxe-button--content"},s({}))):e&&r.push((0,_vue.h)("span",{class:"vxe-button--content"},(0,_utils.getFuncText)(e))),o&&r.push(d(l,"suffix")),r},H=(e,t,n)=>{i(e,(0,_ui.createEvent)(n,{$button:z},t))},b=(t={dispatchEvent:H,openPanel:c,closePanel:R,focus(){var e=I.value;return e&&e.focus(),(0,_vue.nextTick)()},blur(){var e=I.value;return e&&e.blur(),(0,_vue.nextTick)()}},e=>{var t=j.value;S.visiblePanel&&!(0,_dom.getEventTargetNode)(e,t).flag&&R()}),g=e=>{var t,n=U.value,i=S["visiblePanel"];n||(n=B.value,t=j.value,S.isActivated=(0,_dom.getEventTargetNode)(e,n).flag||(0,_dom.getEventTargetNode)(e,t).flag,i&&!S.isActivated&&R())};Object.assign(z,t);return z.renderVN=()=>{var{className:e,popupClassName:t,trigger:n,title:i,routerLink:o,type:u,destroyOnClose:l,name:a,loading:s}=O,{initialized:r,isAniVisible:v,visiblePanel:c}=S,d=$.value;const p=E.value;var _=V.value;const m=W.value;var b=A.value;const g=Z.value;var x,f=M.value,h=U.value,T=N.value,y=J.value,k=P.value,C=w.dropdowns;return T.visible?C||y.length?(T={},x={},"hover"===n&&(T.onMouseenter=X,T.onMouseleave=ee,x.onMouseenter=q,x.onMouseleave=te),(0,_vue.h)("div",{ref:B,class:["vxe-button--dropdown",e?_xeUtils.default.isFunction(e)?e({$button:z}):e:"",{["size--"+k]:k,"is--active":c}]},[o?(0,_vue.h)((0,_vue.resolveComponent)("router-link"),Object.assign({ref:I,class:["vxe-button","vxe-button--link","type--"+p,b?"align--"+b:"",e?_xeUtils.default.isFunction(e)?e({$button:z}):e:"",{["size--"+k]:k,["theme--"+_]:_,"is--round":m,"is--circle":g,"is--disabled":h||s,"is--loading":s}],title:i,name:a,type:d?u:"button",disabled:h||s,to:o,onClick:Y},T),{default(){return G().concat([(0,_vue.h)("i",{class:"vxe-button--dropdown-arrow "+(0,_ui.getIcon)().BUTTON_DROPDOWN})])}}):(0,_vue.h)("button",Object.assign({ref:I,class:["vxe-button","type--"+p,b?"align--"+b:"",e?_xeUtils.default.isFunction(e)?e({$button:z}):e:"",{["size--"+k]:k,["theme--"+_]:_,"is--round":m,"is--circle":g,"is--disabled":h||s,"is--loading":s}],title:i,name:a,type:d?u:"button",disabled:h||s,onClick:Y},T),G().concat([(0,_vue.h)("i",{class:"vxe-button--dropdown-arrow "+(0,_ui.getIcon)().BUTTON_DROPDOWN})])),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!f||!r},[(0,_vue.h)("div",Object.assign({ref:j,class:["vxe-button--dropdown-panel",t?_xeUtils.default.isFunction(t)?t({$button:z}):t:"",{["size--"+k]:k,"is--transfer":f,"ani--leave":v,"ani--enter":c}],placement:S.panelPlacement,style:S.panelStyle},x),r&&(c||v)?[C?(0,_vue.h)("div",{class:"vxe-button--dropdown-wrapper",onMousedown:K,onClick:Q},r&&(!l||c||v)?C({}):[]):(0,_vue.h)("div",{class:"vxe-button--dropdown-wrapper"},r&&(!l||c||v)?y.map((i,e)=>(0,_vue.h)(VxeButtonComponent,{key:e,type:i.type,mode:i.mode||p,className:i.className,name:i.name,routerLink:i.routerLink,permissionCode:i.permissionCode,title:i.title,content:i.content,status:i.status,icon:i.icon,round:_xeUtils.default.isBoolean(i.round)?i.round:"text"!==p&&m,circle:_xeUtils.default.isBoolean(i.circle)?i.circle:"text"!==p&&g,disabled:i.disabled,loading:i.loading,align:i.align,onClick(e){var t=e,n=i;t=e.$event,R(),H("dropdown-click",{name:n.name,option:n},t)}})):[])]:[])])])):o?(0,_vue.h)((0,_vue.resolveComponent)("router-link"),{ref:I,class:["vxe-button","vxe-button--link","type--"+p,b?"align--"+b:"",e?_xeUtils.default.isFunction(e)?e({$button:z}):e:"",{["size--"+k]:k,["theme--"+_]:_,"is--round":m,"is--circle":g,"is--disabled":h||s,"is--loading":s}],title:i,name:a,type:d?u:"button",disabled:h||s,to:o,onClick:D,onMouseenter:F,onMouseleave:L},{default(){return G()}}):(0,_vue.h)("button",{ref:I,class:["vxe-button","type--"+p,b?"align--"+b:"",e?_xeUtils.default.isFunction(e)?e({$button:z}):e:"",{["size--"+k]:k,["theme--"+_]:_,"is--round":m,"is--circle":g,"is--disabled":h||s,"is--loading":s}],title:i,name:a,type:d?u:"button",disabled:h||s,onClick:D,onMouseenter:F,onMouseleave:L},G()):(0,_ui.renderEmptyElement)(z)},(0,_vue.onMounted)(()=>{"text"===O.type&&(0,_log.warnLog)("vxe.error.delProp",["type=text","mode=text"]),_ui.globalEvents.on(z,"mousewheel",b),_ui.globalEvents.on(z,"mousedown",g)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(z,"mousewheel"),_ui.globalEvents.off(z,"mousedown")}),z},render(){return this.renderVN()}});var _default=exports.default=VxeButtonComponent;
|
package/lib/form/render/index.js
CHANGED
|
@@ -108,10 +108,8 @@ function getComponentOns(renderOpts, params, eFns, eventOns) {
|
|
|
108
108
|
const ons = {};
|
|
109
109
|
_xeUtils.default.objectEach(events, (func, key) => {
|
|
110
110
|
ons[(0, _vn.getOnName)(key)] = function (...args) {
|
|
111
|
-
if (
|
|
112
|
-
|
|
113
|
-
(0, _log.errLog)('vxe.error.errFunc', [func]);
|
|
114
|
-
}
|
|
111
|
+
if (!_xeUtils.default.isFunction(func)) {
|
|
112
|
+
(0, _log.errLog)('vxe.error.errFunc', [func]);
|
|
115
113
|
}
|
|
116
114
|
func(params, ...args);
|
|
117
115
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const componentDefaultModelProp="modelValue";function getOldComponentName(e){return"vxe-"+e.replace("$","")}function getDefaultComponent({name:e}){return(0,_ui.getComponent)(e)||(0,_vue.resolveComponent)(e)}function getOldComponent({name:e}){return(0,_vue.resolveComponent)(getOldComponentName(e))}function getNativeAttrs(e){let{name:t,attrs:n}=e;return n="input"===t?Object.assign({type:"text"},n):n}function getComponentFormItemProps(e,t,n,o){return _xeUtils.default.assign({},o,e.props,{[componentDefaultModelProp]:n})}function getNativeElementOns(e,n,t,o){const r=e["events"],s=(0,_vn.getModelEvent)(e.name),m=(0,_vn.getChangeEvent)(e.name),a=m===s,u={};return r&&_xeUtils.default.objectEach(r,(t,e)=>{u[(0,_vn.getOnName)(e)]=function(...e){t(n,...e)}}),t&&(u[(0,_vn.getOnName)(s)]=function(e){t(e),a&&o&&o(e),r&&r[s]&&r[s](n,e)}),!a&&o&&(u[(0,_vn.getOnName)(m)]=function(...e){o(...e),r&&r[m]&&r[m](n,...e)}),u}function getComponentOns(e,n,t,o){const r=e["events"],{model:s,change:m}=t||{},a=(0,_vn.getModelEvent)(e.name),u=(0,_vn.getChangeEvent)(e.name),i={};return _xeUtils.default.objectEach(r,(t,e)=>{i[(0,_vn.getOnName)(e)]=function(...e){
|
|
1
|
+
"use strict";var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const componentDefaultModelProp="modelValue";function getOldComponentName(e){return"vxe-"+e.replace("$","")}function getDefaultComponent({name:e}){return(0,_ui.getComponent)(e)||(0,_vue.resolveComponent)(e)}function getOldComponent({name:e}){return(0,_vue.resolveComponent)(getOldComponentName(e))}function getNativeAttrs(e){let{name:t,attrs:n}=e;return n="input"===t?Object.assign({type:"text"},n):n}function getComponentFormItemProps(e,t,n,o){return _xeUtils.default.assign({},o,e.props,{[componentDefaultModelProp]:n})}function getNativeElementOns(e,n,t,o){const r=e["events"],s=(0,_vn.getModelEvent)(e.name),m=(0,_vn.getChangeEvent)(e.name),a=m===s,u={};return r&&_xeUtils.default.objectEach(r,(t,e)=>{u[(0,_vn.getOnName)(e)]=function(...e){t(n,...e)}}),t&&(u[(0,_vn.getOnName)(s)]=function(e){t(e),a&&o&&o(e),r&&r[s]&&r[s](n,e)}),!a&&o&&(u[(0,_vn.getOnName)(m)]=function(...e){o(...e),r&&r[m]&&r[m](n,...e)}),u}function getComponentOns(e,n,t,o){const r=e["events"],{model:s,change:m}=t||{},a=(0,_vn.getModelEvent)(e.name),u=(0,_vn.getChangeEvent)(e.name),i={};return _xeUtils.default.objectEach(r,(t,e)=>{i[(0,_vn.getOnName)(e)]=function(...e){_xeUtils.default.isFunction(t)||(0,_log.errLog)("vxe.error.errFunc",[t]),t(n,...e)}}),s&&(i[(0,_vn.getOnName)(a)]=function(e){s(e),r&&r[a]&&r[a](n,e)}),m&&(i[(0,_vn.getOnName)(u)]=function(...e){m(...e),r&&r[u]&&r[u](n,...e)}),o?Object.assign(i,o):i}function getItemOns(e,t){const{$form:n,data:o,field:r}=t;return getComponentOns(e,t,{model(e){_xeUtils.default.set(o,r,e)},change(e){n.updateStatus(e)}})}function getNativeItemOns(e,t){const{$form:n,data:o,field:r}=t;return getNativeElementOns(e,t,e=>{e=e.target.value;_xeUtils.default.set(o,r,e)},()=>{n.updateStatus(t)})}function renderNativeOptgroup(n,o,r){var{optionGroups:e,optionGroupProps:t={}}=n;const s=t.options||"options",m=t.label||"label";return e?e.map((e,t)=>(0,_vue.h)("optgroup",{key:t,label:e[m]},r(e[s],n,o))):[]}function nativeItemRender(e,t){var{data:n,field:o}=t,r=e["name"],s=getNativeAttrs(e),n=_xeUtils.default.get(n,o);return[(0,_vue.h)(r,Object.assign(Object.assign(Object.assign({class:"vxe-default-"+r},s),{value:!s||"input"!==r||"submit"!==s.type&&"reset"!==s.type?n:null}),getNativeItemOns(e,t)))]}function defaultItemRender(e,t){var{data:n,field:o}=t,n=_xeUtils.default.get(n,o);return[(0,_vue.h)(getDefaultComponent(e),Object.assign(Object.assign({},getComponentFormItemProps(e,t,n)),getItemOns(e,t)))]}function oldItemRender(e,t){var{data:n,field:o}=t,n=_xeUtils.default.get(n,o);return[(0,_vue.h)(getOldComponent(e),Object.assign(Object.assign({},getComponentFormItemProps(e,t,n)),getItemOns(e,t)))]}function oldButtonItemRender(e,t){return[(0,_vue.h)((0,_vue.resolveComponent)("vxe-button"),Object.assign(Object.assign({},getComponentFormItemProps(e,t,null)),getComponentOns(e,t)))]}function oldButtonsItemRender(e,t){return e.children.map(e=>oldButtonItemRender(e,t)[0])}function renderNativeFormOptions(e,t,n){var{data:n,field:o}=n,{optionProps:t={}}=t;const r=t.label||"label",s=t.value||"value",m=t.disabled||"disabled",a=_xeUtils.default.get(n,o);return e?e.map((e,t)=>(0,_vue.h)("option",{key:t,value:e[s],disabled:e[m],selected:e[s]==a},e[r])):[]}function defaultFormItemRender(e,t){var{data:n,field:o}=t,n=_xeUtils.default.get(n,o);return[(0,_vue.h)(getDefaultComponent(e),Object.assign(Object.assign({},getComponentFormItemProps(e,t,n)),getItemOns(e,t)))]}function formItemRadioAndCheckboxRender(e,t){var{options:n,optionProps:o}=e,{data:r,field:s}=t,r=_xeUtils.default.get(r,s);return[(0,_vue.h)(getDefaultComponent(e),Object.assign(Object.assign({options:n,optionProps:o},getComponentFormItemProps(e,t,r)),getItemOns(e,t)))]}function oldFormItemRadioAndCheckboxRender(e,t){const{name:n,options:o,optionProps:r={}}=e;var{data:s,field:m}=t;const a=r.label||"label",u=r.value||"value",i=r.disabled||"disabled";s=_xeUtils.default.get(s,m);const d=getOldComponentName(n);return o?[(0,_vue.h)((0,_vue.resolveComponent)(d+"-group"),Object.assign(Object.assign({},getComponentFormItemProps(e,t,s)),getItemOns(e,t)),{default:()=>o.map((e,t)=>(0,_vue.h)((0,_vue.resolveComponent)(d),{key:t,label:e[u],content:e[a],disabled:e[i]}))})]:[(0,_vue.h)((0,_vue.resolveComponent)(d),Object.assign(Object.assign({},getComponentFormItemProps(e,t,s)),getItemOns(e,t)))]}_ui.renderer.mixin({input:{formItemAutoFocus:"input",renderFormItemContent:nativeItemRender},textarea:{formItemAutoFocus:"textarea",renderFormItemContent:nativeItemRender},select:{formItemAutoFocus:"input",renderFormItemContent(e,t){return[(0,_vue.h)("select",Object.assign(Object.assign({class:"vxe-default-select"},getNativeAttrs(e)),getNativeItemOns(e,t)),e.optionGroups?renderNativeOptgroup(e,t,renderNativeFormOptions):renderNativeFormOptions(e.options,e,t))]}},VxeInput:{formItemAutoFocus:"input",renderFormItemContent:defaultItemRender},VxeNumberInput:{formItemAutoFocus:"input",renderFormItemContent:defaultItemRender},VxePasswordInput:{formItemAutoFocus:"input",renderFormItemContent:defaultItemRender},VxeTextarea:{formItemAutoFocus:"textarea",renderFormItemContent:defaultItemRender},VxeDatePicker:{formItemAutoFocus:"input",renderFormItemContent:defaultItemRender},VxeDateRangePicker:{formItemAutoFocus:"input",renderFormItemContent(e,t){const{startField:n,endField:o}=e,{$form:r,data:s,field:m}=t;var a=_xeUtils.default.get(s,m),u={},i={};return n&&o&&(u.startValue=_xeUtils.default.get(s,n),u.endValue=_xeUtils.default.get(s,o),i["onUpdate:startValue"]=e=>{n&&_xeUtils.default.set(s,n,e)},i["onUpdate:endValue"]=e=>{o&&_xeUtils.default.set(s,o,e)}),[(0,_vue.h)(getDefaultComponent(e),Object.assign(Object.assign({},getComponentFormItemProps(e,t,a,u)),getComponentOns(e,t,{model(e){_xeUtils.default.set(s,m,e)},change(){r.updateStatus(t)}},i)))]}},VxeButton:{renderFormItemContent:defaultFormItemRender},VxeButtonGroup:{renderFormItemContent(e,t){var n=e["options"],{data:o,field:r}=t,o=_xeUtils.default.get(o,r);return[(0,_vue.h)(getDefaultComponent(e),Object.assign(Object.assign({options:n},getComponentFormItemProps(e,t,o)),getItemOns(e,t)))]}},VxeSelect:{formItemAutoFocus:"input",renderFormItemContent(e,t){var{data:n,field:o}=t,{options:r,optionProps:s,optionGroups:m,optionGroupProps:a}=e,n=_xeUtils.default.get(n,o);return[(0,_vue.h)(getDefaultComponent(e),Object.assign(Object.assign({},getComponentFormItemProps(e,t,n,{options:r,optionProps:s,optionGroups:m,optionGroupProps:a})),getItemOns(e,t)))]}},VxeTreeSelect:{formItemAutoFocus:"input",renderFormItemContent(e,t){var{data:n,field:o}=t,{options:r,optionProps:s}=e,n=_xeUtils.default.get(n,o);return[(0,_vue.h)(getDefaultComponent(e),Object.assign(Object.assign({},getComponentFormItemProps(e,t,n,{options:r,optionProps:s})),getItemOns(e,t)))]}},VxeTableSelect:{formItemAutoFocus:"input",renderFormItemContent(e,t){var{data:n,field:o}=t,{options:r,optionProps:s}=e,n=_xeUtils.default.get(n,o);return[(0,_vue.h)(getDefaultComponent(e),Object.assign(Object.assign({},getComponentFormItemProps(e,t,n,{options:r,optionProps:s})),getItemOns(e,t)))]}},VxeColorPicker:{formItemAutoFocus:"input",renderFormItemContent(e,t){var{data:n,field:o}=t,r=e["options"],n=_xeUtils.default.get(n,o);return[(0,_vue.h)(getDefaultComponent(e),Object.assign(Object.assign({},getComponentFormItemProps(e,t,n,{colors:r})),getItemOns(e,t)))]}},VxeIconPicker:{formItemAutoFocus:"input",renderFormItemContent(e,t){var{data:n,field:o}=t,r=e["options"],n=_xeUtils.default.get(n,o);return[(0,_vue.h)(getDefaultComponent(e),Object.assign(Object.assign({},getComponentFormItemProps(e,t,n,{icons:r})),getItemOns(e,t)))]}},VxeRadio:{renderFormItemContent:defaultFormItemRender},VxeRadioGroup:{renderFormItemContent:formItemRadioAndCheckboxRender},VxeCheckbox:{renderFormItemContent:defaultFormItemRender},VxeCheckboxGroup:{renderFormItemContent:formItemRadioAndCheckboxRender},VxeSwitch:{renderFormItemContent:defaultItemRender},VxeRate:{renderFormItemContent:defaultItemRender},VxeSlider:{renderFormItemContent:defaultItemRender},VxeImage:{renderFormItemContent(e,t){var{data:n,field:o}=t,r=e["props"],n=_xeUtils.default.get(n,o);return[(0,_vue.h)(getDefaultComponent(e),Object.assign(Object.assign(Object.assign({},r),{src:n}),getItemOns(e,t)))]}},VxeImageGroup:{renderFormItemContent(e,t){var{data:n,field:o}=t,r=e["props"],n=_xeUtils.default.get(n,o);return[(0,_vue.h)(getDefaultComponent(e),Object.assign(Object.assign(Object.assign({},r),{urlList:n}),getItemOns(e,t)))]}},VxeUpload:{renderFormItemContent:defaultItemRender},$input:{formItemAutoFocus:"input",renderFormItemContent:oldItemRender},$textarea:{formItemAutoFocus:"textarea",renderFormItemContent:oldItemRender},$button:{renderFormItemContent:oldButtonItemRender},$buttons:{renderFormItemContent:oldButtonsItemRender},$select:{formItemAutoFocus:"input",renderFormItemContent(e,t){var{data:n,field:o}=t,{options:r,optionProps:s,optionGroups:m,optionGroupProps:a}=e,n=_xeUtils.default.get(n,o);return[(0,_vue.h)(getOldComponent(e),Object.assign(Object.assign({},getComponentFormItemProps(e,t,n,{options:r,optionProps:s,optionGroups:m,optionGroupProps:a})),getItemOns(e,t)))]}},$radio:{renderFormItemContent:oldFormItemRadioAndCheckboxRender},$checkbox:{renderFormItemContent:oldFormItemRadioAndCheckboxRender},$switch:{renderFormItemContent:oldItemRender}});
|
package/lib/form/src/form.js
CHANGED
|
@@ -37,33 +37,108 @@ class Rule {
|
|
|
37
37
|
return this.content;
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
-
|
|
40
|
+
// 如果存在 pattern,判断正则
|
|
41
|
+
function validREValue(pattern, val) {
|
|
42
|
+
if (pattern && !(_xeUtils.default.isRegExp(pattern) ? pattern : new RegExp(pattern)).test(val)) {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
// 如果存在 max,判断最大值
|
|
48
|
+
function validMaxValue(max, num) {
|
|
49
|
+
if (!_xeUtils.default.eqNull(max) && num > _xeUtils.default.toNumber(max)) {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
// 如果存在 min,判断最小值
|
|
55
|
+
function validMinValue(min, num) {
|
|
56
|
+
if (!_xeUtils.default.eqNull(min) && num < _xeUtils.default.toNumber(min)) {
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
function validRuleValue(rule, val, required) {
|
|
41
62
|
const {
|
|
42
63
|
type,
|
|
43
64
|
min,
|
|
44
65
|
max,
|
|
45
66
|
pattern
|
|
46
67
|
} = rule;
|
|
68
|
+
const isArrType = type === 'array';
|
|
47
69
|
const isNumType = type === 'number';
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
if (
|
|
51
|
-
return
|
|
70
|
+
const isStrType = type === 'string';
|
|
71
|
+
const strVal = `${val}`;
|
|
72
|
+
if (!validREValue(pattern, strVal)) {
|
|
73
|
+
return false;
|
|
52
74
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
75
|
+
if (isArrType) {
|
|
76
|
+
if (!_xeUtils.default.isArray(val)) {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
if (required) {
|
|
80
|
+
if (!val.length) {
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
if (!validMinValue(min, val.length)) {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
if (!validMaxValue(max, val.length)) {
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
} else if (isNumType) {
|
|
91
|
+
const numVal = Number(val);
|
|
92
|
+
if (isNaN(numVal)) {
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
if (!validMinValue(min, numVal)) {
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
if (!validMaxValue(max, numVal)) {
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
101
|
+
} else {
|
|
102
|
+
if (isStrType) {
|
|
103
|
+
if (!_xeUtils.default.isString(val)) {
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
if (required) {
|
|
108
|
+
if (!strVal) {
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
if (!validMinValue(min, strVal.length)) {
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
if (!validMaxValue(max, strVal.length)) {
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
60
118
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
119
|
+
return true;
|
|
120
|
+
}
|
|
121
|
+
function checkRuleStatus(rule, val) {
|
|
122
|
+
const {
|
|
123
|
+
required
|
|
124
|
+
} = rule;
|
|
125
|
+
const isEmptyVal = _xeUtils.default.eqNull(val);
|
|
126
|
+
if (required) {
|
|
127
|
+
if (isEmptyVal) {
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
if (!validRuleValue(rule, val, required)) {
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
} else {
|
|
134
|
+
if (!isEmptyVal) {
|
|
135
|
+
if (!validRuleValue(rule, val, required)) {
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
64
139
|
}
|
|
65
|
-
return
|
|
66
|
-
}
|
|
140
|
+
return true;
|
|
141
|
+
}
|
|
67
142
|
var _default = exports.default = (0, _vue.defineComponent)({
|
|
68
143
|
name: 'VxeForm',
|
|
69
144
|
props: {
|
|
@@ -441,9 +516,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
441
516
|
const itemValue = _xeUtils.default.isUndefined(val) ? _xeUtils.default.get(data, property) : val;
|
|
442
517
|
rules.forEach(rule => {
|
|
443
518
|
const {
|
|
444
|
-
type,
|
|
445
519
|
trigger,
|
|
446
|
-
required,
|
|
447
520
|
validator
|
|
448
521
|
} = rule;
|
|
449
522
|
if (validType === 'all' || !trigger || validType === trigger) {
|
|
@@ -465,14 +538,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
465
538
|
if (validatorMethod) {
|
|
466
539
|
customValid = validatorMethod(validParams);
|
|
467
540
|
} else {
|
|
468
|
-
|
|
469
|
-
(0, _log.warnLog)('vxe.error.notValidators', [validator]);
|
|
470
|
-
}
|
|
541
|
+
(0, _log.warnLog)('vxe.error.notValidators', [validator]);
|
|
471
542
|
}
|
|
472
543
|
} else {
|
|
473
|
-
|
|
474
|
-
(0, _log.errLog)('vxe.error.notValidators', [validator]);
|
|
475
|
-
}
|
|
544
|
+
(0, _log.errLog)('vxe.error.notValidators', [validator]);
|
|
476
545
|
}
|
|
477
546
|
} else {
|
|
478
547
|
customValid = validator(validParams);
|
|
@@ -498,17 +567,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
498
567
|
}
|
|
499
568
|
}
|
|
500
569
|
} else {
|
|
501
|
-
|
|
502
|
-
const isArrVal = _xeUtils.default.isArray(itemValue);
|
|
503
|
-
let hasEmpty = true;
|
|
504
|
-
if (isArrType || isArrVal) {
|
|
505
|
-
hasEmpty = !isArrVal || !itemValue.length;
|
|
506
|
-
} else if (_xeUtils.default.isString(itemValue)) {
|
|
507
|
-
hasEmpty = (0, _utils.eqEmptyValue)(itemValue.trim());
|
|
508
|
-
} else {
|
|
509
|
-
hasEmpty = (0, _utils.eqEmptyValue)(itemValue);
|
|
510
|
-
}
|
|
511
|
-
if (required ? hasEmpty || validErrorRuleValue(rule, itemValue) : !hasEmpty && validErrorRuleValue(rule, itemValue)) {
|
|
570
|
+
if (!checkRuleStatus(rule, itemValue)) {
|
|
512
571
|
errorRules.push(new Rule(rule));
|
|
513
572
|
}
|
|
514
573
|
}
|
package/lib/form/src/form.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_util=require("./util"),_tooltip=_interopRequireDefault(require("../../tooltip/src/tooltip")),_formConfigItem=_interopRequireDefault(require("./form-config-item")),_loading=_interopRequireDefault(require("../../loading/src/loading")),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}class Rule{constructor(e){Object.assign(this,{$options:e,required:e.required,min:e.min,max:e.min,type:e.type,pattern:e.pattern,validator:e.validator,trigger:e.trigger,maxWidth:e.maxWidth})}get content(){return(0,_utils.getFuncText)(this.$options.content||this.$options.message)}get message(){return this.content}}const validErrorRuleValue=(e,t)=>{var{type:e,min:i,max:l,pattern:r}=e,e="number"===e,a=e?_xeUtils.default.toNumber(t):_xeUtils.default.getSize(t);return!(!e||!isNaN(t))||!_xeUtils.default.eqNull(i)&&a<_xeUtils.default.toNumber(i)||!_xeUtils.default.eqNull(l)&&a>_xeUtils.default.toNumber(l)||!(!r||(_xeUtils.default.isRegExp(r)?r:new RegExp(r)).test(t))};var _default=exports.default=(0,_vue.defineComponent)({name:"VxeForm",props:{collapseStatus:{type:Boolean,default:!0},loading:Boolean,data:Object,size:{type:String,default:()=>(0,_ui.getConfig)().form.size||(0,_ui.getConfig)().size},span:{type:[String,Number],default:()=>(0,_ui.getConfig)().form.span},align:{type:String,default:()=>(0,_ui.getConfig)().form.align},verticalAlign:{type:String,default:()=>(0,_ui.getConfig)().form.verticalAlign},border:{type:Boolean,default:()=>(0,_ui.getConfig)().form.border},titleBackground:{type:Boolean,default:()=>(0,_ui.getConfig)().form.titleBackground},titleBold:{type:Boolean,default:()=>(0,_ui.getConfig)().form.titleBold},titleAlign:{type:String,default:()=>(0,_ui.getConfig)().form.titleAlign},titleWidth:{type:[String,Number],default:()=>(0,_ui.getConfig)().form.titleWidth},titleColon:{type:Boolean,default:()=>(0,_ui.getConfig)().form.titleColon},titleAsterisk:{type:Boolean,default:()=>(0,_ui.getConfig)().form.titleAsterisk},titleOverflow:{type:[Boolean,String],default:()=>(0,_ui.getConfig)().form.titleOverflow},vertical:{type:Boolean,default:()=>(0,_ui.getConfig)().form.vertical},padding:{type:Boolean,default:()=>(0,_ui.getConfig)().form.padding},className:[String,Function],readonly:Boolean,disabled:Boolean,items:Array,rules:Object,preventSubmit:{type:Boolean,default:()=>(0,_ui.getConfig)().form.preventSubmit},validConfig:Object,tooltipConfig:Object,collapseConfig:Object,customLayout:{type:Boolean,default:()=>(0,_ui.getConfig)().form.customLayout}},emits:["update:collapseStatus","collapse","toggle-collapse","submit","submit-invalid","reset"],setup(n,e){const{slots:d,emit:l}=e,u=(0,_vue.inject)("$xeGrid",null);var t=_xeUtils.default.uniqueId();const c=(0,_ui.useSize)(n)["computeSize"],m=(0,_vue.reactive)({collapseAll:n.collapseStatus,staticItems:[],formItems:[]}),f=(0,_vue.reactive)({meTimeout:void 0,stTimeout:void 0,tooltipStore:{item:null,visible:!1},itemFormatCache:{}}),g=(0,_vue.ref)(),v=(0,_vue.ref)();let i={};const p=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().form.validConfig,n.validConfig)),_=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().tooltip,(0,_ui.getConfig)().form.tooltipConfig,n.tooltipConfig));var r=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().form.collapseConfig,n.collapseConfig));const a={refElem:g},o={computeSize:c,computeValidOpts:p,computeTooltipOpts:_,computeCollapseOpts:r},h={xID:t,props:n,context:e,reactData:m,internalData:f,xeGrid:u,getRefMaps:()=>a,getComputeMaps:()=>o};const s=e=>(e.length&&e.forEach(e=>{e.slots&&_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||d[e]||(0,_log.errLog)("vxe.error.notSlot",[e])})}),m.staticItems=_xeUtils.default.mapTree(e,e=>(0,_util.createItem)(h,e),{children:"children"}),f.itemFormatCache={},(0,_vue.nextTick)()),x=()=>{const t=[];return _xeUtils.default.eachTree(m.formItems,e=>{t.push(e)},{children:"children"}),t},y=t=>{var e=_xeUtils.default.findTree(m.formItems,e=>e.field===t,{children:"children"});return e?e.item:null},C=()=>m.collapseAll,b=()=>{var e=!C();return m.collapseAll=e,l("update:collapseStatus",e),(0,_vue.nextTick)()};const E=t=>{if(t){let e=t;(e=_xeUtils.default.isArray(t)?e:[t]).forEach(e=>{e&&(e=(0,_util.handleFieldOrItem)(h,e))&&(e.showError=!1)})}else x().forEach(e=>{e.showError=!1});return(0,_vue.nextTick)()},U=(e,t,i)=>{var{field:l,resetValue:r}=e;return _xeUtils.default.isFunction(r)?r({field:l,item:e,data:t,$form:h,$grid:u}):_xeUtils.default.eqNull(r)&&_xeUtils.default.isArray(i)?[]:r},S=()=>{const o=n["data"];var e=x();return o&&e.forEach(e=>{var t,i,l,{field:r,itemRender:a}=e;(0,_utils.isEnableConf)(a)&&({name:a,startField:t,endField:i}=a,l=(a=_ui.renderer.get(a))?a.formItemResetMethod||a.itemResetMethod:null,a&&l?l({data:o,field:r,property:r,item:e,$form:h,$grid:u}):r&&(a=_xeUtils.default.get(o,r),_xeUtils.default.set(o,r,U(e,o,a))),t)&&i&&(_xeUtils.default.set(o,t,U(e,o,_xeUtils.default.get(o,t))),_xeUtils.default.set(o,i,U(e,o,_xeUtils.default.get(o,i))))}),f.itemFormatCache={},E()},T=e=>{e.preventDefault(),S(),i.dispatchEvent("reset",{data:n.data},e)},I=e=>{var i=g.value;if(i)for(let t=0;t<e.length;t++){var l=e[t],r=y(l);if(r&&(0,_utils.isEnableConf)(r.itemRender)){var a=r["itemRender"],o=_ui.renderer.get(a.name);t||(0,_dom.scrollToView)(i.querySelector("."+r.id));let e=null;a=a.autoFocus||a.autofocus||(o?o.formItemAutoFocus:null);if(_xeUtils.default.isFunction(a)?e=a({$form:h,$grid:u,item:r,data:n.data,field:l}):!0===a?e=i.querySelector(`.${r.id} input,textarea`):a&&(e=i.querySelector(`.${r.id} `+a)),e){e.focus();break}}}},q=(e,t,i)=>{const{data:f,rules:l}=n,r={};return _xeUtils.default.isArray(t)||(t=[t]),Promise.all(t.map(s=>{const n=[],d=[];if(s&&l){const c=_xeUtils.default.get(l,s);if(c){const m=_xeUtils.default.isUndefined(i)?_xeUtils.default.get(f,s):i;c.forEach(t=>{const{type:i,trigger:l,required:r,validator:a}=t;if("all"===e||!l||e===l)if(a){var o={itemValue:m,rule:t,rules:c,data:f,field:s,property:s,$form:h};let e;_xeUtils.default.isString(a)?(u=_ui.validators.get(a))?(u=u.formItemValidatorMethod||u.itemValidatorMethod)?e=u(o):"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.notValidators",[a]):"development"===process.env.NODE_ENV&&(0,_log.errLog)("vxe.error.notValidators",[a]):e=a(o),e&&(_xeUtils.default.isError(e)?n.push(new Rule({type:"custom",trigger:l,content:e.message,rule:new Rule(t)})):e.catch&&d.push(e.catch(e=>{n.push(new Rule({type:"custom",trigger:l,content:e?e.message:t.content||t.message,rule:new Rule(t)}))})))}else{var u="array"===i,o=_xeUtils.default.isArray(m);let e=!0;e=u||o?!o||!m.length:_xeUtils.default.isString(m)?(0,_utils.eqEmptyValue)(m.trim()):(0,_utils.eqEmptyValue)(m),(r?e||validErrorRuleValue(t,m):!e&&validErrorRuleValue(t,m))&&n.push(new Rule(t))}})}}return Promise.all(d).then(()=>{n.length&&(r[s]=n.map(e=>({$form:h,rule:e,data:f,field:s,property:s})))})})).then(()=>{if(!_xeUtils.default.isEmpty(r))return Promise.reject(r)})},w=(t,e,i)=>{var{data:l,rules:r}=n;const a=p.value,o={},u=[],s=[];return clearTimeout(f.meTimeout),l&&r?(t.forEach(t=>{const i=t["field"];i&&!(0,_util.isHiddenItem)(h,t)&&(0,_util.isActiveItem)(h,t)&&s.push(q(e||"all",i).then(()=>{t.errRule=null}).catch(e=>{e=e[i];return o[i]||(o[i]=[]),o[i].push(e),u.push(i),t.errRule=e[0].rule,Promise.reject(e)}))}),Promise.all(s).then(()=>{i&&i()}).catch(()=>new Promise(e=>{f.meTimeout=setTimeout(()=>{t.forEach(e=>{e.errRule&&(e.showError=!0)})},20),!1!==a.autoPos&&(0,_vue.nextTick)(()=>{I(u)}),i?(i(o),e()):e(o)}))):(i&&i(),Promise.resolve())};const R=t=>{var e=n["readonly"];t.preventDefault(),n.preventSubmit||(E(),e?i.dispatchEvent("submit",{data:n.data},t):w(x()).then(e=>{e?i.dispatchEvent("submit-invalid",{data:n.data,errMap:e},t):i.dispatchEvent("submit",{data:n.data},t)}))},F=()=>{var e=f["tooltipStore"],t=v.value;return e.visible&&(Object.assign(e,{item:null,visible:!1}),t)&&t.close(),(0,_vue.nextTick)()};const O=(e,i,t)=>i?q(e?["blur"].includes(e.type)?"blur":"change":"all",i,t).then(()=>{E(i)}).catch(e=>{var e=e[i],t=y(i);e&&t&&(t.showError=!0,t.errRule=e[0].rule)}):(0,_vue.nextTick)();i={dispatchEvent(e,t,i){l(e,(0,_ui.createEvent)(i,{$form:h,$grid:u},t))},reset:S,validate:e=>{var t=n["readonly"];return E(),t?(0,_vue.nextTick)():w(x(),"",e)},validateField:(e,t)=>{var i=n["readonly"];if(i)return(0,_vue.nextTick)();let l=[];return e&&(l=_xeUtils.default.isArray(e)?e:[e]),w(l.map(e=>(0,_util.handleFieldOrItem)(h,e)),"",t)},clearValidate:E,updateStatus:(e,t)=>{e=e.field;return O(new Event("change"),e,t)},toggleCollapse:b,getItems:x,getItemByField:y,closeTooltip:F};r={callSlot:(e,t)=>e&&(_xeUtils.default.isString(e)&&(e=d[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[],triggerItemEvent:O,toggleCollapseEvent:e=>{b();var t=C();i.dispatchEvent("toggle-collapse",{status:t,collapse:t,data:n.data},e),i.dispatchEvent("collapse",{status:t,collapse:t,data:n.data},e),(0,_vue.nextTick)(()=>{u&&u.recalculate()})},triggerTitleTipEvent:(e,t)=>{var t=t["item"],i=f["tooltipStore"],l=v.value,e=e.currentTarget.children[0],r=(e.textContent||"").trim(),a=e.scrollWidth>e.clientWidth;clearTimeout(f.stTimeout),i.item!==t&&F(),r&&a&&(Object.assign(i,{item:t,visible:!0}),l)&&l.open(e,r)},handleTitleTipLeaveEvent:()=>{var e=_.value;let t=v.value;t&&t.setActived(!1),e.enterable?f.stTimeout=setTimeout(()=>{(t=v.value)&&!t.isActived()&&F()},e.leaveDelay):F()}};Object.assign(h,i,r);const V=(0,_vue.ref)(0),A=((0,_vue.watch)(()=>m.staticItems.length,()=>{V.value++}),(0,_vue.watch)(()=>m.staticItems,()=>{V.value++}),(0,_vue.watch)(V,()=>{m.formItems=m.staticItems}),(0,_vue.ref)(0));return(0,_vue.watch)(()=>n.items?n.items.length:-1,()=>{A.value++}),(0,_vue.watch)(()=>n.items,()=>{A.value++}),(0,_vue.watch)(A,()=>{s(n.items||[])}),(0,_vue.watch)(()=>n.collapseStatus,e=>{m.collapseAll=!!e}),(0,_vue.watch)(()=>n.readonly,()=>{E()}),(0,_vue.watch)(()=>n.disabled,()=>{E()}),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{n.customLayout&&n.items&&(0,_log.errLog)("vxe.error.errConflicts",["custom-layout","items"])})}),n.items&&s(n.items),(0,_vue.provide)("xeFormItemInfo",null),(0,_vue.provide)("$xeForm",h),(0,_vue.provide)("$xeFormGroup",null),(0,_vue.provide)("$xeFormItem",null),h.renderVN=()=>{var{loading:e,border:t,className:i,data:l,customLayout:r}=n,a=m["formItems"],o=c.value,u=_.value,s=d.default;return(0,_vue.h)("form",{ref:g,class:["vxe-form",i?_xeUtils.default.isFunction(i)?i({items:a,data:l,$form:h}):i:"",{["size--"+o]:o,"is--border":t,"custom--layout":r,"is--loading":e}],onSubmit:R,onReset:T},[(0,_vue.h)("div",{class:"vxe-form--wrapper vxe-form--item-row"},r?s?s({}):[]:a.map((e,t)=>(0,_vue.h)(_formConfigItem.default,{key:t,itemConfig:e}))),(0,_vue.h)("div",{class:"vxe-form-slots",ref:"hideItem"},!r&&s?s({}):[]),(0,_vue.h)(_loading.default,{class:"vxe-form--loading",modelValue:e}),(0,_vue.h)(_tooltip.default,Object.assign({ref:v},u))])},h},render(){return this.renderVN()}});
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_util=require("./util"),_tooltip=_interopRequireDefault(require("../../tooltip/src/tooltip")),_formConfigItem=_interopRequireDefault(require("./form-config-item")),_loading=_interopRequireDefault(require("../../loading/src/loading")),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}class Rule{constructor(e){Object.assign(this,{$options:e,required:e.required,min:e.min,max:e.min,type:e.type,pattern:e.pattern,validator:e.validator,trigger:e.trigger,maxWidth:e.maxWidth})}get content(){return(0,_utils.getFuncText)(this.$options.content||this.$options.message)}get message(){return this.content}}function validREValue(e,t){return!(e&&!(_xeUtils.default.isRegExp(e)?e:new RegExp(e)).test(t))}function validMaxValue(e,t){return!(!_xeUtils.default.eqNull(e)&&t>_xeUtils.default.toNumber(e))}function validMinValue(e,t){return!(!_xeUtils.default.eqNull(e)&&t<_xeUtils.default.toNumber(e))}function validRuleValue(e,t,i){var{type:e,min:l,max:r,pattern:a}=e,u="array"===e,o="number"===e,e="string"===e,n=""+t;if(!validREValue(a,n))return!1;if(u){if(!_xeUtils.default.isArray(t))return!1;if(i&&!t.length)return!1;if(!validMinValue(l,t.length))return!1;if(!validMaxValue(r,t.length))return!1}else if(o){a=Number(t);if(isNaN(a))return!1;if(!validMinValue(l,a))return!1;if(!validMaxValue(r,a))return!1}else{if(e&&!_xeUtils.default.isString(t))return!1;if(i&&!n)return!1;if(!validMinValue(l,n.length))return!1;if(!validMaxValue(r,n.length))return!1}return!0}function checkRuleStatus(e,t){var i=e["required"],l=_xeUtils.default.eqNull(t);if(i){if(l)return!1;if(!validRuleValue(e,t,i))return!1}else if(!l&&!validRuleValue(e,t,i))return!1;return!0}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeForm",props:{collapseStatus:{type:Boolean,default:!0},loading:Boolean,data:Object,size:{type:String,default:()=>(0,_ui.getConfig)().form.size||(0,_ui.getConfig)().size},span:{type:[String,Number],default:()=>(0,_ui.getConfig)().form.span},align:{type:String,default:()=>(0,_ui.getConfig)().form.align},verticalAlign:{type:String,default:()=>(0,_ui.getConfig)().form.verticalAlign},border:{type:Boolean,default:()=>(0,_ui.getConfig)().form.border},titleBackground:{type:Boolean,default:()=>(0,_ui.getConfig)().form.titleBackground},titleBold:{type:Boolean,default:()=>(0,_ui.getConfig)().form.titleBold},titleAlign:{type:String,default:()=>(0,_ui.getConfig)().form.titleAlign},titleWidth:{type:[String,Number],default:()=>(0,_ui.getConfig)().form.titleWidth},titleColon:{type:Boolean,default:()=>(0,_ui.getConfig)().form.titleColon},titleAsterisk:{type:Boolean,default:()=>(0,_ui.getConfig)().form.titleAsterisk},titleOverflow:{type:[Boolean,String],default:()=>(0,_ui.getConfig)().form.titleOverflow},vertical:{type:Boolean,default:()=>(0,_ui.getConfig)().form.vertical},padding:{type:Boolean,default:()=>(0,_ui.getConfig)().form.padding},className:[String,Function],readonly:Boolean,disabled:Boolean,items:Array,rules:Object,preventSubmit:{type:Boolean,default:()=>(0,_ui.getConfig)().form.preventSubmit},validConfig:Object,tooltipConfig:Object,collapseConfig:Object,customLayout:{type:Boolean,default:()=>(0,_ui.getConfig)().form.customLayout}},emits:["update:collapseStatus","collapse","toggle-collapse","submit","submit-invalid","reset"],setup(s,e){const{slots:d,emit:l}=e,o=(0,_vue.inject)("$xeGrid",null);var t=_xeUtils.default.uniqueId();const f=(0,_ui.useSize)(s)["computeSize"],c=(0,_vue.reactive)({collapseAll:s.collapseStatus,staticItems:[],formItems:[]}),m=(0,_vue.reactive)({meTimeout:void 0,stTimeout:void 0,tooltipStore:{item:null,visible:!1},itemFormatCache:{}}),g=(0,_vue.ref)(),v=(0,_vue.ref)();let i={};const p=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().form.validConfig,s.validConfig)),_=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().tooltip,(0,_ui.getConfig)().form.tooltipConfig,s.tooltipConfig));var r=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().form.collapseConfig,s.collapseConfig));const a={refElem:g},u={computeSize:f,computeValidOpts:p,computeTooltipOpts:_,computeCollapseOpts:r},h={xID:t,props:s,context:e,reactData:c,internalData:m,xeGrid:o,getRefMaps:()=>a,getComputeMaps:()=>u};const n=e=>(e.length&&e.forEach(e=>{e.slots&&_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||d[e]||(0,_log.errLog)("vxe.error.notSlot",[e])})}),c.staticItems=_xeUtils.default.mapTree(e,e=>(0,_util.createItem)(h,e),{children:"children"}),m.itemFormatCache={},(0,_vue.nextTick)()),x=()=>{const t=[];return _xeUtils.default.eachTree(c.formItems,e=>{t.push(e)},{children:"children"}),t},y=t=>{var e=_xeUtils.default.findTree(c.formItems,e=>e.field===t,{children:"children"});return e?e.item:null},C=()=>c.collapseAll,b=()=>{var e=!C();return c.collapseAll=e,l("update:collapseStatus",e),(0,_vue.nextTick)()};const U=t=>{if(t){let e=t;(e=_xeUtils.default.isArray(t)?e:[t]).forEach(e=>{e&&(e=(0,_util.handleFieldOrItem)(h,e))&&(e.showError=!1)})}else x().forEach(e=>{e.showError=!1});return(0,_vue.nextTick)()},S=(e,t,i)=>{var{field:l,resetValue:r}=e;return _xeUtils.default.isFunction(r)?r({field:l,item:e,data:t,$form:h,$grid:o}):_xeUtils.default.eqNull(r)&&_xeUtils.default.isArray(i)?[]:r},E=()=>{const u=s["data"];var e=x();return u&&e.forEach(e=>{var t,i,l,{field:r,itemRender:a}=e;(0,_utils.isEnableConf)(a)&&({name:a,startField:t,endField:i}=a,l=(a=_ui.renderer.get(a))?a.formItemResetMethod||a.itemResetMethod:null,a&&l?l({data:u,field:r,property:r,item:e,$form:h,$grid:o}):r&&(a=_xeUtils.default.get(u,r),_xeUtils.default.set(u,r,S(e,u,a))),t)&&i&&(_xeUtils.default.set(u,t,S(e,u,_xeUtils.default.get(u,t))),_xeUtils.default.set(u,i,S(e,u,_xeUtils.default.get(u,i))))}),m.itemFormatCache={},U()},T=e=>{e.preventDefault(),E(),i.dispatchEvent("reset",{data:s.data},e)},R=e=>{var i=g.value;if(i)for(let t=0;t<e.length;t++){var l=e[t],r=y(l);if(r&&(0,_utils.isEnableConf)(r.itemRender)){var a=r["itemRender"],u=_ui.renderer.get(a.name);t||(0,_dom.scrollToView)(i.querySelector("."+r.id));let e=null;a=a.autoFocus||a.autofocus||(u?u.formItemAutoFocus:null);if(_xeUtils.default.isFunction(a)?e=a({$form:h,$grid:o,item:r,data:s.data,field:l}):!0===a?e=i.querySelector(`.${r.id} input,textarea`):a&&(e=i.querySelector(`.${r.id} `+a)),e){e.focus();break}}}},I=(e,t,i)=>{const{data:f,rules:l}=s,r={};return _xeUtils.default.isArray(t)||(t=[t]),Promise.all(t.map(u=>{const o=[],n=[];if(u&&l){const s=_xeUtils.default.get(l,u);if(s){const d=_xeUtils.default.isUndefined(i)?_xeUtils.default.get(f,u):i;s.forEach(t=>{const{trigger:i,validator:l}=t;if("all"===e||!i||e===i)if(l){var r,a={itemValue:d,rule:t,rules:s,data:f,field:u,property:u,$form:h};let e;_xeUtils.default.isString(l)?(r=_ui.validators.get(l))?(r=r.formItemValidatorMethod||r.itemValidatorMethod)?e=r(a):(0,_log.warnLog)("vxe.error.notValidators",[l]):(0,_log.errLog)("vxe.error.notValidators",[l]):e=l(a),e&&(_xeUtils.default.isError(e)?o.push(new Rule({type:"custom",trigger:i,content:e.message,rule:new Rule(t)})):e.catch&&n.push(e.catch(e=>{o.push(new Rule({type:"custom",trigger:i,content:e?e.message:t.content||t.message,rule:new Rule(t)}))})))}else checkRuleStatus(t,d)||o.push(new Rule(t))})}}return Promise.all(n).then(()=>{o.length&&(r[u]=o.map(e=>({$form:h,rule:e,data:f,field:u,property:u})))})})).then(()=>{if(!_xeUtils.default.isEmpty(r))return Promise.reject(r)})},q=(t,e,i)=>{var{data:l,rules:r}=s;const a=p.value,u={},o=[],n=[];return clearTimeout(m.meTimeout),l&&r?(t.forEach(t=>{const i=t["field"];i&&!(0,_util.isHiddenItem)(h,t)&&(0,_util.isActiveItem)(h,t)&&n.push(I(e||"all",i).then(()=>{t.errRule=null}).catch(e=>{e=e[i];return u[i]||(u[i]=[]),u[i].push(e),o.push(i),t.errRule=e[0].rule,Promise.reject(e)}))}),Promise.all(n).then(()=>{i&&i()}).catch(()=>new Promise(e=>{m.meTimeout=setTimeout(()=>{t.forEach(e=>{e.errRule&&(e.showError=!0)})},20),!1!==a.autoPos&&(0,_vue.nextTick)(()=>{R(o)}),i?(i(u),e()):e(u)}))):(i&&i(),Promise.resolve())};const w=t=>{var e=s["readonly"];t.preventDefault(),s.preventSubmit||(U(),e?i.dispatchEvent("submit",{data:s.data},t):q(x()).then(e=>{e?i.dispatchEvent("submit-invalid",{data:s.data,errMap:e},t):i.dispatchEvent("submit",{data:s.data},t)}))},V=()=>{var e=m["tooltipStore"],t=v.value;return e.visible&&(Object.assign(e,{item:null,visible:!1}),t)&&t.close(),(0,_vue.nextTick)()};const F=(e,i,t)=>i?I(e?["blur"].includes(e.type)?"blur":"change":"all",i,t).then(()=>{U(i)}).catch(e=>{var e=e[i],t=y(i);e&&t&&(t.showError=!0,t.errRule=e[0].rule)}):(0,_vue.nextTick)();i={dispatchEvent(e,t,i){l(e,(0,_ui.createEvent)(i,{$form:h,$grid:o},t))},reset:E,validate:e=>{var t=s["readonly"];return U(),t?(0,_vue.nextTick)():q(x(),"",e)},validateField:(e,t)=>{var i=s["readonly"];if(i)return(0,_vue.nextTick)();let l=[];return e&&(l=_xeUtils.default.isArray(e)?e:[e]),q(l.map(e=>(0,_util.handleFieldOrItem)(h,e)),"",t)},clearValidate:U,updateStatus:(e,t)=>{e=e.field;return F(new Event("change"),e,t)},toggleCollapse:b,getItems:x,getItemByField:y,closeTooltip:V};r={callSlot:(e,t)=>e&&(_xeUtils.default.isString(e)&&(e=d[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[],triggerItemEvent:F,toggleCollapseEvent:e=>{b();var t=C();i.dispatchEvent("toggle-collapse",{status:t,collapse:t,data:s.data},e),i.dispatchEvent("collapse",{status:t,collapse:t,data:s.data},e),(0,_vue.nextTick)(()=>{o&&o.recalculate()})},triggerTitleTipEvent:(e,t)=>{var t=t["item"],i=m["tooltipStore"],l=v.value,e=e.currentTarget.children[0],r=(e.textContent||"").trim(),a=e.scrollWidth>e.clientWidth;clearTimeout(m.stTimeout),i.item!==t&&V(),r&&a&&(Object.assign(i,{item:t,visible:!0}),l)&&l.open(e,r)},handleTitleTipLeaveEvent:()=>{var e=_.value;let t=v.value;t&&t.setActived(!1),e.enterable?m.stTimeout=setTimeout(()=>{(t=v.value)&&!t.isActived()&&V()},e.leaveDelay):V()}};Object.assign(h,i,r);const O=(0,_vue.ref)(0),A=((0,_vue.watch)(()=>c.staticItems.length,()=>{O.value++}),(0,_vue.watch)(()=>c.staticItems,()=>{O.value++}),(0,_vue.watch)(O,()=>{c.formItems=c.staticItems}),(0,_vue.ref)(0));return(0,_vue.watch)(()=>s.items?s.items.length:-1,()=>{A.value++}),(0,_vue.watch)(()=>s.items,()=>{A.value++}),(0,_vue.watch)(A,()=>{n(s.items||[])}),(0,_vue.watch)(()=>s.collapseStatus,e=>{c.collapseAll=!!e}),(0,_vue.watch)(()=>s.readonly,()=>{U()}),(0,_vue.watch)(()=>s.disabled,()=>{U()}),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{s.customLayout&&s.items&&(0,_log.errLog)("vxe.error.errConflicts",["custom-layout","items"])})}),s.items&&n(s.items),(0,_vue.provide)("xeFormItemInfo",null),(0,_vue.provide)("$xeForm",h),(0,_vue.provide)("$xeFormGroup",null),(0,_vue.provide)("$xeFormItem",null),h.renderVN=()=>{var{loading:e,border:t,className:i,data:l,customLayout:r}=s,a=c["formItems"],u=f.value,o=_.value,n=d.default;return(0,_vue.h)("form",{ref:g,class:["vxe-form",i?_xeUtils.default.isFunction(i)?i({items:a,data:l,$form:h}):i:"",{["size--"+u]:u,"is--border":t,"custom--layout":r,"is--loading":e}],onSubmit:w,onReset:T},[(0,_vue.h)("div",{class:"vxe-form--wrapper vxe-form--item-row"},r?n?n({}):[]:a.map((e,t)=>(0,_vue.h)(_formConfigItem.default,{key:t,itemConfig:e}))),(0,_vue.h)("div",{class:"vxe-form-slots",ref:"hideItem"},!r&&n?n({}):[]),(0,_vue.h)(_loading.default,{class:"vxe-form--loading",modelValue:e}),(0,_vue.h)(_tooltip.default,Object.assign({ref:v},o))])},h},render(){return this.renderVN()}});
|
|
@@ -276,9 +276,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
276
276
|
* @deprecated
|
|
277
277
|
*/
|
|
278
278
|
updateItemStatus(widget, value) {
|
|
279
|
-
|
|
280
|
-
(0, _log.warnLog)('vxe.error.delFunc', ['updateItemStatus', 'updateWidgetStatus']);
|
|
281
|
-
}
|
|
279
|
+
(0, _log.warnLog)('vxe.error.delFunc', ['updateItemStatus', 'updateWidgetStatus']);
|
|
282
280
|
return updateWidgetStatus(widget, value);
|
|
283
281
|
}
|
|
284
282
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_vn=require("../../ui/src/vn"),_defaultSettingData=require("./default-setting-data"),_form=_interopRequireDefault(require("../../form/src/form")),_formGroup=_interopRequireDefault(require("../../form/src/form-group")),_formItem=_interopRequireDefault(require("../../form/src/form-item")),_widgetInfo=require("./widget-info"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeFormView",props:{modelValue:Object,config:Object,readonly:Boolean,disabled:Boolean,viewRender:Object,formOptions:Object,createFormConfig:Function,size:{type:String,default:()=>(0,_ui.getConfig)().formView.size||(0,_ui.getConfig)().size}},emits:["update:modelValue","submit","reset"],setup(f,e){const{emit:i,slots:m}=e;var t=_xeUtils.default.uniqueId();const
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_vn=require("../../ui/src/vn"),_defaultSettingData=require("./default-setting-data"),_form=_interopRequireDefault(require("../../form/src/form")),_formGroup=_interopRequireDefault(require("../../form/src/form-group")),_formItem=_interopRequireDefault(require("../../form/src/form-item")),_widgetInfo=require("./widget-info"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeFormView",props:{modelValue:Object,config:Object,readonly:Boolean,disabled:Boolean,viewRender:Object,formOptions:Object,createFormConfig:Function,size:{type:String,default:()=>(0,_ui.getConfig)().formView.size||(0,_ui.getConfig)().size}},emits:["update:modelValue","submit","reset"],setup(f,e){const{emit:i,slots:m}=e;var t=_xeUtils.default.uniqueId();const g=(0,_vue.ref)(),v=(0,_vue.ref)(),c=(0,_ui.useSize)(f)["computeSize"],_=(0,_vue.inject)("$xeFormDesignLayoutStyle",null),p=(0,_vue.reactive)({formConfig:{},formRules:{},widgetObjList:[]}),r={refElem:g},a={computeSize:c},w={xID:t,props:f,context:e,reactData:p,getRefMaps:()=>r,getComputeMaps:()=>a};const u=e=>{var t;return e&&({formConfig:e,widgetData:t}=e,n(e||{}),s(t||[])),(0,_vue.nextTick)()};const o=e=>{var{viewRender:t,createFormConfig:r,formOptions:i}=f,e={viewRender:t,formConfig:e};return r?r(e):(r=(t||{})["name"],r=(t=_ui.renderer.get(r)||{})?t.createFormViewFormConfig:null,Object.assign({},(r||_defaultSettingData.createDefaultFormViewPCFormConfig)(e),i))},n=e=>(p.formConfig=o(e),(0,_vue.nextTick)()),l=e=>{const u={},o={};return _xeUtils.default.eachTree(e,e=>{var{name:t,field:r,required:i}=e,t=_ui.renderer.get(t)||{},a=t.createFormDesignWidgetFieldValue,t=t.createFormDesignWidgetFieldRules;u[r]=a?a({widget:e,$formView:w}):V(e),t?(a=t({widget:e,$formView:w}))&&a.length&&(o[r]=a):i&&(o[r]=b())},{children:"children"}),{formData:u,formRules:o}},d=e=>(e||[]).map(e=>(0,_widgetInfo.configToWidget)(e)),s=e=>{var e=d(e),{formData:e,formRules:t}=(p.widgetObjList=e,l(e));return p.formRules=t,i("update:modelValue",Object.assign(e,f.modelValue)),(0,_vue.nextTick)()},V=e=>"subtable"===e.name?[]:null,b=()=>[{required:!0,content:"该填写该字段!"}],x=(e,t)=>{var e=e["field"],r=v.value;return r&&r.updateStatus({field:e},t),(0,_vue.nextTick)()};const D=(e,t,r)=>{i(e,(0,_ui.createEvent)(r,{$formView:w},t))},C=e=>e?_xeUtils.default.isArray(e)?e.map(e=>e.name):[e.name]:null;t={dispatchEvent:D,clearConfig:()=>u({formConfig:{},widgetData:[]}),loadConfig:u,parseConfig:e=>{var{formConfig:e,widgetData:t}=e||{},t=d(t||[]);return Object.assign(Object.assign({},l(t)),{formConfig:o(e||{}),widgetData:t})},loadFormConfig:n,loadWidgetData:s,updateWidgetStatus:x,setItemValue:(e,t)=>{var r=f["modelValue"],e=e["field"],i=v.value;return r&&(r[e]=t),i&&i.updateStatus({field:e},t),(0,_vue.nextTick)()},getItemValue:e=>{var t=f["modelValue"];return t?t[e.field]:null},validate(){var e=v.value;return e?e.validate():(0,_vue.nextTick)()},validateWidget(e){var t=v.value;return t?t.validateField(C(e)):(0,_vue.nextTick)()},clearValidate(e){var t=v.value;return t?t.clearValidate(C(e)):(0,_vue.nextTick)()},reset(){var e=p["widgetObjList"],e=l(e)["formData"];return i("update:modelValue",Object.assign({},e)),(0,_vue.nextTick)()},updateItemStatus(e,t){return(0,_log.warnLog)("vxe.error.delFunc",["updateItemStatus","updateWidgetStatus"]),x(e,t)}};const F=e=>{D("submit",e,e.$event)},O=e=>{D("reset",e,e.$event)};Object.assign(w,t,{});return w.renderVN=()=>{var{readonly:e,disabled:t,modelValue:r}=f;const{formConfig:i,formRules:a,widgetObjList:u}=p;var o=c.value,n=m.top,l=m.bottom;const d=m.header,s=m.footer;return(0,_vue.h)("div",{ref:g,class:["vxe-form-view",{["size--"+o]:o}]},[n?(0,_vue.h)("div",{class:"vxe-form-view--top"},(0,_vn.getSlotVNs)(n({$formView:w}))):(0,_ui.renderEmptyElement)(w),(0,_vue.h)(_form.default,Object.assign(Object.assign({ref:v},i),{data:r,customLayout:!0,readonly:e,disabled:t,span:24,rules:a,onSubmit:F,onReset:O}),{default(){const{readonly:n,disabled:l}=f;return[d?(0,_vue.h)(_formItem.default,{},{default(){return d({})}}):(0,_ui.renderEmptyElement)(w),...u.map(e=>{var t=e["name"],t=_ui.renderer.get(t)||{};const r=t.renderFormDesignWidgetView,i=t.renderFormDesignWidgetPreview,a=t.renderFormDesignWidgetMobilePreview;t=!!_;const u=e,o={widget:e,readonly:!!n,disabled:!!l,isEditMode:t,isViewMode:!t,$formDesign:null,$formView:w};return(0,_vue.h)(_formGroup.default,{key:e.id},{default(){if(_)if(2===_.reactData.activeTab){if(a)return(0,_vn.getSlotVNs)(a(u,o))}else if(i)return(0,_vn.getSlotVNs)(i(u,o));return r?(0,_vn.getSlotVNs)(r(u,o)):[]}})}),s?(0,_vue.h)(_formGroup.default,{span:24},{default(){return s({})}}):(0,_ui.renderEmptyElement)(w)]}}),l?(0,_vue.h)("div",{class:"vxe-form-view--bottom"},(0,_vn.getSlotVNs)(l({$formView:w}))):(0,_ui.renderEmptyElement)(w)])},(0,_vue.watch)(()=>f.config,e=>{u(e||{})}),f.config&&u(f.config),(0,_vue.provide)("$xeFormView",w),w},render(){return this.renderVN()}});
|