diff --git a/src/app.ts b/src/app.ts index 26e122d..5d0ce4b 100644 --- a/src/app.ts +++ b/src/app.ts @@ -15,9 +15,10 @@ export async function getInitialState(): Promise<{ // 给子应用暴露的方法 export const useQiankunStateForSlave = useFatherAction; -const hostname = location.hostname; - -console.log('APP_ENV', APP_ENV); +/** + * 单端口模式 - 兼容 80 端口 + */ +const hostname = location.port ? `${location.hostname}:${location.port}` : location.hostname export const qiankun = { apps: [ @@ -25,7 +26,7 @@ export const qiankun = { name: 'cabinet', // 盒子管理 entry: APP_ENV === 'production' - ? `//${hostname}:30058/cabinet/` + ? `//${hostname}/cabinet/` : '//localhost:30088/', props: {}, singular: false, @@ -35,7 +36,7 @@ export const qiankun = { name: 'video', // AI 智能分析仓 entry: APP_ENV === 'production' - ? `//${hostname}:30058/video/` + ? `//${hostname}/video/` : '//localhost:30068/', singular: false, credentials: true, @@ -44,7 +45,7 @@ export const qiankun = { name: 'algorithm', // AI 算法分析 entry: APP_ENV === 'production' - ? `//${hostname}:30058/algorithm/` + ? `//${hostname}/algorithm/` : '//localhost:30078/', singular: false, credentials: true, @@ -53,7 +54,7 @@ export const qiankun = { name: 'material', // 物料库 entry: APP_ENV === 'production' - ? `//${hostname}:30058/material/` + ? `//${hostname}/material/` : '//localhost:30098/', singular: false, credentials: true, diff --git a/src/layouts/index.tsx b/src/layouts/index.tsx index c9480c1..e4b51fc 100644 --- a/src/layouts/index.tsx +++ b/src/layouts/index.tsx @@ -16,12 +16,12 @@ const Layout = () => { - (location.href = 'http://10.0.0.222:30098/communal-cabinets') + (location.href = 'http://10.0.0.204:30080/materials') } /> (location.href = 'http://10.0.0.222')} + onClick={() => (location.href = 'http://10.0.0.204:30080')} /> } /> diff --git a/src/pages/demo/Access/index.tsx b/src/pages/demo/Access/index.tsx deleted file mode 100644 index 248b47f..0000000 --- a/src/pages/demo/Access/index.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { PageContainer } from '@ant-design/pro-components'; -import { Access, useAccess } from '@umijs/max'; -import { Button } from 'antd'; - -const AccessPage: React.FC = () => { - const access = useAccess(); - return ( - - - - - - ); -}; - -export default AccessPage; diff --git a/src/pages/demo/Table/components/CreateForm.tsx b/src/pages/demo/Table/components/CreateForm.tsx deleted file mode 100644 index e5233db..0000000 --- a/src/pages/demo/Table/components/CreateForm.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { Modal } from 'antd'; -import React, { PropsWithChildren } from 'react'; - -interface CreateFormProps { - modalVisible: boolean; - onCancel: () => void; -} - -const CreateForm: React.FC> = (props) => { - const { modalVisible, onCancel } = props; - - return ( - onCancel()} - footer={null} - > - {props.children} - - ); -}; - -export default CreateForm; diff --git a/src/pages/demo/Table/components/UpdateForm.tsx b/src/pages/demo/Table/components/UpdateForm.tsx deleted file mode 100644 index 32fecde..0000000 --- a/src/pages/demo/Table/components/UpdateForm.tsx +++ /dev/null @@ -1,138 +0,0 @@ -import { - ProFormDateTimePicker, - ProFormRadio, - ProFormSelect, - ProFormText, - ProFormTextArea, - StepsForm, -} from '@ant-design/pro-components'; -import { Modal } from 'antd'; -import React from 'react'; - -export interface FormValueType extends Partial { - target?: string; - template?: string; - type?: string; - time?: string; - frequency?: string; -} - -export interface UpdateFormProps { - onCancel: (flag?: boolean, formVals?: FormValueType) => void; - onSubmit: (values: FormValueType) => Promise; - updateModalVisible: boolean; - values: Partial; -} - -const UpdateForm: React.FC = (props) => ( - { - return ( - props.onCancel()} - > - {dom} - - ); - }} - onFinish={props.onSubmit} - > - - - - - - - - - - - - - - -); - -export default UpdateForm; diff --git a/src/pages/demo/Table/index.tsx b/src/pages/demo/Table/index.tsx deleted file mode 100644 index ac0efea..0000000 --- a/src/pages/demo/Table/index.tsx +++ /dev/null @@ -1,270 +0,0 @@ -import services from '@/services/demo'; -import { - ActionType, - FooterToolbar, - PageContainer, - ProDescriptions, - ProDescriptionsItemProps, - ProTable, -} from '@ant-design/pro-components'; -import { Button, Divider, Drawer, message } from 'antd'; -import React, { useRef, useState } from 'react'; -import CreateForm from './components/CreateForm'; -import UpdateForm, { FormValueType } from './components/UpdateForm'; - -const { addUser, queryUserList, deleteUser, modifyUser } = - services.UserController; - -/** - * 添加节点 - * @param fields - */ -const handleAdd = async (fields: API.UserInfo) => { - const hide = message.loading('正在添加'); - try { - await addUser({ ...fields }); - hide(); - message.success('添加成功'); - return true; - } catch (error) { - hide(); - message.error('添加失败请重试!'); - return false; - } -}; - -/** - * 更新节点 - * @param fields - */ -const handleUpdate = async (fields: FormValueType) => { - const hide = message.loading('正在配置'); - try { - await modifyUser( - { - userId: fields.id || '', - }, - { - name: fields.name || '', - nickName: fields.nickName || '', - email: fields.email || '', - }, - ); - hide(); - - message.success('配置成功'); - return true; - } catch (error) { - hide(); - message.error('配置失败请重试!'); - return false; - } -}; - -/** - * 删除节点 - * @param selectedRows - */ -const handleRemove = async (selectedRows: API.UserInfo[]) => { - const hide = message.loading('正在删除'); - if (!selectedRows) return true; - try { - await deleteUser({ - userId: selectedRows.find((row) => row.id)?.id || '', - }); - hide(); - message.success('删除成功,即将刷新'); - return true; - } catch (error) { - hide(); - message.error('删除失败,请重试'); - return false; - } -}; - -const TableList: React.FC = () => { - const [createModalVisible, handleModalVisible] = useState(false); - const [updateModalVisible, handleUpdateModalVisible] = - useState(false); - const [stepFormValues, setStepFormValues] = useState({}); - const actionRef = useRef(); - const [row, setRow] = useState(); - const [selectedRowsState, setSelectedRows] = useState([]); - const columns: ProDescriptionsItemProps[] = [ - { - title: '名称', - dataIndex: 'name', - tip: '名称是唯一的 key', - formItemProps: { - rules: [ - { - required: true, - message: '名称为必填项', - }, - ], - }, - }, - { - title: '昵称', - dataIndex: 'nickName', - valueType: 'text', - }, - { - title: '性别', - dataIndex: 'gender', - hideInForm: true, - valueEnum: { - 0: { text: '男', status: 'MALE' }, - 1: { text: '女', status: 'FEMALE' }, - }, - }, - { - title: '操作', - dataIndex: 'option', - valueType: 'option', - render: (_, record) => ( - <> - { - handleUpdateModalVisible(true); - setStepFormValues(record); - }} - > - 配置 - - - 订阅警报 - - ), - }, - ]; - - return ( - - - headerTitle="查询表格" - actionRef={actionRef} - rowKey="id" - search={{ - labelWidth: 120, - }} - toolBarRender={() => [ - , - ]} - request={async (params, sorter, filter) => { - const { data, success } = await queryUserList({ - ...params, - // FIXME: remove @ts-ignore - // @ts-ignore - sorter, - filter, - }); - return { - data: data?.list || [], - success, - }; - }} - columns={columns} - rowSelection={{ - onChange: (_, selectedRows) => setSelectedRows(selectedRows), - }} - /> - {selectedRowsState?.length > 0 && ( - - 已选择{' '} - {selectedRowsState.length}{' '} - 项   - - } - > - - - - )} - handleModalVisible(false)} - modalVisible={createModalVisible} - > - - onSubmit={async (value) => { - const success = await handleAdd(value); - if (success) { - handleModalVisible(false); - if (actionRef.current) { - actionRef.current.reload(); - } - } - }} - rowKey="id" - type="form" - columns={columns} - /> - - {stepFormValues && Object.keys(stepFormValues).length ? ( - { - const success = await handleUpdate(value); - if (success) { - handleUpdateModalVisible(false); - setStepFormValues({}); - if (actionRef.current) { - actionRef.current.reload(); - } - } - }} - onCancel={() => { - handleUpdateModalVisible(false); - setStepFormValues({}); - }} - updateModalVisible={updateModalVisible} - values={stepFormValues} - /> - ) : null} - - { - setRow(undefined); - }} - closable={false} - > - {row?.name && ( - - column={2} - title={row?.name} - request={async () => ({ - data: row || {}, - })} - params={{ - id: row?.name, - }} - columns={columns} - /> - )} - - - ); -}; - -export default TableList; diff --git a/src/utils/constants.ts b/src/utils/constants.ts index 2010dce..e69de29 100644 --- a/src/utils/constants.ts +++ b/src/utils/constants.ts @@ -1,4 +0,0 @@ -export const API_URL = - APP_ENV === 'production' - ? 'http://10.0.0.222:31300' - : 'http://10.0.0.222:31300'; diff --git a/src/utils/request.ts b/src/utils/request.ts deleted file mode 100644 index 740d86a..0000000 --- a/src/utils/request.ts +++ /dev/null @@ -1,86 +0,0 @@ -import type { RequestConfig } from '@umijs/max'; -import { API_URL } from './constants'; - -const doRequest: RequestConfig = { - timeout: 1000, - baseURL: API_URL, - errorConfig: { - errorHandler(error, opts) { - console.log('errorHandler', error, opts); - // if (opts?.skipErrorHandler) throw error - // try { - // const { res } = ctx; - // const d = await res.text(); - - // if (res.status === 401 && store.user.isLogin) { - // store.user.resetLoginState(); - // message.warning('登录过期,请重新登录!'); - // return; - // } - // const isEmptyRes = d === '' || d.replace(/\s/g,"")=== 'tokenisinvalid'; //有些后端接口成功会返回空 做下兼容 - // const body = !isEmptyRes ? JSON.parse(d || '{}') : d; - // const sessionCode = sessionStorage.getItem('zhst_errcode') || '{}' - // const ERROR_CODE = JSON.parse(sessionCode); - - // if (Number(res.status) === 200) { - // ctx.res = body; - // } else { - // // 先判断Grpc-Metadata-Errorx-Message - // let errMsg = ERROR_CODE[body.code]?.value || body.message || '您的网络发生异常,无法连接服务器' - // toast && message.error(errMsg || body); - // ctx.res = { - // code: body.code, - // message: errMsg - // }; - // } - - // } catch (error) { - // if (get(error, 'type') !== 'CustomError') { - // toast && message.error('您的网络发生异常,无法连接服务器'); - // } - // throw error; - // } - }, - errorThrower(res) { - console.log('res', res); - }, - }, - // 请求 - requestInterceptors: [ - // 一个二元组,第一个元素是 request 拦截器,第二个元素是错误处理 - [ - (url, options) => { - return { - url, - options: { - ...options, - headers: { - authorization: 'test', - // ...(refererSuffix ? { zhst_referer: `${baseUrl}${refererSuffix}` } : {}), - }, - }, - }; - }, - (error) => { - return Promise.reject(error); - }, - ], - ], - // 返回 - responseInterceptors: [ - // 一个二元组,第一个元素是 request 拦截器,第二个元素是错误处理 - [ - (response) => { - if (response.status !== 200) { - throw Error(JSON.stringify(response.data)); - } - return response; - }, - (error) => { - return Promise.reject(error); - }, - ], - ], -}; - -export default doRequest;