Commit 619f1ac4abb82ab00ad32708ce4ece697b0badcf

Authored by zhongnanhuang
1 parent 895ac433

feat: update

package-lock.json
@@ -16,7 +16,8 @@ @@ -16,7 +16,8 @@
16 "axios": "^1.6.1", 16 "axios": "^1.6.1",
17 "base-64": "^1.0.0", 17 "base-64": "^1.0.0",
18 "lodash": "^4.17.21", 18 "lodash": "^4.17.21",
19 - "print-js": "^1.6.0" 19 + "print-js": "^1.6.0",
  20 + "react-infinite-scroll-component": "^6.1.0"
20 }, 21 },
21 "devDependencies": { 22 "devDependencies": {
22 "@inspir/pluto": "^1.0.5", 23 "@inspir/pluto": "^1.0.5",
@@ -19752,6 +19753,25 @@ @@ -19752,6 +19753,25 @@
19752 "react-dom": "^16.6.0 || ^17.0.0 || ^18.0.0" 19753 "react-dom": "^16.6.0 || ^17.0.0 || ^18.0.0"
19753 } 19754 }
19754 }, 19755 },
  19756 + "node_modules/react-infinite-scroll-component": {
  19757 + "version": "6.1.0",
  19758 + "resolved": "https://registry.npmjs.org/react-infinite-scroll-component/-/react-infinite-scroll-component-6.1.0.tgz",
  19759 + "integrity": "sha512-SQu5nCqy8DxQWpnUVLx7V7b7LcA37aM7tvoWjTLZp1dk6EJibM5/4EJKzOnl07/BsM1Y40sKLuqjCwwH/xV0TQ==",
  19760 + "dependencies": {
  19761 + "throttle-debounce": "^2.1.0"
  19762 + },
  19763 + "peerDependencies": {
  19764 + "react": ">=16.0.0"
  19765 + }
  19766 + },
  19767 + "node_modules/react-infinite-scroll-component/node_modules/throttle-debounce": {
  19768 + "version": "2.3.0",
  19769 + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-2.3.0.tgz",
  19770 + "integrity": "sha512-H7oLPV0P7+jgvrk+6mwwwBDmxTaxnu9HMXmloNLXwnNO0ZxZ31Orah2n8lU1eMPvsaowP2CX+USCgyovXfdOFQ==",
  19771 + "engines": {
  19772 + "node": ">=8"
  19773 + }
  19774 + },
19755 "node_modules/react-is": { 19775 "node_modules/react-is": {
19756 "version": "16.13.1", 19776 "version": "16.13.1",
19757 "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", 19777 "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
@@ -40196,6 +40216,21 @@ @@ -40196,6 +40216,21 @@
40196 "shallowequal": "^1.1.0" 40216 "shallowequal": "^1.1.0"
40197 } 40217 }
40198 }, 40218 },
  40219 + "react-infinite-scroll-component": {
  40220 + "version": "6.1.0",
  40221 + "resolved": "https://registry.npmjs.org/react-infinite-scroll-component/-/react-infinite-scroll-component-6.1.0.tgz",
  40222 + "integrity": "sha512-SQu5nCqy8DxQWpnUVLx7V7b7LcA37aM7tvoWjTLZp1dk6EJibM5/4EJKzOnl07/BsM1Y40sKLuqjCwwH/xV0TQ==",
  40223 + "requires": {
  40224 + "throttle-debounce": "^2.1.0"
  40225 + },
  40226 + "dependencies": {
  40227 + "throttle-debounce": {
  40228 + "version": "2.3.0",
  40229 + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-2.3.0.tgz",
  40230 + "integrity": "sha512-H7oLPV0P7+jgvrk+6mwwwBDmxTaxnu9HMXmloNLXwnNO0ZxZ31Orah2n8lU1eMPvsaowP2CX+USCgyovXfdOFQ=="
  40231 + }
  40232 + }
  40233 + },
40199 "react-is": { 40234 "react-is": {
40200 "version": "16.13.1", 40235 "version": "16.13.1",
40201 "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", 40236 "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
package.json
@@ -21,7 +21,8 @@ @@ -21,7 +21,8 @@
21 "axios": "^1.6.1", 21 "axios": "^1.6.1",
22 "base-64": "^1.0.0", 22 "base-64": "^1.0.0",
23 "lodash": "^4.17.21", 23 "lodash": "^4.17.21",
24 - "print-js": "^1.6.0" 24 + "print-js": "^1.6.0",
  25 + "react-infinite-scroll-component": "^6.1.0"
25 }, 26 },
26 "devDependencies": { 27 "devDependencies": {
27 "@inspir/pluto": "^1.0.5", 28 "@inspir/pluto": "^1.0.5",
src/pages/Order/components/MessageListDrawer.tsx 0 → 100644
  1 +import { RESPONSE_CODE } from '@/constants/enum';
  2 +import { postOrderErpMessageQueryMyMessage } from '@/services';
  3 +import { formatDateTime, getUserInfo } from '@/utils';
  4 +import { UserOutlined } from '@ant-design/icons';
  5 +import { Avatar, Badge, Divider, Drawer, Flex, List, Skeleton } from 'antd';
  6 +import { useEffect, useState } from 'react';
  7 +import InfiniteScroll from 'react-infinite-scroll-component';
  8 +
  9 +export default ({ setVisible }) => {
  10 + const userInfo = getUserInfo();
  11 + const current = useState<number>(1); //当前页码
  12 + const [total, setTotal] = useState(0);
  13 + const [messageListData, setMessageListData] = useState<any[]>([]); //列表数据
  14 +
  15 + /**
  16 + * 获取消息列表
  17 + */
  18 + async function getMessageListData() {
  19 + let res = await postOrderErpMessageQueryMyMessage({
  20 + data: { username: userInfo.username, current: current[0] },
  21 + });
  22 + if (res && res.result === RESPONSE_CODE.SUCCESS) {
  23 + setMessageListData([...messageListData, ...res?.data?.data]);
  24 + setTotal(res?.data?.total);
  25 + }
  26 + }
  27 +
  28 + /**
  29 + * 跳转到订单列表
  30 + */
  31 + function toOrderList(mainOrderId: any) {
  32 + window.open('/order?id=' + mainOrderId, '_blank');
  33 + }
  34 +
  35 + function renderTarget() {
  36 + document.getElementsByClassName('ant-drawer-body')[0].id = 'scrollableDiv';
  37 + return document.getElementsByClassName('ant-drawer-body')[0];
  38 + }
  39 +
  40 + useEffect(() => {
  41 + getMessageListData();
  42 + }, []);
  43 +
  44 + return (
  45 + <>
  46 + <Drawer
  47 + title="消息列表"
  48 + onClose={() => {
  49 + setVisible(false);
  50 + }}
  51 + open={true}
  52 + width={450}
  53 + styles={{ body: { paddingTop: 0 } }}
  54 + >
  55 + <InfiniteScroll
  56 + dataLength={messageListData.length}
  57 + next={getMessageListData}
  58 + hasMore={messageListData.length < total}
  59 + loader={<Skeleton avatar paragraph={{ rows: 1 }} active />}
  60 + endMessage={<Divider plain>没有更多消息了 🤐</Divider>}
  61 + scrollableTarget={renderTarget}
  62 + >
  63 + <List
  64 + dataSource={messageListData}
  65 + renderItem={(item) => (
  66 + <List.Item key={item.id}>
  67 + <List.Item.Meta
  68 + avatar={
  69 + <Badge dot={item.unreadNum > 0}>
  70 + <Avatar shape="square" icon={<UserOutlined />} />
  71 + </Badge>
  72 + }
  73 + />
  74 + <Flex
  75 + vertical
  76 + className="hover:cursor-pointer"
  77 + onClick={() => {
  78 + toOrderList(item.mainOrderId);
  79 + }}
  80 + >
  81 + <Flex>
  82 + <div>
  83 + {item.content}
  84 + <span className="text-[#8C8C8C]">
  85 + (点击跳转到对应主订单)
  86 + </span>
  87 + </div>
  88 + </Flex>
  89 + <Flex>
  90 + <span className="text-xs text-[#8C8C8C] pt-1">
  91 + {formatDateTime(item.createTime)}
  92 + </span>
  93 + </Flex>
  94 + </Flex>
  95 + </List.Item>
  96 + )}
  97 + />
  98 + </InfiniteScroll>
  99 + </Drawer>
  100 + </>
  101 + );
  102 +};
src/pages/Order/index.tsx
@@ -3,6 +3,7 @@ import { RESPONSE_CODE } from &#39;@/constants/enum&#39;; @@ -3,6 +3,7 @@ import { RESPONSE_CODE } from &#39;@/constants/enum&#39;;
3 import { 3 import {
4 postKingdeeRepSalBillOutbound, 4 postKingdeeRepSalBillOutbound,
5 postKingdeeRepSalOrderSave, 5 postKingdeeRepSalOrderSave,
  6 + postOrderErpMessageGetUnreadNum,
6 postServiceOrderCancelSend, 7 postServiceOrderCancelSend,
7 postServiceOrderNoNeedSend, 8 postServiceOrderNoNeedSend,
8 postServiceOrderOrderCancel, 9 postServiceOrderOrderCancel,
@@ -25,6 +26,7 @@ import { @@ -25,6 +26,7 @@ import {
25 import { getReceivingCompanyOptions } from '@/utils/order'; 26 import { getReceivingCompanyOptions } from '@/utils/order';
26 import { getUserInfo } from '@/utils/user'; 27 import { getUserInfo } from '@/utils/user';
27 import { 28 import {
  29 + BellOutlined,
28 ClockCircleTwoTone, 30 ClockCircleTwoTone,
29 ContainerTwoTone, 31 ContainerTwoTone,
30 CopyOutlined, 32 CopyOutlined,
@@ -44,6 +46,7 @@ import { @@ -44,6 +46,7 @@ import {
44 import { history } from '@umijs/max'; 46 import { history } from '@umijs/max';
45 import { 47 import {
46 Avatar, 48 Avatar,
  49 + Badge,
47 Button, 50 Button,
48 Checkbox, 51 Checkbox,
49 Divider, 52 Divider,
@@ -76,6 +79,7 @@ import FinancialMergeDrawer from &#39;./components/FinancialMergeDrawer&#39;; @@ -76,6 +79,7 @@ import FinancialMergeDrawer from &#39;./components/FinancialMergeDrawer&#39;;
76 import FinancialReceiptsModal from './components/FinancialReceiptsModal'; 79 import FinancialReceiptsModal from './components/FinancialReceiptsModal';
77 import HistoryModal from './components/HistoryModal'; 80 import HistoryModal from './components/HistoryModal';
78 import ImportModal from './components/ImportModal'; 81 import ImportModal from './components/ImportModal';
  82 +import MessageListDrawer from './components/MessageListDrawer';
79 import ModifiedDiffModal from './components/ModifiedDiffModal'; 83 import ModifiedDiffModal from './components/ModifiedDiffModal';
80 import OrderDrawer from './components/OrderDrawer'; 84 import OrderDrawer from './components/OrderDrawer';
81 import OrderNotesEditModal from './components/OrderNotesEditModal'; 85 import OrderNotesEditModal from './components/OrderNotesEditModal';
@@ -146,6 +150,8 @@ const OrderPage = () =&gt; { @@ -146,6 +150,8 @@ const OrderPage = () =&gt; {
146 useState<boolean>(false); 150 useState<boolean>(false);
147 const [productionTimeModalVisible, setProductionTimeModalVisible] = 151 const [productionTimeModalVisible, setProductionTimeModalVisible] =
148 useState<boolean>(false); 152 useState<boolean>(false);
  153 + const [messageListDrawerVisible, setMessageListDrawerVisible] =
  154 + useState<boolean>(false);
149 const [deliverVisible, setDeliverVisible] = useState<boolean>(false); 155 const [deliverVisible, setDeliverVisible] = useState<boolean>(false);
150 const [deliverInfoDrawerVisible, setDeliverInfoDrawerVisible] = 156 const [deliverInfoDrawerVisible, setDeliverInfoDrawerVisible] =
151 useState<boolean>(false); 157 useState<boolean>(false);
@@ -170,6 +176,7 @@ const OrderPage = () =&gt; { @@ -170,6 +176,7 @@ const OrderPage = () =&gt; {
170 const [currentOptMainId, setCurrentMainId] = useState<any>(undefined); //当前操作对象的主订单id 176 const [currentOptMainId, setCurrentMainId] = useState<any>(undefined); //当前操作对象的主订单id
171 const [curretnOptSubId, setCurretnOptSubId] = useState<any>(undefined); //当前操作对象的子订单id 177 const [curretnOptSubId, setCurretnOptSubId] = useState<any>(undefined); //当前操作对象的子订单id
172 const [subOrderCount, setSubOrderCount] = useState(0); 178 const [subOrderCount, setSubOrderCount] = useState(0);
  179 + const [unreadMsgNum, setUnreadMsgNum] = useState(0);
173 const [sorted, setSorted] = useState(false); 180 const [sorted, setSorted] = useState(false);
174 const mainTableRef = useRef<ActionType>(); 181 const mainTableRef = useRef<ActionType>();
175 const mainTableFormRef = useRef<ProFormInstance>(); 182 const mainTableFormRef = useRef<ProFormInstance>();
@@ -261,6 +268,13 @@ const OrderPage = () =&gt; { @@ -261,6 +268,13 @@ const OrderPage = () =&gt; {
261 } 268 }
262 269
263 /** 270 /**
  271 + * 打开消息弹窗
  272 + */
  273 + function openMessageDrawer() {
  274 + setMessageListDrawerVisible(true);
  275 + }
  276 +
  277 + /**
264 * 财务是否选中排序 278 * 财务是否选中排序
265 * @param e 279 * @param e
266 */ 280 */
@@ -3411,7 +3425,7 @@ const OrderPage = () =&gt; { @@ -3411,7 +3425,7 @@ const OrderPage = () =&gt; {
3411 message.error('请选择订单'); 3425 message.error('请选择订单');
3412 return; 3426 return;
3413 } 3427 }
3414 - let body = { flag: 30, ids: selectedMainOrderKeys }; 3428 + let body = { flag: 30, id: selectedMainOrderKeys };
3415 exportLoading(); 3429 exportLoading();
3416 orderExport('/api/service/order/export', body, exportLoadingDestory); 3430 orderExport('/api/service/order/export', body, exportLoadingDestory);
3417 }, 3431 },
@@ -3642,6 +3656,16 @@ const OrderPage = () =&gt; { @@ -3642,6 +3656,16 @@ const OrderPage = () =&gt; {
3642 return toolBtns; 3656 return toolBtns;
3643 } 3657 }
3644 3658
  3659 + /**
  3660 + * 获取当前用户未读消息条数
  3661 + */
  3662 + async function getUnreadMessageNum() {
  3663 + let res = await postOrderErpMessageGetUnreadNum();
  3664 + if (res && res.result === RESPONSE_CODE.SUCCESS) {
  3665 + setUnreadMsgNum(res.data);
  3666 + }
  3667 + }
  3668 +
3645 useEffect(() => { 3669 useEffect(() => {
3646 // 使用URLSearchParams来解析查询参数 3670 // 使用URLSearchParams来解析查询参数
3647 const params = new URLSearchParams(location.search); 3671 const params = new URLSearchParams(location.search);
@@ -3649,6 +3673,9 @@ const OrderPage = () =&gt; { @@ -3649,6 +3673,9 @@ const OrderPage = () =&gt; {
3649 if (id) { 3673 if (id) {
3650 mainTableFormRef.current?.setFieldValue('id', id); 3674 mainTableFormRef.current?.setFieldValue('id', id);
3651 } 3675 }
  3676 +
  3677 + //未读消息条数
  3678 + getUnreadMessageNum();
3652 }, []); 3679 }, []);
3653 3680
3654 return ( 3681 return (
@@ -3657,7 +3684,21 @@ const OrderPage = () =&gt; { @@ -3657,7 +3684,21 @@ const OrderPage = () =&gt; {
3657 header={{ 3684 header={{
3658 title: '订单管理', 3685 title: '订单管理',
3659 extra: [ 3686 extra: [
3660 - <Avatar key="0" style={{ verticalAlign: 'middle' }} size="large"> 3687 + <Badge
  3688 + key="message"
  3689 + count={unreadMsgNum}
  3690 + className="hover:cursor-pointer"
  3691 + >
  3692 + <BellOutlined
  3693 + style={{ fontSize: '24px' }}
  3694 + onClick={openMessageDrawer}
  3695 + />
  3696 + </Badge>,
  3697 + <Avatar
  3698 + key="0"
  3699 + style={{ verticalAlign: 'middle', marginLeft: '10px' }}
  3700 + size="large"
  3701 + >
3661 {userInfo?.username} 3702 {userInfo?.username}
3662 </Avatar>, 3703 </Avatar>,
3663 <Tag key="nickName">{userInfo?.nickName}</Tag>, 3704 <Tag key="nickName">{userInfo?.nickName}</Tag>,
@@ -4207,6 +4248,10 @@ const OrderPage = () =&gt; { @@ -4207,6 +4248,10 @@ const OrderPage = () =&gt; {
4207 }} 4248 }}
4208 /> 4249 />
4209 )} 4250 )}
  4251 +
  4252 + {messageListDrawerVisible && (
  4253 + <MessageListDrawer setVisible={setMessageListDrawerVisible} />
  4254 + )}
4210 {contextHolder} 4255 {contextHolder}
4211 </PageContainer> 4256 </PageContainer>
4212 ); 4257 );
src/services/definition.ts
@@ -805,6 +805,16 @@ export interface MeasureUnitListResRow { @@ -805,6 +805,16 @@ export interface MeasureUnitListResRow {
805 precision?: string; 805 precision?: string;
806 } 806 }
807 807
  808 +export interface MessageQueryDTO {
  809 + /** @format int32 */
  810 + current?: number;
  811 + /** @format int32 */
  812 + pageSize?: number;
  813 + /** @format int32 */
  814 + total?: number;
  815 + username?: string;
  816 +}
  817 +
808 export interface ModelAndView { 818 export interface ModelAndView {
809 empty?: boolean; 819 empty?: boolean;
810 model?: any; 820 model?: any;
src/services/request.ts
@@ -41,7 +41,7 @@ import type { @@ -41,7 +41,7 @@ import type {
41 MaterialStockRes, 41 MaterialStockRes,
42 MaterialUnitListRes, 42 MaterialUnitListRes,
43 MeasureUnitListRes, 43 MeasureUnitListRes,
44 - ModelAndView, 44 + MessageQueryDTO,
45 OrderAddVO, 45 OrderAddVO,
46 OrderAuditLogQueryVO, 46 OrderAuditLogQueryVO,
47 OrderBaseInfoQueryVO, 47 OrderBaseInfoQueryVO,
@@ -253,7 +253,9 @@ export interface GetErrorResponse { @@ -253,7 +253,9 @@ export interface GetErrorResponse {
253 * @description 253 * @description
254 * OK 254 * OK
255 */ 255 */
256 - 200: ModelAndView; 256 + 200: {
  257 + [propertyName: string]: any;
  258 + };
257 /** 259 /**
258 * @description 260 * @description
259 * Unauthorized 261 * Unauthorized
@@ -274,9 +276,9 @@ export interface GetErrorResponse { @@ -274,9 +276,9 @@ export interface GetErrorResponse {
274 export type GetErrorResponseSuccess = GetErrorResponse[200]; 276 export type GetErrorResponseSuccess = GetErrorResponse[200];
275 /** 277 /**
276 * @description 278 * @description
277 - * errorHtml 279 + * error
278 * @tags basic-error-controller 280 * @tags basic-error-controller
279 - * @produces text/html 281 + * @produces *
280 */ 282 */
281 export const getError = /* #__PURE__ */ (() => { 283 export const getError = /* #__PURE__ */ (() => {
282 const method = 'get'; 284 const method = 'get';
@@ -300,7 +302,9 @@ export interface PutErrorResponse { @@ -300,7 +302,9 @@ export interface PutErrorResponse {
300 * @description 302 * @description
301 * OK 303 * OK
302 */ 304 */
303 - 200: ModelAndView; 305 + 200: {
  306 + [propertyName: string]: any;
  307 + };
304 /** 308 /**
305 * @description 309 * @description
306 * Created 310 * Created
@@ -326,9 +330,9 @@ export interface PutErrorResponse { @@ -326,9 +330,9 @@ export interface PutErrorResponse {
326 export type PutErrorResponseSuccess = PutErrorResponse[200]; 330 export type PutErrorResponseSuccess = PutErrorResponse[200];
327 /** 331 /**
328 * @description 332 * @description
329 - * errorHtml 333 + * error
330 * @tags basic-error-controller 334 * @tags basic-error-controller
331 - * @produces text/html 335 + * @produces *
332 * @consumes application/json 336 * @consumes application/json
333 */ 337 */
334 export const putError = /* #__PURE__ */ (() => { 338 export const putError = /* #__PURE__ */ (() => {
@@ -353,7 +357,9 @@ export interface PostErrorResponse { @@ -353,7 +357,9 @@ export interface PostErrorResponse {
353 * @description 357 * @description
354 * OK 358 * OK
355 */ 359 */
356 - 200: ModelAndView; 360 + 200: {
  361 + [propertyName: string]: any;
  362 + };
357 /** 363 /**
358 * @description 364 * @description
359 * Created 365 * Created
@@ -379,9 +385,9 @@ export interface PostErrorResponse { @@ -379,9 +385,9 @@ export interface PostErrorResponse {
379 export type PostErrorResponseSuccess = PostErrorResponse[200]; 385 export type PostErrorResponseSuccess = PostErrorResponse[200];
380 /** 386 /**
381 * @description 387 * @description
382 - * errorHtml 388 + * error
383 * @tags basic-error-controller 389 * @tags basic-error-controller
384 - * @produces text/html 390 + * @produces *
385 * @consumes application/json 391 * @consumes application/json
386 */ 392 */
387 export const postError = /* #__PURE__ */ (() => { 393 export const postError = /* #__PURE__ */ (() => {
@@ -406,7 +412,9 @@ export interface DeleteErrorResponse { @@ -406,7 +412,9 @@ export interface DeleteErrorResponse {
406 * @description 412 * @description
407 * OK 413 * OK
408 */ 414 */
409 - 200: ModelAndView; 415 + 200: {
  416 + [propertyName: string]: any;
  417 + };
410 /** 418 /**
411 * @description 419 * @description
412 * No Content 420 * No Content
@@ -427,9 +435,9 @@ export interface DeleteErrorResponse { @@ -427,9 +435,9 @@ export interface DeleteErrorResponse {
427 export type DeleteErrorResponseSuccess = DeleteErrorResponse[200]; 435 export type DeleteErrorResponseSuccess = DeleteErrorResponse[200];
428 /** 436 /**
429 * @description 437 * @description
430 - * errorHtml 438 + * error
431 * @tags basic-error-controller 439 * @tags basic-error-controller
432 - * @produces text/html 440 + * @produces *
433 */ 441 */
434 export const deleteError = /* #__PURE__ */ (() => { 442 export const deleteError = /* #__PURE__ */ (() => {
435 const method = 'delete'; 443 const method = 'delete';
@@ -453,7 +461,9 @@ export interface OptionsErrorResponse { @@ -453,7 +461,9 @@ export interface OptionsErrorResponse {
453 * @description 461 * @description
454 * OK 462 * OK
455 */ 463 */
456 - 200: ModelAndView; 464 + 200: {
  465 + [propertyName: string]: any;
  466 + };
457 /** 467 /**
458 * @description 468 * @description
459 * No Content 469 * No Content
@@ -474,9 +484,9 @@ export interface OptionsErrorResponse { @@ -474,9 +484,9 @@ export interface OptionsErrorResponse {
474 export type OptionsErrorResponseSuccess = OptionsErrorResponse[200]; 484 export type OptionsErrorResponseSuccess = OptionsErrorResponse[200];
475 /** 485 /**
476 * @description 486 * @description
477 - * errorHtml 487 + * error
478 * @tags basic-error-controller 488 * @tags basic-error-controller
479 - * @produces text/html 489 + * @produces *
480 * @consumes application/json 490 * @consumes application/json
481 */ 491 */
482 export const optionsError = /* #__PURE__ */ (() => { 492 export const optionsError = /* #__PURE__ */ (() => {
@@ -501,7 +511,9 @@ export interface HeadErrorResponse { @@ -501,7 +511,9 @@ export interface HeadErrorResponse {
501 * @description 511 * @description
502 * OK 512 * OK
503 */ 513 */
504 - 200: ModelAndView; 514 + 200: {
  515 + [propertyName: string]: any;
  516 + };
505 /** 517 /**
506 * @description 518 * @description
507 * No Content 519 * No Content
@@ -522,9 +534,9 @@ export interface HeadErrorResponse { @@ -522,9 +534,9 @@ export interface HeadErrorResponse {
522 export type HeadErrorResponseSuccess = HeadErrorResponse[200]; 534 export type HeadErrorResponseSuccess = HeadErrorResponse[200];
523 /** 535 /**
524 * @description 536 * @description
525 - * errorHtml 537 + * error
526 * @tags basic-error-controller 538 * @tags basic-error-controller
527 - * @produces text/html 539 + * @produces *
528 * @consumes application/json 540 * @consumes application/json
529 */ 541 */
530 export const headError = /* #__PURE__ */ (() => { 542 export const headError = /* #__PURE__ */ (() => {
@@ -549,7 +561,9 @@ export interface PatchErrorResponse { @@ -549,7 +561,9 @@ export interface PatchErrorResponse {
549 * @description 561 * @description
550 * OK 562 * OK
551 */ 563 */
552 - 200: ModelAndView; 564 + 200: {
  565 + [propertyName: string]: any;
  566 + };
553 /** 567 /**
554 * @description 568 * @description
555 * No Content 569 * No Content
@@ -570,9 +584,9 @@ export interface PatchErrorResponse { @@ -570,9 +584,9 @@ export interface PatchErrorResponse {
570 export type PatchErrorResponseSuccess = PatchErrorResponse[200]; 584 export type PatchErrorResponseSuccess = PatchErrorResponse[200];
571 /** 585 /**
572 * @description 586 * @description
573 - * errorHtml 587 + * error
574 * @tags basic-error-controller 588 * @tags basic-error-controller
575 - * @produces text/html 589 + * @produces *
576 * @consumes application/json 590 * @consumes application/json
577 */ 591 */
578 export const patchError = /* #__PURE__ */ (() => { 592 export const patchError = /* #__PURE__ */ (() => {
@@ -3949,6 +3963,202 @@ export const postOrderErpMenusTree = /* #__PURE__ */ (() =&gt; { @@ -3949,6 +3963,202 @@ export const postOrderErpMenusTree = /* #__PURE__ */ (() =&gt; {
3949 return request; 3963 return request;
3950 })(); 3964 })();
3951 3965
  3966 +/** @description response type for postOrderErpMessageGetUnreadNum */
  3967 +export interface PostOrderErpMessageGetUnreadNumResponse {
  3968 + /**
  3969 + * @description
  3970 + * OK
  3971 + */
  3972 + 200: ServerResult;
  3973 + /**
  3974 + * @description
  3975 + * Created
  3976 + */
  3977 + 201: any;
  3978 + /**
  3979 + * @description
  3980 + * Unauthorized
  3981 + */
  3982 + 401: any;
  3983 + /**
  3984 + * @description
  3985 + * Forbidden
  3986 + */
  3987 + 403: any;
  3988 + /**
  3989 + * @description
  3990 + * Not Found
  3991 + */
  3992 + 404: any;
  3993 +}
  3994 +
  3995 +export type PostOrderErpMessageGetUnreadNumResponseSuccess =
  3996 + PostOrderErpMessageGetUnreadNumResponse[200];
  3997 +/**
  3998 + * @description
  3999 + * getUnreadNum
  4000 + * @tags message-controller
  4001 + * @produces *
  4002 + * @consumes application/json
  4003 + */
  4004 +export const postOrderErpMessageGetUnreadNum = /* #__PURE__ */ (() => {
  4005 + const method = 'post';
  4006 + const url = '/order/erp/message/getUnreadNum';
  4007 + function request(): Promise<PostOrderErpMessageGetUnreadNumResponseSuccess> {
  4008 + return requester(request.url, {
  4009 + method: request.method,
  4010 + }) as unknown as Promise<PostOrderErpMessageGetUnreadNumResponseSuccess>;
  4011 + }
  4012 +
  4013 + /** http method */
  4014 + request.method = method;
  4015 + /** request url */
  4016 + request.url = url;
  4017 + return request;
  4018 +})();
  4019 +
  4020 +/** @description request parameter type for postOrderErpMessageQueryMyMessage */
  4021 +export interface PostOrderErpMessageQueryMyMessageOption {
  4022 + /**
  4023 + * @description
  4024 + * messageQueryDTO
  4025 + */
  4026 + body: {
  4027 + /**
  4028 + @description
  4029 + messageQueryDTO */
  4030 + messageQueryDTO: MessageQueryDTO;
  4031 + };
  4032 +}
  4033 +
  4034 +/** @description response type for postOrderErpMessageQueryMyMessage */
  4035 +export interface PostOrderErpMessageQueryMyMessageResponse {
  4036 + /**
  4037 + * @description
  4038 + * OK
  4039 + */
  4040 + 200: ServerResult;
  4041 + /**
  4042 + * @description
  4043 + * Created
  4044 + */
  4045 + 201: any;
  4046 + /**
  4047 + * @description
  4048 + * Unauthorized
  4049 + */
  4050 + 401: any;
  4051 + /**
  4052 + * @description
  4053 + * Forbidden
  4054 + */
  4055 + 403: any;
  4056 + /**
  4057 + * @description
  4058 + * Not Found
  4059 + */
  4060 + 404: any;
  4061 +}
  4062 +
  4063 +export type PostOrderErpMessageQueryMyMessageResponseSuccess =
  4064 + PostOrderErpMessageQueryMyMessageResponse[200];
  4065 +/**
  4066 + * @description
  4067 + * queryMyMessage
  4068 + * @tags message-controller
  4069 + * @produces *
  4070 + * @consumes application/json
  4071 + */
  4072 +export const postOrderErpMessageQueryMyMessage = /* #__PURE__ */ (() => {
  4073 + const method = 'post';
  4074 + const url = '/order/erp/message/queryMyMessage';
  4075 + function request(
  4076 + option: PostOrderErpMessageQueryMyMessageOption,
  4077 + ): Promise<PostOrderErpMessageQueryMyMessageResponseSuccess> {
  4078 + return requester(request.url, {
  4079 + method: request.method,
  4080 + ...option,
  4081 + }) as unknown as Promise<PostOrderErpMessageQueryMyMessageResponseSuccess>;
  4082 + }
  4083 +
  4084 + /** http method */
  4085 + request.method = method;
  4086 + /** request url */
  4087 + request.url = url;
  4088 + return request;
  4089 +})();
  4090 +
  4091 +/** @description request parameter type for postOrderErpMessageRead */
  4092 +export interface PostOrderErpMessageReadOption {
  4093 + /**
  4094 + * @description
  4095 + * ids
  4096 + */
  4097 + body: {
  4098 + /**
  4099 + @description
  4100 + ids */
  4101 + ids: Array<number>;
  4102 + };
  4103 +}
  4104 +
  4105 +/** @description response type for postOrderErpMessageRead */
  4106 +export interface PostOrderErpMessageReadResponse {
  4107 + /**
  4108 + * @description
  4109 + * OK
  4110 + */
  4111 + 200: ServerResult;
  4112 + /**
  4113 + * @description
  4114 + * Created
  4115 + */
  4116 + 201: any;
  4117 + /**
  4118 + * @description
  4119 + * Unauthorized
  4120 + */
  4121 + 401: any;
  4122 + /**
  4123 + * @description
  4124 + * Forbidden
  4125 + */
  4126 + 403: any;
  4127 + /**
  4128 + * @description
  4129 + * Not Found
  4130 + */
  4131 + 404: any;
  4132 +}
  4133 +
  4134 +export type PostOrderErpMessageReadResponseSuccess =
  4135 + PostOrderErpMessageReadResponse[200];
  4136 +/**
  4137 + * @description
  4138 + * queryMyMessage
  4139 + * @tags message-controller
  4140 + * @produces *
  4141 + * @consumes application/json
  4142 + */
  4143 +export const postOrderErpMessageRead = /* #__PURE__ */ (() => {
  4144 + const method = 'post';
  4145 + const url = '/order/erp/message/read';
  4146 + function request(
  4147 + option: PostOrderErpMessageReadOption,
  4148 + ): Promise<PostOrderErpMessageReadResponseSuccess> {
  4149 + return requester(request.url, {
  4150 + method: request.method,
  4151 + ...option,
  4152 + }) as unknown as Promise<PostOrderErpMessageReadResponseSuccess>;
  4153 + }
  4154 +
  4155 + /** http method */
  4156 + request.method = method;
  4157 + /** request url */
  4158 + request.url = url;
  4159 + return request;
  4160 +})();
  4161 +
3952 /** @description request parameter type for postOrderErpOptLogListByPage */ 4162 /** @description request parameter type for postOrderErpOptLogListByPage */
3953 export interface PostOrderErpOptLogListByPageOption { 4163 export interface PostOrderErpOptLogListByPageOption {
3954 /** 4164 /**