Browse Source
- 新增文章详情页面组件,用于显示文章内容 - 优化购物车页面样式,增加空购物车状态的透明背景 - 添加多个购物相关 API 接口,包括优惠券、订单等 - 更新环境配置,修改 API 基础 URL - 调整发现页面布局,增加文章详情入口master
21 changed files with 1072 additions and 179 deletions
@ -0,0 +1,3 @@ |
|||||
|
export default definePageConfig({ |
||||
|
navigationBarTitleText: '文章详情' |
||||
|
}) |
@ -0,0 +1,53 @@ |
|||||
|
import Taro from '@tarojs/taro' |
||||
|
import {useEffect, useState} from 'react' |
||||
|
import {useRouter} from '@tarojs/taro' |
||||
|
import {Loading} from '@nutui/nutui-react-taro' |
||||
|
import {View, RichText} from '@tarojs/components' |
||||
|
import {wxParse} from "@/utils/common"; |
||||
|
import {getCmsArticle} from "@/api/cms/cmsArticle"; |
||||
|
import {CmsArticle} from "@/api/cms/cmsArticle/model" |
||||
|
import Line from "@/components/Gap"; |
||||
|
import './index.scss' |
||||
|
|
||||
|
function Detail() { |
||||
|
const {params} = useRouter(); |
||||
|
const [loading, setLoading] = useState<boolean>(true) |
||||
|
// 文章详情
|
||||
|
const [item, setItem] = useState<CmsArticle>() |
||||
|
const reload = async () => { |
||||
|
const item = await getCmsArticle(Number(params.id)) |
||||
|
|
||||
|
if (item) { |
||||
|
item.content = wxParse(item.content) |
||||
|
setItem(item) |
||||
|
Taro.setNavigationBarTitle({ |
||||
|
title: `${item?.categoryName}` |
||||
|
}) |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
useEffect(() => { |
||||
|
reload().then(() => { |
||||
|
setLoading(false) |
||||
|
}); |
||||
|
}, []); |
||||
|
|
||||
|
if (loading) { |
||||
|
return ( |
||||
|
<Loading className={'px-2'}>加载中</Loading> |
||||
|
) |
||||
|
} |
||||
|
|
||||
|
return ( |
||||
|
<div className={'bg-white'}> |
||||
|
<div className={'p-4 font-bold text-lg'}>{item?.title}</div> |
||||
|
<div className={'text-gray-400 text-sm px-4 '}>{item?.createTime}</div> |
||||
|
<View className={'content p-4'}> |
||||
|
<RichText nodes={item?.content}/> |
||||
|
</View> |
||||
|
<Line height={44}/> |
||||
|
</div> |
||||
|
) |
||||
|
} |
||||
|
|
||||
|
export default Detail |
@ -0,0 +1,101 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import type { ApiResult, PageResult } from '@/api/index'; |
||||
|
import type { ShopCoupon, ShopCouponParam } from './model'; |
||||
|
|
||||
|
/** |
||||
|
* 分页查询优惠券 |
||||
|
*/ |
||||
|
export async function pageShopCoupon(params: ShopCouponParam) { |
||||
|
const res = await request.get<ApiResult<PageResult<ShopCoupon>>>( |
||||
|
'/shop/shop-coupon/page', |
||||
|
params |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.data; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 查询优惠券列表 |
||||
|
*/ |
||||
|
export async function listShopCoupon(params?: ShopCouponParam) { |
||||
|
const res = await request.get<ApiResult<ShopCoupon[]>>( |
||||
|
'/shop/shop-coupon', |
||||
|
params |
||||
|
); |
||||
|
if (res.code === 0 && res.data) { |
||||
|
return res.data; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 添加优惠券 |
||||
|
*/ |
||||
|
export async function addShopCoupon(data: ShopCoupon) { |
||||
|
const res = await request.post<ApiResult<unknown>>( |
||||
|
'/shop/shop-coupon', |
||||
|
data |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.message; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 修改优惠券 |
||||
|
*/ |
||||
|
export async function updateShopCoupon(data: ShopCoupon) { |
||||
|
const res = await request.put<ApiResult<unknown>>( |
||||
|
'/shop/shop-coupon', |
||||
|
data |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.message; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 删除优惠券 |
||||
|
*/ |
||||
|
export async function removeShopCoupon(id?: number) { |
||||
|
const res = await request.del<ApiResult<unknown>>( |
||||
|
'/shop/shop-coupon/' + id |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.message; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 批量删除优惠券 |
||||
|
*/ |
||||
|
export async function removeBatchShopCoupon(data: (number | undefined)[]) { |
||||
|
const res = await request.del<ApiResult<unknown>>( |
||||
|
'/shop/shop-coupon/batch', |
||||
|
{ |
||||
|
data |
||||
|
} |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.message; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 根据id查询优惠券 |
||||
|
*/ |
||||
|
export async function getShopCoupon(id: number) { |
||||
|
const res = await request.get<ApiResult<ShopCoupon>>( |
||||
|
'/shop/shop-coupon/' + id |
||||
|
); |
||||
|
if (res.code === 0 && res.data) { |
||||
|
return res.data; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
@ -0,0 +1,101 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import type { ApiResult, PageResult } from '@/api/index'; |
||||
|
import type { ShopDealerApply, ShopDealerApplyParam } from './model'; |
||||
|
|
||||
|
/** |
||||
|
* 分页查询分销商申请记录表 |
||||
|
*/ |
||||
|
export async function pageShopDealerApply(params: ShopDealerApplyParam) { |
||||
|
const res = await request.get<ApiResult<PageResult<ShopDealerApply>>>( |
||||
|
'/shop/shop-dealer-apply/page', |
||||
|
params |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.data; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 查询分销商申请记录表列表 |
||||
|
*/ |
||||
|
export async function listShopDealerApply(params?: ShopDealerApplyParam) { |
||||
|
const res = await request.get<ApiResult<ShopDealerApply[]>>( |
||||
|
'/shop/shop-dealer-apply', |
||||
|
params |
||||
|
); |
||||
|
if (res.code === 0 && res.data) { |
||||
|
return res.data; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 添加分销商申请记录表 |
||||
|
*/ |
||||
|
export async function addShopDealerApply(data: ShopDealerApply) { |
||||
|
const res = await request.post<ApiResult<unknown>>( |
||||
|
'/shop/shop-dealer-apply', |
||||
|
data |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.message; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 修改分销商申请记录表 |
||||
|
*/ |
||||
|
export async function updateShopDealerApply(data: ShopDealerApply) { |
||||
|
const res = await request.put<ApiResult<unknown>>( |
||||
|
'/shop/shop-dealer-apply', |
||||
|
data |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.message; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 删除分销商申请记录表 |
||||
|
*/ |
||||
|
export async function removeShopDealerApply(id?: number) { |
||||
|
const res = await request.del<ApiResult<unknown>>( |
||||
|
'/shop/shop-dealer-apply/' + id |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.message; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 批量删除分销商申请记录表 |
||||
|
*/ |
||||
|
export async function removeBatchShopDealerApply(data: (number | undefined)[]) { |
||||
|
const res = await request.del<ApiResult<unknown>>( |
||||
|
'/shop/shop-dealer-apply/batch', |
||||
|
{ |
||||
|
data |
||||
|
} |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.message; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 根据id查询分销商申请记录表 |
||||
|
*/ |
||||
|
export async function getShopDealerApply(id: number) { |
||||
|
const res = await request.get<ApiResult<ShopDealerApply>>( |
||||
|
'/shop/shop-dealer-apply/' + id |
||||
|
); |
||||
|
if (res.code === 0 && res.data) { |
||||
|
return res.data; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
@ -0,0 +1,101 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import type { ApiResult, PageResult } from '@/api/index'; |
||||
|
import type { ShopDealerCapital, ShopDealerCapitalParam } from './model'; |
||||
|
|
||||
|
/** |
||||
|
* 分页查询分销商资金明细表 |
||||
|
*/ |
||||
|
export async function pageShopDealerCapital(params: ShopDealerCapitalParam) { |
||||
|
const res = await request.get<ApiResult<PageResult<ShopDealerCapital>>>( |
||||
|
'/shop/shop-dealer-capital/page', |
||||
|
params |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.data; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 查询分销商资金明细表列表 |
||||
|
*/ |
||||
|
export async function listShopDealerCapital(params?: ShopDealerCapitalParam) { |
||||
|
const res = await request.get<ApiResult<ShopDealerCapital[]>>( |
||||
|
'/shop/shop-dealer-capital', |
||||
|
params |
||||
|
); |
||||
|
if (res.code === 0 && res.data) { |
||||
|
return res.data; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 添加分销商资金明细表 |
||||
|
*/ |
||||
|
export async function addShopDealerCapital(data: ShopDealerCapital) { |
||||
|
const res = await request.post<ApiResult<unknown>>( |
||||
|
'/shop/shop-dealer-capital', |
||||
|
data |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.message; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 修改分销商资金明细表 |
||||
|
*/ |
||||
|
export async function updateShopDealerCapital(data: ShopDealerCapital) { |
||||
|
const res = await request.put<ApiResult<unknown>>( |
||||
|
'/shop/shop-dealer-capital', |
||||
|
data |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.message; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 删除分销商资金明细表 |
||||
|
*/ |
||||
|
export async function removeShopDealerCapital(id?: number) { |
||||
|
const res = await request.del<ApiResult<unknown>>( |
||||
|
'/shop/shop-dealer-capital/' + id |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.message; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 批量删除分销商资金明细表 |
||||
|
*/ |
||||
|
export async function removeBatchShopDealerCapital(data: (number | undefined)[]) { |
||||
|
const res = await request.del<ApiResult<unknown>>( |
||||
|
'/shop/shop-dealer-capital/batch', |
||||
|
{ |
||||
|
data |
||||
|
} |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.message; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 根据id查询分销商资金明细表 |
||||
|
*/ |
||||
|
export async function getShopDealerCapital(id: number) { |
||||
|
const res = await request.get<ApiResult<ShopDealerCapital>>( |
||||
|
'/shop/shop-dealer-capital/' + id |
||||
|
); |
||||
|
if (res.code === 0 && res.data) { |
||||
|
return res.data; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
@ -0,0 +1,101 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import type { ApiResult, PageResult } from '@/api/index'; |
||||
|
import type { ShopDealerOrder, ShopDealerOrderParam } from './model'; |
||||
|
|
||||
|
/** |
||||
|
* 分页查询分销商订单记录表 |
||||
|
*/ |
||||
|
export async function pageShopDealerOrder(params: ShopDealerOrderParam) { |
||||
|
const res = await request.get<ApiResult<PageResult<ShopDealerOrder>>>( |
||||
|
'/shop/shop-dealer-order/page', |
||||
|
params |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.data; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 查询分销商订单记录表列表 |
||||
|
*/ |
||||
|
export async function listShopDealerOrder(params?: ShopDealerOrderParam) { |
||||
|
const res = await request.get<ApiResult<ShopDealerOrder[]>>( |
||||
|
'/shop/shop-dealer-order', |
||||
|
params |
||||
|
); |
||||
|
if (res.code === 0 && res.data) { |
||||
|
return res.data; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 添加分销商订单记录表 |
||||
|
*/ |
||||
|
export async function addShopDealerOrder(data: ShopDealerOrder) { |
||||
|
const res = await request.post<ApiResult<unknown>>( |
||||
|
'/shop/shop-dealer-order', |
||||
|
data |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.message; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 修改分销商订单记录表 |
||||
|
*/ |
||||
|
export async function updateShopDealerOrder(data: ShopDealerOrder) { |
||||
|
const res = await request.put<ApiResult<unknown>>( |
||||
|
'/shop/shop-dealer-order', |
||||
|
data |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.message; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 删除分销商订单记录表 |
||||
|
*/ |
||||
|
export async function removeShopDealerOrder(id?: number) { |
||||
|
const res = await request.del<ApiResult<unknown>>( |
||||
|
'/shop/shop-dealer-order/' + id |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.message; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 批量删除分销商订单记录表 |
||||
|
*/ |
||||
|
export async function removeBatchShopDealerOrder(data: (number | undefined)[]) { |
||||
|
const res = await request.del<ApiResult<unknown>>( |
||||
|
'/shop/shop-dealer-order/batch', |
||||
|
{ |
||||
|
data |
||||
|
} |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.message; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 根据id查询分销商订单记录表 |
||||
|
*/ |
||||
|
export async function getShopDealerOrder(id: number) { |
||||
|
const res = await request.get<ApiResult<ShopDealerOrder>>( |
||||
|
'/shop/shop-dealer-order/' + id |
||||
|
); |
||||
|
if (res.code === 0 && res.data) { |
||||
|
return res.data; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
@ -0,0 +1,101 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import type { ApiResult, PageResult } from '@/api/index'; |
||||
|
import type { ShopDealerReferee, ShopDealerRefereeParam } from './model'; |
||||
|
|
||||
|
/** |
||||
|
* 分页查询分销商推荐关系表 |
||||
|
*/ |
||||
|
export async function pageShopDealerReferee(params: ShopDealerRefereeParam) { |
||||
|
const res = await request.get<ApiResult<PageResult<ShopDealerReferee>>>( |
||||
|
'/shop/shop-dealer-referee/page', |
||||
|
params |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.data; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 查询分销商推荐关系表列表 |
||||
|
*/ |
||||
|
export async function listShopDealerReferee(params?: ShopDealerRefereeParam) { |
||||
|
const res = await request.get<ApiResult<ShopDealerReferee[]>>( |
||||
|
'/shop/shop-dealer-referee', |
||||
|
params |
||||
|
); |
||||
|
if (res.code === 0 && res.data) { |
||||
|
return res.data; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 添加分销商推荐关系表 |
||||
|
*/ |
||||
|
export async function addShopDealerReferee(data: ShopDealerReferee) { |
||||
|
const res = await request.post<ApiResult<unknown>>( |
||||
|
'/shop/shop-dealer-referee', |
||||
|
data |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.message; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 修改分销商推荐关系表 |
||||
|
*/ |
||||
|
export async function updateShopDealerReferee(data: ShopDealerReferee) { |
||||
|
const res = await request.put<ApiResult<unknown>>( |
||||
|
'/shop/shop-dealer-referee', |
||||
|
data |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.message; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 删除分销商推荐关系表 |
||||
|
*/ |
||||
|
export async function removeShopDealerReferee(id?: number) { |
||||
|
const res = await request.del<ApiResult<unknown>>( |
||||
|
'/shop/shop-dealer-referee/' + id |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.message; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 批量删除分销商推荐关系表 |
||||
|
*/ |
||||
|
export async function removeBatchShopDealerReferee(data: (number | undefined)[]) { |
||||
|
const res = await request.del<ApiResult<unknown>>( |
||||
|
'/shop/shop-dealer-referee/batch', |
||||
|
{ |
||||
|
data |
||||
|
} |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.message; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 根据id查询分销商推荐关系表 |
||||
|
*/ |
||||
|
export async function getShopDealerReferee(id: number) { |
||||
|
const res = await request.get<ApiResult<ShopDealerReferee>>( |
||||
|
'/shop/shop-dealer-referee/' + id |
||||
|
); |
||||
|
if (res.code === 0 && res.data) { |
||||
|
return res.data; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
@ -0,0 +1,101 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import type { ApiResult, PageResult } from '@/api/index'; |
||||
|
import type { ShopDealerSetting, ShopDealerSettingParam } from './model'; |
||||
|
|
||||
|
/** |
||||
|
* 分页查询分销商设置表 |
||||
|
*/ |
||||
|
export async function pageShopDealerSetting(params: ShopDealerSettingParam) { |
||||
|
const res = await request.get<ApiResult<PageResult<ShopDealerSetting>>>( |
||||
|
'/shop/shop-dealer-setting/page', |
||||
|
params |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.data; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 查询分销商设置表列表 |
||||
|
*/ |
||||
|
export async function listShopDealerSetting(params?: ShopDealerSettingParam) { |
||||
|
const res = await request.get<ApiResult<ShopDealerSetting[]>>( |
||||
|
'/shop/shop-dealer-setting', |
||||
|
params |
||||
|
); |
||||
|
if (res.code === 0 && res.data) { |
||||
|
return res.data; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 添加分销商设置表 |
||||
|
*/ |
||||
|
export async function addShopDealerSetting(data: ShopDealerSetting) { |
||||
|
const res = await request.post<ApiResult<unknown>>( |
||||
|
'/shop/shop-dealer-setting', |
||||
|
data |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.message; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 修改分销商设置表 |
||||
|
*/ |
||||
|
export async function updateShopDealerSetting(data: ShopDealerSetting) { |
||||
|
const res = await request.put<ApiResult<unknown>>( |
||||
|
'/shop/shop-dealer-setting', |
||||
|
data |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.message; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 删除分销商设置表 |
||||
|
*/ |
||||
|
export async function removeShopDealerSetting(id?: number) { |
||||
|
const res = await request.del<ApiResult<unknown>>( |
||||
|
'/shop/shop-dealer-setting/' + id |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.message; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 批量删除分销商设置表 |
||||
|
*/ |
||||
|
export async function removeBatchShopDealerSetting(data: (number | undefined)[]) { |
||||
|
const res = await request.del<ApiResult<unknown>>( |
||||
|
'/shop/shop-dealer-setting/batch', |
||||
|
{ |
||||
|
data |
||||
|
} |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.message; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 根据id查询分销商设置表 |
||||
|
*/ |
||||
|
export async function getShopDealerSetting(id: number) { |
||||
|
const res = await request.get<ApiResult<ShopDealerSetting>>( |
||||
|
'/shop/shop-dealer-setting/' + id |
||||
|
); |
||||
|
if (res.code === 0 && res.data) { |
||||
|
return res.data; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
@ -0,0 +1,101 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import type { ApiResult, PageResult } from '@/api/index'; |
||||
|
import type { ShopDealerUser, ShopDealerUserParam } from './model'; |
||||
|
|
||||
|
/** |
||||
|
* 分页查询分销商用户记录表 |
||||
|
*/ |
||||
|
export async function pageShopDealerUser(params: ShopDealerUserParam) { |
||||
|
const res = await request.get<ApiResult<PageResult<ShopDealerUser>>>( |
||||
|
'/shop/shop-dealer-user/page', |
||||
|
params |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.data; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 查询分销商用户记录表列表 |
||||
|
*/ |
||||
|
export async function listShopDealerUser(params?: ShopDealerUserParam) { |
||||
|
const res = await request.get<ApiResult<ShopDealerUser[]>>( |
||||
|
'/shop/shop-dealer-user', |
||||
|
params |
||||
|
); |
||||
|
if (res.code === 0 && res.data) { |
||||
|
return res.data; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 添加分销商用户记录表 |
||||
|
*/ |
||||
|
export async function addShopDealerUser(data: ShopDealerUser) { |
||||
|
const res = await request.post<ApiResult<unknown>>( |
||||
|
'/shop/shop-dealer-user', |
||||
|
data |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.message; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 修改分销商用户记录表 |
||||
|
*/ |
||||
|
export async function updateShopDealerUser(data: ShopDealerUser) { |
||||
|
const res = await request.put<ApiResult<unknown>>( |
||||
|
'/shop/shop-dealer-user', |
||||
|
data |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.message; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 删除分销商用户记录表 |
||||
|
*/ |
||||
|
export async function removeShopDealerUser(id?: number) { |
||||
|
const res = await request.del<ApiResult<unknown>>( |
||||
|
'/shop/shop-dealer-user/' + id |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.message; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 批量删除分销商用户记录表 |
||||
|
*/ |
||||
|
export async function removeBatchShopDealerUser(data: (number | undefined)[]) { |
||||
|
const res = await request.del<ApiResult<unknown>>( |
||||
|
'/shop/shop-dealer-user/batch', |
||||
|
{ |
||||
|
data |
||||
|
} |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.message; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 根据id查询分销商用户记录表 |
||||
|
*/ |
||||
|
export async function getShopDealerUser(id: number) { |
||||
|
const res = await request.get<ApiResult<ShopDealerUser>>( |
||||
|
'/shop/shop-dealer-user/' + id |
||||
|
); |
||||
|
if (res.code === 0 && res.data) { |
||||
|
return res.data; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
@ -0,0 +1,101 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import type { ApiResult, PageResult } from '@/api/index'; |
||||
|
import type { ShopDealerWithdraw, ShopDealerWithdrawParam } from './model'; |
||||
|
|
||||
|
/** |
||||
|
* 分页查询分销商提现明细表 |
||||
|
*/ |
||||
|
export async function pageShopDealerWithdraw(params: ShopDealerWithdrawParam) { |
||||
|
const res = await request.get<ApiResult<PageResult<ShopDealerWithdraw>>>( |
||||
|
'/shop/shop-dealer-withdraw/page', |
||||
|
params |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.data; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 查询分销商提现明细表列表 |
||||
|
*/ |
||||
|
export async function listShopDealerWithdraw(params?: ShopDealerWithdrawParam) { |
||||
|
const res = await request.get<ApiResult<ShopDealerWithdraw[]>>( |
||||
|
'/shop/shop-dealer-withdraw', |
||||
|
params |
||||
|
); |
||||
|
if (res.code === 0 && res.data) { |
||||
|
return res.data; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 添加分销商提现明细表 |
||||
|
*/ |
||||
|
export async function addShopDealerWithdraw(data: ShopDealerWithdraw) { |
||||
|
const res = await request.post<ApiResult<unknown>>( |
||||
|
'/shop/shop-dealer-withdraw', |
||||
|
data |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.message; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 修改分销商提现明细表 |
||||
|
*/ |
||||
|
export async function updateShopDealerWithdraw(data: ShopDealerWithdraw) { |
||||
|
const res = await request.put<ApiResult<unknown>>( |
||||
|
'/shop/shop-dealer-withdraw', |
||||
|
data |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.message; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 删除分销商提现明细表 |
||||
|
*/ |
||||
|
export async function removeShopDealerWithdraw(id?: number) { |
||||
|
const res = await request.del<ApiResult<unknown>>( |
||||
|
'/shop/shop-dealer-withdraw/' + id |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.message; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 批量删除分销商提现明细表 |
||||
|
*/ |
||||
|
export async function removeBatchShopDealerWithdraw(data: (number | undefined)[]) { |
||||
|
const res = await request.del<ApiResult<unknown>>( |
||||
|
'/shop/shop-dealer-withdraw/batch', |
||||
|
{ |
||||
|
data |
||||
|
} |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.message; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 根据id查询分销商提现明细表 |
||||
|
*/ |
||||
|
export async function getShopDealerWithdraw(id: number) { |
||||
|
const res = await request.get<ApiResult<ShopDealerWithdraw>>( |
||||
|
'/shop/shop-dealer-withdraw/' + id |
||||
|
); |
||||
|
if (res.code === 0 && res.data) { |
||||
|
return res.data; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
@ -1,35 +0,0 @@ |
|||||
import type { PageParam } from '@/api/index'; |
|
||||
|
|
||||
/** |
|
||||
* 商品优惠券表 |
|
||||
*/ |
|
||||
export interface ShopGoodsCoupon { |
|
||||
//
|
|
||||
id?: number; |
|
||||
// 商品id
|
|
||||
goodsId?: number; |
|
||||
// 优惠劵id
|
|
||||
issueCouponId?: number; |
|
||||
// 排序(数字越小越靠前)
|
|
||||
sortNumber?: number; |
|
||||
// 状态, 0正常, 1冻结
|
|
||||
status?: number; |
|
||||
// 是否删除, 0否, 1是
|
|
||||
deleted?: number; |
|
||||
// 用户ID
|
|
||||
userId?: number; |
|
||||
// 租户id
|
|
||||
tenantId?: number; |
|
||||
// 注册时间
|
|
||||
createTime?: string; |
|
||||
// 修改时间
|
|
||||
updateTime?: string; |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* 商品优惠券表搜索条件 |
|
||||
*/ |
|
||||
export interface ShopGoodsCouponParam extends PageParam { |
|
||||
id?: number; |
|
||||
keywords?: string; |
|
||||
} |
|
@ -1,113 +0,0 @@ |
|||||
import type { PageParam } from '@/api/index'; |
|
||||
|
|
||||
/** |
|
||||
* 商品评价 |
|
||||
*/ |
|
||||
export interface ShopGoodsReview { |
|
||||
// 评价ID
|
|
||||
reviewId?: number; |
|
||||
// 商品ID
|
|
||||
goodsId?: number; |
|
||||
// 订单ID
|
|
||||
orderId?: number; |
|
||||
// 用户ID
|
|
||||
userId?: number; |
|
||||
// 用户昵称
|
|
||||
nickname?: string; |
|
||||
// 用户头像
|
|
||||
avatar?: string; |
|
||||
// 评价内容
|
|
||||
content?: string; |
|
||||
// 评分 1-5星
|
|
||||
rating?: number; |
|
||||
// 评价图片,JSON数组格式
|
|
||||
images?: string; |
|
||||
// 是否匿名评价
|
|
||||
isAnonymous?: boolean; |
|
||||
// 商家回复
|
|
||||
reply?: string; |
|
||||
// 商家回复时间
|
|
||||
replyTime?: string; |
|
||||
// 评价状态 0待审核 1已通过 2已拒绝
|
|
||||
status?: number; |
|
||||
// 是否置顶
|
|
||||
isTop?: boolean; |
|
||||
// 点赞数
|
|
||||
likeCount?: number; |
|
||||
// 创建时间
|
|
||||
createTime?: string; |
|
||||
// 更新时间
|
|
||||
updateTime?: string; |
|
||||
// 商品信息
|
|
||||
goodsName?: string; |
|
||||
goodsImage?: string; |
|
||||
goodsPrice?: string; |
|
||||
// SKU信息
|
|
||||
skuId?: number; |
|
||||
specInfo?: string; |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* 评价统计 |
|
||||
*/ |
|
||||
export interface ReviewStats { |
|
||||
// 总评价数
|
|
||||
totalCount: number; |
|
||||
// 好评数
|
|
||||
goodCount: number; |
|
||||
// 中评数
|
|
||||
mediumCount: number; |
|
||||
// 差评数
|
|
||||
badCount: number; |
|
||||
// 好评率
|
|
||||
goodRate: number; |
|
||||
// 平均评分
|
|
||||
avgRating: number; |
|
||||
// 各星级统计
|
|
||||
ratingStats: { |
|
||||
[key: number]: number; // 星级 -> 数量
|
|
||||
}; |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* 评价查询参数 |
|
||||
*/ |
|
||||
export interface ShopGoodsReviewParam extends PageParam { |
|
||||
// 商品ID
|
|
||||
goodsId?: number; |
|
||||
// 用户ID
|
|
||||
userId?: number; |
|
||||
// 订单ID
|
|
||||
orderId?: number; |
|
||||
// 评分筛选
|
|
||||
rating?: number; |
|
||||
// 状态筛选
|
|
||||
status?: number; |
|
||||
// 是否有图片
|
|
||||
hasImages?: boolean; |
|
||||
// 排序方式 time:时间 rating:评分 like:点赞数
|
|
||||
sortBy?: string; |
|
||||
// 排序方向 asc:升序 desc:降序
|
|
||||
sortOrder?: string; |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* 提交评价请求 |
|
||||
*/ |
|
||||
export interface SubmitReviewRequest { |
|
||||
// 商品ID
|
|
||||
goodsId: number; |
|
||||
// 订单ID
|
|
||||
orderId: number; |
|
||||
// 评价内容
|
|
||||
content: string; |
|
||||
// 评分
|
|
||||
rating: number; |
|
||||
// 评价图片
|
|
||||
images?: string[]; |
|
||||
// 是否匿名
|
|
||||
isAnonymous?: boolean; |
|
||||
// SKU信息
|
|
||||
skuId?: number; |
|
||||
specInfo?: string; |
|
||||
} |
|
@ -0,0 +1,101 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import type { ApiResult, PageResult } from '@/api/index'; |
||||
|
import type { ShopUserCoupon, ShopUserCouponParam } from './model'; |
||||
|
|
||||
|
/** |
||||
|
* 分页查询用户优惠券 |
||||
|
*/ |
||||
|
export async function pageShopUserCoupon(params: ShopUserCouponParam) { |
||||
|
const res = await request.get<ApiResult<PageResult<ShopUserCoupon>>>( |
||||
|
'/shop/shop-user-coupon/page', |
||||
|
params |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.data; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 查询用户优惠券列表 |
||||
|
*/ |
||||
|
export async function listShopUserCoupon(params?: ShopUserCouponParam) { |
||||
|
const res = await request.get<ApiResult<ShopUserCoupon[]>>( |
||||
|
'/shop/shop-user-coupon', |
||||
|
params |
||||
|
); |
||||
|
if (res.code === 0 && res.data) { |
||||
|
return res.data; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 添加用户优惠券 |
||||
|
*/ |
||||
|
export async function addShopUserCoupon(data: ShopUserCoupon) { |
||||
|
const res = await request.post<ApiResult<unknown>>( |
||||
|
'/shop/shop-user-coupon', |
||||
|
data |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.message; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 修改用户优惠券 |
||||
|
*/ |
||||
|
export async function updateShopUserCoupon(data: ShopUserCoupon) { |
||||
|
const res = await request.put<ApiResult<unknown>>( |
||||
|
'/shop/shop-user-coupon', |
||||
|
data |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.message; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 删除用户优惠券 |
||||
|
*/ |
||||
|
export async function removeShopUserCoupon(id?: number) { |
||||
|
const res = await request.del<ApiResult<unknown>>( |
||||
|
'/shop/shop-user-coupon/' + id |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.message; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 批量删除用户优惠券 |
||||
|
*/ |
||||
|
export async function removeBatchShopUserCoupon(data: (number | undefined)[]) { |
||||
|
const res = await request.del<ApiResult<unknown>>( |
||||
|
'/shop/shop-user-coupon/batch', |
||||
|
{ |
||||
|
data |
||||
|
} |
||||
|
); |
||||
|
if (res.code === 0) { |
||||
|
return res.message; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 根据id查询用户优惠券 |
||||
|
*/ |
||||
|
export async function getShopUserCoupon(id: number) { |
||||
|
const res = await request.get<ApiResult<ShopUserCoupon>>( |
||||
|
'/shop/shop-user-coupon/' + id |
||||
|
); |
||||
|
if (res.code === 0 && res.data) { |
||||
|
return res.data; |
||||
|
} |
||||
|
return Promise.reject(new Error(res.message)); |
||||
|
} |
@ -0,0 +1,31 @@ |
|||||
|
// 购物车页面样式 |
||||
|
.cart-page { |
||||
|
// 当购物车为空时,设置透明背景 |
||||
|
&.empty { |
||||
|
page { |
||||
|
background-color: transparent !important; |
||||
|
} |
||||
|
|
||||
|
.cart-empty-container { |
||||
|
background-color: transparent !important; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
// 空购物车容器样式 |
||||
|
.cart-empty-container { |
||||
|
background-color: transparent !important; |
||||
|
|
||||
|
// 确保 Empty 组件及其子元素也是透明的 |
||||
|
.nut-empty { |
||||
|
background-color: transparent !important; |
||||
|
} |
||||
|
|
||||
|
.nut-empty__image { |
||||
|
background-color: transparent !important; |
||||
|
} |
||||
|
|
||||
|
.nut-empty__description { |
||||
|
background-color: transparent !important; |
||||
|
} |
||||
|
} |
Loading…
Reference in new issue