|
@ -15,7 +15,6 @@ |
|
|
:readonly="fieldMethodsClass.getReadOnly(props, { value: modelValue, displayValue: displayValueComputed })" |
|
|
:readonly="fieldMethodsClass.getReadOnly(props, { value: modelValue, displayValue: displayValueComputed })" |
|
|
:disable="fieldMethodsClass.getDisable(props, { value: modelValue, displayValue: displayValueComputed })" |
|
|
:disable="fieldMethodsClass.getDisable(props, { value: modelValue, displayValue: displayValueComputed })" |
|
|
:clearable="false" |
|
|
:clearable="false" |
|
|
@update:model-value="fieldMethodsClass.updateValue" |
|
|
|
|
|
@focus=" |
|
|
@focus=" |
|
|
() => { |
|
|
() => { |
|
|
textSelectRef?.blur(); |
|
|
textSelectRef?.blur(); |
|
@ -85,7 +84,7 @@ |
|
|
</template> |
|
|
</template> |
|
|
|
|
|
|
|
|
<script setup lang="ts"> |
|
|
<script setup lang="ts"> |
|
|
import { ref, computed, useAttrs, onBeforeMount, toRaw } from 'vue'; |
|
|
import { ref, computed, useAttrs, toRaw, watch } from 'vue'; |
|
|
import { Tools, axios, Environment, Formater } from '@/platform'; |
|
|
import { Tools, axios, Environment, Formater } from '@/platform'; |
|
|
import { FormFieldProps } from '@/platform/components/form/FormField.ts'; |
|
|
import { FormFieldProps } from '@/platform/components/form/FormField.ts'; |
|
|
import { FormFieldMethods } from '../form/FormField'; |
|
|
import { FormFieldMethods } from '../form/FormField'; |
|
@ -258,9 +257,31 @@ const orgRowClick = (args) => { |
|
|
userGridRef.value.refresh(); |
|
|
userGridRef.value.refresh(); |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
watch( |
|
|
|
|
|
() => modelValue.value, |
|
|
|
|
|
(newVal, oldVal) => { |
|
|
|
|
|
if (newVal !== oldVal) { |
|
|
|
|
|
fieldMethodsClass.updateValue(newVal); |
|
|
|
|
|
} |
|
|
|
|
|
if (Tools.isEmpty(newVal)) { |
|
|
|
|
|
fieldMethodsClass.clearObjectValue(); |
|
|
|
|
|
} else if (newVal !== oldVal) { |
|
|
|
|
|
if (modelObjectValue.value.length > 0) { |
|
|
|
|
|
const tempValue = modelObjectValue.value.find((item) => item.value === newVal); |
|
|
|
|
|
if (!tempValue) { |
|
|
|
|
|
setObjectValueByValue(newVal); |
|
|
|
|
|
} |
|
|
|
|
|
} else { |
|
|
|
|
|
setObjectValueByValue(newVal); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
// 根据实际值设置显示值 |
|
|
// 根据实际值设置显示值 |
|
|
const setObjectValueByValue = async (value) => { |
|
|
const setObjectValueByValue = async (value) => { |
|
|
if ((Array.isArray(value) && value.length > 0) || (typeof value === 'string' && !Tools.isEmpty(value))) { |
|
|
if ((Array.isArray(value) && value.length > 0) || (typeof value === 'string' && !Tools.isEmpty(value))) { |
|
|
|
|
|
fieldMethodsClass.clearObjectValue(); |
|
|
const urlSearchParams = new URLSearchParams(); |
|
|
const urlSearchParams = new URLSearchParams(); |
|
|
urlSearchParams.append( |
|
|
urlSearchParams.append( |
|
|
'criteria', |
|
|
'criteria', |
|
@ -276,12 +297,10 @@ const setObjectValueByValue = async (value) => { |
|
|
if (resp && resp.data) { |
|
|
if (resp && resp.data) { |
|
|
const responseData = resp.data; |
|
|
const responseData = resp.data; |
|
|
if (Array.isArray(responseData) && responseData.length > 0) { |
|
|
if (Array.isArray(responseData) && responseData.length > 0) { |
|
|
fieldMethodsClass.clearObjectValue(); |
|
|
|
|
|
responseData.forEach((item) => { |
|
|
responseData.forEach((item) => { |
|
|
modelObjectValue.value.push({ value: item[valueUseColumnName], displayValue: getActualDisplayValue(item) }); |
|
|
modelObjectValue.value.push({ value: item[valueUseColumnName], displayValue: getActualDisplayValue(item) }); |
|
|
}); |
|
|
}); |
|
|
} else if (typeof responseData === 'object' && responseData.content?.length > 0) { |
|
|
} else if (typeof responseData === 'object' && responseData.content?.length > 0) { |
|
|
fieldMethodsClass.clearObjectValue(); |
|
|
|
|
|
responseData.content.forEach((item) => { |
|
|
responseData.content.forEach((item) => { |
|
|
modelObjectValue.value.push({ value: item[valueUseColumnName], displayValue: getActualDisplayValue(item) }); |
|
|
modelObjectValue.value.push({ value: item[valueUseColumnName], displayValue: getActualDisplayValue(item) }); |
|
|
}); |
|
|
}); |
|
@ -290,10 +309,6 @@ const setObjectValueByValue = async (value) => { |
|
|
} |
|
|
} |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
onBeforeMount(() => { |
|
|
|
|
|
setObjectValueByValue(modelValue.value); |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
defineExpose({ |
|
|
defineExpose({ |
|
|
validate: fieldMethodsClass.validate, |
|
|
validate: fieldMethodsClass.validate, |
|
|
setValue: fieldMethodsClass.setValue, |
|
|
setValue: fieldMethodsClass.setValue, |
|
|