Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
@@ -219,6 +219,9 @@ export default {
|
||||
&& this.$route.name !== 'AdvancedSearchExternal' && this.$route.name !== 'LoginVerifyNoEncryption'
|
||||
&& this.$route.name !== 'blankPage' && this.$route.name !== 'processedPage'
|
||||
&& 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 {
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 63 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.6 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 924 B |
@@ -471,11 +471,11 @@
|
||||
// path: '/forward',
|
||||
// menuId: 'K45Y9TGKZV2K4XP4CETD'
|
||||
// },
|
||||
// {
|
||||
// title: '我的问答',
|
||||
// path: '/questions',
|
||||
// menuId: ''
|
||||
// },
|
||||
{
|
||||
title: '我的问答',
|
||||
path: '/questions',
|
||||
menuId: ''
|
||||
},
|
||||
{
|
||||
title: '我的板块',
|
||||
path: '/plate',
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -0,0 +1,209 @@
|
||||
<!--全库检索-->
|
||||
<template>
|
||||
<div id="database-search">
|
||||
<div class="search-head">
|
||||
<div class="head-title">
|
||||
<span class="left-title" @click="back"> < </span>
|
||||
<span class="right-title">全库搜索</span>
|
||||
</div>
|
||||
<van-search
|
||||
v-model="searchKey"
|
||||
show-action
|
||||
placeholder="请输入搜索关键词"
|
||||
@search="onSearch"
|
||||
>
|
||||
<template #action>
|
||||
<div @click="onSearch">搜索</div>
|
||||
</template>
|
||||
</van-search>
|
||||
</div>
|
||||
<div class="card-box" ref="cardBox" @scroll="scrool">
|
||||
<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" @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>
|
||||
<div v-else-if="!loading && !standList.length">
|
||||
<van-empty description="暂无数据" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
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: this.page,
|
||||
pageSize: 20
|
||||
},{
|
||||
_this: this,
|
||||
}, res => {
|
||||
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 => {
|
||||
console.log(e)
|
||||
})
|
||||
},
|
||||
//返回上一个页面
|
||||
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>
|
||||
|
||||
<style lang="less" scoped>
|
||||
#database-search{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background: #F6F6F6;
|
||||
.search-head{
|
||||
width: 100%;
|
||||
height: 100px;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
z-index: 9999;
|
||||
background: #3170A8;
|
||||
}
|
||||
.head-title{
|
||||
color: #FFFFFF;
|
||||
line-height: 40px;
|
||||
font-size: 18px;
|
||||
.left-title{
|
||||
margin-left: 10px;
|
||||
}
|
||||
.right-title{
|
||||
float: right;
|
||||
margin-right: 40%;
|
||||
}
|
||||
}
|
||||
.van-search{
|
||||
background: #3170A8;
|
||||
padding: 10px 12px 0 12px;
|
||||
}
|
||||
.van-search__content{
|
||||
background: #8DB2D0;
|
||||
}
|
||||
.van-search__action{
|
||||
color: #FFFFFF;
|
||||
}
|
||||
.card-content{
|
||||
.van-cell-group--inset{
|
||||
margin: 10px 16px 0 16px;
|
||||
}
|
||||
.card-cell{
|
||||
/deep/.van-cell::after{
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
.card-box{
|
||||
height: 85%;
|
||||
position: relative;
|
||||
overflow-y: scroll;
|
||||
top: 100px;
|
||||
}
|
||||
.card-content{
|
||||
width: 95%;
|
||||
height: auto;
|
||||
margin: 10px;
|
||||
background-color: #FFFFFF;
|
||||
border-radius: 5px;
|
||||
box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.1);
|
||||
.standTitle{
|
||||
.title{
|
||||
color: #333333;
|
||||
font-weight: 600;
|
||||
height: auto;
|
||||
line-height: 20px;
|
||||
padding: 5px 10px;
|
||||
text-align: left;
|
||||
border-bottom: 1px solid #cccccc;
|
||||
}
|
||||
}
|
||||
.standContent{
|
||||
color: #555555;
|
||||
font-weight: 450;
|
||||
margin-top: 5px;
|
||||
.standState{
|
||||
padding-left: 10px;
|
||||
height: 35px;
|
||||
line-height: 35px;
|
||||
}
|
||||
.standSubTime{
|
||||
padding-left: 10px;
|
||||
height: 35px;
|
||||
line-height: 35px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.van-loading {
|
||||
position: absolute;
|
||||
top: 40%;
|
||||
left: 37%;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,303 @@
|
||||
<!--国内标准法规库-->
|
||||
<template>
|
||||
<div id="domestic-stand">
|
||||
<div class="search-head">
|
||||
<div class="head-title">
|
||||
<span class="left-title" @click="back"> < </span>
|
||||
<span class="right-title">{{titleName}}</span>
|
||||
</div>
|
||||
<van-search
|
||||
v-model="searchKey"
|
||||
show-action
|
||||
placeholder="请输入搜索关键词"
|
||||
@search="onSearch"
|
||||
>
|
||||
<template #action>
|
||||
<div @click="onSearch">搜索</div>
|
||||
</template>
|
||||
</van-search>
|
||||
</div>
|
||||
<div class="card-box">
|
||||
<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 v-if="titleType === 'POLICY'" class="title">{{item.lawsNumber}}</div>
|
||||
<div v-else class="title">{{item.standSortShow + '  ' + 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;">
|
||||
{{ natureMap[item.standNature] }}
|
||||
</span>
|
||||
</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;">
|
||||
{{ textStatusMap[item.textStatus] }}
|
||||
</span>
|
||||
<span v-else style=" padding-left: 5px;">
|
||||
{{ textStatusMap[item.textStatus] }}
|
||||
</span>
|
||||
</div>
|
||||
</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>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "domesticStand",
|
||||
data(){
|
||||
return{
|
||||
searchKey: '',
|
||||
titleType: '',
|
||||
titleName: '',
|
||||
loading: true,
|
||||
standList: [],
|
||||
standStateOptions: [], //标准文本状态
|
||||
lawsTextStateOptions: [], //政策文本状态
|
||||
standNatureOptions: [],
|
||||
textStatusMap: {},// 文本状态id与name对应
|
||||
natureMap:{},
|
||||
lawsMap:{},
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
onSearch(){
|
||||
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(){
|
||||
this.$router.push('/phoneHome')
|
||||
},
|
||||
//将文本状态的id和name相对应
|
||||
setMap(data) {
|
||||
data.forEach(item => {
|
||||
this.$set(this.textStatusMap, item.value, item.label);
|
||||
});
|
||||
},
|
||||
setNature(data) {
|
||||
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.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)
|
||||
});
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
#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{
|
||||
color: #FFFFFF;
|
||||
line-height: 40px;
|
||||
font-size: 18px;
|
||||
.left-title{
|
||||
margin-left: 10px;
|
||||
}
|
||||
.right-title{
|
||||
float: right;
|
||||
margin-right: 34%;
|
||||
}
|
||||
}
|
||||
.van-search{
|
||||
background: #3170A8;
|
||||
padding: 10px 12px 0 12px;
|
||||
}
|
||||
.van-search__content{
|
||||
background: #8DB2D0;
|
||||
}
|
||||
.van-search__action{
|
||||
color: #FFFFFF;
|
||||
}
|
||||
.card-box{
|
||||
height: 100%;
|
||||
position: relative;
|
||||
top: 100px;
|
||||
}
|
||||
.card-content{
|
||||
width: 95%;
|
||||
height: auto;
|
||||
margin: 10px;
|
||||
background-color: #FFFFFF;
|
||||
border-radius: 5px;
|
||||
box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.1);
|
||||
.standTitle{
|
||||
.title{
|
||||
color: #333333;
|
||||
font-weight: 600;
|
||||
height: auto;
|
||||
line-height: 20px;
|
||||
padding: 5px 10px;
|
||||
text-align: left;
|
||||
border-bottom: 1px solid #cccccc;
|
||||
}
|
||||
}
|
||||
.standContent{
|
||||
color: #333333;
|
||||
font-weight: 500;
|
||||
margin-top: 5px;
|
||||
.standState{
|
||||
height: auto;
|
||||
padding-left: 10px;
|
||||
line-height: 25px;
|
||||
}
|
||||
.standSubTime{
|
||||
padding-left: 10px;
|
||||
height: auto;
|
||||
line-height: 25px;
|
||||
}
|
||||
}
|
||||
.content-time{
|
||||
width: 100%;
|
||||
height: 35px;
|
||||
margin-top: 5px;
|
||||
border-top: 1px solid #cccccc;
|
||||
}
|
||||
}
|
||||
.van-loading {
|
||||
position: absolute;
|
||||
top: 40%;
|
||||
left: 37%;
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,152 @@
|
||||
<template>
|
||||
<div id="phone-home">
|
||||
<div class="search-top">
|
||||
<div class="top-title">
|
||||
</div>
|
||||
<h3 class="home-title">标 准 法 规 管 理 系 统 S R M S</h3>
|
||||
<div style="border: 1px solid #FFFFFF; position:absolute; top: 15%; left: 49% ;width: 25px; "></div>
|
||||
</div>
|
||||
<div class="search-head">
|
||||
<van-search
|
||||
v-model="searchKey"
|
||||
show-action
|
||||
placeholder="请输入搜索关键词"
|
||||
@search="onSearch"
|
||||
>
|
||||
<template #action>
|
||||
<div @click="onSearch">搜索</div>
|
||||
</template>
|
||||
</van-search>
|
||||
</div>
|
||||
<div class="content">
|
||||
<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" @click="standChange('FOREIGN')">
|
||||
<div class="content-box content-box2"></div>
|
||||
<span class="content-span">海外标准法规</span>
|
||||
</div>
|
||||
<div class="content-top" @click="standChange('POLICY')">
|
||||
<div class="content-box content-box3"></div>
|
||||
<span class="content-span">国内外政策</span>
|
||||
</div>
|
||||
<div class="content-top" @click="standChange('DYNAMIC')">
|
||||
<div class="content-box content-box4"></div>
|
||||
<span class="content-span">标准化动态</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "phoneHome",
|
||||
data() {
|
||||
return {
|
||||
searchKey: "",
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
onSearch() {
|
||||
this.$router.push({
|
||||
name: 'databaseSearch',
|
||||
query: {
|
||||
searchKey: this.searchKey
|
||||
},
|
||||
})
|
||||
},
|
||||
standChange(type){
|
||||
this.$router.push({
|
||||
name: 'domesticStand',
|
||||
query:{
|
||||
standType: type,
|
||||
}
|
||||
})
|
||||
},
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
#phone-home {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: #F6F6F6;
|
||||
.van-search .van-cell {
|
||||
padding: 10px;
|
||||
}
|
||||
.search-top{
|
||||
height: 200px;
|
||||
width: 100%;
|
||||
background: url("../../assets/images/phone/homeTop.png");
|
||||
background-size:100% 100%;
|
||||
.top-title{
|
||||
position: absolute;
|
||||
top: 15px;
|
||||
left: 15px;
|
||||
width: 30%;
|
||||
height: 5%;
|
||||
background: url("../../assets/images/phone/phoneTitle.png") no-repeat;
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
.home-title{
|
||||
color: #FFFFFF;
|
||||
position: absolute;
|
||||
top: 12%;
|
||||
left: 25%
|
||||
}
|
||||
}
|
||||
.search-head{
|
||||
|
||||
}
|
||||
.content {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
background: #F6F6F6;
|
||||
.content-top {
|
||||
width: 47%;
|
||||
height: 150px;
|
||||
line-height: 230px;
|
||||
text-align: center;
|
||||
background: #FFFFFF;
|
||||
margin: 4px;
|
||||
border-radius: 5px;
|
||||
box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
.content-box{
|
||||
display: inline-block;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
position: absolute;
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
.content-box{
|
||||
top: 39%;
|
||||
left: 20%;
|
||||
background: url("../../assets/images/phone/domesticStand.png");
|
||||
}
|
||||
.content-box2{
|
||||
top: 39%;
|
||||
left: 65%;
|
||||
background: url("../../assets/images/phone/overseasStand.png");
|
||||
}
|
||||
.content-box3{
|
||||
top: 58%;
|
||||
left: 20%;
|
||||
background: url("../../assets/images/phone/policyStand.png");
|
||||
}
|
||||
.content-box4{
|
||||
top: 58%;
|
||||
left: 65%;
|
||||
background: url("../../assets/images/phone/dynamicsStand.png");
|
||||
}
|
||||
.content-span{
|
||||
color: #000000;
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,212 @@
|
||||
<!--全库检索-->
|
||||
<template>
|
||||
<div id="database-search">
|
||||
<div class="search-head">
|
||||
<div class="head-title">
|
||||
<span class="left-title" @click="back"> < </span>
|
||||
<span class="right-title">标准化动态</span>
|
||||
</div>
|
||||
<van-tabs active="active" @change="onChange">
|
||||
<van-tab name="ZYBZFG" title="在研标准入库">
|
||||
<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.standardName }}</div>
|
||||
</div>
|
||||
<div class="standContent">
|
||||
<div class="standState">标准状态:
|
||||
<span style="color: #98E165; padding-left: 5px;">
|
||||
{{ textStatusMap[item.textState] }}
|
||||
</span></div>
|
||||
<div class="standSubTime">发布日期:
|
||||
<span style="padding-left: 5px;">
|
||||
{{ item.releaseDate }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else-if="!loading && !standList.length">
|
||||
<van-empty description="暂无数据" />
|
||||
</div>
|
||||
</van-tab>
|
||||
<van-tab name="GNWBZFG" title="标准法规入库">
|
||||
<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.standardName }}</div>
|
||||
</div>
|
||||
<div class="standContent">
|
||||
<div class="standState">标准状态:
|
||||
<span style="color: #98E165; padding-left: 5px;">
|
||||
{{ textStatusMap[item.textState] }}
|
||||
</span></div>
|
||||
<div class="standSubTime">发布日期:
|
||||
<span style="padding-left: 5px;">
|
||||
{{ item.releaseDate }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else-if="!loading && !standList.length">
|
||||
<van-empty description="暂无数据" />
|
||||
</div>
|
||||
</van-tab>
|
||||
</van-tabs>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "standDynamics",
|
||||
data() {
|
||||
return {
|
||||
active: "",
|
||||
messageType: "ZYBZFG",
|
||||
standList: [],
|
||||
standStateOptions: [], //存放文本状态
|
||||
textStatusMap: {},// 文本状态id与name对应
|
||||
loading: true
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
//返回上一个页面
|
||||
back() {
|
||||
this.$router.push("/phoneHome");
|
||||
},
|
||||
onChange(name) {
|
||||
this.messageType = name;
|
||||
this.onDynamics();
|
||||
},
|
||||
onDynamics(){
|
||||
this.loading = true
|
||||
this.$http.get("/lawss/NewsFeed/getNewsFeed", {
|
||||
messageType: this.messageType,
|
||||
page: 1,
|
||||
paeSize: 10
|
||||
}, {
|
||||
_this: this
|
||||
}, res => {
|
||||
this.standList = res.data;
|
||||
this.loading = false;
|
||||
}, e => {
|
||||
console.log(e);
|
||||
});
|
||||
},
|
||||
//将文本状态的id和name相对应
|
||||
setMap(data) {
|
||||
data.forEach(item => {
|
||||
this.$set(this.textStatusMap, item.value, item.label);
|
||||
});
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.onDynamics();
|
||||
//从数据库中查询下拉框数据
|
||||
this.$http.get("sys/dictype/getDicTypeListCode", {}, {
|
||||
_this: this
|
||||
}, res => {
|
||||
this.standStateOptions = res.data.WBZTCLASS; // 文本状态
|
||||
this.setMap(this.standStateOptions);
|
||||
});
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
#database-search {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background: #F6F6F6;
|
||||
|
||||
.search-head {
|
||||
width: 100%;
|
||||
height: 100px;
|
||||
background: #3170A8;
|
||||
}
|
||||
|
||||
.head-title {
|
||||
color: #FFFFFF;
|
||||
line-height: 40px;
|
||||
font-size: 18px;
|
||||
|
||||
.left-title {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.right-title {
|
||||
float: right;
|
||||
margin-right: 40%;
|
||||
}
|
||||
}
|
||||
|
||||
.van-tabs {
|
||||
margin-top: 17px;
|
||||
}
|
||||
|
||||
.van-tab {
|
||||
color: #3170A8;
|
||||
}
|
||||
|
||||
/deep/ .van-tab--active {
|
||||
color: #3170A8;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
/deep/ .van-tabs__line {
|
||||
width: 50%;
|
||||
background-color: #3170A8;
|
||||
}
|
||||
|
||||
.card-content {
|
||||
width: 95%;
|
||||
height: auto;
|
||||
margin: 10px;
|
||||
background-color: #FFFFFF;
|
||||
border-radius: 5px;
|
||||
box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.1);
|
||||
|
||||
.standTitle {
|
||||
.title {
|
||||
color: #333333;
|
||||
font-weight: 600;
|
||||
height: auto;
|
||||
line-height: 20px;
|
||||
padding: 5px 10px;
|
||||
text-align: left;
|
||||
border-bottom: 1px solid #cccccc;
|
||||
}
|
||||
}
|
||||
|
||||
.standContent {
|
||||
color: #555555;
|
||||
font-weight: 450;
|
||||
margin-top: 5px;
|
||||
|
||||
.standState {
|
||||
padding-left: 10px;
|
||||
height: 35px;
|
||||
line-height: 35px;
|
||||
}
|
||||
|
||||
.standSubTime {
|
||||
padding-left: 10px;
|
||||
height: 35px;
|
||||
line-height: 35px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.van-loading {
|
||||
position: absolute;
|
||||
top: 350px;
|
||||
left: 37%;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -200,7 +200,7 @@
|
||||
<a v-if="scope.row.standYear && textStatusMap[scope.row.textStatus] === '废止' || textStatusMap[scope.row.textStatus] === '被代替'" style="color: #F56C6C" class="table-jump" @click="handlePreview(scope.row)">{{
|
||||
scope.row.standSortShow
|
||||
}} {{ scope.row.standNumber }}-{{ scope.row.standYear }}</a>
|
||||
<a v-else-if="scope.row.standYear && textStatusMap[scope.row.textStatus] === '——' " style="color: #409EFF" class="table-jump" @click="handlePreview(scope.row)">{{
|
||||
<a v-else-if="textStatusMap[scope.row.textStatus] === '——' " style="color: #409EFF" class="table-jump" @click="handlePreview(scope.row)">{{
|
||||
scope.row.standSortShow
|
||||
}} {{ scope.row.standNumber }}-{{ scope.row.standYear }}</a>
|
||||
<a v-else-if="scope.row.standYear" style="color: #333333" class="table-jump" @click="handlePreview(scope.row)">{{
|
||||
|
||||
+31
-1
@@ -54,6 +54,36 @@ const routes = [
|
||||
component: () =>
|
||||
import('@/pages/login')
|
||||
},
|
||||
{
|
||||
path: '/phoneHome',
|
||||
name: 'phoneHome',
|
||||
component: () =>
|
||||
import('@/pages/phone/phoneHome')
|
||||
},
|
||||
{
|
||||
path: '/databaseSearch',
|
||||
name: 'databaseSearch',
|
||||
component: () =>
|
||||
import('@/pages/phone/databaseSearch')
|
||||
},
|
||||
{
|
||||
path: '/standDynamics',
|
||||
name: 'standDynamics',
|
||||
component: () =>
|
||||
import('@/pages/phone/standDynamics')
|
||||
},
|
||||
{
|
||||
path: '/domesticStand',
|
||||
name: 'domesticStand',
|
||||
component: () =>
|
||||
import('@/pages/phone/domesticStand')
|
||||
},
|
||||
{
|
||||
path: '/domesticDetails',
|
||||
name: 'domesticDetails',
|
||||
component: () =>
|
||||
import('@/pages/phone/domesticDetails')
|
||||
},
|
||||
{
|
||||
path: '/loginVerify',
|
||||
name: 'LoginVerify',
|
||||
@@ -250,7 +280,7 @@ const routes = [
|
||||
title: '我的问答',
|
||||
menuId: ''
|
||||
}
|
||||
}
|
||||
},
|
||||
// {
|
||||
// path: '/questionsAndAnswers',
|
||||
// name: 'QuestionsAndAnswers',
|
||||
|
||||
Reference in New Issue
Block a user