rdxx-vue 0.1.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.
Files changed (30) hide show
  1. package/README.md +70 -0
  2. package/dist/rdxx-vue.cjs +1 -0
  3. package/dist/rdxx-vue.css +1 -0
  4. package/dist/rdxx-vue.mjs +2753 -0
  5. package/dist/types/components/crud/index.d.ts +338 -0
  6. package/dist/types/components/crud/src/crud-context-menu.vue.d.ts +17 -0
  7. package/dist/types/components/crud/src/crud-editable-cell.vue.d.ts +13 -0
  8. package/dist/types/components/crud/src/crud-filter-panel.vue.d.ts +20 -0
  9. package/dist/types/components/crud/src/crud-table-column.vue.d.ts +6 -0
  10. package/dist/types/components/crud/src/crud-toolbar.vue.d.ts +56 -0
  11. package/dist/types/components/crud/src/crud.vue.d.ts +307 -0
  12. package/dist/types/components/crud/src/types.d.ts +289 -0
  13. package/dist/types/components/crud/src/use-crud.d.ts +67 -0
  14. package/dist/types/components/form/index.d.ts +87 -0
  15. package/dist/types/components/form/src/form-field.vue.d.ts +14 -0
  16. package/dist/types/components/form/src/form.vue.d.ts +48 -0
  17. package/dist/types/components/form/src/types.d.ts +108 -0
  18. package/dist/types/components/form/src/use-dictionary.d.ts +12 -0
  19. package/dist/types/components/text-ellipsis/index.d.ts +10 -0
  20. package/dist/types/components/text-ellipsis/src/text-ellipsis.vue.d.ts +10 -0
  21. package/dist/types/components/text-ellipsis/src/types.d.ts +6 -0
  22. package/dist/types/components/upload/index.d.ts +142 -0
  23. package/dist/types/components/upload/src/types.d.ts +98 -0
  24. package/dist/types/components/upload/src/upload.vue.d.ts +100 -0
  25. package/dist/types/constants/index.d.ts +1 -0
  26. package/dist/types/hooks/index.d.ts +1 -0
  27. package/dist/types/hooks/use-toggle/index.d.ts +15 -0
  28. package/dist/types/rdxx-ui/index.d.ts +15 -0
  29. package/dist/types/utils/index.d.ts +10 -0
  30. package/package.json +86 -0
package/README.md ADDED
@@ -0,0 +1,70 @@
1
+ # Vue 3 + TypeScript + Pinia + Vue Router 项目
2
+
3
+ 这是一个集成了 [vuejs-ai/skills](https://github.com/vuejs-ai/skills) 的 Vue 3 项目,提供了 AI 驱动的 Vue 开发最佳实践指导。
4
+
5
+ ## 项目特性
6
+
7
+ - ✅ Vue 3 + Composition API
8
+ - ✅ TypeScript 支持
9
+ - ✅ Vue Router 4 路由管理
10
+ - ✅ Pinia 状态管理
11
+ - ✅ 集成 Vue AI Skills 最佳实践指导
12
+
13
+ ## 已安装的 Vue Skills
14
+
15
+ ### 🎯 核心技能
16
+ - **vue-best-practices** - Vue 3 + Composition API + TypeScript 最佳实践
17
+ - **vue-pinia-best-practices** - Pinia 状态管理最佳实践
18
+ - **vue-router-best-practices** - Vue Router 4 路由最佳实践
19
+ - **vue-jsx-best-practices** - Vue JSX 语法最佳实践
20
+ - **create-adaptable-composable** - 创建可复用组合式函数的最佳实践
21
+
22
+ ### 💡 技能使用提示
23
+ 在与 AI 交互时,使用以下前缀获得最佳结果:
24
+ ```
25
+ Use vue skill, [你的问题或需求]
26
+ ```
27
+
28
+ 例如:
29
+ - `Use vue skill, 创建一个用户管理的页面`
30
+ - `Use vue skill, 优化这个组件的性能`
31
+ - `Use vue skill, 添加表单验证`
32
+
33
+ ## Recommended IDE Setup
34
+
35
+ [VS Code](https://code.visualstudio.com/) + [Vue (Official)](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur).
36
+
37
+ ## Recommended Browser Setup
38
+
39
+ - Chromium-based browsers (Chrome, Edge, Brave, etc.):
40
+ - [Vue.js devtools](https://chromewebstore.google.com/detail/vuejs-devtools/nhdogjmejiglipccpnnnanhbledajbpd)
41
+ - [Turn on Custom Object Formatter in Chrome DevTools](http://bit.ly/object-formatters)
42
+ - Firefox:
43
+ - [Vue.js devtools](https://addons.mozilla.org/en-US/firefox/addon/vue-js-devtools/)
44
+ - [Turn on Custom Object Formatter in Firefox DevTools](https://fxdx.dev/firefox-devtools-custom-object-formatters/)
45
+
46
+ ## Type Support for `.vue` Imports in TS
47
+
48
+ TypeScript cannot handle type information for `.vue` imports by default, so we replace the `tsc` CLI with `vue-tsc` for type checking. In editors, we need [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) to make the TypeScript language service aware of `.vue` types.
49
+
50
+ ## Customize configuration
51
+
52
+ See [Vite Configuration Reference](https://vite.dev/config/).
53
+
54
+ ## Project Setup
55
+
56
+ ```sh
57
+ npm install
58
+ ```
59
+
60
+ ### Compile and Hot-Reload for Development
61
+
62
+ ```sh
63
+ npm run dev
64
+ ```
65
+
66
+ ### Type-Check, Compile and Minify for Production
67
+
68
+ ```sh
69
+ npm run build
70
+ ```
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),te=require("element-plus"),J=require("@element-plus/icons-vue"),ht=require("axios"),gt=require("vuedraggable"),yt=require("async-validator");function bt(t){const D=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const p in t)if(p!=="default"){const l=Object.getOwnPropertyDescriptor(t,p);Object.defineProperty(D,p,l.get?l:{enumerable:!0,get:()=>t[p]})}}return D.default=t,Object.freeze(D)}const kt=bt(J);function be(t){return t.install=D=>{const{name:p}=t;p&&D.component(p,t)},t}const Ct={class:"rdxx-upload"},wt={key:1,class:"upload-card"},xt={key:2,class:"upload-drag"},Bt={class:"el-upload__text"},Vt={class:"el-upload__tip"},St={class:"preview-content"},Nt=["src"],Tt=["src"],Et=["src"],Dt={key:3,class:"file-info"},zt=e.defineComponent({name:"RdxxUpload",__name:"upload",props:{modelValue:{},action:{},accept:{},multiple:{type:Boolean,default:!1},limit:{default:999},fileSize:{default:2048},listType:{default:"text"},dragFile:{type:Boolean,default:!1},dataType:{default:"string"},props:{default:()=>({label:"name",value:"url"})},propsHttp:{default:()=>({res:"data",url:"url",name:"name"})},fileText:{},loadText:{},tip:{},data:{},headers:{},name:{},withCredentials:{type:Boolean},autoUpload:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},showFileList:{type:Boolean,default:!0},fileType:{},canvasOption:{},drag:{type:Boolean,default:!1}},emits:["update:modelValue","upload-before","upload-after","upload-preview","upload-delete","upload-error","upload-exceed","upload-size"],setup(t,{expose:D,emit:p}){const l=t,d=p,u=e.ref([]),c=e.ref(!1),w=e.ref(!1),m=e.ref(null),C=e.ref(""),h=e.ref({uploadBefore:!1,uploadAfter:!1,uploadPreview:!1,uploadDelete:!1}),b=e.computed(()=>({action:l.action||"#",accept:l.accept,multiple:l.multiple,limit:l.limit,data:l.data,headers:l.headers,name:l.name||"file",withCredentials:l.withCredentials,autoUpload:l.autoUpload,showFileList:l.showFileList,disabled:l.disabled})),B=e.computed(()=>l.accept||l.limit!==999||l.fileSize!==2048),$=y=>y?["image/jpeg","image/jpg","image/png","image/gif","image/webp"].some(S=>y.raw?.type===S)||/\.(jpg|jpeg|png|gif|webp)$/i.test(y.name||""):!1,N=y=>y?["video/mp4","video/avi","video/mov","video/wmv","video/ogg"].some(S=>y.raw?.type===S)||/\.(mp4|avi|mov|wmv|ogg)$/i.test(y.name||""):!1,i=y=>y?["audio/mpeg","audio/mp3","audio/wav","audio/ogg"].some(S=>y.raw?.type===S)||/\.(mp3|wav|ogg|m4a)$/i.test(y.name||""):!1,v=()=>{const y=[];if(l.accept){const V=l.accept.split(",").map(S=>S.trim()).join("/");y.push(`支持${V}格式`)}if(l.limit&&l.limit<999&&y.push(`最多${l.limit}个文件`),l.fileSize!==2048){const V=l.fileSize>=1024?`${(l.fileSize/1024).toFixed(1)}MB`:`${l.fileSize}KB`;y.push(`大小不超过${V}`)}return y.join(",")},x=y=>{if(!y)return[];if(typeof y=="string")if(l.dataType==="json")try{const V=JSON.parse(y);return Array.isArray(V)?V.map((S,I)=>({uid:Date.now()+I,name:S[l.props.label]||S.name||`文件${I+1}`,url:S[l.props.value]||S.url||S,status:"success"})):[]}catch{return[]}else return y.split(",").filter(Boolean).map((V,S)=>({uid:Date.now()+S,name:V.split("/").pop()||`文件${S+1}`,url:V.trim(),status:"success"}));return Array.isArray(y)?y.map((V,S)=>typeof V=="string"?{uid:Date.now()+S,name:V.split("/").pop()||`文件${S+1}`,url:V,status:"success"}:typeof V=="object"?{uid:Date.now()+S,name:V[l.props.label]||V.name||`文件${S+1}`,url:V[l.props.value]||V.url||"",status:"success"}:{uid:Date.now()+S,name:`文件${S+1}`,url:"",status:"success"}):[]},F=y=>{if(!y.length)return l.multiple?[]:"";if(l.dataType==="string"){const V=y.map(S=>S.url).filter(Boolean);return l.multiple?V.join(","):V[0]||""}else if(l.dataType==="json"){const V=y.map(S=>({[l.props.label]:S.name,[l.props.value]:S.url}));return JSON.stringify(l.multiple?V:V[0])}else{const V=y.map(S=>({[l.props.label]:S.name,[l.props.value]:S.url}));return l.multiple?V:V[0]}},T=async y=>{const{file:V,onProgress:S,onSuccess:I,onError:r}=y;try{const o=new FormData;o.append(l.name||"file",V),l.data&&Object.keys(l.data).forEach(k=>{o.append(k,l.data[k])});const f=await ht.post(l.action||"#",o,{headers:{"Content-Type":"multipart/form-data",...l.headers},onUploadProgress:k=>{if(k.total){const E=Math.floor(k.loaded/k.total*100);S({percent:E})}}});I(f.data)}catch(o){r(o)}},O=y=>{if(l.fileSize&&y.size/1024>l.fileSize)return te.ElMessage.error(`上传文件大小不能超过 ${l.fileSize>=1024?(l.fileSize/1024).toFixed(1)+"MB":l.fileSize+"KB"}!`),d("upload-size",y.size/1024,y,u.value),!1;if(l.accept){const V=l.accept.split(",").map(o=>o.trim().toLowerCase()),S=y.type.toLowerCase(),I=y.name.toLowerCase();if(!V.some(o=>o.startsWith(".")?I.endsWith(o):S.includes(o.replace("*",""))))return te.ElMessage.error(`不支持 ${y.name.split(".").pop()} 格式的文件!`),!1}return new Promise(V=>{d("upload-before",y,r=>{V(!0)},r=>{c.value=r}),h.value.uploadBefore||V(!0)})},Y=(y,V,S)=>{let I="",r=V.name||"uploaded_file";if(l.propsHttp?.res){const P=j(y,l.propsHttp.res);P&&(I=P[l.propsHttp.url||"url"]||P.url||P.fileUrl||"",r=P[l.propsHttp.name||"name"]||P.name||P.fileName||r)}else{const P=y.data||y;I=P.url||P.fileUrl||P.path||"",r=P.name||P.fileName||P.originalName||r}const o={...V,url:I,name:r,status:"success"},f=u.value.findIndex(P=>P.uid===V.uid);f>-1&&u.value.splice(f,1,o),ie(),d("upload-after",y,()=>{c.value=!1},P=>{c.value=P}),te.ElMessage.success(`${r} 上传成功!`)},H=(y,V,S)=>{te.ElMessage.error(`${V.name} 上传失败!`),d("upload-error",y)},z=(y,V,S)=>{},G=y=>new Promise(V=>{const S=()=>{m.value=y,C.value=y.name||"预览",w.value=!0,V()};d("upload-preview",y,S),h.value.uploadPreview||S()}),Q=(y,V)=>new Promise(S=>{const I=()=>{te.ElMessageBox.confirm("确定移除该文件吗?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{S(!0),ie()}).catch(()=>{S(!1)})};d("upload-delete",y),h.value.uploadDelete?(S(!0),ie()):I()}),le=(y,V)=>{te.ElMessage.warning(`当前限制选择 ${l.limit} 个文件,本次选择了 ${y.length} 个文件,共选择了 ${y.length+V.length} 个文件`),d("upload-exceed",l.limit||999,y,V)},j=(y,V)=>V.split(".").reduce((S,I)=>S?.[I],y),ie=()=>{e.nextTick(()=>{const y=F(u.value);d("update:modelValue",y)})};e.watch(()=>l.modelValue,y=>{u.value=x(y)},{immediate:!0,deep:!0});const de=()=>{h.value={uploadBefore:!0,uploadAfter:!0,uploadPreview:!0,uploadDelete:!0}};return e.onMounted(()=>{de()}),D({clearFiles:()=>{u.value=[],ie()},abort:y=>{},submit:()=>{}}),(y,V)=>{const S=e.resolveComponent("el-icon"),I=e.resolveComponent("el-button"),r=e.resolveComponent("el-upload"),o=e.resolveComponent("el-dialog");return e.openBlock(),e.createElementBlock("div",Ct,[e.createVNode(r,e.mergeProps(b.value,{class:[`rdxx-upload--${t.listType}`,{"rdxx-upload--drag":t.dragFile}],"file-list":u.value,"on-preview":G,"on-remove":Q,"on-success":Y,"on-error":H,"on-progress":z,"before-upload":O,"on-exceed":le,"auto-upload":t.autoUpload,drag:t.dragFile,"list-type":t.listType,accept:t.accept,action:t.action,multiple:t.multiple,limit:t.limit,data:t.data,headers:t.headers,name:t.name,"with-credentials":t.withCredentials,"show-file-list":t.showFileList,disabled:t.disabled,"http-request":T}),e.createSlots({default:e.withCtx(()=>[y.$slots.default?e.renderSlot(y.$slots,"default",{key:1},void 0,!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[t.listType==="text"?(e.openBlock(),e.createBlock(I,{key:0,type:"primary",disabled:t.disabled},{default:e.withCtx(()=>[e.createVNode(S,null,{default:e.withCtx(()=>[e.createVNode(e.unref(J.Upload))]),_:1}),e.createTextVNode(" "+e.toDisplayString(t.fileText||"点击上传"),1)]),_:1},8,["disabled"])):t.listType==="picture-card"?(e.openBlock(),e.createElementBlock("div",wt,[e.createVNode(S,null,{default:e.withCtx(()=>[e.createVNode(e.unref(J.Plus))]),_:1})])):t.dragFile?(e.openBlock(),e.createElementBlock("div",xt,[e.createVNode(S,{class:"el-icon--upload"},{default:e.withCtx(()=>[e.createVNode(e.unref(J.UploadFilled))]),_:1}),e.createElementVNode("div",Bt,e.toDisplayString(t.fileText||"将文件拖到此处,或点击上传"),1)])):e.createCommentVNode("",!0)],64))]),_:2},[t.tip||B.value?{name:"tip",fn:e.withCtx(()=>[e.createElementVNode("div",Vt,e.toDisplayString(t.tip||v()),1)]),key:"0"}:void 0]),1040,["class","file-list","auto-upload","drag","list-type","accept","action","multiple","limit","data","headers","name","with-credentials","show-file-list","disabled"]),e.createVNode(o,{modelValue:w.value,"onUpdate:modelValue":V[0]||(V[0]=f=>w.value=f),title:C.value,width:"800px","append-to-body":""},{default:e.withCtx(()=>[e.createElementVNode("div",St,[$(m.value)?(e.openBlock(),e.createElementBlock("img",{key:0,src:m.value?.url,style:{width:"100%"}},null,8,Nt)):N(m.value)?(e.openBlock(),e.createElementBlock("video",{key:1,src:m.value?.url,controls:"",style:{width:"100%"}},null,8,Tt)):i(m.value)?(e.openBlock(),e.createElementBlock("audio",{key:2,src:m.value?.url,controls:"",style:{width:"100%"}},null,8,Et)):(e.openBlock(),e.createElementBlock("div",Dt,[e.createVNode(S,{size:"48"},{default:e.withCtx(()=>[e.createVNode(e.unref(J.Document))]),_:1}),e.createElementVNode("div",null,e.toDisplayString(m.value?.name),1)]))])]),_:1},8,["modelValue","title"])])}}}),oe=(t,D)=>{const p=t.__vccOpts||t;for(const[l,d]of D)p[l]=d;return p},Ae=oe(zt,[["__scopeId","data-v-fa90c7b0"]]),Oe=be(Ae),ge=new Map,pe=new Map,$t=["select","radio","checkbox"],ve=t=>t?$t.includes(t):!1,Ue=(t,D)=>{if(t.parentProp){const p=D[t.parentProp];return p!=null&&p!==""?String(p):void 0}return typeof t.dicCode=="function"?t.dicCode(D):t.dicCode},je=(t,D)=>typeof t.dicQuery=="function"?t.dicQuery(D):t.dicQuery,Pe=(t,D={})=>{let p=t.dicUrl;const l=Ue(t,D);if(!p&&l&&(p="/api/dict"),!p)return"";const d=t.dicMethod||"get",u=je(t,D),c=u?JSON.stringify(u):"",w=!t.dicUrl&&l?l:"";return`${d}:${p}:${w}:${c}`};function Ft(t,D){const p=e.ref({}),l=new Map,d=(m,C,h)=>{let b=m;const B=C.props?.res;if(B){const $=B.split(".");for(const N of $)if(b&&typeof b=="object")b=b[N];else break}return C.dicFormatter&&(b=C.dicFormatter(b)),h&&!Array.isArray(b)&&typeof b=="object"&&(b=b[h]),Array.isArray(b)?b:[]},u=async(m,C=!1,h={})=>{if(!ve(m.type))return;const b=Ue(m,h),B=je(m,h);let $=m.dicUrl;if(!$&&b&&($="/api/dict"),!$||!m.prop){m.parentProp&&m.prop&&(p.value[m.prop]=[]);return}const N=Pe(m,h);if(!N)return;if(C&&(ge.delete(N),pe.delete(N)),ge.has(N)){p.value[m.prop]=ge.get(N),l.set(m.prop,N);return}if(pe.has(N)){try{const x=await pe.get(N);p.value[m.prop]=x??[]}catch(x){console.error(`Fetch dictionary failed for ${m.prop}:`,x)}return}const i=(m.dicMethod||"get").toUpperCase(),v=(async()=>{try{let x=$;const F={method:i},T=new URLSearchParams;if(!m.dicUrl&&b&&T.append("code",b),B&&Object.keys(B).forEach(z=>{T.append(z,String(B[z]))}),i==="POST"){const z={};!m.dicUrl&&b&&(z.code=b),B&&Object.assign(z,B),Object.keys(z).length>0&&(F.body=JSON.stringify(z),F.headers={"Content-Type":"application/json"})}else{const z=T.toString();z&&(x+=(x.includes("?")?"&":"?")+z)}const O=await fetch(x,F);if(!O.ok)throw new Error(O.statusText);const Y=await O.json(),H=d(Y,m,b);return ge.set(N,H),H}catch(x){return console.error(x),[]}finally{pe.delete(N)}})();pe.set(N,v);try{const x=await v;p.value[m.prop]=x??[],l.set(m.prop,N)}catch{}},c=()=>{const m=D?.value??{};t.value.forEach(C=>{ve(C.type)&&(C.dicUrl||C.dicCode)&&u(C,!0,m)})},w=m=>{const C=t.value.find(b=>b.prop===m),h=D?.value??{};C&&ve(C.type)&&(C.dicUrl||C.dicCode)&&u(C,!0,h)};return e.watch(()=>t.value,m=>{const C=D?.value??{};m.forEach(h=>{ve(h.type)&&((h.dicUrl||h.dicCode)&&u(h,!1,C),h.dicData&&!h.dicUrl&&!h.dicCode&&Array.isArray(h.dicData)&&(p.value[h.prop]=h.dicData))})},{immediate:!0,deep:!0}),D&&e.watch(D,m=>{t.value.forEach(C=>{if(!ve(C.type)||!(typeof C.dicCode=="function"||typeof C.dicQuery=="function"||!!C.parentProp))return;const b=Pe(C,m);b&&b!==l.get(C.prop)&&u(C,!1,m)})},{deep:!0}),{dictionary:p,refreshDictionary:c,refreshFieldDictionary:w}}const Rt={class:"form-field-wrapper"},Pt=e.defineComponent({__name:"form-field",props:{column:{},modelValue:{},dicData:{default:()=>[]},defaultWidth:{default:"100%"},size:{},onEvent:{}},setup(t){const D=Ae,p=t,l=e.computed(()=>{if(p.column.placeholder)return p.column.placeholder;let u="请输入";switch(p.column.type){case"select":case"radio":case"checkbox":u="请选择";break;default:u="请输入";break}return`${u}${p.column.label}`}),d=u=>{const c=p.modelValue[p.column.prop];p.onEvent&&p.onEvent(u,p.column,c)};return(u,c)=>{const w=e.resolveComponent("el-icon"),m=e.resolveComponent("el-input"),C=e.resolveComponent("el-option"),h=e.resolveComponent("el-select"),b=e.resolveComponent("el-radio"),B=e.resolveComponent("el-radio-group"),$=e.resolveComponent("el-checkbox"),N=e.resolveComponent("el-checkbox-group");return e.openBlock(),e.createElementBlock("div",Rt,[!t.column.type||["input","password","textarea","number"].includes(t.column.type)?(e.openBlock(),e.createBlock(m,{key:0,modelValue:t.modelValue[t.column.prop],"onUpdate:modelValue":c[2]||(c[2]=i=>t.modelValue[t.column.prop]=i),placeholder:t.column.placeholder||l.value,clearable:t.column.clearable!==!1,disabled:t.column.disabled||!1,readonly:t.column.readonly||!1,maxlength:t.column.maxlength,minlength:t.column.minlength,"show-password":t.column.showPassword&&t.column.type==="password",type:t.column.type==="password"?"password":t.column.type==="textarea"?"textarea":t.column.type==="number"?"number":"text",rows:t.column.rows||2,autosize:t.column.autosize,style:e.normalizeStyle({width:t.column.width||t.defaultWidth}),onBlur:c[3]||(c[3]=i=>d("blur")),onFocus:c[4]||(c[4]=i=>d("focus")),onChange:c[5]||(c[5]=i=>d("change")),onClick:c[6]||(c[6]=i=>d("click"))},e.createSlots({_:2},[t.column.prepend?{name:"prepend",fn:e.withCtx(()=>[e.createElementVNode("span",{onClick:c[0]||(c[0]=i=>d("prependClick"))},e.toDisplayString(t.column.prepend),1)]),key:"0"}:void 0,t.column.append?{name:"append",fn:e.withCtx(()=>[e.createElementVNode("span",{onClick:c[1]||(c[1]=i=>d("appendClick"))},e.toDisplayString(t.column.append),1)]),key:"1"}:void 0,t.column.prefixIcon?{name:"prefix",fn:e.withCtx(()=>[e.createVNode(w,null,{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.column.prefixIcon)))]),_:1})]),key:"2"}:void 0,t.column.suffixIcon?{name:"suffix",fn:e.withCtx(()=>[e.createVNode(w,null,{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.column.suffixIcon)))]),_:1})]),key:"3"}:void 0]),1032,["modelValue","placeholder","clearable","disabled","readonly","maxlength","minlength","show-password","type","rows","autosize","style"])):t.column.type==="select"?(e.openBlock(),e.createBlock(h,{key:1,modelValue:t.modelValue[t.column.prop],"onUpdate:modelValue":c[7]||(c[7]=i=>t.modelValue[t.column.prop]=i),placeholder:t.column.placeholder||l.value,clearable:t.column.clearable!==!1,disabled:t.column.disabled||!1,multiple:t.column.multiple,filterable:t.column.filterable,"allow-create":t.column.allowCreate,"collapse-tags":t.column.collapseTags,"max-collapse-tags":t.column.maxCollapseTags,"collapse-tags-tooltip":t.column.collapseTagsTooltip,style:e.normalizeStyle({width:t.column.width||t.defaultWidth}),onChange:c[8]||(c[8]=i=>d("change")),onFocus:c[9]||(c[9]=i=>d("focus")),onBlur:c[10]||(c[10]=i=>d("blur")),onClick:c[11]||(c[11]=i=>d("click"))},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.dicData,(i,v)=>(e.openBlock(),e.createBlock(C,{key:v,label:i[t.column.props?.label||"label"],value:i[t.column.props?.value||"value"],disabled:i[t.column.props?.disabled||"disabled"]},null,8,["label","value","disabled"]))),128))]),_:1},8,["modelValue","placeholder","clearable","disabled","multiple","filterable","allow-create","collapse-tags","max-collapse-tags","collapse-tags-tooltip","style"])):t.column.type==="radio"?(e.openBlock(),e.createBlock(B,{key:2,modelValue:t.modelValue[t.column.prop],"onUpdate:modelValue":c[12]||(c[12]=i=>t.modelValue[t.column.prop]=i),disabled:t.column.disabled||!1,size:t.column.size||t.size,style:e.normalizeStyle({width:t.column.width||"auto"}),onChange:c[13]||(c[13]=i=>d("change"))},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.dicData,(i,v)=>(e.openBlock(),e.createBlock(b,{key:v,value:i[t.column.props?.value||"value"],disabled:i[t.column.props?.disabled||"disabled"]||!1,border:t.column.border||!1},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(i[t.column.props?.label||"label"]),1)]),_:2},1032,["value","disabled","border"]))),128))]),_:1},8,["modelValue","disabled","size","style"])):t.column.type==="checkbox"?(e.openBlock(),e.createBlock(N,{key:3,modelValue:t.modelValue[t.column.prop],"onUpdate:modelValue":c[14]||(c[14]=i=>t.modelValue[t.column.prop]=i),disabled:t.column.disabled||!1,size:t.column.size||t.size,min:t.column.min,max:t.column.max,style:e.normalizeStyle({width:t.column.width||"auto"}),onChange:c[15]||(c[15]=i=>d("change"))},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.dicData,(i,v)=>(e.openBlock(),e.createBlock($,{key:v,label:i[t.column.props?.value||"value"],disabled:i[t.column.props?.disabled||"disabled"]||!1,border:t.column.border||!1},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(i[t.column.props?.label||"label"]),1)]),_:2},1032,["label","disabled","border"]))),128))]),_:1},8,["modelValue","disabled","size","min","max","style"])):t.column.type==="upload"?(e.openBlock(),e.createBlock(e.unref(D),{key:4,modelValue:t.modelValue[t.column.prop],"onUpdate:modelValue":c[16]||(c[16]=i=>t.modelValue[t.column.prop]=i),action:t.column.action,accept:t.column.accept,limit:t.column.limit,"max-size":t.column.fileSize,"list-type":t.column.listType,drag:t.column.drag,disabled:t.column.disabled,style:e.normalizeStyle({width:t.column.width||t.defaultWidth}),onChange:c[17]||(c[17]=i=>d("change"))},null,8,["modelValue","action","accept","limit","max-size","list-type","drag","disabled","style"])):e.createCommentVNode("",!0)])}}}),Me=oe(Pt,[["__scopeId","data-v-48d9efec"]]),Mt={class:"rdxx-form"},At={key:0,class:"form-view-value"},Ot={key:1,class:"form-flex-container"},Ut={key:0,class:"form-flex-item"},jt={key:0,class:"form-view-value"},Lt={key:0,class:"form-flex-buttons"},It=e.defineComponent({name:"RdxxForm",__name:"form",props:{modelValue:{default:()=>({})},option:{default:()=>({column:[]})},detail:{type:Boolean,default:!1}},emits:["update:modelValue","submit","reset-change"],setup(t,{expose:D,emit:p}){const l=t,d=p,u=e.ref(),c=e.ref(!1),w=e.ref({}),m=e.computed(()=>l.option.column||[]),{dictionary:C,refreshDictionary:h,refreshFieldDictionary:b}=Ft(m,w),B=r=>{const o=typeof r.dicData=="function"?r.dicData(w.value):r.dicData;return C.value[r.prop]||o||[]},$=e.computed(()=>{const r=[];let o=[],f=0;return m.value.forEach(k=>{const E=k.span??l.option.defaultSpan??24;k.row?(o.length>0&&(r.push(o),o=[],f=0),r.push([k])):(f+E>24&&o.length>0&&(r.push(o),o=[],f=0),o.push(k),f+=E)}),o.length>0&&r.push(o),r}),N=e.computed(()=>{if($.value.length===0)return 24;const r=$.value[$.value.length-1];return r?24-r.reduce((f,k)=>f+(k.span??l.option.defaultSpan??24),0):24});e.computed(()=>{if(l.option.menuBtn===!1)return!1;let r=0;return l.option.submitBtn!==!1&&(r+=4),l.option.emptyBtn!==!1&&(r+=4),N.value>=r});const i=e.ref(!1);let v=null;const x=(r,o)=>{if(r===o)return!0;const f=Object.keys(r),k=Object.keys(o);return f.length!==k.length?!1:f.every(E=>r[E]===o[E])},F=r=>({...r});e.watch(()=>l.modelValue,r=>{r&&(x(w.value,r)||(i.value=!0,w.value={...r},v=F(r),i.value=!1))},{immediate:!0,deep:!0}),e.watch(w,r=>{if(i.value||v&&x(r,v))return;const o={...l.modelValue,...r};v=F(r),d("update:modelValue",o)},{deep:!0});const T=e.computed(()=>m.value.reduce((r,o)=>{if(!o.prop||!o.rules)return r;const f=Array.isArray(o.rules)?[...o.rules]:[o.rules];return f.length>0&&(r[o.prop]=f),r},{})),O=r=>typeof r.display=="function"?r.display({column:r,value:w.value[r.prop],row:w.value}):r.display!==!1,Y=(r,o,f)=>{if(r==="change"){const k={},E=[o.prop];for(;E.length>0;){const P=E.shift();m.value.filter(K=>K.parentProp===P).forEach(K=>{k[K.prop]=void 0,E.push(K.prop)})}Object.keys(k).length>0&&(w.value={...w.value,...k})}if(o[r]&&typeof o[r]=="function"){const k=E=>{w.value={...w.value,...E}};o[r]({column:o,value:f,row:w.value,updateRow:k})}},H=e.computed(()=>l.detail||l.option.detail===!0),z=r=>{const o=w.value[r.prop];if(typeof r.viewFormatter=="function")return r.viewFormatter(o,w.value);if(o==null||o==="")return"-";if(["select","radio","checkbox"].includes(r.type||"input")){const f=B(r),k=r.props?.label||"label",E=r.props?.value||"value";if(r.type==="checkbox"||r.multiple){const K=(Array.isArray(o)?o:[o]).map(q=>{const ne=f.find(X=>X[E]===q);return ne?ne[k]:q});return K.length?K.join("、"):"-"}else{const P=f.find(K=>K[E]===o);return P?P[k]:String(o)}}return r.type==="upload"&&Array.isArray(o)?o.map(f=>typeof f=="string"?f:f?.name||f?.url||"").join("、")||"-":String(o)},G=async()=>{if(u.value)try{await u.value.validate(),c.value=!0;const r=()=>{c.value=!1};d("submit",w.value,r)}catch(r){console.log("表单验证失败:",r)}},Q=()=>{u.value&&(u.value.resetFields(),d("reset-change"))};D({submit:()=>G(),resetForm:()=>Q(),validate:r=>u.value?.validate(r),validateField:(r,o)=>u.value?.validateField(r,o),resetFields:()=>u.value?.resetFields(),clearValidate:r=>u.value?.clearValidate(r),formRef:u,refreshDictionary:h,refreshFieldDictionary:b});const S=e.ref(new Set),I=r=>{if(!r||r.length===0)return;const o={...w.value};let f=!1;r.forEach(k=>{if(!k.prop||k.value===void 0||S.value.has(k.prop))return;const E=Object.prototype.hasOwnProperty.call(w.value,k.prop),P=Object.prototype.hasOwnProperty.call(l.modelValue,k.prop);!E&&!P&&(o[k.prop]=k.value,f=!0),S.value.add(k.prop)}),f&&(w.value=o)};return e.watch(()=>l.option.column,r=>{I(r)},{immediate:!0}),(r,o)=>{const f=e.resolveComponent("el-form-item"),k=e.resolveComponent("el-col"),E=e.resolveComponent("el-row"),P=e.resolveComponent("el-button"),K=e.resolveComponent("el-form");return e.openBlock(),e.createElementBlock("div",Mt,[e.createVNode(K,{ref_key:"formRef",ref:u,model:w.value,rules:T.value,"label-width":t.option.labelWidth||"80px","label-position":t.option.labelPosition||"right",size:t.option.size||"default"},{default:e.withCtx(()=>[!t.option.layout||t.option.layout==="grid"?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList($.value,(q,ne)=>(e.openBlock(),e.createBlock(E,{key:ne,gutter:t.option.gutter||0},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(q,X=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:X.prop},[O(X)?(e.openBlock(),e.createBlock(k,{key:0,span:X.span??t.option.defaultSpan??24,offset:X.offset||0},{default:e.withCtx(()=>[e.createVNode(f,{label:X.label,prop:H.value?void 0:X.prop,"label-width":X.labelWidth},{default:e.withCtx(()=>[H.value?(e.openBlock(),e.createElementBlock("span",At,e.toDisplayString(z(X)),1)):(e.openBlock(),e.createBlock(Me,{key:1,column:X,"model-value":w.value,"dic-data":B(X),"default-width":"100%",size:t.option.size,"on-event":Y},null,8,["column","model-value","dic-data","size"]))]),_:2},1032,["label","prop","label-width"])]),_:2},1032,["span","offset"])):e.createCommentVNode("",!0)],64))),128))]),_:2},1032,["gutter"]))),128)):e.createCommentVNode("",!0),t.option.layout==="flex"?(e.openBlock(),e.createElementBlock("div",Ot,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.option.column,q=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:q.prop},[O(q)?(e.openBlock(),e.createElementBlock("div",Ut,[e.createVNode(f,{label:q.label,prop:H.value?void 0:q.prop,"label-width":q.labelWidth},{default:e.withCtx(()=>[H.value?(e.openBlock(),e.createElementBlock("span",jt,e.toDisplayString(z(q)),1)):(e.openBlock(),e.createBlock(Me,{key:1,column:q,"model-value":w.value,"dic-data":B(q),"default-width":t.option.defaultWidth||"200px",size:t.option.size,"on-event":Y},null,8,["column","model-value","dic-data","default-width","size"]))]),_:2},1032,["label","prop","label-width"])])):e.createCommentVNode("",!0)],64))),128)),!H.value&&t.option.menuBtn!==!1?(e.openBlock(),e.createElementBlock("div",Lt,[e.renderSlot(r.$slots,"menu-form-before",{},void 0,!0),t.option.submitBtn!==!1?(e.openBlock(),e.createBlock(P,{key:0,type:"primary",onClick:G,loading:c.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.option.submitText||"提交"),1)]),_:1},8,["loading"])):e.createCommentVNode("",!0),t.option.emptyBtn!==!1?(e.openBlock(),e.createBlock(P,{key:1,onClick:Q},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.option.emptyText||"清空"),1)]),_:1})):e.createCommentVNode("",!0),e.renderSlot(r.$slots,"menu-form",{},void 0,!0)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),!H.value&&(!t.option.layout||t.option.layout==="grid")&&t.option.menuBtn!==!1?(e.openBlock(),e.createBlock(E,{key:2,class:"form-menu"},{default:e.withCtx(()=>[e.createVNode(k,{span:t.option.menuSpan||24,class:"form-menu-wrapper"},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(`form-menu-${t.option.menuPosition||"center"}`)},[e.renderSlot(r.$slots,"menu-form-before",{},void 0,!0),t.option.submitBtn!==!1?(e.openBlock(),e.createBlock(P,{key:0,type:"primary",onClick:G,loading:c.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.option.submitText||"提交"),1)]),_:1},8,["loading"])):e.createCommentVNode("",!0),t.option.emptyBtn!==!1?(e.openBlock(),e.createBlock(P,{key:1,onClick:Q},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.option.emptyText||"清空"),1)]),_:1})):e.createCommentVNode("",!0),e.renderSlot(r.$slots,"menu-form",{},void 0,!0)],2)]),_:3},8,["span"])]),_:3})):e.createCommentVNode("",!0)]),_:3},8,["model","rules","label-width","label-position","size"])])}}}),Ht=oe(It,[["__scopeId","data-v-5c32c917"]]),ye=be(Ht);function Kt(){const t=e.ref(),D=e.ref(),p=e.ref([]),l=e.reactive({}),d=e.reactive({}),u=e.ref([]),c=e.ref(!1),w=e.ref(!1),m=e.ref(!1),C=e.ref("add"),h=e.ref(!0),b=e.ref(null),B=e.ref(-1),$=e.reactive({currentPage:1,pageSize:20,total:0,layout:"total, sizes, prev, pager, next, jumper"}),N=(o,f)=>o.filter(k=>{const E=k.display!==!1;return f==="add"?E&&k.addDisplay!==!1:f==="edit"?E&&k.editDisplay!==!1:f==="view"?E&&k.viewDisplay!==!1:E}),i=o=>o.filter(f=>f.search===!0),v=(o,f)=>{const k={};return o.forEach(E=>{if(f&&f[E.prop]!==void 0)k[E.prop]=f[E.prop];else if(E.value!==void 0)k[E.prop]=E.value;else switch(E.type){case"number":k[E.prop]=0;break;case"switch":k[E.prop]=!1;break;case"checkbox":case"upload":k[E.prop]=[];break;case"rate":k[E.prop]=0;break;default:k[E.prop]=""}}),k},x=o=>{const f=i(o),k={};return f.forEach(E=>{E.searchValue!==void 0?k[E.prop]=E.searchValue:k[E.prop]=""}),Object.assign(l,k),l},F=o=>{C.value="add";const f=v(N(o,"add"));Object.assign(d,f),w.value=!0,b.value=null,B.value=-1,e.nextTick(()=>{D.value?.clearValidate()})},T=(o,f,k)=>{C.value="edit";const E=v(N(k,"edit"),o);Object.assign(d,E),w.value=!0,b.value={...o},B.value=f,e.nextTick(()=>{D.value?.clearValidate()})},O=(o,f,k)=>{C.value="view";const E=v(N(k,"view"),o);Object.assign(d,E),w.value=!0,b.value={...o},B.value=f},Y=async(o,f)=>{try{return await te.ElMessageBox.confirm("是否确认删除该条数据?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}),{row:o,index:f,confirm:!0}}catch{return{row:o,index:f,confirm:!1}}},H=async(o,f)=>{if(D.value)try{await D.value.validate(),m.value=!0;const k=()=>{w.value=!1,m.value=!1,te.ElMessage.success(`${C.value==="add"?"新增":"修改"}成功`)},E=P=>{m.value=P};C.value==="add"?o("row-save",{...d},k,E):C.value==="edit"&&o("row-update",{...d},B.value,k,E)}catch{}},z=()=>{w.value=!1,m.value=!1,Object.keys(d).forEach(o=>{delete d[o]})},G=o=>{$.currentPage=1;const f=()=>{c.value=!1};c.value=!0,o("search-change",{...l},f)};return{tableRef:t,formRef:D,tableData:p,searchForm:l,currentForm:d,selectedRows:u,tableLoading:c,dialogVisible:w,formLoading:m,currentMode:C,searchVisible:h,currentRow:b,currentIndex:B,pageOption:$,getFormColumns:N,getSearchColumns:i,initFormData:v,initSearchForm:x,rowAdd:F,rowEdit:T,rowView:O,rowDelete:Y,saveForm:H,cancelForm:z,searchSubmit:G,searchReset:(o,f)=>{x(f),$.currentPage=1,c.value=!0;const k=()=>{c.value=!1};o("search-reset"),o("search-change",{...l},k)},refreshTable:o=>{c.value=!0;const f=()=>{c.value=!1};o("refresh-change"),o("search-change",{...l},f)},handleSizeChange:(o,f)=>{$.pageSize=o,$.currentPage=1,f("size-change",o),G(f)},handleCurrentChange:(o,f)=>{$.currentPage=o,f("current-change",o)},handleSelectionChange:(o,f)=>{u.value=o,f("selection-change",o)},handleSortChange:(o,f)=>{f("sort-change",o)},toggleSearch:()=>{h.value=!h.value},clearSelection:()=>{t.value?.clearSelection()},getSelectionRows:()=>u.value,formatDicValue:(o,f)=>{if(!f||!Array.isArray(f))return o;const k=(P,K)=>{for(const q of P){if(q.value===K)return q;if(q.children){const ne=k(q.children,K);if(ne)return ne}}};return k(f,o)?.label||o}}}function Wt(t){return{checkPermission:(p,l,d)=>t?typeof t=="function"?t(p,l,d):t[p]!==!1:!0}}const qt={key:0,class:"crud-toolbar"},Yt={class:"toolbar-left"},Qt={class:"toolbar-right"},Jt={class:"column-setting-popover"},Gt={class:"column-list"},Xt={class:"column-item"},Zt={class:"column-item-left"},_t={class:"column-item-right"},el={class:"column-setting-footer"},tl=e.defineComponent({__name:"crud-toolbar",props:e.mergeModels({option:{},hasSearchColumn:{type:Boolean,default:!1},searchVisible:{type:Boolean,default:!1},tableRef:{},checkPermission:{}},{columnSettings:{required:!0},columnSettingsModifiers:{}}),emits:e.mergeModels(["add","toggle-search","refresh","reset-columns"],["update:columnSettings"]),setup(t,{emit:D}){const p=t,l=D,d=e.useModel(t,"columnSettings"),u=()=>{d.value.forEach((C,h)=>{C.order=h})},c=C=>{C.fixed=C.fixed==="left"?!1:"left"},w=C=>{C.fixed=C.fixed==="right"?!1:"right"},m=()=>{localStorage.setItem(`crud-column-settings-${p.option?.storageKey||"default"}`,JSON.stringify(d.value)),te.ElMessage.success("列设置已保存")};return(C,h)=>{const b=e.resolveComponent("el-button"),B=e.resolveComponent("el-tooltip"),$=e.resolveComponent("el-icon"),N=e.resolveComponent("el-checkbox"),i=e.resolveComponent("el-popover");return t.option?.header!==!1?(e.openBlock(),e.createElementBlock("div",qt,[e.createElementVNode("div",Yt,[e.renderSlot(C.$slots,"toolbar-left",{},()=>[t.option?.addBtn!==!1&&t.checkPermission("addBtn")?(e.openBlock(),e.createBlock(B,{key:0,content:"新增",placement:"top","show-after":500},{default:e.withCtx(()=>[e.createVNode(b,{type:"primary",icon:t.option?.addBtnIcon||e.unref(J.Plus),size:"default",circle:"",onClick:h[0]||(h[0]=v=>l("add"))},null,8,["icon"])]),_:1})):e.createCommentVNode("",!0)],!0)]),e.createElementVNode("div",Qt,[e.renderSlot(C.$slots,"toolbar-right",{},()=>[t.hasSearchColumn&&t.option?.searchShowBtn!==!1?(e.openBlock(),e.createBlock(B,{key:0,content:t.searchVisible?"收起搜索":"展开搜索",placement:"top","show-after":500},{default:e.withCtx(()=>[e.createVNode(b,{type:"default",plain:"",circle:"",icon:e.unref(J.Search),onClick:h[1]||(h[1]=v=>l("toggle-search"))},null,8,["icon"])]),_:1},8,["content"])):e.createCommentVNode("",!0),t.option?.refreshBtn!==!1?(e.openBlock(),e.createBlock(B,{key:1,content:"刷新",placement:"top","show-after":500},{default:e.withCtx(()=>[e.createVNode(b,{type:"default",plain:"",circle:"",icon:e.unref(J.Refresh),onClick:h[2]||(h[2]=v=>l("refresh"))},null,8,["icon"])]),_:1})):e.createCommentVNode("",!0),t.option?.columnBtn!==!1?(e.openBlock(),e.createBlock(i,{key:2,placement:"bottom-end",width:"250",trigger:"click","show-arrow":!1,teleported:!1,"append-to":t.tableRef?.$el,"popper-style":{maxHeight:"95%"}},{reference:e.withCtx(()=>[e.createElementVNode("div",null,[e.createVNode(B,{content:"列设置",placement:"top","show-after":500},{default:e.withCtx(()=>[e.createVNode(b,{type:"default",plain:"",circle:"",icon:e.unref(J.Setting)},null,8,["icon"])]),_:1})])]),default:e.withCtx(()=>[e.createElementVNode("div",Jt,[h[7]||(h[7]=e.createElementVNode("div",{class:"column-setting-header"},[e.createElementVNode("span",{class:"setting-title"},"列设置")],-1)),e.createElementVNode("div",Gt,[e.createVNode(e.unref(gt),{modelValue:d.value,"onUpdate:modelValue":h[3]||(h[3]=v=>d.value=v),"item-key":"prop",handle:".drag-handle",animation:"300","ghost-class":"column-item-ghost","chosen-class":"column-item-chosen","drag-class":"column-item-drag",onEnd:u},{item:e.withCtx(({element:v})=>[e.createElementVNode("div",Xt,[e.createElementVNode("div",Zt,[e.createVNode($,{class:"drag-handle"},{default:e.withCtx(()=>[e.createVNode(e.unref(J.Rank))]),_:1}),e.createVNode(N,{modelValue:v.visible,"onUpdate:modelValue":x=>v.visible=x},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(v.label),1)]),_:2},1032,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("div",_t,[e.createVNode(B,{content:"冻结在左侧",placement:"top","show-after":500},{default:e.withCtx(()=>[e.createVNode(b,{type:v.fixed==="left"?"primary":"default",plain:v.fixed!=="left",size:"small",circle:"",onClick:x=>c(v)},{default:e.withCtx(()=>[e.createVNode($,null,{default:e.withCtx(()=>[e.createVNode(e.unref(J.ArrowLeft))]),_:1})]),_:1},8,["type","plain","onClick"])]),_:2},1024),e.createVNode(B,{content:"冻结在右侧",placement:"top","show-after":500},{default:e.withCtx(()=>[e.createVNode(b,{type:v.fixed==="right"?"primary":"default",plain:v.fixed!=="right",size:"small",circle:"",onClick:x=>w(v)},{default:e.withCtx(()=>[e.createVNode($,null,{default:e.withCtx(()=>[e.createVNode(e.unref(J.ArrowRight))]),_:1})]),_:1},8,["type","plain","onClick"])]),_:2},1024)])])]),_:1},8,["modelValue"])]),e.createElementVNode("div",el,[e.createVNode(b,{size:"small",plain:"",onClick:h[4]||(h[4]=v=>l("reset-columns"))},{default:e.withCtx(()=>[e.createVNode($,null,{default:e.withCtx(()=>[e.createVNode(e.unref(J.Refresh))]),_:1}),h[5]||(h[5]=e.createTextVNode(" 重置 ",-1))]),_:1}),e.createVNode(b,{size:"small",type:"primary",onClick:m},{default:e.withCtx(()=>[e.createVNode($,null,{default:e.withCtx(()=>[e.createVNode(e.unref(J.Check))]),_:1}),h[6]||(h[6]=e.createTextVNode(" 保存 ",-1))]),_:1})])])]),_:1},8,["append-to"])):e.createCommentVNode("",!0)],!0)])])):e.createCommentVNode("",!0)}}}),ll=oe(tl,[["__scopeId","data-v-4c8630cd"]]),ol={key:6,class:"editable-cell-error"},nl=e.defineComponent({__name:"crud-editable-cell",props:{column:{},row:{}},emits:["change"],setup(t,{expose:D,emit:p}){const l=t,d=p,u=e.ref(l.row[l.column.prop]);e.watch(()=>l.row[l.column.prop],N=>{u.value=N,c.value=""});const c=e.ref(""),w=e.computed(()=>{const N=l.column.type;return!N||["input","textarea","password"].includes(N)}),m=e.computed(()=>l.column.type==="textarea"?"textarea":l.column.type==="password"?"password":"text"),C=e.computed(()=>["date","datetime"].includes(l.column.type||"")),h=e.computed(()=>l.column.dicData||[]),b=async(N,i)=>{if(!l.column.rules)return c.value="",!0;console.log("开始校验",{val:N,trigger:i,rules:l.column.rules});const v=Array.isArray(l.column.rules)?l.column.rules:[l.column.rules],x=i?v.filter(O=>O.trigger?Array.isArray(O.trigger)?O.trigger.includes(i):O.trigger===i:!0):v;if(x.length===0)return c.value="",!0;const F={[l.column.prop]:x},T=new yt(F);try{return await T.validate({[l.column.prop]:N},{firstFields:!0}),c.value="",!0}catch(O){return c.value=O.errors?.[0]?.message??"校验失败",!1}},B=async N=>{u.value=N;const i=await b(N,"change");d("change",l.row,l.column.prop,N,i)},$=async()=>{const N=u.value,i=await b(N,"blur");console.log("校验是否通过",{val:N,valid:i}),d("change",l.row,l.column.prop,N,i)};return D({validate:async()=>({valid:await b(u.value),value:u.value}),clearError:()=>{c.value=""}}),(N,i)=>{const v=e.resolveComponent("el-input"),x=e.resolveComponent("el-input-number"),F=e.resolveComponent("el-option"),T=e.resolveComponent("el-select"),O=e.resolveComponent("el-date-picker"),Y=e.resolveComponent("el-time-picker"),H=e.resolveComponent("el-switch");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["editable-cell",{"is-error":!!c.value}]),onClick:i[6]||(i[6]=e.withModifiers(()=>{},["stop"]))},[w.value?(e.openBlock(),e.createBlock(v,{key:0,modelValue:u.value,"onUpdate:modelValue":i[0]||(i[0]=z=>u.value=z),type:m.value,placeholder:t.column.placeholder||"请输入",clearable:t.column.clearable!==!1,disabled:t.column.disabled,readonly:t.column.readonly,maxlength:t.column.maxlength,rows:t.column.rows,autosize:t.column.autosize,"show-password":t.column.showPassword,size:"small",onChange:B,onBlur:$},e.createSlots({_:2},[t.column.prepend?{name:"prepend",fn:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.column.prepend),1)]),key:"0"}:void 0,t.column.append?{name:"append",fn:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.column.append),1)]),key:"1"}:void 0]),1032,["modelValue","type","placeholder","clearable","disabled","readonly","maxlength","rows","autosize","show-password"])):t.column.type==="number"?(e.openBlock(),e.createBlock(x,{key:1,modelValue:u.value,"onUpdate:modelValue":i[1]||(i[1]=z=>u.value=z),disabled:t.column.disabled,min:t.column.min,max:t.column.max,step:t.column.step,precision:t.column.precision,size:"small","controls-position":"right",style:{width:"100%"},onChange:B,onBlur:$},null,8,["modelValue","disabled","min","max","step","precision"])):t.column.type==="select"?(e.openBlock(),e.createBlock(T,{key:2,modelValue:u.value,"onUpdate:modelValue":i[2]||(i[2]=z=>u.value=z),placeholder:t.column.placeholder||"请选择",clearable:t.column.clearable!==!1,disabled:t.column.disabled,multiple:t.column.multiple,filterable:t.column.filterable,size:"small",style:{width:"100%"},onChange:B},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,z=>(e.openBlock(),e.createBlock(F,{key:z.value,label:z.label,value:z.value,disabled:z.disabled},null,8,["label","value","disabled"]))),128))]),_:1},8,["modelValue","placeholder","clearable","disabled","multiple","filterable"])):C.value?(e.openBlock(),e.createBlock(O,{key:3,modelValue:u.value,"onUpdate:modelValue":i[3]||(i[3]=z=>u.value=z),type:t.column.type,placeholder:t.column.placeholder||"请选择日期",clearable:t.column.clearable!==!1,disabled:t.column.disabled,readonly:t.column.readonly,"value-format":t.column.valueFormat,format:t.column.format,size:"small",style:{width:"100%"},onChange:B},null,8,["modelValue","type","placeholder","clearable","disabled","readonly","value-format","format"])):t.column.type==="time"?(e.openBlock(),e.createBlock(Y,{key:4,modelValue:u.value,"onUpdate:modelValue":i[4]||(i[4]=z=>u.value=z),placeholder:t.column.placeholder||"请选择时间",clearable:t.column.clearable!==!1,disabled:t.column.disabled,readonly:t.column.readonly,"value-format":t.column.valueFormat,format:t.column.format,size:"small",style:{width:"100%"},onChange:B},null,8,["modelValue","placeholder","clearable","disabled","readonly","value-format","format"])):t.column.type==="switch"?(e.openBlock(),e.createBlock(H,{key:5,modelValue:u.value,"onUpdate:modelValue":i[5]||(i[5]=z=>u.value=z),disabled:t.column.disabled,"active-text":t.column.activeText,"inactive-text":t.column.inactiveText,"active-value":t.column.activeValue!==void 0?t.column.activeValue:!0,"inactive-value":t.column.inactiveValue!==void 0?t.column.inactiveValue:!1,onChange:B},null,8,["modelValue","disabled","active-text","inactive-text","active-value","inactive-value"])):e.createCommentVNode("",!0),c.value?(e.openBlock(),e.createElementBlock("div",ol,e.toDisplayString(c.value),1)):e.createCommentVNode("",!0)],2)}}}),al=oe(nl,[["__scopeId","data-v-22e7b199"]]),rl={key:1,class:"filter-select-list"},il={key:0,class:"filter-empty"},sl={key:2,class:"filter-range"},cl={key:3,class:"filter-date"},ul={class:"filter-footer"},dl=e.defineComponent({name:"CrudFilterPanel",__name:"crud-filter-panel",props:{column:{},modelValue:{},visible:{type:Boolean}},emits:["update:modelValue","confirm","reset","update:visible"],setup(t,{expose:D,emit:p}){const l=t,d=p,u=e.computed(()=>l.column.filterType||"text"),c=e.ref(""),w=e.ref([]),m=e.ref(""),C=e.ref(""),h=[{label:"大于",value:"gt"},{label:"大于等于",value:"gte"},{label:"小于",value:"lt"},{label:"小于等于",value:"lte"},{label:"介于",value:"between"}],b=e.ref("gte"),B=e.ref(""),$=e.ref(["",""]);e.watch(()=>l.visible,F=>{if(!F)return;const T=l.modelValue;u.value==="text"?c.value=T??"":u.value==="select"?w.value=Array.isArray(T)?[...T]:T?[T]:[]:u.value==="number-range"?(m.value=T?.min??"",C.value=T?.max??""):u.value==="date"&&(b.value=T?.op??"gte",B.value=T?.val??"",$.value=T?.op==="between"?[T?.start??"",T?.end??""]:["",""])});const N=e.computed(()=>l.column.dicData??[]),i=e.computed(()=>{const F=l.modelValue;return F==null||F===""||Array.isArray(F)&&F.length===0?!1:typeof F=="object"&&!Array.isArray(F)?"op"in F?F.op==="between"?!!(F.start||F.end):!!F.val:F.min!==""||F.max!=="":!0});D({isActive:i});const v=()=>{let F;if(u.value==="text")F=c.value.trim()||null;else if(u.value==="select")F=w.value.length?[...w.value]:null;else if(u.value==="number-range")F=m.value!==""||C.value!==""?{min:m.value,max:C.value}:null;else if(u.value==="date"){const T=b.value;if(T==="between"){const[O,Y]=$.value;F=O||Y?{op:T,start:O,end:Y}:null}else F=B.value?{op:T,val:B.value}:null}d("confirm",F),d("update:visible",!1)},x=()=>{c.value="",w.value=[],m.value="",C.value="",b.value="gte",B.value="",$.value=["",""],d("reset"),d("update:visible",!1)};return(F,T)=>{const O=e.resolveComponent("el-input"),Y=e.resolveComponent("el-checkbox"),H=e.resolveComponent("el-checkbox-group"),z=e.resolveComponent("el-option"),G=e.resolveComponent("el-select"),Q=e.resolveComponent("el-date-picker"),le=e.resolveComponent("el-button");return e.openBlock(),e.createElementBlock("div",{class:"crud-filter-panel",onClick:T[7]||(T[7]=e.withModifiers(()=>{},["stop"]))},[u.value==="text"?(e.openBlock(),e.createBlock(O,{key:0,modelValue:c.value,"onUpdate:modelValue":T[0]||(T[0]=j=>c.value=j),placeholder:t.column.filterPlaceholder||`筛选${t.column.label}`,size:"small",onKeyup:e.withKeys(v,["enter"])},null,8,["modelValue","placeholder"])):u.value==="select"?(e.openBlock(),e.createElementBlock("div",rl,[e.createVNode(H,{modelValue:w.value,"onUpdate:modelValue":T[1]||(T[1]=j=>w.value=j)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(N.value,j=>(e.openBlock(),e.createBlock(Y,{key:j.value,label:j.value,class:"filter-checkbox"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(j.label),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"]),N.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",il,"暂无选项"))])):u.value==="number-range"?(e.openBlock(),e.createElementBlock("div",sl,[e.createVNode(O,{modelValue:m.value,"onUpdate:modelValue":T[2]||(T[2]=j=>m.value=j),placeholder:"最小值",size:"small",type:"number"},null,8,["modelValue"]),T[8]||(T[8]=e.createElementVNode("span",{class:"range-sep"},"—",-1)),e.createVNode(O,{modelValue:C.value,"onUpdate:modelValue":T[3]||(T[3]=j=>C.value=j),placeholder:"最大值",size:"small",type:"number"},null,8,["modelValue"])])):u.value==="date"?(e.openBlock(),e.createElementBlock("div",cl,[e.createVNode(G,{modelValue:b.value,"onUpdate:modelValue":T[4]||(T[4]=j=>b.value=j),size:"small",style:{width:"100%","margin-bottom":"8px"},teleported:!1},{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(h,j=>e.createVNode(z,{key:j.value,label:j.label,value:j.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"]),b.value==="between"?(e.openBlock(),e.createBlock(Q,{key:0,modelValue:$.value,"onUpdate:modelValue":T[5]||(T[5]=j=>$.value=j),type:"daterange",size:"small",style:{width:"100%"},"range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":t.column.filterDateFormat||"YYYY-MM-DD",teleported:!1},null,8,["modelValue","value-format"])):(e.openBlock(),e.createBlock(Q,{key:1,modelValue:B.value,"onUpdate:modelValue":T[6]||(T[6]=j=>B.value=j),type:"date",size:"small",style:{width:"100%"},placeholder:t.column.filterPlaceholder||"选择日期","value-format":t.column.filterDateFormat||"YYYY-MM-DD",teleported:!1},null,8,["modelValue","placeholder","value-format"]))])):e.createCommentVNode("",!0),e.createElementVNode("div",ul,[e.createVNode(le,{size:"small",onClick:x},{default:e.withCtx(()=>[...T[9]||(T[9]=[e.createTextVNode("重置",-1)])]),_:1}),e.createVNode(le,{size:"small",type:"primary",onClick:v},{default:e.withCtx(()=>[...T[10]||(T[10]=[e.createTextVNode("确认",-1)])]),_:1})])])}}}),ml=oe(dl,[["__scopeId","data-v-a965fc78"]]),fl=e.defineComponent({name:"TextEllipsis",__name:"text-ellipsis",props:{text:{default:""},lines:{default:1}},setup(t,{expose:D}){const p=t,l=e.ref(),d=e.ref(!1);let u=null,c=null;const w=()=>{if(l.value)if(p.lines===1){const h=l.value.scrollWidth>l.value.clientWidth;d.value=h}else{const h=l.value.scrollHeight>l.value.clientHeight;d.value=h}},m=()=>{w()},C=()=>{c&&clearTimeout(c),c=window.setTimeout(()=>{d.value=!1},150)};return typeof ResizeObserver<"u"&&(u=new ResizeObserver(C)),e.watch(l,(h,b)=>{b&&u&&u.unobserve(b),h&&u&&u.observe(h)},{immediate:!0}),e.watch(()=>p.text,()=>{d.value=!1}),e.onUnmounted(()=>{u&&(u.disconnect(),u=null),c&&(clearTimeout(c),c=null)}),D({checkOverflow:w}),(h,b)=>{const B=e.resolveComponent("el-tooltip");return e.openBlock(),e.createBlock(B,{content:String(t.text),placement:"top","show-after":500,disabled:!d.value},{default:e.withCtx(()=>[e.createElementVNode("div",{ref_key:"textRef",ref:l,class:e.normalizeClass(["text-ellipsis",{"single-line":t.lines===1}]),style:e.normalizeStyle(t.lines>1?{WebkitLineClamp:t.lines}:{}),onMouseenter:m},e.toDisplayString(t.text),39)]),_:1},8,["content","disabled"])}}}),pl=oe(fl,[["__scopeId","data-v-97993a28"]]),Ne=be(pl),vl={key:1,class:"crud-header-filter"},hl={class:"col-label"},gl={key:2},yl=e.defineComponent({name:"CrudTableColumn",__name:"crud-table-column",props:{column:{}},setup(t){const D=t,p=e.inject("crud:isRowEditing",()=>!0),l=e.inject("crud:formatCellValue",x=>x),d=e.inject("crud:setEditableCellRef",()=>{}),u=e.inject("crud:handleCellChange",()=>{}),c=e.inject("crud:getRowKey",x=>x.id),w=e.inject("crud:slots",{}),m=e.inject("crud:filterValues",{}),C=e.inject("crud:setFilter",()=>{}),h=e.inject("crud:resetFilter",()=>{}),b=e.defineComponent({props:{fn:Function,slotProps:Object},setup:x=>()=>x.fn?x.fn(x.slotProps??{}):null}),B=e.ref(!1),$=e.computed(()=>m[D.column.prop]),N=e.computed(()=>{const x=$.value;return x==null||x===""||Array.isArray(x)&&x.length===0?!1:typeof x=="object"&&!Array.isArray(x)?x.min!==""&&x.min!==void 0&&x.min!==null||x.max!==""&&x.max!==void 0&&x.max!==null:!0}),i=x=>{C(D.column.prop,x),B.value=!1},v=()=>{h(D.column.prop),B.value=!1};return(x,F)=>{const T=e.resolveComponent("CrudTableColumn",!0),O=e.resolveComponent("el-table-column"),Y=e.resolveComponent("el-icon"),H=e.resolveComponent("el-popover");return t.column.children&&t.column.children.length?(e.openBlock(),e.createBlock(O,{key:0,label:t.column.label,align:t.column.align||"center","header-align":t.column.headerAlign||t.column.align||"center",fixed:t.column.fixed,"class-name":t.column.className,"label-class-name":t.column.labelClassName},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.column.children,z=>(e.openBlock(),e.createBlock(T,{key:(z.prop||"")+z.label,column:z},null,8,["column"]))),128))]),_:1},8,["label","align","header-align","fixed","class-name","label-class-name"])):(e.openBlock(),e.createBlock(O,{key:1,prop:t.column.prop,label:t.column.label,width:t.column.width,"min-width":t.column.minWidth,fixed:t.column.fixed,align:t.column.align||"left","header-align":t.column.headerAlign||t.column.align||"left",sortable:t.column.sortable,"sort-method":t.column.sortMethod,resizable:t.column.resizable,"show-overflow-tooltip":t.column.overHidden!==!0&&t.column.showOverflowTooltip,"class-name":t.column.className,"label-class-name":t.column.labelClassName},{default:e.withCtx(({row:z,column:G,$index:Q})=>[e.unref(w)[t.column.prop]?(e.openBlock(),e.createBlock(e.unref(b),{key:0,fn:e.unref(w)[t.column.prop],"slot-props":{row:z,column:G,index:Q,value:z[t.column.prop]}},null,8,["fn","slot-props"])):t.column.editable&&e.unref(p)(z)?(e.openBlock(),e.createBlock(al,{key:1,column:t.column,row:z,ref:le=>e.unref(d)(e.unref(c)(z),t.column.prop,le),onChange:e.unref(u)},null,8,["column","row","onChange"])):t.column.overHidden?(e.openBlock(),e.createBlock(e.unref(Ne),{key:2,text:String(e.unref(l)(z[t.column.prop],t.column)??"")},null,8,["text"])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[e.createTextVNode(e.toDisplayString(t.column.formatter?t.column.formatter(z,G,z[t.column.prop],Q):e.unref(l)(z[t.column.prop],t.column)),1)],64))]),header:e.withCtx(({column:z,$index:G})=>[e.unref(w)[t.column.prop+"-header"]?(e.openBlock(),e.createBlock(e.unref(b),{key:0,fn:e.unref(w)[t.column.prop+"-header"],"slot-props":{column:z,index:G}},null,8,["fn","slot-props"])):t.column.columnFilter?(e.openBlock(),e.createElementBlock("div",vl,[e.createElementVNode("span",hl,e.toDisplayString(t.column.label),1),e.createVNode(H,{visible:B.value,"onUpdate:visible":F[2]||(F[2]=Q=>B.value=Q),trigger:"manual",placement:"bottom-start",width:"auto","popper-class":"crud-filter-popover"},{reference:e.withCtx(()=>[e.createVNode(Y,{class:e.normalizeClass(["filter-icon",{"is-active":N.value}]),onClick:F[0]||(F[0]=e.withModifiers(Q=>B.value=!B.value,["stop"]))},{default:e.withCtx(()=>[...F[3]||(F[3]=[e.createElementVNode("svg",{viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14"},[e.createElementVNode("path",{d:"M384 800h256v-85.333H384V800zM128 224v85.333h768V224H128z m106.667 341.333h554.667V480H234.667v85.333z",fill:"currentColor"})],-1)])]),_:1},8,["class"])]),default:e.withCtx(()=>[e.createVNode(ml,{column:t.column,"model-value":$.value,visible:B.value,onConfirm:i,onReset:v,"onUpdate:visible":F[1]||(F[1]=Q=>B.value=Q)},null,8,["column","model-value","visible"])]),_:1},8,["visible"])])):(e.openBlock(),e.createElementBlock("span",gl,e.toDisplayString(t.column.label),1))]),_:1},8,["prop","label","width","min-width","fixed","align","header-align","sortable","sort-method","resizable","show-overflow-tooltip","class-name","label-class-name"]))}}}),bl=oe(yl,[["__scopeId","data-v-70ec5ca2"]]),kl={class:"ctx-menu-list"},Cl={key:0,class:"ctx-menu-divider"},wl=["onClick"],xl={key:0,class:"ctx-menu-icon"},Bl={class:"ctx-menu-label"},Vl=e.defineComponent({__name:"crud-context-menu",props:{visible:{type:Boolean},x:{},y:{},row:{},index:{},items:{}},emits:["close"],setup(t,{emit:D}){const p=t,l=D,d=e.ref(null),u=e.ref(p.x),c=e.ref(p.y),w=e.computed(()=>p.items.filter(i=>typeof i.hidden=="function"?!i.hidden(p.row,p.index):!i.hidden)),m=i=>typeof i.disabled=="function"?i.disabled(p.row,p.index):!!i.disabled,C=i=>{const v=kt[i];return v?e.h(v):null},h=i=>{m(i)||(i.onClick?.(p.row,p.index),l("close"))},b=i=>{d.value&&!d.value.contains(i.target)&&l("close")},B=i=>{i.key==="Escape"&&l("close")},$=()=>l("close"),N=()=>{e.nextTick(()=>{if(!d.value)return;const i=d.value.getBoundingClientRect(),v=window.innerWidth,x=window.innerHeight;u.value=i.right>v?p.x-i.width:p.x,c.value=i.bottom>x?p.y-i.height:p.y})};return e.watch(()=>p.visible,i=>{i&&(u.value=p.x,c.value=p.y,N())}),e.onMounted(()=>{document.addEventListener("mousedown",b,!0),document.addEventListener("keydown",B),document.addEventListener("scroll",$,!0),N()}),e.onUnmounted(()=>{document.removeEventListener("mousedown",b,!0),document.removeEventListener("keydown",B),document.removeEventListener("scroll",$,!0)}),(i,v)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"ctx-menu-fade"},{default:e.withCtx(()=>[t.visible?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"menuRef",ref:d,class:"crud-context-menu",style:e.normalizeStyle({left:u.value+"px",top:c.value+"px"}),onContextmenu:v[0]||(v[0]=e.withModifiers(()=>{},["prevent"]))},[e.createElementVNode("ul",kl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(w.value,(x,F)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:F},[x.divided?(e.openBlock(),e.createElementBlock("li",Cl)):e.createCommentVNode("",!0),e.createElementVNode("li",{class:e.normalizeClass(["ctx-menu-item",{"is-disabled":m(x)}]),onClick:T=>h(x)},[x.icon?(e.openBlock(),e.createElementBlock("span",xl,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(C(x.icon))))])):e.createCommentVNode("",!0),e.createElementVNode("span",Bl,e.toDisplayString(x.label),1)],10,wl)],64))),128))])],36)):e.createCommentVNode("",!0)]),_:1})]))}}),Sl=oe(Vl,[["__scopeId","data-v-ec6cfc86"]]),Nl={class:"rdxx-crud"},Tl={key:0,class:"crud-title-section"},El={key:0,class:"crud-search"},Dl={class:"search-body"},zl={class:"crud-table"},$l={class:"table-actions"},Fl={key:1,class:"crud-pagination"},Rl={class:"pagination-info"},Pl={class:"total-info"},Ml={class:"dialog-body"},Al={class:"dialog-footer"},Ol=e.defineComponent({name:"RdxxCrud",__name:"crud",props:{option:{default:()=>({})},data:{default:()=>[]},search:{default:()=>({})},page:{default:()=>({})},tableLoading:{type:Boolean,default:!1},permission:{},editingRowKey:{}},emits:["on-load","row-save","row-update","row-del","search-change","search-reset","refresh-change","size-change","current-change","selection-change","sort-change","filter-change","row-click","row-dblclick","row-contextmenu","cell-click","cell-change","update:page","update:search"],setup(t,{expose:D,emit:p}){const l=t,d=p,{tableRef:u,formRef:c,searchForm:w,currentForm:m,selectedRows:C,tableLoading:h,dialogVisible:b,formLoading:B,currentMode:$,searchVisible:N,currentIndex:i,pageOption:v,getFormColumns:x,getSearchColumns:F,initSearchForm:T,rowAdd:O,rowEdit:Y,rowView:H,rowDelete:z,cancelForm:G,searchSubmit:Q,searchReset:le,refreshTable:j,handleSizeChange:ie,handleCurrentChange:de,handleSelectionChange:y,handleSortChange:V,toggleSearch:S,formatDicValue:I}=Kt(),{checkPermission:r}=Wt(l.permission),o=e.computed(()=>l.option||{}),f=e.ref(void 0),k=e.computed(()=>l.option?.column?.some(n=>n.search===!0)||!1),E=e.computed(()=>F(l.option?.column||[])),P=e.computed(()=>ue.value.filter(n=>n.visible&&n.display!==!1).sort((n,s)=>n.order-s.order)),K=n=>n.flatMap(s=>s.children?.length?K(s.children):[s]),q=e.computed(()=>{const n=new Set(ue.value.filter(a=>a.visible&&a.display!==!1).map(a=>a.prop)),s=a=>a.flatMap(g=>{if(g.children?.length){const U=s(g.children);return U.length?[{...g,children:U}]:[]}return n.has(g.prop)?[g]:[]});return s(l.option?.column||[])}),ne=e.computed(()=>x(l.option?.column||[],$.value)),X=e.computed(()=>({column:Fe(E.value,"search"),labelWidth:(o.value?.searchLabelWidth||50)+"px",labelPosition:o.value?.searchLabelPosition||"left",size:o.value?.size,gutter:o.value?.searchGutter||20,defaultWidth:"250px",layout:"flex",menuBtn:!0,menuPosition:o.value?.searchMenuPosition||"left",submitBtn:o.value?.searchBtn!==!1,submitText:o.value?.searchBtnText||"搜索",emptyBtn:o.value?.emptyBtn!==!1,emptyText:o.value?.emptyBtnText||"重置"})),He=e.computed(()=>({column:Fe(ne.value,$.value),labelWidth:(o.value?.labelWidth||100)+"px",labelPosition:o.value?.labelPosition||"right",size:o.value?.size,gutter:20,defaultWidth:"250px",defaultSpan:12,menuBtn:!1})),Ke=e.computed(()=>{const n=l.option||{},s=n.height==="auto"?f.value:n.height;return{border:n.border,stripe:n.stripe,showHeader:n.showHeader!==!1,height:s,maxHeight:n.maxHeight,fit:n.fit!==!1,highlightCurrentRow:n.highlightCurrentRow,emptyText:n.emptyText||"暂无数据",size:n.size,rowKey:n.rowKey||"id",defaultExpandAll:n.defaultExpandAll,showSummary:n.showSummary,scrollbarAlwaysOn:n.scrollbarAlwaysOn!==!1}});e.watch(()=>l.option?.column,n=>{n&&Re()},{deep:!0}),e.watch(N,()=>{e.nextTick(()=>{ke()})});const ke=()=>{l.option?.height==="auto"&&e.nextTick(()=>{const n=u.value?.$el?.parentElement;if(!n)return;const s=n.closest(".rdxx-crud");if(!s)return;let a=0;a+=40;const g=s.querySelector(".crud-title-section");g&&(a+=g.offsetHeight,a+=20);const U=s.querySelector(".crud-search");U&&N.value&&(a+=U.offsetHeight,a+=16);const R=s.querySelector(".crud-toolbar");R&&(a+=R.offsetHeight,a+=16),a+=16;const A=s.querySelector(".crud-pagination");A&&(a+=A.offsetHeight);const Z=s.offsetHeight-a;f.value=Z>200?Z:200})};let me=null;const ae=()=>{console.log("[子组件] loadData 调用,当前 pageOption:",{...v});const n={...v},s={...w};if(l.option?.onLoad){h.value=!0;const a=g=>{g!==void 0&&(v.total=g),h.value=!1};l.option.onLoad(n,s,a)}else d("on-load",n,s,g=>{g!==void 0&&(v.total=g),h.value=!1})};e.onMounted(()=>{l.option?.column&&(T(l.option.column),Re()),ke(),l.option?.height==="auto"&&e.nextTick(()=>{const n=u.value?.$el?.closest(".rdxx-crud");n&&typeof ResizeObserver<"u"&&(me=new ResizeObserver(()=>{ke()}),me.observe(n))}),ae()}),e.onUnmounted(()=>{me&&(me.disconnect(),me=null)});const Te=()=>{O(l.option?.column||[])},Ce=(n,s)=>{Y(n,s,l.option?.column||[])},we=(n,s)=>{H(n,s,l.option?.column||[])},xe=async(n,s)=>{(await z(n,s)).confirm&&d("row-del",n,s)},We=async()=>{if(c.value)try{await c.value.validate(),B.value=!0;const n=()=>{b.value=!1,B.value=!1,te.ElMessage.success(`${$.value==="add"?"新增":"修改"}成功`)},s=a=>{B.value=a};$.value==="add"?d("row-save",{...m},n,s):$.value==="edit"&&d("row-update",{...m},i.value,n,s)}catch{}},qe=()=>{G()},Ee=()=>{v.currentPage=1,ae(),Q(d)},De=()=>{v.currentPage=1,le(d,l.option?.column||[]),ae()},ze=()=>{ae(),j(d)},Ye=n=>{v.pageSize=n,v.currentPage=1,ie(n,d),ae()},Qe=n=>{de(n,d),ae()},Je=n=>{y(n,d)},ce=e.ref({visible:!1,x:0,y:0,row:null,index:-1}),Ge=e.computed(()=>{const n=l.option?.contextMenu;if(Array.isArray(n))return n;const s=[];return l.option?.editBtn!==!1&&s.push({label:l.option?.editBtnText||"编辑",icon:"Edit",hidden:(a,g)=>!r("editBtn",a,g),onClick:(a,g)=>Ce(a,g)}),l.option?.viewBtn===!0&&s.push({label:l.option?.viewBtnText||"查看",icon:"View",hidden:(a,g)=>!r("viewBtn",a,g),onClick:(a,g)=>we(a,g)}),l.option?.delBtn!==!1&&s.push({label:l.option?.delBtnText||"删除",icon:"Delete",divided:s.length>0,hidden:(a,g)=>!r("delBtn",a,g),onClick:(a,g)=>xe(a,g)}),s}),Xe=(n,s,a)=>{if(!l.option?.contextMenu)return;a.preventDefault();const U=(l.data||[]).indexOf(n);ce.value={visible:!0,x:a.clientX,y:a.clientY,row:n,index:U},d("row-contextmenu",n,U,a)},Ze=()=>{ce.value.visible=!1},se=e.ref([]),_e=n=>{const{prop:s,order:a}=n;if(!s)return;const U=l.option?.column?.find(A=>A.prop===s)?.sortable==="custom";if(l.option?.multiSort||!1){const A=se.value.findIndex(L=>L.prop===s);a?A>=0&&se.value[A]?se.value[A].order=a:se.value.push({prop:s,order:a}):A>=0&&se.value.splice(A,1)}else a?se.value=[{prop:s,order:a}]:se.value=[];V(n,d),U&&ae()},et=({column:n})=>{let s="";if(n.property){const a=se.value.find(g=>g.prop===n.property);a&&(s+=` ${a.order}`)}return s},tt=(n,s,a,g)=>{g&&(n[s]=a),d("cell-change",n,s,a,g)},Be=new Map,lt=(n,s,a)=>{const g=`${n}-${s}`;a?Be.set(g,a):Be.delete(g)},ot=async n=>{const s=P.value.filter(U=>U.editable&&U.rules);if(s.length===0)return!0;const a=Ve(n),g=[];if(s.forEach(U=>{const R=`${a}-${U.prop}`,A=Be.get(R);A&&A.validate&&g.push({column:U,cell:A})}),g.length>0){const U=await Promise.all(g.map(async({column:A,cell:L})=>{const Z=await L.validate();return{valid:Z.valid,value:Z.value,prop:A.prop}})),R=U.every(A=>A.valid);return R&&U.forEach(A=>{n[A.prop]=A.value}),R}return!0},nt=()=>{G()},at=()=>{const n=l.option||{};switch($.value){case"add":return n.addTitle||"新增";case"edit":return n.editTitle||"编辑";case"view":return n.viewTitle||"查看";default:return"表单"}},Ve=n=>{const s=l.option?.rowKey||"id";return n[s]||n._rowId||JSON.stringify(n)},rt=n=>l.editingRowKey?l.editingRowKey(n):!0,$e=(n,s)=>s.dicData?I(n,s.dicData):n,Fe=(n,s)=>n.map(a=>{const g=L=>L?["number","input","select","textarea","password","radio","checkbox","upload"].includes(L)?L:{time:"input",date:"input",datetime:"input",switch:"checkbox",slider:"number",rate:"number"}[L]||"input":"input",R=((L,Z)=>{const M={};for(const W in L)if(W.startsWith("search")){const _=W.replace(/^search/,""),ee=_.charAt(0).toLowerCase()+_.slice(1);Z==="search"&&(M[ee]=L[W])}return M})(a,s);return{prop:a.prop,label:a.label,type:g(a.type),placeholder:a.placeholder,clearable:a.clearable,disabled:it(a,s),readonly:a.readonly,span:s==="search"?void 0:a.span||void 0,offset:a.offset,labelWidth:a.labelWidth,rules:s!=="search"&&s!=="view"?a.rules:void 0,maxlength:a.maxlength,rows:a.rows,dicData:a.dicData,dicUrl:a.dicUrl,dicCode:a.dicCode,dicQuery:a.dicQuery,dicMethod:a.dicMethod,multiple:a.multiple,filterable:a.filterable,min:a.min,max:a.max,prepend:a.prepend,append:a.append,prefixIcon:a.prefixIcon,suffixIcon:a.suffixIcon,showPassword:a.showPassword,autosize:a.autosize,action:a.action,accept:a.accept,limit:a.limit,fileSize:a.fileSize,value:a.value,...R}}),it=(n,s)=>!!(s==="view"||n.disabled||s==="add"&&n.addDisabled||s==="edit"&&n.editDisabled||s==="view"&&n.viewDisabled),ue=e.ref([]),Se=()=>{if(l.option?.column){const n=K(l.option.column);ue.value=n.map((s,a)=>({...s,visible:s.display!==!1,order:a}))}},st=()=>{Se(),te.ElMessage.success("列设置已重置")},Re=()=>{const s=l.option?.storageKey||"default",a=localStorage.getItem(`crud-column-settings-${s}`);if(a)try{const g=JSON.parse(a),U=K(l.option?.column||[]);ue.value=U.map((R,A)=>{const L=g.find(Z=>Z.prop===R.prop);return{...R,visible:L?L.visible:R.display!==!1,order:L?L.order:A,fixed:L?.fixed||R.fixed}}).sort((R,A)=>R.order-A.order)}catch(g){console.warn("加载列设置失败,使用默认设置",g),Se()}else Se()},ct=n=>{v.total=n},re=e.ref({}),ut=(n,s)=>{s==null?delete re.value[n]:re.value[n]=s,K(l.option?.column||[]).find(g=>g.prop===n)?.filterMode==="server"&&(d("filter-change",{...re.value}),v.currentPage=1,ae())},dt=n=>{delete re.value[n],re.value={...re.value},K(l.option?.column||[]).find(a=>a.prop===n)?.filterMode==="server"&&(d("filter-change",{...re.value}),v.currentPage=1,ae())},mt=e.computed(()=>{const n=l.data||[],s=Object.entries(re.value).filter(([,g])=>g==null||g===""||Array.isArray(g)&&g.length===0?!1:typeof g=="object"&&!Array.isArray(g)?g.min!==""&&g.min!=null||g.max!==""&&g.max!=null:!0);if(!s.length)return n;const a=new Map(K(l.option?.column||[]).map(g=>[g.prop,g]));return n.filter(g=>s.every(([U,R])=>{const A=a.get(U);if(!A||A.filterMode==="server")return!0;const L=g[U],Z=String(A.formatter?A.formatter(g,null,L,0):(A.dicData?$e(L,A):L)??"").toLowerCase();if(typeof R=="string")return Z.includes(R.toLowerCase());if(Array.isArray(R))return R.some(M=>String(M)===String(L));if(typeof R=="object"){if("op"in R){const ee=new Date(String(L));if(isNaN(ee.getTime()))return!1;const{op:fe}=R;if(fe==="between"){const pt=R.start?new Date(R.start).getTime():-1/0,vt=R.end?new Date(R.end).getTime()+86399999:1/0;return ee.getTime()>=pt&&ee.getTime()<=vt}const he=new Date(R.val).getTime();return fe==="gt"?ee.getTime()>he:fe==="gte"?ee.getTime()>=he:fe==="lt"?ee.getTime()<he:fe==="lte"?ee.getTime()<=he+86399999:!0}const M=Number(L);if(isNaN(M))return!1;const W=R.min===""||R.min==null||M>=Number(R.min),_=R.max===""||R.max==null||M<=Number(R.max);return W&&_}return!0}))}),ft=e.useSlots();return e.provide("crud:isRowEditing",rt),e.provide("crud:formatCellValue",$e),e.provide("crud:setEditableCellRef",lt),e.provide("crud:handleCellChange",tt),e.provide("crud:getRowKey",Ve),e.provide("crud:slots",ft),e.provide("crud:filterValues",re.value),e.provide("crud:setFilter",ut),e.provide("crud:resetFilter",dt),D({tableRef:u,formRef:c,searchForm:w,currentForm:m,selectedRows:C,refresh:ze,search:Ee,resetSearch:De,add:Te,edit:Ce,view:we,delete:xe,updateTotal:ct,validateEditableFields:ot}),(n,s)=>{const a=e.resolveComponent("el-table-column"),g=e.resolveComponent("el-icon"),U=e.resolveComponent("el-button"),R=e.resolveComponent("el-table"),A=e.resolveComponent("el-pagination"),L=e.resolveComponent("el-dialog"),Z=e.resolveDirective("loading");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",Nl,[o.value?.title?(e.openBlock(),e.createElementBlock("div",Tl,[e.createElementVNode("h3",null,e.toDisplayString(o.value.title),1)])):e.createCommentVNode("",!0),e.createVNode(e.Transition,{name:"search-slide"},{default:e.withCtx(()=>[k.value&&e.unref(N)?(e.openBlock(),e.createElementBlock("div",El,[e.createElementVNode("div",Dl,[e.createVNode(e.unref(ye),{modelValue:e.unref(w),"onUpdate:modelValue":s[0]||(s[0]=M=>e.isRef(w)?w.value=M:null),option:X.value,onSubmit:Ee,onReset:De},null,8,["modelValue","option"])])])):e.createCommentVNode("",!0)]),_:1}),e.createVNode(ll,{option:l.option,"has-search-column":k.value,"search-visible":e.unref(N),"table-ref":e.unref(u),"column-settings":ue.value,"onUpdate:columnSettings":s[1]||(s[1]=M=>ue.value=M),"check-permission":e.unref(r),onAdd:Te,onToggleSearch:e.unref(S),onRefresh:ze,onResetColumns:st},e.createSlots({_:2},[n.$slots["toolbar-left"]?{name:"toolbar-left",fn:e.withCtx(()=>[e.renderSlot(n.$slots,"toolbar-left",{},void 0,!0)]),key:"0"}:void 0,n.$slots["toolbar-right"]?{name:"toolbar-right",fn:e.withCtx(()=>[e.renderSlot(n.$slots,"toolbar-right",{},void 0,!0)]),key:"1"}:void 0]),1032,["option","has-search-column","search-visible","table-ref","column-settings","check-permission","onToggleSearch"]),e.createElementVNode("div",zl,[e.withDirectives((e.openBlock(),e.createBlock(R,e.mergeProps({ref_key:"tableRef",ref:u,data:mt.value},Ke.value,{stripe:"",border:o.value?.border!==!1,size:o.value?.size||"default","header-cell-style":{backgroundColor:"#f5f7fa",color:"#606266",fontWeight:"bold"},"header-cell-class-name":et,"empty-text":o.value?.emptyText||"暂无数据","row-key":Ve,"span-method":o.value?.spanMethod,onSelectionChange:Je,onSortChange:_e,onRowContextmenu:Xe,onRowClick:s[2]||(s[2]=(M,W,_)=>d("row-click",M,W,_)),onRowDblclick:s[3]||(s[3]=(M,W,_)=>d("row-dblclick",M,W,_)),onCellClick:s[4]||(s[4]=(M,W,_,ee)=>d("cell-click",M,W,_,ee))}),{default:e.withCtx(()=>[o.value?.selection?(e.openBlock(),e.createBlock(a,{key:0,type:"selection",width:o.value?.selectionWidth||50,fixed:o.value?.selectionFixed===!0?"left":o.value?.selectionFixed,"class-name":o.value?.selectionClassName,"label-class-name":o.value?.selectionLabelClassName,selectable:o.value?.selectable},null,8,["width","fixed","class-name","label-class-name","selectable"])):e.createCommentVNode("",!0),o.value?.index?(e.openBlock(),e.createBlock(a,{key:1,type:"index",label:"序号",width:o.value?.indexWidth||55,fixed:o.value?.indexFixed===!0?"left":o.value?.indexFixed,align:"center","class-name":o.value?.indexClassName,"label-class-name":o.value?.indexLabelClassName},null,8,["width","fixed","class-name","label-class-name"])):e.createCommentVNode("",!0),o.value?.expand?(e.openBlock(),e.createBlock(a,{key:2,type:"expand",width:o.value?.expandWidth||50,fixed:o.value?.expandFixed===!0?"left":o.value?.expandFixed,"class-name":o.value?.expandClassName,"label-class-name":o.value?.expandLabelClassName},{default:e.withCtx(({row:M,$index:W})=>[e.renderSlot(n.$slots,"expand",{row:M,index:W},void 0,!0)]),_:3},8,["width","fixed","class-name","label-class-name"])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(q.value,M=>(e.openBlock(),e.createBlock(bl,{key:(M.prop||"")+M.label,column:M},null,8,["column"]))),128)),o.value?.menu!==!1?(e.openBlock(),e.createBlock(a,{key:3,label:o.value?.menuTitle||"操作",width:o.value?.menuWidth||220,fixed:o.value?.menuFixed===!0?"right":o.value?.menuFixed,align:o.value?.menuAlign||"center","header-align":o.value?.menuHeaderAlign||o.value?.menuAlign||"center","class-name":o.value?.menuClassName,"label-class-name":o.value?.menuLabelClassName},{default:e.withCtx(({row:M,$index:W})=>[e.renderSlot(n.$slots,"menu",{row:M,index:W},()=>[e.createElementVNode("div",$l,[o.value?.editBtn!==!1&&e.unref(r)("editBtn",M,W)?(e.openBlock(),e.createBlock(U,{key:0,type:"primary",link:o.value?.menuType!=="button",size:"small",icon:o.value?.editBtnIcon,onClick:_=>Ce(M,W)},{default:e.withCtx(()=>[o.value?.editBtnIcon?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(g,{key:0},{default:e.withCtx(()=>[e.createVNode(e.unref(J.Edit))]),_:1})),e.createTextVNode(" "+e.toDisplayString(o.value?.editBtnText||"编辑"),1)]),_:1},8,["link","icon","onClick"])):e.createCommentVNode("",!0),o.value?.viewBtn===!0&&e.unref(r)("viewBtn",M,W)?(e.openBlock(),e.createBlock(U,{key:1,type:"info",link:o.value?.menuType!=="button",size:"small",icon:o.value?.viewBtnIcon,onClick:_=>we(M,W)},{default:e.withCtx(()=>[o.value?.viewBtnIcon?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(g,{key:0},{default:e.withCtx(()=>[e.createVNode(e.unref(J.View))]),_:1})),e.createTextVNode(" "+e.toDisplayString(o.value?.viewBtnText||"查看"),1)]),_:1},8,["link","icon","onClick"])):e.createCommentVNode("",!0),o.value?.delBtn!==!1&&e.unref(r)("delBtn",M,W)?(e.openBlock(),e.createBlock(U,{key:2,type:"danger",link:o.value?.menuType!=="button",size:"small",icon:o.value?.delBtnIcon,onClick:_=>xe(M,W)},{default:e.withCtx(()=>[o.value?.delBtnIcon?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(g,{key:0},{default:e.withCtx(()=>[e.createVNode(e.unref(J.Delete))]),_:1})),e.createTextVNode(" "+e.toDisplayString(o.value?.delBtnText||"删除"),1)]),_:1},8,["link","icon","onClick"])):e.createCommentVNode("",!0)])],!0)]),_:3},8,["label","width","fixed","align","header-align","class-name","label-class-name"])):e.createCommentVNode("",!0)]),_:3},16,["data","border","size","empty-text","span-method"])),[[Z,e.unref(h)]])]),o.value?.page!==!1&&(e.unref(v).total||0)>0?(e.openBlock(),e.createElementBlock("div",Fl,[e.createElementVNode("div",Rl,[e.createElementVNode("span",Pl,"共 "+e.toDisplayString(e.unref(v).total)+" 条记录",1)]),e.createVNode(A,{"current-page":e.unref(v).currentPage,"page-size":e.unref(v).pageSize,"page-sizes":e.unref(v).pageSizes||[10,20,50,100],layout:e.unref(v).layout||"sizes, prev, pager, next, jumper",total:e.unref(v).total,background:e.unref(v).background!==!1,"hide-on-single-page":e.unref(v).hideOnSinglePage,onSizeChange:Ye,onCurrentChange:Qe},null,8,["current-page","page-size","page-sizes","layout","total","background","hide-on-single-page"])])):e.createCommentVNode("",!0),e.createVNode(L,{modelValue:e.unref(b),"onUpdate:modelValue":s[6]||(s[6]=M=>e.isRef(b)?b.value=M:null),title:at(),width:o.value?.dialogWidth||"60%",fullscreen:o.value?.dialogFullscreen,"align-center":"","close-on-click-modal":o.value?.dialogClickModal!==!1,"close-on-press-escape":o.value?.dialogEscape!==!1,"show-close":o.value?.dialogCloseBtn!==!1,modal:o.value?.dialogModal!==!1,"custom-class":"crud-dialog"+(o.value?.dialogCustomClass||""),"destroy-on-close":!0,onClose:nt},{footer:e.withCtx(()=>[e.createElementVNode("div",Al,[e.createVNode(U,{size:"default",onClick:qe},{default:e.withCtx(()=>[e.createVNode(g,null,{default:e.withCtx(()=>[e.createVNode(e.unref(J.Close))]),_:1}),e.createTextVNode(" "+e.toDisplayString(o.value?.cancelBtnText||"取消"),1)]),_:1}),e.unref($)!=="view"?(e.openBlock(),e.createBlock(U,{key:0,type:"primary",size:"default",loading:e.unref(B),onClick:We},{default:e.withCtx(()=>[e.createVNode(g,null,{default:e.withCtx(()=>[e.createVNode(e.unref(J.Check))]),_:1}),e.createTextVNode(" "+e.toDisplayString(e.unref($)==="add"?o.value?.saveBtnText||"保存":o.value?.updateBtnText||"更新"),1)]),_:1},8,["loading"])):e.createCommentVNode("",!0)])]),default:e.withCtx(()=>[e.createElementVNode("div",Ml,[e.createVNode(e.unref(ye),{ref_key:"formRef",ref:c,modelValue:e.unref(m),"onUpdate:modelValue":s[5]||(s[5]=M=>e.isRef(m)?m.value=M:null),option:He.value,"menu-btn":!1},null,8,["modelValue","option"])])]),_:1},8,["modelValue","title","width","fullscreen","close-on-click-modal","close-on-press-escape","show-close","modal","custom-class"])]),o.value?.contextMenu?(e.openBlock(),e.createBlock(Sl,{key:0,visible:ce.value.visible,x:ce.value.x,y:ce.value.y,row:ce.value.row,index:ce.value.index,items:Ge.value,onClose:Ze},null,8,["visible","x","y","row","index","items"])):e.createCommentVNode("",!0)],64)}}}),Ul=oe(Ol,[["__scopeId","data-v-6a374536"]]),Le=be(Ul);function jl(t,D={}){const{initialValue:p=!1}=D,l=t!==void 0?e.ref(e.unref(t)):e.ref(e.toValue(p));return{state:l,toggle:()=>{l.value=!l.value},setTrue:()=>{l.value=!0},setFalse:()=>{l.value=!1},setValue:m=>{l.value=m}}}const Ll=[Oe,ye,Le,Ne],Ie=t=>{Ll.forEach(D=>t.use(D))},Il={install:Ie};exports.RdxxCrud=Le;exports.RdxxForm=ye;exports.RdxxUpload=Oe;exports.TextEllipsis=Ne;exports.default=Il;exports.install=Ie;exports.useToggle=jl;
@@ -0,0 +1 @@
1
+ @charset "UTF-8";.rdxx-upload[data-v-fa90c7b0]{width:100%}.rdxx-upload--picture-card .upload-card[data-v-fa90c7b0]{border:1px dashed var(--el-border-color-darker);border-radius:6px;cursor:pointer;position:relative;overflow:hidden;transition:var(--el-transition-duration-fast);width:148px;height:148px;display:flex;justify-content:center;align-items:center}.rdxx-upload--picture-card .upload-card[data-v-fa90c7b0]:hover{border-color:var(--el-color-primary)}.rdxx-upload--drag .upload-drag[data-v-fa90c7b0]{text-align:center;padding:40px 0}.rdxx-upload--drag .el-icon--upload[data-v-fa90c7b0]{font-size:67px;color:var(--el-text-color-placeholder);margin-bottom:16px}.rdxx-upload--drag .el-upload__text[data-v-fa90c7b0]{color:var(--el-text-color-regular)}.rdxx-upload--drag .el-upload__text em[data-v-fa90c7b0]{color:var(--el-color-primary);font-style:normal}.preview-content[data-v-fa90c7b0]{text-align:center}.file-info[data-v-fa90c7b0]{padding:20px;text-align:center;color:var(--el-text-color-regular)}.file-info .el-icon[data-v-fa90c7b0]{margin-bottom:10px;color:var(--el-text-color-placeholder)}[data-v-fa90c7b0] .el-upload-list__item:hover{background-color:var(--el-fill-color-light)}[data-v-fa90c7b0] .el-upload-list__item.is-success .el-upload-list__item-status-label{display:block}.form-field-wrapper[data-v-48d9efec]{display:contents}.rdxx-form .form-view-value[data-v-5c32c917]{display:inline-block;color:var(--el-text-color-primary);font-size:var(--el-font-size-base);line-height:32px;min-height:32px;word-break:break-all}.rdxx-form[data-v-5c32c917] .el-form-item{margin-bottom:22px}.rdxx-form[data-v-5c32c917] .el-form-item .el-form-item__content{display:flex;align-items:flex-end;line-height:32px;min-height:32px}.rdxx-form[data-v-5c32c917] .el-radio-group,.rdxx-form[data-v-5c32c917] .el-checkbox-group{width:auto!important}.rdxx-form[data-v-5c32c917] .el-button{height:32px;line-height:30px;vertical-align:bottom}.rdxx-form .form-menu-wrapper .form-menu-left[data-v-5c32c917]{text-align:left}.rdxx-form .form-menu-wrapper .form-menu-center[data-v-5c32c917]{text-align:center}.rdxx-form .form-menu-wrapper .form-menu-right[data-v-5c32c917]{text-align:right}.rdxx-form .form-menu-inline[data-v-5c32c917]{display:flex;align-items:flex-end;height:100%;padding-bottom:2px}.rdxx-form .form-menu-inline .form-menu-left[data-v-5c32c917],.rdxx-form .form-menu-inline .form-menu-center[data-v-5c32c917],.rdxx-form .form-menu-inline .form-menu-right[data-v-5c32c917]{display:flex;gap:8px;align-items:center;height:32px}.rdxx-form .form-menu-inline .form-menu-left[data-v-5c32c917]{justify-content:flex-start}.rdxx-form .form-menu-inline .form-menu-center[data-v-5c32c917]{justify-content:center}.rdxx-form .form-menu-inline .form-menu-right[data-v-5c32c917]{justify-content:flex-end}.rdxx-form .el-button+.el-button[data-v-5c32c917]{margin-left:12px}.rdxx-form .form-flex-container[data-v-5c32c917]{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end}.rdxx-form .form-flex-container .form-flex-item[data-v-5c32c917]{display:inline-flex;flex-shrink:0}.rdxx-form .form-flex-container .form-flex-item[data-v-5c32c917] .el-form-item{margin-bottom:0}.rdxx-form .form-flex-container .form-flex-item[data-v-5c32c917] .el-form-item .el-form-item__content{min-height:32px}.rdxx-form .form-flex-container .form-flex-item[data-v-5c32c917] .el-radio-group,.rdxx-form .form-flex-container .form-flex-item[data-v-5c32c917] .el-checkbox-group{width:auto!important}.rdxx-form .form-flex-container .form-flex-buttons[data-v-5c32c917]{display:flex;gap:8px;align-items:center;flex-shrink:0}.rdxx-form .form-flex-container .form-flex-buttons .el-button[data-v-5c32c917]{margin:0}.crud-toolbar[data-v-4c8630cd]{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.crud-toolbar .toolbar-left[data-v-4c8630cd]{display:flex;gap:8px;align-items:center}.crud-toolbar .toolbar-left .el-button[data-v-4c8630cd]{margin:0;width:28px;height:28px;border-radius:50%;font-weight:500;display:flex;align-items:center;justify-content:center}.crud-toolbar .toolbar-left .el-button.el-button--primary[data-v-4c8630cd]{background:#409eff;border-color:#409eff;color:#fff}.crud-toolbar .toolbar-left .el-button.el-button--primary[data-v-4c8630cd]:hover{background:#66b1ff;border-color:#66b1ff;transform:scale(1.05);transition:all .2s ease}.crud-toolbar .toolbar-left .el-button.el-button--primary[data-v-4c8630cd]:active{background:#3a8ee6;border-color:#3a8ee6;transform:scale(.95)}.crud-toolbar .toolbar-right[data-v-4c8630cd]{display:flex;gap:8px;align-items:center}.crud-toolbar .toolbar-right .el-button[data-v-4c8630cd]{margin:0;width:28px;height:28px;border-radius:50%;font-weight:500;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.crud-toolbar .toolbar-right .el-button.el-button--default[data-v-4c8630cd]:hover{color:#409eff;border-color:#c6e2ff;background-color:#ecf5ff;transform:scale(1.05)}.crud-toolbar .toolbar-right .el-button.el-button--info[data-v-4c8630cd]:hover{color:#73767a;border-color:#b1b3b8;background-color:#f4f4f5;transform:scale(1.05)}.crud-toolbar .toolbar-right .el-button[data-v-4c8630cd]:active{transform:scale(.95)}[data-v-4c8630cd] .el-popover.el-popper{padding:0;border-radius:8px;box-shadow:0 4px 12px #0000001a;max-height:400px;overflow:hidden}[data-v-4c8630cd] .el-popover.el-popper .column-setting-popover .column-setting-header{padding:16px;border-bottom:1px solid #f0f2f5}[data-v-4c8630cd] .el-popover.el-popper .column-setting-popover .column-setting-header .setting-title{font-size:16px;font-weight:600;color:#303133}[data-v-4c8630cd] .el-popover.el-popper .column-setting-popover .column-list{max-height:300px;overflow-y:auto;padding:8px 16px}[data-v-4c8630cd] .el-popover.el-popper .column-setting-popover .column-list .column-item{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid #f5f7fa;transition:all .3s ease;border-radius:4px}[data-v-4c8630cd] .el-popover.el-popper .column-setting-popover .column-list .column-item:last-child{border-bottom:none}[data-v-4c8630cd] .el-popover.el-popper .column-setting-popover .column-list .column-item:hover{background-color:#f5f7fa}[data-v-4c8630cd] .el-popover.el-popper .column-setting-popover .column-list .column-item.column-item-ghost{opacity:.3;background-color:#e6f7ff;border:2px dashed #40a9ff;transform:rotate(1deg)}[data-v-4c8630cd] .el-popover.el-popper .column-setting-popover .column-list .column-item.column-item-chosen{background-color:#f0f9ff;border:1px solid #40a9ff;box-shadow:0 2px 8px #40a9ff33;transform:scale(1.02)}[data-v-4c8630cd] .el-popover.el-popper .column-setting-popover .column-list .column-item.column-item-drag{opacity:.8;background-color:#fff;border:1px solid #40a9ff;box-shadow:0 4px 12px #00000026;transform:rotate(3deg) scale(1.05);z-index:1000}[data-v-4c8630cd] .el-popover.el-popper .column-setting-popover .column-list .column-item .column-item-left{display:flex;align-items:center;gap:10px;flex:1}[data-v-4c8630cd] .el-popover.el-popper .column-setting-popover .column-list .column-item .column-item-left .drag-handle{cursor:grab;color:#c0c4cc;font-size:14px;padding:4px;border-radius:4px;transition:all .2s ease}[data-v-4c8630cd] .el-popover.el-popper .column-setting-popover .column-list .column-item .column-item-left .drag-handle:hover{color:#40a9ff;background-color:#f0f9ff;transform:scale(1.1)}[data-v-4c8630cd] .el-popover.el-popper .column-setting-popover .column-list .column-item .column-item-left .drag-handle:active{cursor:grabbing;color:#1890ff;background-color:#e6f7ff;transform:scale(.95)}[data-v-4c8630cd] .el-popover.el-popper .column-setting-popover .column-list .column-item .column-item-left .el-checkbox{font-size:14px;transition:all .2s ease}[data-v-4c8630cd] .el-popover.el-popper .column-setting-popover .column-list .column-item .column-item-left .el-checkbox:hover{transform:translate(2px)}[data-v-4c8630cd] .el-popover.el-popper .column-setting-popover .column-list .column-item .column-item-right{display:flex;align-items:center;gap:6px}[data-v-4c8630cd] .el-popover.el-popper .column-setting-popover .column-list .column-item .column-item-right .el-button{width:24px;height:24px}[data-v-4c8630cd] .el-popover.el-popper .column-setting-popover .column-list .column-item .column-item-right .el-button .el-icon{font-size:12px}[data-v-4c8630cd] .el-popover.el-popper .column-setting-popover .column-setting-footer{padding:16px;border-top:1px solid #f0f2f5;display:flex;justify-content:flex-end;gap:12px;background:linear-gradient(135deg,#fafbfc,#f5f7fa);border-radius:0 0 8px 8px}[data-v-4c8630cd] .el-popover.el-popper .column-setting-popover .column-setting-footer .el-button{min-width:70px;border-radius:6px;font-weight:500;transition:all .3s ease}[data-v-4c8630cd] .el-popover.el-popper .column-setting-popover .column-setting-footer .el-button.el-button--small{padding:6px 16px;height:32px}[data-v-4c8630cd] .el-popover.el-popper .column-setting-popover .column-setting-footer .el-button.el-button--small .el-icon{margin-right:4px;font-size:14px}[data-v-4c8630cd] .el-popover.el-popper .column-setting-popover .column-setting-footer .el-button.el-button--default.is-plain{border-color:#d9d9d9;color:#666}[data-v-4c8630cd] .el-popover.el-popper .column-setting-popover .column-setting-footer .el-button.el-button--default.is-plain:hover{border-color:#40a9ff;color:#40a9ff;background-color:#f6fbff;transform:translateY(-1px);box-shadow:0 2px 4px #40a9ff33}[data-v-4c8630cd] .el-popover.el-popper .column-setting-popover .column-setting-footer .el-button.el-button--default.is-plain:active{transform:translateY(0)}[data-v-4c8630cd] .el-popover.el-popper .column-setting-popover .column-setting-footer .el-button.el-button--primary{background:linear-gradient(135deg,#40a9ff,#1890ff);border:none}[data-v-4c8630cd] .el-popover.el-popper .column-setting-popover .column-setting-footer .el-button.el-button--primary:hover{background:linear-gradient(135deg,#69c0ff,#40a9ff);transform:translateY(-1px);box-shadow:0 4px 8px #1890ff4d}[data-v-4c8630cd] .el-popover.el-popper .column-setting-popover .column-setting-footer .el-button.el-button--primary:active{transform:translateY(0);background:linear-gradient(135deg,#1890ff,#096dd9)}.editable-cell[data-v-22e7b199]{width:100%}.editable-cell .editable-cell-error[data-v-22e7b199]{color:#f56c6c;font-size:11px;line-height:1.3;padding-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.editable-cell.is-error[data-v-22e7b199] .el-input__wrapper,.editable-cell.is-error[data-v-22e7b199] .el-input-number .el-input__wrapper,.editable-cell.is-error[data-v-22e7b199] .el-select .el-input__wrapper,.editable-cell.is-error[data-v-22e7b199] .el-date-editor .el-input__wrapper,.editable-cell.is-error[data-v-22e7b199] .el-date-editor.el-input__wrapper{box-shadow:0 0 0 1px #f56c6c inset!important}.editable-cell[data-v-22e7b199] .el-input__wrapper{box-shadow:none;background-color:transparent;padding-left:4px;padding-right:4px}.editable-cell[data-v-22e7b199] .el-input__wrapper:hover{box-shadow:0 0 0 1px #dcdfe6 inset;background-color:#fff}.editable-cell[data-v-22e7b199] .el-input__wrapper.is-focus{box-shadow:0 0 0 1px #409eff inset;background-color:#fff}.editable-cell[data-v-22e7b199] .el-input-number .el-input__wrapper{box-shadow:none;background-color:transparent}.editable-cell[data-v-22e7b199] .el-input-number .el-input__wrapper:hover{box-shadow:0 0 0 1px #dcdfe6 inset;background-color:#fff}.editable-cell[data-v-22e7b199] .el-input-number .el-input__wrapper.is-focus{box-shadow:0 0 0 1px #409eff inset;background-color:#fff}.editable-cell[data-v-22e7b199] .el-select .el-input__wrapper{box-shadow:none;background-color:transparent}.editable-cell[data-v-22e7b199] .el-select .el-input__wrapper:hover{box-shadow:0 0 0 1px #dcdfe6 inset;background-color:#fff}.editable-cell[data-v-22e7b199] .el-select .el-input__wrapper.is-focus{box-shadow:0 0 0 1px #409eff inset;background-color:#fff}.editable-cell[data-v-22e7b199] .el-date-editor .el-input__wrapper,.editable-cell[data-v-22e7b199] .el-date-editor.el-input__wrapper{box-shadow:none;background-color:transparent}.editable-cell[data-v-22e7b199] .el-date-editor .el-input__wrapper:hover,.editable-cell[data-v-22e7b199] .el-date-editor.el-input__wrapper:hover{box-shadow:0 0 0 1px #dcdfe6 inset;background-color:#fff}.editable-cell[data-v-22e7b199] .el-date-editor .el-input__wrapper.is-focus,.editable-cell[data-v-22e7b199] .el-date-editor.el-input__wrapper.is-focus{box-shadow:0 0 0 1px #409eff inset;background-color:#fff}.editable-cell[data-v-22e7b199] .el-switch{display:flex;align-items:center;min-height:32px}.crud-filter-panel[data-v-a965fc78]{padding:12px;min-width:180px;max-width:260px;box-sizing:border-box}.crud-filter-panel .filter-select-list[data-v-a965fc78]{max-height:180px;overflow-y:auto}.crud-filter-panel .filter-select-list .filter-checkbox[data-v-a965fc78]{display:flex;margin:0 0 4px;height:28px;line-height:28px}.crud-filter-panel .filter-select-list .filter-checkbox[data-v-a965fc78] .el-checkbox__label{font-size:13px}.crud-filter-panel .filter-select-list .filter-empty[data-v-a965fc78]{font-size:12px;color:#909399;text-align:center;padding:8px 0}.crud-filter-panel .filter-range[data-v-a965fc78]{display:flex;align-items:center;gap:4px}.crud-filter-panel .filter-range .range-sep[data-v-a965fc78]{flex-shrink:0;color:#909399}.crud-filter-panel .filter-date[data-v-a965fc78]{display:flex;flex-direction:column}.crud-filter-panel[data-v-a965fc78] .el-input__wrapper,.crud-filter-panel[data-v-a965fc78] .el-date-editor.el-input__wrapper{box-sizing:border-box}.crud-filter-panel[data-v-a965fc78] .el-input__suffix,.crud-filter-panel[data-v-a965fc78] .el-date-editor .el-input__suffix{min-width:22px}.crud-filter-panel .filter-footer[data-v-a965fc78]{display:flex;justify-content:flex-end;gap:8px;margin-top:10px;border-top:1px solid #ebeef5;padding-top:8px}.text-ellipsis[data-v-97993a28]{overflow:hidden;text-overflow:ellipsis;word-break:break-all;width:100%;max-width:100%}.text-ellipsis.single-line[data-v-97993a28]{white-space:nowrap;display:block}.text-ellipsis[data-v-97993a28]:not(.single-line){display:-webkit-box;-webkit-box-orient:vertical}.crud-header-filter[data-v-70ec5ca2]{display:inline-flex;align-items:center;gap:4px;width:100%}.crud-header-filter .col-label[data-v-70ec5ca2]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crud-header-filter .filter-icon[data-v-70ec5ca2]{flex-shrink:0;cursor:pointer;color:#c0c4cc;font-size:14px;transition:color .2s}.crud-header-filter .filter-icon[data-v-70ec5ca2]:hover,.crud-header-filter .filter-icon.is-active[data-v-70ec5ca2]{color:#409eff}.crud-context-menu[data-v-ec6cfc86]{position:fixed;z-index:9999;min-width:140px;background:#fff;border:1px solid #e4e7ed;border-radius:6px;box-shadow:0 4px 12px #00000026;padding:4px 0;-webkit-user-select:none;user-select:none}.crud-context-menu .ctx-menu-list[data-v-ec6cfc86]{margin:0;padding:0;list-style:none}.crud-context-menu .ctx-menu-divider[data-v-ec6cfc86]{height:1px;background:#ebeef5;margin:4px 0}.crud-context-menu .ctx-menu-item[data-v-ec6cfc86]{display:flex;align-items:center;gap:8px;padding:8px 16px;font-size:13px;color:#303133;cursor:pointer;transition:background-color .15s}.crud-context-menu .ctx-menu-item[data-v-ec6cfc86]:hover:not(.is-disabled){background-color:#f0f7ff;color:#409eff}.crud-context-menu .ctx-menu-item:hover:not(.is-disabled) .ctx-menu-icon[data-v-ec6cfc86]{color:#409eff}.crud-context-menu .ctx-menu-item.is-disabled[data-v-ec6cfc86]{color:#c0c4cc;cursor:not-allowed}.crud-context-menu .ctx-menu-item .ctx-menu-icon[data-v-ec6cfc86]{display:flex;align-items:center;font-size:14px;color:#606266;flex-shrink:0}.crud-context-menu .ctx-menu-item .ctx-menu-label[data-v-ec6cfc86]{line-height:1}.ctx-menu-fade-enter-active[data-v-ec6cfc86]{animation:ctx-menu-in-ec6cfc86 .12s ease-out}.ctx-menu-fade-leave-active[data-v-ec6cfc86]{animation:ctx-menu-in-ec6cfc86 .1s ease-in reverse}@keyframes ctx-menu-in-ec6cfc86{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.rdxx-crud[data-v-6a374536]{box-sizing:border-box;height:100%;background:#fff;border:1px solid #e4e7ed;border-radius:6px;padding:20px}.rdxx-crud .crud-title-section[data-v-6a374536]{margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid #ebeef5}.rdxx-crud .crud-title-section h3[data-v-6a374536]{margin:0;font-size:18px;font-weight:600;color:#303133;display:flex;align-items:center;gap:8px}.rdxx-crud .crud-title-section h3[data-v-6a374536]:before{content:"";width:3px;height:18px;background:#409eff;border-radius:1px}.rdxx-crud .crud-search[data-v-6a374536]{background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;margin-bottom:16px;overflow:hidden}.rdxx-crud .crud-search .search-header[data-v-6a374536]{background:#f1f3f4;padding:12px 16px;border-bottom:1px solid #e9ecef}.rdxx-crud .crud-search .search-header .search-title[data-v-6a374536]{display:flex;align-items:center;gap:8px;font-weight:500;color:#606266;font-size:14px}.rdxx-crud .crud-search .search-header .search-title .el-icon[data-v-6a374536]{color:#909399}.rdxx-crud .crud-search .search-body[data-v-6a374536]{padding:16px}.rdxx-crud .crud-table[data-v-6a374536]{margin-bottom:16px;border:1px solid #ebeef5;border-radius:6px;overflow:hidden}.rdxx-crud .crud-table[data-v-6a374536] .el-table{border-radius:6px}.rdxx-crud .crud-table[data-v-6a374536] .el-table .el-table__header-wrapper th{background:#f8f9fa!important;border-bottom:1px solid #ebeef5;font-weight:600;font-size:14px;color:#303133}.rdxx-crud .crud-table[data-v-6a374536] .el-table .el-table__body-wrapper tr{transition:background-color .2s ease}.rdxx-crud .crud-table[data-v-6a374536] .el-table .el-table__body-wrapper tr:hover{background-color:#f5f7fa!important}.rdxx-crud .crud-table[data-v-6a374536] .el-table .el-table__body-wrapper td{padding:12px 0;border-bottom:1px solid #f0f2f5}.rdxx-crud .crud-table[data-v-6a374536] .el-table .table-actions{display:flex;gap:4px;justify-content:center;align-items:center}.rdxx-crud .crud-table[data-v-6a374536] .el-table .table-actions .el-button{margin:0}.rdxx-crud .crud-table[data-v-6a374536] .el-table .table-actions .el-button.el-button--small{height:26px;padding:4px 8px;font-size:12px;border-radius:4px}.rdxx-crud .crud-table[data-v-6a374536] .el-table .table-actions .el-button.el-button--small.el-button--text.el-button--primary{color:#409eff}.rdxx-crud .crud-table[data-v-6a374536] .el-table .table-actions .el-button.el-button--small.el-button--text.el-button--primary:hover{background-color:#ecf5ff;color:#409eff}.rdxx-crud .crud-table[data-v-6a374536] .el-table .table-actions .el-button.el-button--small.el-button--text.el-button--info{color:#909399}.rdxx-crud .crud-table[data-v-6a374536] .el-table .table-actions .el-button.el-button--small.el-button--text.el-button--info:hover{background-color:#f4f4f5;color:#606266}.rdxx-crud .crud-table[data-v-6a374536] .el-table .table-actions .el-button.el-button--small.el-button--text.el-button--danger{color:#f56c6c}.rdxx-crud .crud-table[data-v-6a374536] .el-table .table-actions .el-button.el-button--small.el-button--text.el-button--danger:hover{background-color:#fef0f0;color:#f56c6c}.rdxx-crud .crud-pagination[data-v-6a374536]{display:flex;align-items:center;justify-content:space-between;padding:16px 0 0;border-top:1px solid #ebeef5}.rdxx-crud .crud-pagination .pagination-info[data-v-6a374536]{display:flex;align-items:center;gap:16px}.rdxx-crud .crud-pagination .pagination-info .total-info[data-v-6a374536]{font-size:14px;color:#606266;font-weight:500}.rdxx-crud .crud-pagination[data-v-6a374536] .el-pagination .el-pager li{border-radius:4px}.rdxx-crud .crud-pagination[data-v-6a374536] .el-pagination .el-pager li.is-active{background:#409eff;color:#fff}.rdxx-crud .crud-pagination[data-v-6a374536] .el-pagination .el-pager li:hover:not(.is-active){color:#409eff}.rdxx-crud .crud-pagination[data-v-6a374536] .el-pagination .btn-prev,.rdxx-crud .crud-pagination[data-v-6a374536] .el-pagination .btn-next{border-radius:4px}.rdxx-crud .crud-pagination[data-v-6a374536] .el-pagination .btn-prev:hover,.rdxx-crud .crud-pagination[data-v-6a374536] .el-pagination .btn-next:hover{color:#409eff}.rdxx-crud .search-slide-enter-active[data-v-6a374536],.rdxx-crud .search-slide-leave-active[data-v-6a374536]{transition:all .3s ease;transform-origin:top}.rdxx-crud .search-slide-enter-from[data-v-6a374536],.rdxx-crud .search-slide-leave-to[data-v-6a374536]{opacity:0;transform:scaleY(0);margin-bottom:0}.rdxx-crud .search-slide-enter-to[data-v-6a374536],.rdxx-crud .search-slide-leave-from[data-v-6a374536]{opacity:1;transform:scaleY(1);margin-bottom:16px}.rdxx-crud[data-v-6a374536] .el-table__header .ascending .caret-wrapper .sort-caret.ascending{border-bottom-color:var(--el-color-primary)}.rdxx-crud[data-v-6a374536] .el-table__header .descending .caret-wrapper .sort-caret.descending{border-top-color:var(--el-color-primary)}.crud-dialog{max-width:calc(100% - 100px);border-radius:6px;max-height:85vh;display:flex;flex-direction:column;margin:0!important}.crud-dialog .el-dialog__header{flex-shrink:0;padding:20px 24px 16px;border-bottom:1px solid #ebeef5}.crud-dialog .el-dialog__header .el-dialog__title{font-size:16px;font-weight:600;color:#303133}.crud-dialog .el-dialog__body{flex:1;min-height:0;overflow-y:auto;padding:0}.crud-dialog .el-dialog__body .dialog-body{padding:24px}.crud-dialog .el-dialog__footer{padding:16px 24px 20px;border-top:1px solid #ebeef5;background:#fafbfc}.crud-dialog .el-dialog__footer .dialog-footer{text-align:right;display:flex;justify-content:flex-end;gap:12px}.crud-dialog .el-dialog__footer .dialog-footer .el-button{border-radius:4px;font-weight:500;min-width:80px}.crud-dialog .el-dialog__footer .dialog-footer .el-button.el-button--primary{background:#409eff;border-color:#409eff}.crud-dialog .el-dialog__footer .dialog-footer .el-button.el-button--primary:hover{background:#66b1ff;border-color:#66b1ff}.crud-dialog .el-dialog__footer .dialog-footer .el-button.el-button--default:hover{border-color:#c6e2ff;color:#409eff}