@wuxiaolins/form 0.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +297 -0
- package/dist/es/_virtual/_plugin-vue_export-helper.js +1 -0
- package/dist/es/assets/UserAvatar.vue_vue_type_style_index_0_scoped_1f5ca2f1_lang-c84fa0dd.css +1 -0
- package/dist/es/assets/UserSelector.vue_vue_type_style_index_0_scoped_d1da15a2_lang-10fe93cf.css +1 -0
- package/dist/es/assets/UserSelector.vue_vue_type_style_index_0_scoped_e5931f05_lang-cc9e9617.css +1 -0
- package/dist/es/assets/index.vue_vue_type_style_index_0_scoped_20d7bb32_lang-1a84b608.css +1 -0
- package/dist/es/assets/index.vue_vue_type_style_index_0_scoped_2decce67_lang-3aa03f71.css +1 -0
- package/dist/es/assets/index.vue_vue_type_style_index_0_scoped_3bc314b8_lang-55157ef2.css +1 -0
- package/dist/es/assets/index.vue_vue_type_style_index_0_scoped_67c7d6a5_lang-8a12956d.css +1 -0
- package/dist/es/assets/index.vue_vue_type_style_index_0_scoped_95db6420_lang-9bcc3df8.css +1 -0
- package/dist/es/assets/index.vue_vue_type_style_index_0_scoped_b4ba048a_lang-d7e21de3.css +1 -0
- package/dist/es/assets/index.vue_vue_type_style_index_0_scoped_ceac5a29_lang-44bd119a.css +1 -0
- package/dist/es/assets/index.vue_vue_type_style_index_0_scoped_ef6eae82_lang-68f222b0.css +1 -0
- package/dist/es/assets/index.vue_vue_type_style_index_1_lang-14e3eb9c.css +1 -0
- package/dist/es/form/approval-flow/UserAvatar.vue.js +1 -0
- package/dist/es/form/approval-flow/UserAvatar.vue2.js +1 -0
- package/dist/es/form/approval-flow/UserSelector.vue.js +1 -0
- package/dist/es/form/approval-flow/UserSelector.vue2.js +1 -0
- package/dist/es/form/approval-flow/index.js +1 -0
- package/dist/es/form/approval-flow/src/index.vue.js +1 -0
- package/dist/es/form/approval-flow/src/index.vue2.js +1 -0
- package/dist/es/form/checkbox-field/index.js +1 -0
- package/dist/es/form/checkbox-field/src/index.vue.js +1 -0
- package/dist/es/form/checkbox-field/src/index.vue2.js +1 -0
- package/dist/es/form/date-field/index.js +1 -0
- package/dist/es/form/date-field/src/index.vue.js +1 -0
- package/dist/es/form/date-field/src/index.vue2.js +1 -0
- package/dist/es/form/date-range-field/index.js +1 -0
- package/dist/es/form/date-range-field/src/index.vue.js +1 -0
- package/dist/es/form/date-range-field/src/index.vue2.js +1 -0
- package/dist/es/form/department-field/index.js +1 -0
- package/dist/es/form/department-field/src/index.vue.js +1 -0
- package/dist/es/form/department-field/src/index.vue2.js +1 -0
- package/dist/es/form/dingtalk-form/index.js +1 -0
- package/dist/es/form/dingtalk-form/src/index.vue.js +1 -0
- package/dist/es/form/dingtalk-form/src/index.vue2.js +1 -0
- package/dist/es/form/form-render/index.js +1 -0
- package/dist/es/form/form-render/src/index.vue.js +1 -0
- package/dist/es/form/form-render/src/index.vue2.js +1 -0
- package/dist/es/form/input/index.js +1 -0
- package/dist/es/form/input/src/index.vue.js +1 -0
- package/dist/es/form/input/src/index.vue2.js +1 -0
- package/dist/es/form/number-field/index.js +1 -0
- package/dist/es/form/number-field/src/index.vue.js +1 -0
- package/dist/es/form/number-field/src/index.vue2.js +1 -0
- package/dist/es/form/radio-field/index.js +1 -0
- package/dist/es/form/radio-field/src/index.vue.js +1 -0
- package/dist/es/form/radio-field/src/index.vue2.js +1 -0
- package/dist/es/form/select-field/index.js +1 -0
- package/dist/es/form/select-field/src/index.vue.js +1 -0
- package/dist/es/form/select-field/src/index.vue2.js +1 -0
- package/dist/es/form/signature-field/index.js +1 -0
- package/dist/es/form/signature-field/src/index.vue.js +1 -0
- package/dist/es/form/signature-field/src/index.vue2.js +1 -0
- package/dist/es/form/switch-field/index.js +1 -0
- package/dist/es/form/switch-field/src/index.vue.js +1 -0
- package/dist/es/form/switch-field/src/index.vue2.js +1 -0
- package/dist/es/form/table-field/index.js +1 -0
- package/dist/es/form/table-field/src/index.vue.js +1 -0
- package/dist/es/form/table-field/src/index.vue2.js +1 -0
- package/dist/es/form/text-field/index.js +1 -0
- package/dist/es/form/text-field/src/index.vue.js +1 -0
- package/dist/es/form/text-field/src/index.vue2.js +1 -0
- package/dist/es/form/textarea-field/index.js +1 -0
- package/dist/es/form/textarea-field/src/index.vue.js +1 -0
- package/dist/es/form/textarea-field/src/index.vue2.js +1 -0
- package/dist/es/form/upload-field/index.js +1 -0
- package/dist/es/form/upload-field/src/index.vue.js +1 -0
- package/dist/es/form/upload-field/src/index.vue2.js +1 -0
- package/dist/es/index.js +1 -0
- package/dist/es/utils/dingtalk-adapter.js +3 -0
- package/dist/index.es.js +2431 -0
- package/dist/index.umd.js +3 -0
- package/dist/style.css +1 -0
- package/dist/types/form/approval-flow/index.d.ts +4 -0
- package/dist/types/form/approval-flow/index.d.ts.map +1 -0
- package/dist/types/form/approval-flow/types.d.ts +17 -0
- package/dist/types/form/approval-flow/types.d.ts.map +1 -0
- package/dist/types/form/checkbox-field/index.d.ts +2 -0
- package/dist/types/form/checkbox-field/index.d.ts.map +1 -0
- package/dist/types/form/date-field/index.d.ts +2 -0
- package/dist/types/form/date-field/index.d.ts.map +1 -0
- package/dist/types/form/date-range-field/index.d.ts +2 -0
- package/dist/types/form/date-range-field/index.d.ts.map +1 -0
- package/dist/types/form/department-field/index.d.ts +2 -0
- package/dist/types/form/department-field/index.d.ts.map +1 -0
- package/dist/types/form/dingtalk-form/index.d.ts +2 -0
- package/dist/types/form/dingtalk-form/index.d.ts.map +1 -0
- package/dist/types/form/form-render/index.d.ts +2 -0
- package/dist/types/form/form-render/index.d.ts.map +1 -0
- package/dist/types/form/input/index.d.ts +2 -0
- package/dist/types/form/input/index.d.ts.map +1 -0
- package/dist/types/form/number-field/index.d.ts +2 -0
- package/dist/types/form/number-field/index.d.ts.map +1 -0
- package/dist/types/form/radio-field/index.d.ts +2 -0
- package/dist/types/form/radio-field/index.d.ts.map +1 -0
- package/dist/types/form/select-field/index.d.ts +2 -0
- package/dist/types/form/select-field/index.d.ts.map +1 -0
- package/dist/types/form/signature-field/index.d.ts +2 -0
- package/dist/types/form/signature-field/index.d.ts.map +1 -0
- package/dist/types/form/switch-field/index.d.ts +2 -0
- package/dist/types/form/switch-field/index.d.ts.map +1 -0
- package/dist/types/form/table-field/index.d.ts +3 -0
- package/dist/types/form/table-field/index.d.ts.map +1 -0
- package/dist/types/form/text-field/index.d.ts +2 -0
- package/dist/types/form/text-field/index.d.ts.map +1 -0
- package/dist/types/form/textarea-field/index.d.ts +2 -0
- package/dist/types/form/textarea-field/index.d.ts.map +1 -0
- package/dist/types/form/upload-field/index.d.ts +2 -0
- package/dist/types/form/upload-field/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +23 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/types/form-types.d.ts +201 -0
- package/dist/types/types/form-types.d.ts.map +1 -0
- package/dist/types/utils/dingtalk-adapter.d.ts +359 -0
- package/dist/types/utils/dingtalk-adapter.d.ts.map +1 -0
- package/dist/uno.css +34 -0
- package/package.json +88 -0
package/README.md
ADDED
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
# 钉钉表单组件库
|
|
2
|
+
|
|
3
|
+
基于 Ant Design Vue 的钉钉表单组件库,完全支持钉钉表单的动态特性。
|
|
4
|
+
|
|
5
|
+
## ✨ 特性
|
|
6
|
+
|
|
7
|
+
- 🚀 **完全动态** - 自动适配任意结构的钉钉表单
|
|
8
|
+
- 📦 **开箱即用** - 无需配置,自动处理所有字段类型
|
|
9
|
+
- 🎯 **类型安全** - 完整的 TypeScript 类型定义
|
|
10
|
+
- 📱 **响应式** - 自动适配 PC 和移动端
|
|
11
|
+
- 📅 **H5 优化** - 日期范围在 H5 模式下自动拆分为两个独立选择器
|
|
12
|
+
- 🎨 **栅格布局** - 支持 24 栅格系统和字段排序
|
|
13
|
+
- 🔄 **双向绑定** - 支持 v-model 和数据回显
|
|
14
|
+
- ✅ **表单验证** - 内置验证规则和自定义验证
|
|
15
|
+
- 📝 **完整文档** - 详细的使用文档和示例
|
|
16
|
+
|
|
17
|
+
## 📦 安装
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npm install @bsy-ui/form
|
|
21
|
+
# 或
|
|
22
|
+
pnpm add @bsy-ui/form
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## 🚀 快速开始
|
|
26
|
+
|
|
27
|
+
### 基础使用
|
|
28
|
+
|
|
29
|
+
```vue
|
|
30
|
+
<script setup>
|
|
31
|
+
import { ref } from 'vue';
|
|
32
|
+
import { BsyDingTalkForm } from '@bsy-ui/form';
|
|
33
|
+
|
|
34
|
+
const formRef = ref();
|
|
35
|
+
const schemaResponse = ref({
|
|
36
|
+
schemaContent: JSON.stringify({
|
|
37
|
+
title: "我的表单",
|
|
38
|
+
items: [
|
|
39
|
+
{
|
|
40
|
+
componentName: "TextField",
|
|
41
|
+
props: {
|
|
42
|
+
id: "TextField-001",
|
|
43
|
+
label: "姓名",
|
|
44
|
+
required: true
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
}),
|
|
49
|
+
name: "我的表单"
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
const handleSubmit = () => {
|
|
53
|
+
const submitData = formRef.value.getFullSubmitData({
|
|
54
|
+
originatorUserId: 'user123'
|
|
55
|
+
});
|
|
56
|
+
console.log('提交数据:', submitData);
|
|
57
|
+
};
|
|
58
|
+
</script>
|
|
59
|
+
|
|
60
|
+
<template>
|
|
61
|
+
<BsyDingTalkForm
|
|
62
|
+
ref="formRef"
|
|
63
|
+
:schema-response="schemaResponse"
|
|
64
|
+
@submit="handleSubmit"
|
|
65
|
+
/>
|
|
66
|
+
</template>
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## 📚 支持的字段类型
|
|
70
|
+
|
|
71
|
+
| 钉钉组件 | 标准组件 | 说明 |
|
|
72
|
+
|---------|---------|------|
|
|
73
|
+
| TextField | TextField | 单行输入框 |
|
|
74
|
+
| TextareaField | TextareaField | 多行输入框 |
|
|
75
|
+
| NumberField | NumberField | 数字输入框 |
|
|
76
|
+
| DDSelectField | SelectField | 单选下拉框 |
|
|
77
|
+
| DDMultiSelectField | SelectField | 多选下拉框 |
|
|
78
|
+
| RadioField | RadioField | 单选框组 |
|
|
79
|
+
| CheckboxField | CheckboxField | 复选框组 |
|
|
80
|
+
| DDDateField | DateField | 日期选择器 |
|
|
81
|
+
| DDDateRangeField | DateRangeField | 日期范围选择器 |
|
|
82
|
+
| SwitchField | SwitchField | 开关 |
|
|
83
|
+
| DDAttachmentField | UploadField | 附件上传 |
|
|
84
|
+
|
|
85
|
+
## 🎯 核心功能
|
|
86
|
+
|
|
87
|
+
### 1. 动态表单
|
|
88
|
+
|
|
89
|
+
完全支持钉钉表单的动态特性,无论表单结构如何变化,都能自动处理。
|
|
90
|
+
|
|
91
|
+
```javascript
|
|
92
|
+
// ✅ 自动识别字段类型
|
|
93
|
+
// ✅ 自动提取字段 ID
|
|
94
|
+
// ✅ 自动处理嵌套结构
|
|
95
|
+
// ✅ 自动字段匹配
|
|
96
|
+
// ✅ 自动类型转换
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### 2. 数据回显
|
|
100
|
+
|
|
101
|
+
自动将钉钉实例数据转换为表单值。
|
|
102
|
+
|
|
103
|
+
```vue
|
|
104
|
+
<BsyDingTalkForm
|
|
105
|
+
:schema-response="schemaResponse"
|
|
106
|
+
:instance-data="instanceData"
|
|
107
|
+
/>
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### 3. 数据提交
|
|
111
|
+
|
|
112
|
+
自动将表单数据转换为钉钉提交格式。
|
|
113
|
+
|
|
114
|
+
```javascript
|
|
115
|
+
// 方式1: 仅获取 formComponentValues
|
|
116
|
+
const componentValues = formRef.value.getDingTalkSubmitData();
|
|
117
|
+
|
|
118
|
+
// 方式2: 获取完整提交数据(推荐)
|
|
119
|
+
const submitData = formRef.value.getFullSubmitData({
|
|
120
|
+
originatorUserId: 'user123',
|
|
121
|
+
processCode: 'PROC-XXX',
|
|
122
|
+
title: '我的申请'
|
|
123
|
+
});
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### 4. 响应式布局
|
|
127
|
+
|
|
128
|
+
自动适配 PC 和移动端。
|
|
129
|
+
|
|
130
|
+
```vue
|
|
131
|
+
<BsyDingTalkForm
|
|
132
|
+
:responsive="true"
|
|
133
|
+
:mobile-breakpoint="768"
|
|
134
|
+
/>
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### 5. 栅格布局
|
|
138
|
+
|
|
139
|
+
支持 24 栅格系统和字段排序。
|
|
140
|
+
|
|
141
|
+
```javascript
|
|
142
|
+
{
|
|
143
|
+
componentName: "TextField",
|
|
144
|
+
props: { id: "field1" },
|
|
145
|
+
span: 12, // 占 12 格
|
|
146
|
+
offset: 2, // 左侧偏移 2 格
|
|
147
|
+
order: 1 // 排序顺序
|
|
148
|
+
}
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## 📖 文档
|
|
152
|
+
|
|
153
|
+
### 快速入门
|
|
154
|
+
- [快速开始](./.ai/QUICK_START.md) - 5 分钟上手指南
|
|
155
|
+
- [动态表单指南](./.ai/DYNAMIC_FORM_GUIDE.md) - 动态表单完整指南
|
|
156
|
+
|
|
157
|
+
### 核心概念
|
|
158
|
+
- [数据结构说明](./.ai/DINGTALK_DATA_STRUCTURE.md) - 详细的数据结构文档
|
|
159
|
+
- [提交数据格式](./.ai/SUBMIT_DATA_FORMAT.md) - 提交数据格式说明
|
|
160
|
+
- [数据流程图](./.ai/DATA_FLOW.md) - 数据流程可视化
|
|
161
|
+
|
|
162
|
+
### 高级功能
|
|
163
|
+
- [响应式布局](./RESPONSIVE.md) - 响应式布局指南
|
|
164
|
+
- [栅格布局](./GRID_LAYOUT.md) - 栅格布局指南
|
|
165
|
+
- [H5 日期范围](./H5_DATE_RANGE.md) - H5 模式日期范围选择器
|
|
166
|
+
- [H5 测试指南](./H5_TESTING.md) - H5 模式测试方法
|
|
167
|
+
|
|
168
|
+
### 开发参考
|
|
169
|
+
- [实现总结](./.ai/IMPLEMENTATION_SUMMARY.md) - 实现细节总结
|
|
170
|
+
- [API 文档](#api-文档) - 完整的 API 参考
|
|
171
|
+
|
|
172
|
+
## 🔧 API 文档
|
|
173
|
+
|
|
174
|
+
### BsyDingTalkForm Props
|
|
175
|
+
|
|
176
|
+
| 属性 | 类型 | 默认值 | 说明 |
|
|
177
|
+
|-----|------|--------|------|
|
|
178
|
+
| schemaResponse | DingTalkSchemaResponse | - | 钉钉 Schema 响应 |
|
|
179
|
+
| instanceData | DingTalkFormInstance | - | 钉钉实例数据(用于回显) |
|
|
180
|
+
| modelValue | Record<string, any> | - | 表单数据(v-model) |
|
|
181
|
+
| loading | boolean | false | 加载状态 |
|
|
182
|
+
| disabled | boolean | false | 是否禁用 |
|
|
183
|
+
| readonly | boolean | false | 是否只读 |
|
|
184
|
+
| responsive | boolean | true | 是否启用响应式 |
|
|
185
|
+
| mobileBreakpoint | number | 768 | 移动端断点(px) |
|
|
186
|
+
| showSubmit | boolean | true | 是否显示提交按钮 |
|
|
187
|
+
| showReset | boolean | false | 是否显示重置按钮 |
|
|
188
|
+
|
|
189
|
+
### BsyDingTalkForm Events
|
|
190
|
+
|
|
191
|
+
| 事件 | 参数 | 说明 |
|
|
192
|
+
|-----|------|------|
|
|
193
|
+
| submit | (values: Record<string, any>) | 表单提交 |
|
|
194
|
+
| reset | () | 表单重置 |
|
|
195
|
+
| change | (field: string, value: any) | 字段值变化 |
|
|
196
|
+
| schema-loaded | (schema: DingTalkFormSchema) | Schema 加载完成 |
|
|
197
|
+
| data-loaded | (data: Record<string, any>) | 数据回显完成 |
|
|
198
|
+
|
|
199
|
+
### BsyDingTalkForm Methods
|
|
200
|
+
|
|
201
|
+
| 方法 | 参数 | 返回值 | 说明 |
|
|
202
|
+
|-----|------|--------|------|
|
|
203
|
+
| validate | () | Promise<boolean> | 验证表单 |
|
|
204
|
+
| resetFields | () | void | 重置表单 |
|
|
205
|
+
| clearValidate | (fields?: string \| string[]) | void | 清空验证 |
|
|
206
|
+
| getDingTalkSubmitData | () | DingTalkComponentValue[] | 获取 formComponentValues |
|
|
207
|
+
| getFullSubmitData | (options) | DingTalkSubmitData | 获取完整提交数据 |
|
|
208
|
+
|
|
209
|
+
### DingTalkFormAdapter
|
|
210
|
+
|
|
211
|
+
```typescript
|
|
212
|
+
class DingTalkFormAdapter {
|
|
213
|
+
// 解析 Schema
|
|
214
|
+
static parseSchema(
|
|
215
|
+
response: DingTalkSchemaResponse
|
|
216
|
+
): DingTalkFormSchema;
|
|
217
|
+
|
|
218
|
+
// 转换实例数据为表单值(回显)
|
|
219
|
+
static convertInstanceToFormData(
|
|
220
|
+
instance: DingTalkFormInstance,
|
|
221
|
+
schema: DingTalkFormSchema
|
|
222
|
+
): Record<string, any>;
|
|
223
|
+
|
|
224
|
+
// 转换表单值为 formComponentValues
|
|
225
|
+
static convertFormDataToInstance(
|
|
226
|
+
formData: Record<string, any>,
|
|
227
|
+
schema: DingTalkFormSchema
|
|
228
|
+
): DingTalkComponentValue[];
|
|
229
|
+
|
|
230
|
+
// 创建完整的提交数据
|
|
231
|
+
static createSubmitData(
|
|
232
|
+
formData: Record<string, any>,
|
|
233
|
+
schema: DingTalkFormSchema,
|
|
234
|
+
options: SubmitOptions
|
|
235
|
+
): DingTalkSubmitData;
|
|
236
|
+
|
|
237
|
+
// 验证表单数据
|
|
238
|
+
static validateFormData(
|
|
239
|
+
formData: Record<string, any>,
|
|
240
|
+
schema: DingTalkFormSchema
|
|
241
|
+
): ValidationResult;
|
|
242
|
+
}
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
## 💡 示例
|
|
246
|
+
|
|
247
|
+
### 完整示例
|
|
248
|
+
|
|
249
|
+
参考文件:`bsy-form-render/app/pages/render/form/index.vue`
|
|
250
|
+
|
|
251
|
+
该文件包含:
|
|
252
|
+
- ✅ 所有字段类型的示例
|
|
253
|
+
- ✅ 完整的数据回显
|
|
254
|
+
- ✅ 提交数据展示
|
|
255
|
+
- ✅ 调试信息面板
|
|
256
|
+
|
|
257
|
+
### 在线演示
|
|
258
|
+
|
|
259
|
+
```bash
|
|
260
|
+
# 克隆项目
|
|
261
|
+
git clone <repository-url>
|
|
262
|
+
|
|
263
|
+
# 安装依赖
|
|
264
|
+
pnpm install
|
|
265
|
+
|
|
266
|
+
# 启动开发服务器
|
|
267
|
+
cd bsy-form-render
|
|
268
|
+
pnpm dev
|
|
269
|
+
|
|
270
|
+
# 访问示例页面
|
|
271
|
+
# http://localhost:3000/render/form/index
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
## 🤝 贡献
|
|
275
|
+
|
|
276
|
+
欢迎提交 Issue 和 Pull Request!
|
|
277
|
+
|
|
278
|
+
## 📄 许可证
|
|
279
|
+
|
|
280
|
+
MIT License
|
|
281
|
+
|
|
282
|
+
## 🔗 相关链接
|
|
283
|
+
|
|
284
|
+
- [钉钉开放平台](https://open.dingtalk.com/)
|
|
285
|
+
- [Ant Design Vue](https://antdv.com/)
|
|
286
|
+
- [Day.js](https://day.js.org/)
|
|
287
|
+
|
|
288
|
+
## 📞 支持
|
|
289
|
+
|
|
290
|
+
如有问题,请:
|
|
291
|
+
1. 查看[文档](./.ai/QUICK_START.md)
|
|
292
|
+
2. 查看[示例代码](../../bsy-form-render/app/pages/render/form/index.vue)
|
|
293
|
+
3. 提交 [Issue](https://github.com/your-repo/issues)
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
|
|
297
|
+
Made with ❤️ by BSY Team
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const s=(t,e)=>{const o=t.__vccOpts||t;for(const[r,c]of e)o[r]=c;return o};export{s as default};
|
package/dist/es/assets/UserAvatar.vue_vue_type_style_index_0_scoped_1f5ca2f1_lang-c84fa0dd.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.user-avatar-item[data-v-1f5ca2f1]{display:flex;flex-direction:column;align-items:center;position:relative}.user-avatar-item .avatar[data-v-1f5ca2f1]{border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;margin-bottom:6px}.user-avatar-item .user-name[data-v-1f5ca2f1]{font-size:12px;color:#000000d9;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-avatar-item .remove-btn[data-v-1f5ca2f1]{position:absolute;top:-2px;right:-2px;border-radius:50%;background:rgba(0,0,0,.25);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:1;transition:all .3s;z-index:10}.user-avatar-item .remove-btn[data-v-1f5ca2f1]:hover{background:rgba(0,0,0,.45)}.user-avatar-item .arrow-right[data-v-1f5ca2f1]{position:absolute;right:-20px;font-size:18px;color:#00000040}.user-avatar-item.is-modal .avatar[data-v-1f5ca2f1]{width:56px;height:56px;font-size:20px;margin-bottom:8px}.user-avatar-item.is-modal .user-name[data-v-1f5ca2f1]{font-size:13px;max-width:70px}.user-avatar-item.is-modal .remove-btn[data-v-1f5ca2f1]{top:-4px;right:-4px;width:20px;height:20px;font-size:14px}.user-avatar-item.is-modal .arrow-right[data-v-1f5ca2f1]{top:28px}
|
package/dist/es/assets/UserSelector.vue_vue_type_style_index_0_scoped_d1da15a2_lang-10fe93cf.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.user-selector-modal[data-v-d1da15a2] .ant-modal-body{padding:0;max-height:70vh}.user-selector[data-v-d1da15a2]{display:flex;flex-direction:column;height:600px}.user-selector .search-box[data-v-d1da15a2]{padding:16px;border-bottom:1px solid #f0f0f0}.user-selector .selector-content[data-v-d1da15a2]{display:flex;flex:1;overflow:hidden}.user-selector .selector-content .left-panel[data-v-d1da15a2]{width:280px;border-right:1px solid #f0f0f0;overflow:hidden;display:flex;flex-direction:column}.user-selector .selector-content .left-panel[data-v-d1da15a2] .ant-tabs{height:100%;display:flex;flex-direction:column}.user-selector .selector-content .left-panel[data-v-d1da15a2] .ant-tabs .ant-tabs-content-holder{flex:1;overflow:hidden}.user-selector .selector-content .left-panel[data-v-d1da15a2] .ant-tabs .ant-tabs-content{height:100%}.user-selector .selector-content .left-panel[data-v-d1da15a2] .ant-tabs .ant-tabs-tabpane{height:100%;overflow-y:auto}.user-selector .selector-content .left-panel .org-tree[data-v-d1da15a2]{padding:12px}.user-selector .selector-content .left-panel .org-tree[data-v-d1da15a2] .ant-tree .ant-tree-treenode{padding:4px 0}.user-selector .selector-content .left-panel .org-tree[data-v-d1da15a2] .ant-tree .ant-tree-node-content-wrapper:hover{background-color:#f5f5f5}.user-selector .selector-content .left-panel .org-tree[data-v-d1da15a2] .ant-tree .ant-tree-node-selected .ant-tree-node-content-wrapper{background-color:#e6f7ff}.user-selector .selector-content .left-panel .role-list[data-v-d1da15a2]{padding:8px}.user-selector .selector-content .left-panel .role-list .role-item[data-v-d1da15a2]{display:flex;align-items:center;gap:8px;padding:12px;cursor:pointer;border-radius:4px;transition:all .3s}.user-selector .selector-content .left-panel .role-list .role-item[data-v-d1da15a2]:hover{background-color:#f5f5f5}.user-selector .selector-content .left-panel .role-list .role-item.active[data-v-d1da15a2]{background-color:#e6f7ff;color:#1890ff}.user-selector .selector-content .left-panel .role-list .role-item .anticon[data-v-d1da15a2]{font-size:16px}.user-selector .selector-content .right-panel[data-v-d1da15a2]{flex:1;display:flex;flex-direction:column;overflow:hidden}.user-selector .selector-content .right-panel .user-list-header[data-v-d1da15a2]{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid #f0f0f0;background-color:#fafafa}.user-selector .selector-content .right-panel .user-list-header .title[data-v-d1da15a2]{font-weight:500;color:#000000d9}.user-selector .selector-content .right-panel .user-list-header .count[data-v-d1da15a2]{color:#00000073;font-size:12px}.user-selector .selector-content .right-panel .user-list[data-v-d1da15a2]{flex:1;overflow-y:auto;padding:8px}.user-selector .selector-content .right-panel .user-list .user-item[data-v-d1da15a2]{padding:8px;cursor:pointer;border-radius:4px;transition:background-color .3s}.user-selector .selector-content .right-panel .user-list .user-item[data-v-d1da15a2]:hover{background-color:#f5f5f5}.user-selector .selector-content .right-panel .user-list .user-item[data-v-d1da15a2] .ant-checkbox-wrapper{width:100%;margin:0}.user-selector .selector-content .right-panel .user-list .user-item[data-v-d1da15a2] .ant-checkbox-wrapper .ant-checkbox{align-self:flex-start;margin-top:4px}.user-selector .selector-content .right-panel .user-list .user-item .user-info[data-v-d1da15a2]{display:flex;align-items:center;gap:12px;margin-left:8px}.user-selector .selector-content .right-panel .user-list .user-item .user-info .user-avatar[data-v-d1da15a2]{width:40px;height:40px;border-radius:4px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;font-weight:500;flex-shrink:0}.user-selector .selector-content .right-panel .user-list .user-item .user-info .user-details[data-v-d1da15a2]{flex:1;min-width:0}.user-selector .selector-content .right-panel .user-list .user-item .user-info .user-details .user-name[data-v-d1da15a2]{font-size:14px;color:#000000d9;margin-bottom:4px}.user-selector .selector-content .right-panel .user-list .user-item .user-info .user-details .user-dept[data-v-d1da15a2]{font-size:12px;color:#00000073;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-selector .selector-footer[data-v-d1da15a2]{border-top:1px solid #f0f0f0;padding:16px;background-color:#fafafa}.user-selector .selector-footer .selected-info[data-v-d1da15a2]{margin-bottom:12px}.user-selector .selector-footer .selected-info .label[data-v-d1da15a2]{font-size:14px;color:#000000d9;margin-right:8px}.user-selector .selector-footer .selected-info .count[data-v-d1da15a2]{font-size:14px;color:#1890ff}.user-selector .selector-footer .selected-info .selected-tags[data-v-d1da15a2]{margin-top:8px;display:flex;flex-wrap:wrap;gap:8px;max-height:80px;overflow-y:auto}.user-selector .selector-footer .action-buttons[data-v-d1da15a2]{display:flex;justify-content:flex-end;gap:12px}.user-selector .selector-footer .action-buttons .ant-btn[data-v-d1da15a2]{min-width:100px}.user-list[data-v-d1da15a2]::-webkit-scrollbar,.selected-tags[data-v-d1da15a2]::-webkit-scrollbar{width:6px;height:6px}.user-list[data-v-d1da15a2]::-webkit-scrollbar-thumb,.selected-tags[data-v-d1da15a2]::-webkit-scrollbar-thumb{background-color:#0003;border-radius:3px}.user-list[data-v-d1da15a2]::-webkit-scrollbar-thumb:hover,.selected-tags[data-v-d1da15a2]::-webkit-scrollbar-thumb:hover{background-color:#0000004d}.user-list[data-v-d1da15a2]::-webkit-scrollbar-track,.selected-tags[data-v-d1da15a2]::-webkit-scrollbar-track{background-color:transparent}
|
package/dist/es/assets/UserSelector.vue_vue_type_style_index_0_scoped_e5931f05_lang-cc9e9617.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.user-selector-modal[data-v-e5931f05] .ant-modal-body{padding:0;max-height:70vh}.user-selector[data-v-e5931f05]{display:flex;flex-direction:column;height:600px}.user-selector .search-box[data-v-e5931f05]{padding:16px;border-bottom:1px solid #f0f0f0}.user-selector .selector-content[data-v-e5931f05]{display:flex;flex:1;overflow:hidden}.user-selector .selector-content .left-panel[data-v-e5931f05]{width:280px;border-right:1px solid #f0f0f0;overflow:hidden;display:flex;flex-direction:column}.user-selector .selector-content .left-panel[data-v-e5931f05] .ant-tabs{height:100%;display:flex;flex-direction:column}.user-selector .selector-content .left-panel[data-v-e5931f05] .ant-tabs .ant-tabs-content-holder{flex:1;overflow:hidden}.user-selector .selector-content .left-panel[data-v-e5931f05] .ant-tabs .ant-tabs-content{height:100%}.user-selector .selector-content .left-panel[data-v-e5931f05] .ant-tabs .ant-tabs-tabpane{height:100%;overflow-y:auto}.user-selector .selector-content .left-panel .org-tree[data-v-e5931f05]{padding:12px}.user-selector .selector-content .left-panel .org-tree[data-v-e5931f05] .ant-tree .ant-tree-treenode{padding:4px 0}.user-selector .selector-content .left-panel .org-tree[data-v-e5931f05] .ant-tree .ant-tree-node-content-wrapper:hover{background-color:#f5f5f5}.user-selector .selector-content .left-panel .org-tree[data-v-e5931f05] .ant-tree .ant-tree-node-selected .ant-tree-node-content-wrapper{background-color:#e6f7ff}.user-selector .selector-content .left-panel .role-list[data-v-e5931f05]{padding:8px}.user-selector .selector-content .left-panel .role-list .role-item[data-v-e5931f05]{display:flex;align-items:center;gap:8px;padding:12px;cursor:pointer;border-radius:4px;transition:all .3s}.user-selector .selector-content .left-panel .role-list .role-item[data-v-e5931f05]:hover{background-color:#f5f5f5}.user-selector .selector-content .left-panel .role-list .role-item.active[data-v-e5931f05]{background-color:#e6f7ff;color:#1890ff}.user-selector .selector-content .left-panel .role-list .role-item .anticon[data-v-e5931f05]{font-size:16px}.user-selector .selector-content .right-panel[data-v-e5931f05]{flex:1;display:flex;flex-direction:column;overflow:hidden}.user-selector .selector-content .right-panel .user-list-header[data-v-e5931f05]{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid #f0f0f0;background-color:#fafafa}.user-selector .selector-content .right-panel .user-list-header .title[data-v-e5931f05]{font-weight:500;color:#000000d9}.user-selector .selector-content .right-panel .user-list-header .count[data-v-e5931f05]{color:#00000073;font-size:12px}.user-selector .selector-content .right-panel .user-list[data-v-e5931f05]{flex:1;overflow-y:auto;padding:8px}.user-selector .selector-content .right-panel .user-list .user-item[data-v-e5931f05]{padding:8px;cursor:pointer;border-radius:4px;transition:background-color .3s}.user-selector .selector-content .right-panel .user-list .user-item[data-v-e5931f05]:hover{background-color:#f5f5f5}.user-selector .selector-content .right-panel .user-list .user-item[data-v-e5931f05] .ant-checkbox-wrapper{width:100%;margin:0}.user-selector .selector-content .right-panel .user-list .user-item[data-v-e5931f05] .ant-checkbox-wrapper .ant-checkbox{align-self:flex-start;margin-top:4px}.user-selector .selector-content .right-panel .user-list .user-item .user-info[data-v-e5931f05]{display:flex;align-items:center;gap:12px;margin-left:8px}.user-selector .selector-content .right-panel .user-list .user-item .user-info .user-avatar[data-v-e5931f05]{width:40px;height:40px;border-radius:4px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;font-weight:500;flex-shrink:0}.user-selector .selector-content .right-panel .user-list .user-item .user-info .user-details[data-v-e5931f05]{flex:1;min-width:0}.user-selector .selector-content .right-panel .user-list .user-item .user-info .user-details .user-name[data-v-e5931f05]{font-size:14px;color:#000000d9;margin-bottom:4px}.user-selector .selector-content .right-panel .user-list .user-item .user-info .user-details .user-dept[data-v-e5931f05]{font-size:12px;color:#00000073;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-selector .selector-footer[data-v-e5931f05]{border-top:1px solid #f0f0f0;padding:16px;background-color:#fafafa}.user-selector .selector-footer .selected-info[data-v-e5931f05]{margin-bottom:12px}.user-selector .selector-footer .selected-info .label[data-v-e5931f05]{font-size:14px;color:#000000d9;margin-right:8px}.user-selector .selector-footer .selected-info .count[data-v-e5931f05]{font-size:14px;color:#1890ff}.user-selector .selector-footer .selected-info .selected-tags[data-v-e5931f05]{margin-top:8px;display:flex;flex-wrap:wrap;gap:8px;max-height:80px;overflow-y:auto}.user-selector .selector-footer .action-buttons[data-v-e5931f05]{display:flex;justify-content:flex-end;gap:12px}.user-selector .selector-footer .action-buttons .ant-btn[data-v-e5931f05]{min-width:100px}.user-list[data-v-e5931f05]::-webkit-scrollbar,.selected-tags[data-v-e5931f05]::-webkit-scrollbar{width:6px;height:6px}.user-list[data-v-e5931f05]::-webkit-scrollbar-thumb,.selected-tags[data-v-e5931f05]::-webkit-scrollbar-thumb{background-color:#0003;border-radius:3px}.user-list[data-v-e5931f05]::-webkit-scrollbar-thumb:hover,.selected-tags[data-v-e5931f05]::-webkit-scrollbar-thumb:hover{background-color:#0000004d}.user-list[data-v-e5931f05]::-webkit-scrollbar-track,.selected-tags[data-v-e5931f05]::-webkit-scrollbar-track{background-color:transparent}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@charset "UTF-8";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.bsy-approval-flow[data-v-2decce67]{background:#fff;padding:16px}.bsy-approval-flow .flow-header[data-v-2decce67]{margin-bottom:24px}.bsy-approval-flow .flow-header .flow-title[data-v-2decce67]{display:flex;align-items:center;gap:8px}.bsy-approval-flow .flow-header .flow-title .title-text[data-v-2decce67]{font-size:16px;font-weight:500;color:#000000d9}.bsy-approval-flow .flow-header .flow-title .title-status[data-v-2decce67]{font-size:12px;color:#00000073}.bsy-approval-flow .flow-header .flow-title .info-icon[data-v-2decce67]{font-size:14px;color:#00000073;cursor:help}.bsy-approval-flow .flow-nodes .flow-node[data-v-2decce67]{display:flex;align-items:flex-start;padding:16px 0;position:relative}.bsy-approval-flow .flow-nodes .flow-node .node-left[data-v-2decce67]{display:flex;align-items:flex-start;gap:12px;min-width:120px;flex-shrink:0;position:relative}.bsy-approval-flow .flow-nodes .flow-node .node-left .timeline-dot[data-v-2decce67]{width:8px;height:8px;border-radius:50%;background:#1890ff;border:2px solid #fff;box-shadow:0 0 0 2px #e6f7ff;margin-top:8px;flex-shrink:0;position:relative;z-index:2}.bsy-approval-flow .flow-nodes .flow-node .node-left .timeline-line[data-v-2decce67]{position:absolute;left:5px;top:16px;width:2px;height:calc(100% + 45px);background:#e6f7ff;z-index:1}.bsy-approval-flow .flow-nodes .flow-node .node-left .node-info .node-title[data-v-2decce67]{font-size:14px;color:#000000d9;font-weight:500;margin-bottom:4px}.bsy-approval-flow .flow-nodes .flow-node .node-left .node-info .node-desc[data-v-2decce67]{font-size:12px;color:#00000073}.bsy-approval-flow .flow-nodes .flow-node .node-right[data-v-2decce67]{flex:1;display:flex;justify-content:flex-end;min-height:65px}.bsy-approval-flow .flow-nodes .flow-node .node-right .user-container[data-v-2decce67],.bsy-approval-flow .flow-nodes .flow-node .node-right .user-container .user-avatars[data-v-2decce67]{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.bsy-approval-flow .flow-nodes .flow-node .node-right .user-container .user-avatars .view-all-btn[data-v-2decce67]{padding:8px 16px;background:#f0f0f0;border-radius:4px;font-size:12px;color:#000000a6;cursor:pointer;transition:all .3s}.bsy-approval-flow .flow-nodes .flow-node .node-right .user-container .user-avatars .view-all-btn[data-v-2decce67]:hover{background:#e6e6e6;color:#000000d9}.bsy-approval-flow .flow-nodes .flow-node .node-right .user-container .add-button[data-v-2decce67]{width:40px;height:40px;border:1px dashed #d9d9d9;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s;background:#fafafa}.bsy-approval-flow .flow-nodes .flow-node .node-right .user-container .add-button[data-v-2decce67]:hover{border-color:#1890ff;background:#f0f8ff}.bsy-approval-flow .flow-nodes .flow-node .node-right .user-container .add-button .add-icon[data-v-2decce67]{font-size:20px;color:#00000073;font-weight:300}.bsy-approval-flow .flow-nodes .flow-node .node-right .user-container .add-button:hover .add-icon[data-v-2decce67]{color:#1890ff}.bsy-approval-flow .flow-nodes .flow-node:last-child .node-left .timeline-line[data-v-2decce67]{display:none}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.no-schema[data-v-3bc314b8]{padding:40px;text-align:center;color:#999}.form-header[data-v-3bc314b8]{margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #f0f0f0}.form-header h3[data-v-3bc314b8]{font-size:18px;font-weight:600;margin-bottom:8px;color:#333}.form-header p[data-v-3bc314b8]{color:#666;font-size:14px;margin:0}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.date-range-field-mobile[data-v-67c7d6a5]{display:flex;flex-direction:column;gap:12px;width:100%}.date-range-field-mobile .date-field-wrapper[data-v-67c7d6a5]{display:flex;flex-direction:column;gap:4px}.date-range-field-mobile .date-field-wrapper .date-field-label[data-v-67c7d6a5]{font-size:14px;font-weight:500;color:#333;line-height:1.5}.date-range-field-mobile .date-field-wrapper[data-v-67c7d6a5] .ant-picker{font-size:16px;height:44px}.date-range-field-mobile .date-field-separator[data-v-67c7d6a5]{display:flex;align-items:center;justify-content:center;height:20px}.date-range-field-mobile .date-field-separator span[data-v-67c7d6a5]{font-size:14px;color:#999;font-weight:500}@media (min-width: 769px){.date-range-field-mobile[data-v-67c7d6a5]{flex-direction:row;align-items:flex-end;gap:16px}.date-range-field-mobile .date-field-wrapper[data-v-67c7d6a5]{flex:1}.date-range-field-mobile .date-field-separator[data-v-67c7d6a5]{flex:0 0 auto;height:auto;padding-bottom:8px}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.bsy-table-field .table-field-item[data-v-95db6420]{margin-bottom:16px;padding:16px;background:#fafafa;border:1px solid #d9d9d9;border-radius:4px;position:relative}.bsy-table-field .table-field-item .item-header[data-v-95db6420]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #e8e8e8}.bsy-table-field .table-field-item .item-header .item-index[data-v-95db6420]{font-weight:500;color:#1890ff}.bsy-table-field .table-field-item .item-content[data-v-95db6420] .ant-form-item{margin-bottom:12px}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.bsy-approval-flow .approval-section[data-v-b4ba048a],.bsy-approval-flow .cc-section[data-v-b4ba048a],.bsy-approval-flow .chat-section[data-v-b4ba048a]{margin-bottom:16px;padding:12px;border:1px solid #d9d9d9;border-radius:2px;background:#fff;transition:all .3s}.bsy-approval-flow .approval-section[data-v-b4ba048a]:hover,.bsy-approval-flow .cc-section[data-v-b4ba048a]:hover,.bsy-approval-flow .chat-section[data-v-b4ba048a]:hover{border-color:#40a9ff}.bsy-approval-flow .approval-section .section-item[data-v-b4ba048a],.bsy-approval-flow .cc-section .section-item[data-v-b4ba048a],.bsy-approval-flow .chat-section .section-item[data-v-b4ba048a]{display:flex;align-items:center;cursor:pointer}.bsy-approval-flow .approval-section .section-item .item-content[data-v-b4ba048a],.bsy-approval-flow .cc-section .section-item .item-content[data-v-b4ba048a],.bsy-approval-flow .chat-section .section-item .item-content[data-v-b4ba048a]{flex:1;min-width:0}.bsy-approval-flow .approval-section .section-item .item-content .item-label[data-v-b4ba048a],.bsy-approval-flow .cc-section .section-item .item-content .item-label[data-v-b4ba048a],.bsy-approval-flow .chat-section .section-item .item-content .item-label[data-v-b4ba048a]{display:flex;align-items:center;gap:4px;margin-bottom:8px}.bsy-approval-flow .approval-section .section-item .item-content .item-label .label-text[data-v-b4ba048a],.bsy-approval-flow .cc-section .section-item .item-content .item-label .label-text[data-v-b4ba048a],.bsy-approval-flow .chat-section .section-item .item-content .item-label .label-text[data-v-b4ba048a]{font-size:14px;color:#000000d9;font-weight:400}.bsy-approval-flow .approval-section .section-item .item-content .item-label .required-mark[data-v-b4ba048a],.bsy-approval-flow .cc-section .section-item .item-content .item-label .required-mark[data-v-b4ba048a],.bsy-approval-flow .chat-section .section-item .item-content .item-label .required-mark[data-v-b4ba048a]{color:#ff4d4f;font-size:14px}.bsy-approval-flow .approval-section .section-item .item-content .item-label .info-icon[data-v-b4ba048a],.bsy-approval-flow .cc-section .section-item .item-content .item-label .info-icon[data-v-b4ba048a],.bsy-approval-flow .chat-section .section-item .item-content .item-label .info-icon[data-v-b4ba048a]{font-size:14px;color:#00000073;cursor:help}.bsy-approval-flow .approval-section .section-item .item-content .item-value .placeholder[data-v-b4ba048a],.bsy-approval-flow .cc-section .section-item .item-content .item-value .placeholder[data-v-b4ba048a],.bsy-approval-flow .chat-section .section-item .item-content .item-value .placeholder[data-v-b4ba048a]{font-size:14px;color:#00000040}.bsy-approval-flow .approval-section .section-item .item-content .item-value .selected-users[data-v-b4ba048a],.bsy-approval-flow .cc-section .section-item .item-content .item-value .selected-users[data-v-b4ba048a],.bsy-approval-flow .chat-section .section-item .item-content .item-value .selected-users[data-v-b4ba048a]{display:flex;flex-wrap:wrap;gap:8px}.bsy-approval-flow .approval-section .section-item .item-content .item-value .selected-users .user-tag[data-v-b4ba048a],.bsy-approval-flow .cc-section .section-item .item-content .item-value .selected-users .user-tag[data-v-b4ba048a],.bsy-approval-flow .chat-section .section-item .item-content .item-value .selected-users .user-tag[data-v-b4ba048a]{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;background:#fafafa;border:1px solid #d9d9d9;border-radius:2px;font-size:14px;transition:all .3s}.bsy-approval-flow .approval-section .section-item .item-content .item-value .selected-users .user-tag[data-v-b4ba048a]:hover,.bsy-approval-flow .cc-section .section-item .item-content .item-value .selected-users .user-tag[data-v-b4ba048a]:hover,.bsy-approval-flow .chat-section .section-item .item-content .item-value .selected-users .user-tag[data-v-b4ba048a]:hover{background:#f5f5f5}.bsy-approval-flow .approval-section .section-item .item-content .item-value .selected-users .user-tag.cc-tag[data-v-b4ba048a],.bsy-approval-flow .cc-section .section-item .item-content .item-value .selected-users .user-tag.cc-tag[data-v-b4ba048a],.bsy-approval-flow .chat-section .section-item .item-content .item-value .selected-users .user-tag.cc-tag[data-v-b4ba048a]{background:#e6f7ff;border-color:#91d5ff}.bsy-approval-flow .approval-section .section-item .item-content .item-value .selected-users .user-tag.cc-tag[data-v-b4ba048a]:hover,.bsy-approval-flow .cc-section .section-item .item-content .item-value .selected-users .user-tag.cc-tag[data-v-b4ba048a]:hover,.bsy-approval-flow .chat-section .section-item .item-content .item-value .selected-users .user-tag.cc-tag[data-v-b4ba048a]:hover{background:#bae7ff}.bsy-approval-flow .approval-section .section-item .item-content .item-value .selected-users .user-tag .user-avatar[data-v-b4ba048a],.bsy-approval-flow .cc-section .section-item .item-content .item-value .selected-users .user-tag .user-avatar[data-v-b4ba048a],.bsy-approval-flow .chat-section .section-item .item-content .item-value .selected-users .user-tag .user-avatar[data-v-b4ba048a]{width:24px;height:24px;border-radius:2px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:500;flex-shrink:0}.bsy-approval-flow .approval-section .section-item .item-content .item-value .selected-users .user-tag .user-name[data-v-b4ba048a],.bsy-approval-flow .cc-section .section-item .item-content .item-value .selected-users .user-tag .user-name[data-v-b4ba048a],.bsy-approval-flow .chat-section .section-item .item-content .item-value .selected-users .user-tag .user-name[data-v-b4ba048a]{color:#000000d9;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bsy-approval-flow .approval-section .section-item .item-content .item-value .selected-users .user-tag .remove-icon[data-v-b4ba048a],.bsy-approval-flow .cc-section .section-item .item-content .item-value .selected-users .user-tag .remove-icon[data-v-b4ba048a],.bsy-approval-flow .chat-section .section-item .item-content .item-value .selected-users .user-tag .remove-icon[data-v-b4ba048a]{color:#00000073;font-size:14px;cursor:pointer;padding:0 2px;transition:color .3s}.bsy-approval-flow .approval-section .section-item .item-content .item-value .selected-users .user-tag .remove-icon[data-v-b4ba048a]:hover,.bsy-approval-flow .cc-section .section-item .item-content .item-value .selected-users .user-tag .remove-icon[data-v-b4ba048a]:hover,.bsy-approval-flow .chat-section .section-item .item-content .item-value .selected-users .user-tag .remove-icon[data-v-b4ba048a]:hover{color:#000000d9}.bsy-approval-flow .approval-section .section-item .arrow-icon[data-v-b4ba048a],.bsy-approval-flow .cc-section .section-item .arrow-icon[data-v-b4ba048a],.bsy-approval-flow .chat-section .section-item .arrow-icon[data-v-b4ba048a]{font-size:16px;color:#00000073;margin-left:8px}.bsy-approval-flow .approval-section .add-btn[data-v-b4ba048a],.bsy-approval-flow .cc-section .add-btn[data-v-b4ba048a],.bsy-approval-flow .chat-section .add-btn[data-v-b4ba048a]{display:flex;align-items:center;justify-content:center;gap:4px;padding:8px 0;margin-top:8px;color:#1890ff;font-size:14px;cursor:pointer;border-top:1px solid #f0f0f0;transition:color .3s}.bsy-approval-flow .approval-section .add-btn[data-v-b4ba048a]:hover,.bsy-approval-flow .cc-section .add-btn[data-v-b4ba048a]:hover,.bsy-approval-flow .chat-section .add-btn[data-v-b4ba048a]:hover{color:#40a9ff}.bsy-approval-flow .approval-section .add-btn .add-icon[data-v-b4ba048a],.bsy-approval-flow .cc-section .add-btn .add-icon[data-v-b4ba048a],.bsy-approval-flow .chat-section .add-btn .add-icon[data-v-b4ba048a]{font-size:16px;font-weight:500}.bsy-approval-flow .approval-section .chat-desc[data-v-b4ba048a],.bsy-approval-flow .cc-section .chat-desc[data-v-b4ba048a],.bsy-approval-flow .chat-section .chat-desc[data-v-b4ba048a]{padding-top:8px;font-size:12px;color:#00000073}.bsy-approval-flow .switch[data-v-b4ba048a]{position:relative;display:inline-block;width:44px;height:22px}.bsy-approval-flow .switch input[data-v-b4ba048a]{opacity:0;width:0;height:0}.bsy-approval-flow .switch input:checked+.slider[data-v-b4ba048a]{background-color:#1890ff}.bsy-approval-flow .switch input:checked+.slider[data-v-b4ba048a]:before{transform:translate(22px)}.bsy-approval-flow .switch input:focus+.slider[data-v-b4ba048a]{box-shadow:0 0 0 2px #1890ff33}.bsy-approval-flow .switch input:disabled+.slider[data-v-b4ba048a]{opacity:.4;cursor:not-allowed}.bsy-approval-flow .switch .slider[data-v-b4ba048a]{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#00000040;transition:all .2s;border-radius:100px}.bsy-approval-flow .switch .slider[data-v-b4ba048a]:before{position:absolute;content:"";height:18px;width:18px;left:2px;bottom:2px;background-color:#fff;transition:all .2s;border-radius:50%;box-shadow:0 2px 4px #00230b33}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.no-schema[data-v-ceac5a29]{padding:40px;text-align:center;color:#999}.form-header[data-v-ceac5a29]{margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #f0f0f0}.form-header h3[data-v-ceac5a29]{font-size:18px;font-weight:600;margin-bottom:8px;color:#333}.form-header p[data-v-ceac5a29]{color:#666;font-size:14px;margin:0}.form-groups[data-v-ceac5a29] .ant-collapse-item{margin-bottom:16px;border:1px solid #f0f0f0;border-radius:4px}.form-groups[data-v-ceac5a29] .ant-collapse-item .ant-collapse-header{font-weight:600;font-size:16px;padding:12px 16px}.form-groups[data-v-ceac5a29] .ant-collapse-item .ant-collapse-content-box{padding:16px}.form-groups .group-description[data-v-ceac5a29]{font-size:12px;color:#999;font-weight:400;margin-left:8px}.form-footer[data-v-ceac5a29]{margin-top:24px;padding-top:24px;border-top:1px solid #f0f0f0}.mobile-form[data-v-ceac5a29] .ant-form-item{margin-bottom:16px}.mobile-form[data-v-ceac5a29] .ant-form-item-label{padding-bottom:4px}.mobile-form[data-v-ceac5a29] .ant-form-item-label>label{font-size:14px;font-weight:500}.mobile-form[data-v-ceac5a29] .ant-form-item-control .ant-input,.mobile-form[data-v-ceac5a29] .ant-form-item-control .ant-input-number,.mobile-form[data-v-ceac5a29] .ant-form-item-control .ant-select,.mobile-form[data-v-ceac5a29] .ant-form-item-control .ant-picker{font-size:16px}.mobile-form[data-v-ceac5a29] .ant-btn{height:44px;font-size:16px}.mobile-form[data-v-ceac5a29] .ant-radio-group,.mobile-form[data-v-ceac5a29] .ant-checkbox-group{display:flex;flex-direction:column;gap:12px}.mobile-form[data-v-ceac5a29] .ant-radio-group .ant-radio-wrapper,.mobile-form[data-v-ceac5a29] .ant-radio-group .ant-checkbox-wrapper,.mobile-form[data-v-ceac5a29] .ant-checkbox-group .ant-radio-wrapper,.mobile-form[data-v-ceac5a29] .ant-checkbox-group .ant-checkbox-wrapper{margin:0;padding:12px;border:1px solid #d9d9d9;border-radius:4px}.mobile-form[data-v-ceac5a29] .ant-radio-group .ant-radio-wrapper:hover,.mobile-form[data-v-ceac5a29] .ant-radio-group .ant-checkbox-wrapper:hover,.mobile-form[data-v-ceac5a29] .ant-checkbox-group .ant-radio-wrapper:hover,.mobile-form[data-v-ceac5a29] .ant-checkbox-group .ant-checkbox-wrapper:hover{border-color:#40a9ff}.mobile-form[data-v-ceac5a29] .ant-radio-group .ant-radio-wrapper-checked,.mobile-form[data-v-ceac5a29] .ant-radio-group .ant-checkbox-wrapper-checked,.mobile-form[data-v-ceac5a29] .ant-checkbox-group .ant-radio-wrapper-checked,.mobile-form[data-v-ceac5a29] .ant-checkbox-group .ant-checkbox-wrapper-checked{border-color:#1890ff;background-color:#e6f7ff}.mobile-form[data-v-ceac5a29] .ant-picker,.mobile-form[data-v-ceac5a29] .ant-upload{width:100%}@media (max-width: 768px){.form-header h3[data-v-ceac5a29]{font-size:16px}.form-header p[data-v-ceac5a29]{font-size:13px}.form-groups[data-v-ceac5a29] .ant-collapse-item{margin-bottom:12px}.form-groups[data-v-ceac5a29] .ant-collapse-item .ant-collapse-header{font-size:14px;padding:10px 12px}.form-groups[data-v-ceac5a29] .ant-collapse-item .ant-collapse-content-box{padding:12px}.form-groups .group-description[data-v-ceac5a29]{display:none}}@media (min-width: 769px) and (max-width: 1024px){.form-header h3[data-v-ceac5a29]{font-size:17px}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.bsy-signature-field .signature-preview[data-v-ef6eae82]{border:1px dashed #d9d9d9;border-radius:4px;padding:12px;background:#fafafa}.bsy-signature-field .signature-preview .signature-image[data-v-ef6eae82]{width:100%;max-width:400px;height:auto;display:block;margin:0 auto 8px;background:#fff;border:1px solid #e8e8e8;border-radius:4px}.bsy-signature-field .signature-preview .signature-actions[data-v-ef6eae82]{display:flex;justify-content:center;gap:8px}.signature-modal-content .canvas-container[data-v-ef6eae82]{border:1px dashed #d9d9d9;border-radius:4px;margin-bottom:16px;overflow:hidden;background:#fff}.signature-modal-content .canvas-container .signature-canvas[data-v-ef6eae82]{display:block;cursor:crosshair;touch-action:none}.signature-modal-content .signature-modal-actions[data-v-ef6eae82]{display:flex;justify-content:flex-end;align-items:center}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.ant-modal-body{padding:12px 0}.ant-modal-body .modal-body .modal-desc{font-size:14px;color:#000000a6;margin-bottom:24px}.ant-modal-body .modal-body .all-users-grid{display:flex;flex-wrap:wrap;gap:24px;align-items:center}.ant-modal-body .modal-body .all-users-grid .add-user-modal{display:flex;flex-direction:column;align-items:center;cursor:pointer;transition:all .3s}.ant-modal-body .modal-body .all-users-grid .add-user-modal .add-icon-modal{width:56px;height:56px;border:2px dashed #d9d9d9;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:28px;color:#00000073;margin-bottom:8px;transition:all .3s}.ant-modal-body .modal-body .all-users-grid .add-user-modal .add-text-modal{font-size:13px;color:#00000073;transition:all .3s}.ant-modal-body .modal-body .all-users-grid .add-user-modal:hover .add-icon-modal{border-color:#1890ff;color:#1890ff}.ant-modal-body .modal-body .all-users-grid .add-user-modal:hover .add-text-modal{color:#1890ff}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import o from"./UserAvatar.vue2.js";/* empty css */import r from"../../_virtual/_plugin-vue_export-helper.js";const m=r(o,[["__scopeId","data-v-1f5ca2f1"]]);export{m as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{defineComponent as g,computed as a,openBlock as r,createElementBlock as s,normalizeClass as B,createElementVNode as l,normalizeStyle as o,toDisplayString as i,createCommentVNode as u}from"vue";const M=g({__name:"UserAvatar",props:{user:{},showRemove:{type:Boolean,default:!0},showArrow:{type:Boolean,default:!1},isModal:{type:Boolean,default:!1},size:{default:40},nameMaxWidth:{default:60}},emits:["remove"],setup(m,{emit:d}){const t=m,c=d,f=a(()=>{const e=t.user.userName;return e?e.length>2?e.slice(-2):e:""}),v=a(()=>{const e=["#f56a00","#7265e6","#ffbf00","#00a2ae","#87d068","#108ee9","#f50","#2db7f5","#52c41a","#eb2f96","#722ed1","#fa8c16"],x=t.user.userName.charCodeAt(0)%e.length;return e[x]}),p=a(()=>t.isModal||t.size>=56?20:12),n=a(()=>t.isModal?20:16),h=a(()=>t.isModal?14:12),z=a(()=>t.size/2),y=()=>{c("remove",t.user.userId)};return(e,w)=>(r(),s("div",{class:B(["user-avatar-item",{"is-modal":e.isModal}])},[l("div",{class:"avatar",style:o({backgroundColor:v.value,width:e.size+"px",height:e.size+"px",fontSize:p.value+"px"})},i(f.value),5),l("div",{class:"user-name",style:o({maxWidth:e.nameMaxWidth+"px"})},i(e.user.userName),5),e.showRemove?(r(),s("div",{key:0,class:"remove-btn",style:o({width:n.value+"px",height:n.value+"px",fontSize:h.value+"px"}),onClick:y}," × ",4)):u("",!0),e.showArrow?(r(),s("div",{key:1,class:"arrow-right",style:o({top:z.value+"px"})}," → ",4)):u("",!0)],2))}});export{M as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import o from"./UserSelector.vue2.js";/* empty css */import r from"../../_virtual/_plugin-vue_export-helper.js";const m=r(o,[["__scopeId","data-v-d1da15a2"]]);export{m as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{defineComponent as ae,computed as _,ref as v,watch as z,openBlock as i,createBlock as A,unref as a,withCtx as u,createElementVNode as s,createVNode as n,createElementBlock as p,Fragment as N,renderList as w,normalizeClass as oe,toDisplayString as r,withModifiers as ne,normalizeStyle as re,createCommentVNode as K,createTextVNode as I}from"vue";import{Tabs as V,Checkbox as E,Modal as ue,Input as de,Tree as ie,Tag as ce,Button as ve,Empty as pe,message as L}from"ant-design-vue";import{SearchOutlined as fe,TeamOutlined as me}from"@ant-design/icons-vue";const he={class:"user-selector"},_e={class:"search-box"},ge={class:"selector-content"},ye={class:"left-panel"},Ce={class:"org-tree"},ke={class:"role-list"},be=["onClick"],xe={class:"right-panel"},Te={class:"user-list-header"},Ue={class:"title"},Ae={class:"count"},Ne={class:"user-list"},we=["onClick"],Ie={class:"user-info"},Be={class:"user-details"},Oe={class:"user-name"},Se={class:"user-dept"},ze={class:"selector-footer"},Ke={class:"selected-info"},Ve={class:"count"},Ee={key:0,class:"selected-tags"},Le={class:"action-buttons"},Pe=ae({__name:"UserSelector",props:{modelValue:{type:Boolean,default:!1},users:{default:()=>[]},orgTree:{default:()=>[]},roles:{default:()=>[]},maxCount:{default:50},selectedUsers:{default:()=>[]},multiple:{type:Boolean,default:!0}},emits:["update:modelValue","confirm","cancel"],setup($,{expose:M,emit:D}){const G=ue,P=de,R=V,B=V.TabPane,F=ie,j=E.Group,q=E,H=ce,O=ve,J=pe,d=$,b=D,f=_({get:()=>d.modelValue,set:l=>b("update:modelValue",l)}),m=v(""),g=v("org"),x=v([]),y=v([]),C=v(""),k=v(""),o=v([]),T=_(()=>{const l=t=>t.map(e=>({...e,key:e.value,title:e.label,children:e.children?l(e.children):void 0}));return l(d.orgTree)}),Q=_(()=>d.roles),c=_(()=>d.users.filter(l=>o.value.includes(l.userId))),U=_(()=>{let l=d.users;if(m.value){const t=m.value.toLowerCase();l=l.filter(e=>{var h,S;return e.userName.toLowerCase().includes(t)||((h=e.mobile)==null?void 0:h.includes(t))||((S=e.deptName)==null?void 0:S.toLowerCase().includes(t))})}return g.value==="org"&&y.value.length>0,g.value==="role"&&k.value,l});z(()=>d.selectedUsers,l=>{l&&l.length>0&&(o.value=l.map(t=>t.userId))},{immediate:!0}),z(f,l=>{l&&T.value.length>0&&(x.value=[T.value[0].value])});const W=(l,t)=>{l.length>0?C.value=t.node.label:C.value=""},X=l=>{k.value=l},Y=l=>{const t=o.value.indexOf(l);if(t>-1)o.value.splice(t,1);else{if(o.value.length>=d.maxCount){L.warning(`最多只能选择${d.maxCount}人`);return}d.multiple?o.value.push(l):o.value=[l]}},Z=l=>{const t=o.value.indexOf(l);t>-1&&o.value.splice(t,1)},ee=()=>{if(c.value.length===0){L.warning("请至少选择一个人员");return}b("confirm",c.value),f.value=!1},te=()=>{b("cancel"),f.value=!1},le=l=>{const t=["#f56a00","#7265e6","#ffbf00","#00a2ae","#87d068","#108ee9","#f50","#2db7f5","#52c41a","#eb2f96","#722ed1","#fa8c16"],e=l.charCodeAt(0)%t.length;return t[e]},se=l=>l.charAt(0).toUpperCase();return M({reset:()=>{m.value="",y.value=[],k.value="",o.value=[],C.value=""}}),(l,t)=>(i(),A(a(G),{open:f.value,"onUpdate:open":t[6]||(t[6]=e=>f.value=e),title:"选择联系人",width:800,footer:null,"destroy-on-close":!0,class:"user-selector-modal"},{default:u(()=>[s("div",he,[s("div",_e,[n(a(P),{value:m.value,"onUpdate:value":t[0]||(t[0]=e=>m.value=e),placeholder:"搜索名字、拼音、手机号...","allow-clear":"",size:"large"},{prefix:u(()=>[n(a(fe))]),_:1},8,["value"])]),s("div",ge,[s("div",ye,[n(a(R),{"active-key":g.value,"onUpdate:activeKey":t[3]||(t[3]=e=>g.value=e),size:"small"},{default:u(()=>[n(a(B),{key:"org",tab:"按组织架构选择"},{default:u(()=>[s("div",Ce,[n(a(F),{"expanded-keys":x.value,"onUpdate:expandedKeys":t[1]||(t[1]=e=>x.value=e),"selected-keys":y.value,"onUpdate:selectedKeys":t[2]||(t[2]=e=>y.value=e),"tree-data":T.value,onSelect:W},null,8,["expanded-keys","selected-keys","tree-data"])])]),_:1}),n(a(B),{key:"role",tab:"按角色选择"},{default:u(()=>[s("div",ke,[(i(!0),p(N,null,w(Q.value,e=>(i(),p("div",{key:e.value,class:oe(["role-item",{active:k.value===e.value}]),onClick:h=>X(e.value)},[n(a(me)),s("span",null,r(e.label),1)],10,be))),128))])]),_:1})]),_:1},8,["active-key"])]),s("div",xe,[s("div",Te,[s("span",Ue,r(C.value||"全部人员"),1),s("span",Ae,r(U.value.length)+"人",1)]),s("div",Ne,[n(a(j),{value:o.value,"onUpdate:value":t[5]||(t[5]=e=>o.value=e),style:{width:"100%"}},{default:u(()=>[(i(!0),p(N,null,w(U.value,e=>(i(),p("div",{key:e.userId,class:"user-item",onClick:h=>Y(e.userId)},[n(a(q),{value:e.userId,onClick:t[4]||(t[4]=ne(()=>{},["stop"]))},{default:u(()=>[s("div",Ie,[s("div",{class:"user-avatar",style:re({backgroundColor:le(e.userName)})},r(se(e.userName)),5),s("div",Be,[s("div",Oe,r(e.userName),1),s("div",Se,r(e.deptName),1)])])]),_:2},1032,["value"])],8,we))),128))]),_:1},8,["value"]),U.value.length===0?(i(),A(a(J),{key:0,description:"暂无人员"})):K("",!0)])])]),s("div",ze,[s("div",Ke,[t[7]||(t[7]=s("span",{class:"label"},"已选择",-1)),s("span",Ve,r(c.value.length)+"/"+r(l.maxCount),1),c.value.length>0?(i(),p("div",Ee,[(i(!0),p(N,null,w(c.value,e=>(i(),A(a(H),{key:e.userId,closable:"",onClose:h=>Z(e.userId)},{default:u(()=>[I(r(e.userName),1)]),_:2},1032,["onClose"]))),128))])):K("",!0)]),s("div",Le,[n(a(O),{size:"large",onClick:te},{default:u(()=>t[8]||(t[8]=[I("取消")])),_:1,__:[8]}),n(a(O),{type:"primary",size:"large",disabled:c.value.length===0,onClick:ee},{default:u(()=>[I(" 确定("+r(c.value.length)+"/"+r(l.maxCount)+") ",1)]),_:1},8,["disabled"])])])])]),_:1},8,["open"]))}});export{Pe as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import p from"./src/index.vue.js";export{p as ApprovalFlow,p as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import o from"./index.vue2.js";/* empty css */import a from"../../../_virtual/_plugin-vue_export-helper.js";const m=a(o,[["__scopeId","data-v-b4ba048a"]]);export{m as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{defineComponent as q,ref as i,watch as w,computed as z,openBlock as r,createElementBlock as n,Fragment as f,createElementVNode as e,createCommentVNode as p,renderList as y,normalizeStyle as V,toDisplayString as m,withModifiers as S,withDirectives as F,vModelCheckbox as L,createVNode as A}from"vue";import I from"../UserSelector.vue.js";const j={class:"bsy-approval-flow"},G={class:"approval-section"},H={class:"item-content"},J={class:"item-label"},K={key:0,class:"required-mark"},O={class:"item-value"},P={key:0,class:"placeholder"},Q={key:1,class:"selected-users"},R={class:"user-name"},W=["onClick"],X={class:"cc-section"},Y={class:"item-content"},Z={class:"item-value"},ee={key:0,class:"placeholder"},se={key:1,class:"selected-users"},le={class:"user-name"},te=["onClick"],oe={class:"chat-section"},ae={class:"section-item"},re={class:"item-content"},ne={class:"item-value"},de={class:"switch"},ue={key:0,class:"chat-desc"},me=q({__name:"index",props:{modelValue:{default:()=>({approvers:[],ccUsers:[],sendToChat:!1})},users:{default:()=>[]},orgTree:{default:()=>[]},roles:{default:()=>[]}},emits:["update:modelValue","change","show-approver-selector","show-cc-selector"],setup(U,{expose:T,emit:N}){const c=U,v=N,o=i(c.modelValue.approvers||[]),a=i(c.modelValue.ccUsers||[]),u=i(c.modelValue.sendToChat||!1),h=i(!1),C=i(!1);w(()=>c.modelValue,l=>{l&&(o.value=l.approvers||[],a.value=l.ccUsers||[],u.value=l.sendToChat||!1)},{deep:!0}),w([o,a,u],()=>{const l={approvers:o.value,ccUsers:a.value,sendToChat:u.value};v("update:modelValue",l),v("change",l)},{deep:!0});const g=()=>{h.value=!0,v("show-approver-selector")},k=()=>{C.value=!0,v("show-cc-selector")},x=l=>{o.value=l},B=l=>{a.value=l},D=l=>{o.value=o.value.filter(s=>s.userId!==l)},E=l=>{a.value=a.value.filter(s=>s.userId!==l)},M=()=>{},_=l=>{const s=["#f56a00","#7265e6","#ffbf00","#00a2ae","#87d068","#108ee9","#f50","#2db7f5","#52c41a","#eb2f96","#722ed1","#fa8c16"],t=l.charCodeAt(0)%s.length;return s[t]},b=l=>l.charAt(0).toUpperCase(),$=z(()=>o.value.length>0);return T({isValid:$,getApprovers:()=>o.value,getCCUsers:()=>a.value,getSendToChat:()=>u.value,addApprovers:l=>{const s=new Set(o.value.map(d=>d.userId)),t=l.filter(d=>!s.has(d.userId));o.value=[...o.value,...t]},addCCUsers:l=>{const s=new Set(a.value.map(d=>d.userId)),t=l.filter(d=>!s.has(d.userId));a.value=[...a.value,...t]},reset:()=>{o.value=[],a.value=[],u.value=!1}}),(l,s)=>(r(),n(f,null,[e("div",j,[e("div",G,[e("div",{class:"section-item",onClick:g},[e("div",H,[e("div",J,[s[3]||(s[3]=e("span",{class:"label-text"},"审批人",-1)),o.value.length?p("",!0):(r(),n("span",K,"*"))]),e("div",O,[o.value.length===0?(r(),n("div",P,"请选择审批人")):(r(),n("div",Q,[(r(!0),n(f,null,y(o.value,t=>(r(),n("div",{key:t.userId,class:"user-tag"},[e("div",{class:"user-avatar",style:V({backgroundColor:_(t.userName)})},m(b(t.userName)),5),e("span",R,m(t.userName),1),e("span",{class:"remove-icon",onClick:S(d=>D(t.userId),["stop"])}," ✕ ",8,W)]))),128))]))])]),s[4]||(s[4]=e("span",{class:"arrow-icon"},"›",-1))]),o.value.length>0?(r(),n("div",{key:0,class:"add-btn",onClick:g},s[5]||(s[5]=[e("span",{class:"add-icon"},"+",-1),e("span",null,"添加审批人",-1)]))):p("",!0)]),e("div",X,[e("div",{class:"section-item",onClick:k},[e("div",Y,[s[6]||(s[6]=e("div",{class:"item-label"},[e("span",{class:"label-text"},"抄送人")],-1)),e("div",Z,[a.value.length===0?(r(),n("div",ee,"请选择抄送人")):(r(),n("div",se,[(r(!0),n(f,null,y(a.value,t=>(r(),n("div",{key:t.userId,class:"user-tag cc-tag"},[e("div",{class:"user-avatar",style:V({backgroundColor:_(t.userName)})},m(b(t.userName)),5),e("span",le,m(t.userName),1),e("span",{class:"remove-icon",onClick:S(d=>E(t.userId),["stop"])}," ✕ ",8,te)]))),128))]))])]),s[7]||(s[7]=e("span",{class:"arrow-icon"},"›",-1))]),a.value.length>0?(r(),n("div",{key:0,class:"add-btn",onClick:k},s[8]||(s[8]=[e("span",{class:"add-icon"},"+",-1),e("span",null,"添加抄送人",-1)]))):p("",!0)]),e("div",oe,[e("div",ae,[e("div",re,[s[10]||(s[10]=e("div",{class:"item-label"},[e("span",{class:"label-text"},"发送到聊天"),e("span",{class:"info-icon",title:"通过聊天发送给审批人"},"ⓘ")],-1)),e("div",ne,[e("label",de,[F(e("input",{"onUpdate:modelValue":s[0]||(s[0]=t=>u.value=t),type:"checkbox",onChange:M},null,544),[[L,u.value]]),s[9]||(s[9]=e("span",{class:"slider"},null,-1))])])])]),u.value?(r(),n("div",ue,"通过聊天发送给审批人")):p("",!0)])]),A(I,{modelValue:h.value,"onUpdate:modelValue":s[1]||(s[1]=t=>h.value=t),users:l.users,"org-tree":l.orgTree,roles:l.roles,"selected-users":o.value,onConfirm:x},null,8,["modelValue","users","org-tree","roles","selected-users"]),A(I,{modelValue:C.value,"onUpdate:modelValue":s[2]||(s[2]=t=>C.value=t),users:l.users,"org-tree":l.orgTree,roles:l.roles,"selected-users":a.value,onConfirm:B},null,8,["modelValue","users","org-tree","roles","selected-users"])],64))}});export{me as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{default as o}from"./src/index.vue2.js";export{o as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import f from"./index.vue2.js";export{f as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{defineComponent as i,computed as m,openBlock as r,createBlock as c,unref as f}from"vue";import{Checkbox as b}from"ant-design-vue";const g=i({__name:"index",props:{modelValue:{default:()=>[]},options:{default:()=>[]},disabled:{type:Boolean,default:!1}},emits:["update:modelValue","change"],setup(l,{emit:n}){const u=b.Group,d=l,o=n,a=m({get:()=>d.modelValue,set:e=>o("update:modelValue",e)}),s=e=>{o("change",e)};return(e,t)=>(r(),c(f(u),{value:a.value,"onUpdate:value":t[0]||(t[0]=p=>a.value=p),options:e.options,disabled:e.disabled,onChange:s},null,8,["value","options","disabled"]))}});export{g as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{default as o}from"./src/index.vue2.js";export{o as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import f from"./index.vue2.js";export{f as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{defineComponent as p,computed as m,openBlock as f,createBlock as h,unref as c}from"vue";import{DatePicker as v}from"ant-design-vue";const y=p({__name:"index",props:{modelValue:{default:void 0},placeholder:{default:"请选择日期"},disabled:{type:Boolean,default:!1},allowClear:{type:Boolean,default:!0},format:{default:"YYYY-MM-DD"},valueFormat:{default:void 0},showTime:{type:Boolean,default:!1},showToday:{type:Boolean,default:!0},size:{default:"middle"},picker:{default:"date"},disabledDate:{type:Function,default:void 0}},emits:["update:modelValue","change","ok"],setup(t,{emit:r}){const s=t,a=r,l=m({get:()=>s.modelValue,set:e=>a("update:modelValue",e)}),u=e=>{a("change",e??void 0)},i=e=>{a("ok",e)};return(e,o)=>{var d;return f(),h(c(v),{value:l.value,"onUpdate:value":o[0]||(o[0]=n=>l.value=n),placeholder:e.placeholder,disabled:e.disabled,"allow-clear":e.allowClear,format:(d=e.format)==null?void 0:d.toUpperCase(),"value-format":e.valueFormat,"show-time":e.showTime,"show-today":e.showToday,size:e.size,picker:e.picker,"disabled-date":e.disabledDate,style:{width:"100%"},onChange:u,onOk:i},null,8,["value","placeholder","disabled","allow-clear","format","value-format","show-time","show-today","size","picker","disabled-date"])}}});export{y as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{default as o}from"./src/index.vue.js";export{o as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import o from"./index.vue2.js";/* empty css */import t from"../../../_virtual/_plugin-vue_export-helper.js";const m=t(o,[["__scopeId","data-v-67c7d6a5"]]);export{m as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{defineComponent as S,ref as s,computed as b,watch as T,onMounted as U,onUnmounted as Y,openBlock as w,createElementBlock as j,createElementVNode as i,toDisplayString as v,createVNode as k,unref as m,createBlock as A}from"vue";import{DatePicker as g,RangePicker as R}from"ant-design-vue";import n from"dayjs";const L={key:0,class:"date-range-field-mobile"},N={class:"date-field-wrapper"},O={class:"date-field-label"},P={class:"date-field-separator"},W={class:"date-field-wrapper"},H={class:"date-field-label"},J=S({__name:"index",props:{modelValue:{default:void 0},placeholder:{default:()=>["开始日期","结束日期"]},disabled:{type:Boolean,default:!1},allowClear:{type:Boolean,default:!0},format:{default:"YYYY-MM-DD"},valueFormat:{default:void 0},showTime:{type:Boolean,default:!1},size:{default:"middle"},picker:{default:"date"},disabledDate:{type:Function,default:void 0},separator:{default:"~"},mobileMode:{type:Boolean,default:void 0},mobileBreakpoint:{default:768}},emits:["update:modelValue","change","ok"],setup(y,{emit:D}){const o=y,d=D,p=s(!1),f=s(0),a=s(),l=s(),u=()=>{f.value=window.innerWidth,p.value=f.value<o.mobileBreakpoint},z=b(()=>o.mobileMode!==void 0?o.mobileMode:p.value),h=b({get:()=>o.modelValue,set:e=>d("update:modelValue",e)});T(()=>o.modelValue,e=>{e&&Array.isArray(e)&&e.length===2?(a.value=e[0],l.value=e[1]):(a.value=void 0,l.value=void 0)},{immediate:!0});const C=e=>{a.value=e?n.isDayjs(e)?e:n(e):void 0,c()},B=e=>{l.value=e?n.isDayjs(e)?e:n(e):void 0,c()},c=()=>{if(a.value&&l.value){const e=[a.value,l.value];d("update:modelValue",e),d("change",e)}else!a.value&&!l.value&&(d("update:modelValue",void 0),d("change",void 0))},M=e=>{d("change",e??void 0)},V=e=>{d("ok",e)},E=e=>o.disabledDate&&o.disabledDate(e)?!0:l.value?e.isAfter(l.value,"day"):!1,F=e=>o.disabledDate&&o.disabledDate(e)?!0:a.value?e.isBefore(a.value,"day"):!1;return U(()=>{u(),window.addEventListener("resize",u)}),Y(()=>{window.removeEventListener("resize",u)}),(e,t)=>z.value?(w(),j("div",L,[i("div",N,[i("label",O,v(e.placeholder[0]),1),k(m(g),{value:a.value,"onUpdate:value":t[0]||(t[0]=r=>a.value=r),placeholder:e.placeholder[0],disabled:e.disabled,"allow-clear":e.allowClear,format:e.format,"value-format":e.valueFormat,"show-time":e.showTime,size:e.size,picker:e.picker,"disabled-date":E,style:{width:"100%"},onChange:C},null,8,["value","placeholder","disabled","allow-clear","format","value-format","show-time","size","picker"])]),i("div",P,[i("span",null,v(e.separator),1)]),i("div",W,[i("label",H,v(e.placeholder[1]),1),k(m(g),{value:l.value,"onUpdate:value":t[1]||(t[1]=r=>l.value=r),placeholder:e.placeholder[1],disabled:e.disabled,"allow-clear":e.allowClear,format:e.format,"value-format":e.valueFormat,"show-time":e.showTime,size:e.size,picker:e.picker,"disabled-date":F,style:{width:"100%"},onChange:B},null,8,["value","placeholder","disabled","allow-clear","format","value-format","show-time","size","picker"])])])):(w(),A(m(R),{key:1,value:h.value,"onUpdate:value":t[2]||(t[2]=r=>h.value=r),placeholder:e.placeholder,disabled:e.disabled,"allow-clear":e.allowClear,format:e.format,"value-format":e.valueFormat,"show-time":e.showTime,size:e.size,picker:e.picker,"disabled-date":e.disabledDate,separator:e.separator,style:{width:"100%"},onChange:M,onOk:V},null,8,["value","placeholder","disabled","allow-clear","format","value-format","show-time","size","picker","disabled-date","separator"]))}});export{J as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{default as o}from"./src/index.vue2.js";export{o as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import f from"./index.vue2.js";export{f as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{defineComponent as h,computed as m,ref as d,watch as v,onMounted as b,openBlock as w,createBlock as g,unref as B}from"vue";import{TreeSelect as y}from"ant-design-vue";const C=h({__name:"index",props:{modelValue:{default:void 0},placeholder:{default:"请选择部门"},disabled:{type:Boolean,default:!1},allowClear:{type:Boolean,default:!0},showSearch:{type:Boolean,default:!0},treeDefaultExpandAll:{type:Boolean,default:!1},treeNodeFilterProp:{default:"label"},mode:{default:void 0},apiUrl:{default:"/api/dingtalk/departments"},useTreeSelect:{type:Boolean,default:!0}},emits:["update:modelValue","change","search"],setup(n,{emit:u}){const a=n,l=u,t=m({get:()=>a.modelValue,set:e=>l("update:modelValue",e)}),p=d([{value:1,label:"技术部",children:[{value:11,label:"技术部A"},{value:12,label:"技术部B"}]},{value:2,label:"产品部"}]),s=d(!1),o=async()=>{},i=e=>{l("change",e)},c=e=>{l("search",e)};return v(()=>a.apiUrl,()=>{o()}),b(()=>{o()}),(e,r)=>(w(),g(B(y),{value:t.value,"onUpdate:value":r[0]||(r[0]=f=>t.value=f),"tree-data":p.value,placeholder:e.placeholder,disabled:e.disabled,"allow-clear":e.allowClear,"show-search":e.showSearch,"tree-default-expand-all":e.treeDefaultExpandAll,"tree-node-filter-prop":e.treeNodeFilterProp,loading:s.value,multiple:e.mode==="multiple","tree-checkable":e.mode==="multiple",style:{width:"100%"},onChange:i,onSearch:c},null,8,["value","tree-data","placeholder","disabled","allow-clear","show-search","tree-default-expand-all","tree-node-filter-prop","loading","multiple","tree-checkable"]))}});export{C as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{default as o}from"./src/index.vue.js";export{o as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import o from"./index.vue2.js";/* empty css */import t from"../../../_virtual/_plugin-vue_export-helper.js";const e=t(o,[["__scopeId","data-v-ceac5a29"]]);export{e as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{defineComponent as Fe,ref as y,reactive as ae,computed as S,watch as A,onMounted as _e,onUnmounted as Se,openBlock as n,createBlock as p,unref as c,withCtx as u,createElementBlock as g,createElementVNode as te,normalizeClass as De,toDisplayString as D,createCommentVNode as C,Fragment as I,renderList as M,createSlots as Re,createVNode as j,mergeProps as B,resolveDynamicComponent as le,renderSlot as oe,createTextVNode as re,normalizeStyle as Ve}from"vue";import{Form as se,Collapse as ne,Spin as Ee,Row as ie,Col as ue,Button as de,message as z}from"ant-design-vue";import{DingTalkFormAdapter as R}from"../../../utils/dingtalk-adapter.js";import ce from"../../text-field/src/index.vue2.js";import $e from"../../textarea-field/src/index.vue2.js";import Be from"../../number-field/src/index.vue2.js";import Le from"../../select-field/src/index.vue2.js";import Te from"../../radio-field/src/index.vue2.js";import Ue from"../../checkbox-field/src/index.vue2.js";import Ne from"../../date-field/src/index.vue2.js";import Oe from"../../date-range-field/src/index.vue.js";import Ae from"../../switch-field/src/index.vue2.js";import Ie from"../../upload-field/src/index.vue2.js";import Me from"../../table-field/src/index.vue.js";import je from"../../department-field/src/index.vue2.js";import ze from"../../signature-field/src/index.vue.js";const Pe={key:0,class:"no-schema"},qe={key:0,class:"form-header"},Ge={key:0},We={key:1},He={class:"group-description"},ua=Fe({__name:"index",props:{schemaResponse:{default:void 0},schema:{default:void 0},instanceData:{default:void 0},modelValue:{default:void 0},labelCol:{default:()=>({span:6})},wrapperCol:{default:()=>({span:18})},layout:{default:"horizontal"},showSubmit:{type:Boolean,default:!0},showReset:{type:Boolean,default:!1},submitText:{default:"提交"},resetText:{default:"重置"},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},responsive:{type:Boolean,default:!0},mobileBreakpoint:{default:768}},emits:["update:modelValue","change","submit","reset","schemaLoaded","dataLoaded"],setup(pe,{expose:me,emit:fe}){const V=se.Item,ve=ne.Panel,l=pe,v=fe,b=y(),F=y(!1),E=y(null),s=ae({}),L=y({}),T=y([]),d=y(!1),U=y(0),r=S(()=>l.schema?l.schema:E.value?E.value:null),P=S(()=>l.loading||F.value),f=S(()=>l.responsive?d.value?{layout:"vertical",labelCol:{span:24},wrapperCol:{span:24}}:{layout:l.layout,labelCol:l.labelCol,wrapperCol:l.wrapperCol}:{layout:l.layout,labelCol:l.labelCol,wrapperCol:l.wrapperCol}),q=S(()=>{var e,a;return l.responsive?d.value?[8,16]:((a=r.value)==null?void 0:a.gutter)||16:((e=r.value)==null?void 0:e.gutter)||16}),k=ae({}),he=()=>{r.value&&r.value.fields.forEach(e=>{k[e.id]=!e.hidden,r.value.fields.some(t=>{var m;const o=(m=t.props)==null?void 0:m.behaviorLinkage;return!o||!Array.isArray(o)?!1:o.some(i=>{var h;return(h=i.targets)==null?void 0:h.some(w=>w.fieldId===e.id)})})&&(k[e.id]=!1)})},_=e=>k[e]!==!1,G=(e,a)=>{var m;const t=(m=e.props)==null?void 0:m.behaviorLinkage;if(!t||!Array.isArray(t))return;console.log(`🔗 处理字段联动: ${e.id}`,{value:a,linkage:t});const o=new Set;t.forEach(i=>{(i.targets||[]).forEach(w=>{o.add(w.fieldId)})}),o.forEach(i=>{var h;k[i]=!1,(h=b.value)==null||h.clearValidate(i),console.log(` -> 先隐藏字段: ${i}`)}),t.forEach(i=>{const h=i.targets||[],w=a===i.value||Array.isArray(a)&&a.includes(i.value);console.log(` 规则匹配: ${w}`,{ruleValue:i.value,currentValue:a}),w&&h.forEach(x=>{const $=x.fieldId,ee=x.behavior||"NORMAL";ee==="NORMAL"?(k[$]=!0,console.log(` -> 显示字段 ${$}`)):ee==="HIDDEN"&&(k[$]=!1,console.log(` -> 隐藏字段 ${$}`))})})},W=S(()=>{if(!r.value)return{};const e={default:[]};return r.value.fields.forEach(a=>{if(a.hidden||!_(a.id))return;const t=a.group||"default";e[t]||(e[t]=[]),e[t].push(a)}),e}),H=e=>l.responsive&&d.value?24:e.span||24,J=e=>({TextField:ce,TextareaField:$e,NumberField:Be,SelectField:Le,RadioField:Te,CheckboxField:Ue,DateField:Ne,DateRangeField:Oe,SwitchField:Ae,UploadField:Ie,TableField:Me,DepartmentField:je,SignatureField:ze})[e]||ce,K=e=>{const a=[];return e.required&&_(e.id)&&a.push({required:!0,message:`请输入${e.label}`}),e.rules&&_(e.id)&&a.push(...e.rules),a},Q=e=>e.labelCol||e.wrapperCol?{labelCol:e.labelCol||f.value.labelCol,wrapperCol:e.wrapperCol||f.value.wrapperCol}:{labelCol:f.value.labelCol,wrapperCol:f.value.wrapperCol},X=e=>{const a={...e.props||{}};return e.type==="DateRangeField"&&(a.mobileMode=d.value,a.mobileBreakpoint=l.mobileBreakpoint),e.type==="TableField"&&(a.labelCol=f.value.labelCol,a.wrapperCol=f.value.wrapperCol),a},Y=(e,a)=>{var o;s[e]=a,v("update:modelValue",{...s}),v("change",e,a);const t=(o=r.value)==null?void 0:o.fields.find(m=>m.id===e);t&&G(t,a)},N=()=>{U.value=window.innerWidth,d.value=U.value<l.mobileBreakpoint},be=()=>{if(l.schemaResponse)try{F.value=!0;const e=R.parseSchema(l.schemaResponse);E.value=e,e.groups&&(T.value=e.groups.filter(a=>!a.collapsed).map(a=>a.name)),he(),v("schemaLoaded",e)}catch(e){console.error("解析 Schema 失败:",e),z.error("加载表单配置失败")}finally{F.value=!1}},ye=()=>{if(l.instanceData&&r.value)try{F.value=!0;const e=R.convertInstanceToFormData(l.instanceData,r.value);Object.keys(e).forEach(a=>{s[a]=e[a]}),L.value={...e},r.value.fields.forEach(a=>{var t;s[a.id]!==void 0&&((t=a.props)!=null&&t.behaviorLinkage)&&G(a,s[a.id])}),v("dataLoaded",e),v("update:modelValue",e)}catch(e){console.error("加载表单数据失败:",e),z.error("加载表单数据失败")}finally{F.value=!1}},Z=async()=>{var e,a;try{if(r.value){const t=r.value.fields.filter(o=>!_(o.id)).map(o=>o.id);t.length>0&&((e=b.value)==null||e.clearValidate(t))}if(await((a=b.value)==null?void 0:a.validate()),r.value){const t=r.value.fields.filter(i=>_(i.id)),o={...r.value,fields:t},m=R.validateFormData(s,o);if(!m.valid){m.errors.forEach(i=>{z.error(i.message)});return}}v("submit",{...s})}catch(t){console.error("表单验证失败:",t)}},O=()=>{var e;(e=b.value)==null||e.resetFields(),Object.keys(s).forEach(a=>{delete s[a]}),Object.keys(L.value).length>0&&Object.assign(s,L.value),v("reset"),v("update:modelValue",{...s})},ge=()=>r.value?R.convertFormDataToInstance(s,r.value):[],Ce=e=>{var t;if(!r.value||!l.schemaResponse)throw new Error("Schema 未加载");let a="";if((t=l.instanceData)!=null&&t.formUuid?a=l.instanceData.formUuid:l.schemaResponse&&(a=(typeof l.schemaResponse.schemaContent=="string"?JSON.parse(l.schemaResponse.schemaContent):l.schemaResponse.schemaContent).formUuid||""),!a)throw new Error("缺少 formUuid");return R.createSubmitData(s,r.value,{formUuid:a,...e})},ke=async()=>{var e;try{return await((e=b.value)==null?void 0:e.validate()),!0}catch{return!1}},we=e=>{var a;(a=b.value)==null||a.clearValidate(e)};return A(()=>l.schemaResponse,()=>{be()},{immediate:!0}),A(()=>l.instanceData,()=>{ye()},{immediate:!0,deep:!0}),A(()=>l.modelValue,e=>{e&&Object.keys(e).length>0&&Object.keys(e).forEach(a=>{s[a]=e[a]})},{immediate:!0,deep:!0}),_e(()=>{l.schema&&(E.value=l.schema),l.modelValue&&Object.assign(s,l.modelValue),l.responsive&&(N(),window.addEventListener("resize",N))}),Se(()=>{l.responsive&&window.removeEventListener("resize",N)}),me({validate:ke,clearValidate:we,resetFields:O,getDingTalkSubmitData:ge,getFullSubmitData:Ce,formData:s,schema:r,isMobile:d,screenWidth:U}),(e,a)=>(n(),p(c(Ee),{spinning:P.value,tip:"加载中..."},{default:u(()=>[r.value?(n(),p(c(se),{key:1,ref_key:"formRef",ref:b,model:s,"label-col":f.value.labelCol,"wrapper-col":f.value.wrapperCol,layout:f.value.layout,disabled:e.disabled||e.readonly,class:De({"mobile-form":d.value}),onFinish:Z},{default:u(()=>[r.value.title||r.value.description?(n(),g("div",qe,[r.value.title?(n(),g("h3",Ge,D(r.value.title),1)):C("",!0),r.value.description?(n(),g("p",We,D(r.value.description),1)):C("",!0)])):C("",!0),r.value.groups&&r.value.groups.length>0?(n(),p(c(ne),{key:1,"active-key":T.value,"onUpdate:activeKey":a[0]||(a[0]=t=>T.value=t),bordered:!1,class:"form-groups"},{default:u(()=>[(n(!0),g(I,null,M(r.value.groups,t=>(n(),p(c(ve),{key:t.name,header:t.title},Re({default:u(()=>[j(c(ie),{gutter:q.value},{default:u(()=>[(n(!0),g(I,null,M(W.value[t.name]||[],o=>(n(),p(c(ue),{key:o.id,span:H(o),offset:d.value?0:o.offset,order:o.order},{default:u(()=>[j(c(V),B({label:o.label,name:o.id,rules:K(o)},{ref_for:!0},Q(o)),{default:u(()=>[(n(),p(le(J(o.type)),B({"model-value":s[o.id],children:o.children},{ref_for:!0},X(o),{disabled:e.disabled||e.readonly,"onUpdate:modelValue":m=>Y(o.id,m)}),null,16,["model-value","children","disabled","onUpdate:modelValue"]))]),_:2},1040,["label","name","rules"])]),_:2},1032,["span","offset","order"]))),128))]),_:2},1032,["gutter"])]),_:2},[t.description?{name:"extra",fn:u(()=>[te("span",He,D(t.description),1)]),key:"0"}:void 0]),1032,["header"]))),128))]),_:1},8,["active-key"])):(n(),p(c(ie),{key:2,gutter:q.value},{default:u(()=>[(n(!0),g(I,null,M(W.value.default,t=>(n(),p(c(ue),{key:t.id,span:H(t),offset:d.value?0:t.offset,order:t.order},{default:u(()=>[j(c(V),B({label:t.label,name:t.id,rules:K(t)},{ref_for:!0},Q(t)),{default:u(()=>[(n(),p(le(J(t.type)),B({"model-value":s[t.id],children:t.children},{ref_for:!0},X(t),{disabled:e.disabled||e.readonly,"onUpdate:modelValue":o=>Y(t.id,o)}),null,16,["model-value","children","disabled","onUpdate:modelValue"]))]),_:2},1040,["label","name","rules"])]),_:2},1032,["span","offset","order"]))),128))]),_:1},8,["gutter"])),e.$slots.approval?(n(),p(c(V),{key:3,label:"流程","wrapper-col":d.value?{span:24}:{span:e.wrapperCol.span}},{default:u(()=>[oe(e.$slots,"approval",{},void 0,!0)]),_:3},8,["wrapper-col"])):C("",!0),oe(e.$slots,"footer",{formData:s,submit:Z,reset:O},()=>[e.showSubmit||e.showReset?(n(),p(c(V),{key:0,"wrapper-col":d.value?{span:24}:{offset:e.labelCol.span,span:e.wrapperCol.span},class:"form-footer"},{default:u(()=>[e.showSubmit?(n(),p(c(de),{key:0,type:"primary","html-type":"submit",loading:P.value,disabled:e.disabled,block:d.value},{default:u(()=>[re(D(e.submitText),1)]),_:1},8,["loading","disabled","block"])):C("",!0),e.showReset?(n(),p(c(de),{key:1,style:Ve(d.value?"margin-top: 12px":"margin-left: 10px"),disabled:e.disabled,block:d.value,onClick:O},{default:u(()=>[re(D(e.resetText),1)]),_:1},8,["style","disabled","block"])):C("",!0)]),_:1},8,["wrapper-col"])):C("",!0)],!0)]),_:3},8,["model","label-col","wrapper-col","layout","disabled","class"])):(n(),g("div",Pe,a[1]||(a[1]=[te("p",null,"暂无表单配置",-1)])))]),_:3},8,["spinning"]))}});export{ua as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{default as o}from"./src/index.vue.js";export{o as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import o from"./index.vue2.js";/* empty css */import t from"../../../_virtual/_plugin-vue_export-helper.js";const _=t(o,[["__scopeId","data-v-3bc314b8"]]);export{_ as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{defineComponent as B,reactive as v,resolveComponent as s,openBlock as r,createElementBlock as l,createElementVNode as D,createBlock as i,withCtx as m,toDisplayString as f,createCommentVNode as p,Fragment as S,renderList as A,resolveDynamicComponent as T,mergeProps as N,renderSlot as R,createVNode as d,createTextVNode as _}from"vue";import h from"../../text-field/src/index.vue2.js";import U from"../../textarea-field/src/index.vue2.js";import q from"../../number-field/src/index.vue2.js";import E from"../../select-field/src/index.vue2.js";import I from"../../radio-field/src/index.vue2.js";import M from"../../checkbox-field/src/index.vue2.js";import z from"../../date-field/src/index.vue2.js";import L from"../../date-range-field/src/index.vue.js";import P from"../../switch-field/src/index.vue2.js";import j from"../../upload-field/src/index.vue2.js";import G from"../../table-field/src/index.vue.js";import H from"../../department-field/src/index.vue2.js";import J from"../../signature-field/src/index.vue.js";const K={key:0,class:"no-schema"},O={key:0,class:"form-header"},Q={key:0},W={key:1},pe=B({__name:"index",props:{schema:{default:void 0},modelValue:{default:()=>({})},labelCol:{default:()=>({span:6})},wrapperCol:{default:()=>({span:18})},layout:{default:"horizontal"}},emits:["update:modelValue","change","submit"],setup(F,{emit:y}){const b=F,n=y,a=v({...b.modelValue}),g=(e,o)=>{a[e]=o,n("update:modelValue",{...a}),n("change",e,o)},C=e=>({TextField:h,TextareaField:U,NumberField:q,SelectField:E,RadioField:I,CheckboxField:M,DateField:z,DateRangeField:L,SwitchField:P,UploadField:j,TableField:G,DepartmentField:H,SignatureField:J})[e]||h,$=e=>{const o=[];return e.required&&o.push({required:!0,message:`请输入${e.label}`}),e.rules&&o.push(...e.rules),o},V=()=>{n("submit",{...a})};return(e,o)=>{const u=s("AFormItem"),c=s("AButton"),k=s("AForm");return e.schema?(r(),i(k,{key:1,model:a,"label-col":e.labelCol,"wrapper-col":e.wrapperCol,layout:e.layout,onFinish:V},{default:m(()=>[e.schema.title||e.schema.description?(r(),l("div",O,[e.schema.title?(r(),l("h3",Q,f(e.schema.title),1)):p("",!0),e.schema.description?(r(),l("p",W,f(e.schema.description),1)):p("",!0)])):p("",!0),(r(!0),l(S,null,A(e.schema.fields,t=>(r(),i(u,{key:t.id,label:t.label,name:t.id,rules:$(t)},{default:m(()=>[(r(),i(T(C(t.type)),N({"model-value":a[t.id],children:t.children},{ref_for:!0},t.props||{},{"onUpdate:modelValue":w=>g(t.id,w)}),null,16,["model-value","children","onUpdate:modelValue"]))]),_:2},1032,["label","name","rules"]))),128)),R(e.$slots,"footer",{formData:a},()=>[d(u,{"wrapper-col":{offset:e.labelCol.span,span:e.wrapperCol.span}},{default:m(()=>[d(c,{type:"primary","html-type":"submit"},{default:m(()=>o[1]||(o[1]=[_("提交")])),_:1,__:[1]}),d(c,{style:{"margin-left":"10px"}},{default:m(()=>o[2]||(o[2]=[_("取消")])),_:1,__:[2]})]),_:1},8,["wrapper-col"])],!0)]),_:3},8,["model","label-col","wrapper-col","layout"])):(r(),l("div",K,o[0]||(o[0]=[D("p",null,"暂无表单配置",-1)])))}}});export{pe as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{default as o}from"./src/index.vue.js";export{o as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import o from"./index.vue2.js";/* empty css */import t from"../../../_virtual/_plugin-vue_export-helper.js";const _=t(o,[["__scopeId","data-v-20d7bb32"]]);export{_ as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{defineComponent as e,openBlock as n,createElementBlock as t}from"vue";const _=e({__name:"index",setup(o){return(r,c)=>(n(),t("div",null,"input"))}});export{_ as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{default as o}from"./src/index.vue2.js";export{o as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import f from"./index.vue2.js";export{f as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{defineComponent as p,computed as m,openBlock as f,createBlock as c,unref as h}from"vue";import{InputNumber as v}from"ant-design-vue";const B=p({__name:"index",props:{modelValue:{default:void 0},placeholder:{default:"请输入数字"},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},min:{default:void 0},max:{default:void 0},step:{default:1},precision:{default:void 0},size:{default:"middle"},controls:{type:Boolean,default:!0},formatter:{type:Function,default:void 0},parser:{type:Function,default:void 0}},emits:["update:modelValue","change","blur","focus"],setup(t,{emit:n}){const r=t,o=n,l=m({get:()=>r.modelValue,set:e=>o("update:modelValue",e)}),d=e=>{const a=typeof e=="string"?Number(e):e;o("change",a??void 0)},s=e=>{o("blur",e)},u=e=>{o("focus",e)};return(e,a)=>(f(),c(h(v),{value:l.value,"onUpdate:value":a[0]||(a[0]=i=>l.value=i),placeholder:e.placeholder,disabled:e.disabled,readonly:e.readonly,min:e.min,max:e.max,step:e.step,precision:e.precision,size:e.size,controls:e.controls,formatter:e.formatter,parser:e.parser,style:{width:"100%"},onChange:d,onBlur:s,onFocus:u},null,8,["value","placeholder","disabled","readonly","min","max","step","precision","size","controls","formatter","parser"]))}});export{B as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{default as o}from"./src/index.vue2.js";export{o as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import f from"./index.vue2.js";export{f as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{defineComponent as s,computed as f,openBlock as r,createBlock as m,unref as y}from"vue";import{Radio as b}from"ant-design-vue";const g=s({__name:"index",props:{modelValue:{default:void 0},options:{default:()=>[]},disabled:{type:Boolean,default:!1},buttonStyle:{default:"outline"},size:{default:"default"},optionType:{default:"default"}},emits:["update:modelValue","change"],setup(l,{emit:n}){const u=b.Group,d=l,o=n,t=f({get:()=>d.modelValue,set:e=>{e!==void 0&&o("update:modelValue",e)}}),i=e=>{o("change",e.target.value)};return(e,a)=>(r(),m(y(u),{value:t.value,"onUpdate:value":a[0]||(a[0]=p=>t.value=p),disabled:e.disabled,"button-style":e.buttonStyle,size:e.size,"option-type":e.optionType,options:e.options,onChange:i},null,8,["value","disabled","button-style","size","option-type","options"]))}});export{g as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{default as o}from"./src/index.vue2.js";export{o as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import f from"./index.vue2.js";export{f as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{defineComponent as r,computed as p,openBlock as m,createBlock as f,unref as h}from"vue";import{Select as c}from"ant-design-vue";const w=r({__name:"index",props:{modelValue:{default:void 0},options:{default:()=>[]},placeholder:{default:"请选择"},disabled:{type:Boolean,default:!1},allowClear:{type:Boolean,default:!0},showSearch:{type:Boolean,default:!1},mode:{default:void 0},size:{default:"middle"},maxTagCount:{default:void 0},filterOption:{type:[Boolean,Function],default:void 0}},emits:["update:modelValue","change","search"],setup(t,{emit:d}){const n=t,o=d,a=p({get:()=>n.modelValue,set:e=>o("update:modelValue",e)}),i=e=>{e!==void 0&&o("change",e)},s=e=>{o("search",e)};return(e,l)=>(m(),f(h(c),{value:a.value,"onUpdate:value":l[0]||(l[0]=u=>a.value=u),options:e.options,placeholder:e.placeholder,disabled:e.disabled,"allow-clear":e.allowClear,"show-search":e.showSearch,mode:e.mode,size:e.size,"max-tag-count":e.maxTagCount,"filter-option":e.filterOption,style:{width:"100%"},onChange:i,onSearch:s},null,8,["value","options","placeholder","disabled","allow-clear","show-search","mode","size","max-tag-count","filter-option"]))}});export{w as default};
|