feat: 服务、需求市场调整
This commit is contained in:
parent
b933da492c
commit
53517b4594
Binary file not shown.
|
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 1.2 MiB |
@ -4,7 +4,7 @@
|
||||
<div class="footer-box">
|
||||
<div class="footer-box-1">
|
||||
<div class="font-semibold flex items-center btjs-title btjs-title-18">
|
||||
<logo size=30 />平台介绍
|
||||
<logo :size="30" />平台介绍
|
||||
</div>
|
||||
<p class="btjs-text text-gray-400">
|
||||
{{ APP_INTRODUCTION1 }}
|
||||
|
||||
422
txw-mhzc-web/src/pages/index/components/nav/index2.vue
Normal file
422
txw-mhzc-web/src/pages/index/components/nav/index2.vue
Normal file
@ -0,0 +1,422 @@
|
||||
<template>
|
||||
<!-- 顶部菜单栏 -->
|
||||
<div class="nav-box">
|
||||
<div class="logo-box">
|
||||
<img src="@/pages/index/assets/logo-name.png">
|
||||
</div>
|
||||
<div class="menu-box">
|
||||
|
||||
<div v-for="(menu,index) in menuOptions" :key="index">
|
||||
<t-dropdown v-if="menu.child" trigger="hover" :options="menu.child" @click="handleDropdownClick">
|
||||
<div class="menu-title" :class="{'meun-title-active': curPage == menu.name ,'meun-title-disable':menu.disable}" @click="gotoIfreamPage(menu)">
|
||||
<img v-if="menu.icon" :src="menu.icon" width="24px" height="24px" style="margin-right:10px">
|
||||
<span> {{menu.title}} </span>
|
||||
</div>
|
||||
</t-dropdown>
|
||||
<div v-else class="menu-title" :class="{'meun-title-active': curPage == menu.name ,'meun-title-disable':menu.disable}" @click="gotoIfreamPage(menu)">
|
||||
<img v-if="menu.icon" :src="menu.icon" width="24px" height="24px" style="margin-right:10px">
|
||||
<span> {{menu.title}} </span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<div v-if="loginFlag" class="option-box">
|
||||
<div class="gzt">
|
||||
<img src="@/pages/index/assets/home-gzt-icon.png" />
|
||||
<span> 工作台</span>
|
||||
</div>
|
||||
<div style="margin-left:20px; cursor: pointer;" @click="goyhzx">用户中心</div>
|
||||
<div>|</div>
|
||||
<div style="cursor: pointer;" @click="logoutHandler">退出登录</div>
|
||||
</div>
|
||||
<div v-else class="option-box">
|
||||
<div class="gzt">
|
||||
<img src="@/pages/index/assets/home-gzt-icon.png" />
|
||||
<span> 工作台</span>
|
||||
</div>
|
||||
<div style="margin-left:20px; cursor: pointer;">激活</div>
|
||||
<div>|</div>
|
||||
<div style="cursor: pointer;" @click="gologin">登录</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { logout, authorize, init } from '@/pages/index/api/login';
|
||||
import api from '@/pages/index/api/gxzx/index.js';
|
||||
|
||||
export default {
|
||||
name: 'Nav',
|
||||
props: {
|
||||
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
curPage: "home",
|
||||
loginFlag: false, //是否已完成登录
|
||||
|
||||
menuOptions: [
|
||||
{
|
||||
name: 'home',
|
||||
title: '首页',
|
||||
icon: require('@/pages/index/assets/nav-home.png'),
|
||||
},
|
||||
{
|
||||
name: 'tzzx',
|
||||
title: '碳证中心',
|
||||
iframeUrl: 'https://ctn-web-pre.lingshu.net/carbon-index',
|
||||
needLogin: true,
|
||||
clientId: 'client_id_tfwzx',//单点登录接入子系统的标识,由txw_sso_client表配置
|
||||
child: [
|
||||
{
|
||||
name: 'tzcx',
|
||||
title: '碳证查询',
|
||||
value: 'tzcx', //菜单显示需要,同name
|
||||
content: '碳证查询', //菜单显示需要,同title
|
||||
divider: true, //是否显示子菜单分割线
|
||||
needLogin: true, //是否需要登录才能访问
|
||||
clientId: 'client_id_tfwzx',
|
||||
// iframeUrl: 'https://ctn-web-pre.lingshu.net/trustedCarbonQuery/index', //外部系统链接地址
|
||||
iframeUrl: 'https://ctn-web-pre.lingshu.net/trustedCarbonQuery/list?type=carbon-query', //外部系统链接地址
|
||||
},
|
||||
{
|
||||
name: 'tsjfcg',
|
||||
title: '碳数据防篡改',
|
||||
value: 'tsjfcg',
|
||||
content: '碳数据防篡改',
|
||||
divider: true,
|
||||
needLogin: true,
|
||||
clientId: 'client_id_tfwzx',
|
||||
iframeUrl: 'https://ctn-web-pre.lingshu.net/carbon-protection',
|
||||
},
|
||||
{
|
||||
name: 'tzhy',
|
||||
title: '碳证核验',
|
||||
value: 'tzhy',
|
||||
content: '碳证核验',
|
||||
divider: true,
|
||||
needLogin: true,
|
||||
clientId: 'client_id_tfwzx',
|
||||
iframeUrl: 'https://ctn-web-pre.lingshu.net/carbon-verify',
|
||||
},
|
||||
{
|
||||
name: 'tgbcz',
|
||||
title: '碳报告存证',
|
||||
value: 'tgbcz',
|
||||
content: '碳报告存证',
|
||||
divider: true,
|
||||
needLogin: true,
|
||||
clientId: 'client_id_tfwzx',
|
||||
iframeUrl: 'https://ctn-web-pre.lingshu.net/carbon-report-cert',
|
||||
},
|
||||
{
|
||||
name: 'tbgtg',
|
||||
title: '碳报告托管:',
|
||||
value: 'tgbcz',
|
||||
content: '碳报告存证',
|
||||
divider: true,
|
||||
needLogin: true,
|
||||
clientId: 'client_id_tfwzx',
|
||||
iframeUrl: 'https://ctn-web-pre.lingshu.net/carbon-report-hosting',
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: 'fwsc',
|
||||
title: '服务中心',
|
||||
child: [
|
||||
{
|
||||
name: 'tfwsc',
|
||||
title: '碳服务市场',
|
||||
value: 'tfwsc',
|
||||
content: '碳服务市场',
|
||||
divider: true,
|
||||
},
|
||||
{
|
||||
name: 'tjrsc',
|
||||
title: '碳金融市场',
|
||||
value: 'tjrsc',
|
||||
content: '碳金融市场',
|
||||
divider: true,
|
||||
}, {
|
||||
name: 'txqsc',
|
||||
title: '碳需求市场',
|
||||
value: 'txqsc',
|
||||
content: '碳需求市场',
|
||||
divider: true,
|
||||
},
|
||||
{
|
||||
name: 'tsjsc',
|
||||
title: '碳数据市场',
|
||||
value: 'tsjsc',
|
||||
content: '碳数据市场',
|
||||
divider: true,
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: 'gxnl',
|
||||
title: '共性能力',
|
||||
disable: true
|
||||
},
|
||||
{
|
||||
name: 'qych',
|
||||
title: '企业出海',
|
||||
disable: true
|
||||
},
|
||||
{
|
||||
name: 'hyzt',
|
||||
title: '行业专题',
|
||||
disable: true
|
||||
},
|
||||
]
|
||||
};
|
||||
},
|
||||
|
||||
created() {
|
||||
// this.gettfwzxurl();
|
||||
},
|
||||
mounted() {
|
||||
// this.gettfwzxurl();
|
||||
console.log('newUrl', this.$route);
|
||||
this.newUrl = this.$route.query.newUrl;
|
||||
this.nowurl = this.newUrl || '/view/mhzc/home';
|
||||
if (this.$route.name == 'yhzx') {
|
||||
this.nowurl = '/yhzx';
|
||||
}
|
||||
if (this.$route.name == 'newsCenter') {
|
||||
this.nowurl = '/yhzx';
|
||||
}
|
||||
|
||||
const sfdl = window.sessionStorage.getItem('sfdl');
|
||||
if (sfdl) {
|
||||
this.loginFlag = true;
|
||||
this.getWdxxCount();
|
||||
} else {
|
||||
this.loginFlag = false;
|
||||
}
|
||||
},
|
||||
beforeUnmount() { },
|
||||
methods: {
|
||||
//子菜单点击方法
|
||||
handleDropdownClick(menu) {
|
||||
this.gotoIfreamPage(menu); // 直接把子菜单项传入跳转方法
|
||||
},
|
||||
|
||||
gotoIfreamPage(menu) {
|
||||
console.log("当前菜单配置:", menu)
|
||||
|
||||
//判断页面是否开放
|
||||
if (menu.disable) {
|
||||
this.$dialog.alert({
|
||||
header: '提示',
|
||||
body: '该功能暂未开放。',
|
||||
confirmBtn: null
|
||||
})
|
||||
return
|
||||
}
|
||||
//判断页面是否需要登录
|
||||
console.log("当前页面是否需要登录:", menu.needLogin)
|
||||
if (menu.needLogin) {
|
||||
const sfdl = window.sessionStorage.getItem('sfdl'); //是否登录
|
||||
console.log("是否已经登录登录:", sfdl)
|
||||
if (!sfdl) {
|
||||
this.$router.push("/login")
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
this.curPage = menu.name;
|
||||
let iframeUrl = menu.iframeUrl;
|
||||
if (iframeUrl) {
|
||||
//调用login.js内的authorize方法
|
||||
this.$emit('gotoIfreamPage', iframeUrl);
|
||||
} else {
|
||||
this.$emit('gotoPage', this.curPage);
|
||||
}
|
||||
},
|
||||
|
||||
gonewCenter() {
|
||||
window.location.href = `/view/mhzc/yhzx?activeCompo=ggwhgl`;
|
||||
},
|
||||
async getWdxxCount() {
|
||||
try {
|
||||
// const res = await getMxjbxx(prame);
|
||||
const { data } = await api.getWdxxCount();
|
||||
this.xxtxCount = data;
|
||||
console.log('res', data);
|
||||
} catch (error) {
|
||||
this.xxtxCount = 0;
|
||||
console.error('数据加载失败', error);
|
||||
}
|
||||
},
|
||||
async gettfwzxurl() {
|
||||
try {
|
||||
// const res = await getMxjbxx(prame);
|
||||
const { data } = await api.tfwzxurl();
|
||||
this.kxurl = data.kxtfwzx;
|
||||
console.log('res', data);
|
||||
} catch (error) {
|
||||
console.error('数据加载失败', error);
|
||||
}
|
||||
},
|
||||
gologin() {
|
||||
this.$router.push("/login")
|
||||
// window.location.href = `/view/mhzc/login`;
|
||||
},
|
||||
|
||||
goyhzx() {
|
||||
this.$router.push("/yhzx")
|
||||
// window.location.href = `/view/mhzc/yhzx`;
|
||||
},
|
||||
|
||||
|
||||
goSelfChange(menuParams) {
|
||||
const sfdl = window.sessionStorage.getItem('sfdl');
|
||||
if (!sfdl) {
|
||||
if (menuParams == this.kxurl) {
|
||||
window.location.href = `/view/mhzc/login`;
|
||||
return;
|
||||
}
|
||||
if (menuParams == '/view/gxzx/gxzx') {
|
||||
window.location.href = `/view/mhzc/login`;
|
||||
return;
|
||||
}
|
||||
}
|
||||
console.log(11111, this.nowurl, menuParams);
|
||||
this.nowurl = menuParams;
|
||||
if (menuParams == '/view/mhzc/home') {
|
||||
window.location.href = `/view/mhzc/home`;
|
||||
return;
|
||||
}
|
||||
console.log('menuParams', menuParams);
|
||||
// return
|
||||
this.$router.replace({
|
||||
path: '/mhsy/mhNewMain',
|
||||
name: 'mhNewMain', // name为必填项,没有则参数无法传递
|
||||
query: {
|
||||
newUrl: menuParams,
|
||||
// parmasStr: menuParams.menuParmasStr,
|
||||
},
|
||||
});
|
||||
// return;
|
||||
if (this.newUrl) {
|
||||
window.location.reload();
|
||||
}
|
||||
},
|
||||
grxxisShow() {
|
||||
if (!this.hoverxxzxTimeout) {
|
||||
this.hoverxxzxTimeout = setTimeout(() => {
|
||||
this.grxxShow = true;
|
||||
}, 500);
|
||||
}
|
||||
},
|
||||
headMouseLeave() {
|
||||
clearTimeout(this.hoverxxzxTimeout);
|
||||
this.hoverxxzxTimeout = null;
|
||||
this.grxxShow = false;
|
||||
},
|
||||
|
||||
async logoutHandler() {
|
||||
const res = await logout();
|
||||
const resVO = res.data;
|
||||
if (resVO.dcdz) {
|
||||
resVO.forEach((item) => {
|
||||
const { token } = item;
|
||||
const { dcdz } = item;
|
||||
axios.get(
|
||||
dcdz,
|
||||
{},
|
||||
{
|
||||
headers: {
|
||||
'Admin-Token': token,
|
||||
},
|
||||
},
|
||||
);
|
||||
});
|
||||
}
|
||||
sessionStorage.removeItem('sfdl');
|
||||
sessionStorage.removeItem('yhxx');
|
||||
window.location.href = `/view/mhzc/login`;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="css" scoped>
|
||||
.nav-box {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
|
||||
z-index: 9999;
|
||||
|
||||
display: grid;
|
||||
width: 100%;
|
||||
margin: 0 auto;
|
||||
|
||||
color: #fff;
|
||||
background: #009a29;
|
||||
grid-template-columns: 1fr 2fr 1fr;
|
||||
place-items: center;
|
||||
}
|
||||
.logo-box {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.option-box {
|
||||
display: flex;
|
||||
height: 64px;
|
||||
font-family: PingFang SC;
|
||||
font-size: 16px;
|
||||
font-style: regular;
|
||||
font-weight: 400;
|
||||
letter-spacing: 0%;
|
||||
text-align: center;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
leading-trim: none;
|
||||
}
|
||||
|
||||
.option-box .gzt {
|
||||
display: flex;
|
||||
padding: 10px;
|
||||
text-align: center;
|
||||
background: rgba(255, 255, 255, 0.3);
|
||||
border-radius: 6px;
|
||||
justify-content: space-around;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.menu-box {
|
||||
display: grid;
|
||||
width: 100%;
|
||||
height: 64px;
|
||||
font-size: 16px;
|
||||
grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.menu-title {
|
||||
|
||||
display: flex;
|
||||
width: 96px;
|
||||
height: 64px;
|
||||
line-height: 24px;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.meun-title-active {
|
||||
background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.15) 100%);
|
||||
border-bottom: 2px solid #fff;
|
||||
}
|
||||
|
||||
.meun-title-disable {
|
||||
cursor: not-allowed !important;
|
||||
}
|
||||
</style>
|
||||
@ -15,7 +15,16 @@ import './assets/css/theme.css';
|
||||
|
||||
const storeGlobalTypes = Vue.prototype.$storeGlobalTypes;
|
||||
|
||||
|
||||
MessagePlugin.config({
|
||||
placement: 'top', // 位置:top/center
|
||||
offset: [0, 80], // [ 水平偏移,垂直偏移] → 顶部80px
|
||||
zIndex: 9999 // 层级
|
||||
});
|
||||
|
||||
Vue.prototype.$message = MessagePlugin;
|
||||
|
||||
|
||||
Vue.use(GgzcWeb, { store, extSettings });
|
||||
|
||||
|
||||
|
||||
@ -3,6 +3,14 @@ import VueRouter from 'vue-router';
|
||||
import { hasLogin } from '@/pages/index/api/login';
|
||||
import routes from './routes';
|
||||
|
||||
import Main from '@/pages/index/views/main.vue'
|
||||
// import Home2 from '@/pages/index/views/home2/index.vue'
|
||||
// import login from '@/pages/index/views/login/login.vue'
|
||||
// import yhzx from '@/pages/index/views/glxtSy/glxtSy.vue'
|
||||
// import authorize from '@/pages/index/views/dddl/authorize.vue' //单点登录跳转中间页
|
||||
|
||||
|
||||
|
||||
Vue.use(VueRouter);
|
||||
|
||||
const baseRoutes = [
|
||||
@ -12,15 +20,42 @@ const baseRoutes = [
|
||||
},
|
||||
];
|
||||
|
||||
routes.push(...baseRoutes);
|
||||
|
||||
|
||||
const mainRoutes = {
|
||||
path: '/',
|
||||
component: Main,
|
||||
name: 'main',
|
||||
redirect: { name: 'home' },
|
||||
meta: { title: '主入口整体布局' },
|
||||
children: routes,
|
||||
// [
|
||||
// // // 通过meta对象设置路由展示方式
|
||||
// // // 1. isTab: 是否通过tab展示内容, true: 是, false: 否
|
||||
// // // 2. iframeUrl: 是否通过iframe嵌套展示内容, '以http[s]://开头': 是, '': 否
|
||||
// // // 提示: 如需要通过iframe嵌套展示内容, 但不通过tab打开, 请自行创建组件使用iframe处理!
|
||||
// { path: 'home', component: Home2, name: 'home', meta: { title: '首页' } },
|
||||
// { path: 'login', component: login, name: 'login', meta: { title: '登录' } },
|
||||
// { path: 'yhzx', component: yhzx, name: 'yhzx', meta: { title: '用户中心' } },
|
||||
|
||||
// ],
|
||||
beforeEnter(to, from, next) {
|
||||
// let token = Vue.cookie.get('token')
|
||||
// if (!token || !/\S/.test(token)) {
|
||||
// clearLoginInfo()
|
||||
// next({ name: 'login' })
|
||||
// }
|
||||
next()
|
||||
}
|
||||
}
|
||||
|
||||
// routes.push(...baseRoutes);
|
||||
// routes.push(mainRoutes);
|
||||
|
||||
const router = new VueRouter({
|
||||
mode: 'history',
|
||||
base: `${window.STATIC_ENV_CONFIG.ROUTER_PREFIX}/`,
|
||||
routes: [...routes],
|
||||
scrollBehavior(_to, _from, _savedPosition) {
|
||||
return { x: 0, y: 0 };
|
||||
},
|
||||
routes: [mainRoutes],
|
||||
});
|
||||
|
||||
router.beforeEach((to, from, next) => {
|
||||
|
||||
@ -2,11 +2,11 @@ function login() {
|
||||
return import(/* webpackChunkName: "sbfdemo" */ '@/pages/index/views/login/login.vue');
|
||||
}
|
||||
function home() {
|
||||
return import(/* webpackChunkName: "sbfdemo" */ '@/pages/index/views/home/index.vue');
|
||||
}
|
||||
function home2() {
|
||||
return import(/* webpackChunkName: "sbfdemo" */ '@/pages/index/views/home2/index.vue');
|
||||
}
|
||||
// function home2() {
|
||||
// return import(/* webpackChunkName: "sbfdemo" */ '@/pages/index/views/home2/index.vue');
|
||||
// }
|
||||
function yhzx() {
|
||||
return import(/* webpackChunkName: "sbfdemo" */ '@/pages/index/views/glxtSy/glxtSy.vue');
|
||||
}
|
||||
@ -66,6 +66,33 @@ function sjlbc() {
|
||||
function fwscIndex() {
|
||||
return import(/* webpackChunkName: "fwsc" */ '@/pages/index/views/fwsc/index.vue');
|
||||
}
|
||||
|
||||
//企业认证
|
||||
function qyrenzheng() {
|
||||
return import('@/pages/index/views/qyrz/index.vue');
|
||||
}
|
||||
//企业入驻
|
||||
function qyruzhu() {
|
||||
return import('@/pages/index/views/qy-rz/index.vue');
|
||||
}
|
||||
//碳服务供给
|
||||
function tfwgj() {
|
||||
return import('@/pages/index/views/gxfb/tfwgj.vue');
|
||||
}
|
||||
|
||||
//碳服务需求
|
||||
function tfwxq() {
|
||||
return import('@/pages/index/views/gxfb/tfwxq.vue');
|
||||
}
|
||||
|
||||
//绿色交易
|
||||
function lsjy() {
|
||||
return import('@/pages/index/views/lsjy/lsjy.vue');
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
export default [
|
||||
{
|
||||
name: 'login',
|
||||
@ -104,19 +131,19 @@ export default [
|
||||
needLogin: false,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'home2',
|
||||
path: '/home2',
|
||||
component: home2,
|
||||
meta: {
|
||||
title: '首页',
|
||||
isShowSideBar: false,
|
||||
hasHome: true,
|
||||
breadCrumbs: [{ title: '首页', to: '/home2' }],
|
||||
disableBack: true,
|
||||
needLogin: false,
|
||||
},
|
||||
},
|
||||
// {
|
||||
// name: 'home2',
|
||||
// path: '/home2',
|
||||
// component: home2,
|
||||
// meta: {
|
||||
// title: '首页',
|
||||
// isShowSideBar: false,
|
||||
// hasHome: true,
|
||||
// breadCrumbs: [{ title: '首页', to: '/home2' }],
|
||||
// disableBack: true,
|
||||
// needLogin: false,
|
||||
// },
|
||||
// },
|
||||
{
|
||||
name: 'yhzx',
|
||||
path: '/yhzx',
|
||||
@ -128,8 +155,16 @@ export default [
|
||||
breadCrumbs: [{ title: '用户中心', to: '/yhzx' }],
|
||||
disableBack: true,
|
||||
},
|
||||
children: [
|
||||
{ path: 'qyrenzheng', component: qyrenzheng, name: 'qyrenzheng', meta: { title: '企业认证' } },
|
||||
{ path: 'qyruzhu', component: qyruzhu, name: 'qyruzhu', meta: { title: '企业入驻' } },
|
||||
{ path: 'tfwgj', component: tfwgj, name: 'tfwgj', meta: { title: '碳服务供给' } },
|
||||
{ path: 'tfwxq', component: tfwxq, name: 'tfwxq', meta: { title: '碳服务需求' } },
|
||||
{ path: 'ggwhgl', component: newsCenter, name: 'ggwhgl', meta: { title: '消息中心' } },
|
||||
{ path: 'lsjy', component: lsjy, name: 'lsjy', meta: { title: '绿色交易' } },
|
||||
]
|
||||
},
|
||||
{
|
||||
{
|
||||
name: 'newsCenter',
|
||||
path: '/newsCenter',
|
||||
component: newsCenter,
|
||||
@ -167,62 +202,62 @@ export default [
|
||||
component: hyzt,
|
||||
},
|
||||
{
|
||||
name: 'fwsc-fwsc',
|
||||
path: '/fwsc/fwsc',
|
||||
name: 'tfwsc',
|
||||
path: '/tfwsc',
|
||||
component: fwsc,
|
||||
meta: {
|
||||
title: '碳服务市场',
|
||||
isShowSideBar: false,
|
||||
hasHome: true,
|
||||
breadCrumbs: [{ title: '首页', to: '/home' }, { title: '服务中心', to: '' }, { title: '碳服务市场', to: '/fwsc/fwsc' }],
|
||||
breadCrumbs: [{ title: '首页', to: '/home' }, { title: '服务中心', to: '' }, { title: '碳服务市场', to: '/tfwsc' }],
|
||||
disableBack: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'jrsc',
|
||||
path: '/fwsc/jrsc',
|
||||
name: 'tjrsc',
|
||||
path: '/tjrsc',
|
||||
component: jrsc,
|
||||
meta: {
|
||||
title: '碳金融市场',
|
||||
isShowSideBar: false,
|
||||
hasHome: true,
|
||||
breadCrumbs: [{ title: '首页', to: '/home' }, { title: '服务中心', to: '' }, { title: '碳金融市场', to: '/fwsc/jrsc' }],
|
||||
breadCrumbs: [{ title: '首页', to: '/home' }, { title: '服务中心', to: '' }, { title: '碳金融市场', to: '/tjrsc' }],
|
||||
disableBack: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'xqsc',
|
||||
path: '/fwsc/xqsc',
|
||||
name: 'txqsc',
|
||||
path: '/txqsc',
|
||||
component: xqsc,
|
||||
meta: {
|
||||
title: '碳需求市场',
|
||||
isShowSideBar: false,
|
||||
hasHome: true,
|
||||
breadCrumbs: [{ title: '首页', to: '/home' }, { title: '服务中心', to: '' }, { title: '碳需求市场', to: '/fwsc/xqsc' }],
|
||||
breadCrumbs: [{ title: '首页', to: '/home' }, { title: '服务中心', to: '' }, { title: '碳需求市场', to: '/txqsc' }],
|
||||
disableBack: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'fwsc-sjsc',
|
||||
path: '/fwsc/sjsc',
|
||||
name: 'tsjsc',
|
||||
path: '/tsjsc',
|
||||
component: sjsc,
|
||||
meta: {
|
||||
title: '碳数据市场',
|
||||
isShowSideBar: false,
|
||||
hasHome: true,
|
||||
breadCrumbs: [{ title: '首页', to: '/home' }, { title: '服务中心', to: '' }, { title: '碳数据市场', to: '/fwsc/sjsc' }],
|
||||
breadCrumbs: [{ title: '首页', to: '/home' }, { title: '服务中心', to: '' }, { title: '碳数据市场', to: '/tsjsc' }],
|
||||
disableBack: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'fwsc-sjlbc',
|
||||
path: '/fwsc/sjlbc',
|
||||
name: 'tsjlbc',
|
||||
path: '/tsjlbc',
|
||||
component: sjlbc,
|
||||
meta: {
|
||||
title: '数据列表',
|
||||
isShowSideBar: false,
|
||||
hasHome: true,
|
||||
breadCrumbs: [{ title: '首页', to: '/home' }, { title: '服务中心', to: '' }, { title: '碳数据市场', to: '/fwsc/sjsc' }, { title: '数据列表', to: '/fwsc/sjlbc' }],
|
||||
breadCrumbs: [{ title: '首页', to: '/home' }, { title: '服务中心', to: '' }, { title: '碳数据市场', to: '/fwscsjlbc' }],
|
||||
disableBack: true,
|
||||
},
|
||||
},
|
||||
|
||||
@ -41,6 +41,7 @@ export default {
|
||||
|
||||
this.doAuthorize(true,this.loginForm.scopes,null).then(res => {
|
||||
const href = res.data
|
||||
console.log("authorize.res=>",res)
|
||||
if (!href) {
|
||||
console.log('自动授权未通过!')
|
||||
return;
|
||||
|
||||
@ -1,7 +1,5 @@
|
||||
<template>
|
||||
<div class="fwsc-container">
|
||||
<NewNav />
|
||||
|
||||
<!-- 面包屑导航 -->
|
||||
<BreadcrumbNav currentPage="碳服务市场" />
|
||||
|
||||
@ -27,6 +25,23 @@
|
||||
<!-- 左侧筛选栏 -->
|
||||
<aside class="filter-sidebar">
|
||||
<div class="filter-sidebar-content">
|
||||
<!-- 内容搜索 -->
|
||||
<div class="filter-section">
|
||||
<div class="filter-title">内容搜索</div>
|
||||
<t-input v-model="filter.nr" placeholder="请输入关键词" @enter="onSearch" />
|
||||
</div>
|
||||
|
||||
<div class="filter-buttons">
|
||||
<t-button theme="primary" @click="onSearch">查询</t-button>
|
||||
<t-button theme="default" @click="onReset">重置</t-button>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- 只展示收藏项 -->
|
||||
<div class="filter-section">
|
||||
<t-checkbox v-model="filter.zzsscx" @change="onSearch">只展示收藏项</t-checkbox>
|
||||
</div>
|
||||
|
||||
<!-- 服务类型 -->
|
||||
<div class="filter-section">
|
||||
<div class="filter-title">服务类型</div>
|
||||
@ -38,26 +53,10 @@
|
||||
<!-- 服务企业 -->
|
||||
<div class="filter-section">
|
||||
<div class="filter-title">服务企业</div>
|
||||
<div class="filter-options">
|
||||
<div class="filter-options enterprise-options">
|
||||
<t-checkbox-group v-model="filter.qyuuids" :options="qyOptions" @change="onSearch" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 只展示收藏项 -->
|
||||
<div class="filter-section">
|
||||
<t-checkbox v-model="filter.zzsscx" @change="onSearch">只展示收藏项</t-checkbox>
|
||||
</div>
|
||||
|
||||
<!-- 内容搜索 -->
|
||||
<div class="filter-section">
|
||||
<div class="filter-title">内容搜索</div>
|
||||
<t-input v-model="filter.nr" placeholder="请输入关键词" @enter="onSearch" />
|
||||
</div>
|
||||
|
||||
<div class="filter-buttons">
|
||||
<t-button theme="primary" @click="onSearch">查询</t-button>
|
||||
<t-button theme="default" @click="onReset">重置</t-button>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
|
||||
@ -207,10 +206,10 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
navTabs: [
|
||||
{ label: '碳服务市场', path: '/fwsc/fwsc' },
|
||||
{ label: '碳需求市场', path: '/fwsc/xqsc' },
|
||||
{ label: '碳金融市场', path: '/fwsc/jrsc' },
|
||||
{ label: '碳数据市场', path: '/fwsc/sjsc' },
|
||||
{ label: '碳服务市场', path: '/tfwsc' },
|
||||
{ label: '碳需求市场', path: '/txqsc' },
|
||||
{ label: '碳金融市场', path: '/tjrsc' },
|
||||
{ label: '碳数据市场', path: '/tsjsc' },
|
||||
],
|
||||
// 筛选条件
|
||||
filter: {
|
||||
@ -338,7 +337,7 @@ export default {
|
||||
});
|
||||
}
|
||||
this.cardList = data.records || [];
|
||||
this.page.total = data.total || 0;
|
||||
this.page.total = Number(data.total || 0);
|
||||
} catch (error) {
|
||||
this.cardList = [];
|
||||
this.page.total = 0;
|
||||
@ -433,7 +432,7 @@ export default {
|
||||
},
|
||||
onPublishSuccessCancel() {
|
||||
this.publishSuccessVisible = false;
|
||||
this.$router.push('/fwsc/fwsc');
|
||||
this.$router.push('/tfwsc');
|
||||
},
|
||||
onPublishSuccessClose() {
|
||||
this.publishSuccessVisible = false;
|
||||
@ -550,12 +549,18 @@ export default {
|
||||
font-size: 14px;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
&.enterprise-options {
|
||||
max-height: 200px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
}
|
||||
|
||||
.filter-buttons {
|
||||
display: flex;
|
||||
gap: 8px;
|
||||
margin-top: 16px;
|
||||
margin-bottom: 16px;
|
||||
|
||||
.t-button {
|
||||
flex: 1;
|
||||
@ -573,7 +578,7 @@ export default {
|
||||
.service-card {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
width: calc((100% - 40px) / 3);
|
||||
width: calc((100% - 20px) / 2);
|
||||
overflow: hidden;
|
||||
background: #fff;
|
||||
border-radius: 12px;
|
||||
@ -644,20 +649,18 @@ export default {
|
||||
}
|
||||
|
||||
.card-content {
|
||||
flex: 1;
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
.card-desc {
|
||||
display: box;
|
||||
margin-bottom: 12px;
|
||||
display: block;
|
||||
height: 70px;
|
||||
overflow: hidden;
|
||||
font-size: 14px;
|
||||
line-height: 1.6;
|
||||
color: #666;
|
||||
text-overflow: ellipsis;
|
||||
-webkit-line-clamp: 3;
|
||||
box-orient: vertical;
|
||||
}
|
||||
|
||||
.card-tags {
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
<template>
|
||||
<div class="fwsc-page">
|
||||
<NewNav />
|
||||
<div class="main-content">
|
||||
<!-- 当前位置导航 -->
|
||||
<div class="breadcrumb-box">
|
||||
@ -22,33 +21,33 @@
|
||||
<div class="services-section">
|
||||
<div class="services-grid">
|
||||
<!-- 碳服务市场 -->
|
||||
<div class="service-card" @click="goToPage('/fwsc/fwsc')">
|
||||
<div class="service-card" @click="goToPage('/tfwsc')">
|
||||
<div class="service-card-icon">
|
||||
<span style="font-size: 48px">🌐</span>
|
||||
</div>
|
||||
<h3 class="service-card-title">碳服务市场</h3>
|
||||
<p class="service-card-desc">汇聚全国优质第三方服务机构,提供从核算到认证的全链条专业服务。</p>
|
||||
<div class="service-card-buttons">
|
||||
<t-button theme="primary" variant="outline" @click.stop="goToPage('/fwsc/fwsc')">浏览服务信息</t-button>
|
||||
<t-button theme="primary" @click.stop="goToPage('/fwsc/fwsc?publish=1')">我要发布服务</t-button>
|
||||
<t-button theme="primary" variant="outline" @click.stop="goToPage('/tfwsc')">浏览服务信息</t-button>
|
||||
<t-button theme="primary" @click.stop="goToPage('/tfwsc?publish=1')">我要发布服务</t-button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 碳需求市场 -->
|
||||
<div class="service-card" @click="goToPage('/fwsc/xqsc')">
|
||||
<div class="service-card" @click="goToPage('/txqsc')">
|
||||
<div class="service-card-icon">
|
||||
<span style="font-size: 48px">📋</span>
|
||||
</div>
|
||||
<h3 class="service-card-title">碳需求市场</h3>
|
||||
<p class="service-card-desc">企业发布真实服务采购需求,智能匹配靠谱服务商,杜绝中间商差价。</p>
|
||||
<div class="service-card-buttons">
|
||||
<t-button theme="primary" variant="outline" @click.stop="goToPage('/fwsc/xqsc')">浏览求购信息</t-button>
|
||||
<t-button theme="primary" @click.stop="goToPage('/fwsc/xqsc?publish=1')">我要发布需求</t-button>
|
||||
<t-button theme="primary" variant="outline" @click.stop="goToPage('/txqsc')">浏览求购信息</t-button>
|
||||
<t-button theme="primary" @click.stop="goToPage('/txqsc?publish=1')">我要发布需求</t-button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 碳金融市场 -->
|
||||
<div class="service-card" @click="goToPage('/fwsc/jrsc')">
|
||||
<div class="service-card" @click="goToPage('/tjrsc')">
|
||||
<div class="service-card-icon">
|
||||
<span style="font-size: 48px">💰</span>
|
||||
</div>
|
||||
|
||||
@ -1,8 +1,5 @@
|
||||
<template>
|
||||
<div class="jrsc-page">
|
||||
<!-- 顶部导航 -->
|
||||
<NewNav />
|
||||
|
||||
<!-- 面包屑导航 -->
|
||||
<BreadcrumbNav currentPage="碳金融市场" />
|
||||
|
||||
@ -156,10 +153,10 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
navTabs: [
|
||||
{ label: '碳服务市场', path: '/fwsc/fwsc' },
|
||||
{ label: '碳需求市场', path: '/fwsc/xqsc' },
|
||||
{ label: '碳金融市场', path: '/fwsc/jrsc' },
|
||||
{ label: '碳数据市场', path: '/fwsc/sjsc' },
|
||||
{ label: '碳服务市场', path: '/tfwsc' },
|
||||
{ label: '碳需求市场', path: '/txqsc' },
|
||||
{ label: '碳金融市场', path: '/tjrsc' },
|
||||
{ label: '碳数据市场', path: '/tsjsc' },
|
||||
],
|
||||
// 选中服务类型
|
||||
selectedServiceType: '全部',
|
||||
|
||||
@ -1,13 +1,10 @@
|
||||
<template>
|
||||
<div class="sjlbc-page">
|
||||
<!-- 顶部导航 -->
|
||||
<NewNav />
|
||||
|
||||
<!-- 面包屑导航 -->
|
||||
<BreadcrumbNav
|
||||
:currentPage="currentPageName"
|
||||
secondPage="碳数据市场"
|
||||
secondLink="/fwsc/sjsc"
|
||||
secondLink="/tsjsc"
|
||||
/>
|
||||
|
||||
<!-- 主内容区 -->
|
||||
|
||||
@ -1,7 +1,5 @@
|
||||
<template>
|
||||
<div class="sjsc-page">
|
||||
<NewNav />
|
||||
|
||||
<!-- 面包屑导航 -->
|
||||
<BreadcrumbNav currentPage="碳数据市场" />
|
||||
|
||||
@ -94,10 +92,10 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
navTabs: [
|
||||
{ label: '碳服务市场', path: '/fwsc/fwsc' },
|
||||
{ label: '碳需求市场', path: '/fwsc/xqsc' },
|
||||
{ label: '碳金融市场', path: '/fwsc/jrsc' },
|
||||
{ label: '碳数据市场', path: '/fwsc/sjsc' },
|
||||
{ label: '碳服务市场', path: '/tfwsc' },
|
||||
{ label: '碳需求市场', path: '/txqsc' },
|
||||
{ label: '碳金融市场', path: '/tjrsc' },
|
||||
{ label: '碳数据市场', path: '/tsjsc' },
|
||||
],
|
||||
selectedType: 'all',
|
||||
dataTypeList: [
|
||||
@ -180,7 +178,7 @@ export default {
|
||||
// 发布数据逻辑
|
||||
},
|
||||
goToDataList(id) {
|
||||
this.$router.push({ path: '/fwsc/sjlbc', query: { id } });
|
||||
this.$router.push({ path: '/tsjlbc', query: { id } });
|
||||
},
|
||||
getTagClass(tag) {
|
||||
const classMap = {
|
||||
|
||||
@ -1,7 +1,5 @@
|
||||
<template>
|
||||
<div class="xqsc-container">
|
||||
<NewNav />
|
||||
|
||||
<!-- 面包屑导航 -->
|
||||
<BreadcrumbNav currentPage="碳需求市场" />
|
||||
|
||||
@ -27,6 +25,23 @@
|
||||
<!-- 左侧筛选栏 -->
|
||||
<aside class="filter-sidebar">
|
||||
<div class="filter-sidebar-content">
|
||||
<!-- 内容搜索 -->
|
||||
<div class="filter-section">
|
||||
<div class="filter-title">内容搜索</div>
|
||||
<t-input v-model="filter.nr" placeholder="请输入关键词" @enter="onSearch" />
|
||||
</div>
|
||||
|
||||
<div class="filter-buttons">
|
||||
<t-button theme="primary" @click="onSearch">查询</t-button>
|
||||
<t-button theme="default" @click="onReset">重置</t-button>
|
||||
</div>
|
||||
|
||||
<!-- 服务地区 -->
|
||||
<div class="filter-section">
|
||||
<div class="filter-title">服务地区</div>
|
||||
<t-select v-model="filter.dq" :options="fwfwOptions" placeholder="请选择" clearable style="width: 100%" @change="onSearch" />
|
||||
</div>
|
||||
|
||||
<!-- 需求类型 -->
|
||||
<div class="filter-section">
|
||||
<div class="filter-title">需求类型</div>
|
||||
@ -42,23 +57,6 @@
|
||||
<t-checkbox-group v-model="filter.sshy" :options="sshyDmOptions" @change="onSearch" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 服务地区 -->
|
||||
<div class="filter-section">
|
||||
<div class="filter-title">服务地区</div>
|
||||
<t-select v-model="filter.dq" :options="fwfwOptions" placeholder="请选择" clearable style="width: 100%" @change="onSearch" />
|
||||
</div>
|
||||
|
||||
<!-- 内容搜索 -->
|
||||
<div class="filter-section">
|
||||
<div class="filter-title">内容搜索</div>
|
||||
<t-input v-model="filter.nr" placeholder="请输入关键词" @enter="onSearch" />
|
||||
</div>
|
||||
|
||||
<div class="filter-buttons">
|
||||
<t-button theme="primary" @click="onSearch">查询</t-button>
|
||||
<t-button theme="default" @click="onReset">重置</t-button>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
|
||||
@ -98,7 +96,7 @@
|
||||
<span class="budget-value">{{ card.ysfwDm1 }}</span>
|
||||
</div>
|
||||
<div class="card-actions">
|
||||
<t-button theme="primary" size="small" @click="handleContact(card)">联系服务</t-button>
|
||||
<t-button theme="primary" size="small" @click="handleContact(card)">联系客户</t-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -134,7 +132,7 @@
|
||||
<!-- 联系服务弹窗 -->
|
||||
<t-dialog
|
||||
:closeOnOverlayClick="false"
|
||||
header="联系服务"
|
||||
header="联系客户"
|
||||
:visible.sync="contactVisible"
|
||||
@confirm="onContactConfirm"
|
||||
:onClose="onContactClose"
|
||||
@ -200,10 +198,10 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
navTabs: [
|
||||
{ label: '碳服务市场', path: '/fwsc/fwsc' },
|
||||
{ label: '碳需求市场', path: '/fwsc/xqsc' },
|
||||
{ label: '碳金融市场', path: '/fwsc/jrsc' },
|
||||
{ label: '碳数据市场', path: '/fwsc/sjsc' },
|
||||
{ label: '碳服务市场', path: '/tfwsc' },
|
||||
{ label: '碳需求市场', path: '/txqsc' },
|
||||
{ label: '碳金融市场', path: '/tjrsc' },
|
||||
{ label: '碳数据市场', path: '/tsjsc' },
|
||||
],
|
||||
// 筛选条件
|
||||
filter: {
|
||||
@ -303,7 +301,7 @@ export default {
|
||||
});
|
||||
}
|
||||
this.cardList = data.records || [];
|
||||
this.page.total = data.total || 0;
|
||||
this.page.total = Number(data.total || 0);
|
||||
} catch (error) {
|
||||
this.cardList = [];
|
||||
this.page.total = 0;
|
||||
@ -348,7 +346,7 @@ export default {
|
||||
this.rzVisible = true;
|
||||
}
|
||||
},
|
||||
// 联系服务
|
||||
// 联系客户
|
||||
handleContact(card) {
|
||||
this.contactData = {
|
||||
lxr: card.lxr || '',
|
||||
@ -387,7 +385,7 @@ export default {
|
||||
},
|
||||
onPublishSuccessCancel() {
|
||||
this.publishSuccessVisible = false;
|
||||
this.$router.push('/fwsc/xqsc');
|
||||
this.$router.push('/txqsc');
|
||||
},
|
||||
onPublishSuccessClose() {
|
||||
this.publishSuccessVisible = false;
|
||||
@ -510,6 +508,7 @@ export default {
|
||||
display: flex;
|
||||
gap: 8px;
|
||||
margin-top: 16px;
|
||||
margin-bottom: 16px;
|
||||
|
||||
.t-button {
|
||||
flex: 1;
|
||||
@ -606,7 +605,7 @@ export default {
|
||||
|
||||
.card-desc {
|
||||
display: box;
|
||||
margin-bottom: 16px;
|
||||
height: 70px;
|
||||
overflow: hidden;
|
||||
font-size: 14px;
|
||||
line-height: 1.6;
|
||||
|
||||
@ -1,17 +1,11 @@
|
||||
<template>
|
||||
<div class="yhzx-box" style="height: 100vh">
|
||||
<Nav style="position: sticky;" />
|
||||
<div style="display: flex; height: 100vh">
|
||||
<div class="yhzx-box" style="height: calc(100vh - 65px)">
|
||||
<!-- <Nav style="position: sticky;" /> -->
|
||||
<div style="display: flex; height: 100%">
|
||||
<div style="height: 100%">
|
||||
<template>
|
||||
<div style="height: 100%" class="htglMenu">
|
||||
<t-menu
|
||||
style="width: 220px; background: #fff"
|
||||
:defaultValue="defaultValue"
|
||||
:collapsed="collapsed"
|
||||
:defaultExpanded="expanded"
|
||||
@change="changeHandler"
|
||||
>
|
||||
<t-menu style="width: 220px; background: #fff" :defaultValue="defaultValue" :collapsed="collapsed" :defaultExpanded="expanded" @change="gotoPage">
|
||||
<div class="title">用户中心</div>
|
||||
<!-- 循环实现 -->
|
||||
<template v-for="item in cdList">
|
||||
@ -35,28 +29,21 @@
|
||||
</template>
|
||||
</div>
|
||||
<div style="position: relative; width: 100%; height: 100%; overflow: auto">
|
||||
<!-- <div class="topheader">
|
||||
<div class="hederLeft" @mouseover="grxxisShow" @mouseleave="headMouseLeave">
|
||||
<img
|
||||
class="user_pic"
|
||||
src="data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QNxaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6NkYxNDI1RjU0MjIwNjgxMTgwODM4RjQyOEIzQ0M4MUUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDY1QzI5QzczQUVDMTFFNEIzM0U4Q0I5MkNEOTVGMkMiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDY1QzI5QzYzQUVDMTFFNEIzM0U4Q0I5MkNEOTVGMkMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJDRTc1MDAyMzEyMDY4MTE4MDgzOUE3MjIxRTIwQTNGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjZGMTQyNUY1NDIyMDY4MTE4MDgzOEY0MjhCM0NDODFFIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoKDBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAeAB4AwERAAIRAQMRAf/EAJYAAQACAwEBAQAAAAAAAAAAAAAEBQMGBwIIAQEBAAIDAQAAAAAAAAAAAAAAAAMFAQIEBhAAAgIBAgMGAgUHDQEAAAAAAQIAAwQRBSESBjFBUWETB3GBsSIyFAiRodFSkqKzwUJicrLCI1M0ZHQVFjYRAQACAgEDBAIDAQEAAAAAAAABAhEDBCExQVESEwVhMnGBFCJC/9oADAMBAAIRAxEAPwDqM63AQEBAQEBAQEBAQEBAQEBAQEBAQECj3nrbpfZ3avOz61vXtor1ssB8CqBuX5yO2ysd0tNF7doa9Z7z9Jq3KtOY4/WWuvT96wGafPVN/iv+E/bvdTo3McIcpsV27BkIUHzYcyj5mbRurLS3EvHhtVF9F9S3UWLbU41SxCGUjxBHAyTLnmMMkyEBAQEBAQEBA8XXVUVPdc4rqrUtZYx0VVA1JJMwRGXGOt/dLO3K2zB2axsXbhqrXrqtt3nr2ovl2+PhOTZumekLTRxYr1t3c/JJOp7ZA7CAgXPTnVm9dP5ItwLz6ROtuK+pqcea+PmOM3pea9kWzTW8dXduk+rNu6k2771i/wCHdXouTjMdWrY/Sp7jO2l4tCp3aZpOJXc3REBAQEBAQEDlfvH1VYpr6exX0DAW55B7QeNdZ/tH5Tl338LDh6v/AFLUejfbvqDqpy+Iq0YFbctubdqEB71UDi7fD5kTivsiqzpSbOk434fNnWsDJ3bIss72rRK11+Dep9MgnkT6JfghEy/w9IbVOHvRWon6wuo5mA8QVdQfyCZjkfgnR+WZfw9YPJo29Wl/1hQoH5Oc/TH+j8HwflRb/wCw/UGFS9+1Zde5qg1NJX0biP6IJdW/aE3ryInu1tpnw0zpjfc7pjqBMkq6emxqzsZgVYpro6Mp7GHaPOdWu+Jy5N2r31w+i6Lqr6a76WD1WqHrcdhVhqCPiJ3qSYw9zIQEBAQEBA+ctw+9dSdZ3JUea7ccz0qSeOis/Imvkq6St2W6zK900xWIfUGz7Vh7TteNtuGnJjYtYrrHedO1j5seJ85WWnM5WMRiEyYZICAgfP8A78bZXjdW0ZlahRnYytYR32VsUJ/Z5Z2aJzVy7o6t09rNxfN6NxA55nxWfHJ8kOqD5IwEtdM5qouVXF5bbJXOQEBAQEBA4h7LbeMzr3HtYcww6rsltfHl9MH5NYJT75/5ek1R/wBO/wCXv2x4eQMbL3HFxslvs023Vo518FYgzjisz4dWYTUdXUOhDKw1VgdQQfAzVl6gIFfd1BsFGSMW7csWrKJ0FD31rYT4cpbWbe2fRjMOWfiGxwa9jyQOw5FbH4itl+gyfjT3Q7/DJ7Kk/wDlcryzrP4NUtuP+qj5v7x/DoEncZAQEBAQEDlf4fKA2+brkaca8ZKwf69gP9yUnI7PTae7ptntt0PazvdtNd1lhLWW2NY9jMeJJdmLEn4yD5beqb2Q97T0Js+zZS3bPdlYFQOr4dd7Pjv4hq7vVHHxXQ+Bidkz3ZikR2bHI2yo3zpzH3rlry8vLrxANHxMe30a7PNygFh+HPp5TatsNZrlWVe13QNVfIuzUkeLtY7ftMxM2+a3qx8dWne+O1YuD0htFOIhTGxcv0qkZmflV63bl5nLNoOXhx4SXRObSj3R0Y/ZT/5XK/51n8GqW3H/AFUfN/eP4dAk7jICAgICBmxKBdbyE6KBqfhOfk7vjrl08TR8t8T2UnQfQ+z9M7huT7ZlXX1ZS1ryXBdU9Mt2OvLza836spr7JtHV6Our29U73Dweqs3px6embmp3H1ULcjip2qGvMqWErynXQ9o4TGuYiepeJx0T+ksbe8bpzBo3y3191SsjJs15tTzEqCw+0QugJ7zNbzGenZmucdVqzounMwHMdF1Omp8BNWz1A0LoDafcXD3zdLepss34FgIx1NosVrOcEPUoJ9NOXX6vDu4SbZNZiMIqRbPVb+4HS+J1JslWFlZD41VWQl/qVqHYlVZNNCQP580139s5b2p7ujDsPSe09ObPXjbW9llFjmyyy0gu1jAAsdAoHBNNAJZ8Lf7s1lT/AGXH9uLf0mywVRAQEBAQJW2sq5HE6cykD46gzi51ZnX08S7/AK28Rs6+Yfu1Y19GRaLEIGmgbTgePcZTvRWlaTDUgQ9xOn3U/wC4r/PqIITICBD3Wux8TlRSzcw4AamGao1iGnb6aX4WalivlxP8ssPr6z7pnxhV/a3j2xHnKLLZRkBAQEBATAnbda7XFXYn6vAE698r+driKZiPK1+u22m8xMzPRYyqXRAwtiUNaLGUllPMurNoD48uukDNAQIu42MlK8rFWLcCDoeydnBpFrzmOmFf9jsmtIxOJyq2ZmOrEk+JlzERHSFDa0zOZfkywQEBAQEBA91WNXYrr2qZHspF6zEpNWyaWi0eFzValqB1OoMoNmuaTiXp9W2L190MeZTkW1aUWmqwd/cfjNEisO270T/q/wB9/wBEyzlMwcTNpYtkZBtGnBO0fMnjMCaSANTwA7TMxGWszjrKpzMj1reH2F4L+mXfF0fHXr3l53m8n5b9P1hHnU4yAgICAgICAgZcfJsobVeKn7S+Mg36K7I693Rx+TbVOY7ei1oyKrl1Q8e9e8Sl26ba5xL0GjkV2RmrLIk7xZYla8znQTemubTiGmzZWkZtOIVmVmtd9Vfq1+HefjLfj8WKdZ62UPK5s7OkdKo07HCQEBAQEBAQEBAQPNhsVfUr1BQglh3a8Jxc6uaf2s/qrY2THrB/2mfpp6v5l/RKfD0Pth+JbbYTZaxYk8oJ8uOgln9fXvKk+3t+sfy9yyUxAQEBAQEBAQEASANTwA7TA13cuorC7VYf1UHA3dpPwktdfqitf0WfQ+Xh5Fe67fm5S05OclRxr720XmqcsULHs5tROfmaZvTEOz6/fGvZmV3/AOR308UpR6/8xba+XTx+1KX/ADX9Ho45ur1VfWRwsHYMXavvFV+5HKOTcKWDipfTKcpYd54GW3A02pE5UX2fJrstGPDWMLe87GIBc2196OdfyHtE7ppEqyLTDZsDcKM2rnqOhH20PaDIbVwlicpMwyQEBAQEBAQKXqPcDVUMSs/XsGthHcvh85Jrr5R3nw1qTIyAgICBIwM2zDyVuTiBwdfFe8TFozDMThulVqW1LbWdUcAqfIzmmEz3DJAQP //Z"
|
||||
/>
|
||||
<div class="grxxHt" v-show="grxxShow">
|
||||
<h6 @click="xgmm">修改密码</h6>
|
||||
<h6 @click="exit">退出登录</h6>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="htglLeft">
|
||||
<component :is="activeCompo" v-if="iskxt" :sfHtgl="true" @changeComponent="changeComponent" />
|
||||
<!-- <component :is="activeCompo" v-if="iskxt" :sfHtgl="true" @changeComponent="changeComponent" />
|
||||
<iframe ref="myIframe" v-else :src="iFrameSrc" style="width: 100%; height: 100%" class="iframe-container">
|
||||
</iframe>
|
||||
</iframe> -->
|
||||
<!-- <qyrz/> -->
|
||||
<!-- <xzmbgl v-if="activeCompo === 'xzmbgl'" @changeComponent="changeComponent" /> -->
|
||||
<iframe v-if="iframeUrl" :src="iframeUrl" width="100%" height="100%" frameborder="0" scrolling="yes">
|
||||
</iframe>
|
||||
<keep-alive v-else>
|
||||
<router-view />
|
||||
</keep-alive>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<Footer />
|
||||
<!-- <Footer /> -->
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@ -91,19 +78,19 @@ export default {
|
||||
activeCompo: 'qyrz', // 默认
|
||||
collapsed: false,
|
||||
expanded: ['qyrz'],
|
||||
defaultValue:'qyrz',
|
||||
defaultValue: 'qyrz',
|
||||
cdList: [
|
||||
{
|
||||
id: 'qyrz',
|
||||
id: 'qyrenzheng',
|
||||
title: '企业认证',
|
||||
icon: 'user',
|
||||
name: 'qyrz',
|
||||
name: 'qyrenzheng',
|
||||
},
|
||||
{
|
||||
id: 'qyrz1',
|
||||
{
|
||||
id: 'qyruzhu',
|
||||
title: '企业入驻',
|
||||
icon: 'user',
|
||||
name: 'qyrz1',
|
||||
name: 'qyruzhu',
|
||||
},
|
||||
{
|
||||
id: 'tfwgj',
|
||||
@ -130,26 +117,86 @@ export default {
|
||||
name: 'lsjy',
|
||||
},
|
||||
{
|
||||
id: 'zljggl',
|
||||
title: '质证结果管理',
|
||||
id: 'cunzhengjilu',
|
||||
title: '存证记录',
|
||||
icon: 'user',
|
||||
name: 'zljggl',
|
||||
name: 'cunzhengjilu',
|
||||
iframeUrl: "https://ctn-web-pre.lingshu.net/cert-record-mgt",
|
||||
}, {
|
||||
id: 'tgjlgl',
|
||||
title: '托管记录管理',
|
||||
icon: 'user',
|
||||
name: 'tgjlgl',
|
||||
iframeUrl: "https://ctn-web-pre.lingshu.net/hosting-record-mgt",
|
||||
}, {
|
||||
id: 'chazhengjilu',
|
||||
title: '查证记录',
|
||||
icon: 'user',
|
||||
name: 'chazhengjilu',
|
||||
iframeUrl: "https://ctn-web-pre.lingshu.net/query-record-mgt",
|
||||
},
|
||||
],
|
||||
ejcdList: [],
|
||||
iFrameSrc: '',
|
||||
zljgglurl:'https://ctn-web-pre.lingshu.net/proof-result-mgt?type=carbon-certify',
|
||||
zljgglurl: 'https://ctn-web-pre.lingshu.net/proof-result-mgt?type=carbon-certify',
|
||||
|
||||
iframeUrl: "",
|
||||
|
||||
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.initView();
|
||||
const activeCompo = this.$route.query.activeCompo;
|
||||
if(activeCompo){
|
||||
this.changeHandler(activeCompo);
|
||||
}
|
||||
// this.initView();
|
||||
// const activeCompo = this.$route.query.activeCompo;
|
||||
// if (activeCompo) {
|
||||
// this.changeHandler(activeCompo);
|
||||
// }
|
||||
|
||||
this.gotoPage(this.cdList[0].id);
|
||||
|
||||
},
|
||||
methods: {
|
||||
async yhinit() {
|
||||
gotoPage(menuId) {
|
||||
|
||||
const menu = this.cdList.find((item) => item.id == menuId)
|
||||
|
||||
console.log("当前菜单配置:", menu)
|
||||
|
||||
//判断页面是否开放
|
||||
if (menu.disable) {
|
||||
this.$dialog.alert({
|
||||
header: '提示',
|
||||
body: '该功能暂未开放。',
|
||||
confirmBtn: null
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
//判断页面是否需要登录
|
||||
console.log("当前页面是否需要登录:", menu.needLogin)
|
||||
if (menu.needLogin) {
|
||||
const sfdl = window.sessionStorage.getItem('sfdl'); //是否登录
|
||||
console.log("是否已经登录登录:", sfdl)
|
||||
if (!sfdl) {
|
||||
this.$router.push("/login")
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// this.curPage = menu.name;
|
||||
let iframeUrl = menu.iframeUrl;
|
||||
if (iframeUrl) {
|
||||
this.iframeUrl = iframeUrl;
|
||||
} else {
|
||||
this.$router.push({
|
||||
path: "/yhzx/" + menu.name
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
|
||||
async yhinit() {
|
||||
try {
|
||||
// const res = await getMxjbxx(prame);
|
||||
const { data } = await api.init();
|
||||
@ -159,21 +206,21 @@ export default {
|
||||
}
|
||||
},
|
||||
async initView() {
|
||||
try{
|
||||
const params = 'ZZJGGL_URL';
|
||||
const {data} = await api.dm2mc(params);
|
||||
console.log('initView',data);
|
||||
this.zljgglurl = data;
|
||||
}catch(err){
|
||||
try {
|
||||
const params = 'ZZJGGL_URL';
|
||||
const { data } = await api.dm2mc(params);
|
||||
console.log('initView', data);
|
||||
this.zljgglurl = data;
|
||||
} catch (err) {
|
||||
|
||||
}finally{
|
||||
// console.log('newUrl', this.$route.query?.activeCompo);
|
||||
if(this.$route.query?.activeCompo){
|
||||
this.activeCompo = this.$route.query.activeCompo;
|
||||
this.expanded=[this.activeCompo];
|
||||
this.defaultValue = this.activeCompo;
|
||||
this.changeHandler(this.activeCompo);
|
||||
}
|
||||
} finally {
|
||||
// console.log('newUrl', this.$route.query?.activeCompo);
|
||||
if (this.$route.query?.activeCompo) {
|
||||
this.activeCompo = this.$route.query.activeCompo;
|
||||
this.expanded = [this.activeCompo];
|
||||
this.defaultValue = this.activeCompo;
|
||||
this.changeHandler(this.activeCompo);
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
@ -326,7 +373,7 @@ export default {
|
||||
.iframe-container {
|
||||
border: none;
|
||||
}
|
||||
.yhzx-box{
|
||||
.yhzx-box {
|
||||
overflow: auto;
|
||||
}
|
||||
.yhzx-box::-webkit-scrollbar {
|
||||
|
||||
@ -1,7 +1,31 @@
|
||||
<template>
|
||||
<div class="page-box">
|
||||
<!-- 顶部菜单栏 -->
|
||||
<NewNav />
|
||||
<!-- <div class="nav-box">
|
||||
<div class="logo-box">
|
||||
<img src="@/pages/index/assets/logo-name.png">
|
||||
</div>
|
||||
<div class="menu-box">
|
||||
<div class="menu-title meun-title-active">
|
||||
<img src="@/pages/index/assets/nav-home.png" width="24px" height="24px">
|
||||
<span> 首页</span>
|
||||
</div>
|
||||
<div class="menu-title">碳证中心</div>
|
||||
<div class="menu-title">服务中心</div>
|
||||
<div class="menu-title">共性能力</div>
|
||||
<div class="menu-title">企业出海</div>
|
||||
<div class="menu-title">行业专题</div>
|
||||
</div>
|
||||
<div class="option-box">
|
||||
<div class="gzt">
|
||||
<img src="@/pages/index/assets/home-gzt-icon.png" />
|
||||
<span> 工作台</span>
|
||||
</div>
|
||||
<div style="margin-left:20px; cursor: pointer;">激活</div>
|
||||
<div>|</div>
|
||||
<div style="cursor: pointer;">登录</div>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
<!-- 主页面 -->
|
||||
<div class="container">
|
||||
@ -11,7 +35,7 @@
|
||||
<img src="@/pages/index/assets/home-top-title.png">
|
||||
</div>
|
||||
<div class="top-title-desc">
|
||||
<img src="@/pages/index/assets/top-desc-text.png"/>
|
||||
<img src="@/pages/index/assets/top-desc-text.png" />
|
||||
</div>
|
||||
|
||||
<div class="top-search-box">
|
||||
@ -28,7 +52,7 @@
|
||||
|
||||
<div class="top-options-box">
|
||||
<div class="option-item-box green">
|
||||
<div class="title">碳数字身份证</div>
|
||||
<div class="option-item-box-title">碳数字身份证</div>
|
||||
<div class="option-btn-box ">
|
||||
<div class="btn">办证指南</div>
|
||||
<div class="btn">碳证查询</div>
|
||||
@ -39,7 +63,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="option-item-box blue">
|
||||
<div class="title">国家可信碳链</div>
|
||||
<div class="option-item-box-title">国家可信碳链</div>
|
||||
<div class="option-btn-box">
|
||||
<div class="btn">上链指南</div>
|
||||
<div class="btn">上链标准</div>
|
||||
@ -50,7 +74,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="option-item-box cyan">
|
||||
<div class="title">绿色服务</div>
|
||||
<div class="option-item-box-title">绿色服务</div>
|
||||
<div class="option-btn-box">
|
||||
<div class="btn">服务市场</div>
|
||||
<div class="btn">需求市场</div>
|
||||
@ -70,7 +94,7 @@
|
||||
|
||||
<!-- 中间核心驱动 -->
|
||||
<div class="center-box">
|
||||
<div class="title">
|
||||
<div class="center-box-title">
|
||||
核心驱动
|
||||
</div>
|
||||
|
||||
@ -150,7 +174,7 @@
|
||||
<div class="name1">企业出海</div>
|
||||
<div class="name2">政策要求、合规指引、案例分享,一站式信息与系统入口</div>
|
||||
<div class="item">
|
||||
<div class="title">电池法案</div>
|
||||
<div class="qych-box-item-title">电池法案</div>
|
||||
<div class="desc-btn-box">
|
||||
<div class="desc">欧盟电池法案管控电池全生命周期,涉及回收、碳足迹等要求。</div>
|
||||
<div class="btn">申请服务</div>
|
||||
@ -158,7 +182,7 @@
|
||||
</div>
|
||||
|
||||
<div class="item" style="margin-top:21px;">
|
||||
<div class="title">CBAM</div>
|
||||
<div class="qych-box-item-title">CBAM</div>
|
||||
<div class="desc-btn-box">
|
||||
<div class="desc">欧盟对进口高碳产品按隐含排放征收碳关税。</div>
|
||||
<div class="btn">CBAM试算</div>
|
||||
@ -166,7 +190,7 @@
|
||||
</div>
|
||||
|
||||
<div class="item" style="margin-top:21px;">
|
||||
<div class="title">航运燃料</div>
|
||||
<div class="qych-box-item-title">航运燃料</div>
|
||||
<div class="desc-btn-box">
|
||||
<div class="desc">从化石油基向LNG、绿甲醇、绿氨等多元低碳方向加速转型。</div>
|
||||
<div class="btn">申请服务</div>
|
||||
@ -183,7 +207,7 @@
|
||||
<div>行业资讯</div>
|
||||
<div>平台公告</div>
|
||||
</div>
|
||||
<div>
|
||||
<div style="width:100%">
|
||||
<div class="item">
|
||||
国家发改委发布2025年碳减排重点任务
|
||||
</div>
|
||||
@ -204,9 +228,11 @@
|
||||
<!-- 建立您的碳数字身份 -->
|
||||
<div class="bottom-box">
|
||||
<div class="content">
|
||||
<div class="title">建立您的碳数字身份</div>
|
||||
<div class="desc">基于国家区块链网络,实现碳数据的一站式确权、核验与托管</div>
|
||||
<div class="btn">申请服务</div>
|
||||
<div>
|
||||
<div class="bottom-box-content-title">建立您的碳数字身份</div>
|
||||
<div class="desc">基于国家区块链网络,实现碳数据的一站式确权、核验与托管</div>
|
||||
<div class="btn">申请服务</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -221,11 +247,14 @@
|
||||
|
||||
<script>
|
||||
import Footer from '@/pages/index/components/footer/index.vue';
|
||||
import NewNav from '@/pages/index/components/new-nav/index.vue';
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
inputValue: ""
|
||||
}
|
||||
},
|
||||
components: {
|
||||
Footer,
|
||||
NewNav,
|
||||
},
|
||||
}
|
||||
</script>
|
||||
@ -235,20 +264,92 @@ export default {
|
||||
background: #f5f5f7;
|
||||
}
|
||||
|
||||
.nav-box {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
|
||||
z-index: 9999;
|
||||
|
||||
display: grid;
|
||||
width: 100%;
|
||||
margin: 0 auto;
|
||||
|
||||
color: #fff;
|
||||
background: #009a29;
|
||||
grid-template-columns: 1fr 2fr 1fr;
|
||||
place-items: center;
|
||||
}
|
||||
.logo-box {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.option-box {
|
||||
display: flex;
|
||||
height: 64px;
|
||||
font-family: PingFang SC;
|
||||
font-size: 16px;
|
||||
font-style: regular;
|
||||
font-weight: 400;
|
||||
letter-spacing: 0%;
|
||||
text-align: center;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
leading-trim: none;
|
||||
}
|
||||
|
||||
.option-box .gzt {
|
||||
display: flex;
|
||||
padding: 10px;
|
||||
text-align: center;
|
||||
background: rgba(255, 255, 255, 0.3);
|
||||
border-radius: 6px;
|
||||
justify-content: space-around;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.menu-box {
|
||||
display: grid;
|
||||
width: 100%;
|
||||
height: 64px;
|
||||
font-size: 16px;
|
||||
grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.menu-title {
|
||||
|
||||
display: flex;
|
||||
width: 96px;
|
||||
height: 64px;
|
||||
line-height: 24px;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.meun-title-active {
|
||||
background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.15) 100%);
|
||||
border-bottom: 2px solid #fff;
|
||||
}
|
||||
|
||||
.top-box {
|
||||
|
||||
position: relative;
|
||||
|
||||
display: flex;
|
||||
width: 1920px;
|
||||
height: 630px;
|
||||
width: 100%;
|
||||
background-image: url(~@/pages/index/assets/home-top-bg1.jpg);
|
||||
background-position: center; /* 永远显示中间部分 */
|
||||
|
||||
background-repeat: no-repeat; /* 不重复 */
|
||||
background-size: auto; /* 不拉伸,保持原图尺寸 */
|
||||
/* height: 630px; */
|
||||
|
||||
animation: switchBg 18s infinite linear;
|
||||
background-repeat: no-repeat; /* 不重复 */
|
||||
background-size: cover; /* 不拉伸,保持原图尺寸 */
|
||||
|
||||
animation: switchBg 30s infinite linear;
|
||||
flex-direction: column;
|
||||
justify-content: start;
|
||||
align-items: center;
|
||||
@ -270,22 +371,23 @@ export default {
|
||||
}
|
||||
|
||||
.container {
|
||||
width: 1920px;
|
||||
width: 100%;
|
||||
min-height: 100vh;
|
||||
|
||||
/* max-width: 1920px; */
|
||||
margin: 0 auto; /* 左右居中 */
|
||||
margin-top: 64px;
|
||||
}
|
||||
|
||||
.top-title {
|
||||
width: 100%;
|
||||
height: 58;
|
||||
margin-top: 130px;
|
||||
height: 58px;
|
||||
margin-top: 128px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.top-title-desc {
|
||||
|
||||
width: 876px;
|
||||
|
||||
width: 100%;
|
||||
margin-top: 40px;
|
||||
font-size: 24px;
|
||||
font-weight: bold;
|
||||
@ -295,10 +397,25 @@ export default {
|
||||
text-stroke: 0.3px #fff;
|
||||
}
|
||||
|
||||
.top-title-desc img {
|
||||
height: 100%;
|
||||
max-width: 100%;
|
||||
object-fit: contain;
|
||||
}
|
||||
|
||||
.top-search-box {
|
||||
z-index: 999;
|
||||
width: 100%;
|
||||
padding: 0 6%;
|
||||
margin-top: 40px;
|
||||
}
|
||||
|
||||
.search-box {
|
||||
display: flex;
|
||||
|
||||
width: 100%;
|
||||
max-width: 600px;
|
||||
padding: 8px;
|
||||
margin: 0 auto;
|
||||
background: rgba(255, 255, 255, 0.4);
|
||||
border: 1px solid #fff;
|
||||
border-radius: 12px;
|
||||
@ -309,11 +426,6 @@ export default {
|
||||
backdrop-filter: blur(8px);
|
||||
}
|
||||
|
||||
.top-search-box {
|
||||
z-index: 999;
|
||||
margin-top: 40px;
|
||||
}
|
||||
|
||||
.search-btn {
|
||||
width: 92px;
|
||||
height: 40px;
|
||||
@ -335,7 +447,8 @@ export default {
|
||||
}
|
||||
|
||||
.search-box input {
|
||||
width: 500px;
|
||||
width: calc(100% - 100px);
|
||||
max-width: 500px;
|
||||
background: transparent;
|
||||
border: none;
|
||||
outline: none;
|
||||
@ -356,6 +469,7 @@ export default {
|
||||
font-style: regular;
|
||||
font-weight: 400;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
leading-trim: none;
|
||||
}
|
||||
|
||||
@ -373,17 +487,25 @@ export default {
|
||||
}
|
||||
|
||||
.top-options-box {
|
||||
position: absolute;
|
||||
bottom: -20px;
|
||||
z-index: 999;
|
||||
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
gap: 30px;
|
||||
display: grid;
|
||||
|
||||
/* display: flex; */
|
||||
|
||||
/* justify-content: space-between; */
|
||||
width: 100%;
|
||||
padding: 0% 20%;
|
||||
|
||||
/* position: absolute;
|
||||
bottom: -60px; */
|
||||
margin-top: 100px;
|
||||
gap: 3%;
|
||||
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
|
||||
}
|
||||
|
||||
.option-item-box {
|
||||
width: 384px;
|
||||
width: 100%;
|
||||
padding-bottom: 20px;
|
||||
background: rgba(255, 255, 255, 0.8);
|
||||
border: 1px solid #fff;
|
||||
@ -399,13 +521,15 @@ export default {
|
||||
}
|
||||
|
||||
.option-btn-box {
|
||||
display: flex;
|
||||
display: grid;
|
||||
width: 100%;
|
||||
justify-content: space-around;
|
||||
align-items: center;
|
||||
padding: 6px 10px;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
place-items: center;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.option-item-box .title {
|
||||
.option-item-box-title {
|
||||
width: 100%;
|
||||
height: 39px;
|
||||
margin-top: 20px;
|
||||
@ -421,9 +545,8 @@ export default {
|
||||
}
|
||||
|
||||
.option-btn-box .btn {
|
||||
width: 156px;
|
||||
width: 100%;
|
||||
height: 48px;
|
||||
margin-top: 20px;
|
||||
font-size: 18px;
|
||||
line-height: 48px;
|
||||
color: #333;
|
||||
@ -444,28 +567,28 @@ export default {
|
||||
|
||||
.center-box {
|
||||
width: 100%;
|
||||
|
||||
padding: 60px;
|
||||
|
||||
padding: 60px 20%;
|
||||
background: #fff;
|
||||
}
|
||||
.center-box .content-box {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
gap: 40px;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
||||
justify-items: center;
|
||||
gap: 20px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.center-box .title {
|
||||
width: 128px;
|
||||
.center-box-title {
|
||||
width: fit-content;
|
||||
height: 32px;
|
||||
margin-bottom: 20px;
|
||||
margin-left: 290px;
|
||||
margin-left: 10px;
|
||||
|
||||
font-family: PingFang SC;
|
||||
font-size: 32px;
|
||||
font-style: medium;
|
||||
font-weight: 500;
|
||||
line-height: 36px;
|
||||
line-height: 28px;
|
||||
letter-spacing: 0%;
|
||||
|
||||
color: #222;
|
||||
@ -476,8 +599,7 @@ export default {
|
||||
|
||||
.center-box .item {
|
||||
display: flex;
|
||||
width: 280px;
|
||||
padding: 10px;
|
||||
width: 100%;
|
||||
transition: transform 0.3s ease;
|
||||
flex-direction: column;
|
||||
justify-content: start;
|
||||
@ -528,28 +650,26 @@ export default {
|
||||
}
|
||||
|
||||
.gxnl-qych-hydt-box {
|
||||
display: flex;
|
||||
display: grid;
|
||||
|
||||
width: 100%;
|
||||
padding: 80px 0;
|
||||
padding: 3% 20%;
|
||||
background: #f5f7fa;
|
||||
justify-content: center;
|
||||
gap: 40px;
|
||||
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
||||
gap: 30px;
|
||||
}
|
||||
|
||||
.gxnl-qych-hydt-box > div {
|
||||
|
||||
display: flex;
|
||||
width: 382px;
|
||||
width: 100%;
|
||||
|
||||
height: 553px;
|
||||
min-height: 200px;
|
||||
padding: 15px;
|
||||
|
||||
overflow: auto;
|
||||
|
||||
background: #fff;
|
||||
background-position: center; /* 永远显示中间部分 */
|
||||
background-repeat: no-repeat !important; /* 不重复 */
|
||||
background-size: auto; /* 不拉伸,保持原图尺寸 */
|
||||
|
||||
border-radius: 12px;
|
||||
|
||||
@ -559,6 +679,13 @@ export default {
|
||||
flex-direction: column;
|
||||
justify-content: start;
|
||||
align-items: center;
|
||||
|
||||
}
|
||||
|
||||
.gxnl-qych-hydt-box > div::-webkit-scrollbar {
|
||||
display: none;
|
||||
width: 0;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
.gxnl-qych-hydt-box > div:hover {
|
||||
@ -567,12 +694,18 @@ export default {
|
||||
|
||||
.gxnl-qych-hydt-box .gxnl-box {
|
||||
background-image: url(~@/pages/index/assets/home-gxnl.png);
|
||||
background-repeat: no-repeat !important; /* 不重复 */
|
||||
background-size: 100% auto;
|
||||
}
|
||||
.gxnl-qych-hydt-box .qych-box {
|
||||
background-image: url(~@/pages/index/assets/home-qych.png);
|
||||
background-repeat: no-repeat !important; /* 不重复 */
|
||||
background-size: 100% auto;
|
||||
}
|
||||
.gxnl-qych-hydt-box .hydt-box {
|
||||
background-image: url(~@/pages/index/assets/home-hydt.png);
|
||||
background-repeat: no-repeat !important; /* 不重复 */
|
||||
background-size: 100% auto;
|
||||
}
|
||||
|
||||
.gxnl-qych-hydt-box .name1 {
|
||||
@ -600,20 +733,19 @@ export default {
|
||||
}
|
||||
|
||||
.gxnl-box .item {
|
||||
display: flex;
|
||||
width: 352px;
|
||||
display: grid;
|
||||
width: 100%;
|
||||
height: 64px;
|
||||
padding: 20px;
|
||||
margin-top: 16px;
|
||||
cursor: pointer;
|
||||
background: linear-gradient(90deg, #7be188 0%, #e8ffea 100%);
|
||||
border-radius: 8px;
|
||||
justify-content: space-between;
|
||||
grid-template-columns: 64px 1fr 32px;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.gxnl-box .item .text {
|
||||
width: 280px;
|
||||
padding-left: 20px;
|
||||
font-family: PingFang SC;
|
||||
font-size: 20px;
|
||||
@ -639,7 +771,8 @@ export default {
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.qych-box .item .title {
|
||||
.qych-box-item-title {
|
||||
padding: 0;
|
||||
font-family: PingFang SC;
|
||||
font-size: 20px;
|
||||
font-style: semibold;
|
||||
@ -723,7 +856,7 @@ export default {
|
||||
height: 539px;
|
||||
|
||||
background-image: url(~@/pages/index/assets/home-szsf-bg.png);
|
||||
background-position: center; /* 永远显示中间部分 */
|
||||
background-position: left; /* 永远显示中间部分 */
|
||||
|
||||
background-repeat: no-repeat; /* 不重复 */
|
||||
background-size: cover; /* 不拉伸,保持原图尺寸 */
|
||||
@ -732,10 +865,35 @@ export default {
|
||||
}
|
||||
|
||||
.bottom-box .content {
|
||||
margin-left: 200px;
|
||||
display: flex;
|
||||
width: 64%;
|
||||
|
||||
height: 400px;
|
||||
background: linear-gradient(
|
||||
95.7deg,
|
||||
rgba(255, 255, 255, 0) 1.44%,
|
||||
rgba(255, 255, 255, 0) 6.39%,
|
||||
rgba(255, 255, 255, 0.3) 41.25%,
|
||||
rgba(255, 255, 255, 0.5) 91.66%
|
||||
);
|
||||
border: 2px solid #fff;
|
||||
|
||||
border-radius: 12px;
|
||||
|
||||
/* backdrop-filter: blur(12px); */
|
||||
box-shadow: 0 4px 20px 0 rgba(255, 255, 255, 0.08);
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
.bottom-box .content > div {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: flex-start;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.bottom-box .content .title {
|
||||
.bottom-box-content-title {
|
||||
padding: 0;
|
||||
font-family: PingFang SC;
|
||||
font-size: 40px;
|
||||
font-style: semibold;
|
||||
@ -779,13 +937,29 @@ export default {
|
||||
border: 1px solid #fff;
|
||||
border-radius: 8px;
|
||||
|
||||
transition: transform 0.3s ease;
|
||||
transition: transform 0.3s ease;
|
||||
backdrop-filter: blur(8px);
|
||||
leading-trim: none;
|
||||
}
|
||||
|
||||
.bottom-box .content .btn:hover {
|
||||
transform: scale(1.05);
|
||||
}
|
||||
|
||||
@media (max-width: 767px) {
|
||||
.nav-box {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
}</style>
|
||||
.container {
|
||||
margin-top: 192px;
|
||||
}
|
||||
|
||||
/* .option-box {
|
||||
display: none !important;
|
||||
}
|
||||
.menu-box {
|
||||
display: none !important;
|
||||
} */
|
||||
}
|
||||
</style>
|
||||
111
txw-mhzc-web/src/pages/index/views/main.vue
Normal file
111
txw-mhzc-web/src/pages/index/views/main.vue
Normal file
@ -0,0 +1,111 @@
|
||||
<template>
|
||||
<div>
|
||||
<Nav @gotoIfreamPage="gotoIfreamPage" @gotoPage="gotoPage" />
|
||||
<div :style="{ 'height': documentClientHeight-64 + 'px' ,'margin-top':'64px'}">
|
||||
<iframe v-if="iframeUrl" :src="iframeUrl" width="100%" height="100%" frameborder="0" scrolling="yes">
|
||||
</iframe>
|
||||
<keep-alive v-else>
|
||||
<router-view />
|
||||
</keep-alive>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Nav from "@/pages/index/components/nav/index2.vue";
|
||||
export default {
|
||||
name: "Main",
|
||||
data() {
|
||||
return {
|
||||
iframeUrl: '',
|
||||
documentClientHeight: 100
|
||||
};
|
||||
},
|
||||
components: {
|
||||
Nav,
|
||||
},
|
||||
computed: {
|
||||
// documentClientHeight: {
|
||||
// get() {
|
||||
// return this.$store.state.common.documentClientHeight;
|
||||
// },
|
||||
// set(val) {
|
||||
// this.$store.commit("common/updateDocumentClientHeight", val);
|
||||
// },
|
||||
// },
|
||||
|
||||
},
|
||||
created() {
|
||||
|
||||
|
||||
|
||||
// this.getUserInfo();
|
||||
|
||||
//防止浏览器刷新导致store丢失 浏览器刷新时存入sessionStore
|
||||
this.bakStore();
|
||||
},
|
||||
mounted() {
|
||||
this.resetDocumentClientHeight();
|
||||
},
|
||||
methods: {
|
||||
gotoPage(name) {
|
||||
// this.$router.push({
|
||||
// name: name
|
||||
// })
|
||||
|
||||
// this.$router.replace({ name: name, force: true })
|
||||
|
||||
window.location.href = name
|
||||
},
|
||||
|
||||
gotoIfreamPage(iframeUrl) {
|
||||
this.iframeUrl = iframeUrl;
|
||||
},
|
||||
|
||||
|
||||
|
||||
// 重置窗口可视高度
|
||||
resetDocumentClientHeight() {
|
||||
this.documentClientHeight = document.documentElement["clientHeight"];
|
||||
window.onresize = () => {
|
||||
this.documentClientHeight = document.documentElement["clientHeight"];
|
||||
};
|
||||
},
|
||||
// 获取当前管理员信息
|
||||
// getUserInfo() {
|
||||
// this.$http({
|
||||
// url: this.$http.adornUrl("/sys/user/info"),
|
||||
// method: "get",
|
||||
// params: this.$http.adornParams(),
|
||||
// }).then(({ data }) => {
|
||||
// if (data && data.code === 0) {
|
||||
// this.loading = false;
|
||||
// this.userId = data.user.userId;
|
||||
// this.userName = data.user.username;
|
||||
// this.realname = data.user.realname;
|
||||
// this.companyId = data.user.companyId;
|
||||
// this.companyTaxNo = data.user.companyTaxNo;
|
||||
// this.companyName = data.user.companyName;
|
||||
// }
|
||||
// });
|
||||
// },
|
||||
|
||||
bakStore() {
|
||||
// 在页面加载时读取sessionStorage里的状态信息
|
||||
if (sessionStorage.getItem("store")) {
|
||||
this.$store.replaceState(
|
||||
Object.assign(
|
||||
{},
|
||||
this.$store.state,
|
||||
JSON.parse(sessionStorage.getItem("store"))
|
||||
)
|
||||
);
|
||||
} // 在页面刷新时将vuex里的信息保存到sessionStorage里 // beforeunload事件在页面刷新时先触发
|
||||
|
||||
window.addEventListener("beforeunload", () => {
|
||||
sessionStorage.setItem("store", JSON.stringify(this.$store.state));
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
Loading…
Reference in New Issue
Block a user