fast-element-plus 1.0.0-alpha.9 → 1.0.1
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/dist/index.full.js +3180 -4581
- package/dist/index.full.js.map +1 -1
- package/dist/index.full.min.js +5 -5
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +5 -5
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +3180 -4581
- package/dist/index.full.mjs.map +1 -1
- package/dist/styles/index.css +2 -2
- package/es/components/avatar/index.d.ts +1 -1
- package/es/components/avatar/index.mjs.map +1 -1
- package/es/components/avatar/src/avatar.d.ts +18 -102
- package/es/components/avatar/src/avatar.mjs +1 -2
- package/es/components/avatar/src/avatar.mjs.map +1 -1
- package/es/components/button/index.d.ts +1 -1
- package/es/components/button/index.mjs.map +1 -1
- package/es/components/button/src/button.d.ts +35 -180
- package/es/components/button/src/button.mjs +14 -4
- package/es/components/button/src/button.mjs.map +1 -1
- package/es/components/carNumber/src/carNumber.d.ts +58 -194
- package/es/components/contextMenu/src/contextMenu.mjs +1 -1
- package/es/components/contextMenu/src/contextMenu.mjs.map +1 -1
- package/es/components/dialog/src/dialog.d.ts +45 -297
- package/es/components/drawer/src/drawer.d.ts +72 -450
- package/es/components/form/src/form.d.ts +28 -133
- package/es/components/form/src/formItem.d.ts +32 -137
- package/es/components/iconSelector/src/iconSelector.mjs +2 -2
- package/es/components/iconSelector/src/iconSelector.mjs.map +1 -1
- package/es/components/image/src/image.d.ts +43 -253
- package/es/components/select/src/select.d.ts +25 -81
- package/es/components/select/src/select.mjs +1 -0
- package/es/components/select/src/select.mjs.map +1 -1
- package/es/components/selectPage/src/selectPage.d.ts +19 -61
- package/es/components/selectV2/src/selectV2.d.ts +25 -81
- package/es/components/selectV2/src/selectV2.mjs +1 -0
- package/es/components/selectV2/src/selectV2.mjs.map +1 -1
- package/es/components/table/src/table.d.ts +5 -12
- package/es/components/table/src/table.mjs +4 -6
- package/es/components/table/src/table.mjs.map +1 -1
- package/es/components/table/src/table.state.d.ts +1 -1
- package/es/components/table/src/table.type.d.ts +4 -1
- package/es/components/table/src/table.type.mjs.map +1 -1
- package/es/components/table/src/tableColumn.d.ts +1 -1
- package/es/components/table/src/tableColumn.mjs +7 -7
- package/es/components/table/src/tableColumn.mjs.map +1 -1
- package/es/components/table/src/tableSearchForm.d.ts +6 -4
- package/es/components/table/src/tableSearchForm.mjs +2 -2
- package/es/components/table/src/tableSearchForm.mjs.map +1 -1
- package/es/components/table/src/useTable.mjs +3 -3
- package/es/components/table/src/useTable.mjs.map +1 -1
- package/es/components/tree/src/tree.d.ts +23 -653
- package/es/components/tree/src/tree.mjs +1 -1
- package/es/components/tree/src/tree.mjs.map +1 -1
- package/es/components/tree/src/tree.type.d.ts +1 -1
- package/es/components/treeSelect/src/treeSelect.d.ts +20 -62
- package/es/components/treeSelect/src/treeSelect.mjs +1 -0
- package/es/components/treeSelect/src/treeSelect.mjs.map +1 -1
- package/es/components/upload/src/upload.d.ts +298 -460
- package/es/components/upload/src/useUpload.mjs +2 -2
- package/es/components/upload/src/useUpload.mjs.map +1 -1
- package/es/components/uploadImage/src/uploadImage.d.ts +295 -394
- package/es/components/uploadImage/src/uploadImage.mjs +1 -1
- package/es/components/uploadImage/src/uploadImage.mjs.map +1 -1
- package/es/components/uploadImages/src/uploadImages.d.ts +300 -420
- package/es/components/uploadImages/src/uploadImages.mjs +4 -4
- package/es/components/uploadImages/src/uploadImages.mjs.map +1 -1
- package/es/constants/regex.mjs +13 -13
- package/es/constants/regex.mjs.map +1 -1
- package/es/directive.d.ts +1 -1
- package/es/directives/click-copy/index.d.ts +1 -1
- package/es/directives/click-debounce/index.d.ts +1 -1
- package/es/directives/click-draggable/index.d.ts +1 -1
- package/es/directives/click-icon-copy/index.d.ts +1 -1
- package/es/directives/click-longpress/index.d.ts +1 -1
- package/es/directives/click-throttle/index.d.ts +1 -1
- package/es/element-plus.mjs +1 -1
- package/es/element-plus.mjs.map +1 -1
- package/es/make-installer.mjs +4 -0
- package/es/make-installer.mjs.map +1 -1
- package/es/version.d.ts +1 -1
- package/es/version.mjs +1 -1
- package/es/version.mjs.map +1 -1
- package/lib/components/avatar/index.d.ts +1 -1
- package/lib/components/avatar/index.js.map +1 -1
- package/lib/components/avatar/src/avatar.d.ts +18 -102
- package/lib/components/avatar/src/avatar.js +1 -1
- package/lib/components/avatar/src/avatar.js.map +1 -1
- package/lib/components/button/index.d.ts +1 -1
- package/lib/components/button/index.js.map +1 -1
- package/lib/components/button/src/button.d.ts +35 -180
- package/lib/components/button/src/button.js +1 -1
- package/lib/components/button/src/button.js.map +1 -1
- package/lib/components/carNumber/src/carNumber.d.ts +58 -194
- package/lib/components/contextMenu/src/contextMenu.js +1 -1
- package/lib/components/contextMenu/src/contextMenu.js.map +1 -1
- package/lib/components/dialog/src/dialog.d.ts +45 -297
- package/lib/components/drawer/src/drawer.d.ts +72 -450
- package/lib/components/form/src/form.d.ts +28 -133
- package/lib/components/form/src/formItem.d.ts +32 -137
- package/lib/components/image/src/image.d.ts +43 -253
- package/lib/components/select/src/select.d.ts +25 -81
- package/lib/components/select/src/select.js +1 -1
- package/lib/components/select/src/select.js.map +1 -1
- package/lib/components/selectPage/src/selectPage.d.ts +19 -61
- package/lib/components/selectV2/src/selectV2.d.ts +25 -81
- package/lib/components/selectV2/src/selectV2.js +1 -1
- package/lib/components/selectV2/src/selectV2.js.map +1 -1
- package/lib/components/table/src/table.d.ts +5 -12
- package/lib/components/table/src/table.js +1 -1
- package/lib/components/table/src/table.js.map +1 -1
- package/lib/components/table/src/table.state.d.ts +1 -1
- package/lib/components/table/src/table.type.d.ts +4 -1
- package/lib/components/table/src/table.type.js.map +1 -1
- package/lib/components/table/src/tableColumn.d.ts +1 -1
- package/lib/components/table/src/tableColumn.js +1 -1
- package/lib/components/table/src/tableColumn.js.map +1 -1
- package/lib/components/table/src/tableSearchForm.d.ts +6 -4
- package/lib/components/table/src/tableSearchForm.js +1 -1
- package/lib/components/table/src/tableSearchForm.js.map +1 -1
- package/lib/components/table/src/useTable.js +1 -1
- package/lib/components/table/src/useTable.js.map +1 -1
- package/lib/components/tree/src/tree.d.ts +23 -653
- package/lib/components/tree/src/tree.js +1 -1
- package/lib/components/tree/src/tree.js.map +1 -1
- package/lib/components/tree/src/tree.type.d.ts +1 -1
- package/lib/components/treeSelect/src/treeSelect.d.ts +20 -62
- package/lib/components/treeSelect/src/treeSelect.js +1 -1
- package/lib/components/treeSelect/src/treeSelect.js.map +1 -1
- package/lib/components/upload/src/upload.d.ts +298 -460
- package/lib/components/upload/src/useUpload.js +1 -1
- package/lib/components/upload/src/useUpload.js.map +1 -1
- package/lib/components/uploadImage/src/uploadImage.d.ts +295 -394
- package/lib/components/uploadImage/src/uploadImage.js +1 -1
- package/lib/components/uploadImage/src/uploadImage.js.map +1 -1
- package/lib/components/uploadImages/src/uploadImages.d.ts +300 -420
- package/lib/components/uploadImages/src/uploadImages.js +1 -1
- package/lib/components/uploadImages/src/uploadImages.js.map +1 -1
- package/lib/constants/regex.js +1 -1
- package/lib/constants/regex.js.map +1 -1
- package/lib/directive.d.ts +1 -1
- package/lib/directives/click-copy/index.d.ts +1 -1
- package/lib/directives/click-debounce/index.d.ts +1 -1
- package/lib/directives/click-draggable/index.d.ts +1 -1
- package/lib/directives/click-icon-copy/index.d.ts +1 -1
- package/lib/directives/click-longpress/index.d.ts +1 -1
- package/lib/directives/click-throttle/index.d.ts +1 -1
- package/lib/element-plus.js +1 -1
- package/lib/element-plus.js.map +1 -1
- package/lib/make-installer.js +1 -1
- package/lib/make-installer.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +8 -8
- package/styles/components/contextMenu.scss +2 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),t=require("element-plus"),l=require("@element-plus/icons-vue"),r=require("../../image/index.js"),o=require("@fast-china/utils"),a=require("lodash-unified"),i=require("../images/artwork.png.js"),n=require("../images/notImage.png.js"),d=require("../utils/table.js"),s=require("./table.type.js"),u=require("./useTable.js");function c(t){return"function"==typeof t||"[object Object]"===Object.prototype.toString.call(t)&&!e.isVNode(t)}const p={type:{type:String,default:"default"},label:String,className:String,labelClassName:String,property:String,prop:String,width:{type:[String,Number],default:""},minWidth:{type:[String,Number],default:""},renderHeader:Function,sortable:{type:[Boolean,String],default:!1},sortMethod:Function,sortBy:[String,Function,Array],resizable:{type:Boolean,default:!0},columnKey:String,align:String,headerAlign:String,showOverflowTooltip:{type:[Boolean,Object],default:void 0},fixed:[Boolean,String],formatter:Function,selectable:Function,reserveSelection:Boolean,filterMethod:Function,filteredValue:Array,filters:Array,filterPlacement:String,filterMultiple:{type:Boolean,default:!0},filterClassName:String,index:[Number,Function],sortOrders:{type:Array,default:()=>["ascending","descending",null],validator:e=>e.every(e=>["ascending","descending",null].includes(e))}},m=e.defineComponent({name:"FaTableColumn",props:{...p,type:{type:o.definePropType(String),default:"default"},width:{type:[String,Number],default:"auto"},align:{type:String,default:"left"},headerAlign:{type:String,default:"left"},show:Boolean,smallWidth:{type:[String,Number]},autoWidth:Boolean,slot:String,headerSlot:String,headerRender:{type:o.definePropType(Function)},render:{type:o.definePropType(Function)},_children:{type:o.definePropType(Array)},copy:Boolean,link:Boolean,spanProp:String,click:{type:o.definePropType(Function)},clickEmit:String,dateFix:Boolean,dateFormat:{type:o.definePropType(String)},tag:Boolean,enum:{type:o.definePropType([Array,Function])},dataDeleteField:String,submitInfoField:{type:o.definePropType(Object),default:()=>({submitClerkName:"
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),t=require("element-plus"),l=require("@element-plus/icons-vue"),r=require("../../image/index.js"),o=require("@fast-china/utils"),a=require("lodash-unified"),i=require("../images/artwork.png.js"),n=require("../images/notImage.png.js"),d=require("../utils/table.js"),s=require("./table.type.js"),u=require("./useTable.js");function c(t){return"function"==typeof t||"[object Object]"===Object.prototype.toString.call(t)&&!e.isVNode(t)}const p={type:{type:String,default:"default"},label:String,className:String,labelClassName:String,property:String,prop:String,width:{type:[String,Number],default:""},minWidth:{type:[String,Number],default:""},renderHeader:Function,sortable:{type:[Boolean,String],default:!1},sortMethod:Function,sortBy:[String,Function,Array],resizable:{type:Boolean,default:!0},columnKey:String,align:String,headerAlign:String,showOverflowTooltip:{type:[Boolean,Object],default:void 0},fixed:[Boolean,String],formatter:Function,selectable:Function,reserveSelection:Boolean,filterMethod:Function,filteredValue:Array,filters:Array,filterPlacement:String,filterMultiple:{type:Boolean,default:!0},filterClassName:String,index:[Number,Function],sortOrders:{type:Array,default:()=>["ascending","descending",null],validator:e=>e.every(e=>["ascending","descending",null].includes(e))}},m=e.defineComponent({name:"FaTableColumn",props:{...p,type:{type:o.definePropType(String),default:"default"},width:{type:[String,Number],default:"auto"},align:{type:String,default:"left"},headerAlign:{type:String,default:"left"},show:Boolean,smallWidth:{type:[String,Number]},autoWidth:Boolean,slot:String,headerSlot:String,headerRender:{type:o.definePropType(Function)},render:{type:o.definePropType(Function)},_children:{type:o.definePropType(Array)},copy:Boolean,link:Boolean,spanProp:String,click:{type:o.definePropType(Function)},clickEmit:String,dateFix:Boolean,dateFormat:{type:o.definePropType(String)},tag:Boolean,enum:{type:o.definePropType([Array,Function])},dataDeleteField:String,submitInfoField:{type:o.definePropType(Object),default:()=>({submitClerkName:"createdUserName",submitTime:"createdTime"})}},emits:{imagePreview:e=>a.isString(e),customCellClick:(e,{row:t,column:l,$index:r})=>a.isString(e)&&a.isObject(t)&&a.isObject(l)&&a.isNumber(r)},slots:o.makeSlots(),setup(m,{slots:g,emit:f}){const y=t.useGlobalSize(),b=e.inject(u.tableStateKey),h=e.inject(u.enumMapKey),w=e.computed(()=>m),S=({row:e})=>{let t=m.prop;a.isString(m.enum)&&(t=m.enum);const l=h.get(t);return d.tableUtil.filterEnum(d.tableUtil.handleRowAccordingToProp(e,m.prop),l,null,"tag")},T=t=>m.autoWidth?e.computed(()=>{const e=b.autoColumnWidth.find(e=>e.prop===m.prop);return e?`${e.width}px`:"auto"}).value:"small"===y.value?m.smallWidth??m.width??m.minWidth??t??"auto":m.width??m.minWidth??t??"auto",N=t=>m.autoWidth?e.createVNode("div",{class:["fa-table__auto-width-column__cell-header",`__fa-table__auto-width-column__cell-header__${m.prop}`]},[t]):t,v=({column:t,$index:l})=>m.headerRender?N(m.headerRender({column:t,$index:l,...s.getTableDefaultSlots(b)})):m.headerSlot?N(g[m.headerSlot]&&g[m.headerSlot]({column:t,$index:l,...s.getTableDefaultSlots(b)})):N(e.createVNode("span",null,[m.label])),_=t=>m.autoWidth?e.createVNode("div",{class:["fa-table__auto-width-column__cell",`__fa-table__auto-width-column__cell__${m.prop}`]},[t]):t,F=(r,a)=>(m.copy||a)&&r&&e.createVNode(t.ElIcon,{class:"fa__copy-icon",title:"复制",onClick:()=>(async e=>{try{await o.stringUtil.copy(String(e)),t.ElMessage({type:"success",message:"复制成功"})}catch(l){o.consoleError("FaTableColumn",l),t.ElMessage({type:"error",message:"复制失败"})}})(r)},{default:()=>[e.createVNode(l.CopyDocument,null,null)]}),x=(e,t,l,r)=>t.formatter?t.formatter(e,t,l,r):l,V=({row:l,column:r,$index:i})=>{if("submitInfo"===m.type){let r;const a=l[m.submitInfoField?.submitClerkName??"createdUserName"],i=l[m.submitInfoField?.submitTime??"createdTime"];return e.createVNode(e.Fragment,null,[e.createVNode("div",{style:"white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",title:i},[a&&e.createVNode("span",{style:"margin-right: 5px;"},[a]),e.createVNode("span",null,[i])]),i&&e.createVNode(t.ElTag,{type:"info",round:!0,effect:"light",size:"small"},c(r=o.dateUtil.dateTimeFix(String(i)))?r:{default:()=>[r]})])}if(m.tag){const o=x(l,r,(({row:e})=>{let t=m.prop;a.isString(m.enum)&&(t=m.enum);const l=h.get(t);return l?d.tableUtil.filterEnum(d.tableUtil.handleRowAccordingToProp(e,m.prop),l):d.tableUtil.formatValue(d.tableUtil.handleRowAccordingToProp(e,m.prop))})({row:l}),i);return e.createVNode(e.Fragment,null,[F(o),o?e.createVNode(t.ElTag,{type:S({row:l})},c(o)?o:{default:()=>[o]}):null])}if("date"===m.type||"time"===m.type||"dateTime"===m.type){let a,n;switch(m.type){case"date":n="YYYY-MM-DD";break;case"time":n="HH:mm:ss";break;case"dateTime":n="YYYY-MM-DD HH:mm:ss"}const d=l[m.prop]?x(l,r,t.dayjs(l[m.prop]).format(m.dateFormat??n),i):null;return e.createVNode(e.Fragment,null,[F(d),d,m.dateFix&&d&&e.createVNode(e.Fragment,null,[e.createVNode("br",null,null),e.createVNode(t.ElTag,{type:"info",round:!0,effect:"light",size:"small"},c(a=o.dateUtil.dateTimeFix(String(d)))?a:{default:()=>[a]})])])}if("d2"===m.type||"d4"===m.type||"d6"===m.type||"gd2"===m.type||"gd4"===m.type||"gd6"===m.type){const e=l[m.prop];if(e&&a.isNumber(e)){let t,l=!1;switch(m.type){case"d2":t=2;break;case"d4":t=4;break;case"d6":t=6;break;case"gd2":t=2,l=!0;break;case"gd4":t=4,l=!0;break;case"gd6":t=6,l=!0}return e.toLocaleString("zh-CN",{minimumFractionDigits:2,maximumFractionDigits:t,useGrouping:l})}return e}if(m.link){const o=x(l,r,l[m.prop],i);return _(e.createVNode(e.Fragment,null,[F(o),o&&e.createVNode(t.ElText,{class:"el-link is-hover-underline fa-table__link-column__text",onClick:()=>{m.dataDeleteField&&!0===l[m.dataDeleteField]||(m.click?m.click({row:l,$index:i}):f("customCellClick",m.clickEmit,{row:l,column:w.value,$index:i}))}},c(o)?o:{default:()=>[o]})]))}if(m.render)return _(m.render({row:l,column:w.value,$index:i,...s.getTableDefaultSlots(b)}));if(m.slot)return _(g[m.slot]&&g[m.slot]({row:l,column:w.value,$index:i,...s.getTableDefaultSlots(b)}));{const t=x(l,r,l[m.prop],i);return _(e.createVNode(e.Fragment,null,[F(t),t]))}};let k=o.useProps(m,p,["type","width","minWidth","sortable","sortOrders","resizable","showOverflowTooltip"]);e.watch(()=>m,()=>{k=o.useProps(m,p,["type","minWidth","sortable","sortOrders","resizable","showOverflowTooltip"])}),o.useRender(()=>e.createVNode(e.Fragment,null,[m._children?.length?e.createVNode(t.ElTableColumn,e.mergeProps(k.value,{minWidth:T("auto"),sortable:!!m.sortable&&"custom",sortOrders:m.sortOrders??["descending","ascending",null],resizable:m.resizable&&!m.autoWidth,showOverflowTooltip:(m.showOverflowTooltip??!0)&&!m.autoWidth&&"default"==m.type}),{header:({column:e,$index:t})=>v({column:e,$index:t}),default:()=>m._children.map(t=>e.h(e.resolveComponent("FaTableColumn"),{...t},g))}):"image"===m.type?e.createVNode(t.ElTableColumn,e.mergeProps(k.value,{align:"center",className:"fa-table__image-column",minWidth:"50px",sortable:!1,resizable:!1,showOverflowTooltip:!1}),{header:({column:e,$index:t})=>v({column:e,$index:t}),default:({row:l})=>l[m.prop]?b.hideImage?e.createVNode(t.ElImage,{class:"fa-image",lazy:!0,src:i.default,fit:"cover",previewSrcList:[l[m.prop]],closeOnPressEscape:!0,hideOnClickModal:!0,previewTeleported:!0},null):e.createVNode(r.FaImage,{lazy:!0,src:l[m.prop],fit:"cover",original:!0},null):e.createVNode(t.ElImage,{class:"fa-image",lazy:!0,src:n.default,fit:"cover"},null)}):e.createVNode(t.ElTableColumn,e.mergeProps(k.value,{minWidth:T("auto"),sortable:!!m.sortable&&"custom",sortOrders:m.sortOrders??["descending","ascending",null],resizable:m.resizable&&!m.autoWidth,showOverflowTooltip:(m.showOverflowTooltip??!0)&&!m.autoWidth&&"default"==m.type}),{header:({column:e,$index:t})=>v({column:e,$index:t}),default:({row:e,column:t,$index:l})=>V({row:e,column:t,$index:l})})]))}});exports.default=m,exports.tableColumnProps=p;
|
|
2
2
|
//# sourceMappingURL=tableColumn.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tableColumn.js","sources":["../../../../../packages/components/table/src/tableColumn.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, h, inject, resolveComponent, watch } from \"vue\";\nimport { ElIcon, ElImage, ElMessage, ElTableColumn, ElTag, ElText, dayjs, useGlobalSize } from \"element-plus\";\nimport { CopyDocument } from \"@element-plus/icons-vue\";\nimport FaImage from \"@fast-element-plus/components/image\";\nimport { consoleError, dateUtil, definePropType, makeSlots, stringUtil, useProps, useRender } from \"@fast-china/utils\";\nimport { isNumber, isObject, isString } from \"lodash-unified\";\nimport artwork from \"../images/artwork.png\";\nimport notImage from \"../images/notImage.png\";\nimport { tableUtil } from \"../utils/table\";\nimport { getTableDefaultSlots } from \"./table.type\";\nimport { enumMapKey, tableStateKey } from \"./useTable\";\nimport type { FaTableColumnCtx, FaTableColumnDateFormat, FaTableColumnType, FaTableDefaultSlotsResult, FaTableEnumColumnType } from \"./table.type\";\nimport type { TableColumnCtx } from \"element-plus\";\nimport type { ComputedRef, PropType, VNode } from \"vue\";\n\ntype DefaultRow = any;\n\nexport const tableColumnProps = {\n\t/**\n\t * @description type of the column. If set to `selection`, the column will display checkbox. If set to `index`, the column will display index of the row (staring from 1). If set to `expand`, the column will display expand icon\n\t */\n\ttype: {\n\t\ttype: String,\n\t\tdefault: \"default\",\n\t},\n\t/**\n\t * @description column label\n\t */\n\tlabel: String,\n\t/**\n\t * @description class name of cells in the column\n\t */\n\tclassName: String,\n\t/**\n\t * @description class name of the label of this column\n\t */\n\tlabelClassName: String,\n\t/**\n\t * @description\n\t */\n\tproperty: String,\n\t/**\n\t * @description field name. You can also use its alias: `property`\n\t */\n\tprop: String,\n\t/**\n\t * @description column width\n\t */\n\twidth: {\n\t\ttype: [String, Number],\n\t\tdefault: \"\",\n\t},\n\t/**\n\t * @description column minimum width. Columns with `width` has a fixed width, while columns with `min-width` has a width that is distributed in proportion\n\t */\n\tminWidth: {\n\t\ttype: [String, Number],\n\t\tdefault: \"\",\n\t},\n\t/**\n\t * @description render function for table header of this column\n\t */\n\trenderHeader: Function as PropType<TableColumnCtx<DefaultRow>[\"renderHeader\"]>,\n\t/**\n\t * @description whether column can be sorted. Remote sorting can be done by setting this attribute to 'custom' and listening to the `sort-change` event of Table\n\t */\n\tsortable: {\n\t\ttype: [Boolean, String],\n\t\tdefault: false,\n\t},\n\t/**\n\t * @description sorting method, works when `sortable` is `true`. Should return a number, just like Array.sort\n\t */\n\tsortMethod: Function as PropType<TableColumnCtx<DefaultRow>[\"sortMethod\"]>,\n\t/**\n\t * @description specify which property to sort by, works when `sortable` is `true` and `sort-method` is `undefined`. If set to an Array, the column will sequentially sort by the next property if the previous one is equal\n\t */\n\tsortBy: [String, Function, Array] as PropType<TableColumnCtx<DefaultRow>[\"sortBy\"]>,\n\t/**\n\t * @description whether column width can be resized, works when `border` of `el-table` is `true`\n\t */\n\tresizable: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/**\n\t * @description column's key. If you need to use the filter-change event, you need this attribute to identify which column is being filtered\n\t */\n\tcolumnKey: String,\n\t/**\n\t * @description alignment, the value should be 'left' \\/ 'center' \\/ 'right'\n\t */\n\talign: String,\n\t/**\n\t * @description alignment of the table header. If omitted, the value of the above `align` attribute will be applied, the value should be 'left' \\/ 'center' \\/ 'right'\n\t */\n\theaderAlign: String,\n\t/**\n\t * @description whether to hide extra content and show them in a tooltip when hovering on the cell\n\t */\n\tshowOverflowTooltip: {\n\t\ttype: [Boolean, Object] as PropType<TableColumnCtx<DefaultRow>[\"showOverflowTooltip\"]>,\n\t\tdefault: undefined,\n\t},\n\t/**\n\t * @description whether column is fixed at left / right. Will be fixed at left if `true`\n\t */\n\tfixed: [Boolean, String],\n\t/**\n\t * @description function that formats cell content\n\t */\n\tformatter: Function as PropType<TableColumnCtx<DefaultRow>[\"formatter\"]>,\n\t/**\n\t * @description function that determines if a certain row can be selected, works when `type` is 'selection'\n\t */\n\tselectable: Function as PropType<TableColumnCtx<DefaultRow>[\"selectable\"]>,\n\t/**\n\t * @description whether to reserve selection after data refreshing, works when `type` is 'selection'. Note that `row-key` is required for this to work\n\t */\n\treserveSelection: Boolean,\n\t/**\n\t * @description data filtering method. If `filter-multiple` is on, this method will be called multiple times for each row, and a row will display if one of the calls returns `true`\n\t */\n\tfilterMethod: Function as PropType<TableColumnCtx<DefaultRow>[\"filterMethod\"]>,\n\t/**\n\t * @description filter value for selected data, might be useful when table header is rendered with `render-header`\n\t */\n\tfilteredValue: Array as PropType<TableColumnCtx<DefaultRow>[\"filteredValue\"]>,\n\t/**\n\t * @description an array of data filtering options. For each element in this array, `text` and `value` are required\n\t */\n\tfilters: Array as PropType<TableColumnCtx<DefaultRow>[\"filters\"]>,\n\t/**\n\t * @description placement for the filter dropdown\n\t */\n\tfilterPlacement: String,\n\t/**\n\t * @description whether data filtering supports multiple options\n\t */\n\tfilterMultiple: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/**\n\t * @description className for the filter dropdown\n\t */\n\tfilterClassName: String,\n\t/**\n\t * @description customize indices for each row, works on columns with `type=index`\n\t */\n\tindex: [Number, Function] as PropType<TableColumnCtx<DefaultRow>[\"index\"]>,\n\t/**\n\t * @description the order of the sorting strategies used when sorting the data, works when `sortable` is `true`. Accepts an array, as the user clicks on the header, the column is sorted in order of the elements in the array\n\t */\n\tsortOrders: {\n\t\ttype: Array as PropType<TableColumnCtx<DefaultRow>[\"sortOrders\"]>,\n\t\tdefault: (): TableColumnCtx<DefaultRow>[\"sortOrders\"] => {\n\t\t\treturn [\"ascending\", \"descending\", null];\n\t\t},\n\t\tvalidator: (val: TableColumnCtx<unknown>[\"sortOrders\"]): boolean => {\n\t\t\treturn val.every((order: string) => [\"ascending\", \"descending\", null].includes(order));\n\t\t},\n\t},\n};\n\ntype FaTableColumnSlotsResult = {\n\t/** @description slots为表格内容的时候才会返回 */\n\trow?: any;\n\t/** @description slot为表头内容的时候返回 'TableColumnCtx<any>' 否则返回 'FaTableColumnCtx' */\n\tcolumn?: TableColumnCtx<any> | FaTableColumnCtx;\n\t$index?: number;\n};\n\ntype FaTableColumnDefaultSlots = {\n\t[key: string]: FaTableDefaultSlotsResult & FaTableColumnSlotsResult;\n};\n\ntype FaTableColumnSlots = {\n\t/** @description 默认内容插槽 */\n\tdefault: FaTableDefaultSlotsResult & { row: any; column: FaTableColumnCtx; $index: number };\n\t/** @description 自定义表头的内容 */\n\theader: FaTableDefaultSlotsResult & { column: FaTableColumnCtx; $index: number };\n\t/** @description 自定义 filter 图标 */\n\tfilterIcon: FaTableDefaultSlotsResult & { filterOpened: boolean };\n} & FaTableColumnDefaultSlots;\n\nexport default defineComponent({\n\tname: \"FaTableColumn\",\n\tprops: {\n\t\t...tableColumnProps,\n\t\t/**\n\t\t * @description type of the column. If set to `selection`, the column will display checkbox. If set to `index`, the column will display index of the row (staring from 1). If set to `expand`, the column will display expand icon\n\t\t */\n\t\ttype: {\n\t\t\ttype: definePropType<FaTableColumnType>(String),\n\t\t\tdefault: \"default\",\n\t\t},\n\t\t/**\n\t\t * @description column width\n\t\t */\n\t\twidth: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: \"auto\",\n\t\t},\n\t\t/** @description alignment, the value should be 'left' \\/ 'center' \\/ 'right' */\n\t\talign: {\n\t\t\ttype: String,\n\t\t\tdefault: \"left\",\n\t\t},\n\t\t/** @description alignment of the table header. If omitted, the value of the above `align` attribute will be applied, the value should be 'left' \\/ 'center' \\/ 'right' */\n\t\theaderAlign: {\n\t\t\ttype: String,\n\t\t\tdefault: \"left\",\n\t\t},\n\t\t/** @description 是否显示在表格当中 */\n\t\tshow: Boolean,\n\t\t/** @description 小页面的宽度,如果为空,则继承默认宽度 */\n\t\tsmallWidth: {\n\t\t\ttype: [String, Number],\n\t\t},\n\t\t/** @description 自适应宽度 */\n\t\tautoWidth: Boolean,\n\t\t/** @description 插槽名称 */\n\t\tslot: String,\n\t\t/** @description 表格头部插槽名称 */\n\t\theaderSlot: String,\n\t\t/** @description 自定义表头内容渲染(tsx语法) */\n\t\theaderRender: {\n\t\t\ttype: definePropType<({ column, $index }: { column: TableColumnCtx<any>; $index: number } & FaTableDefaultSlotsResult) => VNode[]>(\n\t\t\t\tFunction\n\t\t\t),\n\t\t},\n\t\t/** @description 自定义单元格内容渲染(tsx语法) */\n\t\trender: {\n\t\t\ttype: definePropType<\n\t\t\t\t({ row, column, $index }: { row: any; column: FaTableColumnCtx; $index: number } & FaTableDefaultSlotsResult) => VNode[]\n\t\t\t>(Function),\n\t\t},\n\t\t/** @description 多级表头 */\n\t\t_children: {\n\t\t\ttype: definePropType<FaTableColumnCtx[]>(Array),\n\t\t},\n\t\t/** @description 复制 */\n\t\tcopy: Boolean,\n\t\t/** @description 是否为 Link Button */\n\t\tlink: Boolean,\n\t\t/** @description 合并行字段 */\n\t\tspanProp: String,\n\t\t/** @description Link 按钮的点击事件,优先级最高 */\n\t\tclick: {\n\t\t\ttype: definePropType<({ row, $index }: { row: any; $index?: number }) => void>(Function),\n\t\t},\n\t\t/** @description 点击Emits事件回调 */\n\t\tclickEmit: String,\n\t\t/** @description 显示时间格式化字符串 */\n\t\tdateFix: Boolean,\n\t\t/** @description 显示在页面中的日期格式 */\n\t\tdateFormat: {\n\t\t\ttype: definePropType<FaTableColumnDateFormat>(String),\n\t\t},\n\t\t/** @description 是否是标签展示 */\n\t\ttag: Boolean,\n\t\t/** @description 枚举类型(渲染值的字典) */\n\t\tenum: {\n\t\t\ttype: definePropType<FaTableEnumColumnType>([Array, Function]),\n\t\t},\n\t\t/** @description 数据删除字段,如果为 true 会显示遮罩层 */\n\t\tdataDeleteField: String,\n\t\t/** @description 制单信息计算 */\n\t\tsubmitInfoField: {\n\t\t\ttype: definePropType<{ submitClerkName?: string; submitTime?: string }>(Object),\n\t\t\tdefault: () => ({\n\t\t\t\tsubmitClerkName: \"submitClerkName\",\n\t\t\t\tsubmitTime: \"submitTime\",\n\t\t\t}),\n\t\t},\n\t},\n\temits: {\n\t\t/** @description 图片预览 */\n\t\timagePreview: (url: string): boolean => isString(url),\n\t\t/** @description 自定义单元格点击事件 */\n\t\tcustomCellClick: (emitName: string, { row, column, $index }: { row: any; column: FaTableColumnCtx; $index: number }): boolean =>\n\t\t\tisString(emitName) && isObject(row) && isObject(column) && isNumber($index),\n\t},\n\tslots: makeSlots<FaTableColumnSlots>(),\n\tsetup(props, { slots, emit }) {\n\t\tconst _globalSize = useGlobalSize();\n\t\tconst tableState = inject(tableStateKey);\n\t\tconst enumMap = inject(enumMapKey);\n\n\t\tconst columnCtx = computed(() => props as unknown as FaTableColumnCtx);\n\n\t\tconst renderCellData = ({ row }: { row: any }): any => {\n\t\t\tlet enumKey = props.prop;\n\t\t\tif (isString(props.enum)) {\n\t\t\t\tenumKey = props.enum;\n\t\t\t}\n\t\t\tconst enumData = enumMap.get(enumKey);\n\t\t\tif (enumData) {\n\t\t\t\treturn tableUtil.filterEnum(tableUtil.handleRowAccordingToProp(row, props.prop), enumData);\n\t\t\t} else {\n\t\t\t\treturn tableUtil.formatValue(tableUtil.handleRowAccordingToProp(row, props.prop));\n\t\t\t}\n\t\t};\n\n\t\tconst getTagType = ({ row }: { row: any }): any => {\n\t\t\tlet enumKey = props.prop;\n\t\t\tif (isString(props.enum)) {\n\t\t\t\tenumKey = props.enum;\n\t\t\t}\n\t\t\tconst enumData = enumMap.get(enumKey);\n\t\t\treturn tableUtil.filterEnum(tableUtil.handleRowAccordingToProp(row, props.prop), enumData, null, \"tag\") as any;\n\t\t};\n\n\t\tconst getWidth = (defAttr: string): string | number => {\n\t\t\tif (props.autoWidth) {\n\t\t\t\treturn computed(() => {\n\t\t\t\t\tconst findInfo = tableState.autoColumnWidth.find((f) => f.prop === props.prop);\n\t\t\t\t\tif (findInfo) {\n\t\t\t\t\t\treturn `${findInfo.width}px`;\n\t\t\t\t\t}\n\t\t\t\t\treturn \"auto\";\n\t\t\t\t}).value;\n\t\t\t}\n\t\t\tif (_globalSize.value === \"small\") {\n\t\t\t\treturn props.smallWidth ?? props.width ?? props.minWidth ?? defAttr ?? \"auto\";\n\t\t\t}\n\t\t\treturn props.width ?? props.minWidth ?? defAttr ?? \"auto\";\n\t\t};\n\n\t\tconst autoWidthHeaderRender = (el: VNode[]): VNode[] => {\n\t\t\tif (props.autoWidth) {\n\t\t\t\treturn (\n\t\t\t\t\t<div class={[\"fa-table__auto-width-column__cell-header\", `__fa-table__auto-width-column__cell-header__${props.prop}`]}>{el}</div>\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\treturn el;\n\t\t\t}\n\t\t};\n\n\t\tconst headerRender = ({ column, $index }: { column: TableColumnCtx<any>; $index: number }): VNode[] => {\n\t\t\tif (props.headerRender) {\n\t\t\t\treturn autoWidthHeaderRender(props.headerRender({ column, $index, ...getTableDefaultSlots(tableState) }));\n\t\t\t} else if (props.headerSlot) {\n\t\t\t\treturn autoWidthHeaderRender(\n\t\t\t\t\tslots[props.headerSlot] && slots[props.headerSlot]({ column, $index, ...getTableDefaultSlots(tableState) })\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\treturn autoWidthHeaderRender(<span>{props.label}</span>);\n\t\t\t}\n\t\t};\n\n\t\tconst autoWidthRender = (el: VNode[]): VNode[] => {\n\t\t\tif (props.autoWidth) {\n\t\t\t\treturn <div class={[\"fa-table__auto-width-column__cell\", `__fa-table__auto-width-column__cell__${props.prop}`]}>{el}</div>;\n\t\t\t} else {\n\t\t\t\treturn el;\n\t\t\t}\n\t\t};\n\n\t\tconst handleCopyClick = async (value): Promise<void> => {\n\t\t\ttry {\n\t\t\t\tawait stringUtil.copy(String(value));\n\t\t\t\tElMessage({\n\t\t\t\t\ttype: \"success\",\n\t\t\t\t\tmessage: \"复制成功\",\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tconsoleError(\"FaTableColumn\", error);\n\t\t\t\tElMessage({\n\t\t\t\t\ttype: \"error\",\n\t\t\t\t\tmessage: \"复制失败\",\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\tconst copyRender = (value, copy?: boolean): VNode[] => {\n\t\t\treturn (\n\t\t\t\t(props.copy || copy) &&\n\t\t\t\tvalue && (\n\t\t\t\t\t<ElIcon class=\"fa__copy-icon\" title=\"复制\" onClick={() => handleCopyClick(value)}>\n\t\t\t\t\t\t<CopyDocument />\n\t\t\t\t\t</ElIcon>\n\t\t\t\t)\n\t\t\t);\n\t\t};\n\n\t\tconst formatterRender = (row: any, column: TableColumnCtx<any>, cellValue: any, index: number): any => {\n\t\t\tif (column.formatter) {\n\t\t\t\treturn column.formatter(row, column, cellValue, index);\n\t\t\t} else {\n\t\t\t\treturn cellValue;\n\t\t\t}\n\t\t};\n\n\t\tconst defaultRender = ({ row, column, $index }: { row: any; column: TableColumnCtx<any>; $index: number }): VNode[] => {\n\t\t\tif (props.type === \"submitInfo\") {\n\t\t\t\tconst submitClerkName = row[props.submitInfoField?.submitClerkName ?? \"submitClerkName\"];\n\t\t\t\tconst submitTime = row[props.submitInfoField?.submitTime ?? \"submitTime\"];\n\t\t\t\treturn (\n\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t<div style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\" title={submitTime}>\n\t\t\t\t\t\t\t{submitClerkName && <span style=\"margin-right: 5px;\">{submitClerkName}</span>}\n\t\t\t\t\t\t\t<span>{submitTime}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{submitTime && (\n\t\t\t\t\t\t\t<ElTag type=\"info\" round effect=\"light\" size=\"small\">\n\t\t\t\t\t\t\t\t{dateUtil.dateTimeFix(String(submitTime))}\n\t\t\t\t\t\t\t</ElTag>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\n\t\t\t} else if (props.tag) {\n\t\t\t\tconst renderValue = formatterRender(row, column, renderCellData({ row }), $index);\n\t\t\t\treturn (\n\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t{copyRender(renderValue)}\n\t\t\t\t\t\t{renderValue ? <ElTag type={getTagType({ row })}>{renderValue}</ElTag> : null}\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\n\t\t\t} else if (props.type === \"date\" || props.type === \"time\" || props.type === \"dateTime\") {\n\t\t\t\tlet dateFormat;\n\t\t\t\tswitch (props.type) {\n\t\t\t\t\tcase \"date\":\n\t\t\t\t\t\tdateFormat = \"YYYY-MM-DD\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"time\":\n\t\t\t\t\t\tdateFormat = \"HH:mm:ss\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"dateTime\":\n\t\t\t\t\t\tdateFormat = \"YYYY-MM-DD HH:mm:ss\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tconst renderValue = row[props.prop]\n\t\t\t\t\t? formatterRender(row, column, dayjs(row[props.prop]).format(props.dateFormat ?? dateFormat), $index)\n\t\t\t\t\t: null;\n\t\t\t\treturn (\n\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t{copyRender(renderValue)}\n\t\t\t\t\t\t{renderValue}\n\t\t\t\t\t\t{props.dateFix && renderValue && (\n\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t<ElTag type=\"info\" round effect=\"light\" size=\"small\">\n\t\t\t\t\t\t\t\t\t{dateUtil.dateTimeFix(String(renderValue))}\n\t\t\t\t\t\t\t\t</ElTag>\n\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\n\t\t\t} else if (\n\t\t\t\tprops.type === \"d2\" ||\n\t\t\t\tprops.type === \"d4\" ||\n\t\t\t\tprops.type === \"d6\" ||\n\t\t\t\tprops.type === \"gd2\" ||\n\t\t\t\tprops.type === \"gd4\" ||\n\t\t\t\tprops.type === \"gd6\"\n\t\t\t) {\n\t\t\t\tconst renderValue = row[props.prop];\n\t\t\t\tif (renderValue) {\n\t\t\t\t\tif (isNumber(renderValue)) {\n\t\t\t\t\t\tlet useGrouping = false;\n\t\t\t\t\t\tlet maximumFractionDigits: number;\n\t\t\t\t\t\tswitch (props.type) {\n\t\t\t\t\t\t\tcase \"d2\":\n\t\t\t\t\t\t\t\tmaximumFractionDigits = 2;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"d4\":\n\t\t\t\t\t\t\t\tmaximumFractionDigits = 4;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"d6\":\n\t\t\t\t\t\t\t\tmaximumFractionDigits = 6;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"gd2\":\n\t\t\t\t\t\t\t\tmaximumFractionDigits = 2;\n\t\t\t\t\t\t\t\tuseGrouping = true;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"gd4\":\n\t\t\t\t\t\t\t\tmaximumFractionDigits = 4;\n\t\t\t\t\t\t\t\tuseGrouping = true;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"gd6\":\n\t\t\t\t\t\t\t\tmaximumFractionDigits = 6;\n\t\t\t\t\t\t\t\tuseGrouping = true;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn renderValue.toLocaleString(\"zh-CN\", {\n\t\t\t\t\t\t\tminimumFractionDigits: 2,\n\t\t\t\t\t\t\tmaximumFractionDigits,\n\t\t\t\t\t\t\tuseGrouping,\n\t\t\t\t\t\t}) as any;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn renderValue;\n\t\t\t} else if (props.link) {\n\t\t\t\tconst renderValue = formatterRender(row, column, row[props.prop], $index);\n\t\t\t\treturn autoWidthRender(\n\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t{copyRender(renderValue)}\n\t\t\t\t\t\t{renderValue && (\n\t\t\t\t\t\t\t<ElText\n\t\t\t\t\t\t\t\tclass={\"el-link is-hover-underline fa-table__link-column__text\"}\n\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t// 数据删除拦截点击\n\t\t\t\t\t\t\t\t\tif (props.dataDeleteField && row[props.dataDeleteField] === true) return;\n\t\t\t\t\t\t\t\t\tif (props.click) {\n\t\t\t\t\t\t\t\t\t\tprops.click({ row, $index });\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\temit(\"customCellClick\", props.clickEmit, {\n\t\t\t\t\t\t\t\t\t\t\trow,\n\t\t\t\t\t\t\t\t\t\t\tcolumn: columnCtx.value,\n\t\t\t\t\t\t\t\t\t\t\t$index,\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{renderValue}\n\t\t\t\t\t\t\t</ElText>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\n\t\t\t} else if (props.render) {\n\t\t\t\treturn autoWidthRender(props.render({ row, column: columnCtx.value, $index, ...getTableDefaultSlots(tableState) }));\n\t\t\t} else if (props.slot) {\n\t\t\t\treturn autoWidthRender(\n\t\t\t\t\tslots[props.slot] && slots[props.slot]({ row, column: columnCtx.value, $index, ...getTableDefaultSlots(tableState) })\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tconst renderValue = formatterRender(row, column, row[props.prop], $index);\n\t\t\t\treturn autoWidthRender(\n\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t{copyRender(renderValue)}\n\t\t\t\t\t\t{renderValue}\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\n\t\tlet elTableColumnProps: ComputedRef<TableColumnCtx<any>> = useProps(props, tableColumnProps, [\n\t\t\t\"type\",\n\t\t\t\"width\",\n\t\t\t\"minWidth\",\n\t\t\t\"sortable\",\n\t\t\t\"sortOrders\",\n\t\t\t\"resizable\",\n\t\t\t\"showOverflowTooltip\",\n\t\t]) as unknown as ComputedRef<TableColumnCtx<any>>;\n\n\t\twatch(\n\t\t\t() => props,\n\t\t\t() => {\n\t\t\t\telTableColumnProps = useProps(props, tableColumnProps, [\n\t\t\t\t\t\"type\",\n\t\t\t\t\t\"minWidth\",\n\t\t\t\t\t\"sortable\",\n\t\t\t\t\t\"sortOrders\",\n\t\t\t\t\t\"resizable\",\n\t\t\t\t\t\"showOverflowTooltip\",\n\t\t\t\t]) as unknown as ComputedRef<TableColumnCtx<any>>;\n\t\t\t}\n\t\t);\n\n\t\tuseRender(() => (\n\t\t\t<Fragment>\n\t\t\t\t{\n\t\t\t\t\t// 如果有配置多级表头的数据,则递归该组件\n\t\t\t\t\tprops._children?.length ? (\n\t\t\t\t\t\t<ElTableColumn\n\t\t\t\t\t\t\t{...elTableColumnProps.value}\n\t\t\t\t\t\t\tminWidth={getWidth(\"auto\")}\n\t\t\t\t\t\t\tsortable={props.sortable ? \"custom\" : false}\n\t\t\t\t\t\t\tsortOrders={props.sortOrders ?? [\"descending\", \"ascending\", null]}\n\t\t\t\t\t\t\tresizable={props.resizable && !props.autoWidth}\n\t\t\t\t\t\t\tshowOverflowTooltip={(props.showOverflowTooltip ?? true) && !props.autoWidth && !props.type}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\theader: ({ column, $index }: { column: TableColumnCtx<any>; $index: number }) => headerRender({ column, $index }),\n\t\t\t\t\t\t\t\tdefault: () =>\n\t\t\t\t\t\t\t\t\tprops._children.map((col: FaTableColumnCtx) =>\n\t\t\t\t\t\t\t\t\t\th(\n\t\t\t\t\t\t\t\t\t\t\tresolveComponent(\"FaTableColumn\"),\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t...col,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tslots\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t) : props.type === \"image\" ? (\n\t\t\t\t\t\t<ElTableColumn\n\t\t\t\t\t\t\t{...elTableColumnProps.value}\n\t\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\t\tclassName=\"fa-table__image-column\"\n\t\t\t\t\t\t\tminWidth=\"50px\"\n\t\t\t\t\t\t\tsortable={false}\n\t\t\t\t\t\t\tresizable={false}\n\t\t\t\t\t\t\tshowOverflowTooltip={false}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\theader: ({ column, $index }: { column: TableColumnCtx<any>; $index: number }) => headerRender({ column, $index }),\n\t\t\t\t\t\t\t\tdefault: ({ row }: { row: any; column: TableColumnCtx<any>; $index: number }) =>\n\t\t\t\t\t\t\t\t\trow[props.prop] ? (\n\t\t\t\t\t\t\t\t\t\ttableState.hideImage ? (\n\t\t\t\t\t\t\t\t\t\t\t<ElImage\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"fa-image\"\n\t\t\t\t\t\t\t\t\t\t\t\tlazy\n\t\t\t\t\t\t\t\t\t\t\t\tsrc={artwork}\n\t\t\t\t\t\t\t\t\t\t\t\tfit=\"cover\"\n\t\t\t\t\t\t\t\t\t\t\t\tpreviewSrcList={[row[props.prop]]}\n\t\t\t\t\t\t\t\t\t\t\t\tcloseOnPressEscape\n\t\t\t\t\t\t\t\t\t\t\t\thideOnClickModal\n\t\t\t\t\t\t\t\t\t\t\t\tpreviewTeleported\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t<FaImage lazy src={row[props.prop]} fit=\"cover\" thumb />\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<ElImage class=\"fa-image\" lazy src={notImage} fit=\"cover\" />\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t// 其他正常的列\n\t\t\t\t\t\t<ElTableColumn\n\t\t\t\t\t\t\t{...elTableColumnProps.value}\n\t\t\t\t\t\t\tminWidth={getWidth(\"auto\")}\n\t\t\t\t\t\t\tsortable={props.sortable ? \"custom\" : false}\n\t\t\t\t\t\t\tsortOrders={props.sortOrders ?? [\"descending\", \"ascending\", null]}\n\t\t\t\t\t\t\tresizable={props.resizable && !props.autoWidth}\n\t\t\t\t\t\t\tshowOverflowTooltip={(props.showOverflowTooltip ?? true) && !props.autoWidth && !props.type}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\theader: ({ column, $index }: { column: TableColumnCtx<any>; $index: number }) => headerRender({ column, $index }),\n\t\t\t\t\t\t\t\tdefault: ({ row, column, $index }: { row: any; column: TableColumnCtx<any>; $index: number }) =>\n\t\t\t\t\t\t\t\t\tdefaultRender({ row, column, $index }),\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t</Fragment>\n\t\t));\n\t},\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","tableColumnProps","type","String","default","label","className","labelClassName","property","prop","width","Number","minWidth","renderHeader","Function","sortable","Boolean","sortMethod","sortBy","Array","resizable","columnKey","align","headerAlign","showOverflowTooltip","undefined","fixed","formatter","selectable","reserveSelection","filterMethod","filteredValue","filters","filterPlacement","filterMultiple","filterClassName","index","sortOrders","validator","val","every","order","includes","TableColumn","name","props","definePropType","show","smallWidth","autoWidth","slot","headerSlot","headerRender","render","_children","copy","link","spanProp","click","clickEmit","dateFix","dateFormat","tag","enum","dataDeleteField","submitInfoField","submitClerkName","submitTime","emits","imagePreview","url","isString","customCellClick","emitName","row","column","$index","isObject","isNumber","slots","makeSlots","setup","emit","_globalSize","useGlobalSize","tableState","inject","tableStateKey","enumMap","enumMapKey","columnCtx","computed","getTagType","enumKey","enumData","get","tableUtil","filterEnum","handleRowAccordingToProp","getWidth","defAttr","findInfo","autoColumnWidth","find","f","value","autoWidthHeaderRender","el","_createVNode","class","getTableDefaultSlots","autoWidthRender","copyRender","ElIcon","title","onClick","async","stringUtil","ElMessage","message","error","consoleError","handleCopyClick","CopyDocument","formatterRender","cellValue","defaultRender","_slot","_Fragment","style","ElTag","round","effect","size","dateUtil","dateTimeFix","renderValue","renderCellData","formatValue","_slot2","dayjs","format","maximumFractionDigits","useGrouping","toLocaleString","minimumFractionDigits","ElText","elTableColumnProps","useProps","watch","useRender","length","ElTableColumn","_mergeProps","header","map","col","h","resolveComponent","hideImage","ElImage","lazy","src","artwork","fit","previewSrcList","closeOnPressEscape","hideOnClickModal","previewTeleported","FaImage","thumb","notImage"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tableColumn.js","sources":["../../../../../packages/components/table/src/tableColumn.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, h, inject, resolveComponent, watch } from \"vue\";\nimport { ElIcon, ElImage, ElMessage, ElTableColumn, ElTag, ElText, dayjs, useGlobalSize } from \"element-plus\";\nimport { CopyDocument } from \"@element-plus/icons-vue\";\nimport FaImage from \"@fast-element-plus/components/image\";\nimport { consoleError, dateUtil, definePropType, makeSlots, stringUtil, useProps, useRender } from \"@fast-china/utils\";\nimport { isNumber, isObject, isString } from \"lodash-unified\";\nimport artwork from \"../images/artwork.png\";\nimport notImage from \"../images/notImage.png\";\nimport { tableUtil } from \"../utils/table\";\nimport { getTableDefaultSlots } from \"./table.type\";\nimport { enumMapKey, tableStateKey } from \"./useTable\";\nimport type { FaTableColumnCtx, FaTableColumnDateFormat, FaTableColumnType, FaTableDefaultSlotsResult, FaTableEnumColumnType } from \"./table.type\";\nimport type { TableColumnCtx } from \"element-plus\";\nimport type { ComputedRef, PropType, VNode } from \"vue\";\n\ntype DefaultRow = any;\n\nexport const tableColumnProps = {\n\t/**\n\t * @description type of the column. If set to `selection`, the column will display checkbox. If set to `index`, the column will display index of the row (staring from 1). If set to `expand`, the column will display expand icon\n\t */\n\ttype: {\n\t\ttype: String,\n\t\tdefault: \"default\",\n\t},\n\t/**\n\t * @description column label\n\t */\n\tlabel: String,\n\t/**\n\t * @description class name of cells in the column\n\t */\n\tclassName: String,\n\t/**\n\t * @description class name of the label of this column\n\t */\n\tlabelClassName: String,\n\t/**\n\t * @description\n\t */\n\tproperty: String,\n\t/**\n\t * @description field name. You can also use its alias: `property`\n\t */\n\tprop: String,\n\t/**\n\t * @description column width\n\t */\n\twidth: {\n\t\ttype: [String, Number],\n\t\tdefault: \"\",\n\t},\n\t/**\n\t * @description column minimum width. Columns with `width` has a fixed width, while columns with `min-width` has a width that is distributed in proportion\n\t */\n\tminWidth: {\n\t\ttype: [String, Number],\n\t\tdefault: \"\",\n\t},\n\t/**\n\t * @description render function for table header of this column\n\t */\n\trenderHeader: Function as PropType<TableColumnCtx<DefaultRow>[\"renderHeader\"]>,\n\t/**\n\t * @description whether column can be sorted. Remote sorting can be done by setting this attribute to 'custom' and listening to the `sort-change` event of Table\n\t */\n\tsortable: {\n\t\ttype: [Boolean, String],\n\t\tdefault: false,\n\t},\n\t/**\n\t * @description sorting method, works when `sortable` is `true`. Should return a number, just like Array.sort\n\t */\n\tsortMethod: Function as PropType<TableColumnCtx<DefaultRow>[\"sortMethod\"]>,\n\t/**\n\t * @description specify which property to sort by, works when `sortable` is `true` and `sort-method` is `undefined`. If set to an Array, the column will sequentially sort by the next property if the previous one is equal\n\t */\n\tsortBy: [String, Function, Array] as PropType<TableColumnCtx<DefaultRow>[\"sortBy\"]>,\n\t/**\n\t * @description whether column width can be resized, works when `border` of `el-table` is `true`\n\t */\n\tresizable: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/**\n\t * @description column's key. If you need to use the filter-change event, you need this attribute to identify which column is being filtered\n\t */\n\tcolumnKey: String,\n\t/**\n\t * @description alignment, the value should be 'left' \\/ 'center' \\/ 'right'\n\t */\n\talign: String,\n\t/**\n\t * @description alignment of the table header. If omitted, the value of the above `align` attribute will be applied, the value should be 'left' \\/ 'center' \\/ 'right'\n\t */\n\theaderAlign: String,\n\t/**\n\t * @description whether to hide extra content and show them in a tooltip when hovering on the cell\n\t */\n\tshowOverflowTooltip: {\n\t\ttype: [Boolean, Object] as PropType<TableColumnCtx<DefaultRow>[\"showOverflowTooltip\"]>,\n\t\tdefault: undefined,\n\t},\n\t/**\n\t * @description whether column is fixed at left / right. Will be fixed at left if `true`\n\t */\n\tfixed: [Boolean, String],\n\t/**\n\t * @description function that formats cell content\n\t */\n\tformatter: Function as PropType<TableColumnCtx<DefaultRow>[\"formatter\"]>,\n\t/**\n\t * @description function that determines if a certain row can be selected, works when `type` is 'selection'\n\t */\n\tselectable: Function as PropType<TableColumnCtx<DefaultRow>[\"selectable\"]>,\n\t/**\n\t * @description whether to reserve selection after data refreshing, works when `type` is 'selection'. Note that `row-key` is required for this to work\n\t */\n\treserveSelection: Boolean,\n\t/**\n\t * @description data filtering method. If `filter-multiple` is on, this method will be called multiple times for each row, and a row will display if one of the calls returns `true`\n\t */\n\tfilterMethod: Function as PropType<TableColumnCtx<DefaultRow>[\"filterMethod\"]>,\n\t/**\n\t * @description filter value for selected data, might be useful when table header is rendered with `render-header`\n\t */\n\tfilteredValue: Array as PropType<TableColumnCtx<DefaultRow>[\"filteredValue\"]>,\n\t/**\n\t * @description an array of data filtering options. For each element in this array, `text` and `value` are required\n\t */\n\tfilters: Array as PropType<TableColumnCtx<DefaultRow>[\"filters\"]>,\n\t/**\n\t * @description placement for the filter dropdown\n\t */\n\tfilterPlacement: String,\n\t/**\n\t * @description whether data filtering supports multiple options\n\t */\n\tfilterMultiple: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/**\n\t * @description className for the filter dropdown\n\t */\n\tfilterClassName: String,\n\t/**\n\t * @description customize indices for each row, works on columns with `type=index`\n\t */\n\tindex: [Number, Function] as PropType<TableColumnCtx<DefaultRow>[\"index\"]>,\n\t/**\n\t * @description the order of the sorting strategies used when sorting the data, works when `sortable` is `true`. Accepts an array, as the user clicks on the header, the column is sorted in order of the elements in the array\n\t */\n\tsortOrders: {\n\t\ttype: Array as PropType<TableColumnCtx<DefaultRow>[\"sortOrders\"]>,\n\t\tdefault: (): TableColumnCtx<DefaultRow>[\"sortOrders\"] => {\n\t\t\treturn [\"ascending\", \"descending\", null];\n\t\t},\n\t\tvalidator: (val: TableColumnCtx<unknown>[\"sortOrders\"]): boolean => {\n\t\t\treturn val.every((order: string) => [\"ascending\", \"descending\", null].includes(order));\n\t\t},\n\t},\n};\n\ntype FaTableColumnSlotsResult = {\n\t/** @description slots为表格内容的时候才会返回 */\n\trow?: any;\n\t/** @description slot为表头内容的时候返回 'TableColumnCtx<any>' 否则返回 'FaTableColumnCtx' */\n\tcolumn?: TableColumnCtx<any> | FaTableColumnCtx;\n\t$index?: number;\n};\n\ntype FaTableColumnDefaultSlots = {\n\t[key: string]: FaTableDefaultSlotsResult & FaTableColumnSlotsResult;\n};\n\ntype FaTableColumnSlots = {\n\t/** @description 默认内容插槽 */\n\tdefault: FaTableDefaultSlotsResult & { row: any; column: FaTableColumnCtx; $index: number };\n\t/** @description 自定义表头的内容 */\n\theader: FaTableDefaultSlotsResult & { column: FaTableColumnCtx; $index: number };\n\t/** @description 自定义 filter 图标 */\n\tfilterIcon: FaTableDefaultSlotsResult & { filterOpened: boolean };\n} & FaTableColumnDefaultSlots;\n\nexport default defineComponent({\n\tname: \"FaTableColumn\",\n\tprops: {\n\t\t...tableColumnProps,\n\t\t/**\n\t\t * @description type of the column. If set to `selection`, the column will display checkbox. If set to `index`, the column will display index of the row (staring from 1). If set to `expand`, the column will display expand icon\n\t\t */\n\t\ttype: {\n\t\t\ttype: definePropType<FaTableColumnType>(String),\n\t\t\tdefault: \"default\",\n\t\t},\n\t\t/**\n\t\t * @description column width\n\t\t */\n\t\twidth: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: \"auto\",\n\t\t},\n\t\t/** @description alignment, the value should be 'left' \\/ 'center' \\/ 'right' */\n\t\talign: {\n\t\t\ttype: String,\n\t\t\tdefault: \"left\",\n\t\t},\n\t\t/** @description alignment of the table header. If omitted, the value of the above `align` attribute will be applied, the value should be 'left' \\/ 'center' \\/ 'right' */\n\t\theaderAlign: {\n\t\t\ttype: String,\n\t\t\tdefault: \"left\",\n\t\t},\n\t\t/** @description 是否显示在表格当中 */\n\t\tshow: Boolean,\n\t\t/** @description 小页面的宽度,如果为空,则继承默认宽度 */\n\t\tsmallWidth: {\n\t\t\ttype: [String, Number],\n\t\t},\n\t\t/** @description 自适应宽度 */\n\t\tautoWidth: Boolean,\n\t\t/** @description 插槽名称 */\n\t\tslot: String,\n\t\t/** @description 表格头部插槽名称 */\n\t\theaderSlot: String,\n\t\t/** @description 自定义表头内容渲染(tsx语法) */\n\t\theaderRender: {\n\t\t\ttype: definePropType<({ column, $index }: { column: TableColumnCtx<any>; $index: number } & FaTableDefaultSlotsResult) => VNode[]>(\n\t\t\t\tFunction\n\t\t\t),\n\t\t},\n\t\t/** @description 自定义单元格内容渲染(tsx语法) */\n\t\trender: {\n\t\t\ttype: definePropType<\n\t\t\t\t({ row, column, $index }: { row: any; column: FaTableColumnCtx; $index: number } & FaTableDefaultSlotsResult) => VNode[]\n\t\t\t>(Function),\n\t\t},\n\t\t/** @description 多级表头 */\n\t\t_children: {\n\t\t\ttype: definePropType<FaTableColumnCtx[]>(Array),\n\t\t},\n\t\t/** @description 复制 */\n\t\tcopy: Boolean,\n\t\t/** @description 是否为 Link Button */\n\t\tlink: Boolean,\n\t\t/** @description 合并行字段 */\n\t\tspanProp: String,\n\t\t/** @description Link 按钮的点击事件,优先级最高 */\n\t\tclick: {\n\t\t\ttype: definePropType<({ row, $index }: { row: any; $index?: number }) => void>(Function),\n\t\t},\n\t\t/** @description 点击Emits事件回调 */\n\t\tclickEmit: String,\n\t\t/** @description 显示时间格式化字符串 */\n\t\tdateFix: Boolean,\n\t\t/** @description 显示在页面中的日期格式 */\n\t\tdateFormat: {\n\t\t\ttype: definePropType<FaTableColumnDateFormat>(String),\n\t\t},\n\t\t/** @description 是否是标签展示 */\n\t\ttag: Boolean,\n\t\t/** @description 枚举类型(渲染值的字典) */\n\t\tenum: {\n\t\t\ttype: definePropType<FaTableEnumColumnType>([Array, Function]),\n\t\t},\n\t\t/** @description 数据删除字段,如果为 true 会显示遮罩层 */\n\t\tdataDeleteField: String,\n\t\t/** @description 制单信息计算 */\n\t\tsubmitInfoField: {\n\t\t\ttype: definePropType<{ submitClerkName?: string; submitTime?: string }>(Object),\n\t\t\tdefault: () => ({\n\t\t\t\tsubmitClerkName: \"createdUserName\",\n\t\t\t\tsubmitTime: \"createdTime\",\n\t\t\t}),\n\t\t},\n\t},\n\temits: {\n\t\t/** @description 图片预览 */\n\t\timagePreview: (url: string): boolean => isString(url),\n\t\t/** @description 自定义单元格点击事件 */\n\t\tcustomCellClick: (emitName: string, { row, column, $index }: { row: any; column: FaTableColumnCtx; $index: number }): boolean =>\n\t\t\tisString(emitName) && isObject(row) && isObject(column) && isNumber($index),\n\t},\n\tslots: makeSlots<FaTableColumnSlots>(),\n\tsetup(props, { slots, emit }) {\n\t\tconst _globalSize = useGlobalSize();\n\t\tconst tableState = inject(tableStateKey);\n\t\tconst enumMap = inject(enumMapKey);\n\n\t\tconst columnCtx = computed(() => props as unknown as FaTableColumnCtx);\n\n\t\tconst renderCellData = ({ row }: { row: any }): any => {\n\t\t\tlet enumKey = props.prop;\n\t\t\tif (isString(props.enum)) {\n\t\t\t\tenumKey = props.enum;\n\t\t\t}\n\t\t\tconst enumData = enumMap.get(enumKey);\n\t\t\tif (enumData) {\n\t\t\t\treturn tableUtil.filterEnum(tableUtil.handleRowAccordingToProp(row, props.prop), enumData);\n\t\t\t} else {\n\t\t\t\treturn tableUtil.formatValue(tableUtil.handleRowAccordingToProp(row, props.prop));\n\t\t\t}\n\t\t};\n\n\t\tconst getTagType = ({ row }: { row: any }): any => {\n\t\t\tlet enumKey = props.prop;\n\t\t\tif (isString(props.enum)) {\n\t\t\t\tenumKey = props.enum;\n\t\t\t}\n\t\t\tconst enumData = enumMap.get(enumKey);\n\t\t\treturn tableUtil.filterEnum(tableUtil.handleRowAccordingToProp(row, props.prop), enumData, null, \"tag\") as any;\n\t\t};\n\n\t\tconst getWidth = (defAttr: string): string | number => {\n\t\t\tif (props.autoWidth) {\n\t\t\t\treturn computed(() => {\n\t\t\t\t\tconst findInfo = tableState.autoColumnWidth.find((f) => f.prop === props.prop);\n\t\t\t\t\tif (findInfo) {\n\t\t\t\t\t\treturn `${findInfo.width}px`;\n\t\t\t\t\t}\n\t\t\t\t\treturn \"auto\";\n\t\t\t\t}).value;\n\t\t\t}\n\t\t\tif (_globalSize.value === \"small\") {\n\t\t\t\treturn props.smallWidth ?? props.width ?? props.minWidth ?? defAttr ?? \"auto\";\n\t\t\t}\n\t\t\treturn props.width ?? props.minWidth ?? defAttr ?? \"auto\";\n\t\t};\n\n\t\tconst autoWidthHeaderRender = (el: VNode[]): VNode[] => {\n\t\t\tif (props.autoWidth) {\n\t\t\t\treturn (\n\t\t\t\t\t<div class={[\"fa-table__auto-width-column__cell-header\", `__fa-table__auto-width-column__cell-header__${props.prop}`]}>{el}</div>\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\treturn el;\n\t\t\t}\n\t\t};\n\n\t\tconst headerRender = ({ column, $index }: { column: TableColumnCtx<any>; $index: number }): VNode[] => {\n\t\t\tif (props.headerRender) {\n\t\t\t\treturn autoWidthHeaderRender(props.headerRender({ column, $index, ...getTableDefaultSlots(tableState) }));\n\t\t\t} else if (props.headerSlot) {\n\t\t\t\treturn autoWidthHeaderRender(\n\t\t\t\t\tslots[props.headerSlot] && slots[props.headerSlot]({ column, $index, ...getTableDefaultSlots(tableState) })\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\treturn autoWidthHeaderRender(<span>{props.label}</span>);\n\t\t\t}\n\t\t};\n\n\t\tconst autoWidthRender = (el: VNode[]): VNode[] => {\n\t\t\tif (props.autoWidth) {\n\t\t\t\treturn <div class={[\"fa-table__auto-width-column__cell\", `__fa-table__auto-width-column__cell__${props.prop}`]}>{el}</div>;\n\t\t\t} else {\n\t\t\t\treturn el;\n\t\t\t}\n\t\t};\n\n\t\tconst handleCopyClick = async (value): Promise<void> => {\n\t\t\ttry {\n\t\t\t\tawait stringUtil.copy(String(value));\n\t\t\t\tElMessage({\n\t\t\t\t\ttype: \"success\",\n\t\t\t\t\tmessage: \"复制成功\",\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tconsoleError(\"FaTableColumn\", error);\n\t\t\t\tElMessage({\n\t\t\t\t\ttype: \"error\",\n\t\t\t\t\tmessage: \"复制失败\",\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\tconst copyRender = (value, copy?: boolean): VNode[] => {\n\t\t\treturn (\n\t\t\t\t(props.copy || copy) &&\n\t\t\t\tvalue && (\n\t\t\t\t\t<ElIcon class=\"fa__copy-icon\" title=\"复制\" onClick={() => handleCopyClick(value)}>\n\t\t\t\t\t\t<CopyDocument />\n\t\t\t\t\t</ElIcon>\n\t\t\t\t)\n\t\t\t);\n\t\t};\n\n\t\tconst formatterRender = (row: any, column: TableColumnCtx<any>, cellValue: any, index: number): any => {\n\t\t\tif (column.formatter) {\n\t\t\t\treturn column.formatter(row, column, cellValue, index);\n\t\t\t} else {\n\t\t\t\treturn cellValue;\n\t\t\t}\n\t\t};\n\n\t\tconst defaultRender = ({ row, column, $index }: { row: any; column: TableColumnCtx<any>; $index: number }): VNode[] => {\n\t\t\tif (props.type === \"submitInfo\") {\n\t\t\t\tconst submitClerkName = row[props.submitInfoField?.submitClerkName ?? \"createdUserName\"];\n\t\t\t\tconst submitTime = row[props.submitInfoField?.submitTime ?? \"createdTime\"];\n\t\t\t\treturn (\n\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t<div style=\"white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\" title={submitTime}>\n\t\t\t\t\t\t\t{submitClerkName && <span style=\"margin-right: 5px;\">{submitClerkName}</span>}\n\t\t\t\t\t\t\t<span>{submitTime}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{submitTime && (\n\t\t\t\t\t\t\t<ElTag type=\"info\" round effect=\"light\" size=\"small\">\n\t\t\t\t\t\t\t\t{dateUtil.dateTimeFix(String(submitTime))}\n\t\t\t\t\t\t\t</ElTag>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\n\t\t\t} else if (props.tag) {\n\t\t\t\tconst renderValue = formatterRender(row, column, renderCellData({ row }), $index);\n\t\t\t\treturn (\n\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t{copyRender(renderValue)}\n\t\t\t\t\t\t{renderValue ? <ElTag type={getTagType({ row })}>{renderValue}</ElTag> : null}\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\n\t\t\t} else if (props.type === \"date\" || props.type === \"time\" || props.type === \"dateTime\") {\n\t\t\t\tlet dateFormat;\n\t\t\t\tswitch (props.type) {\n\t\t\t\t\tcase \"date\":\n\t\t\t\t\t\tdateFormat = \"YYYY-MM-DD\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"time\":\n\t\t\t\t\t\tdateFormat = \"HH:mm:ss\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"dateTime\":\n\t\t\t\t\t\tdateFormat = \"YYYY-MM-DD HH:mm:ss\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tconst renderValue = row[props.prop]\n\t\t\t\t\t? formatterRender(row, column, dayjs(row[props.prop]).format(props.dateFormat ?? dateFormat), $index)\n\t\t\t\t\t: null;\n\t\t\t\treturn (\n\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t{copyRender(renderValue)}\n\t\t\t\t\t\t{renderValue}\n\t\t\t\t\t\t{props.dateFix && renderValue && (\n\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t<ElTag type=\"info\" round effect=\"light\" size=\"small\">\n\t\t\t\t\t\t\t\t\t{dateUtil.dateTimeFix(String(renderValue))}\n\t\t\t\t\t\t\t\t</ElTag>\n\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\n\t\t\t} else if (\n\t\t\t\tprops.type === \"d2\" ||\n\t\t\t\tprops.type === \"d4\" ||\n\t\t\t\tprops.type === \"d6\" ||\n\t\t\t\tprops.type === \"gd2\" ||\n\t\t\t\tprops.type === \"gd4\" ||\n\t\t\t\tprops.type === \"gd6\"\n\t\t\t) {\n\t\t\t\tconst renderValue = row[props.prop];\n\t\t\t\tif (renderValue) {\n\t\t\t\t\tif (isNumber(renderValue)) {\n\t\t\t\t\t\tlet useGrouping = false;\n\t\t\t\t\t\tlet maximumFractionDigits: number;\n\t\t\t\t\t\tswitch (props.type) {\n\t\t\t\t\t\t\tcase \"d2\":\n\t\t\t\t\t\t\t\tmaximumFractionDigits = 2;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"d4\":\n\t\t\t\t\t\t\t\tmaximumFractionDigits = 4;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"d6\":\n\t\t\t\t\t\t\t\tmaximumFractionDigits = 6;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"gd2\":\n\t\t\t\t\t\t\t\tmaximumFractionDigits = 2;\n\t\t\t\t\t\t\t\tuseGrouping = true;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"gd4\":\n\t\t\t\t\t\t\t\tmaximumFractionDigits = 4;\n\t\t\t\t\t\t\t\tuseGrouping = true;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"gd6\":\n\t\t\t\t\t\t\t\tmaximumFractionDigits = 6;\n\t\t\t\t\t\t\t\tuseGrouping = true;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn renderValue.toLocaleString(\"zh-CN\", {\n\t\t\t\t\t\t\tminimumFractionDigits: 2,\n\t\t\t\t\t\t\tmaximumFractionDigits,\n\t\t\t\t\t\t\tuseGrouping,\n\t\t\t\t\t\t}) as any;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn renderValue;\n\t\t\t} else if (props.link) {\n\t\t\t\tconst renderValue = formatterRender(row, column, row[props.prop], $index);\n\t\t\t\treturn autoWidthRender(\n\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t{copyRender(renderValue)}\n\t\t\t\t\t\t{renderValue && (\n\t\t\t\t\t\t\t<ElText\n\t\t\t\t\t\t\t\tclass={\"el-link is-hover-underline fa-table__link-column__text\"}\n\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t// 数据删除拦截点击\n\t\t\t\t\t\t\t\t\tif (props.dataDeleteField && row[props.dataDeleteField] === true) return;\n\t\t\t\t\t\t\t\t\tif (props.click) {\n\t\t\t\t\t\t\t\t\t\tprops.click({ row, $index });\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\temit(\"customCellClick\", props.clickEmit, {\n\t\t\t\t\t\t\t\t\t\t\trow,\n\t\t\t\t\t\t\t\t\t\t\tcolumn: columnCtx.value,\n\t\t\t\t\t\t\t\t\t\t\t$index,\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{renderValue}\n\t\t\t\t\t\t\t</ElText>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\n\t\t\t} else if (props.render) {\n\t\t\t\treturn autoWidthRender(props.render({ row, column: columnCtx.value, $index, ...getTableDefaultSlots(tableState) }));\n\t\t\t} else if (props.slot) {\n\t\t\t\treturn autoWidthRender(\n\t\t\t\t\tslots[props.slot] && slots[props.slot]({ row, column: columnCtx.value, $index, ...getTableDefaultSlots(tableState) })\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tconst renderValue = formatterRender(row, column, row[props.prop], $index);\n\t\t\t\treturn autoWidthRender(\n\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t{copyRender(renderValue)}\n\t\t\t\t\t\t{renderValue}\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\n\t\tlet elTableColumnProps: ComputedRef<TableColumnCtx<any>> = useProps(props, tableColumnProps, [\n\t\t\t\"type\",\n\t\t\t\"width\",\n\t\t\t\"minWidth\",\n\t\t\t\"sortable\",\n\t\t\t\"sortOrders\",\n\t\t\t\"resizable\",\n\t\t\t\"showOverflowTooltip\",\n\t\t]) as unknown as ComputedRef<TableColumnCtx<any>>;\n\n\t\twatch(\n\t\t\t() => props,\n\t\t\t() => {\n\t\t\t\telTableColumnProps = useProps(props, tableColumnProps, [\n\t\t\t\t\t\"type\",\n\t\t\t\t\t\"minWidth\",\n\t\t\t\t\t\"sortable\",\n\t\t\t\t\t\"sortOrders\",\n\t\t\t\t\t\"resizable\",\n\t\t\t\t\t\"showOverflowTooltip\",\n\t\t\t\t]) as unknown as ComputedRef<TableColumnCtx<any>>;\n\t\t\t}\n\t\t);\n\n\t\tuseRender(() => (\n\t\t\t<Fragment>\n\t\t\t\t{\n\t\t\t\t\t// 如果有配置多级表头的数据,则递归该组件\n\t\t\t\t\tprops._children?.length ? (\n\t\t\t\t\t\t<ElTableColumn\n\t\t\t\t\t\t\t{...elTableColumnProps.value}\n\t\t\t\t\t\t\tminWidth={getWidth(\"auto\")}\n\t\t\t\t\t\t\tsortable={props.sortable ? \"custom\" : false}\n\t\t\t\t\t\t\tsortOrders={props.sortOrders ?? [\"descending\", \"ascending\", null]}\n\t\t\t\t\t\t\tresizable={props.resizable && !props.autoWidth}\n\t\t\t\t\t\t\tshowOverflowTooltip={(props.showOverflowTooltip ?? true) && !props.autoWidth && props.type == \"default\"}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\theader: ({ column, $index }: { column: TableColumnCtx<any>; $index: number }) => headerRender({ column, $index }),\n\t\t\t\t\t\t\t\tdefault: () =>\n\t\t\t\t\t\t\t\t\tprops._children.map((col: FaTableColumnCtx) =>\n\t\t\t\t\t\t\t\t\t\th(\n\t\t\t\t\t\t\t\t\t\t\tresolveComponent(\"FaTableColumn\"),\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t...col,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tslots\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t) : props.type === \"image\" ? (\n\t\t\t\t\t\t<ElTableColumn\n\t\t\t\t\t\t\t{...elTableColumnProps.value}\n\t\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\t\tclassName=\"fa-table__image-column\"\n\t\t\t\t\t\t\tminWidth=\"50px\"\n\t\t\t\t\t\t\tsortable={false}\n\t\t\t\t\t\t\tresizable={false}\n\t\t\t\t\t\t\tshowOverflowTooltip={false}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\theader: ({ column, $index }: { column: TableColumnCtx<any>; $index: number }) => headerRender({ column, $index }),\n\t\t\t\t\t\t\t\tdefault: ({ row }: { row: any; column: TableColumnCtx<any>; $index: number }) =>\n\t\t\t\t\t\t\t\t\trow[props.prop] ? (\n\t\t\t\t\t\t\t\t\t\ttableState.hideImage ? (\n\t\t\t\t\t\t\t\t\t\t\t<ElImage\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"fa-image\"\n\t\t\t\t\t\t\t\t\t\t\t\tlazy\n\t\t\t\t\t\t\t\t\t\t\t\tsrc={artwork}\n\t\t\t\t\t\t\t\t\t\t\t\tfit=\"cover\"\n\t\t\t\t\t\t\t\t\t\t\t\tpreviewSrcList={[row[props.prop]]}\n\t\t\t\t\t\t\t\t\t\t\t\tcloseOnPressEscape\n\t\t\t\t\t\t\t\t\t\t\t\thideOnClickModal\n\t\t\t\t\t\t\t\t\t\t\t\tpreviewTeleported\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t<FaImage lazy src={row[props.prop]} fit=\"cover\" original />\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<ElImage class=\"fa-image\" lazy src={notImage} fit=\"cover\" />\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t// 其他正常的列\n\t\t\t\t\t\t<ElTableColumn\n\t\t\t\t\t\t\t{...elTableColumnProps.value}\n\t\t\t\t\t\t\tminWidth={getWidth(\"auto\")}\n\t\t\t\t\t\t\tsortable={props.sortable ? \"custom\" : false}\n\t\t\t\t\t\t\tsortOrders={props.sortOrders ?? [\"descending\", \"ascending\", null]}\n\t\t\t\t\t\t\tresizable={props.resizable && !props.autoWidth}\n\t\t\t\t\t\t\tshowOverflowTooltip={(props.showOverflowTooltip ?? true) && !props.autoWidth && props.type == \"default\"}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\theader: ({ column, $index }: { column: TableColumnCtx<any>; $index: number }) => headerRender({ column, $index }),\n\t\t\t\t\t\t\t\tdefault: ({ row, column, $index }: { row: any; column: TableColumnCtx<any>; $index: number }) =>\n\t\t\t\t\t\t\t\t\tdefaultRender({ row, column, $index }),\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t</ElTableColumn>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t</Fragment>\n\t\t));\n\t},\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","tableColumnProps","type","String","default","label","className","labelClassName","property","prop","width","Number","minWidth","renderHeader","Function","sortable","Boolean","sortMethod","sortBy","Array","resizable","columnKey","align","headerAlign","showOverflowTooltip","undefined","fixed","formatter","selectable","reserveSelection","filterMethod","filteredValue","filters","filterPlacement","filterMultiple","filterClassName","index","sortOrders","validator","val","every","order","includes","TableColumn","name","props","definePropType","show","smallWidth","autoWidth","slot","headerSlot","headerRender","render","_children","copy","link","spanProp","click","clickEmit","dateFix","dateFormat","tag","enum","dataDeleteField","submitInfoField","submitClerkName","submitTime","emits","imagePreview","url","isString","customCellClick","emitName","row","column","$index","isObject","isNumber","slots","makeSlots","setup","emit","_globalSize","useGlobalSize","tableState","inject","tableStateKey","enumMap","enumMapKey","columnCtx","computed","getTagType","enumKey","enumData","get","tableUtil","filterEnum","handleRowAccordingToProp","getWidth","defAttr","findInfo","autoColumnWidth","find","f","value","autoWidthHeaderRender","el","_createVNode","class","getTableDefaultSlots","autoWidthRender","copyRender","ElIcon","title","onClick","async","stringUtil","ElMessage","message","error","consoleError","handleCopyClick","CopyDocument","formatterRender","cellValue","defaultRender","_slot","_Fragment","style","ElTag","round","effect","size","dateUtil","dateTimeFix","renderValue","renderCellData","formatValue","_slot2","dayjs","format","maximumFractionDigits","useGrouping","toLocaleString","minimumFractionDigits","ElText","elTableColumnProps","useProps","watch","useRender","length","ElTableColumn","_mergeProps","header","map","col","h","resolveComponent","hideImage","ElImage","lazy","src","artwork","fit","previewSrcList","closeOnPressEscape","hideOnClickModal","previewTeleported","FaImage","original","notImage"],"mappings":"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"}
|
|
@@ -15,12 +15,12 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
15
15
|
/** @description 折叠搜素 */
|
|
16
16
|
collapsedSearch: {
|
|
17
17
|
type: BooleanConstructor;
|
|
18
|
-
|
|
18
|
+
default: boolean;
|
|
19
19
|
};
|
|
20
20
|
/** @description 高级搜素抽屉 */
|
|
21
21
|
advancedSearchDrawer: {
|
|
22
22
|
type: BooleanConstructor;
|
|
23
|
-
|
|
23
|
+
default: boolean;
|
|
24
24
|
};
|
|
25
25
|
/** @description Grid布局列配置 */
|
|
26
26
|
cols: {
|
|
@@ -52,12 +52,12 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
52
52
|
/** @description 折叠搜素 */
|
|
53
53
|
collapsedSearch: {
|
|
54
54
|
type: BooleanConstructor;
|
|
55
|
-
|
|
55
|
+
default: boolean;
|
|
56
56
|
};
|
|
57
57
|
/** @description 高级搜素抽屉 */
|
|
58
58
|
advancedSearchDrawer: {
|
|
59
59
|
type: BooleanConstructor;
|
|
60
|
-
|
|
60
|
+
default: boolean;
|
|
61
61
|
};
|
|
62
62
|
/** @description Grid布局列配置 */
|
|
63
63
|
cols: {
|
|
@@ -82,5 +82,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
82
82
|
};
|
|
83
83
|
}>> & Readonly<{}>, {
|
|
84
84
|
cols: string | number | Record<FaLayoutGridBreakPoint, number>;
|
|
85
|
+
collapsedSearch: boolean;
|
|
86
|
+
advancedSearchDrawer: boolean;
|
|
85
87
|
}, import('vue').SlotsType<Partial<import('@fast-china/utils').MakeSlots<FaTableSearchFormSlots>>>, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
86
88
|
export default _default;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),a=require("element-plus"),l=require("@element-plus/icons-vue"),r=require("../../drawer/index.js"),o=require("../../layoutGrid/index.js"),t=require("@fast-element-plus/icons-vue"),s=require("@fast-china/utils"),c=require("./table.type.js"),n=require("./tableSearchFormItem.js"),d=require("./useTable.js");const i=e.defineComponent({name:"FaTableSearchForm",props:{show:{type:Boolean,required:!0},collapsedSearch:{type:Boolean,
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),a=require("element-plus"),l=require("@element-plus/icons-vue"),r=require("../../drawer/index.js"),o=require("../../layoutGrid/index.js"),t=require("@fast-element-plus/icons-vue"),s=require("@fast-china/utils"),c=require("./table.type.js"),n=require("./tableSearchFormItem.js"),d=require("./useTable.js");const i=e.defineComponent({name:"FaTableSearchForm",props:{show:{type:Boolean,required:!0},collapsedSearch:{type:Boolean,default:!0},advancedSearchDrawer:{type:Boolean,default:!1},cols:{type:s.definePropType([String,Number,Object]),default:()=>({xs:2,sm:3,md:4,lg:5,xl:6})},search:{type:s.definePropType(Function),required:!0},reset:{type:s.definePropType(Function),required:!0}},slots:s.makeSlots(),setup(i,{slots:u,expose:h}){const m=a.useGlobalSize(),f=e.ref(),p=e.inject(d.tableStateKey),b=e.computed(()=>f.value?.breakPoint),g=e.reactive({refreshing:!1,height:"auto",collapsed:!0,showCollapsed:e.computed(()=>{let e=!1;return p.searchColumns.reduce((a,l)=>(a+=(l.search[b.value]?.span??l.search?.span??1)+(l.search[b.value]?.offset??l.search?.offset??0),"number"!=typeof i.cols?a>=i.cols[b.value]&&(e=!0):a>=i.cols&&(e=!0),a),0),e}),searchColumns:s.withDefineType([]),advancedSearchColumns:s.withDefineType([]),breakPoint:void 0}),v=e.ref(),y=e.ref(),C=e=>({span:e?.span,offset:e?.offset??0,xs:e?.xs,sm:e?.sm,md:e?.md,lg:e?.lg,xl:e?.xl}),N=({breakPoint:e})=>{g.breakPoint=i.cols[e]-1,g.searchColumns=p.searchColumns.filter(e=>e?.show).slice(0,g.breakPoint),g.advancedSearchColumns=p.searchColumns.filter(e=>e?.show).slice(g.breakPoint)};e.watch(()=>p.searchColumns,()=>{g.breakPoint&&(g.searchColumns=p.searchColumns.filter(e=>e?.show).slice(0,g.breakPoint),g.advancedSearchColumns=p.searchColumns.filter(e=>e?.show).slice(g.breakPoint))});const V=e.computed(()=>i.advancedSearchDrawer?g.searchColumns:p.searchColumns);e.watch(()=>i.advancedSearchDrawer,e=>{g.collapsed=!!e||i.collapsedSearch,g.refreshing=!0,setTimeout(()=>{g.refreshing=!1},1)}),e.watch(()=>i.collapsedSearch,e=>{i.collapsedSearch?g.collapsed=!0:g.collapsed=e},{immediate:!0}),s.useRender(()=>{let s;return p.searchColumns.length>0&&e.createVNode("div",{ref:v,class:["el-card fa-table__search",{"fa-table__search-hidden":!i.show,"fa-table__search__disable":p.loading}]},[e.createVNode("form",{class:"el-form el-form--default el-form--label-right"},[!g.refreshing&&e.createVNode(o.FaLayoutGrid,{ref:f,collapsed:g.collapsed,gap:"small"===m.value?[20,0]:[20,10],cols:i.cols,onBreakPointChange:N},{default:()=>[V.value.map((a,l)=>e.createVNode(o.FaLayoutGridItem,e.mergeProps({key:a?.search?.key??a.prop},C(a.search),{index:l}),{default:()=>[e.createVNode("div",{class:"el-form-item el-form-item--default el-form-item--label-right"},[e.createVNode("label",{class:"el-form-item__label"},[a.search.label]),e.createVNode("div",{class:"el-form-item__content"},[a.search?.slot?u[a.search.slot]&&u[a.search.slot]({column:a,search:i.search,...c.getTableDefaultSlots(p)}):e.createVNode(n.default,{column:a,search:i.search},null)])])]})),e.createVNode(o.FaLayoutGridItem,{suffix:!0},{default:()=>[e.createVNode("div",{class:"fa-table__search-operation"},[e.createVNode(a.ElButton,{loading:p.loading,loadingIcon:l.Eleme,title:"搜索",type:"primary",plain:!0,icon:l.Refresh,onClick:()=>i.search()},{default:()=>[e.createTextVNode("搜索")]}),e.createVNode(a.ElButton,{loading:p.loading,loadingIcon:l.Eleme,title:"重置",icon:t.Brush,onClick:()=>i.reset()},{default:()=>[e.createTextVNode("重置")]}),i.advancedSearchDrawer?g.advancedSearchColumns.length>0&&e.createVNode(a.ElButton,{loading:p.loading,loadingIcon:l.Eleme,title:"高级搜索",type:"info",plain:!0,icon:l.Search,onClick:()=>y.value.open()},{default:()=>[e.createTextVNode("高级搜索")]}):g.showCollapsed&&e.createVNode(a.ElButton,{loading:p.loading,loadingIcon:l.Eleme,title:g.collapsed?"展开":"折叠",link:!0,type:"primary",onClick:()=>{g.collapsed=!g.collapsed}},{default:()=>[g.collapsed?"展开":"折叠",e.createVNode(a.ElIcon,null,{default:()=>[g.collapsed?e.createVNode(l.ArrowDown,null,null):e.createVNode(l.ArrowUp,null,null)]})]})])]})]})]),i.advancedSearchDrawer&&g.advancedSearchColumns.length>0&&e.createVNode(r.FaDrawer,{ref:y,class:"fa-table__search-advanced",size:"20%",title:"高级搜索",appendToBody:!1,showCloseButton:!1,showConfirmButton:!1,showFullscreen:!1,showRefresh:!1,onConfirmClick:()=>i.search()},{default:()=>{return[e.createVNode("form",{class:"el-form el-form--default el-form--label-top"},[e.createVNode(o.FaLayoutGrid,{gap:[20,0],cols:{xs:2,sm:3,md:4,lg:5,xl:6}},(a=s=g.advancedSearchColumns.map((a,l)=>e.createVNode(o.FaLayoutGridItem,e.mergeProps({key:a.prop??a?.search?.key},C(a.search),{index:l}),{default:()=>[e.createVNode("div",{class:"el-form-item el-form-item--default el-form-item--label-top"},[e.createVNode("label",{class:"el-form-item__label"},[a.search.label]),e.createVNode("div",{class:"el-form-item__content"},[a.search.slot?u[a.search.slot]&&u[a.search.slot]({column:a,search:i.search,...c.getTableDefaultSlots(p)}):e.createVNode(n.default,{column:a,search:i.search},null)])])]})),"function"==typeof a||"[object Object]"===Object.prototype.toString.call(a)&&!e.isVNode(a)?s:{default:()=>[s]}))])];var a}})])})}});exports.default=i;
|
|
2
2
|
//# sourceMappingURL=tableSearchForm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tableSearchForm.js","sources":["../../../../../packages/components/table/src/tableSearchForm.tsx"],"sourcesContent":["import { computed, defineComponent, inject, reactive, ref, watch } from \"vue\";\nimport { ElButton, ElIcon, useGlobalSize } from \"element-plus\";\nimport { ArrowDown, ArrowUp, Eleme, Refresh, Search } from \"@element-plus/icons-vue\";\nimport { FaDrawer } from \"@fast-element-plus/components/drawer\";\nimport { FaLayoutGrid, FaLayoutGridItem } from \"@fast-element-plus/components/layoutGrid\";\nimport { Brush } from \"@fast-element-plus/icons-vue\";\nimport { definePropType, makeSlots, useRender, withDefineType } from \"@fast-china/utils\";\nimport { getTableDefaultSlots } from \"./table.type\";\nimport FaTableSearchFormItem from \"./tableSearchFormItem\";\nimport { tableStateKey } from \"./useTable\";\nimport type { FaTableColumnCtx, FaTableDefaultSlotsResult, FaTableSearchColumnCtx } from \"./table.type\";\nimport type { FaDrawerInstance } from \"@fast-element-plus/components/drawer\";\nimport type { FaLayoutGridBreakPoint, FaLayoutGridInstance, FaLayoutGridItemResponsive } from \"@fast-element-plus/components/layoutGrid\";\n\ntype FaTableSearchFormSlots = {\n\t[key: string]: FaTableDefaultSlotsResult & {\n\t\tcolumn?: FaTableColumnCtx;\n\t\tsearch?: () => void;\n\t};\n};\n\nexport default defineComponent({\n\tname: \"FaTableSearchForm\",\n\tprops: {\n\t\t/** @description 显示 */\n\t\tshow: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\t/** @description 折叠搜素 */\n\t\tcollapsedSearch: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\t/** @description 高级搜素抽屉 */\n\t\tadvancedSearchDrawer: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\t/** @description Grid布局列配置 */\n\t\tcols: {\n\t\t\ttype: definePropType<string | number | Record<FaLayoutGridBreakPoint, number>>([String, Number, Object]),\n\t\t\tdefault: () => ({ xs: 2, sm: 3, md: 4, lg: 5, xl: 6 }),\n\t\t},\n\t\t/** @description 搜索 */\n\t\tsearch: {\n\t\t\ttype: definePropType<() => void>(Function),\n\t\t\trequired: true,\n\t\t},\n\t\t/** @description 重置 */\n\t\treset: {\n\t\t\ttype: definePropType<() => void>(Function),\n\t\t\trequired: true,\n\t\t},\n\t},\n\tslots: makeSlots<FaTableSearchFormSlots>(),\n\tsetup(props, { slots, expose }) {\n\t\tconst _globalSize = useGlobalSize();\n\n\t\t// 获取响应式断点\n\t\tconst gridRef = ref<FaLayoutGridInstance>();\n\n\t\tconst tableState = inject(tableStateKey);\n\n\t\tconst breakPoint = computed<FaLayoutGridBreakPoint>(() => gridRef.value?.breakPoint);\n\n\t\tconst state = reactive({\n\t\t\trefreshing: false,\n\t\t\theight: \"auto\",\n\t\t\t/** 折叠 */\n\t\t\tcollapsed: true,\n\t\t\t/** 显示折叠 */\n\t\t\tshowCollapsed: computed(() => {\n\t\t\t\tlet show = false;\n\t\t\t\ttableState.searchColumns.reduce((prev, current) => {\n\t\t\t\t\tprev +=\n\t\t\t\t\t\t(current.search[breakPoint.value]?.span ?? current.search?.span ?? 1) +\n\t\t\t\t\t\t(current.search[breakPoint.value]?.offset ?? current.search?.offset ?? 0);\n\t\t\t\t\tif (typeof props.cols !== \"number\") {\n\t\t\t\t\t\tif (prev >= props.cols[breakPoint.value]) show = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (prev >= props.cols) show = true;\n\t\t\t\t\t}\n\t\t\t\t\treturn prev;\n\t\t\t\t}, 0);\n\t\t\t\treturn show;\n\t\t\t}),\n\t\t\tsearchColumns: withDefineType<FaTableColumnCtx[]>([]),\n\t\t\tadvancedSearchColumns: withDefineType<FaTableColumnCtx[]>([]),\n\t\t\tbreakPoint: undefined,\n\t\t});\n\n\t\tconst faTableSearchFormRef = ref<HTMLElement>();\n\t\tconst advancedSearchRef = ref<FaDrawerInstance>();\n\n\t\t// 获取响应式设置\n\t\tconst getResponsive = (\n\t\t\titem: FaTableSearchColumnCtx\n\t\t): {\n\t\t\tspan: number;\n\t\t\toffset: number;\n\t\t\txs: FaLayoutGridItemResponsive;\n\t\t\tsm: FaLayoutGridItemResponsive;\n\t\t\tmd: FaLayoutGridItemResponsive;\n\t\t\tlg: FaLayoutGridItemResponsive;\n\t\t\txl: FaLayoutGridItemResponsive;\n\t\t} => {\n\t\t\treturn {\n\t\t\t\tspan: item?.span,\n\t\t\t\toffset: item?.offset ?? 0,\n\t\t\t\txs: item?.xs,\n\t\t\t\tsm: item?.sm,\n\t\t\t\tmd: item?.md,\n\t\t\t\tlg: item?.lg,\n\t\t\t\txl: item?.xl,\n\t\t\t};\n\t\t};\n\n\t\tconst handleBreakPointChange = ({ breakPoint }: { breakPoint: FaLayoutGridBreakPoint }): void => {\n\t\t\t// 这里 -1 是排除固定的\n\t\t\tstate.breakPoint = props.cols[breakPoint] - 1;\n\t\t\tstate.searchColumns = tableState.searchColumns.filter((f) => f?.show).slice(0, state.breakPoint);\n\t\t\tstate.advancedSearchColumns = tableState.searchColumns.filter((f) => f?.show).slice(state.breakPoint);\n\t\t};\n\n\t\twatch(\n\t\t\t() => tableState.searchColumns,\n\t\t\t() => {\n\t\t\t\tif (state.breakPoint) {\n\t\t\t\t\tstate.searchColumns = tableState.searchColumns.filter((f) => f?.show).slice(0, state.breakPoint);\n\t\t\t\t\tstate.advancedSearchColumns = tableState.searchColumns.filter((f) => f?.show).slice(state.breakPoint);\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\n\t\tconst searchColumns = computed(() => (props.advancedSearchDrawer ? state.searchColumns : tableState.searchColumns));\n\n\t\twatch(\n\t\t\t() => props.advancedSearchDrawer,\n\t\t\t(newValue) => {\n\t\t\t\tif (newValue) {\n\t\t\t\t\t// 抽屉默认折叠\n\t\t\t\t\tstate.collapsed = true;\n\t\t\t\t} else {\n\t\t\t\t\tstate.collapsed = props.collapsedSearch;\n\t\t\t\t}\n\t\t\t\tstate.refreshing = true;\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tstate.refreshing = false;\n\t\t\t\t}, 1);\n\t\t\t}\n\t\t);\n\n\t\twatch(\n\t\t\t() => props.collapsedSearch,\n\t\t\t(newValue) => {\n\t\t\t\tif (!props.collapsedSearch) {\n\t\t\t\t\tstate.collapsed = newValue;\n\t\t\t\t} else {\n\t\t\t\t\t// 抽屉默认折叠\n\t\t\t\t\tstate.collapsed = true;\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\timmediate: true,\n\t\t\t}\n\t\t);\n\n\t\tuseRender(\n\t\t\t() =>\n\t\t\t\ttableState.searchColumns.length > 0 && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tref={faTableSearchFormRef}\n\t\t\t\t\t\tclass={[\n\t\t\t\t\t\t\t\"el-card fa-table__search\",\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"fa-table__search-hidden\": !props.show,\n\t\t\t\t\t\t\t\t\"fa-table__search__disable\": tableState.loading,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t]}\n\t\t\t\t\t>\n\t\t\t\t\t\t<form class=\"el-form el-form--default el-form--label-right\">\n\t\t\t\t\t\t\t{!state.refreshing && (\n\t\t\t\t\t\t\t\t<FaLayoutGrid\n\t\t\t\t\t\t\t\t\tref={gridRef}\n\t\t\t\t\t\t\t\t\tcollapsed={state.collapsed}\n\t\t\t\t\t\t\t\t\tgap={_globalSize.value === \"small\" ? [20, 0] : [20, 10]}\n\t\t\t\t\t\t\t\t\tcols={props.cols}\n\t\t\t\t\t\t\t\t\tonBreakPointChange={handleBreakPointChange}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{searchColumns.value.map((item, index) => (\n\t\t\t\t\t\t\t\t\t\t<FaLayoutGridItem key={item?.search?.key ?? item.prop} {...getResponsive(item.search)} index={index}>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"el-form-item el-form-item--default el-form-item--label-right\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label class=\"el-form-item__label\">{item.search.label}</label>\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"el-form-item__content\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{item.search?.slot ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tslots[item.search.slot] &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tslots[item.search.slot]({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolumn: item,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch: props.search,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...getTableDefaultSlots(tableState),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<FaTableSearchFormItem column={item} search={props.search} />\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</FaLayoutGridItem>\n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t<FaLayoutGridItem suffix>\n\t\t\t\t\t\t\t\t\t\t<div class=\"fa-table__search-operation\">\n\t\t\t\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\t\t\t\tloading={tableState.loading}\n\t\t\t\t\t\t\t\t\t\t\t\tloadingIcon={Eleme}\n\t\t\t\t\t\t\t\t\t\t\t\ttitle=\"搜索\"\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"primary\"\n\t\t\t\t\t\t\t\t\t\t\t\tplain\n\t\t\t\t\t\t\t\t\t\t\t\ticon={Refresh}\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => props.search()}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t搜索\n\t\t\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\t\t\t\tloading={tableState.loading}\n\t\t\t\t\t\t\t\t\t\t\t\tloadingIcon={Eleme}\n\t\t\t\t\t\t\t\t\t\t\t\ttitle=\"重置\"\n\t\t\t\t\t\t\t\t\t\t\t\ticon={Brush}\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => props.reset()}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t重置\n\t\t\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t\t\t\t{props.advancedSearchDrawer\n\t\t\t\t\t\t\t\t\t\t\t\t? state.advancedSearchColumns.length > 0 && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tloading={tableState.loading}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tloadingIcon={Eleme}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttitle=\"高级搜索\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"info\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplain\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ticon={Search}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => advancedSearchRef.value.open()}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t高级搜索\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t: state.showCollapsed && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tloading={tableState.loading}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tloadingIcon={Eleme}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttitle={state.collapsed ? \"展开\" : \"折叠\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlink\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"primary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.collapsed = !state.collapsed;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{state.collapsed ? \"展开\" : \"折叠\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElIcon>{state.collapsed ? <ArrowDown /> : <ArrowUp />}</ElIcon>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</FaLayoutGridItem>\n\t\t\t\t\t\t\t\t</FaLayoutGrid>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</form>\n\t\t\t\t\t\t{props.advancedSearchDrawer && state.advancedSearchColumns.length > 0 && (\n\t\t\t\t\t\t\t<FaDrawer\n\t\t\t\t\t\t\t\tref={advancedSearchRef}\n\t\t\t\t\t\t\t\tclass=\"fa-table__search-advanced\"\n\t\t\t\t\t\t\t\tsize=\"20%\"\n\t\t\t\t\t\t\t\ttitle=\"高级搜索\"\n\t\t\t\t\t\t\t\tappendToBody={false}\n\t\t\t\t\t\t\t\tshowCloseButton={false}\n\t\t\t\t\t\t\t\tshowConfirmButton={false}\n\t\t\t\t\t\t\t\tshowFullscreen={false}\n\t\t\t\t\t\t\t\tshowRefresh={false}\n\t\t\t\t\t\t\t\tonConfirmClick={() => props.search()}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<form class=\"el-form el-form--default el-form--label-top\">\n\t\t\t\t\t\t\t\t\t<FaLayoutGrid gap={[20, 0]} cols={{ xs: 2, sm: 3, md: 4, lg: 5, xl: 6 }}>\n\t\t\t\t\t\t\t\t\t\t{state.advancedSearchColumns.map((item, index) => (\n\t\t\t\t\t\t\t\t\t\t\t<FaLayoutGridItem key={item.prop ?? item?.search?.key} {...getResponsive(item.search)} index={index}>\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"el-form-item el-form-item--default el-form-item--label-top\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<label class=\"el-form-item__label\">{item.search.label}</label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"el-form-item__content\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.search.slot ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tslots[item.search.slot] &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tslots[item.search.slot]({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolumn: item,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch: props.search,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...getTableDefaultSlots(tableState),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<FaTableSearchFormItem column={item} search={props.search} />\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</FaLayoutGridItem>\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t</FaLayoutGrid>\n\t\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t\t</FaDrawer>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)\n\t\t);\n\t},\n});\n"],"names":["TableSearchForm","name","props","show","type","Boolean","required","collapsedSearch","advancedSearchDrawer","cols","definePropType","String","Number","Object","default","xs","sm","md","lg","xl","search","Function","reset","slots","makeSlots","setup","expose","_globalSize","useGlobalSize","gridRef","ref","tableState","inject","tableStateKey","breakPoint","computed","value","state","reactive","refreshing","height","collapsed","showCollapsed","searchColumns","reduce","prev","current","span","offset","withDefineType","advancedSearchColumns","undefined","faTableSearchFormRef","advancedSearchRef","getResponsive","item","handleBreakPointChange","filter","f","slice","watch","newValue","setTimeout","immediate","useRender","_slot","length","_createVNode","class","loading","FaLayoutGrid","gap","onBreakPointChange","map","index","FaLayoutGridItem","_mergeProps","key","prop","label","slot","column","getTableDefaultSlots","FaTableSearchFormItem","suffix","ElButton","loadingIcon","Eleme","title","plain","icon","Refresh","onClick","_createTextVNode","Brush","Search","open","link","ElIcon","ArrowDown","ArrowUp","FaDrawer","size","appendToBody","showCloseButton","showConfirmButton","showFullscreen","showRefresh","onConfirmClick","s","prototype","toString","call","_isVNode"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tableSearchForm.js","sources":["../../../../../packages/components/table/src/tableSearchForm.tsx"],"sourcesContent":["import { computed, defineComponent, inject, reactive, ref, watch } from \"vue\";\nimport { ElButton, ElIcon, useGlobalSize } from \"element-plus\";\nimport { ArrowDown, ArrowUp, Eleme, Refresh, Search } from \"@element-plus/icons-vue\";\nimport { FaDrawer } from \"@fast-element-plus/components/drawer\";\nimport { FaLayoutGrid, FaLayoutGridItem } from \"@fast-element-plus/components/layoutGrid\";\nimport { Brush } from \"@fast-element-plus/icons-vue\";\nimport { definePropType, makeSlots, useRender, withDefineType } from \"@fast-china/utils\";\nimport { getTableDefaultSlots } from \"./table.type\";\nimport FaTableSearchFormItem from \"./tableSearchFormItem\";\nimport { tableStateKey } from \"./useTable\";\nimport type { FaTableColumnCtx, FaTableDefaultSlotsResult, FaTableSearchColumnCtx } from \"./table.type\";\nimport type { FaDrawerInstance } from \"@fast-element-plus/components/drawer\";\nimport type { FaLayoutGridBreakPoint, FaLayoutGridInstance, FaLayoutGridItemResponsive } from \"@fast-element-plus/components/layoutGrid\";\n\ntype FaTableSearchFormSlots = {\n\t[key: string]: FaTableDefaultSlotsResult & {\n\t\tcolumn?: FaTableColumnCtx;\n\t\tsearch?: () => void;\n\t};\n};\n\nexport default defineComponent({\n\tname: \"FaTableSearchForm\",\n\tprops: {\n\t\t/** @description 显示 */\n\t\tshow: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\t/** @description 折叠搜素 */\n\t\tcollapsedSearch: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\t/** @description 高级搜素抽屉 */\n\t\tadvancedSearchDrawer: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/** @description Grid布局列配置 */\n\t\tcols: {\n\t\t\ttype: definePropType<string | number | Record<FaLayoutGridBreakPoint, number>>([String, Number, Object]),\n\t\t\tdefault: () => ({ xs: 2, sm: 3, md: 4, lg: 5, xl: 6 }),\n\t\t},\n\t\t/** @description 搜索 */\n\t\tsearch: {\n\t\t\ttype: definePropType<() => void>(Function),\n\t\t\trequired: true,\n\t\t},\n\t\t/** @description 重置 */\n\t\treset: {\n\t\t\ttype: definePropType<() => void>(Function),\n\t\t\trequired: true,\n\t\t},\n\t},\n\tslots: makeSlots<FaTableSearchFormSlots>(),\n\tsetup(props, { slots, expose }) {\n\t\tconst _globalSize = useGlobalSize();\n\n\t\t// 获取响应式断点\n\t\tconst gridRef = ref<FaLayoutGridInstance>();\n\n\t\tconst tableState = inject(tableStateKey);\n\n\t\tconst breakPoint = computed<FaLayoutGridBreakPoint>(() => gridRef.value?.breakPoint);\n\n\t\tconst state = reactive({\n\t\t\trefreshing: false,\n\t\t\theight: \"auto\",\n\t\t\t/** 折叠 */\n\t\t\tcollapsed: true,\n\t\t\t/** 显示折叠 */\n\t\t\tshowCollapsed: computed(() => {\n\t\t\t\tlet show = false;\n\t\t\t\ttableState.searchColumns.reduce((prev, current) => {\n\t\t\t\t\tprev +=\n\t\t\t\t\t\t(current.search[breakPoint.value]?.span ?? current.search?.span ?? 1) +\n\t\t\t\t\t\t(current.search[breakPoint.value]?.offset ?? current.search?.offset ?? 0);\n\t\t\t\t\tif (typeof props.cols !== \"number\") {\n\t\t\t\t\t\tif (prev >= props.cols[breakPoint.value]) show = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (prev >= props.cols) show = true;\n\t\t\t\t\t}\n\t\t\t\t\treturn prev;\n\t\t\t\t}, 0);\n\t\t\t\treturn show;\n\t\t\t}),\n\t\t\tsearchColumns: withDefineType<FaTableColumnCtx[]>([]),\n\t\t\tadvancedSearchColumns: withDefineType<FaTableColumnCtx[]>([]),\n\t\t\tbreakPoint: undefined,\n\t\t});\n\n\t\tconst faTableSearchFormRef = ref<HTMLElement>();\n\t\tconst advancedSearchRef = ref<FaDrawerInstance>();\n\n\t\t// 获取响应式设置\n\t\tconst getResponsive = (\n\t\t\titem: FaTableSearchColumnCtx\n\t\t): {\n\t\t\tspan: number;\n\t\t\toffset: number;\n\t\t\txs: FaLayoutGridItemResponsive;\n\t\t\tsm: FaLayoutGridItemResponsive;\n\t\t\tmd: FaLayoutGridItemResponsive;\n\t\t\tlg: FaLayoutGridItemResponsive;\n\t\t\txl: FaLayoutGridItemResponsive;\n\t\t} => {\n\t\t\treturn {\n\t\t\t\tspan: item?.span,\n\t\t\t\toffset: item?.offset ?? 0,\n\t\t\t\txs: item?.xs,\n\t\t\t\tsm: item?.sm,\n\t\t\t\tmd: item?.md,\n\t\t\t\tlg: item?.lg,\n\t\t\t\txl: item?.xl,\n\t\t\t};\n\t\t};\n\n\t\tconst handleBreakPointChange = ({ breakPoint }: { breakPoint: FaLayoutGridBreakPoint }): void => {\n\t\t\t// 这里 -1 是排除固定的\n\t\t\tstate.breakPoint = props.cols[breakPoint] - 1;\n\t\t\tstate.searchColumns = tableState.searchColumns.filter((f) => f?.show).slice(0, state.breakPoint);\n\t\t\tstate.advancedSearchColumns = tableState.searchColumns.filter((f) => f?.show).slice(state.breakPoint);\n\t\t};\n\n\t\twatch(\n\t\t\t() => tableState.searchColumns,\n\t\t\t() => {\n\t\t\t\tif (state.breakPoint) {\n\t\t\t\t\tstate.searchColumns = tableState.searchColumns.filter((f) => f?.show).slice(0, state.breakPoint);\n\t\t\t\t\tstate.advancedSearchColumns = tableState.searchColumns.filter((f) => f?.show).slice(state.breakPoint);\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\n\t\tconst searchColumns = computed(() => (props.advancedSearchDrawer ? state.searchColumns : tableState.searchColumns));\n\n\t\twatch(\n\t\t\t() => props.advancedSearchDrawer,\n\t\t\t(newValue) => {\n\t\t\t\tif (newValue) {\n\t\t\t\t\t// 抽屉默认折叠\n\t\t\t\t\tstate.collapsed = true;\n\t\t\t\t} else {\n\t\t\t\t\tstate.collapsed = props.collapsedSearch;\n\t\t\t\t}\n\t\t\t\tstate.refreshing = true;\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tstate.refreshing = false;\n\t\t\t\t}, 1);\n\t\t\t}\n\t\t);\n\n\t\twatch(\n\t\t\t() => props.collapsedSearch,\n\t\t\t(newValue) => {\n\t\t\t\tif (!props.collapsedSearch) {\n\t\t\t\t\tstate.collapsed = newValue;\n\t\t\t\t} else {\n\t\t\t\t\t// 抽屉默认折叠\n\t\t\t\t\tstate.collapsed = true;\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\timmediate: true,\n\t\t\t}\n\t\t);\n\n\t\tuseRender(\n\t\t\t() =>\n\t\t\t\ttableState.searchColumns.length > 0 && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tref={faTableSearchFormRef}\n\t\t\t\t\t\tclass={[\n\t\t\t\t\t\t\t\"el-card fa-table__search\",\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"fa-table__search-hidden\": !props.show,\n\t\t\t\t\t\t\t\t\"fa-table__search__disable\": tableState.loading,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t]}\n\t\t\t\t\t>\n\t\t\t\t\t\t<form class=\"el-form el-form--default el-form--label-right\">\n\t\t\t\t\t\t\t{!state.refreshing && (\n\t\t\t\t\t\t\t\t<FaLayoutGrid\n\t\t\t\t\t\t\t\t\tref={gridRef}\n\t\t\t\t\t\t\t\t\tcollapsed={state.collapsed}\n\t\t\t\t\t\t\t\t\tgap={_globalSize.value === \"small\" ? [20, 0] : [20, 10]}\n\t\t\t\t\t\t\t\t\tcols={props.cols}\n\t\t\t\t\t\t\t\t\tonBreakPointChange={handleBreakPointChange}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{searchColumns.value.map((item, index) => (\n\t\t\t\t\t\t\t\t\t\t<FaLayoutGridItem key={item?.search?.key ?? item.prop} {...getResponsive(item.search)} index={index}>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"el-form-item el-form-item--default el-form-item--label-right\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label class=\"el-form-item__label\">{item.search.label}</label>\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"el-form-item__content\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{item.search?.slot ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tslots[item.search.slot] &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tslots[item.search.slot]({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolumn: item,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch: props.search,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...getTableDefaultSlots(tableState),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<FaTableSearchFormItem column={item} search={props.search} />\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</FaLayoutGridItem>\n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t<FaLayoutGridItem suffix>\n\t\t\t\t\t\t\t\t\t\t<div class=\"fa-table__search-operation\">\n\t\t\t\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\t\t\t\tloading={tableState.loading}\n\t\t\t\t\t\t\t\t\t\t\t\tloadingIcon={Eleme}\n\t\t\t\t\t\t\t\t\t\t\t\ttitle=\"搜索\"\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"primary\"\n\t\t\t\t\t\t\t\t\t\t\t\tplain\n\t\t\t\t\t\t\t\t\t\t\t\ticon={Refresh}\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => props.search()}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t搜索\n\t\t\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\t\t\t\tloading={tableState.loading}\n\t\t\t\t\t\t\t\t\t\t\t\tloadingIcon={Eleme}\n\t\t\t\t\t\t\t\t\t\t\t\ttitle=\"重置\"\n\t\t\t\t\t\t\t\t\t\t\t\ticon={Brush}\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => props.reset()}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t重置\n\t\t\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t\t\t\t{props.advancedSearchDrawer\n\t\t\t\t\t\t\t\t\t\t\t\t? state.advancedSearchColumns.length > 0 && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tloading={tableState.loading}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tloadingIcon={Eleme}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttitle=\"高级搜索\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"info\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplain\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ticon={Search}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => advancedSearchRef.value.open()}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t高级搜索\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t: state.showCollapsed && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tloading={tableState.loading}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tloadingIcon={Eleme}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttitle={state.collapsed ? \"展开\" : \"折叠\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlink\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"primary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.collapsed = !state.collapsed;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{state.collapsed ? \"展开\" : \"折叠\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElIcon>{state.collapsed ? <ArrowDown /> : <ArrowUp />}</ElIcon>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</FaLayoutGridItem>\n\t\t\t\t\t\t\t\t</FaLayoutGrid>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</form>\n\t\t\t\t\t\t{props.advancedSearchDrawer && state.advancedSearchColumns.length > 0 && (\n\t\t\t\t\t\t\t<FaDrawer\n\t\t\t\t\t\t\t\tref={advancedSearchRef}\n\t\t\t\t\t\t\t\tclass=\"fa-table__search-advanced\"\n\t\t\t\t\t\t\t\tsize=\"20%\"\n\t\t\t\t\t\t\t\ttitle=\"高级搜索\"\n\t\t\t\t\t\t\t\tappendToBody={false}\n\t\t\t\t\t\t\t\tshowCloseButton={false}\n\t\t\t\t\t\t\t\tshowConfirmButton={false}\n\t\t\t\t\t\t\t\tshowFullscreen={false}\n\t\t\t\t\t\t\t\tshowRefresh={false}\n\t\t\t\t\t\t\t\tonConfirmClick={() => props.search()}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<form class=\"el-form el-form--default el-form--label-top\">\n\t\t\t\t\t\t\t\t\t<FaLayoutGrid gap={[20, 0]} cols={{ xs: 2, sm: 3, md: 4, lg: 5, xl: 6 }}>\n\t\t\t\t\t\t\t\t\t\t{state.advancedSearchColumns.map((item, index) => (\n\t\t\t\t\t\t\t\t\t\t\t<FaLayoutGridItem key={item.prop ?? item?.search?.key} {...getResponsive(item.search)} index={index}>\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"el-form-item el-form-item--default el-form-item--label-top\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<label class=\"el-form-item__label\">{item.search.label}</label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"el-form-item__content\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.search.slot ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tslots[item.search.slot] &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tslots[item.search.slot]({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolumn: item,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch: props.search,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...getTableDefaultSlots(tableState),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<FaTableSearchFormItem column={item} search={props.search} />\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</FaLayoutGridItem>\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t</FaLayoutGrid>\n\t\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t\t</FaDrawer>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)\n\t\t);\n\t},\n});\n"],"names":["TableSearchForm","name","props","show","type","Boolean","required","collapsedSearch","default","advancedSearchDrawer","cols","definePropType","String","Number","Object","xs","sm","md","lg","xl","search","Function","reset","slots","makeSlots","setup","expose","_globalSize","useGlobalSize","gridRef","ref","tableState","inject","tableStateKey","breakPoint","computed","value","state","reactive","refreshing","height","collapsed","showCollapsed","searchColumns","reduce","prev","current","span","offset","withDefineType","advancedSearchColumns","undefined","faTableSearchFormRef","advancedSearchRef","getResponsive","item","handleBreakPointChange","filter","f","slice","watch","newValue","setTimeout","immediate","useRender","_slot","length","_createVNode","class","loading","FaLayoutGrid","gap","onBreakPointChange","map","index","FaLayoutGridItem","_mergeProps","key","prop","label","slot","column","getTableDefaultSlots","FaTableSearchFormItem","suffix","ElButton","loadingIcon","Eleme","title","plain","icon","Refresh","onClick","_createTextVNode","Brush","Search","open","link","ElIcon","ArrowDown","ArrowUp","FaDrawer","size","appendToBody","showCloseButton","showConfirmButton","showFullscreen","showRefresh","onConfirmClick","s","prototype","toString","call","_isVNode"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("vue"),e=require("element-plus"),t=require("@fast-china/utils"),r=require("lodash-unified"),o=require("../utils/table.js"),n=require("./table.type.js"),l=Symbol("tableState"),s=Symbol("enumMap");exports.enumMapKey=s,exports.tableStateKey=l,exports.useTable=(i,c,p)=>{const h=e.useGlobalSize(),u=a.ref(),d=a.ref(),g=a.reactive(new Map);a.provide(s,g);const m=a.reactive({loading:!1,loadingText:"加载中...",orgColumns:[],tableColumns:a.computed(()=>m.orgColumns.filter(a=>a.prop&&!a.pureSearch)),searchColumns:a.computed(()=>m.orgColumns.filter(a=>a.pureSearch||a.search).sort((a,e)=>a.search?.order-e.search?.order)),spanColumns:a.computed(()=>[...m.orgColumns.filter(a=>a.spanProp).map(a=>({prop:a?.prop,spanProp:a?.spanProp})),...i.props.span?[{prop:"__table-index",spanProp:i.props.span},{prop:"__table-selection",spanProp:i.props.span},{prop:"__table-operation",spanProp:i.props.span}]:[]]),tableData:[],tableSpanData:a.computed(()=>{if(m.spanColumns?.length>0&&m.tableData?.length>0){const a=[];m.spanColumns.forEach(e=>{a[e.prop]=new Array(m.tableData.length).fill(1,0,1).fill(0,1),a[`${e.prop}-index`]=0});for(let e=1;e<m.tableData.length;e++)m.spanColumns.forEach(t=>{m.tableData[e][t.spanProp]===m.tableData[e-1][t.spanProp]?a[t.prop][a[`${t.prop}-index`]]++:(a[`${t.prop}-index`]=e,a[t.prop][e]=1)});return a}return[]}),tablePagination:{pageIndex:1,pageSize:20,totalRows:0},initParam:{},searchParam:{},searchValueUpdate:"",
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("vue"),e=require("element-plus"),t=require("@fast-china/utils"),r=require("lodash-unified"),o=require("../utils/table.js"),n=require("./table.type.js"),l=Symbol("tableState"),s=Symbol("enumMap");exports.enumMapKey=s,exports.tableStateKey=l,exports.useTable=(i,c,p)=>{const h=e.useGlobalSize(),u=a.ref(),d=a.ref(),g=a.reactive(new Map);a.provide(s,g);const m=a.reactive({loading:!1,loadingText:"加载中...",orgColumns:[],tableColumns:a.computed(()=>m.orgColumns.filter(a=>a.prop&&!a.pureSearch)),searchColumns:a.computed(()=>m.orgColumns.filter(a=>a.pureSearch||a.search).sort((a,e)=>a.search?.order-e.search?.order)),spanColumns:a.computed(()=>[...m.orgColumns.filter(a=>a.spanProp).map(a=>({prop:a?.prop,spanProp:a?.spanProp})),...i.props.span?[{prop:"__table-index",spanProp:i.props.span},{prop:"__table-selection",spanProp:i.props.span},{prop:"__table-operation",spanProp:i.props.span}]:[]]),tableData:[],tableSpanData:a.computed(()=>{if(m.spanColumns?.length>0&&m.tableData?.length>0){const a=[];m.spanColumns.forEach(e=>{a[e.prop]=new Array(m.tableData.length).fill(1,0,1).fill(0,1),a[`${e.prop}-index`]=0});for(let e=1;e<m.tableData.length;e++)m.spanColumns.forEach(t=>{m.tableData[e][t.spanProp]===m.tableData[e-1][t.spanProp]?a[t.prop][a[`${t.prop}-index`]]++:(a[`${t.prop}-index`]=e,a[t.prop][e]=1)});return a}return[]}),tablePagination:{pageIndex:1,pageSize:20,totalRows:0},initParam:{},searchParam:{},searchValueUpdate:"",searchForm:i.searchForm,hideImage:a.computed(()=>i.hideImage),selected:!1,selectedList:[],selectedListIds:a.computed(()=>m.selectedList.map(a=>r.isFunction(i.rowKey)?i.rowKey(a):a[i.rowKey])),indeterminateSelectedListIds:[],responseConfig:void 0,operationColumnWidth:a.computed(()=>{const a=m.autoColumnWidth.find(a=>"__table-operation"===a.prop);if(a)return`${a.width}px`;switch(h.value){case"large":case"default":return"54px";case"small":return"42px";default:return"auto"}}),imagePreview:!1,previewList:[],tableWidth:void 0,tableHeight:void 0,autoColumnWidth:[]});a.provide(l,m);const b=()=>{m.loading=!0,m.loadingText="加载中...",m.autoColumnWidth=[];const e=m.tableColumns.filter(a=>a.autoWidth);if(c?.operation&&e.push({prop:"__table-operation"}),e?.length>0){const t="default"===h.value?25:17;a.nextTick(()=>{const a=document.querySelector(`.fa-table__${i.tableKey}`);a&&e.forEach(e=>{const r=a.querySelector(`.__fa-table__auto-width-column__cell-header__${e?.prop}`),o=a.querySelectorAll(`.__fa-table__auto-width-column__cell__${e?.prop}`);let n=0;r&&(n=Math.ceil(r.scrollWidth)+t,e?.sortable&&(n+=24)),o.forEach(a=>{const e=Math.ceil(a.scrollWidth)+t;e>n&&(n=e)});const l=m.autoColumnWidth.find(a=>a.prop===e?.prop);l?l.width=Math.max(l.width,n):m.autoColumnWidth.push({prop:e?.prop,width:n})})})}m.loading=!1},P=a=>{if(i.treeData){const e=[];return a.forEach(a=>{const t=a[i.props.children];r.isArray(t)?t.forEach(t=>e.push({...a,...t})):e.push({...a,...t||{}})}),e}return a},f=()=>{const a={...m.searchParam,...i.pagination?m.tablePagination:{}};return delete a.totalRows,a},C=async()=>{if(m.loading=!0,m.loadingText="加载中...",i.requestApi){const e=f();p("refresh",e);let r=[];try{const a=await i.requestApi(e);if(i.dataCallback&&i.dataCallback(a),i.pagination){const e=a;r=e.rows,Object.assign(m.tablePagination,{pageIndex:e.pageIndex,pageSize:e.pageSize,totalRows:e.totalRows})}else r=a,Object.assign(m.tablePagination,{pageIndex:1,pageSize:0,totalRows:r.length});m.tableData=P(r)}catch(a){t.consoleError("FaTable",a),m.tableData=[]}finally{m.loading=!1}}else{p("refresh",{searchValue:m.searchParam.searchValue});let a=P(i.data);if(a=a.filter(a=>!m.searchParam.searchValue||m.tableColumns.some(e=>a[e.prop]?.toString()?.toLowerCase().includes(m.searchParam.searchValue?.toLowerCase()))),m.searchParam.sortList?.length>0&&(a=a.sort(o.tableUtil.arrayDynamicSort(m.searchParam.sortList))),i.pagination){Object.assign(m.tablePagination,{totalRows:a.length});const e=(m.tablePagination.pageIndex-1)*m.tablePagination.pageSize,t=e+m.tablePagination.pageSize;m.tableData=a.slice(e,t)}else m.tableData=a,Object.assign(m.tablePagination,{pageIndex:1,pageSize:0,totalRows:a.length});m.loading=!1}b()},w=()=>{let a=i.columns;a.forEach(a=>{(a.pureSearch||a.search)&&(a.search.key??=a.prop,a.search.label??=a.label,a.search.defaultValue&&(m.searchParam[a.search.key]=a.search.defaultValue))}),a=a.sort((a,e)=>a?.order-e?.order),m.orgColumns=o.tableUtil.flatColumns(a,g)},y=()=>{if(i.hideSearchTime)m.searchParam.searchTimeList=void 0;else{const a=new Date,t=new Date;switch(i.dataSearchRange){case"Past1D":t.setDate(t.getDate()-1);break;case"Past3D":t.setDate(t.getDate()-3);break;case"Past1W":t.setDate(t.getDate()-7);break;case"Past1M":t.setMonth(t.getMonth()-1);break;case"Past3M":t.setMonth(t.getMonth()-3);break;case"Past6M":t.setMonth(t.getMonth()-6);break;case"Past1Y":t.setFullYear(t.getFullYear()-1);break;case"Past3Y":t.setFullYear(t.getFullYear()-3)}m.searchParam.searchTimeList=[e.dayjs(t).format("YYYY-MM-DD 00:00:00"),e.dayjs(a).format("YYYY-MM-DD 23:59:59")]}},S=async()=>{m.tablePagination.pageIndex=1,(()=>{const a={};for(const e in m.searchParam)m.searchParam[e]||!1===m.searchParam[e]||0===m.searchParam[e]?a[e]=m.searchParam[e]:m.searchParam[e]||delete m.searchParam[e];Object.assign(m.searchParam,a)})(),await C()},x=async()=>{m.orgColumns=[],m.autoColumnWidth=[],m.tableData=[],await t.clickUtil.debounceAsync(async()=>{w(),await S()},300)};return a.watch(()=>i.tableKey,async()=>{await x()}),a.watch(()=>i.searchForm,a=>{m.searchForm=a}),{_globalSize:h,state:m,elementRef:u,tableRef:d,handleTableColumnAutoWidth:b,getRequestParam:f,loadTableColumns:w,handleSizeChange:a=>{m.tablePagination.pageIndex=1,m.tablePagination.pageSize=a,p("sizeChange",a),p("paginationChange",1,a),C()},handlePaginationChange:a=>{m.tablePagination.pageIndex=a,p("sizeChange",m.tablePagination.pageSize),p("paginationChange",a,m.tablePagination.pageSize),C()},defaultSearchTime:y,tableSearch:S,tableReset:async()=>{m.tablePagination.pageIndex=1,m.searchParam={},y(),Object.keys(m.initParam??{}).forEach(a=>{m.searchParam[a]=m.initParam[a]}),p("reset",m.searchParam),await C()},doRender:x,doLoading:(a,e="加载中...")=>{m.loading=!0,m.loadingText=e,t.execFunction(a).then().catch(a=>{t.consoleError("FaTable",a)}).finally(()=>{m.loading=!1})},handleCustomCellClick:(a,{row:e,column:t,$index:r})=>{p("customCellClick",a,{row:e,column:t,$index:r,...n.getTableDefaultSlots(m)})}}};
|
|
2
2
|
//# sourceMappingURL=useTable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTable.js","sources":["../../../../../packages/components/table/src/useTable.ts"],"sourcesContent":["import { computed, nextTick, provide, reactive, ref, watch } from \"vue\";\nimport { dayjs, useGlobalSize } from \"element-plus\";\nimport { clickUtil, consoleError, execFunction, type makeSlots } from \"@fast-china/utils\";\nimport { isArray, isFunction } from \"lodash-unified\";\nimport { tableUtil } from \"../utils/table\";\nimport { getTableDefaultSlots } from \"./table.type\";\nimport type { PagedInput, PagedResult } from \"./page.type\";\nimport type { FaTableSlots, faTableEmits, faTableProps } from \"./table\";\nimport type { FaTableState } from \"./table.state\";\nimport type { FaTableColumnCtx, FaTableEnumColumnCtx } from \"./table.type\";\nimport type { TableInstance } from \"element-plus\";\nimport type { ExtractPropTypes, InjectionKey, SetupContext } from \"vue\";\n\nexport const tableStateKey: InjectionKey<FaTableState> = Symbol(\"tableState\");\nexport const enumMapKey: InjectionKey<Map<string, FaTableEnumColumnCtx[]>> = Symbol(\"enumMap\");\n\ntype TableSetupContext = SetupContext<typeof faTableEmits, ReturnType<typeof makeSlots<FaTableSlots>>>;\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type, @typescript-eslint/explicit-module-boundary-types\nexport const useTable = (props: ExtractPropTypes<typeof faTableProps>, slots: TableSetupContext[\"slots\"], emit: TableSetupContext[\"emit\"]) => {\n\tconst _globalSize = useGlobalSize();\n\n\tconst elementRef = ref<HTMLElement>();\n\tconst tableRef = ref<TableInstance>();\n\n\t/**\n\t * 定义 enumMap 存储 enum 值(避免异步请求无法格式化单元格内容 || 无法填充搜索下拉选择)\n\t */\n\tconst enumMap = reactive(new Map<string, FaTableEnumColumnCtx[]>());\n\tprovide(enumMapKey, enumMap);\n\n\tconst state: FaTableState = reactive({\n\t\tloading: false,\n\t\tloadingText: \"加载中...\",\n\t\torgColumns: [],\n\t\ttableColumns: computed(() => state.orgColumns.filter((f) => f.prop && !f.pureSearch)),\n\t\tsearchColumns: computed(() =>\n\t\t\tstate.orgColumns\n\t\t\t\t.filter((f) => f.pureSearch || f.search)\n\t\t\t\t.sort((a, b) => {\n\t\t\t\t\treturn a.search?.order - b.search?.order;\n\t\t\t\t})\n\t\t),\n\t\tspanColumns: computed(() => [\n\t\t\t...state.orgColumns\n\t\t\t\t.filter((f) => f.spanProp)\n\t\t\t\t.map((col) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tprop: col?.prop,\n\t\t\t\t\t\tspanProp: col?.spanProp,\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t...(props.props.span\n\t\t\t\t? [\n\t\t\t\t\t\t{ prop: \"__table-index\", spanProp: props.props.span },\n\t\t\t\t\t\t{ prop: \"__table-selection\", spanProp: props.props.span },\n\t\t\t\t\t\t{ prop: \"__table-operation\", spanProp: props.props.span },\n\t\t\t\t\t]\n\t\t\t\t: []),\n\t\t]),\n\t\ttableData: [],\n\t\ttableSpanData: computed(() => {\n\t\t\tif (state.spanColumns?.length > 0 && state.tableData?.length > 0) {\n\t\t\t\tconst result = [];\n\t\t\t\tstate.spanColumns.forEach((item) => {\n\t\t\t\t\tresult[item.prop] = new Array(state.tableData.length).fill(1, 0, 1).fill(0, 1);\n\t\t\t\t\tresult[`${item.prop}-index`] = 0;\n\t\t\t\t});\n\t\t\t\tfor (let i = 1; i < state.tableData.length; i++) {\n\t\t\t\t\tstate.spanColumns.forEach((item) => {\n\t\t\t\t\t\tif (state.tableData[i][item.spanProp] === state.tableData[i - 1][item.spanProp]) {\n\t\t\t\t\t\t\tresult[item.prop][result[`${item.prop}-index`]]++;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult[`${item.prop}-index`] = i;\n\t\t\t\t\t\t\tresult[item.prop][i] = 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\treturn [];\n\t\t}),\n\t\ttablePagination: {\n\t\t\tpageIndex: 1,\n\t\t\tpageSize: 20,\n\t\t\ttotalRows: 0,\n\t\t},\n\t\tinitParam: {},\n\t\tsearchParam: {},\n\t\tsearchValueUpdate: \"\",\n\t\tshowSearch: props.showSearch,\n\t\thideImage: computed(() => props.hideImage),\n\t\tselected: false,\n\t\tselectedList: [],\n\t\tselectedListIds: computed(() => state.selectedList.map((item) => (isFunction(props.rowKey) ? props.rowKey(item) : item[props.rowKey]))),\n\t\tindeterminateSelectedListIds: [],\n\t\tresponseConfig: undefined,\n\t\toperationColumnWidth: computed(() => {\n\t\t\tconst findAutoCol = state.autoColumnWidth.find((f) => f.prop === \"__table-operation\");\n\t\t\tif (findAutoCol) {\n\t\t\t\treturn `${findAutoCol.width}px`;\n\t\t\t}\n\t\t\tswitch (_globalSize.value) {\n\t\t\t\tcase \"large\":\n\t\t\t\tcase \"default\":\n\t\t\t\t\treturn \"54px\";\n\t\t\t\tcase \"small\":\n\t\t\t\t\treturn \"42px\";\n\t\t\t\tdefault:\n\t\t\t\t\treturn \"auto\";\n\t\t\t}\n\t\t}),\n\t\timagePreview: false,\n\t\tpreviewList: [],\n\t\ttableWidth: undefined,\n\t\ttableHeight: undefined,\n\t\tautoColumnWidth: [],\n\t});\n\n\tprovide(tableStateKey, state);\n\n\tconst handleTableColumnAutoWidth = (): void => {\n\t\tstate.loading = true;\n\t\tstate.loadingText = \"加载中...\";\n\t\tstate.autoColumnWidth = [];\n\t\tconst autoWidthColumns = state.tableColumns.filter((f) => f.autoWidth);\n\t\tif (slots?.operation) {\n\t\t\t// 操作列自动宽度\n\t\t\tautoWidthColumns.push({\n\t\t\t\tprop: \"__table-operation\",\n\t\t\t});\n\t\t}\n\t\tif (autoWidthColumns?.length > 0) {\n\t\t\t// padding24/16 + border1\n\t\t\tconst otherWidth = _globalSize.value === \"default\" ? 25 : 17;\n\t\t\tnextTick(() => {\n\t\t\t\tconst tableDom = document.querySelector(`.fa-table__${props.tableKey}`);\n\t\t\t\tif (tableDom) {\n\t\t\t\t\tautoWidthColumns.forEach((item) => {\n\t\t\t\t\t\tconst headerColumnDom = tableDom.querySelector(`.__fa-table__auto-width-column__cell-header__${item?.prop}`);\n\t\t\t\t\t\tconst cellColumnDoms = tableDom.querySelectorAll(`.__fa-table__auto-width-column__cell__${item?.prop}`);\n\t\t\t\t\t\tlet maxWidth = 0;\n\t\t\t\t\t\tif (headerColumnDom) {\n\t\t\t\t\t\t\tmaxWidth = Math.ceil(headerColumnDom.scrollWidth) + otherWidth;\n\t\t\t\t\t\t\tif (item?.sortable) {\n\t\t\t\t\t\t\t\tmaxWidth += 24;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcellColumnDoms.forEach((cellDom) => {\n\t\t\t\t\t\t\tconst curWidth = Math.ceil(cellDom.scrollWidth) + otherWidth;\n\t\t\t\t\t\t\tif (curWidth > maxWidth) {\n\t\t\t\t\t\t\t\tmaxWidth = curWidth;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tconst findInfo = state.autoColumnWidth.find((f) => f.prop === item?.prop);\n\t\t\t\t\t\tif (findInfo) {\n\t\t\t\t\t\t\tfindInfo.width = Math.max(findInfo.width, maxWidth);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tstate.autoColumnWidth.push({\n\t\t\t\t\t\t\t\tprop: item?.prop,\n\t\t\t\t\t\t\t\twidth: maxWidth,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tstate.loading = false;\n\t};\n\n\tconst handleTableData = (data: any[]): any[] => {\n\t\tif (props.treeData) {\n\t\t\tconst result: any[] = [];\n\t\t\tdata.forEach((row) => {\n\t\t\t\tconst rowList = row[props.props.children];\n\t\t\t\tif (isArray(rowList)) {\n\t\t\t\t\t// 如果 rowList 是数组,遍历并合并每个子项\n\t\t\t\t\trowList.forEach((cRow) => result.push({ ...row, ...cRow }));\n\t\t\t\t} else {\n\t\t\t\t\tresult.push({ ...row, ...(rowList || {}) });\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn result;\n\t\t} else {\n\t\t\treturn data;\n\t\t}\n\t};\n\n\tconst getRequestParam = (): PagedInput => {\n\t\tconst params = { ...state.searchParam, ...(props.pagination ? state.tablePagination : {}) };\n\t\t// 删除总条数\n\t\tdelete params.totalRows;\n\t\treturn params;\n\t};\n\n\tconst loadData = async (): Promise<void> => {\n\t\tstate.loading = true;\n\t\tstate.loadingText = \"加载中...\";\n\t\tif (props.requestApi) {\n\t\t\tconst params = getRequestParam();\n\t\t\temit(\"refresh\", params);\n\t\t\tlet pageData = [];\n\t\t\ttry {\n\t\t\t\tconst resData = await props.requestApi(params);\n\t\t\t\t// 数据回调\n\t\t\t\tprops.dataCallback && props.dataCallback(resData);\n\t\t\t\t// 解析 API 接口返回的分页数据(如果有分页更新分页信息)\n\t\t\t\tif (props.pagination) {\n\t\t\t\t\tconst pageRes = resData as PagedResult;\n\t\t\t\t\tpageData = pageRes.rows;\n\t\t\t\t\t// 更新分页信息\n\t\t\t\t\tObject.assign(state.tablePagination, {\n\t\t\t\t\t\tpageIndex: pageRes.pageIndex,\n\t\t\t\t\t\tpageSize: pageRes.pageSize,\n\t\t\t\t\t\ttotalRows: pageRes.totalRows,\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tpageData = resData as any[];\n\t\t\t\t\t// 更新分页信息\n\t\t\t\t\tObject.assign(state.tablePagination, {\n\t\t\t\t\t\tpageIndex: 1,\n\t\t\t\t\t\tpageSize: 0,\n\t\t\t\t\t\ttotalRows: pageData.length,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tstate.tableData = handleTableData(pageData);\n\t\t\t} catch (error) {\n\t\t\t\tconsoleError(\"FaTable\", error);\n\t\t\t\tstate.tableData = [];\n\t\t\t} finally {\n\t\t\t\tstate.loading = false;\n\t\t\t}\n\t\t} else {\n\t\t\temit(\"refresh\", { searchValue: state.searchParam.searchValue });\n\t\t\tlet _value = handleTableData(props.data);\n\t\t\t_value = _value.filter((f) => {\n\t\t\t\tif (!state.searchParam.searchValue) return true;\n\t\t\t\treturn state.tableColumns.some((col) => {\n\t\t\t\t\treturn f[col.prop]?.toString()?.toLowerCase().includes(state.searchParam.searchValue?.toLowerCase());\n\t\t\t\t});\n\t\t\t});\n\t\t\tif (state.searchParam.sortList?.length > 0) {\n\t\t\t\t_value = _value.sort(tableUtil.arrayDynamicSort(state.searchParam.sortList));\n\t\t\t}\n\t\t\tif (props.pagination) {\n\t\t\t\t// 更新分页信息\n\t\t\t\tObject.assign(state.tablePagination, {\n\t\t\t\t\ttotalRows: _value.length,\n\t\t\t\t});\n\t\t\t\tconst pageStart = (state.tablePagination.pageIndex - 1) * state.tablePagination.pageSize;\n\t\t\t\tconst pageEnd = pageStart + state.tablePagination.pageSize;\n\t\t\t\tstate.tableData = _value.slice(pageStart, pageEnd);\n\t\t\t} else {\n\t\t\t\tstate.tableData = _value;\n\t\t\t\t// 更新分页信息\n\t\t\t\tObject.assign(state.tablePagination, {\n\t\t\t\t\tpageIndex: 1,\n\t\t\t\t\tpageSize: 0,\n\t\t\t\t\ttotalRows: _value.length,\n\t\t\t\t});\n\t\t\t}\n\t\t\tstate.loading = false;\n\t\t}\n\t\thandleTableColumnAutoWidth();\n\t};\n\n\tconst loadTableColumns = (): void => {\n\t\tlet columns: FaTableColumnCtx[] = props.columns;\n\t\t// 默认值处理\n\t\tcolumns.forEach((col) => {\n\t\t\t// 处理搜索项的 key 和 label\n\t\t\tif (col.pureSearch || col.search) {\n\t\t\t\tcol.search.key ??= col.prop;\n\t\t\t\tcol.search.label ??= col.label;\n\t\t\t\t// 处理默认值\n\t\t\t\tif (col.search.defaultValue) {\n\t\t\t\t\tstate.searchParam[col.search.key] = col.search.defaultValue;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t// 排序\n\t\tcolumns = columns.sort((a, b) => {\n\t\t\treturn a?.order - b?.order;\n\t\t});\n\n\t\t// TODO:这里的扁平化暂时没用到\n\t\tstate.orgColumns = tableUtil.flatColumns(columns, enumMap);\n\t};\n\n\tconst handleSizeChange = (pageSize: number): void => {\n\t\tstate.tablePagination.pageIndex = 1;\n\t\tstate.tablePagination.pageSize = pageSize;\n\t\temit(\"sizeChange\", pageSize);\n\t\temit(\"paginationChange\", 1, pageSize);\n\t\tloadData();\n\t};\n\tconst handlePaginationChange = (val: number): void => {\n\t\tstate.tablePagination.pageIndex = val;\n\t\temit(\"sizeChange\", state.tablePagination.pageSize);\n\t\temit(\"paginationChange\", val, state.tablePagination.pageSize);\n\t\tloadData();\n\t};\n\n\tconst updatedTotalParam = (): void => {\n\t\t// 处理查询参数,可以给查询参数加自定义前缀操作\n\t\tconst newSearchParam = {};\n\t\t// 防止手动清空输入框携带参数(这里可以自定义查询参数前缀)\n\t\tfor (const key in state.searchParam) {\n\t\t\t// * 某些情况下参数为 false/0 也应该携带参数\n\t\t\tif (state.searchParam[key] || state.searchParam[key] === false || state.searchParam[key] === 0) {\n\t\t\t\tnewSearchParam[key] = state.searchParam[key];\n\t\t\t}\n\t\t\t// 处理某些情况下如果为空字符串,其实是不需要传到后端的\n\t\t\telse if (!state.searchParam[key]) {\n\t\t\t\tdelete state.searchParam[key];\n\t\t\t}\n\t\t}\n\t\tObject.assign(state.searchParam, newSearchParam);\n\t};\n\n\tconst defaultSearchTime = (): void => {\n\t\tif (props.hideSearchTime) {\n\t\t\tstate.searchParam.searchTimeList = undefined;\n\t\t} else {\n\t\t\tconst end = new Date();\n\t\t\tconst start = new Date();\n\t\t\tswitch (props.dataSearchRange) {\n\t\t\t\tcase \"Past1D\":\n\t\t\t\t\tstart.setDate(start.getDate() - 1);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past3D\":\n\t\t\t\t\tstart.setDate(start.getDate() - 3);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past1W\":\n\t\t\t\t\tstart.setDate(start.getDate() - 7);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past1M\":\n\t\t\t\t\tstart.setMonth(start.getMonth() - 1);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past3M\":\n\t\t\t\t\tstart.setMonth(start.getMonth() - 3);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past6M\":\n\t\t\t\t\tstart.setMonth(start.getMonth() - 6);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past1Y\":\n\t\t\t\t\tstart.setFullYear(start.getFullYear() - 1);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past3Y\":\n\t\t\t\t\tstart.setFullYear(start.getFullYear() - 3);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tstate.searchParam.searchTimeList = [dayjs(start).format(\"YYYY-MM-DD 00:00:00\"), dayjs(end).format(\"YYYY-MM-DD 23:59:59\")];\n\t\t}\n\t};\n\n\tconst tableSearch = async (): Promise<void> => {\n\t\t// 重置到第一页\n\t\tstate.tablePagination.pageIndex = 1;\n\t\tupdatedTotalParam();\n\t\tawait loadData();\n\t};\n\n\tconst tableReset = async (): Promise<void> => {\n\t\t// 重置到第一页\n\t\tstate.tablePagination.pageIndex = 1;\n\t\t// 清除搜索条件\n\t\tstate.searchParam = {};\n\t\tdefaultSearchTime();\n\t\t// 重置搜索表单的时候,如果有默认搜索参数,则重置默认的搜索参数\n\t\tObject.keys(state.initParam ?? {}).forEach((key) => {\n\t\t\tstate.searchParam[key] = state.initParam[key];\n\t\t});\n\t\temit(\"reset\", state.searchParam);\n\t\tawait loadData();\n\t};\n\n\tconst doRender = async (): Promise<void> => {\n\t\tstate.orgColumns = [];\n\t\tstate.autoColumnWidth = [];\n\t\tstate.tableData = [];\n\t\tawait clickUtil.debounceAsync(async () => {\n\t\t\tloadTableColumns();\n\t\t\tawait tableSearch();\n\t\t}, 300);\n\t};\n\n\tconst doLoading = (loadingFunction: () => void | Promise<void>, loadingText = \"加载中...\"): void => {\n\t\tstate.loading = true;\n\t\tstate.loadingText = loadingText;\n\t\texecFunction(loadingFunction)\n\t\t\t.then()\n\t\t\t.catch((error) => {\n\t\t\t\tconsoleError(\"FaTable\", error);\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tstate.loading = false;\n\t\t\t});\n\t};\n\n\tconst handleCustomCellClick = (emitName: string, { row, column, $index }: { row: any; column: FaTableColumnCtx; $index: number }): void => {\n\t\temit(\"customCellClick\", emitName, { row, column, $index, ...getTableDefaultSlots(state) });\n\t};\n\n\twatch(\n\t\t() => props.tableKey,\n\t\tasync () => {\n\t\t\tawait doRender();\n\t\t}\n\t);\n\n\twatch(\n\t\t() => props.showSearch,\n\t\t(newValue) => {\n\t\t\tstate.showSearch = newValue;\n\t\t}\n\t);\n\n\treturn {\n\t\t_globalSize,\n\t\tstate,\n\t\telementRef,\n\t\ttableRef,\n\t\thandleTableColumnAutoWidth,\n\t\tgetRequestParam,\n\t\tloadTableColumns,\n\t\thandleSizeChange,\n\t\thandlePaginationChange,\n\t\tdefaultSearchTime,\n\t\ttableSearch,\n\t\ttableReset,\n\t\tdoRender,\n\t\tdoLoading,\n\t\thandleCustomCellClick,\n\t};\n};\n"],"names":["tableStateKey","Symbol","enumMapKey","props","slots","emit","_globalSize","useGlobalSize","elementRef","ref","tableRef","enumMap","reactive","Map","provide","state","loading","loadingText","orgColumns","tableColumns","computed","filter","f","prop","pureSearch","searchColumns","search","sort","a","b","order","spanColumns","spanProp","map","col","span","tableData","tableSpanData","length","result","forEach","item","Array","fill","i","tablePagination","pageIndex","pageSize","totalRows","initParam","searchParam","searchValueUpdate","showSearch","hideImage","selected","selectedList","selectedListIds","isFunction","rowKey","indeterminateSelectedListIds","responseConfig","operationColumnWidth","findAutoCol","autoColumnWidth","find","width","value","imagePreview","previewList","tableWidth","tableHeight","handleTableColumnAutoWidth","autoWidthColumns","autoWidth","operation","push","otherWidth","nextTick","tableDom","document","querySelector","tableKey","headerColumnDom","cellColumnDoms","querySelectorAll","maxWidth","Math","ceil","scrollWidth","sortable","cellDom","curWidth","findInfo","max","handleTableData","data","treeData","row","rowList","children","isArray","cRow","getRequestParam","params","pagination","loadData","async","requestApi","pageData","resData","dataCallback","pageRes","rows","Object","assign","error","consoleError","searchValue","_value","some","toString","toLowerCase","includes","sortList","tableUtil","arrayDynamicSort","pageStart","pageEnd","slice","loadTableColumns","columns","key","label","defaultValue","flatColumns","defaultSearchTime","hideSearchTime","searchTimeList","end","Date","start","dataSearchRange","setDate","getDate","setMonth","getMonth","setFullYear","getFullYear","dayjs","format","tableSearch","newSearchParam","updatedTotalParam","doRender","clickUtil","debounceAsync","watch","newValue","handleSizeChange","handlePaginationChange","val","tableReset","keys","doLoading","loadingFunction","execFunction","then","catch","finally","handleCustomCellClick","emitName","column","$index","getTableDefaultSlots"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useTable.js","sources":["../../../../../packages/components/table/src/useTable.ts"],"sourcesContent":["import { computed, nextTick, provide, reactive, ref, watch } from \"vue\";\nimport { dayjs, useGlobalSize } from \"element-plus\";\nimport { clickUtil, consoleError, execFunction, type makeSlots } from \"@fast-china/utils\";\nimport { isArray, isFunction } from \"lodash-unified\";\nimport { tableUtil } from \"../utils/table\";\nimport { getTableDefaultSlots } from \"./table.type\";\nimport type { PagedInput, PagedResult } from \"./page.type\";\nimport type { FaTableSlots, faTableEmits, faTableProps } from \"./table\";\nimport type { FaTableState } from \"./table.state\";\nimport type { FaTableColumnCtx, FaTableEnumColumnCtx } from \"./table.type\";\nimport type { TableInstance } from \"element-plus\";\nimport type { ExtractPropTypes, InjectionKey, SetupContext } from \"vue\";\n\nexport const tableStateKey: InjectionKey<FaTableState> = Symbol(\"tableState\");\nexport const enumMapKey: InjectionKey<Map<string, FaTableEnumColumnCtx[]>> = Symbol(\"enumMap\");\n\ntype TableSetupContext = SetupContext<typeof faTableEmits, ReturnType<typeof makeSlots<FaTableSlots>>>;\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type, @typescript-eslint/explicit-module-boundary-types\nexport const useTable = (props: ExtractPropTypes<typeof faTableProps>, slots: TableSetupContext[\"slots\"], emit: TableSetupContext[\"emit\"]) => {\n\tconst _globalSize = useGlobalSize();\n\n\tconst elementRef = ref<HTMLElement>();\n\tconst tableRef = ref<TableInstance>();\n\n\t/**\n\t * 定义 enumMap 存储 enum 值(避免异步请求无法格式化单元格内容 || 无法填充搜索下拉选择)\n\t */\n\tconst enumMap = reactive(new Map<string, FaTableEnumColumnCtx[]>());\n\tprovide(enumMapKey, enumMap);\n\n\tconst state: FaTableState = reactive({\n\t\tloading: false,\n\t\tloadingText: \"加载中...\",\n\t\torgColumns: [],\n\t\ttableColumns: computed(() => state.orgColumns.filter((f) => f.prop && !f.pureSearch)),\n\t\tsearchColumns: computed(() =>\n\t\t\tstate.orgColumns\n\t\t\t\t.filter((f) => f.pureSearch || f.search)\n\t\t\t\t.sort((a, b) => {\n\t\t\t\t\treturn a.search?.order - b.search?.order;\n\t\t\t\t})\n\t\t),\n\t\tspanColumns: computed(() => [\n\t\t\t...state.orgColumns\n\t\t\t\t.filter((f) => f.spanProp)\n\t\t\t\t.map((col) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tprop: col?.prop,\n\t\t\t\t\t\tspanProp: col?.spanProp,\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t...(props.props.span\n\t\t\t\t? [\n\t\t\t\t\t\t{ prop: \"__table-index\", spanProp: props.props.span },\n\t\t\t\t\t\t{ prop: \"__table-selection\", spanProp: props.props.span },\n\t\t\t\t\t\t{ prop: \"__table-operation\", spanProp: props.props.span },\n\t\t\t\t\t]\n\t\t\t\t: []),\n\t\t]),\n\t\ttableData: [],\n\t\ttableSpanData: computed(() => {\n\t\t\tif (state.spanColumns?.length > 0 && state.tableData?.length > 0) {\n\t\t\t\tconst result = [];\n\t\t\t\tstate.spanColumns.forEach((item) => {\n\t\t\t\t\tresult[item.prop] = new Array(state.tableData.length).fill(1, 0, 1).fill(0, 1);\n\t\t\t\t\tresult[`${item.prop}-index`] = 0;\n\t\t\t\t});\n\t\t\t\tfor (let i = 1; i < state.tableData.length; i++) {\n\t\t\t\t\tstate.spanColumns.forEach((item) => {\n\t\t\t\t\t\tif (state.tableData[i][item.spanProp] === state.tableData[i - 1][item.spanProp]) {\n\t\t\t\t\t\t\tresult[item.prop][result[`${item.prop}-index`]]++;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult[`${item.prop}-index`] = i;\n\t\t\t\t\t\t\tresult[item.prop][i] = 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\treturn [];\n\t\t}),\n\t\ttablePagination: {\n\t\t\tpageIndex: 1,\n\t\t\tpageSize: 20,\n\t\t\ttotalRows: 0,\n\t\t},\n\t\tinitParam: {},\n\t\tsearchParam: {},\n\t\tsearchValueUpdate: \"\",\n\t\tsearchForm: props.searchForm,\n\t\thideImage: computed(() => props.hideImage),\n\t\tselected: false,\n\t\tselectedList: [],\n\t\tselectedListIds: computed(() => state.selectedList.map((item) => (isFunction(props.rowKey) ? props.rowKey(item) : item[props.rowKey]))),\n\t\tindeterminateSelectedListIds: [],\n\t\tresponseConfig: undefined,\n\t\toperationColumnWidth: computed(() => {\n\t\t\tconst findAutoCol = state.autoColumnWidth.find((f) => f.prop === \"__table-operation\");\n\t\t\tif (findAutoCol) {\n\t\t\t\treturn `${findAutoCol.width}px`;\n\t\t\t}\n\t\t\tswitch (_globalSize.value) {\n\t\t\t\tcase \"large\":\n\t\t\t\tcase \"default\":\n\t\t\t\t\treturn \"54px\";\n\t\t\t\tcase \"small\":\n\t\t\t\t\treturn \"42px\";\n\t\t\t\tdefault:\n\t\t\t\t\treturn \"auto\";\n\t\t\t}\n\t\t}),\n\t\timagePreview: false,\n\t\tpreviewList: [],\n\t\ttableWidth: undefined,\n\t\ttableHeight: undefined,\n\t\tautoColumnWidth: [],\n\t});\n\n\tprovide(tableStateKey, state);\n\n\tconst handleTableColumnAutoWidth = (): void => {\n\t\tstate.loading = true;\n\t\tstate.loadingText = \"加载中...\";\n\t\tstate.autoColumnWidth = [];\n\t\tconst autoWidthColumns = state.tableColumns.filter((f) => f.autoWidth);\n\t\tif (slots?.operation) {\n\t\t\t// 操作列自动宽度\n\t\t\tautoWidthColumns.push({\n\t\t\t\tprop: \"__table-operation\",\n\t\t\t});\n\t\t}\n\t\tif (autoWidthColumns?.length > 0) {\n\t\t\t// padding24/16 + border1\n\t\t\tconst otherWidth = _globalSize.value === \"default\" ? 25 : 17;\n\t\t\tnextTick(() => {\n\t\t\t\tconst tableDom = document.querySelector(`.fa-table__${props.tableKey}`);\n\t\t\t\tif (tableDom) {\n\t\t\t\t\tautoWidthColumns.forEach((item) => {\n\t\t\t\t\t\tconst headerColumnDom = tableDom.querySelector(`.__fa-table__auto-width-column__cell-header__${item?.prop}`);\n\t\t\t\t\t\tconst cellColumnDoms = tableDom.querySelectorAll(`.__fa-table__auto-width-column__cell__${item?.prop}`);\n\t\t\t\t\t\tlet maxWidth = 0;\n\t\t\t\t\t\tif (headerColumnDom) {\n\t\t\t\t\t\t\tmaxWidth = Math.ceil(headerColumnDom.scrollWidth) + otherWidth;\n\t\t\t\t\t\t\tif (item?.sortable) {\n\t\t\t\t\t\t\t\tmaxWidth += 24;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcellColumnDoms.forEach((cellDom) => {\n\t\t\t\t\t\t\tconst curWidth = Math.ceil(cellDom.scrollWidth) + otherWidth;\n\t\t\t\t\t\t\tif (curWidth > maxWidth) {\n\t\t\t\t\t\t\t\tmaxWidth = curWidth;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tconst findInfo = state.autoColumnWidth.find((f) => f.prop === item?.prop);\n\t\t\t\t\t\tif (findInfo) {\n\t\t\t\t\t\t\tfindInfo.width = Math.max(findInfo.width, maxWidth);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tstate.autoColumnWidth.push({\n\t\t\t\t\t\t\t\tprop: item?.prop,\n\t\t\t\t\t\t\t\twidth: maxWidth,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tstate.loading = false;\n\t};\n\n\tconst handleTableData = (data: any[]): any[] => {\n\t\tif (props.treeData) {\n\t\t\tconst result: any[] = [];\n\t\t\tdata.forEach((row) => {\n\t\t\t\tconst rowList = row[props.props.children];\n\t\t\t\tif (isArray(rowList)) {\n\t\t\t\t\t// 如果 rowList 是数组,遍历并合并每个子项\n\t\t\t\t\trowList.forEach((cRow) => result.push({ ...row, ...cRow }));\n\t\t\t\t} else {\n\t\t\t\t\tresult.push({ ...row, ...(rowList || {}) });\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn result;\n\t\t} else {\n\t\t\treturn data;\n\t\t}\n\t};\n\n\tconst getRequestParam = (): PagedInput => {\n\t\tconst params = { ...state.searchParam, ...(props.pagination ? state.tablePagination : {}) };\n\t\t// 删除总条数\n\t\tdelete params.totalRows;\n\t\treturn params;\n\t};\n\n\tconst loadData = async (): Promise<void> => {\n\t\tstate.loading = true;\n\t\tstate.loadingText = \"加载中...\";\n\t\tif (props.requestApi) {\n\t\t\tconst params = getRequestParam();\n\t\t\temit(\"refresh\", params);\n\t\t\tlet pageData = [];\n\t\t\ttry {\n\t\t\t\tconst resData = await props.requestApi(params);\n\t\t\t\t// 数据回调\n\t\t\t\tprops.dataCallback && props.dataCallback(resData);\n\t\t\t\t// 解析 API 接口返回的分页数据(如果有分页更新分页信息)\n\t\t\t\tif (props.pagination) {\n\t\t\t\t\tconst pageRes = resData as PagedResult;\n\t\t\t\t\tpageData = pageRes.rows;\n\t\t\t\t\t// 更新分页信息\n\t\t\t\t\tObject.assign(state.tablePagination, {\n\t\t\t\t\t\tpageIndex: pageRes.pageIndex,\n\t\t\t\t\t\tpageSize: pageRes.pageSize,\n\t\t\t\t\t\ttotalRows: pageRes.totalRows,\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tpageData = resData as any[];\n\t\t\t\t\t// 更新分页信息\n\t\t\t\t\tObject.assign(state.tablePagination, {\n\t\t\t\t\t\tpageIndex: 1,\n\t\t\t\t\t\tpageSize: 0,\n\t\t\t\t\t\ttotalRows: pageData.length,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tstate.tableData = handleTableData(pageData);\n\t\t\t} catch (error) {\n\t\t\t\tconsoleError(\"FaTable\", error);\n\t\t\t\tstate.tableData = [];\n\t\t\t} finally {\n\t\t\t\tstate.loading = false;\n\t\t\t}\n\t\t} else {\n\t\t\temit(\"refresh\", { searchValue: state.searchParam.searchValue });\n\t\t\tlet _value = handleTableData(props.data);\n\t\t\t_value = _value.filter((f) => {\n\t\t\t\tif (!state.searchParam.searchValue) return true;\n\t\t\t\treturn state.tableColumns.some((col) => {\n\t\t\t\t\treturn f[col.prop]?.toString()?.toLowerCase().includes(state.searchParam.searchValue?.toLowerCase());\n\t\t\t\t});\n\t\t\t});\n\t\t\tif (state.searchParam.sortList?.length > 0) {\n\t\t\t\t_value = _value.sort(tableUtil.arrayDynamicSort(state.searchParam.sortList));\n\t\t\t}\n\t\t\tif (props.pagination) {\n\t\t\t\t// 更新分页信息\n\t\t\t\tObject.assign(state.tablePagination, {\n\t\t\t\t\ttotalRows: _value.length,\n\t\t\t\t});\n\t\t\t\tconst pageStart = (state.tablePagination.pageIndex - 1) * state.tablePagination.pageSize;\n\t\t\t\tconst pageEnd = pageStart + state.tablePagination.pageSize;\n\t\t\t\tstate.tableData = _value.slice(pageStart, pageEnd);\n\t\t\t} else {\n\t\t\t\tstate.tableData = _value;\n\t\t\t\t// 更新分页信息\n\t\t\t\tObject.assign(state.tablePagination, {\n\t\t\t\t\tpageIndex: 1,\n\t\t\t\t\tpageSize: 0,\n\t\t\t\t\ttotalRows: _value.length,\n\t\t\t\t});\n\t\t\t}\n\t\t\tstate.loading = false;\n\t\t}\n\t\thandleTableColumnAutoWidth();\n\t};\n\n\tconst loadTableColumns = (): void => {\n\t\tlet columns: FaTableColumnCtx[] = props.columns;\n\t\t// 默认值处理\n\t\tcolumns.forEach((col) => {\n\t\t\t// 处理搜索项的 key 和 label\n\t\t\tif (col.pureSearch || col.search) {\n\t\t\t\tcol.search.key ??= col.prop;\n\t\t\t\tcol.search.label ??= col.label;\n\t\t\t\t// 处理默认值\n\t\t\t\tif (col.search.defaultValue) {\n\t\t\t\t\tstate.searchParam[col.search.key] = col.search.defaultValue;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t// 排序\n\t\tcolumns = columns.sort((a, b) => {\n\t\t\treturn a?.order - b?.order;\n\t\t});\n\n\t\t// TODO:这里的扁平化暂时没用到\n\t\tstate.orgColumns = tableUtil.flatColumns(columns, enumMap);\n\t};\n\n\tconst handleSizeChange = (pageSize: number): void => {\n\t\tstate.tablePagination.pageIndex = 1;\n\t\tstate.tablePagination.pageSize = pageSize;\n\t\temit(\"sizeChange\", pageSize);\n\t\temit(\"paginationChange\", 1, pageSize);\n\t\tloadData();\n\t};\n\tconst handlePaginationChange = (val: number): void => {\n\t\tstate.tablePagination.pageIndex = val;\n\t\temit(\"sizeChange\", state.tablePagination.pageSize);\n\t\temit(\"paginationChange\", val, state.tablePagination.pageSize);\n\t\tloadData();\n\t};\n\n\tconst updatedTotalParam = (): void => {\n\t\t// 处理查询参数,可以给查询参数加自定义前缀操作\n\t\tconst newSearchParam = {};\n\t\t// 防止手动清空输入框携带参数(这里可以自定义查询参数前缀)\n\t\tfor (const key in state.searchParam) {\n\t\t\t// * 某些情况下参数为 false/0 也应该携带参数\n\t\t\tif (state.searchParam[key] || state.searchParam[key] === false || state.searchParam[key] === 0) {\n\t\t\t\tnewSearchParam[key] = state.searchParam[key];\n\t\t\t}\n\t\t\t// 处理某些情况下如果为空字符串,其实是不需要传到后端的\n\t\t\telse if (!state.searchParam[key]) {\n\t\t\t\tdelete state.searchParam[key];\n\t\t\t}\n\t\t}\n\t\tObject.assign(state.searchParam, newSearchParam);\n\t};\n\n\tconst defaultSearchTime = (): void => {\n\t\tif (props.hideSearchTime) {\n\t\t\tstate.searchParam.searchTimeList = undefined;\n\t\t} else {\n\t\t\tconst end = new Date();\n\t\t\tconst start = new Date();\n\t\t\tswitch (props.dataSearchRange) {\n\t\t\t\tcase \"Past1D\":\n\t\t\t\t\tstart.setDate(start.getDate() - 1);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past3D\":\n\t\t\t\t\tstart.setDate(start.getDate() - 3);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past1W\":\n\t\t\t\t\tstart.setDate(start.getDate() - 7);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past1M\":\n\t\t\t\t\tstart.setMonth(start.getMonth() - 1);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past3M\":\n\t\t\t\t\tstart.setMonth(start.getMonth() - 3);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past6M\":\n\t\t\t\t\tstart.setMonth(start.getMonth() - 6);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past1Y\":\n\t\t\t\t\tstart.setFullYear(start.getFullYear() - 1);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Past3Y\":\n\t\t\t\t\tstart.setFullYear(start.getFullYear() - 3);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tstate.searchParam.searchTimeList = [dayjs(start).format(\"YYYY-MM-DD 00:00:00\"), dayjs(end).format(\"YYYY-MM-DD 23:59:59\")];\n\t\t}\n\t};\n\n\tconst tableSearch = async (): Promise<void> => {\n\t\t// 重置到第一页\n\t\tstate.tablePagination.pageIndex = 1;\n\t\tupdatedTotalParam();\n\t\tawait loadData();\n\t};\n\n\tconst tableReset = async (): Promise<void> => {\n\t\t// 重置到第一页\n\t\tstate.tablePagination.pageIndex = 1;\n\t\t// 清除搜索条件\n\t\tstate.searchParam = {};\n\t\tdefaultSearchTime();\n\t\t// 重置搜索表单的时候,如果有默认搜索参数,则重置默认的搜索参数\n\t\tObject.keys(state.initParam ?? {}).forEach((key) => {\n\t\t\tstate.searchParam[key] = state.initParam[key];\n\t\t});\n\t\temit(\"reset\", state.searchParam);\n\t\tawait loadData();\n\t};\n\n\tconst doRender = async (): Promise<void> => {\n\t\tstate.orgColumns = [];\n\t\tstate.autoColumnWidth = [];\n\t\tstate.tableData = [];\n\t\tawait clickUtil.debounceAsync(async () => {\n\t\t\tloadTableColumns();\n\t\t\tawait tableSearch();\n\t\t}, 300);\n\t};\n\n\tconst doLoading = (loadingFunction: () => void | Promise<void>, loadingText = \"加载中...\"): void => {\n\t\tstate.loading = true;\n\t\tstate.loadingText = loadingText;\n\t\texecFunction(loadingFunction)\n\t\t\t.then()\n\t\t\t.catch((error) => {\n\t\t\t\tconsoleError(\"FaTable\", error);\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tstate.loading = false;\n\t\t\t});\n\t};\n\n\tconst handleCustomCellClick = (emitName: string, { row, column, $index }: { row: any; column: FaTableColumnCtx; $index: number }): void => {\n\t\temit(\"customCellClick\", emitName, { row, column, $index, ...getTableDefaultSlots(state) });\n\t};\n\n\twatch(\n\t\t() => props.tableKey,\n\t\tasync () => {\n\t\t\tawait doRender();\n\t\t}\n\t);\n\n\twatch(\n\t\t() => props.searchForm,\n\t\t(newValue) => {\n\t\t\tstate.searchForm = newValue;\n\t\t}\n\t);\n\n\treturn {\n\t\t_globalSize,\n\t\tstate,\n\t\telementRef,\n\t\ttableRef,\n\t\thandleTableColumnAutoWidth,\n\t\tgetRequestParam,\n\t\tloadTableColumns,\n\t\thandleSizeChange,\n\t\thandlePaginationChange,\n\t\tdefaultSearchTime,\n\t\ttableSearch,\n\t\ttableReset,\n\t\tdoRender,\n\t\tdoLoading,\n\t\thandleCustomCellClick,\n\t};\n};\n"],"names":["tableStateKey","Symbol","enumMapKey","props","slots","emit","_globalSize","useGlobalSize","elementRef","ref","tableRef","enumMap","reactive","Map","provide","state","loading","loadingText","orgColumns","tableColumns","computed","filter","f","prop","pureSearch","searchColumns","search","sort","a","b","order","spanColumns","spanProp","map","col","span","tableData","tableSpanData","length","result","forEach","item","Array","fill","i","tablePagination","pageIndex","pageSize","totalRows","initParam","searchParam","searchValueUpdate","searchForm","hideImage","selected","selectedList","selectedListIds","isFunction","rowKey","indeterminateSelectedListIds","responseConfig","operationColumnWidth","findAutoCol","autoColumnWidth","find","width","value","imagePreview","previewList","tableWidth","tableHeight","handleTableColumnAutoWidth","autoWidthColumns","autoWidth","operation","push","otherWidth","nextTick","tableDom","document","querySelector","tableKey","headerColumnDom","cellColumnDoms","querySelectorAll","maxWidth","Math","ceil","scrollWidth","sortable","cellDom","curWidth","findInfo","max","handleTableData","data","treeData","row","rowList","children","isArray","cRow","getRequestParam","params","pagination","loadData","async","requestApi","pageData","resData","dataCallback","pageRes","rows","Object","assign","error","consoleError","searchValue","_value","some","toString","toLowerCase","includes","sortList","tableUtil","arrayDynamicSort","pageStart","pageEnd","slice","loadTableColumns","columns","key","label","defaultValue","flatColumns","defaultSearchTime","hideSearchTime","searchTimeList","end","Date","start","dataSearchRange","setDate","getDate","setMonth","getMonth","setFullYear","getFullYear","dayjs","format","tableSearch","newSearchParam","updatedTotalParam","doRender","clickUtil","debounceAsync","watch","newValue","handleSizeChange","handlePaginationChange","val","tableReset","keys","doLoading","loadingFunction","execFunction","then","catch","finally","handleCustomCellClick","emitName","column","$index","getTableDefaultSlots"],"mappings":"wPAaaA,EAA4CC,OAAO,cACnDC,EAAgED,OAAO,yEAK5D,CAACE,EAA8CC,EAAmCC,KACzG,MAAMC,EAAcC,EAAAA,gBAEdC,EAAaC,EAAAA,MACbC,EAAWD,EAAAA,MAKXE,EAAUC,EAAAA,SAAS,IAAIC,KAC7BC,EAAAA,QAAQZ,EAAYS,GAEpB,MAAMI,EAAsBH,EAAAA,SAAS,CACpCI,SAAS,EACTC,YAAa,SACbC,WAAY,GACZC,aAAcC,EAAAA,SAAS,IAAML,EAAMG,WAAWG,OAAQC,GAAMA,EAAEC,OAASD,EAAEE,aACzEC,cAAeL,EAAAA,SAAS,IACvBL,EAAMG,WACJG,OAAQC,GAAMA,EAAEE,YAAcF,EAAEI,QAChCC,KAAK,CAACC,EAAGC,IACFD,EAAEF,QAAQI,MAAQD,EAAEH,QAAQI,QAGtCC,YAAaX,EAAAA,SAAS,IAAM,IACxBL,EAAMG,WACPG,OAAQC,GAAMA,EAAEU,UAChBC,IAAKC,IACE,CACNX,KAAMW,GAAKX,KACXS,SAAUE,GAAKF,eAGd7B,EAAMA,MAAMgC,KACb,CACA,CAAEZ,KAAM,gBAAiBS,SAAU7B,EAAMA,MAAMgC,MAC/C,CAAEZ,KAAM,oBAAqBS,SAAU7B,EAAMA,MAAMgC,MACnD,CAAEZ,KAAM,oBAAqBS,SAAU7B,EAAMA,MAAMgC,OAEnD,KAEJC,UAAW,GACXC,cAAejB,EAAAA,SAAS,KACvB,GAAIL,EAAMgB,aAAaO,OAAS,GAAKvB,EAAMqB,WAAWE,OAAS,EAAG,CACjE,MAAMC,EAAS,GACfxB,EAAMgB,YAAYS,QAASC,IAC1BF,EAAOE,EAAKlB,MAAQ,IAAImB,MAAM3B,EAAMqB,UAAUE,QAAQK,KAAK,EAAG,EAAG,GAAGA,KAAK,EAAG,GAC5EJ,EAAO,GAAGE,EAAKlB,cAAgB,IAEhC,IAAA,IAASqB,EAAI,EAAGA,EAAI7B,EAAMqB,UAAUE,OAAQM,IAC3C7B,EAAMgB,YAAYS,QAASC,IACtB1B,EAAMqB,UAAUQ,GAAGH,EAAKT,YAAcjB,EAAMqB,UAAUQ,EAAI,GAAGH,EAAKT,UACrEO,EAAOE,EAAKlB,MAAMgB,EAAO,GAAGE,EAAKlB,kBAEjCgB,EAAO,GAAGE,EAAKlB,cAAgBqB,EAC/BL,EAAOE,EAAKlB,MAAMqB,GAAK,KAI1B,OAAOL,CACR,CACA,MAAO,KAERM,gBAAiB,CAChBC,UAAW,EACXC,SAAU,GACVC,UAAW,GAEZC,UAAW,CAAA,EACXC,YAAa,CAAA,EACbC,kBAAmB,GACnBC,WAAYjD,EAAMiD,WAClBC,UAAWjC,EAAAA,SAAS,IAAMjB,EAAMkD,WAChCC,UAAU,EACVC,aAAc,GACdC,gBAAiBpC,EAAAA,SAAS,IAAML,EAAMwC,aAAatB,IAAKQ,GAAUgB,aAAWtD,EAAMuD,QAAUvD,EAAMuD,OAAOjB,GAAQA,EAAKtC,EAAMuD,UAC7HC,6BAA8B,GAC9BC,oBAAgB,EAChBC,qBAAsBzC,EAAAA,SAAS,KAC9B,MAAM0C,EAAc/C,EAAMgD,gBAAgBC,KAAM1C,GAAiB,sBAAXA,EAAEC,MACxD,GAAIuC,EACH,MAAO,GAAGA,EAAYG,UAEvB,OAAQ3D,EAAY4D,OACnB,IAAK,QACL,IAAK,UACJ,MAAO,OACR,IAAK,QACJ,MAAO,OACR,QACC,MAAO,UAGVC,cAAc,EACdC,YAAa,GACbC,gBAAY,EACZC,iBAAa,EACbP,gBAAiB,KAGlBjD,EAAAA,QAAQd,EAAee,GAEvB,MAAMwD,EAA6B,KAClCxD,EAAMC,SAAU,EAChBD,EAAME,YAAc,SACpBF,EAAMgD,gBAAkB,GACxB,MAAMS,EAAmBzD,EAAMI,aAAaE,OAAQC,GAAMA,EAAEmD,WAO5D,GANIrE,GAAOsE,WAEVF,EAAiBG,KAAK,CACrBpD,KAAM,sBAGJiD,GAAkBlC,OAAS,EAAG,CAEjC,MAAMsC,EAAmC,YAAtBtE,EAAY4D,MAAsB,GAAK,GAC1DW,EAAAA,SAAS,KACR,MAAMC,EAAWC,SAASC,cAAc,cAAc7E,EAAM8E,YACxDH,GACHN,EAAiBhC,QAASC,IACzB,MAAMyC,EAAkBJ,EAASE,cAAc,gDAAgDvC,GAAMlB,QAC/F4D,EAAiBL,EAASM,iBAAiB,yCAAyC3C,GAAMlB,QAChG,IAAI8D,EAAW,EACXH,IACHG,EAAWC,KAAKC,KAAKL,EAAgBM,aAAeZ,EAChDnC,GAAMgD,WACTJ,GAAY,KAGdF,EAAe3C,QAASkD,IACvB,MAAMC,EAAWL,KAAKC,KAAKG,EAAQF,aAAeZ,EAC9Ce,EAAWN,IACdA,EAAWM,KAGb,MAAMC,EAAW7E,EAAMgD,gBAAgBC,KAAM1C,GAAMA,EAAEC,OAASkB,GAAMlB,MAChEqE,EACHA,EAAS3B,MAAQqB,KAAKO,IAAID,EAAS3B,MAAOoB,GAE1CtE,EAAMgD,gBAAgBY,KAAK,CAC1BpD,KAAMkB,GAAMlB,KACZ0C,MAAOoB,OAMb,CACAtE,EAAMC,SAAU,GAGX8E,EAAmBC,IACxB,GAAI5F,EAAM6F,SAAU,CACnB,MAAMzD,EAAgB,GAUtB,OATAwD,EAAKvD,QAASyD,IACb,MAAMC,EAAUD,EAAI9F,EAAMA,MAAMgG,UAC5BC,EAAAA,QAAQF,GAEXA,EAAQ1D,QAAS6D,GAAS9D,EAAOoC,KAAK,IAAKsB,KAAQI,KAEnD9D,EAAOoC,KAAK,IAAKsB,KAASC,GAAW,CAAA,MAGhC3D,CACR,CACC,OAAOwD,GAIHO,EAAkB,KACvB,MAAMC,EAAS,IAAKxF,EAAMmC,eAAiB/C,EAAMqG,WAAazF,EAAM8B,gBAAkB,IAGtF,cADO0D,EAAOvD,UACPuD,GAGFE,EAAWC,UAGhB,GAFA3F,EAAMC,SAAU,EAChBD,EAAME,YAAc,SAChBd,EAAMwG,WAAY,CACrB,MAAMJ,EAASD,IACfjG,EAAK,UAAWkG,GAChB,IAAIK,EAAW,GACf,IACC,MAAMC,QAAgB1G,EAAMwG,WAAWJ,GAIvC,GAFApG,EAAM2G,cAAgB3G,EAAM2G,aAAaD,GAErC1G,EAAMqG,WAAY,CACrB,MAAMO,EAAUF,EAChBD,EAAWG,EAAQC,KAEnBC,OAAOC,OAAOnG,EAAM8B,gBAAiB,CACpCC,UAAWiE,EAAQjE,UACnBC,SAAUgE,EAAQhE,SAClBC,UAAW+D,EAAQ/D,WAErB,MACC4D,EAAWC,EAEXI,OAAOC,OAAOnG,EAAM8B,gBAAiB,CACpCC,UAAW,EACXC,SAAU,EACVC,UAAW4D,EAAStE,SAGtBvB,EAAMqB,UAAY0D,EAAgBc,EACnC,OAASO,GACRC,EAAAA,aAAa,UAAWD,GACxBpG,EAAMqB,UAAY,EACnB,CAAA,QACCrB,EAAMC,SAAU,CACjB,CACD,KAAO,CACNX,EAAK,UAAW,CAAEgH,YAAatG,EAAMmC,YAAYmE,cACjD,IAAIC,EAASxB,EAAgB3F,EAAM4F,MAUnC,GATAuB,EAASA,EAAOjG,OAAQC,IAClBP,EAAMmC,YAAYmE,aAChBtG,EAAMI,aAAaoG,KAAMrF,GACxBZ,EAAEY,EAAIX,OAAOiG,YAAYC,cAAcC,SAAS3G,EAAMmC,YAAYmE,aAAaI,iBAGpF1G,EAAMmC,YAAYyE,UAAUrF,OAAS,IACxCgF,EAASA,EAAO3F,KAAKiG,EAAAA,UAAUC,iBAAiB9G,EAAMmC,YAAYyE,YAE/DxH,EAAMqG,WAAY,CAErBS,OAAOC,OAAOnG,EAAM8B,gBAAiB,CACpCG,UAAWsE,EAAOhF,SAEnB,MAAMwF,GAAa/G,EAAM8B,gBAAgBC,UAAY,GAAK/B,EAAM8B,gBAAgBE,SAC1EgF,EAAUD,EAAY/G,EAAM8B,gBAAgBE,SAClDhC,EAAMqB,UAAYkF,EAAOU,MAAMF,EAAWC,EAC3C,MACChH,EAAMqB,UAAYkF,EAElBL,OAAOC,OAAOnG,EAAM8B,gBAAiB,CACpCC,UAAW,EACXC,SAAU,EACVC,UAAWsE,EAAOhF,SAGpBvB,EAAMC,SAAU,CACjB,CACAuD,KAGK0D,EAAmB,KACxB,IAAIC,EAA8B/H,EAAM+H,QAExCA,EAAQ1F,QAASN,KAEZA,EAAIV,YAAcU,EAAIR,UACzBQ,EAAIR,OAAOyG,MAAQjG,EAAIX,KACvBW,EAAIR,OAAO0G,QAAUlG,EAAIkG,MAErBlG,EAAIR,OAAO2G,eACdtH,EAAMmC,YAAYhB,EAAIR,OAAOyG,KAAOjG,EAAIR,OAAO2G,iBAMlDH,EAAUA,EAAQvG,KAAK,CAACC,EAAGC,IACnBD,GAAGE,MAAQD,GAAGC,OAItBf,EAAMG,WAAa0G,EAAAA,UAAUU,YAAYJ,EAASvH,IAkC7C4H,EAAoB,KACzB,GAAIpI,EAAMqI,eACTzH,EAAMmC,YAAYuF,oBAAiB,MAC7B,CACN,MAAMC,MAAUC,KACVC,MAAYD,KAClB,OAAQxI,EAAM0I,iBACb,IAAK,SACJD,EAAME,QAAQF,EAAMG,UAAY,GAChC,MACD,IAAK,SACJH,EAAME,QAAQF,EAAMG,UAAY,GAChC,MACD,IAAK,SACJH,EAAME,QAAQF,EAAMG,UAAY,GAChC,MACD,IAAK,SACJH,EAAMI,SAASJ,EAAMK,WAAa,GAClC,MACD,IAAK,SACJL,EAAMI,SAASJ,EAAMK,WAAa,GAClC,MACD,IAAK,SACJL,EAAMI,SAASJ,EAAMK,WAAa,GAClC,MACD,IAAK,SACJL,EAAMM,YAAYN,EAAMO,cAAgB,GACxC,MACD,IAAK,SACJP,EAAMM,YAAYN,EAAMO,cAAgB,GAG1CpI,EAAMmC,YAAYuF,eAAiB,CAACW,EAAAA,MAAMR,GAAOS,OAAO,uBAAwBD,EAAAA,MAAMV,GAAKW,OAAO,uBACnG,GAGKC,EAAc5C,UAEnB3F,EAAM8B,gBAAgBC,UAAY,EAvDT,MAEzB,MAAMyG,EAAiB,CAAA,EAEvB,IAAA,MAAWpB,KAAOpH,EAAMmC,YAEnBnC,EAAMmC,YAAYiF,KAAmC,IAA3BpH,EAAMmC,YAAYiF,IAA6C,IAA3BpH,EAAMmC,YAAYiF,GACnFoB,EAAepB,GAAOpH,EAAMmC,YAAYiF,GAG/BpH,EAAMmC,YAAYiF,WACpBpH,EAAMmC,YAAYiF,GAG3BlB,OAAOC,OAAOnG,EAAMmC,YAAaqG,IA0CjCC,SACM/C,KAiBDgD,EAAW/C,UAChB3F,EAAMG,WAAa,GACnBH,EAAMgD,gBAAkB,GACxBhD,EAAMqB,UAAY,SACZsH,EAAAA,UAAUC,cAAcjD,UAC7BuB,UACMqB,KACJ,MAkCJ,OAdAM,EAAAA,MACC,IAAMzJ,EAAM8E,SACZyB,gBACO+C,MAIRG,EAAAA,MACC,IAAMzJ,EAAMiD,WACXyG,IACA9I,EAAMqC,WAAayG,IAId,CACNvJ,cACAS,QACAP,aACAE,WACA6D,6BACA+B,kBACA2B,mBACA6B,iBAzIyB/G,IACzBhC,EAAM8B,gBAAgBC,UAAY,EAClC/B,EAAM8B,gBAAgBE,SAAWA,EACjC1C,EAAK,aAAc0C,GACnB1C,EAAK,mBAAoB,EAAG0C,GAC5B0D,KAqIAsD,uBAnI+BC,IAC/BjJ,EAAM8B,gBAAgBC,UAAYkH,EAClC3J,EAAK,aAAcU,EAAM8B,gBAAgBE,UACzC1C,EAAK,mBAAoB2J,EAAKjJ,EAAM8B,gBAAgBE,UACpD0D,KAgIA8B,oBACAe,cACAW,WAnEkBvD,UAElB3F,EAAM8B,gBAAgBC,UAAY,EAElC/B,EAAMmC,YAAc,CAAA,EACpBqF,IAEAtB,OAAOiD,KAAKnJ,EAAMkC,WAAa,CAAA,GAAIT,QAAS2F,IAC3CpH,EAAMmC,YAAYiF,GAAOpH,EAAMkC,UAAUkF,KAE1C9H,EAAK,QAASU,EAAMmC,mBACduD,KAyDNgD,WACAU,UA7CiB,CAACC,EAA6CnJ,EAAc,YAC7EF,EAAMC,SAAU,EAChBD,EAAME,YAAcA,EACpBoJ,EAAAA,aAAaD,GACXE,OACAC,MAAOpD,IACPC,EAAAA,aAAa,UAAWD,KAExBqD,QAAQ,KACRzJ,EAAMC,SAAU,KAqClByJ,sBAjC6B,CAACC,GAAoBzE,MAAK0E,SAAQC,aAC/DvK,EAAK,kBAAmBqK,EAAU,CAAEzE,MAAK0E,SAAQC,YAAWC,EAAAA,qBAAqB9J"}
|