chain-saasui 1.0.10-alpha.21 → 1.0.10-alpha.22
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/COMPONENTS.md +319 -0
- package/components/css/button.scss +0 -1
- package/components/css/pageTabs.scss +0 -1
- package/components/css/tooltipWrap.scss +3 -2
- package/components/src/SButton/STableButtons/index.vue +6 -4
- package/components/src/SForm/SCascader/index.vue +60 -3
- package/components/src/SForm/SCurrency/index.vue +1 -2
- package/components/src/SForm/SSelect/index.vue +27 -3
- package/components/src/STable/STablecolumn.vue +2 -2
- package/lib/css/index.css +1 -1
- package/lib/saasui.common.js +1 -8
- package/package.json +2 -2
- package/components/src/SForm/SCurrency/currency.js +0 -257
package/COMPONENTS.md
ADDED
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
# saasui 组件清单
|
|
2
|
+
|
|
3
|
+
基础组件必须优先使用 `common/saasui` 中的封装,禁止直接使用原生 `el-*` 组件。未在此列出的组件才允许回落到 Element UI。
|
|
4
|
+
|
|
5
|
+
## 使用前提
|
|
6
|
+
|
|
7
|
+
`saasui` 已在主应用中全局 `Vue.use(saasui)` 注册,模板内直接使用 kebab-case 标签即可:
|
|
8
|
+
|
|
9
|
+
```vue
|
|
10
|
+
<s-button type="primary">保存</s-button>
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
所有组件通过 `v-bind="$attrs"` / `v-on="$listeners"` 透传到底层 Element UI,因此 element 原有 props/事件仍可使用。
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 一、按钮类
|
|
18
|
+
|
|
19
|
+
### `<s-button>`
|
|
20
|
+
|
|
21
|
+
主按钮,替代 `el-button`。封装了路由跳转、`icon` 类型、边框模式。
|
|
22
|
+
|
|
23
|
+
| 参数 | 类型 | 默认值 | 说明 |
|
|
24
|
+
| ------ | ------ | -------- | ----------------------------------------- |
|
|
25
|
+
| type | String | default | `primary` / `default` / `danger` / `icon` |
|
|
26
|
+
| border | String | - | 边框样式,自定义 class 后缀 |
|
|
27
|
+
| mode | String | button | `button` / `link` / `external` |
|
|
28
|
+
| path | String | - | `mode=link` 时的路由 path |
|
|
29
|
+
| query | Object | - | 路由 query |
|
|
30
|
+
| target | String | - | `_blank` 在新窗口打开 |
|
|
31
|
+
|
|
32
|
+
```vue
|
|
33
|
+
<s-button type="primary" @click="handleSave">保存</s-button>
|
|
34
|
+
<s-button mode="link" path="/detail" :query="{ id }">查看</s-button>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### `<s-button-text>`
|
|
38
|
+
|
|
39
|
+
文字按钮,用于表格行内次要操作,替代 `el-button type="text"`。
|
|
40
|
+
|
|
41
|
+
| 参数 | 类型 | 默认值 | 说明 |
|
|
42
|
+
| ------ | ------ | ---- | --------------------- |
|
|
43
|
+
| type | String | text | `text` / `link` |
|
|
44
|
+
| path | String | - | `type=link` 时的路由 path |
|
|
45
|
+
| query | Object | - | 路由 query |
|
|
46
|
+
| target | String | - | `_blank` 在新窗口打开 |
|
|
47
|
+
|
|
48
|
+
### `<s-table-buttons>`
|
|
49
|
+
|
|
50
|
+
行内操作按钮组,**表格操作列强制使用**。超出 `maxLength` 自动收起到下拉更多。
|
|
51
|
+
|
|
52
|
+
| 参数 | 类型 | 默认值 | 说明 |
|
|
53
|
+
| --------- | ------ | ---- | ------------- |
|
|
54
|
+
| list | Array | [] | 按钮配置数组,见下方字段 |
|
|
55
|
+
| row | Object | - | 当前行,透传到 onClick |
|
|
56
|
+
| maxLength | Number | 2 | 最多显示几个,其余进入更多 |
|
|
57
|
+
| moreType | String | text | `text` / `more`(更多按钮样式) |
|
|
58
|
+
|
|
59
|
+
`list` 项:`{ label, onClick, show?, tip?, attrs? }`,`show` 支持布尔或函数。
|
|
60
|
+
|
|
61
|
+
```vue
|
|
62
|
+
<s-table-buttons :list="actionList" :row="row" @action="handleAction" />
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## 二、分页 / 布局 / 容器
|
|
68
|
+
|
|
69
|
+
### `<s-pagetable>`
|
|
70
|
+
|
|
71
|
+
**列表页外层容器,必须使用**。自带 `header` / `form` / `footer` 插槽。
|
|
72
|
+
|
|
73
|
+
| 参数 | 类型 | 默认值 | 说明 |
|
|
74
|
+
| ----------------- | ------- | ----- | ------------------------ |
|
|
75
|
+
| title | String | 路由标题 | 页头标题,默认取路由 meta |
|
|
76
|
+
| mode | String | page | `page` / `form` |
|
|
77
|
+
| showHeader | Boolean | false | 是否显示头部 |
|
|
78
|
+
| showClose | Boolean | false | 显示返回箭头 |
|
|
79
|
+
| showFooter | Boolean | true | 是否渲染 footer 插槽 |
|
|
80
|
+
| showFooterButton | Boolean | false | 底部是否展示「取消 / 确认」按钮 |
|
|
81
|
+
| loadingBtn | Boolean | false | 确认按钮 loading |
|
|
82
|
+
| confirmText | String | 确定 | |
|
|
83
|
+
| cancelText | String | 取消 | |
|
|
84
|
+
|
|
85
|
+
插槽:`default`(内容)、`header`、`header-append`、`title`、`form`(搜索区)、`footer`(分页)。
|
|
86
|
+
|
|
87
|
+
```vue
|
|
88
|
+
<s-pagetable>
|
|
89
|
+
<template #form>...筛选条件...</template>
|
|
90
|
+
<s-table :data="list" :columns="columns" />
|
|
91
|
+
<template #footer>
|
|
92
|
+
<el-pagination ... />
|
|
93
|
+
</template>
|
|
94
|
+
</s-pagetable>
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### `<s-page-tabs>` (项目中的 Tabs 基础组件)
|
|
98
|
+
|
|
99
|
+
基于数组驱动的标签页,**替代 `el-tabs`**(项目中不存在 `s-tabs`,对应组件就是这个)。支持滚动、拖拽、显隐控制。
|
|
100
|
+
|
|
101
|
+
| 参数 | 类型 | 默认值 | 说明 |
|
|
102
|
+
| ------------ | ----------------- | ------------------------------ | ----------------------- |
|
|
103
|
+
| value | String / Number | '' | `v-model`,当前激活的 value |
|
|
104
|
+
| tabs | Array | [] | `{ label, value, disabled?, show? }` |
|
|
105
|
+
| fieldNames | Object | `{ label, value }` | 字段映射 |
|
|
106
|
+
| gap | String / Number | 32 | tab 间距 |
|
|
107
|
+
| showBorder | Boolean | true | 是否显示下边框 |
|
|
108
|
+
| beforeLeave | Function | - | 切换前钩子,返回 `false`/Promise reject 阻止切换 |
|
|
109
|
+
| draggable | Boolean | false | 是否开启拖拽排序 |
|
|
110
|
+
|
|
111
|
+
事件:`input`、`tab-click(tab, index)`、`tabs-sort(newTabs, { from, to, tab })`。
|
|
112
|
+
|
|
113
|
+
插槽:`extra`(右侧)、`tab-suffix`(每个 tab 尾部)。
|
|
114
|
+
|
|
115
|
+
```vue
|
|
116
|
+
<s-page-tabs v-model="active" :tabs="tabs" />
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
> 纯样式的简单切换也可以使用原生 `el-tabs`,但项目规范下**优先用 `s-page-tabs`**。
|
|
120
|
+
|
|
121
|
+
### `<s-page-button>`
|
|
122
|
+
|
|
123
|
+
页面级按钮区容器,用于 `s-pagetable` 顶部操作栏排布。
|
|
124
|
+
|
|
125
|
+
### `<s-card>`
|
|
126
|
+
|
|
127
|
+
内容卡片,带标题和可折叠能力。
|
|
128
|
+
|
|
129
|
+
| 参数 | 类型 | 默认值 | 说明 |
|
|
130
|
+
| ---------- | ------- | ----- | -------- |
|
|
131
|
+
| title | String | '' | 卡片标题 |
|
|
132
|
+
| titleSub | String | '' | 副标题 |
|
|
133
|
+
| isCollapse | Boolean | false | 是否开启折叠箭头 |
|
|
134
|
+
|
|
135
|
+
插槽:`title`、`action`(右上角)、`default`。
|
|
136
|
+
|
|
137
|
+
### `<s-container>`
|
|
138
|
+
|
|
139
|
+
外层容器,不常用,用于非 PageTable 页面的基础容器。
|
|
140
|
+
|
|
141
|
+
### `<s-group>`
|
|
142
|
+
|
|
143
|
+
分组数据块,常用于首页卡片类分组展示。
|
|
144
|
+
|
|
145
|
+
| 参数 | 类型 | 默认值 | 说明 |
|
|
146
|
+
| --------------- | -------- | ----- | ---------------------- |
|
|
147
|
+
| list | Array | [] | 分组数据,`{ label, children }` |
|
|
148
|
+
| data | Object | {} | 绑定数据 |
|
|
149
|
+
| isActive | Function | - | 判断 item 是否激活 |
|
|
150
|
+
| showGroupTitle | Boolean | false | 是否显示分组标题 |
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## 三、表格
|
|
155
|
+
|
|
156
|
+
### `<s-table>`
|
|
157
|
+
|
|
158
|
+
**列表页表格强制使用**。继承 `el-table` 全部 props + 事件,新增 `columns` 配置化、内置多选列。
|
|
159
|
+
|
|
160
|
+
| 参数 | 类型 | 默认值 | 说明 |
|
|
161
|
+
| ---------------- | -------- | ------- | --------------------------------- |
|
|
162
|
+
| data | Array | - | 同 `el-table` |
|
|
163
|
+
| border | Boolean | true | 默认有边框 |
|
|
164
|
+
| columns | Array | [] | 列配置,见下方 |
|
|
165
|
+
| minWidth | Number/String | 160 | 列默认最小宽度 |
|
|
166
|
+
| selectable | Boolean | false | 是否展示多选列 |
|
|
167
|
+
| selectableType | String | default | `default` / `all`(跨页全选) |
|
|
168
|
+
| reserveSelection | Boolean | false | 翻页保留选中 |
|
|
169
|
+
| checkSelectable | Function | () => true | 行是否可选 |
|
|
170
|
+
| selected | Array | [] | 跨页全选时的选中 id 集合,需 `:selected.sync` |
|
|
171
|
+
|
|
172
|
+
`columns` 项字段:
|
|
173
|
+
|
|
174
|
+
| 字段 | 说明 |
|
|
175
|
+
| -------- | ---------------------------------------- |
|
|
176
|
+
| label | 表头文字 |
|
|
177
|
+
| value | 对应 `prop`,也是插槽名 |
|
|
178
|
+
| type | `text` / `select` / `unit` / `operate` / `index` / `UserModel` |
|
|
179
|
+
| tip | 表头 tooltip |
|
|
180
|
+
| width / minWidth / fixed | 列宽、冻结 |
|
|
181
|
+
| actionList | `type=operate` 时的按钮数组 |
|
|
182
|
+
| options | `type=select` / `unit` 时的字典 |
|
|
183
|
+
|
|
184
|
+
事件:`action(name, row, column)`(操作列)、`selection-change`、`select-all`、透传 `el-table` 所有事件。
|
|
185
|
+
|
|
186
|
+
暴露方法:`doLayout()`、`clearSelection()`、`toggleRowSelection()`、`getSelection()`。
|
|
187
|
+
|
|
188
|
+
```vue
|
|
189
|
+
<s-table
|
|
190
|
+
:data="list"
|
|
191
|
+
:columns="[
|
|
192
|
+
{ label: '姓名', value: 'name' },
|
|
193
|
+
{ label: '状态', value: 'status', type: 'unit', options: statusOptions },
|
|
194
|
+
{ label: '操作', value: 'action', type: 'operate', actionList },
|
|
195
|
+
]"
|
|
196
|
+
@action="onAction" />
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### `<s-table-column>`
|
|
200
|
+
|
|
201
|
+
内置于 `s-table` 的列渲染器,一般不直接使用,通过 `columns` 配置。
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## 四、弹窗 / 抽屉
|
|
206
|
+
|
|
207
|
+
### `<s-dialog>`
|
|
208
|
+
|
|
209
|
+
**新增 / 编辑弹窗必须使用**。继承 `el-dialog` 全部 props,内置 footer、loading。
|
|
210
|
+
|
|
211
|
+
| 参数 | 类型 | 默认值 | 说明 |
|
|
212
|
+
| ------------------ | ------------- | ----- | ------------------- |
|
|
213
|
+
| visible | Boolean | false | 使用 `visible.sync` |
|
|
214
|
+
| width | String/Number | 720px | |
|
|
215
|
+
| showFooter | Boolean | true | 是否显示底部按钮 |
|
|
216
|
+
| showCancelButton | Boolean | true | |
|
|
217
|
+
| showConfirmButton | Boolean | true | |
|
|
218
|
+
| loadingBtn | Boolean | false | 确认按钮 loading |
|
|
219
|
+
| confirmText | String | 确定 | |
|
|
220
|
+
| cancelText | String | 取消 | |
|
|
221
|
+
| closeOnClickModal | Boolean | false | 强制 false,点击遮罩不关闭 |
|
|
222
|
+
|
|
223
|
+
事件:`confirm`、`close`、`update:visible`。
|
|
224
|
+
|
|
225
|
+
```vue
|
|
226
|
+
<s-dialog :visible.sync="visible" title="新增" :loading-btn="saving" @confirm="onSave">
|
|
227
|
+
...表单...
|
|
228
|
+
</s-dialog>
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
### `<s-drawer>`
|
|
232
|
+
|
|
233
|
+
侧边抽屉,参数同 `s-dialog`,`width` 改为 `size`(默认 720px)。
|
|
234
|
+
|
|
235
|
+
### `SMessagebox` / `SInputDialog`
|
|
236
|
+
|
|
237
|
+
以 JS 方式调起的命令式弹窗,直接从 saasui 导入调用。
|
|
238
|
+
|
|
239
|
+
```js
|
|
240
|
+
import saasui from 'saasui';
|
|
241
|
+
saasui.SMessagebox({ title: '提示', content: '...' });
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
## 五、表单控件(替代 `el-*`)
|
|
247
|
+
|
|
248
|
+
> 所有控件支持 `from="text"` 进入纯展示模式,用于详情页与表单共用一套配置。
|
|
249
|
+
|
|
250
|
+
| 组件 | 替代 | 关键 props |
|
|
251
|
+
| ------------------- | ----------- | ------------------------------------------------ |
|
|
252
|
+
| `<s-input>` | el-input | `type`、`from`、默认 `clearable`、`maxlength` |
|
|
253
|
+
| `<s-input-number>` | el-input-number | |
|
|
254
|
+
| `<s-select>` | el-select | `options=[{ label, value }]`、默认 `filterable`、支持分组 |
|
|
255
|
+
| `<s-cascader>` | el-cascader | `options`、`props` |
|
|
256
|
+
| `<s-date-picker>` | el-date-picker | `type` 默认 `date`、`valueFormat` 默认 `yyyy-MM-dd` |
|
|
257
|
+
| `<s-radio-group>` | el-radio-group | `options`、`direction`(horizontal / vertical) |
|
|
258
|
+
| `<s-switch>` | el-switch | |
|
|
259
|
+
| `<s-mask-input>` | - | 脱敏输入 |
|
|
260
|
+
| `<s-currency>` | - | 货币金额输入 |
|
|
261
|
+
| `<s-currency-select>`| - | 货币种类选择 |
|
|
262
|
+
| `<s-field-group>` | - | 多字段组合,`fields=[{ field, type, ... }]` |
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
## 六、展示 / 反馈
|
|
267
|
+
|
|
268
|
+
| 组件 | 用途 |
|
|
269
|
+
| ----------------- | ---------------------------------------- |
|
|
270
|
+
| `<s-unit value type options>` | 状态点 / tag 样式展示,配合字典 |
|
|
271
|
+
| `<s-tag>` | 标签,替代 `el-tag` |
|
|
272
|
+
| `<s-tip>` | 提示性文字 / 弱提示 |
|
|
273
|
+
| `<s-alert>` | 警告/通知条,替代 `el-alert` |
|
|
274
|
+
| `<s-tooltip-wrap>`| 自适应文字省略 + tooltip,替代常见 `text-overflow` 包装 |
|
|
275
|
+
| `<s-item-list>` | 展示键值对列表 |
|
|
276
|
+
| `<s-steps>` | 步骤条,替代 `el-steps` |
|
|
277
|
+
| `<s-segmented>` | 分段控件 |
|
|
278
|
+
| `<s-icon>` | 图标统一入口 |
|
|
279
|
+
| `<s-empty>` | 空状态 |
|
|
280
|
+
|
|
281
|
+
### `<s-tooltip-wrap>`
|
|
282
|
+
|
|
283
|
+
| 参数 | 类型 | 默认值 | 说明 |
|
|
284
|
+
| --------- | ------- | --------- | --------------- |
|
|
285
|
+
| text | String | '' | 展示文本,超出才显示 tooltip |
|
|
286
|
+
| placement | String | top-start | |
|
|
287
|
+
| lineClamp | String | '1' | 多行省略行数 |
|
|
288
|
+
| inherit | Boolean | false | 继承父级文字样式 |
|
|
289
|
+
|
|
290
|
+
### `<s-unit>`
|
|
291
|
+
|
|
292
|
+
| 参数 | 类型 | 默认值 | 说明 |
|
|
293
|
+
| ------- | -------------- | --- | ------------------- |
|
|
294
|
+
| value | String/Number | - | 值 |
|
|
295
|
+
| type | String | '' | 预设类型 |
|
|
296
|
+
| options | Array | [] | 字典数组 |
|
|
297
|
+
| props | Object | - | 字段映射 `{ value, label, style }` |
|
|
298
|
+
| color | String | '' | 强制指定颜色 |
|
|
299
|
+
| isLink | Boolean | - | 是否当链接展示 |
|
|
300
|
+
|
|
301
|
+
---
|
|
302
|
+
|
|
303
|
+
## 七、布局
|
|
304
|
+
|
|
305
|
+
### `<s-space>` / `<s-space-item>`
|
|
306
|
+
|
|
307
|
+
元素间距容器,替代手写 `margin`。
|
|
308
|
+
|
|
309
|
+
---
|
|
310
|
+
|
|
311
|
+
## 使用规则速记
|
|
312
|
+
|
|
313
|
+
1. **新建列表页** → `s-pagetable` + `s-table` + `s-table-buttons` + `s-dialog`
|
|
314
|
+
2. **Tabs 切换** → `s-page-tabs`,不要再写 `el-tabs`
|
|
315
|
+
3. **表单字段** → `s-input` / `s-select` / `s-date-picker` / `s-radio-group`,详情页传 `from="text"` 即可
|
|
316
|
+
4. **弹窗** → 新增编辑用 `s-dialog`、侧边配置用 `s-drawer`、命令式用 `SMessagebox`
|
|
317
|
+
5. **行内操作** → 一律用 `s-table-buttons`,不要手写 `el-button` 列表
|
|
318
|
+
6. **文字省略** → `s-tooltip-wrap`,不要手写 `text-overflow`
|
|
319
|
+
7. **状态展示** → `s-unit` + 字典,不要自己拼颜色
|
|
@@ -5,10 +5,11 @@
|
|
|
5
5
|
overflow: hidden;
|
|
6
6
|
white-space: nowrap;
|
|
7
7
|
text-overflow: ellipsis;
|
|
8
|
-
word-break: break-
|
|
8
|
+
word-break: break-word;
|
|
9
|
+
overflow-wrap: break-word;
|
|
9
10
|
}
|
|
10
11
|
.saas-tooltip-wrap__content-more {
|
|
11
|
-
word-break: break-
|
|
12
|
+
word-break: break-word;
|
|
12
13
|
text-overflow: ellipsis;
|
|
13
14
|
display: -webkit-box;
|
|
14
15
|
-webkit-box-orient: vertical;
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="saas-table-actions">
|
|
3
3
|
<el-dropdown v-if="buttonList.length" @command="handleCommand">
|
|
4
|
-
<
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
<slot name="trigger">
|
|
5
|
+
<s-button type="text">
|
|
6
|
+
{{ $t('TableData.action') }}
|
|
7
|
+
<span class="smart-caret-down"></span>
|
|
8
|
+
</s-button>
|
|
9
|
+
</slot>
|
|
8
10
|
<el-dropdown-menu slot="dropdown">
|
|
9
11
|
<el-tooltip
|
|
10
12
|
v-for="(drop, index) in buttonList"
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="saas-select" :class="{ 'saas-text-mode': from === 'text' }">
|
|
3
|
-
<span v-if="from === 'text'" class="saas-input-text">
|
|
4
|
-
|
|
3
|
+
<span v-if="from === 'text'" class="saas-input-text">
|
|
4
|
+
<STooltipWrap :text="getTextValue" />
|
|
5
|
+
</span>
|
|
6
|
+
<el-cascader v-else class="saas-cascader" ref="refCascader" v-on="onEvents" v-model="_value" :options="optionsList" v-bind="attrs">
|
|
5
7
|
<template v-for="(_, slotName) in $scopedSlots" #[slotName]="scope">
|
|
6
8
|
<slot :name="slotName" v-bind="scope" />
|
|
7
9
|
</template>
|
|
@@ -12,7 +14,7 @@
|
|
|
12
14
|
<script>
|
|
13
15
|
import { Cascader } from 'element-ui';
|
|
14
16
|
import attrsMixin from '../mixins/attrsMixin';
|
|
15
|
-
import { omit, isEmpty } from 'chain-lodash';
|
|
17
|
+
import { omit, isEmpty, formatIfJson } from 'chain-lodash';
|
|
16
18
|
export default {
|
|
17
19
|
name: 'SCascader',
|
|
18
20
|
mixins: [attrsMixin],
|
|
@@ -48,6 +50,10 @@ export default {
|
|
|
48
50
|
type: Boolean,
|
|
49
51
|
default: false,
|
|
50
52
|
},
|
|
53
|
+
options: {
|
|
54
|
+
type: Array,
|
|
55
|
+
default: () => [],
|
|
56
|
+
},
|
|
51
57
|
},
|
|
52
58
|
data() {
|
|
53
59
|
return {
|
|
@@ -69,6 +75,12 @@ export default {
|
|
|
69
75
|
'expand-change': this.cascaderVisable,
|
|
70
76
|
};
|
|
71
77
|
},
|
|
78
|
+
optionsList() {
|
|
79
|
+
return (this.options || []).map(this.formatOptions);
|
|
80
|
+
},
|
|
81
|
+
getTextValue() {
|
|
82
|
+
return this.getSelectValue() || '-';
|
|
83
|
+
},
|
|
72
84
|
},
|
|
73
85
|
|
|
74
86
|
methods: {
|
|
@@ -80,6 +92,51 @@ export default {
|
|
|
80
92
|
});
|
|
81
93
|
this.$emit('expand-change', ...args);
|
|
82
94
|
},
|
|
95
|
+
formatOptions(item) {
|
|
96
|
+
const valueKey = (this.props && this.props.value) || 'value';
|
|
97
|
+
const labelKey = (this.props && this.props.label) || 'label';
|
|
98
|
+
const childrenKey = (this.props && this.props.children) || 'children';
|
|
99
|
+
const value = item[valueKey];
|
|
100
|
+
const label = item[labelKey];
|
|
101
|
+
const children = item[childrenKey];
|
|
102
|
+
return {
|
|
103
|
+
...item,
|
|
104
|
+
[valueKey]: !isEmpty(value) ? String(value) : '', // 格式化成字符串避免匹配有问题
|
|
105
|
+
[labelKey]: formatIfJson(label),
|
|
106
|
+
[childrenKey]: Array.isArray(children) ? children.map(this.formatOptions) : children,
|
|
107
|
+
};
|
|
108
|
+
},
|
|
109
|
+
getSelectValue() {
|
|
110
|
+
const props = this.props || {};
|
|
111
|
+
const valueKey = props.value || 'value';
|
|
112
|
+
const labelKey = props.label || 'label';
|
|
113
|
+
const childrenKey = props.children || 'children';
|
|
114
|
+
const mul = !!props.multiple;
|
|
115
|
+
const separator = props.separator || ' / ';
|
|
116
|
+
const findPath = (tree, val) => {
|
|
117
|
+
for (const node of tree || []) {
|
|
118
|
+
if (String(node[valueKey]) == String(val)) {
|
|
119
|
+
return [node[labelKey]];
|
|
120
|
+
}
|
|
121
|
+
const children = node[childrenKey];
|
|
122
|
+
if (Array.isArray(children) && children.length) {
|
|
123
|
+
const childPath = findPath(children, val);
|
|
124
|
+
if (childPath) {
|
|
125
|
+
return [node[labelKey], ...childPath];
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return null;
|
|
130
|
+
};
|
|
131
|
+
const values = mul ? this.value || [] : isEmpty(this.value) ? [] : [this.value];
|
|
132
|
+
const nameArr = values
|
|
133
|
+
.map(v => {
|
|
134
|
+
const path = findPath(this.optionsList, v);
|
|
135
|
+
return path ? (this.showAllLevels ? path.join(separator) : path[path.length - 1]) : '';
|
|
136
|
+
})
|
|
137
|
+
.filter(Boolean);
|
|
138
|
+
return nameArr.length ? (nameArr.length > 1 ? `${nameArr[0]} +${nameArr.length - 1}` : nameArr[0]) : '';
|
|
139
|
+
},
|
|
83
140
|
},
|
|
84
141
|
};
|
|
85
142
|
</script>
|
|
@@ -16,9 +16,8 @@
|
|
|
16
16
|
</template>
|
|
17
17
|
|
|
18
18
|
<script>
|
|
19
|
-
import { isEmpty } from 'chain-lodash';
|
|
19
|
+
import { isEmpty, currency } from 'chain-lodash';
|
|
20
20
|
import attrsMixin from '../mixins/attrsMixin';
|
|
21
|
-
import currency from './currency';
|
|
22
21
|
|
|
23
22
|
export default {
|
|
24
23
|
name: 'SCurrency',
|
|
@@ -6,16 +6,16 @@
|
|
|
6
6
|
<el-select v-else class="saas-select-input" v-model="newValue" v-on="onEvents" v-bind="attrs" filterable :clearable="clearable">
|
|
7
7
|
<template v-for="item in optionsList">
|
|
8
8
|
<!-- 如果item有options属性,说明是分组 -->
|
|
9
|
-
<el-option-group v-if="item.options" :key="item.value" :label="item.label">
|
|
9
|
+
<el-option-group v-if="item.options" :key="`group-${item.value}`" :label="item.label">
|
|
10
10
|
<el-option
|
|
11
11
|
v-for="option in item.options"
|
|
12
|
-
:disabled="option
|
|
12
|
+
:disabled="isOptionDisabled(option)"
|
|
13
13
|
:key="option.value"
|
|
14
14
|
:label="option.label"
|
|
15
15
|
:value="option.value"></el-option>
|
|
16
16
|
</el-option-group>
|
|
17
17
|
<!-- 否则是普通选项 -->
|
|
18
|
-
<el-option v-else :disabled="item
|
|
18
|
+
<el-option v-else :disabled="isOptionDisabled(item)" :key="`opt-${item.value}`" :label="item.label" :value="item.value"></el-option>
|
|
19
19
|
</template>
|
|
20
20
|
</el-select>
|
|
21
21
|
</div>
|
|
@@ -68,6 +68,10 @@ export default {
|
|
|
68
68
|
type: [String, Function],
|
|
69
69
|
default: '',
|
|
70
70
|
},
|
|
71
|
+
optionDisabled: {
|
|
72
|
+
type: [Function, String],
|
|
73
|
+
default: '',
|
|
74
|
+
},
|
|
71
75
|
},
|
|
72
76
|
data() {
|
|
73
77
|
return {};
|
|
@@ -157,6 +161,26 @@ export default {
|
|
|
157
161
|
},
|
|
158
162
|
},
|
|
159
163
|
methods: {
|
|
164
|
+
isOptionDisabled(option) {
|
|
165
|
+
if (!option) return false;
|
|
166
|
+
|
|
167
|
+
// 1) 优先使用外部传入的禁用判定函数
|
|
168
|
+
if (typeof this.optionDisabled === 'function') {
|
|
169
|
+
return !!this.optionDisabled(option, {
|
|
170
|
+
options: this.optionsList,
|
|
171
|
+
value: this.newValue,
|
|
172
|
+
multiple: !!this.multiple,
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
// 2) 也支持传字段名映射,例如 optionDisabled="isDisabled"
|
|
177
|
+
if (typeof this.optionDisabled === 'string' && this.optionDisabled) {
|
|
178
|
+
return !!option[this.optionDisabled];
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
// 3) 默认兼容原有 disabled 字段
|
|
182
|
+
return !!option.disabled;
|
|
183
|
+
},
|
|
160
184
|
flattenOptions(options) {
|
|
161
185
|
const result = [];
|
|
162
186
|
options.forEach(item => {
|
|
@@ -87,7 +87,7 @@ export default {
|
|
|
87
87
|
methods: {
|
|
88
88
|
selectValue(row) {
|
|
89
89
|
let str = '';
|
|
90
|
-
let {
|
|
90
|
+
let { type = 'txt', component = null } = this.column;
|
|
91
91
|
const value = row[this.column.value];
|
|
92
92
|
if (this.column.formatValue) {
|
|
93
93
|
return this.column.formatValue(row, this.column);
|
|
@@ -97,7 +97,7 @@ export default {
|
|
|
97
97
|
} else {
|
|
98
98
|
switch (type) {
|
|
99
99
|
case 'select':
|
|
100
|
-
let obj = options.find(f => f.value == value) || {};
|
|
100
|
+
let obj = this.column.options.find(f => f.value == value) || {};
|
|
101
101
|
str = formatIfJson(obj.label);
|
|
102
102
|
break;
|
|
103
103
|
case 'time':
|
package/lib/css/index.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@charset "UTF-8";.saas-card,.saas-dialog .el-dialog{border-radius:6px}.saas-dialog-footer,.saas-drawer-footer{height:auto;text-align:right}.saas-dialog .el-dialog__body{padding:0}.saas-dialog .el-dialog__header{border-bottom:1px solid #dbdee7;padding:12px 16px}.saas-dialog .el-dialog__footer{padding:8px 16px;border-top:1px solid #dbdee7}.saas-dialog .el-dialog__headerbtn{top:16px}.content-no-padding .saas-dialog-content{padding:0}.saas-dialog-auto{max-height:calc(85vh - 100px);overflow-y:auto}.saas-dialog-content{padding:16px}.saas-drawer .el-drawer__body{display:flex;position:relative}.saas-drawer .el-drawer__header{padding:12px 16px}.saas-drawer .el-drawer.rtl{border-radius:8px 0 0 8px}.saas-drawer-content{flex:1;padding:16px;overflow-y:auto}.saas-drawer-footer{padding:12px 16px;border-top:1px #efefef solid}.saas-detail{background:#fff;height:100%;display:flex;flex-direction:column;position:relative}.saas-detail-top{flex:1;overflow-y:auto;overflow-x:auto}.saas-detail-header{display:flex;padding:24px 64px;position:sticky;background:#fff;top:0;z-index:10}.saas-detail-title{display:flex;align-items:center;font-size:16px;font-weight:600;color:#0e1822}.saas-detail-sub{margin-top:8px}.saas-title-line{display:inline-block;width:4px;height:16px;background:#28b86a;margin-right:8px;vertical-align:middle}.saas-detail-backbox{display:flex;align-items:center;position:absolute;left:24px;top:24px}.saas-detail-back{display:flex;align-items:center;border-radius:50%;border:1px solid #dbdee7;width:24px;height:24px;justify-content:center;color:#a1a5b2;cursor:pointer}.saas-detail-back:hover{background:#f7f9fb}.saas-detail-content{padding:0 64px 24px;flex:1}.saas-detail-footer{padding:16px 24px;background:#fff;text-align:center;box-shadow:8px 0 12px 0 rgba(161,165,178,.1);border-radius:0;border-top:1px solid #dbdee7;z-index:5}.saas-unit-danger,.saas-unit-deafault,.saas-unit-info,.saas-unit-primary,.saas-unit-success,.saas-unit-warning{width:8px;height:8px;border-radius:2px}.saas-unit{display:flex;align-items:center;gap:6px;white-space:nowrap;color:#0e1822;font-size:14px}.saas-unit-deafault,.saas-unit-primary{background-color:#1890ff}.saas-unit-info{background-color:#a1a5b2}.saas-unit-success{background-color:#2ecc71}.saas-unit-danger{background-color:#ff3b30}.saas-unit-warning{background-color:#f90}.saas-unit-link{text-decoration:underline;cursor:pointer}.saas-unit-link:hover{color:#1890ff}.saas-unit-text{width:auto;flex:1;text-overflow:ellipsis;overflow:hidden}.saas-card{border:1px solid #dbdee7;margin-bottom:24px}.saas-card.hidden-card{border-bottom:none}.saas-card.hidden-card .saas-card-header{border-radius:6px}.saas-card__action{flex-shrink:0;width:auto}.saas-card-header{display:flex;background:#f7f9fb;border-radius:6px 6px 0 0;border-bottom:1px solid #dbdee7;font-weight:500;font-size:16px;color:#0e1822;padding:8px 16px;align-items:center}.saas-card-title{flex:1}.saas-card-title .el-button--text{padding:0}.saas-card-content{padding:16px}.saas-card-icon{cursor:pointer;margin-right:8px}.saas-group{display:flex;overflow-x:auto;min-height:50px;padding-bottom:4px}.saas-group div{box-sizing:border-box}.saas-group::-webkit-scrollbar{width:3px;height:4px;background-color:#fff;cursor:pointer}.saas-group::-webkit-scrollbar-thumb{background:rgba(144,147,153,.2)}.saas-group::-webkit-scrollbar-thumb:hover{background:rgba(144,147,153,.5)}.saas-group::-webkit-scrollbar-track{background-color:#fff}.saas-sort-group{display:flex;border-radius:6px;margin-right:8px;background:#f7f9fb}.saas-sort-item{width:136px;background:#f7f9fb;border:1px solid #f7f9fb;text-align:center;padding:8px 4px;position:relative;cursor:pointer;border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center}.saas-sort-item .title{font-weight:600;font-size:16px;color:#0e1822;line-height:24px}.saas-sort-item .text{font-size:14px;color:#7b8089;line-height:22px;max-width:100%}.saas-sort-item img{display:none;position:absolute;width:16px;right:-1px;top:-1px}.saas-sort-item.active{border:1px solid #28b86a;border-radius:6px;background:#f4fbf8}.s-message-box-dialog,.saas-page-table{border-radius:8px}.saas-sort-item.active .title{color:#28b86a}.saas-sort-item.active img{display:block}.saas-group-title{font-size:14px;color:#0e1822;margin-bottom:8px}.s-message-box-dialog-wrapper{display:flex;align-items:center}.s-message-box-dialog-wrapper .s-message-box-dialog.el-dialog{margin-top:0!important}.s-message-box-dialog .el-dialog__header{padding:24px 24px 0}.s-message-box-dialog .el-dialog__body{padding:0 24px}.s-message-box-dialog .el-dialog__footer{padding:0 24px 24px}.s-message-box-dialog__title{padding-right:8px}.message-box__body{padding-left:32px}.message-box__header{font-weight:600;font-size:16px;color:#333;line-height:24px;margin-bottom:8px}.message-box__content{margin-bottom:24px;color:#5c616a}.message-box__footer{display:flex;justify-content:flex-end}.message-box__input{width:100%;padding:6px}.message-box_icon{color:#f90;display:flex;font-size:24px}.message-box_main{display:flex;gap:8px}.message-box_right{flex:1;width:0}.saas-page-table{background:#fff;height:calc(100% - 16px);overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;position:relative;padding:16px}.saas-page-table__header{flex-shrink:0}.saas-page-table__menu{display:flex;align-items:center;font-size:16px;font-weight:600;color:#0e1822;margin-bottom:16px}.saas-page-table__menu.hasClose{font-weight:400}.saas-page-table__back-title{margin-right:16px}.saas-page-table__title-line{height:14px;width:1px;background:#dbdee7;margin-right:16px}.saas-page-table--hasButton .saas-page-table__footer{padding-top:16px;padding-bottom:16px;margin:0 -16px -16px;text-align:center;box-shadow:8px 0 12px 0 rgba(161,165,178,.1);border-radius:0;border-top:1px solid #dbdee7}.saas-page-table--hasButton .saas-page-content__box{overflow-y:auto}.saas-page-table__sub{margin-top:8px}.saas-page-header__line{display:inline-block;width:4px;height:16px;background:#28b86a;margin-right:8px;vertical-align:middle}.saas-page-table__backbox{display:flex;align-items:center;top:24px}.saas-page-table__back,.saas-steptop-btn{align-items:center;display:flex}.saas-page-table__back{border-radius:50%;border:1px solid #dbdee7;width:24px;height:24px;justify-content:center;color:#a1a5b2;cursor:pointer;margin-right:8px}.saas-field-group .saas-field-group-item.saas-field-single .el-input-number__inner,.saas-field-group .saas-field-group-item.saas-field-single .el-input__inner,.saas-segmented{border-radius:6px}.saas-page-table__back:hover{background:#f7f9fb}.saas-page-table__title{flex:1;width:0;overflow:hidden;text-overflow:ellipsis}.saas-page-table--form .saas-page-table__content{min-height:auto}.saas-page-table__content{flex:1;min-height:300px}.saas-page-content__box{height:100%}.saas-page-table__footer{flex-shrink:0}.saas-page__button{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap}.saas-table-buttons{display:flex;gap:0 8px;flex-wrap:wrap;align-items:center}.saas-table-buttons .el-button+.el-button{margin-left:0}.saas-table-buttons .smart-More{font-weight:bolder}.saas-container{display:flex;flex-direction:column;height:100%;flex:1}.saas-container-content{flex:1;min-height:300px}.saas-input .el-input-group__append{padding:0;background:#f7f9fb;color:#0e1822}.saas-input .el-textarea.el-input--small.is-disabled.el-input--suffix .el-textarea__inner{color:var(--saas-gray-900)}.saas-input-number,.saas-select-input{display:inline-block;width:100%}.saas-text-mode{display:inline}.saas-cascader{width:100%}.saas-cascader .el-cascader{height:30px;line-height:30px}.saas-cascader .el-cascader__tags{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-wrap:nowrap;margin-left:4px}.saas-cascader .el-cascader__tags .el-tag{max-width:75%}.saas-cascader .el-cascader__tags .el-cascader__search-input{margin-left:10px}.saas-datepicker{width:100%}.saas-datepicker.saas-text-mode .saas-datepicker-text{color:#606266;line-height:32px}.saas-datepicker .el-date-editor .el-input,.saas-datepicker .saas-date-picker{width:100%}.el-picker-panel__shortcut:hover{color:var(--saas-success-600)}.saas-field-group{display:flex;align-items:center;width:100%;gap:0}.saas-field-group .saas-field-group-separator{flex:none;padding:0 4px;color:#606266;line-height:1}.el-button.icon,.el-button.saas-button-text{padding-left:8px;padding-right:8px}.saas-field-group .saas-field-group-item{flex:1}.saas-field-group .saas-field-group-item .el-input,.saas-field-group .saas-field-group-item .el-input-number,.saas-field-group .saas-field-group-item .el-select{width:100%}.saas-field-group:not(.saas-has-separator) .saas-field-group-item.saas-field-first .el-input-number__inner,.saas-field-group:not(.saas-has-separator) .saas-field-group-item.saas-field-first .el-input__inner{border-radius:6px 0 0 6px}.saas-field-group:not(.saas-has-separator) .saas-field-group-item.saas-field-middle .el-input-number__inner,.saas-field-group:not(.saas-has-separator) .saas-field-group-item.saas-field-middle .el-input__inner{border-radius:0;border-left:none}.saas-field-group:not(.saas-has-separator) .saas-field-group-item.saas-field-last .el-input-number__inner,.saas-field-group:not(.saas-has-separator) .saas-field-group-item.saas-field-last .el-input__inner{border-radius:0 6px 6px 0;border-left:none}.saas-text-mode .saas-field-group-item{flex:0;width:auto;max-width:50%}.saas-text-mode .saas-field-first{margin-right:4px}.el-button.saas-button-text{color:#0e1822;display:inline-flex;align-items:center;outline:0;background-color:transparent}.el-button.saas-button-mode__link{padding:0}.el-button.saas-button-text:focus,.el-button.saas-button-text:hover{background-color:#f7f9fb}.no-gap>.el-button.saas-button-text{margin:0}.saas-button.saas-button__icon{padding-right:8px;padding-left:8px}.saas-button-border__primary{border-color:var(--saas-success-600);color:var(--saas-success-600)}.saas-button-border__primary:hover{background-color:var(--saas-success-50)}.saas-space{display:inline-flex}.saas-space.saas-horizontal{flex-direction:row}.saas-space.saas-vertical{flex-direction:column}.saas-space-item{display:inline-flex}.saas-steps{display:flex;width:100%;font-size:14px;flex-direction:row;align-items:center}.saas-steps .saas-steps-item{position:relative;flex:1;overflow:hidden;white-space:nowrap}.saas-steps.vertical{flex-direction:column}.saas-steps-item:last-child{flex:none}.saas-steps-item-tail{position:absolute;top:16px;left:16px;width:calc(100% - 32px);height:1px;background-color:#f0f0f0}.vertical .saas-steps-item-tail{width:1px;height:calc(100% - 32px);left:16px;top:32px}.saas-steps-item-finish .saas-steps-item-tail{background-color:#1890ff}.saas-steps-item-icon{width:24px;height:24px;margin-right:8px;background:#fff;border:1px solid #dbdee7;border-radius:50%;line-height:22px;text-align:center;font-size:14px;color:#dbdee7;display:inline-block}.saas-steps-item-active .saas-steps-item-icon{border-color:#28b86a;background-color:#28b86a;color:#fff}.saas-steps-item-finish .saas-steps-item-icon{border-color:#28b86a;color:#28b86a;line-height:25px}.saas-steps-custom-icon{font-size:20px}.saas-steps-item-content{position:relative;display:inline-block;vertical-align:top}.saas-steps-item-title{color:#7c808a;font-weight:400;overflow:hidden}.saas-steps-item-active .saas-steps-item-title,.saas-steps-item-finish .saas-steps-item-title{color:#0e1822}.saas-steps-item-description{color:rgba(0,0,0,.45);font-size:14px;margin-top:4px}.anticon{display:inline-block;width:1em;height:1em;fill:currentColor}.saas-steps-item-title:after{background:#dbdde7;content:"";display:block;height:1px;left:100%;position:absolute;top:12px;width:9999px;margin-left:16px}.saas-steps-item:not(:first-of-type){padding-left:16px}.saas-steps-item:last-of-type .saas-steps-item-title:after{content:"";display:none}.saas-stabs{width:100%;background:#fff;position:relative}.saas-stabs-container{display:flex;align-items:flex-end;justify-content:space-between;width:100%;position:relative}.saas-segmented,.saas-stabs-nav{display:inline-flex;position:relative}.saas-stabs-container--border{border-bottom:1px solid #e4e6ed}.saas-stabs-scroll-container{flex:1;min-width:0;overflow:hidden;position:relative}.saas-stabs-nav{align-items:center;padding:0 0 8px;overflow-x:auto;overflow-y:hidden;white-space:nowrap;min-width:100%;min-height:32px;scrollbar-width:none;-ms-overflow-style:none}.saas-stabs-extra,.saas-stabs-scroll-btn{align-items:center;padding-bottom:8px;display:flex}.saas-stabs-nav::-webkit-scrollbar{display:none}.saas-stabs-scroll-btn{justify-content:center;width:32px;height:32px;background:#fff;cursor:pointer;color:#666;font-size:14px;transition:all .3s ease;flex-shrink:0;z-index:2}.saas-stabs-scroll-btn:hover{color:var(--saas-success)}.saas-stabs-scroll-btn:active{transform:scale(.95)}.saas-stabs-scroll-btn--left{margin-right:8px}.saas-stabs-scroll-btn--right{margin-left:8px}.saas-stabs-extra{margin-left:16px;flex-shrink:0}.stabs-nav-item{display:flex;align-items:center;cursor:pointer;color:var(--saas-gray-600);font-size:14px;white-space:nowrap;flex-shrink:0;user-select:none;transition:transform .2s ease,opacity .2s ease}.stabs-nav-item:hover,.stabs-nav-item__active{color:var(--saas-success)}.stabs-nav-item__active{font-weight:600}.stabs-nav-item__active:hover{background-color:transparent}.stabs-nav-item__disabled:hover{color:var(--saas-gray-400);background-color:transparent}.stabs-nav-item-text{height:22px}.stabs-nav-indicator{position:absolute;bottom:0;left:0;height:2px;background-color:var(--saas-success);border-radius:1px;z-index:2;pointer-events:none}.saas-stabs[data-draggable=true] .stabs-nav-item:not(.stabs-nav-item__disabled){cursor:grab}.saas-stabs[data-draggable=true] .stabs-nav-item:not(.stabs-nav-item__disabled):active{cursor:grabbing}.stabs-nav-item__chosen{opacity:.8}.stabs-nav-item__dragging{opacity:.3!important;transform:scale(.95)!important}.stabs-nav-item__ghost{background:var(--saas-gray-200);cursor:grabbing!important}.stabs-nav-item__fallback{background:var(--saas-gray-200);cursor:grabbing}.stabs-nav-item__disabled{color:var(--saas-gray-400);cursor:not-allowed!important;transform:none!important}.stabs-nav-item__disabled:hover{transform:none!important}.sortable-drag{opacity:.3}.sortable-ghost{opacity:.4;background:#f5f7fa}.saas-segmented{padding:1px;border:1px solid var(--saas-gray-border);background-color:#fff;width:fit-content}.saas-segmented .is-actived,.saas-segmented-slider{background-color:var(--saas-success-100);border-radius:4px}.saas-segmented-slider{position:absolute;top:1px;left:1px;height:calc(100% - 2px);transition:all .3s cubic-bezier(.4,0,.2,1);z-index:1}.saas-segmented-item{position:relative;padding:6px 8px;line-height:1;cursor:pointer;z-index:2;transition:color .3s ease}.saas-segmented-item__icon,.saas-segmented-item__text{display:inline-block;line-height:1;color:var(--saas-gray-500);font-size:14px}.saas-segmented .is-actived{font-weight:500}.saas-segmented .is-actived .saas-segmented-item__icon,.saas-segmented .is-actived .saas-segmented-item__text{color:var(--saas-success)}.saas-segmented__animating .is-actived{background-color:transparent}.saas-segmented-item__with-icon{display:flex;align-items:center;justify-content:center;gap:4px}.saas-segmented-item__icon-only{display:flex;align-items:center;justify-content:center;min-width:32px}.saas-segmented-item__with-icon .saas-segmented-item__icon,.saas-segmented-item__with-icon .saas-segmented-item__text{vertical-align:middle}.el-dropdown-menu .saas-segmented-dropdown-item{display:flex;justify-content:space-between;align-items:center;padding:0 8px}.el-dropdown-menu .saas-segmented-dropdown-item__text{flex:1}.saas-tooltip-wrap__content{display:inline;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:break-all}.saas-tooltip-wrap__content-more{word-break:break-all;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;-webkit-line-clamp:2;white-space:normal}.saas-tooltip-wrap__text{font-weight:inherit;font-size:inherit}.saas-tooltip-wrap__text-inherit{color:inherit}.saas-currency-select .saas-currency-select-text,.saas-currency.saas-text-mode .saas-currency-text{display:inline-block;line-height:32px;color:#606266}.saas-currency{width:100%}.saas-currency-select{width:100%}.saas-currency-select .currency-input-wrapper{display:flex;align-items:center;gap:0;width:100%}.saas-currency-select .currency-input-wrapper .currency-input-item .el-input,.saas-currency-select .currency-input-wrapper .currency-input-item .el-select,.saas-currency-select .currency-input-wrapper .currency-select-item .el-input,.saas-currency-select .currency-input-wrapper .currency-select-item .el-select{width:100%}.saas-currency-select .currency-input-wrapper .currency-input-item{flex:1;min-width:0}.saas-currency-select .currency-input-wrapper .currency-input-item.field-first .el-input__inner{border-radius:4px 0 0 4px}.saas-currency-select .currency-input-wrapper .currency-input-item.field-first .el-input.is-focus .el-input__inner{border-right-color:#dcdfe6}.saas-currency-select .currency-input-wrapper .currency-select-item{width:80px;flex-shrink:0}.saas-currency-select .currency-input-wrapper .currency-select-item.field-last .el-input__inner{border-radius:0 4px 4px 0;border-left:none}.saas-currency-select .currency-input-wrapper .currency-select-item.field-last .el-input.is-focus .el-input__inner,.saas-currency-select .currency-input-wrapper .currency-select-item.field-last .el-input:hover .el-input__inner{border-left:1px solid #dcdfe6}.saas-currency-select .currency-input-wrapper .currency-select-item.field-last .el-input.is-focus .el-input__inner{border-color:var(--saas-success)}.saas-currency-select .currency-input-wrapper .currency-input-item .el-input-group--prepend .el-input__inner{border-left:none}.saas-currency-select .currency-input-wrapper .currency-input-item .el-input-group__prepend{border-radius:4px 0 0 4px;border-right:none}.saas-alert{display:flex;padding:9px 16px;border-radius:6px;background:#fff;font-size:14px;color:var(--saas-gray-600)}.saas-alert-icon{font-size:16px;margin-right:8px;display:flex;align-items:center;color:var(--saas-warning-600)}.saas-alert-main{flex:1}.saas-alert-title{display:flex;align-items:center;justify-content:space-between;line-height:22px}.saas-alert-title .title-append{margin-left:8px;flex-shrink:0}.saas-alert-content{color:var(--saas-gray-600)}.saas-alert.is-success{background-color:var(--saas-success-50);border:1px solid transparent;border-color:color-mix(in srgb,var(--saas-success-600) 50%,transparent)}.saas-alert.is-success .el-button--text,.saas-alert.is-success .saas-alert-icon{color:var(--saas-success-600)}.saas-alert.is-success .el-button--text:hover{color:var(--saas-success-400)}.saas-alert.is-warning{background-color:var(--saas-warning-50);border:1px solid transparent;border-color:color-mix(in srgb,var(--saas-warning-600) 50%,transparent)}.saas-alert.is-warning .el-button--text,.saas-alert.is-warning .saas-alert-icon{color:var(--saas-warning-600)}.saas-alert.is-warning .el-button--text:hover{color:var(--saas-warning-400)}.saas-alert.is-danger{background-color:var(--saas-danger-50);border:1px solid transparent;border-color:color-mix(in srgb,var(--saas-danger-600) 50%,transparent)}.saas-alert.is-danger .el-button--text,.saas-alert.is-danger .saas-alert-icon{color:var(--saas-danger-600)}.saas-alert.is-danger .el-button--text:hover{color:var(--saas-danger-400)}.saas-alert.is-primary{background-color:var(--saas-primary-50);border:1px solid transparent;border-color:color-mix(in srgb,var(--saas-primary-600) 50%,transparent)}.saas-alert.is-primary .el-button--text,.saas-alert.is-primary .saas-alert-icon{color:var(--saas-primary-600)}.saas-alert.is-primary .el-button--text:hover{color:var(--saas-primary-400)}.saas-alert.is-message{padding:0}.saas-empty-data{text-align:center;display:flex;align-items:center;justify-content:center;min-height:150px}.saas-empty-text{font-weight:400;font-size:14px;color:#a1a5b2;line-height:16px;margin-top:4px}.saas-empty-img{width:100px}.saas-item-list__item{line-height:20px;color:var(--saas-gray-600);font-size:14px;padding:6px 8px;border-radius:6px;margin-bottom:4px;cursor:pointer}.saas-item-list__item.active,.saas-item-list__item:hover{background-color:var(--saas-gray-50)}.saas-item-list--custom .saas-item-list__item{padding:0;margin:0;cursor:inherit}.saas-item-list--custom .saas-item-list__item:hover{background-color:transparent}.saas-item-list__item-label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.saas-tag{display:inline-block;white-space:nowrap;border-radius:4px}.saas-tag.el-tag--mini{line-height:18px}.saas-tag.saas-tag-success{color:var(--saas-success-600);background-color:var(--saas-success-50);border:1px solid transparent;border-color:var(--saas-success-600)}.saas-tag.saas-tag-warning{color:var(--saas-warning-600);background-color:var(--saas-warning-50);border:1px solid transparent;border-color:var(--saas-warning-600)}.saas-tag.saas-tag-danger{color:var(--saas-danger-600);background-color:var(--saas-danger-50);border:1px solid transparent;border-color:var(--saas-danger-600)}.saas-tag.saas-tag-primary{color:var(--saas-primary-600);background-color:var(--saas-primary-50);border:1px solid transparent;border-color:var(--saas-primary-600)}.saas-tag.saas-tag-info{color:var(--saas-gray-900);background-color:var(--saas-gray-50);border:1px solid transparent;border-color:var(--saas-gray-200)}.saas-tag.saas-tag-draft{color:var(--saas-gray-400);background-color:#fff;border:1px solid transparent;border-color:var(--saas-gray-200)}.saas-tip{font-size:14px;color:#a1a5b2}
|
|
1
|
+
@charset "UTF-8";.saas-card,.saas-dialog .el-dialog{border-radius:6px}.saas-dialog-footer,.saas-drawer-footer{height:auto;text-align:right}.saas-dialog .el-dialog__body{padding:0}.saas-dialog .el-dialog__header{border-bottom:1px solid #dbdee7;padding:12px 16px}.saas-dialog .el-dialog__footer{padding:8px 16px;border-top:1px solid #dbdee7}.saas-dialog .el-dialog__headerbtn{top:16px}.content-no-padding .saas-dialog-content{padding:0}.saas-dialog-auto{max-height:calc(85vh - 100px);overflow-y:auto}.saas-dialog-content{padding:16px}.saas-drawer .el-drawer__body{display:flex;position:relative}.saas-drawer .el-drawer__header{padding:12px 16px}.saas-drawer .el-drawer.rtl{border-radius:8px 0 0 8px}.saas-drawer-content{flex:1;padding:16px;overflow-y:auto}.saas-drawer-footer{padding:12px 16px;border-top:1px #efefef solid}.saas-detail{background:#fff;height:100%;display:flex;flex-direction:column;position:relative}.saas-detail-top{flex:1;overflow-y:auto;overflow-x:auto}.saas-detail-header{display:flex;padding:24px 64px;position:sticky;background:#fff;top:0;z-index:10}.saas-detail-title{display:flex;align-items:center;font-size:16px;font-weight:600;color:#0e1822}.saas-detail-sub{margin-top:8px}.saas-title-line{display:inline-block;width:4px;height:16px;background:#28b86a;margin-right:8px;vertical-align:middle}.saas-detail-backbox{display:flex;align-items:center;position:absolute;left:24px;top:24px}.saas-detail-back{display:flex;align-items:center;border-radius:50%;border:1px solid #dbdee7;width:24px;height:24px;justify-content:center;color:#a1a5b2;cursor:pointer}.saas-detail-back:hover{background:#f7f9fb}.saas-detail-content{padding:0 64px 24px;flex:1}.saas-detail-footer{padding:16px 24px;background:#fff;text-align:center;box-shadow:8px 0 12px 0 rgba(161,165,178,.1);border-radius:0;border-top:1px solid #dbdee7;z-index:5}.saas-unit-danger,.saas-unit-deafault,.saas-unit-info,.saas-unit-primary,.saas-unit-success,.saas-unit-warning{width:8px;height:8px;border-radius:2px}.saas-unit{display:flex;align-items:center;gap:6px;white-space:nowrap;color:#0e1822;font-size:14px}.saas-unit-deafault,.saas-unit-primary{background-color:#1890ff}.saas-unit-info{background-color:#a1a5b2}.saas-unit-success{background-color:#2ecc71}.saas-unit-danger{background-color:#ff3b30}.saas-unit-warning{background-color:#f90}.saas-unit-link{text-decoration:underline;cursor:pointer}.saas-unit-link:hover{color:#1890ff}.saas-unit-text{width:auto;flex:1;text-overflow:ellipsis;overflow:hidden}.saas-card{border:1px solid #dbdee7;margin-bottom:24px}.saas-card.hidden-card{border-bottom:none}.saas-card.hidden-card .saas-card-header{border-radius:6px}.saas-card__action{flex-shrink:0;width:auto}.saas-card-header{display:flex;background:#f7f9fb;border-radius:6px 6px 0 0;border-bottom:1px solid #dbdee7;font-weight:500;font-size:16px;color:#0e1822;padding:8px 16px;align-items:center}.saas-card-title{flex:1}.saas-card-title .el-button--text{padding:0}.saas-card-content{padding:16px}.saas-card-icon{cursor:pointer;margin-right:8px}.saas-group{display:flex;overflow-x:auto;min-height:50px;padding-bottom:4px}.saas-group div{box-sizing:border-box}.saas-group::-webkit-scrollbar{width:3px;height:4px;background-color:#fff;cursor:pointer}.saas-group::-webkit-scrollbar-thumb{background:rgba(144,147,153,.2)}.saas-group::-webkit-scrollbar-thumb:hover{background:rgba(144,147,153,.5)}.saas-group::-webkit-scrollbar-track{background-color:#fff}.saas-sort-group{display:flex;border-radius:6px;margin-right:8px;background:#f7f9fb}.saas-sort-item{width:136px;background:#f7f9fb;border:1px solid #f7f9fb;text-align:center;padding:8px 4px;position:relative;cursor:pointer;border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center}.saas-sort-item .title{font-weight:600;font-size:16px;color:#0e1822;line-height:24px}.saas-sort-item .text{font-size:14px;color:#7b8089;line-height:22px;max-width:100%}.saas-sort-item img{display:none;position:absolute;width:16px;right:-1px;top:-1px}.saas-sort-item.active{border:1px solid #28b86a;border-radius:6px;background:#f4fbf8}.s-message-box-dialog,.saas-page-table{border-radius:8px}.saas-sort-item.active .title{color:#28b86a}.saas-sort-item.active img{display:block}.saas-group-title{font-size:14px;color:#0e1822;margin-bottom:8px}.s-message-box-dialog-wrapper{display:flex;align-items:center}.s-message-box-dialog-wrapper .s-message-box-dialog.el-dialog{margin-top:0!important}.s-message-box-dialog .el-dialog__header{padding:24px 24px 0}.s-message-box-dialog .el-dialog__body{padding:0 24px}.s-message-box-dialog .el-dialog__footer{padding:0 24px 24px}.s-message-box-dialog__title{padding-right:8px}.message-box__body{padding-left:32px}.message-box__header{font-weight:600;font-size:16px;color:#333;line-height:24px;margin-bottom:8px}.message-box__content{margin-bottom:24px;color:#5c616a}.message-box__footer{display:flex;justify-content:flex-end}.message-box__input{width:100%;padding:6px}.message-box_icon{color:#f90;display:flex;font-size:24px}.message-box_main{display:flex;gap:8px}.message-box_right{flex:1;width:0}.saas-page-table{background:#fff;height:calc(100% - 16px);overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;position:relative;padding:16px}.saas-page-table__header{flex-shrink:0}.saas-page-table__menu{display:flex;align-items:center;font-size:16px;font-weight:600;color:#0e1822;margin-bottom:16px}.saas-page-table__menu.hasClose{font-weight:400}.saas-page-table__back-title{margin-right:16px}.saas-page-table__title-line{height:14px;width:1px;background:#dbdee7;margin-right:16px}.saas-page-table--hasButton .saas-page-table__footer{padding-top:16px;padding-bottom:16px;margin:0 -16px -16px;text-align:center;box-shadow:8px 0 12px 0 rgba(161,165,178,.1);border-radius:0;border-top:1px solid #dbdee7}.saas-page-table--hasButton .saas-page-content__box{overflow-y:auto}.saas-page-table__sub{margin-top:8px}.saas-page-header__line{display:inline-block;width:4px;height:16px;background:#28b86a;margin-right:8px;vertical-align:middle}.saas-page-table__backbox{display:flex;align-items:center;top:24px}.saas-page-table__back,.saas-steptop-btn{align-items:center;display:flex}.saas-page-table__back{border-radius:50%;border:1px solid #dbdee7;width:24px;height:24px;justify-content:center;color:#a1a5b2;cursor:pointer;margin-right:8px}.saas-field-group .saas-field-group-item.saas-field-single .el-input-number__inner,.saas-field-group .saas-field-group-item.saas-field-single .el-input__inner,.saas-segmented{border-radius:6px}.saas-page-table__back:hover{background:#f7f9fb}.saas-page-table__title{flex:1;width:0;overflow:hidden;text-overflow:ellipsis}.saas-page-table--form .saas-page-table__content{min-height:auto}.saas-page-table__content{flex:1;min-height:300px}.saas-page-content__box{height:100%}.saas-page-table__footer{flex-shrink:0}.saas-page__button{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap}.saas-table-buttons{display:flex;gap:0 8px;flex-wrap:wrap;align-items:center}.saas-table-buttons .el-button+.el-button{margin-left:0}.saas-table-buttons .smart-More{font-weight:bolder}.saas-container{display:flex;flex-direction:column;height:100%;flex:1}.saas-container-content{flex:1;min-height:300px}.saas-input .el-input-group__append{padding:0;background:#f7f9fb;color:#0e1822}.saas-input .el-textarea.el-input--small.is-disabled.el-input--suffix .el-textarea__inner{color:var(--saas-gray-900)}.saas-input-number,.saas-select-input{display:inline-block;width:100%}.saas-text-mode{display:inline}.saas-cascader{width:100%}.saas-cascader .el-cascader{height:30px;line-height:30px}.saas-cascader .el-cascader__tags{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-wrap:nowrap;margin-left:4px}.saas-cascader .el-cascader__tags .el-tag{max-width:75%}.saas-cascader .el-cascader__tags .el-cascader__search-input{margin-left:10px}.saas-datepicker{width:100%}.saas-datepicker.saas-text-mode .saas-datepicker-text{color:#606266;line-height:32px}.saas-datepicker .el-date-editor .el-input,.saas-datepicker .saas-date-picker{width:100%}.el-picker-panel__shortcut:hover{color:var(--saas-success-600)}.saas-field-group{display:flex;align-items:center;width:100%;gap:0}.saas-field-group .saas-field-group-separator{flex:none;padding:0 4px;color:#606266;line-height:1}.el-button.icon,.el-button.saas-button-text{padding-left:8px;padding-right:8px}.saas-field-group .saas-field-group-item{flex:1}.saas-field-group .saas-field-group-item .el-input,.saas-field-group .saas-field-group-item .el-input-number,.saas-field-group .saas-field-group-item .el-select{width:100%}.saas-field-group:not(.saas-has-separator) .saas-field-group-item.saas-field-first .el-input-number__inner,.saas-field-group:not(.saas-has-separator) .saas-field-group-item.saas-field-first .el-input__inner{border-radius:6px 0 0 6px}.saas-field-group:not(.saas-has-separator) .saas-field-group-item.saas-field-middle .el-input-number__inner,.saas-field-group:not(.saas-has-separator) .saas-field-group-item.saas-field-middle .el-input__inner{border-radius:0;border-left:none}.saas-field-group:not(.saas-has-separator) .saas-field-group-item.saas-field-last .el-input-number__inner,.saas-field-group:not(.saas-has-separator) .saas-field-group-item.saas-field-last .el-input__inner{border-radius:0 6px 6px 0;border-left:none}.saas-text-mode .saas-field-group-item{flex:0;width:auto;max-width:50%}.saas-text-mode .saas-field-first{margin-right:4px}.el-button.saas-button-text{display:inline-flex;align-items:center;outline:0;background-color:transparent}.el-button.saas-button-mode__link{padding:0}.el-button.saas-button-text:focus,.el-button.saas-button-text:hover{background-color:#f7f9fb}.no-gap>.el-button.saas-button-text{margin:0}.saas-button.saas-button__icon{padding-right:8px;padding-left:8px}.saas-button-border__primary{border-color:var(--saas-success-600);color:var(--saas-success-600)}.saas-button-border__primary:hover{background-color:var(--saas-success-50)}.saas-space{display:inline-flex}.saas-space.saas-horizontal{flex-direction:row}.saas-space.saas-vertical{flex-direction:column}.saas-space-item{display:inline-flex}.saas-steps{display:flex;width:100%;font-size:14px;flex-direction:row;align-items:center}.saas-steps .saas-steps-item{position:relative;flex:1;overflow:hidden;white-space:nowrap}.saas-steps.vertical{flex-direction:column}.saas-steps-item:last-child{flex:none}.saas-steps-item-tail{position:absolute;top:16px;left:16px;width:calc(100% - 32px);height:1px;background-color:#f0f0f0}.vertical .saas-steps-item-tail{width:1px;height:calc(100% - 32px);left:16px;top:32px}.saas-steps-item-finish .saas-steps-item-tail{background-color:#1890ff}.saas-steps-item-icon{width:24px;height:24px;margin-right:8px;background:#fff;border:1px solid #dbdee7;border-radius:50%;line-height:22px;text-align:center;font-size:14px;color:#dbdee7;display:inline-block}.saas-steps-item-active .saas-steps-item-icon{border-color:#28b86a;background-color:#28b86a;color:#fff}.saas-steps-item-finish .saas-steps-item-icon{border-color:#28b86a;color:#28b86a;line-height:25px}.saas-steps-custom-icon{font-size:20px}.saas-steps-item-content{position:relative;display:inline-block;vertical-align:top}.saas-steps-item-title{color:#7c808a;font-weight:400;overflow:hidden}.saas-steps-item-active .saas-steps-item-title,.saas-steps-item-finish .saas-steps-item-title{color:#0e1822}.saas-steps-item-description{color:rgba(0,0,0,.45);font-size:14px;margin-top:4px}.anticon{display:inline-block;width:1em;height:1em;fill:currentColor}.saas-steps-item-title:after{background:#dbdde7;content:"";display:block;height:1px;left:100%;position:absolute;top:12px;width:9999px;margin-left:16px}.saas-steps-item:not(:first-of-type){padding-left:16px}.saas-steps-item:last-of-type .saas-steps-item-title:after{content:"";display:none}.saas-stabs{width:100%;position:relative}.saas-stabs-container{display:flex;align-items:flex-end;justify-content:space-between;width:100%;position:relative}.saas-segmented,.saas-stabs-nav{display:inline-flex;position:relative}.saas-stabs-container--border{border-bottom:1px solid #e4e6ed}.saas-stabs-scroll-container{flex:1;min-width:0;overflow:hidden;position:relative}.saas-stabs-nav{align-items:center;padding:0 0 8px;overflow-x:auto;overflow-y:hidden;white-space:nowrap;min-width:100%;min-height:32px;scrollbar-width:none;-ms-overflow-style:none}.saas-stabs-extra,.saas-stabs-scroll-btn{align-items:center;padding-bottom:8px;display:flex}.saas-stabs-nav::-webkit-scrollbar{display:none}.saas-stabs-scroll-btn{justify-content:center;width:32px;height:32px;background:#fff;cursor:pointer;color:#666;font-size:14px;transition:all .3s ease;flex-shrink:0;z-index:2}.saas-stabs-scroll-btn:hover{color:var(--saas-success)}.saas-stabs-scroll-btn:active{transform:scale(.95)}.saas-stabs-scroll-btn--left{margin-right:8px}.saas-stabs-scroll-btn--right{margin-left:8px}.saas-stabs-extra{margin-left:16px;flex-shrink:0}.stabs-nav-item{display:flex;align-items:center;cursor:pointer;color:var(--saas-gray-600);font-size:14px;white-space:nowrap;flex-shrink:0;user-select:none;transition:transform .2s ease,opacity .2s ease}.stabs-nav-item:hover,.stabs-nav-item__active{color:var(--saas-success)}.stabs-nav-item__active{font-weight:600}.stabs-nav-item__active:hover{background-color:transparent}.stabs-nav-item__disabled:hover{color:var(--saas-gray-400);background-color:transparent}.stabs-nav-item-text{height:22px}.stabs-nav-indicator{position:absolute;bottom:0;left:0;height:2px;background-color:var(--saas-success);border-radius:1px;z-index:2;pointer-events:none}.saas-stabs[data-draggable=true] .stabs-nav-item:not(.stabs-nav-item__disabled){cursor:grab}.saas-stabs[data-draggable=true] .stabs-nav-item:not(.stabs-nav-item__disabled):active{cursor:grabbing}.stabs-nav-item__chosen{opacity:.8}.stabs-nav-item__dragging{opacity:.3!important;transform:scale(.95)!important}.stabs-nav-item__ghost{background:var(--saas-gray-200);cursor:grabbing!important}.stabs-nav-item__fallback{background:var(--saas-gray-200);cursor:grabbing}.stabs-nav-item__disabled{color:var(--saas-gray-400);cursor:not-allowed!important;transform:none!important}.stabs-nav-item__disabled:hover{transform:none!important}.sortable-drag{opacity:.3}.sortable-ghost{opacity:.4;background:#f5f7fa}.saas-segmented{padding:1px;border:1px solid var(--saas-gray-border);background-color:#fff;width:fit-content}.saas-segmented .is-actived,.saas-segmented-slider{background-color:var(--saas-success-100);border-radius:4px}.saas-segmented-slider{position:absolute;top:1px;left:1px;height:calc(100% - 2px);transition:all .3s cubic-bezier(.4,0,.2,1);z-index:1}.saas-segmented-item{position:relative;padding:6px 8px;line-height:1;cursor:pointer;z-index:2;transition:color .3s ease}.saas-segmented-item__icon,.saas-segmented-item__text{display:inline-block;line-height:1;color:var(--saas-gray-500);font-size:14px}.saas-segmented .is-actived{font-weight:500}.saas-segmented .is-actived .saas-segmented-item__icon,.saas-segmented .is-actived .saas-segmented-item__text{color:var(--saas-success)}.saas-segmented__animating .is-actived{background-color:transparent}.saas-segmented-item__with-icon{display:flex;align-items:center;justify-content:center;gap:4px}.saas-segmented-item__icon-only{display:flex;align-items:center;justify-content:center;min-width:32px}.saas-segmented-item__with-icon .saas-segmented-item__icon,.saas-segmented-item__with-icon .saas-segmented-item__text{vertical-align:middle}.el-dropdown-menu .saas-segmented-dropdown-item{display:flex;justify-content:space-between;align-items:center;padding:0 8px}.el-dropdown-menu .saas-segmented-dropdown-item__text{flex:1}.saas-tooltip-wrap__content{display:inline;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:break-word;overflow-wrap:break-word}.saas-tooltip-wrap__content-more{word-break:break-word;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;-webkit-line-clamp:2;white-space:normal}.saas-tooltip-wrap__text{font-weight:inherit;font-size:inherit}.saas-tooltip-wrap__text-inherit{color:inherit}.saas-currency-select .saas-currency-select-text,.saas-currency.saas-text-mode .saas-currency-text{display:inline-block;line-height:32px;color:#606266}.saas-currency{width:100%}.saas-currency-select{width:100%}.saas-currency-select .currency-input-wrapper{display:flex;align-items:center;gap:0;width:100%}.saas-currency-select .currency-input-wrapper .currency-input-item .el-input,.saas-currency-select .currency-input-wrapper .currency-input-item .el-select,.saas-currency-select .currency-input-wrapper .currency-select-item .el-input,.saas-currency-select .currency-input-wrapper .currency-select-item .el-select{width:100%}.saas-currency-select .currency-input-wrapper .currency-input-item{flex:1;min-width:0}.saas-currency-select .currency-input-wrapper .currency-input-item.field-first .el-input__inner{border-radius:4px 0 0 4px}.saas-currency-select .currency-input-wrapper .currency-input-item.field-first .el-input.is-focus .el-input__inner{border-right-color:#dcdfe6}.saas-currency-select .currency-input-wrapper .currency-select-item{width:80px;flex-shrink:0}.saas-currency-select .currency-input-wrapper .currency-select-item.field-last .el-input__inner{border-radius:0 4px 4px 0;border-left:none}.saas-currency-select .currency-input-wrapper .currency-select-item.field-last .el-input.is-focus .el-input__inner,.saas-currency-select .currency-input-wrapper .currency-select-item.field-last .el-input:hover .el-input__inner{border-left:1px solid #dcdfe6}.saas-currency-select .currency-input-wrapper .currency-select-item.field-last .el-input.is-focus .el-input__inner{border-color:var(--saas-success)}.saas-currency-select .currency-input-wrapper .currency-input-item .el-input-group--prepend .el-input__inner{border-left:none}.saas-currency-select .currency-input-wrapper .currency-input-item .el-input-group__prepend{border-radius:4px 0 0 4px;border-right:none}.saas-alert{display:flex;padding:9px 16px;border-radius:6px;background:#fff;font-size:14px;color:var(--saas-gray-600)}.saas-alert-icon{font-size:16px;margin-right:8px;display:flex;align-items:center;color:var(--saas-warning-600)}.saas-alert-main{flex:1}.saas-alert-title{display:flex;align-items:center;justify-content:space-between;line-height:22px}.saas-alert-title .title-append{margin-left:8px;flex-shrink:0}.saas-alert-content{color:var(--saas-gray-600)}.saas-alert.is-success{background-color:var(--saas-success-50);border:1px solid transparent;border-color:color-mix(in srgb,var(--saas-success-600) 50%,transparent)}.saas-alert.is-success .el-button--text,.saas-alert.is-success .saas-alert-icon{color:var(--saas-success-600)}.saas-alert.is-success .el-button--text:hover{color:var(--saas-success-400)}.saas-alert.is-warning{background-color:var(--saas-warning-50);border:1px solid transparent;border-color:color-mix(in srgb,var(--saas-warning-600) 50%,transparent)}.saas-alert.is-warning .el-button--text,.saas-alert.is-warning .saas-alert-icon{color:var(--saas-warning-600)}.saas-alert.is-warning .el-button--text:hover{color:var(--saas-warning-400)}.saas-alert.is-danger{background-color:var(--saas-danger-50);border:1px solid transparent;border-color:color-mix(in srgb,var(--saas-danger-600) 50%,transparent)}.saas-alert.is-danger .el-button--text,.saas-alert.is-danger .saas-alert-icon{color:var(--saas-danger-600)}.saas-alert.is-danger .el-button--text:hover{color:var(--saas-danger-400)}.saas-alert.is-primary{background-color:var(--saas-primary-50);border:1px solid transparent;border-color:color-mix(in srgb,var(--saas-primary-600) 50%,transparent)}.saas-alert.is-primary .el-button--text,.saas-alert.is-primary .saas-alert-icon{color:var(--saas-primary-600)}.saas-alert.is-primary .el-button--text:hover{color:var(--saas-primary-400)}.saas-alert.is-message{padding:0}.saas-empty-data{text-align:center;display:flex;align-items:center;justify-content:center;min-height:150px}.saas-empty-text{font-weight:400;font-size:14px;color:#a1a5b2;line-height:16px;margin-top:4px}.saas-empty-img{width:100px}.saas-item-list__item{line-height:20px;color:var(--saas-gray-600);font-size:14px;padding:6px 8px;border-radius:6px;margin-bottom:4px;cursor:pointer}.saas-item-list__item.active,.saas-item-list__item:hover{background-color:var(--saas-gray-50)}.saas-item-list--custom .saas-item-list__item{padding:0;margin:0;cursor:inherit}.saas-item-list--custom .saas-item-list__item:hover{background-color:transparent}.saas-item-list__item-label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.saas-tag{display:inline-block;white-space:nowrap;border-radius:4px}.saas-tag.el-tag--mini{line-height:18px}.saas-tag.saas-tag-success{color:var(--saas-success-600);background-color:var(--saas-success-50);border:1px solid transparent;border-color:var(--saas-success-600)}.saas-tag.saas-tag-warning{color:var(--saas-warning-600);background-color:var(--saas-warning-50);border:1px solid transparent;border-color:var(--saas-warning-600)}.saas-tag.saas-tag-danger{color:var(--saas-danger-600);background-color:var(--saas-danger-50);border:1px solid transparent;border-color:var(--saas-danger-600)}.saas-tag.saas-tag-primary{color:var(--saas-primary-600);background-color:var(--saas-primary-50);border:1px solid transparent;border-color:var(--saas-primary-600)}.saas-tag.saas-tag-info{color:var(--saas-gray-900);background-color:var(--saas-gray-50);border:1px solid transparent;border-color:var(--saas-gray-200)}.saas-tag.saas-tag-draft{color:var(--saas-gray-400);background-color:#fff;border:1px solid transparent;border-color:var(--saas-gray-200)}.saas-tip{font-size:14px;color:#a1a5b2}
|