vxe-table 3.3.14-beta.0 → 3.3.16
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/helper/vetur/attributes.json +8 -0
- package/helper/vetur/tags.json +2 -0
- package/lib/button/index.min.js +1 -1
- package/lib/checkbox/index.min.js +1 -1
- package/lib/checkbox-group/index.min.js +1 -1
- package/lib/colgroup/index.min.js +1 -1
- package/lib/column/index.min.js +1 -1
- package/lib/edit/index.min.js +1 -1
- package/lib/edit/src/mixin.js +1 -1
- package/lib/edit/src/mixin.min.js +1 -1
- package/lib/export/index.js +7 -7
- package/lib/export/index.min.js +1 -1
- package/lib/export/src/mixin.js +4 -4
- package/lib/export/src/mixin.min.js +1 -1
- package/lib/filter/index.min.js +1 -1
- package/lib/filter/src/mixin.js +8 -2
- package/lib/filter/src/mixin.min.js +1 -1
- package/lib/footer/index.min.js +1 -1
- package/lib/form/index.min.js +1 -1
- package/lib/form/src/form-gather.js +13 -0
- package/lib/form/src/form-gather.min.js +1 -1
- package/lib/form/src/form-item.js +123 -1
- package/lib/form/src/form-item.min.js +1 -1
- package/lib/form/src/form.js +73 -103
- package/lib/form/src/form.min.js +1 -1
- package/lib/form/src/render.js +81 -0
- package/lib/form/src/render.min.js +1 -0
- package/lib/form/src/util.js +3 -3
- package/lib/form/src/util.min.js +1 -1
- package/lib/form-gather/index.min.js +1 -1
- package/lib/form-item/index.min.js +1 -1
- package/lib/grid/index.min.js +1 -1
- package/lib/grid/src/grid.js +8 -5
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/header/index.min.js +1 -1
- package/lib/header/src/util.js +1 -1
- package/lib/header/src/util.min.js +1 -1
- package/lib/header/style/style.css +3 -10
- package/lib/header/style/style.min.css +1 -1
- package/lib/icon/index.min.js +1 -1
- package/lib/index.common.js +2 -2
- package/lib/index.common.min.js +1 -1
- package/lib/index.css +1 -1
- package/lib/index.umd.js +1894 -907
- package/lib/index.umd.min.js +1 -1
- package/lib/input/index.min.js +1 -1
- package/lib/input/src/input.js +1 -1
- package/lib/input/src/input.min.js +1 -1
- package/lib/keyboard/index.min.js +1 -1
- package/lib/keyboard/src/mixin.min.js +1 -1
- package/lib/list/index.min.js +1 -1
- package/lib/menu/index.min.js +1 -1
- package/lib/modal/index.js +3 -3
- package/lib/modal/index.min.js +1 -1
- package/lib/modal/src/modal.js +2 -2
- package/lib/modal/src/modal.min.js +1 -1
- package/lib/optgroup/index.min.js +1 -1
- package/lib/option/index.min.js +1 -1
- package/lib/pager/index.min.js +1 -1
- package/lib/pager/src/pager.js +1 -1
- package/lib/pulldown/index.min.js +1 -1
- package/lib/radio/index.min.js +1 -1
- package/lib/radio-button/index.min.js +1 -1
- package/lib/radio-group/index.min.js +1 -1
- package/lib/select/index.min.js +1 -1
- package/lib/select/src/select.js +2 -2
- package/lib/select/src/select.min.js +1 -1
- package/lib/select/src/util.js +3 -3
- package/lib/select/src/util.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/switch/index.min.js +1 -1
- package/lib/table/index.min.js +1 -1
- package/lib/table/src/body.js +16 -2
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/cell.js +1 -1
- package/lib/table/src/cell.min.js +1 -1
- package/lib/table/src/methods.js +56 -3
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/util.js +7 -7
- package/lib/table/src/util.min.js +1 -1
- package/lib/table/style/style.css +13 -10
- package/lib/table/style/style.min.css +1 -1
- package/lib/textarea/index.min.js +1 -1
- package/lib/textarea/src/textarea.js +11 -3
- package/lib/textarea/src/textarea.min.js +1 -1
- package/lib/textarea/style/style.css +11 -12
- package/lib/textarea/style/style.min.css +1 -1
- package/lib/toolbar/index.min.js +1 -1
- package/lib/tools/index.js +2 -2
- package/lib/tools/index.min.js +1 -1
- package/lib/tools/src/dom.js +2 -2
- package/lib/tools/src/dom.min.js +1 -1
- package/lib/tools/src/event.js +1 -1
- package/lib/tools/src/event.min.js +1 -1
- package/lib/tools/src/utils.js +3 -3
- package/lib/tools/src/utils.min.js +1 -1
- package/lib/tooltip/index.min.js +1 -1
- package/lib/v-x-e-table/index.js +5 -3
- package/lib/v-x-e-table/index.min.js +1 -1
- package/lib/v-x-e-table/src/conf.js +2 -0
- package/lib/v-x-e-table/src/conf.min.js +1 -1
- package/lib/v-x-e-table/src/renderer.js +4 -4
- package/lib/v-x-e-table/src/renderer.min.js +1 -1
- package/lib/v-x-e-table/src/store.min.js +1 -1
- package/lib/validator/index.min.js +1 -1
- package/package.json +7 -7
- package/packages/filter/src/mixin.js +2 -2
- package/packages/form/src/form-gather.js +10 -0
- package/packages/form/src/form-item.js +101 -1
- package/packages/form/src/form.js +49 -107
- package/packages/form/src/render.js +79 -0
- package/packages/grid/src/grid.js +4 -3
- package/packages/table/src/body.js +12 -4
- package/packages/table/src/methods.js +28 -2
- package/packages/textarea/src/textarea.js +8 -3
- package/packages/v-x-e-table/src/conf.js +2 -0
- package/packages/v-x-e-table/src/renderer.js +4 -4
- package/styles/button.scss +4 -4
- package/styles/header.scss +9 -12
- package/styles/modal.scss +4 -4
- package/styles/table.scss +13 -7
- package/styles/textarea.scss +11 -11
- package/styles/variable.scss +198 -198
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.renderer=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_tools=require("../../tools");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperty(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var defaultCompProps={transfer:!0},componentDefaultModelProp="value";function isEmptyValue(e){return null==e||""===e}function getChangeEvent(e){switch(e.name){case"input":case"textarea":case"$input":case"$textarea":return"input"}return"change"}function parseDate(e,t){return e&&t.valueFormat?_xeUtils.default.toStringDate(e,t.valueFormat):e}function getFormatDate(e,t,n){var r=t.dateConfig,r=void 0===r?{}:r;return _xeUtils.default.toDateString(parseDate(e,t),r.labelFormat||n)}function getLabelFormatDate(e,t){return getFormatDate(e,t,_conf.default.i18n("vxe.input.date.labelFormat.".concat(t.type)))}function getDefaultComponentName(e){e=e.name;return"vxe-".concat(e.replace("$",""))}function handleConfirmFilter(e,t,n){e.$panel.changeOption({},t,n)}function getNativeAttrs(e){var t=e.name,e=e.attrs;return e="input"===t?Object.assign({type:"text"},e):e}function getInputImmediateModel(e){var t=e.name,n=e.immediate,e=e.props;if(n)return n;if("$input"!==t)return"input"!==t&&"textarea"!==t&&"$textarea"!==t;e=(e||{}).type;return!(!e||"text"===e||"number"===e||"integer"===e||"float"===e)}function isImmediateCell(e,t){return"cell"===t.$type||getInputImmediateModel(e)}function getCellEditProps(e,t,n,r){t=t.$table.vSize;return _xeUtils.default.assign({immediate:getInputImmediateModel(e)},t?{size:t}:{},defaultCompProps,r,e.props,_defineProperty({},componentDefaultModelProp,n))}function getFilterProps(e,t,n,r){t=t.$table.vSize;return _xeUtils.default.assign(t?{size:t}:{},defaultCompProps,r,e.props,_defineProperty({},componentDefaultModelProp,n))}function getItemProps(e,t,n,r){t=t.$form.vSize;return _xeUtils.default.assign(t?{size:t}:{},defaultCompProps,r,e.props,_defineProperty({},componentDefaultModelProp,n))}function getCellLabelVNs(e,t,n,r){t=t.placeholder;return[e("span",{class:"vxe-cell--label"},t&&isEmptyValue(r)?[e("span",{class:"vxe-cell--placeholder"},_tools.UtilTools.formatText(_tools.UtilTools.getFuncText(t),1))]:_tools.UtilTools.formatText(r,1))]}function getNativeOns(e,o){var e=e.nativeEvents,t={};return _xeUtils.default.objectEach(e,function(r,e){t[e]=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];r.apply(void 0,[o].concat(t))}}),t}function getOns(e,o,t,r){var n=e.name,a=e.events,l="input",i=getChangeEvent(e),u=i===l,d={};return _xeUtils.default.objectEach(a,function(r,e){d[e]=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];r.apply(void 0,[o].concat(t))}}),t&&(d[l]=function(e){t("$input"===n||"$textarea"===n?e.value:e),a&&a[l]&&a[l](o,e),u&&r&&r(e)}),!u&&r&&(d[i]=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];r.apply(void 0,t),a&&a[i]&&a[i].apply(a,[o].concat(t))}),d}function getEditOns(e,t){var n=t.$table,r=t.row,o=t.column,a=e.name,l=o.model,i=isImmediateCell(e,t);return getOns(e,t,function(e){i?_tools.UtilTools.setCellValue(r,o,e):(l.update=!0,l.value=e)},function(e){i||"$input"!==a&&"$textarea"!==a?n.updateStatus(t):n.updateStatus(t,e.value)})}function getFilterOns(e,t,n){return getOns(e,t,function(e){n.data=e},function(){handleConfirmFilter(t,!_xeUtils.default.eqNull(n.data),n)})}function getItemOns(e,t){var n=t.$form,r=t.data,o=t.property;return getOns(e,t,function(e){_xeUtils.default.set(r,o,e)},function(){n.updateStatus(t)})}function getNativeEditOns(t,n){var r=n.$table,o=n.row,a=n.column,l=a.model;return getOns(t,n,function(e){e=e.target.value;isImmediateCell(t,n)?_tools.UtilTools.setCellValue(o,a,e):(l.update=!0,l.value=e)},function(e){e=e.target.value;r.updateStatus(n,e)})}function getNativeFilterOns(e,t,n){return getOns(e,t,function(e){n.data=e.target.value},function(){handleConfirmFilter(t,!_xeUtils.default.eqNull(n.data),n)})}function getNativeItemOns(e,t){var n=t.$form,r=t.data,o=t.property;return getOns(e,t,function(e){e=e.target.value;_xeUtils.default.set(r,o,e)},function(){n.updateStatus(t)})}function nativeEditRender(e,t,n){var r=n.row,o=n.column,a=t.name,l=getNativeAttrs(t),o=isImmediateCell(t,n)?_tools.UtilTools.getCellValue(r,o):o.model.value;return[e(a,{class:"vxe-default-".concat(a),attrs:l,domProps:{value:o},on:getNativeEditOns(t,n)})]}function defaultEditRender(e,t,n){var r=n.row,o=n.column,o=_tools.UtilTools.getCellValue(r,o);return[e(getDefaultComponentName(t),{props:getCellEditProps(t,n,o),on:getEditOns(t,n),nativeOn:getNativeOns(t,n)})]}function defaultButtonEditRender(e,t,n){return[e("vxe-button",{props:getCellEditProps(t,n),on:getOns(t,n),nativeOn:getNativeOns(t,n)})]}function defaultButtonsEditRender(t,e,n){return e.children.map(function(e){return defaultButtonEditRender(t,e,n)[0]})}function renderNativeOptgroups(n,r,o,a){var e=r.optionGroups,t=r.optionGroupProps,t=void 0===t?{}:t,l=t.options||"options",i=t.label||"label";return e.map(function(e,t){return n("optgroup",{key:t,domProps:{label:e[i]}},a(n,e[l],r,o))})}function renderNativeOptions(n,e,t,r){var o=t.optionProps,a=void 0===o?{}:o,l=r.row,o=r.column,i=a.label||"label",u=a.value||"value",d=a.disabled||"disabled",s=isImmediateCell(t,r)?_tools.UtilTools.getCellValue(l,o):o.model.value;return e.map(function(e,t){return n("option",{key:t,attrs:{value:e[u],disabled:e[d]},domProps:{selected:e[u]==s}},e[i])})}function nativeFilterRender(n,r,o){var e=o.column,a=r.name,l=getNativeAttrs(r);return e.filters.map(function(e,t){return n(a,{key:t,class:"vxe-default-".concat(a),attrs:l,domProps:{value:e.data},on:getNativeFilterOns(r,o,e)})})}function defaultFilterRender(r,o,a){return a.column.filters.map(function(e,t){var n=e.data;return r(getDefaultComponentName(o),{key:t,props:getFilterProps(o,o,n),on:getFilterOns(o,a,e)})})}function handleFilterMethod(e){var t=e.option,n=e.row,e=e.column,t=t.data;return _xeUtils.default.get(n,e.property)==t}function nativeSelectEditRender(e,t,n){return[e("select",{class:"vxe-default-select",attrs:getNativeAttrs(t),on:getNativeEditOns(t,n)},t.optionGroups?renderNativeOptgroups(e,t,n,renderNativeOptions):renderNativeOptions(e,t.options,t,n))]}function defaultSelectEditRender(e,t,n){var r=n.row,o=n.column,a=t.options,l=t.optionProps,i=t.optionGroups,u=t.optionGroupProps,o=_tools.UtilTools.getCellValue(r,o);return[e(getDefaultComponentName(t),{props:getCellEditProps(t,n,o,{options:a,optionProps:l,optionGroups:i,optionGroupProps:u}),on:getEditOns(t,n)})]}function getSelectCellValue(e,t){var r,n=t.row,o=t.column,a=e.props,t=void 0===a?{}:a,l=e.options,i=e.optionGroups,a=e.optionProps,a=void 0===a?{}:a,e=e.optionGroupProps,u=void 0===e?{}:e,o=_xeUtils.default.get(n,o.property),d=a.label||"label",s=a.value||"value";return isEmptyValue(o)?null:_xeUtils.default.map(t.multiple?o:[o],i?function(t){for(var e=u.options||"options",n=0;n<i.length&&!(r=_xeUtils.default.find(i[n][e],function(e){return e[s]==t}));n++);return r?r[d]:t}:function(t){return(r=_xeUtils.default.find(l,function(e){return e[s]==t}))?r[d]:t}).join(", ")}function nativeItemRender(e,t,n){var r=n.data,o=n.property,a=t.name,l=getNativeAttrs(t),o=_xeUtils.default.get(r,o);return[e(a,{class:"vxe-default-".concat(a),attrs:l,domProps:!l||"input"!==a||"submit"!==l.type&&"reset"!==l.type?{value:o}:null,on:getNativeItemOns(t,n)})]}function defaultItemRender(e,t,n){var r=n.data,o=n.property,o=_xeUtils.default.get(r,o);return[e(getDefaultComponentName(t),{props:getItemProps(t,n,o),on:getItemOns(t,n),nativeOn:getNativeOns(t,n)})]}function defaultButtonItemRender(e,t,n){return[e("vxe-button",{props:getItemProps(t,n),on:getOns(t,n),nativeOn:getNativeOns(t,n)})]}function defaultButtonsItemRender(t,e,n){return e.children.map(function(e){return defaultButtonItemRender(t,e,n)[0]})}function renderNativeFormOptions(n,e,t,r){var o=r.data,r=r.property,t=t.optionProps,t=void 0===t?{}:t,a=t.label||"label",l=t.value||"value",i=t.disabled||"disabled",u=_xeUtils.default.get(o,r);return e.map(function(e,t){return n("option",{key:t,attrs:{value:e[l],disabled:e[i]},domProps:{selected:e[l]==u}},e[a])})}function handleExportSelectMethod(e){var t=e.row,n=e.column;return e.options.original?_tools.UtilTools.getCellValue(t,n):getSelectCellValue(n.editRender||n.cellRender,e)}function defaultFormItemRadioAndCheckboxRender(n,e,t){var r=e.options,o=e.optionProps,a=void 0===o?{}:o,l=t.data,o=t.property,i=a.label||"label",u=a.value||"value",d=a.disabled||"disabled",o=_xeUtils.default.get(l,o),s=getDefaultComponentName(e);return r?[n("".concat(s,"-group"),{props:getItemProps(e,t,o),on:getItemOns(e,t),nativeOn:getNativeOns(e,t)},r.map(function(e,t){return n(s,{key:t,props:{label:e[u],content:e[i],disabled:e[d]}})}))]:[n(s,{props:getItemProps(e,t,o),on:getItemOns(e,t),nativeOn:getNativeOns(e,t)})]}var renderMap={input:{autofocus:"input",renderEdit:nativeEditRender,renderDefault:nativeEditRender,renderFilter:nativeFilterRender,filterMethod:handleFilterMethod,renderItemContent:nativeItemRender},textarea:{autofocus:"textarea",renderEdit:nativeEditRender,renderItemContent:nativeItemRender},select:{renderEdit:nativeSelectEditRender,renderDefault:nativeSelectEditRender,renderCell:function(e,t,n){return getCellLabelVNs(e,t,n,getSelectCellValue(t,n))},renderFilter:function(n,r,o){return o.column.filters.map(function(e,t){return n("select",{key:t,class:"vxe-default-select",attrs:getNativeAttrs(r),on:getNativeFilterOns(r,o,e)},r.optionGroups?renderNativeOptgroups(n,r,o,renderNativeOptions):renderNativeOptions(n,r.options,r,o))})},filterMethod:handleFilterMethod,renderItemContent:function(e,t,n){return[e("select",{class:"vxe-default-select",attrs:getNativeAttrs(t),on:getNativeItemOns(t,n)},t.optionGroups?renderNativeOptgroups(e,t,n,renderNativeFormOptions):renderNativeFormOptions(e,t.options,t,n))]},cellExportMethod:handleExportSelectMethod},$input:{autofocus:".vxe-input--inner",renderEdit:defaultEditRender,renderCell:function(e,t,n){var r=t.props,o=void 0===r?{}:r,a=n.row,r=n.column,l=o.digits||_conf.default.input.digits,i=_xeUtils.default.get(a,r.property);if(i)switch(o.type){case"date":case"week":case"month":case"year":i=getLabelFormatDate(i,o);break;case"float":i=_xeUtils.default.toFixed(_xeUtils.default.floor(i,l),l)}return getCellLabelVNs(e,t,n,i)},renderDefault:defaultEditRender,renderFilter:defaultFilterRender,filterMethod:handleFilterMethod,renderItemContent:defaultItemRender},$textarea:{autofocus:".vxe-textarea--inner",renderItemContent:defaultItemRender},$button:{renderDefault:defaultButtonEditRender,renderItemContent:defaultButtonItemRender},$buttons:{renderDefault:defaultButtonsEditRender,renderItemContent:defaultButtonsItemRender},$select:{autofocus:".vxe-input--inner",renderEdit:defaultSelectEditRender,renderDefault:defaultSelectEditRender,renderCell:function(e,t,n){return getCellLabelVNs(e,t,n,getSelectCellValue(t,n))},renderFilter:function(r,o,a){var e=a.column,l=o.options,i=o.optionProps,u=o.optionGroups,d=o.optionGroupProps,s=getNativeOns(o,a);return e.filters.map(function(e,t){var n=e.data;return r(getDefaultComponentName(o),{key:t,props:getFilterProps(o,a,n,{options:l,optionProps:i,optionGroups:u,optionGroupProps:d}),on:getFilterOns(o,a,e),nativeOn:s})})},filterMethod:handleFilterMethod,renderItemContent:function(e,t,n){var r=n.data,o=n.property,a=t.options,l=t.optionProps,i=t.optionGroups,u=t.optionGroupProps,o=_xeUtils.default.get(r,o);return[e(getDefaultComponentName(t),{props:getItemProps(t,n,o,{options:a,optionProps:l,optionGroups:i,optionGroupProps:u}),on:getItemOns(t,n),nativeOn:getNativeOns(t,n)})]},cellExportMethod:handleExportSelectMethod},$radio:{autofocus:".vxe-radio--input",renderItemContent:defaultFormItemRadioAndCheckboxRender},$checkbox:{autofocus:".vxe-checkbox--input",renderItemContent:defaultFormItemRadioAndCheckboxRender},$switch:{autofocus:".vxe-switch--button",renderEdit:defaultEditRender,renderDefault:defaultEditRender,renderItemContent:defaultItemRender}},renderer={mixin:function(e){return _xeUtils.default.each(e,function(e,t){return renderer.add(t,e)}),renderer},get:function(e){return renderMap[e]||null},add:function(n,e){var r;return n&&e&&((r=renderMap[n])?("development"===process.env.NODE_ENV&&_xeUtils.default.each(e,function(e,t){_xeUtils.default.eqNull(r[t])||r[t]===e||_tools.UtilTools.warn("vxe.error.coverProp",["Renderer.".concat(n),t])}),Object.assign(r,e)):renderMap[n]=e),renderer},delete:function(e){return delete renderMap[e],renderer}};exports.renderer=renderer;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.renderer=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_tools=require("../../tools");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperty(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var defaultCompProps={transfer:!0},componentDefaultModelProp="value";function isEmptyValue(e){return null==e||""===e}function getChangeEvent(e){switch(e.name){case"input":case"textarea":case"$input":case"$textarea":return"input"}return"change"}function parseDate(e,t){return e&&t.valueFormat?_xeUtils.default.toStringDate(e,t.valueFormat):e}function getFormatDate(e,t,n){var r=t.dateConfig,r=void 0===r?{}:r;return _xeUtils.default.toDateString(parseDate(e,t),r.labelFormat||n)}function getLabelFormatDate(e,t){return getFormatDate(e,t,_conf.default.i18n("vxe.input.date.labelFormat.".concat(t.type)))}function getDefaultComponentName(e){e=e.name;return"vxe-".concat(e.replace("$",""))}function handleConfirmFilter(e,t,n){e.$panel.changeOption({},t,n)}function getNativeAttrs(e){var t=e.name,e=e.attrs;return e="input"===t?Object.assign({type:"text"},e):e}function getInputImmediateModel(e){var t=e.name,n=e.immediate,e=e.props;if(n)return n;if("$input"!==t)return"input"!==t&&"textarea"!==t&&"$textarea"!==t;e=(e||{}).type;return!(!e||"text"===e||"number"===e||"integer"===e||"float"===e)}function isImmediateCell(e,t){return"cell"===t.$type||getInputImmediateModel(e)}function getCellEditProps(e,t,n,r){t=t.$table.vSize;return _xeUtils.default.assign({immediate:getInputImmediateModel(e)},t?{size:t}:{},defaultCompProps,r,e.props,_defineProperty({},componentDefaultModelProp,n))}function getFilterProps(e,t,n,r){t=t.$table.vSize;return _xeUtils.default.assign(t?{size:t}:{},defaultCompProps,r,e.props,_defineProperty({},componentDefaultModelProp,n))}function getItemProps(e,t,n,r){t=t.$form.vSize;return _xeUtils.default.assign(t?{size:t}:{},defaultCompProps,r,e.props,_defineProperty({},componentDefaultModelProp,n))}function getCellLabelVNs(e,t,n,r){t=t.placeholder;return[e("span",{class:"vxe-cell--label"},t&&isEmptyValue(r)?[e("span",{class:"vxe-cell--placeholder"},_tools.UtilTools.formatText(_tools.UtilTools.getFuncText(t),1))]:_tools.UtilTools.formatText(r,1))]}function getNativeOns(e,o){var e=e.nativeEvents,t={};return _xeUtils.default.objectEach(e,function(r,e){t[e]=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];r.apply(void 0,[o].concat(t))}}),t}function getOns(e,o,t,r){var n=e.name,a=e.events,l="input",i=getChangeEvent(e),u=i===l,d={};return _xeUtils.default.objectEach(a,function(r,e){d[e]=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];r.apply(void 0,[o].concat(t))}}),t&&(d[l]=function(e){t("$input"===n||"$textarea"===n?e.value:e),a&&a[l]&&a[l](o,e),u&&r&&r(e)}),!u&&r&&(d[i]=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];r.apply(void 0,t),a&&a[i]&&a[i].apply(a,[o].concat(t))}),d}function getEditOns(e,t){var n=t.$table,r=t.row,o=t.column,a=e.name,l=o.model,i=isImmediateCell(e,t);return getOns(e,t,function(e){i?_tools.UtilTools.setCellValue(r,o,e):(l.update=!0,l.value=e)},function(e){i||"$input"!==a&&"$textarea"!==a?n.updateStatus(t):n.updateStatus(t,e.value)})}function getFilterOns(e,t,n){return getOns(e,t,function(e){n.data=e},function(){handleConfirmFilter(t,!_xeUtils.default.eqNull(n.data),n)})}function getItemOns(e,t){var n=t.$form,r=t.data,o=t.property;return getOns(e,t,function(e){_xeUtils.default.set(r,o,e)},function(){n.updateStatus(t)})}function getNativeEditOns(t,n){var r=n.$table,o=n.row,a=n.column,l=a.model;return getOns(t,n,function(e){e=e.target.value;isImmediateCell(t,n)?_tools.UtilTools.setCellValue(o,a,e):(l.update=!0,l.value=e)},function(e){e=e.target.value;r.updateStatus(n,e)})}function getNativeFilterOns(e,t,n){return getOns(e,t,function(e){n.data=e.target.value},function(){handleConfirmFilter(t,!_xeUtils.default.eqNull(n.data),n)})}function getNativeItemOns(e,t){var n=t.$form,r=t.data,o=t.property;return getOns(e,t,function(e){e=e.target.value;_xeUtils.default.set(r,o,e)},function(){n.updateStatus(t)})}function nativeEditRender(e,t,n){var r=n.row,o=n.column,a=t.name,l=getNativeAttrs(t),o=isImmediateCell(t,n)?_tools.UtilTools.getCellValue(r,o):o.model.value;return[e(a,{class:"vxe-default-".concat(a),attrs:l,domProps:{value:o},on:getNativeEditOns(t,n)})]}function defaultEditRender(e,t,n){var r=n.row,o=n.column,o=_tools.UtilTools.getCellValue(r,o);return[e(getDefaultComponentName(t),{props:getCellEditProps(t,n,o),on:getEditOns(t,n),nativeOn:getNativeOns(t,n)})]}function defaultButtonEditRender(e,t,n){return[e("vxe-button",{props:getCellEditProps(t,n),on:getOns(t,n),nativeOn:getNativeOns(t,n)})]}function defaultButtonsEditRender(t,e,n){return e.children.map(function(e){return defaultButtonEditRender(t,e,n)[0]})}function renderNativeOptgroups(n,r,o,a){var e=r.optionGroups,t=r.optionGroupProps,t=void 0===t?{}:t,l=t.options||"options",i=t.label||"label";return e.map(function(e,t){return n("optgroup",{key:t,domProps:{label:e[i]}},a(n,e[l],r,o))})}function renderNativeOptions(n,e,t,r){var o=t.optionProps,a=void 0===o?{}:o,l=r.row,o=r.column,i=a.label||"label",u=a.value||"value",d=a.disabled||"disabled",s=isImmediateCell(t,r)?_tools.UtilTools.getCellValue(l,o):o.model.value;return e.map(function(e,t){return n("option",{key:t,attrs:{value:e[u],disabled:e[d]},domProps:{selected:e[u]==s}},e[i])})}function nativeFilterRender(n,r,o){var e=o.column,a=r.name,l=getNativeAttrs(r);return e.filters.map(function(e,t){return n(a,{key:t,class:"vxe-default-".concat(a),attrs:l,domProps:{value:e.data},on:getNativeFilterOns(r,o,e)})})}function defaultFilterRender(r,o,a){return a.column.filters.map(function(e,t){var n=e.data;return r(getDefaultComponentName(o),{key:t,props:getFilterProps(o,o,n),on:getFilterOns(o,a,e)})})}function handleFilterMethod(e){var t=e.option,n=e.row,e=e.column,t=t.data;return _xeUtils.default.get(n,e.property)==t}function nativeSelectEditRender(e,t,n){return[e("select",{class:"vxe-default-select",attrs:getNativeAttrs(t),on:getNativeEditOns(t,n)},t.optionGroups?renderNativeOptgroups(e,t,n,renderNativeOptions):renderNativeOptions(e,t.options,t,n))]}function defaultSelectEditRender(e,t,n){var r=n.row,o=n.column,a=t.options,l=t.optionProps,i=t.optionGroups,u=t.optionGroupProps,o=_tools.UtilTools.getCellValue(r,o);return[e(getDefaultComponentName(t),{props:getCellEditProps(t,n,o,{options:a,optionProps:l,optionGroups:i,optionGroupProps:u}),on:getEditOns(t,n)})]}function getSelectCellValue(e,t){var r,n=t.row,o=t.column,a=e.props,t=void 0===a?{}:a,l=e.options,i=e.optionGroups,a=e.optionProps,a=void 0===a?{}:a,e=e.optionGroupProps,u=void 0===e?{}:e,o=_xeUtils.default.get(n,o.property),d=a.label||"label",s=a.value||"value";return isEmptyValue(o)?null:_xeUtils.default.map(t.multiple?o:[o],i?function(t){for(var e=u.options||"options",n=0;n<i.length&&!(r=_xeUtils.default.find(i[n][e],function(e){return e[s]==t}));n++);return r?r[d]:t}:function(t){return(r=_xeUtils.default.find(l,function(e){return e[s]==t}))?r[d]:t}).join(", ")}function nativeItemRender(e,t,n){var r=n.data,o=n.property,a=t.name,l=getNativeAttrs(t),o=_xeUtils.default.get(r,o);return[e(a,{class:"vxe-default-".concat(a),attrs:l,domProps:!l||"input"!==a||"submit"!==l.type&&"reset"!==l.type?{value:o}:null,on:getNativeItemOns(t,n)})]}function defaultItemRender(e,t,n){var r=n.data,o=n.property,o=_xeUtils.default.get(r,o);return[e(getDefaultComponentName(t),{props:getItemProps(t,n,o),on:getItemOns(t,n),nativeOn:getNativeOns(t,n)})]}function defaultButtonItemRender(e,t,n){return[e("vxe-button",{props:getItemProps(t,n),on:getOns(t,n),nativeOn:getNativeOns(t,n)})]}function defaultButtonsItemRender(t,e,n){return e.children.map(function(e){return defaultButtonItemRender(t,e,n)[0]})}function renderNativeFormOptions(n,e,t,r){var o=r.data,r=r.property,t=t.optionProps,t=void 0===t?{}:t,a=t.label||"label",l=t.value||"value",i=t.disabled||"disabled",u=_xeUtils.default.get(o,r);return e.map(function(e,t){return n("option",{key:t,attrs:{value:e[l],disabled:e[i]},domProps:{selected:e[l]==u}},e[a])})}function handleExportSelectMethod(e){var t=e.row,n=e.column;return e.options.original?_tools.UtilTools.getCellValue(t,n):getSelectCellValue(n.editRender||n.cellRender,e)}function defaultFormItemRadioAndCheckboxRender(n,e,t){var r=e.options,o=e.optionProps,a=void 0===o?{}:o,l=t.data,o=t.property,i=a.label||"label",u=a.value||"value",d=a.disabled||"disabled",o=_xeUtils.default.get(l,o),s=getDefaultComponentName(e);return r?[n("".concat(s,"-group"),{props:getItemProps(e,t,o),on:getItemOns(e,t),nativeOn:getNativeOns(e,t)},r.map(function(e,t){return n(s,{key:t,props:{label:e[u],content:e[i],disabled:e[d]}})}))]:[n(s,{props:getItemProps(e,t,o),on:getItemOns(e,t),nativeOn:getNativeOns(e,t)})]}var renderMap={input:{autofocus:"input",renderEdit:nativeEditRender,renderDefault:nativeEditRender,renderFilter:nativeFilterRender,defaultFilterMethod:handleFilterMethod,renderItemContent:nativeItemRender},textarea:{autofocus:"textarea",renderEdit:nativeEditRender,renderItemContent:nativeItemRender},select:{renderEdit:nativeSelectEditRender,renderDefault:nativeSelectEditRender,renderCell:function(e,t,n){return getCellLabelVNs(e,t,n,getSelectCellValue(t,n))},renderFilter:function(n,r,o){return o.column.filters.map(function(e,t){return n("select",{key:t,class:"vxe-default-select",attrs:getNativeAttrs(r),on:getNativeFilterOns(r,o,e)},r.optionGroups?renderNativeOptgroups(n,r,o,renderNativeOptions):renderNativeOptions(n,r.options,r,o))})},defaultFilterMethod:handleFilterMethod,renderItemContent:function(e,t,n){return[e("select",{class:"vxe-default-select",attrs:getNativeAttrs(t),on:getNativeItemOns(t,n)},t.optionGroups?renderNativeOptgroups(e,t,n,renderNativeFormOptions):renderNativeFormOptions(e,t.options,t,n))]},cellExportMethod:handleExportSelectMethod},$input:{autofocus:".vxe-input--inner",renderEdit:defaultEditRender,renderCell:function(e,t,n){var r=t.props,o=void 0===r?{}:r,a=n.row,r=n.column,l=o.digits||_conf.default.input.digits,i=_xeUtils.default.get(a,r.property);if(i)switch(o.type){case"date":case"week":case"month":case"year":i=getLabelFormatDate(i,o);break;case"float":i=_xeUtils.default.toFixed(_xeUtils.default.floor(i,l),l)}return getCellLabelVNs(e,t,n,i)},renderDefault:defaultEditRender,renderFilter:defaultFilterRender,defaultFilterMethod:handleFilterMethod,renderItemContent:defaultItemRender},$textarea:{autofocus:".vxe-textarea--inner",renderItemContent:defaultItemRender},$button:{renderDefault:defaultButtonEditRender,renderItemContent:defaultButtonItemRender},$buttons:{renderDefault:defaultButtonsEditRender,renderItemContent:defaultButtonsItemRender},$select:{autofocus:".vxe-input--inner",renderEdit:defaultSelectEditRender,renderDefault:defaultSelectEditRender,renderCell:function(e,t,n){return getCellLabelVNs(e,t,n,getSelectCellValue(t,n))},renderFilter:function(r,o,a){var e=a.column,l=o.options,i=o.optionProps,u=o.optionGroups,d=o.optionGroupProps,s=getNativeOns(o,a);return e.filters.map(function(e,t){var n=e.data;return r(getDefaultComponentName(o),{key:t,props:getFilterProps(o,a,n,{options:l,optionProps:i,optionGroups:u,optionGroupProps:d}),on:getFilterOns(o,a,e),nativeOn:s})})},defaultFilterMethod:handleFilterMethod,renderItemContent:function(e,t,n){var r=n.data,o=n.property,a=t.options,l=t.optionProps,i=t.optionGroups,u=t.optionGroupProps,o=_xeUtils.default.get(r,o);return[e(getDefaultComponentName(t),{props:getItemProps(t,n,o,{options:a,optionProps:l,optionGroups:i,optionGroupProps:u}),on:getItemOns(t,n),nativeOn:getNativeOns(t,n)})]},cellExportMethod:handleExportSelectMethod},$radio:{autofocus:".vxe-radio--input",renderItemContent:defaultFormItemRadioAndCheckboxRender},$checkbox:{autofocus:".vxe-checkbox--input",renderItemContent:defaultFormItemRadioAndCheckboxRender},$switch:{autofocus:".vxe-switch--button",renderEdit:defaultEditRender,renderDefault:defaultEditRender,renderItemContent:defaultItemRender}},renderer={mixin:function(e){return _xeUtils.default.each(e,function(e,t){return renderer.add(t,e)}),renderer},get:function(e){return renderMap[e]||null},add:function(n,e){var r;return n&&e&&((r=renderMap[n])?("development"===process.env.NODE_ENV&&_xeUtils.default.each(e,function(e,t){_xeUtils.default.eqNull(r[t])||r[t]===e||_tools.UtilTools.warn("vxe.error.coverProp",["Renderer.".concat(n),t])}),Object.assign(r,e)):renderMap[n]=e),renderer},delete:function(e){return delete renderMap[e],renderer}};exports.renderer=renderer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _tools=require("../../tools"),_xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var r=0;r<t.length;r++){var o=t[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),e}var Store=function(){function r(){_classCallCheck(this,r),this.store={}}return _createClass(r,[{key:"mixin",value:function(e){return Object.assign(this.store,e),r}},{key:"get",value:function(e){return this.store[e]}},{key:"add",value:function(e,t){return"development"===process.env.NODE_ENV&&(_xeUtils.default.eqNull(this.store[e])||this.store[e]===t||_tools.UtilTools.warn("vxe.error.coverProp",[this._name,e])),this.store[e]=t,r}},{key:"delete",value:function(e){return delete this.store[e],r}}]),r}(),_default=Store;exports.default=
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _tools=require("../../tools"),_xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var r=0;r<t.length;r++){var o=t[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),e}var Store=function(){function r(){_classCallCheck(this,r),this.store={}}return _createClass(r,[{key:"mixin",value:function(e){return Object.assign(this.store,e),r}},{key:"get",value:function(e){return this.store[e]}},{key:"add",value:function(e,t){return"development"===process.env.NODE_ENV&&(_xeUtils.default.eqNull(this.store[e])||this.store[e]===t||_tools.UtilTools.warn("vxe.error.coverProp",[this._name,e])),this.store[e]=t,r}},{key:"delete",value:function(e){return delete this.store[e],r}}]),r}(),_default=Store;exports.default=_default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Validator=void 0;var _table=_interopRequireDefault(require("../table")),_mixin=_interopRequireDefault(require("./src/mixin")),_vXETable=_interopRequireDefault(require("../v-x-e-table"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var Validator={install:function(){_vXETable.default.reg("valid"),_table.default.mixins.push(_mixin.default)}},_default=exports.Validator=Validator;exports.default=
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Validator=void 0;var _table=_interopRequireDefault(require("../table")),_mixin=_interopRequireDefault(require("./src/mixin")),_vXETable=_interopRequireDefault(require("../v-x-e-table"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var Validator={install:function(){_vXETable.default.reg("valid"),_table.default.mixins.push(_mixin.default)}},_default=exports.Validator=Validator;exports.default=_default;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vxe-table",
|
|
3
|
-
"version": "3.3.
|
|
3
|
+
"version": "3.3.16",
|
|
4
4
|
"description": "一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟滚动、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、虚拟列表、弹窗、自定义模板、渲染器、贼灵活的配置项、扩展接口等...",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"serve": "vue-cli-service serve",
|
|
@@ -76,19 +76,19 @@
|
|
|
76
76
|
"vue-router": "^3.2.0",
|
|
77
77
|
"vue-template-compiler": "^2.6.14",
|
|
78
78
|
"vuex": "^3.4.0",
|
|
79
|
-
"vxe-table-plugin-antd": "^1.11.
|
|
79
|
+
"vxe-table-plugin-antd": "^1.11.3",
|
|
80
80
|
"vxe-table-plugin-charts": "^1.7.1",
|
|
81
|
-
"vxe-table-plugin-element": "^1.11.
|
|
81
|
+
"vxe-table-plugin-element": "^1.11.3",
|
|
82
82
|
"vxe-table-plugin-export-pdf": "^1.9.2",
|
|
83
83
|
"vxe-table-plugin-export-xlsx": "^2.2.1",
|
|
84
|
-
"vxe-table-plugin-iview": "^1.11.
|
|
85
|
-
"vxe-table-plugin-menus": "^2.0.
|
|
84
|
+
"vxe-table-plugin-iview": "^1.11.4",
|
|
85
|
+
"vxe-table-plugin-menus": "^2.0.2",
|
|
86
86
|
"vxe-table-plugin-renderer": "^1.3.5",
|
|
87
87
|
"vxe-table-plugin-shortcut-key": "^1.5.1",
|
|
88
|
-
"vxe-table-plugin-virtual-tree": "0.6.
|
|
88
|
+
"vxe-table-plugin-virtual-tree": "0.6.11",
|
|
89
89
|
"xe-ajax": "^4.0.5",
|
|
90
90
|
"xe-clipboard": "^1.10.1",
|
|
91
|
-
"xe-utils": "^3.
|
|
91
|
+
"xe-utils": "^3.4.0",
|
|
92
92
|
"xlsx": "^0.17.0"
|
|
93
93
|
},
|
|
94
94
|
"peerDependencies": {
|
|
@@ -85,7 +85,7 @@ export default {
|
|
|
85
85
|
// 判断面板不能大于表格高度
|
|
86
86
|
let maxHeight = null
|
|
87
87
|
if (filterHeight >= bodyElem.clientHeight) {
|
|
88
|
-
maxHeight = bodyElem.clientHeight - (filterFootElem ? filterFootElem.offsetHeight : 0) - (filterHeadElem ? filterHeadElem.offsetHeight : 0)
|
|
88
|
+
maxHeight = Math.max(40, bodyElem.clientHeight - (filterFootElem ? filterFootElem.offsetHeight : 0) - (filterHeadElem ? filterHeadElem.offsetHeight : 0))
|
|
89
89
|
}
|
|
90
90
|
if (column.fixed === 'left') {
|
|
91
91
|
left = targetElem.offsetLeft + targetElem.offsetParent.offsetLeft - centerWidth
|
|
@@ -111,6 +111,7 @@ export default {
|
|
|
111
111
|
filterStore.maxHeight = maxHeight
|
|
112
112
|
})
|
|
113
113
|
}
|
|
114
|
+
this.emitEvent('filter-visible', { column, property: column.property, filterList: this.getCheckedFilters(), visible: filterStore.visible }, evnt)
|
|
114
115
|
},
|
|
115
116
|
_getCheckedFilters () {
|
|
116
117
|
const { tableFullColumn } = this
|
|
@@ -150,7 +151,6 @@ export default {
|
|
|
150
151
|
datas.push(item.data)
|
|
151
152
|
}
|
|
152
153
|
})
|
|
153
|
-
filterStore.visible = false
|
|
154
154
|
const filterList = this.getCheckedFilters()
|
|
155
155
|
// 如果是服务端筛选,则跳过本地筛选处理
|
|
156
156
|
if (!filterOpts.remote) {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import VxeFormItem from './form-item'
|
|
2
|
+
import { UtilTools } from '../../tools'
|
|
2
3
|
|
|
3
4
|
export default {
|
|
4
5
|
name: 'VxeFormGather',
|
|
@@ -8,6 +9,15 @@ export default {
|
|
|
8
9
|
xeformgather: this
|
|
9
10
|
}
|
|
10
11
|
},
|
|
12
|
+
created () {
|
|
13
|
+
if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
|
|
14
|
+
this.$nextTick(() => {
|
|
15
|
+
if (this.$xeform && this.$xeform.customLayout) {
|
|
16
|
+
UtilTools.error('vxe.error.errConflicts', ['custom-layout', '<form-gather ...>'])
|
|
17
|
+
}
|
|
18
|
+
})
|
|
19
|
+
}
|
|
20
|
+
},
|
|
11
21
|
render (h) {
|
|
12
22
|
return h('div', this.$slots.default)
|
|
13
23
|
}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
+
import XEUtils from 'xe-utils'
|
|
2
|
+
import GlobalConfig from '../../v-x-e-table/src/conf'
|
|
3
|
+
import VXETable from '../../v-x-e-table'
|
|
4
|
+
import { UtilTools, isEnableConf } from '../../tools'
|
|
1
5
|
import { createItem, destroyItem, assemItem } from './util'
|
|
6
|
+
import { renderTitle } from './render'
|
|
2
7
|
|
|
3
8
|
const props = {
|
|
4
9
|
title: String,
|
|
@@ -27,6 +32,100 @@ Object.keys(props).forEach(name => {
|
|
|
27
32
|
}
|
|
28
33
|
})
|
|
29
34
|
|
|
35
|
+
const renderItem = (h, _vm, item, slots) => {
|
|
36
|
+
const { rules, data, collapseAll, validOpts, titleOverflow: allTitleOverflow } = _vm
|
|
37
|
+
const { title, folding, visible, visibleMethod, field, collapseNode, itemRender, showError, errRule, className, titleOverflow } = item
|
|
38
|
+
const compConf = isEnableConf(itemRender) ? VXETable.renderer.get(itemRender.name) : null
|
|
39
|
+
const span = item.span || _vm.span
|
|
40
|
+
const align = item.align || _vm.align
|
|
41
|
+
const titleAlign = item.titleAlign || _vm.titleAlign
|
|
42
|
+
const titleWidth = item.titleWidth || _vm.titleWidth
|
|
43
|
+
let itemVisibleMethod = visibleMethod
|
|
44
|
+
const itemOverflow = (XEUtils.isUndefined(titleOverflow) || XEUtils.isNull(titleOverflow)) ? allTitleOverflow : titleOverflow
|
|
45
|
+
const showEllipsis = itemOverflow === 'ellipsis'
|
|
46
|
+
const showTitle = itemOverflow === 'title'
|
|
47
|
+
const showTooltip = itemOverflow === true || itemOverflow === 'tooltip'
|
|
48
|
+
const hasEllipsis = showTitle || showTooltip || showEllipsis
|
|
49
|
+
const params = { data, property: field, item, $form: _vm }
|
|
50
|
+
let isRequired
|
|
51
|
+
if (!itemVisibleMethod && compConf && compConf.itemVisibleMethod) {
|
|
52
|
+
itemVisibleMethod = compConf.itemVisibleMethod
|
|
53
|
+
}
|
|
54
|
+
if (rules) {
|
|
55
|
+
const itemRules = rules[field]
|
|
56
|
+
if (itemRules) {
|
|
57
|
+
isRequired = itemRules.some(rule => rule.required)
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
let contentVNs = []
|
|
61
|
+
if (slots && slots.default) {
|
|
62
|
+
contentVNs = _vm.callSlot(slots.default, params, h)
|
|
63
|
+
} else if (compConf && compConf.renderItemContent) {
|
|
64
|
+
contentVNs = compConf.renderItemContent.call(_vm, h, itemRender, params)
|
|
65
|
+
} else if (compConf && compConf.renderItem) {
|
|
66
|
+
contentVNs = compConf.renderItem.call(_vm, h, itemRender, params)
|
|
67
|
+
} else if (field) {
|
|
68
|
+
contentVNs = [`${XEUtils.get(data, field)}`]
|
|
69
|
+
}
|
|
70
|
+
const ons = showTooltip ? {
|
|
71
|
+
mouseenter (evnt) {
|
|
72
|
+
_vm.triggerHeaderHelpEvent(evnt, params)
|
|
73
|
+
},
|
|
74
|
+
mouseleave: _vm.handleTargetLeaveEvent
|
|
75
|
+
} : {}
|
|
76
|
+
return h('div', {
|
|
77
|
+
class: ['vxe-form--item', item.id, span ? `vxe-col--${span} is--span` : null, className ? (XEUtils.isFunction(className) ? className(params) : className) : '', {
|
|
78
|
+
'is--title': title,
|
|
79
|
+
'is--required': isRequired,
|
|
80
|
+
'is--hidden': visible === false || (folding && collapseAll),
|
|
81
|
+
'is--active': !itemVisibleMethod || itemVisibleMethod(params),
|
|
82
|
+
'is--error': showError
|
|
83
|
+
}]
|
|
84
|
+
}, [
|
|
85
|
+
h('div', {
|
|
86
|
+
class: 'vxe-form--item-inner'
|
|
87
|
+
}, [
|
|
88
|
+
title || (slots && slots.title) ? h('div', {
|
|
89
|
+
class: ['vxe-form--item-title', titleAlign ? `align--${titleAlign}` : null, {
|
|
90
|
+
'is--ellipsis': hasEllipsis
|
|
91
|
+
}],
|
|
92
|
+
style: titleWidth ? {
|
|
93
|
+
width: isNaN(titleWidth) ? titleWidth : `${titleWidth}px`
|
|
94
|
+
} : null,
|
|
95
|
+
attrs: {
|
|
96
|
+
title: showTitle ? UtilTools.getFuncText(title) : null
|
|
97
|
+
},
|
|
98
|
+
on: ons
|
|
99
|
+
}, renderTitle(h, _vm, item)) : null,
|
|
100
|
+
h('div', {
|
|
101
|
+
class: ['vxe-form--item-content', align ? `align--${align}` : null]
|
|
102
|
+
}, contentVNs.concat(
|
|
103
|
+
[
|
|
104
|
+
collapseNode ? h('div', {
|
|
105
|
+
class: 'vxe-form--item-trigger-node',
|
|
106
|
+
on: {
|
|
107
|
+
click: _vm.toggleCollapseEvent
|
|
108
|
+
}
|
|
109
|
+
}, [
|
|
110
|
+
h('span', {
|
|
111
|
+
class: 'vxe-form--item-trigger-text'
|
|
112
|
+
}, collapseAll ? GlobalConfig.i18n('vxe.form.unfolding') : GlobalConfig.i18n('vxe.form.folding')),
|
|
113
|
+
h('i', {
|
|
114
|
+
class: ['vxe-form--item-trigger-icon', collapseAll ? GlobalConfig.icon.FORM_FOLDING : GlobalConfig.icon.FORM_UNFOLDING]
|
|
115
|
+
})
|
|
116
|
+
]) : null,
|
|
117
|
+
errRule && validOpts.showMessage ? h('div', {
|
|
118
|
+
class: 'vxe-form--item-valid',
|
|
119
|
+
style: errRule.maxWidth ? {
|
|
120
|
+
width: `${errRule.maxWidth}px`
|
|
121
|
+
} : null
|
|
122
|
+
}, errRule.message) : null
|
|
123
|
+
])
|
|
124
|
+
)
|
|
125
|
+
])
|
|
126
|
+
])
|
|
127
|
+
}
|
|
128
|
+
|
|
30
129
|
export default {
|
|
31
130
|
name: 'VxeFormItem',
|
|
32
131
|
props,
|
|
@@ -49,6 +148,7 @@ export default {
|
|
|
49
148
|
destroyItem(this)
|
|
50
149
|
},
|
|
51
150
|
render (h) {
|
|
52
|
-
|
|
151
|
+
const { $xeform } = this
|
|
152
|
+
return $xeform && $xeform.customLayout ? renderItem(h, $xeform, this.itemConfig, this.$scopedSlots) : h('div')
|
|
53
153
|
}
|
|
54
154
|
}
|
|
@@ -2,8 +2,9 @@ import XEUtils from 'xe-utils'
|
|
|
2
2
|
import GlobalConfig from '../../v-x-e-table/src/conf'
|
|
3
3
|
import vSize from '../../mixins/size'
|
|
4
4
|
import VXETable from '../../v-x-e-table'
|
|
5
|
-
import { UtilTools, isEnableConf } from '../../tools'
|
|
5
|
+
import { UtilTools, DomTools, isEnableConf } from '../../tools'
|
|
6
6
|
import { createItem } from './util'
|
|
7
|
+
import { renderTitle } from './render'
|
|
7
8
|
import { eqEmptyValue } from '../../tools/src/utils'
|
|
8
9
|
import { browse } from '../../tools/src/dom'
|
|
9
10
|
|
|
@@ -57,95 +58,6 @@ function getResetValue (value, resetValue) {
|
|
|
57
58
|
return resetValue
|
|
58
59
|
}
|
|
59
60
|
|
|
60
|
-
function callSlot (_vm, slotFunc, params, h) {
|
|
61
|
-
if (slotFunc) {
|
|
62
|
-
const { $scopedSlots } = _vm
|
|
63
|
-
if (XEUtils.isString(slotFunc)) {
|
|
64
|
-
slotFunc = $scopedSlots[slotFunc] || null
|
|
65
|
-
}
|
|
66
|
-
if (XEUtils.isFunction(slotFunc)) {
|
|
67
|
-
return slotFunc.call(_vm, params, h)
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
return []
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
function renderPrefixIcon (h, titlePrefix) {
|
|
74
|
-
return h('span', {
|
|
75
|
-
class: 'vxe-form--item-title-prefix'
|
|
76
|
-
}, [
|
|
77
|
-
h('i', {
|
|
78
|
-
class: titlePrefix.icon || GlobalConfig.icon.FORM_PREFIX
|
|
79
|
-
})
|
|
80
|
-
])
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
function renderSuffixIcon (h, titleSuffix) {
|
|
84
|
-
return h('span', {
|
|
85
|
-
class: 'vxe-form--item-title-suffix'
|
|
86
|
-
}, [
|
|
87
|
-
h('i', {
|
|
88
|
-
class: titleSuffix.icon || GlobalConfig.icon.FORM_SUFFIX
|
|
89
|
-
})
|
|
90
|
-
])
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
function renderTitle (h, _vm, item) {
|
|
94
|
-
const { data } = _vm
|
|
95
|
-
const { slots, field, itemRender, titlePrefix, titleSuffix } = item
|
|
96
|
-
const compConf = isEnableConf(itemRender) ? VXETable.renderer.get(itemRender.name) : null
|
|
97
|
-
const params = { data, property: field, item, $form: _vm }
|
|
98
|
-
const contVNs = []
|
|
99
|
-
const titVNs = []
|
|
100
|
-
if (titlePrefix) {
|
|
101
|
-
titVNs.push(
|
|
102
|
-
titlePrefix.message
|
|
103
|
-
? h('vxe-tooltip', {
|
|
104
|
-
props: {
|
|
105
|
-
content: UtilTools.getFuncText(titlePrefix.message),
|
|
106
|
-
enterable: titlePrefix.enterable,
|
|
107
|
-
theme: titlePrefix.theme
|
|
108
|
-
}
|
|
109
|
-
}, [
|
|
110
|
-
renderPrefixIcon(h, titlePrefix)
|
|
111
|
-
])
|
|
112
|
-
: renderPrefixIcon(h, titlePrefix)
|
|
113
|
-
)
|
|
114
|
-
}
|
|
115
|
-
titVNs.push(
|
|
116
|
-
h('span', {
|
|
117
|
-
class: 'vxe-form--item-title-label'
|
|
118
|
-
}, compConf && compConf.renderItemTitle ? compConf.renderItemTitle(itemRender, params) : (slots && slots.title ? callSlot(_vm, slots.title, params, h) : UtilTools.getFuncText(item.title)))
|
|
119
|
-
)
|
|
120
|
-
contVNs.push(
|
|
121
|
-
h('div', {
|
|
122
|
-
class: 'vxe-form--item-title-content'
|
|
123
|
-
}, titVNs)
|
|
124
|
-
)
|
|
125
|
-
const fixVNs = []
|
|
126
|
-
if (titleSuffix) {
|
|
127
|
-
fixVNs.push(
|
|
128
|
-
titleSuffix.message
|
|
129
|
-
? h('vxe-tooltip', {
|
|
130
|
-
props: {
|
|
131
|
-
content: UtilTools.getFuncText(titleSuffix.message),
|
|
132
|
-
enterable: titleSuffix.enterable,
|
|
133
|
-
theme: titleSuffix.theme
|
|
134
|
-
}
|
|
135
|
-
}, [
|
|
136
|
-
renderSuffixIcon(h, titleSuffix)
|
|
137
|
-
])
|
|
138
|
-
: renderSuffixIcon(h, titleSuffix)
|
|
139
|
-
)
|
|
140
|
-
}
|
|
141
|
-
contVNs.push(
|
|
142
|
-
h('div', {
|
|
143
|
-
class: 'vxe-form--item-title-postfix'
|
|
144
|
-
}, fixVNs)
|
|
145
|
-
)
|
|
146
|
-
return contVNs
|
|
147
|
-
}
|
|
148
|
-
|
|
149
61
|
function renderItems (h, _vm, itemList) {
|
|
150
62
|
const { _e, rules, data, collapseAll, validOpts, titleOverflow: allTitleOverflow } = _vm
|
|
151
63
|
return itemList.map((item, index) => {
|
|
@@ -185,7 +97,7 @@ function renderItems (h, _vm, itemList) {
|
|
|
185
97
|
}
|
|
186
98
|
let contentVNs = []
|
|
187
99
|
if (slots && slots.default) {
|
|
188
|
-
contentVNs = callSlot(
|
|
100
|
+
contentVNs = _vm.callSlot(slots.default, params, h)
|
|
189
101
|
} else if (compConf && compConf.renderItemContent) {
|
|
190
102
|
contentVNs = compConf.renderItemContent.call(_vm, h, itemRender, params)
|
|
191
103
|
} else if (compConf && compConf.renderItem) {
|
|
@@ -258,6 +170,7 @@ export default {
|
|
|
258
170
|
name: 'VxeForm',
|
|
259
171
|
mixins: [vSize],
|
|
260
172
|
props: {
|
|
173
|
+
collapseStatus: { type: Boolean, default: true },
|
|
261
174
|
loading: Boolean,
|
|
262
175
|
data: Object,
|
|
263
176
|
size: { type: String, default: () => GlobalConfig.form.size || GlobalConfig.size },
|
|
@@ -272,11 +185,12 @@ export default {
|
|
|
272
185
|
items: Array,
|
|
273
186
|
rules: Object,
|
|
274
187
|
preventSubmit: { type: Boolean, default: () => GlobalConfig.form.preventSubmit },
|
|
275
|
-
validConfig: Object
|
|
188
|
+
validConfig: Object,
|
|
189
|
+
customLayout: { type: Boolean, default: () => GlobalConfig.form.customLayout }
|
|
276
190
|
},
|
|
277
191
|
data () {
|
|
278
192
|
return {
|
|
279
|
-
collapseAll:
|
|
193
|
+
collapseAll: this.collapseStatus,
|
|
280
194
|
staticItems: [],
|
|
281
195
|
formItems: [],
|
|
282
196
|
|
|
@@ -305,24 +219,32 @@ export default {
|
|
|
305
219
|
return opts
|
|
306
220
|
}
|
|
307
221
|
},
|
|
308
|
-
created () {
|
|
309
|
-
this.$nextTick(() => {
|
|
310
|
-
const { items } = this
|
|
311
|
-
if (items) {
|
|
312
|
-
this.loadItem(items)
|
|
313
|
-
}
|
|
314
|
-
})
|
|
315
|
-
},
|
|
316
222
|
watch: {
|
|
317
223
|
staticItems (value) {
|
|
318
224
|
this.formItems = value
|
|
319
225
|
},
|
|
320
226
|
items (value) {
|
|
321
227
|
this.loadItem(value)
|
|
228
|
+
},
|
|
229
|
+
collapseStatus (value) {
|
|
230
|
+
this.collapseAll = !!value
|
|
322
231
|
}
|
|
323
232
|
},
|
|
233
|
+
created () {
|
|
234
|
+
this.$nextTick(() => {
|
|
235
|
+
const { items } = this
|
|
236
|
+
if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
|
|
237
|
+
if (this.customLayout && this.items) {
|
|
238
|
+
UtilTools.error('vxe.error.errConflicts', ['custom-layout', 'items'])
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
if (items) {
|
|
242
|
+
this.loadItem(items)
|
|
243
|
+
}
|
|
244
|
+
})
|
|
245
|
+
},
|
|
324
246
|
render (h) {
|
|
325
|
-
const { _e, loading, className, data, vSize, tooltipOpts, formItems } = this
|
|
247
|
+
const { _e, loading, className, data, vSize, tooltipOpts, formItems, customLayout } = this
|
|
326
248
|
const hasUseTooltip = VXETable._tooltip
|
|
327
249
|
return h('form', {
|
|
328
250
|
class: ['vxe-form', className ? (XEUtils.isFunction(className) ? className({ items: formItems, data, $form: this }) : className) : '', {
|
|
@@ -338,11 +260,11 @@ export default {
|
|
|
338
260
|
}, [
|
|
339
261
|
h('div', {
|
|
340
262
|
class: 'vxe-form--wrapper vxe-row'
|
|
341
|
-
}, renderItems(h, this, formItems)),
|
|
263
|
+
}, customLayout ? this.$slots.default : renderItems(h, this, formItems)),
|
|
342
264
|
h('div', {
|
|
343
265
|
class: 'vxe-form-slots',
|
|
344
266
|
ref: 'hideItem'
|
|
345
|
-
}, this.$slots.default),
|
|
267
|
+
}, customLayout ? [] : this.$slots.default),
|
|
346
268
|
h('div', {
|
|
347
269
|
class: ['vxe-loading', {
|
|
348
270
|
'is--visible': loading
|
|
@@ -362,6 +284,18 @@ export default {
|
|
|
362
284
|
])
|
|
363
285
|
},
|
|
364
286
|
methods: {
|
|
287
|
+
callSlot (slotFunc, params, h) {
|
|
288
|
+
if (slotFunc) {
|
|
289
|
+
const { $scopedSlots } = this
|
|
290
|
+
if (XEUtils.isString(slotFunc)) {
|
|
291
|
+
slotFunc = $scopedSlots[slotFunc] || null
|
|
292
|
+
}
|
|
293
|
+
if (XEUtils.isFunction(slotFunc)) {
|
|
294
|
+
return slotFunc.call(this, params, h)
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
return []
|
|
298
|
+
},
|
|
365
299
|
loadItem (list) {
|
|
366
300
|
if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
|
|
367
301
|
const { $scopedSlots } = this
|
|
@@ -388,12 +322,16 @@ export default {
|
|
|
388
322
|
return itemList
|
|
389
323
|
},
|
|
390
324
|
toggleCollapse () {
|
|
391
|
-
|
|
325
|
+
const status = !this.collapseAll
|
|
326
|
+
this.collapseAll = status
|
|
327
|
+
this.$emit('update:collapseStatus', status)
|
|
392
328
|
return this.$nextTick()
|
|
393
329
|
},
|
|
394
330
|
toggleCollapseEvent (evnt) {
|
|
395
331
|
this.toggleCollapse()
|
|
396
|
-
|
|
332
|
+
const status = this.collapseAll
|
|
333
|
+
this.$emit('toggle-collapse', { status, collapse: status, data: this.data, $form: this, $event: evnt }, evnt)
|
|
334
|
+
this.$emit('collapse', { status, collapse: status, data: this.data, $form: this, $event: evnt }, evnt)
|
|
397
335
|
},
|
|
398
336
|
submitEvent (evnt) {
|
|
399
337
|
evnt.preventDefault()
|
|
@@ -631,12 +569,16 @@ export default {
|
|
|
631
569
|
handleFocus (fields) {
|
|
632
570
|
const { $el } = this
|
|
633
571
|
const itemList = this.getItems()
|
|
634
|
-
fields.some(property => {
|
|
572
|
+
fields.some((property, index) => {
|
|
635
573
|
const item = itemList.find(item => item.field === property)
|
|
636
574
|
if (item && isEnableConf(item.itemRender)) {
|
|
637
575
|
const { itemRender } = item
|
|
638
576
|
const compConf = VXETable.renderer.get(itemRender.name)
|
|
639
577
|
let inputElem
|
|
578
|
+
// 定位到第一个
|
|
579
|
+
if (!index) {
|
|
580
|
+
DomTools.scrollToView($el.querySelector(`.${item.id}`))
|
|
581
|
+
}
|
|
640
582
|
// 如果指定了聚焦 class
|
|
641
583
|
if (itemRender.autofocus) {
|
|
642
584
|
inputElem = $el.querySelector(`.${item.id} ${itemRender.autofocus}`)
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import GlobalConfig from '../../v-x-e-table/src/conf'
|
|
2
|
+
import VXETable from '../../v-x-e-table'
|
|
3
|
+
import { UtilTools, isEnableConf } from '../../tools'
|
|
4
|
+
|
|
5
|
+
function renderPrefixIcon (h, titlePrefix) {
|
|
6
|
+
return h('span', {
|
|
7
|
+
class: 'vxe-form--item-title-prefix'
|
|
8
|
+
}, [
|
|
9
|
+
h('i', {
|
|
10
|
+
class: titlePrefix.icon || GlobalConfig.icon.FORM_PREFIX
|
|
11
|
+
})
|
|
12
|
+
])
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
function renderSuffixIcon (h, titleSuffix) {
|
|
16
|
+
return h('span', {
|
|
17
|
+
class: 'vxe-form--item-title-suffix'
|
|
18
|
+
}, [
|
|
19
|
+
h('i', {
|
|
20
|
+
class: titleSuffix.icon || GlobalConfig.icon.FORM_SUFFIX
|
|
21
|
+
})
|
|
22
|
+
])
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export function renderTitle (h, _vm, item) {
|
|
26
|
+
const { data } = _vm
|
|
27
|
+
const { slots, field, itemRender, titlePrefix, titleSuffix } = item
|
|
28
|
+
const compConf = isEnableConf(itemRender) ? VXETable.renderer.get(itemRender.name) : null
|
|
29
|
+
const params = { data, property: field, item, $form: _vm }
|
|
30
|
+
const contVNs = []
|
|
31
|
+
const titVNs = []
|
|
32
|
+
if (titlePrefix) {
|
|
33
|
+
titVNs.push(
|
|
34
|
+
titlePrefix.message
|
|
35
|
+
? h('vxe-tooltip', {
|
|
36
|
+
props: {
|
|
37
|
+
content: UtilTools.getFuncText(titlePrefix.message),
|
|
38
|
+
enterable: titlePrefix.enterable,
|
|
39
|
+
theme: titlePrefix.theme
|
|
40
|
+
}
|
|
41
|
+
}, [
|
|
42
|
+
renderPrefixIcon(h, titlePrefix)
|
|
43
|
+
])
|
|
44
|
+
: renderPrefixIcon(h, titlePrefix)
|
|
45
|
+
)
|
|
46
|
+
}
|
|
47
|
+
titVNs.push(
|
|
48
|
+
h('span', {
|
|
49
|
+
class: 'vxe-form--item-title-label'
|
|
50
|
+
}, compConf && compConf.renderItemTitle ? compConf.renderItemTitle(itemRender, params) : (slots && slots.title ? _vm.callSlot(slots.title, params, h) : UtilTools.getFuncText(item.title)))
|
|
51
|
+
)
|
|
52
|
+
contVNs.push(
|
|
53
|
+
h('div', {
|
|
54
|
+
class: 'vxe-form--item-title-content'
|
|
55
|
+
}, titVNs)
|
|
56
|
+
)
|
|
57
|
+
const fixVNs = []
|
|
58
|
+
if (titleSuffix) {
|
|
59
|
+
fixVNs.push(
|
|
60
|
+
titleSuffix.message
|
|
61
|
+
? h('vxe-tooltip', {
|
|
62
|
+
props: {
|
|
63
|
+
content: UtilTools.getFuncText(titleSuffix.message),
|
|
64
|
+
enterable: titleSuffix.enterable,
|
|
65
|
+
theme: titleSuffix.theme
|
|
66
|
+
}
|
|
67
|
+
}, [
|
|
68
|
+
renderSuffixIcon(h, titleSuffix)
|
|
69
|
+
])
|
|
70
|
+
: renderSuffixIcon(h, titleSuffix)
|
|
71
|
+
)
|
|
72
|
+
}
|
|
73
|
+
contVNs.push(
|
|
74
|
+
h('div', {
|
|
75
|
+
class: 'vxe-form--item-title-postfix'
|
|
76
|
+
}, fixVNs)
|
|
77
|
+
)
|
|
78
|
+
return contVNs
|
|
79
|
+
}
|
|
@@ -40,8 +40,8 @@ function renderDefaultForm (h, _vm) {
|
|
|
40
40
|
on: {
|
|
41
41
|
submit: _vm.submitEvent,
|
|
42
42
|
reset: _vm.resetEvent,
|
|
43
|
-
|
|
44
|
-
'
|
|
43
|
+
collapse: _vm.collapseEvent,
|
|
44
|
+
'submit-invalid': _vm.submitInvalidEvent
|
|
45
45
|
},
|
|
46
46
|
scopedSlots: formSlots
|
|
47
47
|
})
|
|
@@ -819,9 +819,10 @@ export default {
|
|
|
819
819
|
submitInvalidEvent (params) {
|
|
820
820
|
this.$emit('form-submit-invalid', Object.assign({ $grid: this }, params))
|
|
821
821
|
},
|
|
822
|
-
|
|
822
|
+
collapseEvent (params) {
|
|
823
823
|
this.$nextTick(() => this.recalculate(true))
|
|
824
824
|
this.$emit('form-toggle-collapse', Object.assign({ $grid: this }, params))
|
|
825
|
+
this.$emit('form-collapse', Object.assign({ $grid: this }, params))
|
|
825
826
|
},
|
|
826
827
|
triggerZoomEvent (evnt) {
|
|
827
828
|
this.zoom()
|