wui-components-v2 1.1.71 → 1.1.73
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/custom-date-picker/custom-date-picker.vue +2 -6
- package/components/fold-card/fold-card.vue +1 -1
- package/components/form-control/form-control.vue +25 -1
- package/components/user-choose/user-choose.vue +5 -3
- package/components/wui-select-list/wui-select-list.vue +1 -9
- package/composables/useCompanyFieldFilter.ts +26 -24
- package/package.json +1 -1
|
@@ -8,10 +8,6 @@ defineOptions({
|
|
|
8
8
|
const props = defineProps({
|
|
9
9
|
modelValue: String,
|
|
10
10
|
placeholder: String,
|
|
11
|
-
columns: {
|
|
12
|
-
type: Array as PropType<SelectOption[]>,
|
|
13
|
-
default: () => [],
|
|
14
|
-
},
|
|
15
11
|
labelKey: { type: String, default: 'label' },
|
|
16
12
|
valueKey: { type: String, default: 'value' },
|
|
17
13
|
type: { type: String, default: 'date' },
|
|
@@ -40,7 +36,7 @@ watch(
|
|
|
40
36
|
)
|
|
41
37
|
|
|
42
38
|
watch(currentValue, val => {
|
|
43
|
-
const newVal = props.type
|
|
39
|
+
const newVal = ['year', 'month'].includes(props.type) ? dayjs(val).format('YYYY-MM') : val
|
|
44
40
|
emit('update:modelValue', newVal)
|
|
45
41
|
})
|
|
46
42
|
|
|
@@ -71,7 +67,7 @@ const labelText = computed(() => {
|
|
|
71
67
|
</div>
|
|
72
68
|
|
|
73
69
|
<wd-calendar
|
|
74
|
-
v-if="['date', 'datetime'].includes(type)"
|
|
70
|
+
v-if="['date', 'datetime', 'month'].includes(type)"
|
|
75
71
|
v-model="currentValue"
|
|
76
72
|
v-model:visible="open"
|
|
77
73
|
label-key="label"
|
|
@@ -73,7 +73,6 @@ function toggleCollapse(contentId: string) {
|
|
|
73
73
|
collapseIcon.value = 'arrow-down'
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
|
-
console.log(props, 'props')
|
|
77
76
|
</script>
|
|
78
77
|
|
|
79
78
|
<template>
|
|
@@ -98,6 +97,7 @@ console.log(props, 'props')
|
|
|
98
97
|
)
|
|
99
98
|
}}
|
|
100
99
|
</view>
|
|
100
|
+
<!-- <slot name="addressInfo" />s -->
|
|
101
101
|
</view>
|
|
102
102
|
<!-- <slot name="detailAddress" /> -->
|
|
103
103
|
</view>
|
|
@@ -273,7 +273,7 @@ function submit() {
|
|
|
273
273
|
})
|
|
274
274
|
}
|
|
275
275
|
}
|
|
276
|
-
resolve(data)
|
|
276
|
+
resolve({ ...clearValueMap, ...data })
|
|
277
277
|
} else {
|
|
278
278
|
reject(valid)
|
|
279
279
|
}
|
|
@@ -289,6 +289,14 @@ function submit() {
|
|
|
289
289
|
defineExpose({
|
|
290
290
|
submit,
|
|
291
291
|
})
|
|
292
|
+
const clearValueMap = fields.value.reduce(
|
|
293
|
+
(acc, field) => {
|
|
294
|
+
acc[field.id] = field.clearValueOnHidden ? '' : (field.defaultValue ?? null)
|
|
295
|
+
return acc
|
|
296
|
+
},
|
|
297
|
+
{} as Record<string, any>
|
|
298
|
+
)
|
|
299
|
+
console.log('clearValueMap', clearValueMap)
|
|
292
300
|
</script>
|
|
293
301
|
|
|
294
302
|
<template>
|
|
@@ -471,6 +479,22 @@ defineExpose({
|
|
|
471
479
|
:placeholder="`请选择${item.title}`"
|
|
472
480
|
/>
|
|
473
481
|
</wd-form-item>
|
|
482
|
+
<wd-form-item
|
|
483
|
+
v-else-if="
|
|
484
|
+
ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'date-M1'
|
|
485
|
+
"
|
|
486
|
+
:class="{ 'no-border-top': fields.indexOf(item) === 0 }"
|
|
487
|
+
:prop="item.sourceId"
|
|
488
|
+
:title="item.title"
|
|
489
|
+
>
|
|
490
|
+
<customDatePicker
|
|
491
|
+
v-model="model[item.sourceId]"
|
|
492
|
+
type="month"
|
|
493
|
+
use-second
|
|
494
|
+
:clearable="!item.disabled"
|
|
495
|
+
:placeholder="`请选择${item.title}`"
|
|
496
|
+
/>
|
|
497
|
+
</wd-form-item>
|
|
474
498
|
<wd-form-item
|
|
475
499
|
v-else-if="
|
|
476
500
|
ControlTypeSupportor.getControlType(item, props.entity && props.entity[item.sourceId]) === 'file' ||
|
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
</view>
|
|
8
8
|
<view>{{ showValue.address }}</view>
|
|
9
9
|
</view>
|
|
10
|
-
<view class="flex items-center gap-1 text-3">
|
|
10
|
+
<view class="flex items-center gap-1 text-3" @tap="toAddressList">
|
|
11
11
|
通讯录
|
|
12
|
-
<wd-icon name="user" size="18px"
|
|
12
|
+
<wd-icon name="user" size="18px" />
|
|
13
13
|
</view>
|
|
14
14
|
</div>
|
|
15
15
|
</template>
|
|
@@ -32,6 +32,7 @@ const props = defineProps({
|
|
|
32
32
|
title: String,
|
|
33
33
|
extControlType: String,
|
|
34
34
|
})
|
|
35
|
+
console.log('props11111', props)
|
|
35
36
|
|
|
36
37
|
const emit = defineEmits<{
|
|
37
38
|
'update:modelValue': [value: string]
|
|
@@ -51,7 +52,8 @@ const EVENT_NAME = `userChooseSelected_${generateHighResolutionID()}`
|
|
|
51
52
|
const addUser = () => {
|
|
52
53
|
const addEvent = generateHighResolutionID()
|
|
53
54
|
// 当前已有数据时,跳转到编辑页面
|
|
54
|
-
if (currentValue.value) {
|
|
55
|
+
if (currentValue.value && typeof currentValue.value === 'string') {
|
|
56
|
+
console.log('currentValue.value', currentValue.value)
|
|
55
57
|
// 和 fetchDataById 中的 requestId 逻辑保持一致
|
|
56
58
|
const entityId = currentValue.value.split('@R@')[0]
|
|
57
59
|
router.push(
|
|
@@ -150,15 +150,7 @@ async function queryList(pageNo: number, pageSize: number) {
|
|
|
150
150
|
// paging.value.reload() // 手动触发加载
|
|
151
151
|
// })
|
|
152
152
|
|
|
153
|
-
|
|
154
|
-
const newParams = {
|
|
155
|
-
thirdCriterion: search.relValueField3 || '',
|
|
156
|
-
secondCriterion: search.relValueField?.toString() || '',
|
|
157
|
-
}
|
|
158
|
-
const params = Object.entries(newParams)
|
|
159
|
-
.map(([key, value]) => `${key}=${value}`)
|
|
160
|
-
.join('&')
|
|
161
|
-
let qre = searchData.value ? `${searchData.value + '&' + params}` : params
|
|
153
|
+
let qre = searchData.value
|
|
162
154
|
if (config.value.defaultCriteriaValue) {
|
|
163
155
|
for (const key in config.value.defaultCriteriaValue) {
|
|
164
156
|
if (Object.prototype.hasOwnProperty.call(config.value.defaultCriteriaValue, key)) {
|
|
@@ -8,7 +8,7 @@ export function useCompanyFieldFilter(
|
|
|
8
8
|
fieldGroup: () => Groups | undefined,
|
|
9
9
|
model: Ref<any>,
|
|
10
10
|
enabled: boolean = true,
|
|
11
|
-
companyFieldSourceId: string = COMPANY_FIELD_SOURCE_ID
|
|
11
|
+
companyFieldSourceId: string = COMPANY_FIELD_SOURCE_ID
|
|
12
12
|
) {
|
|
13
13
|
const deliveryCompanySourceId = ref<string>('')
|
|
14
14
|
const selectedCompany = ref<string>('')
|
|
@@ -16,11 +16,11 @@ export function useCompanyFieldFilter(
|
|
|
16
16
|
if (enabled) {
|
|
17
17
|
watch(
|
|
18
18
|
() => fieldGroup()?.fields,
|
|
19
|
-
|
|
19
|
+
newFields => {
|
|
20
20
|
const companyField: any = newFields?.find((item: any) => item.sourceId === companyFieldSourceId) || {}
|
|
21
21
|
deliveryCompanySourceId.value = companyField.sourceId || ''
|
|
22
22
|
},
|
|
23
|
-
{ deep: true, immediate: true }
|
|
23
|
+
{ deep: true, immediate: true }
|
|
24
24
|
)
|
|
25
25
|
|
|
26
26
|
// 直接监听 model 中对应字段的值变化
|
|
@@ -33,59 +33,61 @@ export function useCompanyFieldFilter(
|
|
|
33
33
|
|
|
34
34
|
watch(
|
|
35
35
|
companyFieldValue,
|
|
36
|
-
|
|
36
|
+
newValue => {
|
|
37
37
|
selectedCompany.value = newValue ? String(newValue).substring(0, 2) : ''
|
|
38
38
|
},
|
|
39
|
-
{ immediate: true }
|
|
39
|
+
{ immediate: true }
|
|
40
40
|
)
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
const formatFieldsItem=(company:string,item:any)=>{
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
if(!company){
|
|
43
|
+
const formatFieldsItem = (company: string, item: any) => {
|
|
44
|
+
const transDefaultValue = item.usableRuleCriteria?.[0]?.transDefaultValue || ''
|
|
45
|
+
const isHidden = item?.unusableMode === 'hidden'
|
|
46
|
+
const values = transDefaultValue.split(',').map(v => v.trim())
|
|
47
|
+
if (!company) {
|
|
48
48
|
return {
|
|
49
49
|
...item,
|
|
50
|
-
hidden:isHidden,
|
|
50
|
+
hidden: isHidden,
|
|
51
51
|
}
|
|
52
|
-
}else{
|
|
53
|
-
|
|
52
|
+
} else {
|
|
54
53
|
return {
|
|
55
54
|
...item,
|
|
56
|
-
hidden: values.some(v => v.includes(company))?false:item.hidden,
|
|
55
|
+
hidden: values.some(v => v.includes(company)) ? false : item.hidden,
|
|
57
56
|
}
|
|
58
|
-
|
|
59
57
|
}
|
|
60
58
|
}
|
|
61
59
|
const filteredFields = computed(() => {
|
|
62
60
|
const company = selectedCompany.value
|
|
63
61
|
const allFields = fieldGroup()?.fields
|
|
64
|
-
if (!allFields)
|
|
65
|
-
return []
|
|
62
|
+
if (!allFields) return []
|
|
66
63
|
const formattedFields = allFields.filter((item: any) => {
|
|
67
64
|
// 如果没有选中公司,所有字段都显示
|
|
68
65
|
if (!company) {
|
|
69
66
|
return true
|
|
70
67
|
}
|
|
71
|
-
// 检查
|
|
72
|
-
if (!item.
|
|
68
|
+
// 检查 usableRuleCriteria 是否存在且有值
|
|
69
|
+
if (!item.usableRuleCriteria || item.usableRuleCriteria.length === 0) {
|
|
73
70
|
return true
|
|
74
71
|
}
|
|
75
72
|
// 获取 transDefaultValue 并检查是否包含选中的公司
|
|
76
|
-
const transDefaultValue = item.
|
|
73
|
+
const transDefaultValue = item.usableRuleCriteria?.[0]?.transDefaultValue
|
|
77
74
|
if (typeof transDefaultValue === 'string') {
|
|
78
75
|
const values = transDefaultValue.split(',').map(v => v.trim())
|
|
79
76
|
// console.log('transDefaultValue', company, 'values', values,values.includes(company))
|
|
80
|
-
return values.some(v => v.includes(company)
|
|
77
|
+
return values.some(v => v.includes(company))
|
|
81
78
|
}
|
|
82
79
|
return true
|
|
83
80
|
})
|
|
81
|
+
console.log('formattedFields', formattedFields)
|
|
84
82
|
return formattedFields.map((item: any) => formatFieldsItem(company, item))
|
|
85
83
|
})
|
|
86
|
-
watch(
|
|
87
|
-
|
|
88
|
-
|
|
84
|
+
watch(
|
|
85
|
+
filteredFields,
|
|
86
|
+
val => {
|
|
87
|
+
// console.log('filteredFields变化了', val, 'selectedCompany:', selectedCompany.value)
|
|
88
|
+
},
|
|
89
|
+
{ immediate: true }
|
|
90
|
+
)
|
|
89
91
|
|
|
90
92
|
return { filteredFields, selectedCompany }
|
|
91
93
|
}
|