Files
JeecgBoot/ant-design-vue-jeecg/src/components/jeecgbiz/JSelectBizComponent/JSelectBizQueryItem.js

48 lines
1.4 KiB
Java

export default {
name: 'JSelectBizQueryItem',
props: {
queryParam: Object,
queryConfig: Array,
},
data() {
return {}
},
methods: {
renderQueryItem() {
return this.queryConfig.map(queryItem => {
const {key, label, placeholder, dictCode, props, customRender} = queryItem
const options = {
props: {},
on: {
pressEnter: () => this.$emit('pressEnter'),
}
}
if (props != null) {
Object.assign(options.props, props)
}
if (placeholder === undefined) {
if (dictCode) {
options.props['placeholder'] = `请选择${label}`
} else {
options.props['placeholder'] = `请输入${label}`
}
} else {
options.props['placeholder'] = placeholder
}
let input
if (typeof customRender === 'function') {
input = customRender.call(this, {key, options, queryParam: this.queryParam})
} else if (dictCode) {
input = <j-dict-select-tag {...options} vModel={this.queryParam[key]} dictCode={dictCode} style="width:180px;"/>
} else {
input = <a-input {...options} vModel={this.queryParam[key]}/>
}
return <a-form-item key={key} label={label}>{input}</a-form-item>
})
},
},
render() {
return <span>{this.renderQueryItem()}</span>
},
}