[ルックアップ更新]条件式の不具合対応

This commit is contained in:
xiaozhe.ma
2024-08-29 12:33:00 +09:00
parent 60359ed9bd
commit 5fc03c6fe0
9 changed files with 965 additions and 27 deletions

View File

@@ -1,6 +1,6 @@
<template>
<div class="" v-bind="$attrs">
<q-field v-model="color" :label="displayName" labelColor="primary" :clearable="isSelected" stack-label :bottom-slots="!isSelected" >
<q-field v-model="color" :label="displayName" labelColor="primary" :clearable="isSelected" stack-label :bottom-slots="!isSelected" :rules="rulesExp">
<template v-slot:control>
<q-chip text-color="black" color="white" v-if="isSelected">
<div class="row">
@@ -57,17 +57,34 @@ export default defineComponent({
type: String,
default: null
},
//例:[val=>!!val ||'入力してください']
rules: {
type: String,
default: undefined
},
required:{
type:Boolean,
default:false
},
requiredMessage: {
type: String,
default: ''
}
},
setup(props, { emit }) {
const color = ref(props.modelValue??"");
const isSelected = computed(()=>props.modelValue && props.modelValue!=="");
const customExp = props.rules === undefined ? [] : eval(props.rules);
const errmsg = props.requiredMessage?props.requiredMessage:`${props.displayName}が必須です。`;
const requiredExp = props.required?[((val:any)=>!!val || errmsg ),"anyColor"]:[];
const rulesExp=[...requiredExp,...customExp];
watchEffect(()=>{
emit('update:modelValue', color.value);
});
return {
color,
isSelected
isSelected,
rulesExp
};
}
});

View File

@@ -59,6 +59,10 @@ export default defineComponent({
type: String,
default: 'field'
},
connectProps:{
type:Object,
default:()=>({})
},
onlySourceSelect: {
type: Boolean,
default: false
@@ -87,7 +91,10 @@ export default defineComponent({
},
setup(props, { emit }) {
const source = props.context.find(element => element.props.name === 'sources')
let source = reactive(props.connectProps["source"]);
if(!source){
source = props.context.find(element => element.props.name === 'sources');
}
if (source) {
if (props.sourceType === 'field') {