diff --git a/config/router.config.ts b/config/router.config.ts index 4d57d33..c4de15a 100644 --- a/config/router.config.ts +++ b/config/router.config.ts @@ -3,11 +3,14 @@ import transfer from './router_transfer'; import home from './HomePage/router_home'; import juryRoom from './JuryRoom/router_menuJury.config'; import approvalForm from './router_approval_form'; +import partyMemberTopic from './router_partyMemberTopic'; export default [ //========================================================================登陆 ...transfer,//跳转、登陆 //审批单 ...approvalForm, + //党员专题 + ...partyMemberTopic, { path: '/userformal', // component: '../layouts/UserLayout', diff --git a/config/router_partyMemberTopic.ts b/config/router_partyMemberTopic.ts new file mode 100644 index 0000000..1c828bd --- /dev/null +++ b/config/router_partyMemberTopic.ts @@ -0,0 +1,43 @@ +export default [ + { + name: '党建攻坚', + path: '/partyMemberTopic', + routes: [ + {//首页 + name: '首页', + path: '/partyMemberTopic/home', + component: './PartyMemberTopic/Home', + }, + { //物资采购与管理专业线 党支部 + name: 'partyBranch', + path: '/partyMemberTopic/partyBranch', + component: './PartyMemberTopic/PartyBranch', + }, + { //物资采购与管理专业线 党支部人员信息 + name: 'personInfor', + path: '/partyMemberTopic/personInfor', + component: './PartyMemberTopic/PersonInfor', + }, + { // 攻坚克难项目 更多 + name: 'overDifficult', + path: '/partyMemberTopic/overDifficult', + component: './PartyMemberTopic/OverDifficult', + }, + { // 活动风采 更多 + name: 'activityStyle', + path: '/partyMemberTopic/activityStyle', + component: './PartyMemberTopic/ActivityStyle', + }, + { // 攻坚克难详情 + name: 'hardDetail', + path: '/partyMemberTopic/hardDetail', + component: './PartyMemberTopic/HardDetail', + }, + { // 活动风采和banner详情 + name: 'newsDetail', + path: '/partyMemberTopic/newsDetail', + component: './PartyMemberTopic/NewsDetail', + }, + ] + } +]; \ No newline at end of file diff --git a/src/assets/topic/bannerListPic.jpg b/src/assets/topic/bannerListPic.jpg new file mode 100644 index 0000000..38ec029 Binary files /dev/null and b/src/assets/topic/bannerListPic.jpg differ diff --git a/src/assets/topic/bannerPic.jpg b/src/assets/topic/bannerPic.jpg new file mode 100644 index 0000000..a2f0931 Binary files /dev/null and b/src/assets/topic/bannerPic.jpg differ diff --git a/src/assets/topic/bannerProjectPic.jpg b/src/assets/topic/bannerProjectPic.jpg new file mode 100644 index 0000000..8b0328d Binary files /dev/null and b/src/assets/topic/bannerProjectPic.jpg differ diff --git a/src/assets/topic/branch.png b/src/assets/topic/branch.png new file mode 100644 index 0000000..9f288e5 Binary files /dev/null and b/src/assets/topic/branch.png differ diff --git a/src/assets/topic/card-bg.png b/src/assets/topic/card-bg.png new file mode 100644 index 0000000..b1d51e6 Binary files /dev/null and b/src/assets/topic/card-bg.png differ diff --git a/src/assets/topic/emblem.png b/src/assets/topic/emblem.png new file mode 100644 index 0000000..eaae6d3 Binary files /dev/null and b/src/assets/topic/emblem.png differ diff --git a/src/assets/topic/listNewsPic01.jpg b/src/assets/topic/listNewsPic01.jpg new file mode 100644 index 0000000..94fe905 Binary files /dev/null and b/src/assets/topic/listNewsPic01.jpg differ diff --git a/src/assets/topic/newsDetailBg.jpg b/src/assets/topic/newsDetailBg.jpg new file mode 100644 index 0000000..497d977 Binary files /dev/null and b/src/assets/topic/newsDetailBg.jpg differ diff --git a/src/assets/topic/person-bg.jpg b/src/assets/topic/person-bg.jpg new file mode 100644 index 0000000..3d7431f Binary files /dev/null and b/src/assets/topic/person-bg.jpg differ diff --git a/src/assets/topic/person.png b/src/assets/topic/person.png new file mode 100644 index 0000000..778f805 Binary files /dev/null and b/src/assets/topic/person.png differ diff --git a/src/assets/topic/static-bg.png b/src/assets/topic/static-bg.png new file mode 100644 index 0000000..f1aef99 Binary files /dev/null and b/src/assets/topic/static-bg.png differ diff --git a/src/assets/topic/timeIcon.png b/src/assets/topic/timeIcon.png new file mode 100644 index 0000000..150635c Binary files /dev/null and b/src/assets/topic/timeIcon.png differ diff --git a/src/assets/topic/topic_activity_default.jpg b/src/assets/topic/topic_activity_default.jpg new file mode 100644 index 0000000..389c1f1 Binary files /dev/null and b/src/assets/topic/topic_activity_default.jpg differ diff --git a/src/assets/topic/topic_activity_gradient.jpg b/src/assets/topic/topic_activity_gradient.jpg new file mode 100644 index 0000000..f01c55b Binary files /dev/null and b/src/assets/topic/topic_activity_gradient.jpg differ diff --git a/src/assets/topic/topic_activity_logo.png b/src/assets/topic/topic_activity_logo.png new file mode 100644 index 0000000..4a82fbf Binary files /dev/null and b/src/assets/topic/topic_activity_logo.png differ diff --git a/src/assets/topic/topic_banner_default.jpg b/src/assets/topic/topic_banner_default.jpg new file mode 100644 index 0000000..e17a0ba Binary files /dev/null and b/src/assets/topic/topic_banner_default.jpg differ diff --git a/src/assets/topic/topic_bottom_button.png b/src/assets/topic/topic_bottom_button.png new file mode 100644 index 0000000..455995e Binary files /dev/null and b/src/assets/topic/topic_bottom_button.png differ diff --git a/src/assets/topic/topic_bottom_card_picture.png b/src/assets/topic/topic_bottom_card_picture.png new file mode 100644 index 0000000..1def271 Binary files /dev/null and b/src/assets/topic/topic_bottom_card_picture.png differ diff --git a/src/assets/topic/topic_commodity.png b/src/assets/topic/topic_commodity.png new file mode 100644 index 0000000..8b671ed Binary files /dev/null and b/src/assets/topic/topic_commodity.png differ diff --git a/src/assets/topic/topic_graceful_textbg.png b/src/assets/topic/topic_graceful_textbg.png new file mode 100644 index 0000000..207df99 Binary files /dev/null and b/src/assets/topic/topic_graceful_textbg.png differ diff --git a/src/assets/topic/topic_header.jpg b/src/assets/topic/topic_header.jpg new file mode 100644 index 0000000..f4036cd Binary files /dev/null and b/src/assets/topic/topic_header.jpg differ diff --git a/src/assets/topic/topic_header_img.png b/src/assets/topic/topic_header_img.png new file mode 100644 index 0000000..5e83f9e Binary files /dev/null and b/src/assets/topic/topic_header_img.png differ diff --git a/src/assets/topic/topic_other.png b/src/assets/topic/topic_other.png new file mode 100644 index 0000000..35359e0 Binary files /dev/null and b/src/assets/topic/topic_other.png differ diff --git a/src/assets/topic/topic_partybranch.png b/src/assets/topic/topic_partybranch.png new file mode 100644 index 0000000..6845b36 Binary files /dev/null and b/src/assets/topic/topic_partybranch.png differ diff --git a/src/assets/topic/topic_partymember.png b/src/assets/topic/topic_partymember.png new file mode 100644 index 0000000..6ce187c Binary files /dev/null and b/src/assets/topic/topic_partymember.png differ diff --git a/src/assets/topic/topic_project_picture.jpg b/src/assets/topic/topic_project_picture.jpg new file mode 100644 index 0000000..ffa2249 Binary files /dev/null and b/src/assets/topic/topic_project_picture.jpg differ diff --git a/src/assets/topic/topic_protocol.png b/src/assets/topic/topic_protocol.png new file mode 100644 index 0000000..ca08fcd Binary files /dev/null and b/src/assets/topic/topic_protocol.png differ diff --git a/src/assets/topic/topic_red_flag.png b/src/assets/topic/topic_red_flag.png new file mode 100644 index 0000000..36aa4a4 Binary files /dev/null and b/src/assets/topic/topic_red_flag.png differ diff --git a/src/assets/topic/topic_right_material.png b/src/assets/topic/topic_right_material.png new file mode 100644 index 0000000..307132a Binary files /dev/null and b/src/assets/topic/topic_right_material.png differ diff --git a/src/assets/topic/topic_totalamount.png b/src/assets/topic/topic_totalamount.png new file mode 100644 index 0000000..cfccc0e Binary files /dev/null and b/src/assets/topic/topic_totalamount.png differ diff --git a/src/assets/topic/topic_totalnumber.png b/src/assets/topic/topic_totalnumber.png new file mode 100644 index 0000000..93bc7b1 Binary files /dev/null and b/src/assets/topic/topic_totalnumber.png differ diff --git a/src/locales/zh-CN/menu.ts b/src/locales/zh-CN/menu.ts index fecbc1d..7979744 100644 --- a/src/locales/zh-CN/menu.ts +++ b/src/locales/zh-CN/menu.ts @@ -58,28 +58,28 @@ export default { 'menu.bidOpening': '开标', 'menu.bidOpening.openList': '开标列表', - 'menu.list.ProjectDocumentation':'项目管理', - 'menu.list.ProjectInformationManagement':'项目信息管理', - 'menu.list.ProjectComplaint':'异议投诉', + 'menu.list.ProjectDocumentation': '项目管理', + 'menu.list.ProjectInformationManagement': '项目信息管理', + 'menu.list.ProjectComplaint': '异议投诉', // 'menu.list.packageDivided':'标段划分', - 'menu.biddingInvitation':'投标邀请', - 'menu.biddingInvitation.biddingAnnouncement':'招标公告', - 'menu.biddingInvitation.responseFormat':'应答格式', - 'menu.list.packageInformation':'标包信息', - 'menu.profile.biddingAnnouncement':'招标公告', - 'menu.list.LookingForBusinessOpportunities':'寻找商机', - 'menu.list.IParticipate':'我要参与', - 'menu.list.DownloadPurchasingDocuments':'下载招标文件', - 'menu.list.SupplierQuestionsOrObjections':'供应商质疑或异议列表', - 'menu.supplierClarificationList':'供应商澄清列表', - 'menu.clarificationOfTheBid':'标中质询澄清列表', - 'menu.challengeListInTheIndex':'标中质询列表', - 'menu.clarifyTheList':'澄清列表', - 'menu.invitationLetter':'邀请函', - 'menu.mentionDoubtReply':'项目经理提疑回复列表', - 'menu.reviewResults.manager':'评审结果-项目经理', - 'menu.reviewResults.groupLeader':'评审结果-组长', - 'menu.reviewResults.jury':'评审结果-评委', + 'menu.biddingInvitation': '投标邀请', + 'menu.biddingInvitation.biddingAnnouncement': '招标公告', + 'menu.biddingInvitation.responseFormat': '应答格式', + 'menu.list.packageInformation': '标包信息', + 'menu.profile.biddingAnnouncement': '招标公告', + 'menu.list.LookingForBusinessOpportunities': '寻找商机', + 'menu.list.IParticipate': '我要参与', + 'menu.list.DownloadPurchasingDocuments': '下载招标文件', + 'menu.list.SupplierQuestionsOrObjections': '供应商质疑或异议列表', + 'menu.supplierClarificationList': '供应商澄清列表', + 'menu.clarificationOfTheBid': '标中质询澄清列表', + 'menu.challengeListInTheIndex': '标中质询列表', + 'menu.clarifyTheList': '澄清列表', + 'menu.invitationLetter': '邀请函', + 'menu.mentionDoubtReply': '项目经理提疑回复列表', + 'menu.reviewResults.manager': '评审结果-项目经理', + 'menu.reviewResults.groupLeader': '评审结果-组长', + 'menu.reviewResults.jury': '评审结果-评委', 'menu.Tender': '发标', 'menu.Tender.UploadResponse': '上传应答文件', @@ -161,15 +161,15 @@ export default { 'menu.Auction.AuctionLookingForInnerShot': '寻找内拍项目', 'menu.Auction.AuctionMyLookingForInnerShot': '我参与的内拍项目', 'menu.Auction.AuctionManagerProject': '我发起的内拍项目', - "menu.Auction.AuctionAnnouncementData":'公告信息', - "menu.Auction.AuctionInfoupdateManage":'公告信息2', + "menu.Auction.AuctionAnnouncementData": '公告信息', + "menu.Auction.AuctionInfoupdateManage": '公告信息2', //项目委托 'menu.entrust': '项目委托管理', 'menu.entrust.manager': '委托管理(管理员)', 'menu.entrust.operator': '委托管理(操作员)', - 'menu.entrust.mandatoryAdministration':'项目经理的委托管理', + 'menu.entrust.mandatoryAdministration': '项目经理的委托管理', //招标项目 'menu.bidManage': '招标项目管理', 'menu.bidManage.projectManage': '项目管理', @@ -182,13 +182,13 @@ export default { 'menu.Calibration.ViewNotice': '查看通知书', 'menu.BiddingDocumentsDecrypt': '投标文件查看',/*BiddingDocumentsDecrypt_pg*/ 'menu.BiddingDocumentsDecrypt.BiddingDocumentsDecrypt_pg': '投标文件查看页面', - 'menu.BidAssessmentResults':'评审结果', - 'menu.BidAssessmentResults.BidAssessmentResults_pg':'评审结果页面', - 'menu.BidPublicityResult':'结果公示', - 'menu.BidPublicityResult.BidPublicityResult_pg':'结果公示页面', - 'menu.NtkoPage':'weboffice', - 'menu.NtkoPage.NtkoPage_pg':'ntko', - 'menu.finance.RevenueRecognition':'收入确认审核(项目经理)', + 'menu.BidAssessmentResults': '评审结果', + 'menu.BidAssessmentResults.BidAssessmentResults_pg': '评审结果页面', + 'menu.BidPublicityResult': '结果公示', + 'menu.BidPublicityResult.BidPublicityResult_pg': '结果公示页面', + 'menu.NtkoPage': 'weboffice', + 'menu.NtkoPage.NtkoPage_pg': 'ntko', + 'menu.finance.RevenueRecognition': '收入确认审核(项目经理)', //发票管理 'menu.Invoice': '发票管理', 'menu.Invoice.InvoiceManager': '发票列表', @@ -222,4 +222,6 @@ export default { 'menu.Recruit.ProjectsInvolved': '你参与的项目', 'menu.Recruit.Find': '寻找商机', 'menu.Recruit.Letter': '邀请函', + //党建攻坚 + 'menu.topic.home': '党建攻坚', }; diff --git a/src/pages/PartyMemberTopic/ActivityStyle/index.tsx b/src/pages/PartyMemberTopic/ActivityStyle/index.tsx new file mode 100644 index 0000000..9a42d98 --- /dev/null +++ b/src/pages/PartyMemberTopic/ActivityStyle/index.tsx @@ -0,0 +1,94 @@ +import React, { useEffect, useState } from 'react'; +import '../Style/ld_style.less'; +import { Input, List, Spin } from 'antd'; +import topic_activity_default from '@/assets/topic/topic_activity_default.jpg' +import time_icon from '@/assets/topic/timeIcon.png' +import { getGracefulList } from './service'; +import { getImageUrl } from '../utils'; +import { history } from 'umi'; + +const { Search } = Input; + +const PersonInfor: React.FC<{}> = () => { + //graceful data + const [gracefulList, setGracefulList] = useState([]); + //loading + const [loading, setLoading] = useState(false); + + //get graceful + const getGracefulData = (value: string) => { + setLoading(true); + getGracefulList({ param: value }).then(async res => { + if (res?.code == 200) { + const data = await getImageUrl(res?.data, 'image', topic_activity_default); + setGracefulList(data); + } + }).finally(() => { + setLoading(false); + }) + } + //onclick + const clickTitle = (data: any) => { + sessionStorage.setItem("detailData", JSON.stringify(data)); + history.push("/partyMemberTopic/newsDetail"); + } + //to home + const toHome = () => { + history.push("/partyMemberTopic/home"); + } + //goback lastpage + const toGoBack = () => { + window.history.go(-1); + } + + useEffect(() => { + getGracefulData(''); + }, []) + return ( +
+
+
+ toHome()}>返回首页 + toGoBack()}>上一页 +
+
+ +
+ 活动风采 +
+ +
+
+
+ `共 ${total} 条`, + pageSize: 10, + }} + dataSource={gracefulList} + renderItem={item => ( + +
+ +

clickTitle(item)}>{item.title}

+

{item.secordTitle}

+ {item.createTime} +
+
+ )} + /> +
+
+
+ ) +} + +export default PersonInfor; \ No newline at end of file diff --git a/src/pages/PartyMemberTopic/ActivityStyle/service.ts b/src/pages/PartyMemberTopic/ActivityStyle/service.ts new file mode 100644 index 0000000..3d9373a --- /dev/null +++ b/src/pages/PartyMemberTopic/ActivityStyle/service.ts @@ -0,0 +1,9 @@ +import request from '@/utils/request'; + +//活动风采列表 +export async function getGracefulList(data: any) { + return request('/api/biz-service-ebtp-extend/v1/eventpartybranch/eventStyle/list', { + method: 'POST', + data: { ...data } + }); +} \ No newline at end of file diff --git a/src/pages/PartyMemberTopic/HardDetail/index.tsx b/src/pages/PartyMemberTopic/HardDetail/index.tsx new file mode 100644 index 0000000..11e0276 --- /dev/null +++ b/src/pages/PartyMemberTopic/HardDetail/index.tsx @@ -0,0 +1,34 @@ +import React from 'react'; +import '../Style/detailStyle.less'; +import bannerProjectPic from '@/assets/topic/bannerProjectPic.jpg' +import { history } from 'umi' +import { getDetailData } from '../utils'; + +const HardDetail: React.FC<{}> = () => { + //session detailData + const item = getDetailData(); + //to home + const toHome = () => { + history.push("/partyMemberTopic/home"); + } + return ( +
+
+
+ +
+
+ toHome()}>返回首页 +
+
+

{item?.title}

+
+
+
+
+
+
+ ) +} + +export default HardDetail; \ No newline at end of file diff --git a/src/pages/PartyMemberTopic/HardDetail/service.ts b/src/pages/PartyMemberTopic/HardDetail/service.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/pages/PartyMemberTopic/Home/index.less b/src/pages/PartyMemberTopic/Home/index.less new file mode 100644 index 0000000..d9a7bf4 --- /dev/null +++ b/src/pages/PartyMemberTopic/Home/index.less @@ -0,0 +1,578 @@ +@import '~antd/es/style/themes/default.less'; + +.topic-global { + width: 100%; + display: flex; + justify-content: center; + background-color: #fff; + + .topic-background { + width: 1460px; + background-color: #e9e9e9; + + .top-picture { + height: 132px; + width: 100%; + } + + .top-global { + display: flex; + justify-content: space-between; + + .left-global { + width: 1139px; + padding: 0; + margin: 0; + + .left-carousel { + + .carousel-content { + height: 584px; + width: 1139px; + background-repeat: no-repeat; + background-size: 100%; + display: flex; + align-items: flex-end; + cursor: pointer; + + .carousel-textbg { + display: flex; + justify-content: center; + width: 100%; + padding: 50px 0; + background: linear-gradient(to top, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0)), no-repeat center; + + .carousel-text { + color: #fff; + width: 812px; + + .carousel-text-content { + font-weight: bold; + font-size: 32px; + line-height: 40px; + } + + .carousel-text-click { + font-size: 14px; + margin-left: 10px; + } + } + } + } + + .carousel-content:hover { + -webkit-filter: brightness(105%); + filter: brightness(105%); + } + } + + .left-carousel .slick-dots-bottom { + bottom: 0; + } + + .left-activity { + height: 103px; + width: 1139px; + background-image: url("~@/assets/topic/topic_activity_gradient.jpg"); + display: flex; + justify-content: left; + + .left-activity-marquee { + height: 103px; + width: 940px; + padding-left: 45px; + + .left-activity-scroll { + height: 103px; + display: flex; + justify-content: space-around; + align-items: center; + + .left-activity-scroll-content { + font-size: 18px; + color: #fff; + margin-right: 20px; + + .left-activity-scroll-end { + margin-top: 4px; + } + } + + .left-activity-scroll-content .left-activity-scroll-name { + font-weight: bold; + } + } + } + } + + .left-card { + margin: 20px 0px 20px 12px; + + .left-card-top { + display: flex; + justify-content: space-between; + align-items: center; + + .left-card-title { + font-weight: bold; + font-family: '黑体'; + font-size: 28px; + } + + .left-card-flag { + vertical-align: text-bottom; + position: relative; + top: 3px; + margin-left: 10px; + } + + .left-card-other { + font-family: '黑体'; + font-size: 18px; + color: #a2a2a2; + cursor: pointer; + } + + .left-card-other:hover { + color: #a81c0c; + text-decoration: underline; + } + + .left-card-otherimg { + vertical-align: text-bottom; + margin-left: 5px; + } + } + + .left-card-divider { + color: #c9c9c9; + margin: 8px 0px 30px; + } + + .left-graceful { + background: #fff; + padding: 16px 24px 50px; + + .left-graceful-bg { + height: 198px; + width: 338px; + background-size: 100%; + background-repeat: no-repeat; + display: flex; + justify-content: center; + align-items: flex-end; + padding-bottom: 10px; + cursor: pointer; + + .left-graceful-textbg { + height: 36px; + width: 304px; + background-image: url("~@/assets/topic/topic_graceful_textbg.png"); + display: flex; + justify-content: center; + align-items: center; + + .left-graceful-text { + color: #fff; + font-size: 16.64px; + font-weight: bold; + } + } + } + + .left-graceful-bg:hover { + -webkit-filter: brightness(108%); + filter: brightness(108%); + } + } + + .left-project { + margin-top: 20px; + background: #fff; + padding: 16px 24px 40px; + + .left-project-content { + display: flex; + justify-content: left; + + .left-project-content-list { + margin-left: 40px; + + .left-project-content-item { + font-size: 21px; + font-family: '黑体'; + line-height: 36px; + + .left-project-content-item-title { + color: #535353 + } + + .left-project-content-item-title:hover { + color: #a81c0c; + text-decoration: underline; + } + + .left-project-content-item-time { + color: #a2a2a2; + margin-left: 8px; + } + } + } + + } + + .left-project-content .ant-list-sm .ant-list-item { + padding: 0px 16px; + } + } + } + + + } + + .right-global { + background: #fff; + width: 100%; + margin: 0px 12px 20px; + display: flex; + flex-direction: column; + align-items: center; + padding: 14px; + + .right-material { + width: 100%; + cursor: pointer; + } + + .right-material:hover { + -webkit-filter: brightness(108%); + filter: brightness(108%); + } + + .right-display { + width: 100%; + padding: 18px 16px; + + .right-display-title { + font-size: 14px; + color: #474747; + letter-spacing: 1px; + text-align: center; + } + + .right-display-content { + display: flex; + justify-content: start; + margin-top: 30px; + + .right-display-content-img { + height: 56px; + width: 56px; + } + + .right-display-content-right { + margin-left: 10px; + + .right-display-content-title { + color: #9e9e9e; + font-size: 12px; + letter-spacing: 1px; + + .right-display-content-percentage { + margin-left: 8px; + + .right-display-content-percentage-increase { + color: #28e099; + } + + .right-display-content-percentage-reduce { + color: #eb5527; + } + } + } + + .right-display-content-content { + margin-top: 4px; + + .right-display-content-number { + font-size: 32.15px; + font-family: 'Consolas'; + line-height: 32.15px; + } + + .number-blue { + color: #21b8ce; + } + + .number-orange { + color: #eb5527; + } + + .right-display-content-unit { + font-size: 12px; + margin-left: 5px; + } + } + + } + } + + .right-display-content-pointer { + cursor: pointer; + } + + } + + .right-divider { + margin: 12px 0px 0px; + color: #c9c9c9; + } + + .right-graph { + padding-top: 26px; + + .right-graph-title { + font-size: 17px; + text-align: center; + } + + .right-graph-subtitle { + color: #9e9e9e; + font-size: 12px; + text-align: center; + margin-top: 4px; + } + + .right-graph-content { + height: 250px; + width: 250px; + } + } + } + + + } + + .bottom-global { + margin: 0px 12px 84px; + background: #fff; + padding: 16px 24px 28px; + + .left-card-top { + display: flex; + justify-content: space-between; + align-items: center; + + .left-card-title { + font-weight: bold; + font-family: '黑体'; + font-size: 28px; + } + + .left-card-flag { + vertical-align: text-bottom; + position: relative; + top: 3px; + margin-left: 10px; + } + + .left-card-other { + font-family: '黑体'; + font-size: 18px; + color: #a2a2a2; + cursor: pointer; + } + + .left-card-other:hover { + color: #a81c0c; + text-decoration: underline; + } + + .left-card-otherimg { + vertical-align: text-bottom; + margin-left: 5px; + } + } + + .left-card-divider { + color: #c9c9c9; + margin: 8px 0px 24px; + } + + .bottom-content { + margin-bottom: 18px; + + .bottom-card { + background-image: url("~@/assets/topic/topic_bottom_card_picture.png"); + height: 157px; + width: 331px; + padding: 12px 16px; + margin-top: 18px; + + .bottom-card-flex { + display: flex; + justify-content: space-between; + align-items: center; + + .bottom-card-title { + font-size: 20px; + font-weight: bold; + } + } + + .bottom-card-flex img { + height: 30px; + cursor: pointer; + } + + .bottom-card-flex img:hover { + -webkit-filter: brightness(108%); + filter: brightness(108%); + } + + .bottom-card-remark { + height: 22px; + } + + .bottom-card-remark .bottom-card-remark-text { + color: #df3b37; + font-size: 16px; + width: 299px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + + .bottom-card-content { + font-size: 15px; + color: #6f6f6f; + margin-top: 8px; + line-height: 24px; + } + } + } + + .bottom-title { + font-weight: bold; + font-size: 24px; + font-family: '黑体'; + color: #b8b8b8; + } + + .bottom-other { + display: flex; + justify-content: center; + + .bottom-other-text { + font-family: '黑体'; + font-size: 18px; + color: #a2a2a2; + cursor: pointer; + } + + .bottom-other-text:hover { + color: #a81c0c; + text-decoration: underline; + } + + .bottom-other-icon { + transform: rotate(90deg); + vertical-align: text-bottom; + margin-left: 5px; + } + + .bottom-close-icon { + transform: rotate(-90deg); + vertical-align: text-bottom; + margin-left: 5px; + } + } + } + } + + +} + +.topic-home-modal .ant-modal-content { + border-radius: 8px; +} + +.topic-home-modal .ant-modal-content .ant-modal-header { + border-top-left-radius: 8px; + border-top-right-radius: 8px; + background: #da3232; + padding: 0; + height: 45px; + + .bottom-modal-header { + display: flex; + justify-content: left; + align-items: center; + padding: 0 20px; + + .bottom-modal-headertext { + font-size: 20px; + font-family: '黑体'; + color: #fff; + width: 100%; + text-align: center; + position: relative; + right: 20px; + } + } +} + +.topic-home-modal .ant-modal-content .ant-modal-body { + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + background: #eeeeee; + padding: 16px; +} + +.topic-home-modal .ant-modal-content .ant-modal-body .bottom-modal-body { + display: flex; + flex-direction: column; + align-items: center; + + .radio-group { + width: 260px; + margin-bottom: 12px; + + .radio-content { + font-size: 17.16px; + font-family: '黑体'; + color: #939393; + margin-left: 16px; + } + } + + .bottom-modal-textarea { + resize: none; + border-radius: 8px; + } + + .bottom-modal-submit { + display: flex; + justify-content: space-between; + align-items: center; + margin-top: 8px; + width: 100%; + + .submit-text { + color: #939393; + } + + .submit-cancelbutton { + border-radius: 8px; + border-color: #d44026; + color: #d44026; + } + + .submit-button { + border-radius: 8px; + background: #d44026; + margin-left: 8px; + border-color: #d44026; + } + } +} \ No newline at end of file diff --git a/src/pages/PartyMemberTopic/Home/index.tsx b/src/pages/PartyMemberTopic/Home/index.tsx new file mode 100644 index 0000000..efc0573 --- /dev/null +++ b/src/pages/PartyMemberTopic/Home/index.tsx @@ -0,0 +1,535 @@ +import React, { useEffect, useRef, useState } from 'react'; +import './index.less'; +import { Button, Carousel, Col, Divider, Input, List, message, Modal, Radio, RadioChangeEvent, Row, Spin, Tooltip } from 'antd'; +import * as echarts from 'echarts'; +import Marquee from 'react-fast-marquee'; +import topic_header from '@/assets/topic/topic_header.jpg' +import topic_activity_logo from '@/assets/topic/topic_activity_logo.png' +import topic_red_flag from '@/assets/topic/topic_red_flag.png' +import topic_other from '@/assets/topic/topic_other.png' +import topic_project_picture from '@/assets/topic/topic_project_picture.jpg' +import topic_bottom_button from '@/assets/topic/topic_bottom_button.png' +import topic_right_material from '@/assets/topic/topic_right_material.png' +import topic_partymember from '@/assets/topic/topic_partymember.png' +import topic_partybranch from '@/assets/topic/topic_partybranch.png' +import topic_totalamount from '@/assets/topic/topic_totalamount.png' +import topic_totalnumber from '@/assets/topic/topic_totalnumber.png' +import topic_commodity from '@/assets/topic/topic_commodity.png' +import topic_protocol from '@/assets/topic/topic_protocol.png' +import topic_header_img from '@/assets/topic/topic_header_img.png' +import topic_banner_default from '@/assets/topic/topic_banner_default.jpg' +import topic_activity_default from '@/assets/topic/topic_activity_default.jpg' +import { getHomeActivity, getHomeBanner, getHomeContact, getHomeGraceful, getHomeProject, getHomeRight, submitAdvice } from './service'; +import { formatTime, getImageUrl, isEmpty, isNotEmpty } from '../utils'; + +//卡片头 +const LeftCardTop = (props: any) => { + return ( + <> +
+
+ {props.title} + +
+ {props.url &&
window.open(props.url)}> + 更多 + +
} +
+ + + ) +} +//右侧专业线标题 +const RightDisplayTitle = (props: any) => { + return ( +
+ {props.title} +
+ ) +} +//右侧专业线内容 +const RightDisplayContent = (props: any) => { + const displayContentClick = () => { + if (props.index == 0) {//党员数量 + window.open("/partyMemberTopic/personInfor"); + } else if (props.index == 1) {//党支部数量 + window.open("/partyMemberTopic/partyBranch"); + } + } + return ( + props.data?.length > 0 ? ( +
displayContentClick()}> + +
+
+ {props.data[props.index].dataName} + {props.data[props.index].dataCompare != null && + 同比 + {props.data[props.index].dataCompare[0] == '+' ? ( + {props.data[props.index].dataCompare} ↑ + ) : ( + {props.data[props.index].dataCompare} ↓ + )} + } +
+
+ {props.data[props.index].dataValue} + {props.data[props.index].dataType} +
+
+
+ ) : null + ) +} +//右侧图表内容 +const RightGraphContent = (props: any) => { + const random = Math.random().toString(); + useEffect(() => { + type EChartsOption = echarts.EChartsOption; + const chartDom = document.getElementById(random)!; + const myChart = echarts.init(chartDom); + const option: EChartsOption = { + tooltip: { + trigger: 'item' + }, + series: [ + { + name: props.name, + type: 'pie', + radius: '90%', + color: ['#EE6666', '#FAC858', '#73C0DE', '#91CC75', '#5470C6', '#FC8452', '#9A60B4', '#3BA272'], + data: props.data, + label: { + formatter: props.type != null ? `{b}\n\n{c}${props.type} {d}%` : '{b}', + fontSize: '90%', + color: '#fff', + position: 'inner', + }, + emphasis: { + itemStyle: { + shadowBlur: 10, + shadowOffsetX: 0, + shadowColor: 'rgba(0, 0, 0, 0.5)' + } + } + } + ] + }; + myChart.setOption(option); + }, []) + return ( +
+ ) +} +//活动联系人卡片内容 +const BottomCardContent = (props: any) => { + + return ( + +
+
+
+ {props.data.contactName} +
+ props.onClick()} /> +
+
+ + {props.data.remark} + +
+
+
邮箱:{props.data.contactEmail}
+
电话:{props.data.contactMobiphone}
+
部门:{props.data.contactDepartment}
+
+
+ + ) +} +//活动联系人-我要提意见Modal +const CommentModal = (props: any) => { + const { TextArea } = Input; + const [modalLoading, setModalLoading] = useState(false); + const textRef = useRef(null); + const radioRef = useRef(null); + + const onRadioChange = (e: RadioChangeEvent) => { + radioRef.current = e.target.value; + }; + + const onTextChange = (e: any) => { + textRef.current = e.target.value; + }; + + const onCancel = () => { + props.closeModal(); + textRef.current = null; + radioRef.current = null; + } + + const onSubmit = async () => { + if (isEmpty(textRef.current)) { + message.info("请先输入意见内容"); + return; + } + setModalLoading(true); + const params = { + contactName: props.data?.contactName, + contactId: props.data?.contactId, + suggestionType: radioRef.current, + suggestionContent: textRef.current, + } + await submitAdvice(params).then(res => { + if (res?.code == 200) { + message.success("提交成功"); + onCancel(); + } + }).finally(() => { + setModalLoading(false); + }) + } + + return ( + + +
+ 我要提意见 +
+ + } + visible={props.visible} + onCancel={onCancel} + destroyOnClose + closable={false} + footer={null} + centered + maskStyle={{ backgroundColor: 'rgba(0, 0, 0, 0.3)' }} + width={450} + > + +
+
+ + 系统优化 + 制度优化 + 组织优化 + 其他 + +
+