woodao-pc-ui 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,347 @@
1
+ <template>
2
+ <el-form class="base-form-container" ref="formRef" :label-position="config.labelPosition || 'right'"
3
+ :form="domainData"
4
+
5
+
6
+
7
+ :label-width="(config.labelWidth || 100) + 'px'" :size="config.size || 'default'">
8
+ <slot name="prefix"></slot>
9
+ <el-row style="width: 100%">
10
+ <template v-for="(item, i) of innerFormItems" :key="i" >
11
+ <el-col :span="item.span || 24" v-show="item.hidden!=true">
12
+
13
+
14
+ <!-- label 带tips -->
15
+ <div
16
+ v-if="item.tips"
17
+ class="el-form-item el-form-item--default"
18
+ >
19
+ <label
20
+ slot="label"
21
+ class="el-form-item__label flex-row-end"
22
+ :style="{'width': config.labelWidth + 'px',alignItems:'center'}"
23
+ >
24
+ <span
25
+ style="margin-right:4px;"
26
+ v-if="item.tips.position == 'left'"
27
+ >{{ item.tips.label }}</span>
28
+
29
+
30
+ <el-tooltip :placement="item.tips.placement || 'bottom'">
31
+ <template #content >
32
+ <div style="diaplay:inline;max-width: 300px">{{ item.tips.message || '提示信息' }}</div>
33
+ </template>
34
+ <el-icon size="16"><QuestionFilled /></el-icon>
35
+ </el-tooltip>
36
+ <span
37
+ style="margin-left:4px;"
38
+ v-if="item.tips.position == 'right'"
39
+ >{{ item.tips.label }}</span>
40
+ </label>
41
+
42
+ <div
43
+ class="el-form-item__content"
44
+ :style="{'width': config.labelWidth + 'px'}"
45
+ >
46
+ <BaseFormItem
47
+ ref="BaseFormItem"
48
+ :item="item"
49
+ @onSelectChangeFun="onSelectChange"
50
+ :domainData="domainData"
51
+ @handleSelect="handleSelect"
52
+ @selUser="selUser"
53
+ @onChange="item.onChange"
54
+ >
55
+ </BaseFormItem>
56
+ </div>
57
+
58
+ </div>
59
+
60
+ <!-- 分区域-->
61
+ <div v-else-if="item.type && item.type=='splitBlock'">
62
+ <div class="flex-row-start ">
63
+ <div class="ring-block"></div>
64
+ <div class="margin-left-sm flex-between text-bold">{{ item.value }}</div>
65
+ </div>
66
+
67
+ <div style="width: 100%;height:15px "></div>
68
+ </div>
69
+
70
+ <!-- label 不带tips -->
71
+ <el-form-item
72
+ v-else
73
+ :class="{ 'is-error': item.errorMessage }"
74
+ :rules="item.rules"
75
+ :label="item.label"
76
+ :show-message="true"
77
+ v-show="!item.hidden"
78
+ :label-width="item.labelWidth || config.labelWidth"
79
+ :label-position="item.labelPosition||config.labelPosition"
80
+ >
81
+ <BaseFormItem
82
+ @onSelectChangeFun="onSelectChange"
83
+ ref="BaseFormItem"
84
+
85
+ :item="item"
86
+ :domainData="domainData"
87
+ @handleSelect="handleSelect"
88
+ @selUser="selUser"
89
+ @onChange="item.onChange"
90
+ >
91
+ </BaseFormItem>
92
+
93
+ <!-- 选人组织机构 -->
94
+ <selPeople
95
+ class="w100"
96
+ v-if="item.type=='selPeople'"
97
+ ref="selPeople"
98
+ @selRecords="selRecords"
99
+ :objKey="item.name"
100
+ :readOnly="item.readOnly"
101
+ :value="item.value"
102
+ :ids="item.bindId"
103
+ :moreHeight="item.moreHeight"
104
+ :info="item.info"
105
+ :moreSel="item.moreSel||false"
106
+ >
107
+ </selPeople>
108
+
109
+ <!-- 树形下拉选择叶类-->
110
+ <el-select
111
+ v-if="item.type === 'treeSelLeaf'"
112
+ :multiple="item.multiple"
113
+ v-model="domainData[item.name]"
114
+ :disabled="item.disabled"
115
+ :size="size || 'small'"
116
+ :filterable="item.filterable ||true"
117
+ :clearable="item.clearable||true"
118
+ style="width: 100%"
119
+ class="form-item main-select-tree"
120
+ :placeholder="
121
+ item.placeholder || `请选择${item.label}` || '请输入内容'
122
+ "
123
+ @change="
124
+ item.onChange||onChange"
125
+ >
126
+ <el-option v-for="item in formatData(datas)" :key="item.value" :label="item.label" :value="item.value" style="display: none;" />
127
+ <el-tree class="main-select-el-tree" ref="selectTree"
128
+ :data="datas"
129
+ node-key="id"
130
+ highlight-current
131
+ :props="defaultProps"
132
+ @node-click="handleNodeClick"
133
+ :current-node-key="value"
134
+ :expand-on-click-node="true"
135
+ />
136
+ </el-select>
137
+ <!-- 附件上传-->
138
+ <uploadFile v-if="item.type === 'uploadFile'" :uploadType="item.uploadType" :uploadFile="item.uploadFile"
139
+ :max-num="item.maxNum" :fileInfo="item.fileInfo || '已上传'" :max-size="item.maxSize" :bus-id="item.busId"
140
+ :bus-name="item.busName" :bus-type="item.busType" :domain-name="item.domainName"
141
+ :btn-size="item.btnSize || 'small'"
142
+ :authsOfDelete="item.authsOfDelete" @uploadSuccess="item.uploadSuccess || ''"
143
+ :infoText="item.infoText || ''" :tipText="item.tipText || ''" :disabled="item.disabled" :isWidth="item.isWidth||false">
144
+ </uploadFile>
145
+
146
+
147
+ <div v-if="item.type==='Wangeditor'" class="sel-item-container">
148
+ <Wangeditor
149
+
150
+ :Wanghtml="item.value"
151
+ :ishiddenImage="true"
152
+ :ishiddenVideo="true"
153
+ ref="updateWangeditor"
154
+ ></Wangeditor>
155
+ </div>
156
+
157
+
158
+
159
+ <span v-if="item.errorMessage" class="error-message">{{ item.errorMessage }}</span>
160
+ </el-form-item>
161
+
162
+ <slot name="extra"></slot>
163
+
164
+
165
+
166
+ </el-col>
167
+
168
+ </template>
169
+
170
+ </el-row>
171
+
172
+ <slot name="extra"></slot>
173
+ </el-form>
174
+ </template>
175
+
176
+ <script lang="ts">
177
+ import { ref } from 'vue';
178
+ import { FormInstance } from 'element-plus';
179
+ import { useForm } from "@/hooks";
180
+ import selPeople from "@/components/businessComponent/selPeople/selPeople";
181
+ import {
182
+ computed,
183
+ defineComponent,
184
+ getCurrentInstance,
185
+ onMounted,
186
+ PropType,
187
+ watch,
188
+ } from "vue";
189
+ import { FormRenderItem } from "./formRender";
190
+ import BaseFormItem from "./baseFormItem.vue";
191
+ import Wangeditor from "@/components/businessComponent/wangEditor.vue";
192
+ export default defineComponent({
193
+ name: "BaseForm",
194
+ components: {
195
+ Wangeditor,
196
+ BaseFormItem,
197
+ selPeople
198
+ },
199
+ props: {
200
+ config: {
201
+ type: Object,
202
+ default: () => {
203
+ return {
204
+ size: "default",
205
+ labelWidth: "120",
206
+ labelPosition: "right",
207
+ };
208
+ },
209
+ },
210
+ formItems: {
211
+ type: Array,
212
+ default: () => {
213
+ return [];
214
+ },
215
+ },
216
+ // 为了避免TypeScript解析错误,暂时移除PropType类型断言
217
+ },
218
+ setup(props, { expose,emit }) {
219
+ const formRef = ref(null)
220
+ const submitForm = (formEl) => {
221
+ if (!formEl) return
222
+ formEl.validate((valid) => {
223
+ if (valid) {
224
+ console.log('submit!')
225
+ } else {
226
+ console.log('error submit!')
227
+ return false
228
+ }
229
+ })
230
+ }
231
+ const { checkParams, resetParams, generatorParams } = useForm();
232
+ const innerFormItems = computed(() => {
233
+ console.log(innerFormItems,'111111')
234
+ return props.formItems;
235
+ });
236
+ function mCheckParams() {
237
+ return checkParams(innerFormItems.value);
238
+ }
239
+ function mResetParams() {
240
+ return resetParams(innerFormItems.value);
241
+ }
242
+ function mGeneratorParams() {
243
+ return generatorParams(innerFormItems.value);
244
+ }
245
+ expose({
246
+ checkParams: mCheckParams,
247
+ resetParams: mResetParams,
248
+ generatorParams: mGeneratorParams,
249
+ });
250
+ function selRecords(data){
251
+
252
+ console.log(data)
253
+ let selids = []
254
+ let names = []
255
+ if(data.datas&&data.datas.length>0){
256
+ data.datas.forEach((item, index) => {
257
+ selids.push(item.id)
258
+ names.push(item.nickname)
259
+ })
260
+ }else if(data&&data.length>0) {
261
+ data.forEach((item, index) => {
262
+ selids.push(item.id)
263
+ names.push(item.nickname)
264
+ })
265
+ }
266
+ props.formItems.forEach((it) => {
267
+ if (it.name == data.objKey) {
268
+ it.bindId = selids.join(",")
269
+ it.value = names.join(",")
270
+
271
+ }
272
+ });
273
+ // emit("selRecords");
274
+ }
275
+
276
+
277
+ function onSelectChange(item) {
278
+
279
+
280
+ emit("onSelectChangeFun", item);
281
+ }
282
+ const domainData = computed(() =>generatorParams(innerFormItems.value))
283
+ return {
284
+ selRecords,
285
+ formRef,
286
+ domainData,
287
+ submitForm,
288
+ innerFormItems,
289
+ onSelectChange,
290
+ };
291
+ },
292
+ });
293
+ </script>
294
+ <style lang="scss" scoped>
295
+ .error-message {
296
+ //color: #f56c6c;
297
+ //font-size: 13px;
298
+ //position: absolute;
299
+ //left: 0;
300
+ //top:24px;
301
+ color: #f56c6c;
302
+ font-size: 12px;
303
+ line-height: 1;
304
+ padding-top: 4px;
305
+ position: absolute;
306
+ top: 100%;
307
+ left: 0;
308
+ }
309
+ .form-item {
310
+ width: 100%;
311
+ }
312
+ .ring-block {
313
+ width: 3px;
314
+ height: 14px;
315
+ background: #00b3f3;
316
+ }
317
+ .go-content-body {
318
+ position: relative;
319
+
320
+ .sel-item-container {
321
+ border: 1px solid #dcdee2;
322
+ border-radius: 4px;
323
+ color: #515a6e;
324
+ background-color: #fff;
325
+ background-image: none;
326
+ height: 32px;
327
+ line-height: 30px;
328
+
329
+ &:hover {
330
+ border: 1px solid #2d8cf0;
331
+ }
332
+ }
333
+
334
+ .placeholder {
335
+ color: #bbbbbb;
336
+ }
337
+
338
+ .input-group-addon {
339
+ position: absolute;
340
+ right: 8px;
341
+ top: 7px;
342
+ color: #666;
343
+ font-size: 14px;
344
+ }
345
+ }
346
+
347
+ </style>
@@ -0,0 +1,352 @@
1
+ <template>
2
+
3
+ <div style="width: 100%">
4
+ <FormRender v-if="item.render" :render="item.render" :form-item="item" />
5
+ <el-button v-if="item.type === 'button'" :type="item.btnType||'primary'" @click="item.click">{{ item.btnText }}</el-button>
6
+
7
+ <el-input v-if="item.type === 'input'"
8
+ v-model="item.value"
9
+ :placeholder="item.placeholder || '请输入内容'"
10
+ :size="size || 'default'" clearable
11
+ :readonly="item.readonly||false"
12
+ auto-complete="new-password"
13
+ @change="changeInput(item)"
14
+ :disabled="item.disabled || false" :type="item.inputType || 'text'" :maxlength="item.maxLength"
15
+ :rows="item.rows || 5" class="form-item" :show-password="item.inputType === 'password'" />
16
+
17
+
18
+ <div class="w100" v-if="item.type === 'input-fixed'">
19
+ <div class="flex-row-start w100">
20
+ <span>com.woodao.services</span>
21
+
22
+ <el-input v-model="item.value1" :placeholder="item.placeholder1 || '请输入'"
23
+ :size="size || 'default'" clearable
24
+ :readonly="item.readonly||false"
25
+ auto-complete="new-password"
26
+ :disabled="item.disabled || false" :type="item.inputType || 'text'" :maxlength="item.maxLength"
27
+ :rows="item.rows || 5" class="margin-lr-sm" :show-password="item.inputType === 'password'" />
28
+
29
+ <el-input v-model="item.value2" :placeholder="item.placeholder2 || '请输入'"
30
+ :size="size || 'default'" clearable
31
+ :readonly="item.readonly||false"
32
+ auto-complete="new-password"
33
+ :disabled="item.disabled || false" :type="item.inputType || 'text'" :maxlength="item.maxLength"
34
+ :rows="item.rows || 5" :show-password="item.inputType === 'password'" />
35
+ </div>
36
+ <div v-show="item.description" class="w100 option-description">{{ item.description }}</div>
37
+ </div>
38
+
39
+
40
+ <!-- 系统编码 -->
41
+ <select-by-system-code
42
+ v-if="item.type === 'sysCodingDrop'"
43
+ :sysCode="item.sysCode"
44
+ :item="item"
45
+ :bindValue="item.name"
46
+ :bindLabel="item.label"
47
+ @selectChange="selectChange($event,item)"
48
+ ></select-by-system-code>
49
+
50
+
51
+
52
+ <!--多文本输入-->
53
+ <el-input
54
+ v-if="item.type === 'textarea'"
55
+ v-model="item.value"
56
+ :size="size || 'default'"
57
+ clearable
58
+ :type="item.type || ''"
59
+ :placeholder="item.placeholder || `请输入${item.label}` || '请输入内容'"
60
+ :autosize="{ minRows: item.minRows || 2, maxRows: item.maxRows || 15 }"
61
+ :maxlength="item.maxLength"
62
+ :rows="item.rows || 5"
63
+ class="form-item"
64
+ :disabled="item.disabled"
65
+ :readonly="item.readonly||false"
66
+ @focus="focusForm(item)"
67
+ />
68
+ <div v-show="item.type === 'textarea'&&item.description" class="option-description">{{ item.description }}</div> <!-- 这里是选项后面的说明文字 -->
69
+
70
+
71
+ <el-input
72
+ v-if="item.type === 'number'"
73
+ v-model="item.value"
74
+ :size="size || 'small'"
75
+ :max="item.max||999999"
76
+ :min="item.min||0"
77
+
78
+ :type="item.type || ''"
79
+ class="form-item"
80
+ style="width: 100%"
81
+ :disabled="item.disabled"
82
+ :placeholder="item.placeholder || `请输入${item.label}` || '请输入内容'"
83
+ />
84
+
85
+
86
+
87
+ <el-select v-else-if="item.type === 'select'" v-model="item.value"
88
+ :placeholder="item.placeholder || '请选择'" :size="size || 'default'"
89
+ :filterable="item.filterable ? true : false" :clearable="item.clearable || true" :disabled="item.disabled || false"
90
+ :readonly="item.readonly||false"
91
+ :multiple="item.multiple"
92
+ style="width: 100%" class="form-item" @change="
93
+ item.onChange
94
+ ? item.onChange(item.value, item.associatedOption || '')
95
+ : onSelectChange(item)
96
+ ">
97
+ <el-option v-for="optionItem in item.selectOptions" :key="optionItem.value" :value="optionItem.value"
98
+ :label="optionItem.label" />
99
+ </el-select>
100
+
101
+ <!-- 选择对象-->
102
+ <el-select v-else-if="item.type === 'selectOfSysObjectDef'" v-model="item.value"
103
+ :placeholder="item.placeholder || '请选择'" :size="size || 'default'"
104
+ :filterable="item.filterable ? true : false" :clearable="item.clearable || true" :disabled="item.disabled || false"
105
+ :readonly="item.readonly||false"
106
+ :multiple="item.multiple"
107
+ style="width: 100%" class="form-item" @change="
108
+ item.onChange
109
+ ? item.onChange(item.value, item.associatedOption || '')
110
+ : onSelectChange(item)
111
+ ">
112
+ <el-option v-for="optionItem in selSysObjectData" :key="optionItem.value" :value="optionItem.value"
113
+ :label="optionItem.label" />
114
+ </el-select>
115
+
116
+
117
+ <el-date-picker v-else-if="item.type === 'date-range'" v-model="item.value" type="daterange"
118
+ range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" class="form-item"
119
+ :readonly="item.readonly||false"
120
+ :disabled="item.disabled || false" style="width: 100%" :size="size || 'default'" />
121
+
122
+
123
+
124
+
125
+
126
+ <el-date-picker v-else-if="item.type === 'date'" v-model="item.value" type="date"
127
+ :readonly="item.readonly||false"
128
+ style="width: 100%"
129
+ value-format="YYYY-MM-DD"
130
+ format="YYYY-MM-DD"
131
+ :disabled="item.disabled || false"
132
+ range-separator="-" :placeholder="item.placeholder || '请选择日期'"
133
+ class="form-item" :size="size || 'default'" />
134
+
135
+
136
+ <el-date-picker v-else-if="item.type === 'month'" v-model="item.value" type="month"
137
+ :readonly="item.readonly||false"
138
+ style="width: 100%"
139
+ value-format="YYYY-MM"
140
+ format="YYYY-MM"
141
+ :disabled="item.disabled || false"
142
+ range-separator="-" :placeholder="item.placeholder || '请选择'"
143
+ class="form-item" :size="size || 'default'" />
144
+ <el-date-picker v-else-if="item.type === 'datetime'" v-model="item.value" type="datetime"
145
+ :readonly="item.readonly||false"
146
+ :disabled="item.disabled || false" :placeholder="item.placeholder || '请选择日期'" class="form-item"
147
+ :size="size || 'default'" />
148
+ <el-time-picker v-else-if="item.type === 'time'" v-model="item.value" arrow-control
149
+ :readonly="item.readonly||false"
150
+ :picker-options="{
151
+ selectableRange: '00:00:00 - 23:59:59',
152
+ }" :disabled="item.disabled || false" :placeholder="item.placeholder || '请选择时间'" class="form-item"
153
+ :size="size || 'default'" />
154
+ <el-radio-group v-if="item.type === 'radio-group'" v-model="item.value" :disabled="item.disabled || false"
155
+ :size="size || 'default'" @change="
156
+ item.onChange
157
+ ? item.onChange(item.value, item.associatedOption || '')
158
+ : () => { }
159
+ ">
160
+ <!-- <div v-show="item.optionType==='row'" style="width: 100%;height:8px"></div>-->
161
+ <component :is="item.style === 'button' ? 'el-radio-button' : 'el-radio'"
162
+ :class="item.optionType==='row'?'row-option':''"
163
+ v-for="optionItem of item.radioOptions" :key="optionItem.value" :label="optionItem.value">{{
164
+ optionItem.label
165
+ }}
166
+ <span v-show="optionItem.description" class="option-description">{{ optionItem.description }}</span> <!-- 这里是选项后面的说明文字 -->
167
+ </component>
168
+ </el-radio-group>
169
+ <el-checkbox-group v-if="item.type ==='checkbox'" v-model="item.value"
170
+ :readonly="item.readonly||false"
171
+ :disabled="item.disabled || false" :size="size || 'default'" @change="
172
+ item.onChange
173
+ ? item.onChange(item.value, item.associatedOption || '')
174
+ : () => { }
175
+ ">
176
+ <div v-show="item.optionType==='row'" style="width: 100%;height:8px"></div>
177
+ <component :is="
178
+ item.style === 'button' ? 'el-checkbox-button' : 'el-checkbox'"
179
+ :class="item.optionType==='row'?'row-option':''"
180
+ v-for="optionItem of item.checkOptions" :key="optionItem.value" :label="optionItem.value">{{
181
+ optionItem.label
182
+ }}
183
+ <span v-show="optionItem.description" class="option-description">{{ optionItem.description }}</span> <!-- 这里是选项后面的说明文字 --> </component>
184
+ </el-checkbox-group>
185
+ <el-switch v-if="item.type === 'switch'" v-model="item.value" :disabled="item.disabled || false"
186
+ :size="size || 'default'" @change="
187
+ item.onChange
188
+ ? item.onChange(item.value, item.associatedOption || '')
189
+ : () => { }
190
+ ">
191
+ </el-switch>
192
+ <!-- 分区域-->
193
+
194
+ <!-- 普通文本 -->
195
+ <span v-else-if="item.type === 'span'">
196
+ {{ item.value }}
197
+ </span>
198
+
199
+
200
+
201
+
202
+ </div>
203
+
204
+
205
+ </template>
206
+
207
+ <script lang="ts">
208
+ import { useForm } from "@/hooks";
209
+ import {
210
+ computed,
211
+ defineComponent,
212
+ getCurrentInstance,
213
+ onMounted,
214
+ PropType,
215
+ watch,
216
+ } from "vue";
217
+ import { FormRenderItem } from "./FormRender";
218
+ import WangEditor from "@/components/businessComponent/wangEditor.vue";
219
+ import QueryCommand from "@/utils/queryCommand";
220
+ import SysConfigUtils from "@/utils/sysConfigUtils";
221
+ import console from "console";
222
+
223
+ export default defineComponent({
224
+ name: "baseFormItem",
225
+ components:{
226
+ WangEditor
227
+ },
228
+ props: {
229
+ size: {
230
+ type: String,
231
+ default: "default",
232
+ },
233
+ item: {
234
+ type: Object,
235
+ default: () => {
236
+ return {};
237
+ },
238
+ },
239
+ domainData: {
240
+ type: Object,
241
+ default: () => {
242
+ return {};
243
+ },
244
+ },
245
+ },
246
+ setup(props, { expose,emit }) {
247
+ const { checkParams, resetParams, generatorParams } = useForm();
248
+ const innerFormItems = computed(() => {
249
+ return props.formItems;
250
+ });
251
+ function mCheckParams() {
252
+ return checkParams(innerFormItems.value);
253
+ }
254
+ function mResetParams() {
255
+ return resetParams(innerFormItems.value);
256
+ }
257
+ function mGeneratorParams() {
258
+ return generatorParams(innerFormItems.value);
259
+ }
260
+ function onSelectChange(item) {
261
+ if(item.value){
262
+ item.errorMessage=''
263
+ }
264
+ emit("onSelectChangeFun", item);
265
+ }
266
+ function selectChange({ oldVal, val, changeIndex }, item) {
267
+ if(item.value){
268
+ item.errorMessage=''
269
+ }
270
+ if (item && item.selectChange) {
271
+ item.selectChange(item, { oldVal, val, changeIndex })
272
+ }
273
+ }
274
+
275
+
276
+ const selSysObjectData= ref([])
277
+
278
+ const getSysListForSelect = () => {
279
+ let params = {
280
+
281
+ };
282
+ let page: boolean | undefined = false;
283
+ let queryCommand = new QueryCommand({
284
+ url: SysConfigUtils.niftyUrl + "/pub/sys_object_def/list_for_select",
285
+ });
286
+ //执行查询操作
287
+ queryCommand.executeQuery({
288
+ params,
289
+ successFun: (backData: any) => {
290
+ console.log(backData, '班次选项')
291
+ backData.forEach((item, index) => {
292
+ item.label = item.objDes
293
+ item.value = item.objName
294
+ })
295
+ selSysObjectData.value = backData
296
+ },
297
+ errorFun: (backData: any) => {
298
+
299
+ },
300
+ });
301
+ };
302
+
303
+
304
+ function changeInput(item) {
305
+ // console.log(item,'changeiNPUT')
306
+ if(item.value){
307
+ item.errorMessage=''
308
+ }
309
+
310
+ }
311
+
312
+ onMounted(() => {
313
+ if(props.item.type==='selectOfSysObjectDef'){
314
+ getSysListForSelect()
315
+ }
316
+
317
+ });
318
+ expose({
319
+ checkParams: mCheckParams,
320
+ resetParams: mResetParams,
321
+ generatorParams: mGeneratorParams,
322
+ });
323
+ return {
324
+ selSysObjectData,
325
+ innerFormItems,
326
+ getSysListForSelect,
327
+ onSelectChange,
328
+ selectChange,
329
+ changeInput,
330
+ };
331
+ },
332
+ });
333
+ </script>
334
+ <style lang="scss" scoped>
335
+ .form-item {
336
+ width: 100%;
337
+ }
338
+ .ring-block {
339
+ width: 3px;
340
+ height: 14px;
341
+ background: #00b3f3;
342
+ }
343
+ .option-description{
344
+ margin-left: 5px;
345
+ color: #A8ABB2; /* 说明文字的颜色,根据需要调整 */
346
+ font-size: 12px; /* 文字大小,根据需要调整 */
347
+ }
348
+ .row-option{
349
+ display: block; /* 使每个复选框独占一行 */
350
+ //margin-top: 8px; /* 为了更好的分隔,可以自定义间距 */
351
+ }
352
+ </style>