mvframe 1.0.81 → 1.0.83

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.
@@ -238,6 +238,51 @@ alwaysApply: true
238
238
  | `tipbtn bottom/left/right` | 控制提示方向 |
239
239
  | `MvcIcon` | 组件图标类,默认 `flex-shrink: 0` |
240
240
 
241
+ ### 表单 Label(element.scss)
242
+
243
+ `Input`、`Textarea`、`Select`、`SelectV2` 支持统一的 label 接口:
244
+
245
+ | 属性 | 用途 |
246
+ |------|------|
247
+ | `label` | 显示表单标题 |
248
+ | `material-label` | 启用 Material 风格浮动 label |
249
+
250
+ 使用规则:
251
+
252
+ - 只传 `label`:渲染为普通上方标题
253
+ - 传 `label` + `material-label`:渲染为 Material 风格浮动标签
254
+ - 不传 `label`:保持原组件默认外观
255
+
256
+ Material 风格的上浮条件:
257
+
258
+ - 当前控件有值
259
+ - 当前控件有 placeholder
260
+ - 当前控件处于 focus / 打开状态(Select / SelectV2)
261
+
262
+ 推荐写法:
263
+
264
+ ```vue
265
+ <Input v-model="form.name" label="Name" />
266
+ <Input v-model="form.name" label="Material Name" material-label />
267
+
268
+ <Textarea v-model="form.remark" label="Remark" />
269
+ <Textarea v-model="form.remark" label="Material Remark" material-label />
270
+
271
+ <Select v-model="form.type" :options="options" label="Type" />
272
+ <Select
273
+ v-model="form.type"
274
+ :options="options"
275
+ label="Material Type"
276
+ material-label
277
+ />
278
+ ```
279
+
280
+ 约束:
281
+
282
+ - Material label 的壳样式统一在 `src/style/chip/element.scss`,不要在业务组件里重复写一套 scoped 浮动 label
283
+ - 如果要做 Material 风格,优先直接使用 `label` + `material-label`,不要再额外包一层自定义标题
284
+ - 如需特殊背景色,优先通过 field surface 相关变量覆写,不要直接把 label 写死成固定背景色
285
+
241
286
  ## 7. 动画(ani.scss)
242
287
 
243
288
  | 类名 | 用途 |
package/README.cn.md CHANGED
@@ -220,6 +220,29 @@ await notify("需要发送到钉钉的消息");
220
220
  - **组件 class 与单位**:根节点 `Mvc*` + 子命名 camelCase;组件内尺寸除 1px/2px 外建议 **rem**(根号 16px),与 `style-system.mdc` 一致。
221
221
  - 工具函数、Store、路由在非 setup 场景(如守卫)中通过 **`globalThis`** 或 **`store` / `pinia` 导出**访问,与 `src/router/chip/guard.js` 用法一致。
222
222
 
223
+ ## 表单 Label
224
+
225
+ `Input`、`Textarea`、`Select`、`SelectV2` 现已支持统一的 label 接口:
226
+
227
+ ```vue
228
+ <Input v-model="form.name" label="Name" />
229
+ <Input v-model="form.name" label="Material Name" material-label />
230
+
231
+ <Textarea v-model="form.remark" label="Remark" />
232
+ <Textarea v-model="form.remark" label="Material Remark" material-label />
233
+
234
+ <Select v-model="form.type" :options="options" label="Type" />
235
+ <Select v-model="form.type" :options="options" label="Material Type" material-label />
236
+ ```
237
+
238
+ 规则:
239
+
240
+ - 只传 `label`:渲染普通上方标题
241
+ - 传 `label` + `material-label`:渲染 Material 风格浮动标签
242
+ - 不传 `label`:保持组件默认外观
243
+
244
+ 浮动 label 的公共壳样式统一实现在 `src/style/chip/element.scss`。如果你希望表单控件呈现 Material 风格,优先直接使用 `label` + `material-label`,不要在业务侧再重复造一套浮动标题样式。
245
+
223
246
  ---
224
247
 
225
248
  ## 命令行:项目目录雏形(推荐)
@@ -231,9 +254,11 @@ cd /path/to/your-app
231
254
  node /path/to/mvframe/scripts/scaffold-app.js
232
255
  # 覆盖已有同名文件:
233
256
  node /path/to/mvframe/scripts/scaffold-app.js --force
257
+ node /path/to/mvframe/scripts/scaffold-app.js -f
234
258
 
235
259
  # 不修改 package.json(仅生成源码与配置):
236
260
  node /path/to/mvframe/scripts/scaffold-app.js --no-package-json
261
+ node /path/to/mvframe/scripts/scaffold-app.js -n
237
262
 
238
263
  # 安装 mvframe 后:
239
264
  yarn exec mvframe-init-app
package/README.md CHANGED
@@ -207,6 +207,29 @@ Send messages with `globalThis.$notify.send("message")` or `import { notify } fr
207
207
  - **CSS naming & units**: root `Mvc*`, children camelCase; prefer **rem** for sizes other than 1px/2px (16px root)—see `style-system.mdc`.
208
208
  - Use **`globalThis`** or **`store` / `pinia` exports** outside `setup` (e.g. guards), as in `src/router/chip/guard.js`.
209
209
 
210
+ ## Form Labels
211
+
212
+ `Input`, `Textarea`, `Select`, and `SelectV2` support a shared label API:
213
+
214
+ ```vue
215
+ <Input v-model="form.name" label="Name" />
216
+ <Input v-model="form.name" label="Material Name" material-label />
217
+
218
+ <Textarea v-model="form.remark" label="Remark" />
219
+ <Textarea v-model="form.remark" label="Material Remark" material-label />
220
+
221
+ <Select v-model="form.type" :options="options" label="Type" />
222
+ <Select v-model="form.type" :options="options" label="Material Type" material-label />
223
+ ```
224
+
225
+ Rules:
226
+
227
+ - `label` only: renders a normal top label
228
+ - `label` + `material-label`: renders a Material-style floating label
229
+ - no `label`: keeps the default control appearance
230
+
231
+ The floating label shell is implemented centrally in `src/style/chip/element.scss`. When you want a Material-style form field, prefer the built-in `label` + `material-label` API instead of recreating the same pattern locally.
232
+
210
233
  ---
211
234
 
212
235
  ## CLI: project skeleton
@@ -217,9 +240,11 @@ From an **empty folder or existing Vite root**, generates `src/views`, `src/comp
217
240
  cd /path/to/your-app
218
241
  node /path/to/mvframe/scripts/scaffold-app.js
219
242
  node /path/to/mvframe/scripts/scaffold-app.js --force
243
+ node /path/to/mvframe/scripts/scaffold-app.js -f
220
244
 
221
245
  # Skip package.json (only scaffold sources + Vite config):
222
246
  node /path/to/mvframe/scripts/scaffold-app.js --no-package-json
247
+ node /path/to/mvframe/scripts/scaffold-app.js -n
223
248
 
224
249
  yarn exec mvframe-init-app
225
250
  # or: npx mvframe-init-app
package/dist/css/cpt.css CHANGED
@@ -1 +1 @@
1
- @charset "UTF-8";.MvcBtnGroup[data-v-39d01040]{padding:.25rem;background:var(--color-white);border-radius:var(--btn-radius);-webkit-user-select:none;user-select:none}.MvcBtnGroup.sizeSmall[data-v-39d01040]{padding:2px;border-radius:calc(var(--btn-radius, 1rem) / 2)}.MvcBtnGroup.sizeSmall .btnItem[data-v-39d01040]{padding:.25rem .625rem;font-size:.75rem;line-height:1.5;border-radius:.1875rem}.MvcBtnGroup.sizeLarge[data-v-39d01040]{padding:.375rem;border-radius:.5rem}.MvcBtnGroup.sizeLarge .btnItem[data-v-39d01040]{padding:.5rem 1.125rem;font-size:1rem;line-height:1.5;border-radius:.375rem}.MvcBtnGroup .btnItem[data-v-39d01040]{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;gap:.25rem;padding:.375rem .875rem;font-size:.875rem;line-height:1.5;color:var(--color-txt-p);background:transparent;border:none;border-radius:var(--btn-radius);word-break:keep-all;text-wrap:nowrap;cursor:pointer;transition:var(--trans-all)}.MvcBtnGroup .btnItem[data-v-39d01040]:hover:not(:disabled):not(.isActive){background:var(--color-bg-menu-item-hover)}.MvcBtnGroup .btnItem.isActive[data-v-39d01040]{color:var(--color-on-primary-text);background:var(--color-primary);position:relative;isolation:isolate}.MvcBtnGroup .btnItem.isActive[data-v-39d01040]:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;opacity:.25;background-color:var(--color-primary);transform:translateY(20%);pointer-events:none;filter:blur(.625rem);z-index:-1}.MvcBtnGroup .btnItem[data-v-39d01040]:disabled{opacity:.5;cursor:not-allowed}.MvcCard[data-v-610b0b4c]{position:relative;border:var(--border-d);border-radius:var(--card-radius);background:var(--color-bg-page-header);box-sizing:border-box;transition:box-shadow var(--trans)}.MvcCard[data-v-610b0b4c]:hover{box-shadow:0 .5rem .5rem color-mix(in srgb,var(--color-dark) 6%,var(--color-white))}.MvcCard.MvcCard--fillParent[data-v-610b0b4c]{display:flex;flex-direction:column;align-self:stretch;min-height:0;height:100%}.MvcCard .header[data-v-610b0b4c]{position:relative;padding:.75rem 1rem;border-block-end:var(--card-header-border);z-index:2;flex-shrink:0;-webkit-user-select:none;user-select:none}.MvcCard .header .headerTitle[data-v-610b0b4c]{margin:0;font-size:.875rem;font-weight:700;color:var(--color-txt-h2)}.MvcCard .body[data-v-610b0b4c]{position:relative;padding:1rem;min-height:1rem;overflow:auto;z-index:1}.MvcCard.MvcCard--fillParent .body[data-v-610b0b4c]{flex:1 1 auto;min-height:0}.MvcCard .footer[data-v-610b0b4c]{position:relative;padding:.75rem 1rem;border-block-start:var(--card-header-border);z-index:2;flex-shrink:0;-webkit-user-select:none;user-select:none}.dragArea[data-v-665c2158]{position:absolute;top:0;left:0;bottom:0;width:1rem;display:flex;align-items:center;z-index:99}.dragArea .dragHandle[data-v-665c2158]{display:flex;align-items:center;width:.875rem;height:1.75rem;background-color:var(--color-border);border-radius:0 .125rem .125rem 0;opacity:0;cursor:ew-resize;z-index:99;transition:var(--trans-all)}.dragArea .dragHandle[data-v-665c2158]:hover,.dragArea .dragHandle.active[data-v-665c2158]{opacity:1;color:var(--color-white);background-color:var(--color-primary);box-shadow:.25rem 0 .5rem var(--color-dark1)}.dragArea:hover .dragHandle[data-v-665c2158]{opacity:1}.MvcDrawerBody[data-v-1df88ac3]{position:relative;width:100%;overflow:hidden}.drawerFooter[data-v-1df88ac3]{background-image:linear-gradient(to top,50% var(--color-white),100 transparent)}.FrameTab .tabShadow[data-v-e9bf80ea]{position:absolute;top:100%;left:0;right:0;height:.5rem;background-image:linear-gradient(to bottom,rgba(0,0,0,.05) 0,transparent 100%);opacity:0;transition:opacity var(--trans)}.FrameTab .tabShadow.visible[data-v-e9bf80ea]{opacity:1}.FrameTab .tabArea[data-v-e9bf80ea]:after{content:"";position:absolute;top:2.175rem;left:0;right:0;border-bottom:var(--border-d);z-index:1}.FrameTab .tabItem[data-v-e9bf80ea]{margin-block-end:-1px;border:var(--border-d);border-block-end-color:transparent;border-radius:.25rem .25rem 0 0;background-color:var(--color-white);opacity:.5;overflow:hidden;transition:var(--trans-all)}.FrameTab .tabItem[data-v-e9bf80ea]:hover{opacity:.8}.FrameTab .tabItem.active[data-v-e9bf80ea]{opacity:1;border-block-end-color:var(--color-white);z-index:3;background-color:var(--color-bg-page-header)}.FrameTab .tabItem .abs[data-v-e9bf80ea]{transition:var(--trans-all);transform:translate(2.25rem)}.FrameTab .tabItem .abs[data-v-e9bf80ea]:hover{opacity:.8;color:var(--color-primary)}.FrameTab .tabItem.hoverItem.active[data-v-e9bf80ea]{padding-inline-end:2.25rem}.FrameTab .tabItem.hoverItem.active .abs[data-v-e9bf80ea]{transform:translate(-.375rem)}.FrameTab .tabItem.hoverItem[data-v-e9bf80ea]:hover{padding-inline-end:2.25rem}.FrameTab .tabItem.hoverItem:hover .abs[data-v-e9bf80ea]{transform:translate(-.375rem)}.FrameTab .tabItem.disabled[data-v-e9bf80ea]{opacity:.7;cursor:not-allowed}.FrameMenu[data-v-d7eb624b]{width:12rem;background-color:var(--color-bg-menu);overflow:hidden}.FrameMenu[data-v-d7eb624b]:after{content:"";position:absolute;top:0;right:0;bottom:0;border-right:var(--border-d)}.FrameMenu:hover .logomini[data-v-d7eb624b]{opacity:.1}.FrameMenu:hover .collapseArea[data-v-d7eb624b]{display:block!important}.FrameMenu .LogoArea .logomini[data-v-d7eb624b]{display:none}.FrameMenu .collapseArea[data-v-d7eb624b]{top:50%;right:1rem;height:1.25rem;width:1.24rem;transform:translateY(-50%)}.FrameMenu .MenuArea[data-v-d7eb624b]{height:calc(100vh - 8rem)}.FrameMenu .MenuArea .menuItem[data-v-d7eb624b]{height:2.75rem;transition:var(--trans-all)}.FrameMenu .MenuArea .menuItem[data-v-d7eb624b]:hover{background-color:var(--color-bg-menu-item-hover)}.FrameMenu .MenuArea .menuItem.active[data-v-d7eb624b]:hover{background-color:var(--color-primary);opacity:.8}.FrameMenu .MenuArea .menuItem.active .itemIcon[data-v-d7eb624b]{color:var(--color-on-primary-text)}.FrameMenu .MenuArea .childrenItem[data-v-d7eb624b]{transition:var(--trans-all)}.FrameMenu .MenuArea .childrenItem[data-v-d7eb624b]:hover{background-color:var(--color-bg-menu-children-item-hover)}.FrameMenu .MenuArea .childrenItem.active[data-v-d7eb624b]:hover{background-color:var(--color-primary);opacity:.8}.FrameMenu .MenuArea .itemChildrenArea[data-v-d7eb624b]{background-color:var(--color-bg-menu-children)}.FrameMenu .MenuArea .itemTitle.active[data-v-d7eb624b]{color:var(--color-on-primary-text)}.FrameMenu.collapse[data-v-d7eb624b]{width:4rem}.FrameMenu.collapse .collapseArea[data-v-d7eb624b]{right:1.5rem;display:none}.FrameMenu.collapse .LogoArea .logo[data-v-d7eb624b]{display:none}.FrameMenu.collapse .LogoArea .logomini[data-v-d7eb624b]{display:block;transition:opacity var(--trans)}.FrameMenu.collapse .MenuArea .menuItem.activeChild[data-v-d7eb624b]{position:relative;isolation:isolate}.FrameMenu.collapse .MenuArea .menuItem.activeChild[data-v-d7eb624b]:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;opacity:.25;background-color:var(--color-primary);transform:translateY(20%);pointer-events:none;filter:blur(.625rem);z-index:-1}.FrameMenu.collapse .MenuArea .itemChildrenArea[data-v-d7eb624b]{display:none}.FrameFooter[data-v-c3ba0162]{display:flex;height:3rem;padding:.5rem 1rem;gap:.5rem;font-size:14px}.FrameRightMenu[data-v-388539e5]{position:fixed;z-index:3000;min-width:10rem;max-width:calc(100vw - 1rem);padding:.25rem;border:var(--border-d);border-radius:.375rem;background-color:var(--color-bg-menu);box-shadow:0 .75rem 2rem #00000024,0 .125rem .5rem #00000014;color:var(--color-txt-p);-webkit-user-select:none;user-select:none}.FrameRightMenu .menuItem[data-v-388539e5]{display:flex;align-items:center;gap:.5rem;width:100%;min-height:2rem;padding:0 .75rem;border:none;border-radius:.25rem;background:transparent;color:inherit;cursor:pointer;font-size:.75rem;line-height:1;text-align:left;transition:var(--trans-all);white-space:nowrap}.FrameRightMenu .menuItem[data-v-388539e5]:hover{background-color:var(--color-bg-menu-item-hover);color:var(--color-primary)}.FrameRightMenu .menuItem.disabled[data-v-388539e5]{color:var(--color-txt-gray);cursor:not-allowed;opacity:.6}.FrameRightMenu .menuItem.disabled[data-v-388539e5]:hover{background:transparent;color:var(--color-txt-gray)}.FrameRightMenu .menuIcon[data-v-388539e5]{flex-shrink:0;width:1rem;font-size:.875rem;line-height:1;text-align:center}.FrameRightMenu .menuLabel[data-v-388539e5]{overflow:hidden;text-overflow:ellipsis}.FrameRightMenu .menuDivider[data-v-388539e5]{height:1px;margin:.25rem;background-color:var(--color-border)}.FrameRightMenuFade-enter-active[data-v-388539e5],.FrameRightMenuFade-leave-active[data-v-388539e5]{transition:opacity var(--trans),transform var(--trans)}.FrameRightMenuFade-enter-from[data-v-388539e5],.FrameRightMenuFade-leave-to[data-v-388539e5]{opacity:0;transform:translateY(-.125rem)}.MvcFrame[data-v-ae3008b4]{display:flex}.MvcFrame .PageArea[data-v-ae3008b4]{flex-grow:1;position:relative;min-height:0}.MvcList[data-v-cb49a0b9]{display:flex;flex-direction:column;width:100%;min-height:0;flex:1 1 auto;height:100%;-webkit-user-select:none;user-select:none}.MvcList .listViewport[data-v-cb49a0b9]{position:relative;flex:1 1 auto;min-height:0;overflow:hidden}.MvcList .listScroll[data-v-cb49a0b9]{position:relative;box-sizing:border-box;height:100%;max-height:100%}.MvcList .listItem[data-v-cb49a0b9]{padding:.5rem;margin-block-end:.25rem}.MvcList .listItem[data-v-cb49a0b9]:last-child{margin-block-end:0}.MvcList .listItem[data-v-cb49a0b9]{font-size:.75rem;line-height:1.5;color:var(--color-txt-p);background:transparent;border-radius:.25rem;cursor:pointer;transition:var(--trans-all)}.MvcList .listItem[data-v-cb49a0b9]:hover:not(.active):not(.isDisabled){background:var(--color-bg-menu-item-hover)}.MvcList .listItem.active[data-v-cb49a0b9]{position:sticky!important;top:0;color:var(--color-on-primary-text);background:var(--color-primary);z-index:9;position:relative;isolation:isolate}.MvcList .listItem.active[data-v-cb49a0b9]:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;opacity:.25;background-color:var(--color-primary);transform:translateY(20%);pointer-events:none;filter:blur(.625rem);z-index:-1}.MvcList .listItem.isDisabled[data-v-cb49a0b9]{opacity:.5;cursor:not-allowed}.MvcList.sizeSmall .listItem[data-v-cb49a0b9]{padding:.25rem .375rem;margin-block-end:.125rem;font-size:.6875rem;border-radius:.1875rem}.MvcList.sizeSmall .listItem[data-v-cb49a0b9]:last-child{margin-block-end:0}.MvcList.sizeLarge .listItem[data-v-cb49a0b9]{padding:.625rem .75rem;margin-block-end:.5rem;font-size:.875rem;border-radius:.375rem}.MvcList.sizeLarge .listItem[data-v-cb49a0b9]:last-child{margin-block-end:0}.loadingFade-enter-active[data-v-89f58c94],.loadingFade-leave-active[data-v-89f58c94]{transition:opacity var(--trans)}.loadingFade-enter-from[data-v-89f58c94],.loadingFade-leave-to[data-v-89f58c94]{opacity:0}.MvcLoading[data-v-89f58c94]{pointer-events:auto;-webkit-backdrop-filter:blur(.25rem);backdrop-filter:blur(.25rem)}.loaderTxt[data-v-89f58c94]{max-width:15rem;word-break:break-word}.MvcLogin[data-v-6faa6992]{background-color:var(--color-bg-body)}.panelWrap[data-v-6faa6992]{background-color:var(--color-bg-menu);box-shadow:0 .25rem 1rem #0000000f}.qr-dingtalk[data-v-6faa6992]{background:#0089ff}.qr-feishu[data-v-6faa6992]{background:#3370ff}.qr-wechat[data-v-6faa6992]{background:#07c160}.oauthGoogle[data-v-6faa6992]{display:flex;align-items:center;justify-content:center;gap:.75rem;min-height:2.5rem;padding:.5rem 1rem;box-sizing:border-box;background:#fff;border:1px solid #747775;border-radius:.25rem;font-family:Roboto,system-ui,-apple-system,Segoe UI,sans-serif;font-size:.875rem;font-weight:500;line-height:1.25;color:#1f1f1f;cursor:pointer;transition:var(--trans-all)}.oauthGoogle[data-v-6faa6992]:hover:not(:disabled){box-shadow:0 1px 2px #3c40434d,0 1px 3px 1px #3c404326}.oauthGoogle[data-v-6faa6992]:disabled{opacity:.38;cursor:not-allowed}.oauthGoogle[data-v-6faa6992]:focus-visible{outline:2px solid #4285f4;outline-offset:2px}.oauthApple[data-v-6faa6992]{display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.5rem;padding:.5rem 1rem;box-sizing:border-box;background:#000;border:none;border-radius:.375rem;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,sans-serif;font-size:1.0625rem;font-weight:600;line-height:1.2;color:#fff;cursor:pointer;transition:var(--trans-all)}.oauthApple[data-v-6faa6992]:hover:not(:disabled){opacity:.88}.oauthApple[data-v-6faa6992]:disabled{opacity:.3;cursor:not-allowed}.oauthApple[data-v-6faa6992]:focus-visible{outline:2px solid #fff;outline-offset:2px}.MvcNote[data-v-e3e84cc8]{position:relative;padding:.5rem 1rem;background-color:var(--color-bg-menu);font-size:.875rem;border-radius:0 .5rem .5rem 0}.MvcNote[data-v-e3e84cc8]:hover:before{opacity:1}.MvcNote[data-v-e3e84cc8]:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;border-radius:0 .5rem .5rem 0;border:1px solid var(--color-gray);transition:opacity var(--trans)}.MvcPage[data-v-060130ad]{position:relative;display:flex;flex-direction:column;min-height:calc(100vh - 3rem);z-index:1}.MvcPage .PageHeader[data-v-060130ad]{position:sticky;display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;min-height:4rem;border-bottom:var(--border-d);background-color:var(--color-bg-page-header);z-index:9}.MvcPage .PageHeader .PageHeaderTitle[data-v-060130ad]{margin:0}.MvcPage .PageHeader .PageHeaderSubTitle[data-v-060130ad]{margin:0;font-size:.875rem;color:var(--color-txt-p)}.MvcPage .PageBody[data-v-060130ad]{position:relative;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;background-color:var(--color-bg-page-body);z-index:2}.MvcPage.hasTab .PageHeader[data-v-060130ad]{top:2.25rem}.ghost[data-v-1927ce52]{cursor:grabbing}.typeItem[data-v-1927ce52]{cursor:pointer}.typeItem[data-v-1927ce52]:hover{background-color:var(--mg-gray3)}.typeItem.active[data-v-1927ce52]{color:var(--mg-white);background-color:var(--mg-primary)}.columnItem[data-v-1927ce52]:hover{background-color:var(--mg-gray3)}.columnItem .fixedBtn[data-v-1927ce52]{cursor:pointer}.columnItem .fixedBtn[data-v-1927ce52]:hover{background-color:var(--mg-primary1)}.MainTable[data-v-f79bf58d]{max-width:calc(100% + 2px);width:calc(100% + 2px);margin:0 -1px}[data-v-4dba94bf] .el-textarea__inner{box-sizing:border-box}.ghost[data-v-73161392]{cursor:grabbing}.typeItem[data-v-73161392]{cursor:pointer}.typeItem[data-v-73161392]:hover{background-color:var(--mg-gray3)}.typeItem.active[data-v-73161392]{color:var(--color-txt-white);background-color:var(--color-bg-menu-item-active);position:relative;isolation:isolate}.typeItem.active[data-v-73161392]:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;opacity:.25;background-color:var(--color-primary);transform:translateY(20%);pointer-events:none;filter:blur(.625rem);z-index:-1}.columnItem[data-v-73161392]:hover{background-color:var(--color-bg-menu-item-hover)}.columnItem .fixedBtn[data-v-73161392]{cursor:pointer}.columnItem .fixedBtn[data-v-73161392]:hover{background-color:var(--mg-primary1)}.tableFooter[data-v-a13ba899]{margin-block-start:-1px;border-block-start:var(--border-d);border-radius:0 0 .5rem .5rem}.vtableHost[data-v-a13ba899]{min-height:10rem;background-color:var(--color-white)}.vtableHostFill[data-v-a13ba899]{height:100%}.treeCellLoadMask[data-v-a13ba899]{z-index:10;box-sizing:border-box;pointer-events:auto;cursor:wait;background-color:#ffffffb8;border-radius:.125rem}.treeCellLoadMask .loadMaskIcon[data-v-a13ba899]{pointer-events:none}
1
+ @charset "UTF-8";.MvcBtnGroup[data-v-39d01040]{padding:.25rem;background:var(--color-white);border-radius:var(--btn-radius);-webkit-user-select:none;user-select:none}.MvcBtnGroup.sizeSmall[data-v-39d01040]{padding:2px;border-radius:calc(var(--btn-radius, 1rem) / 2)}.MvcBtnGroup.sizeSmall .btnItem[data-v-39d01040]{padding:.25rem .625rem;font-size:.75rem;line-height:1.5;border-radius:.1875rem}.MvcBtnGroup.sizeLarge[data-v-39d01040]{padding:.375rem;border-radius:.5rem}.MvcBtnGroup.sizeLarge .btnItem[data-v-39d01040]{padding:.5rem 1.125rem;font-size:1rem;line-height:1.5;border-radius:.375rem}.MvcBtnGroup .btnItem[data-v-39d01040]{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;gap:.25rem;padding:.375rem .875rem;font-size:.875rem;line-height:1.5;color:var(--color-txt-p);background:transparent;border:none;border-radius:var(--btn-radius);word-break:keep-all;text-wrap:nowrap;cursor:pointer;transition:var(--trans-all)}.MvcBtnGroup .btnItem[data-v-39d01040]:hover:not(:disabled):not(.isActive){background:var(--color-bg-menu-item-hover)}.MvcBtnGroup .btnItem.isActive[data-v-39d01040]{color:var(--color-on-primary-text);background:var(--color-primary);position:relative;isolation:isolate}.MvcBtnGroup .btnItem.isActive[data-v-39d01040]:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;opacity:.25;background-color:var(--color-primary);transform:translateY(20%);pointer-events:none;filter:blur(.625rem);z-index:-1}.MvcBtnGroup .btnItem[data-v-39d01040]:disabled{opacity:.5;cursor:not-allowed}.MvcCard[data-v-610b0b4c]{position:relative;border:var(--border-d);border-radius:var(--card-radius);background:var(--color-bg-page-header);box-sizing:border-box;transition:box-shadow var(--trans)}.MvcCard[data-v-610b0b4c]:hover{box-shadow:0 .5rem .5rem color-mix(in srgb,var(--color-dark) 6%,var(--color-white))}.MvcCard.MvcCard--fillParent[data-v-610b0b4c]{display:flex;flex-direction:column;align-self:stretch;min-height:0;height:100%}.MvcCard .header[data-v-610b0b4c]{position:relative;padding:.75rem 1rem;border-block-end:var(--card-header-border);z-index:2;flex-shrink:0;-webkit-user-select:none;user-select:none}.MvcCard .header .headerTitle[data-v-610b0b4c]{margin:0;font-size:.875rem;font-weight:700;color:var(--color-txt-h2)}.MvcCard .body[data-v-610b0b4c]{position:relative;padding:1rem;min-height:1rem;overflow:auto;z-index:1}.MvcCard.MvcCard--fillParent .body[data-v-610b0b4c]{flex:1 1 auto;min-height:0}.MvcCard .footer[data-v-610b0b4c]{position:relative;padding:.75rem 1rem;border-block-start:var(--card-header-border);z-index:2;flex-shrink:0;-webkit-user-select:none;user-select:none}.dragArea[data-v-3bd55143]{position:absolute;top:0;left:0;bottom:0;width:1rem;display:flex;align-items:center;z-index:99}.dragArea .dragHandle[data-v-3bd55143]{display:flex;align-items:center;width:.875rem;height:1.75rem;background-color:var(--color-border);border-radius:0 .125rem .125rem 0;opacity:0;cursor:ew-resize;z-index:99;transition:var(--trans-all)}.dragArea .dragHandle[data-v-3bd55143]:hover,.dragArea .dragHandle.active[data-v-3bd55143]{opacity:1;color:var(--color-white);background-color:var(--color-primary);box-shadow:.25rem 0 .5rem var(--color-dark1)}.dragArea:hover .dragHandle[data-v-3bd55143]{opacity:1}.MvcDrawerBody[data-v-33acb7b3]{position:relative;width:100%;overflow:hidden}.drawerFooter[data-v-33acb7b3]{background-image:linear-gradient(to top,50% var(--color-white),100 transparent)}.FrameTab .tabShadow[data-v-e9bf80ea]{position:absolute;top:100%;left:0;right:0;height:.5rem;background-image:linear-gradient(to bottom,rgba(0,0,0,.05) 0,transparent 100%);opacity:0;transition:opacity var(--trans)}.FrameTab .tabShadow.visible[data-v-e9bf80ea]{opacity:1}.FrameTab .tabArea[data-v-e9bf80ea]:after{content:"";position:absolute;top:2.175rem;left:0;right:0;border-bottom:var(--border-d);z-index:1}.FrameTab .tabItem[data-v-e9bf80ea]{margin-block-end:-1px;border:var(--border-d);border-block-end-color:transparent;border-radius:.25rem .25rem 0 0;background-color:var(--color-white);opacity:.5;overflow:hidden;transition:var(--trans-all)}.FrameTab .tabItem[data-v-e9bf80ea]:hover{opacity:.8}.FrameTab .tabItem.active[data-v-e9bf80ea]{opacity:1;border-block-end-color:var(--color-white);z-index:3;background-color:var(--color-bg-page-header)}.FrameTab .tabItem .abs[data-v-e9bf80ea]{transition:var(--trans-all);transform:translate(2.25rem)}.FrameTab .tabItem .abs[data-v-e9bf80ea]:hover{opacity:.8;color:var(--color-primary)}.FrameTab .tabItem.hoverItem.active[data-v-e9bf80ea]{padding-inline-end:2.25rem}.FrameTab .tabItem.hoverItem.active .abs[data-v-e9bf80ea]{transform:translate(-.375rem)}.FrameTab .tabItem.hoverItem[data-v-e9bf80ea]:hover{padding-inline-end:2.25rem}.FrameTab .tabItem.hoverItem:hover .abs[data-v-e9bf80ea]{transform:translate(-.375rem)}.FrameTab .tabItem.disabled[data-v-e9bf80ea]{opacity:.7;cursor:not-allowed}.FrameMenu[data-v-d7eb624b]{width:12rem;background-color:var(--color-bg-menu);overflow:hidden}.FrameMenu[data-v-d7eb624b]:after{content:"";position:absolute;top:0;right:0;bottom:0;border-right:var(--border-d)}.FrameMenu:hover .logomini[data-v-d7eb624b]{opacity:.1}.FrameMenu:hover .collapseArea[data-v-d7eb624b]{display:block!important}.FrameMenu .LogoArea .logomini[data-v-d7eb624b]{display:none}.FrameMenu .collapseArea[data-v-d7eb624b]{top:50%;right:1rem;height:1.25rem;width:1.24rem;transform:translateY(-50%)}.FrameMenu .MenuArea[data-v-d7eb624b]{height:calc(100vh - 8rem)}.FrameMenu .MenuArea .menuItem[data-v-d7eb624b]{height:2.75rem;transition:var(--trans-all)}.FrameMenu .MenuArea .menuItem[data-v-d7eb624b]:hover{background-color:var(--color-bg-menu-item-hover)}.FrameMenu .MenuArea .menuItem.active[data-v-d7eb624b]:hover{background-color:var(--color-primary);opacity:.8}.FrameMenu .MenuArea .menuItem.active .itemIcon[data-v-d7eb624b]{color:var(--color-on-primary-text)}.FrameMenu .MenuArea .childrenItem[data-v-d7eb624b]{transition:var(--trans-all)}.FrameMenu .MenuArea .childrenItem[data-v-d7eb624b]:hover{background-color:var(--color-bg-menu-children-item-hover)}.FrameMenu .MenuArea .childrenItem.active[data-v-d7eb624b]:hover{background-color:var(--color-primary);opacity:.8}.FrameMenu .MenuArea .itemChildrenArea[data-v-d7eb624b]{background-color:var(--color-bg-menu-children)}.FrameMenu .MenuArea .itemTitle.active[data-v-d7eb624b]{color:var(--color-on-primary-text)}.FrameMenu.collapse[data-v-d7eb624b]{width:4rem}.FrameMenu.collapse .collapseArea[data-v-d7eb624b]{right:1.5rem;display:none}.FrameMenu.collapse .LogoArea .logo[data-v-d7eb624b]{display:none}.FrameMenu.collapse .LogoArea .logomini[data-v-d7eb624b]{display:block;transition:opacity var(--trans)}.FrameMenu.collapse .MenuArea .menuItem.activeChild[data-v-d7eb624b]{position:relative;isolation:isolate}.FrameMenu.collapse .MenuArea .menuItem.activeChild[data-v-d7eb624b]:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;opacity:.25;background-color:var(--color-primary);transform:translateY(20%);pointer-events:none;filter:blur(.625rem);z-index:-1}.FrameMenu.collapse .MenuArea .itemChildrenArea[data-v-d7eb624b]{display:none}.FrameFooter[data-v-c3ba0162]{display:flex;height:3rem;padding:.5rem 1rem;gap:.5rem;font-size:14px}.FrameRightMenu[data-v-388539e5]{position:fixed;z-index:3000;min-width:10rem;max-width:calc(100vw - 1rem);padding:.25rem;border:var(--border-d);border-radius:.375rem;background-color:var(--color-bg-menu);box-shadow:0 .75rem 2rem #00000024,0 .125rem .5rem #00000014;color:var(--color-txt-p);-webkit-user-select:none;user-select:none}.FrameRightMenu .menuItem[data-v-388539e5]{display:flex;align-items:center;gap:.5rem;width:100%;min-height:2rem;padding:0 .75rem;border:none;border-radius:.25rem;background:transparent;color:inherit;cursor:pointer;font-size:.75rem;line-height:1;text-align:left;transition:var(--trans-all);white-space:nowrap}.FrameRightMenu .menuItem[data-v-388539e5]:hover{background-color:var(--color-bg-menu-item-hover);color:var(--color-primary)}.FrameRightMenu .menuItem.disabled[data-v-388539e5]{color:var(--color-txt-gray);cursor:not-allowed;opacity:.6}.FrameRightMenu .menuItem.disabled[data-v-388539e5]:hover{background:transparent;color:var(--color-txt-gray)}.FrameRightMenu .menuIcon[data-v-388539e5]{flex-shrink:0;width:1rem;font-size:.875rem;line-height:1;text-align:center}.FrameRightMenu .menuLabel[data-v-388539e5]{overflow:hidden;text-overflow:ellipsis}.FrameRightMenu .menuDivider[data-v-388539e5]{height:1px;margin:.25rem;background-color:var(--color-border)}.FrameRightMenuFade-enter-active[data-v-388539e5],.FrameRightMenuFade-leave-active[data-v-388539e5]{transition:opacity var(--trans),transform var(--trans)}.FrameRightMenuFade-enter-from[data-v-388539e5],.FrameRightMenuFade-leave-to[data-v-388539e5]{opacity:0;transform:translateY(-.125rem)}.MvcFrame[data-v-ae3008b4]{display:flex}.MvcFrame .PageArea[data-v-ae3008b4]{flex-grow:1;position:relative;min-height:0}.MvcList[data-v-cb49a0b9]{display:flex;flex-direction:column;width:100%;min-height:0;flex:1 1 auto;height:100%;-webkit-user-select:none;user-select:none}.MvcList .listViewport[data-v-cb49a0b9]{position:relative;flex:1 1 auto;min-height:0;overflow:hidden}.MvcList .listScroll[data-v-cb49a0b9]{position:relative;box-sizing:border-box;height:100%;max-height:100%}.MvcList .listItem[data-v-cb49a0b9]{padding:.5rem;margin-block-end:.25rem}.MvcList .listItem[data-v-cb49a0b9]:last-child{margin-block-end:0}.MvcList .listItem[data-v-cb49a0b9]{font-size:.75rem;line-height:1.5;color:var(--color-txt-p);background:transparent;border-radius:.25rem;cursor:pointer;transition:var(--trans-all)}.MvcList .listItem[data-v-cb49a0b9]:hover:not(.active):not(.isDisabled){background:var(--color-bg-menu-item-hover)}.MvcList .listItem.active[data-v-cb49a0b9]{position:sticky!important;top:0;color:var(--color-on-primary-text);background:var(--color-primary);z-index:9;position:relative;isolation:isolate}.MvcList .listItem.active[data-v-cb49a0b9]:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;opacity:.25;background-color:var(--color-primary);transform:translateY(20%);pointer-events:none;filter:blur(.625rem);z-index:-1}.MvcList .listItem.isDisabled[data-v-cb49a0b9]{opacity:.5;cursor:not-allowed}.MvcList.sizeSmall .listItem[data-v-cb49a0b9]{padding:.25rem .375rem;margin-block-end:.125rem;font-size:.6875rem;border-radius:.1875rem}.MvcList.sizeSmall .listItem[data-v-cb49a0b9]:last-child{margin-block-end:0}.MvcList.sizeLarge .listItem[data-v-cb49a0b9]{padding:.625rem .75rem;margin-block-end:.5rem;font-size:.875rem;border-radius:.375rem}.MvcList.sizeLarge .listItem[data-v-cb49a0b9]:last-child{margin-block-end:0}.loadingFade-enter-active[data-v-89f58c94],.loadingFade-leave-active[data-v-89f58c94]{transition:opacity var(--trans)}.loadingFade-enter-from[data-v-89f58c94],.loadingFade-leave-to[data-v-89f58c94]{opacity:0}.MvcLoading[data-v-89f58c94]{pointer-events:auto;-webkit-backdrop-filter:blur(.25rem);backdrop-filter:blur(.25rem)}.loaderTxt[data-v-89f58c94]{max-width:15rem;word-break:break-word}.MvcLogin[data-v-6faa6992]{background-color:var(--color-bg-body)}.panelWrap[data-v-6faa6992]{background-color:var(--color-bg-menu);box-shadow:0 .25rem 1rem #0000000f}.qr-dingtalk[data-v-6faa6992]{background:#0089ff}.qr-feishu[data-v-6faa6992]{background:#3370ff}.qr-wechat[data-v-6faa6992]{background:#07c160}.oauthGoogle[data-v-6faa6992]{display:flex;align-items:center;justify-content:center;gap:.75rem;min-height:2.5rem;padding:.5rem 1rem;box-sizing:border-box;background:#fff;border:1px solid #747775;border-radius:.25rem;font-family:Roboto,system-ui,-apple-system,Segoe UI,sans-serif;font-size:.875rem;font-weight:500;line-height:1.25;color:#1f1f1f;cursor:pointer;transition:var(--trans-all)}.oauthGoogle[data-v-6faa6992]:hover:not(:disabled){box-shadow:0 1px 2px #3c40434d,0 1px 3px 1px #3c404326}.oauthGoogle[data-v-6faa6992]:disabled{opacity:.38;cursor:not-allowed}.oauthGoogle[data-v-6faa6992]:focus-visible{outline:2px solid #4285f4;outline-offset:2px}.oauthApple[data-v-6faa6992]{display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.5rem;padding:.5rem 1rem;box-sizing:border-box;background:#000;border:none;border-radius:.375rem;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,sans-serif;font-size:1.0625rem;font-weight:600;line-height:1.2;color:#fff;cursor:pointer;transition:var(--trans-all)}.oauthApple[data-v-6faa6992]:hover:not(:disabled){opacity:.88}.oauthApple[data-v-6faa6992]:disabled{opacity:.3;cursor:not-allowed}.oauthApple[data-v-6faa6992]:focus-visible{outline:2px solid #fff;outline-offset:2px}.MvcNote[data-v-e3e84cc8]{position:relative;padding:.5rem 1rem;background-color:var(--color-bg-menu);font-size:.875rem;border-radius:0 .5rem .5rem 0}.MvcNote[data-v-e3e84cc8]:hover:before{opacity:1}.MvcNote[data-v-e3e84cc8]:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;border-radius:0 .5rem .5rem 0;border:1px solid var(--color-gray);transition:opacity var(--trans)}.MvcPage[data-v-060130ad]{position:relative;display:flex;flex-direction:column;min-height:calc(100vh - 3rem);z-index:1}.MvcPage .PageHeader[data-v-060130ad]{position:sticky;display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;min-height:4rem;border-bottom:var(--border-d);background-color:var(--color-bg-page-header);z-index:9}.MvcPage .PageHeader .PageHeaderTitle[data-v-060130ad]{margin:0}.MvcPage .PageHeader .PageHeaderSubTitle[data-v-060130ad]{margin:0;font-size:.875rem;color:var(--color-txt-p)}.MvcPage .PageBody[data-v-060130ad]{position:relative;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;background-color:var(--color-bg-page-body);z-index:2}.MvcPage.hasTab .PageHeader[data-v-060130ad]{top:2.25rem}.ghost[data-v-1927ce52]{cursor:grabbing}.typeItem[data-v-1927ce52]{cursor:pointer}.typeItem[data-v-1927ce52]:hover{background-color:var(--mg-gray3)}.typeItem.active[data-v-1927ce52]{color:var(--mg-white);background-color:var(--mg-primary)}.columnItem[data-v-1927ce52]:hover{background-color:var(--mg-gray3)}.columnItem .fixedBtn[data-v-1927ce52]{cursor:pointer}.columnItem .fixedBtn[data-v-1927ce52]:hover{background-color:var(--mg-primary1)}.MainTable[data-v-f79bf58d]{max-width:calc(100% + 2px);width:calc(100% + 2px);margin:0 -1px}[data-v-d15ee96a] .el-textarea__inner{box-sizing:border-box}.ghost[data-v-73161392]{cursor:grabbing}.typeItem[data-v-73161392]{cursor:pointer}.typeItem[data-v-73161392]:hover{background-color:var(--mg-gray3)}.typeItem.active[data-v-73161392]{color:var(--color-txt-white);background-color:var(--color-bg-menu-item-active);position:relative;isolation:isolate}.typeItem.active[data-v-73161392]:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;opacity:.25;background-color:var(--color-primary);transform:translateY(20%);pointer-events:none;filter:blur(.625rem);z-index:-1}.columnItem[data-v-73161392]:hover{background-color:var(--color-bg-menu-item-hover)}.columnItem .fixedBtn[data-v-73161392]{cursor:pointer}.columnItem .fixedBtn[data-v-73161392]:hover{background-color:var(--mg-primary1)}.tableFooter[data-v-a13ba899]{margin-block-start:-1px;border-block-start:var(--border-d);border-radius:0 0 .5rem .5rem}.vtableHost[data-v-a13ba899]{min-height:10rem;background-color:var(--color-white)}.vtableHostFill[data-v-a13ba899]{height:100%}.treeCellLoadMask[data-v-a13ba899]{z-index:10;box-sizing:border-box;pointer-events:auto;cursor:wait;background-color:#ffffffb8;border-radius:.125rem}.treeCellLoadMask .loadMaskIcon[data-v-a13ba899]{pointer-events:none}