规则改为块类型 加入数组本身选项

This commit is contained in:
bruce\fibo-zhu
2022-08-09 11:02:17 +08:00
parent ebfd375aec
commit 260a426cfa
11 changed files with 982 additions and 778 deletions

View File

@@ -0,0 +1,71 @@
<template>
<el-cascader :value="cascaderValue" filterable :props="{ expandTrigger: 'hover' }" v-bind="$attrs"
:options="options" @change="change" :key="key" @visible-change="changeKey"></el-cascader>
</template>
<script>
export default {
props: {
value: {
type: String | Array
},
options: {
type: Array,
default: () => []
},
isString: {
type: Boolean,
default: false
}
},
data() {
return {
key: 1
}
},
methods: {
change(e) {
let value
if (this.isString) {
value = e.join('.')
} else {
value = e
}
// console.log(value)
this.$emit('input', value)
this.$emit('change', value)
},
changeKey(is) {
if (is) {
return
}
setTimeout(() => {
this.key++
}, 200)
},
},
computed: {
cascaderValue() {
if (this.isString) {
return this.value ? this.value.split('.') : []
} else {
return this.value
}
}
},
watch: {
options() {
this.key++
}
}
}
</script>

View File

@@ -3,17 +3,19 @@
<div style="display: flex;align-items: center;">
<el-select v-model="data" :size="size" :filterable="type==2?'filterable':false" placeholder="请选择"
ref="select" style="width: 100px;margin-left: 10px;" @change="change" @blur="$emit('blur')">
<el-option label="大于" value=">" v-show="[2,3,5,6].indexOf(valueType)==-1"></el-option>
<el-option label="大于等于" value=">=" v-show="[2,3,5,6].indexOf(valueType)==-1"></el-option>
<el-option label="等于" value="==" v-show="[5].indexOf(valueType)==-1"></el-option>
<el-option label="小于" value="<" v-show="[2,3,5,6].indexOf(valueType)==-1"></el-option>
<el-option label="小于等于" value="<=" v-show="[2,3,5,6].indexOf(valueType)==-1"></el-option>
<el-option label="不等于" value="!=" v-show="[5].indexOf(valueType)==-1"></el-option>
<el-option label="大于" value=">" v-show="[2,3,5,6,7].indexOf(valueType)==-1"></el-option>
<el-option label="大于等于" value=">=" v-show="[2,3,5,6,7].indexOf(valueType)==-1"></el-option>
<el-option label="等于" value="==" v-show="[5,7].indexOf(valueType)==-1"></el-option>
<el-option label="小于" value="<" v-show="[2,3,5,6,7].indexOf(valueType)==-1"></el-option>
<el-option label="小于等于" value="<=" v-show="[2,3,5,6,7].indexOf(valueType)==-1"></el-option>
<el-option label="不等于" value="!=" v-show="[5,7].indexOf(valueType)==-1"></el-option>
<el-option label="包含" value="contains" v-show="[2,5,6].indexOf(valueType)!=-1"></el-option>
<el-option label="不包含" value="not contains" v-show="[2,5,6].indexOf(valueType)!=-1"></el-option>
<el-option label="为空" value="is empty" v-show="[6].indexOf(valueType)!=-1"></el-option>
<el-option label="不为空" value="not empty" v-show="[6].indexOf(valueType)!=-1"></el-option>
<el-option label="正则匹配" value="regex" v-show="[2].indexOf(valueType)!=-1"></el-option>
<el-option label="匹配" value="array contains" v-show="[7].indexOf(valueType)!=-1"></el-option>
<el-option label="不匹配" value="array not contains" v-show="[7].indexOf(valueType)!=-1"></el-option>
</el-select>
<el-input :value="value2" @input="$emit('update:value2',$event)" maxlength="30" :size="size"