From ed90e5009260d8a55aeef7a3a9a88fba2034001c Mon Sep 17 00:00:00 2001 From: czm <2192718639@qq.com> Date: Wed, 29 Jun 2022 19:48:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E5=94=AE=E5=90=8E=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E8=AE=A2=E5=8D=95=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/favorite.ts | 12 ++ src/api/salesAfterOrder.ts | 10 ++ src/common/constant.js | 8 +- src/common/fotmat.js | 4 +- src/components/orderBtns/index.tsx | 2 +- src/components/textareaEnhance/index.tsx | 5 +- .../components/createPopup/index.tsx | 10 +- .../components/updatePopup/index.module.scss | 15 ++- .../components/updatePopup/index.tsx | 51 +++----- src/pages/collection/index.tsx | 63 ++++++++- .../components/advanceOrderState/index.tsx | 2 +- .../order/components/orderState/index.tsx | 4 +- src/pages/salesAfterList/index copy 2.tsx | 123 ++++++++++++++++++ src/pages/salesAfterList/index.tsx | 2 - 14 files changed, 253 insertions(+), 58 deletions(-) create mode 100644 src/pages/salesAfterList/index copy 2.tsx diff --git a/src/api/favorite.ts b/src/api/favorite.ts index b621784..964d317 100644 --- a/src/api/favorite.ts +++ b/src/api/favorite.ts @@ -22,3 +22,15 @@ export const CreateFavoriteApi = () => { method: "post", }) } + + +/** + * 删除收藏夹列表 + * @returns +*/ +export const DelFavoriteApi = () => { + return useRequest({ + url: `/v1/mall/favorite`, + method: "delete", + }) +} \ No newline at end of file diff --git a/src/api/salesAfterOrder.ts b/src/api/salesAfterOrder.ts index 40dc158..9178eea 100644 --- a/src/api/salesAfterOrder.ts +++ b/src/api/salesAfterOrder.ts @@ -90,3 +90,13 @@ export const GetSaleOrderListApi = () => { method: "post", }) } + +/** + * 售后订单状态列表 + */ + export const RefundOrderSatausApi = () => { + return useRequest({ + url: `/v1/mall/enum/filterReturnStage`, + method: "get", + }) +} \ No newline at end of file diff --git a/src/common/constant.js b/src/common/constant.js index d044f8e..9eb3a66 100644 --- a/src/common/constant.js +++ b/src/common/constant.js @@ -4,14 +4,14 @@ // export const BASE_URL = `http://10.0.0.5:50001/lymarket` // export const BASE_URL = `http://192.168.0.89:40001/lymarket` // export const BASE_URL = `http://192.168.1.165:40001/lymarket` // 王霞 -export const BASE_URL = `https://test.zzfzyc.com/lymarket` // 测试环境 -// export const BASE_URL = `http://192.168.1.30:40001/lymarket` // 发 +// export const BASE_URL = `https://test.zzfzyc.com/lymarket` // 测试环境 +// export const BASE_URL = `http://192.168.1.9:40001/lymarket` // 发 // export const BASE_URL = `http://192.168.1.30:50001/lymarket` // 发 // export const BASE_URL = `https://dev.zzfzyc.com/lymarket` // 开发环境 // export const BASE_URL = `https://www.zzfzyc.com/lymarket` // 正式环境 // export const BASE_URL = `http://192.168.1.5:40001/lymarket` // 王霞 -// export const BASE_URL = `http://192.168.1.7:50002/lymarket` // 添 -// export const BASE_URL = `http://192.168.1.15:50001/lymarket` // 杰 +export const BASE_URL = `http://192.168.1.7:50002/lymarket` // 添 +// export const BASE_URL = `http://192.168.1.42:50001/lymarket` // 杰 // CDN // 生成密钥 diff --git a/src/common/fotmat.js b/src/common/fotmat.js index f66140e..cd9ee0d 100644 --- a/src/common/fotmat.js +++ b/src/common/fotmat.js @@ -142,8 +142,8 @@ export const toDecimal2 = (x) => { * @status true|false * @returns */ -export const formatImgUrl = (url, status = false ,suffix="!w200") => { - return url? (status?IMG_CND_Prefix:'') +url + suffix:IMG_CND_Prefix +'/mall/no_img.png' +export const formatImgUrl = (url ,suffix="!w200") => { + return url? IMG_CND_Prefix +url + suffix:IMG_CND_Prefix +'/mall/no_img.png' } /** diff --git a/src/components/orderBtns/index.tsx b/src/components/orderBtns/index.tsx index 22b67ae..b0d4ce6 100644 --- a/src/components/orderBtns/index.tsx +++ b/src/components/orderBtns/index.tsx @@ -190,7 +190,7 @@ export default memo(({orderInfo, onClick}:Param) => { //退款 const {fetchData: fetchDataApplyRefund} = ApplyRefundApi() const applyRefund = async () => { - if(!orderInfo?.av_return_roll) return alert.none('该订单没有可退条数') + // if(!orderInfo?.av_return_roll) return alert.none('该订单没有可退条数') Taro.showModal({ title: '确定退款?', success: async function async (res) { diff --git a/src/components/textareaEnhance/index.tsx b/src/components/textareaEnhance/index.tsx index 4c6eb69..7d41b2c 100644 --- a/src/components/textareaEnhance/index.tsx +++ b/src/components/textareaEnhance/index.tsx @@ -7,9 +7,10 @@ import classnames from "classnames"; type Param = { title?: string, onChange?: (val: string) => void, - placeholder?: string + placeholder?: string, + defaultValue?: string } -export default memo(({onChange, title = '', placeholder = '请输入'}:Param) => { +export default memo(({onChange, title = '', placeholder = '请输入', defaultValue}:Param) => { const [descData, setDescData] = useState({ number: 0, value: '', diff --git a/src/pages/collection/components/createPopup/index.tsx b/src/pages/collection/components/createPopup/index.tsx index e4308be..f86f664 100644 --- a/src/pages/collection/components/createPopup/index.tsx +++ b/src/pages/collection/components/createPopup/index.tsx @@ -12,8 +12,12 @@ type ReasonInfoParam = { show?: boolean, //显示 onClose?: () => void, //关闭 onSuccess?: () => void, //成功 + defaultValue?: { + remark: string, + name: string + }, //默认数据 } -export default memo(({show = false, onClose, onSuccess}: ReasonInfoParam) => { +export default memo(({show = false, onClose, onSuccess, defaultValue}: ReasonInfoParam) => { const submitData = useRef({ "name": '', @@ -47,13 +51,13 @@ export default memo(({show = false, onClose, onSuccess}: ReasonInfoParam) => { 名称 - + 简介 - + diff --git a/src/pages/collection/components/updatePopup/index.module.scss b/src/pages/collection/components/updatePopup/index.module.scss index 332ce28..b362e19 100644 --- a/src/pages/collection/components/updatePopup/index.module.scss +++ b/src/pages/collection/components/updatePopup/index.module.scss @@ -1,7 +1,18 @@ .collection_con{ - padding: 20px; + padding: 20px ; .collection_item{ - + display: flex; + font-size: 26px; + padding: 30px 10px; + border-bottom: 1PX solid #F3F3F3; + align-items: center; + .miconfont{ + font-size: 36px; + color: #007AFF; + } + .text{ + margin-left: 10px; + } } } \ No newline at end of file diff --git a/src/pages/collection/components/updatePopup/index.tsx b/src/pages/collection/components/updatePopup/index.tsx index 33a9136..ea4b8b1 100644 --- a/src/pages/collection/components/updatePopup/index.tsx +++ b/src/pages/collection/components/updatePopup/index.tsx @@ -11,50 +11,35 @@ import { alert } from "@/common/common"; type ReasonInfoParam = { show?: boolean, //显示 onClose?: () => void, //关闭 - onSuccess?: () => void, //成功 + onUpdate?: () => void, //编辑 + onBatchManagement?: () => void, //批量管理 + onDelete?: () => void, //删除 + } -export default memo(({show = false, onClose, onSuccess}: ReasonInfoParam) => { - - const submitData = useRef({ - "name": '', - "remark": '' - }) - - const getOtherReason = useCallback((val) => { - submitData.current.remark = val - }, []) - - const changeInput = useCallback((val) => { - submitData.current.name = val.detail.value - }, []) - - //创建 - const {fetchData} = CreateFavoriteApi() - const onSubmit = async () => { - if(!submitData.current.name) return alert.none('请输入收藏夹名称!') - let res = await fetchData(submitData.current) - if(res.success) { - alert.success('创建成功') - onSuccess?.() +export default memo(({show = false, onClose, onUpdate, onBatchManagement, onDelete}: ReasonInfoParam) => { + const onClickEven = (val) => { + if (val == 1) { + onUpdate?.() + } else if (val == 2) { + onBatchManagement?.() } else { - alert.error('创建失败') + onDelete?.() } - onClose?.() } return ( - + - + onClickEven(1)}> - 编辑收藏夹 + 编辑收藏夹 - + onClickEven(2)}> - 批量管理 + 批量管理 - + onClickEven(3)}> - 删除该收藏夹 + 删除该收藏夹 diff --git a/src/pages/collection/index.tsx b/src/pages/collection/index.tsx index 33f5f1b..13763a5 100644 --- a/src/pages/collection/index.tsx +++ b/src/pages/collection/index.tsx @@ -1,9 +1,12 @@ -import { FavoriteListApi } from "@/api/favorite"; +import { DelFavoriteApi, FavoriteListApi } from "@/api/favorite"; +import { alert } from "@/common/common"; +import { getFilterData } from "@/common/util"; import Product from "@/components/product"; import Search from "@/components/search" import { Text, View } from "@tarojs/components" +import Taro from "@tarojs/taro"; import classnames from "classnames"; -import { useCallback, useEffect, useState } from "react"; +import { useCallback, useEffect, useRef, useState } from "react"; import CreatePopup from "./components/createPopup"; import UpdatePopup from "./components/updatePopup"; import styles from './index.module.scss' @@ -13,12 +16,20 @@ export default () => { item.openStatus = !item.openStatus setList((e) => [...e]) } + //获取搜索数据 + const [searchData, setSearchData] = useState('') + const onSearch = useCallback((e) => { + setSearchData(() => e) + }, []) + useEffect(() => { + getFavoriteList() + }, [searchData]) //获取列表 const [list, setList] = useState([]) const {fetchData: fetchDataList} = FavoriteListApi() const getFavoriteList = async () => { - let res = await fetchDataList() + let res = await fetchDataList(getFilterData({name: searchData})) setList(() => res.data.list) } useEffect(() => { @@ -36,11 +47,51 @@ export default () => { getFavoriteList() }, []) + //更多编辑 + const selectInfo = useRef(null) + const [updateShow, setUpdateShow] = useState(false) + const closeUpdate = useCallback(() => { + setUpdateShow(false) + }, []) + const moreUpdate = (item,e) => { + e.stopPropagation() + selectInfo.current = item + setUpdateShow(true) + } + + //删除改收藏夹 + const {fetchData: delFetchData} = DelFavoriteApi() + const onDeleteCollect = useCallback(() => { + if(!selectInfo.current.id) return alert.error('参数不正确!') + if(selectInfo.current.id == 1) return alert.none('删除失败,该文件夹不能删除!') + Taro.showModal({ + content: '确认删除该文件夹?', + success: async function (res) { + if (res.confirm) { + let res = await delFetchData({id: selectInfo.current.id}) + if(res.success) { + alert.success('删除成功') + getFavoriteList() + } else { + alert.error('删除失败') + } + } else if (res.cancel) { + console.log('用户点击取消') + } + } + }) + closeUpdate() + }, []) + + //编辑 + const onUpdate = useCallback(() => { + + }, []) return ( - console.log(e)} placeholder="请输入面料关键词" /> + setCollectioinShow(true)}> @@ -50,7 +101,7 @@ export default () => { {item.name} {item.product_color_list&&<>·{item.product_color_list.length}} - 更多 + moreUpdate(item,e)}>更多 @@ -58,7 +109,7 @@ export default () => { )} - + ) } \ No newline at end of file diff --git a/src/pages/order/components/advanceOrderState/index.tsx b/src/pages/order/components/advanceOrderState/index.tsx index 922e013..43467f2 100644 --- a/src/pages/order/components/advanceOrderState/index.tsx +++ b/src/pages/order/components/advanceOrderState/index.tsx @@ -63,7 +63,7 @@ export default memo(({orderInfo, onRefresh}:Param) => { 支付关闭,订单自动取消 - + onRefresh?.()}> diff --git a/src/pages/order/components/orderState/index.tsx b/src/pages/order/components/orderState/index.tsx index 71b4e16..b08861d 100644 --- a/src/pages/order/components/orderState/index.tsx +++ b/src/pages/order/components/orderState/index.tsx @@ -71,8 +71,8 @@ export default memo(({orderInfo = {logistics_details: [],payment_method: 0, stat } - {(orderInfo.payment_method == PaymentMethodCashOnDelivery.value)&&} - {(orderInfo.payment_method == PaymentMethodAccountPeriod.value)&&} + {(orderInfo.payment_method == PaymentMethodCashOnDelivery.value)&&} + {(orderInfo.payment_method == PaymentMethodAccountPeriod.value)&&} {(orderInfo.status == SaleorderstatusWaitingPrePayment.value)&& diff --git a/src/pages/salesAfterList/index copy 2.tsx b/src/pages/salesAfterList/index copy 2.tsx new file mode 100644 index 0000000..2d64951 --- /dev/null +++ b/src/pages/salesAfterList/index copy 2.tsx @@ -0,0 +1,123 @@ +import Search from "@/components/search" +import useLogin from "@/use/useLogin" +import { Image, ScrollView, Text, View } from "@tarojs/components" +import Taro, { useDidShow, usePullDownRefresh, useRouter } from "@tarojs/taro" +import { useCallback, useEffect, useMemo, useRef, useState } from "react" +import styles from './index.module.scss' +import classnames from "classnames"; +import Order from "./components/order" +import InfiniteScroll from "@/components/infiniteScroll" +import { dataLoadingStatus, getFilterData } from "@/common/util" +import OrderStatusList from "./components/orderStatusList" +import { AFTER_ORDER_STATUS } from "@/common/enum" +import { GetSaleOrderListApi, RefundOrderSatausApi } from "@/api/salesAfterOrder" +import ReturnLogistics from "./components/returnLogistics" + +export default () => { + const {checkLogin} = useLogin() + useDidShow(async () => { + await checkLogin() + }) + + //搜索参数 + const [searchField, setSearchField] = useState({ + status: -1, + page : 1, + size : 10, + Name:'' + }) + + //获取订单状态 + const [statusList, setStatusList] = useState([{id: -1, name: '全部'}]) + const {fetchData: fetchDataStatus} = RefundOrderSatausApi() + const getOrderStatusList = async () => { + let res = await fetchDataStatus() + setStatusList((e) => [...e, ...res.data.list]) + } + useEffect(() => { + getOrderStatusList() + }, []) + + //获取订单列表 + const {fetchData: listFetchData, state:orderState} = GetSaleOrderListApi() + const [orderData, setOrderData] = useState<{list:any[], total:number}>({list:[], total:0}) + const getOrderList = async () => { + let res = await listFetchData(getFilterData(searchField)) + setOrderData({list: res.data.list, total: res.data.total}) + setRefresherTriggeredStatus(() => false) + } + + + //监听筛选条件变化 + useEffect(() => { + getOrderList() + }, [searchField]) + + //上拉加载数据 + const pageNum = useRef({size: searchField.size, page: searchField.page}) + const getScrolltolower = useCallback(() => { + if(orderData.list.length < orderData.total) { + pageNum.current.page++ + const size = pageNum.current.size * pageNum.current.page + setSearchField({...searchField, size }) + } + }, [orderData]) + + //状态改变 + const changeStatus = useCallback((e) => { + pageNum.current.page = 1 + setSearchField((value) => ({...value, status:e, size:10})) + setOrderData(() => ({list:[], total:0})) + }, []) + + + //数据加载状态 + const statusMore = useMemo(() => { + return dataLoadingStatus({list:orderData.list, total: orderData.total, status: orderState.loading}) + }, [orderData, orderState]) + + //输入了搜索关键字 + const getSearchData = useCallback((e) => { + pageNum.current.page = 1 + setOrderData(() => ({list:[], total:0})) + setSearchField((val) => ({...val, name:e, size:10})) + }, []) + + + //列表下拉刷新 + const [refresherTriggeredStatus, setRefresherTriggeredStatus] = useState(false) + const getRefresherRefresh = async () => { + pageNum.current.size = 1 + setRefresherTriggeredStatus(true) + setSearchField((val) => ({...val, size:10})) + } + + //监听点击的按钮 + const clickOrderBtn = useCallback(({status, orderInfo}) => { + if(status == 2) { + //退货物流 + + } + }, [orderData]) + + //物流显示 + const [logisticsShow, setLogisticsShow] = useState(false) + const onCloseLogistics = useCallback(() => setLogisticsShow(false), []) + + return ( + + + + + + + + {orderData?.list.map(item => { + return + })} + + + + + ) +} diff --git a/src/pages/salesAfterList/index.tsx b/src/pages/salesAfterList/index.tsx index bd52d1c..6cc25ea 100644 --- a/src/pages/salesAfterList/index.tsx +++ b/src/pages/salesAfterList/index.tsx @@ -7,10 +7,8 @@ import styles from './index.module.scss' import classnames from "classnames"; import Order from "./components/order" import InfiniteScroll from "@/components/infiniteScroll" -import {GetOrderStatusListApi, GetOrderListApi} from '@/api/order' import { dataLoadingStatus, getFilterData } from "@/common/util" import OrderStatusList from "./components/orderStatusList" -import Payment from "../order/components/payment" import { AFTER_ORDER_STATUS } from "@/common/enum" import { GetSaleOrderListApi } from "@/api/salesAfterOrder" import ReturnLogistics from "./components/returnLogistics"