提交 ba071b4b 作者: 翁进城

项目资讯开发

上级 21bd8130
...@@ -35,6 +35,7 @@ ...@@ -35,6 +35,7 @@
"@types/styled-components": "^5.1.26", "@types/styled-components": "^5.1.26",
"babel-plugin-styled-components": "^2.1.1", "babel-plugin-styled-components": "^2.1.1",
"cookie": "^0.5.0", "cookie": "^0.5.0",
"moment": "^2.29.4",
"next-connect": "^1.0.0", "next-connect": "^1.0.0",
"passport": "^0.6.0", "passport": "^0.6.0",
"passport-local": "^1.0.0", "passport-local": "^1.0.0",
......
...@@ -7,6 +7,7 @@ import Layout from "~/components/layout"; ...@@ -7,6 +7,7 @@ import Layout from "~/components/layout";
import newsApi, { Item } from "../components/news/api"; import newsApi, { Item } from "../components/news/api";
import api, { DetailsResp } from "./api"; import api, { DetailsResp } from "./api";
import styles from "./index.module.scss"; import styles from "./index.module.scss";
import Moment from 'moment';
export default function CaseArticle() { export default function CaseArticle() {
const router = useRouter(); const router = useRouter();
...@@ -32,13 +33,36 @@ export default function CaseArticle() { ...@@ -32,13 +33,36 @@ export default function CaseArticle() {
newsApi newsApi
.listNewsPage({ .listNewsPage({
pageNo: 1, pageNo: 1,
pageSize: 5, pageSize: 10,
}) })
.then((res) => { .then((res) => {
setNewList(res.result?.list || []); setNewList(res.result?.list || []);
}); });
}, []); }, []);
const fontColor = (i: number) => {
switch (i) {
case 0:
return {
color: "#ff2c46",
};
case 1:
return {
color: "#FF6602",
};
case 2:
return {
color: "#FAA910",
};
default:
return {
color: "#9295A3",
};
}
};
return ( return (
<Layout layoutStyle={{ backgroundColor: "#fff" }}> <Layout layoutStyle={{ backgroundColor: "#fff" }}>
<div style={{ paddingTop: 29 }}> <div style={{ paddingTop: 29 }}>
...@@ -49,7 +73,7 @@ export default function CaseArticle() { ...@@ -49,7 +73,7 @@ export default function CaseArticle() {
className={styles.font2} className={styles.font2}
style={{ marginTop: 18, marginBottom: 41 }} style={{ marginTop: 18, marginBottom: 41 }}
> >
{data?.createTime} · {data?.caseAuthor} {data?.createTime && Moment(data?.createTime).format('YYYY-MM-DD')} · {data?.caseAuthor}
</div> </div>
<div <div
style={{ lineHeight: 1.5 }} style={{ lineHeight: 1.5 }}
...@@ -61,14 +85,14 @@ export default function CaseArticle() { ...@@ -61,14 +85,14 @@ export default function CaseArticle() {
<Row <Row
className={styles.font4} className={styles.font4}
align="middle" align="middle"
style={{ paddingTop: 24, paddingLeft: 24 }} style={{ paddingTop: 16, paddingLeft: 20 }}
> >
行业新闻 行业新闻
<RightOutlined style={{ fontSize: 16, marginLeft: 15 }} /> <RightOutlined style={{ fontSize: 16, marginLeft: 9 }} />
</Row> </Row>
<Row gutter={10} style={{ marginTop: 18 }}> <Row gutter={10} style={{ marginTop: 8 }}>
<Col span={24}> <Col span={24}>
{newsList.map((item) => { {newsList.map((item, i) => {
return ( return (
<Row <Row
key={item.id} key={item.id}
...@@ -80,20 +104,20 @@ export default function CaseArticle() { ...@@ -80,20 +104,20 @@ export default function CaseArticle() {
}} }}
> >
<Col <Col
className={`${styles.font3} ${styles.ellipse2}`} className={`${styles.font3}`}
style={{ width: 217, padding: "13px 0 17px 20px" }} style={{ margin: "6px 23px 6px 19px", width: "100%" }}
> >
{item.newsTitle} <Row wrap={false}>
</Col> <Col
<Col style={{ paddingRight: 16 }}> span={2}
<Image style={{ textAlign: "center", ...fontColor(i) }}
src={item.surfaceImg} >
width={90} {i + 1}
height={60} </Col>
preview={false} <Col span={22} className={styles.ellipse1}>
fallback={errImg} {item.newsTitle}
style={{ borderRadius: 6 }} </Col>
></Image> </Row>
</Col> </Col>
</Row> </Row>
); );
......
...@@ -16,27 +16,24 @@ ...@@ -16,27 +16,24 @@
} }
.font3 { .font3 {
font-size: 16px; font-size: 14px;
font-family: MicrosoftYaHei; font-family: MicrosoftYaHei;
color: #323232; color: #323232;
line-height: 21px; line-height: 19px;
} }
.font4 { .font4 {
font-size: 20px; font-size: 16px;
font-family: MicrosoftYaHeiUI-Bold, MicrosoftYaHeiUI; font-family: MicrosoftYaHeiUI-Bold, MicrosoftYaHeiUI;
font-weight: bold; font-weight: bold;
color: #000000; color: #000000;
line-height: 25px; line-height: 20px;
} }
.newsBox { .newsBox {
width: 384px; width: 384px;
height: 491px;
background-image: url("./assets/bk.png");
background-size: 100% 100%;
} }
.ellipse2 { .ellipse1 {
@include ellipsis(2); @include ellipsis(1);
} }
import { Button } from "antd"; import { Button, Empty, Pagination, Spin } from "antd";
import { useState, useEffect } from "react"; import { useState, useEffect } from "react";
import api, { Item } from "./api"; import api, { Item } from "./api";
import styles from "./index.module.scss"; import styles from "./index.module.scss";
...@@ -16,10 +16,11 @@ export default function Bids(props: Props) { ...@@ -16,10 +16,11 @@ export default function Bids(props: Props) {
const [list, setList] = useState<Array<Item>>([]); const [list, setList] = useState<Array<Item>>([]);
const [pageParams, setPageParams] = useState({ const [pageParams, setPageParams] = useState({
pageNo: 1, pageNo: 1,
pageSize: 5, pageSize: 10,
}); });
const [count, setCount] = useState(0); const [count, setCount] = useState(0);
const [abort, setAbort] = useState<AbortController | null>(null); const [abort, setAbort] = useState<AbortController | null>(null);
const [loading, setLoading] = useState(false);
useEffect(() => { useEffect(() => {
//中断前一次请求 //中断前一次请求
...@@ -31,6 +32,7 @@ export default function Bids(props: Props) { ...@@ -31,6 +32,7 @@ export default function Bids(props: Props) {
if (!abort) { if (!abort) {
return; return;
} }
setLoading(true);
api api
.listNewTenderInfo( .listNewTenderInfo(
{ {
...@@ -44,35 +46,58 @@ export default function Bids(props: Props) { ...@@ -44,35 +46,58 @@ export default function Bids(props: Props) {
.then((res) => { .then((res) => {
setList(res.result?.list || []); setList(res.result?.list || []);
setCount(res.result?.totalCount || 0); setCount(res.result?.totalCount || 0);
setLoading(false);
}); });
}, [abort]); }, [abort]);
const onPageChange = (page: number, pageSize: number) => {
setPageParams({
...pageParams,
pageNo: page,
});
};
return ( return (
<div className={styles.bids}> <Spin spinning={loading} delay={500}>
{list.map((item) => { <div className={styles.bids} style={{ height: 610 }}>
return ( {list.map((item) => {
<div className={styles.item} key={item.id}> return (
<div className={styles.info}> <div className={styles.item} key={item.id}>
<div className={styles.title}>项目需求:{item.tenderContent}</div> <div className={styles.info}>
<div className={styles.title}>
项目需求:{item.tenderContent}
</div>
</div>
{item.apply ? (
<Button
type="primary"
disabled
className={`${styles.btn} ${styles.disabled}`}
>
<div className={styles.text1}>{item.tenderPrice}</div>
<div className={styles.text2}>已申请</div>
</Button>
) : (
<Button type="primary" className={styles.btn}>
<div className={styles.text1}>{item.tenderPrice}</div>
<div className={styles.text2}>申请合作</div>
</Button>
)}
</div> </div>
{item.apply ? ( );
<Button })}
type="primary" {list.length === 0 && <Empty></Empty>}
disabled </div>
className={`${styles.btn} ${styles.disabled}`} <Pagination
> current={pageParams.pageNo}
<div className={styles.text1}>{item.tenderPrice}</div> defaultPageSize={pageParams.pageSize}
<div className={styles.text2}>已申请</div> showSizeChanger={false}
</Button> showQuickJumper
) : ( total={count}
<Button type="primary" className={styles.btn}> onChange={onPageChange}
<div className={styles.text1}>{item.tenderPrice}</div> hideOnSinglePage={true}
<div className={styles.text2}>申请合作</div> style={{ marginTop: 20 }}
</Button> />
)} </Spin>
</div>
);
})}
</div>
); );
} }
...@@ -2,14 +2,13 @@ ...@@ -2,14 +2,13 @@
//项目需求 //项目需求
.casas { .casas {
padding-top: 20px;
.item { .item {
padding: 39px 14px 39px 16px; padding: 7px 14px 9px 16px;
display: flex; display: flex;
border-bottom: 1px dashed RGBA(222, 222, 222, 1); border-bottom: 1px dashed RGBA(222, 222, 222, 1);
border-bottom: 1px dashed RGBA(222, 222, 222, 1); border-bottom: 1px dashed RGBA(222, 222, 222, 1);
justify-content: space-between; justify-content: space-between;
align-items: center;
.info { .info {
.title { .title {
...@@ -30,12 +29,10 @@ ...@@ -30,12 +29,10 @@
.btn { .btn {
width: 120px; width: 120px;
height: 40px; height: 34px;
border-radius: 6px; border-radius: 6px;
font-size: 14px; font-size: 14px;
font-family: MicrosoftYaHei; font-family: MicrosoftYaHei;
color: #ff552d;
border: 1px solid #ff552d;
} }
.btnDisabled { .btnDisabled {
......
import { Button } from "antd"; import { Button, Empty, Pagination, Spin } from "antd";
import { useRouter } from "next/router"; import { useRouter } from "next/router";
import { useState, useEffect } from "react"; import { useState, useEffect } from "react";
import api, { Item } from "./api"; import api, { Item } from "./api";
...@@ -17,10 +17,12 @@ export default function Cases(props: Props) { ...@@ -17,10 +17,12 @@ export default function Cases(props: Props) {
const [list, setList] = useState<Array<Item>>([]); const [list, setList] = useState<Array<Item>>([]);
const [pageParams, setPageParams] = useState({ const [pageParams, setPageParams] = useState({
pageNo: 1, pageNo: 1,
pageSize: 5, pageSize: 12,
}); });
const [count, setCount] = useState(0); const [count, setCount] = useState(0);
const [abort, setAbort] = useState<AbortController | null>(null); const [abort, setAbort] = useState<AbortController | null>(null);
const [loading, setLoading] = useState(false);
const Router = useRouter(); const Router = useRouter();
useEffect(() => { useEffect(() => {
...@@ -33,6 +35,7 @@ export default function Cases(props: Props) { ...@@ -33,6 +35,7 @@ export default function Cases(props: Props) {
if (!abort) { if (!abort) {
return; return;
} }
setLoading(true);
api api
.listCasePage( .listCasePage(
{ {
...@@ -46,26 +49,50 @@ export default function Cases(props: Props) { ...@@ -46,26 +49,50 @@ export default function Cases(props: Props) {
.then((res) => { .then((res) => {
setList(res.result?.list || []); setList(res.result?.list || []);
setCount(res.result?.totalCount || 0); setCount(res.result?.totalCount || 0);
setLoading(false);
}); });
}, [abort]); }, [abort]);
const onPageChange = (page: number, pageSize: number) => {
setPageParams({
...pageParams,
pageNo: page,
});
};
return ( return (
<div className={styles.casas}> <Spin spinning={loading} delay={500}>
{list.map((item) => { <div className={styles.casas} style={{ height: 612 }}>
return ( {list.map((item) => {
<div className={styles.item} key={item.id}> return (
<div className={styles.info}> <div className={styles.item} key={item.id}>
<div className={styles.title}>{item.caseTitle}</div> <div className={styles.info}>
<div className={styles.title}>{item.caseTitle}</div>
</div>
<Button
type="primary"
className={styles.btn}
onClick={() =>
Router.push("/projectInfo/caseArticle/" + item.id)
}
>
申请合作
</Button>
</div> </div>
<Button );
className={styles.btn} })}
onClick={() => Router.push("/projectInfo/caseArticle/" + item.id)} {list.length === 0 && <Empty></Empty>}
> </div>
查看案例 <Pagination
</Button> current={pageParams.pageNo}
</div> defaultPageSize={pageParams.pageSize}
); showSizeChanger={false}
})} showQuickJumper
</div> total={count}
onChange={onPageChange}
hideOnSinglePage={true}
style={{ marginTop: 20 }}
/>
</Spin>
); );
} }
...@@ -5,11 +5,8 @@ ...@@ -5,11 +5,8 @@
} }
.new { .new {
padding-top: 20px;
width: 750px;
.item { .item {
cursor: pointer;
padding: 10px 12px; padding: 10px 12px;
display: flex; display: flex;
border-bottom: 1px dashed RGBA(222, 222, 222, 1); border-bottom: 1px dashed RGBA(222, 222, 222, 1);
...@@ -20,19 +17,39 @@ ...@@ -20,19 +17,39 @@
height: 80px; height: 80px;
background: #d8d8d8; background: #d8d8d8;
border-radius: 6px; border-radius: 6px;
margin-right: 22px; margin-right: 17px;
@include ellipsis(1); @include ellipsis(1);
flex-shrink: 0; flex-shrink: 0;
} }
.info { .info {
padding: 3px 0 2px; padding-left: 3px;
padding-right: 83px;
.title { .title {
font-size: 16px; font-size: 16px;
font-family: MicrosoftYaHeiUI-Bold, MicrosoftYaHeiUI; font-family: MicrosoftYaHeiUI-Bold, MicrosoftYaHeiUI;
font-weight: bold; font-weight: bold;
color: #000000; color: #000000;
line-height: 22px;
@include ellipsis(1);
}
.desc {
font-size: 14px;
font-family: MicrosoftYaHei;
color: #878787;
line-height: 22px;
margin-top: 6px;
@include ellipsis(1);
}
.date {
font-size: 12px;
font-family: MicrosoftYaHei;
color: #adadad;
line-height: 16px;
margin-top: 5px;
} }
} }
} }
......
import { RightOutlined } from "@ant-design/icons"; import { RightOutlined } from "@ant-design/icons";
import { Col, Row } from "antd"; import { Button, Col, Empty, Pagination, Row, Spin } from "antd";
import styles from "./index.module.scss"; import styles from "./index.module.scss";
import Image from "next/image"; import Image from "next/image";
import { useState, useEffect } from "react"; import { useState, useEffect } from "react";
import api, { Item } from "./api"; import api, { Item } from "./api";
import { useRouter } from "next/router"; import { useRouter } from "next/router";
import Moment from "moment";
type Props = { type Props = {
params?: { params?: {
...@@ -16,10 +17,11 @@ type Props = { ...@@ -16,10 +17,11 @@ type Props = {
}; };
export default function News(props: Props) { export default function News(props: Props) {
const [loading, setLoading] = useState(false);
const [list, setList] = useState<Array<Item>>([]); const [list, setList] = useState<Array<Item>>([]);
const [pageParams, setPageParams] = useState({ const [pageParams, setPageParams] = useState({
pageNo: 1, pageNo: 1,
pageSize: 5, pageSize: 6,
}); });
const [count, setCount] = useState(0); const [count, setCount] = useState(0);
const [abort, setAbort] = useState<AbortController | null>(null); const [abort, setAbort] = useState<AbortController | null>(null);
...@@ -35,6 +37,7 @@ export default function News(props: Props) { ...@@ -35,6 +37,7 @@ export default function News(props: Props) {
if (!abort) { if (!abort) {
return; return;
} }
setLoading(true);
api api
.listNewsPage( .listNewsPage(
{ {
...@@ -48,33 +51,63 @@ export default function News(props: Props) { ...@@ -48,33 +51,63 @@ export default function News(props: Props) {
.then((res) => { .then((res) => {
setList(res.result?.list || []); setList(res.result?.list || []);
setCount(res.result?.totalCount || 0); setCount(res.result?.totalCount || 0);
setLoading(false);
}); });
}, [abort]); }, [abort]);
const onPageChange = (page: number, pageSize: number) => {
setPageParams({
...pageParams,
pageNo: page,
});
};
return ( return (
<Row justify="space-between"> <Spin spinning={loading} delay={500}>
<Col className={styles.new}> <Row justify="space-between" style={{ height: 606 }}>
{list.map((item) => { <Col className={styles.new}>
return ( {list.map((item) => {
<div return (
className={styles.item} <div className={styles.item} key={item.id}>
key={item.id} <Image
onClick={() => router.push("/projectInfo/newsArticle/" + item.id)} className={styles.logo}
> src={item.surfaceImg}
<Image alt=""
className={styles.logo} width={120}
src={item.surfaceImg} height={80}
alt="" ></Image>
width={120} <div className={styles.info}>
height={80} <div className={styles.title}>{item.newsTitle}</div>
></Image> <div className={styles.desc}>{item.newsContents}</div>
<div className={styles.info}> <div className={styles.date}>
<div className={styles.title}>{item.newsTitle}</div> {Moment().format("yyyy-MM-DD")} · {item.newsAuthor}
</div>
</div>
<Button
type="primary"
style={{ width: 120, height: 40, flexShrink: 0 }}
onClick={() =>
router.push("/projectInfo/newsArticle/" + item.id)
}
>
申请合作
</Button>
</div> </div>
</div> );
); })}
})} </Col>
</Col> </Row>
</Row> {list.length === 0 && <Empty></Empty>}
<Pagination
current={pageParams.pageNo}
defaultPageSize={pageParams.pageSize}
showSizeChanger={false}
showQuickJumper
total={count}
onChange={onPageChange}
hideOnSinglePage={true}
style={{ marginTop: 20 }}
/>
</Spin>
); );
} }
@import "~/styles/mixins.scss";
//项目需求 //项目需求
.requirements { .requirements {
.item { .item {
cursor: pointer;
padding: 15px 15px; padding: 15px 15px;
display: flex; display: flex;
border-bottom: 1px dashed RGBA(222, 222, 222, 1); border-bottom: 1px dashed RGBA(222, 222, 222, 1);
align-items: center;
.logo { .logo {
width: 50px; width: 50px;
...@@ -13,10 +15,12 @@ ...@@ -13,10 +15,12 @@
margin-right: 24px; margin-right: 24px;
background: url('./assets/resolved.png') no-repeat; background: url('./assets/resolved.png') no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
flex-shrink: 0;
} }
.info { .info {
padding: 3px 0 2px; padding: 3px 0 2px;
flex: auto;
.title { .title {
white-space: nowrap; /* 防止换行 */ white-space: nowrap; /* 防止换行 */
...@@ -27,6 +31,7 @@ ...@@ -27,6 +31,7 @@
font-weight: bold; font-weight: bold;
margin-bottom: 6px; margin-bottom: 6px;
color: RGBA(0, 0, 0, 0.4); color: RGBA(0, 0, 0, 0.4);
@include ellipsis(1);
} }
.desc { .desc {
...@@ -37,6 +42,7 @@ ...@@ -37,6 +42,7 @@
font-family: MicrosoftYaHei; font-family: MicrosoftYaHei;
color: RGBA(135, 135, 135, 0.4); color: RGBA(135, 135, 135, 0.4);
line-height: 1; line-height: 1;
@include ellipsis(1);
} }
} }
......
import { Empty, Pagination, Spin } from "antd"; import { Button, Empty, Pagination, Spin } from "antd";
import router from "next/router";
import React, { useState, useEffect } from "react"; import React, { useState, useEffect } from "react";
import api, { Item } from "./api"; import api, { Item } from "./api";
import styles from "./index.module.scss"; import styles from "./index.module.scss";
...@@ -75,6 +76,12 @@ export default function Requirements(props: Props) { ...@@ -75,6 +76,12 @@ export default function Requirements(props: Props) {
具体需求:{item.requireDescription} 具体需求:{item.requireDescription}
</div> </div>
</div> </div>
<Button
type="primary"
style={{ width: 120, height: 40, flexShrink: 0 }}
>
申请合作
</Button>
</div> </div>
); );
})} })}
......
...@@ -7,6 +7,7 @@ import Layout from "~/components/layout"; ...@@ -7,6 +7,7 @@ import Layout from "~/components/layout";
import newsApi, { Item } from "../components/news/api"; import newsApi, { Item } from "../components/news/api";
import api, { DetailsResp } from "./api"; import api, { DetailsResp } from "./api";
import styles from "./index.module.scss"; import styles from "./index.module.scss";
import Moment from "moment";
export default function CaseArticle() { export default function CaseArticle() {
const router = useRouter(); const router = useRouter();
...@@ -32,13 +33,36 @@ export default function CaseArticle() { ...@@ -32,13 +33,36 @@ export default function CaseArticle() {
newsApi newsApi
.listNewsPage({ .listNewsPage({
pageNo: 1, pageNo: 1,
pageSize: 5, pageSize: 10,
}) })
.then((res) => { .then((res) => {
setNewList(res.result?.list || []); setNewList(res.result?.list || []);
}); });
}, []); }, []);
const fontColor = (i: number) => {
switch (i) {
case 0:
return {
color: "#ff2c46",
};
case 1:
return {
color: "#FF6602",
};
case 2:
return {
color: "#FAA910",
};
default:
return {
color: "#9295A3",
};
}
};
return ( return (
<Layout layoutStyle={{ backgroundColor: "#fff" }}> <Layout layoutStyle={{ backgroundColor: "#fff" }}>
<div style={{ paddingTop: 29 }}> <div style={{ paddingTop: 29 }}>
...@@ -49,10 +73,12 @@ export default function CaseArticle() { ...@@ -49,10 +73,12 @@ export default function CaseArticle() {
className={styles.font2} className={styles.font2}
style={{ marginTop: 18, marginBottom: 41 }} style={{ marginTop: 18, marginBottom: 41 }}
> >
{data?.createTime} · {data?.newsAuthor} {data?.createTime &&
Moment(data?.createTime).format("YYYY-MM-DD")}{" "}
· {data?.newsAuthor}
</div> </div>
<div <div
style={{lineHeight: 1.5}} style={{ lineHeight: 1.5 }}
dangerouslySetInnerHTML={{ __html: data?.newsContents || "" }} dangerouslySetInnerHTML={{ __html: data?.newsContents || "" }}
></div> ></div>
</Col> </Col>
...@@ -61,14 +87,14 @@ export default function CaseArticle() { ...@@ -61,14 +87,14 @@ export default function CaseArticle() {
<Row <Row
className={styles.font4} className={styles.font4}
align="middle" align="middle"
style={{ paddingTop: 24, paddingLeft: 24 }} style={{ paddingTop: 16, paddingLeft: 20 }}
> >
行业新闻 行业新闻
<RightOutlined style={{ fontSize: 16, marginLeft: 15 }} /> <RightOutlined style={{ fontSize: 16, marginLeft: 9 }} />
</Row> </Row>
<Row gutter={10} style={{ marginTop: 18 }}> <Row gutter={10} style={{ marginTop: 8 }}>
<Col span={24}> <Col span={24}>
{newsList.map((item) => { {newsList.map((item, i) => {
return ( return (
<Row <Row
key={item.id} key={item.id}
...@@ -80,20 +106,20 @@ export default function CaseArticle() { ...@@ -80,20 +106,20 @@ export default function CaseArticle() {
}} }}
> >
<Col <Col
className={`${styles.font3} ${styles.ellipse2}`} className={`${styles.font3}`}
style={{ width: 217, padding: "13px 0 17px 20px" }} style={{ margin: "6px 23px 6px 19px", width: "100%" }}
> >
{item.newsTitle} <Row wrap={false}>
</Col> <Col
<Col style={{ paddingRight: 16 }}> span={2}
<Image style={{ textAlign: "center", ...fontColor(i) }}
src={item.surfaceImg} >
width={90} {i + 1}
height={60} </Col>
preview={false} <Col span={22} className={styles.ellipse1}>
fallback={errImg} {item.newsTitle}
style={{ borderRadius: 6 }} </Col>
></Image> </Row>
</Col> </Col>
</Row> </Row>
); );
......
...@@ -16,27 +16,24 @@ ...@@ -16,27 +16,24 @@
} }
.font3 { .font3 {
font-size: 16px; font-size: 14px;
font-family: MicrosoftYaHei; font-family: MicrosoftYaHei;
color: #323232; color: #323232;
line-height: 21px; line-height: 19px;
} }
.font4 { .font4 {
font-size: 20px; font-size: 16px;
font-family: MicrosoftYaHeiUI-Bold, MicrosoftYaHeiUI; font-family: MicrosoftYaHeiUI-Bold, MicrosoftYaHeiUI;
font-weight: bold; font-weight: bold;
color: #000000; color: #000000;
line-height: 25px; line-height: 20px;
} }
.newsBox { .newsBox {
width: 384px; width: 384px;
height: 491px;
background-image: url("./assets/bk.png");
background-size: 100% 100%;
} }
.ellipse2 { .ellipse1 {
@include ellipsis(2); @include ellipsis(1);
} }
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论