el-plus2 0.0.0
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 +2204 -0
- package/dist/index.full.min.js +2 -0
- package/dist/index.full.min.js.map +1 -0
- package/dist/index.full.min.mjs +2 -0
- package/dist/index.full.min.mjs.map +1 -0
- package/dist/index.full.mjs +2176 -0
- package/env.d.ts +17 -0
- package/es/components/buttons/index.d.ts +359 -0
- package/es/components/buttons/index.mjs +8 -0
- package/es/components/buttons/index.mjs.map +1 -0
- package/es/components/buttons/src/buttons-vue.d.ts +142 -0
- package/es/components/buttons/src/buttons-vue.mjs +70 -0
- package/es/components/buttons/src/buttons-vue.mjs.map +1 -0
- package/es/components/buttons/src/buttons.d.ts +57 -0
- package/es/components/buttons/src/buttons.mjs +23 -0
- package/es/components/buttons/src/buttons.mjs.map +1 -0
- package/es/components/form/index.d.ts +291 -0
- package/es/components/form/index.mjs +10 -0
- package/es/components/form/index.mjs.map +1 -0
- package/es/components/form/src/form-item-vue.d.ts +135 -0
- package/es/components/form/src/form-item-vue.mjs +40 -0
- package/es/components/form/src/form-item-vue.mjs.map +1 -0
- package/es/components/form/src/form-item.d.ts +68 -0
- package/es/components/form/src/form-item.mjs +33 -0
- package/es/components/form/src/form-item.mjs.map +1 -0
- package/es/components/form/src/form.d.ts +66 -0
- package/es/components/form/src/form.mjs +50 -0
- package/es/components/form/src/form.mjs.map +1 -0
- package/es/components/form/src/form.vue.d.ts +161 -0
- package/es/components/form/src/form.vue.mjs +6 -0
- package/es/components/form/src/form.vue.mjs.map +1 -0
- package/es/components/form/src/form.vue2.mjs +124 -0
- package/es/components/form/src/form.vue2.mjs.map +1 -0
- package/es/components/form/src/hooks/use-form-item.d.ts +12 -0
- package/es/components/form/src/hooks/use-form-item.mjs +97 -0
- package/es/components/form/src/hooks/use-form-item.mjs.map +1 -0
- package/es/components/form/src/hooks/use-form.d.ts +25 -0
- package/es/components/form/src/hooks/use-form.mjs +53 -0
- package/es/components/form/src/hooks/use-form.mjs.map +1 -0
- package/es/components/index.d.ts +6 -0
- package/es/components/index.mjs +9 -0
- package/es/components/index.mjs.map +1 -0
- package/es/components/input/index.d.ts +468 -0
- package/es/components/input/index.mjs +8 -0
- package/es/components/input/index.mjs.map +1 -0
- package/es/components/input/src/input.d.ts +122 -0
- package/es/components/input/src/input.mjs +28 -0
- package/es/components/input/src/input.mjs.map +1 -0
- package/es/components/input/src/input.vue.d.ts +268 -0
- package/es/components/input/src/input.vue.mjs +6 -0
- package/es/components/input/src/input.vue.mjs.map +1 -0
- package/es/components/input/src/input.vue2.mjs +144 -0
- package/es/components/input/src/input.vue2.mjs.map +1 -0
- package/es/components/searchListPage/index.d.ts +8583 -0
- package/es/components/searchListPage/index.mjs +8 -0
- package/es/components/searchListPage/index.mjs.map +1 -0
- package/es/components/searchListPage/src/searchListPage.d.ts +64 -0
- package/es/components/searchListPage/src/searchListPage.mjs +61 -0
- package/es/components/searchListPage/src/searchListPage.mjs.map +1 -0
- package/es/components/searchListPage/src/searchListPage.vue.d.ts +2760 -0
- package/es/components/searchListPage/src/searchListPage.vue.mjs +6 -0
- package/es/components/searchListPage/src/searchListPage.vue.mjs.map +1 -0
- package/es/components/searchListPage/src/searchListPage.vue2.mjs +99 -0
- package/es/components/searchListPage/src/searchListPage.vue2.mjs.map +1 -0
- package/es/components/searchListPage/src/use-search-list-page.d.ts +2671 -0
- package/es/components/searchListPage/src/use-search-list-page.mjs +177 -0
- package/es/components/searchListPage/src/use-search-list-page.mjs.map +1 -0
- package/es/components/select/index.d.ts +664 -0
- package/es/components/select/index.mjs +8 -0
- package/es/components/select/index.mjs.map +1 -0
- package/es/components/select/src/select.d.ts +283 -0
- package/es/components/select/src/select.mjs +47 -0
- package/es/components/select/src/select.mjs.map +1 -0
- package/es/components/select/src/select.vue.d.ts +384 -0
- package/es/components/select/src/select.vue.mjs +6 -0
- package/es/components/select/src/select.vue.mjs.map +1 -0
- package/es/components/select/src/select.vue2.mjs +113 -0
- package/es/components/select/src/select.vue2.mjs.map +1 -0
- package/es/components/select/src/use-select.d.ts +12 -0
- package/es/components/select/src/use-select.mjs +87 -0
- package/es/components/select/src/use-select.mjs.map +1 -0
- package/es/components/table/index.d.ts +2975 -0
- package/es/components/table/index.mjs +8 -0
- package/es/components/table/index.mjs.map +1 -0
- package/es/components/table/src/table.d.ts +781 -0
- package/es/components/table/src/table.mjs +81 -0
- package/es/components/table/src/table.mjs.map +1 -0
- package/es/components/table/src/table.vue.d.ts +1708 -0
- package/es/components/table/src/table.vue.mjs +6 -0
- package/es/components/table/src/table.vue.mjs.map +1 -0
- package/es/components/table/src/table.vue2.mjs +204 -0
- package/es/components/table/src/table.vue2.mjs.map +1 -0
- package/es/components/table/src/use-table.d.ts +241 -0
- package/es/components/table/src/use-table.mjs +260 -0
- package/es/components/table/src/use-table.mjs.map +1 -0
- package/es/components.d.ts +3 -0
- package/es/components.mjs +11 -0
- package/es/components.mjs.map +1 -0
- package/es/directives/index.d.ts +2 -0
- package/es/directives/index.mjs +3 -0
- package/es/directives/index.mjs.map +1 -0
- package/es/directives/permission/index.d.ts +6 -0
- package/es/directives/permission/index.mjs +55 -0
- package/es/directives/permission/index.mjs.map +1 -0
- package/es/directives/repeat-click/index.d.ts +16 -0
- package/es/directives/repeat-click/index.mjs +68 -0
- package/es/directives/repeat-click/index.mjs.map +1 -0
- package/es/directives/vite.config.d.ts +2 -0
- package/es/hooks/index.d.ts +1 -0
- package/es/hooks/index.mjs +2 -0
- package/es/hooks/index.mjs.map +1 -0
- package/es/hooks/use-request.d.ts +20 -0
- package/es/hooks/use-request.mjs +82 -0
- package/es/hooks/use-request.mjs.map +1 -0
- package/es/index.d.ts +9 -0
- package/es/index.mjs +24 -0
- package/es/index.mjs.map +1 -0
- package/es/package.json.mjs +4 -0
- package/es/package.json.mjs.map +1 -0
- package/es/theme-chalk/gulpfile.d.ts +0 -0
- package/es/theme-chalk/gulpfile.mjs +2 -0
- package/es/theme-chalk/gulpfile.mjs.map +1 -0
- package/es/types/env.d.mjs +2 -0
- package/es/types/env.d.mjs.map +1 -0
- package/es/types/global.d.mjs +2 -0
- package/es/types/global.d.mjs.map +1 -0
- package/es/types/vue-shim.d.mjs +2 -0
- package/es/types/vue-shim.d.mjs.map +1 -0
- package/es/utils/bem.d.ts +10 -0
- package/es/utils/bem.mjs +31 -0
- package/es/utils/bem.mjs.map +1 -0
- package/es/utils/cookie.d.ts +7 -0
- package/es/utils/cookie.mjs +29 -0
- package/es/utils/cookie.mjs.map +1 -0
- package/es/utils/env.d.ts +3 -0
- package/es/utils/env.mjs +27 -0
- package/es/utils/env.mjs.map +1 -0
- package/es/utils/props.d.ts +37 -0
- package/es/utils/props.mjs +66 -0
- package/es/utils/props.mjs.map +1 -0
- package/es/utils/request.d.ts +6 -0
- package/es/utils/request.mjs +157 -0
- package/es/utils/request.mjs.map +1 -0
- package/es/utils/type.d.ts +15 -0
- package/es/utils/type.mjs +2 -0
- package/es/utils/type.mjs.map +1 -0
- package/es/utils/with-install.d.ts +4 -0
- package/es/utils/with-install.mjs +9 -0
- package/es/utils/with-install.mjs.map +1 -0
- package/es/version.d.ts +1 -0
- package/es/version.mjs +4 -0
- package/es/version.mjs.map +1 -0
- package/global.d.ts +13 -0
- package/lib/components/buttons/index.d.ts +359 -0
- package/lib/components/buttons/index.js +13 -0
- package/lib/components/buttons/index.js.map +1 -0
- package/lib/components/buttons/src/buttons-vue.d.ts +142 -0
- package/lib/components/buttons/src/buttons-vue.js +74 -0
- package/lib/components/buttons/src/buttons-vue.js.map +1 -0
- package/lib/components/buttons/src/buttons.d.ts +57 -0
- package/lib/components/buttons/src/buttons.js +25 -0
- package/lib/components/buttons/src/buttons.js.map +1 -0
- package/lib/components/form/index.d.ts +291 -0
- package/lib/components/form/index.js +21 -0
- package/lib/components/form/index.js.map +1 -0
- package/lib/components/form/src/form-item-vue.d.ts +135 -0
- package/lib/components/form/src/form-item-vue.js +44 -0
- package/lib/components/form/src/form-item-vue.js.map +1 -0
- package/lib/components/form/src/form-item.d.ts +68 -0
- package/lib/components/form/src/form-item.js +36 -0
- package/lib/components/form/src/form-item.js.map +1 -0
- package/lib/components/form/src/form.d.ts +66 -0
- package/lib/components/form/src/form.js +55 -0
- package/lib/components/form/src/form.js.map +1 -0
- package/lib/components/form/src/form.vue.d.ts +161 -0
- package/lib/components/form/src/form.vue.js +10 -0
- package/lib/components/form/src/form.vue.js.map +1 -0
- package/lib/components/form/src/form.vue2.js +128 -0
- package/lib/components/form/src/form.vue2.js.map +1 -0
- package/lib/components/form/src/hooks/use-form-item.d.ts +12 -0
- package/lib/components/form/src/hooks/use-form-item.js +101 -0
- package/lib/components/form/src/hooks/use-form-item.js.map +1 -0
- package/lib/components/form/src/hooks/use-form.d.ts +25 -0
- package/lib/components/form/src/hooks/use-form.js +56 -0
- package/lib/components/form/src/hooks/use-form.js.map +1 -0
- package/lib/components/index.d.ts +6 -0
- package/lib/components/index.js +35 -0
- package/lib/components/index.js.map +1 -0
- package/lib/components/input/index.d.ts +468 -0
- package/lib/components/input/index.js +15 -0
- package/lib/components/input/index.js.map +1 -0
- package/lib/components/input/src/input.d.ts +122 -0
- package/lib/components/input/src/input.js +32 -0
- package/lib/components/input/src/input.js.map +1 -0
- package/lib/components/input/src/input.vue.d.ts +268 -0
- package/lib/components/input/src/input.vue.js +10 -0
- package/lib/components/input/src/input.vue.js.map +1 -0
- package/lib/components/input/src/input.vue2.js +148 -0
- package/lib/components/input/src/input.vue2.js.map +1 -0
- package/lib/components/searchListPage/index.d.ts +8583 -0
- package/lib/components/searchListPage/index.js +13 -0
- package/lib/components/searchListPage/index.js.map +1 -0
- package/lib/components/searchListPage/src/searchListPage.d.ts +64 -0
- package/lib/components/searchListPage/src/searchListPage.js +63 -0
- package/lib/components/searchListPage/src/searchListPage.js.map +1 -0
- package/lib/components/searchListPage/src/searchListPage.vue.d.ts +2760 -0
- package/lib/components/searchListPage/src/searchListPage.vue.js +10 -0
- package/lib/components/searchListPage/src/searchListPage.vue.js.map +1 -0
- package/lib/components/searchListPage/src/searchListPage.vue2.js +103 -0
- package/lib/components/searchListPage/src/searchListPage.vue2.js.map +1 -0
- package/lib/components/searchListPage/src/use-search-list-page.d.ts +2671 -0
- package/lib/components/searchListPage/src/use-search-list-page.js +179 -0
- package/lib/components/searchListPage/src/use-search-list-page.js.map +1 -0
- package/lib/components/select/index.d.ts +664 -0
- package/lib/components/select/index.js +17 -0
- package/lib/components/select/index.js.map +1 -0
- package/lib/components/select/src/select.d.ts +283 -0
- package/lib/components/select/src/select.js +53 -0
- package/lib/components/select/src/select.js.map +1 -0
- package/lib/components/select/src/select.vue.d.ts +384 -0
- package/lib/components/select/src/select.vue.js +10 -0
- package/lib/components/select/src/select.vue.js.map +1 -0
- package/lib/components/select/src/select.vue2.js +117 -0
- package/lib/components/select/src/select.vue2.js.map +1 -0
- package/lib/components/select/src/use-select.d.ts +12 -0
- package/lib/components/select/src/use-select.js +89 -0
- package/lib/components/select/src/use-select.js.map +1 -0
- package/lib/components/table/index.d.ts +2975 -0
- package/lib/components/table/index.js +16 -0
- package/lib/components/table/index.js.map +1 -0
- package/lib/components/table/src/table.d.ts +781 -0
- package/lib/components/table/src/table.js +86 -0
- package/lib/components/table/src/table.js.map +1 -0
- package/lib/components/table/src/table.vue.d.ts +1708 -0
- package/lib/components/table/src/table.vue.js +10 -0
- package/lib/components/table/src/table.vue.js.map +1 -0
- package/lib/components/table/src/table.vue2.js +208 -0
- package/lib/components/table/src/table.vue2.js.map +1 -0
- package/lib/components/table/src/use-table.d.ts +241 -0
- package/lib/components/table/src/use-table.js +264 -0
- package/lib/components/table/src/use-table.js.map +1 -0
- package/lib/components.d.ts +3 -0
- package/lib/components.js +15 -0
- package/lib/components.js.map +1 -0
- package/lib/directives/index.d.ts +2 -0
- package/lib/directives/index.js +10 -0
- package/lib/directives/index.js.map +1 -0
- package/lib/directives/permission/index.d.ts +6 -0
- package/lib/directives/permission/index.js +60 -0
- package/lib/directives/permission/index.js.map +1 -0
- package/lib/directives/repeat-click/index.d.ts +16 -0
- package/lib/directives/repeat-click/index.js +72 -0
- package/lib/directives/repeat-click/index.js.map +1 -0
- package/lib/directives/vite.config.d.ts +2 -0
- package/lib/hooks/index.d.ts +1 -0
- package/lib/hooks/index.js +8 -0
- package/lib/hooks/index.js.map +1 -0
- package/lib/hooks/use-request.d.ts +20 -0
- package/lib/hooks/use-request.js +84 -0
- package/lib/hooks/use-request.js.map +1 -0
- package/lib/index.d.ts +9 -0
- package/lib/index.js +53 -0
- package/lib/index.js.map +1 -0
- package/lib/package.json.js +6 -0
- package/lib/package.json.js.map +1 -0
- package/lib/theme-chalk/gulpfile.d.ts +0 -0
- package/lib/theme-chalk/gulpfile.js +3 -0
- package/lib/theme-chalk/gulpfile.js.map +1 -0
- package/lib/types/env.d.js +3 -0
- package/lib/types/env.d.js.map +1 -0
- package/lib/types/global.d.js +3 -0
- package/lib/types/global.d.js.map +1 -0
- package/lib/types/vue-shim.d.js +3 -0
- package/lib/types/vue-shim.d.js.map +1 -0
- package/lib/utils/bem.d.ts +10 -0
- package/lib/utils/bem.js +33 -0
- package/lib/utils/bem.js.map +1 -0
- package/lib/utils/cookie.d.ts +7 -0
- package/lib/utils/cookie.js +33 -0
- package/lib/utils/cookie.js.map +1 -0
- package/lib/utils/env.d.ts +3 -0
- package/lib/utils/env.js +30 -0
- package/lib/utils/env.js.map +1 -0
- package/lib/utils/props.d.ts +37 -0
- package/lib/utils/props.js +73 -0
- package/lib/utils/props.js.map +1 -0
- package/lib/utils/request.d.ts +6 -0
- package/lib/utils/request.js +162 -0
- package/lib/utils/request.js.map +1 -0
- package/lib/utils/type.d.ts +15 -0
- package/lib/utils/type.js +3 -0
- package/lib/utils/type.js.map +1 -0
- package/lib/utils/with-install.d.ts +4 -0
- package/lib/utils/with-install.js +11 -0
- package/lib/utils/with-install.js.map +1 -0
- package/lib/version.d.ts +1 -0
- package/lib/version.js +6 -0
- package/lib/version.js.map +1 -0
- package/package.json +27 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! ElPlus vundefined */(function(m,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("element-plus"),require("axios"),require("element-plus/es/components/message/style/css"),require("element-plus/es/components/loading/style/css"),require("element-plus/es/components/table/src/table/defaults")):typeof define=="function"&&define.amd?define(["exports","vue","element-plus","axios","element-plus/es/components/message/style/css","element-plus/es/components/loading/style/css","element-plus/es/components/table/src/table/defaults"],e):(m=typeof globalThis<"u"?globalThis:m||self,e(m.ElPlus={},m.Vue,m.ElementPlus,m.axios,null,null,m.elTableProps))})(this,(function(m,e,F,I,mt,gt,N){"use strict";const O={...F.buttonProps,disabled:{type:[Boolean,Function]},list:{type:Array,default:()=>[]},size:{...F.buttonProps.size,default:"small"},type:{...F.buttonProps.type,default:"default"}};function w(t,n,s,o){return n&&(t+="-"+n),s&&(t+="__"+s),o&&(t+="--"+o),t}function Se(t){return{b:(n="")=>w(t,n,"",""),e:(n="")=>n?w(t,"",n,""):"",m:(n="")=>n?w(t,"","",n):"",be:(n="",s="")=>n&&s?w(t,n,s,""):"",bm:(n="",s="")=>n&&s?w(t,n,"",s):"",em:(n="",s="")=>n&&s?w(t,"",n,s):"",bem:(n="",s="",o)=>n&&s&&o?w(t,n,s,o):"",is:(n="",s)=>s?`is-${n}`:""}}function E(t){const n=`ep-${t}`;return Se(n)}const j={api:{type:[String,Function]},method:{type:String},reqData:{type:Object},reqParams:{type:Object},reqBefore:{type:Function},reqAfter:{type:Function}},Ve={show:{type:[Boolean,Function]},hide:{type:[Boolean,Function]}},k=(t,n=[])=>Object.keys(t).reduce((s,o)=>(n.includes(o)||(s[o]=t[o]),s),{}),L=(t,n)=>n.reduce((s,o)=>{let r;return o.startsWith("on")?r=o:o.includes("-")?r="on"+o.split("-").map(i=>i.charAt(0).toUpperCase()+i.slice(1)).join(""):r=`on${o.charAt(0).toUpperCase()}${o.slice(1)}`,s[r]=(...i)=>t(o,...i),s},{}),S=()=>e.useAttrs().class||"",V=()=>e.useAttrs().style||{},z="_RepeatClick",x={name:"repeatClick",beforeMount(t,n){const{delay:s=300,immediate:o}=typeof n.value=="object"?n.value:{},r=typeof n.value=="object"?n.value.handler:n.value;let i=!1,a;const c=f=>{if(f.button===0&&(a&&clearTimeout(a),a=setTimeout(()=>{o?i=!1:r?.(f)},s),o)){if(i)return;i=!0,r?.(f)}};t[z]={start:c},t.addEventListener("click",c)},unmounted(t){if(!t[z])return;const{start:n}=t[z];n&&t.removeEventListener("mousedown",n),t[z]=null}},Ae=(t="hxjf",n=window.location.hostname)=>{const s=n.match(new RegExp(`.*(?=${t})`));return n==="hxdv-ui.hongxinshop.com"?"production":s?s[0]?s[0].replace("-",""):"production":"local"},Re=(t="sit",n)=>{let s="";if(Ae()==="local"){const o={};o.devProxy=location.search.slice(1).split("=")[1]||location.hash.slice(1).split("=")[1],s=`${o.devProxy||`${t}-api`}`}else s="/vue-api";return s},qe=t=>{const n=new RegExp("(^| )"+t+"=([^;]*)(;|$)"),s=document.cookie.match(n);return s?decodeURIComponent(s[2]):null},M=I.create({method:"post",timeout:2e4,baseURL:Re(),headers:{"Content-Type":"application/json"}});let q=0,oe={close:()=>{}};function De(){q===0&&(oe=F.ElLoading.service({fullscreen:!0,lock:!0,text:"\u8BF7\u7A0D\u7B49\uFF0C\u6B63\u5728\u52A0\u8F7D\u4E2D...",spinner:"el-icon-loading",background:"rgba(0,0,0,0.7)"})),q++}function Ne(){q<=0||(q--,q===0&&oe.close())}function ne(){Ne()}M.interceptors.request.use(async t=>{const n=qe("access_token");n&&(t.headers.Authorization=`Bearer ${n}`),t.loading&&De(),t.headers={...t.headers,...window.hx&&window.hx.getSignHeaders({sign:t.sign||window.ELPLUSSIGN,config:t})};const s=t.cancelRequest;return t.cancelToken=new I.CancelToken(function(o){s&&s(o)}),t},t=>(console.log(t),Promise.reject(t))),M.interceptors.response.use(t=>{t.config.loading&&ne();const s=t.data.code,{hideToast:o,hideToastCode:r={}}=t.config.headers;return r.length=Object.keys(r).length,s===200?Promise.resolve(t.data):(o||Array.prototype.slice.call(r).indexOf(s)>-1||setTimeout(()=>{F.ElMessage.error({message:`<pre>${t.data.msg}</pre>`,type:"error",duration:2e3,dangerouslyUseHTMLString:!0})},300),Promise.reject(t.data))},t=>{const{config:n={},message:s}=t,{url:o}=n;if(n.loading&&ne(),t&&t.response){const{status:r}=t.response;switch(r){case 400:t.message=t.response.data.message||t.response.data.msg;break;case 403:t.message="\u62D2\u7EDD\u8BBF\u95EE(403)";break;case 404:t.message="\u8BF7\u6C42\u51FA\u9519(404)";break;case 408:t.message="\u8BF7\u6C42\u8D85\u65F6(408)";break;case 500:t.message="\u670D\u52A1\u5668\u9519\u8BEF(500)";break;case 501:t.message="\u670D\u52A1\u672A\u5B9E\u73B0(501)";break;case 502:t.message="\u7F51\u7EDC\u9519\u8BEF(502)";break;case 503:t.message="\u670D\u52A1\u4E0D\u53EF\u7528(503)";break;case 504:t.message="\u7F51\u7EDC\u8D85\u65F6(504)";break;case 505:t.message="HTTP\u7248\u672C\u4E0D\u53D7\u652F\u6301(505)";break;default:t.message=`\u8FDE\u63A5\u51FA\u9519(${t.response.status})!`}}else t.message.includes("timeout")?t.message=`\u8BF7\u6C42${o||""}\u8D85\u65F6\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u662F\u5426\u8FDE\u63A5\u6B63\u5E38`:t.message=`\u8BF7\u6C42${o||""}\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u662F\u5426\u5DF2\u8FDE\u63A5`;return(!I.isCancel(t)||!n.noErrorMsg)&&F.ElMessage.error({message:t.message,type:"error",duration:2e3,dangerouslyUseHTMLString:!0}),Promise.reject(t)});const re=M.request,K={name:"permission",mounted(t,n){const{arg:s,value:o}=n.value;if(!s&&!o)return;t.style.display="none";const r=`${s}:${o}`;se(r,t)},updated(t,n){const{arg:s,value:o}=n.value;if(!s&&!o){t.style.display==="none"&&(t.style.display="");return}const r=`${s}:${o}`;se(r,t)}};async function se(t,n){const{data:s=[]}=await Le(),o=s.indexOf(t)>-1;return o?n.style.display="":n&&n.parentNode&&n.parentNode.removeChild(n),o}let _=null;async function Le(){try{return _||(_=re({url:"/api-u/api/saas/user/appButtonRoleList",loading:!0,noErrorMsg:!0}),_)}catch(t){return console.error(t),{data:[]}}}const ze=E("button");var _e=e.defineComponent({name:"EpButtons",directives:{[x.name]:x,[K.name]:K},inheritAttrs:!1,props:O,setup(t,{emit:n}){const{list:s,...o}=t,r=e.computed(()=>s.filter(a=>"show"in a?typeof a.show=="function"?a.show(a):a.show:"hide"in a?typeof a.hide=="function"?!a.hide(a):!a.hide:!0)),i=async a=>{if(a.confirm){const c=a.confirmText||`\u786E\u5B9A\u8981${a.name}\u5417\uFF1F`;await F.ElMessageBox.confirm(c,"Warning",{confirmButtonText:"\u786E\u5B9A",cancelButtonText:"\u53D6\u6D88",type:"warning"})}a.onClick()};return()=>e.createVNode(e.Fragment,null,[r.value.map(a=>{const c=a.permission?.split(":")||[];return e.withDirectives(e.createVNode(e.resolveComponent("el-button"),e.mergeProps({class:[ze.b(),S()],style:V(),key:a.prop||a.name},{...k(o),...k(a,["scopedSlots","name","onClick"])}),{default:()=>a.name,...a.scopedSlots}),[[e.resolveDirective("repeat-click"),typeof a.onClick=="function"?{handler:()=>i(a),immediate:!0}:()=>i(a)],[e.resolveDirective("permission"),{arg:c[0],value:c[1]}]])})])}});function A(t){return t.install=n=>{n.component(t.name,t)},t}var $e=A(_e);const ae={formItemList:{type:Array,default:()=>[]},isShowFold:Boolean,showFieldCount:{type:Number,default:8},col:{type:Number,default:4}},$={...F.formProps,...ae,size:{...F.formProps.size,default:"small"},labelWidth:{...F.formProps.labelWidth,default:120},scrollIntoViewOptions:{...F.formProps.scrollIntoViewOptions,default:()=>({inline:"center"})}},le=Object.keys(ae),H={...F.formEmits,toggleStatus:t=>!0},ie=Object.keys(H),Te=({isShowFold:t,showFieldCount:n,filterFormItemList:s},o)=>{const r=e.ref(!1),i=()=>{r.value=!r.value,o("toggleStatus",r.value)},a=e.computed(()=>t&&s.value.length>n);return{open:r,toggleStatus:i,isShowFoldBtn:a,isShowFormItem:f=>f<n||r.value||!a.value}},Ie=t=>{const n=e.useTemplateRef("elFormRef");return{filterFormItemList:e.computed(()=>t.formItemList.filter(a=>"show"in a?typeof a.show=="function"?a.show(a):a.show:"hide"in a?typeof a.hide=="function"?!a.hide(a):!a.hide:!0)),elFormRef:n,validate:()=>n.value.validate(),resetFields:a=>n.value.resetFields(a),clearValidate:a=>n.value.clearValidate(a)}},Oe=t=>{const n=e.useAttrs(),{type:s,label:o,render:r,required:i,labelRender:a}=t,c=t.tableProp||t.prop,{scopedSlots:f,...d}=t.props||{},p={};for(const u in n)u.startsWith("on")&&(p[u]=n[u]);const h=n["form-data"],l={default:()=>s?e.h(e.resolveComponent(s),{modelValue:h[c],"onUpdate:modelValue":u=>{h[c]=u},...d,...p},f):h[c],label:()=>e.createVNode(e.resolveComponent("el-tooltip"),{placement:"top",effect:"light",content:o,disabled:!t.isShowLabel},{default:()=>[e.createVNode("span",null,[!t.hideRequiredAsterisk&&i?e.createVNode("span",{style:"color: var(--el-color-danger);"},[e.createTextVNode("*")]):null,t.isShowLabel?e.createVNode("span",null,[o]):""])]})};return a&&(l.label=()=>a({label:o})),r&&(l.default=r),{scopedSlots:l}},je=t=>{const{required:n,rules:s,label:o}=t;let r=[];if(n){const i={required:!0};r.push(i)}return s&&(Array.isArray(s)&&(r=r.concat(s)),Object.prototype.toString.call(s)==="[object Object]"&&r.push(s)),r&&r.forEach(i=>{i.required&&typeof i.message>"u"&&(i.message=`${o||""}\u4E0D\u80FD\u4E3A\u7A7A`)}),{rules:r}},ce={type:{type:String},col:Number,render:Function,labelRender:Function,props:Object,...Ve,class:String,style:{type:[String,Object]},isShowLabel:{type:Boolean,default:!0},hideRequiredAsterisk:Boolean,tableProp:String},ue={...F.formItemProps,...ce},de=Object.keys(ce),xe=E("form-item");var U=e.defineComponent({name:"EpFormItem",inheritAttrs:!1,props:ue,setup(t,{emit:n}){const s=e.useAttrs(),{scopedSlots:o}=Oe(t),{rules:r}=je(t),{props:i,...a}=t;return()=>e.createVNode(e.resolveComponent("el-form-item"),e.mergeProps({class:[xe.b(),S()],style:V()},{...k(a,[...de]),rules:r,"label-width":s["form-label-width"]}),o)}}),Me=e.defineComponent({name:"EpForm",inheritAttrs:!1,__name:"form",props:e.mergeModels($,{modelValue:{type:Object,default:()=>e.reactive({})},modelModifiers:{}}),emits:e.mergeModels(H,["update:modelValue"]),setup(t,{expose:n,emit:s}){const o=E("form"),r=t,i=s,a=e.computed(()=>({...k(r,["modelValue","model",...le]),hideRequiredAsterisk:!0,scrollToError:!0,...L(i,ie)})),c=e.useModel(t,"modelValue"),{filterFormItemList:f,elFormRef:d,validate:p,resetFields:h,clearValidate:l}=Ie(r),{open:u,toggleStatus:y,isShowFoldBtn:b,isShowFormItem:g}=Te({filterFormItemList:f,isShowFold:r.isShowFold,showFieldCount:r.showFieldCount},i);return n({elFormRef:d,validate:p,resetFields:h,clearValidate:l}),(B,X)=>{const R=e.resolveComponent("el-col"),Y=e.resolveComponent("el-row"),Z=e.resolveComponent("el-form");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(o).b(),e.unref(S)(),e.unref(o).is("open",e.unref(u)),e.unref(o).is("fold",e.unref(b))]),style:e.normalizeStyle({...e.unref(V)()})},[e.createVNode(Z,e.mergeProps({ref_key:"elFormRef",ref:d,model:c.value},a.value),{default:e.withCtx(()=>[e.renderSlot(B.$slots,"default",{},()=>[e.createVNode(Y,null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(f),(C,v)=>e.withDirectives((e.openBlock(),e.createBlock(R,{key:C.prop||v,class:e.normalizeClass(e.unref(o).e("col")),span:C.col||24/B.col},{default:e.withCtx(()=>[e.createVNode(e.unref(U),e.mergeProps({"form-data":c.value,"form-label-width":B.labelWidth},{ref_for:!0},C),null,16,["form-data","form-label-width"])]),_:2},1032,["class","span"])),[[e.vShow,e.unref(g)(v)]])),128))]),_:1})])]),_:3},16,["model"]),e.unref(b)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(o).e("fold")),onClick:e.unref(y)},e.toDisplayString(e.unref(u)?"\u6536\u8D77":"\u66F4\u591A"),11,["onClick"])):e.createCommentVNode("v-if",!0)],6)}}}),fe=A(Me);const pe={...F.inputProps,max:Number,min:Number,radix:Number,nonzero:Boolean,placeholder:{type:String,default:"\u8BF7\u8F93\u5165"},thousand:{type:Boolean,default:!0},clearable:{...F.inputProps.clearable,default:!0}},W={...F.inputEmits},me=Object.keys(W);var Ke=e.defineComponent({name:"EpInput",inheritAttrs:!1,__name:"input",props:e.mergeModels(pe,{modelValue:{type:null},modelModifiers:{}}),emits:e.mergeModels(W,["update:modelValue"]),setup(t,{emit:n}){const s=E("input"),o=t,r=n,i=e.computed(()=>Object.keys(e.useSlots()));let a=!1,c=!1;const f=e.computed(()=>({...k(o,["modelValue"]),...L(r,me),placeholder:o.disabled?"":o.placeholder,onFocus:l=>{c=!0,o.thousand&&(l.target.value=d.value?String(d.value):""),r("focus",l)},onBlur:l=>{if(o.type==="number"){let u=d.value;o.nonzero&&+u==0&&(u=""),u&&u[u.length-1]==="."&&(u=String(u).slice(0,-1)),u&&u==="-"&&(u=""),d.value=u&&+u,l.target.value=h(d.value)}a=!0,c=!1,r("blur",l)}})),d=e.useModel(t,"modelValue"),p=e.ref(),h=l=>o.thousand?l&&window.hx.thousand(l):l;return e.watch(()=>d.value,l=>{if(o.type==="number"&&e.onMounted(()=>{p.value.input.value=h(l)}),a){a=!1;return}if(c){if(o.type==="number"){if(typeof l=="number"&&(l=""+l),typeof l=="string"){new RegExp("^[-+]?0[0-9]\\d*").test(l)&&(l=l.replace("0",""));const y=new RegExp("^([-+])?\\d*(\\.?\\d*)","g");if(l=l.match(y)?l.match(y)[0]:"",o.radix||o.radix===0){const b=o.radix===0?new RegExp("^([-+])?\\d*","g"):new RegExp(`^([-+])?\\d*(\\.?\\d{0,${o.radix}})`,"g");l=l.match(b)?l.match(b)[0]:""}(o.max||o.max===0)&&+l>o.max&&(l=o.max),(o.min||o.min===0)&&(l||l===0)&&+l<o.min&&(l=o.min)}}else o.type==="text"&&(l=l.trim());d.value=l}},{immediate:!0}),(l,u)=>{const y=e.resolveComponent("el-input");return e.openBlock(),e.createBlock(y,e.mergeProps({ref_key:"inputRef",ref:p,modelValue:d.value,"onUpdate:modelValue":b=>d.value=b,class:`${e.unref(s).b()} ${e.unref(S)()}`,style:{...e.unref(V)()}},f.value,{type:l.type==="number"?"text":l.type}),e.createSlots({_:2},[e.renderList(i.value,b=>({name:b,fn:e.withCtx(g=>[e.renderSlot(l.$slots,b,e.normalizeProps(e.guardReactiveProps(g)))])}))]),1040,["modelValue","onUpdate:modelValue","class","style","type"])}}}),He=A(Ke);const Ue={...N,size:{...N.size,default:"default"},border:{...N.border,default:!0},headerCellStyle:{...N.headerCellStyle,default:()=>({background:"#EEEFF3",fontSize:"14px",color:"#505050"})}},ge={...j,columns:{type:Array,default:()=>[]},showSelectionCol:Boolean,showIndexCol:{type:Boolean,default:!0},align:{type:String,default:"center"},indexFormatter:{type:[Number,Function]},disabled:Boolean,reserveSelection:Boolean,selectable:{type:Function},paginationProps:{type:Object,default:()=>({})},showPagination:Boolean,isFrontPage:Boolean,actionButtons:{type:Array,default:()=>[]},linkProps:{type:Array,default:()=>[]}},D={...Ue,...ge},he=Object.keys(ge),G=F.ElTable.emits,ye=G,J=({api:t,method:n,reqData:s,reqParams:o,reqBefore:r,reqAfter:i,cancelToken:a,hooks:c})=>{if(!t)return{};const f=e.ref(!1);let d,p;if(typeof t=="string"){const l={url:t,method:n};a&&(l.cancelRequest=u=>{d=u}),p=(u={},y)=>(l.method==="get"?l.params=u:(l.data=u,l.params=y),l.data={...s,...l.data},l.params={...o,...l.params},u.$query&&(l.data[u.$query]=u.$searchValue,delete u.$searchValue),r&&r(l),re(l))}else p=t;return{loading:f,requestFn:async(l={})=>{if(!(f.value&&!a)){f.value=!0;try{d&&d();const u=await p(l);i&&i(u),c?.success&&c.success(u.data)}catch(u){c?.fail&&c.fail(u)}finally{f.value=!1}}}}},We=t=>{const n=e.useTemplateRef("elFormRef"),s=e.useTemplateRef("elTableRef"),o=e.ref([]),{loading:r,requestFn:i}=J({api:t.api,method:t.method,reqData:t.reqData,reqParams:t.reqParams,reqBefore:t.reqBefore,reqAfter:t.reqAfter,cancelToken:!0,hooks:{success(u){if(Array.isArray(u))o.value=u;else if(u&&typeof u=="object"){const y=u;o.value=y?.list||y?.data||[]}else o.value=[];t.showPagination&&(c.total=(t.isFrontPage?o.value.length:u.total)||0)},fail(u){console.error(u)}}}),a=(u=!1,y=!1)=>{if(u&&(c.pageNo=1),y&&t.isFrontPage){const{pageNo:b,pageSize:g}=c,B=o.value.filter((X,R)=>R<b*g&&R>=(b-1)*g);o.value=B}else t.api?i({pageNo:c.pageNo,pageSize:c.pageSize}):t.data?.length&&(o.value=t.data)},{pagination:c,paginationProps:f}=Ge(t,a);return a(!0),{loading:r,data:o,search:a,pagination:c,paginationProps:f,validate:()=>n.value.validate(),resetFields:u=>n.value.resetFields(u),clearValidate:u=>n.value.clearValidate(u),elFormRef:n,elTableRef:s,formatActionButtons:(u,y)=>u.map(b=>(b.onClick&&(b.onClick=b.onClick.bind(null,y)),b))}},Ge=function(t,n){const s=[20,50,100,200],o=e.reactive({total:0,pageNo:1,pageSize:s[0]}),r=e.computed(()=>{const i=t.paginationProps||{},a=i.onSizeChange,c=i.onCurrentChange;return{...i,pageSizes:s,layout:"total, sizes, prev, pager, next, jumper",onSizeChange:f=>{a&&a(f),n(!0,!0)},onCurrentChange:f=>{c&&c(f),n(!1,!0)}}});return{pagination:o,paginationProps:r}},Je=(t,n)=>{const s=r=>{const i={align:r.align||t.align};if(!r.renderHeader){let a=r.required;typeof r.required=="function"&&(a=r.required()),a&&(i.renderHeader=c=>{const{column:f}=c;return e.createVNode("span",null,[e.createVNode("span",{style:"color:var(--el-color-danger)"},[e.createTextVNode(" * ")]),f.label])})}if(r.headerRender&&(i.renderHeader=r.headerRender),r.filter){const a=n.value.map(c=>c[r.prop]);i.filters=[...new Set(a)].map(c=>({text:c,value:c})),i.filterMethod=(c,f)=>f[r.prop]===c}return{...i,...k(r)}},o=e.computed(()=>t.columns.filter(r=>{if(t.linkProps.length){const i=t.linkProps.find(a=>a.prop===r.prop);i&&(r.type="EpButtons",r.className="table-column-link",r.props={list:[i],type:"text",...r.props})}return"show"in r?typeof r.show=="function"?r.show(r):r.show:"hide"in r?typeof r.hide=="function"?!r.hide(r):!r.hide:!0}));return{columnProps:s,columnList:o}},Qe=t=>({formItemProps:(s,o)=>{let r=o.required;typeof r=="function"&&(r=r()),o.cellRequired&&(r=o.cellRequired(s));let i=t.disabled;if("disabled"in o&&(typeof o.disabled=="function"?i=o.disabled(s):i=o.disabled||!1),o.type==="EpSelect"&&o.props&&("options"in o.props&&typeof o.props.options=="function"&&(o.props.options=o.props.options(s)),"disabledOption"in o.props&&typeof o.props.disabledOption=="function")){const a=o.props.disabledOption;o.props.disabledOption=(...c)=>a(...c,s)}o.type==="EpButtons"&&o.props&&o.props.list.forEach(a=>{a.prop&&(a.name=s.row[a.prop]),a.onClick&&(a.onClick=a.onClick.bind(null,s))});for(const a in o)if(a.startsWith("on")&&typeof o[a]=="function"){const c=o[a];o[a]=(...f)=>c(...f,s)}return{...k(o),isShowLabel:!1,required:r,hideRequiredAsterisk:"cellRequired"in o?!1:r,prop:`table.${s.$index}.${o.prop}`,tableProp:o.prop,props:{...o.props,disabled:i}}}});var Xe=e.defineComponent({name:"EpTable",inheritAttrs:!1,__name:"table",props:D,emits:G,setup(t,{expose:n,emit:s}){const o=E("table"),r=t,i=s,a=e.computed(()=>Object.keys(e.useSlots())),c=e.computed(()=>({...k(r,["modelValue",...he]),size:"small",data:p.value,...L(i,ye)})),{pagination:f,paginationProps:d,data:p,validate:h,resetFields:l,clearValidate:u,loading:y,search:b,elFormRef:g,elTableRef:B,formatActionButtons:X}=We(r),{columnProps:R,columnList:Y}=Je(r,p),{formItemProps:Z}=Qe(r);return n({elFormRef:g,elTableRef:B,validate:h,resetFields:l,clearValidate:u,search:b}),(C,v)=>{const T=e.resolveComponent("el-table-column"),ct=e.resolveComponent("EpButtons"),ut=e.resolveComponent("el-table"),dt=e.resolveComponent("el-form"),ft=e.resolveComponent("el-pagination"),pt=e.resolveDirective("loading");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(`${e.unref(o).b()} ${e.unref(S)()}`),style:e.normalizeStyle({...e.unref(V)()})},[e.createVNode(dt,{ref_key:"elFormRef",ref:g,model:{table:e.unref(p)},size:"small","hide-required-asterisk":"","scroll-to-error":"","scroll-into-view-options":{inline:"center"},class:"ep-form"},{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createBlock(ut,e.mergeProps({ref_key:"elTableRef",ref:B},c.value),e.createSlots({default:e.withCtx(()=>[C.showSelectionCol?(e.openBlock(),e.createBlock(T,{key:0,type:"selection",width:"55",align:C.align,selectable:C.selectable,fixed:""},null,8,["align","selectable"])):e.createCommentVNode("v-if",!0),C.showIndexCol?(e.openBlock(),e.createBlock(T,{key:1,type:"index",width:"56",align:C.align,label:"\u5E8F\u53F7",fixed:"",index:C.indexFormatter},null,8,["align","index"])):e.createCommentVNode("v-if",!0),C.actionButtons.length?(e.openBlock(),e.createBlock(T,{key:2,label:"\u64CD\u4F5C",align:C.align,fixed:"",width:"200"},{default:e.withCtx(P=>[e.createElementVNode("span",{class:e.normalizeClass(e.unref(o).e("action-buttons"))},[e.createVNode(ct,{list:e.unref(X)(C.actionButtons,P),type:"text"},null,8,["list"])],2)]),_:1},8,["align"])):e.createCommentVNode("v-if",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(Y),(P,ee)=>(e.openBlock(),e.createBlock(T,e.mergeProps({key:ee},{ref_for:!0},e.unref(R)(P)),{default:e.withCtx(te=>[P.type?(e.openBlock(),e.createBlock(e.unref(U),e.mergeProps({key:0,"form-data":te.row},{ref_for:!0},e.unref(Z)(te,P)),null,16,["form-data"])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(te.row[P.prop]),1)],64))]),_:2},1040))),128))]),_:2},[e.renderList(a.value,P=>({name:P,fn:e.withCtx(ee=>[e.renderSlot(C.$slots,P,e.normalizeProps(e.guardReactiveProps(ee)))])}))]),1040)),[[pt,e.unref(y)]])]),_:3},8,["model"]),C.showPagination?(e.openBlock(),e.createBlock(ft,e.mergeProps({key:0,"current-page":e.unref(f).pageNo,"onUpdate:currentPage":P=>e.unref(f).pageNo=P,"page-size":e.unref(f).pageSize,"onUpdate:pageSize":P=>e.unref(f).pageSize=P,total:e.unref(f).total},e.unref(d)),null,16,["current-page","onUpdate:currentPage","page-size","onUpdate:pageSize","total"])):e.createCommentVNode("v-if",!0)],6)}}}),be=A(Xe);console.log($.formItemList);const Fe={...j,customColumnModule:Number,showOperationColumn:Boolean,formItemList:{...$.formItemList},leftButtons:{...O.list},columns:{...D.columns},actionButtons:{...D.actionButtons},linkProps:{...D.linkProps},showSelectionCol:Boolean,showIndexCol:{type:Boolean,default:!0},add:Function,templateDownloadApi:String,importApi:String,exportApi:String,offsetTop:{type:Number,default:0},formData:{type:Object,default:()=>({})},tableProps:Object,formProps:Object,buttonsProps:Object},Ye=t=>{const{calcTableHeight:n,tableProps:s,tableRef:o}=Ze(t),{formProps:r,validate:i,resetFields:a,formRef:c}=ve(t,{calcTableHeight:n}),{buttonsProps:f,searchButtons:d,search:p,reset:h}=et(t,{validate:i,resetFields:a,tableRef:o});return{formProps:r,tableProps:s,buttonsProps:f,searchButtons:d,search:p,reset:h,tableRef:o,formRef:c}},Ze=t=>{const n="tableRef",s=e.useTemplateRef(n),o=e.ref(window.innerHeight),r=e.computed(()=>({ref:n,columns:t.columns,showPagination:!0,height:o.value,showIndexCol:t.showIndexCol,showSelectionCol:t.showSelectionCol,actionButtons:t.actionButtons,linkProps:t.linkProps,api:t.api,reqData:t.formData,...t.tableProps})),i=()=>{const a=document.getElementById("top").offsetHeight,c=document.getElementById("middle").offsetHeight;let f=0;r.value.showPagination&&(f=document.querySelector(".el-pagination").offsetHeight+12);const d=40;o.value=window.innerHeight-a-c-f-d-t.offsetTop};return e.onMounted(i),{tableRef:s,tableProps:r,calcTableHeight:i}},ve=(t,{calcTableHeight:n})=>{const s="formRef",o=e.useTemplateRef(s);return{formProps:e.computed(()=>({ref:s,formItemList:t.formItemList,isShowFold:!0,modelValue:t.formData,...t.formProps,onToggleStatus:()=>{setTimeout(()=>{n()},0)}})),formRef:o,validate:()=>o.value.validate(),resetFields:f=>o.value.resetFields(f),clearValidate:f=>o.value.clearValidate(f)}},et=(t,{validate:n,resetFields:s,tableRef:o})=>{const r=[{name:"\u65B0\u589E",prop:"add",show:()=>!!t.add,onClick:()=>{t.add?.()}},{name:"\u6A21\u7248\u4E0B\u8F7D",prop:"templateDownload",show:!!t.templateDownloadApi},{name:"\u5BFC\u5165",prop:"import",show:!!t.importApi},{name:"\u5BFC\u51FA",prop:"export",show:!!t.exportApi}];t.leftButtons?.forEach(p=>{const h=r.findIndex(l=>l.prop===p.prop);h!==-1&&(r[h]={...r[h],...p})});const i=r.concat(t.leftButtons);i.forEach(p=>{if(p.onClick){const h=p.onClick;p.onClick=()=>{const l=o.value.elTableRef.getSelectionRows();h(l)}}});const a=e.computed(()=>({list:i,...t.buttonsProps})),c=async()=>{await n(),o.value.search(!0)},f=async()=>{s(),c()};return{buttonsProps:a,searchButtons:[{name:"\u641C\u7D22",type:"primary",onClick:c},{name:"\u6E05\u7A7A",onClick:f}],search:c,reset:f}};var tt=e.defineComponent({name:"EpSearchListPage",__name:"searchListPage",props:Fe,setup(t,{expose:n}){const s=E("search-list-page"),o=t,{formProps:r,buttonsProps:i,searchButtons:a,search:c,reset:f,tableRef:d,formRef:p,tableProps:h}=Ye(o);return n({search:c,reset:f,tableRef:d,formRef:p}),(l,u)=>{const y=e.resolveComponent("EpButtons");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(s).b(),e.unref(S)()]),style:e.normalizeStyle({...e.unref(V)()})},[e.createElementVNode("div",{id:"top"},[e.createVNode(e.unref(fe),e.normalizeProps(e.guardReactiveProps(e.unref(r))),null,16)]),e.createElementVNode("div",{id:"middle"},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(s).e("middle-left"))},[e.createVNode(y,e.normalizeProps(e.guardReactiveProps(e.unref(i))),null,16)],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(s).e("middle-right"))},[e.createVNode(y,{list:e.unref(a)},null,8,["list"])],2)]),e.renderSlot(l.$slots,"tableBefore"),e.createVNode(e.unref(be),e.normalizeProps(e.guardReactiveProps(e.unref(h))),null,16)],6)}}}),ot=A(tt);const Ce={...F.selectProps,clearable:{...F.selectProps.clearable,default:!0}},Pe={...j,disabledOption:{type:Function,default:()=>!1},labelKey:{type:String,default:"label"},valueKey:{type:String,default:"value"},formatLabel:{type:Function},lazy:Boolean,codeInLabel:{type:[String,Boolean]}},Be={...Ce,...Pe},ke=Object.keys(Pe),Q={...F.selectEmits,change:(t,n)=>!0},we=Object.keys(Q);function nt(t,n){let s=!1;const{loading:o,requestFn:r}=J({api:t.api,method:t.method,reqData:t.reqData,reqParams:t.reqParams,reqBefore:t.reqBefore,reqAfter:t.reqAfter,cancelToken:t.remote,hooks:{success(d){if(Array.isArray(d))i.value=d;else if(d&&typeof d=="object"){const p=d;i.value=p?.list||p?.data||[]}else i.value=[];s=!0},fail(d){console.error(d)}}}),i=e.ref([]),a=(d,p)=>{(d||d===0)&&p&&(i.value=[{[t.labelKey]:p,[t.valueKey]:d}]),t.api?!t.lazy&&!t.remote&&r():t.options?.length&&(i.value=t.options)},c=d=>Array.isArray(d)?t.options?t.options.filter(p=>d.indexOf(p[t.valueKey])>-1):[]:t.options?t.options.find(p=>p[t.valueKey]===d)||{}:{},f={loading:t.loading||o?.value,remoteMethod:d=>{d&&r({$searchValue:d})},onChange(d){n("change",d,c(d))},onVisibleChange(d){t.api&&t.lazy&&d&&!s&&!t.remote&&r(),n("visible-change",d)}};return{customOptions:i,loadOptions:a,expandAttrs:f}}var rt=e.defineComponent({name:"EpSelect",inheritAttrs:!1,__name:"select",props:e.mergeModels(Be,{modelValue:{type:null},modelModifiers:{},desc:{type:String},descModifiers:{}}),emits:e.mergeModels(Q,["update:modelValue","update:desc"]),setup(t,{emit:n}){const s=E("select"),o=t,r=n,i=e.computed(()=>Object.keys(e.useSlots())),{customOptions:a,loadOptions:c,expandAttrs:f}=nt(o,r),d=e.useModel(t,"modelValue"),p=e.useModel(t,"desc"),h=e.computed(()=>({...k(o,["modelValue","desc",...ke]),...L(r,we),...f}));return c(d.value,p.value),(l,u)=>{const y=e.resolveComponent("el-option"),b=e.resolveComponent("el-select");return e.openBlock(),e.createBlock(b,e.mergeProps({modelValue:d.value,"onUpdate:modelValue":g=>d.value=g,class:`${e.unref(s).b()} ${e.unref(S)()}`},h.value,{style:{...e.unref(V)()}}),e.createSlots({default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(a),g=>(e.openBlock(),e.createBlock(y,{key:g[l.valueKey],class:e.normalizeClass(e.unref(s).e("option")),label:g.formatLabel?g.formatLabel(g):l.formatLabel?l.formatLabel(g):g[l.labelKey],value:g[l.valueKey],disabled:l.disabledOption(g)},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"option",{item:g},()=>[l.codeInLabel||l.codeInLabel===""?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("span",{style:{float:"left"}},e.toDisplayString(g[l.labelKey]),1),e.createElementVNode("span",{style:{float:"right",color:"var(--el-text-color-secondary)","font-size":"13px"}},e.toDisplayString(g[typeof l.codeInLabel=="string"&&l.codeInLabel?l.codeInLabel:l.valueKey]),1)],64)):e.createCommentVNode("v-if",!0)])]),_:2},1032,["class","label","value","disabled"]))),128))]),_:2},[e.renderList(i.value,g=>({name:g,fn:e.withCtx(B=>[e.renderSlot(l.$slots,g,e.normalizeProps(e.guardReactiveProps(B)))])}))]),1040,["modelValue","onUpdate:modelValue","class","style"])}}}),st=A(rt),at=[$e,fe,He,ot,st,be],lt="0.0.1";const Ee=(t,n)=>{at.forEach(s=>t.use(s))},it={install:Ee,version:lt};m.EpFormItem=U,m.buttonsProps=O,m.default=it,m.expandFormItemPropsKeys=de,m.expandFormPropsKeys=le,m.expandSelectPropsKeys=ke,m.expandTablePropsKeys=he,m.formEmits=H,m.formEmitsKeys=ie,m.formItemProps=ue,m.formProps=$,m.inheritSelectProps=Ce,m.inputEmits=W,m.inputEmitsKeys=me,m.inputProps=pe,m.install=Ee,m.searchListPageProps=Fe,m.selectEmits=Q,m.selectEmitsKeys=we,m.selectProps=Be,m.tableEmits=G,m.tableEmitsKeys=ye,m.tableProps=D,m.useRequest=J,m.vPermission=K,m.vRepeatClick=x,Object.defineProperty(m,"__esModule",{value:!0})}));
|
|
2
|
+
//# sourceMappingURL=index.full.min.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.full.min.js","sources":["../../../packages/components/buttons/src/buttons.ts","../../../packages/utils/bem.ts","../../../packages/utils/props.ts","../../../packages/directives/repeat-click/index.ts","../../../packages/utils/env.ts","../../../packages/utils/cookie.ts","../../../packages/utils/request.ts","../../../packages/directives/permission/index.ts","../../../packages/components/buttons/src/buttons-vue.tsx","../../../packages/utils/with-install.ts","../../../packages/components/buttons/index.ts","../../../packages/components/form/src/form.ts","../../../packages/components/form/src/hooks/use-form.ts","../../../packages/components/form/src/hooks/use-form-item.tsx","../../../packages/components/form/src/form-item.ts","../../../packages/components/form/src/form-item-vue.tsx","../../../packages/components/form/src/form.vue","../../../packages/components/form/index.ts","../../../packages/components/input/src/input.ts","../../../packages/components/input/src/input.vue","../../../packages/components/input/index.ts","../../../packages/components/table/src/table.ts","../../../packages/hooks/use-request.ts","../../../packages/components/table/src/use-table.tsx","../../../packages/components/table/src/table.vue","../../../packages/components/table/index.ts","../../../packages/components/searchListPage/src/searchListPage.ts","../../../packages/components/searchListPage/src/use-search-list-page.ts","../../../packages/components/searchListPage/src/searchListPage.vue","../../../packages/components/searchListPage/index.ts","../../../packages/components/select/src/select.ts","../../../packages/components/select/src/use-select.ts","../../../packages/components/select/src/select.vue","../../../packages/components/select/index.ts","../../../packages/el-plus/components.ts","../../../packages/el-plus/index.ts"],"sourcesContent":["import type { PropType, ExtractPublicPropTypes, VNode } from 'vue'\nimport {\n buttonProps as elButtonProps,\n // buttonEmits as elButtonEmits,\n type ButtonProps as ElButtonProps,\n} from 'element-plus'\nimport type { VisibleProps } from '@el-plus/utils/props'\nimport type { TableScope } from '@el-plus/components/table'\n\nexport type ButtonProps = Partial<\n ElButtonProps & {\n name: string\n prop: string // 唯一标识\n permission: string // 权限\n onClick: (e: MouseEvent | TableScope) => void\n scopedSlots: Record<string, () => VNode>\n confirm: boolean\n confirmText: string\n } & VisibleProps\n>\nexport const buttonsProps = {\n ...elButtonProps,\n disabled: {\n type: [Boolean, Function] as PropType<\n boolean | ((...args: any[]) => boolean)\n >,\n },\n list: {\n type: Array as PropType<ButtonProps[]>,\n default: () => [],\n },\n size: {\n ...elButtonProps.size,\n default: 'small',\n },\n type: {\n ...elButtonProps.type,\n default: 'default',\n },\n}\nexport type ButtonsProps = ExtractPublicPropTypes<typeof buttonsProps>\n// export const buttonsEmits = {\n// ...elButtonEmits,\n// }\n// export type ButtonsEmits = typeof buttonsEmits\n// export const buttonsEmitsKeys = Object.keys(buttonsEmits)\n","// block-代码块 ep-button\n// element-元素 ep-button__icon\n// modifier-修饰符 ep-button__icon--active\n// state-状态 is-checked\n\nfunction _bem(\n prefix: string,\n block: string,\n element: string,\n modifier: string,\n) {\n if (block) {\n prefix += '-' + block\n }\n if (element) {\n prefix += '__' + element\n }\n if (modifier) {\n prefix += '--' + modifier\n }\n return prefix\n}\nfunction createBEM(prefix: string) {\n return {\n b: (block: string = '') => _bem(prefix, block, '', ''),\n e: (element: string = '') => (element ? _bem(prefix, '', element, '') : ''),\n m: (modifier: string = '') =>\n modifier ? _bem(prefix, '', '', modifier) : '',\n be: (block: string = '', element: string = '') =>\n block && element ? _bem(prefix, block, element, '') : '',\n bm: (block: string = '', modifier: string = '') =>\n block && modifier ? _bem(prefix, block, '', modifier) : '',\n em: (element: string = '', modifier: string = '') =>\n element && modifier ? _bem(prefix, '', element, modifier) : '',\n bem: (block: string = '', element: string = '', modifier: string) =>\n block && element && modifier\n ? _bem(prefix, block, element, modifier)\n : '',\n is: (name: string = '', state: boolean) => (state ? `is-${name}` : ''),\n }\n}\n\nexport function createNameSpace(name) {\n const prefix = `ep-${name}`\n return createBEM(prefix)\n}\n","import type { Api, ReqBefore, ReqAfter, Method } from './type'\nimport type { PropType, SetupContext, MaybeRef, ExtractPropTypes } from 'vue'\nimport { useAttrs } from 'vue'\nexport const apiProps = {\n api: {\n type: [String, Function] as PropType<Api>,\n },\n method: {\n type: String as PropType<Method>,\n },\n reqData: {\n type: Object,\n },\n reqParams: {\n type: Object,\n },\n reqBefore: {\n type: Function as PropType<ReqBefore>,\n },\n reqAfter: {\n type: Function as PropType<ReqAfter>,\n },\n}\ntype IVisible = boolean | ((T: unknown) => boolean)\nexport const visibleProps = {\n show: {\n type: [Boolean, Function] as PropType<IVisible>,\n },\n hide: {\n type: [Boolean, Function] as PropType<IVisible>,\n },\n}\nexport type VisibleProps = ExtractPropTypes<typeof visibleProps>\nexport const prepareProps = <T extends Record<string, any>>( // eslint-disable-line @typescript-eslint/no-explicit-any\n props: T,\n excludeKeys: string[] = [],\n): Partial<T> => {\n return Object.keys(props).reduce((acc, key) => {\n if (!excludeKeys.includes(key)) {\n acc[key as keyof T] = props[key]\n }\n return acc\n }, {} as Partial<T>)\n}\nexport const prepareEvents = <T extends Record<string, unknown> | string[]>(\n emit: SetupContext<T>['emit'],\n eventKeys: string[],\n // (keyof T & string)[] = [],\n) => {\n return eventKeys.reduce(\n (acc, key) => {\n // 转换on+事件名\n let eventName\n if (key.startsWith('on')) {\n eventName = key\n } else {\n if (key.includes('-')) {\n eventName =\n 'on' +\n key\n .split('-')\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join('')\n } else {\n eventName = `on${key.charAt(0).toUpperCase()}${key.slice(1)}`\n }\n }\n acc[eventName] = (...args: unknown[]) => emit(key, ...args)\n return acc\n },\n {} as Record<string, unknown>,\n )\n}\n\nexport const prepareClassNames = () => {\n return useAttrs().class || ''\n}\nexport const prepareStyles = () => {\n return useAttrs().style || {}\n}\n","import type { Directive } from 'vue'\nconst SCOPE = '_RepeatClick'\nexport interface RepeatClickEl extends HTMLElement {\n [SCOPE]: null | {\n start?: (evt: MouseEvent) => void\n }\n}\nexport interface RepeatClickOptions {\n immediate?: boolean\n delay?: number\n handler: (...args: unknown[]) => unknown\n}\nconst vRepeatClick: Directive<RepeatClickEl, RepeatClickOptions> & {\n name: string\n} = {\n name: 'repeatClick',\n // 在绑定元素的 attribute 前\n // 或事件监听器应用前调用\n // created(el, binding, vnode) {\n // // el.style.display = 'none'\n // // 下面会介绍各个参数的细节\n // console.log('created', el, binding, vnode)\n // },\n\n // 在元素被插入到 DOM 前调用\n beforeMount(el, binding) {\n const { delay = 300, immediate } =\n typeof binding.value === 'object' ? binding.value : {}\n const handler =\n typeof binding.value === 'object' ? binding.value.handler : binding.value\n let isPending = false\n let timer: ReturnType<typeof setTimeout>\n const start = (e: MouseEvent) => {\n if (e.button !== 0) return // 只处理左键点击\n timer && clearTimeout(timer)\n timer = setTimeout(() => {\n if (immediate) {\n isPending = false\n } else {\n handler?.(e)\n }\n }, delay)\n if (immediate) {\n if (isPending) {\n return\n }\n isPending = true\n handler?.(e)\n }\n }\n el[SCOPE] = { start }\n el.addEventListener('click', start)\n },\n // // 在绑定元素的父组件\n // // 及他自己的所有子节点都挂载完成后调用\n // mounted(el, binding, vnode) {\n // console.log('mounted', el, binding, vnode)\n // },\n // // 绑定元素的父组件更新前调用\n // beforeUpdate(el, binding, vnode, prevVnode) {\n // console.log('beforeUpdate', el, binding, vnode, prevVnode)\n // },\n // // 在绑定元素的父组件\n // // 及他自己的所有子节点都更新后调用\n // updated(el, binding, vnode, prevVnode) {\n // console.log('updated', el, binding, vnode, prevVnode)\n // },\n // // 绑定元素的父组件卸载前调用\n // beforeUnmount(el, binding, vnode) {\n // console.log('beforeUnmount', el, binding, vnode)\n // },\n // 绑定元素的父组件卸载后调用\n unmounted(el) {\n if (!el[SCOPE]) return\n const { start } = el[SCOPE]\n\n if (start) {\n el.removeEventListener('mousedown', start)\n }\n el[SCOPE] = null\n },\n}\nexport default vRepeatClick\n","const getEnv = (mark = 'hxjf', hostname = window.location.hostname) => {\n const tag = hostname.match(new RegExp(`.*(?=${mark})`))\n if (hostname === 'hxdv-ui.hongxinshop.com') {\n return 'production'\n }\n if (!tag) {\n return 'local'\n }\n return tag[0] ? tag[0].replace('-', '') : 'production'\n}\n\nconst getBaseUrl = (env = 'sit', isOpenApi?: boolean) => {\n let url = ''\n if (getEnv() === 'local') {\n const query: {\n devProxy?: string\n [propName: string]: string | undefined\n } = {}\n // for (const key in new URLSearchParams(location.search.slice(1))) {\n // query[key] = location.search.slice(1)[key]\n // }\n query.devProxy =\n location.search.slice(1).split('=')[1] ||\n location.hash.slice(1).split('=')[1]\n // const query = querystring.parse(location.search.slice(1));\n const devProxy = query.devProxy || `${env}-api`\n url = `${devProxy}${isOpenApi ? '/vue-openapi' : ''}`\n } else if (isOpenApi) {\n url = '/vue-openapi'\n } else {\n url = '/vue-api'\n }\n return url\n}\n\nexport { getEnv, getBaseUrl }\n","const setCookie = (\n name: string,\n value: string,\n expiresHours: number,\n path: string = '',\n) => {\n let cookieString = `${name}=${escape(value)}`\n if (expiresHours === Infinity) {\n cookieString = `${cookieString}; expires=Fri, 31 Dec 9999 23:59:59 GMT`\n }\n // 判断是否设置过期时间\n else if (expiresHours > 0) {\n // debugger;\n const date = new Date()\n date.setTime(date.getTime() + expiresHours * 60 * 60 * 1000)\n cookieString = `${cookieString}; expires=\" + date.toGMTString()`\n }\n\n document.cookie = `${cookieString};path=${path}`\n}\n\nconst getCookie = (name: string) => {\n const reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)')\n const arr = document.cookie.match(reg)\n if (arr) {\n return decodeURIComponent(arr[2])\n }\n return null\n}\n\nconst delCookie = ({ name, path = '' }: { name: string; path: string }) => {\n if (path === 'all') {\n document.cookie = name + '=; expires=Thu, 01-Jan-70 00:00:01 GMT;path=/'\n } else {\n document.cookie =\n name + '=; expires=Thu, 01-Jan-70 00:00:01 GMT;path=' + path\n }\n}\n\nexport { setCookie, getCookie, delCookie }\n","import axios from 'axios'\nimport { getBaseUrl } from './env'\nimport { getCookie } from './cookie'\nimport { ElMessage, ElLoading } from 'element-plus'\nimport 'element-plus/es/components/message/style/css'\nimport 'element-plus/es/components/loading/style/css'\n\n// 创建一个axios实例\nconst instance = axios.create({\n method: 'post',\n timeout: 20000,\n baseURL: getBaseUrl(),\n headers: {\n 'Content-Type': 'application/json',\n },\n})\nlet reqNum = 0\nlet loading = { close: () => {} }\nfunction startLoading() {\n if (reqNum === 0) {\n loading = ElLoading.service({\n fullscreen: true,\n lock: true,\n text: '请稍等,正在加载中...',\n spinner: 'el-icon-loading',\n background: 'rgba(0,0,0,0.7)',\n })\n }\n\n reqNum++\n}\n\nfunction closeLoading() {\n if (reqNum <= 0) {\n return\n }\n\n reqNum--\n\n if (reqNum === 0) {\n loading.close()\n }\n}\n\nfunction endLoading() {\n closeLoading()\n}\ninstance.interceptors.request.use(\n async (config) => {\n const token = getCookie('access_token')\n if (token) {\n config.headers['Authorization'] = `Bearer ${token}`\n }\n if (config.loading) {\n startLoading()\n }\n config.headers = {\n ...config.headers,\n ...(window.hx &&\n window.hx.getSignHeaders({\n // 只有openapi接口需要传sign\n sign: config.sign || window.ELPLUSSIGN,\n config,\n })),\n }\n const cancelRequest = config.cancelRequest\n config.cancelToken = new axios.CancelToken(function (cancel) {\n cancelRequest && cancelRequest(cancel)\n })\n return config\n },\n (error) => {\n console.log(error)\n return Promise.reject(error)\n },\n)\ninstance.interceptors.response.use(\n (response) => {\n const config = response.config\n if (config.loading) {\n endLoading()\n }\n const responseCode = response.data.code\n const { hideToast, hideToastCode = {} } = response.config.headers\n // 由于数组会被axios自动转换成对象,所以将其先转换成伪数组然后转换成数组\n hideToastCode.length = Object.keys(hideToastCode).length\n if (responseCode === 200) {\n return Promise.resolve(response.data)\n } else if (\n hideToast ||\n Array.prototype.slice.call(hideToastCode).indexOf(responseCode) > -1\n ) {\n return Promise.reject(response.data)\n } else {\n setTimeout(() => {\n ElMessage.error({\n message: `<pre>${response.data.msg}</pre>`,\n type: 'error',\n duration: 2000,\n dangerouslyUseHTMLString: true,\n })\n }, 300)\n return Promise.reject(response.data)\n }\n },\n (error) => {\n const { config = {}, message } = error\n const { url } = config\n if (config.loading) {\n endLoading()\n }\n\n if (error && error.response) {\n const { status } = error.response\n switch (status) {\n case 400:\n error.message = error.response.data.message || error.response.data.msg\n break\n case 403:\n error.message = '拒绝访问(403)'\n break\n case 404:\n error.message = '请求出错(404)'\n break\n case 408:\n error.message = '请求超时(408)'\n break\n case 500:\n error.message = '服务器错误(500)'\n break\n case 501:\n error.message = '服务未实现(501)'\n break\n case 502:\n error.message = '网络错误(502)'\n break\n case 503:\n error.message = '服务不可用(503)'\n break\n case 504:\n error.message = '网络超时(504)'\n break\n case 505:\n error.message = 'HTTP版本不受支持(505)'\n break\n default:\n error.message = `连接出错(${error.response.status})!`\n }\n } else {\n // 请求超时状态\n if (error.message.includes('timeout')) {\n error.message = `请求${url ? url : ''}超时,请检查网络是否连接正常`\n } else {\n error.message = `请求${url ? url : ''}失败,请检查网络是否已连接`\n }\n }\n if (!axios.isCancel(error) || !config.noErrorMsg) {\n ElMessage.error({\n message: error.message,\n type: 'error',\n duration: 2000,\n dangerouslyUseHTMLString: true,\n })\n }\n\n return Promise.reject(error)\n },\n)\nconst fetch = instance.request\nexport { instance }\nexport default fetch\n","import type { Directive } from 'vue'\nimport request from '@el-plus/utils/request'\n\n// v-permisson:CGXQD:QXSP\nconst vPermisson: Directive<HTMLElement> & { name: string } = {\n name: 'permission',\n mounted(el, binding) {\n const { arg, value } = binding.value\n if (!arg && !value) {\n return\n }\n el.style.display = 'none'\n const permission = `${arg}:${value}`\n checkPermission(permission, el)\n },\n updated(el, binding) {\n const { arg, value } = binding.value\n if (!arg && !value) {\n if (el.style.display === 'none') {\n el.style.display = ''\n }\n return\n }\n const permission = `${arg}:${value}`\n checkPermission(permission, el)\n },\n}\n\nexport async function checkPermission(permission: string, el: HTMLElement) {\n const { data: roles = [] } = await queryRoles()\n const hasPermission = roles.indexOf(permission) > -1\n if (!hasPermission) {\n el && el.parentNode && el.parentNode.removeChild(el)\n } else {\n el.style.display = ''\n }\n return hasPermission\n}\ntype RequestPromise = Promise<{ data: string[] }>\nlet requestPromise: RequestPromise | null = null\nasync function queryRoles(): RequestPromise {\n try {\n if (requestPromise) {\n return requestPromise\n }\n requestPromise = request({\n url: '/api-u/api/saas/user/appButtonRoleList',\n loading: true,\n noErrorMsg: true,\n })\n return requestPromise\n } catch (error) {\n console.error(error)\n return { data: [] }\n }\n}\n\nexport default vPermisson\n","import { defineComponent, computed } from 'vue'\nimport { buttonsProps } from './buttons'\nimport { createNameSpace } from '@el-plus/utils/bem'\nimport {\n prepareProps,\n prepareEvents,\n prepareClassNames,\n prepareStyles,\n} from '@el-plus/utils/props'\nimport { vRepeatClick, vPermission } from '@el-plus/directives'\nimport { ElMessageBox } from 'element-plus'\nconst bem = createNameSpace('button')\n\nexport default defineComponent({\n name: 'EpButtons',\n directives: {\n [vRepeatClick.name]: vRepeatClick,\n [vPermission.name]: vPermission,\n },\n inheritAttrs: false,\n props: buttonsProps,\n setup(props, { emit }) {\n const { list, ...buttonProps } = props\n const customList = computed(() => {\n return list.filter((button) => {\n if ('show' in button) {\n return typeof button.show === 'function'\n ? button.show(button)\n : button.show\n } else if ('hide' in button) {\n return typeof button.hide === 'function'\n ? !button.hide(button)\n : !button.hide\n }\n return true\n })\n })\n const clickFn = async (item) => {\n if (item.confirm) {\n const confirmText = item.confirmText || `确定要${item.name}吗?`\n await ElMessageBox.confirm(confirmText, 'Warning', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning',\n })\n }\n item.onClick()\n }\n\n return () => (\n <>\n {customList.value.map((item) => {\n const permissionArr = item.permission?.split(':') || []\n return (\n <el-button\n class={[bem.b(), prepareClassNames()]}\n style={prepareStyles()}\n key={item.prop || item.name}\n v-slots={{\n default: () => item.name,\n ...item.scopedSlots,\n }}\n {...{\n ...prepareProps(buttonProps),\n ...prepareProps(item, ['scopedSlots', 'name', 'onClick']),\n }}\n v-repeat-click={\n typeof item.onClick === 'function'\n ? {\n handler: () => clickFn(item),\n immediate: true,\n }\n : () => clickFn(item)\n }\n v-permission={{\n arg: permissionArr[0],\n value: permissionArr[1],\n }}\n ></el-button>\n )\n })}\n </>\n )\n },\n})\n","import type { Plugin, App, Component } from 'vue'\n\n// 绑定install,使得可以app.use注册为全局组件\ntype SFCWithInstall<T> = T & Plugin\nexport function withInstall<T extends Component>(comp: T) {\n ;(comp as SFCWithInstall<T>).install = (app: App) => {\n app.component((comp as { name: string }).name, comp)\n }\n return comp as SFCWithInstall<T>\n}\n","import Buttons from './src/buttons-vue'\nimport { withInstall } from '@el-plus/utils/with-install'\n\nexport default withInstall(Buttons)\nexport * from './src/buttons'\n","import type { ExtractPropTypes, PropType, ExtractPublicPropTypes } from 'vue'\nimport {\n formProps as elFormProps,\n formEmits as elFormEmits,\n} from 'element-plus'\nimport type { FormItemProps } from './form-item'\nconst expandFormProps = {\n // 表单列表\n formItemList: {\n type: Array as PropType<FormItemProps[]>,\n default: () => [] as FormItemProps[],\n },\n // 是否显示折叠\n isShowFold: Boolean,\n\n // 最大显示的表单数\n showFieldCount: {\n type: Number,\n default: 8,\n },\n // 每行的列数\n col: {\n type: Number,\n default: 4,\n },\n}\nexport const formProps = {\n ...elFormProps,\n ...expandFormProps,\n size: {\n ...elFormProps.size,\n default: 'small',\n },\n // 标签的长度\n labelWidth: {\n ...elFormProps.labelWidth,\n default: 120,\n },\n scrollIntoViewOptions: {\n ...elFormProps.scrollIntoViewOptions,\n default: () => {\n return { inline: 'center' }\n },\n },\n}\nexport type FormProps = ExtractPropTypes<typeof formProps>\nexport const expandFormPropsKeys = Object.keys(expandFormProps)\n/* eslint-disable @typescript-eslint/no-unused-vars */\nexport const formEmits = {\n ...elFormEmits,\n toggleStatus: (status: boolean) => true, // 折叠状态切换时触发\n}\n/* eslint-enable @typescript-eslint/no-unused-vars */\n\nexport type FormEmits = typeof formEmits\nexport const formEmitsKeys = Object.keys(formEmits)\n","import { ref, computed, useTemplateRef, type SetupContext } from 'vue'\nimport type { FormItemProps } from '../form-item'\nimport type { FormProps, FormEmits } from '../form'\nimport type { FormInstance, FormItemProp } from 'element-plus'\n\ninterface UseCollapseParams {\n isShowFold: boolean\n showFieldCount: number\n filterFormItemList: { value: FormItemProps[] }\n}\nexport const useCollapse = (\n { isShowFold, showFieldCount, filterFormItemList }: UseCollapseParams,\n emit: SetupContext<FormEmits>['emit'],\n) => {\n const open = ref(false)\n const toggleStatus = () => {\n open.value = !open.value\n emit('toggleStatus', open.value)\n }\n // 是否显示折叠按钮\n const isShowFoldBtn = computed(() => {\n return isShowFold && filterFormItemList.value.length > showFieldCount\n })\n // 展开收起隐藏formItem逻辑\n const isShowFormItem = (index: number) => {\n return index < showFieldCount || open.value || !isShowFoldBtn.value\n }\n return {\n open,\n toggleStatus,\n isShowFoldBtn,\n isShowFormItem,\n }\n}\n\nexport const useForm = (props: FormProps) => {\n const elFormRef = useTemplateRef<FormInstance>('elFormRef')\n const filterFormItemList = computed(() => {\n return props.formItemList.filter((item: FormItemProps) => {\n if ('show' in item) {\n return typeof item.show === 'function' ? item.show(item) : item.show\n } else if ('hide' in item) {\n return typeof item.hide === 'function' ? !item.hide(item) : !item.hide\n }\n return true\n })\n })\n // 校验\n const validate = () => {\n return elFormRef.value!.validate()\n }\n // 重置校验\n const resetFields = (props: FormItemProp) => {\n return elFormRef.value!.resetFields(props)\n }\n // 清理某个字段的表单验证信息\n const clearValidate = (props: FormItemProp) => {\n return elFormRef.value!.clearValidate(props)\n }\n\n return {\n filterFormItemList,\n elFormRef,\n validate,\n resetFields,\n clearValidate,\n }\n}\n","import { h, resolveComponent, useAttrs } from 'vue'\nimport type { FormItemProps } from '../form-item'\nimport type { FormItemRule } from 'element-plus'\nexport const useFormItem = () => {\n return {}\n}\nexport const useFormItemSlots = (props: FormItemProps) => {\n const attrs = useAttrs()\n const { type, label, render, required, labelRender } = props\n const prop = props.tableProp || props.prop\n const { scopedSlots: renderScopedSlots, ...renderProps } = props.props || {}\n const events: Record<string, (...args: any[]) => void> = {}\n for (const key in attrs) {\n if (key.startsWith('on')) {\n events[key] = attrs[key] as (...args: any[]) => void\n }\n }\n\n const formData = attrs['form-data'] as Record<string, unknown>\n const scopedSlots = {\n default: () => {\n return type\n ? h(\n resolveComponent(type),\n {\n modelValue: formData[prop as string],\n 'onUpdate:modelValue': (value: unknown) => {\n formData[prop as string] = value\n },\n ...renderProps,\n ...events,\n },\n renderScopedSlots,\n )\n : formData[prop as string]\n },\n label: () => {\n return (\n <el-tooltip\n placement=\"top\"\n effect=\"light\"\n content={label}\n disabled={!props.isShowLabel}\n >\n <span>\n {!props.hideRequiredAsterisk && required ? (\n <span style=\"color: var(--el-color-danger);\">*</span>\n ) : null}\n {props.isShowLabel ? <span>{label}</span> : ''}\n </span>\n </el-tooltip>\n )\n },\n }\n\n if (labelRender) {\n scopedSlots.label = () => labelRender({ label })\n }\n if (render) {\n scopedSlots.default = render\n }\n return {\n scopedSlots,\n }\n}\nexport const useFormItemRules = (props: FormItemProps) => {\n const { required, rules, label } = props\n let mergeRules: FormItemRule[] = []\n if (required) {\n const requiredDefault = { required: true }\n mergeRules.push(requiredDefault)\n }\n if (rules) {\n if (Array.isArray(rules)) {\n mergeRules = mergeRules.concat(rules)\n }\n\n if (Object.prototype.toString.call(rules) === '[object Object]') {\n mergeRules.push(rules as FormItemRule)\n }\n }\n\n if (mergeRules) {\n mergeRules.forEach((r) => {\n if (r.required && typeof r.message === 'undefined') {\n r.message = `${label || ''}不能为空`\n }\n })\n }\n return { rules: mergeRules }\n}\n","import { formItemProps as elFormItemProps } from 'element-plus'\nimport { visibleProps } from '@el-plus/utils/props'\nimport { CSSProperties } from 'vue'\nimport type {\n VNode,\n PropType,\n ExtractPropTypes,\n ExtractPublicPropTypes,\n} from 'vue'\nconst expandFormItemProps = {\n type: {\n type: String,\n // default: 'EpInput',\n },\n col: Number,\n render: Function as PropType<() => VNode>,\n labelRender: Function as PropType<\n ({ label }: { label: string | undefined }) => VNode\n >,\n props: Object,\n ...visibleProps,\n class: String,\n style: {\n type: [String, Object] as PropType<string | CSSProperties>,\n },\n isShowLabel: {\n type: Boolean,\n default: true,\n },\n hideRequiredAsterisk: Boolean,\n tableProp: String, // 用于table里的表单需要绑定的prop\n}\nexport const formItemProps = {\n ...elFormItemProps,\n ...expandFormItemProps,\n}\nexport type FormItemProps = ExtractPublicPropTypes<typeof formItemProps>\nexport const expandFormItemPropsKeys = Object.keys(expandFormItemProps)\n","import { defineComponent, useAttrs } from 'vue'\nimport { createNameSpace } from '@el-plus/utils/bem'\nimport { useFormItemRules, useFormItemSlots } from './hooks/use-form-item'\nimport { formItemProps, expandFormItemPropsKeys } from './form-item'\nimport {\n prepareProps,\n prepareEvents,\n prepareClassNames,\n prepareStyles,\n} from '@el-plus/utils/props'\nconst bem = createNameSpace('form-item')\nexport default defineComponent({\n name: 'EpFormItem',\n inheritAttrs: false,\n props: formItemProps,\n setup(props, { emit }) {\n // const {} = useFormItem(props)\n const attrs = useAttrs()\n const { scopedSlots } = useFormItemSlots(props)\n const { rules } = useFormItemRules(props)\n const { props: childProps, ...formItemProps } = props // eslint-disable-line\n return () => {\n return (\n <el-form-item\n class={[bem.b(), prepareClassNames()]}\n style={prepareStyles()}\n v-slots={scopedSlots}\n {...{\n ...prepareProps(formItemProps, [...expandFormItemPropsKeys]),\n rules,\n 'label-width': attrs['form-label-width'],\n }}\n // scopedSlots={scopedSlots}\n // label={label}\n // prop={prop}\n // rules={mergeRules}\n // {...{ props: formItemProps }}\n />\n )\n }\n },\n})\n","<template>\n <div\n :class=\"[\n bem.b(),\n prepareClassNames(),\n bem.is('open', open),\n bem.is('fold', isShowFoldBtn),\n ]\"\n :style=\"{\n ...prepareStyles(),\n }\"\n >\n <el-form ref=\"elFormRef\" :model=\"formData\" v-bind=\"customAttrs\">\n <slot>\n <el-row>\n <el-col\n v-for=\"(item, index) in filterFormItemList\"\n v-show=\"isShowFormItem(index)\"\n :key=\"item.prop || index\"\n :class=\"bem.e('col')\"\n :span=\"item.col || 24 / col\"\n >\n <FormItem\n :form-data=\"formData\"\n :form-label-width=\"labelWidth\"\n v-bind=\"item\"\n />\n </el-col>\n </el-row>\n </slot>\n </el-form>\n <div v-if=\"isShowFoldBtn\" :class=\"bem.e('fold')\" @click=\"toggleStatus\">\n {{ open ? '收起' : '更多' }}\n </div>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { computed, reactive, ref, useTemplateRef } from 'vue'\nimport { createNameSpace } from '@el-plus/utils/bem'\nimport {\n formProps,\n formEmits,\n formEmitsKeys,\n expandFormPropsKeys,\n} from './form'\nimport type { FormEmits } from './form'\nimport {\n prepareProps,\n prepareEvents,\n prepareClassNames,\n prepareStyles,\n} from '@el-plus/utils/props'\nimport { useCollapse, useForm } from './hooks/use-form'\nimport FormItem from './form-item-vue'\ndefineOptions({\n name: 'EpForm',\n inheritAttrs: false,\n})\nconst bem = createNameSpace('form')\nconst props = defineProps(formProps)\nconst emit = defineEmits(formEmits)\nconst customAttrs = computed(() => {\n return {\n ...prepareProps(props, ['modelValue', 'model', ...expandFormPropsKeys]),\n hideRequiredAsterisk: true, // 隐藏必填星号, 使用自己的*\n scrollToError: true,\n ...prepareEvents<FormEmits>(emit, formEmitsKeys),\n }\n})\nconst formData = defineModel<Record<string, unknown>>({\n default: () => reactive({}),\n})\n\nconst { filterFormItemList, elFormRef, validate, resetFields, clearValidate } =\n useForm(props)\n\nconst { open, toggleStatus, isShowFoldBtn, isShowFormItem } = useCollapse(\n {\n filterFormItemList,\n isShowFold: props.isShowFold,\n showFieldCount: props.showFieldCount,\n },\n emit,\n)\n\ndefineExpose({\n elFormRef,\n validate,\n resetFields,\n clearValidate,\n})\n</script>\n","import Form from './src/form.vue'\nimport FormItem from './src/form-item-vue'\nimport { withInstall } from '@el-plus/utils/with-install'\nexport default withInstall(Form)\nexport * from './src/form'\nexport * from './src/form-item'\nexport { FormItem as EpFormItem }\nexport type FormInstance = InstanceType<typeof Form>\nexport type FormItemInstance = InstanceType<typeof FormItem>\n\n","import type { ExtractPropTypes } from 'vue'\nimport {\n inputProps as elInputProps,\n inputEmits as elInputEmits,\n} from 'element-plus'\n\nexport const inputProps = {\n ...elInputProps,\n max: Number,\n min: Number,\n radix: Number,\n nonzero: Boolean,\n placeholder: {\n type: String,\n default: '请输入',\n },\n thousand: {\n type: Boolean,\n default: true,\n },\n clearable: {\n ...elInputProps.clearable,\n default: true,\n },\n}\nexport type InputProps = ExtractPropTypes<typeof inputProps>\nexport const inputEmits = {\n ...elInputEmits,\n}\nexport type InputEmits = typeof inputEmits\nexport const inputEmitsKeys = Object.keys(inputEmits)\n\n// max: Number,\n// min: Number,\n// nonzero: Boolean,\n// format: Function,\n// radix: {\n// type: [String, Number],\n// default: 5,\n// },\n// thousand: {\n// type: Boolean,\n// default: false,\n// },\n","<template>\n <el-input\n ref=\"inputRef\"\n v-model=\"value\"\n :class=\"`${bem.b()} ${prepareClassNames()}`\"\n :style=\"{\n ...prepareStyles(),\n }\"\n v-bind=\"customAttrs\"\n :type=\"type === 'number' ? 'text' : type\"\n >\n <template v-for=\"name in slots\" #[name]=\"scope\">\n <slot :name=\"name\" v-bind=\"scope\" />\n </template>\n </el-input>\n</template>\n<script setup lang=\"ts\">\nimport { computed, useSlots, watch, ref, onMounted } from 'vue'\nimport { createNameSpace } from '@el-plus/utils/bem'\nimport { inputProps, inputEmits, inputEmitsKeys } from './input'\nimport type { InputProps, InputEmits } from './input'\nimport {\n prepareProps,\n prepareEvents,\n prepareClassNames,\n prepareStyles,\n} from '@el-plus/utils/props'\ndefineOptions({\n name: 'EpInput',\n inheritAttrs: false,\n})\nconst bem = createNameSpace('input')\nconst props = defineProps(inputProps)\nconst emit = defineEmits(inputEmits)\nconst slots = computed(() => {\n return Object.keys(useSlots())\n})\nlet isBluring = false\nlet isFocusing = false\nconst customAttrs = computed(() => {\n return {\n ...prepareProps(props, ['modelValue']),\n ...prepareEvents<InputEmits>(emit, inputEmitsKeys),\n placeholder: props.disabled ? '' : props.placeholder,\n onFocus: (e: FocusEvent) => {\n isFocusing = true\n if (props.thousand) {\n ;(e.target as HTMLInputElement).value = value.value\n ? String(value.value)\n : ''\n }\n emit('focus', e)\n },\n onBlur: (e: FocusEvent) => {\n if (props.type === 'number') {\n let val = value.value as string\n if (props.nonzero && +val === 0) {\n val = ''\n }\n if (val && val[val.length - 1] === '.') {\n val = String(val).slice(0, -1)\n }\n\n if (val && val === '-') {\n val = ''\n }\n value.value = val ? +val : val\n ;(e.target as HTMLInputElement).value = toThousand(value.value)\n }\n isBluring = true\n isFocusing = false\n emit('blur', e)\n },\n }\n})\nconst value = defineModel<InputProps['modelValue']>()\nconst inputRef = ref()\nconst toThousand = (val: string | number) => {\n if (props.thousand) {\n return val ? window.hx.thousand(val) : val\n }\n return val\n}\nwatch(\n () => value.value,\n (val) => {\n if (props.type === 'number') {\n onMounted(() => {\n inputRef.value.input.value = toThousand(val as number)\n })\n }\n if (isBluring) {\n isBluring = false\n return\n }\n if (!isFocusing) {\n return\n }\n if (props.type === 'number') {\n if (typeof val === 'number') {\n val = '' + val\n }\n if (typeof val === 'string') {\n // 校验一次是否0+数字开头,这种情况直接把0去除\n const zeroReg = new RegExp('^[-+]?0[0-9]\\\\d*')\n if (zeroReg.test(val)) {\n val = val.replace('0', '')\n }\n const reg = new RegExp('^([-+])?\\\\d*(\\\\.?\\\\d*)', 'g')\n val = val.match(reg) ? val.match(reg)![0] : ''\n\n // 限制小数位数\n if (props.radix || props.radix === 0) {\n const reg =\n props.radix === 0\n ? new RegExp('^([-+])?\\\\d*', 'g')\n : new RegExp(`^([-+])?\\\\d*(\\\\.?\\\\d{0,${props.radix}})`, 'g')\n val = val.match(reg) ? val.match(reg)![0] : ''\n }\n if ((props.max || props.max === 0) && +val > props.max) {\n val = props.max\n }\n // 最大最小值\n if (\n (props.min || props.min === 0) &&\n (val || val === 0) &&\n +val < props.min\n ) {\n val = props.min\n }\n }\n } else if (props.type === 'text') {\n val = (val as string).trim()\n }\n value.value = val\n },\n {\n immediate: true,\n },\n)\n</script>\n","import Input from './src/input.vue'\nimport { withInstall } from '@el-plus/utils/with-install'\n\nexport default withInstall(Input)\nexport * from './src/input'\n\n// GlobalComponents是vue3自带,用于扩展接口,给用户自定义全局组件补充类型提示\ndeclare module 'vue' {\n export interface GlobalComponents {\n // 接口自动合并\n EpInput: typeof Input\n }\n}\n","import type { PropType, ExtractPublicPropTypes } from 'vue'\nimport elTableProps from 'element-plus/es/components/table/src/table/defaults'\nimport { ElTable } from 'element-plus'\nimport { apiProps, type VisibleProps } from '@el-plus/utils/props'\nimport type { WithOnPrefixAndCamelCase } from '@el-plus/utils/type'\nimport type {\n TableColumnCtx,\n PaginationProps,\n PaginationEmits,\n} from 'element-plus'\nimport type { ButtonProps } from '@el-plus/components/buttons'\nconst inheritTableProps = {\n ...elTableProps,\n // Table 的尺寸\n size: {\n ...elTableProps.size,\n default: 'default',\n },\n // 是否带有纵向边框\n border: {\n ...elTableProps.border,\n default: true,\n },\n // 表头样式\n headerCellStyle: {\n ...elTableProps.headerCellStyle,\n default: () => ({\n background: '#EEEFF3',\n // textAlign: 'center',\n fontSize: '14px',\n color: '#505050',\n }),\n },\n}\nexport type TableColumn = Partial<\n TableColumnCtx & {\n required: boolean | (() => boolean)\n cellRequired: (scope: TableScope) => boolean\n headerRender: TableColumnCtx['renderHeader']\n disabled: boolean | ((scope: TableScope) => boolean)\n props: Record<string, any> // eslint-disable-line @typescript-eslint/no-explicit-any\n filter: boolean // 是否显示筛选\n [key: string]: any\n } & VisibleProps\n>\nexport type TableScope<\n T extends Record<string, unknown> = Record<string, unknown>,\n> = {\n column: TableColumnCtx<T>\n row: T\n $index: number\n store: unknown\n _self: unknown\n}\nconst expandTableProps = {\n ...apiProps,\n columns: {\n type: Array as PropType<TableColumn[]>,\n default: () => [],\n },\n // 是否显示勾选列\n showSelectionCol: Boolean,\n // 是否显示序号列\n showIndexCol: {\n type: Boolean,\n default: true,\n },\n // 对齐方式\n align: {\n type: String as PropType<'left' | 'center' | 'right'>,\n default: 'center',\n },\n // 序号列自定义\n indexFormatter: {\n type: [Number, Function] as PropType<TableColumnCtx['index']>,\n },\n disabled: Boolean,\n reserveSelection: Boolean,\n selectable: {\n type: Function as PropType<TableColumnCtx['selectable']>,\n },\n paginationProps: {\n type: Object as PropType<\n Partial<PaginationProps & WithOnPrefixAndCamelCase<PaginationEmits>>\n >,\n default: () => ({}),\n },\n showPagination: Boolean,\n isFrontPage: Boolean,\n // 操作列\n actionButtons: {\n type: Array as PropType<ButtonProps[]>,\n default: () => [],\n },\n // 链接列\n linkProps: {\n type: Array as PropType<ButtonProps[]>,\n default: () => [],\n },\n}\n\nexport const tableProps = {\n ...inheritTableProps,\n ...expandTableProps,\n}\nexport type TableProps = ExtractPublicPropTypes<typeof tableProps>\nexport const expandTablePropsKeys = Object.keys(expandTableProps)\n\nexport const tableEmits = ElTable.emits\n\nexport type TableEmits = typeof tableEmits\nexport const tableEmitsKeys = tableEmits\n","import { ref } from 'vue'\nimport { type Ref } from 'vue'\nimport type { Api, ReqAfter, ReqBefore, Method } from '@el-plus/utils/type'\nimport type { Canceler } from 'axios'\n\nimport request from '@el-plus/utils/request'\ntype UseRequest = (config: {\n api?: Api\n method?: Method\n reqData?: Record<string, unknown>\n reqParams?: Record<string, unknown>\n reqBefore?: ReqBefore\n reqAfter?: ReqAfter\n cancelToken?: boolean\n hooks?: {\n success?: (data: unknown) => void\n fail?: (error: unknown) => void\n }\n}) => {\n loading?: Ref<boolean>\n requestFn?: (data?: Record<string, unknown>) => Promise<void>\n}\n\nexport const useRequest: UseRequest = ({\n api,\n method,\n reqData,\n reqParams,\n reqBefore,\n reqAfter,\n cancelToken,\n hooks,\n}) => {\n if (!api) return {}\n const loading = ref(false)\n let cancelRequest: Canceler\n let apiFn\n if (typeof api === 'string') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const config: Record<string, any> = {\n url: api,\n method,\n }\n if (cancelToken) {\n config.cancelRequest = (cancel: Canceler) => {\n cancelRequest = cancel\n }\n }\n\n apiFn = (data: Record<string, any> = {}, params?: Record<string, any>) => {\n if (config.method === 'get') {\n config.params = data\n } else {\n config.data = data\n config.params = params\n }\n config.data = {\n ...reqData,\n ...config.data,\n }\n config.params = {\n ...reqParams,\n ...config.params,\n }\n // 替换$query为$searchValue\n if (data.$query) {\n config.data[data.$query] = data.$searchValue\n delete data.$searchValue\n }\n\n if (reqBefore) {\n reqBefore(config)\n }\n return request(config)\n }\n } else {\n apiFn = api\n }\n const requestFn = async (data: Record<string, unknown> = {}) => {\n if (loading.value && !cancelToken) return\n loading.value = true\n try {\n cancelRequest && cancelRequest()\n const res = await apiFn(data)\n if (reqAfter) {\n reqAfter(res)\n }\n if (hooks?.success) {\n hooks.success(res.data)\n }\n } catch (error) {\n if (hooks?.fail) {\n hooks.fail(error)\n }\n } finally {\n loading.value = false\n }\n }\n return {\n loading,\n requestFn,\n }\n}\n","import type { FormInstance, TableInstance, FormItemProp } from 'element-plus'\nimport { ref, computed, type Ref, reactive, useTemplateRef } from 'vue'\nimport { useRequest } from '@el-plus/hooks/use-request'\nimport type { TableColumn, TableProps, TableScope } from './table'\nimport type { ButtonProps } from '@el-plus/components/buttons'\nimport {\n prepareProps,\n prepareEvents,\n prepareClassNames,\n prepareStyles,\n} from '@el-plus/utils/props'\nexport type ISearch = (init: boolean, isPagination?: boolean) => void\nexport const useTable = (props: TableProps) => {\n const elFormRef = useTemplateRef<FormInstance>('elFormRef')\n const elTableRef = useTemplateRef<TableInstance>('elTableRef')\n const customData = ref<Record<string, unknown>[]>([])\n const { loading, requestFn } = useRequest({\n api: props.api,\n method: props.method,\n reqData: props.reqData,\n reqParams: props.reqParams,\n reqBefore: props.reqBefore,\n reqAfter: props.reqAfter,\n cancelToken: true,\n hooks: {\n success(data) {\n if (Array.isArray(data)) {\n customData.value = data\n } else if (data && typeof data === 'object') {\n const rawData = data as Record<string, any>\n customData.value = rawData?.list || rawData?.data || []\n } else {\n customData.value = []\n }\n if (props.showPagination) {\n pagination.total =\n (props.isFrontPage\n ? customData.value.length\n : (data as { total: number }).total) || 0\n }\n },\n fail(error) {\n console.error(error)\n },\n },\n })\n // 加载下拉列表\n const search: ISearch = (init = false, isPagination = false) => {\n if (init) {\n pagination.pageNo = 1\n }\n // 前端分页\n if (isPagination && props.isFrontPage) {\n const { pageNo, pageSize } = pagination\n const data = customData.value.filter((item, index) => {\n return index < pageNo * pageSize && index >= (pageNo - 1) * pageSize\n })\n customData.value = data\n } else {\n if (props.api) {\n requestFn!({\n pageNo: pagination.pageNo,\n pageSize: pagination.pageSize,\n })\n } else if (props.data?.length) {\n customData.value = props.data\n }\n }\n }\n const { pagination, paginationProps } = usePagination(props, search)\n search(true)\n // 校验\n const validate = () => {\n return elFormRef.value!.validate()\n }\n // 重置校验\n const resetFields = (props: FormItemProp) => {\n return elFormRef.value!.resetFields(props)\n }\n // 清理某个字段的表单验证信息\n const clearValidate = (props: FormItemProp) => {\n return elFormRef.value!.clearValidate(props)\n }\n // 格式化操作按钮\n const formatActionButtons = (list: ButtonProps[], scope: TableScope) => {\n return list.map((item) => {\n if (item.onClick) {\n item.onClick = item.onClick.bind(null, scope)\n }\n return item\n })\n }\n\n return {\n loading,\n data: customData,\n search,\n pagination,\n paginationProps,\n validate,\n resetFields,\n clearValidate,\n elFormRef,\n elTableRef,\n formatActionButtons,\n }\n}\nconst usePagination = function (props: TableProps, search: ISearch) {\n const pageSizes = [20, 50, 100, 200]\n const pagination = reactive({\n total: 0,\n pageNo: 1,\n pageSize: pageSizes[0],\n })\n const paginationProps = computed(() => {\n const defaultPaginationProps = props.paginationProps || {}\n const onSizeChange = defaultPaginationProps.onSizeChange\n const onCurrentChange = defaultPaginationProps.onCurrentChange\n return {\n ...defaultPaginationProps,\n pageSizes,\n layout: 'total, sizes, prev, pager, next, jumper',\n onSizeChange: (value: number) => {\n onSizeChange && onSizeChange(value)\n search(true, true)\n },\n onCurrentChange: (value: number) => {\n onCurrentChange && onCurrentChange(value)\n search(false, true)\n },\n }\n })\n return {\n pagination,\n paginationProps,\n }\n}\n\nexport const useTableColumn = (\n props: TableProps,\n tableData: Ref<TableProps['data']>,\n) => {\n const columnProps = (column: TableColumn) => {\n const attrs = {\n align: column.align || props.align,\n // ...prepareEvents<TableEmits>(emit, tableEmits),\n } as TableColumn\n // console.log(attrs)\n\n if (!column.renderHeader) {\n let required = column.required\n if (typeof column.required === 'function') {\n required = column.required()\n }\n if (required) {\n attrs['renderHeader'] = (data) => {\n const { column } = data\n return (\n <span>\n <span style=\"color:var(--el-color-danger)\"> * </span>\n {column.label}\n </span>\n )\n }\n }\n }\n if (column.headerRender) {\n attrs.renderHeader = column.headerRender\n }\n if (column.filter) {\n const arr = tableData.value!.map((item) => item[column.prop!])\n attrs.filters = [...new Set(arr)].map((item) => {\n return {\n text: item,\n value: item,\n }\n })\n attrs.filterMethod = (value, row) => {\n return row[column.prop!] === value\n }\n }\n return {\n ...attrs,\n ...prepareProps(column),\n }\n }\n const columnList = computed(() => {\n return props.columns!.filter((column: TableColumn) => {\n if (props.linkProps!.length) {\n const linkColumn = props.linkProps!.find(\n (item) => item.prop === column.prop,\n )\n if (linkColumn) {\n column.type = 'EpButtons'\n column.className = 'table-column-link'\n column.props = {\n list: [linkColumn],\n type: 'text',\n ...column.props,\n }\n }\n }\n if ('show' in column) {\n return typeof column.show === 'function'\n ? column.show(column)\n : column.show\n } else if ('hide' in column) {\n return typeof column.hide === 'function'\n ? !column.hide(column)\n : !column.hide\n }\n return true\n })\n })\n return {\n columnProps,\n columnList,\n }\n}\n\nexport const useTableFormItem = (props: TableProps) => {\n const formItemProps = (scope: TableScope, item: TableColumn) => {\n let required = item.required\n if (typeof required === 'function') {\n required = required()\n }\n if (item.cellRequired) {\n required = item.cellRequired(scope)\n }\n let disabled = props.disabled\n if ('disabled' in item) {\n if (typeof item.disabled === 'function') {\n disabled = item.disabled(scope)\n } else {\n disabled = item.disabled || false\n }\n }\n if (item.type === 'EpSelect' && item.props) {\n if ('options' in item.props && typeof item.props.options === 'function') {\n item.props.options = item.props.options(scope)\n }\n if (\n 'disabledOption' in item.props &&\n typeof item.props.disabledOption === 'function'\n ) {\n const disabledOption = item.props.disabledOption\n item.props.disabledOption = (...args: unknown[]) =>\n disabledOption(...args, scope)\n }\n }\n\n if (item.type === 'EpButtons' && item.props) {\n item.props.list.forEach((btnItem: ButtonProps) => {\n if (btnItem.prop) {\n btnItem.name = scope.row[btnItem.prop] as string\n }\n if (btnItem.onClick) {\n btnItem.onClick = btnItem.onClick.bind(null, scope)\n }\n })\n }\n for (const key in item) {\n if (key.startsWith('on') && typeof item[key] === 'function') {\n const fn = item[key]\n item[key] = (...args: unknown[]) => fn(...args, scope)\n }\n }\n return {\n ...prepareProps(item),\n isShowLabel: false,\n required,\n hideRequiredAsterisk: 'cellRequired' in item ? false : required,\n prop: `table.${scope.$index}.${item.prop}`,\n tableProp: item.prop, // table里的表单需要绑定的prop\n props: {\n ...item.props,\n disabled,\n },\n }\n }\n return {\n formItemProps,\n }\n}\n","<template>\n <div\n :class=\"`${bem.b()} ${prepareClassNames()}`\"\n :style=\"{\n ...prepareStyles(),\n }\"\n >\n <el-form\n ref=\"elFormRef\"\n :model=\"{ table: data }\"\n size=\"small\"\n hide-required-asterisk\n scroll-to-error\n :scroll-into-view-options=\"{ inline: 'center' }\"\n class=\"ep-form\"\n >\n <el-table ref=\"elTableRef\" v-loading=\"loading\" v-bind=\"customAttrs\">\n <el-table-column\n v-if=\"showSelectionCol\"\n type=\"selection\"\n width=\"55\"\n :align\n :selectable\n fixed\n />\n <el-table-column\n v-if=\"showIndexCol\"\n type=\"index\"\n width=\"56\"\n :align\n label=\"序号\"\n fixed\n :index=\"indexFormatter\"\n />\n\n <el-table-column\n v-if=\"actionButtons.length\"\n label=\"操作\"\n :align\n fixed\n width=\"200\"\n >\n <template #default=\"scope\">\n <span :class=\"bem.e('action-buttons')\">\n <EpButtons\n :list=\"formatActionButtons(actionButtons, scope)\"\n type=\"text\"\n />\n </span>\n </template>\n </el-table-column>\n <el-table-column\n v-for=\"(item, index) in columnList\"\n :key=\"index\"\n v-bind=\"columnProps(item)\"\n >\n <template #default=\"scope\">\n <EpFormItem\n v-if=\"item.type\"\n :form-data=\"scope.row\"\n v-bind=\"formItemProps(scope, item)\"\n />\n <template v-else>\n {{ scope.row[item.prop] }}\n </template>\n </template>\n </el-table-column>\n <template v-for=\"name in slots\" #[name]=\"scope\">\n <slot :name=\"name\" v-bind=\"scope\" />\n </template>\n </el-table>\n </el-form>\n <el-pagination\n v-if=\"showPagination\"\n v-model:current-page=\"pagination.pageNo\"\n v-model:page-size=\"pagination.pageSize\"\n :total=\"pagination.total\"\n v-bind=\"paginationProps\"\n />\n </div>\n</template>\n<script setup lang=\"tsx\">\nimport { computed, useSlots, ref } from 'vue'\nimport { createNameSpace } from '@el-plus/utils/bem'\nimport {\n tableProps,\n tableEmits,\n expandTablePropsKeys,\n tableEmitsKeys,\n} from './table'\nimport type { TableEmits } from './table'\nimport {\n prepareProps,\n prepareEvents,\n prepareClassNames,\n prepareStyles,\n} from '@el-plus/utils/props'\nimport { EpFormItem } from '@el-plus/components/form'\nimport { useTable, useTableColumn, useTableFormItem } from './use-table'\nimport { linkProps } from 'element-plus'\n\ndefineOptions({\n name: 'EpTable',\n inheritAttrs: false,\n})\nconst bem = createNameSpace('table')\nconst props = defineProps(tableProps)\nconst emit = defineEmits(tableEmits!)\n\nconst slots = computed(() => {\n return Object.keys(useSlots())\n // .filter((item) => item !== 'default')\n})\nconst customAttrs = computed(() => {\n return {\n ...prepareProps(props, ['modelValue', ...expandTablePropsKeys]),\n size: 'small',\n data: data.value,\n ...prepareEvents<NonNullable<TableEmits>>(emit, tableEmitsKeys!),\n }\n})\nconst {\n pagination,\n paginationProps,\n data,\n validate,\n resetFields,\n clearValidate,\n loading,\n search,\n elFormRef,\n elTableRef,\n formatActionButtons,\n} = useTable(props)\nconst { columnProps, columnList } = useTableColumn(props, data)\nconst { formItemProps } = useTableFormItem(props)\n\ndefineExpose({\n elFormRef,\n elTableRef,\n validate,\n resetFields,\n clearValidate,\n search,\n})\n// const value = defineModel<TableProps['modelValue']>()\n</script>\n","import Table from './src/table.vue'\nimport { withInstall } from '@el-plus/utils/with-install'\n\nexport default withInstall(Table)\nexport * from './src/table'\nexport type TableInstance = InstanceType<typeof Table>\n// GlobalComponents是vue3自带,用于扩展接口,给用户自定义全局组件补充类型提示\ndeclare module 'vue' {\n export interface GlobalComponents {\n // 接口自动合并\n EpTable: typeof Table\n }\n}\n","import type { PropType, ExtractPublicPropTypes } from 'vue'\nimport { apiProps } from '@el-plus/utils/props'\nimport { formProps } from '@el-plus/components/form'\nimport { buttonsProps } from '@el-plus/components/buttons'\nimport { tableProps } from '@el-plus/components/table'\nconsole.log(formProps.formItemList)\n\nexport const searchListPageProps = {\n ...apiProps,\n customColumnModule: Number, // 自定义列模块\n showOperationColumn: Boolean, // 是否显示操作列\n // 表单列表\n formItemList: {\n ...formProps.formItemList,\n },\n // 左侧按钮\n leftButtons: {\n ...buttonsProps.list,\n },\n // 表格列\n columns: {\n ...tableProps.columns,\n },\n // 操作列\n actionButtons: {\n ...tableProps.actionButtons,\n },\n // 链接列\n linkProps: {\n ...tableProps.linkProps,\n },\n showSelectionCol: Boolean,\n showIndexCol: {\n type: Boolean,\n default: true,\n },\n add: Function, // 新增\n templateDownloadApi: String, // 模板下载\n importApi: String, // 导入\n exportApi: String, // 导出\n // 表格额外距离\n offsetTop: {\n type: Number,\n default: 0,\n },\n formData: {\n type: Object,\n default: () => ({}),\n },\n tableProps: Object,\n formProps: Object,\n buttonsProps: Object,\n}\nexport type SearchListPageProps = ExtractPublicPropTypes<\n typeof searchListPageProps\n>\n","import { ref, onMounted, computed, useTemplateRef } from 'vue'\nimport type { SearchListPageProps } from './searchListPage'\nimport type { ButtonsProps } from '@el-plus/components/buttons'\nimport type { FormInstance } from '@el-plus/components/form'\nimport type { TableInstance } from '@el-plus/components/table'\nimport type { FormItemProp } from 'element-plus'\nexport const useSearchListPage = (props: SearchListPageProps) => {\n const { calcTableHeight, tableProps, tableRef } = useTable(props)\n const { formProps, validate, resetFields, formRef } = useForm(props, {\n calcTableHeight,\n })\n const { buttonsProps, searchButtons, search, reset } = useButtons(props, {\n validate,\n resetFields,\n tableRef,\n })\n return {\n formProps,\n tableProps,\n buttonsProps,\n searchButtons,\n search,\n reset,\n tableRef,\n formRef,\n }\n}\nconst useTable = (props: SearchListPageProps) => {\n const instanceName = 'tableRef'\n const tableRef = useTemplateRef<TableInstance>(instanceName)\n const tableHeight = ref(window.innerHeight)\n const tableProps = computed(() => {\n return {\n ref: instanceName,\n columns: props.columns,\n showPagination: true,\n height: tableHeight.value,\n showIndexCol: props.showIndexCol,\n showSelectionCol: props.showSelectionCol,\n actionButtons: props.actionButtons,\n linkProps: props.linkProps,\n api: props.api,\n reqData: props.formData,\n ...props.tableProps,\n }\n })\n const calcTableHeight = () => {\n const topHeight = (document.getElementById('top') as HTMLElement)\n .offsetHeight\n const middleHeight = (document.getElementById('middle') as HTMLElement)\n .offsetHeight\n let paginationHeight = 0\n if (tableProps.value.showPagination) {\n paginationHeight =\n (document.querySelector('.el-pagination') as HTMLElement).offsetHeight +\n 12\n }\n const frameDistance = 40\n tableHeight.value =\n window.innerHeight -\n topHeight -\n middleHeight -\n paginationHeight -\n frameDistance -\n props.offsetTop!\n }\n\n onMounted(calcTableHeight)\n return {\n tableRef,\n tableProps,\n calcTableHeight,\n }\n}\nconst useForm = (props: SearchListPageProps, { calcTableHeight }) => {\n const instanceName = 'formRef'\n const formRef = useTemplateRef<FormInstance>(instanceName)\n const formProps = computed(() => {\n return {\n ref: instanceName,\n formItemList: props.formItemList,\n isShowFold: true,\n modelValue: props.formData,\n ...props.formProps,\n onToggleStatus: () => {\n setTimeout(() => {\n calcTableHeight()\n }, 0) // 等展开后计算表格高度\n },\n }\n })\n // 校验\n const validate = () => {\n return formRef.value!.validate()\n }\n // 重置校验\n const resetFields = (props: FormItemProp) => {\n return formRef.value!.resetFields(props)\n }\n // 清理某个字段的表单验证信息\n const clearValidate = (props: FormItemProp) => {\n return formRef.value!.clearValidate(props)\n }\n return {\n formProps,\n formRef,\n validate,\n resetFields,\n clearValidate,\n }\n}\nconst useButtons = (\n props: SearchListPageProps,\n { validate, resetFields, tableRef },\n) => {\n const defaultButtons: ButtonsProps['list'] = [\n {\n name: '新增',\n prop: 'add',\n show: () => {\n return !!props.add\n },\n onClick: () => {\n props.add?.()\n },\n },\n {\n name: '模版下载',\n prop: 'templateDownload',\n show: !!props.templateDownloadApi,\n },\n {\n name: '导入',\n prop: 'import',\n show: !!props.importApi,\n },\n {\n name: '导出',\n prop: 'export',\n show: !!props.exportApi,\n },\n ]\n props.leftButtons?.forEach((item) => {\n const defaultIndex = defaultButtons.findIndex(\n (item1) => item1.prop === item.prop,\n )\n if (defaultIndex !== -1) {\n defaultButtons[defaultIndex] = {\n ...defaultButtons[defaultIndex],\n ...item,\n }\n }\n })\n const list = defaultButtons.concat(props.leftButtons!)\n list.forEach((item) => {\n if (item.onClick) {\n const clickFn = item.onClick\n item.onClick = () => {\n // 增加选中项\n const rows = tableRef.value.elTableRef.getSelectionRows()\n clickFn(rows)\n }\n }\n })\n\n const buttonsProps = computed(() => {\n return {\n list,\n ...props.buttonsProps,\n }\n })\n // 搜索\n const search = async () => {\n await validate()\n tableRef.value.search(true)\n }\n // 清空\n const reset = async () => {\n resetFields()\n search()\n }\n const searchButtons: ButtonsProps['list'] = [\n {\n name: '搜索',\n type: 'primary',\n onClick: search,\n },\n {\n name: '清空',\n onClick: reset,\n },\n ]\n return {\n buttonsProps,\n searchButtons,\n search,\n reset,\n }\n}\n","<template>\n <div\n :class=\"[bem.b(), prepareClassNames()]\"\n :style=\"{\n ...prepareStyles(),\n }\"\n >\n <div id=\"top\">\n <EpForm v-bind=\"formProps\" />\n </div>\n <div id=\"middle\">\n <div :class=\"bem.e('middle-left')\">\n <EpButtons v-bind=\"buttonsProps\" />\n </div>\n <div :class=\"bem.e('middle-right')\">\n <EpButtons :list=\"searchButtons\" />\n </div>\n </div>\n <slot name=\"tableBefore\"></slot>\n <EpTable v-bind=\"tableProps\" />\n </div>\n</template>\n<script setup lang=\"ts\">\nimport EpForm from '@el-plus/components/form'\nimport EpTable from '@el-plus/components/table'\nimport { createNameSpace } from '@el-plus/utils/bem'\nimport {\n prepareProps,\n prepareEvents,\n prepareClassNames,\n prepareStyles,\n} from '@el-plus/utils/props'\nimport { searchListPageProps } from './searchListPage'\nimport { useSearchListPage } from './use-search-list-page'\nimport { computed } from 'vue'\ndefineOptions({ name: 'EpSearchListPage' })\nconst bem = createNameSpace('search-list-page')\nconst props = defineProps(searchListPageProps)\n\nconst {\n formProps,\n buttonsProps,\n searchButtons,\n search,\n reset,\n tableRef,\n formRef,\n tableProps,\n} = useSearchListPage(props)\n\ndefineExpose({\n search,\n reset,\n tableRef,\n formRef,\n})\n</script>\n","import SearchListPage from './src/searchListPage.vue'\nimport { withInstall } from '@el-plus/utils/with-install'\n\nexport default withInstall(SearchListPage)\nexport * from './src/searchListPage'\n\n// GlobalComponents是vue3自带,用于扩展接口,给用户自定义全局组件补充类型提示\ndeclare module 'vue' {\n export interface GlobalComponents {\n // 接口自动合并\n EpSearchListPage: typeof SearchListPage\n }\n}\n","import type { ExtractPropTypes, PropType, ExtractPublicPropTypes } from 'vue'\nimport {\n selectProps as elSelectProps,\n selectEmits as elSelectEmits,\n type SelectProps as ElSelectProps,\n} from 'element-plus'\nimport { apiProps } from '@el-plus/utils/props'\n\nexport type SelectOption = NonNullable<ElSelectProps['options']>[number]\nexport const inheritSelectProps = {\n ...elSelectProps,\n clearable: {\n ...elSelectProps.clearable,\n default: true,\n },\n} as const\nconst expandSelectProps = {\n ...apiProps,\n disabledOption: {\n type: Function as PropType<(item: SelectOption) => boolean>,\n default: () => false,\n },\n labelKey: {\n type: String,\n default: 'label',\n },\n valueKey: {\n type: String,\n default: 'value',\n },\n formatLabel: {\n type: Function as PropType<(item: SelectOption) => string>,\n },\n // api模式生效\n lazy: Boolean,\n // option是否同时展示code label, 默认值展示label, 传string展示指定字段\n codeInLabel: {\n type: [String, Boolean] as PropType<boolean | string>,\n },\n}\nexport const selectProps = {\n ...inheritSelectProps,\n ...expandSelectProps,\n}\nexport const expandSelectPropsKeys = Object.keys(expandSelectProps)\n\nexport type SelectProps = ExtractPropTypes<typeof selectProps>\nexport type SelectPropsPublic = ExtractPublicPropTypes<typeof selectProps>\n\n/* eslint-disable @typescript-eslint/no-unused-vars */\nexport const selectEmits = {\n ...elSelectEmits,\n change: (\n value: SelectProps['modelValue'],\n item?: SelectOption | SelectOption[],\n ) => true,\n}\n/* eslint-enable @typescript-eslint/no-unused-vars */\nexport type SelectEmits = typeof selectEmits\nexport const selectEmitsKeys = Object.keys(selectEmits)\n","import { ref } from 'vue'\nimport type { SetupContext } from 'vue'\nimport { useRequest } from '@el-plus/hooks/use-request'\nimport type { SelectProps, SelectOption, SelectEmits } from './select'\nexport function useSelect(\n props: SelectProps,\n emit: SetupContext<SelectEmits>['emit'],\n) {\n let hasLoaded = false\n const { loading, requestFn } = useRequest({\n api: props.api,\n method: props.method,\n reqData: props.reqData,\n reqParams: props.reqParams,\n reqBefore: props.reqBefore,\n reqAfter: props.reqAfter,\n cancelToken: props.remote,\n hooks: {\n success(data) {\n type OptionArr = SelectOption[]\n interface OptionObj {\n list?: OptionArr\n data?: OptionArr\n }\n if (Array.isArray(data)) {\n customOptions.value = data as OptionArr\n } else if (data && typeof data === 'object') {\n const rawData = data as OptionObj\n customOptions.value = rawData?.list || rawData?.data || []\n } else {\n customOptions.value = []\n }\n hasLoaded = true\n },\n fail(error) {\n console.error(error)\n },\n },\n })\n // 下拉列表\n const customOptions = ref<SelectOption[]>([]) // 下拉列表\n // 加载下拉列表\n const loadOptions = (\n value: SelectProps['modelValue'],\n desc: string | undefined,\n ) => {\n if ((value || value === 0) && desc) {\n customOptions.value = [\n {\n [props.labelKey]: desc,\n [props.valueKey]: value,\n },\n ]\n }\n if (props.api) {\n if (!props.lazy && !props.remote) {\n requestFn!()\n }\n } else if (props.options?.length) {\n customOptions.value = props.options\n }\n }\n // 获取选中项\n const getSelectItem = (value: SelectProps['modelValue']) => {\n if (Array.isArray(value)) {\n if (!props.options) return []\n return props.options.filter((item: SelectOption) => {\n return value.indexOf(item[props.valueKey]) > -1\n })\n }\n if (!props.options) return {}\n return (\n props.options.find((item: SelectOption) => {\n return item[props.valueKey] === value\n }) || {}\n )\n }\n const expandAttrs = {\n loading: props.loading || loading?.value,\n remoteMethod: (query: string) => {\n if (!query) return\n requestFn!({\n $searchValue: query,\n })\n },\n onChange(value: SelectProps['modelValue']) {\n emit('change', value, getSelectItem(value))\n },\n onVisibleChange(visible: boolean) {\n if (props.api && props.lazy && visible && !hasLoaded && !props.remote) {\n requestFn!()\n }\n emit('visible-change', visible)\n },\n }\n return {\n customOptions,\n loadOptions,\n expandAttrs,\n }\n}\n","<template>\n <el-select\n v-model=\"value\"\n :class=\"`${bem.b()} ${prepareClassNames()}`\"\n v-bind=\"customAttrs\"\n :style=\"{\n ...prepareStyles(),\n }\"\n >\n <el-option\n v-for=\"item in customOptions\"\n :key=\"item[valueKey]\"\n :class=\"bem.e('option')\"\n :label=\"\n item.formatLabel\n ? item.formatLabel(item)\n : formatLabel\n ? formatLabel(item)\n : item[labelKey]\n \"\n :value=\"item[valueKey]\"\n :disabled=\"disabledOption(item)\"\n >\n <slot name=\"option\" :item=\"item\">\n <template v-if=\"codeInLabel || codeInLabel === ''\">\n <span style=\"float: left\">{{ item[labelKey] }}</span>\n <span\n style=\"\n float: right;\n color: var(--el-text-color-secondary);\n font-size: 13px;\n \"\n >\n {{\n item[\n typeof codeInLabel === 'string' && codeInLabel\n ? codeInLabel\n : valueKey\n ]\n }}\n </span>\n </template>\n </slot>\n </el-option>\n <template v-for=\"name in slots\" #[name]=\"scope\">\n <slot :name=\"name\" v-bind=\"scope\" />\n </template>\n </el-select>\n</template>\n<script setup lang=\"ts\">\nimport { computed, useSlots } from 'vue'\nimport {\n selectProps,\n selectEmits,\n expandSelectPropsKeys,\n selectEmitsKeys,\n} from './select'\nimport type { SelectProps, SelectEmits } from './select'\nimport {\n prepareProps,\n prepareEvents,\n prepareClassNames,\n prepareStyles,\n} from '@el-plus/utils/props'\nimport { useSelect } from './use-select'\nimport { createNameSpace } from '@el-plus/utils/bem'\ndefineOptions({\n name: 'EpSelect',\n inheritAttrs: false,\n})\nconst bem = createNameSpace('select')\nconst props = defineProps(selectProps)\nconst emit = defineEmits(selectEmits)\nconst slots = computed(() => {\n return Object.keys(useSlots())\n})\n\nconst { customOptions, loadOptions, expandAttrs } = useSelect(props, emit)\nconst value = defineModel<SelectProps['modelValue']>()\nconst desc = defineModel<string>('desc')\nconst customAttrs = computed(() => {\n return {\n ...prepareProps(props, ['modelValue', 'desc', ...expandSelectPropsKeys]),\n ...prepareEvents<SelectEmits>(emit, selectEmitsKeys),\n ...expandAttrs,\n }\n})\nloadOptions(value.value, desc.value)\n</script>\n","import Select from './src/select.vue'\nimport { withInstall } from '@el-plus/utils/with-install'\n\nexport default withInstall(Select)\nexport * from './src/select'\n\ndeclare module 'vue' {\n export interface GlobalComponents {\n EpSelect: typeof Select\n }\n}\n","import type { Plugin } from 'vue'\nimport Buttons from '@el-plus/components/buttons'\nimport Form from '@el-plus/components/form'\nimport Input from '@el-plus/components/input'\nimport SearchListPage from '@el-plus/components/searchListPage'\nimport Select from '@el-plus/components/select'\nimport Table from '@el-plus/components/table'\n\nexport default [Buttons, Form, Input, SearchListPage, Select, Table] as Plugin[]\n","import type { App, Plugin } from 'vue'\nimport components from './components'\nimport { version } from './package.json'\nexport const install = (app: App, options?: Record<string, any>) => {\n components.forEach((c) => app.use(c))\n if (options) {\n }\n}\n\nconst plugin: Plugin & { version: string } = {\n install,\n version,\n}\nexport default plugin\nexport * from '@el-plus/components'\nexport * from '@el-plus/hooks'\nexport * from '@el-plus/directives'\n"],"names":["buttonsProps","elButtonProps","_bem","prefix","block","element","modifier","createBEM","name","state","createNameSpace","apiProps","visibleProps","prepareProps","props","excludeKeys","acc","key","prepareEvents","emit","eventKeys","eventName","word","args","prepareClassNames","useAttrs","prepareStyles","SCOPE","vRepeatClick","el","binding","delay","immediate","handler","isPending","timer","start","e","getEnv","mark","hostname","tag","getBaseUrl","env","isOpenApi","url","query","getCookie","reg","arr","instance","axios","reqNum","loading","startLoading","ElLoading","closeLoading","endLoading","config","token","cancelRequest","cancel","error","response","responseCode","hideToast","hideToastCode","ElMessage","message","status","fetch","vPermisson","arg","value","permission","checkPermission","roles","queryRoles","hasPermission","requestPromise","request","bem","Buttons$1","directives","vPermission","inheritAttrs","setup","list","buttonProps","customList","computed","filter","button","show","hide","clickFn","item","confirm","confirmText","ElMessageBox","confirmButtonText","cancelButtonText","type","onClick","_createVNode","_Fragment","map","permissionArr","split","_withDirectives","_resolveComponent","_mergeProps","b","prop","default","scopedSlots","_resolveDirective","withInstall","comp","app","Buttons","expandFormProps","formProps","elFormProps","expandFormPropsKeys","formEmits","elFormEmits","formEmitsKeys","useCollapse","isShowFold","showFieldCount","filterFormItemList","open","ref","toggleStatus","isShowFoldBtn","index","useForm","elFormRef","useTemplateRef","useFormItemSlots","attrs","label","render","required","labelRender","tableProp","renderScopedSlots","renderProps","events","startsWith","formData","h","resolveComponent","modelValue","isShowLabel","hideRequiredAsterisk","_createTextVNode","useFormItemRules","rules","mergeRules","requiredDefault","push","Array","isArray","concat","Object","prototype","toString","call","forEach","r","expandFormItemProps","formItemProps","elFormItemProps","expandFormItemPropsKeys","EpFormItem","childProps","__props","__emit","customAttrs","_useModel","validate","resetFields","clearValidate","isShowFormItem","__expose","_createElementBlock","_normalizeClass","_unref","_normalizeStyle","_component_el_form","_renderSlot","_ctx","_component_el_row","_openBlock","_renderList","_createBlock","_component_el_col","col","labelWidth","_vShow","Form","inputProps","elInputProps","inputEmits","elInputEmits","inputEmitsKeys","slots","useSlots","isBluring","isFocusing","val","toThousand","inputRef","watch","onMounted","_component_el_input","$event","_withCtx","scope","_normalizeProps","_guardReactiveProps","Input","inheritTableProps","elTableProps","expandTableProps","tableProps","expandTablePropsKeys","tableEmits","ElTable","tableEmitsKeys","useRequest","api","method","reqData","reqParams","reqBefore","reqAfter","cancelToken","hooks","apiFn","data","params","res","useTable","elTableRef","customData","requestFn","success","rawData","showPagination","pagination","total","isFrontPage","length","fail","console","search","init","isPagination","pageNo","pageSize","paginationProps","usePagination","formatActionButtons","bind","pageSizes","reactive","defaultPaginationProps","onSizeChange","onCurrentChange","layout","useTableColumn","tableData","columnProps","column","align","renderHeader","headerRender","filters","Set","text","filterMethod","row","columnList","columns","linkProps","linkColumn","find","className","useTableFormItem","cellRequired","disabled","options","disabledOption","btnItem","fn","$index","keys","size","class","style","model","inline","_component_el_table","_createSlots","showSelectionCol","_component_el_table_column","width","selectable","fixed","showIndexCol","indexFormatter","actionButtons","_createElementVNode","_component_EpButtons","ref_for","_toDisplayString","$slots","_component_el_pagination","Table","searchListPageProps","useSearchListPage","calcTableHeight","tableRef","formRef","searchButtons","reset","useButtons","instanceName","tableHeight","topHeight","middleHeight","paginationHeight","frameDistance","defaultButtons","defaultIndex","item1","rows","SearchListPage","inheritSelectProps","elSelectProps","expandSelectProps","selectProps","expandSelectPropsKeys","selectEmits","elSelectEmits","selectEmitsKeys","useSelect","hasLoaded","customOptions","loadOptions","desc","getSelectItem","expandAttrs","visible","_component_el_select","_component_el_option","valueKey","formatLabel","labelKey","codeInLabel","Select","components","install","c","plugin","version"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! ElPlus vundefined */import{useAttrs as X,defineComponent as q,computed as w,createVNode as v,Fragment as T,withDirectives as fe,resolveComponent as F,mergeProps as k,resolveDirective as pe,useTemplateRef as W,ref as x,createTextVNode as me,h as dt,mergeModels as j,useModel as Y,createElementBlock as A,openBlock as b,normalizeStyle as ge,normalizeClass as R,unref as f,createCommentVNode as z,withCtx as B,renderSlot as N,renderList as K,createBlock as E,vShow as ft,toDisplayString as Z,reactive as qe,useSlots as he,watch as pt,onMounted as De,createSlots as ye,normalizeProps as H,guardReactiveProps as M,createElementVNode as D}from"vue";import{buttonProps as be,ElMessage as _e,ElLoading as mt,ElMessageBox as gt,formProps as ee,formEmits as ht,formItemProps as yt,inputProps as Le,inputEmits as bt,ElTable as vt,selectProps as Ie,selectEmits as Ft}from"element-plus";import ve from"axios";import"element-plus/es/components/message/style/css";import"element-plus/es/components/loading/style/css";import te from"element-plus/es/components/table/src/table/defaults";const Fe={...be,disabled:{type:[Boolean,Function]},list:{type:Array,default:()=>[]},size:{...be.size,default:"small"},type:{...be.type,default:"default"}};function _(e,o,s,t){return o&&(e+="-"+o),s&&(e+="__"+s),t&&(e+="--"+t),e}function Pt(e){return{b:(o="")=>_(e,o,"",""),e:(o="")=>o?_(e,"",o,""):"",m:(o="")=>o?_(e,"","",o):"",be:(o="",s="")=>o&&s?_(e,o,s,""):"",bm:(o="",s="")=>o&&s?_(e,o,"",s):"",em:(o="",s="")=>o&&s?_(e,"",o,s):"",bem:(o="",s="",t)=>o&&s&&t?_(e,o,s,t):"",is:(o="",s)=>s?`is-${o}`:""}}function L(e){const o=`ep-${e}`;return Pt(o)}const Pe={api:{type:[String,Function]},method:{type:String},reqData:{type:Object},reqParams:{type:Object},reqBefore:{type:Function},reqAfter:{type:Function}},wt={show:{type:[Boolean,Function]},hide:{type:[Boolean,Function]}},$=(e,o=[])=>Object.keys(e).reduce((s,t)=>(o.includes(t)||(s[t]=e[t]),s),{}),oe=(e,o)=>o.reduce((s,t)=>{let n;return t.startsWith("on")?n=t:t.includes("-")?n="on"+t.split("-").map(l=>l.charAt(0).toUpperCase()+l.slice(1)).join(""):n=`on${t.charAt(0).toUpperCase()}${t.slice(1)}`,s[n]=(...l)=>e(t,...l),s},{}),I=()=>X().class||"",V=()=>X().style||{},ne="_RepeatClick",we={name:"repeatClick",beforeMount(e,o){const{delay:s=300,immediate:t}=typeof o.value=="object"?o.value:{},n=typeof o.value=="object"?o.value.handler:o.value;let l=!1,a;const i=d=>{if(d.button===0&&(a&&clearTimeout(a),a=setTimeout(()=>{t?l=!1:n?.(d)},s),t)){if(l)return;l=!0,n?.(d)}};e[ne]={start:i},e.addEventListener("click",i)},unmounted(e){if(!e[ne])return;const{start:o}=e[ne];o&&e.removeEventListener("mousedown",o),e[ne]=null}},St=(e="hxjf",o=window.location.hostname)=>{const s=o.match(new RegExp(`.*(?=${e})`));return o==="hxdv-ui.hongxinshop.com"?"production":s?s[0]?s[0].replace("-",""):"production":"local"},Bt=(e="sit",o)=>{let s="";if(St()==="local"){const t={};t.devProxy=location.search.slice(1).split("=")[1]||location.hash.slice(1).split("=")[1],s=`${t.devProxy||`${e}-api`}`}else s="/vue-api";return s},Et=e=>{const o=new RegExp("(^| )"+e+"=([^;]*)(;|$)"),s=document.cookie.match(o);return s?decodeURIComponent(s[2]):null},Se=ve.create({method:"post",timeout:2e4,baseURL:Bt(),headers:{"Content-Type":"application/json"}});let G=0,Ve={close:()=>{}};function Ct(){G===0&&(Ve=mt.service({fullscreen:!0,lock:!0,text:"\u8BF7\u7A0D\u7B49\uFF0C\u6B63\u5728\u52A0\u8F7D\u4E2D...",spinner:"el-icon-loading",background:"rgba(0,0,0,0.7)"})),G++}function kt(){G<=0||(G--,G===0&&Ve.close())}function Oe(){kt()}Se.interceptors.request.use(async e=>{const o=Et("access_token");o&&(e.headers.Authorization=`Bearer ${o}`),e.loading&&Ct(),e.headers={...e.headers,...window.hx&&window.hx.getSignHeaders({sign:e.sign||window.ELPLUSSIGN,config:e})};const s=e.cancelRequest;return e.cancelToken=new ve.CancelToken(function(t){s&&s(t)}),e},e=>(console.log(e),Promise.reject(e))),Se.interceptors.response.use(e=>{e.config.loading&&Oe();const s=e.data.code,{hideToast:t,hideToastCode:n={}}=e.config.headers;return n.length=Object.keys(n).length,s===200?Promise.resolve(e.data):(t||Array.prototype.slice.call(n).indexOf(s)>-1||setTimeout(()=>{_e.error({message:`<pre>${e.data.msg}</pre>`,type:"error",duration:2e3,dangerouslyUseHTMLString:!0})},300),Promise.reject(e.data))},e=>{const{config:o={},message:s}=e,{url:t}=o;if(o.loading&&Oe(),e&&e.response){const{status:n}=e.response;switch(n){case 400:e.message=e.response.data.message||e.response.data.msg;break;case 403:e.message="\u62D2\u7EDD\u8BBF\u95EE(403)";break;case 404:e.message="\u8BF7\u6C42\u51FA\u9519(404)";break;case 408:e.message="\u8BF7\u6C42\u8D85\u65F6(408)";break;case 500:e.message="\u670D\u52A1\u5668\u9519\u8BEF(500)";break;case 501:e.message="\u670D\u52A1\u672A\u5B9E\u73B0(501)";break;case 502:e.message="\u7F51\u7EDC\u9519\u8BEF(502)";break;case 503:e.message="\u670D\u52A1\u4E0D\u53EF\u7528(503)";break;case 504:e.message="\u7F51\u7EDC\u8D85\u65F6(504)";break;case 505:e.message="HTTP\u7248\u672C\u4E0D\u53D7\u652F\u6301(505)";break;default:e.message=`\u8FDE\u63A5\u51FA\u9519(${e.response.status})!`}}else e.message.includes("timeout")?e.message=`\u8BF7\u6C42${t||""}\u8D85\u65F6\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u662F\u5426\u8FDE\u63A5\u6B63\u5E38`:e.message=`\u8BF7\u6C42${t||""}\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u662F\u5426\u5DF2\u8FDE\u63A5`;return(!ve.isCancel(e)||!o.noErrorMsg)&&_e.error({message:e.message,type:"error",duration:2e3,dangerouslyUseHTMLString:!0}),Promise.reject(e)});const Te=Se.request,Be={name:"permission",mounted(e,o){const{arg:s,value:t}=o.value;if(!s&&!t)return;e.style.display="none";const n=`${s}:${t}`;xe(n,e)},updated(e,o){const{arg:s,value:t}=o.value;if(!s&&!t){e.style.display==="none"&&(e.style.display="");return}const n=`${s}:${t}`;xe(n,e)}};async function xe(e,o){const{data:s=[]}=await At(),t=s.indexOf(e)>-1;return t?o.style.display="":o&&o.parentNode&&o.parentNode.removeChild(o),t}let se=null;async function At(){try{return se||(se=Te({url:"/api-u/api/saas/user/appButtonRoleList",loading:!0,noErrorMsg:!0}),se)}catch(e){return console.error(e),{data:[]}}}const Rt=L("button");var $t=q({name:"EpButtons",directives:{[we.name]:we,[Be.name]:Be},inheritAttrs:!1,props:Fe,setup(e,{emit:o}){const{list:s,...t}=e,n=w(()=>s.filter(a=>"show"in a?typeof a.show=="function"?a.show(a):a.show:"hide"in a?typeof a.hide=="function"?!a.hide(a):!a.hide:!0)),l=async a=>{if(a.confirm){const i=a.confirmText||`\u786E\u5B9A\u8981${a.name}\u5417\uFF1F`;await gt.confirm(i,"Warning",{confirmButtonText:"\u786E\u5B9A",cancelButtonText:"\u53D6\u6D88",type:"warning"})}a.onClick()};return()=>v(T,null,[n.value.map(a=>{const i=a.permission?.split(":")||[];return fe(v(F("el-button"),k({class:[Rt.b(),I()],style:V(),key:a.prop||a.name},{...$(t),...$(a,["scopedSlots","name","onClick"])}),{default:()=>a.name,...a.scopedSlots}),[[pe("repeat-click"),typeof a.onClick=="function"?{handler:()=>l(a),immediate:!0}:()=>l(a)],[pe("permission"),{arg:i[0],value:i[1]}]])})])}});function U(e){return e.install=o=>{o.component(e.name,e)},e}var qt=U($t);const je={formItemList:{type:Array,default:()=>[]},isShowFold:Boolean,showFieldCount:{type:Number,default:8},col:{type:Number,default:4}},ae={...ee,...je,size:{...ee.size,default:"small"},labelWidth:{...ee.labelWidth,default:120},scrollIntoViewOptions:{...ee.scrollIntoViewOptions,default:()=>({inline:"center"})}},ze=Object.keys(je),Ee={...ht,toggleStatus:e=>!0},Ne=Object.keys(Ee),Dt=({isShowFold:e,showFieldCount:o,filterFormItemList:s},t)=>{const n=x(!1),l=()=>{n.value=!n.value,t("toggleStatus",n.value)},a=w(()=>e&&s.value.length>o);return{open:n,toggleStatus:l,isShowFoldBtn:a,isShowFormItem:d=>d<o||n.value||!a.value}},_t=e=>{const o=W("elFormRef");return{filterFormItemList:w(()=>e.formItemList.filter(a=>"show"in a?typeof a.show=="function"?a.show(a):a.show:"hide"in a?typeof a.hide=="function"?!a.hide(a):!a.hide:!0)),elFormRef:o,validate:()=>o.value.validate(),resetFields:a=>o.value.resetFields(a),clearValidate:a=>o.value.clearValidate(a)}},Lt=e=>{const o=X(),{type:s,label:t,render:n,required:l,labelRender:a}=e,i=e.tableProp||e.prop,{scopedSlots:d,...c}=e.props||{},p={};for(const u in o)u.startsWith("on")&&(p[u]=o[u]);const g=o["form-data"],r={default:()=>s?dt(F(s),{modelValue:g[i],"onUpdate:modelValue":u=>{g[i]=u},...c,...p},d):g[i],label:()=>v(F("el-tooltip"),{placement:"top",effect:"light",content:t,disabled:!e.isShowLabel},{default:()=>[v("span",null,[!e.hideRequiredAsterisk&&l?v("span",{style:"color: var(--el-color-danger);"},[me("*")]):null,e.isShowLabel?v("span",null,[t]):""])]})};return a&&(r.label=()=>a({label:t})),n&&(r.default=n),{scopedSlots:r}},It=e=>{const{required:o,rules:s,label:t}=e;let n=[];if(o){const l={required:!0};n.push(l)}return s&&(Array.isArray(s)&&(n=n.concat(s)),Object.prototype.toString.call(s)==="[object Object]"&&n.push(s)),n&&n.forEach(l=>{l.required&&typeof l.message>"u"&&(l.message=`${t||""}\u4E0D\u80FD\u4E3A\u7A7A`)}),{rules:n}},Ke={type:{type:String},col:Number,render:Function,labelRender:Function,props:Object,...wt,class:String,style:{type:[String,Object]},isShowLabel:{type:Boolean,default:!0},hideRequiredAsterisk:Boolean,tableProp:String},He={...yt,...Ke},Me=Object.keys(Ke),Vt=L("form-item");var Ce=q({name:"EpFormItem",inheritAttrs:!1,props:He,setup(e,{emit:o}){const s=X(),{scopedSlots:t}=Lt(e),{rules:n}=It(e),{props:l,...a}=e;return()=>v(F("el-form-item"),k({class:[Vt.b(),I()],style:V()},{...$(a,[...Me]),rules:n,"label-width":s["form-label-width"]}),t)}}),Ot=q({name:"EpForm",inheritAttrs:!1,__name:"form",props:j(ae,{modelValue:{type:Object,default:()=>qe({})},modelModifiers:{}}),emits:j(Ee,["update:modelValue"]),setup(e,{expose:o,emit:s}){const t=L("form"),n=e,l=s,a=w(()=>({...$(n,["modelValue","model",...ze]),hideRequiredAsterisk:!0,scrollToError:!0,...oe(l,Ne)})),i=Y(e,"modelValue"),{filterFormItemList:d,elFormRef:c,validate:p,resetFields:g,clearValidate:r}=_t(n),{open:u,toggleStatus:h,isShowFoldBtn:y,isShowFormItem:m}=Dt({filterFormItemList:d,isShowFold:n.isShowFold,showFieldCount:n.showFieldCount},l);return o({elFormRef:c,validate:p,resetFields:g,clearValidate:r}),(C,re)=>{const O=F("el-col"),le=F("el-row"),ie=F("el-form");return b(),A("div",{class:R([f(t).b(),f(I)(),f(t).is("open",f(u)),f(t).is("fold",f(y))]),style:ge({...f(V)()})},[v(ie,k({ref_key:"elFormRef",ref:c,model:i.value},a.value),{default:B(()=>[N(C.$slots,"default",{},()=>[v(le,null,{default:B(()=>[(b(!0),A(T,null,K(f(d),(P,ue)=>fe((b(),E(O,{key:P.prop||ue,class:R(f(t).e("col")),span:P.col||24/C.col},{default:B(()=>[v(f(Ce),k({"form-data":i.value,"form-label-width":C.labelWidth},{ref_for:!0},P),null,16,["form-data","form-label-width"])]),_:2},1032,["class","span"])),[[ft,f(m)(ue)]])),128))]),_:1})])]),_:3},16,["model"]),f(y)?(b(),A("div",{key:0,class:R(f(t).e("fold")),onClick:f(h)},Z(f(u)?"\u6536\u8D77":"\u66F4\u591A"),11,["onClick"])):z("v-if",!0)],6)}}}),Ue=U(Ot);const We={...Le,max:Number,min:Number,radix:Number,nonzero:Boolean,placeholder:{type:String,default:"\u8BF7\u8F93\u5165"},thousand:{type:Boolean,default:!0},clearable:{...Le.clearable,default:!0}},ke={...bt},Ge=Object.keys(ke);var Tt=q({name:"EpInput",inheritAttrs:!1,__name:"input",props:j(We,{modelValue:{type:null},modelModifiers:{}}),emits:j(ke,["update:modelValue"]),setup(e,{emit:o}){const s=L("input"),t=e,n=o,l=w(()=>Object.keys(he()));let a=!1,i=!1;const d=w(()=>({...$(t,["modelValue"]),...oe(n,Ge),placeholder:t.disabled?"":t.placeholder,onFocus:r=>{i=!0,t.thousand&&(r.target.value=c.value?String(c.value):""),n("focus",r)},onBlur:r=>{if(t.type==="number"){let u=c.value;t.nonzero&&+u==0&&(u=""),u&&u[u.length-1]==="."&&(u=String(u).slice(0,-1)),u&&u==="-"&&(u=""),c.value=u&&+u,r.target.value=g(c.value)}a=!0,i=!1,n("blur",r)}})),c=Y(e,"modelValue"),p=x(),g=r=>t.thousand?r&&window.hx.thousand(r):r;return pt(()=>c.value,r=>{if(t.type==="number"&&De(()=>{p.value.input.value=g(r)}),a){a=!1;return}if(i){if(t.type==="number"){if(typeof r=="number"&&(r=""+r),typeof r=="string"){new RegExp("^[-+]?0[0-9]\\d*").test(r)&&(r=r.replace("0",""));const h=new RegExp("^([-+])?\\d*(\\.?\\d*)","g");if(r=r.match(h)?r.match(h)[0]:"",t.radix||t.radix===0){const y=t.radix===0?new RegExp("^([-+])?\\d*","g"):new RegExp(`^([-+])?\\d*(\\.?\\d{0,${t.radix}})`,"g");r=r.match(y)?r.match(y)[0]:""}(t.max||t.max===0)&&+r>t.max&&(r=t.max),(t.min||t.min===0)&&(r||r===0)&&+r<t.min&&(r=t.min)}}else t.type==="text"&&(r=r.trim());c.value=r}},{immediate:!0}),(r,u)=>{const h=F("el-input");return b(),E(h,k({ref_key:"inputRef",ref:p,modelValue:c.value,"onUpdate:modelValue":y=>c.value=y,class:`${f(s).b()} ${f(I)()}`,style:{...f(V)()}},d.value,{type:r.type==="number"?"text":r.type}),ye({_:2},[K(l.value,y=>({name:y,fn:B(m=>[N(r.$slots,y,H(M(m)))])}))]),1040,["modelValue","onUpdate:modelValue","class","style","type"])}}}),xt=U(Tt);const jt={...te,size:{...te.size,default:"default"},border:{...te.border,default:!0},headerCellStyle:{...te.headerCellStyle,default:()=>({background:"#EEEFF3",fontSize:"14px",color:"#505050"})}},Je={...Pe,columns:{type:Array,default:()=>[]},showSelectionCol:Boolean,showIndexCol:{type:Boolean,default:!0},align:{type:String,default:"center"},indexFormatter:{type:[Number,Function]},disabled:Boolean,reserveSelection:Boolean,selectable:{type:Function},paginationProps:{type:Object,default:()=>({})},showPagination:Boolean,isFrontPage:Boolean,actionButtons:{type:Array,default:()=>[]},linkProps:{type:Array,default:()=>[]}},J={...jt,...Je},Qe=Object.keys(Je),Ae=vt.emits,Xe=Ae,Re=({api:e,method:o,reqData:s,reqParams:t,reqBefore:n,reqAfter:l,cancelToken:a,hooks:i})=>{if(!e)return{};const d=x(!1);let c,p;if(typeof e=="string"){const r={url:e,method:o};a&&(r.cancelRequest=u=>{c=u}),p=(u={},h)=>(r.method==="get"?r.params=u:(r.data=u,r.params=h),r.data={...s,...r.data},r.params={...t,...r.params},u.$query&&(r.data[u.$query]=u.$searchValue,delete u.$searchValue),n&&n(r),Te(r))}else p=e;return{loading:d,requestFn:async(r={})=>{if(!(d.value&&!a)){d.value=!0;try{c&&c();const u=await p(r);l&&l(u),i?.success&&i.success(u.data)}catch(u){i?.fail&&i.fail(u)}finally{d.value=!1}}}}},zt=e=>{const o=W("elFormRef"),s=W("elTableRef"),t=x([]),{loading:n,requestFn:l}=Re({api:e.api,method:e.method,reqData:e.reqData,reqParams:e.reqParams,reqBefore:e.reqBefore,reqAfter:e.reqAfter,cancelToken:!0,hooks:{success(u){if(Array.isArray(u))t.value=u;else if(u&&typeof u=="object"){const h=u;t.value=h?.list||h?.data||[]}else t.value=[];e.showPagination&&(i.total=(e.isFrontPage?t.value.length:u.total)||0)},fail(u){console.error(u)}}}),a=(u=!1,h=!1)=>{if(u&&(i.pageNo=1),h&&e.isFrontPage){const{pageNo:y,pageSize:m}=i,C=t.value.filter((re,O)=>O<y*m&&O>=(y-1)*m);t.value=C}else e.api?l({pageNo:i.pageNo,pageSize:i.pageSize}):e.data?.length&&(t.value=e.data)},{pagination:i,paginationProps:d}=Nt(e,a);return a(!0),{loading:n,data:t,search:a,pagination:i,paginationProps:d,validate:()=>o.value.validate(),resetFields:u=>o.value.resetFields(u),clearValidate:u=>o.value.clearValidate(u),elFormRef:o,elTableRef:s,formatActionButtons:(u,h)=>u.map(y=>(y.onClick&&(y.onClick=y.onClick.bind(null,h)),y))}},Nt=function(e,o){const s=[20,50,100,200],t=qe({total:0,pageNo:1,pageSize:s[0]}),n=w(()=>{const l=e.paginationProps||{},a=l.onSizeChange,i=l.onCurrentChange;return{...l,pageSizes:s,layout:"total, sizes, prev, pager, next, jumper",onSizeChange:d=>{a&&a(d),o(!0,!0)},onCurrentChange:d=>{i&&i(d),o(!1,!0)}}});return{pagination:t,paginationProps:n}},Kt=(e,o)=>{const s=n=>{const l={align:n.align||e.align};if(!n.renderHeader){let a=n.required;typeof n.required=="function"&&(a=n.required()),a&&(l.renderHeader=i=>{const{column:d}=i;return v("span",null,[v("span",{style:"color:var(--el-color-danger)"},[me(" * ")]),d.label])})}if(n.headerRender&&(l.renderHeader=n.headerRender),n.filter){const a=o.value.map(i=>i[n.prop]);l.filters=[...new Set(a)].map(i=>({text:i,value:i})),l.filterMethod=(i,d)=>d[n.prop]===i}return{...l,...$(n)}},t=w(()=>e.columns.filter(n=>{if(e.linkProps.length){const l=e.linkProps.find(a=>a.prop===n.prop);l&&(n.type="EpButtons",n.className="table-column-link",n.props={list:[l],type:"text",...n.props})}return"show"in n?typeof n.show=="function"?n.show(n):n.show:"hide"in n?typeof n.hide=="function"?!n.hide(n):!n.hide:!0}));return{columnProps:s,columnList:t}},Ht=e=>({formItemProps:(s,t)=>{let n=t.required;typeof n=="function"&&(n=n()),t.cellRequired&&(n=t.cellRequired(s));let l=e.disabled;if("disabled"in t&&(typeof t.disabled=="function"?l=t.disabled(s):l=t.disabled||!1),t.type==="EpSelect"&&t.props&&("options"in t.props&&typeof t.props.options=="function"&&(t.props.options=t.props.options(s)),"disabledOption"in t.props&&typeof t.props.disabledOption=="function")){const a=t.props.disabledOption;t.props.disabledOption=(...i)=>a(...i,s)}t.type==="EpButtons"&&t.props&&t.props.list.forEach(a=>{a.prop&&(a.name=s.row[a.prop]),a.onClick&&(a.onClick=a.onClick.bind(null,s))});for(const a in t)if(a.startsWith("on")&&typeof t[a]=="function"){const i=t[a];t[a]=(...d)=>i(...d,s)}return{...$(t),isShowLabel:!1,required:n,hideRequiredAsterisk:"cellRequired"in t?!1:n,prop:`table.${s.$index}.${t.prop}`,tableProp:t.prop,props:{...t.props,disabled:l}}}});var Mt=q({name:"EpTable",inheritAttrs:!1,__name:"table",props:J,emits:Ae,setup(e,{expose:o,emit:s}){const t=L("table"),n=e,l=s,a=w(()=>Object.keys(he())),i=w(()=>({...$(n,["modelValue",...Qe]),size:"small",data:p.value,...oe(l,Xe)})),{pagination:d,paginationProps:c,data:p,validate:g,resetFields:r,clearValidate:u,loading:h,search:y,elFormRef:m,elTableRef:C,formatActionButtons:re}=zt(n),{columnProps:O,columnList:le}=Kt(n,p),{formItemProps:ie}=Ht(n);return o({elFormRef:m,elTableRef:C,validate:g,resetFields:r,clearValidate:u,search:y}),(P,ue)=>{const Q=F("el-table-column"),rt=F("EpButtons"),lt=F("el-table"),it=F("el-form"),ut=F("el-pagination"),ct=pe("loading");return b(),A("div",{class:R(`${f(t).b()} ${f(I)()}`),style:ge({...f(V)()})},[v(it,{ref_key:"elFormRef",ref:m,model:{table:f(p)},size:"small","hide-required-asterisk":"","scroll-to-error":"","scroll-into-view-options":{inline:"center"},class:"ep-form"},{default:B(()=>[fe((b(),E(lt,k({ref_key:"elTableRef",ref:C},i.value),ye({default:B(()=>[P.showSelectionCol?(b(),E(Q,{key:0,type:"selection",width:"55",align:P.align,selectable:P.selectable,fixed:""},null,8,["align","selectable"])):z("v-if",!0),P.showIndexCol?(b(),E(Q,{key:1,type:"index",width:"56",align:P.align,label:"\u5E8F\u53F7",fixed:"",index:P.indexFormatter},null,8,["align","index"])):z("v-if",!0),P.actionButtons.length?(b(),E(Q,{key:2,label:"\u64CD\u4F5C",align:P.align,fixed:"",width:"200"},{default:B(S=>[D("span",{class:R(f(t).e("action-buttons"))},[v(rt,{list:f(re)(P.actionButtons,S),type:"text"},null,8,["list"])],2)]),_:1},8,["align"])):z("v-if",!0),(b(!0),A(T,null,K(f(le),(S,ce)=>(b(),E(Q,k({key:ce},{ref_for:!0},f(O)(S)),{default:B(de=>[S.type?(b(),E(f(Ce),k({key:0,"form-data":de.row},{ref_for:!0},f(ie)(de,S)),null,16,["form-data"])):(b(),A(T,{key:1},[me(Z(de.row[S.prop]),1)],64))]),_:2},1040))),128))]),_:2},[K(a.value,S=>({name:S,fn:B(ce=>[N(P.$slots,S,H(M(ce)))])}))]),1040)),[[ct,f(h)]])]),_:3},8,["model"]),P.showPagination?(b(),E(ut,k({key:0,"current-page":f(d).pageNo,"onUpdate:currentPage":S=>f(d).pageNo=S,"page-size":f(d).pageSize,"onUpdate:pageSize":S=>f(d).pageSize=S,total:f(d).total},f(c)),null,16,["current-page","onUpdate:currentPage","page-size","onUpdate:pageSize","total"])):z("v-if",!0)],6)}}}),Ye=U(Mt);console.log(ae.formItemList);const Ze={...Pe,customColumnModule:Number,showOperationColumn:Boolean,formItemList:{...ae.formItemList},leftButtons:{...Fe.list},columns:{...J.columns},actionButtons:{...J.actionButtons},linkProps:{...J.linkProps},showSelectionCol:Boolean,showIndexCol:{type:Boolean,default:!0},add:Function,templateDownloadApi:String,importApi:String,exportApi:String,offsetTop:{type:Number,default:0},formData:{type:Object,default:()=>({})},tableProps:Object,formProps:Object,buttonsProps:Object},Ut=e=>{const{calcTableHeight:o,tableProps:s,tableRef:t}=Wt(e),{formProps:n,validate:l,resetFields:a,formRef:i}=Gt(e,{calcTableHeight:o}),{buttonsProps:d,searchButtons:c,search:p,reset:g}=Jt(e,{validate:l,resetFields:a,tableRef:t});return{formProps:n,tableProps:s,buttonsProps:d,searchButtons:c,search:p,reset:g,tableRef:t,formRef:i}},Wt=e=>{const o="tableRef",s=W(o),t=x(window.innerHeight),n=w(()=>({ref:o,columns:e.columns,showPagination:!0,height:t.value,showIndexCol:e.showIndexCol,showSelectionCol:e.showSelectionCol,actionButtons:e.actionButtons,linkProps:e.linkProps,api:e.api,reqData:e.formData,...e.tableProps})),l=()=>{const a=document.getElementById("top").offsetHeight,i=document.getElementById("middle").offsetHeight;let d=0;n.value.showPagination&&(d=document.querySelector(".el-pagination").offsetHeight+12);const c=40;t.value=window.innerHeight-a-i-d-c-e.offsetTop};return De(l),{tableRef:s,tableProps:n,calcTableHeight:l}},Gt=(e,{calcTableHeight:o})=>{const s="formRef",t=W(s);return{formProps:w(()=>({ref:s,formItemList:e.formItemList,isShowFold:!0,modelValue:e.formData,...e.formProps,onToggleStatus:()=>{setTimeout(()=>{o()},0)}})),formRef:t,validate:()=>t.value.validate(),resetFields:d=>t.value.resetFields(d),clearValidate:d=>t.value.clearValidate(d)}},Jt=(e,{validate:o,resetFields:s,tableRef:t})=>{const n=[{name:"\u65B0\u589E",prop:"add",show:()=>!!e.add,onClick:()=>{e.add?.()}},{name:"\u6A21\u7248\u4E0B\u8F7D",prop:"templateDownload",show:!!e.templateDownloadApi},{name:"\u5BFC\u5165",prop:"import",show:!!e.importApi},{name:"\u5BFC\u51FA",prop:"export",show:!!e.exportApi}];e.leftButtons?.forEach(p=>{const g=n.findIndex(r=>r.prop===p.prop);g!==-1&&(n[g]={...n[g],...p})});const l=n.concat(e.leftButtons);l.forEach(p=>{if(p.onClick){const g=p.onClick;p.onClick=()=>{const r=t.value.elTableRef.getSelectionRows();g(r)}}});const a=w(()=>({list:l,...e.buttonsProps})),i=async()=>{await o(),t.value.search(!0)},d=async()=>{s(),i()};return{buttonsProps:a,searchButtons:[{name:"\u641C\u7D22",type:"primary",onClick:i},{name:"\u6E05\u7A7A",onClick:d}],search:i,reset:d}};var Qt=q({name:"EpSearchListPage",__name:"searchListPage",props:Ze,setup(e,{expose:o}){const s=L("search-list-page"),t=e,{formProps:n,buttonsProps:l,searchButtons:a,search:i,reset:d,tableRef:c,formRef:p,tableProps:g}=Ut(t);return o({search:i,reset:d,tableRef:c,formRef:p}),(r,u)=>{const h=F("EpButtons");return b(),A("div",{class:R([f(s).b(),f(I)()]),style:ge({...f(V)()})},[D("div",{id:"top"},[v(f(Ue),H(M(f(n))),null,16)]),D("div",{id:"middle"},[D("div",{class:R(f(s).e("middle-left"))},[v(h,H(M(f(l))),null,16)],2),D("div",{class:R(f(s).e("middle-right"))},[v(h,{list:f(a)},null,8,["list"])],2)]),N(r.$slots,"tableBefore"),v(f(Ye),H(M(f(g))),null,16)],6)}}}),Xt=U(Qt);const et={...Ie,clearable:{...Ie.clearable,default:!0}},tt={...Pe,disabledOption:{type:Function,default:()=>!1},labelKey:{type:String,default:"label"},valueKey:{type:String,default:"value"},formatLabel:{type:Function},lazy:Boolean,codeInLabel:{type:[String,Boolean]}},ot={...et,...tt},nt=Object.keys(tt),$e={...Ft,change:(e,o)=>!0},st=Object.keys($e);function Yt(e,o){let s=!1;const{loading:t,requestFn:n}=Re({api:e.api,method:e.method,reqData:e.reqData,reqParams:e.reqParams,reqBefore:e.reqBefore,reqAfter:e.reqAfter,cancelToken:e.remote,hooks:{success(c){if(Array.isArray(c))l.value=c;else if(c&&typeof c=="object"){const p=c;l.value=p?.list||p?.data||[]}else l.value=[];s=!0},fail(c){console.error(c)}}}),l=x([]),a=(c,p)=>{(c||c===0)&&p&&(l.value=[{[e.labelKey]:p,[e.valueKey]:c}]),e.api?!e.lazy&&!e.remote&&n():e.options?.length&&(l.value=e.options)},i=c=>Array.isArray(c)?e.options?e.options.filter(p=>c.indexOf(p[e.valueKey])>-1):[]:e.options?e.options.find(p=>p[e.valueKey]===c)||{}:{},d={loading:e.loading||t?.value,remoteMethod:c=>{c&&n({$searchValue:c})},onChange(c){o("change",c,i(c))},onVisibleChange(c){e.api&&e.lazy&&c&&!s&&!e.remote&&n(),o("visible-change",c)}};return{customOptions:l,loadOptions:a,expandAttrs:d}}var Zt=q({name:"EpSelect",inheritAttrs:!1,__name:"select",props:j(ot,{modelValue:{type:null},modelModifiers:{},desc:{type:String},descModifiers:{}}),emits:j($e,["update:modelValue","update:desc"]),setup(e,{emit:o}){const s=L("select"),t=e,n=o,l=w(()=>Object.keys(he())),{customOptions:a,loadOptions:i,expandAttrs:d}=Yt(t,n),c=Y(e,"modelValue"),p=Y(e,"desc"),g=w(()=>({...$(t,["modelValue","desc",...nt]),...oe(n,st),...d}));return i(c.value,p.value),(r,u)=>{const h=F("el-option"),y=F("el-select");return b(),E(y,k({modelValue:c.value,"onUpdate:modelValue":m=>c.value=m,class:`${f(s).b()} ${f(I)()}`},g.value,{style:{...f(V)()}}),ye({default:B(()=>[(b(!0),A(T,null,K(f(a),m=>(b(),E(h,{key:m[r.valueKey],class:R(f(s).e("option")),label:m.formatLabel?m.formatLabel(m):r.formatLabel?r.formatLabel(m):m[r.labelKey],value:m[r.valueKey],disabled:r.disabledOption(m)},{default:B(()=>[N(r.$slots,"option",{item:m},()=>[r.codeInLabel||r.codeInLabel===""?(b(),A(T,{key:0},[D("span",{style:{float:"left"}},Z(m[r.labelKey]),1),D("span",{style:{float:"right",color:"var(--el-text-color-secondary)","font-size":"13px"}},Z(m[typeof r.codeInLabel=="string"&&r.codeInLabel?r.codeInLabel:r.valueKey]),1)],64)):z("v-if",!0)])]),_:2},1032,["class","label","value","disabled"]))),128))]),_:2},[K(l.value,m=>({name:m,fn:B(C=>[N(r.$slots,m,H(M(C)))])}))]),1040,["modelValue","onUpdate:modelValue","class","style"])}}}),eo=U(Zt),to=[qt,Ue,xt,Xt,eo,Ye],oo="0.0.1";const at=(e,o)=>{to.forEach(s=>e.use(s))},no={install:at,version:oo};export{Ce as EpFormItem,Fe as buttonsProps,no as default,Me as expandFormItemPropsKeys,ze as expandFormPropsKeys,nt as expandSelectPropsKeys,Qe as expandTablePropsKeys,Ee as formEmits,Ne as formEmitsKeys,He as formItemProps,ae as formProps,et as inheritSelectProps,ke as inputEmits,Ge as inputEmitsKeys,We as inputProps,at as install,Ze as searchListPageProps,$e as selectEmits,st as selectEmitsKeys,ot as selectProps,Ae as tableEmits,Xe as tableEmitsKeys,J as tableProps,Re as useRequest,Be as vPermission,we as vRepeatClick};
|
|
2
|
+
//# sourceMappingURL=index.full.min.mjs.map
|