skyline-vue-admin 0.0.16 → 0.0.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/avatar-input/index.cjs +1 -1
- package/dist/components/avatar-input/index.cjs.map +1 -1
- package/dist/components/avatar-input/index.d.ts +0 -4
- package/dist/components/avatar-input/index.mjs +72 -104
- package/dist/components/avatar-input/index.mjs.map +1 -1
- package/dist/components/can-access/index.cjs +1 -1
- package/dist/components/can-access/index.mjs +1 -1
- package/dist/components/create/index.cjs +1 -1
- package/dist/components/create/index.mjs +4 -4
- package/dist/components/data-table/index.cjs +1 -1
- package/dist/components/data-table/index.mjs +4 -4
- package/dist/components/data-table-col/index.cjs +1 -1
- package/dist/components/data-table-col/index.cjs.map +1 -1
- package/dist/components/data-table-col/index.mjs +5 -4
- package/dist/components/data-table-col/index.mjs.map +1 -1
- package/dist/components/edit/index.cjs +1 -1
- package/dist/components/edit/index.mjs +1 -1
- package/dist/components/file-multiple-input/index.cjs +1 -1
- package/dist/components/file-multiple-input/index.cjs.map +1 -1
- package/dist/components/file-multiple-input/index.d.ts +2 -8
- package/dist/components/file-multiple-input/index.mjs +38 -146
- package/dist/components/file-multiple-input/index.mjs.map +1 -1
- package/dist/components/file-multiple-model-input/index.cjs +2 -0
- package/dist/components/file-multiple-model-input/index.cjs.map +1 -0
- package/dist/components/file-multiple-model-input/index.d.ts +72 -0
- package/dist/components/file-multiple-model-input/index.mjs +154 -0
- package/dist/components/file-multiple-model-input/index.mjs.map +1 -0
- package/dist/components/filter/index.cjs +1 -1
- package/dist/components/filter/index.mjs +6 -6
- package/dist/components/image-field/index.cjs +1 -1
- package/dist/components/image-field/index.cjs.map +1 -1
- package/dist/components/image-field/index.mjs +3 -2
- package/dist/components/image-field/index.mjs.map +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/link-field/index.cjs +1 -1
- package/dist/components/link-field/index.cjs.map +1 -1
- package/dist/components/link-field/index.mjs +3 -2
- package/dist/components/link-field/index.mjs.map +1 -1
- package/dist/components/radio-button-group-input/index.cjs +1 -1
- package/dist/components/radio-button-group-input/index.cjs.map +1 -1
- package/dist/components/radio-button-group-input/index.mjs +3 -2
- package/dist/components/radio-button-group-input/index.mjs.map +1 -1
- package/dist/components/reference-field/index.cjs +1 -1
- package/dist/components/reference-field/index.mjs +1 -1
- package/dist/components/show-simple-layout/index.cjs +1 -1
- package/dist/components/show-simple-layout/index.cjs.map +1 -1
- package/dist/components/show-simple-layout/index.mjs +4 -2
- package/dist/components/show-simple-layout/index.mjs.map +1 -1
- package/dist/components/simple-form/index.cjs +1 -1
- package/dist/components/simple-form/index.cjs.map +1 -1
- package/dist/components/simple-form/index.mjs +3 -2
- package/dist/components/simple-form/index.mjs.map +1 -1
- package/dist/components/text-field/index.cjs +1 -1
- package/dist/components/text-field/index.cjs.map +1 -1
- package/dist/components/text-field/index.mjs +6 -4
- package/dist/components/text-field/index.mjs.map +1 -1
- package/dist/components/text-input/index.cjs +1 -1
- package/dist/components/text-input/index.cjs.map +1 -1
- package/dist/components/text-input/index.mjs +7 -6
- package/dist/components/text-input/index.mjs.map +1 -1
- package/dist/hooks/useUpload.cjs +1 -1
- package/dist/hooks/useUpload.cjs.map +1 -1
- package/dist/hooks/useUpload.d.ts +9 -3
- package/dist/hooks/useUpload.mjs +20 -5
- package/dist/hooks/useUpload.mjs.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +32 -30
- package/dist/index.mjs.map +1 -1
- package/dist/layouts/default.cjs +1 -1
- package/dist/layouts/default.mjs +14 -14
- package/dist/provides/dataProvider.d.ts +2 -6
- package/dist/styles/components/file-multiple-input.css +1 -1
- package/dist/styles/components/file-multiple-model-input.css +1 -0
- package/dist/styles/index.css +1 -1
- package/package.json +1 -1
|
@@ -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/icon/style/css");require("element-plus/es/components/upload/style/css");const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("element-plus/es/components/form-item/style/css");require("element-plus/es/components/icon/style/css");require("element-plus/es/components/upload/style/css");const r=require("vue"),U=require("../../icons/EpPlus.cjs"),l=require("element-plus"),E=require("vue-router");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 k=require("../../hooks/useForm.cjs");require("../../hooks/useShow.cjs");require("../../hooks/useReferenceArrayField.cjs");require("../../hooks/useTreeWithDetails.cjs");const w=require("../../hooks/useFormGrid.cjs");require("../../hooks/useReferenceArrayInput.cjs");const I=require("../../hooks/useUpload.cjs"),V=require("../can-access/index.cjs"),R=r.defineComponent({name:"SkyAvatarInput",inheritAttrs:!1,props:{source:{type:String,required:!0},label:String,rules:Object,dataName:{type:String,default:"name"},dataUrl:{type:String,default:"url"}},setup(e,{slots:s,attrs:c}){const d=E.useRoute(),m=w.useFormGrid(),{formData:i,editData:n}=k.useForm(),v=r.computed(()=>e.label||e.source),{fileList:t,action:f,data:q,headers:p,method:g,name:y,beforeUpload:S}=I.useUpload(),o=r.useTemplateRef("uploadRef"),h=d.meta;if(n.value){const u=n.value[e.source];i[e.source]=u,t.value=[{upload:u,name:u[e.dataName],url:u[e.dataUrl]}]}const b=async u=>{o.value?.clearFiles();const a=u[0];a.uid=l.genFileId(),o.value?.handleStart(a),o.value?.submit()},F=()=>{const u=t.value[0]?.upload;if(u)i[e.source]=u;else{const a=t.value[0]?.raw;a?.upload&&(i[e.source]=a.upload)}};return()=>r.createVNode(V.SkyCanAccess,{resource:h.resource,action:["create","edit"],column:e.source},{default:()=>[r.createVNode(l.ElFormItem,{class:"sky-avatar-input",label:v.value,prop:e.source,rules:e.rules,style:m?`grid-area: ${e.source}`:""},{default:()=>[r.createVNode(l.ElUpload,r.mergeProps({ref:"uploadRef",action:f.value,method:g.value,name:y.value,withCredentials:e.withCredentials,multiple:e.multiple,limit:1,beforeUpload:S,onSuccess:F,onExceed:b,headers:p.value,data:q.value,listType:"picture-card",fileList:t.value,"onUpdate:file-list":u=>t.value=u,autoUpload:!0,showFileList:!1,accept:"image/*"},c),{default:()=>t.value.length?r.withDirectives(r.createVNode("div",{class:"sky-avatar-input__preview",style:{backgroundImage:`url(${t.value[0].url})`}},null),[[l.ElLoadingDirective,t.value[0].status!=="success"]]):r.createVNode(l.ElIcon,null,{default:()=>[r.createVNode(U.EpPlus,null,null)]}),file:u=>{if(s.default){const a=s.default();return r.h(r.Fragment,a.map(N=>r.cloneVNode(N,{...u})))}}})]})]})}});exports.SkyAvatarInput=R;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../src/components/avatar-input/index.tsx"],"sourcesContent":["import { EpPlus } from '@/icons/EpPlus'\nimport type {
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../src/components/avatar-input/index.tsx"],"sourcesContent":["import { EpPlus } from '@/icons/EpPlus'\nimport type { SkyUploadRawFile } from '@/provides'\nimport {\n ElFormItem,\n ElIcon,\n ElLoadingDirective,\n ElUpload,\n genFileId,\n type FormItemRule,\n type UploadFile,\n type UploadInstance,\n type UploadProps,\n type UploadRawFile,\n} from 'element-plus'\nimport {\n cloneVNode,\n computed,\n defineComponent,\n Fragment,\n h,\n useTemplateRef,\n withDirectives,\n} from 'vue'\nimport { useRoute } from 'vue-router'\nimport { useForm, useFormGrid, useUpload, type FormContext, type SkyUploadUserFile } from '@/hooks'\nimport { SkyCanAccess } from '../can-access'\nimport type { SkyLayoutRouteMeta } from '@/router'\n\nexport interface SkyOssAvatarInputProps {\n source: string\n label?: string\n rules?: FormItemRule | FormItemRule[]\n dataName?: string\n dataUrl?: string\n}\n\nexport const SkyAvatarInput = defineComponent<SkyOssAvatarInputProps & Partial<UploadProps>>({\n name: 'SkyAvatarInput',\n inheritAttrs: false,\n props: {\n source: {\n type: String,\n required: true,\n },\n label: String,\n rules: Object,\n dataName: {\n type: String,\n default: 'name',\n },\n dataUrl: {\n type: String,\n default: 'url',\n },\n },\n setup(props, { slots, attrs }) {\n const route = useRoute()\n const formGrid = useFormGrid()\n const { formData, editData } = useForm()! as FormContext<\n Record<string, Record<string, unknown>>\n >\n const title = computed<string>(() => props.label || props.source)\n // init fileList\n const { fileList, action, data, headers, method, name, beforeUpload } = useUpload()\n const uploadRef = useTemplateRef<UploadInstance>('uploadRef')\n const routeMeta = route.meta as SkyLayoutRouteMeta\n\n if (editData.value) {\n const ed = editData.value[props.source] as Record<string, unknown>\n formData[props.source] = ed\n fileList.value = [\n {\n upload: ed,\n name: ed[props.dataName!] as string,\n url: ed[props.dataUrl!] as string,\n },\n ]\n }\n\n const onExceed = async (files: File[]) => {\n uploadRef.value?.clearFiles()\n const file = files[0] as UploadRawFile\n file.uid = genFileId()\n uploadRef.value?.handleStart(file)\n uploadRef.value?.submit()\n }\n\n const onSuccess = () => {\n const upload = fileList.value[0]?.upload\n if (upload) {\n formData[props.source] = upload\n } else {\n const raw = fileList.value[0]?.raw as SkyUploadRawFile | undefined\n if (raw?.upload) {\n formData[props.source] = raw.upload\n }\n }\n }\n\n return () => (\n <SkyCanAccess resource={routeMeta.resource} action={['create', 'edit']} column={props.source}>\n <ElFormItem\n class=\"sky-avatar-input\"\n label={title.value}\n prop={props.source}\n rules={props.rules}\n style={formGrid ? `grid-area: ${props.source}` : ''}\n >\n <ElUpload\n ref=\"uploadRef\"\n action={action.value}\n method={method.value}\n name={name.value}\n withCredentials={props.withCredentials}\n multiple={props.multiple}\n limit={1}\n beforeUpload={beforeUpload}\n onSuccess={onSuccess}\n onExceed={onExceed}\n headers={headers.value}\n data={data.value}\n listType=\"picture-card\"\n fileList={fileList.value}\n onUpdate:file-list={(fs: SkyUploadUserFile[]) => (fileList.value = fs)}\n autoUpload={true}\n showFileList={false}\n // https://developer.mozilla.org/zh-CN/docs/Web/HTML/Reference/Attributes/accept\n accept={'image/*'}\n {...attrs}\n >\n {{\n default: () =>\n fileList.value.length ? (\n withDirectives(\n <div\n class=\"sky-avatar-input__preview\"\n style={{ backgroundImage: `url(${fileList.value[0]!.url})` }}\n ></div>,\n [[ElLoadingDirective, fileList.value[0]!.status !== 'success']],\n )\n ) : (\n <ElIcon>\n <EpPlus />\n </ElIcon>\n ),\n file: (scope: { file: UploadFile; index: number }) => {\n if (slots.default) {\n const vnodes = slots.default()\n return h(\n Fragment,\n vnodes.map((vnode) => cloneVNode(vnode, { ...scope })),\n )\n }\n },\n }}\n </ElUpload>\n </ElFormItem>\n </SkyCanAccess>\n )\n },\n})\n"],"names":["SkyAvatarInput","defineComponent","name","inheritAttrs","props","source","type","required","label","rules","dataName","default","dataUrl","attrs","route","useRoute","formGrid","useFormGrid","editData","title","computed","beforeUpload","uploadRef","useTemplateRef","routeMeta","formData","upload","url","onExceed","files","file","onSuccess","fs","fileList","vnodes","slots","h","Fragment","vnode","cloneVNode"],"mappings":"yjCAoCAA,EAAAC,EAAAA,gBAAA,CACEC,KAAAA,iBACAC,aAAAA,GACAC,MAAAA,CACEC,OAAAA,CACEC,KAAAA,OACAC,SAAAA,IAEFC,MAAAA,OACAC,MAAAA,OACAC,SAAAA,CACEJ,KAAAA,OACAK,QAAAA,QAEFC,QAAAA,CACEN,KAAAA,OACAK,QAAAA,KACF,oBAEoBE,MAAAA,CAAM,EAAA,CAC1B,MAAAC,EAAAC,EAAAA,SAAA,EACAC,EAAAC,EAAAA,YAAA,cACkBC,SAAAA,eAGlBC,EAAAC,EAAAA,SAAA,IAAAhB,EAAA,OAAAA,EAAA,MAAA,wDAEuDiB,aAAAA,iBACvDC,EAAAC,EAAAA,eAAA,WAAA,EACAC,EAAAV,EAAA,2CAIEW,EAAAA,EAAAA,MAAAA,EAAAA,YAGIC,OAAAA,EACAxB,KAAAA,EAAAA,EAAAA,QAAAA,EACAyB,IAAAA,EAAAA,EAAAA,OAAAA,CACF,CAAA,CAEJ,CAEA,MAAAC,EAAA,MAAAC,GAAA,CACEP,EAAAA,OAAAA,WAAAA,EACA,MAAAQ,EAAAD,EAAA,CAAA,EACAC,EAAAA,IAAAA,YAAAA,EACAR,EAAAA,OAAAA,YAAAA,CAAAA,EACAA,EAAAA,OAAAA,OAAAA,qCAKA,GAAAI,EACED,EAAAA,EAAAA,MAAAA,EAAAA,MACF,0DAKA,+DAI0C,OAAA,CAAA,SAAA,MAAA,EAA4B,OAAArB,EAAA,MAAsB,EAAA,CAAAO,QAAAA,IAAAA,CAAAA,EAAAA,YAAAA,aAAAA,CAAA,MAAA,6DAKtE,MAAAK,EAAA,cAAAZ,EAAA,MAAA,GAAA,EACiC,EAAA,CAAAO,QAAAA,IAAAA,CAAAA,cAAAA,EAAAA,SAAAA,EAAAA,WAAAA,CAAA,IAAA,6GAQzB,MAAA,EAChB,aAAAU,EACkB,UAAAU,EACN,SAAAH,+BAGJ,SAAA,gCAEQ,qBAAAI,GAAAC,EAAA,MAAAD,EAC8C,WAAA,GACtD,aAAA,mBAGC,EAAAnB,CAAA,EAAA,kEAMG,MAAA,2EAGiD,8FAG9DF,QAAAA,IAAAA,CAAAA,EAAAA,YAAAA,EAAAA,OAAAA,KAAAA,IAAAA,CAAAA,2BAQD,MAAAuB,EAAAC,EAAA,QAAA,EACA,OAAAC,EAAAA,EAAAC,EAAAA,SAAAH,EAAA,IAAAI,GAAAC,EAAAA,WAAAD,EAAA,SAIF,CACF,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,GAMb,CACF,CAAA"}
|
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
import { FormItemRule, UploadProps } from 'element-plus';
|
|
2
|
-
import { SkyUploadUserFile } from '../../hooks';
|
|
3
2
|
export interface SkyOssAvatarInputProps {
|
|
4
|
-
reference: string;
|
|
5
3
|
source: string;
|
|
6
4
|
label?: string;
|
|
7
5
|
rules?: FormItemRule | FormItemRule[];
|
|
8
|
-
dataId?: string;
|
|
9
6
|
dataName?: string;
|
|
10
7
|
dataUrl?: string;
|
|
11
|
-
fileList?: SkyUploadUserFile[];
|
|
12
8
|
}
|
|
13
9
|
export declare const SkyAvatarInput: import('vue').DefineComponent<SkyOssAvatarInputProps & Partial<UploadProps>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<SkyOssAvatarInputProps & Partial<UploadProps>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import "element-plus/es/components/form-item/style/css";
|
|
2
2
|
import "element-plus/es/components/icon/style/css";
|
|
3
3
|
import "element-plus/es/components/upload/style/css";
|
|
4
|
-
import { defineComponent as
|
|
5
|
-
import { EpPlus as
|
|
6
|
-
import { ElFormItem as
|
|
7
|
-
import {
|
|
8
|
-
import { useRoute as M } from "vue-router";
|
|
4
|
+
import { defineComponent as E, computed as F, useTemplateRef as k, createVNode as r, mergeProps as I, withDirectives as R, h as A, Fragment as C, cloneVNode as D } from "vue";
|
|
5
|
+
import { EpPlus as L } from "../../icons/EpPlus.mjs";
|
|
6
|
+
import { ElFormItem as N, ElUpload as x, ElLoadingDirective as G, ElIcon as P, genFileId as T } from "element-plus";
|
|
7
|
+
import { useRoute as V } from "vue-router";
|
|
9
8
|
import "../../hooks/useUser.mjs";
|
|
10
9
|
import "../../hooks/usePermission.mjs";
|
|
11
10
|
import "../../hooks/useMenu.mjs";
|
|
@@ -16,33 +15,24 @@ import "../../hooks/useLang.mjs";
|
|
|
16
15
|
import "../../hooks/useTheme.mjs";
|
|
17
16
|
import "../../hooks/useList.mjs";
|
|
18
17
|
import "../../hooks/useHiddenTitle.mjs";
|
|
19
|
-
import { useForm as
|
|
18
|
+
import { useForm as _ } from "../../hooks/useForm.mjs";
|
|
20
19
|
import "../../hooks/useShow.mjs";
|
|
21
20
|
import "../../hooks/useReferenceArrayField.mjs";
|
|
22
21
|
import "../../hooks/useTreeWithDetails.mjs";
|
|
23
|
-
import { useFormGrid as
|
|
22
|
+
import { useFormGrid as $ } from "../../hooks/useFormGrid.mjs";
|
|
24
23
|
import "../../hooks/useReferenceArrayInput.mjs";
|
|
25
|
-
import { useUpload as
|
|
26
|
-
import {
|
|
27
|
-
|
|
28
|
-
const we = /* @__PURE__ */ L({
|
|
24
|
+
import { useUpload as j } from "../../hooks/useUpload.mjs";
|
|
25
|
+
import { SkyCanAccess as q } from "../can-access/index.mjs";
|
|
26
|
+
const pe = /* @__PURE__ */ E({
|
|
29
27
|
name: "SkyAvatarInput",
|
|
30
28
|
inheritAttrs: !1,
|
|
31
29
|
props: {
|
|
32
|
-
reference: {
|
|
33
|
-
type: String,
|
|
34
|
-
required: !0
|
|
35
|
-
},
|
|
36
30
|
source: {
|
|
37
31
|
type: String,
|
|
38
32
|
required: !0
|
|
39
33
|
},
|
|
40
34
|
label: String,
|
|
41
35
|
rules: Object,
|
|
42
|
-
dataId: {
|
|
43
|
-
type: String,
|
|
44
|
-
default: "id"
|
|
45
|
-
},
|
|
46
36
|
dataName: {
|
|
47
37
|
type: String,
|
|
48
38
|
default: "name"
|
|
@@ -50,112 +40,90 @@ const we = /* @__PURE__ */ L({
|
|
|
50
40
|
dataUrl: {
|
|
51
41
|
type: String,
|
|
52
42
|
default: "url"
|
|
53
|
-
},
|
|
54
|
-
fileList: {
|
|
55
|
-
type: Array,
|
|
56
|
-
default: () => []
|
|
57
43
|
}
|
|
58
44
|
},
|
|
59
|
-
setup(
|
|
60
|
-
slots:
|
|
61
|
-
attrs:
|
|
45
|
+
setup(e, {
|
|
46
|
+
slots: i,
|
|
47
|
+
attrs: s
|
|
62
48
|
}) {
|
|
63
|
-
const
|
|
64
|
-
formData:
|
|
65
|
-
editData:
|
|
66
|
-
} =
|
|
67
|
-
fileList:
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
},
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
49
|
+
const n = V(), c = $(), {
|
|
50
|
+
formData: o,
|
|
51
|
+
editData: m
|
|
52
|
+
} = _(), d = F(() => e.label || e.source), {
|
|
53
|
+
fileList: a,
|
|
54
|
+
action: p,
|
|
55
|
+
data: f,
|
|
56
|
+
headers: v,
|
|
57
|
+
method: g,
|
|
58
|
+
name: h,
|
|
59
|
+
beforeUpload: y
|
|
60
|
+
} = j(), u = k("uploadRef"), S = n.meta;
|
|
61
|
+
if (m.value) {
|
|
62
|
+
const t = m.value[e.source];
|
|
63
|
+
o[e.source] = t, a.value = [{
|
|
64
|
+
upload: t,
|
|
65
|
+
name: t[e.dataName],
|
|
66
|
+
url: t[e.dataUrl]
|
|
67
|
+
}];
|
|
68
|
+
}
|
|
69
|
+
const b = async (t) => {
|
|
70
|
+
u.value?.clearFiles();
|
|
71
|
+
const l = t[0];
|
|
72
|
+
l.uid = T(), u.value?.handleStart(l), u.value?.submit();
|
|
73
|
+
}, U = () => {
|
|
74
|
+
const t = a.value[0]?.upload;
|
|
75
|
+
if (t)
|
|
76
|
+
o[e.source] = t;
|
|
78
77
|
else {
|
|
79
|
-
const
|
|
80
|
-
|
|
81
|
-
}
|
|
82
|
-
};
|
|
83
|
-
let s;
|
|
84
|
-
const {
|
|
85
|
-
isLoading: c
|
|
86
|
-
} = j(async () => {
|
|
87
|
-
const a = l[t.source];
|
|
88
|
-
if (a) {
|
|
89
|
-
s = new AbortController();
|
|
90
|
-
const e = await h.dataProvider?.getOne?.(t.reference, {
|
|
91
|
-
id: a,
|
|
92
|
-
signal: s.signal
|
|
93
|
-
});
|
|
94
|
-
if (e?.data)
|
|
95
|
-
return r.value = [{
|
|
96
|
-
id: e.data[t.dataId],
|
|
97
|
-
name: e.data[t.dataName],
|
|
98
|
-
url: e.data[t.dataUrl]
|
|
99
|
-
}], e;
|
|
78
|
+
const l = a.value[0]?.raw;
|
|
79
|
+
l?.upload && (o[e.source] = l.upload);
|
|
100
80
|
}
|
|
101
|
-
}, void 0, {
|
|
102
|
-
immediate: !0
|
|
103
|
-
}), m = u(""), f = y(), v = y(), p = u(), g = u(), C = async (a) => {
|
|
104
|
-
const e = await h.dataProvider?.getUploadConfig?.({
|
|
105
|
-
file: a
|
|
106
|
-
});
|
|
107
|
-
e?.data && (m.value = e.data.action, f.value = e.data.data, v.value = e.data.headers, p.value = e.data.method, g.value = e.data.name, a.data = {
|
|
108
|
-
id: e.data.file.id,
|
|
109
|
-
name: e.data.file.name,
|
|
110
|
-
url: e.data.file.url
|
|
111
|
-
});
|
|
112
81
|
};
|
|
113
|
-
return () =>
|
|
114
|
-
resource:
|
|
82
|
+
return () => r(q, {
|
|
83
|
+
resource: S.resource,
|
|
115
84
|
action: ["create", "edit"],
|
|
116
|
-
column:
|
|
85
|
+
column: e.source
|
|
117
86
|
}, {
|
|
118
|
-
default: () => [
|
|
87
|
+
default: () => [r(N, {
|
|
119
88
|
class: "sky-avatar-input",
|
|
120
|
-
label:
|
|
121
|
-
prop:
|
|
122
|
-
rules:
|
|
123
|
-
style:
|
|
89
|
+
label: d.value,
|
|
90
|
+
prop: e.source,
|
|
91
|
+
rules: e.rules,
|
|
92
|
+
style: c ? `grid-area: ${e.source}` : ""
|
|
124
93
|
}, {
|
|
125
|
-
default: () => [
|
|
94
|
+
default: () => [r(x, I({
|
|
126
95
|
ref: "uploadRef",
|
|
127
|
-
action:
|
|
128
|
-
method:
|
|
129
|
-
name:
|
|
130
|
-
withCredentials:
|
|
131
|
-
multiple:
|
|
96
|
+
action: p.value,
|
|
97
|
+
method: g.value,
|
|
98
|
+
name: h.value,
|
|
99
|
+
withCredentials: e.withCredentials,
|
|
100
|
+
multiple: e.multiple,
|
|
132
101
|
limit: 1,
|
|
133
|
-
beforeUpload:
|
|
134
|
-
onSuccess:
|
|
135
|
-
onExceed:
|
|
102
|
+
beforeUpload: y,
|
|
103
|
+
onSuccess: U,
|
|
104
|
+
onExceed: b,
|
|
136
105
|
headers: v.value,
|
|
137
106
|
data: f.value,
|
|
138
107
|
listType: "picture-card",
|
|
139
|
-
fileList:
|
|
140
|
-
"onUpdate:file-list": (
|
|
108
|
+
fileList: a.value,
|
|
109
|
+
"onUpdate:file-list": (t) => a.value = t,
|
|
141
110
|
autoUpload: !0,
|
|
142
111
|
showFileList: !1,
|
|
143
|
-
disabled: c.value,
|
|
144
112
|
accept: "image/*"
|
|
145
|
-
},
|
|
146
|
-
default: () =>
|
|
113
|
+
}, s), {
|
|
114
|
+
default: () => a.value.length ? R(r("div", {
|
|
147
115
|
class: "sky-avatar-input__preview",
|
|
148
116
|
style: {
|
|
149
|
-
backgroundImage: `url(${
|
|
117
|
+
backgroundImage: `url(${a.value[0].url})`
|
|
150
118
|
}
|
|
151
|
-
}, null), [[
|
|
152
|
-
default: () => [
|
|
119
|
+
}, null), [[G, a.value[0].status !== "success"]]) : r(P, null, {
|
|
120
|
+
default: () => [r(L, null, null)]
|
|
153
121
|
}),
|
|
154
|
-
file: (
|
|
155
|
-
if (
|
|
156
|
-
const
|
|
157
|
-
return
|
|
158
|
-
...
|
|
122
|
+
file: (t) => {
|
|
123
|
+
if (i.default) {
|
|
124
|
+
const l = i.default();
|
|
125
|
+
return A(C, l.map((w) => D(w, {
|
|
126
|
+
...t
|
|
159
127
|
})));
|
|
160
128
|
}
|
|
161
129
|
}
|
|
@@ -165,6 +133,6 @@ const we = /* @__PURE__ */ L({
|
|
|
165
133
|
}
|
|
166
134
|
});
|
|
167
135
|
export {
|
|
168
|
-
|
|
136
|
+
pe as SkyAvatarInput
|
|
169
137
|
};
|
|
170
138
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../src/components/avatar-input/index.tsx"],"sourcesContent":["import { EpPlus } from '@/icons/EpPlus'\nimport type {
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../src/components/avatar-input/index.tsx"],"sourcesContent":["import { EpPlus } from '@/icons/EpPlus'\nimport type { SkyUploadRawFile } from '@/provides'\nimport {\n ElFormItem,\n ElIcon,\n ElLoadingDirective,\n ElUpload,\n genFileId,\n type FormItemRule,\n type UploadFile,\n type UploadInstance,\n type UploadProps,\n type UploadRawFile,\n} from 'element-plus'\nimport {\n cloneVNode,\n computed,\n defineComponent,\n Fragment,\n h,\n useTemplateRef,\n withDirectives,\n} from 'vue'\nimport { useRoute } from 'vue-router'\nimport { useForm, useFormGrid, useUpload, type FormContext, type SkyUploadUserFile } from '@/hooks'\nimport { SkyCanAccess } from '../can-access'\nimport type { SkyLayoutRouteMeta } from '@/router'\n\nexport interface SkyOssAvatarInputProps {\n source: string\n label?: string\n rules?: FormItemRule | FormItemRule[]\n dataName?: string\n dataUrl?: string\n}\n\nexport const SkyAvatarInput = defineComponent<SkyOssAvatarInputProps & Partial<UploadProps>>({\n name: 'SkyAvatarInput',\n inheritAttrs: false,\n props: {\n source: {\n type: String,\n required: true,\n },\n label: String,\n rules: Object,\n dataName: {\n type: String,\n default: 'name',\n },\n dataUrl: {\n type: String,\n default: 'url',\n },\n },\n setup(props, { slots, attrs }) {\n const route = useRoute()\n const formGrid = useFormGrid()\n const { formData, editData } = useForm()! as FormContext<\n Record<string, Record<string, unknown>>\n >\n const title = computed<string>(() => props.label || props.source)\n // init fileList\n const { fileList, action, data, headers, method, name, beforeUpload } = useUpload()\n const uploadRef = useTemplateRef<UploadInstance>('uploadRef')\n const routeMeta = route.meta as SkyLayoutRouteMeta\n\n if (editData.value) {\n const ed = editData.value[props.source] as Record<string, unknown>\n formData[props.source] = ed\n fileList.value = [\n {\n upload: ed,\n name: ed[props.dataName!] as string,\n url: ed[props.dataUrl!] as string,\n },\n ]\n }\n\n const onExceed = async (files: File[]) => {\n uploadRef.value?.clearFiles()\n const file = files[0] as UploadRawFile\n file.uid = genFileId()\n uploadRef.value?.handleStart(file)\n uploadRef.value?.submit()\n }\n\n const onSuccess = () => {\n const upload = fileList.value[0]?.upload\n if (upload) {\n formData[props.source] = upload\n } else {\n const raw = fileList.value[0]?.raw as SkyUploadRawFile | undefined\n if (raw?.upload) {\n formData[props.source] = raw.upload\n }\n }\n }\n\n return () => (\n <SkyCanAccess resource={routeMeta.resource} action={['create', 'edit']} column={props.source}>\n <ElFormItem\n class=\"sky-avatar-input\"\n label={title.value}\n prop={props.source}\n rules={props.rules}\n style={formGrid ? `grid-area: ${props.source}` : ''}\n >\n <ElUpload\n ref=\"uploadRef\"\n action={action.value}\n method={method.value}\n name={name.value}\n withCredentials={props.withCredentials}\n multiple={props.multiple}\n limit={1}\n beforeUpload={beforeUpload}\n onSuccess={onSuccess}\n onExceed={onExceed}\n headers={headers.value}\n data={data.value}\n listType=\"picture-card\"\n fileList={fileList.value}\n onUpdate:file-list={(fs: SkyUploadUserFile[]) => (fileList.value = fs)}\n autoUpload={true}\n showFileList={false}\n // https://developer.mozilla.org/zh-CN/docs/Web/HTML/Reference/Attributes/accept\n accept={'image/*'}\n {...attrs}\n >\n {{\n default: () =>\n fileList.value.length ? (\n withDirectives(\n <div\n class=\"sky-avatar-input__preview\"\n style={{ backgroundImage: `url(${fileList.value[0]!.url})` }}\n ></div>,\n [[ElLoadingDirective, fileList.value[0]!.status !== 'success']],\n )\n ) : (\n <ElIcon>\n <EpPlus />\n </ElIcon>\n ),\n file: (scope: { file: UploadFile; index: number }) => {\n if (slots.default) {\n const vnodes = slots.default()\n return h(\n Fragment,\n vnodes.map((vnode) => cloneVNode(vnode, { ...scope })),\n )\n }\n },\n }}\n </ElUpload>\n </ElFormItem>\n </SkyCanAccess>\n )\n },\n})\n"],"names":["SkyAvatarInput","defineComponent","name","inheritAttrs","props","source","type","required","label","rules","dataName","default","dataUrl","attrs","route","useRoute","formGrid","useFormGrid","editData","title","computed","beforeUpload","uploadRef","useTemplateRef","routeMeta","formData","upload","url","onExceed","files","file","onSuccess","fs","fileList","vnodes","slots","h","Fragment","vnode","cloneVNode"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAoCA,MAAAA,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,IACAC,OAAAA;AAAAA,IACAC,UAAAA;AAAAA,MACEJ,MAAAA;AAAAA,MACAK,SAAAA;AAAAA;IAEFC,SAAAA;AAAAA,MACEN,MAAAA;AAAAA,MACAK,SAAAA;AAAAA,IACF;AAAA;;;IAEoBE,OAAAA;AAAAA,EAAM,GAAA;AAC1B,UAAAC,IAAAC,EAAA,GACAC,IAAAC,EAAA;;MACkBC,UAAAA;AAAAA,aAGlBC,IAAAC,EAAA,MAAAhB,EAAA,SAAAA,EAAA,MAAA;;;;;;;MAEuDiB,cAAAA;AAAAA,aACvDC,IAAAC,EAAA,WAAA,GACAC,IAAAV,EAAA;;;AAIEW,MAAAA,EAAAA,EAAAA,MAAAA,IAAAA;QAGIC,QAAAA;AAAAA,QACAxB,MAAAA,EAAAA,EAAAA,QAAAA;AAAAA,QACAyB,KAAAA,EAAAA,EAAAA,OAAAA;AAAAA,MACF,CAAA;AAAA,IAEJ;AAEA,UAAAC,IAAA,OAAAC,MAAA;AACEP,MAAAA,EAAAA,OAAAA,WAAAA;AACA,YAAAQ,IAAAD,EAAA,CAAA;AACAC,MAAAA,EAAAA,MAAAA,EAAAA,GACAR,EAAAA,OAAAA,YAAAA,CAAAA,GACAA,EAAAA,OAAAA,OAAAA;AAAAA;;AAKA,UAAAI;AACED,QAAAA,EAAAA,EAAAA,MAAAA,IAAAA;AAAAA,WACF;;;MAKA;AAAA;;;MAI0C,QAAA,CAAA,UAAA,MAAA;AAAA,MAA4B,QAAArB,EAAA;AAAA,IAAsB,GAAA;AAAA,MAAAO,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA;AAAAA,QAAA,OAAA;AAAA;;;QAKtE,OAAAK,IAAA,cAAAZ,EAAA,MAAA,KAAA;AAAA,MACiC,GAAA;AAAA,QAAAO,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA,EAAAA;AAAAA,UAAA,KAAA;AAAA;;;;;UAQzB,OAAA;AAAA,UAChB,cAAAU;AAAA,UACkB,WAAAU;AAAA,UACN,UAAAH;AAAA;;UAGJ,UAAA;AAAA;UAEQ,sBAAA,CAAAI,MAAAC,EAAA,QAAAD;AAAA,UAC8C,YAAA;AAAA,UACtD,cAAA;AAAA;QAGC,GAAAnB,CAAA,GAAA;AAAA;YAMG,OAAA;AAAA;;YAGiD;AAAA;YAG9DF,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA,MAAAA,IAAAA,CAAAA;AAAAA;;;AAQD,oBAAAuB,IAAAC,EAAA,QAAA;AACA,qBAAAC,EAAAC,GAAAH,EAAA,IAAA,CAAAI,MAAAC,EAAAD,GAAA;AAAA;;YAIF;AAAA,UACF;AAAA,QAAC,CAAA,CAAA;AAAA,MAAA,CAAA,CAAA;AAAA;EAMb;AACF,CAAA;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../hooks/useUser.cjs");const o=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");require("../../hooks/useTreeWithDetails.cjs");require("../../hooks/useFormGrid.cjs");require("../../hooks/useReferenceArrayInput.cjs");const r=require("
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../hooks/useUser.cjs");const o=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");require("../../hooks/useTreeWithDetails.cjs");require("../../hooks/useFormGrid.cjs");require("../../hooks/useReferenceArrayInput.cjs");const r=require("../../setup/index.cjs"),u=require("vue"),c=require("vue-router"),q=u.defineComponent({name:"SkyCanAccess",props:{resource:{type:[String,Array],required:!0},action:{type:[String,Array],required:!0},row:[String,Number],column:[String,Number]},setup(i,{slots:e}){const t=c.useRouter(),{permissions:n}=o.usePermission(),s=u.computed(()=>t.hasRoute(r.skyConfig.loginRouteName)?r.skyConfig.dataProvider?.canAccess?.(i,n.value):!0);return()=>s.value?e.default?.():e.empty?.()}});exports.SkyCanAccess=q;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -14,8 +14,8 @@ import "../../hooks/useReferenceArrayField.mjs";
|
|
|
14
14
|
import "../../hooks/useTreeWithDetails.mjs";
|
|
15
15
|
import "../../hooks/useFormGrid.mjs";
|
|
16
16
|
import "../../hooks/useReferenceArrayInput.mjs";
|
|
17
|
-
import { defineComponent as n, computed as u } from "vue";
|
|
18
17
|
import { skyConfig as t } from "../../setup/index.mjs";
|
|
18
|
+
import { defineComponent as n, computed as u } from "vue";
|
|
19
19
|
import { useRouter as s } from "vue-router";
|
|
20
20
|
const x = /* @__PURE__ */ n({
|
|
21
21
|
name: "SkyCanAccess",
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("element-plus/es/components/button/style/css");require("element-plus/es/components/card/style/css");const e=require("vue");require("../../hooks/useUser.cjs");require("../../hooks/usePermission.cjs");require("../../hooks/useMenu.cjs");const k=require("../../hooks/useTab.cjs"),C=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 N=require("../../hooks/useForm.cjs");require("../../hooks/useShow.cjs");require("../../hooks/useReferenceArrayField.cjs");const T=require("../../hooks/useTreeWithDetails.cjs");require("../../hooks/useFormGrid.cjs");require("../../hooks/useReferenceArrayInput.cjs");const D=require("../../
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("element-plus/es/components/button/style/css");require("element-plus/es/components/card/style/css");const e=require("vue");require("../../hooks/useUser.cjs");require("../../hooks/usePermission.cjs");require("../../hooks/useMenu.cjs");const k=require("../../hooks/useTab.cjs"),C=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 N=require("../../hooks/useForm.cjs");require("../../hooks/useShow.cjs");require("../../hooks/useReferenceArrayField.cjs");const T=require("../../hooks/useTreeWithDetails.cjs");require("../../hooks/useFormGrid.cjs");require("../../hooks/useReferenceArrayInput.cjs");const D=require("../../setup/index.cjs"),R=require("../../icons/EpDocumentAdd.cjs"),V=require("@vueuse/core"),l=require("element-plus"),P=require("vue-i18n"),d=require("vue-router"),_=require("../can-access/index.cjs");function h(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!e.isVNode(t)}const j=e.defineComponent({name:"SkyCreate",inheritAttrs:!1,setup(t,{slots:m,attrs:q}){const{t:f}=P.useI18n(),o=d.useRoute(),v=d.useRouter(),{removeTab:p,lastTab:u}=k.useTab(),{formData:y,formRef:a}=N.useProvideForm(),s=T.useTreeWithDetails(),{removeKeepAlive:b}=C.useRouteKeepAlive(),i=o.meta;let n;const{isLoading:S,execute:A}=V.useAsyncState(async r=>(n=new AbortController,D.skyConfig.dataProvider?.create?.(o.meta.resource,{data:r,signal:n.signal})),void 0,{immediate:!1}),g=async()=>{if(!a.value||!await a.value.validate())return;const c=await A(0,{...y});c&&(s?.createSuccess?s.createSuccess(c):(i.keepAliveName&&b(i.keepAliveName),p(o.name),u.value&&v.replace({name:u.value.routeName,params:u.value.routeParams})))};return()=>e.createVNode("div",{class:"sky-create"},[e.createVNode(_.SkyCanAccess,{resource:i.resource,action:"create"},{default:()=>[e.createVNode(l.ElCard,q,{default:m.default,footer:()=>{let r;return e.createVNode("div",{class:"sky-create__footer"},[e.createVNode(l.ElButton,{type:"primary",icon:R.EpDocumentAdd,loading:S.value,onClick:g},h(r=f("button.submit"))?r:{default:()=>[r]})])}})]})])}});exports.SkyCreate=j;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -17,8 +17,8 @@ import "../../hooks/useReferenceArrayField.mjs";
|
|
|
17
17
|
import { useTreeWithDetails as D } from "../../hooks/useTreeWithDetails.mjs";
|
|
18
18
|
import "../../hooks/useFormGrid.mjs";
|
|
19
19
|
import "../../hooks/useReferenceArrayInput.mjs";
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
20
|
+
import { skyConfig as R } from "../../setup/index.mjs";
|
|
21
|
+
import { EpDocumentAdd as T } from "../../icons/EpDocumentAdd.mjs";
|
|
22
22
|
import { useAsyncState as h } from "@vueuse/core";
|
|
23
23
|
import { ElCard as j, ElButton as w } from "element-plus";
|
|
24
24
|
import { useI18n as E } from "vue-i18n";
|
|
@@ -49,7 +49,7 @@ const ne = /* @__PURE__ */ A({
|
|
|
49
49
|
const {
|
|
50
50
|
isLoading: b,
|
|
51
51
|
execute: S
|
|
52
|
-
} = h(async (e) => (n = new AbortController(),
|
|
52
|
+
} = h(async (e) => (n = new AbortController(), R.dataProvider?.create?.(r.meta.resource, {
|
|
53
53
|
data: e,
|
|
54
54
|
signal: n.signal
|
|
55
55
|
})), void 0, {
|
|
@@ -79,7 +79,7 @@ const ne = /* @__PURE__ */ A({
|
|
|
79
79
|
class: "sky-create__footer"
|
|
80
80
|
}, [t(w, {
|
|
81
81
|
type: "primary",
|
|
82
|
-
icon:
|
|
82
|
+
icon: T,
|
|
83
83
|
loading: b.value,
|
|
84
84
|
onClick: k
|
|
85
85
|
}, L(e = l("button.submit")) ? e : {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("element-plus/es/components/alert/style/css");require("element-plus/es/components/button/style/css");require("element-plus/es/components/popconfirm/style/css");require("element-plus/es/components/skeleton/style/css");require("element-plus/es/components/table/style/css");require("element-plus/es/components/table-column/style/css");require("element-plus/es/components/text/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");const V=require("../../hooks/useList.cjs");require("../../hooks/useHiddenTitle.cjs");require("../../hooks/useForm.cjs");require("../../hooks/useShow.cjs");require("../../hooks/useReferenceArrayField.cjs");require("../../hooks/useTreeWithDetails.cjs");require("../../hooks/useFormGrid.cjs");require("../../hooks/useReferenceArrayInput.cjs");const E=require("../../
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("element-plus/es/components/alert/style/css");require("element-plus/es/components/button/style/css");require("element-plus/es/components/popconfirm/style/css");require("element-plus/es/components/skeleton/style/css");require("element-plus/es/components/table/style/css");require("element-plus/es/components/table-column/style/css");require("element-plus/es/components/text/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");const V=require("../../hooks/useList.cjs");require("../../hooks/useHiddenTitle.cjs");require("../../hooks/useForm.cjs");require("../../hooks/useShow.cjs");require("../../hooks/useReferenceArrayField.cjs");require("../../hooks/useTreeWithDetails.cjs");require("../../hooks/useFormGrid.cjs");require("../../hooks/useReferenceArrayInput.cjs");const E=require("../../setup/index.cjs"),T=require("../../icons/EpDelete.cjs"),k=require("@vueuse/core"),r=require("element-plus"),C=require("vue-i18n"),x=require("vue-router"),D=require("../can-access/index.cjs");function R(a){return typeof a=="function"||Object.prototype.toString.call(a)==="[object Object]"&&!e.isVNode(a)}const h=e.defineComponent({name:"SkyDataTable",inheritAttrs:!1,props:{id:{type:String,default:"id"}},setup(a,{slots:d,attrs:q}){const{t:o}=C.useI18n(),i=x.useRoute(),{getList:f,listLoading:m,listData:p}=V.useList(),y=i.meta,b=e.useTemplateRef("tableRef"),l=e.shallowRef([]),u=t=>{l.value=t},s=()=>{l.value=[],b.value?.clearSelection()},g=async()=>{await S(),await f(),s()};let c;const{isLoading:v,execute:S}=k.useAsyncState(async()=>{if(l.value.map(n=>String(n[a.id])).length)return c=new AbortController,E.skyConfig.dataProvider?.deleteMany?.(i.meta.resource,{ids:l.value.map(n=>String(n[a.id])),signal:c.signal})},void 0,{immediate:!1}),N=e.computed(()=>!!(v.value||m.value));return()=>e.createVNode(r.ElSkeleton,{loading:N.value,animated:!0},{default:()=>[e.createVNode("div",{class:"sky-data-table"},[e.createVNode(D.SkyCanAccess,{resource:y.resource,action:"delete"},{default:()=>[l.value.length>0&&e.createVNode(r.ElAlert,{class:"sky-data-table__alert",type:"primary",onClose:s},{default:()=>[e.createVNode(r.ElText,{type:"primary"},{default:()=>[l.value.length,e.createTextVNode(" "),o("selectedItems")]}),e.createVNode(r.ElPopconfirm,{title:o("popconfirm.remove"),onConfirm:g},{reference:()=>{let t;return e.createVNode(r.ElButton,{text:!0,type:"danger",icon:T.EpDelete},R(t=o("button.remove"))?t:{default:()=>[t]})}})]})]}),e.createVNode(r.ElTable,e.mergeProps({ref:"tableRef",class:"sky-data-table__main",data:p.value?.data,border:!0,onSelect:t=>u(t),"onSelect-all":t=>u(t)},q),{default:()=>[e.createVNode(r.ElTableColumn,{type:"selection"},null),e.createVNode(r.ElTableColumn,{type:"index",label:"#",width:"50"},null),d.default?.()]})])]})}});exports.SkyDataTable=h;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -22,8 +22,8 @@ import "../../hooks/useReferenceArrayField.mjs";
|
|
|
22
22
|
import "../../hooks/useTreeWithDetails.mjs";
|
|
23
23
|
import "../../hooks/useFormGrid.mjs";
|
|
24
24
|
import "../../hooks/useReferenceArrayInput.mjs";
|
|
25
|
-
import {
|
|
26
|
-
import {
|
|
25
|
+
import { skyConfig as D } from "../../setup/index.mjs";
|
|
26
|
+
import { EpDelete as L } from "../../icons/EpDelete.mjs";
|
|
27
27
|
import { useAsyncState as j } from "@vueuse/core";
|
|
28
28
|
import { ElSkeleton as I, ElAlert as N, ElText as P, ElPopconfirm as V, ElButton as B, ElTable as M, ElTableColumn as p } from "element-plus";
|
|
29
29
|
import { useI18n as O } from "vue-i18n";
|
|
@@ -64,7 +64,7 @@ const ke = /* @__PURE__ */ E({
|
|
|
64
64
|
execute: k
|
|
65
65
|
} = j(async () => {
|
|
66
66
|
if (r.value.map((l) => String(l[o.id])).length)
|
|
67
|
-
return s = new AbortController(),
|
|
67
|
+
return s = new AbortController(), D.dataProvider?.deleteMany?.(i.meta.resource, {
|
|
68
68
|
ids: r.value.map((l) => String(l[o.id])),
|
|
69
69
|
signal: s.signal
|
|
70
70
|
});
|
|
@@ -99,7 +99,7 @@ const ke = /* @__PURE__ */ E({
|
|
|
99
99
|
return t(B, {
|
|
100
100
|
text: !0,
|
|
101
101
|
type: "danger",
|
|
102
|
-
icon:
|
|
102
|
+
icon: L
|
|
103
103
|
}, F(e = a("button.remove")) ? e : {
|
|
104
104
|
default: () => [e]
|
|
105
105
|
});
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("element-plus/es/components/table-column/style/css");const r=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");const q=require("../../hooks/useList.cjs");require("../../hooks/useHiddenTitle.cjs");require("../../hooks/useForm.cjs");require("../../hooks/useShow.cjs");require("../../hooks/useReferenceArrayField.cjs");require("../../hooks/useTreeWithDetails.cjs");require("../../hooks/useFormGrid.cjs");require("../../hooks/useReferenceArrayInput.cjs");const d=require("element-plus"),m=require("vue-router"),b=require("../can-access/index.cjs"),f=r.defineComponent({name:"SkyDataTableCol",inheritAttrs:!1,props:{source:String,label:String},setup(e,{slots:i,attrs:l}){const n=m.useRoute(),{addExportColumn:a}=q.useList(),u=i.default?.(),t=r.computed(()=>e.label||e.source||""),c=n.meta;return e.source&&a({[e.source]:t.value}),()=>r.createVNode(b.SkyCanAccess,{resource:c.resource,action:"list",column:e.source},{default:()=>[r.createVNode(d.ElTableColumn,r.mergeProps({prop:e.source,label:t.value},l),{default:o=>{if(u&&o.$index>-1)return u.map(s=>r.cloneVNode(s,{row:o.row}))}})]})}});exports.SkyDataTableCol=f;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("element-plus/es/components/table-column/style/css");const r=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");const q=require("../../hooks/useList.cjs");require("../../hooks/useHiddenTitle.cjs");require("../../hooks/useForm.cjs");require("../../hooks/useShow.cjs");require("../../hooks/useReferenceArrayField.cjs");require("../../hooks/useTreeWithDetails.cjs");require("../../hooks/useFormGrid.cjs");require("../../hooks/useReferenceArrayInput.cjs");require("vue-i18n");const d=require("element-plus"),m=require("vue-router"),b=require("../can-access/index.cjs"),f=r.defineComponent({name:"SkyDataTableCol",inheritAttrs:!1,props:{source:String,label:String},setup(e,{slots:i,attrs:l}){const n=m.useRoute(),{addExportColumn:a}=q.useList(),u=i.default?.(),t=r.computed(()=>e.label||e.source||""),c=n.meta;return e.source&&a({[e.source]:t.value}),()=>r.createVNode(b.SkyCanAccess,{resource:c.resource,action:"list",column:e.source},{default:()=>[r.createVNode(d.ElTableColumn,r.mergeProps({prop:e.source,label:t.value},l),{default:o=>{if(u&&o.$index>-1)return u.map(s=>r.cloneVNode(s,{row:o.row}))}})]})}});exports.SkyDataTableCol=f;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../src/components/data-table-col/index.tsx"],"sourcesContent":["import { useList } from '@/hooks'\r\nimport { ElTableColumn, type TableColumnCtx } from 'element-plus'\r\nimport { cloneVNode, computed, defineComponent, type Reactive } from 'vue'\r\nimport { useRoute } from 'vue-router'\r\nimport { SkyCanAccess } from '../can-access'\r\nimport type { SkyLayoutRouteMeta } from '@/router'\r\n\r\nexport interface DateTableProps {\r\n source?: string\r\n label?: string\r\n}\r\n\r\nexport interface ElTableColumnScope {\r\n row: Reactive<Record<string, unknown>>\r\n column: TableColumnCtx\r\n $index: number\r\n}\r\n\r\nexport const SkyDataTableCol = defineComponent<DateTableProps>({\r\n name: 'SkyDataTableCol',\r\n inheritAttrs: false,\r\n props: {\r\n source: String,\r\n label: String,\r\n },\r\n setup(props, { slots, attrs }) {\r\n const route = useRoute()\r\n const { addExportColumn } = useList()!\r\n const children = slots.default?.()\r\n const title = computed<string>(() => props.label || props.source || '')\r\n const routeMeta = route.meta as SkyLayoutRouteMeta\r\n if (props.source) {\r\n addExportColumn({ [props.source]: title.value })\r\n }\r\n\r\n // h(vnode.type as Component, { key: i, scope, ...vnode.props }) 等效于 cloneVNode(vnode, { row... })\r\n return () => (\r\n <SkyCanAccess resource={routeMeta.resource} action=\"list\" column={props.source}>\r\n <ElTableColumn prop={props.source} label={title.value} {...attrs}>\r\n {(scope: ElTableColumnScope) => {\r\n if (children && scope.$index > -1) {\r\n return children.map((vnode) => cloneVNode(vnode, { row: scope['row'] }))\r\n }\r\n }}\r\n </ElTableColumn>\r\n </SkyCanAccess>\r\n )\r\n },\r\n})\r\n"],"names":["SkyDataTableCol","defineComponent","name","inheritAttrs","props","source","label","attrs","route","useRoute","addExportColumn","children","slots","title","computed","routeMeta","default"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../src/components/data-table-col/index.tsx"],"sourcesContent":["import { useList } from '@/hooks'\r\nimport { ElTableColumn, type TableColumnCtx } from 'element-plus'\r\nimport { cloneVNode, computed, defineComponent, type Reactive } from 'vue'\r\nimport { useRoute } from 'vue-router'\r\nimport { SkyCanAccess } from '../can-access'\r\nimport type { SkyLayoutRouteMeta } from '@/router'\r\n\r\nexport interface DateTableProps {\r\n source?: string\r\n label?: string\r\n}\r\n\r\nexport interface ElTableColumnScope {\r\n row: Reactive<Record<string, unknown>>\r\n column: TableColumnCtx\r\n $index: number\r\n}\r\n\r\nexport const SkyDataTableCol = defineComponent<DateTableProps>({\r\n name: 'SkyDataTableCol',\r\n inheritAttrs: false,\r\n props: {\r\n source: String,\r\n label: String,\r\n },\r\n setup(props, { slots, attrs }) {\r\n const route = useRoute()\r\n const { addExportColumn } = useList()!\r\n const children = slots.default?.()\r\n const title = computed<string>(() => props.label || props.source || '')\r\n const routeMeta = route.meta as SkyLayoutRouteMeta\r\n if (props.source) {\r\n addExportColumn({ [props.source]: title.value })\r\n }\r\n\r\n // h(vnode.type as Component, { key: i, scope, ...vnode.props }) 等效于 cloneVNode(vnode, { row... })\r\n return () => (\r\n <SkyCanAccess resource={routeMeta.resource} action=\"list\" column={props.source}>\r\n <ElTableColumn prop={props.source} label={title.value} {...attrs}>\r\n {(scope: ElTableColumnScope) => {\r\n if (children && scope.$index > -1) {\r\n return children.map((vnode) => cloneVNode(vnode, { row: scope['row'] }))\r\n }\r\n }}\r\n </ElTableColumn>\r\n </SkyCanAccess>\r\n )\r\n },\r\n})\r\n"],"names":["SkyDataTableCol","defineComponent","name","inheritAttrs","props","source","label","attrs","route","useRoute","addExportColumn","children","slots","title","computed","routeMeta","default"],"mappings":"i5BAkBAA,EAAAC,EAAAA,gBAAA,CACEC,KAAAA,kBACAC,aAAAA,GACAC,MAAAA,CACEC,OAAAA,OACAC,MAAAA,yBAEoBC,MAAAA,CAAM,EAAA,CAC1B,MAAAC,EAAAC,EAAAA,SAAA,GACQC,gBAAAA,eACRC,EAAAC,EAAA,UAAA,EACAC,EAAAC,EAAAA,SAAA,IAAAV,EAAA,OAAAA,EAAA,QAAA,EAAA,EACAW,EAAAP,EAAA,sBAEEE,EAAAA,CAAkB,CAAAN,EAAA,MAAA,EAAAS,EAAA,KAA4B,CAAA,wDAKJ,OAAA,OAAA,OAAAT,EAAA,MAAoC,EAAA,CAAAY,QAAAA,IAAAA,CAAAA,cAAAA,EAAAA,cAAAA,EAAAA,WAAAA,eAC3C,MAAAH,EAAA,KAAoB,EAAAN,CAAA,EAAA,wEAGsB,CAAA,CAAA,CAEzE,CAAC,CAAA,CAAA,GAIT,CACF,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "element-plus/es/components/table-column/style/css";
|
|
2
|
-
import { defineComponent as
|
|
2
|
+
import { defineComponent as c, computed as s, createVNode as m, mergeProps as f, cloneVNode as d } from "vue";
|
|
3
3
|
import "../../hooks/useUser.mjs";
|
|
4
4
|
import "../../hooks/usePermission.mjs";
|
|
5
5
|
import "../../hooks/useMenu.mjs";
|
|
@@ -16,10 +16,11 @@ import "../../hooks/useReferenceArrayField.mjs";
|
|
|
16
16
|
import "../../hooks/useTreeWithDetails.mjs";
|
|
17
17
|
import "../../hooks/useFormGrid.mjs";
|
|
18
18
|
import "../../hooks/useReferenceArrayInput.mjs";
|
|
19
|
+
import "vue-i18n";
|
|
19
20
|
import { ElTableColumn as C } from "element-plus";
|
|
20
21
|
import { useRoute as S } from "vue-router";
|
|
21
22
|
import { SkyCanAccess as g } from "../can-access/index.mjs";
|
|
22
|
-
const
|
|
23
|
+
const G = /* @__PURE__ */ c({
|
|
23
24
|
name: "SkyDataTableCol",
|
|
24
25
|
inheritAttrs: !1,
|
|
25
26
|
props: {
|
|
@@ -46,7 +47,7 @@ const F = /* @__PURE__ */ p({
|
|
|
46
47
|
}, l), {
|
|
47
48
|
default: (e) => {
|
|
48
49
|
if (t && e.$index > -1)
|
|
49
|
-
return t.map((
|
|
50
|
+
return t.map((p) => d(p, {
|
|
50
51
|
row: e.row
|
|
51
52
|
}));
|
|
52
53
|
}
|
|
@@ -55,6 +56,6 @@ const F = /* @__PURE__ */ p({
|
|
|
55
56
|
}
|
|
56
57
|
});
|
|
57
58
|
export {
|
|
58
|
-
|
|
59
|
+
G as SkyDataTableCol
|
|
59
60
|
};
|
|
60
61
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../src/components/data-table-col/index.tsx"],"sourcesContent":["import { useList } from '@/hooks'\r\nimport { ElTableColumn, type TableColumnCtx } from 'element-plus'\r\nimport { cloneVNode, computed, defineComponent, type Reactive } from 'vue'\r\nimport { useRoute } from 'vue-router'\r\nimport { SkyCanAccess } from '../can-access'\r\nimport type { SkyLayoutRouteMeta } from '@/router'\r\n\r\nexport interface DateTableProps {\r\n source?: string\r\n label?: string\r\n}\r\n\r\nexport interface ElTableColumnScope {\r\n row: Reactive<Record<string, unknown>>\r\n column: TableColumnCtx\r\n $index: number\r\n}\r\n\r\nexport const SkyDataTableCol = defineComponent<DateTableProps>({\r\n name: 'SkyDataTableCol',\r\n inheritAttrs: false,\r\n props: {\r\n source: String,\r\n label: String,\r\n },\r\n setup(props, { slots, attrs }) {\r\n const route = useRoute()\r\n const { addExportColumn } = useList()!\r\n const children = slots.default?.()\r\n const title = computed<string>(() => props.label || props.source || '')\r\n const routeMeta = route.meta as SkyLayoutRouteMeta\r\n if (props.source) {\r\n addExportColumn({ [props.source]: title.value })\r\n }\r\n\r\n // h(vnode.type as Component, { key: i, scope, ...vnode.props }) 等效于 cloneVNode(vnode, { row... })\r\n return () => (\r\n <SkyCanAccess resource={routeMeta.resource} action=\"list\" column={props.source}>\r\n <ElTableColumn prop={props.source} label={title.value} {...attrs}>\r\n {(scope: ElTableColumnScope) => {\r\n if (children && scope.$index > -1) {\r\n return children.map((vnode) => cloneVNode(vnode, { row: scope['row'] }))\r\n }\r\n }}\r\n </ElTableColumn>\r\n </SkyCanAccess>\r\n )\r\n },\r\n})\r\n"],"names":["SkyDataTableCol","defineComponent","name","inheritAttrs","props","source","label","attrs","route","useRoute","addExportColumn","children","slots","title","computed","routeMeta","default"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../src/components/data-table-col/index.tsx"],"sourcesContent":["import { useList } from '@/hooks'\r\nimport { ElTableColumn, type TableColumnCtx } from 'element-plus'\r\nimport { cloneVNode, computed, defineComponent, type Reactive } from 'vue'\r\nimport { useRoute } from 'vue-router'\r\nimport { SkyCanAccess } from '../can-access'\r\nimport type { SkyLayoutRouteMeta } from '@/router'\r\n\r\nexport interface DateTableProps {\r\n source?: string\r\n label?: string\r\n}\r\n\r\nexport interface ElTableColumnScope {\r\n row: Reactive<Record<string, unknown>>\r\n column: TableColumnCtx\r\n $index: number\r\n}\r\n\r\nexport const SkyDataTableCol = defineComponent<DateTableProps>({\r\n name: 'SkyDataTableCol',\r\n inheritAttrs: false,\r\n props: {\r\n source: String,\r\n label: String,\r\n },\r\n setup(props, { slots, attrs }) {\r\n const route = useRoute()\r\n const { addExportColumn } = useList()!\r\n const children = slots.default?.()\r\n const title = computed<string>(() => props.label || props.source || '')\r\n const routeMeta = route.meta as SkyLayoutRouteMeta\r\n if (props.source) {\r\n addExportColumn({ [props.source]: title.value })\r\n }\r\n\r\n // h(vnode.type as Component, { key: i, scope, ...vnode.props }) 等效于 cloneVNode(vnode, { row... })\r\n return () => (\r\n <SkyCanAccess resource={routeMeta.resource} action=\"list\" column={props.source}>\r\n <ElTableColumn prop={props.source} label={title.value} {...attrs}>\r\n {(scope: ElTableColumnScope) => {\r\n if (children && scope.$index > -1) {\r\n return children.map((vnode) => cloneVNode(vnode, { row: scope['row'] }))\r\n }\r\n }}\r\n </ElTableColumn>\r\n </SkyCanAccess>\r\n )\r\n },\r\n})\r\n"],"names":["SkyDataTableCol","defineComponent","name","inheritAttrs","props","source","label","attrs","route","useRoute","addExportColumn","children","slots","title","computed","routeMeta","default"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAkBA,MAAAA,IAAA,gBAAAC,EAAA;AAAA,EACEC,MAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,OAAAA;AAAAA,IACEC,QAAAA;AAAAA,IACAC,OAAAA;AAAAA;;;IAEoBC,OAAAA;AAAAA,EAAM,GAAA;AAC1B,UAAAC,IAAAC,EAAA;MACQC,iBAAAA;AAAAA,aACRC,IAAAC,EAAA,UAAA,GACAC,IAAAC,EAAA,MAAAV,EAAA,SAAAA,EAAA,UAAA,EAAA,GACAW,IAAAP,EAAA;uBAEEE,EAAAA;AAAAA,MAAkB,CAAAN,EAAA,MAAA,GAAAS,EAAA;AAAA,IAA4B,CAAA;;MAKJ,QAAA;AAAA,MAAA,QAAAT,EAAA;AAAA,IAAoC,GAAA;AAAA,MAAAY,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA,EAAAA;AAAAA;QAC3C,OAAAH,EAAA;AAAA,MAAoB,GAAAN,CAAA,GAAA;AAAA;;;;YAGsB,CAAA,CAAA;AAAA,QAEzE;AAAA,MAAC,CAAA,CAAA;AAAA;EAIT;AACF,CAAA;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("element-plus/es/components/button/style/css");require("element-plus/es/components/card/style/css");require("element-plus/es/components/popconfirm/style/css");require("element-plus/es/components/skeleton/style/css");const t=require("vue");require("../../hooks/useUser.cjs");require("../../hooks/usePermission.cjs");require("../../hooks/useMenu.cjs");const R=require("../../hooks/useTab.cjs"),I=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 _=require("../../hooks/useForm.cjs");require("../../hooks/useShow.cjs");require("../../hooks/useReferenceArrayField.cjs");const h=require("../../hooks/useTreeWithDetails.cjs");require("../../hooks/useFormGrid.cjs");require("../../hooks/useReferenceArrayInput.cjs");const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("element-plus/es/components/button/style/css");require("element-plus/es/components/card/style/css");require("element-plus/es/components/popconfirm/style/css");require("element-plus/es/components/skeleton/style/css");const t=require("vue");require("../../hooks/useUser.cjs");require("../../hooks/usePermission.cjs");require("../../hooks/useMenu.cjs");const R=require("../../hooks/useTab.cjs"),I=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 _=require("../../hooks/useForm.cjs");require("../../hooks/useShow.cjs");require("../../hooks/useReferenceArrayField.cjs");const h=require("../../hooks/useTreeWithDetails.cjs");require("../../hooks/useFormGrid.cjs");require("../../hooks/useReferenceArrayInput.cjs");const m=require("../../setup/index.cjs"),j=require("../../icons/EpDelete.cjs"),M=require("../../icons/EpDocumentAdd.cjs"),f=require("@vueuse/core"),o=require("element-plus"),K=require("vue-i18n"),b=require("vue-router"),W=require("../can-access/index.cjs");function S(r){return typeof r=="function"||Object.prototype.toString.call(r)==="[object Object]"&&!t.isVNode(r)}const B=t.defineComponent({name:"SkyEdit",inheritAttrs:!1,props:{dataId:[String,Number]},setup(r,{slots:A,attrs:E}){const{t:u}=K.useI18n(),k=b.useRouter(),i=b.useRoute(),{removeTab:C,lastTab:s}=R.useTab(),l=t.computed(()=>r.dataId?r.dataId:i.params.id),{formData:N,formRef:v,editData:c}=_.useProvideForm(),n=h.useTreeWithDetails(),{removeKeepAlive:D}=I.useRouteKeepAlive(),d=i.meta;let q;const{isLoading:V,execute:w}=f.useAsyncState(async()=>{q=new AbortController;const e=await m.skyConfig.dataProvider?.getOne?.(i.meta.resource,{id:l.value,signal:q.signal});if(e?.data)return c.value=e.data,e},void 0,{immediate:!0});let g;const{isLoading:x,execute:P}=f.useAsyncState(async e=>(g=new AbortController,m.skyConfig.dataProvider?.update?.(i.meta.resource,{id:l.value,data:e,signal:g.signal})),void 0,{immediate:!1}),O=async()=>{if(!v.value||!await v.value.validate())return;const a=await P(0,{...N});a&&(n?.editSuccess?n.editSuccess(a):(o.ElMessage.success(u("submit.success")),c.value=null,await w()))};let p;const{isLoading:y,execute:T}=f.useAsyncState(async()=>(p=new AbortController,m.skyConfig.dataProvider?.deleteMany?.(i.meta.resource,{ids:[l.value],signal:p.signal})),void 0,{immediate:!1}),L=async()=>{const e=await T();e&&(n?.deleteSuccess?n.deleteSuccess(e):(d.keepAliveName&&D(d.keepAliveName),C(i.name),s.value&&k.replace({name:s.value.routeName,params:s.value.routeParams})))};return()=>t.createVNode("div",{class:"sky-edit"},[t.createVNode(W.SkyCanAccess,{resource:d.resource,action:"edit"},{default:()=>[t.createVNode(o.ElCard,E,{default:()=>t.createVNode(o.ElSkeleton,{loading:V.value,animated:!0},{default:()=>[c.value&&A.default?.()]}),footer:()=>{let e;return t.createVNode("div",{class:"sky-edit__footer"},[t.createVNode(o.ElButton,{type:"primary",icon:M.EpDocumentAdd,loading:x.value,onClick:O,disabled:y.value},S(e=u("button.submit"))?e:{default:()=>[e]}),t.createVNode(o.ElPopconfirm,{title:u("popconfirm.remove"),onConfirm:L},{reference:()=>{let a;return t.createVNode(o.ElButton,{type:"danger",text:!0,icon:j.EpDelete,disabled:y.value},S(a=u("button.remove"))?a:{default:()=>[a]})}})])}})]})])}});exports.SkyEdit=B;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|