feat: 初始化企业信息页面

develop2
donghao 1 year ago
parent ef52a7bb74
commit 0b8f2759bc

@ -2,7 +2,7 @@
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-03-27 14:56:27
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-04-01 19:21:12
* @LastEditTime: 2024-04-19 16:51:36
* @FilePath: \general-ai-manage\config\proxy.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
@ -29,7 +29,28 @@ export default {
// changeOrigin: true,
// },
// },
dev: {
// localhost:8000/api/** -> https://preview.pro.ant.design/api/**
'/api/v1/': {
// 要代理的地址
target: 'http://192.168.10.94:8999/',
// target: 'https://www.baidu.com',
// 配置了这个可以从 http 代理到 https
// 依赖 origin 的功能可能需要这个,比如 cookie
changeOrigin: true,
secure: false,
},
// '/video_save_path/': {
// // 要代理的地址
// target: 'http://192.168.10.96/',
// // target: 'https://www.baidu.com',
// // 配置了这个可以从 http 代理到 https
// // 依赖 origin 的功能可能需要这个,比如 cookie
// changeOrigin: true,
// secure: false,
// },
},
/**
* @name
* @doc https://github.com/chimurai/http-proxy-middleware

@ -2,7 +2,7 @@
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-03-27 14:56:27
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-04-17 10:57:31
* @LastEditTime: 2024-04-19 14:51:38
* @FilePath: \general-ai-manage\config\routes.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
@ -116,36 +116,46 @@ export default [
],
},
{
name: 'realTime',
path: '/realTime',
name: 'businessInfo',
path: '/businessInfo',
access: 'canReadMenu',
routes: [
{
name: 'realTime-involved-list',
path: '/realTime/involved-list',
component: './RealTime/InvolvedList',
access: 'canReadMenu',
},
{
name: 'realTime-alarm-list',
path: '/realTime/alarm-list',
component: './RealTime/AlarmList',
access: 'canReadMenu',
},
{
name: 'realTime-alarm-rules',
path: '/realTime/alarm-rules',
component: './RealTime/AlarmRules',
access: 'canReadMenu',
},
{
name: 'realTime-device-list',
path: '/realTime/device-list',
component: './RealTime/DeviceList',
name: 'business-info-index',
path: '/businessInfo/index',
component: './Project/BusinessInfo',
access: 'canReadMenu',
},
// {
// name: 'realTime-alarm-list',
// path: '/realTime/alarm-list',
// component: './RealTime/AlarmList',
// access: 'canReadMenu',
// },
// {
// name: 'realTime-alarm-rules',
// path: '/realTime/alarm-rules',
// component: './RealTime/AlarmRules',
// access: 'canReadMenu',
// },
// {
// name: 'realTime-device-list',
// path: '/realTime/device-list',
// component: './RealTime/DeviceList',
// access: 'canReadMenu',
// },
],
},
{
path: '/',
redirect: '/home/business-project',
},
{
path: '*',
layout: false,
component: './404',
},
// test demo
{
path: '/admin',
name: 'admin',
@ -162,13 +172,4 @@ export default [
},
],
},
{
path: '/',
redirect: '/home/business-project',
},
{
path: '*',
layout: false,
component: './404',
},
];

@ -1,8 +1,8 @@
import { mockGetBusinessProjectData } from './pools/businessProjectData';
import { successMockApiProps } from './typing';
import { fetchCurrPageByList } from './utils/apiMock';
import { fetchCurrPageByList, fetchMockSuccessFullByOther } from './utils/apiMock';
export default {
// 实时分析告警列表分页
// 企业列表
'GET /api/businessProject/': async (req: Request, res: Response) => {
// get 使用 query 读取参数
const { page, pageSize } = req.query;
@ -14,4 +14,20 @@ export default {
};
res.json(resData);
},
// 企业详情
'GET /api/businessProject/detail': async (req: Request, res: Response) => {
// get 使用 query 读取参数
const { id } = req.query;
let finalData = {};
mockGetBusinessProjectData.data.results.forEach((item) => {
if (item.id === Number(id)) {
finalData = item;
// break;
}
});
const resData: successMockApiProps = fetchMockSuccessFullByOther({
data: finalData,
});
res.json(resData);
},
};

@ -2,7 +2,7 @@
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-04-02 15:42:40
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-04-09 17:47:57
* @LastEditTime: 2024-04-19 14:37:55
* @FilePath: \uighur-recognition-web2\mock\pools\warningRuleData.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
@ -18,67 +18,81 @@ export const mockGetBusinessProjectData = {
id: '1',
name: '一名科技有限公司', // 公司名称
address: '', // 公司地址
industry: '冶金制造业', // 公司所属行业
industry: 1002,
industryName: '制造业', // 公司所属行业
contacts: '', // 联系人
contactWay: '', // 联系方式
remark: '', // 简介
logo: '', // 企业logo
model_number: 3, // 模型数量
device_number: 1, // 设备数量
modelCount: 3, // 模型数量
deviceCount: 1, // 设备数量
create_time: '2024-01-22T10:59:37',
update_time: '2024-04-01T17:53:40',
},
{
id: '2',
name: '江川科技有限公司',
industry: '冶金制造业',
model_number: 2,
device_number: 3,
industry: 1002,
industryName: '制造业',
modelCount: 2,
deviceCount: 3,
create_time: '2024-01-22T10:59:37',
update_time: '2024-04-01T17:53:54',
},
{
id: '3',
name: '苏胜天信息科技有限公司',
industry: '互联网科技',
model_number: 1,
device_number: 1,
industry: 1001,
industryName: '互联网科技',
modelCount: 1,
deviceCount: 1,
create_time: '2024-01-22T10:58:57',
update_time: '2024-04-01T17:54:01',
province: '江苏省',
city: '南京市',
address: '雨花台区软件大道新华汇B4栋4楼', // 公司地址
contacts: '张三', // 联系人
contactWay: '17755551234', // 联系方式
remark:
'南京苏胜天信息科技有限公司成立于2016年拥有专业计算机视觉和深度学习方面的技术团队助力制造业工业检测实现智能化实现企业降本增效。公司核心技术是机器视觉算法致力于自动化成套视觉检测设备。 ',
},
{
id: '4',
name: '雅信视觉科技有限公司', // 公司名称
industry: '互联网科技',
model_number: 3, // 模型数量
device_number: 1, // 设备数量
industry: 1001,
industryName: '互联网科技',
modelCount: 3, // 模型数量
deviceCount: 1, // 设备数量
create_time: '2024-01-22T10:59:37',
update_time: '2024-04-01T17:53:40',
},
{
id: '5',
name: '超越科技有限公司',
industry: '互联网科技',
model_number: 2,
device_number: 3,
industry: 1001,
industryName: '互联网科技',
modelCount: 2,
deviceCount: 3,
create_time: '2024-01-22T10:59:37',
update_time: '2024-04-01T17:53:54',
},
{
id: '6',
name: '金怡工厂',
industry: '冶金制造业',
model_number: 1,
device_number: 1,
industry: 1002,
industryName: '冶金制造业',
modelCount: 1,
deviceCount: 1,
create_time: '2024-01-22T10:58:57',
update_time: '2024-04-01T17:54:01',
},
{
id: '7',
name: '乐乐五金制造',
industry: '冶金制造业',
model_number: 2,
device_number: 3,
industry: 1002,
industryName: '冶金制造业',
modelCount: 2,
deviceCount: 3,
create_time: '2024-01-22T10:59:37',
update_time: '2024-04-01T17:53:54',
},

@ -30,10 +30,10 @@ const getAccess = () => {
// 代码中会兼容本地 service mock 以及部署站点的静态数据
export default {
// 登录
'POST /api/base/login': async (req: Request, res: Response) => {
'POST /api/v1/login': async (req: Request, res: Response) => {
const { password, username, type } = req.body;
await waitTime(1000);
if (password === 'admin123' && username === 'admin') {
if (password === 'Sju2984?' && username === 'admin') {
const adminData: successMockApiProps = {
...fetchMockSuccessFullByOther(mockBaseLoginData),
};

@ -2,7 +2,7 @@
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-04-08 16:57:30
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-04-19 13:55:11
* @LastEditTime: 2024-04-19 14:24:57
* @FilePath: \general-ai-manage\src\pages\Project\BusinessProject\components\businessCard.tsx
* @Description:
*/
@ -31,7 +31,7 @@ const BusinessCard: React.FC<BusinessCardProps> = ({ info, renderActions }) => {
>
<div className="flex justify-between items-center pt-[8px]">
<div className="tag_box">
<div className="bg_tag_info single_line">{info?.industry}</div>
<div className="bg_tag_info single_line">{info?.industryName}</div>
</div>
<span className="pr-[14px]">
<TableActionCard renderActions={renderActions} maxActionCount={1}></TableActionCard>
@ -51,14 +51,14 @@ const BusinessCard: React.FC<BusinessCardProps> = ({ info, renderActions }) => {
<ModelCountIcon></ModelCountIcon>
</span>
<span className="label_box"></span>
<span>{info.model_number}</span>
<span>{info.modelCount}</span>
</li>
<li className="flex items-center">
<span className="icon_box mr-[4px]">
<DeviceCountIcon></DeviceCountIcon>
</span>
<span className="label_box"> </span>
<span>{info.device_number}</span>
<span>{info.deviceCount}</span>
</li>
<li className="flex items-center">
<span className="icon_box mr-[4px]">

@ -190,7 +190,7 @@ const Login: React.FC = () => {
const [form] = Form.useForm<Record<string, any>>();
useEffect(() => {
form.setFieldsValue({ username: 'admin', password: 'admin123' });
form.setFieldsValue({ username: 'admin', password: 'Sju2984?' });
// console.log(form.getFieldsValue(), 'login_form');
}, []);

@ -2,7 +2,7 @@
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-04-01 11:20:09
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-04-01 19:09:53
* @LastEditTime: 2024-04-19 16:36:08
* @FilePath: \uighur-recognition-web2\src\services\system\Base.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
@ -23,7 +23,7 @@ export async function postBaseCaptcha(options?: { [key: string]: any }) {
/** 用户登录 POST /base/login */
export async function postBaseLogin(body: API.Login, options?: { [key: string]: any }) {
return request<API.Response & { data?: API.LoginResponse; msg?: string }>(`/api/base/login`, {
return request<API.Response & { data?: API.LoginResponse; msg?: string }>(`/api/v1/login`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',

@ -2,7 +2,7 @@
* @Author: donghao donghao@supervision.ltd
* @Date: 2024-04-09 13:46:44
* @LastEditors: donghao donghao@supervision.ltd
* @LastEditTime: 2024-04-17 14:09:35
* @LastEditTime: 2024-04-19 14:48:49
* @FilePath: \general-ai-manage\src\services\testApi\businessProject.ts
* @Description: mock
*/
@ -26,3 +26,22 @@ export async function getBusinessProject(
...(options || {}),
});
}
// 企业详情
export async function getBusinessDetail(
body: Record<string, any>, //
options?: { [key: string]: any },
) {
return request<API.Response & { data?: API.PageResult; msg?: string }>(
`/api/businessProject/detail/`,
{
method: 'GET',
headers: {
'Content-Type': 'application/json',
},
params: {
...body,
},
...(options || {}),
},
);
}

Loading…
Cancel
Save