vxe-table-plugin-iview
Version:
基于 vxe-table 的表格适配插件,用于兼容 iview、view-design 组件库
1 lines • 11.2 kB
JavaScript
!function(e,t){"function"==typeof define&&define.amd?define("vxe-table-plugin-iview",["exports","xe-utils"],t):"undefined"!=typeof exports?t(exports,require("xe-utils")):(t((t={exports:{}}).exports,e.XEUtils),e.VXETablePluginIView=t.exports.default)}("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:this,function(e,m){"use strict";var t;function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function y(e){return null==e||""===e}function a(){return"value"}function i(e,t,n){return m.default.toDateString(e,t.format||n)}function u(e,t,n,r){return m.default.map(e,function(e){return i(e,t,r)}).join(n)}function l(e,t,n,r){return(e=i(e,n,r))>=i(t[0],n,r)&&e<=i(t[1],n,r)}function v(e,t,n,r){t=t.$table.vSize;return m.default.assign(t?{size:t}:{},r,e.props,o({},a(),n))}function c(e,t,n,r){t=t.$form.vSize;return m.default.assign(t?{size:t}:{},r,e.props,o({},a(),n))}function d(e){return""+(y(e)?"":e)}function r(e,t,n,r){t=t.placeholder;return[e("span",{class:"vxe-cell--label"},t&&y(r)?[e("span",{class:"vxe-cell--placeholder"},d(t))]:d(r))]}function b(e,o){var e=e.nativeEvents,t={};return m.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 p(e,o,t,r){var a=e.events,n="input",i="on-change",u={};return m.default.objectEach(a,function(r,e){u[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&&(u[n]=function(e){t(e),a&&a[n]&&a[n](o,e)}),r&&(u[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))}),u}function s(e,t){var n=t.$table,r=t.row,o=t.column;return p(e,t,function(e){m.default.set(r,o.property,e)},function(){n.updateStatus(t)})}function g(e,t,n,r){return p(e,t,function(e){n.data=e},r)}function h(e,t){var n=t.$form,r=t.data,o=t.property;return p(e,t,function(e){m.default.set(r,o,e)},function(){n.updateStatus(t)})}function f(e,t){var n,o,r=e.options,a=void 0===r?[]:r,i=e.optionGroups,u=e.props,l=void 0===u?{}:u,d=e.optionProps,r=void 0===d?{}:d,u=e.optionGroupProps,d=void 0===u?{}:u,e=t.row,u=t.column,t=t.$table,p=r.label||"label",f=r.value||"value",c=d.options||"options",s=m.default.get(e,u.property),v=u.id;if(l.filterable){t=t.fullAllDataRowMap;if(t.has(e)&&(n=t.get(e),o=(o=n.cellData)||(t.get(e).cellData={})),n&&o[v]&&o[v].value===s)return o[v].label}return y(s)?"":m.default.map(l.multiple?s:[s],i?function(t){for(var e,n=0;n<i.length&&!(e=m.default.find(i[n][c],function(e){return e[f]===t}));n++);var r=e?e[p]:t;return o&&a&&a.length&&(o[v]={value:s,label:r}),r}:function(t){var e=m.default.find(a,function(e){return e[f]===t}),e=e?e[p]:t;return o&&a&&a.length&&(o[v]={value:s,label:e}),e}).join(", ")}function w(e,t){var n=e.props,e=void 0===n?{}:n,n=t.row,t=t.column,n=m.default.get(n,t.property)||[],t=[];return function t(n,e,r,o){var a=r[n];e&&r.length>n&&m.default.each(e,function(e){e.value===a&&(o.push(e.label),t(++n,e.children,r,o))})}(0,e.data,n,t),t.join(" ".concat(e.separator||"/"," "))}function I(e,t){var e=e.props,n=void 0===e?{}:e,e=t.row,t=t.column,r=n.separator,o=m.default.get(e,t.property);switch(n.type){case"week":o=i(o,n,"yyyywWW");break;case"month":o=i(o,n,"yyyy-MM");break;case"year":o=i(o,n,"yyyy");break;case"dates":o=u(o,n,", ","yyyy-MM-dd");break;case"daterange":o=u(o,n," ".concat(r||"-"," "),"yyyy-MM-dd");break;case"datetimerange":o=u(o,n," ".concat(r||"-"," "),"yyyy-MM-dd HH:ss:mm");break;default:o=i(o,n,"yyyy-MM-dd")}return o}function n(i){return function(e,t,n){var r=n.row,o=n.column,a=t.attrs,o=m.default.get(r,o.property);return[e(t.name,{attrs:a,props:v(t,n,o,i),on:s(t,n),nativeOn:b(t,n)})]}}function M(e,t,n){return[e("Button",{attrs:t.attrs,props:v(t,n,null),on:p(t,n),nativeOn:b(t,n)},P(0,t.content))]}function x(t,e,n){return e.children.map(function(e){return M(t,e,n)[0]})}function O(d){return function(r,o,a){var e=a.column,i=o.name,u=o.attrs,l=b(o,a);return[r("div",{class:"vxe-table--filter-iview-wrapper"},e.filters.map(function(e,t){var n=e.data;return r(i,{key:t,attrs:u,props:v(o,a,n,d),on:g(o,a,e,function(){E(a,!!e.data,e)}),nativeOn:l})}))]}}function E(e,t,n){e.$panel.changeOption({},t,n)}function k(e){var t=e.option,n=e.row,e=e.column,t=t.data;return m.default.get(n,e.property)===t}function C(n,e,t){var r=t.label||"label",o=t.value||"value";return m.default.map(e,function(e,t){return n("Option",{key:t,props:{value:e[o],label:e[r],disabled:e.disabled}})})}function P(e,t){return[d(t)]}function F(a){return function(e,t,n){var r=n.data,o=n.property;return[e(t.name,{attrs:t.attrs,props:c(t,n,m.default.get(r,o),a),on:h(t,n),nativeOn:b(t,n)})]}}function G(e,t,n){var r=t.attrs,o=c(t,n,null);return[e("Button",{attrs:r,props:o,on:p(t,n),nativeOn:b(t,n)},P(0,t.content||o.content))]}function S(t,e,n){return e.children.map(function(e){return G(t,e,n)[0]})}function D(o){return function(e){var t=e.row,n=e.column,r=e.options;return r&&r.original?m.default.get(t,n.property):o(n.editRender||n.cellRender,e)}}function T(){return function(t,e,n){var r=e.name,o=e.options,a=void 0===o?[]:o,i=e.optionProps,u=void 0===i?{}:i,l=n.data,o=n.property,i=e.attrs,d=u.label||"label",p=u.value||"value",o=m.default.get(l,o);return[t("".concat(r,"Group"),{attrs:i,props:c(e,n,o),on:h(e,n),nativeOn:b(e,n)},a.map(function(e){return t(r,{props:{label:e[p],disabled:e.disabled}},e[d])}))]}}function V(e,t){var n=document.body;if(function(e,t,n){for(var r,o=e.target;o&&o.nodeType&&o!==document;){if(n&&o.className&&o.className.split&&-1<o.className.split(" ").indexOf(n))r=o;else if(o===t)return{flag:!n||!!r,container:t,targetElem:r};o=o.parentNode}return{flag:!1}}(e.$event||t,n,"ivu-select-dropdown").flag)return!1}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.VXETablePluginIView=void 0,m=(t=m)&&t.__esModule?t:{default:t};var A={install:function(e){/^(2|3)\./.test(e.version)||console.error("[vxe-table-plugin-iview] Version vxe-table 3.x is required"),e.renderer.mixin({Input:{autofocus:"input.ivu-input",renderDefault:n(),renderEdit:n(),renderFilter:O(),defaultFilterMethod:k,renderItem:F(),renderItemContent:F()},AutoComplete:{autofocus:"input.ivu-input",renderDefault:n(),renderEdit:n(),renderFilter:O(),defaultFilterMethod:k,renderItem:F(),renderItemContent:F()},InputNumber:{autofocus:"input.ivu-input-number-input",renderDefault:n(),renderEdit:n(),renderFilter:O(),defaultFilterMethod:k,renderItem:F(),renderItemContent:F()},Select:{renderEdit:function(n,e,t){var r=e.options,o=void 0===r?[]:r,a=e.optionGroups,i=e.optionProps,u=void 0===i?{}:i,l=e.optionGroupProps,d=void 0===l?{}:l,r=t.row,i=t.column,l=e.attrs,r=v(e,t,m.default.get(r,i.property)),i=s(e,t),t=b(e,t);if(a){var p=d.options||"options",f=d.label||"label";return[n("Select",{attrs:l,props:r,on:i,nativeOn:t},m.default.map(a,function(e,t){return n("OptionGroup",{props:{label:e[f]},key:t},C(n,e[p],u))}))]}return[n("Select",{attrs:l,props:r,on:i,nativeOn:t},C(n,o,u))]},renderCell:function(e,t,n){return r(e,t,0,f(t,n))},renderFilter:function(o,a,i){var e=a.options,u=void 0===e?[]:e,l=a.optionGroups,e=a.optionProps,d=void 0===e?{}:e,e=a.optionGroupProps,e=void 0===e?{}:e,p=e.options||"options",f=e.label||"label",e=i.column,c=a.attrs,s=b(a,i);return[o("div",{class:"vxe-table--filter-iview-wrapper"},l?e.filters.map(function(e,t){var n=e.data,r=v(a,i,n);return o("Select",{key:t,attrs:c,props:r,on:g(a,i,e,function(){E(i,r.multiple?e.data&&0<e.data.length:!m.default.eqNull(e.data),e)}),nativeOn:s},m.default.map(l,function(e,t){return o("OptionGroup",{key:t,props:{label:e[f]}},C(o,e[p],d))}))}):e.filters.map(function(e,t){var n=e.data,r=v(a,i,n);return o("Select",{key:t,attrs:c,props:r,on:g(a,i,e,function(){E(i,r.multiple?e.data&&0<e.data.length:!m.default.eqNull(e.data),e)}),nativeOn:s},C(o,u,d))}))]},defaultFilterMethod:function(e){var t=e.option,n=e.row,r=e.column,e=t.data,t=r.property,r=r.filterRender.props,r=void 0===r?{}:r,t=m.default.get(n,t);return r.multiple?m.default.isArray(t)?m.default.includeArrays(t,e):-1<e.indexOf(t):t==e},renderItem:function(n,e,t){var r=e.options,o=void 0===r?[]:r,a=e.optionGroups,i=e.optionProps,u=void 0===i?{}:i,l=e.optionGroupProps,d=void 0===l?{}:l,r=t.data,i=t.property,l=e.attrs,r=c(e,t,m.default.get(r,i)),i=h(e,t),t=b(e,t);if(a){var p=d.options||"options",f=d.label||"label";return[n("Select",{props:r,attrs:l,on:i,nativeOn:t},m.default.map(a,function(e,t){return n("OptionGroup",{key:t,props:{label:e[f]}},C(n,e[p],u))}))]}return[n("Select",{props:r,attrs:l,on:i,nativeOn:t},C(n,o,u))]},renderItemContent:function(n,e,t){var r=e.options,o=void 0===r?[]:r,a=e.optionGroups,i=e.optionProps,u=void 0===i?{}:i,l=e.optionGroupProps,d=void 0===l?{}:l,r=t.data,i=t.property,l=e.attrs,r=c(e,t,m.default.get(r,i)),i=h(e,t),t=b(e,t);if(a){var p=d.options||"options",f=d.label||"label";return[n("Select",{props:r,attrs:l,on:i,nativeOn:t},m.default.map(a,function(e,t){return n("OptionGroup",{key:t,props:{label:e[f]}},C(n,e[p],u))}))]}return[n("Select",{props:r,attrs:l,on:i,nativeOn:t},C(n,o,u))]},cellExportMethod:D(f),exportMethod:D(f)},Cascader:{renderEdit:n({transfer:!0}),renderCell:function(e,t,n){return r(e,t,0,w(t,n))},renderItem:F(),renderItemContent:F(),cellExportMethod:D(w),exportMethod:D(w)},DatePicker:{renderEdit:n({transfer:!0}),renderCell:function(e,t,n){return r(e,t,0,I(t,n))},renderFilter:function(r,o,a){var e=a.column,i=o.attrs,u=b(o,a);return[r("div",{class:"vxe-table--filter-iview-wrapper"},e.filters.map(function(e,t){var n=e.data;return r(o.name,{key:t,attrs:i,props:v(o,a,n),on:g(o,a,e,function(){E(a,!!e.data,e)}),nativeOn:u})}))]},defaultFilterMethod:function(e){var t=e.option,n=e.row,e=e.column,r=t.data,t=e.filterRender.props,o=void 0===t?{}:t,a=m.default.get(n,e.property);if(r)switch(o.type){case"daterange":return l(a,r,o,"yyyy-MM-dd");case"datetimerange":return l(a,r,o,"yyyy-MM-dd HH:ss:mm");default:return a===r}return!1},renderItem:F(),renderItemContent:F(),cellExportMethod:D(I),exportMethod:D(I)},TimePicker:{renderEdit:n({transfer:!0}),renderItem:F(),renderItemContent:F()},Rate:{renderDefault:n(),renderEdit:n(),renderFilter:O(),defaultFilterMethod:k,renderItem:F(),renderItemContent:F()},iSwitch:{renderDefault:n(),renderEdit:n(),renderFilter:function(r,o,a){var e=a.column,i=o.name,u=o.attrs,l=b(o,a);return[r("div",{class:"vxe-table--filter-iview-wrapper"},e.filters.map(function(e,t){var n=e.data;return r(i,{key:t,attrs:u,props:v(o,a,n),on:g(o,a,e,function(){E(a,m.default.isBoolean(e.data),e)}),nativeOn:l})}))]},defaultFilterMethod:k,renderItem:F(),renderItemContent:F()},Radio:{renderItem:T(),renderItemContent:T()},Checkbox:{renderItem:T(),renderItemContent:T()},Button:{renderEdit:M,renderDefault:M,renderItem:G,renderItemContent:G},Buttons:{renderEdit:x,renderDefault:x,renderItem:S,renderItemContent:S}}),e.interceptor.add("event.clearFilter",V),e.interceptor.add("event.clearActived",V),e.interceptor.add("event.clearAreas",V)}};e.VXETablePluginIView=A,"undefined"!=typeof window&&window.VXETable&&window.VXETable.use&&window.VXETable.use(A),e.default=A});