商城测试版v8
This commit is contained in:
parent
84bc43fbb9
commit
d30fdd28a8
37
src/app.tsx
37
src/app.tsx
@ -4,8 +4,7 @@ import { Provider } from 'react-redux'
|
|||||||
import configStore from './store'
|
import configStore from './store'
|
||||||
import './app.scss'
|
import './app.scss'
|
||||||
import Taro, { useDidShow} from '@tarojs/taro'
|
import Taro, { useDidShow} from '@tarojs/taro'
|
||||||
import { analysisShortCodeApi } from './common/shortCode'
|
import { shareShop } from './common/util'
|
||||||
import { IMG_CND_Prefix } from './common/constant'
|
|
||||||
|
|
||||||
const store = configStore()
|
const store = configStore()
|
||||||
const App:FC = (params) => {
|
const App:FC = (params) => {
|
||||||
@ -14,38 +13,8 @@ const App:FC = (params) => {
|
|||||||
withShareTicket: true
|
withShareTicket: true
|
||||||
})
|
})
|
||||||
|
|
||||||
useDidShow(() => {
|
//分享
|
||||||
console.log('params:',params)
|
shareShop()
|
||||||
})
|
|
||||||
|
|
||||||
const page = Taro.getCurrentInstance().page
|
|
||||||
console.log('res:::', page)
|
|
||||||
if(page && page.onShareAppMessage) {
|
|
||||||
//当有分享参数时,绑定上下级
|
|
||||||
if(page.options?.share) {
|
|
||||||
analysisShortCodeApi(page.options.share)
|
|
||||||
}
|
|
||||||
page.onShareAppMessage = (res) => {
|
|
||||||
let path = ''
|
|
||||||
let title = ''
|
|
||||||
let imageUrl = ''
|
|
||||||
let sortCode = Taro.getStorageSync('sort_code')?JSON.parse(Taro.getStorageSync('sort_code')):''
|
|
||||||
if(res.from === 'button') {
|
|
||||||
path = `/pages/details/index?share=${sortCode.shareShortDetail.code}`
|
|
||||||
title = sortCode.shareShortDetail.title
|
|
||||||
imageUrl = sortCode.shareShortDetail.img
|
|
||||||
} else {
|
|
||||||
path = `/pages/index/index?share=${sortCode.shareShortPage.code}`
|
|
||||||
title = sortCode.shareShortPage.title
|
|
||||||
imageUrl = sortCode.shareShortPage.img
|
|
||||||
}
|
|
||||||
return {
|
|
||||||
title,
|
|
||||||
path,
|
|
||||||
imageUrl,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ContextBlueTooth>
|
<ContextBlueTooth>
|
||||||
|
@ -109,16 +109,24 @@ export const retrieval = (data: any, rules?: Object, message: string="请填写
|
|||||||
title,icon: "error"
|
title,icon: "error"
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
loading(title: string){
|
loading(title: string, mask: true|false = false){
|
||||||
Taro.showToast({
|
Taro.showToast({
|
||||||
title,icon: "loading"
|
title,icon: "loading",
|
||||||
|
mask
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
none(title: string){
|
none(title: string){
|
||||||
Taro.showToast({
|
Taro.showToast({
|
||||||
title,icon: "none"
|
title,icon: "none"
|
||||||
})
|
})
|
||||||
|
|
||||||
},
|
},
|
||||||
|
showLoading(title: string, mask: true|false = true) {
|
||||||
|
Taro.showLoading({title, mask})
|
||||||
|
},
|
||||||
|
hideLoading() {
|
||||||
|
Taro.hideLoading()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 金额千位分割符
|
// 金额千位分割符
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
// export const BASE_URL = `http://10.0.0.5:50001/lymarket`
|
// export const BASE_URL = `http://10.0.0.5:50001/lymarket`
|
||||||
// export const BASE_URL = `http://192.168.0.89:40001/lymarket`
|
// export const BASE_URL = `http://192.168.0.89:40001/lymarket`
|
||||||
// export const BASE_URL = `http://192.168.1.165:40001/lymarket` // 王霞
|
// export const BASE_URL = `http://192.168.1.165:40001/lymarket` // 王霞
|
||||||
// export const BASE_URL = `https://test.zzfzyc.com/lymarket` // 测试环境
|
export const BASE_URL = `https://test.zzfzyc.com/lymarket` // 测试环境
|
||||||
// export const BASE_URL = `http://192.168.1.9:40001/lymarket` // 发
|
// export const BASE_URL = `http://192.168.1.9:40001/lymarket` // 发
|
||||||
// export const BASE_URL = `http://192.168.1.9:50005/lymarket` // 发
|
// export const BASE_URL = `http://192.168.1.9:50005/lymarket` // 发
|
||||||
// export const BASE_URL = `http://192.168.1.30:50001/lymarket` // 发
|
// export const BASE_URL = `http://192.168.1.30:50001/lymarket` // 发
|
||||||
@ -12,7 +12,7 @@
|
|||||||
// 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
|
||||||
// 生成密钥
|
// 生成密钥
|
||||||
|
@ -1,36 +0,0 @@
|
|||||||
import Taro from "@tarojs/taro";
|
|
||||||
import { useStore } from "vuex";
|
|
||||||
import { computed } from "@vue/runtime-core";
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param {String} token
|
|
||||||
*/
|
|
||||||
export const setToken = (token) => {
|
|
||||||
Taro.setStorageSync('token', token)
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param {Object} userinfo
|
|
||||||
*/
|
|
||||||
export const setUserInfo = (userinfo) => {
|
|
||||||
Taro.setStorageSync('userInfo', userinfo)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 检查登录
|
|
||||||
*/
|
|
||||||
export const checkLogin = () => {
|
|
||||||
const store = useStore()
|
|
||||||
const token = computed(() => store.state.token)
|
|
||||||
console.log('checklogin token', token);
|
|
||||||
|
|
||||||
// 本地调试屏蔽
|
|
||||||
if (token == '') {
|
|
||||||
Taro.redirectTo({
|
|
||||||
url: '/pages/login/index',
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,3 +1,7 @@
|
|||||||
|
import { formatImgUrl } from "./fotmat";
|
||||||
|
import { analysisShortCodeApi } from "./shortCode";
|
||||||
|
import Taro from '@tarojs/taro'
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 防抖
|
* 防抖
|
||||||
* @param {*} fn
|
* @param {*} fn
|
||||||
@ -103,3 +107,35 @@ export const throttle = (fn, delay) => {
|
|||||||
return 3
|
return 3
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//全局分享监听
|
||||||
|
export const shareShop = () => {
|
||||||
|
const page = Taro.getCurrentInstance().page
|
||||||
|
//当有分享参数时,绑定上下级
|
||||||
|
if(page && page.options?.share) {
|
||||||
|
analysisShortCodeApi(page.options.share)
|
||||||
|
}
|
||||||
|
if(page && page.onShareAppMessage) {
|
||||||
|
page.onShareAppMessage = (res) => {
|
||||||
|
let path = ''
|
||||||
|
let title = ''
|
||||||
|
let imageUrl = ''
|
||||||
|
let sortCode = Taro.getStorageSync('sort_code')?JSON.parse(Taro.getStorageSync('sort_code')):''
|
||||||
|
let pageInfo:any = page
|
||||||
|
if(res.from === 'button') {
|
||||||
|
path = `/pages/details/index?share=${sortCode.shareShortDetail.code}`
|
||||||
|
title = sortCode.shareShortDetail.title
|
||||||
|
imageUrl = sortCode.shareShortDetail.img
|
||||||
|
} else {
|
||||||
|
path = `/pages/index/index?share=${sortCode.shareShortPage.code}`
|
||||||
|
title = sortCode.shareShortPage.title
|
||||||
|
imageUrl = (pageInfo.route === 'pages/user/index')?formatImgUrl('/mall/share_img_02.png') : sortCode.shareShortPage.img
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
title,
|
||||||
|
path,
|
||||||
|
imageUrl,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,130 +0,0 @@
|
|||||||
import { GetProductKindListApi } from "@/api/material";
|
|
||||||
import Popup, {Params as PopuParams} from "@/components/popup"
|
|
||||||
import { Input, ScrollView, Text, Textarea, View } from "@tarojs/components"
|
|
||||||
import { useDidShow } from "@tarojs/taro";
|
|
||||||
import classnames from "classnames";
|
|
||||||
import { useEffect, useState } from "react";
|
|
||||||
import styles from './index.module.scss'
|
|
||||||
|
|
||||||
type params = {
|
|
||||||
onFiltr?: (val:object) => void
|
|
||||||
} & PopuParams
|
|
||||||
export default ({onClose, onFiltr, show = false}:params) => {
|
|
||||||
|
|
||||||
//搜索条件
|
|
||||||
const [filterObj, setFilterObj] = useState({
|
|
||||||
seriesId: '',
|
|
||||||
minWidth: '',
|
|
||||||
maxWidth: '',
|
|
||||||
minWeight: '',
|
|
||||||
maxWeight: '',
|
|
||||||
element: ''
|
|
||||||
})
|
|
||||||
|
|
||||||
//获取系列
|
|
||||||
const {fetchData: kindFetchData} = GetProductKindListApi()
|
|
||||||
const [kindList, setKindList] = useState<any[]>([])
|
|
||||||
const getCategoryList = async () => {
|
|
||||||
let {data} = await kindFetchData()
|
|
||||||
setKindList(data.list)
|
|
||||||
}
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
show&&getCategoryList()
|
|
||||||
}, [show])
|
|
||||||
|
|
||||||
//切换系列
|
|
||||||
const changeKind = (e) => {
|
|
||||||
setFilterObj({...filterObj, seriesId:e.id})
|
|
||||||
}
|
|
||||||
|
|
||||||
const onCloseEven = () => {
|
|
||||||
onClose?.()
|
|
||||||
}
|
|
||||||
const onRest = () => {
|
|
||||||
console.log('12123')
|
|
||||||
setFilterObj({
|
|
||||||
seriesId: '',
|
|
||||||
minWidth: '',
|
|
||||||
maxWidth: '',
|
|
||||||
minWeight: '',
|
|
||||||
maxWeight: '',
|
|
||||||
element: ''
|
|
||||||
})
|
|
||||||
}
|
|
||||||
useEffect(() => {
|
|
||||||
console.log(filterObj)
|
|
||||||
}, [filterObj])
|
|
||||||
|
|
||||||
const onVerify = () => {
|
|
||||||
console.log(filterObj)
|
|
||||||
onFiltr?.(filterObj)
|
|
||||||
}
|
|
||||||
|
|
||||||
const setNumber = (e, field) => {
|
|
||||||
console.log(e)
|
|
||||||
let num = parseFloat(e.detail.value)
|
|
||||||
if(isNaN(num)) {
|
|
||||||
filterObj[field] = null
|
|
||||||
} else {
|
|
||||||
filterObj[field] = parseFloat(num.toFixed(2))
|
|
||||||
}
|
|
||||||
setFilterObj({...filterObj})
|
|
||||||
}
|
|
||||||
|
|
||||||
const setElement = (e) => {
|
|
||||||
let res = e.detail.value
|
|
||||||
setFilterObj({...filterObj, element:res})
|
|
||||||
}
|
|
||||||
return (
|
|
||||||
|
|
||||||
<Popup position="right" show={show} showTitle={false} onClose={() => onCloseEven()} showIconButton={true}>
|
|
||||||
<View className={styles.popup_main}>
|
|
||||||
<View className={styles.popup_title}>全部筛选</View>
|
|
||||||
<ScrollView scrollY className={styles.scroll}>
|
|
||||||
<View className={styles.popup_filter}>
|
|
||||||
<View className={styles.popup_filter_item}>
|
|
||||||
<View className={styles.title}>系列</View>
|
|
||||||
<View className={styles.btn_list}>
|
|
||||||
{kindList.map(item => <View key={item.id} onClick={() => changeKind(item)} className={classnames(styles.btn_item, (filterObj.seriesId == item.id)&&styles.select_btn_item)}>{item.name}</View>)}
|
|
||||||
</View>
|
|
||||||
</View>
|
|
||||||
<View className={styles.popup_filter_item}>
|
|
||||||
<View className={styles.title}>幅宽</View>
|
|
||||||
<View className={styles.btn_list_input}>
|
|
||||||
<View className={styles.btn_width}><Input value={filterObj.minWidth} type="digit" onBlur={(e) => setNumber(e,'minWidth')} placeholder="自定义最低值" placeholderStyle="font-size: 26rpx"/></View>
|
|
||||||
<Text>—</Text>
|
|
||||||
<View className={styles.btn_width}><Input value={filterObj.maxWidth} type="digit" onBlur={(e) => setNumber(e,'maxWidth')} placeholder="自定义最高值" placeholderStyle="font-size: 26rpx"/></View>
|
|
||||||
<View className={styles.unit}>cm</View>
|
|
||||||
</View>
|
|
||||||
</View>
|
|
||||||
<View className={styles.popup_filter_item}>
|
|
||||||
<View className={styles.title}>克重</View>
|
|
||||||
<View className={styles.btn_list_input}>
|
|
||||||
<View className={styles.btn_width}><Input type="digit" value={filterObj.minWeight} onBlur={(e) => setNumber(e,'minWeight')} placeholder="自定义最低值" placeholderStyle="font-size: 26rpx"/></View>
|
|
||||||
<Text>—</Text>
|
|
||||||
<View className={styles.btn_width}><Input type="digit" value={filterObj.maxWeight} onBlur={(e) => setNumber(e,'maxWeight')} placeholder="自定义最高值" placeholderStyle="font-size: 26rpx"/></View>
|
|
||||||
<View className={styles.unit}>g</View>
|
|
||||||
</View>
|
|
||||||
</View>
|
|
||||||
<View className={styles.popup_filter_item}>
|
|
||||||
<View className={styles.title}>成分</View>
|
|
||||||
<View className={styles.btn_list_element}>
|
|
||||||
<Textarea placeholder="请输入" cursorSpacing={60} value={filterObj.element} onInput={(e) => setElement(e)}/>
|
|
||||||
</View>
|
|
||||||
</View>
|
|
||||||
|
|
||||||
<View className="common_safe_area_y"></View>
|
|
||||||
</View>
|
|
||||||
</ScrollView>
|
|
||||||
<View className={styles.btns_con}>
|
|
||||||
<View className={styles.btns_two}>
|
|
||||||
<View className={styles.rest_btn} onClick={() => onRest()}>重置</View>
|
|
||||||
<View className={styles.verify_btn } onClick={() => onVerify()}>确认</View>
|
|
||||||
</View>
|
|
||||||
</View>
|
|
||||||
</View>
|
|
||||||
</Popup>
|
|
||||||
|
|
||||||
)
|
|
||||||
}
|
|
@ -235,6 +235,7 @@ export default memo(({orderInfo, showStatus = 'detail', onClick}:Param) => {
|
|||||||
title: '确定收货?',
|
title: '确定收货?',
|
||||||
success: async function (res) {
|
success: async function (res) {
|
||||||
if (res.confirm) {
|
if (res.confirm) {
|
||||||
|
alert.showLoading('收货中', true)
|
||||||
let res = await receiveOrderFetchData({sale_order_id: orderInfo?.orderId})
|
let res = await receiveOrderFetchData({sale_order_id: orderInfo?.orderId})
|
||||||
if(res.success){
|
if(res.success){
|
||||||
onClick?.(6)
|
onClick?.(6)
|
||||||
@ -242,6 +243,7 @@ export default memo(({orderInfo, showStatus = 'detail', onClick}:Param) => {
|
|||||||
} else {
|
} else {
|
||||||
alert.error('收货失败')
|
alert.error('收货失败')
|
||||||
}
|
}
|
||||||
|
alert.hideLoading()
|
||||||
} else if (res.cancel) {
|
} else if (res.cancel) {
|
||||||
console.log('用户点击取消')
|
console.log('用户点击取消')
|
||||||
}
|
}
|
||||||
@ -257,12 +259,14 @@ export default memo(({orderInfo, showStatus = 'detail', onClick}:Param) => {
|
|||||||
success: async function async (res) {
|
success: async function async (res) {
|
||||||
if(res.confirm) {
|
if(res.confirm) {
|
||||||
await openSubscriptionMessage({orderId: orderInfo?.orderId, scenes: ApplyGoods.value})
|
await openSubscriptionMessage({orderId: orderInfo?.orderId, scenes: ApplyGoods.value})
|
||||||
|
alert.showLoading('申请中', true)
|
||||||
let res = await fetchDataApplyRefund({sale_order_id: orderInfo?.orderId})
|
let res = await fetchDataApplyRefund({sale_order_id: orderInfo?.orderId})
|
||||||
if(res.success) {
|
if(res.success) {
|
||||||
alert.success('申请成功')
|
alert.success('申请成功')
|
||||||
} else {
|
} else {
|
||||||
alert.error('申请失败')
|
alert.error('申请失败')
|
||||||
}
|
}
|
||||||
|
alert.hideLoading()
|
||||||
onClick?.(8)
|
onClick?.(8)
|
||||||
} else if (res.cancel) {
|
} else if (res.cancel) {
|
||||||
console.log('用户点击取消')
|
console.log('用户点击取消')
|
||||||
@ -279,7 +283,6 @@ export default memo(({orderInfo, showStatus = 'detail', onClick}:Param) => {
|
|||||||
goLink('/pages/applyAfterSales/index',{id:orderInfo?.orderId})
|
goLink('/pages/applyAfterSales/index',{id:orderInfo?.orderId})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//显示更多按钮
|
//显示更多按钮
|
||||||
const [showMore, setShowMore] = useState(false)
|
const [showMore, setShowMore] = useState(false)
|
||||||
const styleTop = useMemo(() => {
|
const styleTop = useMemo(() => {
|
||||||
@ -299,7 +302,6 @@ export default memo(({orderInfo, showStatus = 'detail', onClick}:Param) => {
|
|||||||
{/* <View className={styles.more_bg} catchMove onClick={() => setShowMore(false)}></View> */}
|
{/* <View className={styles.more_bg} catchMove onClick={() => setShowMore(false)}></View> */}
|
||||||
</View>}
|
</View>}
|
||||||
</View>}
|
</View>}
|
||||||
|
|
||||||
<View className={styles.list_scroll}>
|
<View className={styles.list_scroll}>
|
||||||
{orderBtnsShowList.map((item, index) =>
|
{orderBtnsShowList.map((item, index) =>
|
||||||
((orderBtnsShowList.length - 3) <= index)&&<View key={item.id} className={classnames(styles.btns_item)} onClick={() => submitBtns(item.id, index)}>{item.label}</View>
|
((orderBtnsShowList.length - 3) <= index)&&<View key={item.id} className={classnames(styles.btns_item)} onClick={() => submitBtns(item.id, index)}>{item.label}</View>
|
||||||
|
@ -1,163 +0,0 @@
|
|||||||
import { EditSaleOrderAddressApi, EditSaleOrderShipmentModeApi } from "@/api/order";
|
|
||||||
import { alert } from "@/common/common";
|
|
||||||
import { ORDER_STATUS } from "@/common/enum";
|
|
||||||
import { debounce } from "@/common/util";
|
|
||||||
import AddressList from "@/components/AddressList";
|
|
||||||
import Popup from "@/components/popup";
|
|
||||||
import { Text, View } from "@tarojs/components"
|
|
||||||
import classnames from "classnames";
|
|
||||||
import { forwardRef, memo, useEffect, useImperativeHandle, useMemo, useState } from "react";
|
|
||||||
import styles from './index.module.scss'
|
|
||||||
|
|
||||||
export type AddressInfoParam = {
|
|
||||||
province_name: string,
|
|
||||||
city_name: string,
|
|
||||||
district_name: string,
|
|
||||||
address_detail: string,
|
|
||||||
id?: number,
|
|
||||||
name: string,
|
|
||||||
phone: string,
|
|
||||||
}
|
|
||||||
type Param = {
|
|
||||||
onSelect?: (val:any) => void, //选择地址
|
|
||||||
defaultValue?: AddressInfoParam|null, //默认值
|
|
||||||
disabled?: false|true, //true禁用后只用于展示
|
|
||||||
onChangeShipmentMode?: (val: number) => void, //返回收货方式
|
|
||||||
status?: 1|2, //1确认订单时使用, 2订单流程
|
|
||||||
orderInfo?: {
|
|
||||||
orderId: number //订单id
|
|
||||||
shipment_mode: 1|2, //1自提 2物流
|
|
||||||
status: number //订单状态
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export default memo(forwardRef(({onSelect, onChangeShipmentMode, defaultValue = null, orderInfo, status = 2}: Param, ref) => {
|
|
||||||
const [showAddressList, setShowAddressList] = useState(false)
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
setUserInfo(() => defaultValue)
|
|
||||||
}, [defaultValue])
|
|
||||||
|
|
||||||
const [userInfo, setUserInfo] = useState<any>()
|
|
||||||
|
|
||||||
//地址格式
|
|
||||||
const formatAddress = useMemo(() => {
|
|
||||||
if(userInfo)
|
|
||||||
return userInfo.province_name + userInfo.city_name + userInfo.district_name + userInfo.address_detail
|
|
||||||
}, [userInfo])
|
|
||||||
|
|
||||||
const changeShow = () => {
|
|
||||||
if(receivingStatus == 2 && !logisticsShow)
|
|
||||||
setShowAddressList(() => true)
|
|
||||||
}
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
if(orderInfo)
|
|
||||||
setReceivingStatus(() => orderInfo.shipment_mode||2)
|
|
||||||
}, [orderInfo])
|
|
||||||
|
|
||||||
//把内部方法提供给外部
|
|
||||||
useImperativeHandle(ref, () => ({
|
|
||||||
changeShow
|
|
||||||
}))
|
|
||||||
|
|
||||||
//收货方法,1:自提,2物流
|
|
||||||
const [receivingStatus, setReceivingStatus] = useState(2)
|
|
||||||
const {fetchData: shipmentModeFetchData} = EditSaleOrderShipmentModeApi()
|
|
||||||
const onReceivingStatus = (value, e) => {
|
|
||||||
e.stopPropagation()
|
|
||||||
changeReceivingStatus(value)
|
|
||||||
}
|
|
||||||
const changeReceivingStatus = debounce(async (value) => {
|
|
||||||
if(!orderInfo) return false
|
|
||||||
if(status == 1) {
|
|
||||||
onChangeShipmentMode?.(value)
|
|
||||||
setReceivingStatus(value)
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
alert.loading('正在修改')
|
|
||||||
const res = await shipmentModeFetchData({id: orderInfo.orderId, shipment_mode:value})
|
|
||||||
if(res.success) {
|
|
||||||
alert.success('收货方式修改成功')
|
|
||||||
onChangeShipmentMode?.(value)
|
|
||||||
setReceivingStatus(value)
|
|
||||||
} else {
|
|
||||||
alert.none(res.msg)
|
|
||||||
}
|
|
||||||
}, 10)
|
|
||||||
|
|
||||||
//修改地址
|
|
||||||
const [addressId, setAddressId] = useState(0)
|
|
||||||
const {fetchData: addressFetchData} = EditSaleOrderAddressApi()
|
|
||||||
const getAddress = async (value) => {
|
|
||||||
if(!orderInfo) return false
|
|
||||||
if(status == 1) {
|
|
||||||
setShowAddressList(() => false)
|
|
||||||
setAddressId(value.id)
|
|
||||||
setUserInfo(() => value)
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
alert.loading('正在修改')
|
|
||||||
const res = await addressFetchData({id: orderInfo.orderId, address_id: value.id})
|
|
||||||
if(res.success) {
|
|
||||||
alert.success('地址修改成功')
|
|
||||||
onSelect?.(value)
|
|
||||||
setShowAddressList(() => false)
|
|
||||||
setAddressId(value.id)
|
|
||||||
setUserInfo(() => value)
|
|
||||||
} else {
|
|
||||||
alert.none(res.msg)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//订单状态
|
|
||||||
const {
|
|
||||||
SaleOrderStatusWaitingReceipt,
|
|
||||||
SaleOrderStatusAlreadyReceipt,
|
|
||||||
SaleOrderStatusComplete,
|
|
||||||
SaleOrderStatusRefund,
|
|
||||||
SaleOrderStatusCancel
|
|
||||||
} = ORDER_STATUS
|
|
||||||
|
|
||||||
//根据订单状态判断是否显示物流
|
|
||||||
const logisticsShowList = [SaleOrderStatusWaitingReceipt.value, SaleOrderStatusAlreadyReceipt.value, SaleOrderStatusComplete.value, SaleOrderStatusRefund.value, SaleOrderStatusCancel.value]
|
|
||||||
const logisticsShow = useMemo(() => {
|
|
||||||
return logisticsShowList.includes(orderInfo?.status as number)
|
|
||||||
}, [orderInfo])
|
|
||||||
|
|
||||||
return (
|
|
||||||
<View>
|
|
||||||
<View className={styles.order_address} onClick={() => changeShow()}>
|
|
||||||
<View className={classnames(styles.order_address_icon, 'iconfont', receivingStatus == 2?'icon-daohang':'icon-fahuo')}></View>
|
|
||||||
<View className={styles.order_address_text_con}>
|
|
||||||
<View className={styles.order_address_text_title}>
|
|
||||||
<Text className={styles.address_text}>{formatAddress}</Text>
|
|
||||||
{(receivingStatus == 2 && !logisticsShow)&&<Text className={classnames(styles.moreIconfont,'iconfont icon-a-moreback')}></Text>}
|
|
||||||
</View>
|
|
||||||
<View className={styles.order_address_text_name}>
|
|
||||||
<Text>{userInfo?.name}</Text>
|
|
||||||
<Text>{userInfo?.phone}</Text>
|
|
||||||
</View>
|
|
||||||
</View>
|
|
||||||
{!logisticsShow&&<View className={styles.updateBtn}>
|
|
||||||
<View className={styles.updateBtn_list}>
|
|
||||||
<View className={classnames(styles.updateBtn_item, receivingStatus==1&&styles.updateBtn_item_select)} onClick={(e) => onReceivingStatus(1,e)}>自提</View>
|
|
||||||
<View className={classnames(styles.updateBtn_item, receivingStatus==2&&styles.updateBtn_item_select)} onClick={(e) => onReceivingStatus(2,e)}>物流</View>
|
|
||||||
</View>
|
|
||||||
<View style={{transform: receivingStatus==1?'translateX(0)':'translateX(100%)'}} className={classnames(styles.updateBtn_select)}></View>
|
|
||||||
</View>||
|
|
||||||
<View className={styles.logisticsBtn}>
|
|
||||||
查看物流
|
|
||||||
</View>}
|
|
||||||
</View>
|
|
||||||
<Popup show={showAddressList} showTitle={false} onClose={() => setShowAddressList(false)}>
|
|
||||||
<View className={styles.order_address_list}>
|
|
||||||
<View className={styles.order_address_title}>请选择收货地址</View>
|
|
||||||
<View className={styles.addressList_con}>
|
|
||||||
<AddressList onSelect={getAddress} id={addressId}/>
|
|
||||||
</View>
|
|
||||||
</View>
|
|
||||||
</Popup>
|
|
||||||
</View>
|
|
||||||
)
|
|
||||||
}))
|
|
@ -98,16 +98,17 @@
|
|||||||
width: 152px;
|
width: 152px;
|
||||||
height: 72px;
|
height: 72px;
|
||||||
background: #ffffff;
|
background: #ffffff;
|
||||||
border: 2px solid #dddddd;
|
border: 2px solid #007AFF;
|
||||||
border-radius: 38px;
|
border-radius: 38px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 10px;
|
bottom: 10px;
|
||||||
right: 10px;
|
right: 10px;
|
||||||
z-index: 999;
|
z-index: 999;
|
||||||
font-size: 28px;
|
font-size: 28px;
|
||||||
color: #707070;
|
color: #007AFF;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
line-height: 72px;
|
line-height: 72px;
|
||||||
|
|
||||||
}
|
}
|
||||||
.order_address_text_no{
|
.order_address_text_no{
|
||||||
flex: 1;
|
flex: 1;
|
||||||
|
@ -119,7 +119,7 @@ export default memo(({show = false, onClose, orderInfo, onSubmitSuccess}:Param)
|
|||||||
if((submitData.payment_method == PaymentMethodAccountPeriod.value || orderInfo?.status == SaleorderstatusWaitingPrePayment.value)&& orderInfo?.sale_mode != 1) {
|
if((submitData.payment_method == PaymentMethodAccountPeriod.value || orderInfo?.status == SaleorderstatusWaitingPrePayment.value)&& orderInfo?.sale_mode != 1) {
|
||||||
await openSubscriptionMessage({orderId: orderInfo?.id, scenes: ToPay.value})
|
await openSubscriptionMessage({orderId: orderInfo?.id, scenes: ToPay.value})
|
||||||
}
|
}
|
||||||
alert.loading('正在支付')
|
alert.showLoading('正在支付')
|
||||||
let res:any = null
|
let res:any = null
|
||||||
if(orderInfo?.should_collect_order_id) {
|
if(orderInfo?.should_collect_order_id) {
|
||||||
res = await submitFetchData(submitData)
|
res = await submitFetchData(submitData)
|
||||||
@ -132,6 +132,7 @@ export default memo(({show = false, onClose, orderInfo, onSubmitSuccess}:Param)
|
|||||||
} else {
|
} else {
|
||||||
alert.none(res.msg)
|
alert.none(res.msg)
|
||||||
}
|
}
|
||||||
|
alert.hideLoading()
|
||||||
}, 800)
|
}, 800)
|
||||||
|
|
||||||
//预付款
|
//预付款
|
||||||
|
@ -27,7 +27,8 @@ type ListParam = {
|
|||||||
weight: string,
|
weight: string,
|
||||||
length: string,
|
length: string,
|
||||||
sale_price: string,
|
sale_price: string,
|
||||||
total_price: string
|
total_price: string,
|
||||||
|
weight_error: string
|
||||||
}
|
}
|
||||||
export default memo(({show = true, onClose, company, orderInfo}:Param) => {
|
export default memo(({show = true, onClose, company, orderInfo}:Param) => {
|
||||||
const [detail, setDetail] = useState<any>()
|
const [detail, setDetail] = useState<any>()
|
||||||
@ -53,6 +54,7 @@ export default memo(({show = true, onClose, company, orderInfo}:Param) => {
|
|||||||
weight: formatWeightDiv(citem.actual_weight||citem.estimate_weight).toString(),
|
weight: formatWeightDiv(citem.actual_weight||citem.estimate_weight).toString(),
|
||||||
sale_price: formatPriceDiv(citem.sale_price).toString(),
|
sale_price: formatPriceDiv(citem.sale_price).toString(),
|
||||||
total_price: formatPriceDiv(citem.total_sale_price||citem.estimate_amount).toString(),
|
total_price: formatPriceDiv(citem.total_sale_price||citem.estimate_amount).toString(),
|
||||||
|
weight_error: formatWeightDiv(citem.weight_error).toString()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@ -90,7 +92,7 @@ export default memo(({show = true, onClose, company, orderInfo}:Param) => {
|
|||||||
show_actual_amount: orderInfo.actual_amount > 0,
|
show_actual_amount: orderInfo.actual_amount > 0,
|
||||||
wait_pay_amount: formatPriceDiv(orderInfo.wait_pay_amount).toString(),
|
wait_pay_amount: formatPriceDiv(orderInfo.wait_pay_amount).toString(),
|
||||||
show_wait_pay_amount: orderInfo.wait_pay_amount > 0,
|
show_wait_pay_amount: orderInfo.wait_pay_amount > 0,
|
||||||
show_barcode: true
|
show_barcode: true,
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
}, [orderInfo])
|
}, [orderInfo])
|
||||||
|
@ -230,6 +230,7 @@ import styles from './index.module.scss'
|
|||||||
const list = orderDetail?.delivery_appendix_url?.map(item => {
|
const list = orderDetail?.delivery_appendix_url?.map(item => {
|
||||||
return formatImgUrl(item, '!w800')
|
return formatImgUrl(item, '!w800')
|
||||||
})
|
})
|
||||||
|
if(list?.length <= 0) return alert.error('暂无图片')
|
||||||
Taro.previewImage({
|
Taro.previewImage({
|
||||||
current: list[0], // 当前显示
|
current: list[0], // 当前显示
|
||||||
urls: list // 需要预览的图片http链接列表
|
urls: list // 需要预览的图片http链接列表
|
||||||
|
@ -62,10 +62,12 @@ export default memo(({show, onClose, onSubmit, id}:Param) => {
|
|||||||
const formatCount = useCallback((item) => {
|
const formatCount = useCallback((item) => {
|
||||||
return formatDetailOrder?.sale_mode == 0? item.roll : Number(item.length / 100)
|
return formatDetailOrder?.sale_mode == 0? item.roll : Number(item.length / 100)
|
||||||
}, [formatDetailOrder])
|
}, [formatDetailOrder])
|
||||||
|
|
||||||
//对应单价
|
//对应单价
|
||||||
const standardPrice = useCallback(price => {
|
const standardPrice = useCallback(price => {
|
||||||
return formatPriceDiv(price).toLocaleString() + '/' + (formatDetailOrder?.sale_mode == 1?'m':'kg')
|
return formatPriceDiv(price).toLocaleString() + '/' + (formatDetailOrder?.sale_mode == 1?'m':'kg')
|
||||||
}, [formatDetailOrder])
|
}, [formatDetailOrder])
|
||||||
|
|
||||||
//数量格式
|
//数量格式
|
||||||
const numText = useMemo(() => {
|
const numText = useMemo(() => {
|
||||||
if(formatDetailOrder) {
|
if(formatDetailOrder) {
|
||||||
|
@ -81,7 +81,8 @@ export default memo(({value, onClickBtn}: Param) => {
|
|||||||
|
|
||||||
//获取面料数组
|
//获取面料数组
|
||||||
const list = useMemo(() => {
|
const list = useMemo(() => {
|
||||||
return value?.is_quality_check?value?.quality_check_pass_product:value?.product_list
|
let res = value?.is_quality_check? value?.quality_check_pass_product : value?.product_list
|
||||||
|
return res || []
|
||||||
}, [value])
|
}, [value])
|
||||||
|
|
||||||
|
|
||||||
@ -140,7 +141,7 @@ export default memo(({value, onClickBtn}: Param) => {
|
|||||||
<Text>订单号:{value?.order_no}</Text>
|
<Text>订单号:{value?.order_no}</Text>
|
||||||
</View>
|
</View>
|
||||||
</View>}
|
</View>}
|
||||||
{(list?.length <= 0 && value?.is_quality_check) && <View className={styles.inspection}>
|
{(list?.length <= 0 && value?.is_quality_check) && <View className={styles.inspection} onClick={() => goLink('/pages/salesAfter/index', {id: value?.id})}>
|
||||||
<Text className={classnames('iconfont icon-zhuyi', styles.miconfont)}></Text>
|
<Text className={classnames('iconfont icon-zhuyi', styles.miconfont)}></Text>
|
||||||
没有质检通过的商品,无法退款
|
没有质检通过的商品,无法退款
|
||||||
</View>}
|
</View>}
|
||||||
|
@ -139,13 +139,15 @@
|
|||||||
padding: 0 5px 15px;
|
padding: 0 5px 15px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
.card_main_title_order{
|
.card_main_title_order{
|
||||||
flex:1
|
flex:1;
|
||||||
|
font-size: 28px;
|
||||||
|
font-weight: 700;
|
||||||
}
|
}
|
||||||
.order_more{
|
.order_more{
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
font-size: 26px;
|
font-size: 25px;
|
||||||
color: #707070;
|
color: #707070;
|
||||||
text{
|
text{
|
||||||
width: auto;
|
width: auto;
|
||||||
@ -254,6 +256,7 @@
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
height: 90px;
|
height: 90px;
|
||||||
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
.card-main-list-content-item-left {
|
.card-main-list-content-item-left {
|
||||||
@ -263,8 +266,14 @@
|
|||||||
color: #707070;
|
color: #707070;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
min-width: 260px;
|
||||||
|
}
|
||||||
|
.card-main-list-content-item .label {
|
||||||
|
width: 100%;
|
||||||
|
text-align: right;
|
||||||
|
padding-right: 10px;
|
||||||
|
font-size: 26px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.card-main-list-content-item-left text {
|
.card-main-list-content-item-left text {
|
||||||
margin-right: 35px;
|
margin-right: 35px;
|
||||||
font-size: 56px;
|
font-size: 56px;
|
||||||
@ -274,6 +283,12 @@
|
|||||||
.card-main-list-content-item-right text {
|
.card-main-list-content-item-right text {
|
||||||
font-size: 30px;
|
font-size: 30px;
|
||||||
}
|
}
|
||||||
|
.card-main-list-content-item .customer {
|
||||||
|
position: absolute;
|
||||||
|
opacity: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
.auth {
|
.auth {
|
||||||
margin-top: 115px;
|
margin-top: 115px;
|
||||||
|
@ -6,7 +6,7 @@ import { useSelector } from "@/reducers/hooks";
|
|||||||
import { alert, goLink } from "@/common/common";
|
import { alert, goLink } from "@/common/common";
|
||||||
import useLogin from '@/use/useLogin'
|
import useLogin from '@/use/useLogin'
|
||||||
import { BASE_URL } from '@/common/constant'
|
import { BASE_URL } from '@/common/constant'
|
||||||
import Taro from "@tarojs/taro";
|
import Taro, { useShareAppMessage } from "@tarojs/taro";
|
||||||
import { userassets, userorderStatistics } from "@/api/mine"
|
import { userassets, userorderStatistics } from "@/api/mine"
|
||||||
import { formatPriceDiv } from "@/common/fotmat"
|
import { formatPriceDiv } from "@/common/fotmat"
|
||||||
import { useDidShow, } from '@tarojs/taro'
|
import { useDidShow, } from '@tarojs/taro'
|
||||||
@ -23,11 +23,18 @@ export default () => {
|
|||||||
const [current_githash,setCurrent_githash] = useState(CURRENT_GITHASH)
|
const [current_githash,setCurrent_githash] = useState(CURRENT_GITHASH)
|
||||||
const [current_env,setCurrent_env] = useState(CURRENT_ENV)
|
const [current_env,setCurrent_env] = useState(CURRENT_ENV)
|
||||||
|
|
||||||
useEffect(() => {
|
//分享
|
||||||
// getSelfUserInfo().then().catch(() => {
|
useShareAppMessage(res => {
|
||||||
// alert.none("授权失败,请授权后再使用");
|
if (res.from !== 'button') {
|
||||||
// });
|
// 来自页面内转发按钮
|
||||||
}, []);
|
console.log('点击个德')
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
title: '转发啦',
|
||||||
|
path: '/page/user?id=123'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
const handleAuth = async () => {
|
const handleAuth = async () => {
|
||||||
console.log('授权面版')
|
console.log('授权面版')
|
||||||
getSelfUserInfo().then().catch(() => {
|
getSelfUserInfo().then().catch(() => {
|
||||||
@ -121,7 +128,8 @@ const Header = memo((props: any) => {
|
|||||||
}
|
}
|
||||||
const navTo = () => {
|
const navTo = () => {
|
||||||
Taro.navigateTo({
|
Taro.navigateTo({
|
||||||
url: '/pages/certification/index'
|
// url: '/pages/certification/index'
|
||||||
|
url: '/pages/userEdit/index'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
return (
|
return (
|
||||||
@ -321,28 +329,34 @@ const Assets = (props: any) => {
|
|||||||
// 功能
|
// 功能
|
||||||
const Main = memo(() => {
|
const Main = memo(() => {
|
||||||
let menu = [
|
let menu = [
|
||||||
{ text: "地址管理", icon: "icon-daohang", url: "/pages/addressManager/index" },
|
{ text: "我的客服", icon: "icon-wodekefu", type: 'customer', label:'(0757) 8270 6695'},
|
||||||
{ text: "码单管理", icon: "icon-a-yuanmadanmadanguanli", url: "/pages/weightList/index" },
|
{ text: "地址管理", icon: "icon-daohang", url: "/pages/addressManager/index", type: 'url' },
|
||||||
{ text: "我的收藏", icon: "icon-shoucang", url: "/pages/collection/index" },
|
{ text: "码单管理", icon: "icon-a-yuanmadanmadanguanli", url: "/pages/weightList/index", type: 'url' },
|
||||||
{ text: "颜色对比", icon: "icon-yanseduibi", url: "/pages/sampleComparison/index" },
|
{ text: "我的收藏", icon: "icon-shoucang", url: "/pages/collection/index", type: 'url' },
|
||||||
|
{ text: "颜色对比", icon: "icon-yanseduibi", url: "/pages/sampleComparison/index", type: 'url' },
|
||||||
// { text: "分享推广", icon: "icon-fenxiang" },
|
// { text: "分享推广", icon: "icon-fenxiang" },
|
||||||
{ text: "邀请码", icon: "icon-yaoqingtuandui", url: "/pages/bindSalesman/index" }
|
{ text: "邀请码", icon: "icon-yaoqingma", url: "/pages/bindSalesman/index", type: 'url' },
|
||||||
]
|
]
|
||||||
|
const navigation = (item) => {
|
||||||
|
if(item.type === 'url') goLink(item.url)
|
||||||
|
}
|
||||||
return (
|
return (
|
||||||
<View className={`${styles.crad} ${styles['card-main']} ${styles['card-feature']}`}>
|
<View className={`${styles.crad} ${styles['card-main']} ${styles['card-feature']}`}>
|
||||||
<View className={styles['card-main-list-content']}>
|
<View className={styles['card-main-list-content']}>
|
||||||
{
|
{
|
||||||
menu.map((item, index) => {
|
menu.map((item, index) => {
|
||||||
return (
|
return (
|
||||||
<Navigator hoverClass="none" url={item.url} key={index} className={styles['card-main-list-content-item']}>
|
<View hoverClass="none" onClick={() => navigation(item)} key={index} className={styles['card-main-list-content-item']}>
|
||||||
<View className={styles['card-main-list-content-item-left']}>
|
<View className={styles['card-main-list-content-item-left']}>
|
||||||
<Text className={`iconfont ${item.icon}`}></Text>
|
<Text className={`iconfont ${item.icon}`}></Text>
|
||||||
<View>{item.text}</View>
|
<View>{item.text}</View>
|
||||||
</View>
|
</View>
|
||||||
|
<View className={styles.label}>{item.label}</View>
|
||||||
<View className={styles['card-main-list-content-item-right']}>
|
<View className={styles['card-main-list-content-item-right']}>
|
||||||
<Text className="iconfont icon-a-moreback"></Text>
|
<Text className="iconfont icon-a-moreback"></Text>
|
||||||
</View>
|
</View>
|
||||||
</Navigator>
|
{item.type === 'customer' && <Button openType="contact" className={styles.customer}></Button>}
|
||||||
|
</View>
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -180,13 +180,13 @@ export default () => {
|
|||||||
</View>
|
</View>
|
||||||
<View className="user-edit-content">
|
<View className="user-edit-content">
|
||||||
<View className="user-edit-content-title"><Text /> 组织资料</View>
|
<View className="user-edit-content-title"><Text /> 组织资料</View>
|
||||||
<UserEditList onClick={() => (ModifyCompanyNameEl.current as any).setModalShow(true)} data={(formData as any)?.company_name} label="名称" placeholder="待绑定" icon="" />
|
<UserEditList onClick={() => (ModifyCompanyNameEl.current as any).setModalShow(true)} data={(formData as any)?.company_name} label="组织名称" placeholder="待绑定" icon="" />
|
||||||
<UserEditList label="类型" placeholder="完善公司/组织信息" icon="">
|
<UserEditList label="组织类型" placeholder="完善公司/组织信息" icon="">
|
||||||
<Picker mode="selector" range={comanyTypeDataFormat as any} rangeKey="name" value={(formData as any)?.purchaser_type} onChange={handleCompanyType}>
|
<Picker mode="selector" range={comanyTypeDataFormat as any} rangeKey="name" value={(formData as any)?.purchaser_type} onChange={handleCompanyType}>
|
||||||
{formData?.purchaser_type_name}
|
{formData?.purchaser_type_name}
|
||||||
</Picker>
|
</Picker>
|
||||||
</UserEditList>
|
</UserEditList>
|
||||||
<UserEditList onClick={() => onNavigate("/pages/certification/index")} label="我的认证" placeholder="待绑定" icon="">
|
<UserEditList label="我的认证" placeholder="待绑定" icon="" useIcon="true">
|
||||||
<View className={`user-edit-content-company ${(formData as any)?.authentication_status == 4 && "user-edit-content-company-adopt"}`}>
|
<View className={`user-edit-content-company ${(formData as any)?.authentication_status == 4 && "user-edit-content-company-adopt"}`}>
|
||||||
<Text className="iconfont " /> {(formData as any)?.authentication_status == 4 ? "已认证" : "未认证"}
|
<Text className="iconfont " /> {(formData as any)?.authentication_status == 4 ? "已认证" : "未认证"}
|
||||||
</View>
|
</View>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
@font-face {
|
@font-face {
|
||||||
font-family: "iconfont"; /* Project id 2987621 */
|
font-family: "iconfont"; /* Project id 2987621 */
|
||||||
src: url('iconfont.ttf?t=1657712890419') format('truetype');
|
src: url('iconfont.ttf?t=1658997423433') format('truetype');
|
||||||
}
|
}
|
||||||
|
|
||||||
.iconfont {
|
.iconfont {
|
||||||
@ -11,6 +11,22 @@
|
|||||||
-moz-osx-font-smoothing: grayscale;
|
-moz-osx-font-smoothing: grayscale;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.icon-wodekefu:before {
|
||||||
|
content: "\e67a";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-yaoqingma:before {
|
||||||
|
content: "\e679";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-gengduo:before {
|
||||||
|
content: "\e677";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-shanchu-2:before {
|
||||||
|
content: "\e678";
|
||||||
|
}
|
||||||
|
|
||||||
.icon-shangchuanzhaopian:before {
|
.icon-shangchuanzhaopian:before {
|
||||||
content: "\e676";
|
content: "\e676";
|
||||||
}
|
}
|
||||||
|
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user