devicesmgt/sgzb-ui/src/views/scrapManage/component/formModel.vue

134 lines
4.0 KiB
Vue

<template>
<!-- 查询表单 -->
<div>
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
label-width="100px"
>
<el-form-item
v-for="(item, v) in formLabel"
:key="v"
:label="item.f_label"
:prop="item.f_model"
>
<el-input
v-if="item.f_type === 'ipt'"
v-model="queryParams[item.f_model]"
:placeholder="`请输入${item.f_label}`"
clearable
style="width: 240px"
/>
<el-select
v-if="item.f_type === 'sel'"
v-model="queryParams[item.f_model]"
clearable
filterable
style="width: 240px"
:placeholder="`请选择${item.f_label}`"
>
<el-option
v-for="(sel, v) in item.f_selList"
:key="v"
:label="sel.label"
:value="sel.value"
/>
</el-select>
<el-cascader
v-if="item.f_type === 'selCas'"
:options="item.f_selList"
:props="item.optionProps"
:show-all-levels="false"
clearable
style="width: 240px"
/>
<el-date-picker
v-if="item.f_type === 'date'"
v-model="queryParams[item.f_model]"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
/>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>查询</el-button
>
<el-button
type="warning"
icon="el-icon-refresh"
size="mini"
@click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8" v-if="exportShow">
<slot></slot>
<!-- <el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-download"
size="mini"
>导出数据</el-button
>
</el-col> -->
</el-row>
</div>
</template>
<script>
export default {
props: {
formLabel: {
type: Array,
default: () => {
return []
},
},
/* 导出等按钮展示 */
exportShow: {
type: Boolean,
default: () => {
return false
},
},
},
data() {
return {
queryParams: {},
}
},
created() {
this.formLabel.map((e) => {
this.$set(this.queryParams, e.f_model, '')
})
},
methods: {
/* 查询按钮 */
handleQuery() {
console.log('查询')
this.$emit('queryList', this.queryParams)
},
/* 重置按钮 */
resetQuery() {
this.$refs.queryForm.resetFields()
this.$emit('queryList', this.queryParams, 'reset')
},
},
}
</script>
<style></style>