@pubinfo/module-rbac 2.0.15 → 2.1.1

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.
Files changed (49) hide show
  1. package/dist/{HoverCard-DASfDgI1.js → HoverCard-7agF2aDO.js} +1 -1
  2. package/dist/{HoverCard.vue_vue_type_script_setup_true_lang-BqEarhzP.js → HoverCard.vue_vue_type_script_setup_true_lang-DEScDCo1.js} +1 -1
  3. package/dist/{LayoutForm-C-vNwp3q.js → LayoutForm-Pv6UyKl3.js} +1 -1
  4. package/dist/MetaForm-BMPtZc0g.js +42413 -0
  5. package/dist/MetaForm.css +1 -1
  6. package/dist/{OrgAndPosition-DjF_gcp6.js → OrgAndPosition-R-YixdXG.js} +1 -1
  7. package/dist/{OrgAndPosition.vue_vue_type_script_setup_true_lang-CFSDHn40.js → OrgAndPosition.vue_vue_type_script_setup_true_lang-jEjTok4n.js} +1 -1
  8. package/dist/{ResourceEdit-D2YFu-Gk.js → ResourceEdit-D59JUDvG.js} +1 -1
  9. package/dist/{ResourceEdit.vue_vue_type_script_setup_true_lang-Cb0mKIlJ.js → ResourceEdit.vue_vue_type_script_setup_true_lang-IWn27Vz1.js} +2 -2
  10. package/dist/{UserAuthorization-rqttVub5.js → UserAuthorization-Ch_iKzms.js} +1 -1
  11. package/dist/{UserEdit-DkNVPVA4.js → UserEdit-B1fnFcSC.js} +1 -1
  12. package/dist/UserEdit.vue_vue_type_script_setup_true_lang-SIR1ZO_N.js +315 -0
  13. package/dist/{drawerBlackWhiteList-Cr16yNs8.js → drawerBlackWhiteList-eWyKScZN.js} +1 -1
  14. package/dist/{drawerBlackWhiteList.vue_vue_type_script_setup_true_lang-BR6Yeiie.js → drawerBlackWhiteList.vue_vue_type_script_setup_true_lang-CNBKo3Jg.js} +17 -16
  15. package/dist/{drawerPosition-BYypSGoF.js → drawerPosition-BA_gLotd.js} +1 -1
  16. package/dist/{drawerPosition.vue_vue_type_script_setup_true_lang-DcZ48XJV.js → drawerPosition.vue_vue_type_script_setup_true_lang-ZqfbI05C.js} +1 -1
  17. package/dist/{drawerRegion-BiIlYQ0Z.js → drawerRegion-CauOP4lh.js} +1 -1
  18. package/dist/{drawerRegion.vue_vue_type_script_setup_true_lang-BwAj_RKw.js → drawerRegion.vue_vue_type_script_setup_true_lang-DeL9jV-P.js} +50 -48
  19. package/dist/gangweijiekou-CUGlx4Ni.js +48 -0
  20. package/dist/{index-C2G4xRrJ.js → index-BH3LYln0.js} +1 -1
  21. package/dist/{index-Cqkr8Rvk.js → index-BhZNbJp6.js} +1 -1
  22. package/dist/{index-nAPHtTM7.js → index-Bm3WQuJD.js} +1 -1
  23. package/dist/{index-qn7U9T51.js → index-CGLg7J6G.js} +25 -25
  24. package/dist/{index-BPkJOFXE.js → index-DQhQqT_Z.js} +1 -1
  25. package/dist/{index-DoFuRlsc.js → index-iBmBJd50.js} +2 -2
  26. package/dist/index.js +67 -42
  27. package/dist/index14.css +1 -1
  28. package/dist/index15.css +1 -1
  29. package/dist/index17.css +1 -1
  30. package/dist/isEmpty-BgDIb4aS.js +20 -0
  31. package/dist/utils/validateObjectStructure.d.ts +11 -0
  32. package/dist/vanilla-picker-BAEwS4Fy.js +536 -0
  33. package/dist/views/resource/model.d.ts +1 -0
  34. package/package.json +4 -3
  35. package/src/api/modules/assist/qunzujiekou.ts +3 -0
  36. package/src/api/modules/assist/quyujiekou.ts +2 -0
  37. package/src/api/modules/configData/heibaimingdanfuwu.ts +2 -0
  38. package/src/api/modules/configData/zidifuwu.ts +4 -0
  39. package/src/api/modules/rbac/gangweijiekou.ts +3 -0
  40. package/src/api/modules/rbac/yonghushoucangbiaojiekou.ts +2 -0
  41. package/src/api/modules/rbac/yonghuzuijinchangyongbiaojiekou.ts +1 -0
  42. package/src/components/JsonEditorModal/index.vue +59 -0
  43. package/src/utils/validateObjectStructure.ts +47 -0
  44. package/src/views/resource/components/HoverCard.vue +1 -1
  45. package/src/views/resource/components/MetaForm.vue +24 -0
  46. package/src/views/resource/model.ts +2 -0
  47. package/dist/MetaForm-13JASu7v.js +0 -401
  48. package/dist/UserEdit.vue_vue_type_script_setup_true_lang-CFs0SxVJ.js +0 -330
  49. package/dist/gangweijiekou-Cs016LjQ.js +0 -46
@@ -20,6 +20,7 @@ export function postDictItemDeleteById<
20
20
  {
21
21
  params: { ...queryParams },
22
22
  ...(options || {}),
23
+ meta: { ...(options?.meta ?? {}), pathParams: [param0] },
23
24
  },
24
25
  );
25
26
  }
@@ -44,6 +45,7 @@ export function deleteDictItemDeleteById<
44
45
  {
45
46
  params: { ...queryParams },
46
47
  ...(options || {}),
48
+ meta: { ...(options?.meta ?? {}), pathParams: [param0] },
47
49
  },
48
50
  );
49
51
  }
@@ -152,6 +154,7 @@ export function postDictTypeDeleteById<
152
154
  {
153
155
  params: { ...queryParams },
154
156
  ...(options || {}),
157
+ meta: { ...(options?.meta ?? {}), pathParams: [param0] },
155
158
  },
156
159
  );
157
160
  }
@@ -176,6 +179,7 @@ export function deleteDictTypeDeleteById<
176
179
  {
177
180
  params: { ...queryParams },
178
181
  ...(options || {}),
182
+ meta: { ...(options?.meta ?? {}), pathParams: [param0] },
179
183
  },
180
184
  );
181
185
  }
@@ -20,6 +20,7 @@ export function postRbacPostDeleteById<
20
20
  {
21
21
  params: { ...queryParams },
22
22
  ...(options || {}),
23
+ meta: { ...(options?.meta ?? {}), pathParams: [param0] },
23
24
  },
24
25
  );
25
26
  }
@@ -44,6 +45,7 @@ export function deleteRbacPostDeleteById<
44
45
  {
45
46
  params: { ...queryParams },
46
47
  ...(options || {}),
48
+ meta: { ...(options?.meta ?? {}), pathParams: [param0] },
47
49
  },
48
50
  );
49
51
  }
@@ -65,6 +67,7 @@ export function getRbacPostDetailById<
65
67
  return request.Get<R, T>(`/rbac/post/detail/${param0}`, {
66
68
  params: { ...queryParams },
67
69
  ...(options || {}),
70
+ meta: { ...(options?.meta ?? {}), pathParams: [param0] },
68
71
  });
69
72
  }
70
73
 
@@ -20,6 +20,7 @@ export function postRbacCollectByIdDelete<
20
20
  {
21
21
  params: { ...queryParams },
22
22
  ...(options || {}),
23
+ meta: { ...(options?.meta ?? {}), pathParams: [param0] },
23
24
  },
24
25
  );
25
26
  }
@@ -41,6 +42,7 @@ export function getRbacCollectByIdDetail<
41
42
  return request.Get<R, T>(`/rbac/collect/${param0}/detail`, {
42
43
  params: { ...queryParams },
43
44
  ...(options || {}),
45
+ meta: { ...(options?.meta ?? {}), pathParams: [param0] },
44
46
  });
45
47
  }
46
48
 
@@ -17,6 +17,7 @@ export function getRbacUsedByIdDetail<
17
17
  return request.Get<R, T>(`/rbac/used/${param0}/detail`, {
18
18
  params: { ...queryParams },
19
19
  ...(options || {}),
20
+ meta: { ...(options?.meta ?? {}), pathParams: [param0] },
20
21
  });
21
22
  }
22
23
 
@@ -0,0 +1,59 @@
1
+ <script setup lang="ts">
2
+ import { useToggle } from '@vueuse/core';
3
+ import { message } from 'ant-design-vue';
4
+ import JsonEditorVue from 'json-editor-vue';
5
+ import { validateObjectStructure } from '@/utils/validateObjectStructure';
6
+
7
+ defineOptions({
8
+ name: 'JsonEditorModal',
9
+ inheritAttrs: false,
10
+ });
11
+
12
+ const modelValue = defineModel();
13
+ const [open, toggle] = useToggle(false);
14
+
15
+ const inputValue = ref();
16
+
17
+ watchEffect(() => {
18
+ inputValue.value = JSON.stringify(modelValue.value);
19
+ });
20
+
21
+ function onFinish() {
22
+ try {
23
+ const parseValue = JSON.parse(inputValue.value);
24
+ const { valid, errors } = validateObjectStructure(parseValue, { maxDepth: 2, maxKeysPerLevel: 8 });
25
+ if (!valid || !parseValue) {
26
+ message.info(errors[0]);
27
+ return;
28
+ }
29
+
30
+ modelValue.value = parseValue;
31
+ toggle(false);
32
+ }
33
+ catch (_) {
34
+ message.info('JSON数据格式错误');
35
+ }
36
+ }
37
+ </script>
38
+
39
+ <template>
40
+ <div @click="toggle(true)">
41
+ <slot name="trigger" />
42
+ </div>
43
+
44
+ <a-modal
45
+ v-bind="$attrs"
46
+ v-model:open="open"
47
+ :mask-closable="false"
48
+ :width="1020"
49
+ @ok="onFinish()"
50
+ >
51
+ <div class="h-[50vh] overflow-y-auto">
52
+ <JsonEditorVue
53
+ v-model="inputValue"
54
+ :mode="'text' as any"
55
+ class="h-full"
56
+ />
57
+ </div>
58
+ </a-modal>
59
+ </template>
@@ -0,0 +1,47 @@
1
+ export interface ValidateOptions {
2
+ /** 允许的最大嵌套层级(含根层) */
3
+ maxDepth?: number
4
+ /** 每一层最多 key 数 */
5
+ maxKeysPerLevel?: number
6
+ }
7
+
8
+ export interface ValidateResult {
9
+ valid: boolean
10
+ errors: string[]
11
+ }
12
+
13
+ export function validateObjectStructure(
14
+ obj: any,
15
+ options: ValidateOptions = {},
16
+ ): ValidateResult {
17
+ const { maxDepth = 3, maxKeysPerLevel = 10 } = options;
18
+ const errors: string[] = [];
19
+
20
+ function traverse(value: any, depth: number, path: string) {
21
+ if (depth > maxDepth) {
22
+ errors.push(`对象嵌套层级超过限制,最大允许 ${maxDepth} 层。问题位置: ${path}`);
23
+ return;
24
+ }
25
+
26
+ if (value && typeof value === 'object' && !Array.isArray(value)) {
27
+ const keys = Object.keys(value);
28
+
29
+ if (keys.length > maxKeysPerLevel) {
30
+ errors.push(
31
+ `对象包含过多字段(${keys.length} 个),最大允许 ${maxKeysPerLevel} 个。位置: ${path}`,
32
+ );
33
+ }
34
+
35
+ keys.forEach((key) => {
36
+ traverse(value[key], depth + 1, `${path}.${key}`);
37
+ });
38
+ }
39
+ }
40
+
41
+ traverse(obj, 1, 'root');
42
+
43
+ return {
44
+ valid: errors.length === 0,
45
+ errors,
46
+ };
47
+ }
@@ -40,7 +40,7 @@ const [expanded, expand] = useToggle();
40
40
 
41
41
  <div
42
42
  v-if="expanded"
43
- class="absolute top-[70px] -left-[1px] z-50 w-[calc(100%+2px)] pt-5 px-5 border border-solid rounded-b-lg"
43
+ class="absolute top-[70px] -left-px z-50 w-[calc(100%+2px)] pt-5 px-5 border border-solid rounded-b-lg"
44
44
  :style="{
45
45
  borderColor: hovered ? token.colorPrimary : token.colorBorder,
46
46
  backgroundColor: token.colorBgElevated,
@@ -181,6 +181,30 @@ const { show } = useMetaForm(form);
181
181
  </HoverCard>
182
182
  </a-form-item>
183
183
  </a-col>
184
+
185
+ <a-col :span="12">
186
+ <a-form-item name="custom" :label-col="{ span: 0 }">
187
+ <HoverCard class="flex items-center justify-between">
188
+ <div class="text-sm font-medium">
189
+ 自定义 meta 数据
190
+
191
+ <span class="text-[rgba(0,0,0,0.45)]">
192
+ <a-tooltip title="自定义的数据在路由的 meta.custom 中获取">
193
+ <QuestionCircleOutlined />
194
+ </a-tooltip>
195
+ </span>
196
+ </div>
197
+
198
+ <JsonEditorModal v-model="form.meta!.custom" title="自定义 meta 数据">
199
+ <template #trigger>
200
+ <a-button type="primary" size="small">
201
+ 配置
202
+ </a-button>
203
+ </template>
204
+ </JsonEditorModal>
205
+ </HoverCard>
206
+ </a-form-item>
207
+ </a-col>
184
208
  </a-row>
185
209
  </div>
186
210
  </template>
@@ -49,6 +49,7 @@ export interface CustomMeta {
49
49
  iframeCache?: boolean
50
50
  layout: CustomMetaLayout
51
51
  partyLogin?: any[] // 第三方登录配置数据
52
+ custom?: any // 用户自定义meta数据
52
53
  }
53
54
 
54
55
  export const defaultMeta: CustomMeta = {
@@ -76,4 +77,5 @@ export const defaultMeta: CustomMeta = {
76
77
  toolbar: true,
77
78
  },
78
79
  partyLogin: undefined,
80
+ custom: undefined,
79
81
  };
@@ -1,401 +0,0 @@
1
- import { Divider as w, Row as M, Col as T, FormItem as U, Switch as A, Input as P } from "ant-design-vue/es";
2
- import { computed as C, watch as h, defineComponent as j, useModel as D, createElementBlock as E, openBlock as c, createVNode as t, withCtx as u, createTextVNode as O, createBlock as f, createCommentVNode as p, createElementVNode as o, unref as _ } from "vue";
3
- import "./enum-D5iPiZiT.js";
4
- import { RESOURCE_TYPE as d } from "pubinfo";
5
- import { _ as b } from "./HoverCard.vue_vue_type_script_setup_true_lang-BqEarhzP.js";
6
- import { _ as I } from "./index.js";
7
- import './MetaForm.css';const x = {
8
- url: "",
9
- component: "",
10
- routeName: "",
11
- scope: "",
12
- activeMenu: void 0,
13
- isDev: !1,
14
- devText: "该功能暂未上线,敬请期待!",
15
- cache: !1,
16
- cacheName: void 0,
17
- noCache: void 0,
18
- pin: !1,
19
- sidebar: !0,
20
- tabbar: !0,
21
- breadcrumb: !0,
22
- link: void 0,
23
- iframe: void 0,
24
- iframeCache: !1,
25
- layout: {
26
- header: !0,
27
- sidebar: !0,
28
- tabs: !0,
29
- toolbar: !0
30
- },
31
- partyLogin: void 0
32
- };
33
- function F(l) {
34
- const a = C(() => {
35
- const n = l.value.type;
36
- return {
37
- dataPermission: [d.BUTTON, d.MENU, d.NON_MENU].includes(n),
38
- // 开发模式选项可见性:只在应用或动态应用中显示
39
- devMode: [d.APP, d.DYNAMIC_APP].includes(n),
40
- // 缓存标签页和固定标签页选项可见性:只在菜单中显示
41
- cacheAndPin: [d.MENU].includes(n),
42
- // 侧边栏显示选项可见性:应用和动态应用不显示此选项
43
- sidebar: ![d.APP, d.DYNAMIC_APP, d.BUTTON, d.NON_MENU].includes(n),
44
- // 标签栏显示选项可见性:应用、动态应用和目录不显示此选项
45
- tabbar: ![d.APP, d.DYNAMIC_APP, d.INDEX, d.BUTTON].includes(n),
46
- breadcrumb: ![d.BUTTON].includes(n),
47
- dynamic: [d.IFRAME, d.LINK].includes(n),
48
- iframe: [d.IFRAME].includes(n)
49
- };
50
- });
51
- h(
52
- () => l.value.type,
53
- (n, e) => {
54
- n !== e && n && e && i();
55
- },
56
- { immediate: !1 }
57
- ), h(
58
- () => l.value.meta?.isDev,
59
- (n, e) => {
60
- e === !0 && n === !1 && l.value.meta && (l.value.meta.devText = x.devText), e === !1 && n === !0 && l.value.meta && !l.value.meta.devText && (l.value.meta.devText = x.devText);
61
- },
62
- { immediate: !1 }
63
- );
64
- function i() {
65
- if (l.value.meta || (l.value.meta = { ...x }), l.value.meta.cache) {
66
- const n = l.value.meta.cache;
67
- typeof n == "boolean" && (l.value.meta.cache = n), typeof n == "string" && (l.value.meta.cacheName = n, l.value.meta.cache = !0), Array.isArray(n) && (l.value.meta.cacheName = n.join(","), l.value.meta.cache = !0);
68
- }
69
- l.value.meta.noCache && Array.isArray(l.value.meta.noCache) && (l.value.meta.noCache = l.value.meta.noCache.join(",")), a.value.devMode || (l.value.meta.isDev = !1, l.value.meta.devText = x.devText), l.value.meta.isDev || (l.value.meta.devText = x.devText), a.value.cacheAndPin || (l.value.meta.cache = !1, l.value.meta.pin = !1), a.value.sidebar || (l.value.meta.sidebar = !0), a.value.tabbar || (l.value.meta.tabbar = !0);
70
- }
71
- return {
72
- show: a,
73
- resetIncompatibleOptions: i
74
- };
75
- }
76
- const z = { class: "flex items-center justify-between" }, B = { class: "flex items-center justify-between" }, S = /* @__PURE__ */ j({
77
- name: "MetaForm",
78
- __name: "MetaForm",
79
- props: {
80
- modelValue: {
81
- default: {
82
- meta: {
83
- url: "",
84
- component: ""
85
- }
86
- }
87
- },
88
- modelModifiers: {}
89
- },
90
- emits: ["update:modelValue"],
91
- setup(l) {
92
- const a = D(l, "modelValue"), { show: i } = F(a);
93
- return (n, e) => {
94
- const y = w, r = A, m = U, v = T, k = P, N = M;
95
- return c(), E("div", null, [
96
- t(y, null, {
97
- default: u(() => e[11] || (e[11] = [
98
- O("其他配置")
99
- ])),
100
- _: 1,
101
- __: [11]
102
- }),
103
- t(N, { gutter: [8, 8] }, {
104
- default: u(() => [
105
- t(v, { span: 12 }, {
106
- default: u(() => [
107
- t(m, {
108
- name: "enable",
109
- "label-col": { span: 0 }
110
- }, {
111
- default: u(() => [
112
- t(b, { class: "flex items-center justify-between" }, {
113
- default: u(() => [
114
- e[12] || (e[12] = o("div", { class: "text-sm font-medium" }, " 启用 ", -1)),
115
- t(r, {
116
- checked: a.value.enable,
117
- "onUpdate:checked": e[0] || (e[0] = (s) => a.value.enable = s)
118
- }, null, 8, ["checked"])
119
- ]),
120
- _: 1,
121
- __: [12]
122
- })
123
- ]),
124
- _: 1
125
- })
126
- ]),
127
- _: 1
128
- }),
129
- _(i).devMode ? (c(), f(v, {
130
- key: 0,
131
- span: 12
132
- }, {
133
- default: u(() => [
134
- t(b, {
135
- more: a.value.meta?.isDev,
136
- class: "flex flex-wrap items-center"
137
- }, {
138
- more: u(() => [
139
- a.value.meta?.isDev ? (c(), f(m, {
140
- key: 0,
141
- label: "提示文本",
142
- name: "devText",
143
- tooltip: "此文本将在用户点击开发模式应用时显示在提示框中",
144
- "label-col": { style: { fontSize: "12px" } },
145
- class: "w-full"
146
- }, {
147
- default: u(() => [
148
- t(k, {
149
- value: a.value.meta.devText,
150
- "onUpdate:value": e[2] || (e[2] = (s) => a.value.meta.devText = s),
151
- placeholder: "请输入开发模式下的提示文本",
152
- maxlength: 100,
153
- "show-count": "",
154
- size: "small"
155
- }, null, 8, ["value"])
156
- ]),
157
- _: 1
158
- })) : p("", !0)
159
- ]),
160
- default: u(() => [
161
- t(m, {
162
- name: "isDev",
163
- "label-col": { span: 0 },
164
- class: "form-item-bottom-0 w-full"
165
- }, {
166
- default: u(() => [
167
- o("div", z, [
168
- e[13] || (e[13] = o("div", { class: "text-sm font-medium" }, " 开发模式 ", -1)),
169
- t(r, {
170
- checked: a.value.meta.isDev,
171
- "onUpdate:checked": e[1] || (e[1] = (s) => a.value.meta.isDev = s)
172
- }, null, 8, ["checked"])
173
- ])
174
- ]),
175
- _: 1
176
- })
177
- ]),
178
- _: 1
179
- }, 8, ["more"])
180
- ]),
181
- _: 1
182
- })) : p("", !0),
183
- _(i).iframe ? (c(), f(v, {
184
- key: 1,
185
- span: 12
186
- }, {
187
- default: u(() => [
188
- t(m, {
189
- name: "enable",
190
- "label-col": { span: 0 }
191
- }, {
192
- default: u(() => [
193
- t(b, { class: "flex items-center justify-between" }, {
194
- default: u(() => [
195
- e[14] || (e[14] = o("div", { class: "text-sm font-medium" }, " 启用缓存 ", -1)),
196
- t(r, {
197
- checked: a.value.meta.iframeCache,
198
- "onUpdate:checked": e[3] || (e[3] = (s) => a.value.meta.iframeCache = s)
199
- }, null, 8, ["checked"])
200
- ]),
201
- _: 1,
202
- __: [14]
203
- })
204
- ]),
205
- _: 1
206
- })
207
- ]),
208
- _: 1
209
- })) : p("", !0),
210
- _(i).cacheAndPin ? (c(), f(v, {
211
- key: 2,
212
- span: 12
213
- }, {
214
- default: u(() => [
215
- t(b, {
216
- more: a.value.meta?.cache,
217
- class: "flex flex-wrap items-center"
218
- }, {
219
- more: u(() => [
220
- t(m, {
221
- label: "指定页缓存",
222
- name: "cacheName",
223
- tooltip: "设置页面name值,前往指定页面时,当前页被缓存",
224
- "label-col": { style: { fontSize: "12px", width: "120px" } },
225
- class: "w-full"
226
- }, {
227
- default: u(() => [
228
- t(k, {
229
- value: a.value.meta.cacheName,
230
- "onUpdate:value": e[5] || (e[5] = (s) => a.value.meta.cacheName = s),
231
- placeholder: "路由名称(多个用,隔开)",
232
- size: "small"
233
- }, null, 8, ["value"])
234
- ]),
235
- _: 1
236
- }),
237
- t(m, {
238
- label: "指定页不缓存",
239
- name: "cacheName",
240
- tooltip: "设置页面name值,前往指定页面时,当前页不缓存",
241
- "label-col": { style: { fontSize: "12px", width: "120px" } },
242
- class: "w-full"
243
- }, {
244
- default: u(() => [
245
- t(k, {
246
- value: a.value.meta.noCache,
247
- "onUpdate:value": e[6] || (e[6] = (s) => a.value.meta.noCache = s),
248
- placeholder: "路由名称(多个用,隔开)",
249
- size: "small"
250
- }, null, 8, ["value"])
251
- ]),
252
- _: 1
253
- })
254
- ]),
255
- default: u(() => [
256
- t(m, {
257
- name: "cache",
258
- "label-col": { span: 0 },
259
- class: "form-item-bottom-0 w-full"
260
- }, {
261
- default: u(() => [
262
- o("div", B, [
263
- e[15] || (e[15] = o("div", { class: "text-sm font-medium" }, " 缓存标签页 ", -1)),
264
- t(r, {
265
- checked: a.value.meta.cache,
266
- "onUpdate:checked": e[4] || (e[4] = (s) => a.value.meta.cache = s)
267
- }, null, 8, ["checked"])
268
- ])
269
- ]),
270
- _: 1
271
- })
272
- ]),
273
- _: 1
274
- }, 8, ["more"])
275
- ]),
276
- _: 1
277
- })) : p("", !0),
278
- _(i).cacheAndPin ? (c(), f(v, {
279
- key: 3,
280
- span: 12
281
- }, {
282
- default: u(() => [
283
- t(m, {
284
- name: "pin",
285
- "label-col": { span: 0 }
286
- }, {
287
- default: u(() => [
288
- t(b, { class: "flex items-center justify-between" }, {
289
- default: u(() => [
290
- e[16] || (e[16] = o("div", { class: "text-sm font-medium" }, " 固定在标签页 ", -1)),
291
- t(r, {
292
- checked: a.value.meta.pin,
293
- "onUpdate:checked": e[7] || (e[7] = (s) => a.value.meta.pin = s)
294
- }, null, 8, ["checked"])
295
- ]),
296
- _: 1,
297
- __: [16]
298
- })
299
- ]),
300
- _: 1
301
- })
302
- ]),
303
- _: 1
304
- })) : p("", !0),
305
- _(i).sidebar ? (c(), f(v, {
306
- key: 4,
307
- span: 12
308
- }, {
309
- default: u(() => [
310
- t(m, {
311
- name: "sidebar",
312
- "label-col": { span: 0 }
313
- }, {
314
- default: u(() => [
315
- t(b, { class: "flex items-center justify-between" }, {
316
- default: u(() => [
317
- e[17] || (e[17] = o("div", { class: "text-sm font-medium" }, " 在侧边栏显示 ", -1)),
318
- t(r, {
319
- checked: a.value.meta.sidebar,
320
- "onUpdate:checked": e[8] || (e[8] = (s) => a.value.meta.sidebar = s)
321
- }, null, 8, ["checked"])
322
- ]),
323
- _: 1,
324
- __: [17]
325
- })
326
- ]),
327
- _: 1
328
- })
329
- ]),
330
- _: 1
331
- })) : p("", !0),
332
- _(i).tabbar ? (c(), f(v, {
333
- key: 5,
334
- span: 12
335
- }, {
336
- default: u(() => [
337
- t(m, {
338
- name: "tabbar",
339
- "label-col": { span: 0 }
340
- }, {
341
- default: u(() => [
342
- t(b, { class: "flex items-center justify-between" }, {
343
- default: u(() => [
344
- e[18] || (e[18] = o("div", { class: "text-sm font-medium" }, " 在标签栏显示 ", -1)),
345
- t(r, {
346
- checked: a.value.meta.tabbar,
347
- "onUpdate:checked": e[9] || (e[9] = (s) => a.value.meta.tabbar = s)
348
- }, null, 8, ["checked"])
349
- ]),
350
- _: 1,
351
- __: [18]
352
- })
353
- ]),
354
- _: 1
355
- })
356
- ]),
357
- _: 1
358
- })) : p("", !0),
359
- _(i).breadcrumb ? (c(), f(v, {
360
- key: 6,
361
- span: 12
362
- }, {
363
- default: u(() => [
364
- t(m, {
365
- name: "breadcrumb",
366
- "label-col": { span: 0 }
367
- }, {
368
- default: u(() => [
369
- t(b, { class: "flex items-center justify-between" }, {
370
- default: u(() => [
371
- e[19] || (e[19] = o("div", { class: "text-sm font-medium" }, " 在面包屑显示 ", -1)),
372
- t(r, {
373
- checked: a.value.meta.breadcrumb,
374
- "onUpdate:checked": e[10] || (e[10] = (s) => a.value.meta.breadcrumb = s)
375
- }, null, 8, ["checked"])
376
- ]),
377
- _: 1,
378
- __: [19]
379
- })
380
- ]),
381
- _: 1
382
- })
383
- ]),
384
- _: 1
385
- })) : p("", !0)
386
- ]),
387
- _: 1
388
- })
389
- ]);
390
- };
391
- }
392
- }), V = /* @__PURE__ */ I(S, [["__scopeId", "data-v-220e86d6"]]), X = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
393
- __proto__: null,
394
- default: V
395
- }, Symbol.toStringTag, { value: "Module" }));
396
- export {
397
- V as M,
398
- X as a,
399
- x as d,
400
- F as u
401
- };