Browse Source

首页UI

master
liujiangyong 2 years ago
parent
commit
a5809b2e66
  1. BIN
      web/client/assets/images/point.png
  2. BIN
      web/client/assets/images/top.png
  3. 339
      web/client/src/sections/homePage/components/activityColumns.js
  4. 148
      web/client/src/sections/homePage/components/partyColumns.js
  5. 148
      web/client/src/sections/homePage/components/unionColumns.js
  6. 577
      web/client/src/sections/homePage/containers/index.js
  7. 69
      web/client/src/sections/homePage/containers/index.less

BIN
web/client/assets/images/point.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 959 B

BIN
web/client/assets/images/top.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

339
web/client/src/sections/homePage/components/activityColumns.js

@ -1,339 +0,0 @@
import React, { useState, useEffect } from "react";
import { connect } from "react-redux";
import { Table } from "antd";
import { push } from "react-router-redux";
import moment from "moment";
import { getDataList } from "../actions/profile";
let xinwen = "../../../../assets/images/xinweng.png";
let BARBG = "../../../../assets/images/barbg.png";
let shangxinli = "../../../../assets/images/shangxinli_title.png";
function ActivityColumns(props) {
const { dispatch } = props;
const [activities, setActivities] = useState([]); //活动风采
const more = (id) => {
dispatch(push("/more", { type: 0, status: 1 }));
};
useEffect(() => {
dispatch(getDataList({ type: 0, status: 1 })).then((res) => {
res.payload ? setActivities(res.payload.data.data) : "";
});
}, []);
const renderInfoBar = (title) => {
return (
<div
style={{
width: "100%",
backgroundColor: "rgba(255, 201, 122, 0.3)",
height: 42,
display: "flex",
justifyContent: "space-between",
alignItems: "center",
marginTop: "10px",
}}
>
<div
style={{
width: 131,
height: 42,
color: "#fff",
fontSize: 20,
fontWeight: "500",
// backgroundColor: "rgba(175, 37, 27, 1)",
display: "flex",
alignItems: "center",
justifyContent: "flex-start",
paddingLeft: 10,
background: `url(${BARBG}) 0% 0% / 100% 100%`,
}}
>
{title}
</div>
<div
style={{
color: "rgba(0, 0, 0, 0.65)",
fontSize: 14,
marginRight: 15,
cursor: "pointer",
userSelect: "none",
}}
onClick={() => {
more("123");
}}
>
{"更多 >>"}
</div>
</div>
);
};
const activityColumns = [
{
title: "Name",
dataIndex: "name",
key: "name",
ellipsis: true,
sorter: (a, b) => {
const atime = a.createTime
.slice(0, 10)
.replace("-", "")
.replace("-", "");
const btime = b.createTime
.slice(0, 10)
.replace("-", "")
.replace("-", "");
return atime - btime;
},
defaultSortOrder: "bscend",
render: (text, record) => (
<>
<div
onClick={() => {
dispatch(
push("/particulars", {
id: record.id,
title: record.title,
})
);
}}
>
<span
style={{
display: "inline-block",
width: "5px",
height: "5px",
backgroundColor: "#AF251B",
position: "absolute",
right: "490px",
top: "26px",
}}
></span>
<a
style={{
width: "285px",
overflow: "hidden",
display: "block",
float: "left",
whiteSpace: "nowrap",
textOverflow: "ellipsis",
color: "#3c4353",
}}
>
{record?.title || ""}
</a>
<span style={{ float: "right", color: "#838a9d" }}>
[{record?.createTime.slice(0, 10) || ""}]
</span>
</div>
</>
),
},
];
return (
<div>
<div
style={{
height: 480,
backgroundColor: "#fff",
padding: 0,
paddingLeft: 0,
}}
>
{renderInfoBar("活动风采")}
<div style={{ display: "flex", width: "100%" }}>
<div style={{ width: 330, paddingTop: 10, padding: 10 }}>
<img
src={xinwen}
alt="huodong"
style={{ width: 330, height: 170 }}
/>
<div style={{ width: 330, marginTop: 10 }}>
<div
style={{
fontSize: 16,
textAlign: "center",
fontWeight: "bold",
color: "rgba(0, 0, 0, 0.65)",
}}
>
习近平致首届大国工匠创新交流大会的贺信
</div>
<div
style={{
fontSize: 12,
textAlign: "center",
fontWeight: "400",
color: "rgba(0, 0, 0, 0.65)",
overflow: "hidden",
textOverflow: "ellipsis",
whiteSpace: "nowrap",
}}
>
值此首届大国工匠创新交流大会召开之际我向大会的举办
</div>
</div>
</div>
<div
style={{
width: 500,
height: 260,
marginLeft: 15,
overflowY: "hidden",
}}
>
<Table
columns={activityColumns}
dataSource={activities}
showHeader={false}
pagination={false}
rowKey="id"
bordered={false}
/>
</div>
</div>
<div
style={{
width: "100%",
height: 170,
padding: 10,
display: "flex",
alignItems: "center",
}}
>
<img src={shangxinli} alt="tu" style={{ width: 72, height: 150 }} />
<div
style={{
flex: 1,
display: "flex",
alignItems: "center",
marginRight: 10,
overflowX: "scroll",
marginLeft: 15,
marginRight: 15,
}}
>
{shangxinliArr.map(({ avatar, name, award }, index) => {
let src = `../../../../assets/images/shangxinli/${avatar}`;
return (
<div
key={index}
style={{
flexShrink: 0,
width: 80,
display: "flex",
flexDirection: "column",
alignItems: "center",
}}
>
<img src={src} style={{ width: 56, height: 80 }} alt="头像" />
<div>{name}</div>
<div>{award}</div>
</div>
);
})}
</div>
</div>
</div>
</div>
);
}
function mapStateToProps(state) {
const { auth, global, articlesfrom } = state;
return {
user: auth.user,
actions: global.actions,
articlesfrom: articlesfrom,
};
}
export default connect(mapStateToProps)(ActivityColumns);
const shangxinliArr = [
{
name: "邹全锦",
avatar: "zouquanjin.png",
award: "爱岗敬业",
},
{
name: "欧阳华强",
avatar: "ouyanghuaqiang.png",
award: "爱岗敬业",
},
{
name: "田汉鑫",
avatar: "tianhanxin.png",
award: "爱岗敬业",
},
{
name: "张俊",
avatar: "zhangjun.png",
award: "爱岗敬业",
},
{
name: "付兵兵",
avatar: "fubingbing.png",
award: "爱岗敬业",
},
{
name: "吴承云",
avatar: "wuchengyun.png",
award: "最佳执行",
},
{
name: "周宏晟",
avatar: "zhouhongsheng.png",
award: "最佳执行",
},
{
name: "杨威",
avatar: "yangwei.png",
award: "最佳执行",
},
{
name: "丁锦",
avatar: "dingjin.png",
award: "最佳执行",
},
{
name: "刘琦",
avatar: "liuqi.png",
award: "最佳执行",
},
{
name: "张文君",
avatar: "zhangwenjun.png",
award: "创新卓越",
},
{
name: "陈涛",
avatar: "chentao.png",
award: "创新卓越",
},
{
name: "张文",
avatar: "zhangwen.png",
award: "最佳新人",
},
{
name: "胡文惠",
avatar: "huwenhui.png",
award: "最佳新人",
},
{
name: "张子扬",
avatar: "zhangziyang.png",
award: "最佳新人",
},
{
name: "喻从文",
avatar: "yucongwen.png",
award: "最佳新人",
},
{
name: "朱琼",
avatar: "zhuqiong.png",
award: "最佳新人",
},
{
name: "黄钰薇",
avatar: "huangyuwei.png",
award: "宣传大使",
},
];

148
web/client/src/sections/homePage/components/partyColumns.js

@ -1,148 +0,0 @@
import React, { useState, useEffect } from "react";
import { connect } from "react-redux";
import { Table } from "antd";
import { push } from "react-router-redux";
import moment from "moment";
import { getDataList } from "../actions/profile";
let BARBG = "../../../../assets/images/barbg.png";
function PartyColumns(props) {
const { dispatch } = props;
const [partyinformation, setPartyInformation] = useState([]); //党建资讯
const more = (id) => {
dispatch(push("/more", { type: 1, status: 1 }));
};
useEffect(() => {
dispatch(getDataList({ type: 1, status: 1 })).then((res) => {
res.payload ? setPartyInformation(res.payload.data.data) : "";
});
}, []);
const renderInfoBar = (title) => {
return (
<div
style={{
width: "100%",
backgroundColor: "rgba(255, 201, 122, 0.3)",
height: 42,
display: "flex",
justifyContent: "space-between",
alignItems: "center",
}}
>
<div
style={{
width: 131,
height: 42,
color: "#fff",
fontSize: 20,
fontWeight: "500",
// backgroundColor: "rgba(175, 37, 27, 1)",
display: "flex",
alignItems: "center",
justifyContent: "flex-start",
paddingLeft: 10,
background: `url(${BARBG}) 0% 0% / 100% 100%`,
}}
>
{title}
</div>
<div
style={{
color: "rgba(0, 0, 0, 0.65)",
fontSize: 14,
marginRight: 15,
cursor: "pointer",
userSelect: "none",
}}
onClick={() => {
more("123");
}}
>
{"更多 >>"}
</div>
</div>
);
};
const activityColumns = [
{
title: "Name",
dataIndex: "name",
key: "name",
sorter: (a, b) => {
const atime = a.publishTime
.slice(0, 10)
.replace("-", "")
.replace("-", "");
const btime = b.publishTime
.slice(0, 10)
.replace("-", "")
.replace("-", "");
return atime - btime;
},
defaultSortOrder: "bscend",
render: (text, record) => (
<div
onClick={() => {
dispatch(
push("/particulars", { id: record.id, title: record.title })
);
}}
>
<span
style={{
display: "inline-block",
width: "5px",
height: "5px",
backgroundColor: "#AF251B",
position: "absolute",
right: "403px",
top: "26px",
}}
></span>
<a
style={{
width: "285px",
overflow: "hidden",
float: "left",
whiteSpace: "nowrap",
textOverflow: "ellipsis",
OTextOverflow: "ellipsis",
color: "#3c4353",
}}
>
{record?.title || ""}
</a>
<span style={{ float: "right", color: "#838a9d" }}>
[{record?.createTime.slice(0, 10) || ""}]
</span>
</div>
),
},
];
return (
<div>
<div style={{ flex: 1, backgroundColor: "#fff", width: "417px" }}>
{renderInfoBar("党建资讯")}
<div style={{ height: 329, overflowY: "hidden" }}>
<Table
columns={activityColumns}
dataSource={partyinformation}
showHeader={false}
pagination={false}
bordered={false}
/>
</div>
</div>
</div>
);
}
function mapStateToProps(state) {
const { auth, global, articlesfrom } = state;
return {
user: auth.user,
actions: global.actions,
articlesfrom: articlesfrom,
};
}
export default connect(mapStateToProps)(PartyColumns);

148
web/client/src/sections/homePage/components/unionColumns.js

@ -1,148 +0,0 @@
import React, { useState, useEffect } from "react";
import { connect } from "react-redux";
import { Table } from "antd";
import { push } from "react-router-redux";
import moment from "moment";
import { getDataList } from "../actions/profile";
let BARBG = "../../../../assets/images/barbg.png";
function UnionColumns(props) {
const { dispatch } = props;
const [unioninformation, setUnionInformation] = useState(); //工会资讯
const more = (id) => {
dispatch(push("/more", { type: 2, status: 1 }));
};
useEffect(() => {
dispatch(getDataList({ type: 2, status: 1 })).then((res) => {
res.payload ? setUnionInformation(res.payload.data.data) : "";
});
}, []);
const renderInfoBar = (title) => {
return (
<div
style={{
width: "100%",
backgroundColor: "rgba(255, 201, 122, 0.3)",
height: 42,
display: "flex",
justifyContent: "space-between",
alignItems: "center",
}}
>
<div
style={{
width: 131,
height: 42,
color: "#fff",
fontSize: 20,
fontWeight: "500",
// backgroundColor: "rgba(175, 37, 27, 1)",
display: "flex",
alignItems: "center",
justifyContent: "flex-start",
paddingLeft: 10,
background: `url(${BARBG}) 0% 0% / 100% 100%`,
}}
>
{title}
</div>
<div
style={{
color: "rgba(0, 0, 0, 0.65)",
fontSize: 14,
marginRight: 15,
cursor: "pointer",
userSelect: "none",
}}
onClick={() => {
more();
}}
>
{"更多 >>"}
</div>
</div>
);
};
const activityColumns = [
{
title: "Name",
dataIndex: "name",
key: "name",
sorter: (a, b) => {
const atime = a.publishTime
.slice(0, 10)
.replace("-", "")
.replace("-", "");
const btime = b.publishTime
.slice(0, 10)
.replace("-", "")
.replace("-", "");
return atime - btime;
},
defaultSortOrder: "bscend",
render: (text, record) => (
<div
onClick={() => {
dispatch(
push("/particulars", { id: record.id, title: record.title })
);
}}
>
<span
style={{
display: "inline-block",
width: "5px",
height: "5px",
backgroundColor: "#AF251B",
position: "absolute",
right: "403px",
top: "26px",
}}
></span>
<a
style={{
width: "285px",
overflow: "hidden",
float: "left",
whiteSpace: "nowrap",
textOverflow: "ellipsis",
OTextOverflow: "ellipsis",
color: "#3c4353",
}}
>
{record?.title || ""}
</a>
<span style={{ float: "right", color: "#838a9d" }}>
[{record?.createTime.slice(0, 10) || ""}]
</span>
</div>
),
},
];
return (
<div>
<div style={{ width: 417, backgroundColor: "#fff", marginLeft: 10 }}>
{renderInfoBar("工会资讯")}
<div style={{ height: 329, overflowY: "hidden" }}>
<Table
columns={activityColumns}
dataSource={unioninformation}
showHeader={false}
pagination={false}
bordered={false}
/>
</div>
</div>
</div>
);
}
function mapStateToProps(state) {
const { auth, global, articlesfrom } = state;
return {
user: auth.user,
actions: global.actions,
articlesfrom: articlesfrom,
};
}
export default connect(mapStateToProps)(UnionColumns);

577
web/client/src/sections/homePage/containers/index.js

@ -1,274 +1,186 @@
/* eslint-disable react-hooks/exhaustive-deps */
import React, { useState, useEffect } from "react";
import { connect } from "react-redux";
import { Spin, Tabs } from "antd";
import { Spin, Tabs, Table } from "antd";
import { LayoutContent } from "@peace/components";
import classnames from "classnames/bind";
import styles from "./index.less";
import { push } from "react-router-redux";
import moment from "moment";
import ActivityColumns from "../components/activityColumns";
import PartyColumns from "../components/partyColumns";
import UnionColumns from "../components/unionColumns";
import { getPartyMember } from "../actions/profile";
const ROOTLESSNAME = "ly-alarm-configure-container-indexjs";
// const ROOTLESSNAME = "ly-alarm-configure-container-indexjs";
const CX = classnames.bind(styles);
const { TabPane } = Tabs;
function cx_(name) {
return CX(`${ROOTLESSNAME}${name}`);
}
const _style = {
chaxun: cx_(`__btn-chaxun`),
chaxunWraper: cx_(`__chaxunWraper`),
};
// function cx_(name) {
// return CX(`${ROOTLESSNAME}${name}`);
// }
let BG = "/assets/images/pagebg.png";
let DYREANSHUBG = "/assets/images/renshu_bg.png";
let GONGHUIBG = "/assets/images/gonghui_bg.png";
let zhuyaochengyuan_bg = "/assets/images/zhuyaochengyuan_bg.png";
const topImg = "/assets/images/top.png";
const pointImg = "/assets/images/point.png";
let avatar1 = "../../../../assets/images/avatar_1.png";
let yaojianjun = "../../../../assets/images/avatar/yaojianjun.png";
function Management(props) {
const { dispatch, user } = props;
let xinwen = "../../../../assets/images/xinweng.png";
let shangxinli = "../../../../assets/images/shangxinli_title.png";
const [dataSource, setDataSource] = useState([])
let BARBG = "../../../../assets/images/barbg.png";
// export const transformSacle = `scale(${Math.min(
// document.body.clientWidth / 1920,
// document.body.clientHeight / 1080
// )})`;
const _huoJiang = Array(20)
.fill(0)
.map((t, i) => {
return {
name: "卞学前",
award: "最佳执行者",
avatar: avatar1,
};
});
const _zhuyaochengyuan1 = [
const currentCol = [
{
title: '项目名称',
dataIndex: 'name',
key: 'name',
align: 'center'
},
{
title: '投入人力',
dataIndex: 'worker',
key: 'worker',
align: 'center'
},
{
avatar: "../../../../assets/images/avatar/liuwei.png",
name: "刘玮",
title: '构建时间',
dataIndex: 'buildTime',
key: 'buildTime',
align: 'center'
},
{
avatar: "../../../../assets/images/avatar/jiangzheng.png",
name: "姜珍",
title: '发布时间',
dataIndex: 'releaseTime',
key: 'releaseTime',
align: 'center'
},
{
title: '进度',
dataIndex: 'progress',
key: 'progress',
align: 'center'
},
];
const organization = [
const peopleCol = [
{
avatar: "../../../../assets/images/avatar/yanwenzhi.png" /* avatar:
"../../../../assets/images/avatar/wenzhe.png", */,
title: '姓名',
dataIndex: 'name',
key: 'name',
align: 'center'
},
{
avatar: "../../../../assets/images/avatar/liuwei2.png",
title: '部门',
dataIndex: 'dept',
key: 'dept',
align: 'center'
},
{
avatar: "../../../../assets/images/avatar/liwenguo.png",
title: '11.28',
dataIndex: 'monday',
key: 'monday',
align: 'center',
onCell: (record, index) => {
console.log("record, index: ", record, index);
return {
className: "cell-class",
colSpan: 2
};
}
},
{
avatar: "../../../../assets/images/avatar/yaowenting2.png",
title: '11.29',
dataIndex: 'tuesday',
key: 'tuesday',
align: 'center'
},
];
const organization2 = [
{
avatar: "../../../../assets/images/avatar/mmexport.png",
title: '11.30',
dataIndex: 'wednesday',
key: 'wednesday',
align: 'center'
},
{
avatar: "../../../../assets/images/avatar/zhangjing.png",
title: '12.1',
dataIndex: 'thursday',
key: 'thursday',
align: 'center'
},
{
avatar: "../../../../assets/images/avatar/wulongbiao.png",
title: '12.2',
dataIndex: 'friday',
key: 'friday',
align: 'center'
},
];
const _zhuyaochengyuan2 = [
const waitCol = [
{
avatar: "../../../../assets/images/avatar/yaowenting.png",
title: '项目',
dataIndex: 'name',
key: 'name',
align: 'center'
},
{
avatar: "../../../../assets/images/avatar/wulongbiao.png",
title: '需求来源',
dataIndex: 'source',
key: 'source',
align: 'center'
},
{
avatar: "../../../../assets/images/avatar/zhangbo.png",
title: '对接人',
dataIndex: 'head',
key: 'head',
align: 'center'
},
{
avatar: "../../../../assets/images/avatar/guofei.png",
title: '处理进度',
dataIndex: 'progress',
key: 'progress',
align: 'center'
},
];
function Management(props) {
const { dispatch, party, user, loding } = props;
useEffect(() => {
dispatch(getPartyMember()).then((res) => {});
// dispatch(getPartyMember()).then((res) => { });
let nextData = []
for (let i = 1; i <= 34; i++) {
nextData.push({
key: i,
name: i,
age: 32,
address: '西湖区湖底公园1号',
})
}
setDataSource(nextData)
}, []);
const renderCell = ({ title, src, time }, index) => {
return (
<div
key={index}
style={{
display: "flex",
height: 48,
paddingLeft: 10,
paddingRight: 10,
alignItems: "center",
borderBottom: "1px solid rgba(151, 151, 151, 0.1)",
}}
>
<div
style={{
backgroundColor: "rgba(175, 37, 27, 1)",
width: 5,
height: 5,
marginRight: 8,
}}
/>
<div
style={{
flex: 1,
color: "rgba(0, 0, 0, 0.65)",
fontSize: 14,
cursor: "pointer",
overflow: "hidden",
textOverflow: "ellipsis",
whiteSpace: "nowrap",
}}
onClick={() => {
dispatch(push("/particulars", title));
}}
>
{title}
</div>
<div>{moment(time).format("YYYY-MM-DD")}</div>
</div>
);
};
const renderRenshu = (title, number) => {
let bg = /党员/.test(title) ? DYREANSHUBG : GONGHUIBG;
return (
<Spin spinning={loding} tip="请稍等,正在加载">
<div
style={{
position: "relative",
width: 240,
height: 71,
display: "flex",
alignItems: "center",
justifyContent: "flex-end",
background: `url(${bg}) 0% 0% / 100% 100%`,
}}
>
<div
style={{
position: "absolute",
top: 15,
right: 5,
justifyContent: "center",
width: 170,
height: 53,
display: "flex",
alignItems: "center",
}}
>
<span style={{ fontSize: 14, color: "#fff", fontWeight: "400" }}>
{title}
</span>
<span style={{ fontSize: 26, color: "#fff", fontWeight: "bold" }}>
{number}
</span>
</div>
</div>
<>
<div className={CX("index")}>
<img className={CX("index-img")} src={topImg} />
<div className={CX("index-main")}>
<div className={CX("index-main-box")}>
<img className={CX("index-main-box-point")} src={pointImg} />
<div className={CX("index-main-box-title")}>本周在研项目</div>
<div className={CX("index-main-box-en")}>/Research project this week</div>
<Spin spinning={false}>
<Table dataSource={dataSource} columns={currentCol} size="middle" />
</Spin>
);
};
const renderBarTitle = (title) => {
return (
<div
style={{
position: "relative",
padding: 6,
color: "#BA0000",
fontSize: 18,
borderBottom: "1px solid rgba(186, 0, 0, 0.3)",
}}
>
{title}
<div
style={{
position: "absolute",
left: 0,
bottom: -0.5,
width: 52,
height: 0,
borderBottom: "1px solid rgba(186, 0, 0, 1)",
}}
></div>
</div>
);
};
const renderJieGouPeople = ({ name, work, desc, avatar }) => {
return (
<div
style={{
width: "96%",
height: 160,
display: "flex",
padding: 6,
marginTop: 12,
marginBottom: 12,
}}
>
<img
style={{ width: 68, height: 94, marginTop: 5 }}
alt="头像"
src={avatar}
/>
<div style={{ flex: 1, marginLeft: 10 }}>
<div
style={{
height: 40,
width: "100%",
display: "flex",
alignItems: "center",
}}
>
<div style={{ color: "black", fontSize: 16, width: 80 }}>
{name}
</div>
<div style={{ color: "rgba(0, 0, 0, 0.85)", fontSize: 14 }}>
{work}
</div>
<div className={CX("index-main-box")}>
<img className={CX("index-main-box-point")} src={pointImg} />
<div className={CX("index-main-box-title")}>人员情况</div>
<div className={CX("index-main-box-en")}>/Information on Personnel</div>
<Table dataSource={dataSource} columns={peopleCol} size="middle" />
</div>
<div
style={{ color: "rgba(0, 0, 0, 0.55)", fontSize: 14, height: 125 }}
>
{desc}
<div className={CX("index-main-box")}>
<img className={CX("index-main-box-point")} src={pointImg} />
<div className={CX("index-main-box-title")}>待研发项目</div>
<div className={CX("index-main-box-en")}>/Project to be developed</div>
<Table dataSource={dataSource} columns={waitCol} size="middle" />
</div>
</div>
</div>
);
};
return (
<LayoutContent
perfectScroll={false}
style={{
marginTop: 0,
width: "100vw",
height: "100vh",
padding: 10,
background: `url(${BG}) 0% 0% / 100vw 100vh`,
display: "flex",
justifyContent: "center",
alignItems: "center",
}}
>
<a
style={{
fontSize: "16px",
position: "absolute",
color: "#ffffff",
color: "#000",
right: "40px",
top: "20px",
zIndex: 10000,
@ -285,246 +197,13 @@ function Management(props) {
}
}}
>
后台维护
进入后台
</a>
<div
style={{
width: 1920,
height: 1080,
display: "flex",
justifyContent: "center",
alignItems: "center",
transform: `scale(${Math.min(
document.body.clientWidth / 1920,
document.body.clientHeight / 1080
)})`,
}}
>
<div
style={{
width: "31%",
height: 861,
backgroundColor: "#fff",
padding: 6,
display: "flex",
flexDirection: "column",
marginTop: "20px",
}}
>
<div
style={{
width: "100%",
height: 114,
display: "flex",
alignItems: "center",
justifyContent: "space-around",
}}
>
{renderRenshu(
"党员人数",
party.data ? party.data.partyNumber : null
)}
{renderRenshu(
"工会人数",
party.data ? party.data.laborUnion : null
)}
</div>
<div style={{ flex: 1 }}>
<div>{renderBarTitle("党支部结构")}</div>
<div>
{renderJieGouPeople({
avatar: avatar1,
name: "党伟",
work: "党支部书记、工会主席",
desc: "主持党支部的全面工作。负责召集党支部委员会议和党员大会,认真贯彻执行党的路线、方针、政策、宣传和执行党的决议组织和带领全体党员及干部努力完成党组织各项任务。带头抓好党组织建设,不断增强党组织的凝聚力、战斗力,充分发挥党组织的集体领导作用,充分发挥党员在各项工作中先锋模范作用。",
})}
{renderJieGouPeople({
avatar: yaojianjun,
name: "姚建军",
work: "南昌小蓝经济技术开发区管委会四级调研员、财政局局长、飞尚科技党建指导员",
desc: "党建指导员是区党工委派往非公有制经济组织基层党组织,开展党的建设工作的党员。其主要职责任务是宣传党的政策、发展党员、组建党的基层组织,推动党的路线方针政策在基层的落实,加强党组织同群众的联系,把基层党组织建设成为区域领导核心或政治核心。",
})}
</div>
</div>
<div className="laborunion">
<Tabs defaultActiveKey="1" color="red">
<TabPane
tab={
<span style={{ color: "#ba0000", fontSize: "18px" }}>
党组织主要成员
</span>
}
key="1"
>
<div
style={{
flex: 1,
display: "flex",
alignItems: "center",
height: 200,
}}
>
<div>
<img
alt="照片"
src={avatar1}
style={{ width: 68, height: 94 }}
/>
</div>
<div
style={{
width: 492,
height: 171,
paddingLeft: 80,
display: "flex",
flexDirection: "column",
justifyContent: "center",
background: `url(${zhuyaochengyuan_bg}) 0% 0% / 100% 100%`,
}}
>
<div style={{ display: "flex" }}>
{organization.map((d, index) => {
return (
<div key={index} style={{ margin: 5 }}>
<img
alt="头像"
src={d.avatar}
style={{
width: 53,
height: 70,
userSelect: "none",
}}
/>
</div>
);
})}
</div>
<div style={{ display: "flex", marginTop: 0 }}>
{organization2.map((d, index) => {
return (
<div key={index} style={{ margin: 5 }}>
<img
alt="头像"
src={d.avatar}
style={{
width: 53,
height: 70,
userSelect: "none",
}}
/>
</div>
);
})}
</div>
</div>
</div>
</TabPane>
<TabPane
tab={
<span
style={{
color: "#ba0000",
fontSize: "18px",
}}
>
工会主要成员
</span>
}
key="2"
>
<div
style={{
flex: 1,
display: "flex",
alignItems: "center",
height: 200,
}}
>
<div>
<img
alt="照片"
src={avatar1}
style={{ width: 68, height: 94 }}
/>
</div>
<div
style={{
width: 492,
height: 171,
paddingLeft: 80,
display: "flex",
flexDirection: "column",
justifyContent: "center",
// overflow: "hidden",
// overflowX: "scroll",
background: `url(${zhuyaochengyuan_bg}) 0% 0% / 100% 100%`,
}}
>
<div style={{ display: "flex" }}>
{_zhuyaochengyuan1.map((d, index) => {
return (
<div key={index} style={{ margin: 5 }}>
<img
alt="头像"
src={d.avatar}
style={{
width: 53,
height: 70,
userSelect: "none",
}}
/>
</div>
);
})}
</div>
<div style={{ display: "flex", marginTop: 0 }}>
{_zhuyaochengyuan2.map((d, index) => {
return (
<div key={index} style={{ margin: 5 }}>
<img
alt="头像"
src={d.avatar}
style={{
width: 53,
height: 70,
userSelect: "none",
}}
/>
</div>
);
})}
</div>
</div>
</div>
</TabPane>
</Tabs>
</div>
</div>
<div
style={{
width: "44%",
height: 861,
marginLeft: 10,
paddingTop: 0,
display: "flex",
flexDirection: "column",
}}
>
<ActivityColumns props={props} />
<div style={{ marginTop: 10, display: "flex", flex: 1 }}>
<PartyColumns />
<UnionColumns />
</div>
</div>
</div>
</LayoutContent>
</>
);
}
function mapStateToProps(state) {
const { auth, global, tunnels, party, articlesfrom } = state;
const { auth, global, party, articlesfrom } = state;
return {
loding: party.isRequesting,
user: auth.user,

69
web/client/src/sections/homePage/containers/index.less

@ -18,14 +18,20 @@
}
}
.ant-tabs-top > .ant-tabs-nav::before, .ant-tabs-bottom > .ant-tabs-nav::before, .ant-tabs-top > div > .ant-tabs-nav::before, .ant-tabs-bottom > div > .ant-tabs-nav::before{
.ant-tabs-top>.ant-tabs-nav::before,
.ant-tabs-bottom>.ant-tabs-nav::before,
.ant-tabs-top>div>.ant-tabs-nav::before,
.ant-tabs-bottom>div>.ant-tabs-nav::before {
border-color: #eab2b2 !important;
}
.complete {
background: "url(../../../../assets/images/pagebg.png)";
.danghui:hover {
cursor: not-allowed;
}
.tupian {
.image-wrap {
img {
@ -35,6 +41,7 @@
}
}
@media screen and (max-height:1440px) {
.loginBox {
top: 25%;
@ -60,6 +67,7 @@
right: 6.5%;
z-index: 20;
background-color: #fff5e1;
.login-form-button {
width: 100%;
width: 80%;
@ -67,31 +75,90 @@
left: 10%;
background-color: #af251b;
}
.user {
width: 80%;
height: 40px;
left: 10%;
background-color: #ffebe9 !important;
}
.pass {
width: 80%;
height: 40px;
left: 10%;
background-color: #ffebe9 !important;
}
.loginfont {
margin-top: 10%;
margin-left: 10%;
font-size: 31px;
color: #af251b;
}
#normal_login_username {
background-color: #ffebe9 !important;
}
#normal_login_password {
background-color: #ffebe9 !important;
}
}
#article-container {
height: 90% !important;
}
.index {
text-align: center;
&-img {
width: 100%;
}
&-main {
display: flex;
justify-content: space-evenly;
&-box {
width: 32%;
min-height: 200px;
max-height: 800px;
overflow-y: auto;
box-shadow: 0px 0px 5px 0px rgba(0, 0, 0, 0.5);
text-align: left;
padding: 5px;
&-point {
width: 14px;
height: 14px;
margin: 0 10px 7px 10px;
}
&-title {
display: inline;
font-family: PangMenZhengDao;
font-size: 20px;
color: #20196C;
letter-spacing: 3.33px;
}
&-en {
display: inline;
color: rgba(110, 120, 199, 1);
font-size: 12px;
font-face: DIN;
font-weight: 500;
line-height: 0;
letter-spacing: 0;
paragraph-spacing: 0;
text-align: left;
}
}
}
}
.cell-class {
background-color: skyblue;
}
Loading…
Cancel
Save