@duxweb/dvha-pro 1.2.3 → 1.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/editor/aiEditor.cjs +2 -2
- package/dist/cjs/components/form/pageForm.cjs +1 -1
- package/dist/cjs/components/form/pageTabForm.cjs +1 -1
- package/dist/cjs/components/layout/list.cjs +1 -1
- package/dist/cjs/components/layout/table.cjs +1 -1
- package/dist/cjs/pages/layout/tab.cjs +1 -1
- package/dist/esm/components/editor/aiEditor.js +5 -0
- package/dist/esm/components/form/pageForm.js +2 -2
- package/dist/esm/components/form/pageTabForm.js +1 -1
- package/dist/esm/components/layout/list.js +1 -1
- package/dist/esm/components/layout/table.js +1 -1
- package/dist/esm/pages/layout/tab.js +10 -10
- package/dist/types/components/editor/aiEditor.d.ts +9 -0
- package/package.json +3 -3
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../hooks/modal.cjs`);require(`../../hooks/index.cjs`);const t=require(`../upload/config.cjs`);let n=require(`vue`),r=require(`@duxweb/dvha-core`),i=require(`naive-ui`),a=require(`@vueuse/core`),o=require(`aieditor`);const s=(0,n.defineComponent)({name:`DuxAiEditor`,props:{value:String,defaultValue:String,uploadPath:String,uploadHeaders:Object,editorType:{type:String,default:`richtext`},aiPath:String,fileManager:{type:Boolean,default:!0},fileManagerType:{type:String,default:`all`},height:{type:String,default:`500px`}},setup(s,{emit:c,expose:l}){let u=(0,n.ref)(),d=null,f=!1,p=(0,r.useTheme)(),{config:m}=(0,r.useManage)(),h=(0,r.useGetAuth)(),{t:g}=(0,r.useI18n)(),_=(0,i.useMessage)(),v=e.useModal(),y=(0,a.useVModel)(s,`value`,c,{passive:!0}),b=(0,n.computed)(()=>s.uploadPath||m.apiPath?.upload||`upload`),x=(0,r.useUpload)({path:b.value,autoUpload:!1}),{managePath:S,method:C}=t.useUploadConfig(),w=()=>{if(!d||f)return;let e=y.value||``;s.editorType===`markdown`?d.setMarkdownContent(e):d.setContent(e)},T=()=>{d&&(f=!0,y.value=s.editorType===`markdown`?d.getMarkdown():d.getHtml(),(0,n.nextTick)(()=>{f=!1}))},E=e=>new Promise((t,n)=>{x.addFiles([e],`file`).then(()=>{x.trigger().then(e=>{e.forEach(e=>{let n=e?.data?.data;t({errorCode:0,data:{src:n?.url,alt:e?.filename}})})}).catch(e=>{_.error(e.message),n(e)}).finally(()=>{x.clearFiles()})})}),D=e=>{let t=String(e?.filetype||``),n=String(e?.url||``);return/^image\//i.test(t)||/\.(?:png|jpe?g|gif|bmp|webp|svg)$/i.test(n)?`image`:/^video\//i.test(t)||/\.(?:mp4|webm|ogg|mov|m4v)$/i.test(n)?`video`:`attachment`},O=()=>{if(!u.value)return;let e=s.value||s.defaultValue||``;d=new o.AiEditor({element:u.value,theme:p.isDark.value?`dark`:`light`,placeholder:g(`components.editor.placeholder`),content:e,contentIsMarkdown:s.editorType===`markdown`,onChange:T,onBlur:T,image:{uploadUrl:b.value,uploadHeaders:s.uploadHeaders||{},uploader:E,defaultSize:`auto`},video:{uploadUrl:b.value,uploadHeaders:s.uploadHeaders||{},uploader:E},attachment:{uploadUrl:b.value,uploadHeaders:s.uploadHeaders||{},uploader:E},ai:{models:{custom:{url:s.aiPath||m.apiPath?.ai||`ai`,headers:()=>({"Content-Type":`application/json`,Authorization:h.token}),wrapPayload:e=>JSON.stringify({prompt:e}),parseMessage:e=>{let t=JSON.parse(e);return{role:`assistant`,content:t.message,index:t.number,status:t.status}},protocol:`sse`}}},toolbarKeys:[`undo`,`redo`,`brush`,`eraser`,`divider`,`heading`,`font-family`,`font-size`,`divider`,`bold`,`italic`,`underline`,`strike`,`link`,`code`,`subscript`,`superscript`,`hr`,`todo`,`emoji`,`divider`,`highlight`,`font-color`,`divider`,`align`,`line-height`,`divider`,`bullet-list`,`ordered-list`,`indent-decrease`,`indent-increase`,`break`,`divider`,...s.fileManager?[{id:`dux-file-manager-image`,tip:g(`components.upload.fileManager`),icon:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M3.08697 9H20.9134C21.4657 9 21.9134 9.44772 21.9134 10C21.9134 10.0277 21.9122 10.0554 21.9099 10.083L21.0766 20.083C21.0334 20.6013 20.6001 21 20.08 21H3.9203C3.40021 21 2.96695 20.6013 2.92376 20.083L2.09042 10.083C2.04456 9.53267 2.45355 9.04932 3.00392 9.00345C3.03155 9.00115 3.05925 9 3.08697 9ZM4.84044 19H19.1599L19.8266 11H4.17377L4.84044 19ZM13.4144 5H20.0002C20.5525 5 21.0002 5.44772 21.0002 6V7H3.00017V4C3.00017 3.44772 3.44789 3 4.00017 3H11.4144L13.4144 5Z"></path></svg>`,onClick:(e,t)=>{v.show({title:g(`components.uploadManage.title`)||g(`components.upload.fileManager`),width:`800px`,component:()=>Promise.resolve().then(()=>require(`../upload/manager.cjs`)),componentProps:{path:S.value,type:s.fileManagerType||`all`,multiple:!0,uploadParams:{path:b.value,accept:`*/*`,method:C.value}}}).then(e=>{let n=Array.isArray(e)?[...e]:e?[e]:[];if(!n.length)return;if(s.editorType===`markdown`){let e=n.filter(e=>e?.url).map(e=>{let t=e?.filename||e?.name||`file`;return D(e)===`image`?``:`[${t}](${e.url})`});e.length&&t.insertMarkdown(e.join(`
|
|
1
|
+
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../hooks/modal.cjs`);require(`../../hooks/index.cjs`);const t=require(`../upload/config.cjs`);let n=require(`vue`),r=require(`@duxweb/dvha-core`),i=require(`naive-ui`),a=require(`@vueuse/core`),o=require(`aieditor`);const s=(0,n.defineComponent)({name:`DuxAiEditor`,props:{value:String,defaultValue:String,uploadPath:String,uploadHeaders:Object,editorType:{type:String,default:`richtext`},aiPath:String,fileManager:{type:Boolean,default:!0},fileManagerType:{type:String,default:`all`},toolbarExtend:{type:Array,default:()=>[]},height:{type:String,default:`500px`}},setup(s,{emit:c,expose:l}){let u=(0,n.ref)(),d=null,f=!1,p=(0,r.useTheme)(),{config:m}=(0,r.useManage)(),h=(0,r.useGetAuth)(),{t:g}=(0,r.useI18n)(),_=(0,i.useMessage)(),v=e.useModal(),y=(0,a.useVModel)(s,`value`,c,{passive:!0}),b=(0,n.computed)(()=>s.uploadPath||m.apiPath?.upload||`upload`),x=(0,r.useUpload)({path:b.value,autoUpload:!1}),{managePath:S,method:C}=t.useUploadConfig(),w=()=>{if(!d||f)return;let e=y.value||``;s.editorType===`markdown`?d.setMarkdownContent(e):d.setContent(e)},T=()=>{d&&(f=!0,y.value=s.editorType===`markdown`?d.getMarkdown():d.getHtml(),(0,n.nextTick)(()=>{f=!1}))},E=e=>new Promise((t,n)=>{x.addFiles([e],`file`).then(()=>{x.trigger().then(e=>{e.forEach(e=>{let n=e?.data?.data;t({errorCode:0,data:{src:n?.url,alt:e?.filename}})})}).catch(e=>{_.error(e.message),n(e)}).finally(()=>{x.clearFiles()})})}),D=e=>{let t=String(e?.filetype||``),n=String(e?.url||``);return/^image\//i.test(t)||/\.(?:png|jpe?g|gif|bmp|webp|svg)$/i.test(n)?`image`:/^video\//i.test(t)||/\.(?:mp4|webm|ogg|mov|m4v)$/i.test(n)?`video`:`attachment`},O=()=>{if(!u.value)return;let e=s.value||s.defaultValue||``;d=new o.AiEditor({element:u.value,theme:p.isDark.value?`dark`:`light`,placeholder:g(`components.editor.placeholder`),content:e,contentIsMarkdown:s.editorType===`markdown`,onChange:T,onBlur:T,image:{uploadUrl:b.value,uploadHeaders:s.uploadHeaders||{},uploader:E,defaultSize:`auto`},video:{uploadUrl:b.value,uploadHeaders:s.uploadHeaders||{},uploader:E},attachment:{uploadUrl:b.value,uploadHeaders:s.uploadHeaders||{},uploader:E},ai:{models:{custom:{url:s.aiPath||m.apiPath?.ai||`ai`,headers:()=>({"Content-Type":`application/json`,Authorization:h.token}),wrapPayload:e=>JSON.stringify({prompt:e}),parseMessage:e=>{let t=JSON.parse(e);return{role:`assistant`,content:t.message,index:t.number,status:t.status}},protocol:`sse`}}},toolbarKeys:[`undo`,`redo`,`brush`,`eraser`,`divider`,`heading`,`font-family`,`font-size`,`divider`,`bold`,`italic`,`underline`,`strike`,`link`,`code`,`subscript`,`superscript`,`hr`,`todo`,`emoji`,`divider`,`highlight`,`font-color`,`divider`,`align`,`line-height`,`divider`,`bullet-list`,`ordered-list`,`indent-decrease`,`indent-increase`,`break`,`divider`,...s.fileManager?[{id:`dux-file-manager-image`,tip:g(`components.upload.fileManager`),icon:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M3.08697 9H20.9134C21.4657 9 21.9134 9.44772 21.9134 10C21.9134 10.0277 21.9122 10.0554 21.9099 10.083L21.0766 20.083C21.0334 20.6013 20.6001 21 20.08 21H3.9203C3.40021 21 2.96695 20.6013 2.92376 20.083L2.09042 10.083C2.04456 9.53267 2.45355 9.04932 3.00392 9.00345C3.03155 9.00115 3.05925 9 3.08697 9ZM4.84044 19H19.1599L19.8266 11H4.17377L4.84044 19ZM13.4144 5H20.0002C20.5525 5 21.0002 5.44772 21.0002 6V7H3.00017V4C3.00017 3.44772 3.44789 3 4.00017 3H11.4144L13.4144 5Z"></path></svg>`,onClick:(e,t)=>{v.show({title:g(`components.uploadManage.title`)||g(`components.upload.fileManager`),width:`800px`,component:()=>Promise.resolve().then(()=>require(`../upload/manager.cjs`)),componentProps:{path:S.value,type:s.fileManagerType||`all`,multiple:!0,uploadParams:{path:b.value,accept:`*/*`,method:C.value}}}).then(e=>{let n=Array.isArray(e)?[...e]:e?[e]:[];if(!n.length)return;if(s.editorType===`markdown`){let e=n.filter(e=>e?.url).map(e=>{let t=e?.filename||e?.name||`file`;return D(e)===`image`?``:`[${t}](${e.url})`});e.length&&t.insertMarkdown(e.join(`
|
|
2
2
|
|
|
3
|
-
`));return}let r=n.filter(e=>e?.url).map(e=>{let t=D(e),n=e?.filename||``;return t===`image`?{type:`image`,attrs:{src:e.url,alt:n,width:`auto`}}:t===`video`?{type:`video`,attrs:{src:e.url,controls:`true`,width:350}}:{type:`paragraph`,content:[{type:`text`,text:e?.filename||e?.name||`file`,marks:[{type:`link`,attrs:{href:e.url,target:`_blank`}}]}]}});r.length&&t.insert(r.length===1?r[0]:r)})}}]:[],`image`,`video`,`attachment`,`quote`,`container`,`code-block`,`table`,`divider`,`printer`,`fullscreen`,`ai`]})},k=()=>{d&&=(d.destroy(),null)};return(0,n.watch)(()=>s.value,w),(0,n.watch)(()=>p.isDark.value,e=>{u.value&&(u.value.classList.toggle(`aie-theme-dark`,e),u.value.classList.toggle(`aie-theme-light`,!e))},{immediate:!0}),l({get aiEditor(){return d}}),(0,n.onMounted)(()=>{(0,n.nextTick)(()=>{O()})}),(0,n.onUnmounted)(()=>{k()}),()=>(0,n.createVNode)(`div`,{ref:u,style:{height:s.height,width:`100%`}},null)}});exports.DuxAiEditor=s;
|
|
3
|
+
`));return}let r=n.filter(e=>e?.url).map(e=>{let t=D(e),n=e?.filename||``;return t===`image`?{type:`image`,attrs:{src:e.url,alt:n,width:`auto`}}:t===`video`?{type:`video`,attrs:{src:e.url,controls:`true`,width:350}}:{type:`paragraph`,content:[{type:`text`,text:e?.filename||e?.name||`file`,marks:[{type:`link`,attrs:{href:e.url,target:`_blank`}}]}]}});r.length&&t.insert(r.length===1?r[0]:r)})}}]:[],...s.toolbarExtend||[],`image`,`video`,`attachment`,`quote`,`container`,`code-block`,`table`,`divider`,`printer`,`fullscreen`,`ai`]})},k=()=>{d&&=(d.destroy(),null)};return(0,n.watch)(()=>s.value,w),(0,n.watch)(()=>p.isDark.value,e=>{u.value&&(u.value.classList.toggle(`aie-theme-dark`,e),u.value.classList.toggle(`aie-theme-light`,!e))},{immediate:!0}),l({get aiEditor(){return d}}),(0,n.onMounted)(()=>{(0,n.nextTick)(()=>{O()})}),(0,n.onUnmounted)(()=>{k()}),()=>(0,n.createVNode)(`div`,{ref:u,style:{height:s.height,width:`100%`}},null)}});exports.DuxAiEditor=s;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../card/card.cjs`);require(`../card/index.cjs`);const t=require(`../../pages/page.cjs`);require(`../../pages/index.cjs`);const n=require(`./formLayout.cjs`);let r=require(`vue`),i=require(`@duxweb/dvha-core`),a=require(`naive-ui`),o=require(`vue-router`);const s=(0,r.defineComponent)({name:`DuxPageForm`,props:{id:{type:[String,Number]},action:{type:String},title:{type:String},description:{type:String},labelPlacement:{type:String,default:`left`},path:{type:String},data:{type:Object},meta:{type:Object},params:{type:Object},onSuccess:{type:Function},onError:{type:Function},invalidate:{type:String}},setup(s,{slots:c}){let{t:l}=(0,i.useI18n)(),u=(0,r.toRef)(s,`data`,{}),d=(0,a.useMessage)(),f=(0,o.useRouter)(),p=(0,i.useTabStore)(),{invalidate:m}=(0,i.useInvalidate)(),h=(0,i.useExtendForm)({id:s.id,path:s.path,form:u,meta:s.meta,params:s.params,action:s.action,onError:e=>{d.error(e.message||l(`components.form.error`)),s.onError?.(e)},onSuccess:e=>{d.success(l(`components.form.success`)),s.onSuccess?.(e),!h.isEdit.value&&p.current&&p.delTab(p.current,e=>f.push(e.path||``)),s.invalidate&&m(s.invalidate)}}),g=p.tabs.find(e=>e.path===p.current);return()=>(0,r.createVNode)(t.DuxPage,{card:!1,scrollbar:!1},{default:()=>[(0,r.createVNode)(e.DuxCard,{title:s?.title||g?.label||(h.isEdit.value?l(`components.form.edit`):l(`components.form.create`)),description:s?.description,class:`h-full flex flex-col`,contentClass:`flex-1 min-h-0`,contentSize:`none`,"header-bordered":!0},{default:()=>(0,r.createVNode)(a.NScrollbar,null,{default:()=>[(0,r.createVNode)(n.DuxFormLayout,{labelPlacement:s.labelPlacement,class:`p-4`},{default:()=>[c?.default?.(h)]})]}),headerExtra:()=>(0,r.createVNode)(`div`,{class:`flex gap-6 items-center`},[c?.actions?.(h),(0,r.createVNode)(`div`,{class:`flex gap-2`},[(0,r.createVNode)(a.NButton,{onClick:()=>h.onReset(),loading:h.isLoading.value},{default:()=>l(`components.button.reset`),icon:()=>(0,r.createVNode)(`i`,{class:`i-tabler:refresh`},null)}),(0,r.createVNode)(a.NButton,{type:`primary`,onClick:()=>h.onSubmit(),loading:h.isLoading.value},{default:()=>l(`components.button.submit`),icon:()=>(0,r.createVNode)(`i`,{class:`i-tabler:device-floppy`},null)})])])})]})}});exports.DuxPageForm=s;
|
|
1
|
+
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../card/card.cjs`);require(`../card/index.cjs`);const t=require(`../../pages/page.cjs`);require(`../../pages/index.cjs`);const n=require(`./formLayout.cjs`);let r=require(`vue`),i=require(`@duxweb/dvha-core`),a=require(`naive-ui`),o=require(`vue-router`);const s=(0,r.defineComponent)({name:`DuxPageForm`,props:{id:{type:[String,Number]},action:{type:String},title:{type:String},description:{type:String},labelPlacement:{type:String,default:`left`},path:{type:String},data:{type:Object},meta:{type:Object},params:{type:Object},onSuccess:{type:Function},onError:{type:Function},invalidate:{type:String}},setup(s,{slots:c}){let{t:l}=(0,i.useI18n)(),u=(0,r.toRef)(s,`data`,{}),d=(0,a.useMessage)(),f=(0,o.useRouter)(),p=(0,i.useTabStore)(),{invalidate:m}=(0,i.useInvalidate)(),h=(0,i.useExtendForm)({id:s.id,path:s.path,form:u,meta:s.meta,params:s.params,action:s.action,onError:e=>{d.error(e.message||l(`components.form.error`)),s.onError?.(e)},onSuccess:e=>{d.success(l(`components.form.success`)),s.onSuccess?.(e),!h.isEdit.value&&p.current&&p.delTab(p.current,e=>f.push(e.tabKey||e.path||``)),s.invalidate&&m(s.invalidate)}}),g=p.tabs.find(e=>(e.tabKey||e.path)===p.current);return()=>(0,r.createVNode)(t.DuxPage,{card:!1,scrollbar:!1},{default:()=>[(0,r.createVNode)(e.DuxCard,{title:s?.title||g?.label||(h.isEdit.value?l(`components.form.edit`):l(`components.form.create`)),description:s?.description,class:`h-full flex flex-col`,contentClass:`flex-1 min-h-0`,contentSize:`none`,"header-bordered":!0},{default:()=>(0,r.createVNode)(a.NScrollbar,null,{default:()=>[(0,r.createVNode)(n.DuxFormLayout,{labelPlacement:s.labelPlacement,class:`p-4`},{default:()=>[c?.default?.(h)]})]}),headerExtra:()=>(0,r.createVNode)(`div`,{class:`flex gap-6 items-center`},[c?.actions?.(h),(0,r.createVNode)(`div`,{class:`flex gap-2`},[(0,r.createVNode)(a.NButton,{onClick:()=>h.onReset(),loading:h.isLoading.value},{default:()=>l(`components.button.reset`),icon:()=>(0,r.createVNode)(`i`,{class:`i-tabler:refresh`},null)}),(0,r.createVNode)(a.NButton,{type:`primary`,onClick:()=>h.onSubmit(),loading:h.isLoading.value},{default:()=>l(`components.button.submit`),icon:()=>(0,r.createVNode)(`i`,{class:`i-tabler:device-floppy`},null)})])])})]})}});exports.DuxPageForm=s;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../card/card.cjs`);require(`../card/index.cjs`);const t=require(`../../pages/page.cjs`);require(`../../pages/index.cjs`);let n=require(`vue`),r=require(`@duxweb/dvha-core`),i=require(`naive-ui`),a=require(`vue-router`);const o=(0,n.defineComponent)({name:`DuxPageTabForm`,props:{id:{type:[String,Number]},action:{type:String},title:{type:String},path:{type:String},data:{type:Object},meta:{type:Object},params:{type:Object},onSuccess:{type:Function},onError:{type:Function},invalidate:{type:String},defaultTab:{type:String,default:`0`}},setup(o,{slots:s}){let{t:c}=(0,r.useI18n)(),l=(0,n.toRef)(o,`data`,{}),u=(0,i.useMessage)(),d=(0,a.useRouter)(),f=(0,r.useTabStore)(),{invalidate:p}=(0,r.useInvalidate)(),m=(0,r.useExtendForm)({id:o.id,path:o.path,form:l,meta:o.meta,params:o.params,action:o.action,onError:e=>{u.error(e.message||c(`components.form.error`)),o.onError?.(e)},onSuccess:e=>{u.success(c(`components.form.success`)),o.onSuccess?.(e),!m.isEdit.value&&f.current&&f.delTab(f.current,e=>d.push(e.path||``)),o.invalidate&&p(o.invalidate)}});return()=>(0,n.createVNode)(t.DuxPage,{card:!1,scrollbar:!1},{default:()=>[(0,n.createVNode)(e.DuxCard,{class:`h-full`},{default:()=>[(0,n.createVNode)(i.NTabs,{class:`app-page-tabs`,type:`line`,size:`large`,defaultValue:o.defaultTab},{prefix:()=>(0,n.createVNode)(`div`,{class:`w-1`},null),default:()=>s?.default?.(m),suffix:()=>(0,n.createVNode)(`div`,{class:`flex gap-6 items-center px-3`},[s?.actions?.(m),(0,n.createVNode)(`div`,{class:`flex gap-2`},[(0,n.createVNode)(i.NButton,{onClick:()=>m.onReset(),loading:m.isLoading.value},{default:()=>c(`components.button.reset`),icon:()=>(0,n.createVNode)(`i`,{class:`i-tabler:refresh`},null)}),(0,n.createVNode)(i.NButton,{type:`primary`,onClick:()=>m.onSubmit(),loading:m.isLoading.value},{default:()=>c(`components.button.submit`),icon:()=>(0,n.createVNode)(`i`,{class:`i-tabler:device-floppy`},null)})])])})]})]})}});exports.DuxPageTabForm=o;
|
|
1
|
+
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../card/card.cjs`);require(`../card/index.cjs`);const t=require(`../../pages/page.cjs`);require(`../../pages/index.cjs`);let n=require(`vue`),r=require(`@duxweb/dvha-core`),i=require(`naive-ui`),a=require(`vue-router`);const o=(0,n.defineComponent)({name:`DuxPageTabForm`,props:{id:{type:[String,Number]},action:{type:String},title:{type:String},path:{type:String},data:{type:Object},meta:{type:Object},params:{type:Object},onSuccess:{type:Function},onError:{type:Function},invalidate:{type:String},defaultTab:{type:String,default:`0`}},setup(o,{slots:s}){let{t:c}=(0,r.useI18n)(),l=(0,n.toRef)(o,`data`,{}),u=(0,i.useMessage)(),d=(0,a.useRouter)(),f=(0,r.useTabStore)(),{invalidate:p}=(0,r.useInvalidate)(),m=(0,r.useExtendForm)({id:o.id,path:o.path,form:l,meta:o.meta,params:o.params,action:o.action,onError:e=>{u.error(e.message||c(`components.form.error`)),o.onError?.(e)},onSuccess:e=>{u.success(c(`components.form.success`)),o.onSuccess?.(e),!m.isEdit.value&&f.current&&f.delTab(f.current,e=>d.push(e.tabKey||e.path||``)),o.invalidate&&p(o.invalidate)}});return()=>(0,n.createVNode)(t.DuxPage,{card:!1,scrollbar:!1},{default:()=>[(0,n.createVNode)(e.DuxCard,{class:`h-full`},{default:()=>[(0,n.createVNode)(i.NTabs,{class:`app-page-tabs`,type:`line`,size:`large`,defaultValue:o.defaultTab},{prefix:()=>(0,n.createVNode)(`div`,{class:`w-1`},null),default:()=>s?.default?.(m),suffix:()=>(0,n.createVNode)(`div`,{class:`flex gap-6 items-center px-3`},[s?.actions?.(m),(0,n.createVNode)(`div`,{class:`flex gap-2`},[(0,n.createVNode)(i.NButton,{onClick:()=>m.onReset(),loading:m.isLoading.value},{default:()=>c(`components.button.reset`),icon:()=>(0,n.createVNode)(`i`,{class:`i-tabler:refresh`},null)}),(0,n.createVNode)(i.NButton,{type:`primary`,onClick:()=>m.onSubmit(),loading:m.isLoading.value},{default:()=>c(`components.button.submit`),icon:()=>(0,n.createVNode)(`i`,{class:`i-tabler:device-floppy`},null)})])])})]})]})}});exports.DuxPageTabForm=o;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../hooks/action.cjs`);require(`../../hooks/index.cjs`);const t=require(`./filter.cjs`),n=require(`../../pages/page.cjs`),r=require(`../../pages/pageEmpty.cjs`);require(`../../pages/index.cjs`);const i=require(`../drawer/drawerPage.cjs`);require(`../drawer/index.cjs`);const ee=require(`./tools.cjs`);require(`./index.cjs`);let a=require(`vue`),o=require(`@duxweb/dvha-core`),s=require(`naive-ui`),te=require(`@vueuse/core`),c=require(`lodash-es`);const l=(0,a.defineComponent)({name:`DuxListLayout`,props:{rowKey:{type:String,default:`id`},path:{type:String,required:!0},filter:{type:Object},filterSchema:{type:Array},filterReactive:{type:Object},filterType:{type:String,default:`simple`},pagination:{type:[Boolean,Object],default:!0},tabs:{type:Array},title:{type:String,default:``},tools:{type:Object},actions:{type:Array,default:()=>[]},checkable:{type:Boolean},sideLeftTitle:{type:String,default:``},sideRightTitle:{type:String,default:``},batchOptions:{type:Array},hookListProps:{type:Object}},setup(l,{slots:u,expose:ne}){let d=(0,a.toRef)(l,`filter`,{}),f=(0,a.computed)(()=>l.filterReactive||{}),{t:p}=(0,o.useI18n)(),{renderAction:m}=e.useAction(),h=(0,a.toRef)(l.pagination&&typeof l.pagination==`object`?l.pagination:{page:1,pageSize:20}),g=(0,a.reactive)({...d.value||{}}),_=(0,o.useExtendList)({path:l.path,filters:g,pagination:h.value,...l.hookListProps});ne(_);let{meta:v,list:y,isLoading:b,autoRefetch:re,autoCountdown:x,onAutoRefetch:S,isExporting:C,isExportingRows:w,isImporting:T,onExport:E,onExportRows:D,onImport:O}=_,k=(0,a.computed)(()=>({page:_.page.value,pageSize:_.pageSize.value,pageCount:_.pageCount.value,pageSizes:_.pageSizes,pageSlot:5,onUpdatePage:_.onUpdatePage,onUpdatePageSize:_.onUpdatePageSize,showSizePicker:!0,showQuickJumper:!0})),A=(0,a.reactive)({show:!1}),j=(0,a.reactive)({show:!1}),{width:M}=(0,te.useWindowSize)(),ie=(0,a.computed)(()=>{let e=(0,a.unref)(l.filterSchema);return Array.isArray(e)?e:[]}),N=(0,a.computed)(()=>ie.value.map((e,t)=>{let n=(Array.isArray(e)?e:[e]).map((e,n)=>{let{label:r,...i}=e||{};return{key:`filter-node-${t}-${n}`,label:r??e?.title??``,schema:i}});return{key:`filter-row-${t}`,nodes:n}})),P=(0,a.computed)(()=>N.value.some(e=>e.nodes.some(e=>Object.keys(e.schema||{}).length>0))),F=(0,a.computed)(()=>!!u.filter||P.value),I=(0,a.computed)(()=>N.value.flatMap(e=>e.nodes.map(e=>({tag:t.DuxTableFilter,attrs:{label:e.label},children:e.schema})))),{render:L}=(0,o.useJsonSchema)({data:(0,a.computed)(()=>I.value)}),R=(0,a.ref)(0),z=e=>(0,c.cloneDeep)((0,a.toRaw)(e)||{}),B=()=>(0,c.cloneDeep)((0,a.toRaw)(g)||{}),V=e=>{let t=B();return e(),!(0,c.isEqual)(t,(0,a.toRaw)(g)||{})},H=e=>{if(e){_.page?.value===1?_.onRefresh?.():_.onUpdatePage?.(1);return}_.onRefresh?.()},U=()=>{H(V(()=>{Object.keys(g).forEach(e=>{delete g[e]}),Object.assign(g,z(d.value)),Object.assign(g,z(f.value))}))},W=()=>{let e=d.value?.tab;Object.keys(d.value||{}).forEach(e=>{e!==`tab`&&delete d.value[e]}),H(V(()=>{Object.keys(g).forEach(e=>{delete g[e]}),e!==void 0&&(g.tab=e),Object.assign(g,z(f.value))})),R.value++},G=(0,a.computed)(()=>({tag:`div`,attrs:{class:`flex flex-wrap gap-2 items-center w-full`},children:[{tag:`div`,attrs:{class:`text-right text-sm text-muted w-24 px-1`}},{tag:`div`,attrs:{class:`flex flex-wrap gap-2 flex-1`},children:[{tag:s.NButton,attrs:{type:`primary`,secondary:!0,onClick:U},slots:{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:search size-4`},null),default:()=>p(`components.button.search`)}},{tag:s.NButton,attrs:{secondary:!0,onClick:W},slots:{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:arrow-back-up size-4`},null),default:()=>p(`components.button.reset`)}}]}]})),{render:K}=(0,o.useJsonSchema)({data:(0,a.computed)(()=>{if(!P.value)return[];let e=N.value.map(e=>{let t=e.nodes.length>1;return{tag:`div`,attrs:{class:`flex flex-wrap gap-2 w-full items-start`,"data-filter-row":e.key},children:e.nodes.map(e=>{let n=e.label;return{tag:`div`,attrs:{class:t?`flex items-start gap-2`:`flex items-start gap-2 w-full`},children:[n?{tag:`div`,attrs:{class:`w-24 text-right text-sm text-muted px-1 flex-none pt-1.5`},children:n}:{tag:`div`,attrs:{class:`w-24 flex-none`}},{tag:`div`,attrs:{class:`min-w-50`},children:e.schema}]}})}});return e.push(G.value),e})}),q=(0,a.computed)(()=>({import:!1,export:!0,refresh:!0,...l.tools})),J=(0,a.ref)(null),Y=(0,o.useTabStore)(),ae=(0,a.computed)(()=>{let e=l.tabs?.map(e=>e.value)||[],t=d.value?.tab;return e.includes(t)?t:e[0]});(0,a.watch)(()=>l.tabs?.map(e=>e.value),()=>{let e=l.tabs?.map(e=>e.value)||[];if(d.value?.tab===void 0){let t=e[0];t!==void 0&&(d.value.tab=t,g.tab=t)}(0,a.nextTick)(()=>J.value?.syncBarPosition())},{deep:!0}),(0,a.watch)(()=>M.value,()=>{(0,a.nextTick)(()=>J.value?.syncBarPosition())}),(0,a.onMounted)(()=>{(0,a.nextTick)(()=>J.value?.syncBarPosition())});let X=(0,a.ref)(!1),Z=()=>{let e=!!u?.sideLeft&&M.value<1024,t=!!u?.sideRight&&M.value<1024,n=!u?.filter&&F.value&&M.value<1024;return!e&&!t&&!n?null:(0,a.createVNode)(`div`,{class:[`flex gap-2`]},[e&&(0,a.createVNode)(s.NButton,{class:`flex-none`,secondary:!0,onClick:()=>{A.show=!A.show}},{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:layout-sidebar-inactive size-4`},null)}),t&&(0,a.createVNode)(s.NButton,{class:`flex-none`,secondary:!0,onClick:()=>{j.show=!j.show}},{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:layout-sidebar-right-inactive size-4`},null)}),n&&(0,a.createVNode)(`div`,{class:`flex-none lg:hidden`},[(0,a.createVNode)(s.NButton,{secondary:!0,onClick:()=>{X.value=!X.value}},{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:filter size-4`},null)})])])},oe=()=>(0,a.createVNode)(`div`,{class:[`flex gap-2 flex-row`]},[(0,a.createVNode)(`div`,{class:`flex lg:hidden`},[(0,a.createVNode)(s.NButton,{type:`primary`,secondary:!0,onClick:U},{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:search size-4`},null)})]),(0,a.createVNode)(`div`,{class:[`hidden lg:flex gap-2`]},[(0,a.createVNode)(s.NButton,{type:`primary`,secondary:!0,onClick:U},{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:search size-4`},null),default:()=>p(`components.button.search`)}),(0,a.createVNode)(s.NButton,{secondary:!0,onClick:W},{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:arrow-back-up size-4`},null),default:()=>p(`components.button.reset`)})])]),Q=e=>{let t=Z(),n=e?oe():null;return!t&&!n?null:(0,a.createVNode)(`div`,{class:`flex justify-between gap-2`},[t,n])};(0,a.watch)(()=>f.value,e=>{V(()=>{let t=e||{};Object.keys(t).forEach(e=>{let n=t[e];n==null||n===``?delete g[e]:g[e]=n})})&&H(!0)},{deep:!0});let $=(0,a.computed)(()=>Y.tabs.find(e=>e.path===Y.current)?.label);return()=>(0,a.createVNode)(n.DuxPage,{actions:l.actions,scrollbar:!1},{title:u.title,sideLeft:()=>u?.sideLeft&&M.value>=1024?u?.sideLeft?.():void 0,sideRight:()=>u?.sideRight&&M.value>=1024?u?.sideRight?.():void 0,default:()=>(0,a.createVNode)(`div`,{class:[`flex flex-col h-full relative`,F.value&&`gap-3`]},[(0,a.createVNode)(`div`,{class:[`flex gap-2 justify-between flex-row`,F.value&&`border-b border-muted`]},[(0,a.createVNode)(`div`,{class:`relative top-1.5px`},[!l.tabs&&(u.title?.()||(l.title||$.value?(0,a.createVNode)(`div`,{class:`pb-4 pt-2 text-base`},[l.title||$.value]):null)),l.tabs&&(0,a.createVNode)(s.NTabs,{ref:J,type:`bar`,size:`small`,style:{"--n-tab-padding":`5px 20px 15px 20px`,"--n-tab-gap":`20px`},"default-value":l.tabs?.[0]?.value||``,value:ae.value,onUpdateValue:e=>{d.value.tab=e,g.tab=e,(0,a.nextTick)(()=>J.value?.syncBarPosition())}},{default:()=>[l.tabs?.map(e=>(0,a.createVNode)(s.NTab,{name:e.value,tab:e.label},null))]})]),(0,a.createVNode)(`div`,{class:`flex gap-2 justify-end pb-2`},[u.actions?.(),l.actions?.length>0&&m({type:M.value<1024?`dropdown`:`button`,text:M.value<1024,items:l.actions})])]),u?.header?.(),F.value?u.filter?u.filter({filter:d.value,filterReactive:f.value,onSearch:U,onReset:W}):l.filterType===`multi`&&M.value>=1024?(0,a.createVNode)(`div`,{class:`flex flex-col gap-3`},[(M.value>=1024||X.value)&&(0,a.createVNode)(`div`,{class:`flex flex-col gap-3 w-full`},[(0,a.createVNode)(`div`,{key:R.value,class:`flex flex-col gap-3`},[(0,a.h)(K)])]),Q(!1)]):(0,a.createVNode)(`div`,{class:`flex gap-2 justify-between flex-col-reverse lg:flex-row`},[(M.value>=1024||X.value)&&(0,a.createVNode)(`div`,{class:[`flex-1 flex flex-col lg:flex-row gap-2 flex-wrap`]},[(0,a.createVNode)(`div`,{key:R.value,class:`contents`},[(0,a.h)(L)])]),Q(!0)]):Z(),u?.contentHeader?.(),(0,a.createVNode)(s.NSpin,{show:b.value,class:`flex-1 min-h-0`,contentClass:`h-full`},{default:()=>[(0,a.createVNode)(`div`,{class:[`h-full overflow-auto`]},[!b.value&&y.value.length===0&&(0,a.createVNode)(`div`,{class:`flex justify-center items-center h-full`},[(0,a.createVNode)(r.DuxPageEmpty,null,null)]),y.value.length>0&&u?.default?.(_)])]}),(0,a.createVNode)(`div`,{class:`flex justify-between`},[(0,a.createVNode)(`div`,{class:`flex items-center gap-0.5`},[l.checkable&&(0,a.createVNode)(s.NTooltip,null,{trigger:()=>(0,a.createVNode)(s.NButton,{circle:!0,quaternary:!0},{default:()=>[(0,a.createVNode)(s.NCheckbox,{checked:_.isAllChecked.value,indeterminate:_.isIndeterminate.value,onUpdateChecked:_.toggleSelectAll},null)]}),default:()=>p(`components.list.selectAll`)}),u?.bottom?.(),u?.tools?.(),q.value.export&&(0,a.createVNode)(s.NTooltip,null,{trigger:()=>(0,a.createVNode)(s.NButton,{quaternary:!0,circle:!0,loading:C.value,onClick:E},{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:database-export size-4`},null)}),default:()=>p(`components.button.export`)}),q.value.import&&(0,a.createVNode)(s.NTooltip,null,{trigger:()=>(0,a.createVNode)(s.NButton,{quaternary:!0,circle:!0,loading:T.value,onClick:O},{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:database-import size-4`},null)}),default:()=>p(`components.button.import`)}),q.value.refresh&&(0,a.createVNode)(s.NTooltip,null,{trigger:()=>(0,a.createVNode)(s.NButton,{quaternary:!0,circle:!0,onClick:S},{icon:()=>re.value?(0,a.createVNode)(s.NProgress,{class:`size-4`,type:`circle`,percentage:x.value*10,strokeWidth:20,color:`rgba(var(--ui-color-primary))`},{default:()=>[(0,a.createVNode)(`span`,{class:`text-8px`},[x.value])]}):(0,a.createVNode)(`div`,{class:`i-tabler:refresh size-4`},null)}),default:()=>p(`components.button.autoRefresh`)})]),(0,a.createVNode)(`div`,{class:`flex items-center gap-2`},[l.pagination&&(0,a.createVNode)(s.NPagination,(0,a.mergeProps)(k.value,{simple:M.value<768}),{prefix:()=>(0,a.createVNode)(`div`,null,[p(`components.list.total`,{total:v?.value?.total||0})])})])]),(0,a.createVNode)(ee.DuxTableTools,{isLoading:_.isBatching.value,onBatch:_.onBatch,selecteds:_.checkeds.value,number:_.checkeds.value.length,group:[[{icon:`i-tabler:x`,onClick:()=>{_.checkeds.value=[],_.onUpdateChecked?.([])}}],[{label:p(`components.button.export`),icon:`i-tabler:file-export`,loading:w.value,onClick:D},{label:p(`components.button.delete`),type:`error`,icon:`i-tabler:trash`}]]},null),(0,a.createVNode)(s.NDrawer,{show:A.show,onUpdateShow:e=>A.show=e,autoFocus:!1,placement:`left`},{default:()=>[(0,a.createVNode)(i.DuxDrawerPage,{title:l.sideLeftTitle||p(`components.button.sideLeft`),onClose:()=>A.show=!1,scrollbar:!1},{default:()=>[u?.sideLeft?.()]})]}),(0,a.createVNode)(s.NDrawer,{show:j.show,onUpdateShow:e=>j.show=e,autoFocus:!1,placement:`right`},{default:()=>[(0,a.createVNode)(i.DuxDrawerPage,{title:l.sideRightTitle||p(`components.button.sideRight`),onClose:()=>j.show=!1,scrollbar:!1},{default:()=>[u?.sideRight?.()]})]})])})}});exports.DuxListLayout=l;
|
|
1
|
+
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../hooks/action.cjs`);require(`../../hooks/index.cjs`);const t=require(`./filter.cjs`),n=require(`../../pages/page.cjs`),r=require(`../../pages/pageEmpty.cjs`);require(`../../pages/index.cjs`);const i=require(`../drawer/drawerPage.cjs`);require(`../drawer/index.cjs`);const ee=require(`./tools.cjs`);require(`./index.cjs`);let a=require(`vue`),o=require(`@duxweb/dvha-core`),s=require(`naive-ui`),te=require(`@vueuse/core`),c=require(`lodash-es`);const l=(0,a.defineComponent)({name:`DuxListLayout`,props:{rowKey:{type:String,default:`id`},path:{type:String,required:!0},filter:{type:Object},filterSchema:{type:Array},filterReactive:{type:Object},filterType:{type:String,default:`simple`},pagination:{type:[Boolean,Object],default:!0},tabs:{type:Array},title:{type:String,default:``},tools:{type:Object},actions:{type:Array,default:()=>[]},checkable:{type:Boolean},sideLeftTitle:{type:String,default:``},sideRightTitle:{type:String,default:``},batchOptions:{type:Array},hookListProps:{type:Object}},setup(l,{slots:u,expose:ne}){let d=(0,a.toRef)(l,`filter`,{}),f=(0,a.computed)(()=>l.filterReactive||{}),{t:p}=(0,o.useI18n)(),{renderAction:m}=e.useAction(),h=(0,a.toRef)(l.pagination&&typeof l.pagination==`object`?l.pagination:{page:1,pageSize:20}),g=(0,a.reactive)({...d.value||{}}),_=(0,o.useExtendList)({path:l.path,filters:g,pagination:h.value,...l.hookListProps});ne(_);let{meta:v,list:y,isLoading:b,autoRefetch:re,autoCountdown:x,onAutoRefetch:S,isExporting:C,isExportingRows:w,isImporting:T,onExport:E,onExportRows:D,onImport:O}=_,k=(0,a.computed)(()=>({page:_.page.value,pageSize:_.pageSize.value,pageCount:_.pageCount.value,pageSizes:_.pageSizes,pageSlot:5,onUpdatePage:_.onUpdatePage,onUpdatePageSize:_.onUpdatePageSize,showSizePicker:!0,showQuickJumper:!0})),A=(0,a.reactive)({show:!1}),j=(0,a.reactive)({show:!1}),{width:M}=(0,te.useWindowSize)(),ie=(0,a.computed)(()=>{let e=(0,a.unref)(l.filterSchema);return Array.isArray(e)?e:[]}),N=(0,a.computed)(()=>ie.value.map((e,t)=>{let n=(Array.isArray(e)?e:[e]).map((e,n)=>{let{label:r,...i}=e||{};return{key:`filter-node-${t}-${n}`,label:r??e?.title??``,schema:i}});return{key:`filter-row-${t}`,nodes:n}})),P=(0,a.computed)(()=>N.value.some(e=>e.nodes.some(e=>Object.keys(e.schema||{}).length>0))),F=(0,a.computed)(()=>!!u.filter||P.value),I=(0,a.computed)(()=>N.value.flatMap(e=>e.nodes.map(e=>({tag:t.DuxTableFilter,attrs:{label:e.label},children:e.schema})))),{render:L}=(0,o.useJsonSchema)({data:(0,a.computed)(()=>I.value)}),R=(0,a.ref)(0),z=e=>(0,c.cloneDeep)((0,a.toRaw)(e)||{}),B=()=>(0,c.cloneDeep)((0,a.toRaw)(g)||{}),V=e=>{let t=B();return e(),!(0,c.isEqual)(t,(0,a.toRaw)(g)||{})},H=e=>{if(e){_.page?.value===1?_.onRefresh?.():_.onUpdatePage?.(1);return}_.onRefresh?.()},U=()=>{H(V(()=>{Object.keys(g).forEach(e=>{delete g[e]}),Object.assign(g,z(d.value)),Object.assign(g,z(f.value))}))},W=()=>{let e=d.value?.tab;Object.keys(d.value||{}).forEach(e=>{e!==`tab`&&delete d.value[e]}),H(V(()=>{Object.keys(g).forEach(e=>{delete g[e]}),e!==void 0&&(g.tab=e),Object.assign(g,z(f.value))})),R.value++},G=(0,a.computed)(()=>({tag:`div`,attrs:{class:`flex flex-wrap gap-2 items-center w-full`},children:[{tag:`div`,attrs:{class:`text-right text-sm text-muted w-24 px-1`}},{tag:`div`,attrs:{class:`flex flex-wrap gap-2 flex-1`},children:[{tag:s.NButton,attrs:{type:`primary`,secondary:!0,onClick:U},slots:{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:search size-4`},null),default:()=>p(`components.button.search`)}},{tag:s.NButton,attrs:{secondary:!0,onClick:W},slots:{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:arrow-back-up size-4`},null),default:()=>p(`components.button.reset`)}}]}]})),{render:K}=(0,o.useJsonSchema)({data:(0,a.computed)(()=>{if(!P.value)return[];let e=N.value.map(e=>{let t=e.nodes.length>1;return{tag:`div`,attrs:{class:`flex flex-wrap gap-2 w-full items-start`,"data-filter-row":e.key},children:e.nodes.map(e=>{let n=e.label;return{tag:`div`,attrs:{class:t?`flex items-start gap-2`:`flex items-start gap-2 w-full`},children:[n?{tag:`div`,attrs:{class:`w-24 text-right text-sm text-muted px-1 flex-none pt-1.5`},children:n}:{tag:`div`,attrs:{class:`w-24 flex-none`}},{tag:`div`,attrs:{class:`min-w-50`},children:e.schema}]}})}});return e.push(G.value),e})}),q=(0,a.computed)(()=>({import:!1,export:!0,refresh:!0,...l.tools})),J=(0,a.ref)(null),Y=(0,o.useTabStore)(),ae=(0,a.computed)(()=>{let e=l.tabs?.map(e=>e.value)||[],t=d.value?.tab;return e.includes(t)?t:e[0]});(0,a.watch)(()=>l.tabs?.map(e=>e.value),()=>{let e=l.tabs?.map(e=>e.value)||[];if(d.value?.tab===void 0){let t=e[0];t!==void 0&&(d.value.tab=t,g.tab=t)}(0,a.nextTick)(()=>J.value?.syncBarPosition())},{deep:!0}),(0,a.watch)(()=>M.value,()=>{(0,a.nextTick)(()=>J.value?.syncBarPosition())}),(0,a.onMounted)(()=>{(0,a.nextTick)(()=>J.value?.syncBarPosition())});let X=(0,a.ref)(!1),Z=()=>{let e=!!u?.sideLeft&&M.value<1024,t=!!u?.sideRight&&M.value<1024,n=!u?.filter&&F.value&&M.value<1024;return!e&&!t&&!n?null:(0,a.createVNode)(`div`,{class:[`flex gap-2`]},[e&&(0,a.createVNode)(s.NButton,{class:`flex-none`,secondary:!0,onClick:()=>{A.show=!A.show}},{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:layout-sidebar-inactive size-4`},null)}),t&&(0,a.createVNode)(s.NButton,{class:`flex-none`,secondary:!0,onClick:()=>{j.show=!j.show}},{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:layout-sidebar-right-inactive size-4`},null)}),n&&(0,a.createVNode)(`div`,{class:`flex-none lg:hidden`},[(0,a.createVNode)(s.NButton,{secondary:!0,onClick:()=>{X.value=!X.value}},{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:filter size-4`},null)})])])},oe=()=>(0,a.createVNode)(`div`,{class:[`flex gap-2 flex-row`]},[(0,a.createVNode)(`div`,{class:`flex lg:hidden`},[(0,a.createVNode)(s.NButton,{type:`primary`,secondary:!0,onClick:U},{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:search size-4`},null)})]),(0,a.createVNode)(`div`,{class:[`hidden lg:flex gap-2`]},[(0,a.createVNode)(s.NButton,{type:`primary`,secondary:!0,onClick:U},{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:search size-4`},null),default:()=>p(`components.button.search`)}),(0,a.createVNode)(s.NButton,{secondary:!0,onClick:W},{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:arrow-back-up size-4`},null),default:()=>p(`components.button.reset`)})])]),Q=e=>{let t=Z(),n=e?oe():null;return!t&&!n?null:(0,a.createVNode)(`div`,{class:`flex justify-between gap-2`},[t,n])};(0,a.watch)(()=>f.value,e=>{V(()=>{let t=e||{};Object.keys(t).forEach(e=>{let n=t[e];n==null||n===``?delete g[e]:g[e]=n})})&&H(!0)},{deep:!0});let $=(0,a.computed)(()=>Y.tabs.find(e=>(e.tabKey||e.path)===Y.current)?.label);return()=>(0,a.createVNode)(n.DuxPage,{actions:l.actions,scrollbar:!1},{title:u.title,sideLeft:()=>u?.sideLeft&&M.value>=1024?u?.sideLeft?.():void 0,sideRight:()=>u?.sideRight&&M.value>=1024?u?.sideRight?.():void 0,default:()=>(0,a.createVNode)(`div`,{class:[`flex flex-col h-full relative`,F.value&&`gap-3`]},[(0,a.createVNode)(`div`,{class:[`flex gap-2 justify-between flex-row`,F.value&&`border-b border-muted`]},[(0,a.createVNode)(`div`,{class:`relative top-1.5px`},[!l.tabs&&(u.title?.()||(l.title||$.value?(0,a.createVNode)(`div`,{class:`pb-4 pt-2 text-base`},[l.title||$.value]):null)),l.tabs&&(0,a.createVNode)(s.NTabs,{ref:J,type:`bar`,size:`small`,style:{"--n-tab-padding":`5px 20px 15px 20px`,"--n-tab-gap":`20px`},"default-value":l.tabs?.[0]?.value||``,value:ae.value,onUpdateValue:e=>{d.value.tab=e,g.tab=e,(0,a.nextTick)(()=>J.value?.syncBarPosition())}},{default:()=>[l.tabs?.map(e=>(0,a.createVNode)(s.NTab,{name:e.value,tab:e.label},null))]})]),(0,a.createVNode)(`div`,{class:`flex gap-2 justify-end pb-2`},[u.actions?.(),l.actions?.length>0&&m({type:M.value<1024?`dropdown`:`button`,text:M.value<1024,items:l.actions})])]),u?.header?.(),F.value?u.filter?u.filter({filter:d.value,filterReactive:f.value,onSearch:U,onReset:W}):l.filterType===`multi`&&M.value>=1024?(0,a.createVNode)(`div`,{class:`flex flex-col gap-3`},[(M.value>=1024||X.value)&&(0,a.createVNode)(`div`,{class:`flex flex-col gap-3 w-full`},[(0,a.createVNode)(`div`,{key:R.value,class:`flex flex-col gap-3`},[(0,a.h)(K)])]),Q(!1)]):(0,a.createVNode)(`div`,{class:`flex gap-2 justify-between flex-col-reverse lg:flex-row`},[(M.value>=1024||X.value)&&(0,a.createVNode)(`div`,{class:[`flex-1 flex flex-col lg:flex-row gap-2 flex-wrap`]},[(0,a.createVNode)(`div`,{key:R.value,class:`contents`},[(0,a.h)(L)])]),Q(!0)]):Z(),u?.contentHeader?.(),(0,a.createVNode)(s.NSpin,{show:b.value,class:`flex-1 min-h-0`,contentClass:`h-full`},{default:()=>[(0,a.createVNode)(`div`,{class:[`h-full overflow-auto`]},[!b.value&&y.value.length===0&&(0,a.createVNode)(`div`,{class:`flex justify-center items-center h-full`},[(0,a.createVNode)(r.DuxPageEmpty,null,null)]),y.value.length>0&&u?.default?.(_)])]}),(0,a.createVNode)(`div`,{class:`flex justify-between`},[(0,a.createVNode)(`div`,{class:`flex items-center gap-0.5`},[l.checkable&&(0,a.createVNode)(s.NTooltip,null,{trigger:()=>(0,a.createVNode)(s.NButton,{circle:!0,quaternary:!0},{default:()=>[(0,a.createVNode)(s.NCheckbox,{checked:_.isAllChecked.value,indeterminate:_.isIndeterminate.value,onUpdateChecked:_.toggleSelectAll},null)]}),default:()=>p(`components.list.selectAll`)}),u?.bottom?.(),u?.tools?.(),q.value.export&&(0,a.createVNode)(s.NTooltip,null,{trigger:()=>(0,a.createVNode)(s.NButton,{quaternary:!0,circle:!0,loading:C.value,onClick:E},{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:database-export size-4`},null)}),default:()=>p(`components.button.export`)}),q.value.import&&(0,a.createVNode)(s.NTooltip,null,{trigger:()=>(0,a.createVNode)(s.NButton,{quaternary:!0,circle:!0,loading:T.value,onClick:O},{icon:()=>(0,a.createVNode)(`div`,{class:`i-tabler:database-import size-4`},null)}),default:()=>p(`components.button.import`)}),q.value.refresh&&(0,a.createVNode)(s.NTooltip,null,{trigger:()=>(0,a.createVNode)(s.NButton,{quaternary:!0,circle:!0,onClick:S},{icon:()=>re.value?(0,a.createVNode)(s.NProgress,{class:`size-4`,type:`circle`,percentage:x.value*10,strokeWidth:20,color:`rgba(var(--ui-color-primary))`},{default:()=>[(0,a.createVNode)(`span`,{class:`text-8px`},[x.value])]}):(0,a.createVNode)(`div`,{class:`i-tabler:refresh size-4`},null)}),default:()=>p(`components.button.autoRefresh`)})]),(0,a.createVNode)(`div`,{class:`flex items-center gap-2`},[l.pagination&&(0,a.createVNode)(s.NPagination,(0,a.mergeProps)(k.value,{simple:M.value<768}),{prefix:()=>(0,a.createVNode)(`div`,null,[p(`components.list.total`,{total:v?.value?.total||0})])})])]),(0,a.createVNode)(ee.DuxTableTools,{isLoading:_.isBatching.value,onBatch:_.onBatch,selecteds:_.checkeds.value,number:_.checkeds.value.length,group:[[{icon:`i-tabler:x`,onClick:()=>{_.checkeds.value=[],_.onUpdateChecked?.([])}}],[{label:p(`components.button.export`),icon:`i-tabler:file-export`,loading:w.value,onClick:D},{label:p(`components.button.delete`),type:`error`,icon:`i-tabler:trash`}]]},null),(0,a.createVNode)(s.NDrawer,{show:A.show,onUpdateShow:e=>A.show=e,autoFocus:!1,placement:`left`},{default:()=>[(0,a.createVNode)(i.DuxDrawerPage,{title:l.sideLeftTitle||p(`components.button.sideLeft`),onClose:()=>A.show=!1,scrollbar:!1},{default:()=>[u?.sideLeft?.()]})]}),(0,a.createVNode)(s.NDrawer,{show:j.show,onUpdateShow:e=>j.show=e,autoFocus:!1,placement:`right`},{default:()=>[(0,a.createVNode)(i.DuxDrawerPage,{title:l.sideRightTitle||p(`components.button.sideRight`),onClose:()=>j.show=!1,scrollbar:!1},{default:()=>[u?.sideRight?.()]})]})])})}});exports.DuxListLayout=l;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../hooks/action.cjs`),t=require(`../../hooks/table.cjs`);require(`../../hooks/index.cjs`);const n=require(`./filter.cjs`),r=require(`../../pages/page.cjs`);require(`../../pages/index.cjs`);const i=require(`../drawer/drawerPage.cjs`);require(`../drawer/index.cjs`);const a=require(`./tools.cjs`);let o=require(`vue`),s=require(`@duxweb/dvha-core`),c=require(`naive-ui`),l=require(`@vueuse/core`),u=require(`lodash-es`);const d=(0,o.defineComponent)({name:`DuxTableLayout`,props:{path:{type:String,required:!0},filter:{type:Object},filterSchema:{type:Array},filterType:{type:String,default:`simple`},filterReactive:{type:Object},filterNumber:{type:Number,default:1},sorter:{type:Object},columns:{type:Array},pagination:{type:[Boolean,Object],default:!0},tabs:{type:Array},actions:{type:Array,default:()=>[]},tools:{type:Object},sideLeftTitle:{type:String,default:``},sideRightTitle:{type:String,default:``},batchOptions:{type:Array},hookTableProps:{type:Object}},setup(d,{slots:f,expose:p}){let m=(0,o.toRef)(d,`filter`,{}),ee=(0,o.toRef)(d,`sorter`,{}),h=(0,o.computed)(()=>d.filterReactive||{}),g=(0,o.toRef)(d,`columns`,[]),{t:_}=(0,s.useI18n)(),{renderAction:v}=e.useAction(),y=(0,o.reactive)({...m.value||{}}),b=t.useTable({...d.hookTableProps,path:d.path,filters:y,sorters:ee.value,columns:g,pagination:d.pagination});p(b);let{columns:x,tablePagination:S,table:C,onUpdateColumnSelected:te,onUpdateChecked:ne,columnSelected:re,autoRefetch:ie,autoCountdown:w,onAutoRefetch:T,isExporting:E,isExportingRows:D,isImporting:O,onExport:k,onExportRows:A,onImport:ae}=b,oe=(0,o.computed)(()=>x.value.filter(e=>`title`in e&&`key`in e).map(e=>({label:e.title,value:e.key}))),{width:j}=(0,l.useWindowSize)(),M=(0,o.computed)(()=>x.value.reduce((e,t)=>e+(Number(t?.width)||Number(t?.minWidth)||110),0)),N=(0,o.reactive)({show:!1}),P=(0,o.reactive)({show:!1}),F=(0,o.ref)(!1),I=(0,o.computed)(()=>{let e=(0,o.unref)(d.filterSchema);return Array.isArray(e)?e:[]}),L=(0,o.computed)(()=>I.value.map((e,t)=>{let n=(Array.isArray(e)?e:[e]).map((e,n)=>{let{label:r,...i}=e||{};return{key:`filter-node-${t}-${n}`,label:r??e?.title??``,schema:i}});return{key:`filter-row-${t}`,nodes:n}})),R=(0,o.computed)(()=>L.value.some(e=>e.nodes.some(e=>Object.keys(e.schema||{}).length>0))),z=(0,o.computed)(()=>!!f.filter||R.value),B=(0,o.computed)(()=>L.value.flatMap(e=>e.nodes.map(e=>({tag:n.DuxTableFilter,attrs:{label:e.label},children:e.schema})))),{render:V}=(0,s.useJsonSchema)({data:(0,o.computed)(()=>B.value)}),H=(0,o.computed)(()=>({import:!1,export:!0,refresh:!0,...d.tools})),U=(0,o.ref)(0),W=(0,o.ref)(null),G=e=>(0,u.cloneDeep)((0,o.toRaw)(e)||{}),K=()=>(0,u.cloneDeep)((0,o.toRaw)(y)||{}),q=e=>{let t=K();return e(),!(0,u.isEqual)(t,(0,o.toRaw)(y)||{})},J=e=>{if(e){b.page?.value!==1&&b.onUpdatePage?.(1);return}b.onRefresh?.()},Y=()=>{J(q(()=>{Object.keys(y).forEach(e=>{delete y[e]}),Object.assign(y,G(m.value)),Object.assign(y,G(h.value))}))},X=()=>{let e=m.value?.tab;Object.keys(m.value||{}).forEach(e=>{e!==`tab`&&delete m.value[e]}),J(q(()=>{Object.keys(y).forEach(e=>{delete y[e]}),e!==void 0&&(y.tab=e),Object.assign(y,G(h.value))})),U.value++},se=(0,o.computed)(()=>({tag:`div`,attrs:{class:`flex flex-wrap gap-2 items-center w-full`},children:[{tag:`div`,attrs:{class:`text-right text-sm text-muted w-24 px-1`}},{tag:`div`,attrs:{class:`flex flex-wrap gap-2 flex-1`},children:[{tag:c.NButton,attrs:{type:`primary`,secondary:!0,onClick:Y},slots:{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:search size-4`},null),default:()=>_(`components.button.search`)}},{tag:c.NButton,attrs:{secondary:!0,onClick:X},slots:{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:arrow-back-up size-4`},null),default:()=>_(`components.button.reset`)}},{tag:c.NButton,attrs:{secondary:!0,onClick:()=>b.onRefresh?.()},slots:{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:refresh size-4`},null)}}]}]})),{render:ce}=(0,s.useJsonSchema)({data:(0,o.computed)(()=>{if(!R.value)return[];let e=L.value.map(e=>{let t=e.nodes.length>1;return{tag:`div`,attrs:{class:`flex flex-wrap gap-2 w-full items-start`,"data-filter-row":e.key},children:e.nodes.map(e=>{let n=e.label;return{tag:`div`,attrs:{class:t?`flex items-start gap-2`:`flex items-start gap-2 w-full`},children:[n?{tag:`div`,attrs:{class:`w-24 text-right text-sm text-muted px-1 flex-none pt-1.5`},children:n}:{tag:`div`,attrs:{class:`w-24 flex-none`}},{tag:`div`,attrs:{class:`min-w-50`},children:e.schema}]}})}});return e.push(se.value),e})}),Z=()=>{let e=!!f?.sideLeft&&j.value<1024,t=!!f?.sideRight&&j.value<1024,n=!f?.filter&&z.value&&j.value<1024;return!e&&!t&&!n?null:(0,o.createVNode)(`div`,{class:[`flex gap-2`]},[e&&(0,o.createVNode)(c.NButton,{class:`flex-none`,secondary:!0,onClick:()=>{N.show=!N.show}},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:layout-sidebar-inactive size-4`},null)}),t&&(0,o.createVNode)(c.NButton,{class:`flex-none`,secondary:!0,onClick:()=>{P.show=!P.show}},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:layout-sidebar-right-inactive size-4`},null)}),n&&(0,o.createVNode)(`div`,{class:`flex-none lg:hidden`},[(0,o.createVNode)(c.NButton,{secondary:!0,onClick:()=>{F.value=!F.value}},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:filter size-4`},null)})])])},le=()=>(0,o.createVNode)(`div`,{class:[`flex gap-2 flex-row`]},[(0,o.createVNode)(`div`,{class:`flex lg:hidden`},[(0,o.createVNode)(c.NButton,{type:`primary`,secondary:!0,onClick:Y},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:search size-4`},null)})]),(0,o.createVNode)(`div`,{class:[`hidden lg:flex gap-2`]},[(0,o.createVNode)(c.NButton,{type:`primary`,secondary:!0,onClick:Y},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:search size-4`},null),default:()=>_(`components.button.search`)}),(0,o.createVNode)(c.NButton,{secondary:!0,onClick:X},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:arrow-back-up size-4`},null),default:()=>_(`components.button.reset`)}),(0,o.createVNode)(c.NButton,{secondary:!0,onClick:()=>b.onRefresh?.()},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:refresh size-4`},null)})])]),Q=e=>{let t=Z(),n=e?le():null;return!t&&!n?null:(0,o.createVNode)(`div`,{class:`flex justify-between gap-2`},[t,n])};(0,o.watch)(()=>d.tabs?.map(e=>e.value),()=>{let e=d.tabs?.map(e=>e.value)||[];if(m.value?.tab===void 0){let t=e[0];t!==void 0&&(m.value.tab=t)}(0,o.nextTick)(()=>W.value?.syncBarPosition())},{deep:!0}),(0,o.watch)(()=>j.value,()=>{(0,o.nextTick)(()=>{W.value?.syncBarPosition()})});let $=(0,s.useTabStore)(),ue=$.tabs.find(e=>e.path===$.current),de=(0,o.computed)(()=>{let e=d.tabs?.map(e=>e.value)||[],t=m.value?.tab;return e.includes(t)?t:e[0]});return(0,o.onMounted)(()=>{(0,o.nextTick)(()=>{W.value?.syncBarPosition()})}),(0,o.watch)(()=>h.value,e=>{q(()=>{let t=e||{};Object.keys(t).forEach(e=>{let n=t[e];n==null||n===``?delete y[e]:y[e]=n})})&&J(!0)},{deep:!0}),()=>(0,o.createVNode)(r.DuxPage,{actions:d.actions,scrollbar:!1},{sideLeft:()=>f?.sideLeft&&j.value>=1024?f?.sideLeft?.():void 0,sideRight:()=>f?.sideRight&&j.value>=1024?f?.sideRight?.():void 0,default:()=>(0,o.createVNode)(`div`,{class:[`flex flex-col h-full relative`,z.value&&`gap-3`]},[(0,o.createVNode)(`div`,{class:[`flex gap-2 justify-between flex-row`,z.value&&`border-b border-muted`]},[(0,o.createVNode)(`div`,{class:`relative top-1.5px`},[!d.tabs&&(0,o.createVNode)(`div`,{class:`pb-4 pt-2 text-base`},[ue?.label]),d.tabs&&(0,o.createVNode)(c.NTabs,{ref:W,type:`bar`,size:`small`,style:{"--n-tab-padding":`5px 20px 15px 20px`,"--n-tab-gap":`20px`},"default-value":d.tabs?.[0]?.value||``,value:de.value,onUpdateValue:e=>{m.value.tab=e,y.tab=e,(0,o.nextTick)(()=>W.value?.syncBarPosition())}},{default:()=>[d.tabs?.map(e=>(0,o.createVNode)(c.NTab,{name:e.value,tab:e.label},null))]})]),(0,o.createVNode)(`div`,{class:`flex gap-2 justify-end pb-2`},[f.actions?.(),d.actions?.length>0&&v({type:j.value<1024?`dropdown`:`button`,items:d.actions})])]),f?.header?.(),z.value?f.filter?f.filter({filter:m.value,filterReactive:h.value,onSearch:Y,onReset:X}):d.filterType===`multi`&&j.value>=1024?(0,o.createVNode)(`div`,{class:`flex flex-col gap-3`},[(j.value>=1024||F.value)&&(0,o.createVNode)(`div`,{class:`flex flex-col gap-3 w-full`},[(0,o.createVNode)(`div`,{key:U.value,class:`flex flex-col gap-3`},[(0,o.h)(ce)])]),Q(!1)]):(0,o.createVNode)(`div`,{class:`flex gap-2 justify-between flex-col-reverse lg:flex-row`},[(j.value>=1024||F.value)&&(0,o.createVNode)(`div`,{class:[`flex-1 flex flex-col lg:flex-row gap-2 flex-wrap`]},[(0,o.createVNode)(`div`,{key:U.value,class:`contents`},[(0,o.h)(V)])]),Q(!0)]):Z(),f?.contentHeader?.(),(0,o.createVNode)(`div`,{class:`flex-1 min-h-0`},[f?.default?.({...b,width:M.value})]),(0,o.createVNode)(`div`,{class:`flex justify-between`},[(0,o.createVNode)(`div`,{class:`flex items-center gap-0.5`},[f?.bottom?.(),f?.tools?.(),(0,o.createVNode)(c.NPopselect,{options:oe.value,value:re.value,onUpdateValue:e=>{te(e)},multiple:!0,placement:`bottom-start`,trigger:`click`},{default:()=>[(0,o.createVNode)(c.NTooltip,null,{trigger:()=>(0,o.createVNode)(c.NButton,{quaternary:!0,circle:!0,"icon-placement":`right`},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:columns size-4`},null)}),default:()=>_(`components.list.columnSetting`)})]}),H.value.export&&(0,o.createVNode)(c.NTooltip,null,{trigger:()=>(0,o.createVNode)(c.NButton,{quaternary:!0,circle:!0,loading:E.value,onClick:k},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:database-export size-4`},null)}),default:()=>_(`components.button.export`)}),H.value.import&&(0,o.createVNode)(c.NTooltip,null,{trigger:()=>(0,o.createVNode)(c.NButton,{quaternary:!0,circle:!0,loading:O.value,onClick:ae},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:database-import size-4`},null)}),default:()=>_(`components.button.import`)}),H.value.refresh&&(0,o.createVNode)(c.NTooltip,null,{trigger:()=>(0,o.createVNode)(c.NButton,{quaternary:!0,circle:!0,onClick:T},{icon:()=>ie.value?(0,o.createVNode)(c.NProgress,{class:`size-4`,type:`circle`,percentage:w.value*10,strokeWidth:20,color:`rgba(var(--ui-color-primary))`},{default:()=>[(0,o.createVNode)(`span`,{class:`text-8px`},[w.value])]}):(0,o.createVNode)(`div`,{class:`i-tabler:refresh size-4`},null)}),default:()=>_(`components.button.autoRefresh`)})]),(0,o.createVNode)(`div`,null,[d.pagination&&(0,o.createVNode)(c.NPagination,(0,o.mergeProps)(S.value,{simple:j.value<768}),{prefix:()=>(0,o.createVNode)(`div`,null,[_(`components.list.total`,{total:b.total.value||0})])})])]),(0,o.createVNode)(a.DuxTableTools,{isLoading:b.isBatching.value,onBatch:b.onBatch,selecteds:C.value.checkedRowKeys,number:C.value.checkedRowKeys?.length||0,group:[[{icon:`i-tabler:x`,onClick:()=>{ne?.([])}}],[{label:_(`components.button.export`),icon:`i-tabler:file-export`,loading:D.value,onClick:A},...d.batchOptions||[]]]},null),(0,o.createVNode)(c.NDrawer,{show:N.show,onUpdateShow:e=>N.show=e,autoFocus:!1,placement:`left`},{default:()=>[(0,o.createVNode)(i.DuxDrawerPage,{title:d.sideLeftTitle||_(`components.button.sideLeft`),onClose:()=>N.show=!1,scrollbar:!1},{default:()=>[f?.sideLeft?.()]})]}),(0,o.createVNode)(c.NDrawer,{show:P.show,onUpdateShow:e=>P.show=e,autoFocus:!1,placement:`right`},{default:()=>[(0,o.createVNode)(i.DuxDrawerPage,{title:d.sideRightTitle||_(`components.button.sideRight`),onClose:()=>P.show=!1,scrollbar:!1},{default:()=>[f?.sideRight?.()]})]})])})}});exports.DuxTableLayout=d;
|
|
1
|
+
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../hooks/action.cjs`),t=require(`../../hooks/table.cjs`);require(`../../hooks/index.cjs`);const n=require(`./filter.cjs`),r=require(`../../pages/page.cjs`);require(`../../pages/index.cjs`);const i=require(`../drawer/drawerPage.cjs`);require(`../drawer/index.cjs`);const a=require(`./tools.cjs`);let o=require(`vue`),s=require(`@duxweb/dvha-core`),c=require(`naive-ui`),l=require(`@vueuse/core`),u=require(`lodash-es`);const d=(0,o.defineComponent)({name:`DuxTableLayout`,props:{path:{type:String,required:!0},filter:{type:Object},filterSchema:{type:Array},filterType:{type:String,default:`simple`},filterReactive:{type:Object},filterNumber:{type:Number,default:1},sorter:{type:Object},columns:{type:Array},pagination:{type:[Boolean,Object],default:!0},tabs:{type:Array},actions:{type:Array,default:()=>[]},tools:{type:Object},sideLeftTitle:{type:String,default:``},sideRightTitle:{type:String,default:``},batchOptions:{type:Array},hookTableProps:{type:Object}},setup(d,{slots:f,expose:p}){let m=(0,o.toRef)(d,`filter`,{}),ee=(0,o.toRef)(d,`sorter`,{}),h=(0,o.computed)(()=>d.filterReactive||{}),g=(0,o.toRef)(d,`columns`,[]),{t:_}=(0,s.useI18n)(),{renderAction:v}=e.useAction(),y=(0,o.reactive)({...m.value||{}}),b=t.useTable({...d.hookTableProps,path:d.path,filters:y,sorters:ee.value,columns:g,pagination:d.pagination});p(b);let{columns:x,tablePagination:S,table:C,onUpdateColumnSelected:te,onUpdateChecked:ne,columnSelected:re,autoRefetch:ie,autoCountdown:w,onAutoRefetch:T,isExporting:E,isExportingRows:D,isImporting:O,onExport:k,onExportRows:A,onImport:ae}=b,oe=(0,o.computed)(()=>x.value.filter(e=>`title`in e&&`key`in e).map(e=>({label:e.title,value:e.key}))),{width:j}=(0,l.useWindowSize)(),M=(0,o.computed)(()=>x.value.reduce((e,t)=>e+(Number(t?.width)||Number(t?.minWidth)||110),0)),N=(0,o.reactive)({show:!1}),P=(0,o.reactive)({show:!1}),F=(0,o.ref)(!1),I=(0,o.computed)(()=>{let e=(0,o.unref)(d.filterSchema);return Array.isArray(e)?e:[]}),L=(0,o.computed)(()=>I.value.map((e,t)=>{let n=(Array.isArray(e)?e:[e]).map((e,n)=>{let{label:r,...i}=e||{};return{key:`filter-node-${t}-${n}`,label:r??e?.title??``,schema:i}});return{key:`filter-row-${t}`,nodes:n}})),R=(0,o.computed)(()=>L.value.some(e=>e.nodes.some(e=>Object.keys(e.schema||{}).length>0))),z=(0,o.computed)(()=>!!f.filter||R.value),B=(0,o.computed)(()=>L.value.flatMap(e=>e.nodes.map(e=>({tag:n.DuxTableFilter,attrs:{label:e.label},children:e.schema})))),{render:V}=(0,s.useJsonSchema)({data:(0,o.computed)(()=>B.value)}),H=(0,o.computed)(()=>({import:!1,export:!0,refresh:!0,...d.tools})),U=(0,o.ref)(0),W=(0,o.ref)(null),G=e=>(0,u.cloneDeep)((0,o.toRaw)(e)||{}),K=()=>(0,u.cloneDeep)((0,o.toRaw)(y)||{}),q=e=>{let t=K();return e(),!(0,u.isEqual)(t,(0,o.toRaw)(y)||{})},J=e=>{if(e){b.page?.value!==1&&b.onUpdatePage?.(1);return}b.onRefresh?.()},Y=()=>{J(q(()=>{Object.keys(y).forEach(e=>{delete y[e]}),Object.assign(y,G(m.value)),Object.assign(y,G(h.value))}))},X=()=>{let e=m.value?.tab;Object.keys(m.value||{}).forEach(e=>{e!==`tab`&&delete m.value[e]}),J(q(()=>{Object.keys(y).forEach(e=>{delete y[e]}),e!==void 0&&(y.tab=e),Object.assign(y,G(h.value))})),U.value++},se=(0,o.computed)(()=>({tag:`div`,attrs:{class:`flex flex-wrap gap-2 items-center w-full`},children:[{tag:`div`,attrs:{class:`text-right text-sm text-muted w-24 px-1`}},{tag:`div`,attrs:{class:`flex flex-wrap gap-2 flex-1`},children:[{tag:c.NButton,attrs:{type:`primary`,secondary:!0,onClick:Y},slots:{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:search size-4`},null),default:()=>_(`components.button.search`)}},{tag:c.NButton,attrs:{secondary:!0,onClick:X},slots:{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:arrow-back-up size-4`},null),default:()=>_(`components.button.reset`)}},{tag:c.NButton,attrs:{secondary:!0,onClick:()=>b.onRefresh?.()},slots:{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:refresh size-4`},null)}}]}]})),{render:ce}=(0,s.useJsonSchema)({data:(0,o.computed)(()=>{if(!R.value)return[];let e=L.value.map(e=>{let t=e.nodes.length>1;return{tag:`div`,attrs:{class:`flex flex-wrap gap-2 w-full items-start`,"data-filter-row":e.key},children:e.nodes.map(e=>{let n=e.label;return{tag:`div`,attrs:{class:t?`flex items-start gap-2`:`flex items-start gap-2 w-full`},children:[n?{tag:`div`,attrs:{class:`w-24 text-right text-sm text-muted px-1 flex-none pt-1.5`},children:n}:{tag:`div`,attrs:{class:`w-24 flex-none`}},{tag:`div`,attrs:{class:`min-w-50`},children:e.schema}]}})}});return e.push(se.value),e})}),Z=()=>{let e=!!f?.sideLeft&&j.value<1024,t=!!f?.sideRight&&j.value<1024,n=!f?.filter&&z.value&&j.value<1024;return!e&&!t&&!n?null:(0,o.createVNode)(`div`,{class:[`flex gap-2`]},[e&&(0,o.createVNode)(c.NButton,{class:`flex-none`,secondary:!0,onClick:()=>{N.show=!N.show}},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:layout-sidebar-inactive size-4`},null)}),t&&(0,o.createVNode)(c.NButton,{class:`flex-none`,secondary:!0,onClick:()=>{P.show=!P.show}},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:layout-sidebar-right-inactive size-4`},null)}),n&&(0,o.createVNode)(`div`,{class:`flex-none lg:hidden`},[(0,o.createVNode)(c.NButton,{secondary:!0,onClick:()=>{F.value=!F.value}},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:filter size-4`},null)})])])},le=()=>(0,o.createVNode)(`div`,{class:[`flex gap-2 flex-row`]},[(0,o.createVNode)(`div`,{class:`flex lg:hidden`},[(0,o.createVNode)(c.NButton,{type:`primary`,secondary:!0,onClick:Y},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:search size-4`},null)})]),(0,o.createVNode)(`div`,{class:[`hidden lg:flex gap-2`]},[(0,o.createVNode)(c.NButton,{type:`primary`,secondary:!0,onClick:Y},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:search size-4`},null),default:()=>_(`components.button.search`)}),(0,o.createVNode)(c.NButton,{secondary:!0,onClick:X},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:arrow-back-up size-4`},null),default:()=>_(`components.button.reset`)}),(0,o.createVNode)(c.NButton,{secondary:!0,onClick:()=>b.onRefresh?.()},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:refresh size-4`},null)})])]),Q=e=>{let t=Z(),n=e?le():null;return!t&&!n?null:(0,o.createVNode)(`div`,{class:`flex justify-between gap-2`},[t,n])};(0,o.watch)(()=>d.tabs?.map(e=>e.value),()=>{let e=d.tabs?.map(e=>e.value)||[];if(m.value?.tab===void 0){let t=e[0];t!==void 0&&(m.value.tab=t)}(0,o.nextTick)(()=>W.value?.syncBarPosition())},{deep:!0}),(0,o.watch)(()=>j.value,()=>{(0,o.nextTick)(()=>{W.value?.syncBarPosition()})});let $=(0,s.useTabStore)(),ue=$.tabs.find(e=>(e.tabKey||e.path)===$.current),de=(0,o.computed)(()=>{let e=d.tabs?.map(e=>e.value)||[],t=m.value?.tab;return e.includes(t)?t:e[0]});return(0,o.onMounted)(()=>{(0,o.nextTick)(()=>{W.value?.syncBarPosition()})}),(0,o.watch)(()=>h.value,e=>{q(()=>{let t=e||{};Object.keys(t).forEach(e=>{let n=t[e];n==null||n===``?delete y[e]:y[e]=n})})&&J(!0)},{deep:!0}),()=>(0,o.createVNode)(r.DuxPage,{actions:d.actions,scrollbar:!1},{sideLeft:()=>f?.sideLeft&&j.value>=1024?f?.sideLeft?.():void 0,sideRight:()=>f?.sideRight&&j.value>=1024?f?.sideRight?.():void 0,default:()=>(0,o.createVNode)(`div`,{class:[`flex flex-col h-full relative`,z.value&&`gap-3`]},[(0,o.createVNode)(`div`,{class:[`flex gap-2 justify-between flex-row`,z.value&&`border-b border-muted`]},[(0,o.createVNode)(`div`,{class:`relative top-1.5px`},[!d.tabs&&(0,o.createVNode)(`div`,{class:`pb-4 pt-2 text-base`},[ue?.label]),d.tabs&&(0,o.createVNode)(c.NTabs,{ref:W,type:`bar`,size:`small`,style:{"--n-tab-padding":`5px 20px 15px 20px`,"--n-tab-gap":`20px`},"default-value":d.tabs?.[0]?.value||``,value:de.value,onUpdateValue:e=>{m.value.tab=e,y.tab=e,(0,o.nextTick)(()=>W.value?.syncBarPosition())}},{default:()=>[d.tabs?.map(e=>(0,o.createVNode)(c.NTab,{name:e.value,tab:e.label},null))]})]),(0,o.createVNode)(`div`,{class:`flex gap-2 justify-end pb-2`},[f.actions?.(),d.actions?.length>0&&v({type:j.value<1024?`dropdown`:`button`,items:d.actions})])]),f?.header?.(),z.value?f.filter?f.filter({filter:m.value,filterReactive:h.value,onSearch:Y,onReset:X}):d.filterType===`multi`&&j.value>=1024?(0,o.createVNode)(`div`,{class:`flex flex-col gap-3`},[(j.value>=1024||F.value)&&(0,o.createVNode)(`div`,{class:`flex flex-col gap-3 w-full`},[(0,o.createVNode)(`div`,{key:U.value,class:`flex flex-col gap-3`},[(0,o.h)(ce)])]),Q(!1)]):(0,o.createVNode)(`div`,{class:`flex gap-2 justify-between flex-col-reverse lg:flex-row`},[(j.value>=1024||F.value)&&(0,o.createVNode)(`div`,{class:[`flex-1 flex flex-col lg:flex-row gap-2 flex-wrap`]},[(0,o.createVNode)(`div`,{key:U.value,class:`contents`},[(0,o.h)(V)])]),Q(!0)]):Z(),f?.contentHeader?.(),(0,o.createVNode)(`div`,{class:`flex-1 min-h-0`},[f?.default?.({...b,width:M.value})]),(0,o.createVNode)(`div`,{class:`flex justify-between`},[(0,o.createVNode)(`div`,{class:`flex items-center gap-0.5`},[f?.bottom?.(),f?.tools?.(),(0,o.createVNode)(c.NPopselect,{options:oe.value,value:re.value,onUpdateValue:e=>{te(e)},multiple:!0,placement:`bottom-start`,trigger:`click`},{default:()=>[(0,o.createVNode)(c.NTooltip,null,{trigger:()=>(0,o.createVNode)(c.NButton,{quaternary:!0,circle:!0,"icon-placement":`right`},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:columns size-4`},null)}),default:()=>_(`components.list.columnSetting`)})]}),H.value.export&&(0,o.createVNode)(c.NTooltip,null,{trigger:()=>(0,o.createVNode)(c.NButton,{quaternary:!0,circle:!0,loading:E.value,onClick:k},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:database-export size-4`},null)}),default:()=>_(`components.button.export`)}),H.value.import&&(0,o.createVNode)(c.NTooltip,null,{trigger:()=>(0,o.createVNode)(c.NButton,{quaternary:!0,circle:!0,loading:O.value,onClick:ae},{icon:()=>(0,o.createVNode)(`div`,{class:`i-tabler:database-import size-4`},null)}),default:()=>_(`components.button.import`)}),H.value.refresh&&(0,o.createVNode)(c.NTooltip,null,{trigger:()=>(0,o.createVNode)(c.NButton,{quaternary:!0,circle:!0,onClick:T},{icon:()=>ie.value?(0,o.createVNode)(c.NProgress,{class:`size-4`,type:`circle`,percentage:w.value*10,strokeWidth:20,color:`rgba(var(--ui-color-primary))`},{default:()=>[(0,o.createVNode)(`span`,{class:`text-8px`},[w.value])]}):(0,o.createVNode)(`div`,{class:`i-tabler:refresh size-4`},null)}),default:()=>_(`components.button.autoRefresh`)})]),(0,o.createVNode)(`div`,null,[d.pagination&&(0,o.createVNode)(c.NPagination,(0,o.mergeProps)(S.value,{simple:j.value<768}),{prefix:()=>(0,o.createVNode)(`div`,null,[_(`components.list.total`,{total:b.total.value||0})])})])]),(0,o.createVNode)(a.DuxTableTools,{isLoading:b.isBatching.value,onBatch:b.onBatch,selecteds:C.value.checkedRowKeys,number:C.value.checkedRowKeys?.length||0,group:[[{icon:`i-tabler:x`,onClick:()=>{ne?.([])}}],[{label:_(`components.button.export`),icon:`i-tabler:file-export`,loading:D.value,onClick:A},...d.batchOptions||[]]]},null),(0,o.createVNode)(c.NDrawer,{show:N.show,onUpdateShow:e=>N.show=e,autoFocus:!1,placement:`left`},{default:()=>[(0,o.createVNode)(i.DuxDrawerPage,{title:d.sideLeftTitle||_(`components.button.sideLeft`),onClose:()=>N.show=!1,scrollbar:!1},{default:()=>[f?.sideLeft?.()]})]}),(0,o.createVNode)(c.NDrawer,{show:P.show,onUpdateShow:e=>P.show=e,autoFocus:!1,placement:`right`},{default:()=>[(0,o.createVNode)(i.DuxDrawerPage,{title:d.sideRightTitle||_(`components.button.sideRight`),onClose:()=>P.show=!1,scrollbar:!1},{default:()=>[f?.sideRight?.()]})]})])})}});exports.DuxTableLayout=d;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`vue`),t=require(`@duxweb/dvha-core`),n=require(`naive-ui`),r=require(`vue-router`),i=require(`@duxweb/dvha-naiveui`);const a=(0,e.defineComponent)({name:`DuxPageTab`,setup(a){let{tabsProps:o,tabs:s}=(0,i.useNaiveTab)(),c=(0,e.ref)(),l=(0,t.useTabStore)(),u=(0,r.useRouter)(),{t:d}=(0,t.useI18n)(),f=(0,e.reactive)({x:0,y:0,visible:!1}),p=(0,e.ref)(),m=(t,n)=>{t.preventDefault(),f.visible=!1,(0,e.nextTick)().then(()=>{f.visible=!0,f.x=t.clientX,f.y=t.clientY,p.value=n})},h=()=>{f.visible=!1},g=[{label:d(`components.tab.lock`),key:`lock`},{label:d(`components.tab.closeOther`),key:`closeOther`},{label:d(`components.tab.closeLeft`),key:`closeLeft`},{label:d(`components.tab.closeRight`),key:`closeRight`}],_=e=>{switch(f.visible=!1,e){case`lock`:l.lockTab(p.value?.path||``);break;case`closeOther`:l.delOther(p.value?.path||``,()=>{u.push(p.value?.path||``)});break;case`closeLeft`:l.delLeft(p.value?.path||``,()=>{u.push(p.value?.path||``)});break;case`closeRight`:l.delRight(p.value?.path||``,()=>{u.push(p.value?.path||``)});break;default:break}};return()=>(0,e.createVNode)(e.Fragment,null,[(0,e.createVNode)(n.NTabs,(0,e.mergeProps)({ref:c,type:`card`,class:`app-page-tabs`,barWidth:100},o.value),{default:()=>s?.value?.map(t=>(0,e.createVNode)(n.NTab,{key:t.path,name:t.path||``,class:`shadow-xs my-2`},{default:()=>[(0,e.createVNode)(`div`,{class:`flex items-center gap-2 h-36px px-3`,onContextmenu:e=>m(e,t)},[(0,e.createVNode)(`div`,{class:`flex-1`},[t.label]),(0,e.createVNode)(`div`,{class:`flex items-center flex-none`},[t.meta?.lock?(0,e.createVNode)(`div`,{class:`i-tabler:pinned size-4`},null):(0,e.createVNode)(`div`,{onClick:()=>o.value?.onClose?.(t.path),class:`text-muted hover:text-primary cursor-pointer`},[(0,e.createVNode)(`div`,{class:`i-tabler:x size-4`},null)])])])]}))}),(0,e.createVNode)(n.NDropdown,{trigger:`manual`,x:f.x,y:f.y,show:f.visible,onClickoutside:h,options:g,onSelect:_},null)])}});exports.DuxPageTab=a;
|
|
1
|
+
require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`vue`),t=require(`@duxweb/dvha-core`),n=require(`naive-ui`),r=require(`vue-router`),i=require(`@duxweb/dvha-naiveui`);const a=(0,e.defineComponent)({name:`DuxPageTab`,setup(a){let{tabsProps:o,tabs:s}=(0,i.useNaiveTab)(),c=(0,e.ref)(),l=(0,t.useTabStore)(),u=(0,r.useRouter)(),{t:d}=(0,t.useI18n)(),f=(0,e.reactive)({x:0,y:0,visible:!1}),p=(0,e.ref)(),m=(t,n)=>{t.preventDefault(),f.visible=!1,(0,e.nextTick)().then(()=>{f.visible=!0,f.x=t.clientX,f.y=t.clientY,p.value=n})},h=()=>{f.visible=!1},g=[{label:d(`components.tab.lock`),key:`lock`},{label:d(`components.tab.closeOther`),key:`closeOther`},{label:d(`components.tab.closeLeft`),key:`closeLeft`},{label:d(`components.tab.closeRight`),key:`closeRight`}],_=e=>{switch(f.visible=!1,e){case`lock`:l.lockTab(p.value?.tabKey||p.value?.path||``);break;case`closeOther`:l.delOther(p.value?.tabKey||p.value?.path||``,()=>{u.push(p.value?.tabKey||p.value?.path||``)});break;case`closeLeft`:l.delLeft(p.value?.tabKey||p.value?.path||``,()=>{u.push(p.value?.tabKey||p.value?.path||``)});break;case`closeRight`:l.delRight(p.value?.tabKey||p.value?.path||``,()=>{u.push(p.value?.tabKey||p.value?.path||``)});break;default:break}};return()=>(0,e.createVNode)(e.Fragment,null,[(0,e.createVNode)(n.NTabs,(0,e.mergeProps)({ref:c,type:`card`,class:`app-page-tabs`,barWidth:100},o.value),{default:()=>s?.value?.map(t=>(0,e.createVNode)(n.NTab,{key:t.tabKey||t.path,name:t.tabKey||t.path||``,class:`shadow-xs my-2`},{default:()=>[(0,e.createVNode)(`div`,{class:`flex items-center gap-2 h-36px px-3`,onContextmenu:e=>m(e,t)},[(0,e.createVNode)(`div`,{class:`flex-1`},[t.label]),(0,e.createVNode)(`div`,{class:`flex items-center flex-none`},[t.meta?.lock?(0,e.createVNode)(`div`,{class:`i-tabler:pinned size-4`},null):(0,e.createVNode)(`div`,{onClick:()=>o.value?.onClose?.(t.tabKey||t.path),class:`text-muted hover:text-primary cursor-pointer`},[(0,e.createVNode)(`div`,{class:`i-tabler:x size-4`},null)])])])]}))}),(0,e.createVNode)(n.NDropdown,{trigger:`manual`,x:f.x,y:f.y,show:f.visible,onClickoutside:h,options:g,onSelect:_},null)])}});exports.DuxPageTab=a;
|
|
@@ -26,6 +26,10 @@ const v = /* @__PURE__ */ i({
|
|
|
26
26
|
type: String,
|
|
27
27
|
default: "all"
|
|
28
28
|
},
|
|
29
|
+
toolbarExtend: {
|
|
30
|
+
type: Array,
|
|
31
|
+
default: () => []
|
|
32
|
+
},
|
|
29
33
|
height: {
|
|
30
34
|
type: String,
|
|
31
35
|
default: "500px"
|
|
@@ -209,6 +213,7 @@ const v = /* @__PURE__ */ i({
|
|
|
209
213
|
});
|
|
210
214
|
}
|
|
211
215
|
}] : [],
|
|
216
|
+
...i.toolbarExtend || [],
|
|
212
217
|
"image",
|
|
213
218
|
"video",
|
|
214
219
|
"attachment",
|
|
@@ -38,9 +38,9 @@ const m = /* @__PURE__ */ i({
|
|
|
38
38
|
_.error(e.message || h("components.form.error")), i.onError?.(e);
|
|
39
39
|
},
|
|
40
40
|
onSuccess: (e) => {
|
|
41
|
-
_.success(h("components.form.success")), i.onSuccess?.(e), !x.isEdit.value && y.current && y.delTab(y.current, (e) => v.push(e.path || "")), i.invalidate && b(i.invalidate);
|
|
41
|
+
_.success(h("components.form.success")), i.onSuccess?.(e), !x.isEdit.value && y.current && y.delTab(y.current, (e) => v.push(e.tabKey || e.path || "")), i.invalidate && b(i.invalidate);
|
|
42
42
|
}
|
|
43
|
-
}), S = y.tabs.find((e) => e.path === y.current);
|
|
43
|
+
}), S = y.tabs.find((e) => (e.tabKey || e.path) === y.current);
|
|
44
44
|
return () => r(t, {
|
|
45
45
|
card: !1,
|
|
46
46
|
scrollbar: !1
|
|
@@ -36,7 +36,7 @@ const p = /* @__PURE__ */ r({
|
|
|
36
36
|
g.error(e.message || m("components.form.error")), r.onError?.(e);
|
|
37
37
|
},
|
|
38
38
|
onSuccess: (e) => {
|
|
39
|
-
g.success(m("components.form.success")), r.onSuccess?.(e), !b.isEdit.value && v.current && v.delTab(v.current, (e) => _.push(e.path || "")), r.invalidate && y(r.invalidate);
|
|
39
|
+
g.success(m("components.form.success")), r.onSuccess?.(e), !b.isEdit.value && v.current && v.delTab(v.current, (e) => _.push(e.tabKey || e.path || "")), r.invalidate && y(r.invalidate);
|
|
40
40
|
}
|
|
41
41
|
});
|
|
42
42
|
return () => n(t, {
|
|
@@ -261,7 +261,7 @@ const b = /* @__PURE__ */ s({
|
|
|
261
261
|
});
|
|
262
262
|
}) && W(!0);
|
|
263
263
|
}, { deep: !0 });
|
|
264
|
-
let $ = a(() => Y.tabs.find((e) => e.path === Y.current)?.label);
|
|
264
|
+
let $ = a(() => Y.tabs.find((e) => (e.tabKey || e.path) === Y.current)?.label);
|
|
265
265
|
return () => o(n, {
|
|
266
266
|
actions: s.actions,
|
|
267
267
|
scrollbar: !1
|
|
@@ -254,7 +254,7 @@ const S = /* @__PURE__ */ s({
|
|
|
254
254
|
G.value?.syncBarPosition();
|
|
255
255
|
});
|
|
256
256
|
});
|
|
257
|
-
let $ = ie(), je = $.tabs.find((e) => e.path === $.current), Me = a(() => {
|
|
257
|
+
let $ = ie(), je = $.tabs.find((e) => (e.tabKey || e.path) === $.current), Me = a(() => {
|
|
258
258
|
let e = s.tabs?.map((e) => e.value) || [], t = C.value?.tab;
|
|
259
259
|
return e.includes(t) ? t : e[0];
|
|
260
260
|
});
|
|
@@ -36,21 +36,21 @@ const m = /* @__PURE__ */ n({
|
|
|
36
36
|
], T = (e) => {
|
|
37
37
|
switch (b.visible = !1, e) {
|
|
38
38
|
case "lock":
|
|
39
|
-
_.lockTab(x.value?.path || "");
|
|
39
|
+
_.lockTab(x.value?.tabKey || x.value?.path || "");
|
|
40
40
|
break;
|
|
41
41
|
case "closeOther":
|
|
42
|
-
_.delOther(x.value?.path || "", () => {
|
|
43
|
-
v.push(x.value?.path || "");
|
|
42
|
+
_.delOther(x.value?.tabKey || x.value?.path || "", () => {
|
|
43
|
+
v.push(x.value?.tabKey || x.value?.path || "");
|
|
44
44
|
});
|
|
45
45
|
break;
|
|
46
46
|
case "closeLeft":
|
|
47
|
-
_.delLeft(x.value?.path || "", () => {
|
|
48
|
-
v.push(x.value?.path || "");
|
|
47
|
+
_.delLeft(x.value?.tabKey || x.value?.path || "", () => {
|
|
48
|
+
v.push(x.value?.tabKey || x.value?.path || "");
|
|
49
49
|
});
|
|
50
50
|
break;
|
|
51
51
|
case "closeRight":
|
|
52
|
-
_.delRight(x.value?.path || "", () => {
|
|
53
|
-
v.push(x.value?.path || "");
|
|
52
|
+
_.delRight(x.value?.tabKey || x.value?.path || "", () => {
|
|
53
|
+
v.push(x.value?.tabKey || x.value?.path || "");
|
|
54
54
|
});
|
|
55
55
|
break;
|
|
56
56
|
default: break;
|
|
@@ -62,14 +62,14 @@ const m = /* @__PURE__ */ n({
|
|
|
62
62
|
class: "app-page-tabs",
|
|
63
63
|
barWidth: 100
|
|
64
64
|
}, m.value), { default: () => h?.value?.map((e) => t(u, {
|
|
65
|
-
key: e.path,
|
|
66
|
-
name: e.path || "",
|
|
65
|
+
key: e.tabKey || e.path,
|
|
66
|
+
name: e.tabKey || e.path || "",
|
|
67
67
|
class: "shadow-xs my-2"
|
|
68
68
|
}, { default: () => [t("div", {
|
|
69
69
|
class: "flex items-center gap-2 h-36px px-3",
|
|
70
70
|
onContextmenu: (t) => S(t, e)
|
|
71
71
|
}, [t("div", { class: "flex-1" }, [e.label]), t("div", { class: "flex items-center flex-none" }, [e.meta?.lock ? t("div", { class: "i-tabler:pinned size-4" }, null) : t("div", {
|
|
72
|
-
onClick: () => m.value?.onClose?.(e.path),
|
|
72
|
+
onClick: () => m.value?.onClose?.(e.tabKey || e.path),
|
|
73
73
|
class: "text-muted hover:text-primary cursor-pointer"
|
|
74
74
|
}, [t("div", { class: "i-tabler:x size-4" }, null)])])])] })) }), t(l, {
|
|
75
75
|
trigger: "manual",
|
|
@@ -17,6 +17,10 @@ export declare const DuxAiEditor: import("vue").DefineComponent<import("vue").Ex
|
|
|
17
17
|
type: PropType<"all" | "image" | "media" | "docs" | string>;
|
|
18
18
|
default: string;
|
|
19
19
|
};
|
|
20
|
+
toolbarExtend: {
|
|
21
|
+
type: PropType<Array<string | Record<string, any>>>;
|
|
22
|
+
default: () => never[];
|
|
23
|
+
};
|
|
20
24
|
height: {
|
|
21
25
|
type: StringConstructor;
|
|
22
26
|
default: string;
|
|
@@ -39,6 +43,10 @@ export declare const DuxAiEditor: import("vue").DefineComponent<import("vue").Ex
|
|
|
39
43
|
type: PropType<"all" | "image" | "media" | "docs" | string>;
|
|
40
44
|
default: string;
|
|
41
45
|
};
|
|
46
|
+
toolbarExtend: {
|
|
47
|
+
type: PropType<Array<string | Record<string, any>>>;
|
|
48
|
+
default: () => never[];
|
|
49
|
+
};
|
|
42
50
|
height: {
|
|
43
51
|
type: StringConstructor;
|
|
44
52
|
default: string;
|
|
@@ -48,4 +56,5 @@ export declare const DuxAiEditor: import("vue").DefineComponent<import("vue").Ex
|
|
|
48
56
|
editorType: "markdown" | "richtext";
|
|
49
57
|
fileManager: boolean;
|
|
50
58
|
fileManagerType: string;
|
|
59
|
+
toolbarExtend: (string | Record<string, any>)[];
|
|
51
60
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@duxweb/dvha-pro",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.2.
|
|
4
|
+
"version": "1.2.5",
|
|
5
5
|
"author": "DuxWeb",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@ant-design/colors": "^7.2.1",
|
|
39
|
-
"@duxweb/dvha-core": "^1.2.
|
|
40
|
-
"@duxweb/dvha-naiveui": "^1.2.
|
|
39
|
+
"@duxweb/dvha-core": "^1.2.5",
|
|
40
|
+
"@duxweb/dvha-naiveui": "^1.2.5",
|
|
41
41
|
"@iconify-json/tabler": "^1.2.23",
|
|
42
42
|
"@microsoft/fetch-event-source": "^2.0.1",
|
|
43
43
|
"@overlastic/vue": "^0.8.3",
|