@duxweb/dvha-naiveui 1.1.21 → 1.1.23

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.
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("vue"),x=require("@duxweb/dvha-core"),F=require("@vueuse/core"),C=require("lodash-es"),l=require("naive-ui");function O(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!a.isVNode(e)}const I=a.defineComponent({name:"DuxSelect",props:{path:String,params:Object,pagination:{type:Boolean,default:!0},avatarField:{type:String},imageField:{type:String},descField:{type:String},multiple:Boolean,option:{type:[Object,Array],default:void 0}},extends:l.NSelect,setup(e,{emit:u,slots:i}){const o=a.toRef(e,"params",{}),N=a.toRef(e,"path"),s=F.useVModel(e,"value",u,{passive:!0,defaultValue:e.defaultValue}),g=F.useVModel(e,"option",u,{passive:!0,defaultValue:e.multiple?[]:null}),n=a.toRef(e,"labelField","name"),j=a.toRef(e,"valueField","id"),f=a.toRef(e,"avatarField",""),c=a.toRef(e,"imageField",""),d=a.toRef(e,"descField",""),{onSearch:w,loading:A,pagination:m,options:V,pageCount:R}=x.useSelect({path:N,params:o,defaultValue:s,pagination:e.pagination,optionLabel:n.value,optionValue:j.value}),q=a.computed(()=>{const{labelField:t,valueField:v,avatarField:r,imageField:S,descField:b,option:p,...y}=e;return y}),h=t=>{if(e.multiple){C.isEqual(g.value,t)||(g.value=t||[]);return}g.value!==t&&(g.value=t||null)};return a.watch([s,V],([t,v])=>{if(e.multiple){const b=(Array.isArray(t)?t:[]).map(p=>v.find(y=>y.value===p)?.raw).filter(p=>!!p);h(b);return}const r=v.find(S=>S.value===t)?.raw||null;h(r)},{immediate:!0}),()=>a.createVNode(l.NSelect,a.mergeProps(q.value,{onSearch:w,loading:A.value,filterable:!!e.pagination,clearable:!0,remote:!0,options:V.value,value:s.value,"onUpdate:value":t=>s.value=t,multiple:e.multiple,onClear:()=>{w("")},renderLabel:t=>c.value||d.value?a.createVNode(l.NSpace,{align:"center",size:"small",wrapItem:!1,style:{padding:"6px 0"}},{default:()=>[c.value&&a.createVNode(l.NImage,{src:t?.raw?.[c.value],objectFit:"cover",width:32,height:32},null),f.value&&a.createVNode(l.NAvatar,{round:!0,src:t?.raw?.[f.value],size:32},{default:()=>[t?.raw?.[n.value]?.charAt?.(0)]}),a.createVNode(l.NSpace,{vertical:!0,size:0,wrapItem:!1},{default:()=>[a.createVNode("div",null,[t?.raw?.[n.value]]),d.value&&a.createVNode("div",{style:{opacity:.6}},[t?.raw?.[d.value]])]})]}):t?.raw?.[n.value],renderTag:({option:t,handleClose:v})=>{let r;return e.multiple?a.createVNode(l.NTag,{type:"primary",size:e.size,closable:!0,round:!0,onClose:()=>{v()},style:{"--n-padding":"0"}},O(r=z(t,n.value,c.value,f.value,d.value))?r:{default:()=>[r]}):z(t,n.value,c.value,f.value,d.value)}}),{action:()=>e.pagination?a.createVNode(l.NPagination,{size:"small",page:m.value.page,"onUpdate:page":t=>m.value.page=t,pageSlot:3,pageCount:R.value,pageSize:m.value.pageSize},null):null,...i})}});function z(e,u,i,o,N){return i||N||o?a.createVNode(l.NSpace,{align:"center",size:"small",style:{padding:"6px 0"},wrapItem:!1},{default:()=>[i&&a.createVNode(l.NImage,{src:e?.raw?.[i],objectFit:"cover",width:22,height:22},null),o&&a.createVNode(l.NAvatar,{round:!0,src:e?.raw?.[o]||"",size:22},{default:()=>[e?.raw?.[u]?.charAt?.(0)]}),a.createVNode("div",null,[e?.raw?.[u]])]}):e?.raw?.[u]||""}exports.DuxSelect=I;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("vue"),j=require("@duxweb/dvha-core"),R=require("@vueuse/core"),D=require("lodash-es"),r=require("naive-ui");function I(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!a.isVNode(e)}const M=a.defineComponent({name:"DuxSelect",props:{path:String,params:Object,pagination:{type:Boolean,default:!0},avatarField:{type:String},imageField:{type:String},descField:{type:String},multiple:Boolean,option:{type:[Object,Array],default:void 0},refreshable:{type:Boolean,default:!0}},extends:r.NSelect,setup(e,{emit:u,slots:o}){const{t:c}=j.useI18n(),N=a.toRef(e,"params",{}),A=a.toRef(e,"path"),v=R.useVModel(e,"value",u,{passive:!0,defaultValue:e.defaultValue}),f=R.useVModel(e,"option",u,{passive:!0,defaultValue:e.multiple?[]:null}),i=a.toRef(e,"labelField","name"),C=a.toRef(e,"valueField","id"),g=a.toRef(e,"avatarField",""),d=a.toRef(e,"imageField",""),s=a.toRef(e,"descField",""),{onSearch:h,loading:S,pagination:m,options:b,pageCount:P,refetch:V}=j.useSelect({path:A,params:N,defaultValue:v,pagination:e.pagination,optionLabel:i.value,optionValue:C.value}),q=a.computed(()=>{const{labelField:t,valueField:n,avatarField:l,imageField:w,descField:z,option:p,...y}=e;return y}),F=t=>{if(e.multiple){D.isEqual(f.value,t)||(f.value=t||[]);return}f.value!==t&&(f.value=t||null)};return a.watch([v,b],([t,n])=>{if(e.multiple){const z=(Array.isArray(t)?t:[]).map(p=>n.find(y=>y.value===p)?.raw).filter(p=>!!p);F(z);return}const l=n.find(w=>w.value===t)?.raw||null;F(l)},{immediate:!0}),()=>a.createVNode(r.NSelect,a.mergeProps(q.value,{onSearch:h,loading:S.value,filterable:!!e.pagination,clearable:!0,remote:!0,options:b.value,value:v.value,"onUpdate:value":t=>v.value=t,multiple:e.multiple,onClear:()=>{h("")},renderLabel:t=>d.value||s.value?a.createVNode(r.NSpace,{align:"center",size:"small",wrapItem:!1,style:{padding:"6px 0"}},{default:()=>[d.value&&a.createVNode(r.NImage,{src:t?.raw?.[d.value],objectFit:"cover",width:32,height:32},null),g.value&&a.createVNode(r.NAvatar,{round:!0,src:t?.raw?.[g.value],size:32},{default:()=>[t?.raw?.[i.value]?.charAt?.(0)]}),a.createVNode(r.NSpace,{vertical:!0,size:0,wrapItem:!1},{default:()=>[a.createVNode("div",null,[t?.raw?.[i.value]]),s.value&&a.createVNode("div",{style:{opacity:.6}},[t?.raw?.[s.value]])]})]}):t?.raw?.[i.value],renderTag:({option:t,handleClose:n})=>{let l;return e.multiple?a.createVNode(r.NTag,{type:"primary",size:e.size,closable:!0,round:!0,onClose:()=>{n()},style:{"--n-padding":"0"}},I(l=x(t,i.value,d.value,g.value,s.value))?l:{default:()=>[l]}):x(t,i.value,d.value,g.value,s.value)}}),{arrow:()=>{const n=o.arrow?.()||null;return e.refreshable?a.createVNode(r.NTooltip,{trigger:"hover"},{default:()=>c("components.button.refresh")||"Refresh",trigger:()=>a.createVNode("div",{class:["i-tabler:refresh size-4 cursor-pointer opacity-70 hover:opacity-100",S.value&&"animate-spin"],role:"button",tabindex:0,onMousedown:l=>{l.preventDefault(),l.stopPropagation()},onClick:l=>{l.preventDefault(),l.stopPropagation(),V?.()},onKeydown:l=>{(l.key==="Enter"||l.key===" ")&&(l.preventDefault(),l.stopPropagation(),V?.())}},null)}):n},action:()=>e.pagination?a.createVNode(r.NPagination,{size:"small",page:m.value.page,"onUpdate:page":t=>m.value.page=t,pageSlot:3,pageCount:P.value,pageSize:m.value.pageSize},null):null,...o})}});function x(e,u,o,c,N){return o||N||c?a.createVNode(r.NSpace,{align:"center",size:"small",style:{padding:"6px 0"},wrapItem:!1},{default:()=>[o&&a.createVNode(r.NImage,{src:e?.raw?.[o],objectFit:"cover",width:22,height:22},null),c&&a.createVNode(r.NAvatar,{round:!0,src:e?.raw?.[c]||"",size:22},{default:()=>[e?.raw?.[u]?.charAt?.(0)]}),a.createVNode("div",null,[e?.raw?.[u]])]}):e?.raw?.[u]||""}exports.DuxSelect=M;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("vue"),f=require("@duxweb/dvha-core"),m=require("@vueuse/core"),l=require("naive-ui"),o=a.defineComponent({name:"DuxTransfer",props:{path:String,params:{type:Object},labelField:{type:String,default:"name"},valueField:{type:String,default:"id"},imageField:{type:String},descField:{type:String}},extends:l.NTransfer,setup(e,{emit:n}){const d=m.useVModel(e,"value",n,{passive:!0,defaultValue:e.defaultValue||[]}),u=a.toRef(e,"path",""),s=a.toRef(e,"params",{}),r=a.ref([]),{data:c,isLoading:v}=f.useList({path:u.value,filters:s.value});return a.watch(c,t=>{r.value=t?.value?.data?.map(i=>({label:i[e.labelField||"name"],value:i[e.valueField||"id"],raw:i}))||[]},{immediate:!0}),()=>a.createVNode("div",{class:"w-full"},[a.createVNode(l.NSpin,{show:v.value},{default:()=>[a.createVNode(l.NTransfer,a.mergeProps(e,{value:d.value,"onUpdate:value":t=>d.value=t,options:r.value,renderTargetLabel:({option:t})=>e.imageField||e.descField?a.createVNode("div",{style:{padding:"0 6px",display:"flex",alignItems:"center",gap:"4px"}},[e.imageField&&a.createVNode(l.NAvatar,{round:!0,src:t?.raw[e.imageField],size:32},null),a.createVNode("div",{style:{flex:1,display:"flex",flexDirection:"column",justifyContent:"center"}},[a.createVNode("div",null,[t?.raw[e.labelField||"name"]]),e.descField&&a.createVNode("div",{style:{opacity:.6}},[t?.raw[e.descField||"desc"]])])]):t?.raw[e.labelField||"name"]}),null)]})])}});exports.DuxTransfer=o;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("vue"),F=require("@duxweb/dvha-core"),N=require("@vueuse/core"),i=require("naive-ui"),b=t.defineComponent({name:"DuxTransfer",props:{path:String,params:{type:Object},labelField:{type:[String,Function],default:"name"},valueField:{type:String,default:"id"},imageField:{type:String},descField:{type:[String,Function]}},extends:i.NTransfer,setup(a,{emit:o}){const d=N.useVModel(a,"value",o,{passive:!0,defaultValue:a.defaultValue||[]}),f=t.toRef(a,"path",""),v=t.toRef(a,"params",{}),u=t.ref([]),{data:y,isLoading:m}=F.useList({path:f.value,filters:v.value}),s=(e,l,r)=>typeof l=="function"?l(e)||"":e[l||r]??"",g=e=>Array.isArray(e?.data)?e.data:Array.isArray(e?.data?.list)?e.data.list:Array.isArray(e?.data?.data)?e.data.data:Array.isArray(e?.list)?e.list:Array.isArray(e?.value?.data)?e.value.data:[];t.watch(y,e=>{const l=g(e);u.value=l.map(r=>{const n={label:s(r,a.labelField,"name"),value:r[a.valueField||"id"],raw:r};return a.descField&&(n.desc=s(r,a.descField,"desc")),n})},{immediate:!0});const c=({option:e})=>a.imageField||a.descField?t.createVNode("div",{style:{padding:"0 6px",display:"flex",alignItems:"center",gap:"4px"}},[a.imageField&&t.createVNode(i.NAvatar,{round:!0,src:e?.raw[a.imageField],size:32},null),t.createVNode("div",{style:{flex:1,display:"flex",flexDirection:"column",justifyContent:"center"}},[t.createVNode("div",null,[e?.label]),a.descField&&t.createVNode("div",{style:{opacity:.6}},[e?.desc])])]):e?.label;return()=>t.createVNode("div",{class:"w-full"},[t.createVNode(i.NSpin,{show:m.value},{default:()=>[t.createVNode(i.NTransfer,t.mergeProps(a,{value:d.value,"onUpdate:value":e=>d.value=e,options:u.value,renderSourceLabel:c,renderTargetLabel:c}),null)]})])}});exports.DuxTransfer=b;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("@duxweb/dvha-core"),m=require("@vueuse/core"),C=require("lodash-es"),a=require("vue");function R(l){const v=a.toRef(l,"filters",{}),g=a.toRef(l,"sorters",{}),f=a.toRef(l,"columns",[]),u=a.ref({}),i=a.ref([]),c=a.ref({...v.value,...u.value}),d=a.ref({...g.value});m.watchDebounced([v,u],([e,n])=>{Object.keys(c.value).forEach(t=>{delete c.value[t]}),Object.assign(c.value,e,n)},{debounce:300,deep:!0});const o=p.useExtendList({...l,filters:c.value,sorters:d.value}),r=a.ref([]);a.watch(f,e=>{r.value=e},{immediate:!0});const h=a.computed(()=>r.value.filter(e=>e.show!==!1&&"key"in e).map(e=>e.key)),y=e=>{const n=C.cloneDeep(f.value)?.map(t=>(!("key"in t)||!t?.key||!("title"in t)||!t?.title||e.includes(t.key)||(t.show=!1),t));r.value=[...n]},b=e=>{o.checkeds.value=e},k=e=>{const n=Array.isArray(e)?e:[e],t={};n?.forEach(s=>{s?.columnKey&&s.order&&(t[s.columnKey]=s.order==="ascend"?"asc":"desc")}),Object.keys(d.value).forEach(s=>{delete d.value[s]}),Object.assign(d.value,t)},w=e=>{const n={...u.value};Object.entries(e).forEach(([t,s])=>{n[t]=s}),u.value=n},S=e=>{i.value=e};a.watch([()=>l?.expanded,o.list],([e,n])=>{e&&(i.value=p.treeToArr(n,l.key||"id","children"))});const U=a.computed(()=>({page:o.page.value,pageSize:o.pageSize.value,pageCount:o.pageCount.value,pageSizes:o.pageSizes,pageSlot:5,onUpdatePage:o.onUpdatePage,onUpdatePageSize:o.onUpdatePageSize,showSizePicker:!0,showQuickJumper:!0})),E=a.computed(()=>({remote:!0,checkedRowKeys:o.checkeds.value,expandedRowKeys:i.value,onUpdateCheckedRowKeys:b,onUpdateExpandedRowKeys:S,onUpdateSorter:k,onUpdateFilters:w,loading:o.isLoading.value,data:o.list.value,columns:r.value.filter(e=>e.show!==!1)}));return{...o,tablePagination:U,table:E,columns:r,columnSelected:h,onUpdateColumnSelected:y}}exports.useNaiveTable=R;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const v=require("@duxweb/dvha-core"),C=require("@vueuse/core"),x=require("lodash-es"),a=require("vue");function z(r){const d=a.computed(()=>a.unref(r.filters)||{}),g=a.computed(()=>a.unref(r.sorters)||{}),i=a.toRef(r,"columns",[]),u=a.ref({}),c=a.ref([]),p=a.ref({...d.value,...u.value}),f=a.ref({...g.value}),n=v.useExtendList({...r,filters:p,sorters:f});C.watchDebounced([d,u],([e,o])=>{const t={...e||{},...o||{}};p.value=t,n.onUpdateFilters(t)},{debounce:300,deep:!0});const l=a.ref([]);a.watch(i,e=>{l.value=e},{immediate:!0});const h=a.computed(()=>l.value.filter(e=>e.show!==!1&&"key"in e).map(e=>e.key)),y=e=>{const o=x.cloneDeep(i.value)?.map(t=>(!("key"in t)||!t?.key||!("title"in t)||!t?.title||e.includes(t.key)||(t.show=!1),t));l.value=[...o]},S=e=>{n.checkeds.value=e},w=e=>{const o=Array.isArray(e)?e:[e],t={};o?.forEach(s=>{s?.columnKey&&s.order&&(t[s.columnKey]=s.order==="ascend"?"asc":"desc")}),f.value=t,n.onUpdateSorters(t)},U=e=>{const o={...u.value};Object.entries(e).forEach(([t,s])=>{o[t]=s}),u.value=o},b=e=>{c.value=e};a.watch([()=>r?.expanded,n.list],([e,o])=>{e&&(c.value=v.treeToArr(o,r.key||"id","children"))});const k=a.computed(()=>({page:n.page.value,pageSize:n.pageSize.value,pageCount:n.pageCount.value,pageSizes:n.pageSizes,pageSlot:5,onUpdatePage:n.onUpdatePage,onUpdatePageSize:n.onUpdatePageSize,showSizePicker:!0,showQuickJumper:!0})),m=a.computed(()=>({remote:!0,checkedRowKeys:n.checkeds.value,expandedRowKeys:c.value,onUpdateCheckedRowKeys:S,onUpdateExpandedRowKeys:b,onUpdateSorter:w,onUpdateFilters:U,loading:n.isLoading.value,data:n.list.value,columns:l.value.filter(e=>e.show!==!1)}));return{...n,tablePagination:k,table:m,columns:l,columnSelected:h,onUpdateColumnSelected:y}}exports.useNaiveTable=z;
@@ -1,12 +1,12 @@
1
- import { defineComponent as P, toRef as t, computed as T, watch as D, createVNode as l, mergeProps as U, isVNode as _ } from "vue";
2
- import { useSelect as q } from "@duxweb/dvha-core";
3
- import { useVModel as j } from "@vueuse/core";
4
- import { isEqual as E } from "lodash-es";
5
- import { NSelect as x, NTag as L, NSpace as h, NImage as V, NAvatar as C, NPagination as R } from "naive-ui";
6
- function k(e) {
7
- return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !_(e);
1
+ import { defineComponent as T, toRef as n, computed as k, watch as E, createVNode as l, mergeProps as R, isVNode as U } from "vue";
2
+ import { useI18n as _, useSelect as q } from "@duxweb/dvha-core";
3
+ import { useVModel as A } from "@vueuse/core";
4
+ import { isEqual as K } from "lodash-es";
5
+ import { NSelect as C, NTag as L, NSpace as b, NImage as V, NAvatar as D, NPagination as G, NTooltip as H } from "naive-ui";
6
+ function J(e) {
7
+ return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !U(e);
8
8
  }
9
- const W = /* @__PURE__ */ P({
9
+ const $ = /* @__PURE__ */ T({
10
10
  name: "DuxSelect",
11
11
  props: {
12
12
  path: String,
@@ -28,74 +28,81 @@ const W = /* @__PURE__ */ P({
28
28
  option: {
29
29
  type: [Object, Array],
30
30
  default: void 0
31
+ },
32
+ refreshable: {
33
+ type: Boolean,
34
+ default: !0
31
35
  }
32
36
  },
33
- extends: x,
37
+ extends: C,
34
38
  setup(e, {
35
39
  emit: u,
36
- slots: r
40
+ slots: i
37
41
  }) {
38
- const o = t(e, "params", {}), p = t(e, "path"), s = j(e, "value", u, {
42
+ const {
43
+ t: c
44
+ } = _(), m = n(e, "params", {}), I = n(e, "path"), v = A(e, "value", u, {
39
45
  passive: !0,
40
46
  defaultValue: e.defaultValue
41
- }), f = j(e, "option", u, {
47
+ }), f = A(e, "option", u, {
42
48
  passive: !0,
43
49
  defaultValue: e.multiple ? [] : null
44
- }), n = t(e, "labelField", "name"), O = t(e, "valueField", "id"), g = t(e, "avatarField", ""), d = t(e, "imageField", ""), c = t(e, "descField", ""), {
45
- onSearch: F,
46
- loading: I,
50
+ }), o = n(e, "labelField", "name"), O = n(e, "valueField", "id"), p = n(e, "avatarField", ""), d = n(e, "imageField", ""), s = n(e, "descField", ""), {
51
+ onSearch: S,
52
+ loading: F,
47
53
  pagination: w,
48
- options: b,
49
- pageCount: B
54
+ options: z,
55
+ pageCount: B,
56
+ refetch: N
50
57
  } = q({
51
- path: p,
52
- params: o,
53
- defaultValue: s,
58
+ path: I,
59
+ params: m,
60
+ defaultValue: v,
54
61
  pagination: e.pagination,
55
- optionLabel: n.value,
62
+ optionLabel: o.value,
56
63
  optionValue: O.value
57
- }), M = T(() => {
64
+ }), M = k(() => {
58
65
  const {
59
66
  labelField: a,
60
- valueField: v,
61
- avatarField: i,
67
+ valueField: r,
68
+ avatarField: t,
62
69
  imageField: y,
63
- descField: N,
64
- option: m,
65
- ...S
70
+ descField: x,
71
+ option: g,
72
+ ...h
66
73
  } = e;
67
- return S;
68
- }), z = (a) => {
74
+ return h;
75
+ }), j = (a) => {
69
76
  if (e.multiple) {
70
- E(f.value, a) || (f.value = a || []);
77
+ K(f.value, a) || (f.value = a || []);
71
78
  return;
72
79
  }
73
80
  f.value !== a && (f.value = a || null);
74
81
  };
75
- return D([s, b], ([a, v]) => {
82
+ return E([v, z], ([a, r]) => {
76
83
  if (e.multiple) {
77
- const N = (Array.isArray(a) ? a : []).map((m) => v.find((S) => S.value === m)?.raw).filter((m) => !!m);
78
- z(N);
84
+ const x = (Array.isArray(a) ? a : []).map((g) => r.find((h) => h.value === g)?.raw).filter((g) => !!g);
85
+ j(x);
79
86
  return;
80
87
  }
81
- const i = v.find((y) => y.value === a)?.raw || null;
82
- z(i);
88
+ const t = r.find((y) => y.value === a)?.raw || null;
89
+ j(t);
83
90
  }, {
84
91
  immediate: !0
85
- }), () => l(x, U(M.value, {
86
- onSearch: F,
87
- loading: I.value,
92
+ }), () => l(C, R(M.value, {
93
+ onSearch: S,
94
+ loading: F.value,
88
95
  filterable: !!e.pagination,
89
96
  clearable: !0,
90
97
  remote: !0,
91
- options: b.value,
92
- value: s.value,
93
- "onUpdate:value": (a) => s.value = a,
98
+ options: z.value,
99
+ value: v.value,
100
+ "onUpdate:value": (a) => v.value = a,
94
101
  multiple: e.multiple,
95
102
  onClear: () => {
96
- F("");
103
+ S("");
97
104
  },
98
- renderLabel: (a) => d.value || c.value ? l(h, {
105
+ renderLabel: (a) => d.value || s.value ? l(b, {
99
106
  align: "center",
100
107
  size: "small",
101
108
  wrapItem: !1,
@@ -108,46 +115,68 @@ const W = /* @__PURE__ */ P({
108
115
  objectFit: "cover",
109
116
  width: 32,
110
117
  height: 32
111
- }, null), g.value && l(C, {
118
+ }, null), p.value && l(D, {
112
119
  round: !0,
113
- src: a?.raw?.[g.value],
120
+ src: a?.raw?.[p.value],
114
121
  size: 32
115
122
  }, {
116
- default: () => [a?.raw?.[n.value]?.charAt?.(0)]
117
- }), l(h, {
123
+ default: () => [a?.raw?.[o.value]?.charAt?.(0)]
124
+ }), l(b, {
118
125
  vertical: !0,
119
126
  size: 0,
120
127
  wrapItem: !1
121
128
  }, {
122
- default: () => [l("div", null, [a?.raw?.[n.value]]), c.value && l("div", {
129
+ default: () => [l("div", null, [a?.raw?.[o.value]]), s.value && l("div", {
123
130
  style: {
124
131
  opacity: 0.6
125
132
  }
126
- }, [a?.raw?.[c.value]])]
133
+ }, [a?.raw?.[s.value]])]
127
134
  })]
128
- }) : a?.raw?.[n.value],
135
+ }) : a?.raw?.[o.value],
129
136
  renderTag: ({
130
137
  option: a,
131
- handleClose: v
138
+ handleClose: r
132
139
  }) => {
133
- let i;
140
+ let t;
134
141
  return e.multiple ? l(L, {
135
142
  type: "primary",
136
143
  size: e.size,
137
144
  closable: !0,
138
145
  round: !0,
139
146
  onClose: () => {
140
- v();
147
+ r();
141
148
  },
142
149
  style: {
143
150
  "--n-padding": "0"
144
151
  }
145
- }, k(i = A(a, n.value, d.value, g.value, c.value)) ? i : {
146
- default: () => [i]
147
- }) : A(a, n.value, d.value, g.value, c.value);
152
+ }, J(t = P(a, o.value, d.value, p.value, s.value)) ? t : {
153
+ default: () => [t]
154
+ }) : P(a, o.value, d.value, p.value, s.value);
148
155
  }
149
156
  }), {
150
- action: () => e.pagination ? l(R, {
157
+ arrow: () => {
158
+ const r = i.arrow?.() || null;
159
+ return e.refreshable ? l(H, {
160
+ trigger: "hover"
161
+ }, {
162
+ default: () => c("components.button.refresh") || "Refresh",
163
+ trigger: () => l("div", {
164
+ class: ["i-tabler:refresh size-4 cursor-pointer opacity-70 hover:opacity-100", F.value && "animate-spin"],
165
+ role: "button",
166
+ tabindex: 0,
167
+ onMousedown: (t) => {
168
+ t.preventDefault(), t.stopPropagation();
169
+ },
170
+ onClick: (t) => {
171
+ t.preventDefault(), t.stopPropagation(), N?.();
172
+ },
173
+ onKeydown: (t) => {
174
+ (t.key === "Enter" || t.key === " ") && (t.preventDefault(), t.stopPropagation(), N?.());
175
+ }
176
+ }, null)
177
+ }) : r;
178
+ },
179
+ action: () => e.pagination ? l(G, {
151
180
  size: "small",
152
181
  page: w.value.page,
153
182
  "onUpdate:page": (a) => w.value.page = a,
@@ -155,12 +184,12 @@ const W = /* @__PURE__ */ P({
155
184
  pageCount: B.value,
156
185
  pageSize: w.value.pageSize
157
186
  }, null) : null,
158
- ...r
187
+ ...i
159
188
  });
160
189
  }
161
190
  });
162
- function A(e, u, r, o, p) {
163
- return r || p || o ? l(h, {
191
+ function P(e, u, i, c, m) {
192
+ return i || m || c ? l(b, {
164
193
  align: "center",
165
194
  size: "small",
166
195
  style: {
@@ -168,14 +197,14 @@ function A(e, u, r, o, p) {
168
197
  },
169
198
  wrapItem: !1
170
199
  }, {
171
- default: () => [r && l(V, {
172
- src: e?.raw?.[r],
200
+ default: () => [i && l(V, {
201
+ src: e?.raw?.[i],
173
202
  objectFit: "cover",
174
203
  width: 22,
175
204
  height: 22
176
- }, null), o && l(C, {
205
+ }, null), c && l(D, {
177
206
  round: !0,
178
- src: e?.raw?.[o] || "",
207
+ src: e?.raw?.[c] || "",
179
208
  size: 22
180
209
  }, {
181
210
  default: () => [e?.raw?.[u]?.charAt?.(0)]
@@ -183,5 +212,5 @@ function A(e, u, r, o, p) {
183
212
  }) : e?.raw?.[u] || "";
184
213
  }
185
214
  export {
186
- W as DuxSelect
215
+ $ as DuxSelect
187
216
  };
@@ -1,8 +1,8 @@
1
- import { defineComponent as v, toRef as n, ref as g, watch as o, createVNode as l, mergeProps as F } from "vue";
2
- import { useList as y } from "@duxweb/dvha-core";
3
- import { useVModel as x } from "@vueuse/core";
4
- import { NTransfer as u, NSpin as b, NAvatar as h } from "naive-ui";
5
- const V = /* @__PURE__ */ v({
1
+ import { defineComponent as A, toRef as c, ref as x, watch as b, createVNode as t, mergeProps as p } from "vue";
2
+ import { useList as S } from "@duxweb/dvha-core";
3
+ import { useVModel as h } from "@vueuse/core";
4
+ import { NTransfer as f, NSpin as L, NAvatar as N } from "naive-ui";
5
+ const k = /* @__PURE__ */ A({
6
6
  name: "DuxTransfer",
7
7
  props: {
8
8
  path: String,
@@ -10,7 +10,7 @@ const V = /* @__PURE__ */ v({
10
10
  type: Object
11
11
  },
12
12
  labelField: {
13
- type: String,
13
+ type: [String, Function],
14
14
  default: "name"
15
15
  },
16
16
  valueField: {
@@ -21,69 +21,76 @@ const V = /* @__PURE__ */ v({
21
21
  type: String
22
22
  },
23
23
  descField: {
24
- type: String
24
+ type: [String, Function]
25
25
  }
26
26
  },
27
- extends: u,
28
- setup(e, {
29
- emit: r
27
+ extends: f,
28
+ setup(a, {
29
+ emit: m
30
30
  }) {
31
- const i = x(e, "value", r, {
31
+ const n = h(a, "value", m, {
32
32
  passive: !0,
33
- defaultValue: e.defaultValue || []
34
- }), m = n(e, "path", ""), s = n(e, "params", {}), d = g([]), {
35
- data: f,
36
- isLoading: c
37
- } = y({
38
- path: m.value,
39
- filters: s.value
40
- });
41
- return o(f, (a) => {
42
- d.value = a?.value?.data?.map((t) => ({
43
- label: t[e.labelField || "name"],
44
- value: t[e.valueField || "id"],
45
- raw: t
46
- })) || [];
33
+ defaultValue: a.defaultValue || []
34
+ }), o = c(a, "path", ""), y = c(a, "params", {}), d = x([]), {
35
+ data: v,
36
+ isLoading: F
37
+ } = S({
38
+ path: o.value,
39
+ filters: y.value
40
+ }), u = (e, i, l) => typeof i == "function" ? i(e) || "" : e[i || l] ?? "", g = (e) => Array.isArray(e?.data) ? e.data : Array.isArray(e?.data?.list) ? e.data.list : Array.isArray(e?.data?.data) ? e.data.data : Array.isArray(e?.list) ? e.list : Array.isArray(e?.value?.data) ? e.value.data : [];
41
+ b(v, (e) => {
42
+ const i = g(e);
43
+ d.value = i.map((l) => {
44
+ const r = {
45
+ label: u(l, a.labelField, "name"),
46
+ value: l[a.valueField || "id"],
47
+ raw: l
48
+ };
49
+ return a.descField && (r.desc = u(l, a.descField, "desc")), r;
50
+ });
47
51
  }, {
48
52
  immediate: !0
49
- }), () => l("div", {
53
+ });
54
+ const s = ({
55
+ option: e
56
+ }) => a.imageField || a.descField ? t("div", {
57
+ style: {
58
+ padding: "0 6px",
59
+ display: "flex",
60
+ alignItems: "center",
61
+ gap: "4px"
62
+ }
63
+ }, [a.imageField && t(N, {
64
+ round: !0,
65
+ src: e?.raw[a.imageField],
66
+ size: 32
67
+ }, null), t("div", {
68
+ style: {
69
+ flex: 1,
70
+ display: "flex",
71
+ flexDirection: "column",
72
+ justifyContent: "center"
73
+ }
74
+ }, [t("div", null, [e?.label]), a.descField && t("div", {
75
+ style: {
76
+ opacity: 0.6
77
+ }
78
+ }, [e?.desc])])]) : e?.label;
79
+ return () => t("div", {
50
80
  class: "w-full"
51
- }, [l(b, {
52
- show: c.value
81
+ }, [t(L, {
82
+ show: F.value
53
83
  }, {
54
- default: () => [l(u, F(e, {
55
- value: i.value,
56
- "onUpdate:value": (a) => i.value = a,
84
+ default: () => [t(f, p(a, {
85
+ value: n.value,
86
+ "onUpdate:value": (e) => n.value = e,
57
87
  options: d.value,
58
- renderTargetLabel: ({
59
- option: a
60
- }) => e.imageField || e.descField ? l("div", {
61
- style: {
62
- padding: "0 6px",
63
- display: "flex",
64
- alignItems: "center",
65
- gap: "4px"
66
- }
67
- }, [e.imageField && l(h, {
68
- round: !0,
69
- src: a?.raw[e.imageField],
70
- size: 32
71
- }, null), l("div", {
72
- style: {
73
- flex: 1,
74
- display: "flex",
75
- flexDirection: "column",
76
- justifyContent: "center"
77
- }
78
- }, [l("div", null, [a?.raw[e.labelField || "name"]]), e.descField && l("div", {
79
- style: {
80
- opacity: 0.6
81
- }
82
- }, [a?.raw[e.descField || "desc"]])])]) : a?.raw[e.labelField || "name"]
88
+ renderSourceLabel: s,
89
+ renderTargetLabel: s
83
90
  }), null)]
84
91
  })]);
85
92
  }
86
93
  });
87
94
  export {
88
- V as DuxTransfer
95
+ k as DuxTransfer
89
96
  };
@@ -1,58 +1,58 @@
1
- import { useExtendList as z, treeToArr as C } from "@duxweb/dvha-core";
2
- import { watchDebounced as K } from "@vueuse/core";
3
- import { cloneDeep as P } from "lodash-es";
4
- import { toRef as p, ref as r, watch as h, computed as v } from "vue";
5
- function A(l) {
6
- const f = p(l, "filters", {}), y = p(l, "sorters", {}), g = p(l, "columns", []), u = r({}), i = r([]), c = r({
7
- ...f.value,
8
- ...u.value
9
- }), d = r({
10
- ...y.value
1
+ import { useExtendList as C, treeToArr as F } from "@duxweb/dvha-core";
2
+ import { watchDebounced as E } from "@vueuse/core";
3
+ import { cloneDeep as K } from "lodash-es";
4
+ import { computed as l, unref as g, toRef as P, ref as u, watch as h } from "vue";
5
+ function D(n) {
6
+ const i = l(() => g(n.filters) || {}), m = l(() => g(n.sorters) || {}), p = P(n, "columns", []), c = u({}), d = u([]), f = u({
7
+ ...i.value,
8
+ ...c.value
9
+ }), v = u({
10
+ ...m.value
11
+ }), a = C({
12
+ ...n,
13
+ filters: f,
14
+ sorters: v
11
15
  });
12
- K([f, u], ([e, o]) => {
13
- Object.keys(c.value).forEach((t) => {
14
- delete c.value[t];
15
- }), Object.assign(c.value, e, o);
16
+ E([i, c], ([e, o]) => {
17
+ const t = {
18
+ ...e || {},
19
+ ...o || {}
20
+ };
21
+ f.value = t, a.onUpdateFilters(t);
16
22
  }, {
17
23
  debounce: 300,
18
24
  deep: !0
19
25
  });
20
- const a = z({
21
- ...l,
22
- filters: c.value,
23
- sorters: d.value
24
- }), s = r([]);
25
- h(g, (e) => {
26
+ const s = u([]);
27
+ h(p, (e) => {
26
28
  s.value = e;
27
29
  }, {
28
30
  immediate: !0
29
31
  });
30
- const k = v(() => s.value.filter((e) => e.show !== !1 && "key" in e).map((e) => e.key)), b = (e) => {
31
- const o = P(g.value)?.map((t) => (!("key" in t) || !t?.key || !("title" in t) || !t?.title || e.includes(t.key) || (t.show = !1), t));
32
+ const w = l(() => s.value.filter((e) => e.show !== !1 && "key" in e).map((e) => e.key)), y = (e) => {
33
+ const o = K(p.value)?.map((t) => (!("key" in t) || !t?.key || !("title" in t) || !t?.title || e.includes(t.key) || (t.show = !1), t));
32
34
  s.value = [...o];
33
- }, w = (e) => {
35
+ }, S = (e) => {
34
36
  a.checkeds.value = e;
35
- }, m = (e) => {
37
+ }, U = (e) => {
36
38
  const o = Array.isArray(e) ? e : [e], t = {};
37
- o?.forEach((n) => {
38
- n?.columnKey && n.order && (t[n.columnKey] = n.order === "ascend" ? "asc" : "desc");
39
- }), Object.keys(d.value).forEach((n) => {
40
- delete d.value[n];
41
- }), Object.assign(d.value, t);
42
- }, S = (e) => {
39
+ o?.forEach((r) => {
40
+ r?.columnKey && r.order && (t[r.columnKey] = r.order === "ascend" ? "asc" : "desc");
41
+ }), v.value = t, a.onUpdateSorters(t);
42
+ }, k = (e) => {
43
43
  const o = {
44
- ...u.value
44
+ ...c.value
45
45
  };
46
- Object.entries(e).forEach(([t, n]) => {
47
- o[t] = n;
48
- }), u.value = o;
49
- }, U = (e) => {
50
- i.value = e;
46
+ Object.entries(e).forEach(([t, r]) => {
47
+ o[t] = r;
48
+ }), c.value = o;
49
+ }, b = (e) => {
50
+ d.value = e;
51
51
  };
52
- h([() => l?.expanded, a.list], ([e, o]) => {
53
- e && (i.value = C(o, l.key || "id", "children"));
52
+ h([() => n?.expanded, a.list], ([e, o]) => {
53
+ e && (d.value = F(o, n.key || "id", "children"));
54
54
  });
55
- const x = v(() => ({
55
+ const x = l(() => ({
56
56
  page: a.page.value,
57
57
  pageSize: a.pageSize.value,
58
58
  pageCount: a.pageCount.value,
@@ -62,14 +62,14 @@ function A(l) {
62
62
  onUpdatePageSize: a.onUpdatePageSize,
63
63
  showSizePicker: !0,
64
64
  showQuickJumper: !0
65
- })), E = v(() => ({
65
+ })), z = l(() => ({
66
66
  remote: !0,
67
67
  checkedRowKeys: a.checkeds.value,
68
- expandedRowKeys: i.value,
69
- onUpdateCheckedRowKeys: w,
70
- onUpdateExpandedRowKeys: U,
71
- onUpdateSorter: m,
72
- onUpdateFilters: S,
68
+ expandedRowKeys: d.value,
69
+ onUpdateCheckedRowKeys: S,
70
+ onUpdateExpandedRowKeys: b,
71
+ onUpdateSorter: U,
72
+ onUpdateFilters: k,
73
73
  loading: a.isLoading.value,
74
74
  data: a.list.value,
75
75
  columns: s.value.filter((e) => e.show !== !1)
@@ -77,12 +77,12 @@ function A(l) {
77
77
  return {
78
78
  ...a,
79
79
  tablePagination: x,
80
- table: E,
80
+ table: z,
81
81
  columns: s,
82
- columnSelected: k,
83
- onUpdateColumnSelected: b
82
+ columnSelected: w,
83
+ onUpdateColumnSelected: y
84
84
  };
85
85
  }
86
86
  export {
87
- A as useNaiveTable
87
+ D as useNaiveTable
88
88
  };
@@ -8,6 +8,7 @@ interface DuxSelectProps extends SelectProps {
8
8
  descField?: string;
9
9
  multiple?: boolean;
10
10
  option?: Record<string, any> | Record<string, any>[] | null;
11
+ refreshable?: boolean;
11
12
  }
12
13
  export declare const DuxSelect: import("vue").DefineComponent<DuxSelectProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<DuxSelectProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
13
14
  export {};
@@ -1,11 +1,12 @@
1
1
  import type { TransferProps } from 'naive-ui';
2
+ export type TransferFieldResolver = string | ((row: Record<string, any>) => string);
2
3
  export interface DuxTransferProps extends TransferProps {
3
4
  path: string;
4
5
  params?: Record<string, any>;
5
6
  value?: Array<string | number>;
6
- labelField?: string;
7
+ labelField?: TransferFieldResolver;
7
8
  valueField?: string;
8
9
  imageField?: string;
9
- descField?: string;
10
+ descField?: TransferFieldResolver;
10
11
  }
11
12
  export declare const DuxTransfer: import("vue").DefineComponent<DuxTransferProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<DuxTransferProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@duxweb/dvha-naiveui",
3
3
  "type": "module",
4
- "version": "1.1.21",
4
+ "version": "1.1.23",
5
5
  "author": "DuxWeb",
6
6
  "license": "MIT",
7
7
  "exports": {
@@ -33,7 +33,7 @@
33
33
  "pinia": "^3.0.4",
34
34
  "vue": "^3.5.24",
35
35
  "vue-router": "^4.6.3",
36
- "@duxweb/dvha-core": "1.1.21"
36
+ "@duxweb/dvha-core": "1.1.23"
37
37
  },
38
38
  "scripts": {
39
39
  "clean": "rimraf dist",