main
王文龙 2023-11-28 19:53:33 +08:00
parent 58d02e6e03
commit 031b7e89d0
13 changed files with 1241 additions and 887 deletions

12
11.txt
View File

@ -1,3 +1,9 @@
1. 图片展示,没有权限 1.excel 大文件的预览;
2. 权限设置,没有返回信息 2.edge的大文件下载弹窗问题
3. 多张图片bug 3.碳中和查看更多的文件逻辑; --✔️
3.碳中和页面整体模块滚动;--
4.原材料用量饼图;
5.品质和碳中和 字体放大; --
6.外部情报 留言板 列表 已回复; ---
7.碳中和内容管理的 查看范围;
8.碳中和相关活动报告-- 显示其他的活动 后面排.

View File

@ -9,394 +9,397 @@ const NewsDetail = {
const router = createRouter({ const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL), history: createWebHistory(import.meta.env.BASE_URL),
routes: [ routes: [
{ path: "/:pathMatch(.*)", component: () => import("@/components/404") }, { path: '/:pathMatch(.*)', component: () => import('@/components/404') },
// { path: '/', redirect: '/' }, // { path: '/', redirect: '/' },
{ {
path: "/", path: '/',
name: "Entry", name: 'Entry',
component: () => import("@/views/layout/Entry.vue"), component: () => import('@/views/layout/Entry.vue')
}, },
{ {
path: "/modify", path: '/modify',
name: "modify", name: 'modify',
meta: { title: "修改密码" }, meta: { title: '修改密码' },
component: () => import("@/views/company/modify.vue"), component: () => import('@/views/company/modify.vue')
}, },
{ {
path: "/modifys", path: '/modifys',
name: "modifys", name: 'modifys',
meta: { title: "修改密码" }, meta: { title: '修改密码' },
component: () => import("@/views/company/modifys.vue"), component: () => import('@/views/company/modifys.vue')
}, },
{ {
path: "/login", path: '/login',
name: "Login", name: 'Login',
component: () => import("@/views/layout/Login.vue"), component: () => import('@/views/layout/Login.vue')
}, },
{ {
path: "/externallogin", path: '/externallogin',
name: "ExternalLogin", name: 'ExternalLogin',
component: () => import("@/views/layout/ExternalLogin.vue"), component: () => import('@/views/layout/ExternalLogin.vue')
}, },
// 外部首页 // 外部首页
{ {
path: "/external", path: '/external',
component: () => import("@/views/extermal/ExternalHome.vue"), component: () => import('@/views/extermal/ExternalHome.vue'),
meta: { title: "首页" }, meta: { title: '首页' },
// redirect: { name: "entry" }, // redirect: { name: "entry" },
children: [ children: [
{ {
path: '', path: '',
name: 'external', name: 'external',
component: () => import("@/views/extermal/ExternalHome.vue"), component: () => import('@/views/extermal/ExternalHome.vue')
}, },
{ {
path: '/external/info', path: '/external/info',
name: 'DetailInfo', name: 'DetailInfo',
component: () => import("@/views/extermal/Article/Detail.vue"), component: () => import('@/views/extermal/Article/Detail.vue')
} }
]
],
}, },
{ {
path: '/external/info/:id', path: '/external/info/:id',
name: 'DetailInfo', name: 'DetailInfo',
component: () => import("@/views/extermal/Article/Detail.vue"), component: () => import('@/views/extermal/Article/Detail.vue')
}, },
{ {
path: '/external/infoList', path: '/external/infoList',
name: 'DetailInfoList', name: 'DetailInfoList',
component: () => import("@/views/extermal/news/index.vue"), component: () => import('@/views/extermal/news/index.vue')
}, },
{ {
path: '/external/infoa/:id/:type', path: '/external/infoa/:id/:type',
name: 'DetailInfoa', name: 'DetailInfoa',
component: () => import("@/views/extermal/Article/Detaila.vue"), component: () => import('@/views/extermal/Article/Detaila.vue')
}, },
{ {
path: '/external/infos/:id', path: '/external/infos/:id',
name: 'DetailInfos', name: 'DetailInfos',
component: () => import("@/views/extermal/Article/Details.vue"), component: () => import('@/views/extermal/Article/Details.vue')
}, },
{ {
path: '/external/Board', path: '/external/Board',
name: 'BoardlInfo', name: 'BoardlInfo',
component: () => import("@/views/extermal/Board/index.vue"), component: () => import('@/views/extermal/Board/index.vue')
}, },
{ {
path: '/external/Process', path: '/external/Process',
name: 'Process1', name: 'Process1',
component: () => import("@/views/extermal/Process/index.vue"), component: () => import('@/views/extermal/Process/index.vue')
}, },
// 内部首页 // 内部首页
{ {
path: "/Home", path: '/Home',
component: () => import("@/views/index.vue"), component: () => import('@/views/index.vue'),
meta: { title: "首页" }, meta: { title: '首页' },
redirect: { name: "entry" }, redirect: { name: 'entry' },
children: [ children: [
{ {
path: "", path: '',
name: "Home", name: 'Home',
component: () => import("@/views/home/Home.vue") component: () => import('@/views/home/Home.vue')
}, },
{ {
path: '/Home/User', path: '/Home/User',
name: 'User', name: 'User',
meta: { title: '调达本部18个月活动' }, meta: { title: '调达本部18个月活动' },
component: () => import("@/views/home/user/index.vue") component: () => import('@/views/home/user/index.vue')
}, },
{ {
path: '/Home/footprint', path: '/Home/footprint',
name: 'footprint', name: 'footprint',
meta: { title: '足迹看板' }, meta: { title: '足迹看板' },
component: () => import("@/views/home/footprint/index.vue") component: () => import('@/views/home/footprint/index.vue')
}, },
{ {
path: '/Home/dataPlatform', path: '/Home/dataPlatform',
name: 'dataPlatform', name: 'dataPlatform',
component: () => import("@/views/dataPlatform/index.vue") component: () => import('@/views/dataPlatform/index.vue')
}, },
{ {
path: '/Home/News', path: '/Home/News',
name: 'News', name: 'News',
meta: { title: 'News列表' }, meta: { title: 'News列表' },
component: () => import("@/views/home/news/index.vue") component: () => import('@/views/home/news/index.vue')
}, },
// 搜索 // 搜索
{ {
path: 'Search', path: 'Search',
meta: { title: "搜索列表" }, meta: { title: '搜索列表' },
children: [{ children: [
{
path: '', path: '',
name: 'Search', name: 'Search',
component: () => import("@/views/home/search/index.vue") component: () => import('@/views/home/search/index.vue')
}, },
{ {
path: '/Home/Search/:id', path: '/Home/Search/:id',
name: 'SearchInfo', name: 'SearchInfo',
meta: { title: "详情" }, meta: { title: '详情' },
component: () => import("@/views/home/intelligence/Detail.vue") component: () => import('@/views/home/intelligence/Detail.vue')
}, }
] ]
}, },
// 外部情报 // 外部情报
{ {
path: "intelligence", path: 'intelligence',
meta: { title: "外部情报" }, meta: { title: '外部情报' },
children: [ children: [
{ {
path: "", path: '',
name: "Intelligence", name: 'Intelligence',
component: () => import("@/views/home/intelligence/Overview.vue"), component: () => import('@/views/home/intelligence/Overview.vue')
}, },
{ {
path: "list", path: 'list',
name: "IntelligenceList", name: 'IntelligenceList',
component: () => import("@/views/home/intelligence/ListPage.vue"), component: () => import('@/views/home/intelligence/ListPage.vue')
}, },
{ {
path: 'messageSelect', path: 'messageSelect',
meta:{title:'外部留言列表'}, meta: { title: '外部留言列表' },
children:[ children: [
{ {
path:'', path: '',
name: "messageSelect", name: 'messageSelect',
component: () => import('@/views/home/intelligence/components/messageSelect.vue'), component: () =>
import(
'@/views/home/intelligence/components/messageSelect.vue'
)
}, },
{ {
path: 'InfosEdit', path: 'InfosEdit',
name: "InfosEdit", name: 'InfosEdit',
meta:{title:'详情编辑'}, meta: { title: '详情编辑' },
component: () => import('@/views/home/intelligence/components/InfosEdit.vue') component: () =>
}, import('@/views/home/intelligence/components/InfosEdit.vue')
}
] ]
}, },
{ {
path: "outside", path: 'outside',
meta: { title: "社外" }, meta: { title: '社外' },
children: [ children: [
{ {
path: "", path: '',
name: "IntelligenceOutside", name: 'IntelligenceOutside',
component: () => component: () =>
import("@/views/home/intelligence/ListPage.vue"), import('@/views/home/intelligence/ListPage.vue')
}, },
{ {
path: "/intelligence/outside/:id", path: '/intelligence/outside/:id',
meta: { title: "情报详情" }, meta: { title: '情报详情' },
name: "IntelligenceOutsideDetail", name: 'IntelligenceOutsideDetail',
component: () => component: () =>
import("@/views/home/intelligence/Detail.vue"), import('@/views/home/intelligence/Detail.vue')
}, }
], ]
}, },
{ {
path: "within", path: 'within',
meta: { title: "社内" }, meta: { title: '社内' },
children: [ children: [
{ {
path: "", path: '',
name: "IntelligenceWithin", name: 'IntelligenceWithin',
component: () => component: () =>
import("@/views/home/intelligence/ListPage.vue"), import('@/views/home/intelligence/ListPage.vue')
}, },
{ {
path: "/intelligence/within/:id", path: '/intelligence/within/:id',
meta: { title: "情报详情" }, meta: { title: '情报详情' },
name: "IntelligenceWithinDetail", name: 'IntelligenceWithinDetail',
component: () => component: () =>
import("@/views/home/intelligence/Detail.vue"), import('@/views/home/intelligence/Detail.vue')
}, }
], ]
}, }
], ]
}, },
// BCP系统 // BCP系统
{ {
path: "bcp", path: 'bcp',
meta: { title: "BCPSCM系统(智能供应链)数据联动+BI化呈现" }, meta: { title: 'BCPSCM系统(智能供应链)数据联动+BI化呈现' },
children: [
{
path: "",
name: "BCP",
component: () =>
import("@/views/home/bcp/BCP.vue"),
},
{
path: "modifyBPC",
meta: { title: "BCP内容管理" },
name: "modifyBPC",
component: () =>
// import("@/views/home/bcp/modify.vue"),
import("@/views/home/bcp/modify_new.vue"),
},
{
path: "bpcDetail",
meta: { title: "BCP详情" },
name: "bcpDetail",
component: () =>
// import("@/views/home/bcp/modify.vue"),
import("@/views/home/bcp/detail.vue"),
},
],
},
// 市况
{
path: "market",
meta: { title: "市况、汇率" },
children: [ children: [
{ {
path: '', path: '',
name: "Market", name: 'BCP',
component: () => import("@/views/home/market/Market.vue"), component: () => import('@/views/home/bcp/BCP.vue')
},
{
path: 'modifyBPC',
meta: { title: 'BCP内容管理' },
name: 'modifyBPC',
component: () =>
// import("@/views/home/bcp/modify.vue"),
import('@/views/home/bcp/modify_new.vue')
},
{
path: 'bpcDetail',
meta: { title: 'BCP详情' },
name: 'bcpDetail',
component: () =>
// import("@/views/home/bcp/modify.vue"),
import('@/views/home/bcp/detail.vue')
}
]
},
// 市况
{
path: 'market',
meta: { title: '市况、汇率' },
children: [
{
path: '',
name: 'Market',
component: () => import('@/views/home/market/Market.vue')
}, },
{ {
path: 'MarketModify', path: 'MarketModify',
name: "MarketModify", name: 'MarketModify',
meta: { title: "市况、汇率管理" }, meta: { title: '市况、汇率管理' },
component: () => import("@/views/home/market/modify.vue"), component: () => import('@/views/home/market/modify.vue')
}, },
{ {
path: 'MarketModifys', path: 'MarketModifys',
name: "MarketModifys", name: 'MarketModifys',
meta: { title: "市况、汇率管理" }, meta: { title: '市况、汇率管理' },
component: () => import("@/views/home/market/modifys.vue"), component: () => import('@/views/home/market/modifys.vue')
}, }
] ]
}, },
// 战略企画 // 战略企画
{ {
path: "strategic", path: 'strategic',
meta: { title: "战略企划" }, meta: { title: '战略企划' },
name: "StrategicPlanning", name: 'StrategicPlanning',
component: () => import("@/views/home/StrategicPlanning.vue"), component: () => import('@/views/home/StrategicPlanning.vue')
}, },
// 大金中国调达CSR // 大金中国调达CSR
{ {
path: "csr", path: 'csr',
meta: { title: "碳中和挑战" }, meta: { title: '碳中和挑战' },
children: [{ children: [
path: "", {
name: "CSR", path: '',
component: () => import("@/views/home/csr/CSR.vue"), name: 'CSR',
}, { component: () => import('@/views/home/csr/CSR.vue')
path: "modifyCsr2",
meta: { title: "内容管理" },
name: "modifyCsr2",
component: () => import("@/views/home/csr/modifyCSR2.vue"),
}, },
{ {
path: "modifyCsrList", path: 'modifyCsr2',
meta: { title: "列表内容" }, meta: { title: '内容管理' },
name: "modifyCsrList", name: 'modifyCsr2',
component: () => import("@/views/home/csr/index.vue"), component: () => import('@/views/home/csr/modifyCSR2.vue')
},
{
path: 'modifyCsrCarbon',
meta: { title: '购入原材料脱碳素活动内容管理' },
name: 'modifyCsrCarbon',
component: () => import('@/views/home/csr/modifyCsrCarbon.vue')
},
{
path: 'modifyCsrList',
meta: { title: '列表内容' },
name: 'modifyCsrList',
component: () => import('@/views/home/csr/index.vue')
}, },
{ {
path: 'CSRList', path: 'CSRList',
name: 'CSRList', name: 'CSRList',
meta: { title: "足迹报告列表" }, meta: { title: '足迹报告列表' },
component: () => import("@/views/home/csr/CSRlist.vue") component: () => import('@/views/home/csr/CSRlist.vue')
}, }
] ]
}, },
// 品质 // 品质
{ {
path: "quality", path: 'quality',
meta: { title: "品质" }, meta: { title: '品质' },
children: [ children: [
{ {
path: "", path: '',
name: "Quality", name: 'Quality',
component: () => import("@/views/home/quality/Quality.vue"), component: () => import('@/views/home/quality/Quality.vue')
}, },
{ {
path: "/Home/quality/modify", path: '/Home/quality/modify',
name: "QualityModify", name: 'QualityModify',
meta: { title: "品质内容管理" }, meta: { title: '品质内容管理' },
component: () => import("@/views/home/quality/modify.vue"), component: () => import('@/views/home/quality/modify.vue')
}, }
] ]
}, },
// 待审核情报 // 待审核情报
{ {
path: "Process", path: 'Process',
meta: { title: "情报新增待审批" }, meta: { title: '情报新增待审批' },
children: [ children: [
{ {
path: '', path: '',
name: "Process", name: 'Process',
component: () => import("@/views/home/intelligence/process/Process.vue"), component: () =>
import('@/views/home/intelligence/process/Process.vue')
}, },
{ {
path: "/Home/Process/ProcessInfo/:id", path: '/Home/Process/ProcessInfo/:id',
meta: { title: "情报审批详情" }, meta: { title: '情报审批详情' },
name: "", name: '',
component: () => import("@/views/home/intelligence/process/ProcessInfo.vue"), component: () =>
import('@/views/home/intelligence/process/ProcessInfo.vue')
}, },
{ {
path: '/Home/Process/Detail/:id/:flag', path: '/Home/Process/Detail/:id/:flag',
name: '', name: '',
meta: { title: "情报审批详情" }, meta: { title: '情报审批详情' },
component: () => import("@/views/home/intelligence/Detail.vue") component: () => import('@/views/home/intelligence/Detail.vue')
} }
] ]
}, },
// C/D数据 // C/D数据
{ {
path: "cd", path: 'cd',
meta: { title: "C/D数据" }, meta: { title: 'C/D数据' },
name: "CD", name: 'CD',
component: () => import("@/views/home/cd/CD.vue"), component: () => import('@/views/home/cd/CD.vue')
}, },
// C/D数据 // C/D数据
{ {
path: "developing", path: 'developing',
meta: { title: "开发中" }, meta: { title: '开发中' },
name: "Developing", name: 'Developing',
component: () => import("@/views/home/develop.vue"), component: () => import('@/views/home/develop.vue')
}, },
// 差别化云空间 // 差别化云空间
{ {
path: "diffspace", path: 'diffspace',
meta: { title: "差别化研究" }, meta: { title: '差别化研究' },
children: [ children: [
{ {
path: "", path: '',
name: "Diffspace", name: 'Diffspace',
component: () => import("@/views/home/diffspace/Overview.vue"), component: () => import('@/views/home/diffspace/Overview.vue')
}, },
{ {
path: "report", path: 'report',
meta: { title: "基础研究方向" }, meta: { title: '基础研究方向' },
name: "DiffspaceResearchReport", name: 'DiffspaceResearchReport',
component: () => component: () =>
import("@/views/home/diffspace/ResearchReport.vue"), import('@/views/home/diffspace/ResearchReport.vue')
}, },
// { // {
// path: "modifys", // path: "modifys",
@ -406,27 +409,25 @@ const router = createRouter({
// }, // },
{ {
path: "modifys", path: 'modifys',
name: "DiffspaceModify", name: 'DiffspaceModify',
meta: { title: "差别化研究管理" }, meta: { title: '差别化研究管理' },
component: () => import("@/views/home/diffspace/fack.vue"), component: () => import('@/views/home/diffspace/fack.vue')
}, },
{ {
path: "modifyDiffspace", path: 'modifyDiffspace',
name: "ModifyDiffspace", name: 'ModifyDiffspace',
meta: { title: "研究方向内容管理" }, meta: { title: '研究方向内容管理' },
component: () => import("@/views/home/diffspace/modifys.vue"), component: () => import('@/views/home/diffspace/modifys.vue')
}, },
{ {
path: "/Home/diffspace/diffspaceList/:id", path: '/Home/diffspace/diffspaceList/:id',
meta: { title: "差别化研究分类" }, meta: { title: '差别化研究分类' },
children: [ children: [
{ {
path: '', path: '',
name: "DiffspaceTab", name: 'DiffspaceTab',
component: () => import("@/views/home/diffspace/allList.vue"), component: () => import('@/views/home/diffspace/allList.vue')
}, },
// { // {
// path:'', // path:'',
@ -435,104 +436,105 @@ const router = createRouter({
// }, // },
{ {
path: '/home/diffspace/DiffspaceTabModify', path: '/home/diffspace/DiffspaceTabModify',
name: "DiffspaceTabModify", name: 'DiffspaceTabModify',
meta: { title: "差别化课题管理" }, meta: { title: '差别化课题管理' },
component: () => import("@/views/home/diffspace/component/modify.vue"), component: () =>
import('@/views/home/diffspace/component/modify.vue')
}
]
} }
] ]
}, },
],
},
// 集团方针 // 集团方针
{ {
path: "group", path: 'group',
meta: { title: "集团部门方针" }, meta: { title: '集团部门方针' },
children: [ children: [
{ {
path: "", path: '',
meta: { title: "集团方针" }, meta: { title: '集团方针' },
name: "Group", name: 'Group',
component: () => import("@/views/company/index.vue"), component: () => import('@/views/company/index.vue')
}, },
{ {
path: "company", path: 'company',
meta: { title: "公司方针" }, meta: { title: '公司方针' },
name: "Company", name: 'Company',
component: () => import("@/views/company/Company.vue"), component: () => import('@/views/company/Company.vue')
}, },
{ {
path: "headquarters", path: 'headquarters',
meta: { title: "调达本部方针" }, meta: { title: '调达本部方针' },
name: "HeadQuarters", name: 'HeadQuarters',
component: () => import("@/views/company/HeadQuarters.vue"), component: () => import('@/views/company/HeadQuarters.vue')
} }
] ]
}, },
// 紧急联络 // 紧急联络
{ {
path: 'phone', path: 'phone',
meta: { title: "紧急联络" }, meta: { title: '紧急联络' },
children: [ children: [
{ {
path: "", path: '',
name: "phone", name: 'phone',
component: () => import("@/views/home/phone/index.vue"), component: () => import('@/views/home/phone/index.vue')
}, },
{ {
path: "visit", path: 'visit',
meta: { title: "拜访" }, meta: { title: '拜访' },
name: "visit", name: 'visit',
component: () => import("@/views/home/phone/visit.vue"), component: () => import('@/views/home/phone/visit.vue')
}, },
{ {
path: "inv", path: 'inv',
meta: { title: "邀请" }, meta: { title: '邀请' },
name: "inv", name: 'inv',
component: () => import("@/views/home/phone/inv.vue"), component: () => import('@/views/home/phone/inv.vue')
}, }
]
], }
}, ]
],
}, },
// database // database
{ {
path: '/DataBase', path: '/DataBase',
component: () => import("@/views/home/database/index.vue"), component: () => import('@/views/home/database/index.vue'),
children: [{ children: [
{
path: '', path: '',
name: 'DataBase', name: 'DataBase',
component: () => import("@/views/home/database/guize/index.vue") component: () => import('@/views/home/database/guize/index.vue')
}, },
{ {
path: '/DataBase/Modify', path: '/DataBase/Modify',
name: 'DataBaseModify', name: 'DataBaseModify',
component: () => import("@/views/home/database/modify.vue") component: () => import('@/views/home/database/modify.vue')
} }
] ]
}, },
{ {
path: "/bpcTreeDetail", path: '/bpcTreeDetail',
name: "bpcTreeDetail", name: 'bpcTreeDetail',
component: () => component: () =>
// import("@/views/home/bcp/modify.vue"), // import("@/views/home/bcp/modify.vue"),
import("@/views/home/bcp/bpcTreeDetail.vue"), import('@/views/home/bcp/bpcTreeDetail.vue')
}, },
{ {
path: "/bpclist", path: '/bpclist',
name: "bpclist", name: 'bpclist',
component: () => component: () =>
// import("@/views/home/bcp/modify.vue"), // import("@/views/home/bcp/modify.vue"),
import("@/views/home/bcp/bpclist.vue"), import('@/views/home/bcp/bpclist.vue')
}, },
{ {
path: "/contentList", path: '/contentList',
name: "contentList", name: 'contentList',
component: () => component: () =>
// import("@/views/home/bcp/modify.vue"), // import("@/views/home/bcp/modify.vue"),
import("@/views/home/bcp/contentList.vue"), import('@/views/home/bcp/contentList.vue')
} }
], ]
}); })
export default router; export default router;

View File

@ -10,7 +10,13 @@ import CSRContent2 from './CSRContent2.vue'
import CSRContent22 from './CSRContent22.vue' import CSRContent22 from './CSRContent22.vue'
import CSRContent23 from './CSRContent23.vue' import CSRContent23 from './CSRContent23.vue'
import { Content2, Content3 } from './CSRData' import { Content2, Content3 } from './CSRData'
import { useUserStore } from '@/stores/modules/user'
const store = useUserStore()
const { push } = useRouter()
const userCode = ['admin', 'csr_dandang', 'tech_service'].includes(
store.user.roleCode
)
const Navs = [{ name: '集团*部门方针' }, { name: '年度活动日程表' }, { name: '其他链接' }, { name: '紧急联络' }, { name: 'CN/JP' }] const Navs = [{ name: '集团*部门方针' }, { name: '年度活动日程表' }, { name: '其他链接' }, { name: '紧急联络' }, { name: 'CN/JP' }]
const Content = [ const Content = [
{ key: '1-1', component: () => <CSRContent /> }, { key: '1-1', component: () => <CSRContent /> },
@ -27,6 +33,11 @@ const activeContent = computed(() => {
console.log(curContent,1111) console.log(curContent,1111)
return curContent?.component || null return curContent?.component || null
}) })
const shomks = () => {
// push('csr/modifyCsr2')
push({ name: 'modifyCsrCarbon' })
}
</script> </script>
<template> <template>
@ -38,11 +49,14 @@ const activeContent = computed(() => {
<div class="h-full relative flex flex-col"> <div class="h-full relative flex flex-col">
<div class="flex flex-end ml10px mt27px"> <div class="flex flex-end ml10px mt27px">
<div class="flex-1"></div> <div class="flex-1"></div>
<!-- <el-button class="absolute right-5 top-[-8px]" v-if="userCode && activeNav === '1-2'" type="primary" @click="shomks"
>管理</el-button
> -->
<!-- <div class="px16px py8px cursor-pointer text-20px" v-for="nav in Navs" :key="nav.name">{{ nav.name }}</div> --> <!-- <div class="px16px py8px cursor-pointer text-20px" v-for="nav in Navs" :key="nav.name">{{ nav.name }}</div> -->
</div> </div>
<div class="flex-1 mt30px text-#142142 flex gap-30px h-825px"> <div class="flex-1 mt30px text-#142142 flex gap-30px h-825px">
<AppBlock class="shrink-0 h-full w241px box !b-0"> <AppBlock class="shrink-0 h-full w241px box !b-0">
<div class="overflow-y-auto h-full"> <div class="overflow-y-auto h-full ">
<CSRSide v-model:activeNav="activeNav" /> <CSRSide v-model:activeNav="activeNav" />
</div> </div>
</AppBlock> </AppBlock>

View File

@ -174,9 +174,9 @@ async function downloadFile(data) {
</script> </script>
<template> <template>
<AppBlock class="h-full flex-1 box"> <AppBlock class="h-full flex-1 box rounded-18px">
<div class="h-full relative"> <div class="h-full relative rounded-18px">
<el-button v-if="userCode" type="primary" class="button" @click="shomks"></el-button> <el-button v-if="userCode" type="primary" class="button" @click="shomks"></el-button>
<!-- 123 --> <!-- 123 -->
<div class="text-32px font-700 h85px flex items-center justify-center line"> <div class="text-32px font-700 h85px flex items-center justify-center line">

View File

@ -6,6 +6,7 @@ import AppBlock from '@/components/AppBlock.vue'
import { NIcon, useMessage, NCarousel } from 'naive-ui' import { NIcon, useMessage, NCarousel } from 'naive-ui'
import { ChevronBack, ChevronForward } from '@vicons/ionicons5' import { ChevronBack, ChevronForward } from '@vicons/ionicons5'
import { ElCarousel, ElCarouselItem } from 'element-plus' import { ElCarousel, ElCarouselItem } from 'element-plus'
import { NPopover } from 'naive-ui'
import { getFootprintList } from '@/api/daikin/base' import { getFootprintList } from '@/api/daikin/base'
@ -18,7 +19,7 @@ const userCode = ['admin', 'csr_dandang', 'tech_service'].includes(
store.user.roleCode store.user.roleCode
) )
const swipeRef = ref<any>(null) const swipeRef = ref<any>(null)
const dataList = ref() const dataList = ref([])
const swipeActiveIndex = ref(0) const swipeActiveIndex = ref(0)
function handleIndex(x: any) { function handleIndex(x: any) {
swipeActiveIndex.value = x.realIndex swipeActiveIndex.value = x.realIndex
@ -29,7 +30,7 @@ const setSwiperRef = (swiper: any) => {
} }
// 2 // 2
const swipeSubRef = ref<any>(null) const swipeSubRef = ref<any>(null)
const dataList2 = ref() const dataList2 = ref([])
const swipeActiveIndex2 = ref(0) const swipeActiveIndex2 = ref(0)
function handleIndex2(x: any) { function handleIndex2(x: any) {
swipeActiveIndex2.value = x.realIndex swipeActiveIndex2.value = x.realIndex
@ -45,6 +46,8 @@ const pageInfo = reactive({
}) })
const swiperList = ref() const swiperList = ref()
onMounted(async () => { onMounted(async () => {
dataList.value = []
msgScoll.value?.addEventListener('scroll', handleVisitsScoll)
// Solution // Solution
const { rows } = await getFootprintList({ const { rows } = await getFootprintList({
pageNum: pageInfo.currentPage, pageNum: pageInfo.currentPage,
@ -61,8 +64,11 @@ onMounted(async () => {
// }; // };
// }); // });
// } // }
swiperList.value = rows swiperList.value = rows
// if(rows.length>5 || rows.length < 3){
// }else{
// swiperList.value = [...rows,...rows]
// }
} }
// //
getZu(1) getZu(1)
@ -163,20 +169,19 @@ const getZu = async (pageNum) => {
moduleId: '2' moduleId: '2'
}) })
if (type === 0) { // if (type === 0) {
dataList.value = rows // dataList.value = rows
} else { // } else {
// }
dataList.value.push(...rows) dataList.value.push(...rows)
} maxMsgLingth = total / pageSize
maxMsgLingth = total / 4
console.log(dataList.value, type) console.log(dataList.value, type)
} }
const msgScoll = ref<HTMLElement | null>(null) const msgScoll = ref<HTMLElement | null>(null)
onMounted(() => {
msgScoll.value?.addEventListener('scroll', handleVisitsScoll)
})
const handleVisitsScoll = () => { const handleVisitsScoll = () => {
// if(pageNum >= 1) return
const container = msgScoll.value const container = msgScoll.value
if (container) { if (container) {
const isAtBottom = const isAtBottom =
@ -192,7 +197,7 @@ const handleVisitsScoll = () => {
</script> </script>
<template> <template>
<div class="w-full h-full box"> <div class="w-full h-full box rounded-18px overflow-hidden">
<!-- <AppBlock class="w-full "> <!-- <AppBlock class="w-full ">
<img src="./images/goudongxi.png" class="w-full h-full" /> <img src="./images/goudongxi.png" class="w-full h-full" />
</AppBlock> --> </AppBlock> -->
@ -229,7 +234,6 @@ const handleVisitsScoll = () => {
<div class="w1200px px68px relative"> <div class="w1200px px68px relative">
<div <div
class="swipe-nav nav-prev" class="swipe-nav nav-prev"
@click="swipeRef && swipeRef.slidePrev()"
> >
<NIcon size="40" color="#537deb"> <NIcon size="40" color="#537deb">
<ChevronBack /> <ChevronBack />
@ -237,25 +241,32 @@ const handleVisitsScoll = () => {
</div> </div>
<div <div
class="swipe-nav nav-next" class="swipe-nav nav-next"
@click="swipeRef && swipeRef.slideNext()"
> >
<NIcon size="40" color="#537deb"> <NIcon size="40" color="#537deb">
<ChevronForward /> <ChevronForward />
</NIcon> </NIcon>
</div> </div>
<!-- :slides-per-group="3" -->
<Swiper <Swiper
ref="swipeRef" ref="swipeRef"
@slideChangeTransitionEnd="handleIndex" :autoplay="{delay: 3000, disableOnInteraction: false, pauseOnMouseEnter: true,stopOnLastSlide: false}"
@swiper="setSwiperRef" @swiper="setSwiperRef"
class="h325px" class="h325px"
:slides-per-view="3" :slides-per-view="3"
:slides-per-group="1"
:loopAdditionalSlides="3"
:speed="500" :speed="500"
:space-between="8" :space-between="8"
:modules="modules" :modules="modules"
:scrollbar="{ draggable: false }" :scrollbar="{ draggable: false }"
:loop="false" :loop="true"
:navigation="{
nextEl: '.nav-next',
prevEl: '.nav-prev',
}"
> >
<SwiperSlide v-for="(i, index) in swiperList" :key="i"> <template v-for="(i, index) in swiperList" :key="i">
<SwiperSlide >
<div <div
class="w340px h300px overflow-hidden bg-#F6F8FF mt10px relative rd-25px" class="w340px h300px overflow-hidden bg-#F6F8FF mt10px relative rd-25px"
style="box-shadow: 0px 7px 12px 0px #e7e7e7" style="box-shadow: 0px 7px 12px 0px #e7e7e7"
@ -302,7 +313,7 @@ const handleVisitsScoll = () => {
v-if="i.imgUrl" v-if="i.imgUrl"
v-for="ite in i.imgUrl" v-for="ite in i.imgUrl"
:src="ite.url" :src="ite.url"
class="p10px w-full max-h-200px image-container" class="p10px w-full max-h-200px image-container overflow-hidden"
/> />
</n-carousel> </n-carousel>
</div> </div>
@ -318,15 +329,21 @@ const handleVisitsScoll = () => {
src="../../../assets/images/lvbiao@2x.png" src="../../../assets/images/lvbiao@2x.png"
class="mr-5px" class="mr-5px"
/> />
<n-popover trigger="hover" placement="top-start" >
<template #trigger>
<span <span
class="truncate text-16px" class="truncate text-16px"
v-if="i.filePath && i.filePath.length > 0"
@click="toDetail(i)" @click="toDetail(i)"
>{{ i.filePath[0].originalFileName }} > {{ i.filePath[0]?.originalFileName }}
</span> </span>
</template>
<div class="text-18px leading-40px">
{{ i.filePath[0]?.originalFileName }}
</div>
</n-popover>
</div> </div>
<div <div
v-if="i.filePath.length == 1" v-if="i.filePath.length > 1"
title="查看更多" title="查看更多"
@click="toDetail(i)" @click="toDetail(i)"
class="cursor-pointer right--20px top-0px w60px pt-6px flex items-center ml-auto text-right" class="cursor-pointer right--20px top-0px w60px pt-6px flex items-center ml-auto text-right"
@ -359,6 +376,7 @@ const handleVisitsScoll = () => {
</div> </div>
</div> </div>
</SwiperSlide> </SwiperSlide>
</template>
</Swiper> </Swiper>
</div> </div>
</AppBlock> </AppBlock>

View File

@ -8,11 +8,18 @@ import {
liQuids liQuids
} from './CSRDatas' } from './CSRDatas'
import zhCn from 'element-plus/dist/locale/zh-cn.mjs' import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
const { chartRef, option } = charData() // const { chartRef, option } = charData()
const { chartRef: chartRef1, option: option1 } = charData2() // const { chartRef: chartRef1, option: option1 } = charData2()
const { chartRef: chartRefP1, option: optionP1 } = pieData1() // const { chartRef: chartRefP1, option: optionP1 } = pieData1()
import { NNumberAnimation } from "naive-ui"; import { NNumberAnimation } from "naive-ui";
import { ref, onMounted } from 'vue'
const option = ref({});
const option1 = ref({});
const optionP1 = ref<any>({});
const chartRef = ref(null);
const chartRef1 = ref(null);
const chartRefP1 = ref(null);
const locale = computed(() => zhCn) const locale = computed(() => zhCn)
const YearTime1 = ref('2020') const YearTime1 = ref('2020')
const YearTime2 = ref('2023') const YearTime2 = ref('2023')
@ -22,10 +29,22 @@ const cardsClick = (it) => {
console.log(flgs.value) console.log(flgs.value)
// dataInfo.treeSource = it // dataInfo.treeSource = it
} }
onMounted(() => {
const char = charData()
option.value = char.option.value
chartRef.value = char.chartRef.value
const char1 = charData2()
option1.value = char1.option.value
chartRef1.value = char1.chartRef.value
const charP1 = pieData1()
optionP1.value = charP1.option.value
chartRefP1.value = charP1.chartRef.value
})
</script> </script>
<template> <template>
<div class="flex w-full h-full"> <div class="flex w-full h-full rounded-18px">
<!-- <AppBlock class="w-full "> <!-- <AppBlock class="w-full ">
<img src="./images/goudongxi3.png" class="w-full h-full" /> <img src="./images/goudongxi3.png" class="w-full h-full" />
</AppBlock> --> </AppBlock> -->
@ -91,14 +110,14 @@ const cardsClick = (it) => {
</el-config-provider> </el-config-provider>
</div> </div>
</div> </div>
<div class="w-full bg-#fff h-38.5%"> <div class="relative w-full bg-#fff h-38.5%">
<div class="text-center text-#142142 text-22px py20px font-extrabold"> <div class="absolute top-28px left-1/2 translate-[-50%] text-center text-#142142 text-22px py20px font-extrabold">
SMM牌号低碳铝价格&价差 SMM牌号低碳铝价格&价差
</div> </div>
<div class="w-full h-340px"> <div class="w-full h-340px pt-4">
<VChart ref="chartRef1" :option="option1" /> <VChart ref="chartRef1" :option="option1" />
</div> </div>
<div class="absolute top-16px left-2 flex items-center"> <div class="absolute top-12px left-2 flex items-center">
<el-config-provider :locale="locale"> <el-config-provider :locale="locale">
<el-date-picker <el-date-picker
v-model="YearTime1" v-model="YearTime1"

View File

@ -19,7 +19,7 @@ const isDateDisabled = (date) => {
</script> </script>
<template> <template>
<div class="flex w-full "> <div class="flex w-full rounded-18px">
<!-- <AppBlock> --> <!-- <AppBlock> -->
<!-- <img src="./images/goudongxi2.png" class="w-full h-full" /> --> <!-- <img src="./images/goudongxi2.png" class="w-full h-full" /> -->
<div class="w-full bg-#f4f4f4 flex flex-wrap justify-between h-full rd-25px"> <div class="w-full bg-#f4f4f4 flex flex-wrap justify-between h-full rd-25px">
@ -119,9 +119,9 @@ const isDateDisabled = (date) => {
</div> </div>
<div ref="msgScoll" class="px20px w-full h800px cent_box overflow-y-auto"> <div ref="msgScoll" class="px20px w-full h800px cent_box overflow-y-auto">
<div v-if="true" class="text-#808696 bg-#F4F8FF items-center flex py10px rd-5px mt10px" v-for="(i, key) in 9" :key="i"> <div v-if="true" class=" text-18px text-#808696 bg-#F4F8FF items-center flex py10px rd-5px mt10px" v-for="(i, key) in 9" :key="i">
<div class="truncate2" @click="toDetail(i,'App_E_Message')"> <div class="truncate2" @click="toDetail(i,'App_E_Message')">
<span class="text-#fff bg-#407DF1 px5px text-16px rounded-20px mr-5px inlineFlex">{{ ++key }}</span> <span class="text-#fff bg-#407DF1 px5px rounded-20px mr-5px inlineFlex">{{ ++key }}</span>
<span>{{'供应商名称' + i}} </span> <span>{{'供应商名称' + i}} </span>
</div> </div>
<div class="min-w150px max-w150px text-#000">3次未提交</div> <div class="min-w150px max-w150px text-#000">3次未提交</div>

View File

@ -3,27 +3,84 @@ import * as echarts from 'echarts'
import 'echarts-liquidfill'; import 'echarts-liquidfill';
import {getCSRDetail} from '@/api/daikin/base' import {getCSRDetail} from '@/api/daikin/base'
import { create } from 'naive-ui'; import { create } from 'naive-ui';
import { xAxisD, dataA, dataB } from './testData'
export const Content2 = [ export const Content2 = [
{ {
key: '0', key: '0',
label: '活动计划', label: '活动计划',
children: [ children: [
{ label: '调达本部HP', items: [{ content: 'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来' }] }, {
{ label: 'CSR-碳中和', items: [{ content: 'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来' }] }, label: '调达本部HP',
{ label: '中国地区连携强化 ', items: [{ content: 'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来' }] }, items: [
], {
content:
'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来'
}
]
},
{
label: 'CSR-碳中和',
items: [
{
content:
'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来'
}
]
},
{
label: '中国地区连携强化 ',
items: [
{
content:
'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来'
}
]
}
]
}, },
{ {
key: '1', key: '1',
label: '活动成果', label: '活动成果',
children: [ children: [
{ label: 'Database推进', items: [{ content: 'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来' }] }, {
{ label: '市况', items: [{ content: 'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来' }] }, label: 'Database推进',
{ label: '汇率', items: [{ content: 'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来' }] }, items: [
{ label: 'BCP', items: [{ content: 'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来' }] }, {
], content:
'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来'
}
]
}, },
{
label: '市况',
items: [
{
content:
'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来'
}
]
},
{
label: '汇率',
items: [
{
content:
'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来'
}
]
},
{
label: 'BCP',
items: [
{
content:
'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来'
}
]
}
]
}
] ]
export const Content3 = [ export const Content3 = [
{ {
@ -31,41 +88,153 @@ export const Content3 = [
title: 'xx活动概要', title: 'xx活动概要',
label: '活动计划', label: '活动计划',
children: [ children: [
{ label: '调达本部HP', items: [{ content: 'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来' }] }, {
{ label: 'CSR-碳中和', items: [{ content: 'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来' }] }, label: '调达本部HP',
{ label: '工作模式变更 ', items: [{ content: 'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来' }] }, items: [
{ label: '差别化', items: [{ content: 'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来' }] }, {
], content:
'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来'
}
]
},
{
label: 'CSR-碳中和',
items: [
{
content:
'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来'
}
]
},
{
label: '工作模式变更 ',
items: [
{
content:
'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来'
}
]
},
{
label: '差别化',
items: [
{
content:
'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来'
}
]
}
]
}, },
{ {
key: '1', key: '1',
label: '活动成果', label: '活动成果',
children: [ children: [
{ label: 'Database推进', items: [{ content: 'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来' }] }, {
{ label: '全球连携强化', items: [{ content: 'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来' }] }, label: 'Database推进',
{ label: '高品质高品位', items: [{ content: 'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来' }] }, items: [
], {
content:
'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来'
}
]
},
{
label: '全球连携强化',
items: [
{
content:
'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来'
}
]
},
{
label: '高品质高品位',
items: [
{
content:
'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来'
}
]
}
]
}, },
{ {
key: '2', key: '2',
title: 'xx活动概要', title: 'xx活动概要',
label: '活动计划', label: '活动计划',
children: [ children: [
{ label: 'CSR-碳中和', items: [{ content: 'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来' }] }, {
{ label: '工作模式变更 ', items: [{ content: 'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来' }] }, label: 'CSR-碳中和',
{ label: '差别化', items: [{ content: 'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来' }] }, items: [
], {
content:
'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来'
}
]
},
{
label: '工作模式变更 ',
items: [
{
content:
'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来'
}
]
},
{
label: '差别化',
items: [
{
content:
'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来'
}
]
}
]
}, },
{ {
key: '3', key: '3',
label: '活动成果', label: '活动成果',
children: [ children: [
{ label: 'Database推进', items: [{ content: 'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来' }] }, {
{ label: '市况', items: [{ content: 'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来' }] }, label: 'Database推进',
{ label: '全球连携强化', items: [{ content: 'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来' }] }, items: [
{ label: '高品质高品位', items: [{ content: 'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来' }] }, {
], content:
'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来'
}
]
}, },
{
label: '市况',
items: [
{
content:
'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来'
}
]
},
{
label: '全球连携强化',
items: [
{
content:
'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来'
}
]
},
{
label: '高品质高品位',
items: [
{
content:
'FY22年度集团新年方针:领先时代的变化开创崭新的未来变化开 创崭新的未来'
}
]
}
]
}
] ]
const form = ref({ const form = ref({
lable1: { lable1: {
@ -177,17 +346,19 @@ const form = ref({
}) })
async function getCSR() { async function getCSR() {
const {data,data:{content:{form:ffff}}} = await getCSRDetail() const {
data,
data: {
content: { form: ffff }
}
} = await getCSRDetail()
form.value = ffff form.value = ffff
} }
export function charData() { export function charData() {
const chartRef = ref() const chartRef = ref()
const params = '15%' const params = '15%'
const option = ref<EChartsOption>({ const option = ref<EChartsOption>({
tooltip: { tooltip: {
trigger: 'axis', trigger: 'axis',
@ -197,7 +368,7 @@ export function charData() {
}, },
legend: { legend: {
data: ['DIS', 'DSZ'], data: ['DIS', 'DSZ'],
bottom:'0px', bottom: '0px'
// right:'50px' // right:'50px'
}, },
grid: { grid: {
@ -220,35 +391,29 @@ export function charData() {
// ] // ]
// }, // },
xAxis: { type: 'category', data: form.value.lable4.name.split(',') },
xAxis: { type: 'category',
data:form.value.lable4.name.split(",")
},
yAxis: {}, yAxis: {},
series: [ series: [
{ {
name: 'DIS', name: 'DIS',
type: 'bar', type: 'bar',
barWidth: '30%', barWidth: '30%',
data: form.value.lable4.year.split(","), data: form.value.lable4.year.split(','),
label: label: {
{ show: false
show: false, }
},
}, },
{ {
name: 'DSZ', name: 'DSZ',
type: 'bar', type: 'bar',
label: label: {
{
show: false, show: false,
position: 'inside', position: 'inside',
formatter: '{c}%' formatter: '{c}%'
}, },
barWidth: '30%', barWidth: '30%',
data: form.value.lable4.date.split(","), data: form.value.lable4.date.split(',')
}, }
// { name: '预测/实绩用量', type: 'line' } // { name: '预测/实绩用量', type: 'line' }
] ]
}) })
@ -256,75 +421,191 @@ export function charData() {
} }
export function charData2() { export function charData2() {
const chartRef = ref() const chartRef = ref()
const params = '15%' const params = '15%'
// const option = ref<EChartsOption>({
// tooltip: {
// trigger: 'axis',
// axisPointer: {
// type: 'shadow'
// }
// },
// legend: {
// data: ['DIS', 'DSZ'],
// top: '0px',
// right: '50px'
// },
// grid: {
// left: '3%',
// right: '4%',
// containLabel: true
// },
// title: [{ text: '单位:元/吨' }],
// // color:['#58D9FC','red','#fff'],
// // dataset: {
// // // 提供一份数据。
// // source: [
// // ['2020实绩', 220, 0, 220],
// // ['2021实绩', 182, 0, 182],
// // ['2022实绩', 191, 0, 191],
// // ['2023', 234, 43, 234],
// // ['2024', 290, 23, 290],
// // ['2025', 330, 65, 330],
// // ]
// // },
// xAxis: {
// type: 'category',
// data: form.value.lable14.name.split(','),
// axisLabel: {
// interval: 0, //隔几项显示一个标签
// rotate: '-90' //标签倾斜的角度,旋转的角度是-90到90度
// }
// },
// yAxis: {},
// series: [
// {
// name: 'DIS',
// type: 'line',
// data: form.value.lable14.year.split(',')
// },
// {
// name: 'DSZ',
// type: 'line',
// data: form.value.lable14.date.split(',')
// }
// // { name: '预测/实绩用量', type: 'line' }
// ]
// })
const option = ref<EChartsOption>({ const option = ref<EChartsOption>({
// title: {
// text: 'SMM牌号低碳铝价格&价差',
// left: 'center'
// },
grid: {
bottom: 80
},
tooltip: { tooltip: {
trigger: 'axis', trigger: 'axis',
axisPointer: { axisPointer: {
type: 'shadow' type: 'cross',
animation: false,
label: {
backgroundColor: '#505765'
}
} }
}, },
legend: { legend: {
data: ['DIS', 'DSZ'], data: ['低碳铝', '价差'],
top:'0px', right: 10
right:'50px'
}, },
dataZoom: [
grid: { {
left: '3%', show: true,
right: '4%', startValue: '2022-06-01',
endValue: '2022-10-01'
containLabel: true
}, },
title: [{ text: '单位:千吨' }], {
// color:['#58D9FC','red','#fff'], type: 'inside'
// dataset: { // realtime: true,
// // 提供一份数据。 // start: 65,
// source: [ // end: 85
// ['2020实绩', 220, 0, 220],
// ['2021实绩', 182, 0, 182],
// ['2022实绩', 191, 0, 191],
// ['2023', 234, 43, 234],
// ['2024', 290, 23, 290],
// ['2025', 330, 65, 330],
// ]
// },
xAxis: { type: 'category',
data:form.value.lable14.name.split(","),
axisLabel: {
interval: 0, //隔几项显示一个标签
rotate: "-90" //标签倾斜的角度,旋转的角度是-90到90度
} }
],
xAxis: [
{
type: 'category',
boundaryGap: false,
axisLine: { onZero: false },
// prettier-ignore
data: xAxisD
}
],
yAxis: [
{
name: '单位:元',
type: 'value'
}, },
yAxis: {}, {
name: '单位:元/吨',
// nameLocation: 'start',
alignTicks: true,
type: 'value'
// inverse: true
}
],
series: [ series: [
{ {
name: 'DIS', name: '低碳铝',
type: 'line', type: 'line',
data: form.value.lable14.year.split(","), smooth: true,
// areaStyle: {},
lineStyle: {
width: 3
// color: '#7030a0'
},
emphasis: {
focus: 'series'
},
// prettier-ignore
data: dataA
}, },
{ {
name: 'DSZ', name: '价差',
type: 'line', type: 'line',
data: form.value.lable14.date.split(","), smooth: true,
yAxisIndex: 1,
markLine: {
symbol: '', // 设置为空字符串,去除箭头
silent: true,
lineStyle: {
color: '#7030a0',
type: 'solid',
width: 3
}, },
// { name: '预测/实绩用量', type: 'line' } data: [
{
yAxis: 700
}
]
},
lineStyle: {
width: 3
},
emphasis: {
focus: 'series'
},
// prettier-ignore
data: dataB
}
] ]
}) })
return { chartRef, option } return { chartRef, option }
} }
// 原材料用量及碳排放量占比图
export function pieData1() { export function pieData1() {
const chartRef = ref() const chartRef = ref()
const option = ref<EChartsOption>({ const option = ref<EChartsOption>({
legend: {
orient: 'vertical',
data: [
{
name: '原材料碳排放量(吨)',
itemStyle: { color: '#f8cbad', borderWidth: 0 }
},
{
name: '原材料使用量(吨)',
itemStyle: { color: '#acc1fb', borderWidth: 0 }
}
],
selectedMode: false,
left: 10,
top: 30
},
title: { title: {
text: form.value.lable8.name, text: form.value.lable8.name,
// subtext: 'Fake Data', // subtext: 'Fake Data',
@ -336,7 +617,7 @@ export function pieData1() {
}, },
grid: { grid: {
left: '20', left: '20',
top: '30', // top: '100',
right: '70', right: '70',
bottom: '10', bottom: '10',
containLabel: true containLabel: true
@ -348,13 +629,17 @@ export function pieData1() {
// }, // },
series: [ series: [
{ {
name: '', name: '原材料碳排放量(吨)',
type: 'pie', type: 'pie',
selectedMode: 'single', selectedMode: 'single',
radius: [0, '50%'], radius: [0, '60%'],
// silent: 'ture', //图形是否不响应和触发鼠标事件,默认为 false即响应和触发鼠标事件。
// avoidLabelOverlap: false,
// legendHoverLink: false,
label: { label: {
position: 'inner', position: 'inner',
fontSize: 14 fontSize: 14,
formatter: '{b}{c}'
}, },
labelLine: { labelLine: {
show: false show: false
@ -363,91 +648,96 @@ export function pieData1() {
{ {
value: 159158, value: 159158,
name: '铝', name: '铝',
label: { color: '#fff', fontSize: '16px', fontWeight: 'bold' } label: { color: '#000', fontSize: '16px', fontWeight: '' }
}, },
{ {
value: 165731, value: 165731,
name: '铁', name: '铁',
label: { color: '#fff', fontSize: '16px', fontWeight: 'bold' } label: { color: '#000', fontSize: '16px', fontWeight: '' }
}, },
{ {
value: 78942, value: 78942,
name: '铜', name: '铜',
// selected: true, // selected: true,
label: { color: '#fff', fontSize: '16px', fontWeight: 'bold' } label: { color: '#000', fontSize: '16px', fontWeight: '' }
}, },
{ {
value: 10000, value: 10000,
name: '树脂', name: '树脂',
label: { color: '#fff', fontSize: '16px', fontWeight: 'bold' } label: { color: '#000', fontSize: '16px', fontWeight: '' }
} }
], ],
// 自定义颜色 // 自定义颜色
itemStyle: { itemStyle: {
emphasis: { // emphasis: {
shadowBlur: 10, // shadowBlur: 10,
shadowOffsetX: 0, // shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)' // shadowColor: 'rgba(0, 0, 0, 0.5)'
}, // },
normal: { borderColor: 'rgba(0, 0, 0, 0.5)',
borderWidth: 1,
// 自定义每个扇形的颜色 // 自定义每个扇形的颜色
color: function (params) { color: function (params) {
const colorList = ['#3EC22B', '#3EC22B', '#3EC22B', '#3EC22B'] // const colorList = ['#3EC22B', '#3EC22B', '#3EC22B', '#3EC22B']
const colorList = ['#f8cbad', '#f8cbad', '#f8cbad', '#f8cbad']
return colorList[params.dataIndex] return colorList[params.dataIndex]
} }
} }
}, // hoverAnimation: false,
hoverOffset: 0,
hoverAnimation: false,
emphasis: {
scale: false
}
}, },
{ {
name: '', name: '原材料使用量(吨)',
type: 'pie', type: 'pie',
radius: ['45%', '60%'], radius: ['55%', '80%'],
avoidLabelOverlap: false, avoidLabelOverlap: false,
itemStyle: { itemStyle: {
// borderRadius: 10, // borderRadius: 10,
borderColor: '#fff', borderWidth: 1, //外环间隔~~~~~
borderWidth: 4 borderColor: 'rgba(0, 0, 0, 0.5)',
}, // 自定义每个扇形的颜色
labelLine: { color: function (params) {
length: 30 // const colorList = ['#3EC22B', '#3EC22B', '#3EC22B', '#3EC22B']
const colorList = ['#acc1fb', '#acc1fb', '#acc1fb', '#acc1fb']
return colorList[params.dataIndex]
}
}, },
// labelLine: {
// length: 30
// },
label: { label: {
formatter: ' {b|{b}}{c}吨 ', position: 'inner',
backgroundColor: '#F6F8FC', fontSize: 16,
borderColor: '#8C8D8E', formatter: '{b}{c}'
borderWidth: 1, // backgroundColor: '#F6F8FC',
borderRadius: 4, // borderColor: '#8C8D8E',
// borderWidth: 1,
// borderRadius: 4
rich: { // rich: {
a: { // a: {
color: '#6E7079', // color: '#6E7079',
lineHeight: 22, // lineHeight: 22,
align: 'center' // align: 'center'
}, // },
hr: { // hr: {
borderColor: '#8C8D8E', // borderColor: '#8C8D8E',
width: '100%', // width: '100%',
borderWidth: 1, // borderWidth: 1,
height: 0 // height: 0
}, // },
b: { // b: {
color: '#4C5058', // color: '#4C5058',
fontSize: 14, // fontSize: 14,
fontWeight: 'bold', // fontWeight: 'bold',
lineHeight: 33 // lineHeight: 33
}, // },
per: { // per: {
color: '#fff', // color: '#fff',
backgroundColor: '#4C5058', // backgroundColor: '#4C5058',
padding: [3, 4], // padding: [3, 4],
borderRadius: 4 // borderRadius: 4
} // }
} // }
}, },
data: [ data: [
{ value: 0.0, name: '铝' }, { value: 0.0, name: '铝' },
@ -478,8 +768,7 @@ export function pieData1() {
return { chartRef, option } return { chartRef, option }
} }
// SMM牌号低碳铝价格&价差
export function pieData2() { export function pieData2() {
const chartRef = ref() const chartRef = ref()
const option = ref<EChartsOption>({ const option = ref<EChartsOption>({
@ -501,19 +790,19 @@ export function pieData2() {
itemStyle: { itemStyle: {
borderRadius: 10, borderRadius: 10,
borderColor: '#fff', borderColor: '#fff',
borderWidth: 2 borderWidth: 1
}, },
label: { label: {
show: true, show: true,
formatter(param) { formatter(param) {
// correct the percentage // correct the percentage
return param.name + ' (' + param.percent * 2 + '%)'; return param.name + ' (' + param.percent * 2 + '%)'
} }
}, },
emphasis: { emphasis: {
label: { label: {
show: true, show: true,
fontSize: 20, fontSize: 20
// fontWeight: 'bold' // fontWeight: 'bold'
} }
}, },
@ -527,10 +816,11 @@ export function pieData2() {
// { value: 484, name: 'Union Ads' }, // { value: 484, name: 'Union Ads' },
// { value: 300, name: 'Video Ads' } // { value: 300, name: 'Video Ads' }
// ] // ]
data: Object.values(form.value.lable9.data).filter(item => item.name !== '' || item.value !== '') data: Object.values(form.value.lable9.data).filter(
(item) => item.name !== '' || item.value !== ''
)
} }
] ]
}) })
return { chartRef, option } return { chartRef, option }
} }

View File

@ -7,7 +7,9 @@
<div class="bg-#fff rd-15px px30px pt30px w-full "> <div class="bg-#fff rd-15px px30px pt30px w-full ">
<el-tabs v-model="activeName" class="demo-tabs"> <el-tabs v-model="activeName" class="demo-tabs">
<div class="float-right px20px py10px z-200 bg-#c4c4c4" @click="goBacks"> <el-icon class="text-red"><ArrowLeftBold size="18"/></el-icon> </div> <el-button class="float-right px20px py10px z-200 cursor-pointer felx items-center" type="info" @click="goBacks">
<el-icon class="text-red"><ArrowLeftBold size="18" /></el-icon>
</el-button>
<el-tab-pane label="banner管理" name="first"> <el-tab-pane label="banner管理" name="first">
<el-button type="primary" @click="editClickA('add')" class="mb-20px"> <el-button type="primary" @click="editClickA('add')" class="mb-20px">
新增 新增

View File

@ -17,7 +17,7 @@
}" :cell-style="{ 'overflow-y': 'auto' }" }" :cell-style="{ 'overflow-y': 'auto' }"
:tree-props="{ children: 'childList', hasChildren: 'hasChildren'}"> :tree-props="{ children: 'childList', hasChildren: 'hasChildren'}">
<el-table-column prop="name" label="标题名称" align="left"/> <el-table-column prop="name" label="标题名称" align="left"/>
<el-table-column prop="sort" label="排序" align="center"/> <!-- <el-table-column prop="sort" label="排序" align="center"/> -->
<el-table-column prop="address" label="操作" align="center"> <el-table-column prop="address" label="操作" align="center">
<template #default="scope"> <template #default="scope">
<el-button type="primary" @click="editClickA('edit', scope.row)" class="mb-20px"> <el-button type="primary" @click="editClickA('edit', scope.row)" class="mb-20px">
@ -48,7 +48,7 @@
<el-table-column prop="title" label="标题名称" show-overflow-tooltip/> <el-table-column prop="title" label="标题名称" show-overflow-tooltip/>
<!-- <el-table-column prop="deptName" label="排序" /> --> <!-- <el-table-column prop="deptName" label="排序" /> -->
<el-table-column label="文件列表" prop="filePath" show-overflow-tooltip/> <el-table-column label="文件列表" prop="filePath" show-overflow-tooltip/>
<el-table-column label="排序" prop="sort" show-overflow-tooltip/> <!-- <el-table-column label="排序" prop="sort" show-overflow-tooltip/> -->
<el-table-column label="查看范围" prop="userIdList" :show-overflow-tooltip="true"> <el-table-column label="查看范围" prop="userIdList" :show-overflow-tooltip="true">
<template #default="scope"> <template #default="scope">
<!-- <el-button type="primary" class="button" @click="getUser(scope.row)"></el-button> --> <!-- <el-button type="primary" class="button" @click="getUser(scope.row)"></el-button> -->

View File

@ -147,7 +147,8 @@ const detilInfo=async (obj)=>{
<template #default="scope"> <template #default="scope">
<!-- <el-button size="small" @click="handleEditA(scope.$index, scope.row)">编辑</el-button> <!-- <el-button size="small" @click="handleEditA(scope.$index, scope.row)">编辑</el-button>
<el-button size="small" type="danger" @click="handleDeleteA(scope.$index, scope.row)">删除</el-button> --> <el-button size="small" type="danger" @click="handleDeleteA(scope.$index, scope.row)">删除</el-button> -->
<el-button size="small" @click="toReply(scope.row)"></el-button> <el-button size="small" v-if="!scope.row.chatVOList?.length" @click="toReply(scope.row)"></el-button>
<el-button size="small" type="success" v-if="scope.row.chatVOList?.length"></el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -175,7 +176,8 @@ const detilInfo=async (obj)=>{
<template #default="scope"> <template #default="scope">
<!-- <el-button size="small" @click="handleEditA(scope.$index, scope.row)">编辑</el-button> <!-- <el-button size="small" @click="handleEditA(scope.$index, scope.row)">编辑</el-button>
<el-button size="small" type="danger" @click="handleDeleteA(scope.$index, scope.row)">删除</el-button> --> <el-button size="small" type="danger" @click="handleDeleteA(scope.$index, scope.row)">删除</el-button> -->
<el-button size="small" @click="toReply(scope.row)"></el-button> <el-button size="small" v-if="!scope.row.chatVOList?.length" @click="toReply(scope.row)"></el-button>
<el-button size="small" type="success" v-if="scope.row.chatVOList?.length"></el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -202,7 +204,8 @@ const detilInfo=async (obj)=>{
<template #default="scope"> <template #default="scope">
<!-- <el-button size="small" @click="handleEditA(scope.$index, scope.row)">编辑</el-button> <!-- <el-button size="small" @click="handleEditA(scope.$index, scope.row)">编辑</el-button>
<el-button size="small" type="danger" @click="handleDeleteA(scope.$index, scope.row)">删除</el-button> --> <el-button size="small" type="danger" @click="handleDeleteA(scope.$index, scope.row)">删除</el-button> -->
<el-button size="small" @click="toReply(scope.row)"></el-button> <el-button size="small" v-if="!scope.row.chatVOList?.length" @click="toReply(scope.row)"></el-button>
<el-button size="small" type="success" v-if="scope.row.chatVOList?.length"></el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>

View File

@ -222,8 +222,8 @@ function getLastSubstring(str: string): string {
<div class="q-wrapper mt30px text-#142142 flex flex-wrap justify-between"> <div class="q-wrapper mt30px text-#142142 flex flex-wrap justify-between">
<div class="caver relative"> <div class="caver relative">
<div class="box-title">不良情报</div> <div class="box-title">不良情报</div>
<div class="absolute right-0 top-30px w165px text-14px text-#B2B7BE"> <div class="absolute right-0 top-30px w195px text-16px text-#B2B7BE">
{{ dataD.length > 0 ? "更新时间:" + dataD[0].createTime : "" }} {{ dataD.length > 0 ? "更新时间:" + dataD[0]?.createTime : "" }}
</div> </div>
<div class="mt23px overflow-y-auto"> <div class="mt23px overflow-y-auto">
<el-table <el-table
@ -239,16 +239,16 @@ function getLastSubstring(str: string): string {
'margin-top': '20px', 'margin-top': '20px',
'font-size': '18px', 'font-size': '18px',
}" }"
:cell-style="{ 'text-align': 'center', height: '70px' }" :cell-style="{ 'text-align': 'center', height: '70px', 'font-size': '18px' }"
> >
<el-table-column prop="createTime" label="时间" width="110px" /> <el-table-column prop="createTime" label="时间" width="130px" />
<el-table-column prop="cate" label="类别" width="100px" /> <el-table-column prop="cate" label="类别" width="100px" />
<el-table-column prop="title" label="详情" /> <el-table-column prop="title" label="详情" />
<el-table-column prop="filePathList" label="情报追踪"> <el-table-column prop="filePathList" label="情报追踪">
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<span <span
v-if="row.filePathList.length > 0" v-if="row.filePathList.length > 0"
class="text-#5695FF underline text-10px" class="text-#5695FF underline text-16px truncate"
@click="openUrl(row.filePathList[0].url)" @click="openUrl(row.filePathList[0].url)"
>{{ row.filePathList[0].originalFileName }}</span >{{ row.filePathList[0].originalFileName }}</span
> >
@ -315,12 +315,12 @@ function getLastSubstring(str: string): string {
'margin-top': '20px', 'margin-top': '20px',
'font-size': '18px', 'font-size': '18px',
}" }"
:cell-style="{ 'text-align': 'center', height: '70px' }" :cell-style="{ 'text-align': 'center', height: '70px', 'font-size': '18px' }"
> >
<el-table-column prop="monthStr" label="时间" width="70px" /> <el-table-column prop="monthStr" label="时间" width="70px" />
<el-table-column prop="indexId" label="供应商" width="" /> <el-table-column prop="indexId" label="供应商" width="" />
<el-table-column prop="partSum" label="数量" width="" /> <el-table-column prop="partSum" label="数量" width="" />
<el-table-column prop="title" label="不良内容" width=""> <el-table-column prop="title" label="不良内容" width="96px">
<!-- <template #default="{ row, $index }"> <!-- <template #default="{ row, $index }">
<span <span
v-if="row.filePathList.length > 0" v-if="row.filePathList.length > 0"
@ -378,9 +378,9 @@ function getLastSubstring(str: string): string {
'margin-top': '20px', 'margin-top': '20px',
'font-size': '18px', 'font-size': '18px',
}" }"
:cell-style="{ 'text-align': 'center', height: '70px' }" :cell-style="{ 'text-align': 'center', height: '70px', 'font-size': '18px' }"
> >
<el-table-column prop="createTime" label="时间" width="110px" /> <el-table-column prop="createTime" label="时间" width="132px" />
<el-table-column prop="title" label="详情" width="110px" /> <el-table-column prop="title" label="详情" width="110px" />
<el-table-column prop="source" label="来源" width="110px" /> <el-table-column prop="source" label="来源" width="110px" />
<el-table-column <el-table-column
@ -391,7 +391,7 @@ function getLastSubstring(str: string): string {
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<span <span
v-if="row.filePathList.length > 0" v-if="row.filePathList.length > 0"
class="text-#5695FF underline text-10px maxWidth150" class="text-#5695FF underline text-16px w-80px truncate"
@click="openUrl(row.filePathList[0].url)" @click="openUrl(row.filePathList[0].url)"
>{{ row.filePathList[0].originalFileName }}</span >{{ row.filePathList[0].originalFileName }}</span
> >
@ -442,7 +442,7 @@ function getLastSubstring(str: string): string {
'margin-top': '20px', 'margin-top': '20px',
'font-size': '18px', 'font-size': '18px',
}" }"
:cell-style="{ 'text-align': 'center', height: '70px' }" :cell-style="{ 'text-align': 'center', height: '70px', 'font-size': '18px' }"
> >
<el-table-column prop="createTime" label="时间" width="150px" /> <el-table-column prop="createTime" label="时间" width="150px" />
<el-table-column prop="title" label="内容" width="150px" /> <el-table-column prop="title" label="内容" width="150px" />
@ -455,7 +455,7 @@ function getLastSubstring(str: string): string {
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<span <span
v-if="row.filePathList.length > 0" v-if="row.filePathList.length > 0"
class="text-#5695FF underline text-10px maxWidth150" class="text-#5695FF underline text-16px w-80px truncate"
@click="openUrl(row.filePathList[0].url)" @click="openUrl(row.filePathList[0].url)"
>{{ row.filePathList[0].originalFileName }}</span >{{ row.filePathList[0].originalFileName }}</span
> >

View File

@ -380,7 +380,7 @@ const cateValue = ref('新品')
<el-button type="primary" @click="handleEditB" class="my20px">不良情报新增</el-button> <el-button type="primary" @click="handleEditB" class="my20px">不良情报新增</el-button>
<el-table :data="dataB" style="width: 95%" <el-table :data="dataB" style="width: 95%"
:header-cell-style="{ background: '#2A7BF7', color: '#fff', height: '60px', textAlign: 'center', 'font-size': '24px' }" :header-cell-style="{ background: '#2A7BF7', color: '#fff', height: '60px', textAlign: 'center', 'font-size': '24px' }"
:cell-style="{ 'text-align': 'center' }"> :cell-style="{ 'text-align': 'center', 'font-size': '16px' }">
<el-table-column label="时间" prop="createTime" /> <el-table-column label="时间" prop="createTime" />
<el-table-column label="类别" prop="cate" /> <el-table-column label="类别" prop="cate" />
@ -413,7 +413,7 @@ const cateValue = ref('新品')
<el-button type="primary" @click="handleEditA" class="my20px">不良统计新增</el-button> <el-button type="primary" @click="handleEditA" class="my20px">不良统计新增</el-button>
<el-table :data="dataA" style="width: 95%" <el-table :data="dataA" style="width: 95%"
:header-cell-style="{ background: '#2A7BF7', color: '#fff', height: '60px', textAlign: 'center', 'font-size': '24px' }" :header-cell-style="{ background: '#2A7BF7', color: '#fff', height: '60px', textAlign: 'center', 'font-size': '24px' }"
:cell-style="{ 'text-align': 'center' }"> :cell-style="{ 'text-align': 'center' , 'font-size': '16px'}">
<el-table-column label="时间" prop="monthDate" width="180px" /> <el-table-column label="时间" prop="monthDate" width="180px" />
<el-table-column label="供应商" prop="indexId" width="220px" /> <el-table-column label="供应商" prop="indexId" width="220px" />
<!-- <el-table-column label="计件数" prop="partSum" width="150px"/> <!-- <el-table-column label="计件数" prop="partSum" width="150px"/>
@ -451,7 +451,7 @@ const cateValue = ref('新品')
<el-button type="primary" @click="handleEditC" class="my20px">品质情报新增</el-button> <el-button type="primary" @click="handleEditC" class="my20px">品质情报新增</el-button>
<el-table :data="dataC" style="width: 95%" <el-table :data="dataC" style="width: 95%"
:header-cell-style="{ background: '#2A7BF7', color: '#fff', height: '60px', textAlign: 'center', 'font-size': '24px' }" :header-cell-style="{ background: '#2A7BF7', color: '#fff', height: '60px', textAlign: 'center', 'font-size': '24px' }"
:cell-style="{ 'text-align': 'center' }"> :cell-style="{ 'text-align': 'center' , 'font-size': '16px'}">
<el-table-column label="时间" prop="createTime" /> <el-table-column label="时间" prop="createTime" />
<el-table-column label="详情" prop="title" /> <el-table-column label="详情" prop="title" />
<el-table-column label="来源" prop="source" /> <el-table-column label="来源" prop="source" />
@ -483,7 +483,7 @@ const cateValue = ref('新品')
<el-button type="primary" @click="handleEditD" class="my20px">活动进展新增</el-button> <el-button type="primary" @click="handleEditD" class="my20px">活动进展新增</el-button>
<el-table :data="dataD" style="width: 95%" <el-table :data="dataD" style="width: 95%"
:header-cell-style="{ background: '#2A7BF7', color: '#fff', height: '60px', textAlign: 'center', 'font-size': '24px' }" :header-cell-style="{ background: '#2A7BF7', color: '#fff', height: '60px', textAlign: 'center', 'font-size': '24px' }"
:cell-style="{ 'text-align': 'center' }"> :cell-style="{ 'text-align': 'center' , 'font-size': '16px'}">
<el-table-column label="时间" prop="createTime" /> <el-table-column label="时间" prop="createTime" />