skyline-vue-admin 0.0.8 → 0.0.10

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,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("element-plus/es/components/form-item/style/css");require("element-plus/es/components/tree-select/style/css");const t=require("vue"),l=require("element-plus"),g=require("vue-i18n"),v=require("vue-router"),b=require("../can-access/index.cjs");require("../../hooks/useUser.cjs");require("../../hooks/usePermission.cjs");require("../../hooks/useMenu.cjs");require("../../hooks/useTab.cjs");require("../../hooks/useRouteKeepAlive.cjs");require("../../hooks/useSize.cjs");require("../../hooks/useLang.cjs");require("../../hooks/useTheme.cjs");require("../../hooks/useList.cjs");require("../../hooks/useHiddenTitle.cjs");const h=require("../../hooks/useForm.cjs");require("../../hooks/useShow.cjs");require("../../hooks/useReferenceArrayField.cjs");require("../../hooks/useTreeWithDetails.cjs");const N=require("../../hooks/useFormGrid.cjs"),V=require("../../hooks/useReferenceArrayInput.cjs");function I(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}const A=t.defineComponent({name:"SkyTreeSelectInput",inheritAttrs:!1,props:{source:{type:String,required:!0},label:String,rules:Object,defaultValue:{type:[String,Number],default:0},optionChildren:{type:String,default:"children"},optionName:{type:String,default:"name"},defaultExpandAll:{type:Boolean,default:!0},nodeKey:{type:String,default:"id"},rootValue:{type:[String,Number],default:0}},setup(e,{attrs:a}){const{t:c}=g.useI18n(),d=v.useRoute(),{formData:u,editData:o}=h.useForm(),s=N.useFormGrid(),{getList:f,listData:i,listLoading:n}=V.useReferenceArrayInput(),y=d.meta;typeof u[e.source]>"u"&&(u[e.source]=e.defaultValue),o.value&&(u[e.source]=o.value[e.source]);const m=t.computed(()=>e.label||e.source),q=t.computed(()=>{const r=[{[e.nodeKey]:e.rootValue,[e.optionName]:c("treeRootNode"),[e.optionChildren]:[]}];return i.value?.data?.length&&(r[0][e.optionChildren]=i.value.data),r});return t.onMounted(()=>{f()}),()=>{let r;return t.createVNode(b.SkyCanAccess,{resource:y.resource,action:["create","edit"],column:e.source},I(r=t.withDirectives(t.createVNode(l.ElFormItem,{label:m.value,prop:e.source,rules:e.rules,style:s?`grid-area: ${e.source}`:""},{default:()=>[t.createVNode(l.ElTreeSelect,t.mergeProps({modelValue:n.value?"":u[e.source],"onUpdate:modelValue":S=>u[e.source]=S,checkStrictly:!0,data:q.value,props:{children:e.optionChildren,label:e.optionName},defaultExpandAll:e.defaultExpandAll,loading:n.value,nodeKey:e.nodeKey,valueKey:e.nodeKey},a),null)]}),[[l.ElLoadingDirective,n.value]]))?r:{default:()=>[r]})}}});exports.SkyTreeSelectInput=A;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("element-plus/es/components/form-item/style/css");require("element-plus/es/components/tree-select/style/css");const t=require("vue"),o=require("element-plus"),S=require("vue-i18n"),g=require("vue-router"),v=require("../can-access/index.cjs");require("../../hooks/useUser.cjs");require("../../hooks/usePermission.cjs");require("../../hooks/useMenu.cjs");require("../../hooks/useTab.cjs");require("../../hooks/useRouteKeepAlive.cjs");require("../../hooks/useSize.cjs");require("../../hooks/useLang.cjs");require("../../hooks/useTheme.cjs");require("../../hooks/useList.cjs");require("../../hooks/useHiddenTitle.cjs");const b=require("../../hooks/useForm.cjs");require("../../hooks/useShow.cjs");require("../../hooks/useReferenceArrayField.cjs");require("../../hooks/useTreeWithDetails.cjs");const h=require("../../hooks/useFormGrid.cjs"),N=require("../../hooks/useReferenceArrayInput.cjs");function V(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}const I=t.defineComponent({name:"SkyTreeSelectInput",inheritAttrs:!1,props:{source:{type:String,required:!0},label:String,rules:Object,defaultValue:{type:[String,Number],default:0},optionChildren:{type:String,default:"children"},optionName:{type:String,default:"name"},nodeKey:{type:String,default:"id"},rootValue:{type:[String,Number],default:0}},setup(e,{attrs:a}){const{t:c}=S.useI18n(),d=g.useRoute(),{formData:u,editData:i}=b.useForm(),s=h.useFormGrid(),{listData:l,listLoading:n}=N.useReferenceArrayInput(),f=d.meta;typeof u[e.source]>"u"&&(u[e.source]=e.defaultValue),i.value&&(u[e.source]=i.value[e.source]);const m=t.computed(()=>e.label||e.source),y=t.computed(()=>{const r=[{[e.nodeKey]:e.rootValue,[e.optionName]:c("treeRootNode"),[e.optionChildren]:[]}];return l.value?.data?.length&&(r[0][e.optionChildren]=l.value.data),r});return()=>{let r;return t.createVNode(v.SkyCanAccess,{resource:f.resource,action:["create","edit"],column:e.source},V(r=t.withDirectives(t.createVNode(o.ElFormItem,{label:m.value,prop:e.source,rules:e.rules,style:s?`grid-area: ${e.source}`:""},{default:()=>[t.createVNode(o.ElTreeSelect,t.mergeProps({modelValue:n.value?"":u[e.source],"onUpdate:modelValue":q=>u[e.source]=q,checkStrictly:!0,data:y.value,props:{children:e.optionChildren,label:e.optionName},defaultExpandAll:!1,accordion:!0,loading:n.value,nodeKey:e.nodeKey,valueKey:e.nodeKey},a),null)]}),[[o.ElLoadingDirective,n.value]]))?r:{default:()=>[r]})}}});exports.SkyTreeSelectInput=I;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../src/components/tree-select-input/index.tsx"],"sourcesContent":["import type { Identifier } from '@/provides'\nimport type { SkyLayoutRouteMeta } from '@/router'\nimport { ElFormItem, ElLoadingDirective, ElTreeSelect, type FormItemRule } from 'element-plus'\nimport { computed, defineComponent, onMounted, withDirectives } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport { useRoute } from 'vue-router'\nimport { SkyCanAccess } from '../can-access'\nimport { useForm, useFormGrid, useReferenceArrayInput } from '@/hooks'\n\nexport interface SkyTreeSelectInputProps {\n source: string\n label?: string\n placeholder?: string\n rules?: FormItemRule | FormItemRule[]\n defaultValue?: Identifier\n optionChildren?: string\n optionName?: string\n defaultExpandAll?: boolean\n nodeKey?: string\n rootValue?: Identifier\n}\n\nexport const SkyTreeSelectInput = defineComponent<SkyTreeSelectInputProps>({\n name: 'SkyTreeSelectInput',\n inheritAttrs: false,\n props: {\n source: {\n type: String,\n required: true,\n },\n label: String,\n // placeholder: String,\n rules: Object,\n defaultValue: {\n type: [String, Number],\n default: 0,\n },\n optionChildren: {\n type: String,\n default: 'children',\n },\n optionName: {\n type: String,\n default: 'name',\n },\n defaultExpandAll: {\n type: Boolean,\n default: true,\n },\n nodeKey: {\n type: String,\n default: 'id',\n },\n rootValue: {\n type: [String, Number],\n default: 0,\n },\n },\n setup(props, { attrs }) {\n const { t } = useI18n()\n const route = useRoute()\n const { formData, editData } = useForm()!\n const formGrid = useFormGrid()\n const { getList, listData, listLoading } = useReferenceArrayInput()!\n const routeMeta = route.meta as SkyLayoutRouteMeta\n\n if (typeof formData[props.source] === 'undefined') {\n formData[props.source] = props.defaultValue!\n }\n\n if (editData.value) {\n formData[props.source] = editData.value[props.source]\n }\n\n const title = computed<string>(() => props.label || props.source)\n\n const data = computed(() => {\n const result = [\n {\n [props.nodeKey!]: props.rootValue!,\n [props.optionName!]: t('treeRootNode'),\n [props.optionChildren!]: [] as Record<string, unknown>[],\n },\n ]\n if (listData.value?.data?.length) {\n result[0]![props.optionChildren!] = listData.value.data\n return result\n }\n return result\n })\n\n onMounted(() => {\n getList()\n })\n\n return () => (\n <SkyCanAccess resource={routeMeta.resource} action={['create', 'edit']} column={props.source}>\n {withDirectives(\n <ElFormItem\n label={title.value}\n prop={props.source}\n rules={props.rules}\n style={formGrid ? `grid-area: ${props.source}` : ''}\n >\n <ElTreeSelect\n modelValue={listLoading.value ? '' : formData[props.source]}\n onUpdate:modelValue={(v: Identifier) => (formData[props.source] = v)}\n checkStrictly\n data={data.value}\n props={{ children: props.optionChildren, label: props.optionName }}\n defaultExpandAll={props.defaultExpandAll}\n loading={listLoading.value}\n nodeKey={props.nodeKey}\n valueKey={props.nodeKey}\n {...attrs}\n />\n </ElFormItem>,\n [[ElLoadingDirective, listLoading.value]],\n )}\n </SkyCanAccess>\n )\n },\n})\n"],"names":["_isSlot","s","_isVNode","SkyTreeSelectInput","defineComponent","name","inheritAttrs","props","source","type","required","label","rules","defaultValue","default","optionChildren","optionName","defaultExpandAll","nodeKey","rootValue","attrs","t","route","useRoute","editData","formGrid","useFormGrid","listLoading","routeMeta","formData","title","computed","data","listData","result","onMounted","getList","_slot"],"mappings":"g9BAOsE,SAAAA,EAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,EAAAA,QAAAD,CAAA,CAAA,CAetE,MAAAE,EAAAC,EAAAA,gBAAA,CACEC,KAAAA,qBACAC,aAAAA,GACAC,MAAAA,CACEC,OAAAA,CACEC,KAAAA,OACAC,SAAAA,IAEFC,MAAAA,OAEAC,MAAAA,OACAC,aAAAA,CACEJ,KAAAA,CAAAA,OAAAA,MAAAA,EACAK,QAAAA,GAEFC,eAAAA,CACEN,KAAAA,OACAK,QAAAA,YAEFE,WAAAA,CACEP,KAAAA,OACAK,QAAAA,QAEFG,iBAAAA,CACER,KAAAA,QACAK,QAAAA,IAEFI,QAAAA,CACET,KAAAA,OACAK,QAAAA,MAEFK,UAAAA,CACEV,KAAAA,CAAAA,OAAAA,MAAAA,EACAK,QAAAA,CACF,YAEaM,MAAAA,CAAM,EAAA,OACXC,EAAAA,eACRC,EAAAC,EAAAA,SAAA,cACkBC,SAAAA,eAClBC,EAAAC,EAAAA,YAAA,wBAC2BC,YAAAA,8BAC3BC,EAAAN,EAAA,oEAOEO,EAAAA,EAAAA,MAAAA,EAAAA,EAAAA,MAAAA,EAAAA,MAAAA,GAGF,MAAAC,EAAAC,EAAAA,SAAA,IAAAxB,EAAA,OAAAA,EAAA,MAAA,EAEAyB,EAAAD,EAAAA,SAAA,IAAA,WAGM,CAAAxB,EAAA,OAAA,EAAAA,EAAA,UACA,CAAAA,EAAA,UAAA,EAAAc,EAAA,cAAA,uBAEF,CAAA,EAEF,OAAAY,EAAA,OAAA,MAAA,SACEC,EAAAA,CAAAA,EAAAA,EAAAA,cAAAA,EAAAA,EAAAA,MAAAA,MACAA,CAGJ,CAAA,EAEAC,OAAAA,EAAAA,UAAAA,IAAAA,CACEC,EAAAA,CACF,CAAA,OAEO,IAAAC,2DACqC,OAAA,CAAA,SAAA,MAAA,EAA4B,OAAA9B,EAAA,mGAK9C,MAAAkB,EAAA,cAAAlB,EAAA,MAAA,GAAA,EACiC,EAAA,CAAAO,QAAAA,IAAAA,CAAAA,cAAAA,EAAAA,aAAAA,EAAAA,WAAAA,0EAImB,cAAA,2IAM9C,SAAAP,EAAA,OACC,EAAAa,CAAA,EAAA,IAAA,CAAA,yDAK5B,CAAA,EAGP,CACF,CAAA"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/tree-select-input/index.tsx"],"sourcesContent":["import type { Identifier } from '@/provides'\nimport type { SkyLayoutRouteMeta } from '@/router'\nimport { ElFormItem, ElLoadingDirective, ElTreeSelect, type FormItemRule } from 'element-plus'\nimport { computed, defineComponent, withDirectives } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport { useRoute } from 'vue-router'\nimport { SkyCanAccess } from '../can-access'\nimport { useForm, useFormGrid, useReferenceArrayInput } from '@/hooks'\n\nexport interface SkyTreeSelectInputProps {\n source: string\n label?: string\n placeholder?: string\n rules?: FormItemRule | FormItemRule[]\n defaultValue?: Identifier\n optionChildren?: string\n optionName?: string\n nodeKey?: string\n rootValue?: Identifier\n}\n\nexport const SkyTreeSelectInput = defineComponent<SkyTreeSelectInputProps>({\n name: 'SkyTreeSelectInput',\n inheritAttrs: false,\n props: {\n source: {\n type: String,\n required: true,\n },\n label: String,\n // placeholder: String,\n rules: Object,\n defaultValue: {\n type: [String, Number],\n default: 0,\n },\n optionChildren: {\n type: String,\n default: 'children',\n },\n optionName: {\n type: String,\n default: 'name',\n },\n nodeKey: {\n type: String,\n default: 'id',\n },\n rootValue: {\n type: [String, Number],\n default: 0,\n },\n },\n setup(props, { attrs }) {\n const { t } = useI18n()\n const route = useRoute()\n const { formData, editData } = useForm()!\n const formGrid = useFormGrid()\n const { listData, listLoading } = useReferenceArrayInput()!\n const routeMeta = route.meta as SkyLayoutRouteMeta\n\n if (typeof formData[props.source] === 'undefined') {\n formData[props.source] = props.defaultValue!\n }\n\n if (editData.value) {\n formData[props.source] = editData.value[props.source]\n }\n\n const title = computed<string>(() => props.label || props.source)\n\n const data = computed(() => {\n const result = [\n {\n [props.nodeKey!]: props.rootValue!,\n [props.optionName!]: t('treeRootNode'),\n [props.optionChildren!]: [] as Record<string, unknown>[],\n },\n ]\n if (listData.value?.data?.length) {\n result[0]![props.optionChildren!] = listData.value.data\n return result\n }\n return result\n })\n\n return () => (\n <SkyCanAccess resource={routeMeta.resource} action={['create', 'edit']} column={props.source}>\n {withDirectives(\n <ElFormItem\n label={title.value}\n prop={props.source}\n rules={props.rules}\n style={formGrid ? `grid-area: ${props.source}` : ''}\n >\n <ElTreeSelect\n modelValue={listLoading.value ? '' : formData[props.source]}\n onUpdate:modelValue={(v: Identifier) => (formData[props.source] = v)}\n checkStrictly\n data={data.value}\n props={{ children: props.optionChildren, label: props.optionName }}\n defaultExpandAll={false}\n accordion={true}\n loading={listLoading.value}\n nodeKey={props.nodeKey}\n valueKey={props.nodeKey}\n {...attrs}\n />\n </ElFormItem>,\n [[ElLoadingDirective, listLoading.value]],\n )}\n </SkyCanAccess>\n )\n },\n})\n"],"names":["_isSlot","s","_isVNode","SkyTreeSelectInput","defineComponent","name","inheritAttrs","props","source","type","required","label","rules","defaultValue","default","optionChildren","optionName","nodeKey","rootValue","attrs","t","route","useRoute","editData","formGrid","useFormGrid","listLoading","routeMeta","formData","title","computed","data","listData","result","_slot"],"mappings":"g9BAOsE,SAAAA,EAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,EAAAA,QAAAD,CAAA,CAAA,CActE,MAAAE,EAAAC,EAAAA,gBAAA,CACEC,KAAAA,qBACAC,aAAAA,GACAC,MAAAA,CACEC,OAAAA,CACEC,KAAAA,OACAC,SAAAA,IAEFC,MAAAA,OAEAC,MAAAA,OACAC,aAAAA,CACEJ,KAAAA,CAAAA,OAAAA,MAAAA,EACAK,QAAAA,GAEFC,eAAAA,CACEN,KAAAA,OACAK,QAAAA,YAEFE,WAAAA,CACEP,KAAAA,OACAK,QAAAA,QAEFG,QAAAA,CACER,KAAAA,OACAK,QAAAA,MAEFI,UAAAA,CACET,KAAAA,CAAAA,OAAAA,MAAAA,EACAK,QAAAA,CACF,YAEaK,MAAAA,CAAM,EAAA,OACXC,EAAAA,eACRC,EAAAC,EAAAA,SAAA,cACkBC,SAAAA,eAClBC,EAAAC,EAAAA,YAAA,cACkBC,YAAAA,8BAClBC,EAAAN,EAAA,oEAOEO,EAAAA,EAAAA,MAAAA,EAAAA,EAAAA,MAAAA,EAAAA,MAAAA,GAGF,MAAAC,EAAAC,EAAAA,SAAA,IAAAvB,EAAA,OAAAA,EAAA,MAAA,EAEAwB,EAAAD,EAAAA,SAAA,IAAA,WAGM,CAAAvB,EAAA,OAAA,EAAAA,EAAA,UACA,CAAAA,EAAA,UAAA,EAAAa,EAAA,cAAA,uBAEF,CAAA,EAEF,OAAAY,EAAA,OAAA,MAAA,SACEC,EAAAA,CAAAA,EAAAA,EAAAA,cAAAA,EAAAA,EAAAA,MAAAA,MACAA,CAGJ,CAAA,aAEO,IAAAC,2DACqC,OAAA,CAAA,SAAA,MAAA,EAA4B,OAAA3B,EAAA,mGAK9C,MAAAiB,EAAA,cAAAjB,EAAA,MAAA,GAAA,EACiC,EAAA,CAAAO,QAAAA,IAAAA,CAAAA,cAAAA,EAAAA,aAAAA,EAAAA,WAAAA,0EAImB,cAAA,qEAGF,iBAAA,GAC3C,UAAA,qCAGD,SAAAP,EAAA,OACC,EAAAY,CAAA,EAAA,IAAA,CAAA,yDAK5B,CAAA,EAGP,CACF,CAAA"}
@@ -8,7 +8,6 @@ export interface SkyTreeSelectInputProps {
8
8
  defaultValue?: Identifier;
9
9
  optionChildren?: string;
10
10
  optionName?: string;
11
- defaultExpandAll?: boolean;
12
11
  nodeKey?: string;
13
12
  rootValue?: Identifier;
14
13
  }
@@ -1,8 +1,8 @@
1
1
  import "element-plus/es/components/form-item/style/css";
2
2
  import "element-plus/es/components/tree-select/style/css";
3
- import { defineComponent as p, computed as n, onMounted as v, createVNode as l, withDirectives as b, mergeProps as h, isVNode as N } from "vue";
4
- import { ElFormItem as V, ElTreeSelect as A, ElLoadingDirective as C } from "element-plus";
5
- import { useI18n as E } from "vue-i18n";
3
+ import { defineComponent as g, computed as n, createVNode as i, withDirectives as p, mergeProps as v, isVNode as b } from "vue";
4
+ import { ElFormItem as h, ElTreeSelect as N, ElLoadingDirective as V } from "element-plus";
5
+ import { useI18n as C } from "vue-i18n";
6
6
  import { useRoute as K } from "vue-router";
7
7
  import { SkyCanAccess as D } from "../can-access/index.mjs";
8
8
  import "../../hooks/useUser.mjs";
@@ -21,10 +21,10 @@ import "../../hooks/useReferenceArrayField.mjs";
21
21
  import "../../hooks/useTreeWithDetails.mjs";
22
22
  import { useFormGrid as j } from "../../hooks/useFormGrid.mjs";
23
23
  import { useReferenceArrayInput as k } from "../../hooks/useReferenceArrayInput.mjs";
24
- function x(e) {
25
- return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !N(e);
24
+ function A(e) {
25
+ return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !b(e);
26
26
  }
27
- const te = /* @__PURE__ */ p({
27
+ const Z = /* @__PURE__ */ g({
28
28
  name: "SkyTreeSelectInput",
29
29
  inheritAttrs: !1,
30
30
  props: {
@@ -47,10 +47,6 @@ const te = /* @__PURE__ */ p({
47
47
  type: String,
48
48
  default: "name"
49
49
  },
50
- defaultExpandAll: {
51
- type: Boolean,
52
- default: !0
53
- },
54
50
  nodeKey: {
55
51
  type: String,
56
52
  default: "id"
@@ -64,59 +60,57 @@ const te = /* @__PURE__ */ p({
64
60
  attrs: a
65
61
  }) {
66
62
  const {
67
- t: d
68
- } = E(), m = K(), {
63
+ t: m
64
+ } = C(), c = K(), {
69
65
  formData: o,
70
- editData: i
71
- } = I(), c = j(), {
72
- getList: f,
73
- listData: u,
66
+ editData: u
67
+ } = I(), d = j(), {
68
+ listData: l,
74
69
  listLoading: r
75
- } = k(), s = m.meta;
76
- typeof o[e.source] > "u" && (o[e.source] = e.defaultValue), i.value && (o[e.source] = i.value[e.source]);
77
- const y = n(() => e.label || e.source), S = n(() => {
70
+ } = k(), f = c.meta;
71
+ typeof o[e.source] > "u" && (o[e.source] = e.defaultValue), u.value && (o[e.source] = u.value[e.source]);
72
+ const s = n(() => e.label || e.source), y = n(() => {
78
73
  const t = [{
79
74
  [e.nodeKey]: e.rootValue,
80
- [e.optionName]: d("treeRootNode"),
75
+ [e.optionName]: m("treeRootNode"),
81
76
  [e.optionChildren]: []
82
77
  }];
83
- return u.value?.data?.length && (t[0][e.optionChildren] = u.value.data), t;
78
+ return l.value?.data?.length && (t[0][e.optionChildren] = l.value.data), t;
84
79
  });
85
- return v(() => {
86
- f();
87
- }), () => {
80
+ return () => {
88
81
  let t;
89
- return l(D, {
90
- resource: s.resource,
82
+ return i(D, {
83
+ resource: f.resource,
91
84
  action: ["create", "edit"],
92
85
  column: e.source
93
- }, x(t = b(l(V, {
94
- label: y.value,
86
+ }, A(t = p(i(h, {
87
+ label: s.value,
95
88
  prop: e.source,
96
89
  rules: e.rules,
97
- style: c ? `grid-area: ${e.source}` : ""
90
+ style: d ? `grid-area: ${e.source}` : ""
98
91
  }, {
99
- default: () => [l(A, h({
92
+ default: () => [i(N, v({
100
93
  modelValue: r.value ? "" : o[e.source],
101
- "onUpdate:modelValue": (g) => o[e.source] = g,
94
+ "onUpdate:modelValue": (S) => o[e.source] = S,
102
95
  checkStrictly: !0,
103
- data: S.value,
96
+ data: y.value,
104
97
  props: {
105
98
  children: e.optionChildren,
106
99
  label: e.optionName
107
100
  },
108
- defaultExpandAll: e.defaultExpandAll,
101
+ defaultExpandAll: !1,
102
+ accordion: !0,
109
103
  loading: r.value,
110
104
  nodeKey: e.nodeKey,
111
105
  valueKey: e.nodeKey
112
106
  }, a), null)]
113
- }), [[C, r.value]])) ? t : {
107
+ }), [[V, r.value]])) ? t : {
114
108
  default: () => [t]
115
109
  });
116
110
  };
117
111
  }
118
112
  });
119
113
  export {
120
- te as SkyTreeSelectInput
114
+ Z as SkyTreeSelectInput
121
115
  };
122
116
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../src/components/tree-select-input/index.tsx"],"sourcesContent":["import type { Identifier } from '@/provides'\nimport type { SkyLayoutRouteMeta } from '@/router'\nimport { ElFormItem, ElLoadingDirective, ElTreeSelect, type FormItemRule } from 'element-plus'\nimport { computed, defineComponent, onMounted, withDirectives } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport { useRoute } from 'vue-router'\nimport { SkyCanAccess } from '../can-access'\nimport { useForm, useFormGrid, useReferenceArrayInput } from '@/hooks'\n\nexport interface SkyTreeSelectInputProps {\n source: string\n label?: string\n placeholder?: string\n rules?: FormItemRule | FormItemRule[]\n defaultValue?: Identifier\n optionChildren?: string\n optionName?: string\n defaultExpandAll?: boolean\n nodeKey?: string\n rootValue?: Identifier\n}\n\nexport const SkyTreeSelectInput = defineComponent<SkyTreeSelectInputProps>({\n name: 'SkyTreeSelectInput',\n inheritAttrs: false,\n props: {\n source: {\n type: String,\n required: true,\n },\n label: String,\n // placeholder: String,\n rules: Object,\n defaultValue: {\n type: [String, Number],\n default: 0,\n },\n optionChildren: {\n type: String,\n default: 'children',\n },\n optionName: {\n type: String,\n default: 'name',\n },\n defaultExpandAll: {\n type: Boolean,\n default: true,\n },\n nodeKey: {\n type: String,\n default: 'id',\n },\n rootValue: {\n type: [String, Number],\n default: 0,\n },\n },\n setup(props, { attrs }) {\n const { t } = useI18n()\n const route = useRoute()\n const { formData, editData } = useForm()!\n const formGrid = useFormGrid()\n const { getList, listData, listLoading } = useReferenceArrayInput()!\n const routeMeta = route.meta as SkyLayoutRouteMeta\n\n if (typeof formData[props.source] === 'undefined') {\n formData[props.source] = props.defaultValue!\n }\n\n if (editData.value) {\n formData[props.source] = editData.value[props.source]\n }\n\n const title = computed<string>(() => props.label || props.source)\n\n const data = computed(() => {\n const result = [\n {\n [props.nodeKey!]: props.rootValue!,\n [props.optionName!]: t('treeRootNode'),\n [props.optionChildren!]: [] as Record<string, unknown>[],\n },\n ]\n if (listData.value?.data?.length) {\n result[0]![props.optionChildren!] = listData.value.data\n return result\n }\n return result\n })\n\n onMounted(() => {\n getList()\n })\n\n return () => (\n <SkyCanAccess resource={routeMeta.resource} action={['create', 'edit']} column={props.source}>\n {withDirectives(\n <ElFormItem\n label={title.value}\n prop={props.source}\n rules={props.rules}\n style={formGrid ? `grid-area: ${props.source}` : ''}\n >\n <ElTreeSelect\n modelValue={listLoading.value ? '' : formData[props.source]}\n onUpdate:modelValue={(v: Identifier) => (formData[props.source] = v)}\n checkStrictly\n data={data.value}\n props={{ children: props.optionChildren, label: props.optionName }}\n defaultExpandAll={props.defaultExpandAll}\n loading={listLoading.value}\n nodeKey={props.nodeKey}\n valueKey={props.nodeKey}\n {...attrs}\n />\n </ElFormItem>,\n [[ElLoadingDirective, listLoading.value]],\n )}\n </SkyCanAccess>\n )\n },\n})\n"],"names":["_isSlot","s","_isVNode","SkyTreeSelectInput","defineComponent","name","inheritAttrs","props","source","type","required","label","rules","defaultValue","default","optionChildren","optionName","defaultExpandAll","nodeKey","rootValue","attrs","t","route","useRoute","editData","formGrid","useFormGrid","listLoading","routeMeta","formData","title","computed","data","listData","result","onMounted","getList","_slot"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAOsE,SAAAA,EAAAC,GAAA;AAAA,SAAA,OAAAA,KAAA,cAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,MAAA,qBAAA,CAAAC,EAAAD,CAAA;AAAA;AAetE,MAAAE,KAAA,gBAAAC,EAAA;AAAA,EACEC,MAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,OAAAA;AAAAA,IACEC,QAAAA;AAAAA,MACEC,MAAAA;AAAAA,MACAC,UAAAA;AAAAA;IAEFC,OAAAA;AAAAA;AAAAA,IAEAC,OAAAA;AAAAA,IACAC,cAAAA;AAAAA,MACEJ,MAAAA,CAAAA,QAAAA,MAAAA;AAAAA,MACAK,SAAAA;AAAAA;IAEFC,gBAAAA;AAAAA,MACEN,MAAAA;AAAAA,MACAK,SAAAA;AAAAA;IAEFE,YAAAA;AAAAA,MACEP,MAAAA;AAAAA,MACAK,SAAAA;AAAAA;IAEFG,kBAAAA;AAAAA,MACER,MAAAA;AAAAA,MACAK,SAAAA;AAAAA;IAEFI,SAAAA;AAAAA,MACET,MAAAA;AAAAA,MACAK,SAAAA;AAAAA;IAEFK,WAAAA;AAAAA,MACEV,MAAAA,CAAAA,QAAAA,MAAAA;AAAAA,MACAK,SAAAA;AAAAA,IACF;AAAA;;IAEaM,OAAAA;AAAAA,EAAM,GAAA;;MACXC,GAAAA;AAAAA,aACRC,IAAAC,EAAA;;MACkBC,UAAAA;AAAAA,aAClBC,IAAAC,EAAA;;;MAC2BC,aAAAA;AAAAA,aAC3BC,IAAAN,EAAA;4EAOEO,EAAAA,EAAAA,MAAAA,IAAAA,EAAAA,MAAAA,EAAAA,MAAAA;AAGF,UAAAC,IAAAC,EAAA,MAAAxB,EAAA,SAAAA,EAAA,MAAA,GAEAyB,IAAAD,EAAA,MAAA;;QAGM,CAAAxB,EAAA,OAAA,GAAAA,EAAA;AAAA,QACA,CAAAA,EAAA,UAAA,GAAAc,EAAA,cAAA;AAAA;MAEF,CAAA;AAEF,aAAAY,EAAA,OAAA,MAAA,WACEC,EAAAA,CAAAA,EAAAA,EAAAA,cAAAA,IAAAA,EAAAA,MAAAA,OACAA;AAAA,IAGJ,CAAA;AAEAC,WAAAA,EAAAA,MAAAA;AACEC,MAAAA,EAAAA;AAAAA,IACF,CAAA;AAEO,UAAAC;;;QACqC,QAAA,CAAA,UAAA,MAAA;AAAA,QAA4B,QAAA9B,EAAA;AAAA;;;;QAK9C,OAAAkB,IAAA,cAAAlB,EAAA,MAAA,KAAA;AAAA,MACiC,GAAA;AAAA,QAAAO,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA,EAAAA;AAAAA;;UAImB,eAAA;AAAA;;;;;;;;UAM9C,UAAAP,EAAA;AAAA,QACC,GAAAa,CAAA,GAAA,IAAA,CAAA;AAAA;;MAK5B,CAAA;AAAA;EAGP;AACF,CAAA;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/components/tree-select-input/index.tsx"],"sourcesContent":["import type { Identifier } from '@/provides'\nimport type { SkyLayoutRouteMeta } from '@/router'\nimport { ElFormItem, ElLoadingDirective, ElTreeSelect, type FormItemRule } from 'element-plus'\nimport { computed, defineComponent, withDirectives } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport { useRoute } from 'vue-router'\nimport { SkyCanAccess } from '../can-access'\nimport { useForm, useFormGrid, useReferenceArrayInput } from '@/hooks'\n\nexport interface SkyTreeSelectInputProps {\n source: string\n label?: string\n placeholder?: string\n rules?: FormItemRule | FormItemRule[]\n defaultValue?: Identifier\n optionChildren?: string\n optionName?: string\n nodeKey?: string\n rootValue?: Identifier\n}\n\nexport const SkyTreeSelectInput = defineComponent<SkyTreeSelectInputProps>({\n name: 'SkyTreeSelectInput',\n inheritAttrs: false,\n props: {\n source: {\n type: String,\n required: true,\n },\n label: String,\n // placeholder: String,\n rules: Object,\n defaultValue: {\n type: [String, Number],\n default: 0,\n },\n optionChildren: {\n type: String,\n default: 'children',\n },\n optionName: {\n type: String,\n default: 'name',\n },\n nodeKey: {\n type: String,\n default: 'id',\n },\n rootValue: {\n type: [String, Number],\n default: 0,\n },\n },\n setup(props, { attrs }) {\n const { t } = useI18n()\n const route = useRoute()\n const { formData, editData } = useForm()!\n const formGrid = useFormGrid()\n const { listData, listLoading } = useReferenceArrayInput()!\n const routeMeta = route.meta as SkyLayoutRouteMeta\n\n if (typeof formData[props.source] === 'undefined') {\n formData[props.source] = props.defaultValue!\n }\n\n if (editData.value) {\n formData[props.source] = editData.value[props.source]\n }\n\n const title = computed<string>(() => props.label || props.source)\n\n const data = computed(() => {\n const result = [\n {\n [props.nodeKey!]: props.rootValue!,\n [props.optionName!]: t('treeRootNode'),\n [props.optionChildren!]: [] as Record<string, unknown>[],\n },\n ]\n if (listData.value?.data?.length) {\n result[0]![props.optionChildren!] = listData.value.data\n return result\n }\n return result\n })\n\n return () => (\n <SkyCanAccess resource={routeMeta.resource} action={['create', 'edit']} column={props.source}>\n {withDirectives(\n <ElFormItem\n label={title.value}\n prop={props.source}\n rules={props.rules}\n style={formGrid ? `grid-area: ${props.source}` : ''}\n >\n <ElTreeSelect\n modelValue={listLoading.value ? '' : formData[props.source]}\n onUpdate:modelValue={(v: Identifier) => (formData[props.source] = v)}\n checkStrictly\n data={data.value}\n props={{ children: props.optionChildren, label: props.optionName }}\n defaultExpandAll={false}\n accordion={true}\n loading={listLoading.value}\n nodeKey={props.nodeKey}\n valueKey={props.nodeKey}\n {...attrs}\n />\n </ElFormItem>,\n [[ElLoadingDirective, listLoading.value]],\n )}\n </SkyCanAccess>\n )\n },\n})\n"],"names":["_isSlot","s","_isVNode","SkyTreeSelectInput","defineComponent","name","inheritAttrs","props","source","type","required","label","rules","defaultValue","default","optionChildren","optionName","nodeKey","rootValue","attrs","t","route","useRoute","editData","formGrid","useFormGrid","listLoading","routeMeta","formData","title","computed","data","listData","result","_slot"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAOsE,SAAAA,EAAAC,GAAA;AAAA,SAAA,OAAAA,KAAA,cAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,MAAA,qBAAA,CAAAC,EAAAD,CAAA;AAAA;AActE,MAAAE,IAAA,gBAAAC,EAAA;AAAA,EACEC,MAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,OAAAA;AAAAA,IACEC,QAAAA;AAAAA,MACEC,MAAAA;AAAAA,MACAC,UAAAA;AAAAA;IAEFC,OAAAA;AAAAA;AAAAA,IAEAC,OAAAA;AAAAA,IACAC,cAAAA;AAAAA,MACEJ,MAAAA,CAAAA,QAAAA,MAAAA;AAAAA,MACAK,SAAAA;AAAAA;IAEFC,gBAAAA;AAAAA,MACEN,MAAAA;AAAAA,MACAK,SAAAA;AAAAA;IAEFE,YAAAA;AAAAA,MACEP,MAAAA;AAAAA,MACAK,SAAAA;AAAAA;IAEFG,SAAAA;AAAAA,MACER,MAAAA;AAAAA,MACAK,SAAAA;AAAAA;IAEFI,WAAAA;AAAAA,MACET,MAAAA,CAAAA,QAAAA,MAAAA;AAAAA,MACAK,SAAAA;AAAAA,IACF;AAAA;;IAEaK,OAAAA;AAAAA,EAAM,GAAA;;MACXC,GAAAA;AAAAA,aACRC,IAAAC,EAAA;;MACkBC,UAAAA;AAAAA,aAClBC,IAAAC,EAAA;;MACkBC,aAAAA;AAAAA,aAClBC,IAAAN,EAAA;4EAOEO,EAAAA,EAAAA,MAAAA,IAAAA,EAAAA,MAAAA,EAAAA,MAAAA;AAGF,UAAAC,IAAAC,EAAA,MAAAvB,EAAA,SAAAA,EAAA,MAAA,GAEAwB,IAAAD,EAAA,MAAA;;QAGM,CAAAvB,EAAA,OAAA,GAAAA,EAAA;AAAA,QACA,CAAAA,EAAA,UAAA,GAAAa,EAAA,cAAA;AAAA;MAEF,CAAA;AAEF,aAAAY,EAAA,OAAA,MAAA,WACEC,EAAAA,CAAAA,EAAAA,EAAAA,cAAAA,IAAAA,EAAAA,MAAAA,OACAA;AAAA,IAGJ,CAAA;;AAEO,UAAAC;;;QACqC,QAAA,CAAA,UAAA,MAAA;AAAA,QAA4B,QAAA3B,EAAA;AAAA;;;;QAK9C,OAAAiB,IAAA,cAAAjB,EAAA,MAAA,KAAA;AAAA,MACiC,GAAA;AAAA,QAAAO,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA,EAAAA;AAAAA;;UAImB,eAAA;AAAA;;;;;UAGF,kBAAA;AAAA,UAC3C,WAAA;AAAA;;UAGD,UAAAP,EAAA;AAAA,QACC,GAAAY,CAAA,GAAA,IAAA,CAAA;AAAA;;MAK5B,CAAA;AAAA;EAGP;AACF,CAAA;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("element-plus/es/components/card/style/css");require("element-plus/es/components/col/style/css");require("element-plus/es/components/row/style/css");require("element-plus/es/components/skeleton/style/css");require("element-plus/es/components/tree/style/css");const e=require("vue");require("../../hooks/useUser.cjs");require("../../hooks/usePermission.cjs");require("../../hooks/useMenu.cjs");require("../../hooks/useTab.cjs");require("../../hooks/useRouteKeepAlive.cjs");require("../../hooks/useSize.cjs");require("../../hooks/useLang.cjs");require("../../hooks/useTheme.cjs");require("../../hooks/useList.cjs");require("../../hooks/useHiddenTitle.cjs");require("../../hooks/useForm.cjs");require("../../hooks/useShow.cjs");require("../../hooks/useReferenceArrayField.cjs");const y=require("../../hooks/useTreeWithDetails.cjs");require("../../hooks/useFormGrid.cjs");const q=require("../../hooks/useReferenceArrayInput.cjs"),g=require("../../setup/index.cjs"),v=require("@vueuse/core"),i=require("element-plus"),h=require("vue-router"),m=e.defineComponent({name:"SkyTreeWithDetails",inheritAttrs:!1,props:{create:Object,edit:Object,optionChildren:{type:String,default:"children"},optionName:{type:String,default:"name"},defaultExpandAll:{type:Boolean,default:!0},nodeKey:{type:String,default:"id"},size:{type:Number,default:30}},setup(t,{attrs:s}){const l=h.useRoute();let n;const{state:d,isLoading:o,execute:u}=v.useAsyncState(async a=>(n=new AbortController,g.skyConfig.dataProvider?.getList?.(l.meta.resource,{pagination:{page:1,perPage:t.size},filter:a,signal:n.signal})),void 0,{immediate:!0}),f=a=>{r.value===a[t.nodeKey]?r.value=void 0:r.value=a[t.nodeKey]},r=e.ref(),c=e.ref(0);return y.useProvideTreeWithDetails({createSuccess:async()=>{await u(),c.value++},editSuccess:async()=>{await u()},deleteSuccess:async()=>{await u(),r.value=void 0}}),q.useProvideReferenceArrayInput({reference:l.meta.resource,getList:a=>u(0,a),listData:d,listLoading:o}),()=>e.createVNode("div",{class:"sky-tree-with-details"},[e.createVNode(i.ElRow,null,{default:()=>[e.createVNode(i.ElCol,{span:8},{default:()=>[e.createVNode(i.ElCard,null,{default:()=>[e.createVNode(i.ElSkeleton,{loading:o.value,animated:!0},{default:()=>[e.createVNode(i.ElTree,e.mergeProps({data:d.value?.data,props:{children:t.optionChildren,label:t.optionName},defaultExpandAll:t.defaultExpandAll,expandOnClickNode:!1,nodeKey:t.nodeKey,"onNode-click":f,highlightCurrent:!0,currentNodeKey:r.value},s),null)]})]})]}),e.createVNode(i.ElCol,{offset:1,span:15},{default:()=>[r.value?t.edit?e.h(t.edit,{key:r.value,dataId:r.value}):null:t.create?e.h(t.create,{key:c.value}):null]})]})])}});exports.SkyTreeWithDetails=m;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("element-plus/es/components/card/style/css");require("element-plus/es/components/col/style/css");require("element-plus/es/components/row/style/css");require("element-plus/es/components/skeleton/style/css");require("element-plus/es/components/tree/style/css");const e=require("vue");require("../../hooks/useUser.cjs");require("../../hooks/usePermission.cjs");require("../../hooks/useMenu.cjs");require("../../hooks/useTab.cjs");require("../../hooks/useRouteKeepAlive.cjs");require("../../hooks/useSize.cjs");require("../../hooks/useLang.cjs");require("../../hooks/useTheme.cjs");require("../../hooks/useList.cjs");require("../../hooks/useHiddenTitle.cjs");require("../../hooks/useForm.cjs");require("../../hooks/useShow.cjs");require("../../hooks/useReferenceArrayField.cjs");const q=require("../../hooks/useTreeWithDetails.cjs");require("../../hooks/useFormGrid.cjs");const v=require("../../hooks/useReferenceArrayInput.cjs"),g=require("../../setup/index.cjs"),h=require("@vueuse/core"),i=require("element-plus"),m=require("vue-router"),N=e.defineComponent({name:"SkyTreeWithDetails",inheritAttrs:!1,props:{create:Object,edit:Object,optionChildren:{type:String,default:"children"},optionName:{type:String,default:"name"},nodeKey:{type:String,default:"id"},size:{type:Number,default:30}},setup(t,{attrs:s}){const l=m.useRoute();let n;const{state:d,isLoading:o,execute:u}=h.useAsyncState(async a=>(n=new AbortController,g.skyConfig.dataProvider?.getList?.(l.meta.resource,{pagination:{page:1,perPage:t.size},filter:a,signal:n.signal})),void 0,{immediate:!0}),f=a=>{r.value===a[t.nodeKey]?r.value=void 0:r.value=a[t.nodeKey]},r=e.ref(),c=e.ref(0);q.useProvideTreeWithDetails({createSuccess:async()=>{await u(),c.value++},editSuccess:async()=>{await u()},deleteSuccess:async()=>{await u(),r.value=void 0}}),v.useProvideReferenceArrayInput({reference:l.meta.resource,getList:a=>u(0,a),listData:d,listLoading:o});const y=e.computed(()=>r.value?[r.value]:[]);return()=>e.createVNode("div",{class:"sky-tree-with-details"},[e.createVNode(i.ElRow,null,{default:()=>[e.createVNode(i.ElCol,{span:8},{default:()=>[e.createVNode(i.ElCard,null,{default:()=>[e.createVNode(i.ElSkeleton,{loading:o.value,animated:!0},{default:()=>[e.createVNode(i.ElTree,e.mergeProps({data:d.value?.data,props:{children:t.optionChildren,label:t.optionName},defaultExpandAll:!1,accordion:!0,expandOnClickNode:!1,nodeKey:t.nodeKey,"onNode-click":f,highlightCurrent:!0,currentNodeKey:r.value,defaultCheckedKeys:y.value},s),null)]})]})]}),e.createVNode(i.ElCol,{offset:1,span:15},{default:()=>[r.value?t.edit?e.h(t.edit,{key:r.value,dataId:r.value}):null:t.create?e.h(t.create,{key:c.value}):null]})]})])}});exports.SkyTreeWithDetails=N;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../src/components/tree-with-details/index.tsx"],"sourcesContent":["import { useProvideReferenceArrayInput, useProvideTreeWithDetails } from '@/hooks'\nimport type { GetListResult, Identifier } from '@/provides'\nimport { skyConfig, type SkyComponent } from '@/setup'\nimport { useAsyncState } from '@vueuse/core'\nimport { ElCard, ElCol, ElRow, ElSkeleton, ElTree } from 'element-plus'\nimport { defineComponent, h, ref } from 'vue'\nimport { useRoute } from 'vue-router'\n\nexport interface SkyTreeWithDetailsProps {\n create?: SkyComponent\n edit?: SkyComponent\n optionChildren?: string\n optionName?: string\n defaultExpandAll?: boolean\n nodeKey?: string\n size?: number\n}\n\nexport const SkyTreeWithDetails = defineComponent<SkyTreeWithDetailsProps>({\n name: 'SkyTreeWithDetails',\n inheritAttrs: false,\n props: {\n create: Object,\n edit: Object,\n optionChildren: {\n type: String,\n default: 'children',\n },\n optionName: {\n type: String,\n default: 'name',\n },\n defaultExpandAll: {\n type: Boolean,\n default: true,\n },\n nodeKey: {\n type: String,\n default: 'id',\n },\n size: {\n type: Number,\n default: 30,\n },\n },\n setup(props, { attrs }) {\n const route = useRoute()\n\n let controller: AbortController | undefined\n const { state, isLoading, execute } = useAsyncState<\n GetListResult | undefined,\n [filter?: Record<string, unknown>]\n >(\n async (filter) => {\n controller = new AbortController()\n return skyConfig.dataProvider?.getList?.(route.meta.resource as string, {\n pagination: { page: 1, perPage: props.size! },\n filter,\n signal: controller.signal,\n })\n },\n undefined,\n {\n immediate: true,\n },\n )\n\n const onNodeClick = (node: Record<string, unknown>) => {\n if (editId.value === node[props.nodeKey!]) {\n // 再次点击选中的节点,退出编辑\n editId.value = undefined\n } else {\n editId.value = node[props.nodeKey!] as Identifier\n }\n }\n\n const editId = ref<Identifier>()\n const createNum = ref(0)\n\n useProvideTreeWithDetails({\n createSuccess: async () => {\n await execute()\n createNum.value++\n // if (result.data?.[props.nodeKey!]) {\n // editId.value = result.data[props.nodeKey!] as Identifier\n // }\n },\n editSuccess: async () => {\n await execute()\n },\n deleteSuccess: async () => {\n await execute()\n editId.value = undefined\n },\n })\n\n // 自动注入一次关联数据\n useProvideReferenceArrayInput({\n reference: route.meta.resource as string,\n getList: (filter?: Record<string, unknown>) => execute(0, filter),\n listData: state,\n listLoading: isLoading,\n })\n\n return () => (\n <div class=\"sky-tree-with-details\">\n <ElRow>\n <ElCol span={8}>\n <ElCard>\n <ElSkeleton loading={isLoading.value} animated>\n <ElTree\n data={state.value?.data}\n props={{ children: props.optionChildren, label: props.optionName }}\n defaultExpandAll={props.defaultExpandAll}\n expandOnClickNode={false}\n nodeKey={props.nodeKey}\n onNode-click={onNodeClick}\n highlightCurrent\n currentNodeKey={editId.value}\n {...attrs}\n ></ElTree>\n </ElSkeleton>\n </ElCard>\n </ElCol>\n <ElCol offset={1} span={15}>\n {editId.value\n ? props.edit\n ? h(props.edit, { key: editId.value, dataId: editId.value })\n : null\n : props.create\n ? h(props.create, { key: createNum.value })\n : null}\n </ElCol>\n </ElRow>\n </div>\n )\n },\n})\n"],"names":["SkyTreeWithDetails","defineComponent","name","inheritAttrs","props","create","edit","optionChildren","type","default","optionName","defaultExpandAll","nodeKey","size","attrs","route","useRoute","controller","execute","useAsyncState","filter","pagination","page","immediate","editId","ref","createNum","useProvideTreeWithDetails","useProvideReferenceArrayInput","reference","listData","listLoading","_createVNode","state","onNodeClick","h"],"mappings":"qmCAkBAA,EAAAC,EAAAA,gBAAA,CACEC,KAAAA,qBACAC,aAAAA,GACAC,MAAAA,CACEC,OAAAA,OACAC,KAAAA,OACAC,eAAAA,CACEC,KAAAA,OACAC,QAAAA,YAEFC,WAAAA,CACEF,KAAAA,OACAC,QAAAA,QAEFE,iBAAAA,CACEH,KAAAA,QACAC,QAAAA,IAEFG,QAAAA,CACEJ,KAAAA,OACAC,QAAAA,MAEFI,KAAAA,CACEL,KAAAA,OACAC,QAAAA,EACF,YAEaK,MAAAA,CAAM,EAAA,CACnB,MAAAC,EAAAC,EAAAA,SAAA,EAEA,IAAAC,4BAC0BC,QAAAA,CAAQ,EAAAC,EAAAA,cAAA,MAAAC,IAK9BH,EAAAA,IAAAA,qEAEEI,WAAAA,CAAcC,KAAAA,0CAGhB,CAAA,WAIAC,UAAAA,EACF,CAAA,oEAYFC,EAAAC,EAAAA,IAAA,EACAC,EAAAD,EAAAA,IAAA,CAAA,EAEAE,OAAAA,4BAAAA,+HAcE,CACF,CAAA,EAGAC,gCAAAA,CACEC,UAAAA,EAAAA,KAAAA,2BAEAC,SAAAA,EACAC,YAAAA,CACF,CAAA,EAEA,IAAAC,EAAAA,YAAA,MAAA,CAAO,MAAA,sDAAAvB,QAAAA,IAAAA,CAAAA,EAAAA,YAAAA,QAAAA,OAGa,EAAA,CAAAA,QAAAA,IAAAA,CAAAA,cAAAA,EAAAA,OAAAA,KAAAA,CAAAA,QAAAA,IAAAA,CAAAA,EAAAA,YAAAA,aAAAA,iBAE0B,SAAA,EAAA,EAAA,CAAAA,QAAAA,IAAAA,CAAAA,cAAAA,EAAAA,OAAAA,EAAAA,WAAAA,CAAA,KAAAwB,EAAA,OAAA,8FAIQ,kBAAA,qBAElB,eAAAC,EACG,iBAAA,GAAA,eAAAV,EAAA,KAEG,EAAAV,CAAA,EAAA,IAAA,CAAA,CACnB,CAAA,CAAA,CAAA,CAAA,CAAA,2BAAA,OAAA,SAKS,EAAA,CAAAL,QAAAA,IAAAA,CAAAA,EAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAAA,EAAAA,KAAAA,2BAGsC,CAAA,EAAA,KAAAL,EAAA,OAAA+B,EAAAA,EAAA/B,EAAA,OAAA,oBAIpD,CAAA,CAAA,KAKpB,CACF,CAAA"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/tree-with-details/index.tsx"],"sourcesContent":["import { useProvideReferenceArrayInput, useProvideTreeWithDetails } from '@/hooks'\nimport type { GetListResult, Identifier } from '@/provides'\nimport { skyConfig, type SkyComponent } from '@/setup'\nimport { useAsyncState } from '@vueuse/core'\nimport { ElCard, ElCol, ElRow, ElSkeleton, ElTree } from 'element-plus'\nimport { computed, defineComponent, h, ref } from 'vue'\nimport { useRoute } from 'vue-router'\n\nexport interface SkyTreeWithDetailsProps {\n create?: SkyComponent\n edit?: SkyComponent\n optionChildren?: string\n optionName?: string\n nodeKey?: string\n size?: number\n}\n\nexport const SkyTreeWithDetails = defineComponent<SkyTreeWithDetailsProps>({\n name: 'SkyTreeWithDetails',\n inheritAttrs: false,\n props: {\n create: Object,\n edit: Object,\n optionChildren: {\n type: String,\n default: 'children',\n },\n optionName: {\n type: String,\n default: 'name',\n },\n nodeKey: {\n type: String,\n default: 'id',\n },\n size: {\n type: Number,\n default: 30,\n },\n },\n setup(props, { attrs }) {\n const route = useRoute()\n\n let controller: AbortController | undefined\n const { state, isLoading, execute } = useAsyncState<\n GetListResult | undefined,\n [filter?: Record<string, unknown>]\n >(\n async (filter) => {\n controller = new AbortController()\n return skyConfig.dataProvider?.getList?.(route.meta.resource as string, {\n pagination: { page: 1, perPage: props.size! },\n filter,\n signal: controller.signal,\n })\n },\n undefined,\n {\n immediate: true,\n },\n )\n\n const onNodeClick = (node: Record<string, unknown>) => {\n if (editId.value === node[props.nodeKey!]) {\n // 再次点击选中的节点,退出编辑\n editId.value = undefined\n } else {\n editId.value = node[props.nodeKey!] as Identifier\n }\n }\n\n const editId = ref<Identifier>()\n const createNum = ref(0)\n\n useProvideTreeWithDetails({\n createSuccess: async () => {\n await execute()\n createNum.value++\n // if (result.data?.[props.nodeKey!]) {\n // editId.value = result.data[props.nodeKey!] as Identifier\n // }\n },\n editSuccess: async () => {\n await execute()\n },\n deleteSuccess: async () => {\n await execute()\n editId.value = undefined\n },\n })\n\n // 自动注入一次关联数据\n useProvideReferenceArrayInput({\n reference: route.meta.resource as string,\n getList: (filter?: Record<string, unknown>) => execute(0, filter),\n listData: state,\n listLoading: isLoading,\n })\n\n const defaultCheckedKeys = computed(() => (editId.value ? [editId.value] : []))\n\n return () => (\n <div class=\"sky-tree-with-details\">\n <ElRow>\n <ElCol span={8}>\n <ElCard>\n <ElSkeleton loading={isLoading.value} animated>\n <ElTree\n data={state.value?.data}\n props={{ children: props.optionChildren, label: props.optionName }}\n defaultExpandAll={false}\n accordion={true}\n expandOnClickNode={false}\n nodeKey={props.nodeKey}\n onNode-click={onNodeClick}\n highlightCurrent\n currentNodeKey={editId.value}\n defaultCheckedKeys={defaultCheckedKeys.value}\n {...attrs}\n ></ElTree>\n </ElSkeleton>\n </ElCard>\n </ElCol>\n <ElCol offset={1} span={15}>\n {editId.value\n ? props.edit\n ? h(props.edit, { key: editId.value, dataId: editId.value })\n : null\n : props.create\n ? h(props.create, { key: createNum.value })\n : null}\n </ElCol>\n </ElRow>\n </div>\n )\n },\n})\n"],"names":["SkyTreeWithDetails","defineComponent","name","inheritAttrs","props","create","edit","optionChildren","type","default","optionName","nodeKey","size","attrs","route","useRoute","controller","execute","useAsyncState","filter","pagination","page","immediate","editId","ref","createNum","useProvideTreeWithDetails","useProvideReferenceArrayInput","reference","listData","listLoading","defaultCheckedKeys","computed","_createVNode","state","onNodeClick","h"],"mappings":"qmCAiBAA,EAAAC,EAAAA,gBAAA,CACEC,KAAAA,qBACAC,aAAAA,GACAC,MAAAA,CACEC,OAAAA,OACAC,KAAAA,OACAC,eAAAA,CACEC,KAAAA,OACAC,QAAAA,YAEFC,WAAAA,CACEF,KAAAA,OACAC,QAAAA,QAEFE,QAAAA,CACEH,KAAAA,OACAC,QAAAA,MAEFG,KAAAA,CACEJ,KAAAA,OACAC,QAAAA,EACF,YAEaI,MAAAA,CAAM,EAAA,CACnB,MAAAC,EAAAC,EAAAA,SAAA,EAEA,IAAAC,4BAC0BC,QAAAA,CAAQ,EAAAC,EAAAA,cAAA,MAAAC,IAK9BH,EAAAA,IAAAA,qEAEEI,WAAAA,CAAcC,KAAAA,0CAGhB,CAAA,WAIAC,UAAAA,EACF,CAAA,oEAYFC,EAAAC,EAAAA,IAAA,EACAC,EAAAD,EAAAA,IAAA,CAAA,EAEAE,4BAAAA,+HAcE,CACF,CAAA,EAGAC,gCAAAA,CACEC,UAAAA,EAAAA,KAAAA,2BAEAC,SAAAA,EACAC,YAAAA,CACF,CAAA,EAEA,MAAAC,EAAAC,EAAAA,SAAA,IAAAT,EAAA,MAAA,CAAAA,EAAA,KAAA,EAAA,EAAA,EAEA,MAAA,IAAAU,EAAAA,YAAA,MAAA,CAAO,MAAA,sDAAAxB,QAAAA,IAAAA,CAAAA,EAAAA,YAAAA,QAAAA,OAGa,EAAA,CAAAA,QAAAA,IAAAA,CAAAA,cAAAA,EAAAA,OAAAA,KAAAA,CAAAA,QAAAA,IAAAA,CAAAA,EAAAA,YAAAA,aAAAA,iBAE0B,SAAA,EAAA,EAAA,CAAAA,QAAAA,IAAAA,CAAAA,cAAAA,EAAAA,OAAAA,EAAAA,WAAAA,CAAA,KAAAyB,EAAA,OAAA,0DAGkC,iBAAA,GAC3C,UAAA,GACR,kBAAA,qBAEO,eAAAC,EACG,iBAAA,0BAEG,mBAAAJ,EAAA,KACgB,EAAAlB,CAAA,EAAA,IAAA,CAAA,CACnC,CAAA,CAAA,CAAA,CAAA,CAAA,2BAAA,OAAA,SAKS,EAAA,CAAAJ,QAAAA,IAAAA,CAAAA,EAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAAA,EAAAA,KAAAA,2BAGsC,CAAA,EAAA,KAAAL,EAAA,OAAAgC,EAAAA,EAAAhC,EAAA,OAAA,oBAIpD,CAAA,CAAA,KAKpB,CACF,CAAA"}
@@ -4,7 +4,6 @@ export interface SkyTreeWithDetailsProps {
4
4
  edit?: SkyComponent;
5
5
  optionChildren?: string;
6
6
  optionName?: string;
7
- defaultExpandAll?: boolean;
8
7
  nodeKey?: string;
9
8
  size?: number;
10
9
  }
@@ -3,7 +3,7 @@ import "element-plus/es/components/col/style/css";
3
3
  import "element-plus/es/components/row/style/css";
4
4
  import "element-plus/es/components/skeleton/style/css";
5
5
  import "element-plus/es/components/tree/style/css";
6
- import { defineComponent as y, ref as m, createVNode as a, mergeProps as g, h as s } from "vue";
6
+ import { defineComponent as v, ref as m, computed as g, createVNode as a, mergeProps as h, h as s } from "vue";
7
7
  import "../../hooks/useUser.mjs";
8
8
  import "../../hooks/usePermission.mjs";
9
9
  import "../../hooks/useMenu.mjs";
@@ -17,14 +17,14 @@ import "../../hooks/useHiddenTitle.mjs";
17
17
  import "../../hooks/useForm.mjs";
18
18
  import "../../hooks/useShow.mjs";
19
19
  import "../../hooks/useReferenceArrayField.mjs";
20
- import { useProvideTreeWithDetails as v } from "../../hooks/useTreeWithDetails.mjs";
20
+ import { useProvideTreeWithDetails as k } from "../../hooks/useTreeWithDetails.mjs";
21
21
  import "../../hooks/useFormGrid.mjs";
22
- import { useProvideReferenceArrayInput as h } from "../../hooks/useReferenceArrayInput.mjs";
23
- import { skyConfig as k } from "../../setup/index.mjs";
24
- import { useAsyncState as C } from "@vueuse/core";
25
- import { ElRow as S, ElCol as c, ElCard as N, ElSkeleton as E, ElTree as A } from "element-plus";
26
- import { useRoute as w } from "vue-router";
27
- const _ = /* @__PURE__ */ y({
22
+ import { useProvideReferenceArrayInput as C } from "../../hooks/useReferenceArrayInput.mjs";
23
+ import { skyConfig as S } from "../../setup/index.mjs";
24
+ import { useAsyncState as N } from "@vueuse/core";
25
+ import { ElRow as K, ElCol as c, ElCard as w, ElSkeleton as E, ElTree as b } from "element-plus";
26
+ import { useRoute as A } from "vue-router";
27
+ const ee = /* @__PURE__ */ v({
28
28
  name: "SkyTreeWithDetails",
29
29
  inheritAttrs: !1,
30
30
  props: {
@@ -38,10 +38,6 @@ const _ = /* @__PURE__ */ y({
38
38
  type: String,
39
39
  default: "name"
40
40
  },
41
- defaultExpandAll: {
42
- type: Boolean,
43
- default: !0
44
- },
45
41
  nodeKey: {
46
42
  type: String,
47
43
  default: "id"
@@ -54,25 +50,25 @@ const _ = /* @__PURE__ */ y({
54
50
  setup(e, {
55
51
  attrs: f
56
52
  }) {
57
- const l = w();
58
- let o;
53
+ const o = A();
54
+ let l;
59
55
  const {
60
56
  state: n,
61
57
  isLoading: d,
62
58
  execute: r
63
- } = C(async (i) => (o = new AbortController(), k.dataProvider?.getList?.(l.meta.resource, {
59
+ } = N(async (i) => (l = new AbortController(), S.dataProvider?.getList?.(o.meta.resource, {
64
60
  pagination: {
65
61
  page: 1,
66
62
  perPage: e.size
67
63
  },
68
64
  filter: i,
69
- signal: o.signal
65
+ signal: l.signal
70
66
  })), void 0, {
71
67
  immediate: !0
72
68
  }), p = (i) => {
73
69
  t.value === i[e.nodeKey] ? t.value = void 0 : t.value = i[e.nodeKey];
74
70
  }, t = m(), u = m(0);
75
- return v({
71
+ k({
76
72
  createSuccess: async () => {
77
73
  await r(), u.value++;
78
74
  },
@@ -82,34 +78,38 @@ const _ = /* @__PURE__ */ y({
82
78
  deleteSuccess: async () => {
83
79
  await r(), t.value = void 0;
84
80
  }
85
- }), h({
86
- reference: l.meta.resource,
81
+ }), C({
82
+ reference: o.meta.resource,
87
83
  getList: (i) => r(0, i),
88
84
  listData: n,
89
85
  listLoading: d
90
- }), () => a("div", {
86
+ });
87
+ const y = g(() => t.value ? [t.value] : []);
88
+ return () => a("div", {
91
89
  class: "sky-tree-with-details"
92
- }, [a(S, null, {
90
+ }, [a(K, null, {
93
91
  default: () => [a(c, {
94
92
  span: 8
95
93
  }, {
96
- default: () => [a(N, null, {
94
+ default: () => [a(w, null, {
97
95
  default: () => [a(E, {
98
96
  loading: d.value,
99
97
  animated: !0
100
98
  }, {
101
- default: () => [a(A, g({
99
+ default: () => [a(b, h({
102
100
  data: n.value?.data,
103
101
  props: {
104
102
  children: e.optionChildren,
105
103
  label: e.optionName
106
104
  },
107
- defaultExpandAll: e.defaultExpandAll,
105
+ defaultExpandAll: !1,
106
+ accordion: !0,
108
107
  expandOnClickNode: !1,
109
108
  nodeKey: e.nodeKey,
110
109
  "onNode-click": p,
111
110
  highlightCurrent: !0,
112
- currentNodeKey: t.value
111
+ currentNodeKey: t.value,
112
+ defaultCheckedKeys: y.value
113
113
  }, f), null)]
114
114
  })]
115
115
  })]
@@ -128,6 +128,6 @@ const _ = /* @__PURE__ */ y({
128
128
  }
129
129
  });
130
130
  export {
131
- _ as SkyTreeWithDetails
131
+ ee as SkyTreeWithDetails
132
132
  };
133
133
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../src/components/tree-with-details/index.tsx"],"sourcesContent":["import { useProvideReferenceArrayInput, useProvideTreeWithDetails } from '@/hooks'\nimport type { GetListResult, Identifier } from '@/provides'\nimport { skyConfig, type SkyComponent } from '@/setup'\nimport { useAsyncState } from '@vueuse/core'\nimport { ElCard, ElCol, ElRow, ElSkeleton, ElTree } from 'element-plus'\nimport { defineComponent, h, ref } from 'vue'\nimport { useRoute } from 'vue-router'\n\nexport interface SkyTreeWithDetailsProps {\n create?: SkyComponent\n edit?: SkyComponent\n optionChildren?: string\n optionName?: string\n defaultExpandAll?: boolean\n nodeKey?: string\n size?: number\n}\n\nexport const SkyTreeWithDetails = defineComponent<SkyTreeWithDetailsProps>({\n name: 'SkyTreeWithDetails',\n inheritAttrs: false,\n props: {\n create: Object,\n edit: Object,\n optionChildren: {\n type: String,\n default: 'children',\n },\n optionName: {\n type: String,\n default: 'name',\n },\n defaultExpandAll: {\n type: Boolean,\n default: true,\n },\n nodeKey: {\n type: String,\n default: 'id',\n },\n size: {\n type: Number,\n default: 30,\n },\n },\n setup(props, { attrs }) {\n const route = useRoute()\n\n let controller: AbortController | undefined\n const { state, isLoading, execute } = useAsyncState<\n GetListResult | undefined,\n [filter?: Record<string, unknown>]\n >(\n async (filter) => {\n controller = new AbortController()\n return skyConfig.dataProvider?.getList?.(route.meta.resource as string, {\n pagination: { page: 1, perPage: props.size! },\n filter,\n signal: controller.signal,\n })\n },\n undefined,\n {\n immediate: true,\n },\n )\n\n const onNodeClick = (node: Record<string, unknown>) => {\n if (editId.value === node[props.nodeKey!]) {\n // 再次点击选中的节点,退出编辑\n editId.value = undefined\n } else {\n editId.value = node[props.nodeKey!] as Identifier\n }\n }\n\n const editId = ref<Identifier>()\n const createNum = ref(0)\n\n useProvideTreeWithDetails({\n createSuccess: async () => {\n await execute()\n createNum.value++\n // if (result.data?.[props.nodeKey!]) {\n // editId.value = result.data[props.nodeKey!] as Identifier\n // }\n },\n editSuccess: async () => {\n await execute()\n },\n deleteSuccess: async () => {\n await execute()\n editId.value = undefined\n },\n })\n\n // 自动注入一次关联数据\n useProvideReferenceArrayInput({\n reference: route.meta.resource as string,\n getList: (filter?: Record<string, unknown>) => execute(0, filter),\n listData: state,\n listLoading: isLoading,\n })\n\n return () => (\n <div class=\"sky-tree-with-details\">\n <ElRow>\n <ElCol span={8}>\n <ElCard>\n <ElSkeleton loading={isLoading.value} animated>\n <ElTree\n data={state.value?.data}\n props={{ children: props.optionChildren, label: props.optionName }}\n defaultExpandAll={props.defaultExpandAll}\n expandOnClickNode={false}\n nodeKey={props.nodeKey}\n onNode-click={onNodeClick}\n highlightCurrent\n currentNodeKey={editId.value}\n {...attrs}\n ></ElTree>\n </ElSkeleton>\n </ElCard>\n </ElCol>\n <ElCol offset={1} span={15}>\n {editId.value\n ? props.edit\n ? h(props.edit, { key: editId.value, dataId: editId.value })\n : null\n : props.create\n ? h(props.create, { key: createNum.value })\n : null}\n </ElCol>\n </ElRow>\n </div>\n )\n },\n})\n"],"names":["SkyTreeWithDetails","defineComponent","name","inheritAttrs","props","create","edit","optionChildren","type","default","optionName","defaultExpandAll","nodeKey","size","attrs","route","useRoute","controller","execute","useAsyncState","filter","pagination","page","immediate","editId","ref","createNum","useProvideTreeWithDetails","useProvideReferenceArrayInput","reference","listData","listLoading","_createVNode","state","onNodeClick","h"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,MAAAA,IAAA,gBAAAC,EAAA;AAAA,EACEC,MAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,OAAAA;AAAAA,IACEC,QAAAA;AAAAA,IACAC,MAAAA;AAAAA,IACAC,gBAAAA;AAAAA,MACEC,MAAAA;AAAAA,MACAC,SAAAA;AAAAA;IAEFC,YAAAA;AAAAA,MACEF,MAAAA;AAAAA,MACAC,SAAAA;AAAAA;IAEFE,kBAAAA;AAAAA,MACEH,MAAAA;AAAAA,MACAC,SAAAA;AAAAA;IAEFG,SAAAA;AAAAA,MACEJ,MAAAA;AAAAA,MACAC,SAAAA;AAAAA;IAEFI,MAAAA;AAAAA,MACEL,MAAAA;AAAAA,MACAC,SAAAA;AAAAA,IACF;AAAA;;IAEaK,OAAAA;AAAAA,EAAM,GAAA;AACnB,UAAAC,IAAAC,EAAA;AAEA,QAAAC;;;;MAC0BC,SAAAA;AAAAA,IAAQ,IAAAC,EAAA,OAAAC,OAK9BH,IAAAA,IAAAA,gBAAAA;MAEEI,YAAAA;AAAAA,QAAcC,MAAAA;AAAAA;;;;IAGhB,CAAA;MAIAC,WAAAA;AAAAA,IACF,CAAA;;OAYFC,IAAAC,EAAA,GACAC,IAAAD,EAAA,CAAA;AAEAE,WAAAA,EAAAA;AAAAA;;;;;;;;MAcE;AAAA,IACF,CAAA,GAGAC,EAAAA;AAAAA,MACEC,WAAAA,EAAAA,KAAAA;AAAAA;MAEAC,UAAAA;AAAAA,MACAC,aAAAA;AAAAA,IACF,CAAA,GAEA,MAAAC,EAAA,OAAA;AAAA,MAAO,OAAA;AAAA;MAAAvB,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA;AAAAA;MAGa,GAAA;AAAA,QAAAA,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA,MAAAA;AAAAA,UAAAA,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA;AAAAA;YAE0B,UAAA;AAAA,UAAA,GAAA;AAAA,YAAAA,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA,EAAAA;AAAAA,cAAA,MAAAwB,EAAA,OAAA;AAAA;;;;;cAIQ,mBAAA;AAAA;cAElB,gBAAAC;AAAA,cACG,kBAAA;AAAA,cAAA,gBAAAV,EAAA;AAAA,YAEG,GAAAV,CAAA,GAAA,IAAA,CAAA;AAAA,UACnB,CAAA,CAAA;AAAA,QAAA,CAAA,CAAA;AAAA;QAAA,QAAA;AAAA;MAKS,GAAA;AAAA,QAAAL,SAAAA,MAAAA,CAAAA,EAAAA,QAAAA,EAAAA,OAAAA,EAAAA,EAAAA,MAAAA;AAAAA;;QAGsC,CAAA,IAAA,OAAAL,EAAA,SAAA+B,EAAA/B,EAAA,QAAA;AAAA;;MAIpD,CAAA,CAAA;AAAA;EAKpB;AACF,CAAA;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/components/tree-with-details/index.tsx"],"sourcesContent":["import { useProvideReferenceArrayInput, useProvideTreeWithDetails } from '@/hooks'\nimport type { GetListResult, Identifier } from '@/provides'\nimport { skyConfig, type SkyComponent } from '@/setup'\nimport { useAsyncState } from '@vueuse/core'\nimport { ElCard, ElCol, ElRow, ElSkeleton, ElTree } from 'element-plus'\nimport { computed, defineComponent, h, ref } from 'vue'\nimport { useRoute } from 'vue-router'\n\nexport interface SkyTreeWithDetailsProps {\n create?: SkyComponent\n edit?: SkyComponent\n optionChildren?: string\n optionName?: string\n nodeKey?: string\n size?: number\n}\n\nexport const SkyTreeWithDetails = defineComponent<SkyTreeWithDetailsProps>({\n name: 'SkyTreeWithDetails',\n inheritAttrs: false,\n props: {\n create: Object,\n edit: Object,\n optionChildren: {\n type: String,\n default: 'children',\n },\n optionName: {\n type: String,\n default: 'name',\n },\n nodeKey: {\n type: String,\n default: 'id',\n },\n size: {\n type: Number,\n default: 30,\n },\n },\n setup(props, { attrs }) {\n const route = useRoute()\n\n let controller: AbortController | undefined\n const { state, isLoading, execute } = useAsyncState<\n GetListResult | undefined,\n [filter?: Record<string, unknown>]\n >(\n async (filter) => {\n controller = new AbortController()\n return skyConfig.dataProvider?.getList?.(route.meta.resource as string, {\n pagination: { page: 1, perPage: props.size! },\n filter,\n signal: controller.signal,\n })\n },\n undefined,\n {\n immediate: true,\n },\n )\n\n const onNodeClick = (node: Record<string, unknown>) => {\n if (editId.value === node[props.nodeKey!]) {\n // 再次点击选中的节点,退出编辑\n editId.value = undefined\n } else {\n editId.value = node[props.nodeKey!] as Identifier\n }\n }\n\n const editId = ref<Identifier>()\n const createNum = ref(0)\n\n useProvideTreeWithDetails({\n createSuccess: async () => {\n await execute()\n createNum.value++\n // if (result.data?.[props.nodeKey!]) {\n // editId.value = result.data[props.nodeKey!] as Identifier\n // }\n },\n editSuccess: async () => {\n await execute()\n },\n deleteSuccess: async () => {\n await execute()\n editId.value = undefined\n },\n })\n\n // 自动注入一次关联数据\n useProvideReferenceArrayInput({\n reference: route.meta.resource as string,\n getList: (filter?: Record<string, unknown>) => execute(0, filter),\n listData: state,\n listLoading: isLoading,\n })\n\n const defaultCheckedKeys = computed(() => (editId.value ? [editId.value] : []))\n\n return () => (\n <div class=\"sky-tree-with-details\">\n <ElRow>\n <ElCol span={8}>\n <ElCard>\n <ElSkeleton loading={isLoading.value} animated>\n <ElTree\n data={state.value?.data}\n props={{ children: props.optionChildren, label: props.optionName }}\n defaultExpandAll={false}\n accordion={true}\n expandOnClickNode={false}\n nodeKey={props.nodeKey}\n onNode-click={onNodeClick}\n highlightCurrent\n currentNodeKey={editId.value}\n defaultCheckedKeys={defaultCheckedKeys.value}\n {...attrs}\n ></ElTree>\n </ElSkeleton>\n </ElCard>\n </ElCol>\n <ElCol offset={1} span={15}>\n {editId.value\n ? props.edit\n ? h(props.edit, { key: editId.value, dataId: editId.value })\n : null\n : props.create\n ? h(props.create, { key: createNum.value })\n : null}\n </ElCol>\n </ElRow>\n </div>\n )\n },\n})\n"],"names":["SkyTreeWithDetails","defineComponent","name","inheritAttrs","props","create","edit","optionChildren","type","default","optionName","nodeKey","size","attrs","route","useRoute","controller","execute","useAsyncState","filter","pagination","page","immediate","editId","ref","createNum","useProvideTreeWithDetails","useProvideReferenceArrayInput","reference","listData","listLoading","defaultCheckedKeys","computed","_createVNode","state","onNodeClick","h"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,MAAAA,KAAA,gBAAAC,EAAA;AAAA,EACEC,MAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,OAAAA;AAAAA,IACEC,QAAAA;AAAAA,IACAC,MAAAA;AAAAA,IACAC,gBAAAA;AAAAA,MACEC,MAAAA;AAAAA,MACAC,SAAAA;AAAAA;IAEFC,YAAAA;AAAAA,MACEF,MAAAA;AAAAA,MACAC,SAAAA;AAAAA;IAEFE,SAAAA;AAAAA,MACEH,MAAAA;AAAAA,MACAC,SAAAA;AAAAA;IAEFG,MAAAA;AAAAA,MACEJ,MAAAA;AAAAA,MACAC,SAAAA;AAAAA,IACF;AAAA;;IAEaI,OAAAA;AAAAA,EAAM,GAAA;AACnB,UAAAC,IAAAC,EAAA;AAEA,QAAAC;;;;MAC0BC,SAAAA;AAAAA,IAAQ,IAAAC,EAAA,OAAAC,OAK9BH,IAAAA,IAAAA,gBAAAA;MAEEI,YAAAA;AAAAA,QAAcC,MAAAA;AAAAA;;;;IAGhB,CAAA;MAIAC,WAAAA;AAAAA,IACF,CAAA;;OAYFC,IAAAC,EAAA,GACAC,IAAAD,EAAA,CAAA;AAEAE,IAAAA,EAAAA;AAAAA;;;;;;;;MAcE;AAAA,IACF,CAAA,GAGAC,EAAAA;AAAAA,MACEC,WAAAA,EAAAA,KAAAA;AAAAA;MAEAC,UAAAA;AAAAA,MACAC,aAAAA;AAAAA,IACF,CAAA;AAEA,UAAAC,IAAAC,EAAA,MAAAT,EAAA,QAAA,CAAAA,EAAA,KAAA,IAAA,EAAA;AAEA,WAAA,MAAAU,EAAA,OAAA;AAAA,MAAO,OAAA;AAAA;MAAAxB,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA;AAAAA;MAGa,GAAA;AAAA,QAAAA,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA,MAAAA;AAAAA,UAAAA,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA;AAAAA;YAE0B,UAAA;AAAA,UAAA,GAAA;AAAA,YAAAA,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA,EAAAA;AAAAA,cAAA,MAAAyB,EAAA,OAAA;AAAA;;;;cAGkC,kBAAA;AAAA,cAC3C,WAAA;AAAA,cACR,mBAAA;AAAA;cAEO,gBAAAC;AAAA,cACG,kBAAA;AAAA;cAEG,oBAAAJ,EAAA;AAAA,YACgB,GAAAlB,CAAA,GAAA,IAAA,CAAA;AAAA,UACnC,CAAA,CAAA;AAAA,QAAA,CAAA,CAAA;AAAA;QAAA,QAAA;AAAA;MAKS,GAAA;AAAA,QAAAJ,SAAAA,MAAAA,CAAAA,EAAAA,QAAAA,EAAAA,OAAAA,EAAAA,EAAAA,MAAAA;AAAAA;;QAGsC,CAAA,IAAA,OAAAL,EAAA,SAAAgC,EAAAhC,EAAA,QAAA;AAAA;;MAIpD,CAAA,CAAA;AAAA;EAKpB;AACF,CAAA;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skyline-vue-admin",
3
- "version": "0.0.8",
3
+ "version": "0.0.10",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },