111
parent
d1cd0c01f5
commit
4230826c33
|
|
@ -285,8 +285,6 @@
|
|||
.news_container{
|
||||
width: 1400px;
|
||||
margin: 80px auto 0;
|
||||
|
||||
|
||||
.title{
|
||||
text-align: center;
|
||||
.tit{
|
||||
|
|
@ -807,6 +805,7 @@ font-size: 16px;
|
|||
/*新闻中心*/
|
||||
.new_container {
|
||||
background: #f6f8fa;
|
||||
padding-bottom:20px;
|
||||
|
||||
.banner {
|
||||
width: 100%;
|
||||
|
|
@ -931,7 +930,6 @@ font-size: 16px;
|
|||
|
||||
.new_container_detail {
|
||||
width: 100%;
|
||||
|
||||
.breadcrumb{
|
||||
width:1400px;
|
||||
margin:0 auto;
|
||||
|
|
@ -969,7 +967,6 @@ font-size: 16px;
|
|||
.main{
|
||||
padding: 20px 0;
|
||||
color: #666666;
|
||||
|
||||
p{
|
||||
text-indent: 2rem;
|
||||
line-height: 2;
|
||||
|
|
@ -982,24 +979,29 @@ font-size: 16px;
|
|||
}
|
||||
.bottom{
|
||||
width: 100%;
|
||||
margin-top:20px;
|
||||
.item{
|
||||
padding: 20px;
|
||||
box-shadow: 0 0 5px rgba(0, 0, 0, 0.05);
|
||||
margin-bottom: 20px;
|
||||
cursor: pointer;
|
||||
font-size: 14px;
|
||||
|
||||
.previous{
|
||||
font-size: 14px;
|
||||
margin-bottom: 20px;
|
||||
width:80px;
|
||||
}
|
||||
.title{
|
||||
font-size: 14px;
|
||||
}
|
||||
.info{
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
color: #666666;
|
||||
a{
|
||||
color: #666666;
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
&:hover{
|
||||
box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
|
||||
|
|
@ -1009,4 +1011,878 @@ font-size: 16px;
|
|||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*政策法规*/
|
||||
.wenku_container {
|
||||
background: #f6f8fa;
|
||||
.banner {
|
||||
width: 100%;
|
||||
height: 320px;
|
||||
background: url("../img/falv_banner.png") no-repeat top center;
|
||||
.banner_main {
|
||||
width: 1400px;
|
||||
margin: 0 auto;
|
||||
padding-top: 135px;
|
||||
h2 {
|
||||
font-size: 60px;
|
||||
color: #ffffff;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
p {
|
||||
margin: 0;
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
}
|
||||
.new_container {
|
||||
width: 100%;
|
||||
|
||||
.top {
|
||||
width: 100%;
|
||||
height: 60px;
|
||||
background: #ffffff;
|
||||
|
||||
.wrap {
|
||||
width: 1400px;
|
||||
margin: 0 auto;
|
||||
display: flex;
|
||||
|
||||
|
||||
.list {
|
||||
font-size: 16px;
|
||||
line-height: 60px;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
margin-right: 40px;
|
||||
a{
|
||||
color:#222222;
|
||||
text-decoration: none;
|
||||
|
||||
}
|
||||
|
||||
&.active {
|
||||
color: #006aff;
|
||||
&:before {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
&:before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
border-bottom: 3px solid #006aff;
|
||||
width: 100%;
|
||||
opacity: 0;
|
||||
}
|
||||
&:hover {
|
||||
color: #006aff;
|
||||
&:before {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.new_main{
|
||||
width: 1400px;
|
||||
margin: 20px auto 0;
|
||||
padding-bottom:20px;
|
||||
a{
|
||||
text-decoration: none;
|
||||
}
|
||||
.wrap{
|
||||
width: 100%;
|
||||
background: #ffffff;
|
||||
padding: 20px;
|
||||
border-radius: 4px;
|
||||
margin-bottom: 20px;
|
||||
.item{
|
||||
display: flex;
|
||||
|
||||
.info{
|
||||
|
||||
flex:1;
|
||||
.title{
|
||||
font-size: 18px;
|
||||
color: #222222;
|
||||
a{
|
||||
color:#222222;}
|
||||
}
|
||||
.text{
|
||||
margin-top: 10px;
|
||||
a{
|
||||
color: #696969;
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
.time{
|
||||
color: #999999;
|
||||
margin-top: 10px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
span{
|
||||
padding-left: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
.float-left{
|
||||
a{
|
||||
color:#666;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
&:hover{
|
||||
box-shadow: 0 8px 30px rgba(45, 104, 255, 0.15)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.new_container_detail {
|
||||
width: 100%;
|
||||
.breadcrumb{
|
||||
width:1400px;
|
||||
margin:0 auto;
|
||||
background:none;
|
||||
padding:0;
|
||||
margin-top:10px;
|
||||
|
||||
.list-inline{
|
||||
margin:0 ! important;
|
||||
padding:0! important;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.new_main{
|
||||
width: 1400px;
|
||||
margin: 10px auto 20px;
|
||||
background: #ffffff;
|
||||
min-height: 600px;
|
||||
border-radius: 4px;
|
||||
box-shadow: 0 0 5px rgba(0, 0, 0, 0.05);
|
||||
padding: 20px 50px;
|
||||
border-top: 3px solid #1d78ff;
|
||||
|
||||
.title{
|
||||
width: 100%;
|
||||
border-bottom: 1px solid #eeeeee;
|
||||
padding-bottom: 20px;
|
||||
|
||||
.time{
|
||||
color: #999999;
|
||||
}
|
||||
}
|
||||
.main{
|
||||
padding: 20px 0;
|
||||
color: #666666;
|
||||
p{
|
||||
text-indent: 2rem;
|
||||
line-height: 2;
|
||||
font-size: 14px;
|
||||
}
|
||||
img{
|
||||
margin: 0 auto;
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
.bottom{
|
||||
width: 100%;
|
||||
margin-top:20px;
|
||||
.item{
|
||||
padding: 20px;
|
||||
box-shadow: 0 0 5px rgba(0, 0, 0, 0.05);
|
||||
margin-bottom: 20px;
|
||||
cursor: pointer;
|
||||
font-size: 14px;
|
||||
|
||||
.previous{
|
||||
font-size: 14px;
|
||||
margin-bottom: 20px;
|
||||
width:80px;
|
||||
}
|
||||
.title{
|
||||
font-size: 14px;
|
||||
}
|
||||
.info{
|
||||
width: 100%;
|
||||
color: #666666;
|
||||
a{
|
||||
color: #666666;
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
&:hover{
|
||||
box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/*产品*/
|
||||
|
||||
.case_container{
|
||||
background: #f6f8fa;
|
||||
.banner {
|
||||
width: 100%;
|
||||
height: 320px;
|
||||
background: url("../img/case_banner.png") no-repeat top center;
|
||||
.banner_main {
|
||||
width: 1400px;
|
||||
margin: 0 auto;
|
||||
padding-top: 135px;
|
||||
h2 {
|
||||
font-size: 60px;
|
||||
color: #ffffff;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
p {
|
||||
margin: 0;
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
}
|
||||
.case_main{
|
||||
width: 100%;
|
||||
padding-bottom: 50px;
|
||||
.top{
|
||||
background: #ffffff;
|
||||
height: 60px;
|
||||
padding-top: 20px;
|
||||
|
||||
.top_wrap{
|
||||
width: 1400px;
|
||||
margin: 0 auto;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.title{
|
||||
margin-right: 20px;
|
||||
.line{
|
||||
color: #999999;
|
||||
margin-left: 20px;
|
||||
}
|
||||
}
|
||||
.num{
|
||||
display: flex;
|
||||
.item{
|
||||
color: #666666;
|
||||
margin-right: 20px;
|
||||
a{
|
||||
color:#222222;
|
||||
text-decoration: none;
|
||||
padding: 6px 30px;
|
||||
border-radius: 50px;
|
||||
cursor: pointer;
|
||||
|
||||
&.active{
|
||||
background: #2e57e9;
|
||||
color: #ffffff;
|
||||
}
|
||||
&:hover{
|
||||
background: #2e57e9;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.case_main_wrap{
|
||||
width: 1400px;
|
||||
margin: 30px auto;
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
a{
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.item{
|
||||
width: 440px;
|
||||
background: #ffffff;
|
||||
border-radius: 16px;
|
||||
margin: 10px;
|
||||
box-shadow: 0 0 20px rgba(0, 0, 0, 0.05);
|
||||
transition: all 0.4s ease;
|
||||
cursor: pointer;
|
||||
&:hover{
|
||||
transform: translateY(-8px);
|
||||
box-shadow: 0 12px 30px rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
.img{
|
||||
width: 100%;
|
||||
height: 250px;
|
||||
|
||||
img{
|
||||
width: 100%;
|
||||
height: 250px;
|
||||
border-radius: 20px 20px 0 0;
|
||||
}
|
||||
}
|
||||
.info{
|
||||
background: #ffffff;
|
||||
padding: 20px;
|
||||
border-radius: 20px;
|
||||
margin-top: -40px;
|
||||
position:relative;
|
||||
z-index:9999;
|
||||
|
||||
.title{
|
||||
font-size: 18px;
|
||||
text-align: left;
|
||||
margin-bottom: 20px;
|
||||
color: #222222;
|
||||
|
||||
}
|
||||
.text{
|
||||
font-size: 14px;
|
||||
color: #575d63;
|
||||
}
|
||||
.details{
|
||||
color: #1d78ff;
|
||||
text-align: right;
|
||||
font-size: 14px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.page{
|
||||
width:1400px;
|
||||
margin:0 auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.case_container_detail{
|
||||
background: #f6f8fa;
|
||||
.banner {
|
||||
width: 100%;
|
||||
height: 320px;
|
||||
background: url("../img/case_banner.png") no-repeat top center;
|
||||
.banner_main {
|
||||
width: 1400px;
|
||||
margin: 0 auto;
|
||||
padding-top: 135px;
|
||||
h2 {
|
||||
font-size: 60px;
|
||||
color: #ffffff;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
p {
|
||||
margin: 0;
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.breadcrumb{
|
||||
width:1400px;
|
||||
margin:0 auto;
|
||||
background:none;
|
||||
padding:0;
|
||||
}
|
||||
.case_main{
|
||||
width: 100%;
|
||||
padding-bottom: 50px;
|
||||
.top{
|
||||
background: #ffffff;
|
||||
height: 60px;
|
||||
padding-top: 20px;
|
||||
|
||||
.top_wrap{
|
||||
width: 1400px;
|
||||
margin: 0 auto;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.title{
|
||||
margin-right: 20px;
|
||||
.line{
|
||||
color: #999999;
|
||||
margin-left: 20px;
|
||||
}
|
||||
}
|
||||
.num{
|
||||
display: flex;
|
||||
.item{
|
||||
color: #666666;
|
||||
padding: 6px 30px;
|
||||
border-radius: 50px;
|
||||
cursor: pointer;
|
||||
margin-right: 20px;
|
||||
&.active{
|
||||
background: #2e57e9;
|
||||
color: #ffffff;
|
||||
}
|
||||
&:hover{
|
||||
background: #2e57e9;
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.new_main{
|
||||
width: 1400px;
|
||||
margin: 0px auto 20px;
|
||||
background: #ffffff;
|
||||
min-height: 600px;
|
||||
border-radius: 4px;
|
||||
box-shadow: 0 0 5px rgba(0, 0, 0, 0.05);
|
||||
padding: 20px 50px;
|
||||
border-top: 3px solid #1d78ff;
|
||||
|
||||
.title{
|
||||
width: 100%;
|
||||
border-bottom: 1px solid #eeeeee;
|
||||
padding-bottom: 20px;
|
||||
text-align: center;
|
||||
|
||||
|
||||
}
|
||||
.main{
|
||||
padding: 20px 0;
|
||||
color: #666666;
|
||||
|
||||
p{
|
||||
text-indent: 2rem;
|
||||
line-height: 2;
|
||||
font-size: 16px;
|
||||
}
|
||||
img{
|
||||
margin: 0 auto;
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*网上公开*/
|
||||
.public_container {
|
||||
background: #f6f8fa;
|
||||
|
||||
.banner {
|
||||
width: 100%;
|
||||
height: 320px;
|
||||
background: url("../img/ziyuan_banner.png") no-repeat top center;
|
||||
.banner_main {
|
||||
width: 1400px;
|
||||
margin: 0 auto;
|
||||
padding-top: 135px;
|
||||
h2 {
|
||||
font-size: 60px;
|
||||
color: #ffffff;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
p {
|
||||
margin: 0;
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
}
|
||||
.new_container {
|
||||
width: 1400px;
|
||||
margin: 20px auto 0;
|
||||
display: flex;
|
||||
.left{
|
||||
width: 250px;
|
||||
box-sizing: border-box;
|
||||
background: #ffffff;
|
||||
border-radius: 4px;
|
||||
.top{
|
||||
width: 100%;
|
||||
background: #3f79ff;
|
||||
text-align: center;
|
||||
color: #ffffff;
|
||||
line-height: 40px;
|
||||
border-radius: 4px 4px 0 0;
|
||||
font-weight: bold;
|
||||
}
|
||||
.main{
|
||||
padding: 10px;
|
||||
.list{
|
||||
margin-bottom: 5px;
|
||||
border-radius: 4px;
|
||||
border-left: 4px solid #ffffff;
|
||||
a{
|
||||
cursor: pointer;
|
||||
color: #222222;
|
||||
display:block;
|
||||
text-decoration: none;
|
||||
border-radius:4px;
|
||||
padding:10px;
|
||||
font-size: 14px;
|
||||
}
|
||||
&:hover{
|
||||
background: #e4ecff;
|
||||
color: #3f79ff;
|
||||
border-left: 4px solid #3f79ff;
|
||||
}
|
||||
|
||||
}
|
||||
.active{
|
||||
background: #e4ecff;
|
||||
border-left: 4px solid #3f79ff;
|
||||
color: #3f79ff;
|
||||
}
|
||||
|
||||
|
||||
&:last-child{
|
||||
border-bottom: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
.right_main{
|
||||
flex: 1;
|
||||
margin-left: 20px;
|
||||
background: #ffffff;
|
||||
padding: 10px;
|
||||
font-size: 14px;
|
||||
|
||||
|
||||
|
||||
a{
|
||||
color: #222222;
|
||||
text-decoration: none;
|
||||
}
|
||||
.wrap{
|
||||
width: 100%;
|
||||
border-bottom: 1px dashed #eeeeee;
|
||||
padding: 20px 10px;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
cursor: pointer;
|
||||
.time{
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
}
|
||||
.wrap_list{
|
||||
margin-bottom:20px;}
|
||||
}
|
||||
.right_main1{
|
||||
flex: 1;
|
||||
margin-left: 20px;
|
||||
background: #ffffff;
|
||||
padding: 10px;
|
||||
border-top: 4px solid #1d78ff;
|
||||
border-radius: 4px 4px 0 0;
|
||||
|
||||
.top{
|
||||
text-align: center;
|
||||
border-bottom: 1px solid #eeeeee;
|
||||
padding-bottom: 10px;
|
||||
|
||||
.title{
|
||||
font-weight: bold;
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.time{
|
||||
color: #999999;
|
||||
font-size: 14px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.new_main{
|
||||
|
||||
.title{
|
||||
width: 100%;
|
||||
border-bottom: 1px solid #eeeeee;
|
||||
padding-bottom: 20px;
|
||||
font-size: 1.5em;
|
||||
text-align: center;
|
||||
|
||||
.time{
|
||||
color: #999999;
|
||||
}
|
||||
}
|
||||
.main{
|
||||
padding: 20px 0;
|
||||
color: #666666;
|
||||
p{
|
||||
text-indent: 2rem;
|
||||
line-height: 2;
|
||||
font-size: 14px;
|
||||
}
|
||||
img{
|
||||
margin: 0 auto;
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
.bottom{
|
||||
width: 100%;
|
||||
margin-top:20px;
|
||||
.item{
|
||||
padding: 20px;
|
||||
box-shadow: 0 0 5px rgba(0, 0, 0, 0.05);
|
||||
margin-bottom: 20px;
|
||||
cursor: pointer;
|
||||
font-size: 14px;
|
||||
|
||||
.previous{
|
||||
font-size: 14px;
|
||||
margin-bottom: 20px;
|
||||
width:80px;
|
||||
}
|
||||
.title{
|
||||
font-size: 14px;
|
||||
}
|
||||
.info{
|
||||
width: 100%;
|
||||
color: #666666;
|
||||
a{
|
||||
color: #666666;
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
&:hover{
|
||||
box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.about_container{
|
||||
background: #f6f8fa;
|
||||
.banner{
|
||||
width: 100%;
|
||||
height: 320px;
|
||||
background: url("../img/about_banner.png") no-repeat top center;
|
||||
.banner_main{
|
||||
width: 1400px;
|
||||
margin: 0 auto;
|
||||
padding-top: 135px;
|
||||
h2{
|
||||
font-size: 60px;
|
||||
color: #014ea0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
p{
|
||||
margin: 0;
|
||||
color: #323232;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
.new_container {
|
||||
width: 1400px;
|
||||
margin: 20px auto 0;
|
||||
display: flex;
|
||||
.left{
|
||||
width: 250px;
|
||||
box-sizing: border-box;
|
||||
background: #ffffff;
|
||||
border-radius: 4px;
|
||||
.top{
|
||||
width: 100%;
|
||||
background: #3f79ff;
|
||||
text-align: center;
|
||||
color: #ffffff;
|
||||
line-height: 40px;
|
||||
border-radius: 4px 4px 0 0;
|
||||
font-weight: bold;
|
||||
}
|
||||
.main{
|
||||
padding: 10px;
|
||||
.list{
|
||||
margin-bottom: 5px;
|
||||
border-radius: 4px;
|
||||
border-left: 4px solid #ffffff;
|
||||
a{
|
||||
cursor: pointer;
|
||||
color: #222222;
|
||||
display:block;
|
||||
text-decoration: none;
|
||||
border-radius:4px;
|
||||
padding:10px;
|
||||
font-size: 14px;
|
||||
}
|
||||
&:hover{
|
||||
background: #e4ecff;
|
||||
color: #3f79ff;
|
||||
border-left: 4px solid #3f79ff;
|
||||
}
|
||||
|
||||
}
|
||||
.active{
|
||||
background: #e4ecff;
|
||||
border-left: 4px solid #3f79ff;
|
||||
color: #3f79ff;
|
||||
}
|
||||
|
||||
|
||||
&:last-child{
|
||||
border-bottom: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
.right_main{
|
||||
flex: 1;
|
||||
margin-left: 20px;
|
||||
background: #ffffff;
|
||||
padding: 10px;
|
||||
font-size: 14px;
|
||||
border-top: 4px solid #1d78ff;
|
||||
border-radius: 4px 4px 0 0;
|
||||
|
||||
a{
|
||||
color: #222222;
|
||||
text-decoration: none;
|
||||
}
|
||||
.wrap{
|
||||
width: 100%;
|
||||
border-bottom: 1px dashed #eeeeee;
|
||||
padding: 20px 10px;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
cursor: pointer;
|
||||
.time{
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
}
|
||||
.wrap_list{
|
||||
margin-bottom:20px;}
|
||||
}
|
||||
.right_main1{
|
||||
flex: 1;
|
||||
margin-left: 20px;
|
||||
background: #ffffff;
|
||||
padding: 10px;
|
||||
border-top: 4px solid #1d78ff;
|
||||
border-radius: 4px 4px 0 0;
|
||||
|
||||
.top{
|
||||
text-align: center;
|
||||
border-bottom: 1px solid #eeeeee;
|
||||
padding-bottom: 10px;
|
||||
|
||||
.title{
|
||||
font-weight: bold;
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.time{
|
||||
color: #999999;
|
||||
font-size: 14px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.new_main{
|
||||
|
||||
.title{
|
||||
width: 100%;
|
||||
border-bottom: 1px solid #eeeeee;
|
||||
padding-bottom: 20px;
|
||||
font-size: 1.5em;
|
||||
text-align: center;
|
||||
|
||||
.time{
|
||||
color: #999999;
|
||||
}
|
||||
}
|
||||
.main{
|
||||
padding: 20px 0;
|
||||
color: #666666;
|
||||
p{
|
||||
text-indent: 2rem;
|
||||
line-height: 2;
|
||||
font-size: 14px;
|
||||
}
|
||||
img{
|
||||
margin: 0 auto;
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
.bottom{
|
||||
width: 100%;
|
||||
margin-top:20px;
|
||||
.item{
|
||||
padding: 20px;
|
||||
box-shadow: 0 0 5px rgba(0, 0, 0, 0.05);
|
||||
margin-bottom: 20px;
|
||||
cursor: pointer;
|
||||
font-size: 14px;
|
||||
|
||||
.previous{
|
||||
font-size: 14px;
|
||||
margin-bottom: 20px;
|
||||
width:80px;
|
||||
}
|
||||
.title{
|
||||
font-size: 14px;
|
||||
}
|
||||
.info{
|
||||
width: 100%;
|
||||
color: #666666;
|
||||
a{
|
||||
color: #666666;
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
&:hover{
|
||||
box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
.message_container{
|
||||
width:1400px;
|
||||
margin:0 auto;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -15,92 +15,57 @@
|
|||
<link rel="stylesheet" href="${files}/vendor/photoswipe/dist/default-skin/default-skin.css">
|
||||
<script src="${files}/vendor/photoswipe/dist/photoswipe.min.js"></script>
|
||||
<script src="${files}/vendor/photoswipe/dist/photoswipe-ui-default.min.js"></script>
|
||||
<style>
|
||||
.article-content img{
|
||||
max-width: 100%;
|
||||
}
|
||||
</style>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
[#include 'inc_header.html'/]
|
||||
[#include 'inc_message_box.html'/]
|
||||
<div class="bg-gray-200">
|
||||
<div class="container">
|
||||
<nav class="row" aria-label="breadcrumb">
|
||||
<ol class="col list-inline my-2">
|
||||
<div class="new_container">
|
||||
<div class="banner">
|
||||
<div class="banner_main">
|
||||
<h2>新闻中心</h2>
|
||||
<p>安全第一 预防为主 综合治理</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="new_container_detail">
|
||||
<nav class="breadcrumb">
|
||||
<ol class="list-inline">
|
||||
<li class="list-inline-item"><a href="${site.url}">首页</a></li>
|
||||
[#list channel.paths as c]
|
||||
<li class="list-inline-item">/</li>
|
||||
<li class="list-inline-item">[@A bean=c/]</li>
|
||||
<li class="list-inline-item">/</li>
|
||||
<li class="list-inline-item">[@A bean=c/]</li>
|
||||
[/#list]
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container mt-4">
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
<h3 class="cm-ff-yh">${article.title}</h3>
|
||||
[#if article.tags?size gt 0]
|
||||
<div class="mt-2">
|
||||
[#list article.tags as tag]
|
||||
<a href="${dy}/tag/${tag.id?c}" class="ml-1"><span class="badge badge-secondary">${tag.name}</span></a>
|
||||
<div class="new_main">
|
||||
<div class="title">
|
||||
<h4>${article.title}</h4>
|
||||
<div class="time">
|
||||
${format(article.publishDate, 'yyyy-MM-dd HH:mm')}
|
||||
[#if article.source??]<span class="ml-2">${article.source}</span>[/#if]
|
||||
[#if article.author??]<span class="ml-2">${article.author}</span>[/#if]
|
||||
<i class="ml-2 far fa-eye"></i> <span id="views"></span>
|
||||
<script>
|
||||
axios.get('${api}/article/view/${article.id?c}').then(function (response) {
|
||||
$('#views').text(response.data);
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
[#if article.imageList?size > 0]
|
||||
<div class="pt-2">
|
||||
[#list article.imageList as image]
|
||||
<figure class="figure mt-3">
|
||||
<img src="${image.url}" class="figure-img img-fluid gallery-img" alt="${image.description}">
|
||||
<figcaption><span class="mr-2"><strong>${image_index+1}</strong>/${article.imageList?size}</span>${image.description}</figcaption>
|
||||
</figure>
|
||||
[/#list]
|
||||
</div>
|
||||
[/#if]
|
||||
<div class="mt-2 pb-2 border-bottom small text-muted">
|
||||
<span>${format(article.publishDate, 'yyyy-MM-dd HH:mm')}</span>
|
||||
[#if article.source??]<span class="ml-2">${article.source}</span>[/#if]
|
||||
[#if article.author??]<span class="ml-2">${article.author}</span>[/#if]
|
||||
<i class="ml-2 far fa-eye"></i> <span id="views"></span>
|
||||
<script>
|
||||
axios.get('${api}/article/view/${article.id?c}').then(function (response) {
|
||||
$('#views').text(response.data);
|
||||
});
|
||||
</script>
|
||||
<div class="main">
|
||||
[#noescape]${article.text!}[/#noescape]
|
||||
</div>
|
||||
[#if article.video??]
|
||||
<div class="mt-4">
|
||||
<video style="max-width:100%;" controls>
|
||||
<source src="${article.video}" type="video/mp4">
|
||||
您的浏览器不支持视频(Video)标签。
|
||||
</video>
|
||||
</div>
|
||||
[/#if]
|
||||
[#if article.audio??]
|
||||
<div class="mt-4">
|
||||
<audio style="width:100%;" controls>
|
||||
<source src="${article.audio}">
|
||||
您的浏览器不支持音频(Audio)标签
|
||||
</audio>
|
||||
</div>
|
||||
[/#if]
|
||||
[#if article.imageList?size > 0]
|
||||
<div class="pt-2">
|
||||
[#list article.imageList as image]
|
||||
<figure class="figure mt-3">
|
||||
<img src="${image.url}" class="figure-img img-fluid gallery-img" alt="${image.description}">
|
||||
<figcaption><span class="mr-2"><strong>${image_index+1}</strong>/${article.imageList?size}</span>${image.description}</figcaption>
|
||||
</figure>
|
||||
[/#list]
|
||||
</div>
|
||||
[/#if]
|
||||
<div class="mt-4 article-content">[#noescape]${article.text!}[/#noescape]</div>
|
||||
[#if article.fileList?size > 0]
|
||||
<div class="mt-4 bg-light">附件下载</div>
|
||||
<ul class="mt-2 list-unstyled small">
|
||||
[#list article.fileList as file]
|
||||
<li><i class="fas fa-download text-primary"></i> <a class="article-download">${file.name}</a></li>
|
||||
[/#list]
|
||||
</ul>
|
||||
<script>
|
||||
axios.get('${api}/article/download-params/${article.id?c}').then(function (response) {
|
||||
$('.article-download').each(function (index, element) {
|
||||
$(element).attr('href', '${dy}/download-file/${article.id?c}/' + index + '?' + response.data)
|
||||
});
|
||||
})
|
||||
</script>
|
||||
[/#if]
|
||||
<div class="lead d-flex justify-content-center text-info">
|
||||
<div class="cm-pointer" onclick="voteUp()"><i class="far fa-thumbs-up"></i> <span id="ups"></span></div>
|
||||
<div class="cm-pointer ml-4" onclick="voteDown()"><i class="far fa-thumbs-down"></i> <span id="downs"></span></div>
|
||||
|
|
@ -136,74 +101,27 @@
|
|||
});
|
||||
</script>
|
||||
|
||||
<ul class="mt-4 list-unstyled">
|
||||
<div class="bottom">
|
||||
[@ArticleNext id=article.id order=article.order channelId=article.channelId isDesc=article.channel.orderDesc; bean]
|
||||
<li class="text-truncate mt-2">
|
||||
<strong>上一条:</strong>[#if bean??][@A bean=bean class="cm-link"/][#else]没有了[/#if]
|
||||
</li>
|
||||
<div class="item">
|
||||
<div class="previous">上一条:</div>
|
||||
<div class="info"> [#if bean??][@A bean=bean class="cm-link"/][#else]没有了[/#if]</div>
|
||||
</div>
|
||||
[/@ArticleNext]
|
||||
[@ArticlePrev id=article.id order=article.order channelId=article.channelId isDesc=article.channel.orderDesc; bean]
|
||||
<li class="text-truncate mt-2">
|
||||
<strong>下一条:</strong>[#if bean??][@A bean=bean class="cm-link"/][#else]没有了[/#if]
|
||||
</li>
|
||||
[/@ArticlePrev]
|
||||
</ul>
|
||||
|
||||
<h5 class="mt-4 border-bottom"><span class="cm-block-head-bottom">相关新闻</span></h5>
|
||||
[@EsArticleList q=article.title excludeId=article.id limit=5; list]
|
||||
<ul class="list-unstyled mt-3">
|
||||
[#list list as bean]
|
||||
<li class="text-truncate mt-2">[@A bean=bean class="cm-link"/]</li>
|
||||
[/#list]
|
||||
</ul>
|
||||
[/@EsArticleList]
|
||||
</div>
|
||||
[#include 'inc_right.html'/]
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Root element of PhotoSwipe. Must have class pswp. -->
|
||||
<div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">
|
||||
<!-- Background of PhotoSwipe. It's a separate element as animating opacity is faster than rgba(). -->
|
||||
<div class="pswp__bg"></div>
|
||||
<!-- Slides wrapper with overflow:hidden. -->
|
||||
<div class="pswp__scroll-wrap">
|
||||
<!-- Container that holds slides. PhotoSwipe keeps only 3 of them in the DOM to save memory. Don't modify these 3 pswp__item elements, data is added later on. -->
|
||||
<div class="pswp__container">
|
||||
<div class="pswp__item"></div>
|
||||
<div class="pswp__item"></div>
|
||||
<div class="pswp__item"></div>
|
||||
</div>
|
||||
<!-- Default (PhotoSwipeUI_Default) interface on top of sliding area. Can be changed. -->
|
||||
<div class="pswp__ui pswp__ui--hidden">
|
||||
<div class="pswp__top-bar">
|
||||
<!-- Controls are self-explanatory. Order can be changed. -->
|
||||
<div class="pswp__counter"></div>
|
||||
<button class="pswp__button pswp__button--close" title="Close (Esc)"></button>
|
||||
<!--<button class="pswp__button pswp__button--share" title="Share"></button>-->
|
||||
<button class="pswp__button pswp__button--fs" title="Toggle fullscreen"></button>
|
||||
<button class="pswp__button pswp__button--zoom" title="Zoom in/out"></button>
|
||||
<!-- Preloader demo https://codepen.io/dimsemenov/pen/yyBWoR -->
|
||||
<!-- element will get class pswp__preloader--active when preloader is running -->
|
||||
<div class="pswp__preloader">
|
||||
<div class="pswp__preloader__icn">
|
||||
<div class="pswp__preloader__cut">
|
||||
<div class="pswp__preloader__donut"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="previous">下一条:</div>
|
||||
<div class="info">[#if bean??][@A bean=bean class="cm-link"/][#else]没有了[/#if]</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">
|
||||
<div class="pswp__share-tooltip"></div>
|
||||
</div>
|
||||
<button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)"></button>
|
||||
<button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)"></button>
|
||||
<div class="pswp__caption">
|
||||
<div class="pswp__caption__center"></div>
|
||||
[/@ArticlePrev]
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
var initPhotoSwipeFromDOM = function (gallerySelector) {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,43 @@
|
|||
<!doctype html>
|
||||
[#escape x as (x)!?html]
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>${channel.title} - ${site.title}</title>
|
||||
<meta name="keywords" content="${channel.seoKeywords}">
|
||||
<meta name="description" content="${channel.seoDescription}">
|
||||
<meta name="_csrf" content="${_csrf.token}"/>
|
||||
<meta name="_csrf_header" content="${_csrf.headerName}"/>
|
||||
[#include 'inc_meta.html'/]
|
||||
[#include 'inc_css.html'/]
|
||||
[#include 'inc_js.html'/]
|
||||
</head>
|
||||
<body>
|
||||
[#include 'inc_header.html'/]
|
||||
[#include 'inc_message_box.html'/]
|
||||
<div class="bg-gray-200">
|
||||
<div class="container">
|
||||
<nav class="row" aria-label="breadcrumb">
|
||||
<ol class="col list-inline my-2">
|
||||
<li class="list-inline-item"><a href="${site.url}">首页</a></li>
|
||||
[#list channel.paths as c]
|
||||
<li class="list-inline-item">/</li>
|
||||
<li class="list-inline-item">[@A bean=c/]</li>
|
||||
[/#list]
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container mt-4">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h3 class="cm-ff-yh">${channel.name}2343</h3>
|
||||
<div class="mt-4 article-content">[#noescape]${channel.text!}[/#noescape]</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
[#include 'inc_footer.html'/]
|
||||
<script>axios.get('${api}/channel/view/${channel.id?c}');</script>
|
||||
</body>
|
||||
</html>
|
||||
[/#escape]
|
||||
|
|
@ -12,70 +12,36 @@
|
|||
</head>
|
||||
<body>
|
||||
[#include 'inc_header.html'/]
|
||||
<div class="bg-gray-200">
|
||||
<div class="container">
|
||||
<nav class="row" aria-label="breadcrumb">
|
||||
<ol class="col list-inline my-2">
|
||||
<li class="list-inline-item"><a href="${site.url}">首页</a></li>
|
||||
[#list channel.paths as c]
|
||||
|
||||
<div class="case_container_detail">
|
||||
<div class="banner">
|
||||
<div class="banner_main">
|
||||
<h2>合作案例</h2>
|
||||
<p>安全第一 预防为主 综合治理</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="case_main">
|
||||
<div class="breadcrumb">
|
||||
<nav class="row" aria-label="breadcrumb">
|
||||
<ol class="col list-inline my-2">
|
||||
<li class="list-inline-item"><a href="${site.url}">首页</a></li>
|
||||
[#list channel.paths as c]
|
||||
<li class="list-inline-item">/</li>
|
||||
<li class="list-inline-item">[@A bean=c/]</li>
|
||||
[/#list]
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container mt-4">
|
||||
<div class="row">
|
||||
<div class="col-md-4 mt-2">
|
||||
<img class="img-fluid" src="${article.image}">
|
||||
</div>
|
||||
<div class="col-md-8 mt-2">
|
||||
<h5 class="cm-ff-yh">${article.title}</h5>
|
||||
<div class="mt-3 pb-3 border-bottom text-muted">
|
||||
<span>${format(article.publishDate, 'yyyy-MM-dd HH:mm')}</span>
|
||||
<i class="ml-2 far fa-eye"></i> <span id="views"></span>
|
||||
<script>
|
||||
axios.get('${api}/article/view/${article.id?c}').then(function (response) {
|
||||
$('#views').text(response.data);
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
<div class="mt-3">
|
||||
<div class="mt-3"><span class="text-muted mr-2">优惠价</span><span class="text-danger">¥<span class="h3">${article.customs['price']}</span></span></div>
|
||||
<div class="mt-3"><span class="text-muted mr-2">厂商指导价</span><span>¥${article.customs['guidePrice']}</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h5 class="border-bottom mt-4"><span class="cm-block-head-bottom">商品介绍</span></h5>
|
||||
<div class="article-content mt-3">[#noescape]${article.text!}[/#noescape]</div>
|
||||
<h5 class="border-bottom mt-4"><span class="cm-block-head-bottom">规格参数</span></h5>
|
||||
<div class="article-content mt-3">[#noescape]${article.customs['specifications']!}[/#noescape]</div>
|
||||
<script>$('.article-content img').addClass('img-fluid');</script>
|
||||
<ul class="mt-4 pt-2 list-unstyled border-top">
|
||||
[@ArticleNext id=article.id order=article.order channelId=article.channelId isDesc=article.channel.orderDesc; bean]
|
||||
<li class="text-truncate mt-2">
|
||||
<strong>上一条:</strong>[#if bean??][@A bean=bean class="cm-link"/][#else]没有了[/#if]
|
||||
</li>
|
||||
[/@ArticleNext]
|
||||
[@ArticlePrev id=article.id order=article.order channelId=article.channelId isDesc=article.channel.orderDesc; bean]
|
||||
<li class="text-truncate mt-2">
|
||||
<strong>下一条:</strong>[#if bean??][@A bean=bean class="cm-link"/][#else]没有了[/#if]
|
||||
</li>
|
||||
[/@ArticlePrev]
|
||||
</ul>
|
||||
|
||||
<h5 class="mt-4 border-bottom"><span class="cm-block-head-bottom">相关新闻</span></h5>
|
||||
[@EsArticleList q=article.title excludeId=article.id limit=5; list]
|
||||
<ul class="list-unstyled mt-3">
|
||||
[#list list as bean]
|
||||
<li class="text-truncate mt-2">[@A bean=bean class="cm-link"/]</li>
|
||||
[/#list]
|
||||
</ul>
|
||||
[/@EsArticleList]
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
<div class="case_main_wrap">
|
||||
<div class="new_main">
|
||||
<div class="title">
|
||||
<h2>${article.title}</h2>
|
||||
</div>
|
||||
<div class="main">
|
||||
[#noescape]${article.text!}[/#noescape]
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,75 @@
|
|||
<!doctype html>
|
||||
[#escape x as (x)!?html]
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>${channel.title} - ${site.title}</title>
|
||||
<meta name="keywords" content="${channel.seoKeywords}">
|
||||
<meta name="description" content="${channel.seoDescription}">
|
||||
[#include 'inc_meta.html'/]
|
||||
[#include 'inc_css.html'/]
|
||||
[#include 'inc_js.html'/]
|
||||
</head>
|
||||
<body>
|
||||
[#include 'inc_header.html'/]
|
||||
<div class="public_container">
|
||||
<div class="banner">
|
||||
<div class="banner_main">
|
||||
<h2>网上公开</h2>
|
||||
<p>安全第一 预防为主 综合治理</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="new_container">
|
||||
<div class="left">
|
||||
<div class="top">网上公开</div>
|
||||
<div class="main">
|
||||
[#assign parent = channel.parent!channel/]
|
||||
[@ChannelList parentId=parent.id isNav='true'; list]
|
||||
[#list list as bean]
|
||||
<div class="list [#if channel.id == bean.id]active[#else][/#if]"><a href="${bean.url}">${bean.name}</a></div>
|
||||
[/#list]
|
||||
[/@ChannelList]
|
||||
</div>
|
||||
</div>
|
||||
<div class="right_main1">
|
||||
<div class="new_main">
|
||||
<div class="title">
|
||||
${article.title}
|
||||
</div>
|
||||
<div class="main">
|
||||
[#noescape]${article.text!}[/#noescape]
|
||||
</div>
|
||||
|
||||
<div class="bottom">
|
||||
[@ArticleNext id=article.id order=article.order channelId=article.channelId isDesc=article.channel.orderDesc; bean]
|
||||
<div class="item">
|
||||
<div class="previous">上一条:</div>
|
||||
<div class="info"> [#if bean??][@A bean=bean class="cm-link"/][#else]没有了[/#if]</div>
|
||||
</div>
|
||||
[/@ArticleNext]
|
||||
[@ArticlePrev id=article.id order=article.order channelId=article.channelId isDesc=article.channel.orderDesc; bean]
|
||||
<div class="item">
|
||||
<div class="previous">下一条:</div>
|
||||
<div class="info">[#if bean??][@A bean=bean class="cm-link"/][#else]没有了[/#if]</div>
|
||||
</div>
|
||||
[/@ArticlePrev]
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[#include 'inc_footer.html'/]
|
||||
<script>axios.get('${api}/channel/view/${channel.id?c}');</script>
|
||||
</body>
|
||||
</html>
|
||||
[/#escape]
|
||||
|
|
@ -13,7 +13,6 @@
|
|||
[#include 'inc_js.html'/]
|
||||
<link rel="stylesheet" href="${files}/vendor/pdfjs-dist/legacy/web/pdf_viewer.css">
|
||||
<style>
|
||||
|
||||
#viewerWrapper {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
|
|
@ -39,10 +38,16 @@
|
|||
<body tabindex="1">
|
||||
[#include 'inc_header.html'/]
|
||||
[#include 'inc_message_box.html'/]
|
||||
<div class="bg-gray-200">
|
||||
<div class="container">
|
||||
<nav class="row" aria-label="breadcrumb">
|
||||
<ol class="col list-inline my-2">
|
||||
<div class="wenku_container">
|
||||
<div class="banner">
|
||||
<div class="banner_main">
|
||||
<h2>政策法规</h2>
|
||||
<p>安全第一 预防为主 综合治理</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="new_container_detail">
|
||||
<nav class="breadcrumb">
|
||||
<ol class="list-inline">
|
||||
<li class="list-inline-item"><a href="${site.url}">首页</a></li>
|
||||
[#list channel.paths as c]
|
||||
<li class="list-inline-item">/</li>
|
||||
|
|
@ -50,236 +55,246 @@
|
|||
[/#list]
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container mt-4">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h3 class="cm-ff-yh">${article.title}</h3>
|
||||
<div class="mt-3 pb-2 border-bottom text-muted">
|
||||
<span>${format(article.publishDate, 'yyyy-MM-dd HH:mm')}</span>
|
||||
[#if article.source??]<span class="ml-2">${article.source}</span>[/#if]
|
||||
[#if article.author??]<span class="ml-2">${article.author}</span>[/#if]
|
||||
<i class="ml-2 far fa-eye"></i> <span id="views"></span>
|
||||
<script>
|
||||
request.get('${api}/article/view/${article.id?c}').then(function (response) {
|
||||
$('#views').text(response.data);
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
[#if article.doc??]
|
||||
<div id="fullContainer" class="mt-3 text-center bg-secondary border">
|
||||
<div id="toolbar" class="position-relative sticky-top p-1">
|
||||
<button class="btn btn-outline-light" onclick="pdfViewer.decreaseScale()">-</button>
|
||||
<button class="btn btn-outline-light ml-2" onclick="pdfViewer.increaseScale()">+</button>
|
||||
<button id="fullscreenButton" class="btn btn-outline-light ml-2" onclick="fullscreen()">全屏</button>
|
||||
<button id="exitFullscreenButton" class="btn btn-outline-light ml-2 cm-hidden" onclick="exitFullscreen()">退出</button>
|
||||
<div class="new_main">
|
||||
<div class="title">
|
||||
<h2>${article.title}</h2>
|
||||
<div class="time">
|
||||
${format(article.publishDate, 'yyyy-MM-dd HH:mm')}
|
||||
[#if article.source??]<span class="ml-2">${article.source}</span>[/#if]
|
||||
[#if article.author??]<span class="ml-2">${article.author}</span>[/#if]
|
||||
<i class="ml-2 far fa-eye"></i> <span id="views"></span>
|
||||
<script>
|
||||
axios.get('${api}/article/view/${article.id?c}').then(function (response) {
|
||||
$('#views').text(response.data);
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
</div>
|
||||
<div id="viewerWrapper" class="bg-secondary viewerWrapperNormal">
|
||||
<div id="viewerContainer" tabindex="0">
|
||||
<div id="viewer" class="pdfViewer"></div>
|
||||
</div>
|
||||
|
||||
<div class="container mt-4">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
[#if article.doc??]
|
||||
<div id="fullContainer" class="mt-3 text-center bg-secondary border">
|
||||
<div id="toolbar" class="position-relative sticky-top p-1">
|
||||
<button class="btn btn-outline-light" onclick="pdfViewer.decreaseScale()">-</button>
|
||||
<button class="btn btn-outline-light ml-2" onclick="pdfViewer.increaseScale()">+</button>
|
||||
<button id="fullscreenButton" class="btn btn-outline-light ml-2" onclick="fullscreen()">全屏</button>
|
||||
<button id="exitFullscreenButton" class="btn btn-outline-light ml-2 cm-hidden" onclick="exitFullscreen()">退出</button>
|
||||
</div>
|
||||
<div id="viewerWrapper" class="bg-secondary viewerWrapperNormal">
|
||||
<div id="viewerContainer" tabindex="0">
|
||||
<div id="viewer" class="pdfViewer"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="module">
|
||||
import * as pdfjsLib from '${files}/vendor/pdfjs-dist/legacy/build/pdf.mjs';
|
||||
import * as pdfjsViewer from '${files}/vendor/pdfjs-dist/legacy/web/pdf_viewer.mjs';
|
||||
|
||||
if (!pdfjsLib.getDocument || !pdfjsViewer.PDFViewer) {
|
||||
alert("Please build the pdfjs-dist library");
|
||||
}
|
||||
|
||||
// The workerSrc property shall be specified.
|
||||
pdfjsLib.GlobalWorkerOptions.workerSrc =
|
||||
"${files}/vendor/pdfjs-dist/legacy/build/pdf.worker.mjs";
|
||||
|
||||
// Some PDFs need external cmaps.
|
||||
const CMAP_URL = "${files}/vendor/pdfjs-dist/cmaps/";
|
||||
const CMAP_PACKED = true;
|
||||
|
||||
const DEFAULT_URL = "${article.doc}";
|
||||
const ENABLE_XFA = true;
|
||||
const SEARCH_FOR = ""; // try "Mozilla";
|
||||
|
||||
// PDF.js 4.x: sandbox is now in /build, not /legacy/build
|
||||
const SANDBOX_BUNDLE_SRC = "${files}/vendor/pdfjs-dist/build/pdf.sandbox.js";
|
||||
|
||||
const container = document.getElementById("viewerContainer");
|
||||
|
||||
const eventBus = new pdfjsViewer.EventBus();
|
||||
|
||||
// (Optionally) enable hyperlinks within PDF files.
|
||||
const pdfLinkService = new pdfjsViewer.PDFLinkService({
|
||||
eventBus,
|
||||
});
|
||||
|
||||
// (Optionally) enable find controller.
|
||||
const pdfFindController = new pdfjsViewer.PDFFindController({
|
||||
eventBus,
|
||||
linkService: pdfLinkService,
|
||||
});
|
||||
|
||||
// (Optionally) enable scripting support.
|
||||
const pdfScriptingManager = new pdfjsViewer.PDFScriptingManager({
|
||||
eventBus,
|
||||
sandboxBundleSrc: SANDBOX_BUNDLE_SRC,
|
||||
});
|
||||
|
||||
// PDF.js 4.x: PDFViewer now requires a "renderer" option, default is "canvas"
|
||||
const pdfViewer = new pdfjsViewer.PDFViewer({
|
||||
container,
|
||||
eventBus,
|
||||
linkService: pdfLinkService,
|
||||
findController: pdfFindController,
|
||||
scriptingManager: pdfScriptingManager,
|
||||
renderer: "canvas"
|
||||
});
|
||||
pdfLinkService.setViewer(pdfViewer);
|
||||
pdfScriptingManager.setViewer(pdfViewer);
|
||||
|
||||
eventBus.on("pagesinit", function () {
|
||||
pdfViewer.currentScaleValue = "page-width";
|
||||
if (SEARCH_FOR) {
|
||||
eventBus.dispatch("find", {type: "", query: SEARCH_FOR});
|
||||
}
|
||||
});
|
||||
|
||||
// Loading document.
|
||||
const loadingTask = pdfjsLib.getDocument({
|
||||
url: DEFAULT_URL,
|
||||
cMapUrl: CMAP_URL,
|
||||
cMapPacked: CMAP_PACKED,
|
||||
enableXfa: ENABLE_XFA,
|
||||
});
|
||||
(async function () {
|
||||
const pdfDocument = await loadingTask.promise;
|
||||
pdfViewer.setDocument(pdfDocument);
|
||||
pdfLinkService.setDocument(pdfDocument, null);
|
||||
})();
|
||||
|
||||
// Expose pdfViewer for zoom controls
|
||||
window.pdfViewer = pdfViewer;
|
||||
|
||||
// Initialize fullscreen functionality
|
||||
var fullContainer = document.getElementById('fullContainer');
|
||||
var viewerWrapper = document.getElementById('viewerWrapper');
|
||||
|
||||
// 进入全屏
|
||||
window.fullscreen = function() {
|
||||
if (fullContainer.requestFullscreen) {
|
||||
fullContainer.requestFullscreen();
|
||||
} else if (fullContainer.mozRequestFullScreen) {
|
||||
fullContainer.mozRequestFullScreen();
|
||||
} else if (fullContainer.webkitRequestFullscreen) {
|
||||
fullContainer.webkitRequestFullscreen();
|
||||
} else if (fullContainer.msRequestFullscreen) {
|
||||
fullContainer.msRequestFullscreen();
|
||||
}
|
||||
};
|
||||
|
||||
// 退出全屏
|
||||
window.exitFullscreen = function() {
|
||||
if (document.exitFullscreen) {
|
||||
document.exitFullscreen();
|
||||
} else if (document.mozCancelFullScreen) {
|
||||
document.mozCancelFullScreen();
|
||||
} else if (document.webkitExitFullscreen) {
|
||||
document.webkitExitFullscreen();
|
||||
} else if (document.msExitFullscreen) {
|
||||
document.msExitFullscreen();
|
||||
}
|
||||
};
|
||||
|
||||
function isFullscreen() {
|
||||
return !!(document.fullscreenElement || document.mozFullScreen || document.webkitIsFullScreen || document.msFullscreenElement);
|
||||
}
|
||||
|
||||
function _fullscreenChange() {
|
||||
if (isFullscreen()) {
|
||||
$('#fullscreenButton').hide();
|
||||
$('#exitFullscreenButton').show();
|
||||
$(fullContainer).addClass('overflow-auto');
|
||||
$(viewerWrapper).addClass('viewerWrapperFull').removeClass('viewerWrapperNormal');
|
||||
$('#viewerContainer').focus();
|
||||
} else {
|
||||
$('#fullscreenButton').show();
|
||||
$('#exitFullscreenButton').hide();
|
||||
$(fullContainer).removeClass('overflow-auto');
|
||||
$(viewerWrapper).addClass('viewerWrapperNormal').removeClass('viewerWrapperFull');
|
||||
}
|
||||
}
|
||||
|
||||
function _addFullscreenChangeListeners() {
|
||||
window.addEventListener("fullscreenchange", _fullscreenChange);
|
||||
window.addEventListener("mozfullscreenchange", _fullscreenChange);
|
||||
window.addEventListener("webkitfullscreenchange", _fullscreenChange);
|
||||
window.addEventListener("MSFullscreenChange", _fullscreenChange);
|
||||
}
|
||||
|
||||
_addFullscreenChangeListeners();
|
||||
</script>
|
||||
[/#if]
|
||||
<div class="mt-4" id="articleText">[#noescape]${article.text!}[/#noescape]</div>
|
||||
<div class="lead d-flex justify-content-center text-info">
|
||||
<div class="cm-pointer" onclick="voteUp()"><i class="far fa-thumbs-up"></i> <span id="ups"></span></div>
|
||||
<div class="cm-pointer ml-4" onclick="voteDown()"><i class="far fa-thumbs-down"></i> <span id="downs"></span></div>
|
||||
</div>
|
||||
<script>
|
||||
function voteUp() {
|
||||
fetchCsrf().then(function () {
|
||||
request.post('${api}/article/up/${article.id?c}').then(function (response) {
|
||||
if (response.data <= 0) {
|
||||
alert("您已经参与过一次!");
|
||||
return;
|
||||
}
|
||||
$('#ups').text(response.data);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function voteDown() {
|
||||
fetchCsrf().then(function () {
|
||||
request.post('${api}/article/down/${article.id?c}').then(function (response) {
|
||||
if (response.data <= 0) {
|
||||
alert("您已经参与过一次!");
|
||||
return;
|
||||
}
|
||||
$('#downs').text(response.data);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
request.get('${api}/article/buffer/${article.id?c}').then(function (response) {
|
||||
$('#ups').text(response.data.ups);
|
||||
$('#downs').text(response.data.downs);
|
||||
});
|
||||
$('#articleText img').addClass('img-fluid');
|
||||
</script>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="module">
|
||||
import * as pdfjsLib from '${files}/vendor/pdfjs-dist/legacy/build/pdf.mjs';
|
||||
import * as pdfjsViewer from '${files}/vendor/pdfjs-dist/legacy/web/pdf_viewer.mjs';
|
||||
|
||||
if (!pdfjsLib.getDocument || !pdfjsViewer.PDFViewer) {
|
||||
alert("Please build the pdfjs-dist library");
|
||||
}
|
||||
|
||||
// The workerSrc property shall be specified.
|
||||
pdfjsLib.GlobalWorkerOptions.workerSrc =
|
||||
"${files}/vendor/pdfjs-dist/legacy/build/pdf.worker.mjs";
|
||||
|
||||
// Some PDFs need external cmaps.
|
||||
const CMAP_URL = "${files}/vendor/pdfjs-dist/cmaps/";
|
||||
const CMAP_PACKED = true;
|
||||
|
||||
const DEFAULT_URL = "${article.doc}";
|
||||
const ENABLE_XFA = true;
|
||||
const SEARCH_FOR = ""; // try "Mozilla";
|
||||
|
||||
// PDF.js 4.x: sandbox is now in /build, not /legacy/build
|
||||
const SANDBOX_BUNDLE_SRC = "${files}/vendor/pdfjs-dist/build/pdf.sandbox.js";
|
||||
|
||||
const container = document.getElementById("viewerContainer");
|
||||
|
||||
const eventBus = new pdfjsViewer.EventBus();
|
||||
|
||||
// (Optionally) enable hyperlinks within PDF files.
|
||||
const pdfLinkService = new pdfjsViewer.PDFLinkService({
|
||||
eventBus,
|
||||
});
|
||||
|
||||
// (Optionally) enable find controller.
|
||||
const pdfFindController = new pdfjsViewer.PDFFindController({
|
||||
eventBus,
|
||||
linkService: pdfLinkService,
|
||||
});
|
||||
|
||||
// (Optionally) enable scripting support.
|
||||
const pdfScriptingManager = new pdfjsViewer.PDFScriptingManager({
|
||||
eventBus,
|
||||
sandboxBundleSrc: SANDBOX_BUNDLE_SRC,
|
||||
});
|
||||
|
||||
// PDF.js 4.x: PDFViewer now requires a "renderer" option, default is "canvas"
|
||||
const pdfViewer = new pdfjsViewer.PDFViewer({
|
||||
container,
|
||||
eventBus,
|
||||
linkService: pdfLinkService,
|
||||
findController: pdfFindController,
|
||||
scriptingManager: pdfScriptingManager,
|
||||
renderer: "canvas"
|
||||
});
|
||||
pdfLinkService.setViewer(pdfViewer);
|
||||
pdfScriptingManager.setViewer(pdfViewer);
|
||||
|
||||
eventBus.on("pagesinit", function () {
|
||||
pdfViewer.currentScaleValue = "page-width";
|
||||
if (SEARCH_FOR) {
|
||||
eventBus.dispatch("find", {type: "", query: SEARCH_FOR});
|
||||
}
|
||||
});
|
||||
|
||||
// Loading document.
|
||||
const loadingTask = pdfjsLib.getDocument({
|
||||
url: DEFAULT_URL,
|
||||
cMapUrl: CMAP_URL,
|
||||
cMapPacked: CMAP_PACKED,
|
||||
enableXfa: ENABLE_XFA,
|
||||
});
|
||||
(async function () {
|
||||
const pdfDocument = await loadingTask.promise;
|
||||
pdfViewer.setDocument(pdfDocument);
|
||||
pdfLinkService.setDocument(pdfDocument, null);
|
||||
})();
|
||||
|
||||
// Expose pdfViewer for zoom controls
|
||||
window.pdfViewer = pdfViewer;
|
||||
|
||||
// Initialize fullscreen functionality
|
||||
var fullContainer = document.getElementById('fullContainer');
|
||||
var viewerWrapper = document.getElementById('viewerWrapper');
|
||||
|
||||
// 进入全屏
|
||||
window.fullscreen = function() {
|
||||
if (fullContainer.requestFullscreen) {
|
||||
fullContainer.requestFullscreen();
|
||||
} else if (fullContainer.mozRequestFullScreen) {
|
||||
fullContainer.mozRequestFullScreen();
|
||||
} else if (fullContainer.webkitRequestFullscreen) {
|
||||
fullContainer.webkitRequestFullscreen();
|
||||
} else if (fullContainer.msRequestFullscreen) {
|
||||
fullContainer.msRequestFullscreen();
|
||||
}
|
||||
};
|
||||
|
||||
// 退出全屏
|
||||
window.exitFullscreen = function() {
|
||||
if (document.exitFullscreen) {
|
||||
document.exitFullscreen();
|
||||
} else if (document.mozCancelFullScreen) {
|
||||
document.mozCancelFullScreen();
|
||||
} else if (document.webkitExitFullscreen) {
|
||||
document.webkitExitFullscreen();
|
||||
} else if (document.msExitFullscreen) {
|
||||
document.msExitFullscreen();
|
||||
}
|
||||
};
|
||||
|
||||
function isFullscreen() {
|
||||
return !!(document.fullscreenElement || document.mozFullScreen || document.webkitIsFullScreen || document.msFullscreenElement);
|
||||
}
|
||||
|
||||
function _fullscreenChange() {
|
||||
if (isFullscreen()) {
|
||||
$('#fullscreenButton').hide();
|
||||
$('#exitFullscreenButton').show();
|
||||
$(fullContainer).addClass('overflow-auto');
|
||||
$(viewerWrapper).addClass('viewerWrapperFull').removeClass('viewerWrapperNormal');
|
||||
$('#viewerContainer').focus();
|
||||
} else {
|
||||
$('#fullscreenButton').show();
|
||||
$('#exitFullscreenButton').hide();
|
||||
$(fullContainer).removeClass('overflow-auto');
|
||||
$(viewerWrapper).addClass('viewerWrapperNormal').removeClass('viewerWrapperFull');
|
||||
}
|
||||
}
|
||||
|
||||
function _addFullscreenChangeListeners() {
|
||||
window.addEventListener("fullscreenchange", _fullscreenChange);
|
||||
window.addEventListener("mozfullscreenchange", _fullscreenChange);
|
||||
window.addEventListener("webkitfullscreenchange", _fullscreenChange);
|
||||
window.addEventListener("MSFullscreenChange", _fullscreenChange);
|
||||
}
|
||||
|
||||
_addFullscreenChangeListeners();
|
||||
</script>
|
||||
[/#if]
|
||||
<div class="mt-4" id="articleText">[#noescape]${article.text!}[/#noescape]</div>
|
||||
<div class="lead d-flex justify-content-center text-info">
|
||||
<div class="cm-pointer" onclick="voteUp()"><i class="far fa-thumbs-up"></i> <span id="ups"></span></div>
|
||||
<div class="cm-pointer ml-4" onclick="voteDown()"><i class="far fa-thumbs-down"></i> <span id="downs"></span></div>
|
||||
</div>
|
||||
<script>
|
||||
function voteUp() {
|
||||
fetchCsrf().then(function () {
|
||||
request.post('${api}/article/up/${article.id?c}').then(function (response) {
|
||||
if (response.data <= 0) {
|
||||
alert("您已经参与过一次!");
|
||||
return;
|
||||
}
|
||||
$('#ups').text(response.data);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function voteDown() {
|
||||
fetchCsrf().then(function () {
|
||||
request.post('${api}/article/down/${article.id?c}').then(function (response) {
|
||||
if (response.data <= 0) {
|
||||
alert("您已经参与过一次!");
|
||||
return;
|
||||
}
|
||||
$('#downs').text(response.data);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
request.get('${api}/article/buffer/${article.id?c}').then(function (response) {
|
||||
$('#ups').text(response.data.ups);
|
||||
$('#downs').text(response.data.downs);
|
||||
});
|
||||
$('#articleText img').addClass('img-fluid');
|
||||
</script>
|
||||
|
||||
<ul class="mt-4 list-unstyled">
|
||||
<div class="bottom">
|
||||
[@ArticleNext id=article.id order=article.order channelId=article.channelId isDesc=article.channel.orderDesc; bean]
|
||||
<li class="text-truncate mt-2">
|
||||
<strong>上一条:</strong>[#if bean??][@A bean=bean class="cm-link"/][#else]没有了[/#if]
|
||||
</li>
|
||||
<div class="item">
|
||||
<div class="previous">上一条:</div>
|
||||
<div class="info"> [#if bean??][@A bean=bean class="cm-link"/][#else]没有了[/#if]</div>
|
||||
</div>
|
||||
[/@ArticleNext]
|
||||
[@ArticlePrev id=article.id order=article.order channelId=article.channelId isDesc=article.channel.orderDesc; bean]
|
||||
<li class="text-truncate mt-2">
|
||||
<strong>下一条:</strong>[#if bean??][@A bean=bean class="cm-link"/][#else]没有了[/#if]
|
||||
</li>
|
||||
<div class="item">
|
||||
<div class="previous">下一条:</div>
|
||||
<div class="info">[#if bean??][@A bean=bean class="cm-link"/][#else]没有了[/#if]</div>
|
||||
</div>
|
||||
[/@ArticlePrev]
|
||||
</ul>
|
||||
|
||||
<h5 class="mt-4 border-bottom"><span class="cm-block-head-bottom">相关新闻</span></h5>
|
||||
[@EsArticleList q=article.title excludeId=article.id limit=5; list]
|
||||
<ul class="list-unstyled mt-3">
|
||||
[#list list as bean]
|
||||
<li class="text-truncate mt-2">[@A bean=bean class="cm-link"/]</li>
|
||||
[/#list]
|
||||
</ul>
|
||||
[/@EsArticleList]
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[#include 'inc_footer.html'/]
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -14,27 +14,30 @@
|
|||
</head>
|
||||
<body>
|
||||
[#include 'inc_header.html'/]
|
||||
[#include 'inc_message_box.html'/]
|
||||
<div class="bg-gray-200">
|
||||
<div class="container">
|
||||
<nav class="row" aria-label="breadcrumb">
|
||||
<ol class="col list-inline my-2">
|
||||
<li class="list-inline-item"><a href="${site.url}">首页</a></li>
|
||||
[#list channel.paths as c]
|
||||
<li class="list-inline-item">/</li>
|
||||
<li class="list-inline-item">[@A bean=c/]</li>
|
||||
[/#list]
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container mt-4">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h3 class="cm-ff-yh">${channel.name}</h3>
|
||||
<div class="mt-4 article-content">[#noescape]${channel.text!}[/#noescape]</div>
|
||||
<div class="about_container">
|
||||
<div class="banner">
|
||||
<div class="banner_main">
|
||||
<h2>铸诚信 安天下</h2>
|
||||
<p>安全第一 预防为主 综合治理</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="new_container">
|
||||
<div class="left">
|
||||
<div class="top">关于秦安</div>
|
||||
<div class="main">
|
||||
[#assign parent = channel.parent!channel/]
|
||||
[@ChannelList parentId=parent.id isNav='true'; list]
|
||||
[#list list as bean]
|
||||
<div class="list [#if channel.id == bean.id]active[#else][/#if]"><a href="${bean.url}">${bean.name}</a></div>
|
||||
[/#list]
|
||||
[/@ChannelList]
|
||||
</div>
|
||||
</div>
|
||||
<div class="right_main">
|
||||
<h3 class="cm-ff-yh">${channel.name}</h3>
|
||||
<div>[#noescape]${channel.text!}[/#noescape]</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
[#include 'inc_footer.html'/]
|
||||
<script>axios.get('${api}/channel/view/${channel.id?c}');</script>
|
||||
|
|
|
|||
|
|
@ -12,60 +12,60 @@
|
|||
</head>
|
||||
<body>
|
||||
[#include 'inc_header.html'/]
|
||||
<div class="bg-gray-200">
|
||||
<div class="container">
|
||||
<nav class="row" aria-label="breadcrumb">
|
||||
<ol class="col list-inline my-2">
|
||||
[#assign parent = channel.parent!channel/]
|
||||
<li class="list-inline-item"><a class="btn btn-sm [#if parent.id == channel.id]btn-primary[#else]btn-link[/#if]" href="${parent.url}">全部</a></li>
|
||||
[@ChannelList parentId=parent.id; list]
|
||||
[#list list as bean]
|
||||
<li class="list-inline-item"><a class="btn btn-sm [#if channel.id == bean.id]btn-primary[#else]btn-link[/#if]" href="${bean.url}">${bean.name}</a></li>
|
||||
[/#list]
|
||||
[/@ChannelList]
|
||||
</ol>
|
||||
</nav>
|
||||
<div class="case_container">
|
||||
<div class="banner">
|
||||
<div class="banner_main">
|
||||
<h2>合作案例</h2>
|
||||
<p>安全第一 预防为主 综合治理</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container mt-2">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
[#if channel.children?size <= 0]
|
||||
<div>
|
||||
[#assign customsQueryMap={}/]
|
||||
[#list channel.articleModel.fieldList?filter(field->['radio','checkbox','select','multipleSelect']?seqContains(field.type)) as field]
|
||||
<div class="py-1 border-bottom">
|
||||
[#assign param=field.code+'Key'/]
|
||||
<a href="${addParam(channel.url, channel.dynamicUrl, param)}" class="btn btn-sm[#if !Params[param]??] btn-secondary[#else] btn-link text-reset[/#if]">全部${field.name}</a>
|
||||
[@DictList typeId=field.dictTypeId; list]
|
||||
[#list list as dict]
|
||||
<a href="${addParam(channel.url, channel.dynamicUrl, param, dict.value)}" class="btn btn-sm [#if Params[param]! == dict.value]btn-secondary[#else]btn-link text-reset[/#if]">${dict.name}</a>
|
||||
[/#list]
|
||||
[/@DictList]
|
||||
<div class="case_main">
|
||||
<div class="top">
|
||||
<div class="top_wrap">
|
||||
<div class="title">行业 <span class="line">|</span> </div>
|
||||
<div class="num">
|
||||
[#assign parent = channel.parent!channel/]
|
||||
<div class="item"><a class="[#if parent.id == channel.id]active[#else]btn-link[/#if]" href="${parent.url}">全部</a></div>
|
||||
[@ChannelList parentId=parent.id; list]
|
||||
[#list list as bean]
|
||||
<div class="item"><a class="[#if channel.id == bean.id]active[#else]btn-link[/#if]" href="${bean.url}">${bean.name}</a></div>
|
||||
[/#list]
|
||||
[/@ChannelList]
|
||||
</div>
|
||||
[#assign customsQueryMap=customsQueryMap + {'ArrayEQ_@articleExt-mainsJson$'+param+(field.dataType == 'number')?string('_Int',''): Params[param]!}/]
|
||||
[/#list]
|
||||
</div>
|
||||
[/#if]
|
||||
</div>
|
||||
<div class="case_main_wrap">
|
||||
[@ArticlePage channelId=channel.id isIncludeSubChannel='true' Q_=customsQueryMap orderBy=channel.orderDesc?string("sticky_desc,order_desc","sticky_desc,order_asc"); pagedList]
|
||||
<div class="row mx-n1 mb-3">
|
||||
[#list pagedList.content as bean]
|
||||
<div class="col-lg-3 col-6 px-1 mt-3">
|
||||
<div class="card">
|
||||
<div class="p-3 text-center" style="height:180px;"><img src="${bean.image}" class="mw-100 mh-100" alt="${bean.title}"></div>
|
||||
<div class="card-body p-2">
|
||||
<div class="card-text text-truncate">[@A bean=bean class="text-reset stretched-link"]${bean.title}[/@A]</div>
|
||||
<div class="card-text text-danger h5 mt-2"><small>¥</small>${bean.customs['price']}</div>
|
||||
[#list pagedList.content as bean]
|
||||
<div class="item">
|
||||
<div class="img"><img src="${bean.image}" width="100%" height="100%" alt="${bean.title}"></div>
|
||||
<div class="info">
|
||||
<div class="title">[@A bean=bean class="text-reset stretched-link"]${bean.title}[/@A]</div>
|
||||
<div class="text">把危险化学品安全摆在防范化解重大风险的突出位置,推进新一代信息技术和危险化学品安全生产深度融合,实现数字化转型...</div>
|
||||
<div class="details">了解详情 ></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
[/#list]
|
||||
</div>
|
||||
</div>
|
||||
<div class="page">
|
||||
[#include 'inc_page.html'/]
|
||||
[/@ArticlePage]
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[#include 'inc_footer.html'/]
|
||||
<script>axios.get('${api}/channel/view/${channel.id?c}');</script>
|
||||
</body>
|
||||
|
|
|
|||
|
|
@ -12,66 +12,50 @@
|
|||
</head>
|
||||
<body>
|
||||
[#include 'inc_header.html'/]
|
||||
<div class="bg-gray-200">
|
||||
<div class="container">
|
||||
<nav class="row" aria-label="breadcrumb">
|
||||
<ol class="col list-inline my-2">
|
||||
<div class="public_container">
|
||||
<div class="banner">
|
||||
<div class="banner_main">
|
||||
<h2>网上公开</h2>
|
||||
<p>安全第一 预防为主 综合治理</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="new_container">
|
||||
<div class="left">
|
||||
<div class="top">网上公开</div>
|
||||
<div class="main">
|
||||
[#assign parent = channel.parent!channel/]
|
||||
<li class="list-inline-item"><a class="btn btn-sm [#if parent.id == channel.id]btn-primary[#else]btn-link[/#if]" href="${parent.url}">全部</a></li>
|
||||
[@ChannelList parentId=parent.id isNav='true'; list]
|
||||
[#list list as bean]
|
||||
<li class="list-inline-item"><a class="btn btn-sm [#if channel.id == bean.id]btn-primary[#else]btn-link[/#if]" href="${bean.url}">${bean.name}</a></li>
|
||||
<div class="list [#if channel.id == bean.id]active[#else][/#if]"><a href="${bean.url}">${bean.name}</a></div>
|
||||
[/#list]
|
||||
[/@ChannelList]
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container mt-3">
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
<div>
|
||||
[#assign customsQueryMap={}/]
|
||||
[#list channel.articleModel.fieldList?filter(field->['radio','checkbox','select','multipleSelect']?seqContains(field.type)) as field]
|
||||
<div class="py-1 border-bottom">
|
||||
[#assign param=field.code+'Key'/]
|
||||
<a href="${addParam(channel.url, channel.dynamicUrl, param)}" class="btn btn-sm[#if !Params[param]??] btn-secondary[#else] btn-link text-reset[/#if]">全部${field.name}</a>
|
||||
[@DictList typeId=field.dictTypeId; list]
|
||||
[#list list as dict]
|
||||
<a href="${addParam(channel.url, channel.dynamicUrl, param, dict.value)}" class="btn btn-sm [#if Params[param]! == dict.value]btn-secondary[#else]btn-link text-reset[/#if]">${dict.name}</a>
|
||||
[/#list]
|
||||
[/@DictList]
|
||||
</div>
|
||||
[#assign customsQueryMap=customsQueryMap + {'ArrayEQ_@articleExt-mainsJson$'+param+(field.dataType != 'string')?string('_Int',''): Params[param]!}/]
|
||||
[/#list]
|
||||
</div>
|
||||
[@ArticlePage channelId=channel.id isIncludeSubChannel="true" Q_=customsQueryMap orderBy=channel.orderDesc?string("sticky_desc,order_desc","sticky_desc,order_asc"); pagedList]
|
||||
<ul class="list-unstyled">
|
||||
[#list pagedList.content as bean]
|
||||
<li class="mt-3 media border-bottom position-relative pb-3">
|
||||
[#if bean.image??][@A bean=bean class="mr-3"]<img src="${bean.image}" class="rounded-sm cm-media-img" alt="${bean.title}">[/@A][/#if]
|
||||
<div class="media-body">
|
||||
<p class="mt-0 mb-1">[@A bean=bean class="cm-link text-decoration-none"/]</p>
|
||||
<p class="text-muted d-none d-sm-block mb-2">
|
||||
[@A bean=bean class="text-reset small text-decoration-none"]${substring(bean.description,60,'...')}[/@A]
|
||||
</p>
|
||||
<div class="small text-muted mt-3 clearfix">
|
||||
<div class="float-left">
|
||||
<span>[#list bean.channel.paths as c][@A bean=c/][#if c_has_next] > [/#if][/#list]</span>
|
||||
<i class="ml-2 far fa-eye"></i> ${bean.views}
|
||||
</div>
|
||||
<div class="right_main">
|
||||
<div class="wrap_list" >
|
||||
[@ArticlePage channelId=channel.id isIncludeSubChannel="true" Q_=customsQueryMap orderBy=channel.orderDesc?string("sticky_desc,order_desc","sticky_desc,order_asc"); pagedList]
|
||||
[#list pagedList.content as bean]
|
||||
<div class="wrap">
|
||||
<div class="title">[@A bean=bean class="cm-link text-decoration-none"/]</div>
|
||||
<div class="time">${format(bean.publishDate, 'yyyy-MM-dd')}</div>
|
||||
</div>
|
||||
<div class="float-right"><i class="ml-2 far fa-clock"></i> ${format(bean.publishDate, 'yyyy-MM-dd')}</div>
|
||||
</div>
|
||||
[/#list]
|
||||
</div>
|
||||
</li>
|
||||
[/#list]
|
||||
</ul>
|
||||
[#include 'inc_page.html'/]
|
||||
[/@ArticlePage]
|
||||
|
||||
</div>
|
||||
[#include 'inc_right.html'/]
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[#include 'inc_footer.html'/]
|
||||
<script>axios.get('${api}/channel/view/${channel.id?c}');</script>
|
||||
</body>
|
||||
|
|
|
|||
|
|
@ -12,66 +12,82 @@
|
|||
</head>
|
||||
<body>
|
||||
[#include 'inc_header.html'/]
|
||||
<div class="bg-gray-200">
|
||||
<div class="container">
|
||||
<nav class="row" aria-label="breadcrumb">
|
||||
<ol class="col list-inline my-2">
|
||||
[#assign parent = channel.parent!channel/]
|
||||
<li class="list-inline-item"><a class="btn btn-sm [#if parent.id == channel.id]btn-primary[#else]btn-link[/#if]" href="${parent.url}">全部</a></li>
|
||||
[@ChannelList parentId=parent.id; list]
|
||||
[#list list as bean]
|
||||
<li class="list-inline-item"><a class="btn btn-sm [#if channel.id == bean.id]btn-primary[#else]btn-link[/#if]" href="${bean.url}">${bean.name}</a></li>
|
||||
[/#list]
|
||||
[/@ChannelList]
|
||||
</ol>
|
||||
</nav>
|
||||
<div class="wenku_container">
|
||||
<div class="banner">
|
||||
<div class="banner_main">
|
||||
<h2>政策法规</h2>
|
||||
<p>安全第一 预防为主 综合治理</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container mt-3">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div>
|
||||
[#assign customsQueryMap={}/]
|
||||
[#list channel.articleModel.fieldList?filter(field->['radio','checkbox','select','multipleSelect']?seqContains(field.type)) as field]
|
||||
<div class="py-1 border-bottom">
|
||||
[#assign param=field.code+'Key'/]
|
||||
<a href="${addParam(channel.url, channel.dynamicUrl, param)}" class="btn btn-sm[#if !Params[param]??] btn-secondary[#else] btn-link text-reset[/#if]">全部${field.name}</a>
|
||||
[@DictList typeId=field.dictTypeId; list]
|
||||
[#list list as dict]
|
||||
<a href="${addParam(channel.url, channel.dynamicUrl, param,dict.value)}"
|
||||
class="btn btn-sm [#if Params[param]! == dict.value]btn-secondary[#else]btn-link text-reset[/#if]">${dict.name}</a>
|
||||
[/#list]
|
||||
[/@DictList]
|
||||
</div>
|
||||
[#assign customsQueryMap=customsQueryMap + {'ArrayEQ_@articleExt-mainsJson$'+param+(field.dataType != 'string')?string('_Int',''): Params[param]!}/]
|
||||
[/#list]
|
||||
</div>
|
||||
[@ArticlePage channelId=channel.id isIncludeSubChannel='true' Q_=customsQueryMap orderBy=channel.orderDesc?string("sticky_desc,order_desc","sticky_desc,order_asc"); pagedList]
|
||||
<ul class="list-unstyled">
|
||||
[#list pagedList.content as bean]
|
||||
<li class="mt-3 media border-bottom position-relative pb-3">
|
||||
[#if bean.image??][@A bean=bean class="mr-3"]<img src="${bean.image}" class="rounded-sm img-thumbnail cm-media-img" alt="${bean.title}">[/@A][/#if]
|
||||
<div class="media-body">
|
||||
<p class="mt-0 mb-1">[@A bean=bean class="cm-link text-decoration-none"/]</p>
|
||||
<p class="text-muted d-none d-sm-block mb-2">
|
||||
[@A bean=bean class="text-reset small text-decoration-none"]${substring(bean.description,60,'...')}[/@A]
|
||||
</p>
|
||||
<div class="small text-muted mt-3 clearfix">
|
||||
<div class="float-left">
|
||||
<span>[#list bean.channel.paths as c][@A bean=c/][#if c_has_next] > [/#if][/#list]</span>
|
||||
<i class="ml-2 far fa-eye"></i> ${bean.views}
|
||||
</div>
|
||||
<div class="float-right"><i class="ml-2 far fa-clock"></i> ${format(bean.publishDate, 'yyyy-MM-dd')}</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
[/#list]
|
||||
</ul>
|
||||
[#include 'inc_page.html'/]
|
||||
[/@ArticlePage]
|
||||
<div class="new_container">
|
||||
<div class="top">
|
||||
<div class="wrap">
|
||||
[#assign parent = channel.parent!channel/]
|
||||
<div class="list [#if parent.id == channel.id]active[#else][/#if]"><a href="${parent.url}">全部</a></div>
|
||||
[@ChannelList parentId=parent.id isNav='true'; list]
|
||||
[#list list as bean]
|
||||
<div class="list [#if channel.id == bean.id]active[#else][/#if]"><a href="${bean.url}">${bean.name}</a></div>
|
||||
[/#list]
|
||||
[/@ChannelList]
|
||||
</div>
|
||||
</div>
|
||||
<div class="new_main">
|
||||
<div>
|
||||
[#assign customsQueryMap={}/]
|
||||
[#list channel.articleModel.fieldList?filter(field->['radio','checkbox','select','multipleSelect']?seqContains(field.type)) as field]
|
||||
<div class="py-1 border-bottom">
|
||||
[#assign param=field.code+'Key'/]
|
||||
<a href="${addParam(channel.url, channel.dynamicUrl, param)}" class="btn btn-sm[#if !Params[param]??] btn-secondary[#else] btn-link text-reset[/#if]">全部${field.name}</a>
|
||||
[@DictList typeId=field.dictTypeId; list]
|
||||
[#list list as dict]
|
||||
<a href="${addParam(channel.url, channel.dynamicUrl, param,dict.value)}"
|
||||
class="btn btn-sm [#if Params[param]! == dict.value]btn-secondary[#else]btn-link text-reset[/#if]">${dict.name}</a>
|
||||
[/#list]
|
||||
[/@DictList]
|
||||
</div>
|
||||
[#assign customsQueryMap=customsQueryMap + {'ArrayEQ_@articleExt-mainsJson$'+param+(field.dataType != 'string')?string('_Int',''): Params[param]!}/]
|
||||
[/#list]
|
||||
</div>
|
||||
<div class=" mt-3">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
[@ArticlePage channelId=channel.id isIncludeSubChannel='true' Q_=customsQueryMap orderBy=channel.orderDesc?string("sticky_desc,order_desc","sticky_desc,order_asc"); pagedList]
|
||||
[#list pagedList.content as bean]
|
||||
<div class="wrap">
|
||||
|
||||
<div class="item">
|
||||
[#if bean.image??][@A bean=bean class="mr-3"]<img src="${bean.image}" class="rounded-sm img-thumbnail cm-media-img" alt="${bean.title}">[/@A][/#if]
|
||||
<div class="info">
|
||||
<p class="title">[@A bean=bean class="cm-link text-decoration-none"/]</p>
|
||||
<p class="time">
|
||||
[@A bean=bean class="text-reset small text-decoration-none"]${substring(bean.description,60,'...')}[/@A]
|
||||
</p>
|
||||
<div class="small text-muted mt-3 clearfix">
|
||||
<div class="float-left">
|
||||
<span>[#list bean.channel.paths as c][@A bean=c/][#if c_has_next] > [/#if][/#list]</span>
|
||||
<i class="ml-2 far fa-eye"></i> ${bean.views}
|
||||
</div>
|
||||
<div class="float-right"><i class="ml-2 far fa-clock"></i> ${format(bean.publishDate, 'yyyy-MM-dd')}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
[/#list]
|
||||
[#include 'inc_page.html'/]
|
||||
[/@ArticlePage]
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
[#include 'inc_footer.html'/]
|
||||
<script>axios.get('${api}/channel/view/${channel.id?c}');</script>
|
||||
</body>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,50 @@
|
|||
<!doctype html>
|
||||
[#escape x as (x)!?html]
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>${channel.title} - ${site.title}</title>
|
||||
<meta name="keywords" content="${channel.seoKeywords}">
|
||||
<meta name="description" content="${channel.seoDescription}">
|
||||
<meta name="_csrf" content="${_csrf.token}"/>
|
||||
<meta name="_csrf_header" content="${_csrf.headerName}"/>
|
||||
[#include 'inc_meta.html'/]
|
||||
[#include 'inc_css.html'/]
|
||||
[#include 'inc_js.html'/]
|
||||
</head>
|
||||
<body>
|
||||
[#include 'inc_header.html'/]
|
||||
<!--<div class="bg-gray-200">-->
|
||||
<!-- <div class="container">-->
|
||||
<!-- <nav class="row" aria-label="breadcrumb">-->
|
||||
<!-- <ol class="col list-inline my-2">-->
|
||||
<!-- <li class="list-inline-item"><a href="${site.url}">首页</a></li>-->
|
||||
<!-- [#list channel.paths as c]-->
|
||||
<!-- <li class="list-inline-item">/</li>-->
|
||||
<!-- <li class="list-inline-item">[@A bean=c/]</li>-->
|
||||
<!-- [/#list]-->
|
||||
<!-- </ol>-->
|
||||
<!-- </nav>-->
|
||||
<!-- </div>-->
|
||||
<!--</div>-->
|
||||
<!--<div class="container mt-4">-->
|
||||
<!-- <div class="main">-->
|
||||
<!-- [#assign parent = channel.parent!channel/]-->
|
||||
<!-- [@ChannelList parentId=parent.id isNav='true'; list]-->
|
||||
<!-- [#list list as bean]-->
|
||||
<!-- <div class="list [#if channel.id == bean.id]active[#else][/#if]"><a href="${bean.url}">${bean.name}</a></div>-->
|
||||
<!-- [/#list]-->
|
||||
<!-- [/@ChannelList]-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="row">-->
|
||||
<!-- <div class="col-lg-12">-->
|
||||
<!-- <h3 class="cm-ff-yh">${channel.name}2343</h3>-->
|
||||
<!-- <div class="mt-4 article-content">[#noescape]${channel.text!}[/#noescape]</div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!--</div>-->
|
||||
[#include 'inc_footer.html'/]
|
||||
<script>axios.get('${api}/channel/view/${channel.id?c}');</script>
|
||||
</body>
|
||||
</html>
|
||||
[/#escape]
|
||||
|
|
@ -19,11 +19,6 @@
|
|||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[#if !bean_has_next]
|
||||
<script>lastArticleDate = '${bean.publishDate.format()}'</script>
|
||||
[/#if]
|
||||
|
|
|
|||
|
|
@ -10,11 +10,21 @@
|
|||
[#include 'inc_js.html'/]
|
||||
</head>
|
||||
<body>
|
||||
<div class="about_container">
|
||||
<div class="banner">
|
||||
<div class="banner_main">
|
||||
<h2>留言板</h2>
|
||||
<p>安全第一 预防为主 综合治理</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
[#-- 用于当前栏目高亮显示 --]
|
||||
[#assign channelAlias='message-board'/]
|
||||
[#assign headerShadow=true/]
|
||||
[#include 'inc_header.html'/]
|
||||
<div class="container">
|
||||
<div class="message_container">
|
||||
<div class="row">
|
||||
<div class="col mt-1">
|
||||
<div class="d-flex align-items-center py-1 border-bottom">
|
||||
|
|
|
|||
|
|
@ -15,7 +15,15 @@
|
|||
[#assign channelAlias='message-board'/]
|
||||
[#assign headerShadow=true/]
|
||||
[#include 'inc_header.html'/]
|
||||
<div class="container">
|
||||
<div class="about_container">
|
||||
<div class="banner">
|
||||
<div class="banner_main">
|
||||
<h2>留言板</h2>
|
||||
<p>安全第一 预防为主 综合治理</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="message_container">
|
||||
<div class="row">
|
||||
<div class="col mt-3">
|
||||
<div class="d-flex align-items-center py-1 border-bottom">
|
||||
|
|
|
|||
Loading…
Reference in New Issue