Merge remote-tracking branch 'origin/develop' into develop

This commit is contained in:
super_liu
2022-05-31 16:11:35 +08:00
11 changed files with 4522 additions and 107 deletions
+1
View File
@@ -221,6 +221,7 @@ export default {
&& this.$route.name !== 'loginStandDetails' && this.$route.name !== 'error'
&& this.$route.name !== 'phoneHome'&& this.$route.name !== 'databaseSearch'
&& this.$route.name !== 'standDynamics' && this.$route.name !== 'domesticStand'
&& this.$route.name !== 'domesticDetails'
&& this.$route.name !== 'OtherStandardExternalDetails' && this.$route.name !== 'OtherStandardExternalDetails') {
this.isBoolean = true
} else {
+5 -5
View File
@@ -471,11 +471,11 @@
// path: '/forward',
// menuId: 'K45Y9TGKZV2K4XP4CETD'
// },
// {
// title: '我的问答',
// path: '/questions',
// menuId: ''
// },
{
title: '我的问答',
path: '/questions',
menuId: ''
},
{
title: '我的板块',
path: '/plate',
@@ -16,7 +16,6 @@
</el-select>
<el-select
v-if="showType"
v-model="checkStateType"
class="search-group-itemType"
placeholder="请选择"
+81 -14
View File
@@ -1,6 +1,28 @@
<!--我的问答-->
<template>
<div id="my-questions">
<div class="search-area">
<el-form :inline="true" :model="questionSerach" >
<el-form-item class="el-form-item search-item" label="标准号">
<el-input v-model="questionSerach.standNumber" placeholder="根据标准号查询"></el-input>
</el-form-item>
<el-form-item class="el-form-item search-item" label="标准名称">
<el-input v-model="questionSerach.standName" placeholder="根据标准名称查询"></el-input>
</el-form-item>
<el-form-item class="el-form-item search-item" label="关键词">
<el-input v-model="questionSerach.keyCode" placeholder="根据关键词查询"></el-input>
</el-form-item>
<el-form-item>
<el-button size="mini" @click="">查询</el-button>
</el-form-item>
<el-form-item>
<el-button size="mini" @click="">清空</el-button>
</el-form-item>
<el-form-item>
<el-button size="mini" type="primary" @click="">提问</el-button>
</el-form-item>
</el-form>
</div>
<el-tabs
type="border-card"
style="height: 100%"
@@ -13,16 +35,29 @@
class="question-tabs"
type="border-card"
style="height: 100%"
tab-position="left"
>
<template v-for="question in questionList">
<el-tab-pane :name="question.name">
<template slot="label">
<questonsItem :question="question"></questonsItem>
</template>
</el-tab-pane>
</template>
tab-position="left">
<el-tab-pane label="国内标准">
<el-tabs
class="question-tabs"
type="border-card"
style="height: 100%"
tab-position="left"
>
<template v-for="question in questionList">
<el-tab-pane class="com-box" :name="question.name">
<template slot="label">
<questonsItem :question="question"></questonsItem>
</template>
</el-tab-pane>
</template>
</el-tabs>
</el-tab-pane>
<el-tab-pane label="海外标准">
</el-tab-pane>
<el-tab-pane label="企业标准">
</el-tab-pane>
<el-tab-pane label="公共问题">
</el-tab-pane>
</el-tabs>
</div>
</el-tab-pane>
@@ -31,6 +66,10 @@
</div>
</el-tab-pane>
<el-tab-pane label="我的订阅">
<div>
</div>
</el-tab-pane>
</el-tabs>
</div>
</template>
@@ -44,6 +83,11 @@ export default {
},
data(){
return{
questionSerach:{
standNumber: '',
standName: '',
keyCode: '',
},
questionList: [{
title: '问题1',
name: '1',
@@ -69,15 +113,33 @@ export default {
height: 100%;
background: #F5F7FA;
margin-bottom: 10px;
.type-tabs{
.type-tabs {
/deep/.el-tabs__header {
margin-right: 0;
}
/deep/.el-tabs__content {
padding: 0;
.el-tab-pane {
height: 100%;
}
}
}
.question-tabs{
.question-tabs {
height: 100%;
/deep/.el-tabs__item{
height: 100%;
border-top: none;
border-bottom: none;
/deep/.el-tabs__nav {
height: calc(~'100% - 50px');
overflow: auto;
}
/deep/ &.el-tabs--border-card .el-tabs__item {
height: 65px;
border-color: #d1dbe5 transparent;
text-align: left;
border-top-color: transparent;
&.is-active {
border-top-color: #d1dbe5;
}
}
}
/deep/.el-tabs__content{
@@ -87,5 +149,10 @@ export default {
/deep/.el-tab-pane{
height: 100%;
}
.com-box{
/deep/.el-tabs__item .is-left{
height: auto;
}
}
}
</style>
+62 -19
View File
@@ -17,24 +17,26 @@
</template>
</van-search>
</div>
<div v-if="loading">
<van-loading size="24px" color="#3170A8">加载中...</van-loading>
</div>
<div v-else-if="!loading && standList.length" class="card-content" v-for="item in standList" :key="item.id">
<div class="standTitle">
<div class="title">{{item.title}}</div>
<div class="card-box" ref="cardBox" @scroll="scrool">
<div v-if="loading">
<van-loading size="24px" color="#3170A8">加载中...</van-loading>
</div>
<div class="standContent">
<div class="standState">标准类别:
<span v-if="item.indexType === 'stand'">国内标准</span>
<span v-if="item.indexType === 'FOREIGN'">海外标准</span>
<span v-if="item.indexType === 'bussstand'">企业标准</span>
<div v-else-if="!loading && standList.length" class="card-content" v-for="item in standList" :key="item.id" @click="jumpDetails(item) ">
<div class="standTitle">
<div class="title">{{item.title}}</div>
</div>
<div class="standContent">
<div class="standState">标准类别:
<span v-if="item.indexType === 'stand'">国内标准</span>
<span v-if="item.indexType === 'FOREIGN'">海外标准</span>
<span v-if="item.indexType === 'bussstand'">企业标准</span>
</div>
<div class="standSubTime">发布日期: {{item.issue_time}} </div>
</div>
<div class="standSubTime">发布日期: {{item.issue_time}} </div>
</div>
</div>
<div v-else-if="!loading && !standList.length">
<van-empty description="暂无数据" />
<div v-else-if="!loading && !standList.length">
<van-empty description="暂无数据" />
</div>
</div>
</div>
</template>
@@ -44,23 +46,45 @@ export default {
name: "databaseSearch",
data(){
return{
scrolled: '',
moreFlag: false,
searchKey: '',
standList: [],
loading: true,
page: 1,
}
},
methods: {
scrool(){
let scrolled = this.$refs.cardBox.scrollTop
//获得可视区的高度
const windowHeight = this.$refs.cardBox.clientHeight
//获取滚动条的总高度
const scrollHeight = this.$refs.cardBox.scrollHeight
let windowScrolled = scrolled + windowHeight
this.scrolled = scrolled
if(scrollHeight - windowScrolled < 600 ){
//把距离顶部的距离加上可视区域的高度 等于或者大于滚动条的总高度就是到达底部
this.moreFlag = true
this.page++
}
},
onSearch(){
this.moreFlag = false
this.$http.post('search/searchCenter/searchSarBykey',{
selectIndex: 'fulltextserch',
selectValue: this.searchKey,
selectType: 'titleSearch',
page: 1,
page: this.page,
pageSize: 20
},{
_this: this,
}, res => {
this.standList = res.data.list
if(this.standList.length){
this.standList = this.standList.concat(res.data.list)
}else{
this.standList = res.data.list
}
console.log(this.standList);
this.loading = false
}, e => {
@@ -71,11 +95,21 @@ export default {
back(){
this.$router.push('/phoneHome')
},
jumpDetails(item){
this.$router.push({
name: 'domesticDetails',
query: {
id: item.id,
pageType: 'INLAND_STAND'
}
})
},
},
mounted(){
this.searchKey = this.$route.query.searchKey
this.onSearch()
}
this.$refs.cardBox.addEventListener('scroll', this.scrool);
},
};
</script>
@@ -89,6 +123,9 @@ export default {
.search-head{
width: 100%;
height: 100px;
position: absolute;
top: 0;
z-index: 9999;
background: #3170A8;
}
.head-title{
@@ -123,6 +160,12 @@ export default {
}
}
}
.card-box{
height: 85%;
position: relative;
overflow-y: scroll;
top: 100px;
}
.card-content{
width: 95%;
height: auto;
@@ -159,7 +202,7 @@ export default {
}
.van-loading {
position: absolute;
top: 52%;
top: 40%;
left: 37%;
}
}
File diff suppressed because it is too large Load Diff
+141 -50
View File
@@ -4,7 +4,7 @@
<div class="search-head">
<div class="head-title">
<span class="left-title" @click="back"> < </span>
<span class="right-title">国内标准法规库</span>
<span class="right-title">{{titleName}}</span>
</div>
<van-search
v-model="searchKey"
@@ -17,50 +17,67 @@
</template>
</van-search>
</div>
<div v-if="loading">
<van-loading size="24px" color="#3170A8">加载中...</van-loading>
</div>
<div v-else-if="!loading && standList.length" class="card-content" v-for="item in standList" :key="item.id">
<div class="standTitle">
<div class="title">{{item.standSortShow + '&nbsp&nbsp' + item.standNumber + '-' + item.standYear }}</div>
<div class="card-box">
<div v-if="loading">
<van-loading size="24px" color="#3170A8">加载中...</van-loading>
</div>
<div class="standContent">
<div class="standState">{{item.standName}}</div>
<div class="standSubTime">标准性质:
<!-- {{ natureMap[item.standNature] }}-->
<span v-if="natureMap[item.standNature] === '强制性' "
style="color: #F56C6C; padding-left: 5px;">
<div v-else-if="!loading && standList.length" class="card-content" v-for="item in standList" :key="item.id">
<div class="standTitle">
<div v-if="titleType === 'POLICY'" class="title">{{item.lawsNumber}}</div>
<div v-else class="title">{{item.standSortShow + '&nbsp&nbsp' + item.standNumber + '-' + item.standYear }}</div>
</div>
<div class="standContent">
<div class="standState">{{item.standName}}</div>
<div class="standSubTime">标准性质:
<span v-if="natureMap[item.standNature] === '强制性' "
style="color: #F56C6C; padding-left: 5px;">
{{ natureMap[item.standNature] }}
</span>
<span v-if="natureMap[item.standNature] === '推荐性' "
style="color: #E57800; padding-left: 5px;">
<span v-if="natureMap[item.standNature] === '推荐性' "
style="color: #E57800; padding-left: 5px;">
{{ natureMap[item.standNature] }}
</span>
</div>
<div class="standSubTime">标准状态:
<span v-if="textStatusMap[item.textStatus] === '废' || textStatusMap[item.textStatus] === '被代替'"
style="color: #F56C6C; padding-left: 5px;">
</div>
<div class="standSubTime" v-if="titleType === 'POLICY'">标准状态:
<span v-if="lawsMap[item.lawsTextState] === '废' || lawsMap[item.lawsTextState] === '被代替'"
style="color: #F56C6C; padding-left: 5px;">
{{ lawsMap[item.lawsTextState] }}
</span>
<span v-else-if="lawsMap[item.lawsTextState] === '参考' || lawsMap[item.lawsTextState] === '现行有效'"
style="color: #98E165; padding-left: 5px;">
{{ lawsMap[item.lawsTextState] }}
</span>
<span v-else style=" padding-left: 5px;">
{{ lawsMap[item.lawsTextState] }}
</span>
</div>
<div class="standSubTime" v-else >标准状态:
<span v-if="textStatusMap[item.textStatus] === '废止' || textStatusMap[item.textStatus] === '被代替'"
style="color: #F56C6C; padding-left: 5px;">
{{ textStatusMap[item.textStatus] }}
</span>
<span v-else-if="textStatusMap[item.textStatus] === '参考' || textStatusMap[item.textStatus] === '现行有效'"
style="color: #98E165; padding-left: 5px;">
<span v-else-if="textStatusMap[item.textStatus] === '参考' || textStatusMap[item.textStatus] === '现行有效'"
style="color: #98E165; padding-left: 5px;">
{{ textStatusMap[item.textStatus] }}
</span>
<span v-else style=" padding-left: 5px;">
<span v-else style=" padding-left: 5px;">
{{ textStatusMap[item.textStatus] }}
</span>
</div>
</div>
</div>
<div class="content-time">
<div style="margin-top: 10px">
<span style="padding: 20px;">发布日期 {{item.issueTime}}</span>
<span style="padding: 20px;">实施日期 {{item.putTime}}</span>
</div>
<div class="content-time">
<div style="margin-top: 10px">
<span style="padding: 20px;">发布日期
{{ item.issueTime ? $moment(item.issueTime).format("YYYY-MM-DD") : "" }}</span>
<span style="padding: 20px;" v-if="titleType === 'POLICY'">实施日期 {{item.XCXSSRQLAWS}}</span>
<span style="padding: 20px;" v-else>实施日期 {{item.putTime}}</span>
</div>
</div>
</div>
<div v-else-if="!loading && !standList.length">
<van-empty description="暂无数据" />
</div>
</div>
<div v-else-if="!loading && !standList.length">
<van-empty description="暂无数据" />
</div>
</div>
</template>
@@ -71,31 +88,86 @@ export default {
data(){
return{
searchKey: '',
titleType: '',
titleName: '',
loading: true,
standList: [],
standStateOptions: [], //存放文本状态
standStateOptions: [], //标准文本状态
lawsTextStateOptions: [], //政策文本状态
standNatureOptions: [],
textStatusMap: {},// 文本状态id与name对应
natureMap:{},
lawsMap:{},
}
},
methods:{
onSearch(){
this.$http.get('sarStandardsInfo/sar-standards-info/getSarStandardsInfoPage',{
page: 1,
pageSize: 20,
standType: 'INLAND'
},{
_this: this
},res=>{
if (res.ok){
this.standList = res.data.list
this.loading = false
}else {
this.$message.error(res.message)
}
},e=>{
})
if(this.titleType === 'INLAND'){
this.$http.get('sarStandardsInfo/sar-standards-info/getSarStandardsInfoPage',{
page: 1,
pageSize: 20,
standType: 'INLAND'
},{
_this: this
},res=>{
if (res.ok){
this.standList = res.data.list
this.loading = false
}else {
this.$message.error(res.message)
}
},e=>{
})
}else if(this.titleType === 'FOREIGN'){
this.$http.get('sarStandardsInfo/sar-standards-info/getSarStandardsInfoPage',{
page: 1,
pageSize: 20,
standType: 'FOREIGN'
},{
_this: this
},res=>{
if (res.ok){
this.standList = res.data.list
this.loading = false
}else {
this.$message.error(res.message)
}
},e=>{
})
}else if(this.titleType === 'POLICY'){
this.$http.get('lawss/sarLawsInfo/page',{
page: 1,
pageSize: 20,
},{
_this: this
}, res => {
if (res.ok){
this.standList = res.data.list
this.loading = false
}else {
this.$message.error(res.message)
}
}, e =>{
console.log(e);
})
}else{
this.$http.get("/lawss/NewsFeed/getNewsFeed", {
messageType: 'ZYBZFG',
page: 1,
paeSize: 10
}, {
_this: this
}, res => {
if (res.ok){
this.standList = res.data
this.loading = false
}else {
this.$message.error(res.message)
}
}, e => {
console.log(e);
});
}
},
//返回上一个页面
back(){
@@ -111,17 +183,27 @@ export default {
data.forEach(item => {
this.$set(this.natureMap, item.value, item.label);
});
}
},
setLaws(data) {
data.forEach(item => {
this.$set(this.lawsMap, item.value, item.label);
});
},
},
mounted() {
this.titleType = this.$route.query.standType
this.titleName = this.titleType === 'INLAND' ? '国内标准法规库' : (this.titleType === 'FOREIGN' ? '海外标准法规库' : this.titleType === 'POLICY' ? '国内外政策库' : '标准化动态库' )
this.onSearch()
//从数据库中查询下拉框数据
this.$http.get("sys/dictype/getDicTypeListCode", {}, {
_this: this
}, res => {
this.standStateOptions = res.data.WBZTCLASS; // 文本状态
this.standStateOptions = res.data.WBZTCLASS; // 标准文本状态
this.lawsTextStateOptions = res.data.lawsTextState //政策文本状态
console.log(this.lawsTextStateOptions);
this.standNatureOptions = res.data.SARPROPERTY // 标准性质
this.setMap(this.standStateOptions);
this.setLaws(this.lawsTextStateOptions);
this.setNature(this.standNatureOptions)
});
}
@@ -132,12 +214,16 @@ export default {
#domestic-stand{
width: 100%;
height: 100%;
overflow: auto;
margin: 0;
padding: 0;
background: #F6F6F6;
.search-head{
width: 100%;
height: 100px;
position: absolute;
top: 0;
z-index: 9999;
background: #3170A8;
}
.head-title{
@@ -162,6 +248,11 @@ export default {
.van-search__action{
color: #FFFFFF;
}
.card-box{
height: 100%;
position: relative;
top: 100px;
}
.card-content{
width: 95%;
height: auto;
@@ -204,7 +295,7 @@ export default {
}
.van-loading {
position: absolute;
top: 52%;
top: 40%;
left: 37%;
}
}
+12 -15
View File
@@ -19,19 +19,19 @@
</van-search>
</div>
<div class="content">
<div class="content-top" style="margin-top: 10px">
<div class="content-top" style="margin-top: 10px" @click="standChange('INLAND')">
<div class="content-box content-box1"></div>
<span class="content-span">国内标准法规</span>
</div>
<div class="content-top" style="margin-top: 10px">
<div class="content-top" style="margin-top: 10px" @click="standChange('FOREIGN')">
<div class="content-box content-box2"></div>
<span class="content-span">海外标准法规</span>
</div>
<div class="content-top">
<div class="content-top" @click="standChange('POLICY')">
<div class="content-box content-box3"></div>
<span class="content-span">国内外政策</span>
</div>
<div class="content-top">
<div class="content-top" @click="standChange('DYNAMIC')">
<div class="content-box content-box4"></div>
<span class="content-span">标准化动态</span>
</div>
@@ -55,17 +55,14 @@ export default {
searchKey: this.searchKey
},
})
// this.$http.post('search/searchCenter/searchSarBykey',{
// selectIndex: 'fulltextserch',
// selectValue: this.searchKey,
// selectType: 'titleSearch',
// page: 1,
// pageSize: 20
// },{
// _this: this,
// }, res => {
// console.log(res.data);
// })
},
standChange(type){
this.$router.push({
name: 'domesticStand',
query:{
standType: type,
}
})
},
}
};
@@ -1033,7 +1033,7 @@
v-if="selectIndex !== 'items'"
width="130">
<template slot-scope="scope">
<div v-if="scope.row.issue_time !== null && scope.row.issueTime !== undefined">
<div v-if="scope.row.issue_time !== null && scope.row.issueTime !== undefined && scope.row.issueTime !== ''">
{{ $dateFormat(new Date(scope.row.issueTime), "yyyy-MM-dd") }}
</div>
<div v-else></div>
@@ -35,7 +35,7 @@
<div class="search-condition">
<div class="condition-btn" @click="conditionBtnOpen = !conditionBtnOpen" v-if="showConditionBtn">{{ toggleConditionTips }}</div>
<div class="condition-content">
<div class="condition-item" v-if="selectIndex === 'All'">
<div class="condition-item">
<div class="condition-item-title">检索方式</div>
<ul>
<li>
+7 -1
View File
@@ -78,6 +78,12 @@ const routes = [
component: () =>
import('@/pages/phone/domesticStand')
},
{
path: '/domesticDetails',
name: 'domesticDetails',
component: () =>
import('@/pages/phone/domesticDetails')
},
{
path: '/loginVerify',
name: 'LoginVerify',
@@ -274,7 +280,7 @@ const routes = [
title: '我的问答',
menuId: ''
}
}
},
// {
// path: '/questionsAndAnswers',
// name: 'QuestionsAndAnswers',