fix(搜索中心): 带入首页填写的搜索条件
This commit is contained in:
@@ -1,55 +1,65 @@
|
||||
<template>
|
||||
<div class="standard-search">
|
||||
<personal-center></personal-center>
|
||||
<personal-center />
|
||||
<div class="search" style="margin: 20px 20px 0;">
|
||||
|
||||
<div class="search-content"
|
||||
@mouseenter="setShowAllSearch(true)"
|
||||
@mouseleave="setShowAllSearch(false)">
|
||||
<div
|
||||
class="search-content"
|
||||
@mouseenter="setShowAllSearch(true)"
|
||||
@mouseleave="setShowAllSearch(false)"
|
||||
>
|
||||
<div class="search-item">
|
||||
<div class="condition-item-title">检索方式</div>
|
||||
<div class="search-item-content">
|
||||
<div
|
||||
:class="searchForm.selectType === 'allTextSearch' ? 'selected' : ''"
|
||||
@click="searchFormChange('selectType', 'allTextSearch')"
|
||||
>全文检索</div>
|
||||
:class="searchForm.selectType === 'allTextSearch' ? 'selected' : ''"
|
||||
@click="searchFormChange('selectType', 'allTextSearch')"
|
||||
>
|
||||
全文检索
|
||||
</div>
|
||||
<div
|
||||
:class="searchForm.selectType === 'titleSearch' ? 'selected' : ''"
|
||||
@click="searchFormChange('selectType', 'titleSearch')"
|
||||
>标题检索</div>
|
||||
:class="searchForm.selectType === 'titleSearch' ? 'selected' : ''"
|
||||
@click="searchFormChange('selectType', 'titleSearch')"
|
||||
>
|
||||
标题检索
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<i class="icon el-icon-arrow-down" :class="{ 'icon-arrow': showAllSearch}"></i>
|
||||
<div style="height: 5px;width: 100%;background-color: transparent;position: absolute;bottom: -5px;left: 0"></div>
|
||||
<i class="icon el-icon-arrow-down" :class="{ 'icon-arrow': showAllSearch}" />
|
||||
<div style="height: 5px;width: 100%;background-color: transparent;position: absolute;bottom: -5px;left: 0" />
|
||||
|
||||
<transition name="fade">
|
||||
<el-card class="box-card" v-show="showAllSearch">
|
||||
<el-card v-show="showAllSearch" class="box-card">
|
||||
<template v-for="(item,key) in searchOptions">
|
||||
|
||||
<!-- 标准类别 -->
|
||||
<template v-if="key === 'standSort'">
|
||||
<!-- 资源类型非全部时 根据标准类别显示对应标准类别 -->
|
||||
<!-- 资源类型全部时隐藏标准类别 -->
|
||||
<div v-if="searchForm.standType !== ''" class="search-item card-search-item" :key="key">
|
||||
<div v-if="searchForm.standType !== ''" :key="key" class="search-item card-search-item">
|
||||
<div class="condition-item-title">{{ item.title }}</div>
|
||||
<div class="search-item-content">
|
||||
<div v-for="(option, index) in item.options.filter(i => i.type === searchForm.standType || i.type === 'all')"
|
||||
:key="option.value"
|
||||
:class="searchForm[key].split(',').indexOf(option.value) !== -1 ? 'selected' : ''"
|
||||
@click="searchFormChange(key, option.value)"
|
||||
>{{ option.label }}</div>
|
||||
<div
|
||||
v-for="option in item.options.filter(i => i.type === searchForm.standType || i.type === 'all')"
|
||||
:key="option.value"
|
||||
:class="searchForm[key].split(',').indexOf(option.value) !== -1 ? 'selected' : ''"
|
||||
@click="searchFormChange(key, option.value)"
|
||||
>
|
||||
{{ option.label }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<div v-else class="search-item card-search-item" :key="key">
|
||||
<div v-else :key="key" class="search-item card-search-item">
|
||||
<div class="condition-item-title">{{ item.title }}</div>
|
||||
<div class="search-item-content">
|
||||
<div v-for="(option, index) in item.options"
|
||||
:key="option.value"
|
||||
:class="searchForm[key].split(',').indexOf(option.value) !== -1 ? 'selected' : ''"
|
||||
@click="searchFormChange(key, option.value)"
|
||||
>{{ option.label }}</div>
|
||||
<div
|
||||
v-for="option in item.options"
|
||||
:key="option.value"
|
||||
:class="searchForm[key].split(',').indexOf(option.value) !== -1 ? 'selected' : ''"
|
||||
@click="searchFormChange(key, option.value)"
|
||||
>
|
||||
{{ option.label }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@@ -58,8 +68,8 @@
|
||||
</div>
|
||||
|
||||
<div class="search-input">
|
||||
<el-input placeholder="请输入查询条件" v-model="searchForm.selectValue" @keyup.enter.native="onSearch" clearable>
|
||||
<el-button slot="append" icon="el-icon-search" @click="onSearch"></el-button>
|
||||
<el-input v-model="searchForm.selectValue" placeholder="请输入查询条件" clearable @keyup.enter.native="onSearch">
|
||||
<el-button slot="append" icon="el-icon-search" @click="onSearch" />
|
||||
</el-input>
|
||||
</div>
|
||||
|
||||
@@ -71,49 +81,50 @@
|
||||
<div>首页</div>
|
||||
</router-link>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="main">
|
||||
<loading :loading="loading">数据获取中</loading>
|
||||
<has-no-data tips="暂无查询结果" p-class="no-data-class" v-if="list.length === 0" />
|
||||
<has-no-data v-if="list.length === 0" tips="暂无查询结果" p-class="no-data-class" />
|
||||
<template v-else>
|
||||
<div style="height: calc(100% - 56px + 20px);overflow-y: auto;">
|
||||
<div v-for="(item,key) in list" :key="key" class="main-box">
|
||||
<div class="main-box-title">
|
||||
<div class="left">
|
||||
<span v-html="item.indexType === 'stand' ? '国内标准法规' : (item.indexType === 'FOREIGN' ? '国外标准法规' : (item.indexType === 'laws' ? '国内外政策' : (item.indexType === 'bussstand' ? '企业标准' : (item.indexType === 'items' ? '数据化条目' : '动态&资料'))))" class="type-tip"></span>
|
||||
<span style="cursor:pointer;" class="main-title" v-html="item.title" @click="jumpDetails(item)"></span>
|
||||
<span class="type-tip" v-html="item.indexType === 'stand' ? '国内标准法规' : (item.indexType === 'FOREIGN' ? '国外标准法规' : (item.indexType === 'laws' ? '国内外政策' : (item.indexType === 'bussstand' ? '企业标准' : (item.indexType === 'items' ? '数据化条目' : '动态&资料'))))" />
|
||||
<span style="cursor:pointer;" class="main-title" @click="jumpDetails(item)" v-html="item.title" />
|
||||
</div>
|
||||
<span class="more" @click="checkDetail(item)">详情</span>
|
||||
</div>
|
||||
<div class="main-content" v-html="item.textContent"></div>
|
||||
<div class="main-content" v-html="item.textContent" />
|
||||
<div v-if="item.indexType !== 'items' && item.indexType !== 'msgdyinfo'" class="time">
|
||||
<div style="margin-right: 15px;">发布日期: {{ item.issue_time !== null && item.issue_time !== '' ? $moment(item.issue_time).format('YYYY-MM-DD') : '--' }} </div>
|
||||
<div style="margin-right: 15px;">发布日期: {{ item.issue_time !== null && item.issue_time !== '' ? $moment(item.issue_time).format('YYYY-MM-DD') : '--' }} </div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<pagination
|
||||
:page="searchForm.page"
|
||||
:total="total"
|
||||
@pageChange="pageChange"
|
||||
@pageSizeChange="pageSizeChange"
|
||||
style="border-radius: 24px;"></pagination>
|
||||
:page="searchForm.page"
|
||||
:total="total"
|
||||
style="border-radius: 24px;"
|
||||
@pageChange="pageChange"
|
||||
@pageSizeChange="pageSizeChange"
|
||||
/>
|
||||
</template>
|
||||
</div>
|
||||
|
||||
<el-dialog
|
||||
title="查看详情"
|
||||
:visible.sync="isShowDetail"
|
||||
size="800px">
|
||||
title="查看详情"
|
||||
:visible.sync="isShowDetail"
|
||||
size="800px"
|
||||
>
|
||||
<loading :loading="detailLoading">数据获取中</loading>
|
||||
<div style="height: 500px;overflow: auto;" >
|
||||
<div v-html="detail.textContent" style="line-height: 20px;"></div>
|
||||
<div style="height: 500px;overflow: auto;">
|
||||
<div style="line-height: 20px;" v-html="detail.textContent" />
|
||||
<br>
|
||||
<br>
|
||||
<div v-html="detail.textItems" style="line-height: 20px;"></div>
|
||||
<div style="line-height: 20px;" v-html="detail.textItems" />
|
||||
</div>
|
||||
<div slot="footer">
|
||||
<el-button class="common-button-default" size="mini" icon="el-icon-close" @click="() => {this.isShowDetail = false}">关闭</el-button>
|
||||
<el-button class="common-button-default" size="mini" icon="el-icon-close" @click="() => { this.isShowDetail = false }">关闭</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
@@ -122,11 +133,11 @@
|
||||
<script>
|
||||
import PersonalCenter from '@/components/personalCenter/index.vue'
|
||||
export default {
|
||||
name: "index",
|
||||
name: 'Index',
|
||||
components: {
|
||||
PersonalCenter
|
||||
},
|
||||
data() {
|
||||
data () {
|
||||
const searchOptions = {
|
||||
// selectType: {
|
||||
// title: '检索方式',
|
||||
@@ -207,7 +218,7 @@ export default {
|
||||
CLLX: '',
|
||||
page: 1,
|
||||
pageSize: this.$store.getters.userInfo.configContent,
|
||||
selectValue: ''
|
||||
selectValue: this.$route.params.searchValue || ''
|
||||
},
|
||||
total: 0,
|
||||
list: [],
|
||||
@@ -220,7 +231,7 @@ export default {
|
||||
detailLoading: false
|
||||
};
|
||||
},
|
||||
created() {
|
||||
created () {
|
||||
this.getDicTypeListCode()
|
||||
this.getData()
|
||||
},
|
||||
@@ -246,8 +257,8 @@ export default {
|
||||
this.searchForm[key] = value
|
||||
} else if (key === 'standType') {
|
||||
this.searchForm[key] = value;
|
||||
['standSort', 'NYLXCLASS', 'CLLX'].forEach(item => {
|
||||
this.searchForm[item] = ''
|
||||
[ 'standSort', 'NYLXCLASS', 'CLLX' ].forEach(item => {
|
||||
this.searchForm[item] = ''
|
||||
})
|
||||
} else {
|
||||
if (value === '') {
|
||||
@@ -296,23 +307,23 @@ export default {
|
||||
})
|
||||
},
|
||||
jumpDetails (item) {
|
||||
let name = '',pageType = ''
|
||||
let name = '', pageType = ''
|
||||
switch (item.indexType) {
|
||||
case 'stand':
|
||||
name = 'OtherStandardDetails'
|
||||
pageType = 'INLAND_STAND'
|
||||
break
|
||||
// 企标
|
||||
case 'bussstand':
|
||||
name = 'OtherBussStandardDetails'
|
||||
pageType = 'BUSINESS_STAND'
|
||||
break
|
||||
case 'FOREIGN':
|
||||
name = 'OtherStandardDetails'
|
||||
pageType = 'FOREIGN_STAND'
|
||||
break
|
||||
case 'stand':
|
||||
name = 'OtherStandardDetails'
|
||||
pageType = 'INLAND_STAND'
|
||||
break
|
||||
// 企标
|
||||
case 'bussstand':
|
||||
name = 'OtherBussStandardDetails'
|
||||
pageType = 'BUSINESS_STAND'
|
||||
break
|
||||
case 'FOREIGN':
|
||||
name = 'OtherStandardDetails'
|
||||
pageType = 'FOREIGN_STAND'
|
||||
break
|
||||
}
|
||||
let routeUrl = this.$router.resolve({
|
||||
const routeUrl = this.$router.resolve({
|
||||
name,
|
||||
params: {
|
||||
id: item.id,
|
||||
@@ -325,18 +336,18 @@ export default {
|
||||
this.$http._getData('sys/dictype/getDicTypeListCode', {}, {}).then(res => {
|
||||
if (res.ok) {
|
||||
// 能源类型
|
||||
this.searchOptions.NYLXCLASS.options = [...this.searchOptions.NYLXCLASS.options, ...res.data.NYLXCLASS]
|
||||
this.searchOptions.NYLXCLASS.options = [ ...this.searchOptions.NYLXCLASS.options, ...res.data.NYLXCLASS ]
|
||||
// 适用车辆类型
|
||||
this.searchOptions.CLLX.options = [...this.searchOptions.CLLX.options, ...res.data.ENERGYTYPES]
|
||||
this.searchOptions.CLLX.options = [ ...this.searchOptions.CLLX.options, ...res.data.ENERGYTYPES ]
|
||||
// 标准类别
|
||||
if (res.data.STANDCLASSIFY) {
|
||||
const data = res.data.STANDCLASSIFY
|
||||
const standVerify = ["GB","GB/T","QC/T","JT","JB","GA","GJB","HJ"];
|
||||
const bussstandVerify = ["ECE","EU","EC","EEC","ISO","IEC","GTR","CFR",
|
||||
"JASO","JIS","GSO","GOST","ΓOCT","TP","SASO","UAE","CONTRAN","DENATRAN",
|
||||
"ABNT NBR","NBR","INMETRO","CONAMA","Normative Instruction","ADR"];
|
||||
const enterpriseVerify = ["Q/FT A","Q/FT B","Q/FT E","Q/FT F","Q/FT G","Q/FT M",
|
||||
"Q/FT Q","Q/FT R","Q/FT S","Q/FT T","Q/FT V","Q/FT X","Q/FT Y","Q/FT Z","Q/QCBFC"];
|
||||
const standVerify = [ 'GB', 'GB/T', 'QC/T', 'JT', 'JB', 'GA', 'GJB', 'HJ' ];
|
||||
const bussstandVerify = [ 'ECE', 'EU', 'EC', 'EEC', 'ISO', 'IEC', 'GTR', 'CFR',
|
||||
'JASO', 'JIS', 'GSO', 'GOST', 'ΓOCT', 'TP', 'SASO', 'UAE', 'CONTRAN', 'DENATRAN',
|
||||
'ABNT NBR', 'NBR', 'INMETRO', 'CONAMA', 'Normative Instruction', 'ADR' ];
|
||||
const enterpriseVerify = [ 'Q/FT A', 'Q/FT B', 'Q/FT E', 'Q/FT F', 'Q/FT G', 'Q/FT M',
|
||||
'Q/FT Q', 'Q/FT R', 'Q/FT S', 'Q/FT T', 'Q/FT V', 'Q/FT X', 'Q/FT Y', 'Q/FT Z', 'Q/QCBFC' ];
|
||||
// 国内
|
||||
const standList = data.filter(item => standVerify.includes(item.label))
|
||||
standList.forEach(item => item.type = 'stand')
|
||||
@@ -347,7 +358,7 @@ export default {
|
||||
const enterpriseList = data.filter(item => enterpriseVerify.includes(item.label))
|
||||
enterpriseList.forEach(item => item.type = 'bussstand')
|
||||
|
||||
this.searchOptions.standSort.options = [...this.searchOptions.standSort.options, ...standList, ...bussstandList, ...enterpriseList]
|
||||
this.searchOptions.standSort.options = [ ...this.searchOptions.standSort.options, ...standList, ...bussstandList, ...enterpriseList ]
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user