jobsys-explore 4.0.2 → 4.0.3
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/.changeset/rich-points-bake.md +5 -0
- package/CHANGELOG.md +8 -0
- package/components/form/ExAddress.jsx +9 -2
- package/components/form/ExCascader.jsx +18 -3
- package/components/form/FormItem.jsx +32 -10
- package/dist/jobsys-explore.cjs +6 -6
- package/dist/jobsys-explore.cjs.map +1 -1
- package/dist/jobsys-explore.js +700 -655
- package/dist/jobsys-explore.js.map +1 -1
- package/package.json +1 -1
- package/playground/TestForm.vue +3 -0
- package/vite.config.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { computed, defineComponent, inject, ref, watch } from "vue"
|
|
1
|
+
import { computed, defineComponent, inject, ref, watch, nextTick } from "vue"
|
|
2
2
|
import { Cascader } from "vant"
|
|
3
3
|
import localData from "./addressData.json"
|
|
4
4
|
import PickerWrapper, { pickerProps, pickerSlots } from "./PickerWrapper.jsx"
|
|
@@ -38,8 +38,12 @@ export default defineComponent({
|
|
|
38
38
|
* 空值或all: 所有, last:最后
|
|
39
39
|
*/
|
|
40
40
|
displayTextType: { type: String, default: "" },
|
|
41
|
+
/**
|
|
42
|
+
* 显示值 为了更新cn值
|
|
43
|
+
*/
|
|
44
|
+
displayText: { type: [String, Number, Array], default: () => [] },
|
|
41
45
|
},
|
|
42
|
-
emits: ["update:modelValue"],
|
|
46
|
+
emits: ["update:modelValue", "update:displayText"],
|
|
43
47
|
setup(props, { emit, slots, expose }) {
|
|
44
48
|
const addressProvider = inject(EX_ADDRESS, () => ({}))
|
|
45
49
|
const defaultAddressUrl = addressProvider.addressUrl || ""
|
|
@@ -101,6 +105,9 @@ export default defineComponent({
|
|
|
101
105
|
"update:modelValue",
|
|
102
106
|
selectedOptions.map((item) => item[valueKey]),
|
|
103
107
|
)
|
|
108
|
+
nextTick(() => {
|
|
109
|
+
emit("update:displayText", displayText.value)
|
|
110
|
+
})
|
|
104
111
|
}
|
|
105
112
|
|
|
106
113
|
expose({ displayText })
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { computed, defineComponent, ref, watch } from "vue"
|
|
1
|
+
import { computed, defineComponent, ref, watch, nextTick } from "vue"
|
|
2
2
|
import PickerWrapper, { pickerProps, pickerSlots } from "./PickerWrapper.jsx"
|
|
3
3
|
import { Button, Cascader, Search } from "vant"
|
|
4
4
|
import { defaultFieldProps, defaultOptionsProps, useOptionTrait } from "../utils"
|
|
@@ -25,8 +25,18 @@ export default defineComponent({
|
|
|
25
25
|
* 是否显示清除按钮
|
|
26
26
|
*/
|
|
27
27
|
clearable: { type: Boolean, default: false },
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* 显示值的类型
|
|
31
|
+
* 空值或all: 所有, last:最后
|
|
32
|
+
*/
|
|
33
|
+
displayTextType: { type: String, default: "" },
|
|
34
|
+
/**
|
|
35
|
+
* 显示值 为了更新cn值
|
|
36
|
+
*/
|
|
37
|
+
displayText: { type: [String, Number, Array], default: () => [] },
|
|
28
38
|
},
|
|
29
|
-
emits: ["update:modelValue", "change"],
|
|
39
|
+
emits: ["update:modelValue", "update:displayText", "change"],
|
|
30
40
|
setup(props, { emit, slots, expose }) {
|
|
31
41
|
const defaultValue = props.modelValue?.[props.modelValue.length - 1] || ""
|
|
32
42
|
|
|
@@ -94,19 +104,24 @@ export default defineComponent({
|
|
|
94
104
|
if (props.modelValue.length === 0) {
|
|
95
105
|
return ""
|
|
96
106
|
}
|
|
97
|
-
|
|
107
|
+
const optionsTexts = useFindTextsFromPath(options.value, props.modelValue)
|
|
108
|
+
return props.displayTextType === "last" ? optionsTexts[optionsTexts.length - 1] : optionsTexts.join("/")
|
|
98
109
|
})
|
|
99
110
|
|
|
100
111
|
const onFinish = ({ selectedOptions }) => {
|
|
101
112
|
const value = selectedOptions.map((item) => item.value)
|
|
102
113
|
emit("change", value)
|
|
103
114
|
emit("update:modelValue", value)
|
|
115
|
+
nextTick(() => {
|
|
116
|
+
emit("update:displayText", displayText.value)
|
|
117
|
+
})
|
|
104
118
|
pickerRef.value.close()
|
|
105
119
|
}
|
|
106
120
|
|
|
107
121
|
const onClear = () => {
|
|
108
122
|
emit("change", [])
|
|
109
123
|
emit("update:modelValue", [])
|
|
124
|
+
emit("update:displayText", "")
|
|
110
125
|
pickerRef.value.close()
|
|
111
126
|
}
|
|
112
127
|
|
|
@@ -148,18 +148,40 @@ const render = (item, submitForm, { props, slots }) => {
|
|
|
148
148
|
)
|
|
149
149
|
break
|
|
150
150
|
case "address":
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
151
|
+
if (item.key_cn) {
|
|
152
|
+
if (!submitForm[item.key_cn]) {
|
|
153
|
+
submitForm[item.key_cn] = ""
|
|
154
|
+
}
|
|
155
|
+
renderItem = (
|
|
156
|
+
<ExAddress v-model={submitForm[item.key]} v-model:displayText={submitForm[item.key_cn]} {...fieldProps}>
|
|
157
|
+
{componentSlots}
|
|
158
|
+
</ExAddress>
|
|
159
|
+
)
|
|
160
|
+
} else {
|
|
161
|
+
renderItem = (
|
|
162
|
+
<ExAddress v-model={submitForm[item.key]} {...fieldProps}>
|
|
163
|
+
{componentSlots}
|
|
164
|
+
</ExAddress>
|
|
165
|
+
)
|
|
166
|
+
}
|
|
156
167
|
break
|
|
157
168
|
case "cascade":
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
169
|
+
if (item.key_cn) {
|
|
170
|
+
if (!submitForm[item.key_cn]) {
|
|
171
|
+
submitForm[item.key_cn] = ""
|
|
172
|
+
}
|
|
173
|
+
renderItem = (
|
|
174
|
+
<ExCascader v-model={submitForm[item.key]} v-model:displayText={submitForm[item.key_cn]} {...componentProps} {...fieldProps}>
|
|
175
|
+
{componentSlots}
|
|
176
|
+
</ExCascader>
|
|
177
|
+
)
|
|
178
|
+
} else {
|
|
179
|
+
renderItem = (
|
|
180
|
+
<ExCascader v-model={submitForm[item.key]} {...componentProps} {...fieldProps}>
|
|
181
|
+
{componentSlots}
|
|
182
|
+
</ExCascader>
|
|
183
|
+
)
|
|
184
|
+
}
|
|
163
185
|
break
|
|
164
186
|
case "number":
|
|
165
187
|
renderItem = (
|