fix(staff)
This commit is contained in:
parent
7415fc8312
commit
bf8ae54585
16
README.md
16
README.md
|
@ -44,19 +44,3 @@ You don’t have to ever use `eject`. The curated feature set is suitable for sm
|
||||||
You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
|
You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
|
||||||
|
|
||||||
To learn React, check out the [React documentation](https://reactjs.org/).
|
To learn React, check out the [React documentation](https://reactjs.org/).
|
||||||
添加的数据
|
|
||||||
|
|
||||||
1、队伍属性管理 添加队伍
|
|
||||||
2、个人身份管理 添加身份
|
|
||||||
3、组织架构通过部门来组织
|
|
||||||
|
|
||||||
|
|
||||||
首页:
|
|
||||||
1、组织架构 用户数量统计,党员数量统计
|
|
||||||
2、武装力量 根据队伍统计
|
|
||||||
3、年度训练 按照年度统计类别,次数 (任务发布时,可选择多个类别)
|
|
||||||
|
|
||||||
4、物资管理
|
|
||||||
5、档案管理
|
|
||||||
|
|
||||||
6、评优争先
|
|
|
@ -93,7 +93,7 @@
|
||||||
"build": "node scripts/build.js",
|
"build": "node scripts/build.js",
|
||||||
"test": "node scripts/test.js"
|
"test": "node scripts/test.js"
|
||||||
},
|
},
|
||||||
"proxy":"https://www.hswzct.cn:12016",
|
"proxy":"http://127.0.0.1:12214",
|
||||||
"eslintConfig": {
|
"eslintConfig": {
|
||||||
"extends": [
|
"extends": [
|
||||||
"react-app",
|
"react-app",
|
||||||
|
|
|
@ -14,6 +14,7 @@ const DebounceSelect = <
|
||||||
key?: string;
|
key?: string;
|
||||||
label: React.ReactNode;
|
label: React.ReactNode;
|
||||||
value: string | number;
|
value: string | number;
|
||||||
|
head_img?: string;
|
||||||
} = any
|
} = any
|
||||||
>({
|
>({
|
||||||
fetchOptions,
|
fetchOptions,
|
||||||
|
@ -35,7 +36,6 @@ const DebounceSelect = <
|
||||||
if (fetchId !== fetchRef.current) {
|
if (fetchId !== fetchRef.current) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
setOptions(newOptions);
|
setOptions(newOptions);
|
||||||
setFetching(false);
|
setFetching(false);
|
||||||
});
|
});
|
||||||
|
@ -51,7 +51,6 @@ const DebounceSelect = <
|
||||||
onSearch={debounceFetcher}
|
onSearch={debounceFetcher}
|
||||||
notFoundContent={fetching ? <Spin size="small" /> : null}
|
notFoundContent={fetching ? <Spin size="small" /> : null}
|
||||||
{...props}
|
{...props}
|
||||||
|
|
||||||
options={options}
|
options={options}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
|
|
|
@ -95,6 +95,7 @@
|
||||||
.ec_right_end{
|
.ec_right_end{
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 0;
|
left: 0;
|
||||||
|
cursor: pointer;
|
||||||
right: 0;
|
right: 0;
|
||||||
bottom: 20px;
|
bottom: 20px;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { Modal } from "antd";
|
import { Modal, Space } from "antd";
|
||||||
import { Store } from "antd/es/form/interface";
|
import { Store } from "antd/es/form/interface";
|
||||||
import { inject, observer } from "mobx-react";
|
import { inject, observer } from "mobx-react";
|
||||||
import { useState } from "react";
|
import { useState } from "react";
|
||||||
|
@ -9,6 +9,10 @@ import DebounceSelect from "@/components/form/featch_select";
|
||||||
interface UserValue {
|
interface UserValue {
|
||||||
label: string;
|
label: string;
|
||||||
value: string;
|
value: string;
|
||||||
|
head_img: string;
|
||||||
|
age: number;
|
||||||
|
grid_letter_user: number;
|
||||||
|
pos_held: string;
|
||||||
}
|
}
|
||||||
const Ec = (props: Store) => {
|
const Ec = (props: Store) => {
|
||||||
const [isModalOpen, setIsModalOpen] = useState<boolean>(false);
|
const [isModalOpen, setIsModalOpen] = useState<boolean>(false);
|
||||||
|
@ -27,6 +31,8 @@ const Ec = (props: Store) => {
|
||||||
return res.data.record.map((item) => ({
|
return res.data.record.map((item) => ({
|
||||||
label: item.user_name,
|
label: item.user_name,
|
||||||
value: item.identity,
|
value: item.identity,
|
||||||
|
identity: item.identity,
|
||||||
|
head_img:item.head_img,
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -60,13 +66,18 @@ const Ec = (props: Store) => {
|
||||||
onChange={(newValue) => {
|
onChange={(newValue) => {
|
||||||
setValue(newValue as UserValue[]);
|
setValue(newValue as UserValue[]);
|
||||||
}}
|
}}
|
||||||
|
optionRender={(item:any) => {
|
||||||
|
return <Space key={item.key}>
|
||||||
|
<span>{item.label}</span>
|
||||||
|
<img src={item.data.head_img} alt="" width={40} height={40} />
|
||||||
|
</Space>
|
||||||
|
}}
|
||||||
style={{ width: "100%" }}
|
style={{ width: "100%" }}
|
||||||
/>
|
/>
|
||||||
<p></p>
|
|
||||||
{value.map((item: any) => {
|
{value.map((item: any) => {
|
||||||
return (
|
return (
|
||||||
<div key={item.key}>
|
<div key={item.key}>
|
||||||
<div>姓名:{item.label} : 未在线</div>
|
<div>姓名:{item.label}</div>
|
||||||
<div>
|
<div>
|
||||||
点击呼叫:
|
点击呼叫:
|
||||||
<PhoneTwoTone
|
<PhoneTwoTone
|
||||||
|
@ -84,10 +95,10 @@ const Ec = (props: Store) => {
|
||||||
</div>
|
</div>
|
||||||
<div className="ec_right">
|
<div className="ec_right">
|
||||||
<div style={{ display: "flex" }}>
|
<div style={{ display: "flex" }}>
|
||||||
<video
|
{/* <video
|
||||||
id="rtcVideo"
|
id="rtcVideo"
|
||||||
style={{ width: "300px", height: "300px" }}
|
style={{ width: "300px", height: "300px" }}
|
||||||
></video>
|
></video> */}
|
||||||
<video
|
<video
|
||||||
id="remoteVideo"
|
id="remoteVideo"
|
||||||
style={{ width: "300px", height: "300px" }}
|
style={{ width: "300px", height: "300px" }}
|
||||||
|
|
|
@ -46,6 +46,7 @@ const WhichVideo = (props) => {
|
||||||
return () => {
|
return () => {
|
||||||
clearInterval(timer);
|
clearInterval(timer);
|
||||||
};
|
};
|
||||||
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
}, []);
|
}, []);
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
|
|
|
@ -62,7 +62,7 @@ const Turn = (props: Store) => {
|
||||||
setImageUrl(item.file_url);
|
setImageUrl(item.file_url);
|
||||||
}}
|
}}
|
||||||
key={item.identity}
|
key={item.identity}
|
||||||
style={{ width: "80px", height: "80px" }}
|
style={{ width: "100%", height: "100px" }}
|
||||||
src={item.file_url}
|
src={item.file_url}
|
||||||
alt=""
|
alt=""
|
||||||
/>
|
/>
|
||||||
|
@ -72,11 +72,29 @@ const Turn = (props: Store) => {
|
||||||
let fileType = getFileTypeFromUrl(imageUrl);
|
let fileType = getFileTypeFromUrl(imageUrl);
|
||||||
switch (fileType) {
|
switch (fileType) {
|
||||||
case "jpeg":
|
case "jpeg":
|
||||||
return <img style={{ width: "100%",objectFit:"fill" }} src={imageUrl} alt="" />;
|
return (
|
||||||
|
<img
|
||||||
|
style={{ width: "100%", height: "500px", objectFit: "fill" }}
|
||||||
|
src={imageUrl}
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
);
|
||||||
case "jpg":
|
case "jpg":
|
||||||
return <img style={{ width: "100%" ,objectFit:"fill"}} src={imageUrl} alt="" />;
|
return (
|
||||||
|
<img
|
||||||
|
style={{ width: "100%", height: "500px", objectFit: "fill" }}
|
||||||
|
src={imageUrl}
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
);
|
||||||
case "png":
|
case "png":
|
||||||
return <img style={{ width: "100%",objectFit:"fill" }} src={imageUrl} alt="" />;
|
return (
|
||||||
|
<img
|
||||||
|
style={{ width: "100%", height: "500px", objectFit: "fill" }}
|
||||||
|
src={imageUrl}
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
);
|
||||||
case "pdf":
|
case "pdf":
|
||||||
return (
|
return (
|
||||||
<div style={{ width: "100%", height: "500px" }}>
|
<div style={{ width: "100%", height: "500px" }}>
|
||||||
|
@ -90,17 +108,17 @@ const Turn = (props: Store) => {
|
||||||
);
|
);
|
||||||
case "mp4":
|
case "mp4":
|
||||||
return (
|
return (
|
||||||
<div key={imageUrl} style={{ width: "100%", height: "600px" }}>
|
<div key={imageUrl} style={{ width: "100%", height: "500px" }}>
|
||||||
<video
|
<video
|
||||||
controls
|
controls
|
||||||
style={{ width: "100%", height: "600px" }}
|
style={{ width: "100%", height: "500px" }}
|
||||||
src={imageUrl}
|
src={imageUrl}
|
||||||
></video>
|
></video>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
case "docx":
|
case "docx":
|
||||||
return (
|
return (
|
||||||
<div key={imageUrl} style={{ width: "100%", height: "600px" }}>
|
<div key={imageUrl} style={{ width: "100%", height: "500px" }}>
|
||||||
<FileViewer
|
<FileViewer
|
||||||
loader={undefined}
|
loader={undefined}
|
||||||
src={imageUrl}
|
src={imageUrl}
|
||||||
|
@ -112,9 +130,9 @@ const Turn = (props: Store) => {
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
case "":
|
case "":
|
||||||
return <div style={{ width: "100%", height: "600px" }}></div>;
|
return <div style={{ width: "100%", height: "500px" }}></div>;
|
||||||
default:
|
default:
|
||||||
return <div style={{ width: "100%", height: "600px" }}></div>;
|
return <div style={{ width: "100%", height: "500px" }}></div>;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
return (
|
return (
|
||||||
|
@ -139,15 +157,15 @@ const Turn = (props: Store) => {
|
||||||
>
|
>
|
||||||
<div>
|
<div>
|
||||||
<Row>
|
<Row>
|
||||||
<Col span={2}>
|
<Col span={3}>
|
||||||
<div style={{ color: "#fff" }}>
|
<div style={{ color: "#fff" }}>
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
height: "500px",
|
height: "500px",
|
||||||
overflowY: "hidden",
|
border: "1px solid rgb(51, 51, 51)",
|
||||||
border: "1px solid #fff",
|
|
||||||
padding: "10px",
|
padding: "10px",
|
||||||
margin: "5px",
|
margin: "5px",
|
||||||
|
overflowY: "scroll",
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<p>任务列表</p>
|
<p>任务列表</p>
|
||||||
|
@ -172,11 +190,12 @@ const Turn = (props: Store) => {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</Col>
|
</Col>
|
||||||
<Col span={2}>
|
<Col span={3}>
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
|
height: "500px",
|
||||||
color: "#fff",
|
color: "#fff",
|
||||||
border: "1px solid #fff",
|
border: "1px solid rgb(51, 51, 51)",
|
||||||
padding: "10px",
|
padding: "10px",
|
||||||
margin: "5px",
|
margin: "5px",
|
||||||
}}
|
}}
|
||||||
|
@ -201,11 +220,15 @@ const Turn = (props: Store) => {
|
||||||
})}
|
})}
|
||||||
</div>
|
</div>
|
||||||
</Col>
|
</Col>
|
||||||
<Col span={2}>
|
<Col span={3}>
|
||||||
<div style={{ color: "#fff", border: "1px solid #fff",
|
<div
|
||||||
|
style={{
|
||||||
|
color: "#fff",
|
||||||
|
border: "1px solid rgb(51, 51, 51)",
|
||||||
padding: "10px",
|
padding: "10px",
|
||||||
margin: "5px", }}>
|
margin: "5px",
|
||||||
|
}}
|
||||||
|
>
|
||||||
<div style={{ height: "500px", overflowY: "scroll" }}>
|
<div style={{ height: "500px", overflowY: "scroll" }}>
|
||||||
<p>档案列表</p>
|
<p>档案列表</p>
|
||||||
{imageList?.map((item) => {
|
{imageList?.map((item) => {
|
||||||
|
@ -270,7 +293,7 @@ const Turn = (props: Store) => {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</Col>
|
</Col>
|
||||||
<Col span={18}>
|
<Col span={15}>
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
color: "#fff",
|
color: "#fff",
|
||||||
|
@ -278,7 +301,7 @@ const Turn = (props: Store) => {
|
||||||
display: "flex",
|
display: "flex",
|
||||||
alignItems: "center",
|
alignItems: "center",
|
||||||
justifyContent: "center",
|
justifyContent: "center",
|
||||||
padding:"10px"
|
padding: "10px",
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{preView()}
|
{preView()}
|
||||||
|
|
|
@ -179,7 +179,7 @@ const Ac = (props: Store) => {
|
||||||
<div style={{ display: "flex", alignItems: "flex-start" }}>
|
<div style={{ display: "flex", alignItems: "flex-start" }}>
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
border: "1px solid #fff",
|
border: "1px solid rgb(51, 51, 51)",
|
||||||
width: "200px",
|
width: "200px",
|
||||||
overflow: "auto",
|
overflow: "auto",
|
||||||
height: "480px",
|
height: "480px",
|
||||||
|
@ -207,9 +207,10 @@ const Ac = (props: Store) => {
|
||||||
);
|
);
|
||||||
})}
|
})}
|
||||||
</div>
|
</div>
|
||||||
|
<div style={{ width: '10px' }}></div>
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
border: "1px solid #fff",
|
border: "1px solid rgb(51, 51, 51)",
|
||||||
width: "200px",
|
width: "200px",
|
||||||
height: "480px",
|
height: "480px",
|
||||||
overflow: "auto",
|
overflow: "auto",
|
||||||
|
@ -234,6 +235,7 @@ const Ac = (props: Store) => {
|
||||||
);
|
);
|
||||||
})}
|
})}
|
||||||
</div>
|
</div>
|
||||||
|
<div style={{ width: '10px' }}></div>
|
||||||
<div style={{height:"400px",flex:4}}>
|
<div style={{height:"400px",flex:4}}>
|
||||||
{preView()}
|
{preView()}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -4,5 +4,6 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
border: 1px solid;
|
border: 1px solid rgba(255, 255, 255, 0.3);
|
||||||
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,13 @@
|
||||||
import Col from "antd/es/col";
|
|
||||||
import { Row } from "antd/lib/grid";
|
|
||||||
import * as echarts from "echarts";
|
import * as echarts from "echarts";
|
||||||
|
|
||||||
import "./kanban.less";
|
import "./kanban.less";
|
||||||
import { useEffect } from "react";
|
import { useEffect } from "react";
|
||||||
|
import Timer from "../homeLeft/timer";
|
||||||
|
import { inject, observer } from "mobx-react";
|
||||||
|
import { Store } from "antd/es/form/interface";
|
||||||
|
|
||||||
const KanBan = () => {
|
const KanBan = (props: Store) => {
|
||||||
|
const { homeStore } = props;
|
||||||
const initChart = () => {
|
const initChart = () => {
|
||||||
var myChart = echarts.init(document.getElementById("yibiaopan"));
|
var myChart = echarts.init(document.getElementById("yibiaopan"));
|
||||||
var option = {
|
var option = {
|
||||||
|
@ -15,30 +17,20 @@ const KanBan = () => {
|
||||||
center: ["50%", "70%"],
|
center: ["50%", "70%"],
|
||||||
startAngle: 200,
|
startAngle: 200,
|
||||||
endAngle: -20,
|
endAngle: -20,
|
||||||
radius:70,
|
radius: 100,
|
||||||
min: 0,
|
min: 0,
|
||||||
max: 30,
|
max: 30,
|
||||||
splitNumber: 12,
|
splitNumber: 12,
|
||||||
itemStyle: {
|
itemStyle: {
|
||||||
color: "#FFAB91",
|
color: "#FFAB91",
|
||||||
},
|
},
|
||||||
axisLabel: {
|
|
||||||
distance: -20,
|
|
||||||
color: "#999",
|
|
||||||
fontSize: 20,
|
|
||||||
},
|
|
||||||
anchor: {
|
|
||||||
show: false,
|
|
||||||
},
|
|
||||||
title: {
|
|
||||||
show: true,
|
|
||||||
},
|
|
||||||
detail: {
|
detail: {
|
||||||
valueAnimation: true,
|
valueAnimation: true,
|
||||||
width: "40%",
|
width: "40%",
|
||||||
lineHeight: 40,
|
lineHeight: 80,
|
||||||
borderRadius: 8,
|
borderRadius: 8,
|
||||||
offsetCenter: [0, "-10%"],
|
offsetCenter: [0, "10%"],
|
||||||
fontSize: 20,
|
fontSize: 20,
|
||||||
fontWeight: "bolder",
|
fontWeight: "bolder",
|
||||||
formatter: "{value} °C",
|
formatter: "{value} °C",
|
||||||
|
@ -54,12 +46,12 @@ const KanBan = () => {
|
||||||
type: "gauge",
|
type: "gauge",
|
||||||
center: ["50%", "70%"],
|
center: ["50%", "70%"],
|
||||||
startAngle: 200,
|
startAngle: 200,
|
||||||
radius:70,
|
radius: 80,
|
||||||
endAngle: -20,
|
endAngle: 10,
|
||||||
min: 0,
|
min: 0,
|
||||||
max: 60,
|
max: 60,
|
||||||
itemStyle: {
|
itemStyle: {
|
||||||
color: "#FD7347",
|
color: "#FD7347"
|
||||||
},
|
},
|
||||||
progress: {
|
progress: {
|
||||||
show: true,
|
show: true,
|
||||||
|
@ -74,12 +66,8 @@ const KanBan = () => {
|
||||||
axisTick: {
|
axisTick: {
|
||||||
show: false,
|
show: false,
|
||||||
},
|
},
|
||||||
splitLine: {
|
splitLine: { show: false },
|
||||||
show: false,
|
axisLabel: { show: false },
|
||||||
},
|
|
||||||
axisLabel: {
|
|
||||||
show: false,
|
|
||||||
},
|
|
||||||
detail: {
|
detail: {
|
||||||
show: false,
|
show: false,
|
||||||
},
|
},
|
||||||
|
@ -93,7 +81,8 @@ const KanBan = () => {
|
||||||
};
|
};
|
||||||
option && myChart.setOption(option);
|
option && myChart.setOption(option);
|
||||||
};
|
};
|
||||||
const sourece = (id: string) => {
|
|
||||||
|
const guoqi = (id: string, list: any) => {
|
||||||
var myChart = echarts.init(document.getElementById(id));
|
var myChart = echarts.init(document.getElementById(id));
|
||||||
var option = {
|
var option = {
|
||||||
legend: {
|
legend: {
|
||||||
|
@ -115,92 +104,19 @@ const KanBan = () => {
|
||||||
formatter: "{b}:{c}",
|
formatter: "{b}:{c}",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
data: [
|
data: list,
|
||||||
{ value: 40, name: "第三方" },
|
|
||||||
{ value: 18, name: "购买" },
|
|
||||||
{ value: 18, name: "自有" },
|
|
||||||
],
|
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
option && myChart.setOption(option);
|
option && myChart.setOption(option);
|
||||||
};
|
};
|
||||||
const guoqi = (id: string) => {
|
|
||||||
var myChart = echarts.init(document.getElementById(id));
|
const gailan = (list) => {
|
||||||
var option = {
|
|
||||||
legend: {
|
|
||||||
top: "bottom",
|
|
||||||
show: false,
|
|
||||||
},
|
|
||||||
series: [
|
|
||||||
{
|
|
||||||
type: "pie",
|
|
||||||
radius: [30, 80],
|
|
||||||
center: ["50%", "50%"],
|
|
||||||
itemStyle: {
|
|
||||||
borderRadius: 2,
|
|
||||||
},
|
|
||||||
label: {
|
|
||||||
normal: {
|
|
||||||
show: true,
|
|
||||||
position: "inner",
|
|
||||||
formatter: "{b}:{c}",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
data: [
|
|
||||||
{ value: 40, name: "即将过期" },
|
|
||||||
{ value: 18, name: "已经过期" },
|
|
||||||
{ value: 18, name: "未过期" },
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
option && myChart.setOption(option);
|
|
||||||
};
|
|
||||||
const outin = (id: string) => {
|
|
||||||
var myChart = echarts.init(document.getElementById(id));
|
|
||||||
var option = {
|
|
||||||
legend: {
|
|
||||||
top: "bottom",
|
|
||||||
show: false,
|
|
||||||
},
|
|
||||||
series: [
|
|
||||||
{
|
|
||||||
type: "pie",
|
|
||||||
radius: [30, 80],
|
|
||||||
center: ["50%", "50%"],
|
|
||||||
itemStyle: {
|
|
||||||
borderRadius: 2,
|
|
||||||
},
|
|
||||||
label: {
|
|
||||||
normal: {
|
|
||||||
show: true,
|
|
||||||
position: "inner",
|
|
||||||
formatter: "{b}:{c}",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
data: [
|
|
||||||
{ value: 40, name: "出库" },
|
|
||||||
{ value: 18, name: "入库" },
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
option && myChart.setOption(option);
|
|
||||||
};
|
|
||||||
const gailan = () => {
|
|
||||||
var myChart = echarts.init(document.getElementById("gailan"));
|
var myChart = echarts.init(document.getElementById("gailan"));
|
||||||
var option = {
|
var option = {
|
||||||
xAxis: {
|
xAxis: {
|
||||||
type: "category",
|
type: "category",
|
||||||
data: [
|
data: list.map((item) => item.name),
|
||||||
"个人携行",
|
|
||||||
"反恐维稳",
|
|
||||||
"反恐维稳",
|
|
||||||
"地震救援",
|
|
||||||
"防汛抗洪",
|
|
||||||
"灭火救援",
|
|
||||||
],
|
|
||||||
axisLabel: {
|
axisLabel: {
|
||||||
show: true,
|
show: true,
|
||||||
interval: 0,
|
interval: 0,
|
||||||
|
@ -216,7 +132,7 @@ const KanBan = () => {
|
||||||
},
|
},
|
||||||
series: [
|
series: [
|
||||||
{
|
{
|
||||||
data: [820, 932, 901, 934, 1290, 1330],
|
data: list.map((item) => item.value),
|
||||||
type: "line",
|
type: "line",
|
||||||
smooth: true,
|
smooth: true,
|
||||||
areaStyle: {
|
areaStyle: {
|
||||||
|
@ -239,26 +155,54 @@ const KanBan = () => {
|
||||||
};
|
};
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
initChart();
|
initChart();
|
||||||
sourece("sourece");
|
|
||||||
guoqi("yujing");
|
homeStore.getMm().then((res) => {
|
||||||
outin("baozhiqi");
|
gailan(res.data?.record ?? []);
|
||||||
sourece("level");
|
});
|
||||||
gailan();
|
homeStore.getmmb().then((res) => {
|
||||||
}, []);
|
guoqi("yujing", [
|
||||||
|
{ value: res.data?.record?.other_num??0, name: "第三方" },
|
||||||
|
{ value: res.data?.record?.own_num??0, name: "自有" },
|
||||||
|
]);
|
||||||
|
guoqi("sourece", [
|
||||||
|
{ value: res.data?.record?.jygq??0, name: "即将过期" },
|
||||||
|
{ value: res.data?.record?.gq??0, name: "已经过期" },
|
||||||
|
{ value: res.data?.record?.bgq??0, name: "未过期" },
|
||||||
|
]);
|
||||||
|
guoqi("level", [
|
||||||
|
{ value: res.data?.record?.drck??0, name: "当日出库" },
|
||||||
|
{ value: res.data?.record?.drrk??0, name: "当日入库" },
|
||||||
|
]);
|
||||||
|
});
|
||||||
|
|
||||||
|
}, [homeStore]);
|
||||||
return (
|
return (
|
||||||
<>
|
<div style={{ marginBottom: "10px" }}>
|
||||||
<Row style={{ margin: "10px" }}>
|
<div style={{ display: "flex" }} className="gutter-row">
|
||||||
<Col className="gutter-row" span={6}>
|
|
||||||
<div
|
<div
|
||||||
className="kanban-item"
|
style={{
|
||||||
style={{ backgroundColor: "rgba(37, 52, 70, 0.4)" }}
|
flex: 1,
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
height: "240px",
|
||||||
|
width: "100%",
|
||||||
|
|
||||||
|
backgroundColor: "rgba(37, 52, 70, 0.4)",
|
||||||
|
border: "1px solid rgba(255, 255, 255, 0.3)",
|
||||||
|
boxSizing: "border-box",
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
<div>
|
|
||||||
<p
|
<p
|
||||||
style={{
|
style={{
|
||||||
backgroundColor: "#29ecb4",
|
backgroundColor: "#29ecb4",
|
||||||
width: "100%",
|
width: "100%",
|
||||||
padding: "10px",
|
padding: "5px",
|
||||||
|
color: "#fff",
|
||||||
|
boxSizing: "border-box",
|
||||||
|
fontSize: "30px",
|
||||||
|
fontWeight: "800",
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
安全运行天数
|
安全运行天数
|
||||||
|
@ -266,17 +210,18 @@ const KanBan = () => {
|
||||||
<p
|
<p
|
||||||
style={{
|
style={{
|
||||||
fontSize: "30px",
|
fontSize: "30px",
|
||||||
margin: "0px",
|
padding: "5px",
|
||||||
fontWeight: "800",
|
fontWeight: "800",
|
||||||
color: "#29ecb4",
|
color: "#29ecb4",
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
109
|
109
|
||||||
</p>
|
</p>
|
||||||
<p style={{ color: "#29ecb4" }}>2024 / 12 / 12 星期四 09:10</p>
|
<p style={{ color: "#29ecb4", padding: "5px" }}>
|
||||||
|
<Timer />
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div className="kanban-item">
|
||||||
<div className="kanban-item" style={{ margin: "10px 0px" }}>
|
|
||||||
<div>
|
<div>
|
||||||
<div
|
<div
|
||||||
id="yibiaopan"
|
id="yibiaopan"
|
||||||
|
@ -284,44 +229,30 @@ const KanBan = () => {
|
||||||
></div>
|
></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="kanban-item">
|
|
||||||
<div>
|
|
||||||
<div
|
|
||||||
id="sourece"
|
|
||||||
style={{ width: "240px", height: "240px" }}
|
|
||||||
></div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</Col>
|
|
||||||
|
|
||||||
<Col className="gutter-row" span={12}>
|
<div style={{ flex: 2 }}>
|
||||||
<div className="kanban-item">
|
<div style={{ color: "#fff", textAlign: "center" }}>暂无视频</div>
|
||||||
<div>暂无视频</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div className="kanban-item" style={{ margin: "10px 0px" }}>
|
<div style={{ flex: 1 }}>
|
||||||
<div>暂无视频</div>
|
|
||||||
</div>
|
|
||||||
<div className="kanban-item">
|
|
||||||
<div id="gailan" style={{ width: "100%", height: "240px" }}></div>
|
|
||||||
</div>
|
|
||||||
</Col>
|
|
||||||
<Col className="gutter-row" span={6}>
|
|
||||||
<div className="kanban-item">
|
<div className="kanban-item">
|
||||||
<div id="yujing" style={{ width: "240px", height: "240px" }}></div>
|
<div id="yujing" style={{ width: "240px", height: "240px" }}></div>
|
||||||
</div>
|
</div>
|
||||||
<div className="kanban-item" style={{ margin: "10px 0px" }}>
|
|
||||||
<div
|
|
||||||
id="baozhiqi"
|
|
||||||
style={{ width: "240px", height: "240px" }}
|
|
||||||
></div>
|
|
||||||
</div>
|
|
||||||
<div className="kanban-item">
|
<div className="kanban-item">
|
||||||
<div id="level" style={{ width: "240px", height: "240px" }}></div>
|
<div id="level" style={{ width: "240px", height: "240px" }}></div>
|
||||||
</div>
|
</div>
|
||||||
</Col>
|
</div>
|
||||||
</Row>
|
</div>
|
||||||
</>
|
<div style={{ display: "flex" }}>
|
||||||
|
<div className="kanban-item" style={{ flex: 1 }}>
|
||||||
|
<div id="sourece" style={{ width: "240px", height: "240px" }}></div>
|
||||||
|
</div>
|
||||||
|
<div className="kanban-item" style={{ flex: 3 }}>
|
||||||
|
<div id="gailan" style={{ width: "100%", height: "240px" }}></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default KanBan;
|
export default inject("homeStore")(observer(KanBan));
|
||||||
|
|
|
@ -118,6 +118,7 @@ const Material = (props: Store) => {
|
||||||
const edit = (record) => {
|
const edit = (record) => {
|
||||||
setIsModalOpen(true);
|
setIsModalOpen(true);
|
||||||
record.expiry_date = dayjs(record.expiry_date);
|
record.expiry_date = dayjs(record.expiry_date);
|
||||||
|
record.supplie_piker=record.supplie_piker===""?[]:record.supplie_piker
|
||||||
setRecord(record);
|
setRecord(record);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -130,7 +131,6 @@ const Material = (props: Store) => {
|
||||||
...values,
|
...values,
|
||||||
pid: values.pid ?? 0,
|
pid: values.pid ?? 0,
|
||||||
storage_cloumn: Number(values.storage_cloumn),
|
storage_cloumn: Number(values.storage_cloumn),
|
||||||
// supplie_piker: values.supplie_piker[0].name,
|
|
||||||
};
|
};
|
||||||
if (values.supplie_piker.length > 0) {
|
if (values.supplie_piker.length > 0) {
|
||||||
data.supplie_piker = values.supplie_piker[0].name;
|
data.supplie_piker = values.supplie_piker[0].name;
|
||||||
|
|
|
@ -77,5 +77,6 @@ export const defaultConfig = [
|
||||||
label: "物资图片",
|
label: "物资图片",
|
||||||
name: "supplie_piker",
|
name: "supplie_piker",
|
||||||
value: [],
|
value: [],
|
||||||
|
rules: [{ required: true, message: "请上传物资图片!" }],
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
import { useEffect, useState } from "react";
|
import { useEffect, useState } from "react";
|
||||||
import * as echarts from "echarts";
|
|
||||||
import "./pv.less";
|
import "./pv.less";
|
||||||
import { SnippetsTwoTone } from "@ant-design/icons";
|
import { SnippetsTwoTone } from "@ant-design/icons";
|
||||||
import { inject, observer } from "mobx-react";
|
import { inject, observer } from "mobx-react";
|
||||||
|
@ -9,61 +8,13 @@ import PoverDetail from "../poverDetail";
|
||||||
const PoverPage = (props: Store) => {
|
const PoverPage = (props: Store) => {
|
||||||
const { usrStore } = props;
|
const { usrStore } = props;
|
||||||
const [poverData, setPover] = useState<any>();
|
const [poverData, setPover] = useState<any>();
|
||||||
const [config, setConfig] = useState<any>({
|
|
||||||
militia_type: 1,
|
|
||||||
vet: 1,
|
|
||||||
o_type: "",
|
|
||||||
});
|
|
||||||
const initChart = (id: string, count: number, total: number) => {
|
|
||||||
var myChart = echarts.init(document.getElementById(id));
|
|
||||||
var option = {
|
|
||||||
title: {
|
|
||||||
text: count,
|
|
||||||
left: "center",
|
|
||||||
top: "center",
|
|
||||||
textStyle: {
|
|
||||||
color: "#fff",
|
|
||||||
fontSize: "18px",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
series: [
|
|
||||||
{
|
|
||||||
type: "pie",
|
|
||||||
radius: ["70%", "100%"],
|
|
||||||
center: ["50%", "50%"],
|
|
||||||
color: "#000",
|
|
||||||
data: [
|
|
||||||
{
|
|
||||||
value: count,
|
|
||||||
itemStyle: { color: "#254e99", borderRadius: 100 },
|
|
||||||
emphasis: { scale: false },
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: total,
|
|
||||||
itemStyle: { color: "#f5f5f5" },
|
|
||||||
emphasis: { scale: false },
|
|
||||||
},
|
|
||||||
],
|
|
||||||
label: {
|
|
||||||
show: false,
|
|
||||||
},
|
|
||||||
animationDelay: function (idx) {
|
|
||||||
return Math.random() * 200;
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
myChart.setOption(option);
|
|
||||||
};
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
usrStore.getPover().then((e) => {
|
usrStore.getPover().then((e) => {
|
||||||
initChart("pover_jg", e.data.o_type, e.data.total);
|
|
||||||
initChart("pover_jgs", e.data.o_types, e.data.total);
|
|
||||||
setPover(e.data);
|
setPover(e.data);
|
||||||
});
|
});
|
||||||
}, [usrStore]);
|
}, [usrStore]);
|
||||||
const serch = () => {
|
const serch = (configs) => {
|
||||||
usrStore.getPoverList(config);
|
usrStore.getPoverList(configs);
|
||||||
};
|
};
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
|
@ -75,34 +26,52 @@ const PoverPage = (props: Store) => {
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<div className="nav-header">
|
<div className="nav-header">
|
||||||
<div style={{ textAlign: "center", marginBottom: "20px" ,cursor:"pointer" }}>
|
<div className="pv-head-item">
|
||||||
|
<SnippetsTwoTone style={{ fontSize: 30 }} />
|
||||||
<div
|
<div
|
||||||
style={{ width: "150px", height: "100px" }}
|
|
||||||
id="pover_jgs"
|
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setConfig({
|
serch({
|
||||||
o_type: "01JAZAZDTHJE8FZ24GY9AJ758N",
|
|
||||||
size: 30,
|
|
||||||
offset: 1,
|
|
||||||
});
|
|
||||||
serch();
|
|
||||||
}}
|
|
||||||
></div>
|
|
||||||
<span style={{ color: "#fff" }}>机关单位</span>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
style={{ textAlign: "center", marginBottom: "20px" }}
|
|
||||||
onClick={() => {
|
|
||||||
setConfig({
|
|
||||||
o_type: "01JAZB1GVJED5R34V6Z8MBWER4",
|
o_type: "01JAZB1GVJED5R34V6Z8MBWER4",
|
||||||
size: 30,
|
size: 30,
|
||||||
offset: 1,
|
offset: 1,
|
||||||
});
|
});
|
||||||
serch();
|
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<div style={{ width: "150px", height: "100%" }} id="pover_jg"></div>
|
<div>{poverData?.o_types}人</div>
|
||||||
<span style={{ color: "#fff" }}>企事业单位</span>
|
<span>机关单位</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div style={{ height: "10px" }}></div>
|
||||||
|
<div className="pv-head-item">
|
||||||
|
<SnippetsTwoTone style={{ fontSize: 30 }} />
|
||||||
|
<div
|
||||||
|
onClick={() => {
|
||||||
|
serch({
|
||||||
|
o_type: "01JAZAZDTHJE8FZ24GY9AJ758N",
|
||||||
|
size: 30,
|
||||||
|
offset: 1,
|
||||||
|
});
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div>{poverData?.o_type}人</div>
|
||||||
|
<span>企事业单位</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div style={{ height: "10px" }}></div>
|
||||||
|
<div className="pv-head-item">
|
||||||
|
<SnippetsTwoTone style={{ fontSize: 30 }} />
|
||||||
|
<div
|
||||||
|
onClick={() => {
|
||||||
|
serch({
|
||||||
|
o_type: "01JAZB1QSM13C7PHZBTSDE1VXE",
|
||||||
|
size: 30,
|
||||||
|
offset: 1,
|
||||||
|
});
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div>{poverData?.news_num}人</div>
|
||||||
|
<span>新兴领域</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="nav-content">
|
<div className="nav-content">
|
||||||
|
@ -115,12 +84,11 @@ const PoverPage = (props: Store) => {
|
||||||
<div
|
<div
|
||||||
className="pv-head-item"
|
className="pv-head-item"
|
||||||
onClick={(e) => {
|
onClick={(e) => {
|
||||||
setConfig({
|
serch({
|
||||||
militia_type: 1,
|
militia_type: 1,
|
||||||
size: 30,
|
size: 30,
|
||||||
offset: 1,
|
offset: 1,
|
||||||
});
|
});
|
||||||
serch();
|
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<SnippetsTwoTone style={{ fontSize: 30 }} />
|
<SnippetsTwoTone style={{ fontSize: 30 }} />
|
||||||
|
@ -133,12 +101,11 @@ const PoverPage = (props: Store) => {
|
||||||
<SnippetsTwoTone style={{ fontSize: 30 }} />
|
<SnippetsTwoTone style={{ fontSize: 30 }} />
|
||||||
<div
|
<div
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setConfig({
|
serch({
|
||||||
militia_type: 2,
|
militia_type: 2,
|
||||||
size: 30,
|
size: 30,
|
||||||
offset: 1,
|
offset: 1,
|
||||||
});
|
});
|
||||||
serch();
|
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<div>{poverData?.easy_meber}人</div>
|
<div>{poverData?.easy_meber}人</div>
|
||||||
|
@ -149,18 +116,32 @@ const PoverPage = (props: Store) => {
|
||||||
<SnippetsTwoTone style={{ fontSize: 30 }} />
|
<SnippetsTwoTone style={{ fontSize: 30 }} />
|
||||||
<div
|
<div
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setConfig({
|
serch({
|
||||||
vet: 1,
|
vet: 1,
|
||||||
size: 30,
|
size: 30,
|
||||||
offset: 1,
|
offset: 1,
|
||||||
});
|
});
|
||||||
serch();
|
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<div>{poverData?.vet_meber}人</div>
|
<div>{poverData?.vet_meber}人</div>
|
||||||
<span>退役军人</span>
|
<span>退役军人</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div className="pv-head-item">
|
||||||
|
<SnippetsTwoTone style={{ fontSize: 30 }} />
|
||||||
|
<div
|
||||||
|
onClick={() => {
|
||||||
|
serch({
|
||||||
|
grid_user: 1,
|
||||||
|
size: 30,
|
||||||
|
offset: 1,
|
||||||
|
});
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div>{poverData?.grid_meber}人</div>
|
||||||
|
<span>网格员</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="content-right">
|
<div className="content-right">
|
||||||
|
|
|
@ -14,7 +14,6 @@
|
||||||
justify-content: start;
|
justify-content: start;
|
||||||
}
|
}
|
||||||
.content-right {
|
.content-right {
|
||||||
width: 85%;
|
|
||||||
height: 100%;
|
height: 100%;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|
|
@ -16,16 +16,32 @@ export const studyColumns: ColumnsType<UserDataType> = [
|
||||||
dataIndex: "tel",
|
dataIndex: "tel",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "签到时间",
|
title: "上午签到时间",
|
||||||
dataIndex: "created_at",
|
dataIndex: "created_at",
|
||||||
render(leave_start_time) {
|
render(leave_start_time) {
|
||||||
|
if (!leave_start_time){
|
||||||
|
return "未签到";
|
||||||
|
}
|
||||||
return dayjs(leave_start_time).format("YYYY-MM-DD HH:mm");
|
return dayjs(leave_start_time).format("YYYY-MM-DD HH:mm");
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "签到地址",
|
title: "下午签到时间",
|
||||||
|
render(record) {
|
||||||
|
if (record.created_at === record.updated_at){
|
||||||
|
return "未签到";
|
||||||
|
}
|
||||||
|
return dayjs(record.created_at).format("YYYY-MM-DD HH:mm");
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "上午签到地址",
|
||||||
dataIndex: "address",
|
dataIndex: "address",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: "下午签到地址",
|
||||||
|
dataIndex: "pm_address",
|
||||||
|
},
|
||||||
// {
|
// {
|
||||||
// title: "经度",
|
// title: "经度",
|
||||||
// dataIndex: "long",
|
// dataIndex: "long",
|
||||||
|
@ -65,5 +81,4 @@ export const serchConfig = [
|
||||||
value: "",
|
value: "",
|
||||||
rules: [],
|
rules: [],
|
||||||
},
|
},
|
||||||
|
|
||||||
];
|
];
|
|
@ -1,10 +1,9 @@
|
||||||
import { FormType } from "@/components/form/interface";
|
import { FormType } from "@/components/form/interface";
|
||||||
import { UserDataType } from "@/model/userModel";
|
import { UserDataType } from "@/model/userModel";
|
||||||
import { ColumnsType } from "antd/lib/table";
|
import { ColumnsType } from "antd/lib/table";
|
||||||
import { Avatar, Image } from "antd";
|
import { Avatar, Image, Tooltip } from "antd";
|
||||||
import { getAgeByIDCard, getBirthDateAndGender } from "@/util/util";
|
import { getAgeByIDCard, getBirthDateAndGender } from "@/util/util";
|
||||||
export const defaultConfig =(team,per)=>
|
export const defaultConfig = (team, per) => [
|
||||||
[
|
|
||||||
{
|
{
|
||||||
type: FormType.input,
|
type: FormType.input,
|
||||||
label: "用户名",
|
label: "用户名",
|
||||||
|
@ -206,7 +205,6 @@ export const defaultConfig =(team,per)=>
|
||||||
value: "",
|
value: "",
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
type: FormType.date,
|
type: FormType.date,
|
||||||
label: "入伍时间",
|
label: "入伍时间",
|
||||||
|
@ -279,7 +277,9 @@ export const columns: ColumnsType<UserDataType> = [
|
||||||
{
|
{
|
||||||
title: "性别",
|
title: "性别",
|
||||||
width: 100,
|
width: 100,
|
||||||
render: (render) => <span>{getBirthDateAndGender(render.id_card)?.gender}</span>,
|
render: (render) => (
|
||||||
|
<span>{getBirthDateAndGender(render.id_card)?.gender}</span>
|
||||||
|
),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "年龄",
|
title: "年龄",
|
||||||
|
@ -291,7 +291,9 @@ export const columns: ColumnsType<UserDataType> = [
|
||||||
dataIndex: "head_img",
|
dataIndex: "head_img",
|
||||||
width: 150,
|
width: 150,
|
||||||
render: (head_img) => {
|
render: (head_img) => {
|
||||||
return <Avatar size={64} shape="square" src={<Image src={head_img}></Image>} />
|
return (
|
||||||
|
<Avatar size={64} shape="square" src={<Image src={head_img}></Image>} />
|
||||||
|
);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -351,7 +353,15 @@ export const columns: ColumnsType<UserDataType> = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "备注",
|
title: "备注",
|
||||||
width: 300,
|
|
||||||
dataIndex: "remark",
|
dataIndex: "remark",
|
||||||
|
ellipsis: {
|
||||||
|
showTitle: false,
|
||||||
|
},
|
||||||
|
width:200,
|
||||||
|
render: (remark) => (
|
||||||
|
<Tooltip placement="topLeft" title={remark}>
|
||||||
|
{remark}
|
||||||
|
</Tooltip>
|
||||||
|
),
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -10,6 +10,7 @@ class HomeConfig {
|
||||||
static tr: string = "/v1/public/tr"
|
static tr: string = "/v1/public/tr"
|
||||||
static af: string = "/v1/public/af"
|
static af: string = "/v1/public/af"
|
||||||
static mm: string = "/v1/public/mm"
|
static mm: string = "/v1/public/mm"
|
||||||
|
static mmb: string = "/v1/public/mmb"
|
||||||
static rm: string = "/v1/public/rm"
|
static rm: string = "/v1/public/rm"
|
||||||
static ae: string = "/v1/public/ae"
|
static ae: string = "/v1/public/ae"
|
||||||
static todo: string = "/v1/public/todo"
|
static todo: string = "/v1/public/todo"
|
||||||
|
@ -63,6 +64,9 @@ class HomeStore extends BaseStore<TagDataType> {
|
||||||
async getRm() {
|
async getRm() {
|
||||||
return await baseHttp.get(HomeConfig.rm, {});
|
return await baseHttp.get(HomeConfig.rm, {});
|
||||||
}
|
}
|
||||||
|
async getmmb() {
|
||||||
|
return await baseHttp.get(HomeConfig.mmb, {});
|
||||||
|
}
|
||||||
async getAe() {
|
async getAe() {
|
||||||
return await baseHttp.get(HomeConfig.ae, {});
|
return await baseHttp.get(HomeConfig.ae, {});
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue