<template>
|
<div>
|
<el-form-item
|
v-if="!this._.isEmpty(config.codeNo)"
|
:label="config.filedDescription"
|
:prop="config.name"
|
:rules="rules"
|
>
|
<el-select
|
v-model="svalue"
|
filterable
|
placeholder="请选择"
|
clearable
|
@input="change($event)"
|
:disabled="!config.writeAble"
|
>
|
<el-option
|
v-for="item in options"
|
:key="item.value"
|
:label="item.valueDesc"
|
:value="item.value"
|
:disabled="item.disabled"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item
|
v-if="this._.isEmpty(config.codeNo)"
|
:label="config.filedDescription"
|
:prop="config.name"
|
:rules="rules"
|
>
|
<el-input v-model="svalue" @input="change($event)" :readonly="!config.writeAble"></el-input>
|
</el-form-item>
|
</div>
|
</template>
|
|
<script>
|
import { mapState } from 'vuex'
|
import { projectQrycondition } from '@/api/area'
|
export default {
|
props: ['config', 'value','configKey'],
|
data() {
|
return {
|
options: [],
|
svalue: this.value,
|
writeAble: false,
|
rules: {
|
required: this.config.required,
|
message: '请输入' + this.config.filedDescription,
|
trigger: 'change'
|
}
|
}
|
},
|
created() {
|
this.selectLoad()
|
},
|
computed: {
|
...mapState({
|
detailsParams: state => state.risk.detailsParams
|
})
|
},
|
methods: {
|
selectLoad() {
|
if (this.config.codeNo !== null || this.configKey !=='') {
|
let params = { conditionName: this.config.codeNo|| this.configKey}
|
projectQrycondition(params).then(res => {
|
this.options = res.result
|
if (this.config.codeNo === 'PropertyNature') {
|
const { result } = res
|
const thirdIndex = result.findIndex(({ value }) => value === '03')
|
if (thirdIndex > -1) {
|
result[thirdIndex] = {
|
...result[thirdIndex],
|
disabled: true
|
}
|
}
|
const sixIndex = result.findIndex(({ value }) => value === '06')
|
if (sixIndex > -1) {
|
result[sixIndex] = {
|
...result[sixIndex],
|
disabled: true
|
}
|
}
|
const filterTure = result.filter(({ disabled }) => disabled)
|
const filterFalse = result.filter(({ disabled }) => !disabled)
|
this.options = [...filterFalse, ...filterTure]
|
}
|
if (this.config.codeNo === 'AccountMechanism') {
|
const { detailsParams } = this
|
if (detailsParams.projectType === '2') {
|
this.options = this.options.splice(4, 2)
|
console.log(this.options, detailsParams.projectType)
|
} else {
|
this.options.length = 4
|
console.log(this.options, detailsParams.projectType)
|
}
|
}
|
})
|
}
|
},
|
change: function(val) {
|
this.$emit('input', val)
|
}
|
}
|
}
|
</script>
|
|
<style scoped></style>
|