From cb69033b7e3d492f7944a8dbe009787999acd37b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com> Date: Mon, 13 Oct 2025 13:42:37 +0800 Subject: [PATCH] =?UTF-8?q?feat(dealer):=20=E6=B7=BB=E5=8A=A0=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E6=9C=88=E4=BB=BD=E7=AD=9B=E9=80=89=E5=92=8C=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E5=B1=95=E7=A4=BA=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 更新开发环境API地址为本地调试地址 -为订单模型添加结算金额、支付金额和月份字段- 在订单查询中使用resourceId替代userId并支持按月份筛选 - 在订单列表中展示订单号、客户名称、结算月份、结算电量等详细信息 - 添加日期选择器组件用于选择查询月份- 升级@nutui/nutui-react-taro依赖版本以支持新组件- 调整订单状态展示逻辑,显示结算金额和实发金额 --- config/env.ts | 2 +- package.json | 2 +- pnpm-lock.yaml | 29 +++++------ src/api/index.ts | 1 + src/api/shop/shopDealerOrder/model/index.ts | 8 +++ src/dealer/orders/index.tsx | 56 +++++++++++++++++---- 6 files changed, 73 insertions(+), 25 deletions(-) diff --git a/config/env.ts b/config/env.ts index de8e281..c3f95e2 100644 --- a/config/env.ts +++ b/config/env.ts @@ -2,7 +2,7 @@ export const ENV_CONFIG = { // 开发环境 development: { - API_BASE_URL: 'https://cms-api.websoft.top/api', + API_BASE_URL: 'http://127.0.0.1:9200/api', APP_NAME: '开发环境', DEBUG: 'true', }, diff --git a/package.json b/package.json index d5817f8..e501b9f 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "@nutui/icons-react-taro": "^2.0.1", "@nutui/nutui-biz": "1.0.0-beta.2", "@nutui/nutui-react": "^3.0.16", - "@nutui/nutui-react-taro": "^2.7.4", + "@nutui/nutui-react-taro": "^2.7.10", "@react-native/metro-config": "^0.73.2", "@tarojs/components": "4.0.8", "@tarojs/components-rn": "^4.1.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b4a357a..19e2980 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,8 +21,8 @@ importers: specifier: ^3.0.16 version: 3.0.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@nutui/nutui-react-taro': - specifier: ^2.7.4 - version: 2.7.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^2.7.10 + version: 2.7.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-native/metro-config': specifier: ^0.73.2 version: 0.73.5(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0)) @@ -1406,7 +1406,7 @@ packages: deprecated: This functionality has been moved to @npmcli/fs '@nutui/icons-react-taro@1.0.5': - resolution: {integrity: sha512-p7dCW29wASH/qQ1OaUGGKA6PRV33wDPb80+qrHnWtT40syIb0W+e92mpplbULWM01s+GYVGyUU3i8b7Iy7qfvw==, tarball: https://registry.npmmirror.com/@nutui/icons-react-taro/-/icons-react-taro-1.0.5.tgz} + resolution: {integrity: sha512-p7dCW29wASH/qQ1OaUGGKA6PRV33wDPb80+qrHnWtT40syIb0W+e92mpplbULWM01s+GYVGyUU3i8b7Iy7qfvw==} '@nutui/icons-react-taro@2.0.1': resolution: {integrity: sha512-/DYmt8Rfp0NGx37/67Nd+k85zB2sJMLjlJiLpLbKxXk75SY0inwka51HhgawFTUk53zeta0CH/sDscTZdN005w==, tarball: https://registry.npmmirror.com/@nutui/icons-react-taro/-/icons-react-taro-2.0.1.tgz} @@ -1431,8 +1431,8 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@nutui/nutui-react-taro@2.7.4': - resolution: {integrity: sha512-r47l2rkY5HbObyTHxt2ZCTMKolM+v9CxX7QwSQGyuVRCi5G5cwPbSEz3NucvWGyZ69NaD3XA4Oc2LumLhaHmGg==, tarball: https://registry.npmmirror.com/@nutui/nutui-react-taro/-/nutui-react-taro-2.7.4.tgz} + '@nutui/nutui-react-taro@2.7.14': + resolution: {integrity: sha512-BATiRezhEMdL/UyYZfwEq5EJMmHj4MbWcEZCVaHCod9ftGK+HPCyPZBiqoCRC2q7qVXXicYoDbJ98iPtvqMdzw==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -3664,7 +3664,7 @@ packages: engines: {node: '>=0.10.0'} classnames@2.5.1: - resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==, tarball: https://registry.npmmirror.com/classnames/-/classnames-2.5.1.tgz} + resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} clean-css@4.2.4: resolution: {integrity: sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==, tarball: https://registry.npmmirror.com/clean-css/-/clean-css-4.2.4.tgz} @@ -5151,7 +5151,7 @@ packages: deprecated: This package is no longer supported. fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, tarball: https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz} + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} @@ -5274,7 +5274,7 @@ packages: deprecated: Glob versions prior to v9 are no longer supported glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, tarball: https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz} + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported glob@8.1.0: @@ -5703,7 +5703,7 @@ packages: resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, tarball: https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz} + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. inherits@2.0.3: @@ -6506,7 +6506,8 @@ packages: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==, tarball: https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz} lodash.isequal@4.5.0: - resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==, tarball: https://registry.npmmirror.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz} + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + deprecated: This package is deprecated. Use require('node:util').isDeepStrictEqual instead. lodash.kebabcase@4.1.1: resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==, tarball: https://registry.npmmirror.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz} @@ -7282,7 +7283,7 @@ packages: engines: {node: '>= 0.8'} once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, tarball: https://registry.npmmirror.com/once/-/once-1.4.0.tgz} + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} onetime@2.0.1: resolution: {integrity: sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==} @@ -7488,7 +7489,7 @@ packages: engines: {node: '>=8'} path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, tarball: https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz} + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} path-is-inside@1.0.2: @@ -10052,7 +10053,7 @@ packages: engines: {node: '>=12'} wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, tarball: https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz} + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} write-file-atomic@2.4.3: resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==} @@ -11798,7 +11799,7 @@ snapshots: transitivePeerDependencies: - react-dom - '@nutui/nutui-react-taro@2.7.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@nutui/nutui-react-taro@2.7.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.0 '@nutui/icons-react-taro': 1.0.5 diff --git a/src/api/index.ts b/src/api/index.ts index 981f63c..8fe5180 100644 --- a/src/api/index.ts +++ b/src/api/index.ts @@ -58,4 +58,5 @@ export interface PageParam { lang?: string; model?: string; BaseUrl?: string; + sceneType?: string; } diff --git a/src/api/shop/shopDealerOrder/model/index.ts b/src/api/shop/shopDealerOrder/model/index.ts index 6380ea6..ac906d8 100644 --- a/src/api/shop/shopDealerOrder/model/index.ts +++ b/src/api/shop/shopDealerOrder/model/index.ts @@ -24,12 +24,18 @@ export interface ShopDealerOrder { secondMoney?: string; // 分销佣金(三级) thirdMoney?: string; + // 订单结算金额 + settledPrice?: string; + // 订单支付金额 + payPrice?: string; // 订单是否失效(0未失效 1已失效) isInvalid?: number; // 佣金结算(0未结算 1已结算) isSettled?: number; // 分销佣金比例 rate?: number; + // 订单月份 + month?: string; // 结算时间 settleTime?: number; // 订单备注 @@ -51,7 +57,9 @@ export interface ShopDealerOrderParam extends PageParam { secondUserId?: number; thirdUserId?: number; userId?: number; + resourceId?: number; isInvalid?: number; isSettled?: number; + month?: string; keywords?: string; } diff --git a/src/dealer/orders/index.tsx b/src/dealer/orders/index.tsx index 0698927..25f2ce3 100644 --- a/src/dealer/orders/index.tsx +++ b/src/dealer/orders/index.tsx @@ -1,6 +1,6 @@ import React, {useState, useEffect, useCallback} from 'react' import {View, Text, ScrollView} from '@tarojs/components' -import {Empty, PullToRefresh, Loading} from '@nutui/nutui-react-taro' +import {Empty, PullToRefresh, Loading, Cell, DatePicker} from '@nutui/nutui-react-taro' import Taro from '@tarojs/taro' import {pageShopDealerOrder} from '@/api/shop/shopDealerOrder' import {useDealerUser} from '@/hooks/useDealerUser' @@ -14,6 +14,10 @@ interface OrderWithDetails extends ShopDealerOrder { const DealerOrders: React.FC = () => { const [loading, setLoading] = useState(false) + const d = new Date() + const currDay = `${d.getFullYear()}${d.getMonth() + 1}` + const [date, setDate] = useState(currDay) + const [show1, setShow1] = useState(false) const [refreshing, setRefreshing] = useState(false) const [loadingMore, setLoadingMore] = useState(false) const [orders, setOrders] = useState([]) @@ -37,7 +41,8 @@ const DealerOrders: React.FC = () => { const result = await pageShopDealerOrder({ isInvalid: 0, - userId: Taro.getStorageSync('UserId'), + resourceId: Taro.getStorageSync('UserId'), + month: date, page, limit: 10 }) @@ -108,10 +113,7 @@ const DealerOrders: React.FC = () => { - 电费收益 - - - ¥{(Number(order.orderPrice) * 10).toFixed(2)} + 订单号:{order.id} @@ -119,15 +121,30 @@ const DealerOrders: React.FC = () => { 客户名称:{order.comments} - - 税费:{order.rate} - + + 结算月份:{order.month} + 结算电量:{order.orderPrice || '0.00'} + + + + + 结算金额:{order.settledPrice} + + + 实发金额:{order.payPrice} + + + + + + 税费:{order.rate} + 状态:{getStatusText(order.isSettled, order.isInvalid)} @@ -152,6 +169,27 @@ const DealerOrders: React.FC = () => { refreshingText="刷新中..." completeText="刷新完成" > + setShow1(true)} + /> + setShow1(false)} + onConfirm={(_, values) => { + setShow1(false) + setDate(`${values[0]}${values[1]}`) + fetchOrders(1).then() + }} + />