电子商城测试版v3
This commit is contained in:
parent
d0d4219413
commit
4ac7890915
@ -33,4 +33,26 @@ export const DelFavoriteApi = () => {
|
|||||||
url: `/v1/mall/favorite`,
|
url: `/v1/mall/favorite`,
|
||||||
method: "delete",
|
method: "delete",
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新收藏夹
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
export const UpdateFavoriteApi = () => {
|
||||||
|
return useRequest({
|
||||||
|
url: `/v1/mall/favorite`,
|
||||||
|
method: "put",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 加入收藏夹
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
export const AddFavoriteApi = () => {
|
||||||
|
return useRequest({
|
||||||
|
url: `/v1/mall/favorite/product`,
|
||||||
|
method: "post",
|
||||||
|
})
|
||||||
}
|
}
|
@ -99,4 +99,14 @@ export const GetSaleOrderListApi = () => {
|
|||||||
url: `/v1/mall/enum/filterReturnStage`,
|
url: `/v1/mall/enum/filterReturnStage`,
|
||||||
method: "get",
|
method: "get",
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 退款说明
|
||||||
|
*/
|
||||||
|
export const RefundExplainApi = () => {
|
||||||
|
return useRequest({
|
||||||
|
url: `/v1/mall/enum/refundExplain`,
|
||||||
|
method: "get",
|
||||||
|
})
|
||||||
}
|
}
|
@ -68,4 +68,14 @@ import { useRequest } from "@/use/useHttp"
|
|||||||
url: `/v1/mall/user/binding/company`,
|
url: `/v1/mall/user/binding/company`,
|
||||||
method: "put",
|
method: "put",
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 申请下单权限
|
||||||
|
*/
|
||||||
|
export const ApplyOrderAccessApi = () => {
|
||||||
|
return useRequest({
|
||||||
|
url: `/v1/mall/orderAccess/apply`,
|
||||||
|
method: "post",
|
||||||
|
})
|
||||||
}
|
}
|
@ -10,8 +10,8 @@
|
|||||||
// export const BASE_URL = `https://dev.zzfzyc.com/lymarket` // 开发环境
|
// export const BASE_URL = `https://dev.zzfzyc.com/lymarket` // 开发环境
|
||||||
// export const BASE_URL = `https://www.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.5:40001/lymarket` // 王霞
|
||||||
// export const BASE_URL = `http://192.168.1.7:50002/lymarket` // 添
|
export const BASE_URL = `http://192.168.1.7:50002/lymarket` // 添
|
||||||
export const BASE_URL = `http://192.168.1.42:50001/lymarket` // 杰
|
// export const BASE_URL = `http://192.168.1.42:50001/lymarket` // 杰
|
||||||
|
|
||||||
// CDN
|
// CDN
|
||||||
// 生成密钥
|
// 生成密钥
|
||||||
|
47
src/components/addCollection/index.module.scss
Normal file
47
src/components/addCollection/index.module.scss
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
|
||||||
|
.collection_con{
|
||||||
|
padding: 20px ;
|
||||||
|
.header{
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
position: relative;
|
||||||
|
.title{
|
||||||
|
font-size: 30px;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
.miconfont_con{
|
||||||
|
position: absolute;
|
||||||
|
right: 10px;
|
||||||
|
top: 0;
|
||||||
|
font-size: 26px;
|
||||||
|
color: #007AFF;
|
||||||
|
.miconfont{
|
||||||
|
font-size: 30px;
|
||||||
|
color: #007AFF;
|
||||||
|
border: 1px solid #007AFF;
|
||||||
|
border-radius: 50%;
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.scrollView{
|
||||||
|
height: 60vh;
|
||||||
|
}
|
||||||
|
.collection_item{
|
||||||
|
padding: 30px 0 15px 0;
|
||||||
|
border-bottom: 1px solid #F3F3F3;
|
||||||
|
.name{
|
||||||
|
font-size: 26px;
|
||||||
|
font-weight: 700;
|
||||||
|
text{
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.desc{
|
||||||
|
font-size: 22px;
|
||||||
|
color: #707070;
|
||||||
|
padding-left: 10px;
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
49
src/components/addCollection/index.tsx
Normal file
49
src/components/addCollection/index.tsx
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
import Popup from "@/components/popup";
|
||||||
|
import { Input, ScrollView, Text, View } from "@tarojs/components";
|
||||||
|
import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
|
||||||
|
import classnames from "classnames";
|
||||||
|
import styles from './index.module.scss'
|
||||||
|
import TextareaEnhance from "@/components/textareaEnhance";
|
||||||
|
import { CreateFavoriteApi, FavoriteListApi } from "@/api/favorite";
|
||||||
|
import { alert, goLink } from "@/common/common";
|
||||||
|
import { getFilterData } from "@/common/util";
|
||||||
|
|
||||||
|
//原因选择
|
||||||
|
type ReasonInfoParam = {
|
||||||
|
show?: boolean, //显示
|
||||||
|
onClose?: () => void, //关闭
|
||||||
|
onAdd?: (val: any) => void
|
||||||
|
|
||||||
|
}
|
||||||
|
export default memo(({show = false, onClose, onAdd}: ReasonInfoParam) => {
|
||||||
|
//获取列表
|
||||||
|
const [list, setList] = useState([])
|
||||||
|
const {fetchData: fetchDataList} = FavoriteListApi()
|
||||||
|
const getFavoriteList = async () => {
|
||||||
|
let res = await fetchDataList(getFilterData())
|
||||||
|
setList(() => res.data.list)
|
||||||
|
}
|
||||||
|
useEffect(() => {
|
||||||
|
if(show) getFavoriteList()
|
||||||
|
}, [show])
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Popup show={show} onClose={onClose} showTitle={false} >
|
||||||
|
<View className={styles.collection_con}>
|
||||||
|
<View className={styles.header}>
|
||||||
|
<Text className={styles.title}>选择文件夹</Text>
|
||||||
|
<View className={styles.miconfont_con} >
|
||||||
|
<Text className={classnames(styles.miconfont, 'iconfont icon-jia')}></Text>
|
||||||
|
<Text onClick={() => goLink('/pages/collection/index')}>新建</Text>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
<ScrollView scrollY className={styles.scrollView}>
|
||||||
|
{list?.map((item: any) => <View onClick={() => onAdd?.(item)} className={styles.collection_item}>
|
||||||
|
<View className={styles.name}>{item.name}<Text>({item.product_color_list?.length||0})</Text></View>
|
||||||
|
<View className={styles.desc}>{item.remark}</View>
|
||||||
|
</View>)}
|
||||||
|
</ScrollView>
|
||||||
|
</View>
|
||||||
|
</Popup>
|
||||||
|
)
|
||||||
|
})
|
@ -13,6 +13,7 @@ import { formatHashTag, formatImgUrl, formatPriceDiv } from "@/common/fotmat";
|
|||||||
import { setParam } from "@/common/system";
|
import { setParam } from "@/common/system";
|
||||||
import { debounce } from "@/common/util";
|
import { debounce } from "@/common/util";
|
||||||
import Counter from "../counter";
|
import Counter from "../counter";
|
||||||
|
import { ApplyOrderAccessApi, GetAdminUserInfoApi } from "@/api/user";
|
||||||
|
|
||||||
type param = {
|
type param = {
|
||||||
show?: true|false,
|
show?: true|false,
|
||||||
@ -211,7 +212,25 @@ export default ({show = false, onClose}: param) => {
|
|||||||
|
|
||||||
|
|
||||||
//去结算
|
//去结算
|
||||||
const orderDetail = debounce(() => {
|
const {fetchData: useFetchData} = GetAdminUserInfoApi()
|
||||||
|
const orderDetail = debounce( async () => {
|
||||||
|
let res = await useFetchData()
|
||||||
|
if(res.data.order_access_status !== 3) {
|
||||||
|
Taro.showModal({
|
||||||
|
title: '提示',
|
||||||
|
content: '暂未开通下单权限功能,稍后有客服联系您,请注意接受电话。',
|
||||||
|
cancelText: '联系客服',
|
||||||
|
confirmText: '我知道',
|
||||||
|
success: function (res) {
|
||||||
|
if (res.confirm) {
|
||||||
|
|
||||||
|
} else if (res.cancel) {
|
||||||
|
console.log('用户点击取消')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return false
|
||||||
|
}
|
||||||
getSelectId()
|
getSelectId()
|
||||||
if(selectIds.current.length == 0) {
|
if(selectIds.current.length == 0) {
|
||||||
alert.error('请选择面料')
|
alert.error('请选择面料')
|
||||||
@ -223,6 +242,7 @@ export default ({show = false, onClose}: param) => {
|
|||||||
}
|
}
|
||||||
}, 500)
|
}, 500)
|
||||||
|
|
||||||
|
|
||||||
//计数组件-当后端修改完成才修改前端显示
|
//计数组件-当后端修改完成才修改前端显示
|
||||||
const {fetchData: fetchDataUpdateShoppingCart} = UpdateShoppingCartApi()
|
const {fetchData: fetchDataUpdateShoppingCart} = UpdateShoppingCartApi()
|
||||||
const [UpdateShoppingCartLoading, setUpdateShoppingCartLoading] = useState(false)
|
const [UpdateShoppingCartLoading, setUpdateShoppingCartLoading] = useState(false)
|
||||||
@ -241,7 +261,7 @@ export default ({show = false, onClose}: param) => {
|
|||||||
<View className={styles.shop_cart_main}>
|
<View className={styles.shop_cart_main}>
|
||||||
<Popup showTitle={false} show={showPopup} onClose={() => closePopup()} >
|
<Popup showTitle={false} show={showPopup} onClose={() => closePopup()} >
|
||||||
<View className={styles.popup_con}>
|
<View className={styles.popup_con}>
|
||||||
<View className={styles.header}>
|
<View className={styles.header}>
|
||||||
<View onClick={selectAll}>{!selectStatus?'全选':'反选'}</View>
|
<View onClick={selectAll}>{!selectStatus?'全选':'反选'}</View>
|
||||||
<View onClick={delSelect}>
|
<View onClick={delSelect}>
|
||||||
<text className={classnames('iconfont', 'icon-shanchu', styles.miconfont)}></text>
|
<text className={classnames('iconfont', 'icon-shanchu', styles.miconfont)}></text>
|
||||||
|
@ -17,7 +17,7 @@ export default memo(({onChange, title = '', placeholder = '请输入', defaultVa
|
|||||||
count: 200,
|
count: 200,
|
||||||
show: false
|
show: false
|
||||||
})
|
})
|
||||||
const getDesc = (value) => {
|
const getDesc = (value = '') => {
|
||||||
let res = value
|
let res = value
|
||||||
if(value.length > descData.count) {
|
if(value.length > descData.count) {
|
||||||
res = value.slice(0, descData.count)
|
res = value.slice(0, descData.count)
|
||||||
|
@ -11,14 +11,14 @@ type ImageParam = {
|
|||||||
onChange?:(val: string[]) => void,
|
onChange?:(val: string[]) => void,
|
||||||
defaultList?: string[]
|
defaultList?: string[]
|
||||||
}
|
}
|
||||||
const PictureItem:FC<ImageParam> = memo(({onChange, defaultList = []}) => {
|
const PictureItem:FC<ImageParam> = memo(({onChange, defaultList}) => {
|
||||||
const {getWxPhoto} = useUploadCDNImg()
|
const {getWxPhoto} = useUploadCDNImg()
|
||||||
const [imageList, setImageLise] = useState<string[]>([])
|
const [imageList, setImageLise] = useState<string[]>([])
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setImageLise(defaultList)
|
setImageLise(defaultList||[])
|
||||||
}, [defaultList])
|
}, [defaultList])
|
||||||
|
|
||||||
//上传图片
|
//上传图片
|
||||||
const uploadImage = async () => {
|
const uploadImage = async () => {
|
||||||
let res:any = await getWxPhoto('after-sale')
|
let res:any = await getWxPhoto('after-sale')
|
||||||
@ -33,7 +33,7 @@ const PictureItem:FC<ImageParam> = memo(({onChange, defaultList = []}) => {
|
|||||||
}
|
}
|
||||||
//监听上传的图片变化
|
//监听上传的图片变化
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
onChange?.(imageList||[])
|
onChange?.(imageList)
|
||||||
}, [imageList])
|
}, [imageList])
|
||||||
|
|
||||||
//预览图片
|
//预览图片
|
||||||
|
@ -0,0 +1,64 @@
|
|||||||
|
.apply_after_sales_list{
|
||||||
|
padding: 0 20px;
|
||||||
|
.apply_after_sales_item{
|
||||||
|
margin-bottom: 50px;
|
||||||
|
.apply_after_sales_title{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
.tag{
|
||||||
|
font-size: $font_size_min;
|
||||||
|
background-color: #CDE5FF;
|
||||||
|
padding: 5px 10px;
|
||||||
|
border-radius: 6px;
|
||||||
|
color: $color_main;
|
||||||
|
}
|
||||||
|
.title{
|
||||||
|
font-weight: 700;
|
||||||
|
font-size: $font_size;
|
||||||
|
margin-left: 20px;
|
||||||
|
flex:1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.color_list {
|
||||||
|
.color_item{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin: 30px 0;
|
||||||
|
}
|
||||||
|
.image{
|
||||||
|
width: 70px;
|
||||||
|
height: 70px;
|
||||||
|
image{
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.name_and_number{
|
||||||
|
padding-left: 30px;
|
||||||
|
flex:1;
|
||||||
|
text{
|
||||||
|
&:nth-child(1) {
|
||||||
|
font-weight: 700;
|
||||||
|
font-size: $font_size;
|
||||||
|
}
|
||||||
|
&:nth-child(2) {
|
||||||
|
color: $color_font_two;
|
||||||
|
font-size: $font_size;
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.btn_count{
|
||||||
|
width: 216px;
|
||||||
|
height: 64px;
|
||||||
|
background-color: #ECF5FF;
|
||||||
|
border-radius: 40px 0px 16px 0px;
|
||||||
|
padding: 0 20px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
69
src/pages/applyAfterSales/components/cutKindList/index.tsx
Normal file
69
src/pages/applyAfterSales/components/cutKindList/index.tsx
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
import { formatHashTag, formatImgUrl } from "@/common/fotmat";
|
||||||
|
import Counter from "@/components/counter";
|
||||||
|
import MCheckbox from "@/components/checkbox";
|
||||||
|
import { Image, Text, View } from "@tarojs/components";
|
||||||
|
import { FC, memo, useCallback } from "react";
|
||||||
|
import styles from './index.module.scss'
|
||||||
|
|
||||||
|
type OrderParam = {
|
||||||
|
list?: any[],
|
||||||
|
sale_mode?: number,
|
||||||
|
sale_mode_name?: string,
|
||||||
|
unit?: string,
|
||||||
|
total_colors?: number,
|
||||||
|
total_fabrics?: number,
|
||||||
|
total_number?: number,
|
||||||
|
status?: number, //订单状态
|
||||||
|
}
|
||||||
|
|
||||||
|
type Param = {
|
||||||
|
order: OrderParam,
|
||||||
|
onSelectChange?: (val: {color_id:number, length: number, status: true|false, sale_order_detail_id:number}) => void
|
||||||
|
}
|
||||||
|
|
||||||
|
const kindeList:FC<Param> = memo(({order, onSelectChange}) => {
|
||||||
|
//对应数量
|
||||||
|
const formatCount = useCallback((item) => {
|
||||||
|
return (order?.sale_mode == 0? item.roll : Number(item.length / 100)) + order?.unit
|
||||||
|
}, [order])
|
||||||
|
|
||||||
|
|
||||||
|
//checkbox选中回调
|
||||||
|
const selectCallBack = (colorItem) => {
|
||||||
|
console.log('colorItem::',colorItem)
|
||||||
|
onSelectChange?.({color_id:colorItem.id, length:colorItem.length, sale_order_detail_id:colorItem.sale_order_detail_id, status: true})
|
||||||
|
}
|
||||||
|
|
||||||
|
//checkbox关闭回调
|
||||||
|
const colseCallBack = (colorItem) => {
|
||||||
|
onSelectChange?.({color_id:colorItem.id, length:colorItem.length, status: false, sale_order_detail_id:colorItem.sale_order_detail_id,})
|
||||||
|
}
|
||||||
|
|
||||||
|
//判断该面料下的颜色都退完了
|
||||||
|
const colorNum = (item) => {
|
||||||
|
let res = item.product_colors.some(val => {
|
||||||
|
return val.return_roll == 0
|
||||||
|
})
|
||||||
|
return res
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<View className={styles.apply_after_sales_list}>
|
||||||
|
{order?.list?.map(item => colorNum(item)&&<View className={styles.apply_after_sales_item} >
|
||||||
|
<View className={styles.apply_after_sales_title}>
|
||||||
|
<View className={styles.tag}>{order.sale_mode_name}</View>
|
||||||
|
<View className={styles.title}>{formatHashTag(item.code, item.name)}</View>
|
||||||
|
</View>
|
||||||
|
<View className={styles.color_list}>
|
||||||
|
{item.product_colors.map(colorItem => (colorItem.return_roll == 0)&&<View className={styles.color_item}>
|
||||||
|
<View className={styles.image}><Image src={formatImgUrl('')}/></View>
|
||||||
|
<View className={styles.name_and_number}><Text>{colorItem.code + ' ' + colorItem.name}</Text><Text>x {formatCount(colorItem)}</Text></View>
|
||||||
|
<MCheckbox status={item.select} onSelect={() => selectCallBack(colorItem)} onClose={() => colseCallBack(colorItem)}/>
|
||||||
|
</View>)}
|
||||||
|
</View>
|
||||||
|
</View>)}
|
||||||
|
</View>
|
||||||
|
)
|
||||||
|
})
|
||||||
|
|
||||||
|
export default kindeList
|
@ -19,13 +19,12 @@ type OrderParam = {
|
|||||||
type Param = {
|
type Param = {
|
||||||
order: OrderParam,
|
order: OrderParam,
|
||||||
onNumChange?: (val:any) => void
|
onNumChange?: (val:any) => void
|
||||||
onSelectChange?: (val: {color_id:number, length: number, status: true|false}) => void
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const kindeList:FC<Param> = memo(({order, onNumChange, onSelectChange}) => {
|
const kindeList:FC<Param> = memo(({order, onNumChange}) => {
|
||||||
//对应数量
|
//对应数量
|
||||||
const formatCount = useCallback((item) => {
|
const formatCount = useCallback((item) => {
|
||||||
return (order?.sale_mode == 0? item.roll : Number(item.length / 100)) + order?.unit
|
return (item.roll - item.return_roll) + order?.unit!
|
||||||
}, [order])
|
}, [order])
|
||||||
|
|
||||||
//计步器失返回值
|
//计步器失返回值
|
||||||
@ -35,32 +34,28 @@ const kindeList:FC<Param> = memo(({order, onNumChange, onSelectChange}) => {
|
|||||||
}
|
}
|
||||||
}, [])
|
}, [])
|
||||||
|
|
||||||
//checkbox选中回调
|
//判断该面料下的颜色都退完了
|
||||||
const selectCallBack = (colorItem) => {
|
const colorNum = (item) => {
|
||||||
console.log('colorItem::',colorItem)
|
let res = item.product_colors.some(val => {
|
||||||
onSelectChange?.({color_id:colorItem.id, length:colorItem.length, status: true})
|
return val.return_roll < val.roll
|
||||||
}
|
})
|
||||||
|
return res
|
||||||
//checkbox关闭回调
|
|
||||||
const colseCallBack = (colorItem) => {
|
|
||||||
onSelectChange?.({color_id:colorItem.id, length:colorItem.length, status: false})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<View className={styles.apply_after_sales_list}>
|
<View className={styles.apply_after_sales_list}>
|
||||||
{order?.list?.map(item => <View className={styles.apply_after_sales_item}>
|
{order?.list?.map(item => (colorNum(item))&&<View className={styles.apply_after_sales_item}>
|
||||||
<View className={styles.apply_after_sales_title}>
|
<View className={styles.apply_after_sales_title}>
|
||||||
<View className={styles.tag}>{order.sale_mode_name}</View>
|
<View className={styles.tag}>{order.sale_mode_name}</View>
|
||||||
<View className={styles.title}>{formatHashTag(item.code, item.name)}</View>
|
<View className={styles.title}>{formatHashTag(item.code, item.name)}</View>
|
||||||
</View>
|
</View>
|
||||||
<View className={styles.color_list}>
|
<View className={styles.color_list}>
|
||||||
{item.product_colors.map(colorItem => <View className={styles.color_item}>
|
{item.product_colors.map(colorItem => (colorItem.return_roll < colorItem.roll)&&<View className={styles.color_item}>
|
||||||
<View className={styles.image}><Image src={formatImgUrl('')}/></View>
|
<View className={styles.image}><Image src={formatImgUrl('')}/></View>
|
||||||
<View className={styles.name_and_number}><Text>{colorItem.code + ' ' + colorItem.name}</Text><Text>x {formatCount(colorItem)}</Text></View>
|
<View className={styles.name_and_number}><Text>{colorItem.code + ' ' + colorItem.name}</Text><Text>x {formatCount(colorItem)}</Text></View>
|
||||||
{(order.sale_mode == 0)&&<View className={styles.btn_count}>
|
<View className={styles.btn_count}>
|
||||||
<Counter maxNum={colorItem.roll} onChange={getCounterChange(colorItem)}/>
|
<Counter maxNum={colorItem.roll - colorItem.return_roll} onChange={getCounterChange(colorItem)}/>
|
||||||
</View>||
|
</View>
|
||||||
<MCheckbox status={item.select} onSelect={() => selectCallBack(colorItem)} onClose={() => colseCallBack(colorItem)}/>}
|
|
||||||
</View>)}
|
</View>)}
|
||||||
</View>
|
</View>
|
||||||
</View>)}
|
</View>)}
|
||||||
|
@ -6,6 +6,7 @@ import ReasonPopup from "./components/reasonPopup";
|
|||||||
import { useDidShow, useRouter } from "@tarojs/taro";
|
import { useDidShow, useRouter } from "@tarojs/taro";
|
||||||
import { GetSaleOrderDetailApi } from "@/api/order";
|
import { GetSaleOrderDetailApi } from "@/api/order";
|
||||||
import KindList from "./components/kindList"
|
import KindList from "./components/kindList"
|
||||||
|
import CutKindList from "./components/cutkindList"
|
||||||
import { ReturnApplyOrderApi, ReturnExplainApi, ReturnGoodsStatusApi, ReturnReasonApi } from "@/api/salesAfterOrder";
|
import { ReturnApplyOrderApi, ReturnExplainApi, ReturnGoodsStatusApi, ReturnReasonApi } from "@/api/salesAfterOrder";
|
||||||
import { alert, goLink } from "@/common/common";
|
import { alert, goLink } from "@/common/common";
|
||||||
import UploadImage from "@/components/uploadImage"
|
import UploadImage from "@/components/uploadImage"
|
||||||
@ -67,7 +68,6 @@ export default () => {
|
|||||||
unit: orderDetail.sale_mode == 0?'条':'m', //单位
|
unit: orderDetail.sale_mode == 0?'条':'m', //单位
|
||||||
list: orderDetail.product_list,
|
list: orderDetail.product_list,
|
||||||
status: orderDetail.status, //订单状态
|
status: orderDetail.status, //订单状态
|
||||||
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -101,7 +101,7 @@ export default () => {
|
|||||||
//散剪和剪板
|
//散剪和剪板
|
||||||
const getSelectChange = useCallback((val) => {
|
const getSelectChange = useCallback((val) => {
|
||||||
if(val.status) {
|
if(val.status) {
|
||||||
roll_list.current[val.color_id] = {product_color_id: val.color_id, product_roll: val.length}
|
roll_list.current[val.color_id] = {product_color_id: val.color_id, product_roll: val.length, sale_order_detail_id: val.sale_order_detail_id}
|
||||||
} else {
|
} else {
|
||||||
delete roll_list.current[val.color_id]
|
delete roll_list.current[val.color_id]
|
||||||
}
|
}
|
||||||
@ -126,6 +126,7 @@ export default () => {
|
|||||||
const {fetchData: fetchDataReturnApply} = ReturnApplyOrderApi()
|
const {fetchData: fetchDataReturnApply} = ReturnApplyOrderApi()
|
||||||
const onSubmitData = async () => {
|
const onSubmitData = async () => {
|
||||||
if(submitData.roll_list.length <= 0) return alert.error('请选择退货颜色')
|
if(submitData.roll_list.length <= 0) return alert.error('请选择退货颜色')
|
||||||
|
console.log('submitData::',submitData)
|
||||||
let res = await fetchDataReturnApply(submitData)
|
let res = await fetchDataReturnApply(submitData)
|
||||||
if(res.success) {
|
if(res.success) {
|
||||||
alert.success('申请成功')
|
alert.success('申请成功')
|
||||||
@ -157,6 +158,8 @@ export default () => {
|
|||||||
setShowReason(true)
|
setShowReason(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.log('aaa:', 123456789)
|
||||||
|
|
||||||
//请求获取到的数据
|
//请求获取到的数据
|
||||||
const [returnGoodsInfo, setReturnGoodsInfo] = useState<{title:string, list: any[], status: 1|2|3}>({title:'', list:[], status: returnStatus.goods_status})
|
const [returnGoodsInfo, setReturnGoodsInfo] = useState<{title:string, list: any[], status: 1|2|3}>({title:'', list:[], status: returnStatus.goods_status})
|
||||||
//售后货物状况
|
//售后货物状况
|
||||||
@ -202,7 +205,8 @@ export default () => {
|
|||||||
<View className={styles.kind_number}><Text>{dataCount}</Text></View>
|
<View className={styles.kind_number}><Text>{dataCount}</Text></View>
|
||||||
<ScrollView scrollY className={styles.scroll}>
|
<ScrollView scrollY className={styles.scroll}>
|
||||||
<View className={styles.scroll_con}>
|
<View className={styles.scroll_con}>
|
||||||
<KindList order={formatDetailOrder} onNumChange={getNumChange} onSelectChange={getSelectChange}/>
|
{(orderDetail?.sale_mode == 0)&&<KindList order={formatDetailOrder} onNumChange={getNumChange} />||
|
||||||
|
<CutKindList order={formatDetailOrder} onSelectChange={getSelectChange}/>}
|
||||||
<View className={styles.returnSaleInput}>
|
<View className={styles.returnSaleInput}>
|
||||||
<View className={styles.returnSaleInput_item}>
|
<View className={styles.returnSaleInput_item}>
|
||||||
<View className={styles.title}>退货原因</View>
|
<View className={styles.title}>退货原因</View>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import Popup from "@/components/popup";
|
import Popup from "@/components/popup";
|
||||||
import { Input, ScrollView, Text, View } from "@tarojs/components";
|
import { Input, ScrollView, Text, View } from "@tarojs/components";
|
||||||
import { memo, useCallback, useMemo, useRef } from "react";
|
import { memo, useCallback, useEffect, useMemo, useRef } from "react";
|
||||||
import classnames from "classnames";
|
import classnames from "classnames";
|
||||||
import styles from './index.module.scss'
|
import styles from './index.module.scss'
|
||||||
import TextareaEnhance from "@/components/textareaEnhance";
|
import TextareaEnhance from "@/components/textareaEnhance";
|
||||||
@ -11,7 +11,7 @@ import { alert } from "@/common/common";
|
|||||||
type ReasonInfoParam = {
|
type ReasonInfoParam = {
|
||||||
show?: boolean, //显示
|
show?: boolean, //显示
|
||||||
onClose?: () => void, //关闭
|
onClose?: () => void, //关闭
|
||||||
onSuccess?: () => void, //成功
|
onSuccess?: (val:any) => void, //成功
|
||||||
defaultValue?: {
|
defaultValue?: {
|
||||||
remark: string,
|
remark: string,
|
||||||
name: string
|
name: string
|
||||||
@ -24,40 +24,34 @@ export default memo(({show = false, onClose, onSuccess, defaultValue}: ReasonInf
|
|||||||
"remark": ''
|
"remark": ''
|
||||||
})
|
})
|
||||||
|
|
||||||
const getOtherReason = useCallback((val) => {
|
const getOtherReason = (val) => {
|
||||||
submitData.current.remark = 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?.()
|
|
||||||
} else {
|
|
||||||
alert.error('创建失败')
|
|
||||||
}
|
|
||||||
onClose?.()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const changeInput = (val) => {
|
||||||
|
submitData.current.name = val.detail.value
|
||||||
|
}
|
||||||
|
|
||||||
|
const onSubmit = () => {
|
||||||
|
onSuccess?.(submitData.current)
|
||||||
|
}
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
submitData.current = {name: defaultValue?.name!, remark: defaultValue?.remark!}
|
||||||
|
}, [defaultValue])
|
||||||
return (
|
return (
|
||||||
<Popup show={show} title="新建收藏夹" onClose={onClose} >
|
<Popup show={show} title="新建收藏夹" onClose={onClose} >
|
||||||
<View className={styles.collection_con}>
|
<View className={styles.collection_con}>
|
||||||
<View className={styles.title_item}>
|
<View className={styles.title_item}>
|
||||||
<View className={styles.title}>名称</View>
|
<View className={styles.title}>名称</View>
|
||||||
<View className={styles.select}>
|
<View className={styles.select}>
|
||||||
<Input placeholder="请输入文件夹名称" className={styles.input} onInput={changeInput} value={defaultValue?.remark}/>
|
<Input placeholder="请输入文件夹名称" className={styles.input} onInput={changeInput} value={defaultValue?.name}/>
|
||||||
</View>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
<View className={styles.desc_item}>
|
<View className={styles.desc_item}>
|
||||||
<View className={styles.title}>简介</View>
|
<View className={styles.title}>简介</View>
|
||||||
<View className={styles.desc}>
|
<View className={styles.desc}>
|
||||||
<TextareaEnhance onChange={getOtherReason} placeholder="请输入简介" />
|
<TextareaEnhance defaultValue={defaultValue?.remark} onChange={getOtherReason} placeholder="请输入简介" />
|
||||||
</View>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { DelFavoriteApi, FavoriteListApi } from "@/api/favorite";
|
import { CreateFavoriteApi, DelFavoriteApi, FavoriteListApi, UpdateFavoriteApi } from "@/api/favorite";
|
||||||
import { alert } from "@/common/common";
|
import { alert } from "@/common/common";
|
||||||
import { getFilterData } from "@/common/util";
|
import { getFilterData } from "@/common/util";
|
||||||
import Product from "@/components/product";
|
import Product from "@/components/product";
|
||||||
@ -32,9 +32,6 @@ export default () => {
|
|||||||
let res = await fetchDataList(getFilterData({name: searchData}))
|
let res = await fetchDataList(getFilterData({name: searchData}))
|
||||||
setList(() => res.data.list)
|
setList(() => res.data.list)
|
||||||
}
|
}
|
||||||
useEffect(() => {
|
|
||||||
getFavoriteList()
|
|
||||||
}, [])
|
|
||||||
|
|
||||||
//创建收藏夹
|
//创建收藏夹
|
||||||
const [collectioinShow, setCollectioinShow] = useState(false)
|
const [collectioinShow, setCollectioinShow] = useState(false)
|
||||||
@ -42,12 +39,31 @@ export default () => {
|
|||||||
setCollectioinShow(false)
|
setCollectioinShow(false)
|
||||||
}, [])
|
}, [])
|
||||||
|
|
||||||
//创建成功
|
const creatShow = () => {
|
||||||
const onCreatSuccess = useCallback(() => {
|
setCollectioinShow(true)
|
||||||
getFavoriteList()
|
setInitData(() => ({ remark: '',name: '', id:0}))
|
||||||
}, [])
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//新增
|
||||||
|
const {fetchData} = CreateFavoriteApi()
|
||||||
|
const onCreate = async (submitData) => {
|
||||||
|
if(!submitData.name) return alert.none('请输入收藏夹名称!')
|
||||||
|
let res = await fetchData({...submitData})
|
||||||
|
if(res.success) {
|
||||||
|
alert.success('创建成功')
|
||||||
|
getFavoriteList()
|
||||||
|
} else {
|
||||||
|
alert.error('创建失败')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//更多编辑
|
//更多编辑
|
||||||
|
const [initData, setInitData] = useState({
|
||||||
|
remark: '',
|
||||||
|
name: '',
|
||||||
|
id:0
|
||||||
|
})
|
||||||
const selectInfo = useRef<any>(null)
|
const selectInfo = useRef<any>(null)
|
||||||
const [updateShow, setUpdateShow] = useState(false)
|
const [updateShow, setUpdateShow] = useState(false)
|
||||||
const closeUpdate = useCallback(() => {
|
const closeUpdate = useCallback(() => {
|
||||||
@ -56,6 +72,8 @@ export default () => {
|
|||||||
const moreUpdate = (item,e) => {
|
const moreUpdate = (item,e) => {
|
||||||
e.stopPropagation()
|
e.stopPropagation()
|
||||||
selectInfo.current = item
|
selectInfo.current = item
|
||||||
|
console.log('item:::', item)
|
||||||
|
setInitData((e) =>({ ...e, remark:item.remark , name: item.name, id: item.id}))
|
||||||
setUpdateShow(true)
|
setUpdateShow(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -84,15 +102,37 @@ export default () => {
|
|||||||
}, [])
|
}, [])
|
||||||
|
|
||||||
//编辑
|
//编辑
|
||||||
const onUpdate = useCallback(() => {
|
const {fetchData: updateFavoriteFetchData} = UpdateFavoriteApi()
|
||||||
|
const onUpdateShow = useCallback(() => {
|
||||||
|
setCollectioinShow(true)
|
||||||
}, [])
|
}, [])
|
||||||
|
const onUpdate = async (submitData) => {
|
||||||
|
if(!submitData.name) return alert.none('请输入收藏夹名称!')
|
||||||
|
let res = await updateFavoriteFetchData({...submitData})
|
||||||
|
if(res.success) {
|
||||||
|
alert.success('编辑成功')
|
||||||
|
getFavoriteList()
|
||||||
|
} else {
|
||||||
|
alert.error('编辑失败')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//操作文件夹
|
||||||
|
const onCreatSuccess = (submitData) => {
|
||||||
|
if (!initData.id) {
|
||||||
|
onCreate(submitData)
|
||||||
|
} else {
|
||||||
|
onUpdate({...submitData, id: initData.id})
|
||||||
|
}
|
||||||
|
setCollectioinShow(false)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<View className={styles.collection_main}>
|
<View className={styles.collection_main}>
|
||||||
<View className={styles.search}>
|
<View className={styles.search}>
|
||||||
<Search style={{width: '100%'}} debounceTime={300} changeOnSearch={onSearch} placeholder="请输入面料关键词" />
|
<Search style={{width: '100%'}} debounceTime={300} changeOnSearch={onSearch} placeholder="请输入面料关键词" />
|
||||||
<View className={styles.miconfont_con} onClick={() => setCollectioinShow(true)}><Text className={classnames(styles.miconfont, 'iconfont icon-jia')}></Text></View>
|
<View className={styles.miconfont_con} onClick={creatShow}><Text className={classnames(styles.miconfont, 'iconfont icon-jia')}></Text></View>
|
||||||
</View>
|
</View>
|
||||||
<View className={styles.class_list}>
|
<View className={styles.class_list}>
|
||||||
{list?.map((item:any) => <View className={styles.class_item}>
|
{list?.map((item:any) => <View className={styles.class_item}>
|
||||||
@ -104,12 +144,12 @@ export default () => {
|
|||||||
<View className={styles.more} onClick={(e) => moreUpdate(item,e)}>更多</View>
|
<View className={styles.more} onClick={(e) => moreUpdate(item,e)}>更多</View>
|
||||||
</View>
|
</View>
|
||||||
<View className={styles.class_con} style={item.openStatus?{maxHeight: 10*260 + 'rpx'}:{maxHeight: 0}} >
|
<View className={styles.class_con} style={item.openStatus?{maxHeight: 10*260 + 'rpx'}:{maxHeight: 0}} >
|
||||||
<Product productList={new Array(10).fill('')}/>
|
<Product productList={item.product_color_list}/>
|
||||||
</View>
|
</View>
|
||||||
</View>)}
|
</View>)}
|
||||||
</View>
|
</View>
|
||||||
<CreatePopup show={collectioinShow} onClose={closeCollection} onSuccess={onCreatSuccess}/>
|
<UpdatePopup show={updateShow} onClose={closeUpdate} onDelete={onDeleteCollect} onUpdate={onUpdateShow}/>
|
||||||
<UpdatePopup show={updateShow} onClose={closeUpdate} onDelete={onDeleteCollect} onUpdate={onUpdate}/>
|
<CreatePopup defaultValue={initData} show={collectioinShow} onClose={closeCollection} onSuccess={onCreatSuccess}/>
|
||||||
</View>
|
</View>
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -7,7 +7,7 @@ import OrderCount from './components/orderCount';
|
|||||||
import ShopCart from '@/components/shopCart';
|
import ShopCart from '@/components/shopCart';
|
||||||
import Preview,{colorItem} from './components/preview';
|
import Preview,{colorItem} from './components/preview';
|
||||||
import styles from './index.module.scss'
|
import styles from './index.module.scss'
|
||||||
import { useEffect, useMemo, useRef, useState } from 'react';
|
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
||||||
import {formatHashTag, formatImgUrl} from '@/common/fotmat'
|
import {formatHashTag, formatImgUrl} from '@/common/fotmat'
|
||||||
import {GetProductDetailApi} from '@/api/material'
|
import {GetProductDetailApi} from '@/api/material'
|
||||||
import useLogin from '@/use/useLogin';
|
import useLogin from '@/use/useLogin';
|
||||||
@ -16,6 +16,8 @@ import { SHARE_SCENE } from '@/common/enum';
|
|||||||
import useUserInfo from '@/use/useUserInfo';
|
import useUserInfo from '@/use/useUserInfo';
|
||||||
import LabAndImg from '@/components/LabAndImg';
|
import LabAndImg from '@/components/LabAndImg';
|
||||||
import { alert } from '@/common/common';
|
import { alert } from '@/common/common';
|
||||||
|
import AddCollection from '@/components/addCollection';
|
||||||
|
import { AddFavoriteApi } from '@/api/favorite';
|
||||||
|
|
||||||
type item = {title:string, img:string, url:string, id:number}
|
type item = {title:string, img:string, url:string, id:number}
|
||||||
|
|
||||||
@ -100,11 +102,7 @@ export default (props:Params) => {
|
|||||||
const [collectStatus, setCollectStatus] = useState(false)
|
const [collectStatus, setCollectStatus] = useState(false)
|
||||||
const changeCollect = () => {
|
const changeCollect = () => {
|
||||||
setCollectStatus(!collectStatus)
|
setCollectStatus(!collectStatus)
|
||||||
Taro.showToast({
|
setCollectionShow(true)
|
||||||
title: '收藏成功',
|
|
||||||
icon: 'success',
|
|
||||||
duration: 2000
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const {setSortCode, userInfo : userObj } = useUserInfo()
|
const {setSortCode, userInfo : userObj } = useUserInfo()
|
||||||
@ -134,6 +132,19 @@ export default (props:Params) => {
|
|||||||
setShowOrderCount(true)
|
setShowOrderCount(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//加入收藏夹
|
||||||
|
const [collectionShow, setCollectionShow] = useState(false)
|
||||||
|
const {fetchData: addFavoritefetchData} = AddFavoriteApi()
|
||||||
|
const onAdd = useCallback(async (val) => {
|
||||||
|
let res = await addFavoritefetchData({favorite_id: val.id, product_id: Number(params.id)})
|
||||||
|
if(res.success) {
|
||||||
|
alert.success('添加成功')
|
||||||
|
} else {
|
||||||
|
alert.none(res.msg)
|
||||||
|
}
|
||||||
|
setCollectionShow(false)
|
||||||
|
}, [params])
|
||||||
|
|
||||||
|
|
||||||
//页面下拉刷新
|
//页面下拉刷新
|
||||||
usePullDownRefresh(() => {
|
usePullDownRefresh(() => {
|
||||||
@ -202,6 +213,7 @@ export default (props:Params) => {
|
|||||||
</CustomWrapper>
|
</CustomWrapper>
|
||||||
<ShopCart show={showCart} onClose={() => setShowCart(false)}/>
|
<ShopCart show={showCart} onClose={() => setShowCart(false)}/>
|
||||||
<Preview value={colorInfo} show={showPreview} onClose={() => setShowPreview(false)}/>
|
<Preview value={colorInfo} show={showPreview} onClose={() => setShowPreview(false)}/>
|
||||||
|
<AddCollection show={collectionShow} onAdd={onAdd}/>
|
||||||
<View className='common_safe_area_y'></View>
|
<View className='common_safe_area_y'></View>
|
||||||
</View>
|
</View>
|
||||||
)
|
)
|
||||||
|
@ -5,7 +5,7 @@ import { memo, useCallback, useEffect, useRef, useState } from "react";
|
|||||||
import ReasonPopup from "../reasonPopup";
|
import ReasonPopup from "../reasonPopup";
|
||||||
import styles from './index.module.scss'
|
import styles from './index.module.scss'
|
||||||
import classnames from "classnames";
|
import classnames from "classnames";
|
||||||
import { ApplyRefundApi } from "@/api/salesAfterOrder";
|
import { ApplyRefundApi, RefundExplainApi } from "@/api/salesAfterOrder";
|
||||||
import { alert } from "@/common/common";
|
import { alert } from "@/common/common";
|
||||||
|
|
||||||
type Param = {
|
type Param = {
|
||||||
@ -17,21 +17,24 @@ export default memo(({show, onClose, orderId}:Param) => {
|
|||||||
|
|
||||||
//提交的数据
|
//提交的数据
|
||||||
const submitData = useRef({
|
const submitData = useRef({
|
||||||
return_explain: 1,
|
return_explain: 0,
|
||||||
sale_order_id: 0,
|
sale_order_id: 0,
|
||||||
reason_describe: ''
|
reason_describe: ''
|
||||||
})
|
})
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if(orderId)
|
if(orderId) {
|
||||||
submitData.current.sale_order_id = orderId
|
submitData.current.sale_order_id = orderId
|
||||||
|
refundExplain()
|
||||||
|
}
|
||||||
|
|
||||||
}, [orderId])
|
}, [orderId])
|
||||||
|
|
||||||
//申请退款
|
//申请退款
|
||||||
const {fetchData} = ApplyRefundApi()
|
const {fetchData} = ApplyRefundApi()
|
||||||
const getApplyRefund = async () => {
|
const getApplyRefund = async () => {
|
||||||
let res = await fetchData(submitData.current)
|
|
||||||
if(!submitData.current.return_explain) return alert.error('请选择说明原因')
|
if(!submitData.current.return_explain) return alert.error('请选择说明原因')
|
||||||
|
let res = await fetchData(submitData.current)
|
||||||
if(res.success) {
|
if(res.success) {
|
||||||
alert.error('申请成功')
|
alert.error('申请成功')
|
||||||
} else {
|
} else {
|
||||||
@ -42,6 +45,17 @@ export default memo(({show, onClose, orderId}:Param) => {
|
|||||||
|
|
||||||
//获取说明数据
|
//获取说明数据
|
||||||
const [list, setList] = useState<any[]>([])
|
const [list, setList] = useState<any[]>([])
|
||||||
|
const {fetchData: refundExplainFetchdata} = RefundExplainApi()
|
||||||
|
const refundExplain = async () => {
|
||||||
|
let res = await refundExplainFetchdata()
|
||||||
|
setList(res.data.list)
|
||||||
|
}
|
||||||
|
const [reason, setReason] = useState({id:0, name:''})
|
||||||
|
const reasonSelect = useCallback((e) => {
|
||||||
|
setReason({...reason, name:e.name, id:e.id})
|
||||||
|
submitData.current.return_explain = e.id
|
||||||
|
closeReason()
|
||||||
|
}, [])
|
||||||
|
|
||||||
|
|
||||||
//备注
|
//备注
|
||||||
@ -71,8 +85,6 @@ export default memo(({show, onClose, orderId}:Param) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Popup show={show} title="申请退款" onClose={onClose} >
|
<Popup show={show} title="申请退款" onClose={onClose} >
|
||||||
@ -80,7 +92,7 @@ export default memo(({show, onClose, orderId}:Param) => {
|
|||||||
<View className={styles.returnSaleInput_item}>
|
<View className={styles.returnSaleInput_item}>
|
||||||
<View className={styles.title}>退款说明</View>
|
<View className={styles.title}>退款说明</View>
|
||||||
<View className={styles.select} onClick={() => setShowReason(true)}>
|
<View className={styles.select} onClick={() => setShowReason(true)}>
|
||||||
<Text>请选择</Text>
|
<Text>{reason.name||'请选择'}</Text>
|
||||||
<Text className={classnames(styles.miconfont, 'iconfont icon-a-moreback')}></Text>
|
<Text className={classnames(styles.miconfont, 'iconfont icon-a-moreback')}></Text>
|
||||||
</View>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
@ -93,7 +105,7 @@ export default memo(({show, onClose, orderId}:Param) => {
|
|||||||
</View>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
</Popup>
|
</Popup>
|
||||||
<ReasonPopup show={showReason} onClose={closeReason} list={list} title="退款说明"/>
|
<ReasonPopup defaultValue={reason.id} show={showReason} onClose={closeReason} list={list} title="退款说明" onSelect={reasonSelect}/>
|
||||||
</>
|
</>
|
||||||
)
|
)
|
||||||
})
|
})
|
@ -268,9 +268,9 @@ import styles from './index.module.scss'
|
|||||||
<SearchInput showBorder={false} title='下单时间' height={50}>
|
<SearchInput showBorder={false} title='下单时间' height={50}>
|
||||||
<Text>{formatDateTime(orderDetail?.create_time)}</Text>
|
<Text>{formatDateTime(orderDetail?.create_time)}</Text>
|
||||||
</SearchInput>
|
</SearchInput>
|
||||||
<SearchInput showBorder={false} title='付款时间' height={50}>
|
{(orderDetail?.payment_time)&&<SearchInput showBorder={false} title='付款时间' height={50}>
|
||||||
<Text>{formatDateTime(orderDetail?.create_time)}</Text>
|
<Text>{formatDateTime(orderDetail?.payment_time)}</Text>
|
||||||
</SearchInput>
|
</SearchInput>}
|
||||||
</View>
|
</View>
|
||||||
<View className={styles.order_desc} onClick={() => setShowDesc(true)}>
|
<View className={styles.order_desc} onClick={() => setShowDesc(true)}>
|
||||||
<View className={styles.order_desc_con}>订单备注</View>
|
<View className={styles.order_desc_con}>订单备注</View>
|
||||||
|
@ -45,18 +45,7 @@ export default memo(({order, comfirm = false}:Param) => {
|
|||||||
return `${order?.total_fabrics}种面料,${order?.total_colors}种颜色,共${order?.total_number}${order?.unit}`
|
return `${order?.total_fabrics}种面料,${order?.total_colors}种颜色,共${order?.total_number}${order?.unit}`
|
||||||
}, [order])
|
}, [order])
|
||||||
|
|
||||||
// const {
|
|
||||||
// SaleOrderStatusBooking, // 待接单
|
|
||||||
// SaleOrderStatusArranging, // 配布中
|
|
||||||
// SaleOrderStatusArranged, // 已配布
|
|
||||||
// SaleOrderStatusWaitingPayment, // 待付款
|
|
||||||
// SaleOrderStatusWaitingDelivery, // 待发货
|
|
||||||
// SaleOrderStatusWaitingReceipt, // 待收货
|
|
||||||
// SaleOrderStatusAlreadyReceipt, // 已收货
|
|
||||||
// SaleOrderStatusComplete, // 已完成
|
|
||||||
// SaleOrderStatusRefund, // 已退款
|
|
||||||
// SaleOrderStatusCancel, // 已取消
|
|
||||||
// } = ORDER_STATUS
|
|
||||||
|
|
||||||
//金额列表枚举
|
//金额列表枚举
|
||||||
const priceList = [
|
const priceList = [
|
||||||
|
@ -1,14 +1,8 @@
|
|||||||
import {
|
|
||||||
GetSaleOrderDetailApi,
|
|
||||||
EditSaleOrderRemarkApi,
|
|
||||||
} from "@/api/order";
|
|
||||||
import { GetOrderPayApi } from "@/api/orderPay";
|
|
||||||
import { SaleOrderOrderDetailApi } from "@/api/salesAfterOrder";
|
import { SaleOrderOrderDetailApi } from "@/api/salesAfterOrder";
|
||||||
import { alert, goLink } from "@/common/common";
|
|
||||||
import { AFTER_ORDER_STATUS, ORDER_STATUS } from "@/common/enum";
|
import { AFTER_ORDER_STATUS, ORDER_STATUS } from "@/common/enum";
|
||||||
import { formatDateTime, formatImgUrl, formatPriceDiv } from "@/common/fotmat";
|
import { formatDateTime, formatImgUrl, formatPriceDiv } from "@/common/fotmat";
|
||||||
import AfterOrderBtns from "@/components/afterOrderBtns";
|
import AfterOrderBtns from "@/components/afterOrderBtns";
|
||||||
import OrderBtns from "@/components/orderBtns";
|
|
||||||
import SearchInput from "@/components/searchInput";
|
import SearchInput from "@/components/searchInput";
|
||||||
import { Image, Text, Textarea, View } from "@tarojs/components"
|
import { Image, Text, Textarea, View } from "@tarojs/components"
|
||||||
import Taro, {useDidShow, usePullDownRefresh, useRouter } from "@tarojs/taro";
|
import Taro, {useDidShow, usePullDownRefresh, useRouter } from "@tarojs/taro";
|
||||||
@ -121,7 +115,6 @@ import styles from './index.module.scss'
|
|||||||
}, [])
|
}, [])
|
||||||
//物流成功上传
|
//物流成功上传
|
||||||
const logisticsSuccess = useCallback(() => {
|
const logisticsSuccess = useCallback(() => {
|
||||||
console.log('12312132121113')
|
|
||||||
setLogisticsShow(false)
|
setLogisticsShow(false)
|
||||||
getSaleOrderPreView()
|
getSaleOrderPreView()
|
||||||
}, [])
|
}, [])
|
||||||
@ -129,8 +122,6 @@ import styles from './index.module.scss'
|
|||||||
//显示生气记录
|
//显示生气记录
|
||||||
const [applyRecord, setApplyRecord] = useState(false)
|
const [applyRecord, setApplyRecord] = useState(false)
|
||||||
|
|
||||||
//货
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<View className={styles.order_main}>
|
<View className={styles.order_main}>
|
||||||
<OrderState orderInfo={orderDetail}/>
|
<OrderState orderInfo={orderDetail}/>
|
||||||
|
@ -12,6 +12,7 @@ import useLogin from "@/use/useLogin";
|
|||||||
import { useSelector } from "@/reducers/hooks";
|
import { useSelector } from "@/reducers/hooks";
|
||||||
import useUploadCDNImg from "@/use/useUploadImage";
|
import useUploadCDNImg from "@/use/useUploadImage";
|
||||||
import { IMG_CND_Prefix } from "@/common/constant";
|
import { IMG_CND_Prefix } from "@/common/constant";
|
||||||
|
import useUserInfo from "@/use/useUserInfo";
|
||||||
|
|
||||||
export default () => {
|
export default () => {
|
||||||
const { getPhoneNumber, getAdminUserInfo } = useLogin();
|
const { getPhoneNumber, getAdminUserInfo } = useLogin();
|
||||||
@ -141,6 +142,14 @@ export default () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const {removeToken, removeSessionKey, removeUserInfo} = useUserInfo()
|
||||||
|
const outLogin = () => {
|
||||||
|
removeToken()
|
||||||
|
removeSessionKey()
|
||||||
|
removeUserInfo()
|
||||||
|
goLink('/pages/index/index',{}, 'switchTab')
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<View className="user-edit">
|
<View className="user-edit">
|
||||||
<View onClick={handleSelectRortrait} className="user-edit-portrait">
|
<View onClick={handleSelectRortrait} className="user-edit-portrait">
|
||||||
@ -174,7 +183,7 @@ export default () => {
|
|||||||
</UserEditList>
|
</UserEditList>
|
||||||
<UserEditList label="创建人" data={(formData as any)?.founder_user_name} placeholder="完善公司/组织信息" icon="" useIcon="true" />
|
<UserEditList label="创建人" data={(formData as any)?.founder_user_name} placeholder="完善公司/组织信息" icon="" useIcon="true" />
|
||||||
</View>
|
</View>
|
||||||
{/* <Button hoverClass="none" className="user-edit-logout">退出当前账号</Button> */}
|
<Button hoverClass="none" className="user-edit-logout" onClick={outLogin}>退出当前账号</Button>
|
||||||
|
|
||||||
<ModifyModal title="修改昵称" ref={ModifyIcknameEl} value={(formData as any)?.user_name} save={(value) => handleTextareaSave(value, "Ickname")} />
|
<ModifyModal title="修改昵称" ref={ModifyIcknameEl} value={(formData as any)?.user_name} save={(value) => handleTextareaSave(value, "Ickname")} />
|
||||||
<ModifyModal title="修改名称" ref={ModifyCompanyNameEl} value={(formData as any)?.company_name} save={(value) => handleTextareaSave(value, "companyName")} />
|
<ModifyModal title="修改名称" ref={ModifyCompanyNameEl} value={(formData as any)?.company_name} save={(value) => handleTextareaSave(value, "companyName")} />
|
||||||
|
@ -171,6 +171,13 @@ export const useRequest = (options:option = {
|
|||||||
stateRef.current.msg = msg
|
stateRef.current.msg = msg
|
||||||
stateRef.current.data = data
|
stateRef.current.data = data
|
||||||
stateRef.current.total = data?.list ? data?.total : 0
|
stateRef.current.total = data?.list ? data?.total : 0
|
||||||
|
if(code !== 0) {
|
||||||
|
Taro.showToast({
|
||||||
|
title: `${msg}`,
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
|
console.log('错误::',msg)
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
if (statusCode === 401) {
|
if (statusCode === 401) {
|
||||||
removeToken()
|
removeToken()
|
||||||
@ -189,6 +196,7 @@ export const useRequest = (options:option = {
|
|||||||
stateRef.current.success = false
|
stateRef.current.success = false
|
||||||
stateRef.current.error = true
|
stateRef.current.error = true
|
||||||
stateRef.current.msg = e.errMsg
|
stateRef.current.msg = e.errMsg
|
||||||
|
console.log('后台错误信息::',e.errMsg)
|
||||||
|
|
||||||
}
|
}
|
||||||
stateRef.current.error = false
|
stateRef.current.error = false
|
||||||
|
Loading…
x
Reference in New Issue
Block a user