Files
foton-laws-system-front/src/pages/skillReq/SkillReqAdd/searchForm.vue
T
2021-05-26 14:15:41 +08:00

691 lines
23 KiB
Vue

<!-- 标准法规库 - 动态&资料 -->
<template>
<div class="searchForm">
<el-form :modal="searchOption" :inline="true" ref="numberValidateForm" class="label-input-form">
<el-form-item label="编号" class="serch-form-item">
<el-input v-model="searchOption.snum" placeholder="根据编号查找"></el-input>
</el-form-item>
<el-form-item label="区域" class="serch-form-item">
<search-select
@on-change="regionChange"
v-model="searchOption.regionList"
placeholder="根据国家查找"
:options="regionList"
/>
</el-form-item>
<el-form-item label="国家" class="serch-form-item">
<search-select
v-model="searchOption.countryList"
placeholder="根据国家查找"
:options="countryList"
/>
</el-form-item>
<el-form-item label="来源类型" class="serch-form-item">
<el-select
v-model="searchOption.sourceTypeList"
collapse-tags
multiple
placeholder="请选择"
>
<el-option
v-for="item in sourceTypeList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="具体来源" class="serch-form-item">
<el-input v-model="searchOption.specificSource" placeholder="根据编号查找"></el-input>
</el-form-item>
<el-form-item label="车辆类型" class="serch-form-item">
<el-select v-model="searchOption.carTypeList" collapse-tags multiple placeholder="请选择">
<el-option
v-for="item in carTypeList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="车辆品类" class="serch-form-item">
<el-select
v-model="searchOption.carCategoryList"
multiple
collapse-tags
placeholder="请选择"
>
<el-option
v-for="item in carCategoryList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="领域" class="serch-form-item">
<el-select
@change="areaChange"
v-model="searchOption.areaList"
multiple
collapse-tags
placeholder="请选择"
>
<el-option
v-for="item in areaList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="子领域" class="serch-form-item">
<el-select
v-model="searchOption.subAreaList"
multiple
filterable
placeholder="请选择"
collapse-tags
>
<el-option
v-for="item in subAreaList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="科目" class="serch-form-item">
<el-input v-model="searchOption.allSubjects" placeholder="根据区域查找"></el-input>
</el-form-item>
<el-form-item label="系统" class="serch-form-item">
<el-select
v-model="searchOption.relateSystemList"
multiple
filterable
placeholder="请选择"
collapse-tags
>
<el-option
v-for="item in relateSystemList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="总成" class="serch-form-item">
<el-select
v-model="searchOption.relateAssemList"
multiple
collapse-tags
placeholder="请选择"
>
<el-option
v-for="item in relateAssemList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="部件" class="serch-form-item">
<el-select
v-model="searchOption.relatePartsList"
multiple
collapse-tags
placeholder="请选择"
>
<el-option
v-for="item in relatePartsList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="部门" class="serch-form-item">
<el-select
v-model="searchOption.departmentList"
multiple
collapse-tags
placeholder="请选择"
>
<el-option
v-for="item in departmentList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="创建日期" class="serch-form-item">
<el-date-picker
v-model="searchOption.createDate"
type="daterange"
size="small"
range-separator="-"
value-format="yyyy-MM-dd"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item label="生效日期" class="serch-form-item">
<el-date-picker
v-model="searchOption.startDate"
type="daterange"
size="small"
range-separator="-"
value-format="yyyy-MM-dd"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item label="失效日期" class="serch-form-item">
<el-date-picker
v-model="searchOption.closeDate"
type="daterange"
size="small"
range-separator="-"
value-format="yyyy/MM/dd"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item label="显示结果" class="serch-form-item">
<el-select v-model="searchOption.status" placeholder="请选择">
<el-option
v-for="item in statusList"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item class="serch-form-item">
<div>
<el-button
icon="el-icon-search"
type="primary"
class="searchAngNewBtn"
@click="searchAll"
></el-button>
<el-button
type="primary"
@click="clearAllSearch('numberValidateForm')"
class="searchAngNewBtn"
>清空查询</el-button>
</div>
</el-form-item>
<!-- <el-row>-->
<!-- <el-col :span="5">-->
<!-- <el-form-item label="编号" class="serch-form-item">-->
<!-- <el-input v-model="searchOption.snum" placeholder="根据编号查找"></el-input>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="5">-->
<!-- <el-form-item label="区域" class="serch-form-item">-->
<!-- <search-select-->
<!-- @on-change="regionChange"-->
<!-- v-model="searchOption.regionList"-->
<!-- placeholder="根据国家查找"-->
<!-- :options="regionList"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="5">-->
<!-- <el-form-item label="国家" class="serch-form-item">-->
<!-- <search-select-->
<!-- v-model="searchOption.countryList"-->
<!-- placeholder="根据国家查找"-->
<!-- :options="countryList"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- </el-row>-->
<!-- <el-row>-->
<!-- <el-col :span="5">-->
<!-- <el-form-item label="来源类型" class="serch-form-item">-->
<!-- <el-select-->
<!-- v-model="searchOption.sourceTypeList"-->
<!-- collapse-tags-->
<!-- multiple-->
<!-- placeholder="请选择"-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="item in sourceTypeList"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.value"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="5">-->
<!-- <el-form-item label="具体来源" class="serch-form-item">-->
<!-- <el-input v-model="searchOption.specificSource" placeholder="根据编号查找"></el-input>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="5">-->
<!-- <el-form-item label="车辆类型" class="serch-form-item">-->
<!-- <el-select v-model="searchOption.carTypeList" collapse-tags multiple placeholder="请选择">-->
<!-- <el-option-->
<!-- v-for="item in carTypeList"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.value"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- </el-row>-->
<!-- <el-row>-->
<!-- <el-col :span="5">-->
<!-- <el-form-item label="车辆品类" class="serch-form-item">-->
<!-- <el-select-->
<!-- v-model="searchOption.carCategoryList"-->
<!-- multiple-->
<!-- collapse-tags-->
<!-- placeholder="请选择"-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="item in carCategoryList"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.value"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="5">-->
<!-- <el-form-item label="领域" class="serch-form-item">-->
<!-- <el-select-->
<!-- @change="areaChange"-->
<!-- v-model="searchOption.areaList"-->
<!-- multiple-->
<!-- collapse-tags-->
<!-- placeholder="请选择"-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="item in areaList"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.value"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="5">-->
<!-- <el-form-item label="子领域" class="serch-form-item">-->
<!-- <el-select-->
<!-- v-model="searchOption.subAreaList"-->
<!-- multiple-->
<!-- filterable-->
<!-- placeholder="请选择"-->
<!-- collapse-tags-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="item in subAreaList"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.value"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- </el-row>-->
<!-- <el-row>-->
<!-- <el-col :span="5">-->
<!-- <el-form-item label="科目" class="serch-form-item">-->
<!-- <el-input v-model="searchOption.allSubjects" placeholder="根据区域查找"></el-input>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="5">-->
<!-- <el-form-item label="系统" class="serch-form-item">-->
<!-- <el-select-->
<!-- v-model="searchOption.relateSystemList"-->
<!-- multiple-->
<!-- filterable-->
<!-- placeholder="请选择"-->
<!-- collapse-tags-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="item in relateSystemList"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.value"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="5">-->
<!-- <el-form-item label="总成" class="serch-form-item">-->
<!-- <el-select-->
<!-- v-model="searchOption.relateAssemList"-->
<!-- multiple-->
<!-- collapse-tags-->
<!-- placeholder="请选择"-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="item in relateAssemList"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.value"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- </el-row>-->
<!-- <el-row>-->
<!-- <el-col :span="5">-->
<!-- <el-form-item label="部件" class="serch-form-item">-->
<!-- <el-select-->
<!-- v-model="searchOption.relatePartsList"-->
<!-- multiple-->
<!-- collapse-tags-->
<!-- placeholder="请选择"-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="item in relatePartsList"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.value"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="5">-->
<!-- <el-form-item label="部门" class="serch-form-item">-->
<!-- <el-select-->
<!-- v-model="searchOption.departmentList"-->
<!-- multiple-->
<!-- collapse-tags-->
<!-- placeholder="请选择"-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="item in departmentList"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.value"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="5">-->
<!-- <el-form-item label="创建日期" class="serch-form-item">-->
<!-- <el-date-picker-->
<!-- v-model="searchOption.createDate"-->
<!-- type="daterange"-->
<!-- size="small"-->
<!-- range-separator="-"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- start-placeholder="开始日期"-->
<!-- end-placeholder="结束日期"-->
<!-- ></el-date-picker>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- </el-row>-->
<!-- <el-row type="flex">-->
<!-- <el-col :span="5">-->
<!-- <el-form-item label="生效日期" class="serch-form-item">-->
<!-- <el-date-picker-->
<!-- v-model="searchOption.startDate"-->
<!-- type="daterange"-->
<!-- size="small"-->
<!-- range-separator="-"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- start-placeholder="开始日期"-->
<!-- end-placeholder="结束日期"-->
<!-- ></el-date-picker>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="5">-->
<!-- <el-form-item label="失效日期" class="serch-form-item">-->
<!-- <el-date-picker-->
<!-- v-model="searchOption.closeDate"-->
<!-- type="daterange"-->
<!-- size="small"-->
<!-- range-separator="-"-->
<!-- value-format="yyyy/MM/dd"-->
<!-- start-placeholder="开始日期"-->
<!-- end-placeholder="结束日期"-->
<!-- ></el-date-picker>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="5">-->
<!-- <el-form-item label="显示结果" class="serch-form-item">-->
<!-- <el-select v-model="searchOption.status" placeholder="请选择">-->
<!-- <el-option-->
<!-- v-for="item in statusList"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.value"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- </el-row>-->
<!-- <el-row>-->
<!-- <el-col :span="6">-->
<!-- <div>-->
<!-- <el-button-->
<!-- icon="el-icon-search"-->
<!-- type="primary"-->
<!-- class="searchAngNewBtn"-->
<!-- @click="searchAll"-->
<!-- ></el-button>-->
<!-- <el-button-->
<!-- type="primary"-->
<!-- @click="clearAllSearch('numberValidateForm')"-->
<!-- class="searchAngNewBtn"-->
<!-- >清空查询</el-button>-->
<!-- </div>-->
<!-- </el-col>-->
<!-- </el-row>-->
</el-form>
</div>
</template>
<script>
export default {
name: 'searchForm',
data () {
return {
searchOption: {
snum: '',
regionList: '',
countryList: '',
sourceTypeList: '',
specificSource: '',
carTypeList: '',
carCategoryList: '',
areaList: '',
subAreaList: '',
allSubjects: '',
relateSystemList: '',
relateAssemList: '',
relatePartsList: '',
departmentList: '',
createDate: '',
startDate: '',
closeDate: '',
status: ''
},
regionList: [],
countryList: [],
sourceTypeList: [{label: '强制法规', value: 'QZFG'}, {label: '机构测评', value: 'JGPC'}, {label: '市场要求', value: 'SCXQ'}, {label: '顾客需求', value: 'GKXQ'}, {label: '竞争策略', value: 'JZCL'}, {label: '部件专属要求', value: 'ZSXQ'}, {label: '其他', value: 'other'}],
carTypeList: [{label: 'M1', value: 'M1'}, {label: 'M2', value: 'M2'}, {label: 'N1', value: 'N1'}, {label: 'N2', value: 'N2'}],
carCategoryList: [{label: '三厢轿车', value: 'SXJC'}, {label: '两厢轿车', value: 'LXJC'}, {label: '承载式SUV', value: 'CZSUV'}, {label: '非承载式SUV', value: 'FCZSUV'}, {label: '皮卡', value: 'PK'}, {label: '轻客', value: 'QK'}, {label: '轻货', value: 'QH'}],
areaList: [],
subAreaList: [],
relateSystemList: [],
relateAssemList: [],
relatePartsList: [],
departmentList: [],
statusList: [{label: '全部', value: ''}, {label: '草稿', value: '1'}, {label: '生效', value: '2'}, {label: '作废', value: '3'}]
}
},
created () {
this.getOptionData()
},
methods: {
searchAll () {
console.log('this.searchOption: ', this.searchOption)
let searchData = {}
Object.keys(this.searchOption).forEach(key => {
if (!(this.searchOption[key] === '' || this.searchOption[key] === [])) {
if (key === 'regionList') {
searchData[key] = [this.searchOption[key]]
return
}
if (key === 'countryList') {
searchData[key] = [this.searchOption[key]]
return
}
searchData[key] = this.searchOption[key]
}
})
console.log('searchData: ', searchData)
searchData['effectiveDate1'] = this.searchOption.startDate[0]
searchData['effectiveDate2'] = this.searchOption.startDate[1]
searchData['expriationDate1'] = this.searchOption.closeDate[0]
searchData['expriationDate2'] = this.searchOption.closeDate[1]
searchData['creationTime1'] = this.searchOption.createDate[0]
searchData['creationTime2'] = this.searchOption.createDate[1]
this.$emit('searchData', searchData)
},
clearAllSearch (formName) {
Object.keys(this.searchOption).forEach(key => {
this.searchOption[key] = ''
})
},
/*
*@description: 获取选项数据
*@modifyContent:
*@author: 刘志超
*@date: 2020-09-27 10:47:29
*/
getOptionData () {
this.$http.get('sys/org/getTree', {}, {_this: this}, res => {
console.log('res: ', res)
this.departmentList = res.data.map(item => {
return {
label: item.orgName,
value: item.id
}
})
})
this.$http.get('sys/dictype/getDicTypeListCode', {}, {_this: this}, res => {
console.log('res: ', res)
Object.keys(res.data).forEach(item => {
switch (item) {
case 'REGION' :
this.regionList = res.data[item]
break
case 'COUNTRY' :
this.countryList = res.data[item]
break
case 'AREA' :
this.areaList = res.data[item]
break
case 'SUBAREA' :
this.subAreaList = res.data[item]
break
case 'RELATESYSTEM' :
this.relateSystemList = res.data[item]
break
case 'RELATEASSEM' :
this.relateAssemList = res.data[item]
break
case 'RELATEPARTS' :
this.relatePartsList = res.data[item]
break
}
})
})
},
/*
*@description: 区域改变
*@modifyContent:
*@author: 刘志超
*@date: 2020-09-27 11:32:22
*/
regionChange (value) {
this.$http.get('sys/dictype/getDicTypeByParentCodes', {
dicTypeCode: value.toString()
}, {
_this: this
}, res => {
if (res.ok) {
this.countryList = res.data
}
})
},
areaChange (value) {
this.$http.get('sys/dictype/getDicTypeByParentCodes', {
dicTypeCode: value.toString()
}, {
_this: this
}, res => {
if (res.ok) {
this.subAreaList = res.data
}
})
}
}
}
</script>
<style lang="less" scoped>
.searchForm {
padding: 0 10px;
.needOpen {
max-height: 75px;
overflow: hidden;
}
.searchRow {
font-size: 15px;
line-height: 35px;
display: flex;
position: relative;
margin-bottom: 5px;
.searchLabel {
flex-shrink: 0;
}
.searchData {
display: flex;
flex-wrap: wrap;
}
.openBtn {
flex-shrink: 0;
align-self: flex-end;
}
span {
margin-right: 15px;
padding: 0px 7px;
transition: all 0.3s ease;
user-select: none;
margin-bottom: 5px;
}
}
.searchBtn {
margin-top: 20px;
}
.active {
background: #3391ce;
color: #fff;
}
// .serch-form-item .el-form-item__content .el-input__inner{
// width: 200px;
// }
}
</style>