diff --git a/src/api/shopCart.ts b/src/api/shopCart.ts
index 4cbc973..ae493b8 100644
--- a/src/api/shopCart.ts
+++ b/src/api/shopCart.ts
@@ -22,6 +22,17 @@ export const AddShoppingCartApi = () => {
})
}
+/**
+ * 立即购买
+ * @returns
+ */
+export const MallsaleOrderadd = () => {
+ return useRequest({
+ url: '/v1/mall/saleOrder/add',
+ method: 'post',
+ })
+}
+
/**
* 批量删除购物车面料颜色
* @returns
@@ -76,3 +87,14 @@ export const GetScrewProductApi = () => {
method: 'get',
})
}
+
+/**
+ * 销售单预览v2
+ * @returns
+ */
+export const SaleOrderpreView = () => {
+ return useRequest({
+ url: '/v2/mall/saleOrder/preView',
+ method: 'put',
+ })
+}
diff --git a/src/app.config.ts b/src/app.config.ts
index 7773e34..75c4777 100644
--- a/src/app.config.ts
+++ b/src/app.config.ts
@@ -108,6 +108,7 @@ export default {
pages: [
'index',
'comfirm',
+ 'speedComfirm',
'orderList/index',
],
},
diff --git a/src/common/constant.ts b/src/common/constant.ts
index 926374a..52a5e1f 100644
--- a/src/common/constant.ts
+++ b/src/common/constant.ts
@@ -1,4 +1,4 @@
-// export const BASE_URL = CURRENT_BASE_URL
+export const BASE_URL = CURRENT_BASE_URL
// export const BASE_URL = `http://192.168.0.75:50001/lymarket`
// export const BASE_URL = `http://192.168.0.89:50001/lymarket`
// export const BASE_URL = `http://10.0.0.5:50001/lymarket`
@@ -13,7 +13,7 @@
// 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.28:50001/lymarket' // 婷
+// export const BASE_URL = 'http://192.168.1.28:50001/lymarket' // 婷
// export const BASE_URL = 'http://192.168.1.42:50002/lymarket' // 杰
// CDN
diff --git a/src/pages/details/components/orderCount/index.module.scss b/src/pages/details/components/orderCount/index.module.scss
index cd5c0c5..4a042c8 100644
--- a/src/pages/details/components/orderCount/index.module.scss
+++ b/src/pages/details/components/orderCount/index.module.scss
@@ -231,7 +231,7 @@
height: 151px;
}
.add_cart {
- width: 260px;
+ width: 200px;
height: 90px;
font-size: $font_size_big;
text-align: center;
diff --git a/src/pages/details/components/orderCount/index.tsx b/src/pages/details/components/orderCount/index.tsx
index c8615f2..8742b3e 100644
--- a/src/pages/details/components/orderCount/index.tsx
+++ b/src/pages/details/components/orderCount/index.tsx
@@ -12,7 +12,7 @@ import Search from '@/components/search'
import Counter from '@/components/counter'
import { useSelector } from '@/reducers/hooks'
import { GetColorList } from '@/api/materialColor'
-import { AddShoppingCartApi } from '@/api/shopCart'
+import { AddShoppingCartApi, MallsaleOrderadd } from '@/api/shopCart'
import UseLogin from '@/use/useLogin'
import { formatHashTag, formatPriceDiv, formatWeightDiv } from '@/common/fotmat'
import { getFilterData } from '@/common/util'
@@ -110,7 +110,7 @@ const OrderCount = ({ show = false, onClose, title = '', productId = 0, is_first
if (item.count > 0) {
sumCount = Big(sumCount).add(item.count).toNumber()
kindCount++
- color_list_info = selectIndex == 0 ? { product_color_id: item.id, roll: item.count } : { product_color_id: item.id, length: item.count * 100 }
+ color_list_info = selectIndex == 0 ? { product_color_id: item.id, roll: item.count, sale_price: formatPriceDiv(item.bulk_price) } : { product_color_id: item.id, length: item.count * 100, sale_price: selectIndex == 1 ? formatPriceDiv(item.length_cut_price) : formatPriceDiv(item.weight_cut_price) }
color_list.push(color_list_info)
}
})
@@ -195,6 +195,29 @@ const OrderCount = ({ show = false, onClose, title = '', productId = 0, is_first
})
}
}
+ const handShopBuy = async() => {
+ try {
+ await getSelfUserInfo()
+ }
+ catch (msg) {
+ Taro.showToast({
+ icon: 'none',
+ title: '授权失败,请求完善授权',
+ })
+ return false
+ }
+ if (selectCount.sumCount == 0) {
+ Taro.showToast({
+ icon: 'none',
+ title: '请选择面料颜色!',
+ })
+ return false
+ }
+ Taro.navigateTo({
+ url: `/pages/order/speedComfirm?sale_mode=${Number(selectIndex)}&buyList=${JSON.stringify(selectCount.color_list)}`,
+ })
+ console.log(selectIndex, ':selectIndex', selectCount.color_list, ':selectCount.color_list', recommendStatus, ':recommendStatus')
+ }
// 筛选数据
const searchInput = useCallback((e) => {
@@ -423,6 +446,9 @@ const OrderCount = ({ show = false, onClose, title = '', productId = 0, is_first
addShopCart()}>
加入购物车
+ handShopBuy()}>
+ 立即购买
+
diff --git a/src/pages/order/speedComfirm.config.ts b/src/pages/order/speedComfirm.config.ts
new file mode 100644
index 0000000..67ce23e
--- /dev/null
+++ b/src/pages/order/speedComfirm.config.ts
@@ -0,0 +1,4 @@
+export default {
+ navigationBarTitleText: '确认订单',
+ enableShareAppMessage: true,
+}
diff --git a/src/pages/order/speedComfirm.tsx b/src/pages/order/speedComfirm.tsx
new file mode 100644
index 0000000..5496cc8
--- /dev/null
+++ b/src/pages/order/speedComfirm.tsx
@@ -0,0 +1,253 @@
+import { View } from '@tarojs/components'
+import Taro, { useDidShow, usePullDownRefresh, useRouter } from '@tarojs/taro'
+import classnames from 'classnames'
+import { useCallback, useEffect, useMemo, useRef, useState } from 'react'
+import KindList from './components/kindList'
+import Remark from './components/remark'
+import styles from './comfirm.module.scss'
+import SubmitOrderBtn from './components/submitOrderBtn'
+import AddressInfoDetail from './components/addressInfoDetail'
+import { getParam } from '@/common/system'
+import { alert, goLink } from '@/common/common'
+import Popup from '@/components/popup'
+import { formatPriceDiv } from '@/common/fotmat'
+import { SaleOrderApi, SaleOrderPreViewApi } from '@/api/order'
+import { SubscriptionMessageApi } from '@/api/user'
+import { SUBSCRIPTION_MESSAGE_SCENE } from '@/common/enum'
+import { UseSubscriptionMessage } from '@/use/useCommon'
+import { throttle } from '@/common/util'
+import MoveBtn from '@/components/moveBtn'
+import { MallsaleOrderadd, SaleOrderpreView } from '@/api/shopCart'
+
+const SpeedComfirm = () => {
+ const router = useRouter()
+
+ const [showDesc, setShowDesc] = useState(false)
+ // 下单信息
+ interface OrderParams { address_id?: number; remark?: string; sale_mode?: number; shipment_mode?: number; list?: any[] }
+ const [submitOrderData, setSubmitOrderData] = useState()
+
+ // 获取购物车传过来的id
+ interface orderPreParam {
+ // shopping_cart_product_color_list: { shopping_cart_product_color_id: number }[]
+ sale_order_product_color_list: any[]
+ sale_mode: number
+ }
+ const param = getParam()
+ const idsAndSaleModel = useRef({ sale_order_product_color_list: [], sale_mode: 0 })
+ // 获取销售预览订单
+ const [preViewOrder, setPreViewOrder] = useState() // 获取到的原始数据
+ const { fetchData } = SaleOrderpreView()
+ const getSaleOrderPreView = async() => {
+ if (idsAndSaleModel.current.sale_order_product_color_list?.length > 0) {
+ const arr: any[] = []
+ idsAndSaleModel.current.sale_order_product_color_list.forEach((item: any) => {
+ arr.push({
+ length: item?.length || 0,
+ roll: item.roll,
+ // sale_price: item.sale_price,
+ product_color_id: item.product_color_id,
+ })
+ })
+ const query = {
+ sale_mode: idsAndSaleModel.current.sale_mode,
+ sale_order_product_color_list: arr,
+ }
+ const res = await fetchData(query)
+ setPreViewOrder(res.data)
+ }
+ }
+ useDidShow(async() => {
+ idsAndSaleModel.current = { sale_order_product_color_list: [], sale_mode: 0 } // 初始化
+ idsAndSaleModel.current.sale_mode = Number(router.params?.sale_mode)
+ // param?.ids?.split('-')?.map((item) => {
+ // return idsAndSaleModel.current.shopping_cart_product_color_list?.push({
+ // shopping_cart_product_color_id: Number(item),
+ // })
+ // })
+ idsAndSaleModel.current.sale_order_product_color_list = JSON.parse(router?.params?.buyList as string)
+ getSaleOrderPreView()
+ setSubmitOrderData(val => ({ ...val, sale_mode: param?.sale_mode }))
+ })
+
+ // 格式化数据格式
+ const [formatPreViewOrder, setFormatPreViewOrder] = useState() // 格式化后的数据
+ const formatData = () => {
+ setFormatPreViewOrder({
+ estimate_amount: preViewOrder.estimate_amount, // 预估金额
+ sale_mode: preViewOrder.sale_mode,
+ sale_mode_name: preViewOrder.sale_mode_name,
+ total_colors: preViewOrder.total_colors, // 总颜色数量
+ total_number: preViewOrder.total_number, // 总数量
+ total_fabrics: preViewOrder.total_fabrics, // 面料数量
+ unit: preViewOrder.sale_mode == 0 ? '条' : 'm', // 单位
+ list: preViewOrder.product_list,
+ total_should_collect_money: preViewOrder.total_should_collect_money, // 应收金额
+ total_sale_price: preViewOrder.total_sale_price, // 合计金额
+ })
+ }
+ const formatPreViewOrderMemo = useMemo(() => {
+ return formatPreViewOrder
+ }, [formatPreViewOrder])
+
+ // 格式化初始地址
+ const defaultAddress = useMemo(() => {
+ const address = preViewOrder?.default_address
+ return {
+ province_name: address?.province_name,
+ city_name: address?.city_name,
+ district_name: address?.district_name,
+ address_detail: address?.address_detail,
+ id: address?.id,
+ target_user_name: address?.name,
+ target_user_phone: address?.phone,
+ shipment_mode: address?.shipment_mode,
+ take_goods_address: preViewOrder?.take_goods_address,
+ take_goods_phone: preViewOrder?.take_goods_phone,
+ }
+ }, [preViewOrder])
+
+ // 获取提交格式数据列表
+ const getDataList = () => {
+ const list: any [] = []
+ preViewOrder.product_list?.forEach((item) => {
+ item.product_colors?.forEach((colorItem) => {
+ list.push({ product_color_id: colorItem.id, sale_price: colorItem.sale_price, roll: colorItem.roll, length: colorItem.length })
+ })
+ })
+ setSubmitOrderData(val => ({ ...val, list }))
+ }
+
+ // 获取地址
+ const getAddress = (e) => {
+ setSubmitOrderData(val => ({ ...val, address_id: e.id }))
+ }
+
+ const selectShipmentMode = useCallback((value) => {
+ setSubmitOrderData(val => ({ ...val, shipment_mode: value }))
+ }, [])
+
+ // 获取备注
+ const getRemark = useCallback((e) => {
+ setSubmitOrderData(val => ({ ...val, remark: e }))
+ setShowDesc(() => false)
+ }, [])
+
+ // 提交按钮是否可用
+ const btnStatus = useMemo(() => {
+ return submitOrderData?.shipment_mode == 1 || (submitOrderData?.shipment_mode == 2 && submitOrderData?.address_id)
+ }, [submitOrderData])
+
+ // 数量格式
+ const numText = useMemo(() => {
+ if (formatPreViewOrder) {
+ const total_number = formatPreViewOrder?.sale_mode == 0 ? formatPreViewOrder?.total_number : formatPreViewOrder?.total_number / 100
+ return `${formatPreViewOrder?.total_fabrics} 种面料,${formatPreViewOrder?.total_colors} 种颜色,共 ${total_number} ${formatPreViewOrder?.unit}`
+ }
+ }, [formatPreViewOrder])
+
+ // 订阅消息
+ const { SubmitOrder } = SUBSCRIPTION_MESSAGE_SCENE
+ const { openSubscriptionMessage } = UseSubscriptionMessage()
+
+ // 提交订单
+ // const { fetchData: saleOrderFetchData } = SaleOrderApi()
+ const { fetchData: buyFetch } = MallsaleOrderadd()
+ const submitOrderEven = throttle(async() => {
+ if (!submitOrderData?.shipment_mode) {
+ alert.error('请选择收货方式')
+ return false
+ }
+ if (!submitOrderData?.address_id && submitOrderData?.shipment_mode == 2) {
+ alert.error('请选择地址')
+ return false
+ }
+ const showModalRes = await Taro.showModal({
+ title: '确定提交订单?',
+ content: `发货方式为${submitOrderData?.shipment_mode == 1 ? '自提' : '物流'}`,
+ confirmText: '确定',
+ cancelText: '取消',
+ })
+ if (showModalRes.confirm) {
+ await openSubscriptionMessage({ scenes: SubmitOrder.value })
+ Taro.showLoading({
+ title: '订单提交中...',
+ mask: true,
+ })
+ const query = {
+ sale_mode: Number(router.params.sale_mode),
+ shipment_mode: submitOrderData.shipment_mode,
+ address_id: submitOrderData.address_id,
+ remark: submitOrderData?.remark || '',
+ sale_order_product_color_list: submitOrderData?.list,
+ }
+ console.log(submitOrderData, 'submitOrderData')
+ console.log(query, 'queryquery')
+ const res = await buyFetch(query)
+ Taro.hideLoading()
+ if (res.success) {
+ goLink('/pages/order/index', { id: res.data.id }, 'redirectTo')
+ }
+ else {
+ alert.none(res.msg)
+ }
+ }
+ }, 800)
+
+ // 页面下拉刷新
+ usePullDownRefresh(() => {
+ getSaleOrderPreView()
+ })
+ // 监听获取到的数据
+ useEffect(() => {
+ if (preViewOrder) {
+ formatData()
+ getDataList()
+ setSubmitOrderData(val => ({
+ ...val,
+ address_id: preViewOrder.default_address.id,
+ shipment_mode: preViewOrder.shipment_mode || 2,
+ }))
+ }
+ }, [preViewOrder])
+ return (
+
+
+ {
+ preViewOrder?.notice !== '' &&
+
+ !
+ {preViewOrder?.notice}
+
+
+ }
+
+
+ setShowDesc(true)}>
+ 订单备注
+ {(submitOrderData?.remark && {submitOrderData?.remark}) || 填写备注}
+
+
+
+
+
+ {numText}
+
+ submitOrderEven()}>
+ 提交订单
+
+
+ setShowDesc(false)}>
+ getRemark(e)} />
+
+
+
+
+ )
+}
+
+export default SpeedComfirm