@xmszm/core 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,178 @@
1
+ # @xmszm/core
2
+
3
+ 基于 Vue 3 + Naive UI 的组件与工具库,提供开箱即用的配置式表单、表格、弹窗等常用组件,以及丰富的工具函数集合。
4
+
5
+ ## ✨ 特性
6
+
7
+ - 🎨 **配置化表单** - 通过 Options 定义字段,自动生成 rules,轻松构建复杂表单
8
+ - 📊 **表格增强** - 内置操作列创建器、排序、筛选、虚拟滚动与省略 tooltip
9
+ - 🪟 **弹窗集成** - `commonDialogMethod` 将表单与弹窗能力合并,减少样板代码
10
+ - 🛠️ **实用工具** - 上传、权限、路由 meta 初始化、数组对象转换等常用方法
11
+
12
+ ## 📦 安装
13
+
14
+ ```bash
15
+ npm install @xmszm/core
16
+ # 或
17
+ pnpm add @xmszm/core
18
+ # 或
19
+ yarn add @xmszm/core
20
+ ```
21
+
22
+ ### peer 依赖
23
+
24
+ 请确保项目中已安装以下依赖:
25
+
26
+ - `vue` >= 3.3.0
27
+ - `naive-ui` >= 2.38.0
28
+ - `vue-router` >= 4.2.0
29
+ - `dayjs` >= 1.11.0
30
+ - `lodash-es` >= 4.17.21
31
+ - `@vicons/ionicons5` >= 0.13.0
32
+
33
+ ## 🚀 快速开始
34
+
35
+ ### 引入组件和样式
36
+
37
+ ```javascript
38
+ import { DataForm, DataTable, CommonQuery, commonDialogMethod } from '@xmszm/core'
39
+ import '@xmszm/core/dist/style.css'
40
+ ```
41
+
42
+ ### 基础示例
43
+
44
+ ```vue
45
+ <template>
46
+ <div>
47
+ <!-- 表单 -->
48
+ <DataForm v-model:value="formValue" :options="formOptions" />
49
+
50
+ <!-- 表格 -->
51
+ <DataTable :data="tableData" :columns="columns" />
52
+
53
+ <!-- 查询 -->
54
+ <CommonQuery :query="query" :options="queryOptions" @submit="handleSearch" />
55
+ </div>
56
+ </template>
57
+
58
+ <script setup>
59
+ import { ref } from 'vue'
60
+ import { DataForm, DataTable, CommonQuery, commonDialogMethod } from '@xmszm/core'
61
+ import '@xmszm/core/dist/style.css'
62
+
63
+ const formValue = ref({})
64
+ const formOptions = [
65
+ { key: 'name', label: '名称', way: 'input', required: true },
66
+ { key: 'type', label: '类型', way: 'select', options: [
67
+ { label: '类型A', value: 'A' },
68
+ { label: '类型B', value: 'B' }
69
+ ]}
70
+ ]
71
+
72
+ const columns = [
73
+ { title: '名称', key: 'name', width: 160 },
74
+ { title: '类型', key: 'type', width: 120 }
75
+ ]
76
+ const tableData = ref([
77
+ { id: 1, name: '示例1', type: 'A' },
78
+ { id: 2, name: '示例2', type: 'B' }
79
+ ])
80
+
81
+ // 弹窗示例
82
+ function openDialog() {
83
+ commonDialogMethod({
84
+ title: '示例弹窗',
85
+ options: formOptions,
86
+ valueData: { name: '张三' },
87
+ interfaceFn: async (data, { close }) => {
88
+ console.log('提交数据', data)
89
+ close()
90
+ }
91
+ })
92
+ }
93
+ </script>
94
+ ```
95
+
96
+ ## 📚 主要组件
97
+
98
+ ### DataForm
99
+ 配置式表单组件,支持多种输入方式(input、select、date-picker 等)
100
+
101
+ ### DataTable
102
+ 增强型表格组件,支持排序、筛选、操作列、虚拟滚动等功能
103
+
104
+ ### CommonQuery
105
+ 通用查询组件,快速构建查询表单
106
+
107
+ ### Options
108
+ 选项配置组件,统一管理表单字段配置
109
+
110
+ ## 🛠️ 工具函数
111
+
112
+ - **上传工具** - `customUpload`, `registryUpload`, `getFileUrl`
113
+ - **权限工具** - `checkPermission`, `getHasPermission`, `useApiConfig`
114
+ - **配置工具** - `setupConfig`, `getConfig`, `getBaseURL`
115
+ - **数组工具** - `toArray`, `ArrayToObject`
116
+ - **对象工具** - `ObjectToArray`
117
+ - **表格工具** - `ellipsis`, `createActionColumnJsx`
118
+ - **路由工具** - `initRouteMeta`
119
+ - **弹窗工具** - `commonDialogMethod`, `initRules`
120
+
121
+ ## 📖 文档
122
+
123
+ 详细的组件文档和使用指南请查看:
124
+
125
+ - [快速开始](./docs/guide/quickstart.md)
126
+ - [组件文档](./docs/components/)
127
+ - [配置指南](./docs/guide/config.md)
128
+
129
+ 或访问在线文档(如果已部署)。
130
+
131
+ ## 🏗️ 开发
132
+
133
+ ### 构建
134
+
135
+ ```bash
136
+ npm run build
137
+ ```
138
+
139
+ ### 本地开发
140
+
141
+ ```bash
142
+ # 启动文档开发服务器
143
+ npm run docs:dev
144
+
145
+ # 或使用 test-app 进行本地测试
146
+ cd test-app
147
+ npm install
148
+ npm run dev
149
+ ```
150
+
151
+ ### 项目结构
152
+
153
+ ```
154
+ core/
155
+ ├── src/ # 组件与工具源码
156
+ │ ├── form/ # 表单组件
157
+ │ ├── table/ # 表格组件
158
+ │ ├── dialog/ # 弹窗组件
159
+ │ ├── query/ # 查询组件
160
+ │ ├── options/ # 选项配置
161
+ │ └── utils/ # 工具函数
162
+ ├── docs/ # VitePress 文档
163
+ ├── examples/ # 示例代码
164
+ ├── test-app/ # 测试应用
165
+ ├── types/ # TypeScript 类型定义
166
+ └── dist/ # 构建输出
167
+ ```
168
+
169
+ ## 📝 License
170
+
171
+ UNLICENSED
172
+
173
+ ## 🔗 相关链接
174
+
175
+ - [GitHub Repository](https://github.com/xmszm/core)
176
+ - [Naive UI](https://www.naiveui.com/)
177
+ - [Vue 3](https://vuejs.org/)
178
+
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var we=Object.defineProperty;var Ve=(l,n,e)=>n in l?we(l,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):l[n]=e;var K=(l,n,e)=>Ve(l,typeof n!="symbol"?n+"":n,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("vue"),C=require("naive-ui"),$=require("@vicons/ionicons5"),Ce=require("@/utils/permission"),W=require("vue-router"),re=require("@/utils/request"),M=require("dayjs"),oe=require("lodash-es"),D="name",P="id";function Q(l,{labelField:n=D,valueField:e=P}={}){return Object.keys(l).reduce((o,r)=>{const s=Oe(l[r],r),a={...s};return a[n]=s==null?void 0:s[n],a[e]=s==null?void 0:s[e],o.concat(a)},[])}function Oe(l,n){const e={[D]:unref(l),[P]:Number.isNaN(Number(n))?n:Number(n)};return typeof unref(l)=="object"?{...unref(l),[P]:Number.isNaN(Number(n))?n:Number(n)}:e}const H={style:{cursor:"pointer"},tooltip:{flip:!0,arrowPointToCenter:!0,contentStyle:{minWidth:"100px",maxWidth:"300px",maxHeight:"300px",overflowY:"auto",whiteSpace:"pre-line",boxSizing:"border-box",margin:"0 -14px",padding:"0 14px"},arrowStyle:{backgroundColor:"--n-color"}}},Y=(l,n)=>{const e=l.__vccOpts||l;for(const[o,r]of n)e[o]=r;return e},Se={class:"filter-box"},Ae={class:"filter-footer"},Be={__name:"FilterDialog",props:{type:{type:String,default:()=>"primary"},filterItem:{type:Array,default:()=>[]},selectItem:{type:Array,default:()=>[]},defaultItem:{type:Array,default:()=>[]},filterButtonKey:{type:Array,default:()=>["all","selectDefault"]}},emits:["submit"],setup(l,{emit:n}){var b,N;t.useCssVars(S=>({e0ecc754:t.unref(r).infoColor}));const e=l,o=n,r=C.useThemeVars(),s=t.ref([]);t.watchEffect(()=>{s.value=e.selectItem});const a=t.ref([]),f=[{key:"all",label:"全选",onCheck:()=>{var S;return s.value=(S=e.filterItem)==null?void 0:S.map(V=>V.key)},unCheck:()=>s.value=[]},{key:"selectDefault",label:"选中默认",onCheck:()=>s.value=e.defaultItem,unCheck:()=>s.value=e.selectItem},{key:"currentSelect",label:"选中当前列表",onCheck:()=>s.value=e.selectItem,unCheck:()=>s.value=e.selectItem}];t.watchEffect(()=>{a.value=f.filter(S=>e.filterButtonKey.includes(S.key)),console.log(e.filterButtonKey)});function i(){o("submit",s.value)}const d=t.ref(((b=e.filterItem)==null?void 0:b.length)===((N=e.selectItem)==null?void 0:N.length)?["all"]:[]);function y(S,V){var u,g,m,h;console.log(S),console.log(V),V.actionType==="uncheck"?((g=(u=a.value)==null?void 0:u.find(c=>(c==null?void 0:c.key)===V.value))==null||g.unCheck(),d.value=[]):((h=(m=a.value)==null?void 0:m.find(c=>(c==null?void 0:c.key)===V.value))==null||h.onCheck(),d.value=[V.value])}return(S,V)=>{const u=t.resolveComponent("n-ellipsis"),g=t.resolveComponent("n-checkbox"),m=t.resolveComponent("n-checkbox-group"),h=t.resolveComponent("n-button");return t.openBlock(),t.createElementBlock("div",Se,[t.createVNode(m,{value:s.value,"onUpdate:value":V[0]||(V[0]=c=>s.value=c),class:"filter-main"},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(l.filterItem,c=>(t.openBlock(),t.createBlock(g,{key:c.key,value:c.key,class:"filter-item"},{default:t.withCtx(()=>[t.createVNode(u,{style:{"max-width":"100px"}},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(c.title),1)]),_:2},1024)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),t.createElementVNode("div",Ae,[t.createVNode(m,{type:e.type,value:d.value,"onUpdate:value":y},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(a.value,c=>(t.openBlock(),t.createBlock(g,{key:c.key,value:c.key},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(c.label),1)]),_:2},1032,["value"]))),128))]),_:1},8,["type","value"]),t.createVNode(h,{class:"submit-btn",type:e.type,onClick:i},{default:t.withCtx(()=>[...V[1]||(V[1]=[t.createTextVNode(" 保存 ",-1)])]),_:1},8,["type"])])])}}},Ie=Y(Be,[["__scopeId","data-v-2aba8b9e"]]),ue="filter_key",Fe={__name:"DataTable",props:{data:{type:Array,default:()=>[]},pagination:{type:[Object,null],default:()=>{}},columns:{type:Array,default:()=>[{title:"测试案例"}]},oprColumns:{type:[Object,null],default:()=>null},selectColumns:{type:[Object,null],default:()=>null},defaultColumns:{type:Array,default:()=>[]},summaryColumns:{type:null,default:()=>null},emptyText:{type:String,default:()=>"没有数据"},emptyIcon:{type:String,default:()=>""},isFilter:{type:Boolean,default:()=>!1},isEllipsis:{type:Boolean,default:()=>!0},virtual:{type:null,default:()=>{}},singleColumn:{type:Boolean,default:()=>!1}},emits:["sorted"],setup(l,{expose:n,emit:e}){const o=l,r=W.useRoute(),s=e,a=t.computed(()=>(console.log("table -data",o.data),o.data));function f(h){window.localStorage.setItem(ue,JSON.stringify(h))}function i(){return JSON.parse(window.localStorage.getItem(ue))||{}}const d=t.ref(i()),y=t.ref([]),b=t.ref(0);function N(h){if(o.summaryColumns)return[o.selectColumns,...t.unref(o.columns),o.oprColumns].reduce((c,p)=>{var O,A;return p!=null&&p.key?c[p.key]=((A=(O=o.summaryColumns)==null?void 0:O.call(o,h))==null?void 0:A[p.key])||{value:null}:c[oe.uniqueId("table")]={value:null},c},{})}const S=t.ref([]);t.watch(()=>t.unref(o.columns),()=>{V()},{immediate:!0}),t.watch(()=>o.oprColumns,h=>{console.log("oprColumns",h)});function V(){var O;const h=t.unref(o.columns);y.value=((O=d.value)==null?void 0:O[r.fullPath])||(h==null?void 0:h.map((A,w)=>(A==null?void 0:A.key)||M().valueOf()+w));const c=o.isFilter?h.filter(A=>{var w;return(w=y.value)==null?void 0:w.includes(A.key)}):[...h];o.selectColumns&&c.unshift({key:"selectKey",...o.selectColumns}),o.oprColumns&&c.push(o.oprColumns);let p=0;S.value=c.reduce((A,w)=>{var E;if(w!=null&&w.display&&console.log("display",w==null?void 0:w.display),!((w==null?void 0:w.display)??!0))return A;const I={align:"center",width:120,...w,key:(w==null?void 0:w.key)||oe.uniqueId("table"),ellipsis:w!=null&&w.ellipsis||o.isEllipsis?w!=null&&w.ellipsisProp?w==null?void 0:w.ellipsisProp(H):H:!1,"ellipsis-component":"ellipsis",title:()=>{const F=(w==null?void 0:w.label)||(w==null?void 0:w.title)||"";return t.createVNode("div",{style:{width:"100%",whiteSpace:"pre-wrap"}},[typeof F=="string"?F:F==null?void 0:F()])}};return w!=null&&w.sorter&&(I.renderSorterIcon=({order:F})=>{const{Icon:U,title:_}=R[F];return t.createVNode(C.NTooltip,null,{trigger:()=>U,default:()=>_})},I.sorter={multiple:1,fn:w.sorter}),p+=I!=null&&I.width?Number.parseInt(I==null?void 0:I.width):((E=I==null?void 0:I.title)==null?void 0:E.length)*I.length+30||0,A.push(I),A},[]),b.value=p,console.log("计算")}function u(){return t.createVNode(C.NButton,{type:"info",onClick:()=>g()},{default:()=>"筛选字段",icon:()=>t.createVNode($.Funnel,null,null)})}function g(){const{cancel:h}=ge({title:"筛选字段",read:!0,options:[{render:()=>t.createVNode(Ie,{style:{width:"100%",margin:"0",padding:0},filterItem:t.unref(o.columns),selectItem:y.value,defaultItem:o.defaultColumns,onSubmit:c=>{d.value[r.fullPath]=c,f(d.value),V(),h()}},null)}]},{closable:!1,style:{width:"500px"}})}function m(h){if(console.log("onSorter",h),!h)return;j(h).forEach(p=>{var O,A;console.log("v",p),p!=null&&p.sorter&&((A=p==null?void 0:p.sorter)==null||A.fn((w,I,E)=>{var F;(F=R[p.order])==null||F.fn(w,E),I.fetchData()},{field:p==null?void 0:p.columnKey,value:(O=R[p==null?void 0:p.order])==null?void 0:O.value,isClick:!t.isProxy(p)}))}),s("sorted")}return n({filterHandle:g,filterButton:u,initColumns:V}),t.onMounted(()=>{}),(h,c)=>{const p=t.resolveComponent("n-empty"),O=t.resolveComponent("n-data-table");return t.openBlock(),t.createBlock(O,{data:a.value,columns:S.value,"scroll-x":b.value,"single-column":o.singleColumn,summary:o.summaryColumns?N:void 0,"summary-placement":"bottom",pagination:o.pagination,"row-props":()=>({style:{height:"60px"}}),"flex-height":"",remote:"","virtual-scroll":o.virtual??o.data.length>1e3,style:{flex:"1"},"onUpdate:sorter":m},{empty:t.withCtx(()=>[t.renderSlot(h.$slots,"empty",{},()=>[t.createVNode(p,null,{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(l.emptyText),1)]),_:1})],!0)]),_:3},8,["data","columns","scroll-x","single-column","summary","pagination","virtual-scroll"])}}},fe=Y(Fe,[["__scopeId","data-v-8fbdfcbb"]]);let J=null;function Pe(l){J=l}function de(...l){if(typeof J!="function")throw new TypeError("请先通过 registryUpload(fn) 注册上传实现");return J(...l)}function k(l,n=null){return l&&!(l!=null&&l.startsWith("http"))?n?`${re.BASE_URL}${l}?x-oss-process=style/w${n}`:`${re.BASE_URL}${l}`:l}const De="/admin/file",Me={__name:"ImagesUpload",props:{value:{type:[Array,String],default:()=>[]},max:{type:Number,default:()=>5},lib:{type:Boolean,default:()=>!0},clip:{type:Boolean,default:()=>!1},read:{type:Boolean,default:()=>!1},size:{type:Number,default:()=>100},width:{type:Number,default:()=>100},height:{type:Number,default:()=>100},mode:{type:String,default:()=>"fill"},formData:{type:Object,default:()=>{}}},emits:["update:value","complete"],setup(l,{emit:n}){const e=l,o=n,r=t.ref([]);t.watch(()=>e.value,i=>{console.log("props.value",i),r.value=e.max===1?i?typeof i!="string"?i!=null&&i.length?[{id:M().valueOf(),name:`img${M().valueOf()}`,url:k(i[0]),thumbnailUrl:k(i[0]),fullPath:i[0],status:"finished"}]:[]:[{id:M().valueOf(),name:`img${M().valueOf()}`,url:k(i),fullPath:i,thumbnailUrl:k(i),status:"finished"}]:[]:(i==null?void 0:i.map((d,y)=>({id:M().valueOf()+y,name:`img${M().valueOf()}`,url:k(d),fullPath:d,thumbnailUrl:k(d),status:"finished"})))||[],console.log("1",r.value)},{immediate:!0});function s(...i){a(i[0])}async function a({file:i,onFinish:d,onError:y,onProgress:b},N){const S=new FormData;i.status==="pending"&&(S.append("file",i.file),e.formData&&Object.keys(e.formData).length&&Object.keys(e.formData).forEach(V=>{S.append(V,e.formData[V])}),de({url:De,data:S,method:"post",onUploadProgress:({percent:V})=>b({percent:V})}).then(V=>{const{url:u}=V.data;i.url=k(u),i.fullPath=u,i.thumbnailUrl=k(u),d(),f()}).catch(()=>{i=null,y()}).finally(()=>{}))}function f(){console.log("onSubmit",r.value);const i=r.value.reduce((d,y)=>(y.status==="finished"&&(y!=null&&y.fullPath)&&d.push(y.fullPath),d),[]);e.max===1&&i.length===1?o("update:value",i[0]):i.length?o("update:value",i):o("update:value",e.max===1?null:[])}return(i,d)=>{const y=t.resolveComponent("n-upload"),b=t.resolveComponent("n-space");return t.openBlock(),t.createBlock(b,{align:"end","wrap-item":!1},{default:t.withCtx(()=>[t.createVNode(y,{"file-list":r.value,"onUpdate:fileList":d[0]||(d[0]=N=>r.value=N),accept:".jpeg,.jpg,.png","list-type":"image-card","custom-request":s,max:e.read?Array.isArray(e.value)?e.value.length:1:e.max,"show-retry-button":!1,"show-remove-button":!e.read,class:"upload-box",style:t.normalizeStyle({...e.size?{"--image-w":`${e.size}px`,"--image-h":`${e.size}px`}:{"--image-w":`${e.width}px`,"--image-h":`${e.height}px`},"--image-mode":e.mode}),onFinish:d[1]||(d[1]=()=>{f(),o("complete")}),onRemove:d[2]||(d[2]=(N,S)=>(r.value.splice(S,1),f(),!1))},null,8,["file-list","max","show-remove-button","style"])]),_:1})}}},ke=Y(Me,[["__scopeId","data-v-54e2cc87"]]);function G(l=[],{labelField:n=D,valueField:e=P}={labelField:D,valueField:P}){return t.unref(l).reduce((o,r)=>(o[r[e]]={...r,[n]:r[n],[e]:r[e]},o),{})}function j(l){return Array.isArray(l)?l:[l]}function ie(l,n="YYYY-MM-DD",e={emptyText:""}){return l?M(Number.isNaN(Number(l))?l:Number(l)).format(n):(e==null?void 0:e.emptyText)||""}function qe(l){return typeof l=="function"||Object.prototype.toString.call(l)==="[object Object]"&&!t.isVNode(l)}const Ee={input:({label:l,key:n,props:e,readProps:o,format:r=null,read:s},{_value:a,_isRead:f})=>s??f?t.createVNode(C.NEllipsis,o,{default:()=>[r?r==null?void 0:r(t.unref(a)[n],t.unref(a)):t.unref(a)[n]]}):t.createVNode(C.NInput,t.mergeProps({value:a[n],"onUpdate:value":i=>a[n]=i,clearable:!0,placeholder:`请输入${t.unref(l)}`},e),{...(e==null?void 0:e.slots)||{}}),select:({label:l,key:n,props:e,options:o=[],loading:r=!1,format:s=null,read:a},{_value:f,_isRead:i})=>{var y,b;const d=(Array.isArray(t.unref(o))?t.unref(o):o==null?void 0:o(f[n]))||[];return a??i?t.createVNode("div",null,[s?s==null?void 0:s(f[n],d):(b=(y=G(d,(e==null?void 0:e.labelField)||D,(e==null?void 0:e.valueField)||P))==null?void 0:y[f[n]])==null?void 0:b[(e==null?void 0:e.labelField)||D]]):t.createVNode(C.NSelect,t.mergeProps({value:f[n],"onUpdate:value":N=>f[n]=N,options:d,loading:t.unref(r),clearable:!0,filterable:!0,"fallback-option":()=>(e!=null&&e.asyncFallback||(f[n]=null),!1),labelField:(e==null?void 0:e.labelField)||D,valueField:(e==null?void 0:e.valueField)||P,placeholder:`请选择${t.unref(l)}`,style:"width:100%","max-tag-count":"responsive"},e),{...(e==null?void 0:e.slots)||{}})},date:({label:l,key:n,props:e,formatTime:o="YYYY-MM-DD",type:r="date",format:s,read:a},{_value:f,_isRead:i})=>a??i?t.createVNode("div",null,[s?s==null?void 0:s(f[n]):ie(f[n],o)]):t.createVNode(C.NDatePicker,t.mergeProps({"formatted-value":f[n],"onUpdate:formatted-value":d=>{f[n]=d},type:r,clearable:!0,placeholder:`请选择${t.unref(l)}`,"update-value-on-close":!["year"].includes(e==null?void 0:e.type),style:"width:100%"},e),{...(e==null?void 0:e.slots)||{}}),time:({label:l,key:n,props:e,format:o,formatTime:r="YYYY-MM-DD",read:s},{_value:a,_isRead:f})=>s??f?t.createVNode("div",null,[o?o==null?void 0:o(a[n]):ie(a[n],r)]):t.createVNode(C.NTimePicker,t.mergeProps({"formatted-value":a[n],"onUpdate:value":(i,d)=>{console.log("v",d),a[n]=d},clearable:!0,format:"HH:mm:ss",style:"width:100%",placeholder:`请选择${t.unref(l)}`},e),{...(e==null?void 0:e.slots)||{}}),dateRange:({key:l,props:n,type:e="datetimerange",read:o},{_value:r,_isRead:s})=>{var i,d;const a={date:"YYYY-MM-DD",datetime:"YYYY-MM-DD HH:mm:ss",time:"HH:mm:ss",datetimerange:"YYYY-MM-DD HH:mm:ss",daterange:"YYYY-MM-DD"},f=n!=null&&n.format?(d=(i=n==null?void 0:n.format)==null?void 0:i.replace("yyyy","YYYY"))==null?void 0:d.replace("dd","DD"):a[(n==null?void 0:n.type)||e];return console.log("formatStr type",e),console.log("formatStr",f),o??s?t.createVNode("div",null,[Array.isArray(l)?`${r==null?void 0:r[l==null?void 0:l[0]]} - ${r==null?void 0:r[l==null?void 0:l[1]]}`:r==null?void 0:r[l]]):t.createVNode(C.NDatePicker,t.mergeProps({"formatted-value":Array.isArray(l)?r!=null&&r[l==null?void 0:l[0]]&&(r!=null&&r[l==null?void 0:l[1]])?[M(r==null?void 0:r[l==null?void 0:l[0]]).format(f),M(r==null?void 0:r[l==null?void 0:l[1]]).format(f)]:null:(r==null?void 0:r[l])||null,"onUpdate:formatted-value":y=>{console.log(y),y&&![a.datetime,a.datetimerange].includes(f)&&(y=y.map((b,N)=>M(b,f)[N?"endOf":"startOf"]("day").format(f))),Array.isArray(l)?(r[l==null?void 0:l[0]]=y==null?void 0:y[0],r[l==null?void 0:l[1]]=y==null?void 0:y[1]):r[l]=y},"update-value-on-close":!["year","month"].includes(n==null?void 0:n.type),type:e,clearable:!0,style:"width:100%"},n),{...(n==null?void 0:n.slots)||{}})},radio:({key:l,options:n=[],props:e,radioLabelProps:o,read:r},{_value:s,_isRead:a,labelField:f,valueField:i})=>{var d,y;return r??a?t.createVNode("div",null,[(y=(d=G(n,(e==null?void 0:e.labelField)||f,(e==null?void 0:e.valueField)||i))==null?void 0:d[s[l]])==null?void 0:y[(e==null?void 0:e.labelField)||f]]):t.createVNode(C.NRadioGroup,t.mergeProps({style:{width:"100%"},value:s[l],"onUpdate:value":b=>s[l]=b},e),{...(e==null?void 0:e.slots)||{},default:()=>t.createVNode(C.NSpace,t.mergeProps({"item-wrap":!1},(e==null?void 0:e.radioProps)||{}),{default:()=>[n==null?void 0:n.map(b=>t.createVNode(C.NRadio,{key:b.value,value:b==null?void 0:b[(e==null?void 0:e.valueField)||i],class:"items-center"},{default:()=>[t.createVNode("div",(o==null?void 0:o(b))||{},[b==null?void 0:b[(e==null?void 0:e.labelField)||f]])]}))]})})},inputPhone:({label:l,key:n,props:e,read:o},{_value:r,_isRead:s})=>o??s?t.createVNode("div",null,[r[n]]):t.createVNode(C.NInput,t.mergeProps({value:r[n],"onUpdate:value":a=>r[n]=a,clearable:!0,style:"width:100%","allow-input":a=>!a||/^\d$/.test(a)||a.length<=11,placeholder:`请输入${t.unref(l)}`},e),{...e==null?void 0:e.slots}),inputNumber:({label:l,key:n,props:e,read:o},{_value:r,_isRead:s})=>o??s?t.createVNode("div",null,[r[n]]):t.createVNode(C.NInputNumber,t.mergeProps({value:typeof r[n]=="string"&&r[n]?Number(r[n]):r[n],"onUpdate:value":a=>{r[n]=a},showButton:!1,clearable:!0,style:"width:100%",placeholder:`请输入${t.unref(l)}`,min:0},e),{...(e==null?void 0:e.slots)||{}}),uploadFile:({key:l,props:n},{_value:e})=>t.createVNode(C.NUpload,t.mergeProps({multiple:!0,max:1,accept:".xls,.xlsx","file-list":e[l],"onUpdate:file-list":o=>e[l]=o},n),{default:()=>[t.createVNode(C.NUploadDragger,null,{default:()=>[t.createVNode("div",{style:"margin-bottom: 12px"},[t.createVNode(C.NIcon,{size:"48",depth:3},{default:()=>[t.createVNode(t.resolveComponent("ArchiveOutline"),null,null)]})]),t.createVNode(C.NText,{style:"font-size: 16px"},{default:()=>[t.createTextVNode("点击或者拖动文件到该区域来上传")]})]})]}),dataTable:({key:l,loading:n=!1,props:e,options:o,opr:r,pageState:s},{_value:a,_isRead:f})=>{var i;return console.log(n),console.log(s),t.createVNode(fe,t.mergeProps({data:(i=s==null?void 0:s.data)!=null&&i.length?s.data:a[l],columns:t.unref(o),maxHeight:200,minHeight:200,"is-ellipsis":!1,"opr-columns":r,loading:s==null?void 0:s.loading},e),null)},progress:({key:l,props:n},{_value:e})=>t.createVNode(C.NProgress,t.mergeProps({percentage:e[l]},n),null),line:()=>t.createVNode(C.NDivider,null,null),image:({key:l,props:n,read:e},{_isRead:o,_value:r})=>t.createVNode(ke,t.mergeProps({value:r[l],"onUpdate:value":s=>r[l]=s,max:1},n,{read:e??o}),null),button:({onClick:l,props:n,text:e},{_value:o})=>t.createVNode(C.NButton,t.mergeProps({type:"info"},n,{onClick:()=>n!=null&&n.onClick?n==null?void 0:n.onClick(t.unref(o)):l(t.unref(o))}),qe(e)?e:{default:()=>[e]}),switch:({key:l,props:n,read:e},{_isRead:o,_value:r})=>e??o?t.createVNode("div",null,[r[l]?"是":"否"]):t.createVNode(C.NSwitch,t.mergeProps({value:r[l],"onUpdate:value":s=>r[l]=s},n),{...(n==null?void 0:n.slots)||{}}),checkbox:({key:l,options:n=[],props:e,read:o},{_value:r,_isRead:s,labelField:a,valueField:f})=>{var i,d,y;return o??s?t.createVNode("div",null,[(y=(d=(i=t.unref(n))==null?void 0:i.filter(b=>{var N;return(N=t.unref(r)[l])==null?void 0:N.includes(b[(e==null?void 0:e.valueField)||f||P])}))==null?void 0:d.map(b=>b[[(e==null?void 0:e.labelField)||a||D]]))==null?void 0:y.join("、")]):t.createVNode(C.NCheckboxGroup,t.mergeProps({value:r[l],"onUpdate:value":b=>r[l]=b,style:{width:"100%"}},e),{...(e==null?void 0:e.slots)||{},default:()=>t.createVNode(C.NSpace,(e==null?void 0:e.checkBoxProps)||{},{default:()=>{var b;return[(b=t.unref(n))==null?void 0:b.map(N=>t.createVNode(C.NCheckbox,{key:N==null?void 0:N[(e==null?void 0:e.valueField)||f||P],value:N==null?void 0:N[(e==null?void 0:e.valueField)||f||P]},{default:()=>[N==null?void 0:N[(e==null?void 0:e.labelField)||a||D]]}))]}})})},filterList:({key:l,props:n,options:e},{_value:o})=>t.createVNode(t.resolveComponent("FilterSelect"),t.mergeProps({value:o[l],"onUpdate:value":r=>o[l]=r,option:e,clearable:!0,filterButtonKey:["all","selectDefault"]},n),null)};let q={};class $e{constructor(){K(this,"defaultMap",null);K(this,"extendOptions",null);console.log("DefaultOptions init"),this.defaultMap=null,this.init()}set(n,e){this.options.set(n,e)}get(n){return this.options.get(n)}clear(){this.defaultMap.clear()}setupOptions(n,e){const o=this.defaultMap.size>0?[...this.defaultMap.keys()]:[];if(this.defaultMap.has(n))return console.error(`${n} 已存在,不能使用${o==null?void 0:o.join("、")}`);this.defaultMap.set(n,e)}setupExtendOptions(n,e){q||(q={}),q!=null&&q[n]||(q[n]=e)}getAllOptions(){const n={};return this.defaultMap.forEach((e,o)=>{n[o]=e}),n}getOptions(n=[]){return console.log("getOptions",this.defaultMap),n.reduce((o,r)=>(this.defaultMap.has(r)&&(o[r]=this.defaultMap.get(r)),o),{})}initOptions(n=[]){Object.keys(n).forEach(e=>{this.setupOptions(e,n[e])})}initSetup(n){this.defaultMap&&this.clear(),this.defaultMap=new Map,this.initOptions(Ee),n&&n(),this.initOptions(q)}init(n){this.initSetup(n)}}const X=new $e,Z=(...l)=>X.getOptions(...l);function Ue(...l){return X.getAllOptions(...l)}function Te(...l){return X.setupExtendOptions(...l)}const Ye=["xlink:href","fill"],_e=t.defineComponent({__name:"SvgIcon",props:{name:{type:String,required:!0},color:{type:String,default:""}},setup(l){const n=l,e=t.computed(()=>`#svg-${n.name}`);return(o,r)=>(t.openBlock(),t.createElementBlock("svg",t.mergeProps({class:"svg-icon"},o.$attrs,{style:{color:l.color},"aria-hidden":""}),[t.createElementVNode("use",{"xlink:href":e.value,fill:l.color},null,8,Ye)],16))}}),Re=Y(_e,[["__scopeId","data-v-9dbe5f10"]]);function je(l){return typeof l=="function"||Object.prototype.toString.call(l)==="[object Object]"&&!t.isVNode(l)}const me=t.defineComponent((l,{emit:n})=>{const e=t.ref(l.value),o=t.computed(()=>l.read||!1);let r=l.formRef;t.watch(()=>l.formRef,u=>r=u);const s=t.computed(()=>l.option);function a(u){return u.reduce((g,m)=>{g.push((m==null?void 0:m.way)??"input");const h=[m==null?void 0:m.default,m==null?void 0:m.suffix,m==null?void 0:m.prefix].reduce((c,p)=>{var O;return Array.isArray(p)?c=c.concat(p):p&&((O=Object.keys(p))!=null&&O.length)&&c.push(p),c},[]);return console.log(h),h.length&&h.forEach(c=>g.push((c==null?void 0:c.way)??"input")),g},[])}const f=t.computed(()=>[...new Set(a(l.option))]),i=Z(f.value);console.log(l.option),console.log("defaultOption",i,f.value),t.watch(()=>e.value,u=>{n("update:value",u)},{immediate:!0});function d(u){let g={};const m=typeof u;let h=null;try{return u?m==="string"||m==="object"?h=u:m==="function"&&(h=u(t.unref(e),{formRef:r,resetForm:()=>{var c;return(c=r==null?void 0:r.value)==null?void 0:c.restoreValidation()},close:()=>l.cancel(),setValue:y})):h=u,typeof h=="object"&&!Array.isArray(h)?Object.keys(h).forEach(c=>{const p=h[c];t.isRef(p)?g[c]=t.unref(p):g[c]=p}):g=h,g}catch{return{}}}t.watch(()=>l.value,u=>{console.log(u),e.value=u},{immediate:!0});function y(u){e.value=u}function b(u){return t.createVNode(C.NSpace,t.mergeProps({"wrap-item":!1,wrap:!!(u!=null&&u.isWrap),align:"center",style:{width:"100%"}},(u==null?void 0:u.contentProps)||{}),{default:()=>[N(u==null?void 0:u.prefix),N((u==null?void 0:u.default)||u),N(u==null?void 0:u.suffix)]})}function N(u){if(!u)return;let g=u;if(typeof u=="function"&&(g=d(u)),g=d(g),t.isVNode(g))return console.log("??? isVNode"),g;if(typeof g=="string")return console.log("??? string"),g;if(Array.isArray(g))return console.log("???"),t.createVNode(t.Fragment,null,[g.map((m,h)=>t.createVNode(V,{item:m,index:h},null))]);if(typeof g=="object")return console.log("??? object"),g.props=d((g==null?void 0:g.props)??{}),t.unref(t.computed(()=>{var m;return(m=i==null?void 0:i[(g==null?void 0:g.way)||"input"])==null?void 0:m.call(i,S(g),{_value:g!=null&&g.queryType?t.unref(e)[g==null?void 0:g.queryType]:t.unref(e),_formRef:t.unref(r),_isRead:t.unref(o),labelField:D,valueField:P})}))}function S(u){return t.unref(u.enum)&&(u.options=Q(t.unref(u.enum))),u}function V({item:u,index:g}){var m,h,c,p,O,A;return u.formItemProps=d(u==null?void 0:u.formItemProps),u.formItemProps||(u.formItemProps={}),!((m=u==null?void 0:u.formItemProps)!=null&&m.labelWidth)&&((h=l.formProps)!=null&&h.labelWidth)&&(u.formItemProps.labelWidth=(c=l.formProps)==null?void 0:c.labelWidth),t.withDirectives(t.createVNode(C.NFormItem,t.mergeProps({key:g,showLabel:!(u!=null&&u.noLabel)},u==null?void 0:u.formItemProps,{labelWidth:((p=u==null?void 0:u.formItemProps)==null?void 0:p.labelWidth)||"auto",feedback:d((O=u==null?void 0:u.formItemProps)==null?void 0:O.feedback),style:{padding:"0 15px",boxSizing:"border-box",width:"100%",...((A=u==null?void 0:u.formItemProps)==null?void 0:A.style)||{}},path:String(u.key)}),{default:()=>b(u),label:()=>{var w,I;return t.createVNode("div",{class:u!=null&&u.labelClass||u!=null&&u.labelSuffix?` ${u==null?void 0:u.labelClass} flex items-center gap-col-9px`:""},[u!=null&&u.labelSuffix?typeof(u==null?void 0:u.labelSuffix)=="string"?t.createVNode(C.NIcon,{class:"wh-20px c-inherit",...u==null?void 0:u.labelSuffixProps},{default:()=>[t.createVNode(Re,{name:u==null?void 0:u.labelSuffix},null)]}):(w=u==null?void 0:u.labelSuffix)==null?void 0:w.call(u):t.createVNode(t.Fragment,null,null),`${t.unref(typeof(u==null?void 0:u[l.labelField])=="function"?(I=u==null?void 0:u[l.labelField])==null?void 0:I.call(u):u==null?void 0:u[l.labelField])||""} ${o.value||u.read," "}
2
- `])}}),[[t.resolveDirective("permission"),u==null?void 0:u.permission]])}return()=>{let u;return t.createVNode(C.NSpace,{"wrap-item":!1,size:[0,8],style:{width:"100%",minHeight:"100%",alignContent:"baseline",...l.style}},je(u=s.value.map(({isRender:g=!0,...m},h)=>(typeof t.unref(g)!="boolean"?g!=null&&g(t.unref(e)):t.unref(g))?m!=null&&m.render?m==null?void 0:m.render(t.unref(e),h,{setValue:y,value:t.unref(e)}):t.createVNode(V,{item:m,index:h},null):null))?u:{default:()=>[u]})}},{props:{option:{type:Array,default:()=>[]},value:{type:Object,default:()=>({})},read:{type:Boolean,default:()=>!1},labelField:{type:String,default:()=>D},valueField:{type:String,default:()=>P},style:{type:Object,default:()=>({})},formRef:{type:Object,default:()=>({})},formProps:{type:Object,default:()=>({})}},emits:["update:value"]}),ze={showIcon:!1,autoFocus:!1};function ye({options:l=[],model:n,labelField:e="label",formOpr:o={}}){return computed(()=>(l==null?void 0:l.reduce((r,{fields:s,...a})=>{var i,d;Array.isArray(a==null?void 0:a.key)&&a.key.forEach(y=>{a!=null&&a.required&&(r[String(y)]={key:y,type:"any",required:a!=null&&a.required?typeof(a==null?void 0:a.required)=="function"?a==null?void 0:a.required(unref(n),{...o}):a==null?void 0:a.required:!1,message:(a==null?void 0:a.message)||`请选择${a==null?void 0:a[e]}`,fields:s})});const f=a!=null&&a.rule?typeof(a==null?void 0:a.rule)!="function"?a==null?void 0:a.rule:a==null?void 0:a.rule(unref(n),{...o}):s?{key:a==null?void 0:a.key,type:"any",required:a!=null&&a.required?typeof(a==null?void 0:a.required)=="function"?a==null?void 0:a.required(unref(n),{...o}):a==null?void 0:a.required:!1,message:(a==null?void 0:a.message)||`请${(i=a==null?void 0:a.options)!=null&&i.length?"选择":"输入"}${a==null?void 0:a[e]}`,fields:s}:{key:a==null?void 0:a.key,type:"any",required:a!=null&&a.required?typeof(a==null?void 0:a.required)=="function"?a==null?void 0:a.required(unref(n),{...o}):a==null?void 0:a.required:!1,message:(a==null?void 0:a.message)||`请${(d=a==null?void 0:a.options)!=null&&d.length?"选择":"输入"}${a==null?void 0:a[e]}`,...Array.isArray(a==null?void 0:a.key)?{validator:y=>(console.log(y),!(a==null?void 0:a.key.every(N=>unref(n)[N]))&&(a!=null&&a.required)?new Error(y==null?void 0:y.message):!0)}:{}};return f!=null&&f.required&&(r[String(a==null?void 0:a.key)]=f),r},{}))||{})}const v={__name:"DataForm",props:t.mergeModels({isNo:{type:Boolean,default:()=>!0},read:{type:Boolean,default:()=>!1},labelField:{type:String,default:()=>"label"},contentStyle:{type:Object,default:()=>({})},options:{type:Array,default:()=>[]},rules:{type:Object,default:()=>({})},formProps:{type:Object,default:()=>({})},formItemProps:{type:Object,default:()=>({})},dialog:{type:Boolean,default:()=>!1}},{value:{type:Object,default:()=>({})},valueModifiers:{}}),emits:["update:value"],setup(l,{expose:n}){const e=l,o=computed(()=>e.options),r=t.ref(),s=t.useModel(l,"value"),a=computed(()=>t.unref(o.value?ye({options:o.value,model:s,labelField:e.labelField,formOpr:{formRef:r}}):{}));return console.log(a.value),n({formRef:r,getRule:()=>a.value,valid:(f=[])=>(console.log("?? valid",f),new Promise((i,d)=>{var b;const y=j(f);(b=r.value)==null||b.validate(N=>{if(N)return d(N);i()},N=>y.length?y.includes(N==null?void 0:N.key):!0)})),confirm:f=>new Promise((i,d)=>{var y;(y=r.value)==null||y.validate(b=>{if(b)return d(b);f&&f(t.unref(s)),i(t.unref(s))})})}),(f,i)=>(t.openBlock(),t.createBlock(t.unref(C.NForm),t.mergeProps({ref_key:"formRef",ref:r,model:s.value,rules:e.read?{}:t.unref(a),"label-placement":"left","label-width":"100px","require-mark-placement":"right-hanging",class:e.dialog?e.read?"core-dialog-content":"core-dialog-main":"",style:{minHeight:e.isNo?"unset":null}},e.formProps),{default:t.withCtx(()=>[t.createVNode(t.unref(me),{value:s.value,"onUpdate:value":i[0]||(i[0]=d=>s.value=d),"form-ref":r.value,option:e.options,"label-field":e.labelField,read:e.read,style:t.normalizeStyle(e.contentStyle),"form-props":e.formProps},null,8,["value","form-ref","option","label-field","read","style","form-props"])]),_:1},16,["model","rules","class","style"]))}};function Le(l){return typeof l=="function"||Object.prototype.toString.call(l)==="[object Object]"&&!t.isVNode(l)}function ge({title:l="",noTitle:n=!1,titleFull:e=null,options:o=[],mode:r="add",modeEnum:s={},labelField:a="label",isNo:f=!0,formProps:i={},interfaceFn:d=null,interfaceFnCancel:y=null,valueData:b,read:N,isRead:S,action:V=null,contentStyle:u={},actionProps:g={}}={title:"自定义弹窗",noTitle:!1,action:[],options:[],read:!1,isRead:!1,valueData:{}},m=null){var le;const h={none:{sub:"",read:!1},create:{sub:"创建",read:!1},add:{sub:"添加",read:!1},edit:{sub:"编辑",read:!1},view:{sub:"查看",read:!0},export:{sub:"导出",read:!1},import:{sub:"导入",read:!1},delete:{sub:"删除",read:!1},copy:{sub:"复制",read:!1},...s},c=t.ref(),p=t.reactive([]),O=t.ref({...b}),A={justify:"end",wrapItem:!1,style:{width:"100%"}},w={width:"120px"},I=[{label:"取消",props:{type:"primary",ghost:!0},onClick:({cancel:B})=>{y?y(t.unref(O),{close:B}):B()}},{label:"确定",valid:!0,onClick:async({cancel:B,hideLoading:x})=>d?await d(t.unref(O),{close:B,hideLoading:x}):B()}];V||I.forEach((B,x)=>{p[x]=!1});const E=typeof e=="function"?()=>{var B;return e((B=h[r])==null?void 0:B.sub)}:e,F=$dialog.create({type:"info",...ze,...n?{}:{title:E||(((le=h[r])==null?void 0:le.sub)??"")+l},style:{width:"500px"},content:()=>t.createVNode(v,{ref:B=>{c.value=B},options:o,value:O.value,"onUpdate:value":B=>O.value=B,isNo:f,read:N??S,labelField:a,formProps:i,contentStyle:u,dialog:!0},null),action:N??S?null:typeof V=="function"?()=>V({formRef:c,data:t.unref(O),d:F,close:U}):()=>{let B;return t.createVNode(C.NSpace,t.mergeProps(A,g,{style:{...A==null?void 0:A.style,...(g==null?void 0:g.style)||{}}}),Le(B=(V||I).map((x,z)=>{var ne;return x!=null&&x.render?(ne=x==null?void 0:x.render)==null?void 0:ne.call(x):t.createVNode(C.NButton,t.mergeProps({type:"primary",ghost:x.mode==="cancel"},{...x==null?void 0:x.props,...g==null?void 0:g.buttonProps},{style:{...w,...(x==null?void 0:x.style)||{}},loading:p[z],onClick:async()=>{if(x.mode==="cancel")F.destroy();else{const L=()=>p[z]=!0,ae=()=>p[z]=!1;x!=null&&x.loading&&L();try{console.log("model",t.unref(O)),x!=null&&x.valid&&await _(),console.log(x==null?void 0:x.valid),(x!=null&&x.valid||x!=null&&x.loading)&&L(),await(x==null?void 0:x.onClick({model:t.unref(O),comfirm:be,cancel:U,validate:_,showLoading:L,hideLoading:ae}))}catch(xe){console.log(xe)}finally{(x!=null&&x.valid||x!=null&&x.loading)&&ae()}}}}),{default:()=>[x.label||""]})}))?B:{default:()=>[B]})},...m,class:`core-dialog ${t.unref(N)?"core-dialog-read":""} ${(m==null?void 0:m.class)||""}`});function U(){console.log("取消",O.value),F==null||F.destroy()}async function _(B=[]){var x;console.log("开启验证"),await((x=c.value)==null?void 0:x.valid())}async function be(B){return B&&B()}return{cancel:U,setValue:(B,x)=>x?O.value[x]=B:O.value={...O.value,...B},model:t.unref(O),modeEnum:h}}const Ke={class:"flex-1"},We={__name:"CommonQuery",props:t.mergeModels({inlineText:{type:Boolean,default:()=>!0},options:{type:Array,default:()=>[]},query:{type:Object,default:()=>({})},selectCount:{type:Number,default:()=>1},type:{type:String,default:()=>"primary"},noButton:{type:Boolean,default:()=>!1},isRead:{type:Boolean,default:()=>!1},btn:{type:Array,default:()=>["reset","search"]},size:{type:String,default:()=>"medium"}},{query:{type:Object,default:()=>({})},queryModifiers:{}}),emits:t.mergeModels(["update:query","submit","reset"],["update:query"]),setup(l,{emit:n}){function e(m,h){let c;return function(...p){clearTimeout(c),c=setTimeout(()=>{m.apply(this,p)},h)}}const o=n,r=l;function s(m){return m.map(h=>({...h,props:{...h.props,...!h.way||h.way==="input"?{onUpdateValue:(...c)=>{var p,O;(O=(p=c.props)==null?void 0:p.onUpdateValue)==null||O.call(p,...c),a()}}:{},...(h==null?void 0:h.way)==="select"?{onUpdateValue:(...c)=>{var p,O;(O=(p=c.props)==null?void 0:p.onUpdateValue)==null||O.call(p,...c),a()}}:{}}}))}const a=e(()=>{o("submit")},500);function f(){a()}const i=t.ref(!1),d=t.useModel(l,"query"),y={style:{width:"33%"}},b=t.computed(()=>{var m;return(m=r.options)==null?void 0:m.map(h=>(h==null?void 0:h.way)||"input")});Z(b.value);const N=t.computed(()=>{try{const m=[];for(let h=0;h<r.options.length;h++){const c=r.options[h];c!=null&&c.enum&&!(c!=null&&c.options)&&(c.options=Q(c.enum)),c!=null&&c.props||(c.props={size:r.size}),c!=null&&c.formItemProps?c.formItemProps={...y,...c.formItemProps,style:{...y.style,...c.formItemProps.style}}:c.formItemProps={...y};const p=(c==null?void 0:c.key)||(c==null?void 0:c.value);if(!p)throw new Error("key no set");m.push({...c,key:p})}return s(m)}catch(m){return console.warn("error",m),[]}}),S={style:{borderRadius:"3px"}},V={search:()=>t.createVNode(t.resolveComponent("NButton"),t.mergeProps({type:r.type,loading:i.value,"default-props":{attrType:"submit"},onClick:()=>f()},S),{default:()=>"搜索",icon:()=>t.createVNode($.SearchOutline,null,null)}),reset:()=>t.createVNode(t.resolveComponent("NButton"),t.mergeProps({type:"default",onClick:()=>{u()}},S),{default:()=>"重置",icon:()=>t.createVNode($.RefreshOutline,null,null)})};function u(){r.options.forEach(m=>{const h=(m==null?void 0:m.key)||(m==null?void 0:m.value);h&&(m!=null&&m.queryType?d.value[m.queryType][h]=null:d.value[h]=null)}),o("reset")}function g(m){m.key==="Enter"&&f()}return t.onMounted(()=>{document.addEventListener("keydown",g)}),t.onUnmounted(()=>{document.removeEventListener("keydown",g)}),(m,h)=>{const c=t.resolveComponent("n-space");return t.openBlock(),t.createBlock(c,{"wrap-item":!1,justify:"space-between",align:"center",wrap:!1},{default:t.withCtx(()=>[t.createElementVNode("div",Ke,[t.createVNode(t.unref(v),{value:d.value,"onUpdate:value":h[0]||(h[0]=p=>d.value=p),options:N.value,"form-props":{showFeedback:!1}},null,8,["value","options"])]),r.noButton?t.createCommentVNode("",!0):(t.openBlock(),t.createBlock(c,{key:0,align:"center",wrap:!1},{default:t.withCtx(()=>[t.renderSlot(m.$slots,"left-btn",{},void 0,!0),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.btn,(p,O)=>{var A;return t.openBlock(),t.createBlock(t.resolveDynamicComponent((A=V==null?void 0:V[p])==null?void 0:A.call(V)),{key:O})}),128)),t.renderSlot(m.$slots,"right-btn",{},void 0,!0)]),_:3}))]),_:3})}}},He=Y(We,[["__scopeId","data-v-a0acb8e2"]]),ee=t.defineComponent(({action:l,row:n,index:e})=>{const{onClick:o,disabled:r,type:s="primary",loading:a=!1,label:f=null,...i}=l,d=t.ref(!1);return()=>t.createVNode(C.NButton,t.mergeProps({text:!0,onClick:async()=>{if(o)try{a&&(d.value=!0),await o(n,e)}finally{setTimeout(()=>d.value=!1,500)}},disabled:r&&r(n),loading:d.value,type:r&&r(n)?"default":s},i),{default:()=>[typeof f=="function"?f==null?void 0:f(n):f]})},{props:{action:{type:[Object,null],default:null},row:{type:[Object,null],default:null},index:{type:Number,default:0}}}),te=t.defineComponent(({onClick:l,row:n,index:e,action:o},{slots:r})=>{const s=t.ref(!1);return()=>t.createVNode(C.NPopconfirm,{"positive-button-props":{type:"warning",loading:s.value},onPositiveClick:async()=>{try{if(l)return s.value=!0,await l(n,e),s.value=!1,!0}catch{return s.value=!1,!1}return!1}},{trigger:r.default,default:()=>{var a;return((a=o==null?void 0:o.popProps)==null?void 0:a.content)||(o==null?void 0:o.content)||"确定删除该记录?"}})},{props:{onClick:{type:[Function,null],default:null},row:{type:[Object,null],default:null},action:{type:[Object,null],default:null},index:{type:Number,default:0}}});function se(l){return typeof l=="function"||Object.prototype.toString.call(l)==="[object Object]"&&!t.isVNode(l)}const Je=t.defineComponent(l=>{const n=l.options.length,e=t.ref(!1),o=t.computed(()=>l.options.slice(0,e.value?n:l.max)),r=t.computed(()=>l.options.slice(l.max));function s(a){return a==null?void 0:a.map(({isRender:f=()=>!0,onClick:i=null,mode:d=null,disabled:y=!1,type:b="primary",...N},S)=>f!=null&&f(l.data)?d==="pop"?t.createVNode(te,{onClick:i,row:l.data,action:N,key:T(l.data,l.index)+S},{default:()=>[t.createVNode(C.NButton,t.mergeProps({text:!0,disabled:y&&y(l.data),type:y&&y(l.data)?"default":b},N),{default:()=>[typeof(N==null?void 0:N.label)=="function"?N==null?void 0:N.label(l.data):N==null?void 0:N.label]})]}):t.createVNode(ee,{row:l.data,action:{...N,disabled:y,onClick:i,type:b},key:T(l.data,l.index)+S},null):void 0).filter(f=>f)}return()=>{let a;return t.createVNode(C.NSpace,{style:{width:"100%"},"wrap-item":!1,justify:"center",align:"center"},{default:()=>[t.createVNode(C.NSpace,{"wrap-item":!1,align:"center"},se(a=s(o.value))?a:{default:()=>[a]}),t.createVNode(C.NPopover,{trigger:"click"},{trigger:()=>t.createVNode(C.NButton,{text:!0,type:"info"},{default:()=>[t.createTextVNode("更多")]}),default:()=>{let f;return t.createVNode(C.NSpace,{"wrap-item":!1,align:"center",style:{width:"250px",padding:"5px"}},se(f=s(r.value))?f:{default:()=>[f]})}})]})}},{name:"DataColumnCollet",props:{options:{type:Array,default:()=>[]},max:{type:Number,default:3},data:{type:Object,default:()=>{}},index:{type:Number,default:0}}});function Ge(l){return typeof l=="function"||Object.prototype.toString.call(l)==="[object Object]"&&!t.isVNode(l)}const T=(l,n)=>l?JSON.stringify(l):n;function Qe(l,n=null,e){const o={max:4,width:80};let r=!1;if(typeof e=="boolean"?r=o:typeof e=="object"&&(r={...o,...e}),console.log("collect",r),console.log(Array.isArray(l)),!Array.isArray(l))throw new TypeError("需要配置数组");console.log("ddd");let s=[],a=0;const f=[];return Array.isArray(l)&&(s=l,s.forEach((i,d)=>{var y,b;i.permission?Ce.hasPermission(i.permission)&&((!e||d<r.max)&&(a+=((y=i==null?void 0:i.label)==null?void 0:y.length)*12+36),f.push(i)):((!e||d<r.max)&&(a+=((b=i==null?void 0:i.label)==null?void 0:b.length)*12+36),f.push(i))})),a=Math.max(80,a),a+=0,r&&(a+=2),f.length?{title:"操作",key:"opr",fixed:"right",align:"left",width:a,...n,render(i,d){const y=r?t.createVNode(Je,{data:i,index:d,max:r.max,options:f},null):f.map(({isRender:b=()=>!0,onClick:N=null,mode:S=null,disabled:V=!1,type:u="primary",...g},m)=>b!=null&&b(i)?S==="pop"?t.createVNode(te,{onClick:N,row:i,index:d,action:g,key:T(i,d)+m},{default:()=>[t.createVNode(C.NButton,t.mergeProps({text:!0,disabled:V&&V(i),type:V&&V(i)?"default":u},g),{default:()=>[typeof(g==null?void 0:g.label)=="function"?g==null?void 0:g.label(i):g==null?void 0:g.label]})]}):t.createVNode(ee,{row:i,action:{...g,disabled:V,onClick:N,type:u},index:d,key:T(i,d)+m},null):void 0).filter(b=>b);return n!=null&&n.isRender?n==null?void 0:n.render(i):t.createVNode(C.NSpace,{align:"center","wrap-item":!1,size:18,key:T(i,d)},Ge(y)?y:{default:()=>[y]})}}:void 0}function he(l){var n,e;if((n=l==null?void 0:l.children)!=null&&n.length){const o=[];l.children.forEach(r=>{var a,f,i,d;he(r);let s=[];typeof((a=r==null?void 0:r.meta)==null?void 0:a.permission)=="string"?s=[r.meta.permission]:Array.isArray((f=r.meta)==null?void 0:f.permission)?s.push(...r.meta.permission):typeof((i=r.meta)==null?void 0:i.permission)=="object"?s.push(...Xe(pe(r.meta.permission))):(d=r==null?void 0:r.meta)!=null&&d.permission||(s=null),r.meta.permission=s,o.push(...new Set(s))}),(e=l==null?void 0:l.meta)!=null&&e.permission?l.meta.permission=[...new Set(l.meta.permission.concat(o))]:l.meta.permission=o}return l}function Xe(...l){const n=l==null?void 0:l.map(e=>Array.isArray(e)?e:e==null?void 0:e.ALL);return[].concat(...n)}function pe(l){return l?Object.keys(l).reduce((n,e)=>(typeof l[e]!="string"?n.concat(pe(l[e])):n.push(l[e]),n),[]):[]}function Ze(...l){return{...et("api",l)}}function ve(l,n={}){const e=Object.keys(n);return e.length&&e.forEach(o=>{const r=new RegExp(`${o}`,"g");l=l==null?void 0:l.replace(r,n[o])}),l}function et(l,n){var a;const e=W.useRoute(),o=W.useRouter(),r=ce(((a=e==null?void 0:e.meta)==null?void 0:a[l])??{}),s=j(n[0]);return s!=null&&s.length&&o.getRoutes().filter(i=>s.includes(i.name)).forEach(i=>{var d;(d=i.meta)!=null&&d[l]&&(r[i.name]=ce(i.meta[l]))}),{...r}}function ce(l={}){return Object.keys(l).reduce((n,e)=>{const o=l[e];return typeof o=="object"?n[e]=o==null?void 0:o.key:typeof o=="string"&&(n[e]=String(o)),n},{})}function Ne(l,n=""){return l.length?(l.forEach(e=>{var s;e.children&&Ne(e.children,e==null?void 0:e.path),e.path&&(e.sourceFullPath=`${n?`${n}/`.replace(/^\/\//,"/"):""}${e.path}`),e.meta||(e.meta={});const o=(e==null?void 0:e.title)??((s=e==null?void 0:e.meta)==null?void 0:s.title)??"未命名页面";e!=null&&e.api&&(e.meta.api=e.api),o&&(e.meta.title=o,e.title=o),e!=null&&e.hidden&&(e.meta.hidden=e.hidden);let r=[];e!=null&&e.auth&&(e.meta.auth=e.auth,r=Object.keys(e.auth).reduce((a,f)=>(typeof e.auth[f]=="string"?a.push(e.auth[f]):typeof e.auth[f]=="boolean"&&a.push(f),a),[])),e!=null&&e.permission&&(e.meta.permission=e.permission),e.meta.permission&&Array.isArray(e.meta.permission)?e.meta.permission=e.meta.permission.concat(r):r.length&&(e.meta.permission=r)}),l):[]}const R={ascend:{title:"升序",value:!0,Icon:t.createVNode($.ChevronUp,null,null),fn:(l,n)=>{l.desc=!0,l.sortFieldName=n}},descend:{title:"降序",value:!1,Icon:t.createVNode($.ChevronDown,null,null),fn:l=>{l.sortFieldName="",l.desc=!0}},false:{title:"默认",value:null,Icon:t.createVNode($.Code,{style:"transform:rotateZ(90deg)"},null),fn:l=>{l.desc=!1,l.sortFieldName=""}}};exports.ArrayToObject=G;exports.CommonQuery=He;exports.DataForm=v;exports.DataTable=fe;exports.ObjectToArray=Q;exports.OprButton=ee;exports.Options=me;exports.Pop=te;exports.cellectChildenPermission=he;exports.commonDialogMethod=ge;exports.createActionColumnJsx=Qe;exports.customUpload=de;exports.ellipsis=H;exports.getAllOptions=Ue;exports.getOptions=Z;exports.globalLabelField=D;exports.globalValueField=P;exports.handleParams=ve;exports.initRouteMeta=Ne;exports.initRules=ye;exports.orderEnum=R;exports.registryUpload=Pe;exports.setupOptions=Te;exports.toArray=j;exports.useApiConfig=Ze;
1
+ "use strict";var qe=Object.defineProperty;var $e=(t,n,e)=>n in t?qe(t,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[n]=e;var v=(t,n,e)=>$e(t,typeof n!="symbol"?n+"":n,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("vue"),C=require("naive-ui"),z=require("@vicons/ionicons5"),te=require("vue-router"),q=require("dayjs"),ye=require("lodash-es"),E="name",k="id";function re(t,{labelField:n=E,valueField:e=k}={}){return Object.keys(t).reduce((o,a)=>{const i=Te(t[a],a),r={...i};return r[n]=i==null?void 0:i[n],r[e]=i==null?void 0:i[e],o.concat(r)},[])}function Te(t,n){const e={[E]:l.unref(t),[k]:Number.isNaN(Number(n))?n:Number(n)};return typeof l.unref(t)=="object"?{...l.unref(t),[k]:Number.isNaN(Number(n))?n:Number(n)}:e}const le={style:{cursor:"pointer"},tooltip:{flip:!0,arrowPointToCenter:!0,contentStyle:{minWidth:"100px",maxWidth:"300px",maxHeight:"300px",overflowY:"auto",whiteSpace:"pre-line",boxSizing:"border-box",margin:"0 -14px",padding:"0 14px"},arrowStyle:{backgroundColor:"--n-color"}}},W=(t,n)=>{const e=t.__vccOpts||t;for(const[o,a]of n)e[o]=a;return e},Re={class:"filter-box"},Ye={class:"filter-footer"},_e={__name:"FilterDialog",props:{type:{type:String,default:()=>"primary"},filterItem:{type:Array,default:()=>[]},selectItem:{type:Array,default:()=>[]},defaultItem:{type:Array,default:()=>[]},filterButtonKey:{type:Array,default:()=>["all","selectDefault"]}},emits:["submit"],setup(t,{emit:n}){var g,p;l.useCssVars(D=>({e0ecc754:l.unref(a).infoColor}));const e=t,o=n,a=C.useThemeVars(),i=l.ref([]);l.watchEffect(()=>{i.value=e.selectItem});const r=l.ref([]),c=[{key:"all",label:"全选",onCheck:()=>{var D;return i.value=(D=e.filterItem)==null?void 0:D.map(O=>O.key)},unCheck:()=>i.value=[]},{key:"selectDefault",label:"选中默认",onCheck:()=>i.value=e.defaultItem,unCheck:()=>i.value=e.selectItem},{key:"currentSelect",label:"选中当前列表",onCheck:()=>i.value=e.selectItem,unCheck:()=>i.value=e.selectItem}];l.watchEffect(()=>{r.value=c.filter(D=>e.filterButtonKey.includes(D.key)),console.log(e.filterButtonKey)});function s(){o("submit",i.value)}const d=l.ref(((g=e.filterItem)==null?void 0:g.length)===((p=e.selectItem)==null?void 0:p.length)?["all"]:[]);function y(D,O){var A,P,u,N;console.log(D),console.log(O),O.actionType==="uncheck"?((P=(A=r.value)==null?void 0:A.find(f=>(f==null?void 0:f.key)===O.value))==null||P.unCheck(),d.value=[]):((N=(u=r.value)==null?void 0:u.find(f=>(f==null?void 0:f.key)===O.value))==null||N.onCheck(),d.value=[O.value])}return(D,O)=>{const A=l.resolveComponent("n-ellipsis"),P=l.resolveComponent("n-checkbox"),u=l.resolveComponent("n-checkbox-group"),N=l.resolveComponent("n-button");return l.openBlock(),l.createElementBlock("div",Re,[l.createVNode(u,{value:i.value,"onUpdate:value":O[0]||(O[0]=f=>i.value=f),class:"filter-main"},{default:l.withCtx(()=>[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(t.filterItem,f=>(l.openBlock(),l.createBlock(P,{key:f.key,value:f.key,class:"filter-item"},{default:l.withCtx(()=>[l.createVNode(A,{style:{"max-width":"100px"}},{default:l.withCtx(()=>[l.createTextVNode(l.toDisplayString(f.title),1)]),_:2},1024)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),l.createElementVNode("div",Ye,[l.createVNode(u,{type:e.type,value:d.value,"onUpdate:value":y},{default:l.withCtx(()=>[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(r.value,f=>(l.openBlock(),l.createBlock(P,{key:f.key,value:f.key},{default:l.withCtx(()=>[l.createTextVNode(l.toDisplayString(f.label),1)]),_:2},1032,["value"]))),128))]),_:1},8,["type","value"]),l.createVNode(N,{class:"submit-btn",type:e.type,onClick:s},{default:l.withCtx(()=>[...O[1]||(O[1]=[l.createTextVNode(" 保存 ",-1)])]),_:1},8,["type"])])])}}},Le=W(_e,[["__scopeId","data-v-2aba8b9e"]]),F={baseURL:"",hasPermission:null,uploadMethod:null,dialog:{instance:null,inheritTheme:!0,themeOverrides:null}};function be(t={}){if(t.baseURL!==void 0&&(F.baseURL=t.baseURL),t.hasPermission!==void 0){if(typeof t.hasPermission!="function")throw new TypeError("hasPermission 必须是一个函数");F.hasPermission=t.hasPermission}if(t.uploadMethod!==void 0){if(typeof t.uploadMethod!="function")throw new TypeError("uploadMethod 必须是一个函数");F.uploadMethod=t.uploadMethod}if(t.dialog!==void 0){if(typeof t.dialog!="object")throw new TypeError("dialog 必须是一个对象");t.dialog.instance!==void 0&&(F.dialog.instance=t.dialog.instance),t.dialog.inheritTheme!==void 0&&(F.dialog.inheritTheme=t.dialog.inheritTheme),t.dialog.themeOverrides!==void 0&&(F.dialog.themeOverrides=t.dialog.themeOverrides)}return F}function je(){return{...F}}function we(){return F.baseURL}function ze(){return F.hasPermission}function xe(){return F.uploadMethod}function Ce(){return{...F.dialog}}function ae(t){F.dialog.instance=t}function Ke(){return F.dialog.instance}function G(t){return F.hasPermission?F.hasPermission(t):(console.warn("hasPermission 未配置,默认返回 true。请使用 setupConfig 配置权限检查函数。"),!0)}const Ve={mounted(t,n){const e=n.value;if(!e)return;(Array.isArray(e)?e:[e]).some(i=>G(i))||(t.style.display="none",t._originalDisplay=t.style.display||"")},updated(t,n){const e=n.value;if(!e){t._originalDisplay!==void 0?t.style.display=t._originalDisplay||"":t.style.display="";return}(Array.isArray(e)?e:[e]).some(i=>G(i))?t._originalDisplay!==void 0?t.style.display=t._originalDisplay||"":t.style.display="":t.style.display="none"},unmounted(t){delete t._originalDisplay}};let Oe=null;function _(t){var n;t&&(Oe=t,(n=t._context.directives)!=null&&n.corePermission||t.directive("corePermission",Ve))}function We(){var t;try{const n=typeof require<"u"?require("vue"):null;if(!n)return!1;const{getCurrentInstance:e}=n,o=e==null?void 0:e();if((t=o==null?void 0:o.appContext)!=null&&t.app)return _(o.appContext.app),!0}catch{}return!1}function De(){return Oe}const ge="filter_key",He={__name:"DataTable",props:{data:{type:Array,default:()=>[]},pagination:{type:[Object,null],default:()=>{}},columns:{type:Array,default:()=>[{title:"测试案例"}]},oprColumns:{type:[Object,null],default:()=>null},selectColumns:{type:[Object,null],default:()=>null},defaultColumns:{type:Array,default:()=>[]},summaryColumns:{type:null,default:()=>null},emptyText:{type:String,default:()=>"没有数据"},emptyIcon:{type:String,default:()=>""},isFilter:{type:Boolean,default:()=>!1},isEllipsis:{type:Boolean,default:()=>!0},virtual:{type:null,default:()=>{}},singleColumn:{type:Boolean,default:()=>!1}},emits:["sorted"],setup(t,{expose:n,emit:e}){var b;const o=l.getCurrentInstance();(b=o==null?void 0:o.appContext)!=null&&b.app&&_(o.appContext.app);const a=t,i=te.useRoute(),r=e,c=()=>{try{return(i==null?void 0:i.fullPath)||(i==null?void 0:i.path)||""}catch{return""}},s=l.computed(()=>(console.log("table -data",a.data),a.data));function d(m){window.localStorage.setItem(ge,JSON.stringify(m))}function y(){return JSON.parse(window.localStorage.getItem(ge))||{}}const g=l.ref(y()),p=l.ref([]),D=l.ref(0);function O(m){if(a.summaryColumns)return[a.selectColumns,...l.unref(a.columns),a.oprColumns].reduce((h,x)=>{var B,U;return x!=null&&x.key?h[x.key]=((U=(B=a.summaryColumns)==null?void 0:B.call(a,m))==null?void 0:U[x.key])||{value:null}:h[ye.uniqueId("table")]={value:null},h},{})}const A=l.ref([]);l.watch(()=>l.unref(a.columns),()=>{P()},{immediate:!0}),l.watch(()=>a.oprColumns,m=>{console.log("oprColumns",m)});function P(){var U;const m=l.unref(a.columns),h=c();p.value=h&&((U=g.value)==null?void 0:U[h])||(m==null?void 0:m.map((M,V)=>(M==null?void 0:M.key)||q().valueOf()+V));const x=a.isFilter?m.filter(M=>{var V;return(V=p.value)==null?void 0:V.includes(M.key)}):[...m];a.selectColumns&&x.unshift({key:"selectKey",...a.selectColumns}),a.oprColumns&&x.push(a.oprColumns);let B=0;A.value=x.reduce((M,V)=>{var R;if(V!=null&&V.display&&console.log("display",V==null?void 0:V.display),!((V==null?void 0:V.display)??!0))return M;const I={align:"center",width:120,...V,key:(V==null?void 0:V.key)||ye.uniqueId("table"),ellipsis:V!=null&&V.ellipsis||a.isEllipsis?V!=null&&V.ellipsisProp?V==null?void 0:V.ellipsisProp(le):le:!1,"ellipsis-component":"ellipsis",title:()=>{const $=(V==null?void 0:V.label)||(V==null?void 0:V.title)||"";return l.createVNode("div",{style:{width:"100%",whiteSpace:"pre-wrap"}},[typeof $=="string"?$:$==null?void 0:$()])}};return V!=null&&V.sorter&&(I.renderSorterIcon=({order:$})=>{const{Icon:H,title:S}=Q[$];return l.createVNode(C.NTooltip,null,{trigger:()=>H,default:()=>S})},I.sorter={multiple:1,fn:V.sorter}),B+=I!=null&&I.width?Number.parseInt(I==null?void 0:I.width):((R=I==null?void 0:I.title)==null?void 0:R.length)*I.length+30||0,M.push(I),M},[]),D.value=B,console.log("计算")}function u(){return l.createVNode(C.NButton,{type:"info",onClick:()=>N()},{default:()=>"筛选字段",icon:()=>l.createVNode(z.Funnel,null,null)})}function N(){const{cancel:m}=se({title:"筛选字段",read:!0,options:[{render:()=>l.createVNode(Le,{style:{width:"100%",margin:"0",padding:0},filterItem:l.unref(a.columns),selectItem:p.value,defaultItem:a.defaultColumns,onSubmit:h=>{const x=c();x&&(g.value[x]=h,d(g.value)),P(),m()}},null)}]},{closable:!1,style:{width:"500px"}})}function f(m){if(console.log("onSorter",m),!m)return;J(m).forEach(x=>{var B,U;console.log("v",x),x!=null&&x.sorter&&((U=x==null?void 0:x.sorter)==null||U.fn((M,V,I)=>{var R;(R=Q[x.order])==null||R.fn(M,I),V.fetchData()},{field:x==null?void 0:x.columnKey,value:(B=Q[x==null?void 0:x.order])==null?void 0:B.value,isClick:!l.isProxy(x)}))}),r("sorted")}return n({filterHandle:N,filterButton:u,initColumns:P}),l.onMounted(()=>{}),(m,h)=>{const x=l.resolveComponent("n-empty"),B=l.resolveComponent("n-data-table");return l.openBlock(),l.createBlock(B,{data:s.value,columns:A.value,"scroll-x":D.value,"single-column":a.singleColumn,summary:a.summaryColumns?O:void 0,"summary-placement":"bottom",pagination:a.pagination,"row-props":()=>({style:{height:"60px"}}),"flex-height":"",remote:"","virtual-scroll":a.virtual??a.data.length>1e3,style:{flex:"1"},"onUpdate:sorter":f},{empty:l.withCtx(()=>[l.renderSlot(m.$slots,"empty",{},()=>[l.createVNode(x,null,{default:l.withCtx(()=>[l.createTextVNode(l.toDisplayString(t.emptyText),1)]),_:1})],!0)]),_:3},8,["data","columns","scroll-x","single-column","summary","pagination","virtual-scroll"])}}},Pe=W(He,[["__scopeId","data-v-d6710561"]]);function Qe(t){be({uploadMethod:t})}function Se(...t){const n=xe();if(typeof n!="function")throw new TypeError("请先通过 setupConfig({ uploadMethod: fn }) 或 registryUpload(fn) 注册上传实现");return n(...t)}function T(t,n=null){if(t&&!(t!=null&&t.startsWith("http"))){const e=we();return e?n?`${e}${t}?x-oss-process=style/w${n}`:`${e}${t}`:(console.warn('BASE_URL 未配置,返回原始 URL。请使用 setupConfig({ baseURL: "..." }) 配置。'),t)}return t}const Ge="/admin/file",Je={__name:"ImagesUpload",props:{value:{type:[Array,String],default:()=>[]},max:{type:Number,default:()=>5},lib:{type:Boolean,default:()=>!0},clip:{type:Boolean,default:()=>!1},read:{type:Boolean,default:()=>!1},size:{type:Number,default:()=>100},width:{type:Number,default:()=>100},height:{type:Number,default:()=>100},mode:{type:String,default:()=>"fill"},formData:{type:Object,default:()=>{}}},emits:["update:value","complete"],setup(t,{emit:n}){const e=t,o=n,a=l.ref([]);l.watch(()=>e.value,s=>{console.log("props.value",s),a.value=e.max===1?s?typeof s!="string"?s!=null&&s.length?[{id:q().valueOf(),name:`img${q().valueOf()}`,url:T(s[0]),thumbnailUrl:T(s[0]),fullPath:s[0],status:"finished"}]:[]:[{id:q().valueOf(),name:`img${q().valueOf()}`,url:T(s),fullPath:s,thumbnailUrl:T(s),status:"finished"}]:[]:(s==null?void 0:s.map((d,y)=>({id:q().valueOf()+y,name:`img${q().valueOf()}`,url:T(d),fullPath:d,thumbnailUrl:T(d),status:"finished"})))||[],console.log("1",a.value)},{immediate:!0});function i(...s){r(s[0])}async function r({file:s,onFinish:d,onError:y,onProgress:g},p){const D=new FormData;s.status==="pending"&&(D.append("file",s.file),e.formData&&Object.keys(e.formData).length&&Object.keys(e.formData).forEach(O=>{D.append(O,e.formData[O])}),Se({url:Ge,data:D,method:"post",onUploadProgress:({percent:O})=>g({percent:O})}).then(O=>{const{url:A}=O.data;s.url=T(A),s.fullPath=A,s.thumbnailUrl=T(A),d(),c()}).catch(()=>{s=null,y()}).finally(()=>{}))}function c(){console.log("onSubmit",a.value);const s=a.value.reduce((d,y)=>(y.status==="finished"&&(y!=null&&y.fullPath)&&d.push(y.fullPath),d),[]);e.max===1&&s.length===1?o("update:value",s[0]):s.length?o("update:value",s):o("update:value",e.max===1?null:[])}return(s,d)=>{const y=l.resolveComponent("n-upload"),g=l.resolveComponent("n-space");return l.openBlock(),l.createBlock(g,{align:"end","wrap-item":!1},{default:l.withCtx(()=>[l.createVNode(y,{"file-list":a.value,"onUpdate:fileList":d[0]||(d[0]=p=>a.value=p),accept:".jpeg,.jpg,.png","list-type":"image-card","custom-request":i,max:e.read?Array.isArray(e.value)?e.value.length:1:e.max,"show-retry-button":!1,"show-remove-button":!e.read,class:"upload-box",style:l.normalizeStyle({...e.size?{"--image-w":`${e.size}px`,"--image-h":`${e.size}px`}:{"--image-w":`${e.width}px`,"--image-h":`${e.height}px`},"--image-mode":e.mode}),onFinish:d[1]||(d[1]=()=>{c(),o("complete")}),onRemove:d[2]||(d[2]=(p,D)=>(a.value.splice(D,1),c(),!1))},null,8,["file-list","max","show-remove-button","style"])]),_:1})}}},Xe=W(Je,[["__scopeId","data-v-54e2cc87"]]);function ne(t=[],{labelField:n=E,valueField:e=k}={labelField:E,valueField:k}){return l.unref(t).reduce((o,a)=>(o[a[e]]={...a,[n]:a[n],[e]:a[e]},o),{})}function J(t){return Array.isArray(t)?t:[t]}function pe(t,n="YYYY-MM-DD",e={emptyText:""}){return t?q(Number.isNaN(Number(t))?t:Number(t)).format(n):(e==null?void 0:e.emptyText)||""}function Ze(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!l.isVNode(t)}const ve={input:({label:t,key:n,props:e,readProps:o,format:a=null,read:i},{_value:r,_isRead:c})=>i??c?l.createVNode(C.NEllipsis,o,{default:()=>[a?a==null?void 0:a(l.unref(r)[n],l.unref(r)):l.unref(r)[n]]}):l.createVNode(C.NInput,l.mergeProps({value:r[n],"onUpdate:value":s=>r[n]=s,clearable:!0,placeholder:`请输入${l.unref(t)}`},e),{...(e==null?void 0:e.slots)||{}}),select:({label:t,key:n,props:e,options:o=[],loading:a=!1,format:i=null,read:r},{_value:c,_isRead:s})=>{var y,g;const d=(Array.isArray(l.unref(o))?l.unref(o):o==null?void 0:o(c[n]))||[];return r??s?l.createVNode("div",null,[i?i==null?void 0:i(c[n],d):(g=(y=ne(d,(e==null?void 0:e.labelField)||E,(e==null?void 0:e.valueField)||k))==null?void 0:y[c[n]])==null?void 0:g[(e==null?void 0:e.labelField)||E]]):l.createVNode(C.NSelect,l.mergeProps({value:c[n],"onUpdate:value":p=>c[n]=p,options:d,loading:l.unref(a),clearable:!0,filterable:!0,"fallback-option":()=>(e!=null&&e.asyncFallback||(c[n]=null),!1),labelField:(e==null?void 0:e.labelField)||E,valueField:(e==null?void 0:e.valueField)||k,placeholder:`请选择${l.unref(t)}`,style:"width:100%","max-tag-count":"responsive"},e),{...(e==null?void 0:e.slots)||{}})},date:({label:t,key:n,props:e,formatTime:o="YYYY-MM-DD",type:a="date",format:i,read:r},{_value:c,_isRead:s})=>r??s?l.createVNode("div",null,[i?i==null?void 0:i(c[n]):pe(c[n],o)]):l.createVNode(C.NDatePicker,l.mergeProps({"formatted-value":c[n],"onUpdate:formatted-value":d=>{c[n]=d},type:a,clearable:!0,placeholder:`请选择${l.unref(t)}`,"update-value-on-close":!["year"].includes(e==null?void 0:e.type),style:"width:100%"},e),{...(e==null?void 0:e.slots)||{}}),time:({label:t,key:n,props:e,format:o,formatTime:a="YYYY-MM-DD",read:i},{_value:r,_isRead:c})=>i??c?l.createVNode("div",null,[o?o==null?void 0:o(r[n]):pe(r[n],a)]):l.createVNode(C.NTimePicker,l.mergeProps({"formatted-value":r[n],"onUpdate:value":(s,d)=>{console.log("v",d),r[n]=d},clearable:!0,format:"HH:mm:ss",style:"width:100%",placeholder:`请选择${l.unref(t)}`},e),{...(e==null?void 0:e.slots)||{}}),dateRange:({key:t,props:n,type:e="datetimerange",read:o},{_value:a,_isRead:i})=>{var s,d;const r={date:"YYYY-MM-DD",datetime:"YYYY-MM-DD HH:mm:ss",time:"HH:mm:ss",datetimerange:"YYYY-MM-DD HH:mm:ss",daterange:"YYYY-MM-DD"},c=n!=null&&n.format?(d=(s=n==null?void 0:n.format)==null?void 0:s.replace("yyyy","YYYY"))==null?void 0:d.replace("dd","DD"):r[(n==null?void 0:n.type)||e];return console.log("formatStr type",e),console.log("formatStr",c),o??i?l.createVNode("div",null,[Array.isArray(t)?`${a==null?void 0:a[t==null?void 0:t[0]]} - ${a==null?void 0:a[t==null?void 0:t[1]]}`:a==null?void 0:a[t]]):l.createVNode(C.NDatePicker,l.mergeProps({"formatted-value":Array.isArray(t)?a!=null&&a[t==null?void 0:t[0]]&&(a!=null&&a[t==null?void 0:t[1]])?[q(a==null?void 0:a[t==null?void 0:t[0]]).format(c),q(a==null?void 0:a[t==null?void 0:t[1]]).format(c)]:null:(a==null?void 0:a[t])||null,"onUpdate:formatted-value":y=>{console.log(y),y&&![r.datetime,r.datetimerange].includes(c)&&(y=y.map((g,p)=>q(g,c)[p?"endOf":"startOf"]("day").format(c))),Array.isArray(t)?(a[t==null?void 0:t[0]]=y==null?void 0:y[0],a[t==null?void 0:t[1]]=y==null?void 0:y[1]):a[t]=y},"update-value-on-close":!["year","month"].includes(n==null?void 0:n.type),type:e,clearable:!0,style:"width:100%"},n),{...(n==null?void 0:n.slots)||{}})},radio:({key:t,options:n=[],props:e,radioLabelProps:o,read:a},{_value:i,_isRead:r,labelField:c,valueField:s})=>{var d,y;return a??r?l.createVNode("div",null,[(y=(d=ne(n,(e==null?void 0:e.labelField)||c,(e==null?void 0:e.valueField)||s))==null?void 0:d[i[t]])==null?void 0:y[(e==null?void 0:e.labelField)||c]]):l.createVNode(C.NRadioGroup,l.mergeProps({style:{width:"100%"},value:i[t],"onUpdate:value":g=>i[t]=g},e),{...(e==null?void 0:e.slots)||{},default:()=>l.createVNode(C.NSpace,l.mergeProps({"item-wrap":!1},(e==null?void 0:e.radioProps)||{}),{default:()=>[n==null?void 0:n.map(g=>l.createVNode(C.NRadio,{key:g.value,value:g==null?void 0:g[(e==null?void 0:e.valueField)||s],class:"items-center"},{default:()=>[l.createVNode("div",(o==null?void 0:o(g))||{},[g==null?void 0:g[(e==null?void 0:e.labelField)||c]])]}))]})})},inputPhone:({label:t,key:n,props:e,read:o},{_value:a,_isRead:i})=>o??i?l.createVNode("div",null,[a[n]]):l.createVNode(C.NInput,l.mergeProps({value:a[n],"onUpdate:value":r=>a[n]=r,clearable:!0,style:"width:100%","allow-input":r=>!r||/^\d$/.test(r)||r.length<=11,placeholder:`请输入${l.unref(t)}`},e),{...e==null?void 0:e.slots}),inputNumber:({label:t,key:n,props:e,read:o},{_value:a,_isRead:i})=>o??i?l.createVNode("div",null,[a[n]]):l.createVNode(C.NInputNumber,l.mergeProps({value:typeof a[n]=="string"&&a[n]?Number(a[n]):a[n],"onUpdate:value":r=>{a[n]=r},showButton:!1,clearable:!0,style:"width:100%",placeholder:`请输入${l.unref(t)}`,min:0},e),{...(e==null?void 0:e.slots)||{}}),uploadFile:({key:t,props:n},{_value:e})=>l.createVNode(C.NUpload,l.mergeProps({multiple:!0,max:1,accept:".xls,.xlsx","file-list":e[t],"onUpdate:file-list":o=>e[t]=o},n),{default:()=>[l.createVNode(C.NUploadDragger,null,{default:()=>[l.createVNode("div",{style:"margin-bottom: 12px"},[l.createVNode(C.NIcon,{size:"48",depth:3},{default:()=>[l.createVNode(l.resolveComponent("ArchiveOutline"),null,null)]})]),l.createVNode(C.NText,{style:"font-size: 16px"},{default:()=>[l.createTextVNode("点击或者拖动文件到该区域来上传")]})]})]}),dataTable:({key:t,loading:n=!1,props:e,options:o,opr:a,pageState:i},{_value:r,_isRead:c})=>{var s;return console.log(n),console.log(i),l.createVNode(Pe,l.mergeProps({data:(s=i==null?void 0:i.data)!=null&&s.length?i.data:r[t],columns:l.unref(o),maxHeight:200,minHeight:200,"is-ellipsis":!1,"opr-columns":a,loading:i==null?void 0:i.loading},e),null)},progress:({key:t,props:n},{_value:e})=>l.createVNode(C.NProgress,l.mergeProps({percentage:e[t]},n),null),line:()=>l.createVNode(C.NDivider,null,null),image:({key:t,props:n,read:e},{_isRead:o,_value:a})=>l.createVNode(Xe,l.mergeProps({value:a[t],"onUpdate:value":i=>a[t]=i,max:1},n,{read:e??o}),null),button:({onClick:t,props:n,text:e},{_value:o})=>l.createVNode(C.NButton,l.mergeProps({type:"info"},n,{onClick:()=>n!=null&&n.onClick?n==null?void 0:n.onClick(l.unref(o)):t(l.unref(o))}),Ze(e)?e:{default:()=>[e]}),switch:({key:t,props:n,read:e},{_isRead:o,_value:a})=>e??o?l.createVNode("div",null,[a[t]?"是":"否"]):l.createVNode(C.NSwitch,l.mergeProps({value:a[t],"onUpdate:value":i=>a[t]=i},n),{...(n==null?void 0:n.slots)||{}}),checkbox:({key:t,options:n=[],props:e,read:o},{_value:a,_isRead:i,labelField:r,valueField:c})=>{var s,d,y;return o??i?l.createVNode("div",null,[(y=(d=(s=l.unref(n))==null?void 0:s.filter(g=>{var p;return(p=l.unref(a)[t])==null?void 0:p.includes(g[(e==null?void 0:e.valueField)||c||k])}))==null?void 0:d.map(g=>g[[(e==null?void 0:e.labelField)||r||E]]))==null?void 0:y.join("、")]):l.createVNode(C.NCheckboxGroup,l.mergeProps({value:a[t],"onUpdate:value":g=>a[t]=g,style:{width:"100%"}},e),{...(e==null?void 0:e.slots)||{},default:()=>l.createVNode(C.NSpace,(e==null?void 0:e.checkBoxProps)||{},{default:()=>{var g;return[(g=l.unref(n))==null?void 0:g.map(p=>l.createVNode(C.NCheckbox,{key:p==null?void 0:p[(e==null?void 0:e.valueField)||c||k],value:p==null?void 0:p[(e==null?void 0:e.valueField)||c||k]},{default:()=>[p==null?void 0:p[(e==null?void 0:e.labelField)||r||E]]}))]}})})},filterList:({key:t,props:n,options:e},{_value:o})=>l.createVNode(l.resolveComponent("FilterSelect"),l.mergeProps({value:o[t],"onUpdate:value":a=>o[t]=a,option:e,clearable:!0,filterButtonKey:["all","selectDefault"]},n),null)};let L={};class et{constructor(){v(this,"defaultMap",null);v(this,"extendOptions",null);console.log("DefaultOptions init"),this.defaultMap=null,this.init()}set(n,e){this.options.set(n,e)}get(n){return this.options.get(n)}clear(){this.defaultMap.clear()}setupOptions(n,e){const o=this.defaultMap.size>0?[...this.defaultMap.keys()]:[];if(this.defaultMap.has(n))return console.error(`${n} 已存在,不能使用${o==null?void 0:o.join("、")}`);this.defaultMap.set(n,e)}setupExtendOptions(n,e){L||(L={}),L!=null&&L[n]||(L[n]=e)}getAllOptions(){const n={};return this.defaultMap.forEach((e,o)=>{n[o]=e}),n}getOptions(n=[]){return console.log("getOptions",this.defaultMap),n.reduce((o,a)=>(this.defaultMap.has(a)&&(o[a]=this.defaultMap.get(a)),o),{})}initOptions(n=[]){Object.keys(n).forEach(e=>{this.setupOptions(e,n[e])})}initSetup(n){this.defaultMap&&this.clear(),this.defaultMap=new Map,this.initOptions(ve),n&&n(),this.initOptions(L)}init(n){this.initSetup(n)}}const oe=new et,ue=(...t)=>oe.getOptions(...t);function tt(...t){return oe.getAllOptions(...t)}function lt(...t){return oe.setupExtendOptions(...t)}const nt=["xlink:href","fill"],rt=l.defineComponent({__name:"SvgIcon",props:{name:{type:String,required:!0},color:{type:String,default:""}},setup(t){const n=t,e=l.computed(()=>`#svg-${n.name}`);return(o,a)=>(l.openBlock(),l.createElementBlock("svg",l.mergeProps({class:"svg-icon"},o.$attrs,{style:{color:t.color},"aria-hidden":""}),[l.createElementVNode("use",{"xlink:href":e.value,fill:t.color},null,8,nt)],16))}}),at=W(rt,[["__scopeId","data-v-9dbe5f10"]]);function ot(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!l.isVNode(t)}const Ae=l.defineComponent((t,{emit:n})=>{var P;const e=l.getCurrentInstance();if((P=e==null?void 0:e.appContext)!=null&&P.app)_(e.appContext.app);else{const u=De();u&&_(u)}const o=l.ref(t.value),a=l.computed(()=>t.read||!1);let i=t.formRef;l.watch(()=>t.formRef,u=>i=u);const r=l.computed(()=>t.option);function c(u){return u.reduce((N,f)=>{N.push((f==null?void 0:f.way)??"input");const b=[f==null?void 0:f.default,f==null?void 0:f.suffix,f==null?void 0:f.prefix].reduce((m,h)=>{var x;return Array.isArray(h)?m=m.concat(h):h&&((x=Object.keys(h))!=null&&x.length)&&m.push(h),m},[]);return console.log(b),b.length&&b.forEach(m=>N.push((m==null?void 0:m.way)??"input")),N},[])}const s=l.computed(()=>[...new Set(c(t.option))]),d=ue(s.value);console.log(t.option),console.log("defaultOption",d,s.value),l.watch(()=>o.value,u=>{n("update:value",u)},{immediate:!0});function y(u){let N={};const f=typeof u;let b=null;try{return u?f==="string"||f==="object"?b=u:f==="function"&&(b=u(l.unref(o),{formRef:i,resetForm:()=>{var m;return(m=i==null?void 0:i.value)==null?void 0:m.restoreValidation()},close:()=>t.cancel(),setValue:g})):b=u,typeof b=="object"&&!Array.isArray(b)?Object.keys(b).forEach(m=>{const h=b[m];l.isRef(h)?N[m]=l.unref(h):N[m]=h}):N=b,N}catch{return{}}}l.watch(()=>t.value,u=>{console.log(u),o.value=u},{immediate:!0});function g(u){o.value=u}function p(u){return l.createVNode(C.NSpace,l.mergeProps({"wrap-item":!1,wrap:!!(u!=null&&u.isWrap),align:"center",style:{width:"100%"}},(u==null?void 0:u.contentProps)||{}),{default:()=>[D(u==null?void 0:u.prefix),D((u==null?void 0:u.default)||u),D(u==null?void 0:u.suffix)]})}function D(u){if(!u)return;let N=u;if(typeof u=="function"&&(N=y(u)),N=y(N),l.isVNode(N))return console.log("??? isVNode"),N;if(typeof N=="string")return console.log("??? string"),N;if(Array.isArray(N))return console.log("???"),l.createVNode(l.Fragment,null,[N.map((f,b)=>l.createVNode(A,{item:f,index:b},null))]);if(typeof N=="object")return console.log("??? object"),N.props=y((N==null?void 0:N.props)??{}),l.unref(l.computed(()=>{var f;return(f=d==null?void 0:d[(N==null?void 0:N.way)||"input"])==null?void 0:f.call(d,O(N),{_value:N!=null&&N.queryType?l.unref(o)[N==null?void 0:N.queryType]:l.unref(o),_formRef:l.unref(i),_isRead:l.unref(a),labelField:E,valueField:k})}))}function O(u){return l.unref(u.enum)&&(u.options=re(l.unref(u.enum))),u}function A({item:u,index:N}){var f,b,m,h,x,B;return u.formItemProps=y(u==null?void 0:u.formItemProps),u.formItemProps||(u.formItemProps={}),!((f=u==null?void 0:u.formItemProps)!=null&&f.labelWidth)&&((b=t.formProps)!=null&&b.labelWidth)&&(u.formItemProps.labelWidth=(m=t.formProps)==null?void 0:m.labelWidth),l.withDirectives(l.createVNode(C.NFormItem,l.mergeProps({key:N,showLabel:!(u!=null&&u.noLabel)},u==null?void 0:u.formItemProps,{labelWidth:((h=u==null?void 0:u.formItemProps)==null?void 0:h.labelWidth)||"auto",feedback:y((x=u==null?void 0:u.formItemProps)==null?void 0:x.feedback),style:{padding:"0 15px",boxSizing:"border-box",width:"100%",...((B=u==null?void 0:u.formItemProps)==null?void 0:B.style)||{}},path:String(u.key)}),{default:()=>p(u),label:()=>{var U,M;return l.createVNode("div",{class:u!=null&&u.labelClass||u!=null&&u.labelSuffix?` ${u==null?void 0:u.labelClass} flex items-center gap-col-9px`:""},[u!=null&&u.labelSuffix?typeof(u==null?void 0:u.labelSuffix)=="string"?l.createVNode(C.NIcon,{class:"wh-20px c-inherit",...u==null?void 0:u.labelSuffixProps},{default:()=>[l.createVNode(at,{name:u==null?void 0:u.labelSuffix},null)]}):(U=u==null?void 0:u.labelSuffix)==null?void 0:U.call(u):l.createVNode(l.Fragment,null,null),`${l.unref(typeof(u==null?void 0:u[t.labelField])=="function"?(M=u==null?void 0:u[t.labelField])==null?void 0:M.call(u):u==null?void 0:u[t.labelField])||""} ${a.value||u.read," "}
2
+ `])}}),[[l.resolveDirective("corePermission"),u==null?void 0:u.permission]])}return()=>{let u;return l.createVNode(C.NSpace,{"wrap-item":!1,size:[0,8],style:{width:"100%",minHeight:"100%",alignContent:"baseline",...t.style}},ot(u=r.value.map(({isRender:N=!0,...f},b)=>(typeof l.unref(N)!="boolean"?N!=null&&N(l.unref(o)):l.unref(N))?f!=null&&f.render?f==null?void 0:f.render(l.unref(o),b,{setValue:g,value:l.unref(o)}):l.createVNode(A,{item:f,index:b},null):null))?u:{default:()=>[u]})}},{props:{option:{type:Array,default:()=>[]},value:{type:Object,default:()=>({})},read:{type:Boolean,default:()=>!1},labelField:{type:String,default:()=>E},valueField:{type:String,default:()=>k},style:{type:Object,default:()=>({})},formRef:{type:Object,default:()=>({})},formProps:{type:Object,default:()=>({})}},emits:["update:value"]}),ut={showIcon:!1,autoFocus:!1};function Ie({options:t=[],model:n,labelField:e="label",formOpr:o={}}){return l.computed(()=>(t==null?void 0:t.reduce((a,{fields:i,...r})=>{var s,d;Array.isArray(r==null?void 0:r.key)&&r.key.forEach(y=>{r!=null&&r.required&&(a[String(y)]={key:y,type:"any",required:r!=null&&r.required?typeof(r==null?void 0:r.required)=="function"?r==null?void 0:r.required(l.unref(n),{...o}):r==null?void 0:r.required:!1,message:(r==null?void 0:r.message)||`请选择${r==null?void 0:r[e]}`,fields:i})});const c=r!=null&&r.rule?typeof(r==null?void 0:r.rule)!="function"?r==null?void 0:r.rule:r==null?void 0:r.rule(l.unref(n),{...o}):i?{key:r==null?void 0:r.key,type:"any",required:r!=null&&r.required?typeof(r==null?void 0:r.required)=="function"?r==null?void 0:r.required(l.unref(n),{...o}):r==null?void 0:r.required:!1,message:(r==null?void 0:r.message)||`请${(s=r==null?void 0:r.options)!=null&&s.length?"选择":"输入"}${r==null?void 0:r[e]}`,fields:i}:{key:r==null?void 0:r.key,type:"any",required:r!=null&&r.required?typeof(r==null?void 0:r.required)=="function"?r==null?void 0:r.required(l.unref(n),{...o}):r==null?void 0:r.required:!1,message:(r==null?void 0:r.message)||`请${(d=r==null?void 0:r.options)!=null&&d.length?"选择":"输入"}${r==null?void 0:r[e]}`,...Array.isArray(r==null?void 0:r.key)?{validator:y=>(console.log(y),!(r==null?void 0:r.key.every(p=>l.unref(n)[p]))&&(r!=null&&r.required)?new Error(y==null?void 0:y.message):!0)}:{}};return c!=null&&c.required&&(a[String(r==null?void 0:r.key)]=c),a},{}))||{})}const ie={__name:"DataForm",props:l.mergeModels({isNo:{type:Boolean,default:()=>!0},read:{type:Boolean,default:()=>!1},labelField:{type:String,default:()=>"label"},contentStyle:{type:Object,default:()=>({})},options:{type:Array,default:()=>[]},rules:{type:Object,default:()=>({})},formProps:{type:Object,default:()=>({})},formItemProps:{type:Object,default:()=>({})},dialog:{type:Boolean,default:()=>!1}},{value:{type:Object,default:()=>({})},valueModifiers:{}}),emits:["update:value"],setup(t,{expose:n}){var s;const e=l.getCurrentInstance();(s=e==null?void 0:e.appContext)!=null&&s.app&&_(e.appContext.app);const o=t,a=l.computed(()=>o.options),i=l.ref(),r=l.useModel(t,"value"),c=l.computed(()=>l.unref(a.value?Ie({options:a.value,model:r,labelField:o.labelField,formOpr:{formRef:i}}):{}));return console.log(c.value),n({formRef:i,getRule:()=>c.value,valid:(d=[])=>(console.log("?? valid",d),new Promise((y,g)=>{var D;const p=J(d);(D=i.value)==null||D.validate(O=>{if(O)return g(O);y()},O=>p.length?p.includes(O==null?void 0:O.key):!0)})),confirm:d=>new Promise((y,g)=>{var p;(p=i.value)==null||p.validate(D=>{if(D)return g(D);d&&d(l.unref(r)),y(l.unref(r))})})}),(d,y)=>(l.openBlock(),l.createBlock(l.unref(C.NForm),l.mergeProps({ref_key:"formRef",ref:i,model:r.value,rules:o.read?{}:l.unref(c),"label-placement":"left","label-width":"100px","require-mark-placement":"right-hanging",class:o.dialog?o.read?"core-dialog-content":"core-dialog-main":"",style:{minHeight:o.isNo?"unset":null}},o.formProps),{default:l.withCtx(()=>[l.createVNode(l.unref(Ae),{value:r.value,"onUpdate:value":y[0]||(y[0]=g=>r.value=g),"form-ref":i.value,option:o.options,"label-field":o.labelField,read:o.read,style:l.normalizeStyle(o.contentStyle),"form-props":o.formProps},null,8,["value","form-ref","option","label-field","read","style","form-props"])]),_:1},16,["model","rules","class","style"]))}};function it(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!l.isVNode(t)}let j=typeof $dialog<"u"?$dialog:null,ee=null;function st(){if(j)return j;try{const t=C.useDialog();if(t)return j=t,j}catch{}if(!ee){const{dialog:t}=C.createDiscreteApi(["dialog"]);ee={dialog:t}}return j=ee.dialog,j}function se({title:t="",noTitle:n=!1,titleFull:e=null,options:o=[],mode:a="add",modeEnum:i={},labelField:r="label",isNo:c=!0,formProps:s={},interfaceFn:d=null,interfaceFnCancel:y=null,valueData:g,read:p,isRead:D,action:O=null,contentStyle:A={},actionProps:P={}}={title:"自定义弹窗",noTitle:!1,action:[],options:[],read:!1,isRead:!1,valueData:{}},u=null){var H;const N=st(),f={none:{sub:"",read:!1},create:{sub:"创建",read:!1},add:{sub:"添加",read:!1},edit:{sub:"编辑",read:!1},view:{sub:"查看",read:!0},export:{sub:"导出",read:!1},import:{sub:"导入",read:!1},delete:{sub:"删除",read:!1},copy:{sub:"复制",read:!1},...i},b=l.ref(),m=l.reactive([]),h=l.ref({...g}),x={justify:"end",wrapItem:!1,style:{width:"100%"}},B={width:"120px"},U=[{label:"取消",props:{type:"primary",ghost:!0},onClick:({cancel:S})=>{y?y(l.unref(h),{close:S}):S()}},{label:"确定",valid:!0,onClick:async({cancel:S,hideLoading:w})=>d?await d(l.unref(h),{close:S,hideLoading:w}):S()}];O||U.forEach((S,w)=>{m[w]=!1});const M=typeof e=="function"?()=>{var S;return e((S=f[a])==null?void 0:S.sub)}:e,V=N.create({type:"info",...ut,...n?{}:{title:M||(((H=f[a])==null?void 0:H.sub)??"")+t},style:{width:"500px"},content:()=>l.createVNode(ie,{ref:S=>{b.value=S},options:o,value:h.value,"onUpdate:value":S=>h.value=S,isNo:c,read:p??D,labelField:r,formProps:s,contentStyle:A,dialog:!0},null),action:p??D?null:typeof O=="function"?()=>O({formRef:b,data:l.unref(h),d:V,close:I}):()=>{let S;return l.createVNode(C.NSpace,l.mergeProps(x,P,{style:{...x==null?void 0:x.style,...(P==null?void 0:P.style)||{}}}),it(S=(O||U).map((w,X)=>{var de;return w!=null&&w.render?(de=w==null?void 0:w.render)==null?void 0:de.call(w):l.createVNode(C.NButton,l.mergeProps({type:"primary",ghost:w.mode==="cancel"},{...w==null?void 0:w.props,...P==null?void 0:P.buttonProps},{style:{...B,...(w==null?void 0:w.style)||{}},loading:m[X],onClick:async()=>{if(w.mode==="cancel")V.destroy();else{const Z=()=>m[X]=!0,me=()=>m[X]=!1;w!=null&&w.loading&&Z();try{console.log("model",l.unref(h)),w!=null&&w.valid&&await R(),console.log(w==null?void 0:w.valid),(w!=null&&w.valid||w!=null&&w.loading)&&Z(),await(w==null?void 0:w.onClick({model:l.unref(h),comfirm:$,cancel:I,validate:R,showLoading:Z,hideLoading:me}))}catch(Ee){console.log(Ee)}finally{(w!=null&&w.valid||w!=null&&w.loading)&&me()}}}}),{default:()=>[w.label||""]})}))?S:{default:()=>[S]})},...u,class:`core-dialog ${l.unref(p)?"core-dialog-read":""} ${(u==null?void 0:u.class)||""}`});function I(){console.log("取消",h.value),V==null||V.destroy()}async function R(S=[]){var w;console.log("开启验证"),await((w=b.value)==null?void 0:w.valid())}async function $(S){return S&&S()}return{cancel:I,setValue:(S,w)=>w?h.value[w]=S:h.value={...h.value,...S},model:l.unref(h),modeEnum:f}}function ct(){const t=C.useDialog();return ae(t),(n,e)=>se(n,e)}const ft={class:"flex-1"},dt={__name:"CommonQuery",props:l.mergeModels({inlineText:{type:Boolean,default:()=>!0},options:{type:Array,default:()=>[]},query:{type:Object,default:()=>({})},selectCount:{type:Number,default:()=>1},type:{type:String,default:()=>"primary"},noButton:{type:Boolean,default:()=>!1},isRead:{type:Boolean,default:()=>!1},btn:{type:Array,default:()=>["reset","search"]},size:{type:String,default:()=>"medium"}},{query:{type:Object,default:()=>({})},queryModifiers:{}}),emits:l.mergeModels(["update:query","submit","reset"],["update:query"]),setup(t,{emit:n}){var N;const e=l.getCurrentInstance();(N=e==null?void 0:e.appContext)!=null&&N.app&&_(e.appContext.app);function o(f,b){let m;return function(...h){clearTimeout(m),m=setTimeout(()=>{f.apply(this,h)},b)}}const a=n,i=t;function r(f){return f.map(b=>({...b,props:{...b.props,...!b.way||b.way==="input"?{onUpdateValue:(...m)=>{var h,x;(x=(h=m.props)==null?void 0:h.onUpdateValue)==null||x.call(h,...m),c()}}:{},...(b==null?void 0:b.way)==="select"?{onUpdateValue:(...m)=>{var h,x;(x=(h=m.props)==null?void 0:h.onUpdateValue)==null||x.call(h,...m),c()}}:{}}}))}const c=o(()=>{a("submit")},500);function s(){c()}const d=l.ref(!1),y=l.useModel(t,"query"),g={style:{width:"33%"}},p=l.computed(()=>{var f;return(f=i.options)==null?void 0:f.map(b=>(b==null?void 0:b.way)||"input")});ue(p.value);const D=l.computed(()=>{try{const f=[];for(let b=0;b<i.options.length;b++){const m=i.options[b];m!=null&&m.enum&&!(m!=null&&m.options)&&(m.options=re(m.enum)),m!=null&&m.props||(m.props={size:i.size}),m!=null&&m.formItemProps?m.formItemProps={...g,...m.formItemProps,style:{...g.style,...m.formItemProps.style}}:m.formItemProps={...g};const h=(m==null?void 0:m.key)||(m==null?void 0:m.value);if(!h)throw new Error("key no set");f.push({...m,key:h})}return r(f)}catch(f){return console.warn("error",f),[]}}),O={style:{borderRadius:"3px"}},A={search:()=>l.createVNode(l.resolveComponent("NButton"),l.mergeProps({type:i.type,loading:d.value,"default-props":{attrType:"submit"},onClick:()=>s()},O),{default:()=>"搜索",icon:()=>l.createVNode(z.SearchOutline,null,null)}),reset:()=>l.createVNode(l.resolveComponent("NButton"),l.mergeProps({type:"default",onClick:()=>{P()}},O),{default:()=>"重置",icon:()=>l.createVNode(z.RefreshOutline,null,null)})};function P(){i.options.forEach(f=>{const b=(f==null?void 0:f.key)||(f==null?void 0:f.value);b&&(f!=null&&f.queryType?y.value[f.queryType][b]=null:y.value[b]=null)}),a("reset")}function u(f){f.key==="Enter"&&s()}return l.onMounted(()=>{document.addEventListener("keydown",u)}),l.onUnmounted(()=>{document.removeEventListener("keydown",u)}),(f,b)=>{const m=l.resolveComponent("n-space");return l.openBlock(),l.createBlock(m,{"wrap-item":!1,justify:"space-between",align:"center",wrap:!1},{default:l.withCtx(()=>[l.createElementVNode("div",ft,[l.createVNode(l.unref(ie),{value:y.value,"onUpdate:value":b[0]||(b[0]=h=>y.value=h),options:D.value,"form-props":{showFeedback:!1}},null,8,["value","options"])]),i.noButton?l.createCommentVNode("",!0):(l.openBlock(),l.createBlock(m,{key:0,align:"center",wrap:!1},{default:l.withCtx(()=>[l.renderSlot(f.$slots,"left-btn",{},void 0,!0),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(i.btn,(h,x)=>{var B;return l.openBlock(),l.createBlock(l.resolveDynamicComponent((B=A==null?void 0:A[h])==null?void 0:B.call(A)),{key:x})}),128)),l.renderSlot(f.$slots,"right-btn",{},void 0,!0)]),_:3}))]),_:3})}}},mt=W(dt,[["__scopeId","data-v-6ef17b7a"]]),ce=l.defineComponent(({action:t,row:n,index:e})=>{const{onClick:o,disabled:a,type:i="primary",loading:r=!1,label:c=null,...s}=t,d=l.ref(!1);return()=>l.createVNode(C.NButton,l.mergeProps({text:!0,onClick:async()=>{if(o)try{r&&(d.value=!0),await o(n,e)}finally{setTimeout(()=>d.value=!1,500)}},disabled:a&&a(n),loading:d.value,type:a&&a(n)?"default":i},s),{default:()=>[typeof c=="function"?c==null?void 0:c(n):c]})},{props:{action:{type:[Object,null],default:null},row:{type:[Object,null],default:null},index:{type:Number,default:0}}}),fe=l.defineComponent(({onClick:t,row:n,index:e,action:o},{slots:a})=>{const i=l.ref(!1);return()=>l.createVNode(C.NPopconfirm,{"positive-button-props":{type:"warning",loading:i.value},onPositiveClick:async()=>{try{if(t)return i.value=!0,await t(n,e),i.value=!1,!0}catch{return i.value=!1,!1}return!1}},{trigger:a.default,default:()=>{var r;return((r=o==null?void 0:o.popProps)==null?void 0:r.content)||(o==null?void 0:o.content)||"确定删除该记录?"}})},{props:{onClick:{type:[Function,null],default:null},row:{type:[Object,null],default:null},action:{type:[Object,null],default:null},index:{type:Number,default:0}}});function he(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!l.isVNode(t)}const yt=l.defineComponent(t=>{const n=t.options.length,e=l.ref(!1),o=l.computed(()=>t.options.slice(0,e.value?n:t.max)),a=l.computed(()=>t.options.slice(t.max));function i(r){return r==null?void 0:r.map(({isRender:c=()=>!0,onClick:s=null,mode:d=null,disabled:y=!1,type:g="primary",...p},D)=>c!=null&&c(t.data)?d==="pop"?l.createVNode(fe,{onClick:s,row:t.data,action:p,key:K(t.data,t.index)+D},{default:()=>[l.createVNode(C.NButton,l.mergeProps({text:!0,disabled:y&&y(t.data),type:y&&y(t.data)?"default":g},p),{default:()=>[typeof(p==null?void 0:p.label)=="function"?p==null?void 0:p.label(t.data):p==null?void 0:p.label]})]}):l.createVNode(ce,{row:t.data,action:{...p,disabled:y,onClick:s,type:g},key:K(t.data,t.index)+D},null):void 0).filter(c=>c)}return()=>{let r;return l.createVNode(C.NSpace,{style:{width:"100%"},"wrap-item":!1,justify:"center",align:"center"},{default:()=>[l.createVNode(C.NSpace,{"wrap-item":!1,align:"center"},he(r=i(o.value))?r:{default:()=>[r]}),l.createVNode(C.NPopover,{trigger:"click"},{trigger:()=>l.createVNode(C.NButton,{text:!0,type:"info"},{default:()=>[l.createTextVNode("更多")]}),default:()=>{let c;return l.createVNode(C.NSpace,{"wrap-item":!1,align:"center",style:{width:"250px",padding:"5px"}},he(c=i(a.value))?c:{default:()=>[c]})}})]})}},{name:"DataColumnCollet",props:{options:{type:Array,default:()=>[]},max:{type:Number,default:3},data:{type:Object,default:()=>{}},index:{type:Number,default:0}}});function Y(t={},n=null){const e=Ce();return!e.inheritTheme&&e.themeOverrides?{...t,themeOverrides:{...e.themeOverrides,...t.themeOverrides||{}}}:t}function gt(t,n={}){if(!t)throw new Error("dialogInstance 是必需的。请在组件中使用 useDialog() 获取实例,然后传递给此函数。");const e=Y(n,t);return t.create(e)}function pt(t){if(!t)throw new Error("dialogInstance 是必需的。请在组件中使用 useDialog() 获取实例。");return{info:n=>{const e=Y({type:"info",...n},t);return t.info(e)},success:n=>{const e=Y({type:"success",...n},t);return t.success(e)},warning:n=>{const e=Y({type:"warning",...n},t);return t.warning(e)},error:n=>{const e=Y({type:"error",...n},t);return t.error(e)},create:n=>{const e=Y(n,t);return t.create(e)}}}function ht(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!l.isVNode(t)}const K=(t,n)=>t?JSON.stringify(t):n;function Nt(t,n=null,e){const o={max:4,width:80};let a=!1;if(typeof e=="boolean"?a=o:typeof e=="object"&&(a={...o,...e}),console.log("collect",a),console.log(Array.isArray(t)),!Array.isArray(t))throw new TypeError("需要配置数组");console.log("ddd");let i=[],r=0;const c=[];return Array.isArray(t)&&(i=t,i.forEach((s,d)=>{var y,g;s.permission?G(s.permission)&&((!e||d<a.max)&&(r+=((y=s==null?void 0:s.label)==null?void 0:y.length)*12+36),c.push(s)):((!e||d<a.max)&&(r+=((g=s==null?void 0:s.label)==null?void 0:g.length)*12+36),c.push(s))})),r=Math.max(80,r),r+=0,a&&(r+=2),c.length?{title:"操作",key:"opr",fixed:"right",align:"left",width:r,...n,render(s,d){const y=a?l.createVNode(yt,{data:s,index:d,max:a.max,options:c},null):c.map(({isRender:g=()=>!0,onClick:p=null,mode:D=null,disabled:O=!1,type:A="primary",...P},u)=>g!=null&&g(s)?D==="pop"?l.createVNode(fe,{onClick:p,row:s,index:d,action:P,key:K(s,d)+u},{default:()=>[l.createVNode(C.NButton,l.mergeProps({text:!0,disabled:O&&O(s),type:O&&O(s)?"default":A},P),{default:()=>[typeof(P==null?void 0:P.label)=="function"?P==null?void 0:P.label(s):P==null?void 0:P.label]})]}):l.createVNode(ce,{row:s,action:{...P,disabled:O,onClick:p,type:A},index:d,key:K(s,d)+u},null):void 0).filter(g=>g);return n!=null&&n.isRender?n==null?void 0:n.render(s):l.createVNode(C.NSpace,{align:"center","wrap-item":!1,size:18,key:K(s,d)},ht(y)?y:{default:()=>[y]})}}:void 0}async function Be(t,n=null){const e=getDialogInstance();if(!e)throw new Error("无法获取 dialog 实例。请使用 useQRCode hook 或在组件中通过 setupConfig 注册 dialog 实例。");const o=l.ref(null),a=l.ref(!1),i=Y({type:"info",showIcon:!1,style:{width:"350px",height:"350px"},content:()=>l.createVNode("div",{className:"qr-box"},[a.value?l.createVNode(C.NSpin,{class:"qr-spin",show:!0},null):"",l.createVNode("div",{className:"qr-img"},[l.createVNode(C.NImage,{src:o.value,style:{width:"100%"}},null)]),l.createVNode("div",{className:"qr-title"},[a.value?"":t.name])])},e);return e.info(i),n&&(a.value=!0,o.value=await n(),a.value=!1),!0}function bt(){const t=C.useDialog();return ae(t),(n,e)=>Be(n,e)}function Me(t){var n,e;if((n=t==null?void 0:t.children)!=null&&n.length){const o=[];t.children.forEach(a=>{var r,c,s,d;Me(a);let i=[];typeof((r=a==null?void 0:a.meta)==null?void 0:r.permission)=="string"?i=[a.meta.permission]:Array.isArray((c=a.meta)==null?void 0:c.permission)?i.push(...a.meta.permission):typeof((s=a.meta)==null?void 0:s.permission)=="object"?i.push(...wt(Fe(a.meta.permission))):(d=a==null?void 0:a.meta)!=null&&d.permission||(i=null),a.meta.permission=i,o.push(...new Set(i))}),(e=t==null?void 0:t.meta)!=null&&e.permission?t.meta.permission=[...new Set(t.meta.permission.concat(o))]:t.meta.permission=o}return t}function wt(...t){const n=t==null?void 0:t.map(e=>Array.isArray(e)?e:e==null?void 0:e.ALL);return[].concat(...n)}function Fe(t){return t?Object.keys(t).reduce((n,e)=>(typeof t[e]!="string"?n.concat(Fe(t[e])):n.push(t[e]),n),[]):[]}function xt(...t){return{...Vt("api",t)}}function Ct(t,n={}){const e=Object.keys(n);return e.length&&e.forEach(o=>{const a=new RegExp(`${o}`,"g");t=t==null?void 0:t.replace(a,n[o])}),t}function Vt(t,n){var r;const e=te.useRoute(),o=te.useRouter(),a=Ne(((r=e==null?void 0:e.meta)==null?void 0:r[t])??{}),i=J(n[0]);return i!=null&&i.length&&o.getRoutes().filter(s=>i.includes(s.name)).forEach(s=>{var d;(d=s.meta)!=null&&d[t]&&(a[s.name]=Ne(s.meta[t]))}),{...a}}function Ne(t={}){return Object.keys(t).reduce((n,e)=>{const o=t[e];return typeof o=="object"?n[e]=o==null?void 0:o.key:typeof o=="string"&&(n[e]=String(o)),n},{})}function Ue(t,n=""){return t.length?(t.forEach(e=>{var i;e.children&&Ue(e.children,e==null?void 0:e.path),e.path&&(e.sourceFullPath=`${n?`${n}/`.replace(/^\/\//,"/"):""}${e.path}`),e.meta||(e.meta={});const o=(e==null?void 0:e.title)??((i=e==null?void 0:e.meta)==null?void 0:i.title)??"未命名页面";e!=null&&e.api&&(e.meta.api=e.api),o&&(e.meta.title=o,e.title=o),e!=null&&e.hidden&&(e.meta.hidden=e.hidden);let a=[];e!=null&&e.auth&&(e.meta.auth=e.auth,a=Object.keys(e.auth).reduce((r,c)=>(typeof e.auth[c]=="string"?r.push(e.auth[c]):typeof e.auth[c]=="boolean"&&r.push(c),r),[])),e!=null&&e.permission&&(e.meta.permission=e.permission),e.meta.permission&&Array.isArray(e.meta.permission)?e.meta.permission=e.meta.permission.concat(a):a.length&&(e.meta.permission=a)}),t):[]}const Q={ascend:{title:"升序",value:!0,Icon:l.createVNode(z.ChevronUp,null,null),fn:(t,n)=>{t.desc=!0,t.sortFieldName=n}},descend:{title:"降序",value:!1,Icon:l.createVNode(z.ChevronDown,null,null),fn:t=>{t.sortFieldName="",t.desc=!0}},false:{title:"默认",value:null,Icon:l.createVNode(z.Code,{style:"transform:rotateZ(90deg)"},null),fn:t=>{t.desc=!1,t.sortFieldName=""}}};function ke(t,n={}){_(t)}const Ot={install:ke};exports.ArrayToObject=ne;exports.CommonQuery=mt;exports.CorePlugin=Ot;exports.DataForm=ie;exports.DataTable=Pe;exports.ObjectToArray=re;exports.OprButton=ce;exports.Options=Ae;exports.Pop=fe;exports.autoRegisterDirectives=We;exports.cellectChildenPermission=Me;exports.checkPermission=G;exports.commonDialogMethod=se;exports.createActionColumnJsx=Nt;exports.createDialog=gt;exports.createDialogMethods=pt;exports.createDialogOptions=Y;exports.createQRCode=Be;exports.customUpload=Se;exports.ellipsis=le;exports.getAllOptions=tt;exports.getBaseURL=we;exports.getConfig=je;exports.getDialogConfig=Ce;exports.getDialogInstance=Ke;exports.getFileUrl=T;exports.getGlobalApp=De;exports.getHasPermission=ze;exports.getOptions=ue;exports.getUploadMethod=xe;exports.globalLabelField=E;exports.globalValueField=k;exports.handleParams=Ct;exports.initRouteMeta=Ue;exports.initRules=Ie;exports.install=ke;exports.orderEnum=Q;exports.permissionDirective=Ve;exports.registerDialogInstance=ae;exports.registerDirectives=_;exports.registryUpload=Qe;exports.setupConfig=be;exports.setupOptions=lt;exports.toArray=J;exports.useApiConfig=xt;exports.useCommonDialog=ct;exports.useQRCode=bt;