jiazhipeng 4 months ago
parent
commit
6e7d6621f6
  1. 10
      pages/cart/cart.vue
  2. 7
      static/js/request.js
  3. 2
      subPackages/food/order.vue
  4. 8
      subPackages/techan/index.vue
  5. 93
      subPackages/techan/order.vue
  6. 69
      subPackages/techan/selfPickUpPoint.vue
  7. 2
      subPackages/ticket/order.vue

10
pages/cart/cart.vue

@ -17,9 +17,17 @@
}, },
onLoad() { onLoad() {
},
onShow() {
}, },
methods: { methods: {
getShoppingList () {
},
},
onReachBottom() {
} }
} }
</script> </script>

7
static/js/request.js

@ -2,8 +2,8 @@ import Vue from 'vue';
import store from '@/store'; import store from '@/store';
// 定义 API URL // 定义 API URL
// const DEV_API_URL = 'https://api.cloud.sz-trip.com'; const DEV_API_URL = 'https://api.cloud.sz-trip.com';
const DEV_API_URL = 'https://swsz.api.js-dyyj.com'; // const DEV_API_URL = 'https://swsz.api.js-dyyj.com'
const PROD_API_URL = 'https://swsz.api.js-dyyj.com'; const PROD_API_URL = 'https://swsz.api.js-dyyj.com';
const NEWAPIURL = process.env.NODE_ENV === 'development' ? DEV_API_URL : PROD_API_URL; const NEWAPIURL = process.env.NODE_ENV === 'development' ? DEV_API_URL : PROD_API_URL;
@ -40,7 +40,8 @@ Vue.prototype.NEWAPIURL = '/api';
// #endif // #endif
Vue.prototype.Post = (params = {}, apiurl) => { Vue.prototype.Post = (params = {}, apiurl) => {
const token = getToken() ; const token = getToken() || '0caa10fc-6d65-4d9c-8e57-b344be3fc526';
// const token = getToken() || 'a090644d-2bdb-4807-833b-bb5bc2182ac5'
if (token) { if (token) {
params.token = token; params.token = token;
} }

2
subPackages/food/order.vue

@ -241,7 +241,7 @@
let data = { let data = {
product_list: goods, product_list: goods,
coupon_id: this.coupon ? this.coupon.id : "", coupon_id: this.coupon ? this.coupon.id : null,
} }
console.log('data数据',data); console.log('data数据',data);
this.Post({ this.Post({

8
subPackages/techan/index.vue

@ -26,7 +26,7 @@
</scroll-view> </scroll-view>
<view class="more-btn" @click="showTypes(true)"> <view class="more-btn" @click="showTypes(true)">
展开 展开<image style="width: 22rpx;height: 22rpx;" src="https://static.ticket.sz-trip.com/uploads/20250617/42345fdf6426e5dd533fd7461c3642a0.png"></image>
</view> </view>
</view> </view>
@ -34,7 +34,7 @@
<view class="goods-container"> <view class="goods-container">
<view class="search-container"> <view class="search-container">
<view > <view >
<text :class="[search_type==0?'active-search-item':'']">综合</text> <text :class="[search_type==0?'active-search-item':'']" @click="changeSearchParm(0)">综合</text>
</view> </view>
<view > <view >
<text :class="[[1,2].includes(search_type)?'active-search-item':'']">销量</text> <text :class="[[1,2].includes(search_type)?'active-search-item':'']">销量</text>
@ -230,7 +230,7 @@
statusBarHeight: 0, statusBarHeight: 0,
headImg: "https://cgc.js-dyyj.com/uploads/20250513/f8b255f965efcd71b6843e4b72c3f1f3.png", headImg: "https://cgc.js-dyyj.com/uploads/20250513/f8b255f965efcd71b6843e4b72c3f1f3.png",
type_pid: 646, type_pid: 20,
typeParam: [], typeParam: [],
typeIndex: 0, typeIndex: 0,
list:[], list:[],
@ -582,6 +582,8 @@
width: 67rpx; width: 67rpx;
background: #EDF5DC; background: #EDF5DC;
padding: 24rpx 20rpx; padding: 24rpx 20rpx;
text-align: center;
line-height: 1.2;
} }
.goods-container{ .goods-container{

93
subPackages/techan/order.vue

@ -46,7 +46,7 @@
<view class="pickpoint"> <view class="pickpoint">
<view class="flex-shrink-0">自提点</view> <view class="flex-shrink-0">自提点</view>
<view class="pickpointAddress"> <view class="pickpointAddress">
<view class="pointAddressText text-overflow">{{info.pickupAddress.extract_name||'选择提货地址'}}</view> <view class="pointAddressText text-overflow">{{info.pickupAddress.title||'选择提货地址'}}</view>
<uni-icons style="height: 36rpx;" type="right" size="18"></uni-icons> <uni-icons style="height: 36rpx;" type="right" size="18"></uni-icons>
</view> </view>
</view> </view>
@ -97,7 +97,7 @@
<view class="tickets-box flex-between"> <view class="tickets-box flex-between">
<view class="remark"> <view class="remark">
<view class="remark-title" >订单备注:</view> <view class="remark-title" >订单备注:</view>
<input style="z-index:0;text-align: right;" type="text" placeholder="选填" v-model="remark" maxlength="50"/> <input style="z-index:0;text-align: right;" type="text" placeholder="选填" v-model="info.remark" maxlength="50"/>
</view> </view>
</view> </view>
</view> </view>
@ -196,7 +196,6 @@ export default {
post: 0, post: 0,
flag: true, flag: true,
remark: '',
coupon: "", coupon: "",
allprice: 0, allprice: 0,
@ -251,6 +250,7 @@ export default {
v.pickupAddress = {} // v.pickupAddress = {} //
v.contacts = null // v.contacts = null //
v.post = null // v.post = null //
v.remark = ""
}) })
this.orderList = orderList this.orderList = orderList
@ -261,6 +261,7 @@ export default {
changeUserPost (item,value) { changeUserPost (item,value) {
console.log(item) console.log(item)
item.is_user_post = value item.is_user_post = value
this.getPost()
}, },
goOrderCoupon () { goOrderCoupon () {
@ -308,32 +309,32 @@ export default {
}); });
}, },
getPost() { getPost() {
let _this = this
let tempList = [] let tempList = []
this.orderList.forEach(v=>{ this.orderList.forEach(v=>{
if( v.sInfo.contacts && v.is_user_post == 1) { if( v.contacts && v.is_user_post == 1) {
tempList.push(v) tempList.push(v)
} }
}) })
let param = [] let param = []
tempList.forEach(v=>{ tempList.forEach(v=>{
param.push({specifications_id: v.sInfo.id, num: v.sInfo.buyNum, consignee_id:v.contacts.id}) param.push({sku_id: v.sInfo.id, num: v.sInfo.buyNum, consignee_id:v.contacts.id})
}) })
let data = JSON.stringify(param); let data = JSON.stringify(param);
// console.log(data); // console.log(data);
this.flag = false; this.flag = false;
this.Post({ data: data }, '/api/order/getNewPost').then(res => {
Promise.all(param.map(v=>_this.Post({...v},"/api/order/get_post_price"))).then(res=>{
if (res) { if (res) {
console.log("promise" ,res)
for(let i=0;i<tempList.length;i++) { for(let i=0;i<tempList.length;i++) {
tempList[i].post = res.data[i].price; tempList[i].post = res[i].data.price;
} }
this.flag = true;
} }
}).catch(err=>{ }).finally(()=>{this.flag = true;})
console.log(err,'aaaaaaa');
this.flag = true;
});
}, },
plus(sku) { plus(sku) {
@ -374,7 +375,7 @@ export default {
this.selectInfo.contacts = item this.selectInfo.contacts = item
if (this.flag) { if (this.flag) {
// this.getPost(); this.getPost();
} }
this.$refs.addressPopup.close(); this.$refs.addressPopup.close();
}, },
@ -443,57 +444,52 @@ export default {
}, },
// //
order() { order() {
if (this.info.is_user_post == 1 || this.info.is_user_post == 3) { let goods = [];
console.log(this.info.is_user_post) for(let info of this.orderList) {
if (this.info.is_user_post == 1 && !this.contacts) { let param = {
uni.showToast({ type: info.pInfo.type,
title: '请选择收货地址', product_id: info.pInfo.id,
icon: 'none' sku_id: info.sInfo.id,
}); product_num: info.sInfo.buyNum,
return; remark: info.remark
} }
if (info.is_user_post == 1) {
if (this.info.is_user_post == 2) { if(!info.contacts) {
uni.showToast({
title: '请选择收货地址',
icon: 'none'
});
return;
} else {
param.use_type = 1
param.post = info.contacts.id
}
}
if (info.is_user_post == 2) {
if (!this.pickupAddress.id) { if (!this.pickupAddress.id) {
uni.showToast({title: '请选择自提点',icon: 'none'}); uni.showToast({title: '请选择自提点',icon: 'none'});
return; return;
} else {
param.use_type = 2
param.pickup_shop_id = info.pickupAddress.id
param.pickup_shop_info = info.pickupAddress
} }
} }
goods.push(param)
} }
let goods = [];
this.info.goods.forEach(v=>{
let goodsItem = {
specifications_id: v.skuInfo.id,
num: v.skuInfo.buyNum,
};
if (this.info.is_user_post == 2) {
goodsItem.extract_id = this.pickupAddress.id;
} else if (this.info.is_user_post == 1){
goodsItem.consignee_id = this.contacts.id
}
goods.push(goodsItem);
})
let data = { let data = {
goods: goods, product_list: goods,
coupon: this.coupon ? this.coupon.id : "", coupon_id: this.coupon ? this.coupon.id : null,
remark: this.remark,
is_post: this.info.is_user_post,
}; };
this.Post( this.Post(
{ {
method: 'POST', method: 'POST',
data: JSON.stringify(data) data: JSON.stringify(data)
}, },
'/api/order/place' '/api/order/create'
).then(res => { ).then(res => {
uni.removeStorageSync('teChanOrder')
uni.removeStorageSync('teChanInfo')
if (res.code == 1) { if (res.code == 1) {
this.Post( this.Post(
{ {
@ -532,7 +528,8 @@ export default {
getDataByConnect(data) { getDataByConnect(data) {
if (data.msgType == "updatePickUpPoint") { if (data.msgType == "updatePickUpPoint") {
let tempData = this.orderList.find(v=>v.sInfo.id == data.data.goodsId) let tempData = this.orderList.find(v=>v.pInfo.id == data.data.pInfoId)
console.log(tempData)
if (tempData) { if (tempData) {
tempData.pickupAddress = data.data.selectItem tempData.pickupAddress = data.data.selectItem
} }

69
subPackages/techan/selfPickUpPoint.vue

@ -2,19 +2,17 @@
<view class="bg"> <view class="bg">
<view :class="['item-bg',selectItem.id==item.id?'active':'']" v-for="(item,index) in list" :key="index" @click="selectPoint(item)"> <view :class="['item-bg',selectItem.id==item.id?'active':'']" v-for="(item,index) in list" :key="index" @click="selectPoint(item)">
<view class="item"> <view class="item">
<view class="item-point-title"> <view class="item-point-title">
<view class="name text-overflow flex-shrink-0">{{item.extract_name}}</view> <view class="name">{{item.title}}</view>
<view class="addressStr"> <view style="padding: 10rpx 0;">营业时间{{item.remark}}</view>
<!-- <view class="flex-shrink-0"></view> --> <view >地址{{item.address}}</view>
<view class="text-overflowRows">地址{{item.detail_addr}}</view>
</view> </view>
</view> <view class="item-point-guide" @click.stop="goMap(item)">
<view class="item-point-guide" @click.stop="goMap(item)"> <view>
<view> <image src="https://static.ticket.sz-trip.com/uploads/20250617/69e16394a2a95657a08eaa5c685c9f1d.png" mode="aspectFill" class="mapPoint"></image>
<image :src="showImg('/uploads/20241104/8ff7aa0225c9e4fb86df1a9cb229c932.png')" mode="aspectFill" class="mapPoint"></image> </view>
<view class="distance" v-if="item.distance">距离{{item.distance.toFixed(2)}}km</view>
</view> </view>
<view>去这里</view>
</view>
</view> </view>
</view> </view>
<view class="no-data" v-if="list.length==0"> <view class="no-data" v-if="list.length==0">
@ -23,11 +21,11 @@
暂无自提点地址 暂无自提点地址
</view> </view>
</view> </view>
<!-- <view class="btn-bottom"> <view class="btn-bottom">
<view class="addBox" @click.stop="confirmPoint"> <view class="addBox" @click.stop="confirmPoint">
确定 确定
</view> </view>
</view> --> </view>
</view> </view>
@ -62,8 +60,8 @@
// this.getLocation() // this.getLocation()
let param = { let param = {
product_id: this.goodsId, product_id: this.goodsId,
lon: uni.getStorageSync('location').lon || '', lon: uni.getStorageSync('location').lon || '36',
lat: uni.getStorageSync('location').lat || '', lat: uni.getStorageSync('location').lat || '29',
} }
this.Post(param, "/api/product/getDeliverShop").then(res => { this.Post(param, "/api/product/getDeliverShop").then(res => {
if (res) { if (res) {
@ -87,8 +85,8 @@
selectPoint (item) { selectPoint (item) {
this.selectItem = item this.selectItem = item
// selectItem // selectItem
uni.$emit("updateDataByConnect", {msgType:'updatePickUpPoint',data:{selectItem: this.selectItem, skuId: this.goodsId}}) // uni.$emit("updateDataByConnect", {msgType:'updatePickUpPoint',data:{selectItem: this.selectItem, skuId: this.goodsId}})
uni.navigateBack() // uni.navigateBack()
}, },
goMap (item) { goMap (item) {
@ -109,7 +107,7 @@
return; return;
} }
// selectItem // selectItem
uni.$emit("updateDataByConnect", {msgType:'updatePickUpPoint',data:{selectItem: this.selectItem, skuId: this.goodsId}}) uni.$emit("updateDataByConnect", {msgType:'updatePickUpPoint',data:{selectItem: this.selectItem, pInfoId: this.goodsId}})
uni.navigateBack() uni.navigateBack()
} }
}, },
@ -136,12 +134,14 @@
} }
.item-bg{ .item-bg{
width: 697rpx; width: 697rpx;
height: 160rpx; min-height: 160rpx;
background: #FFFFFF; background: #FFFFFF;
border-radius: 13rpx; border-radius: 13rpx;
margin: 0 auto; margin: 0 auto;
margin-bottom: 28rpx; margin-bottom: 28rpx;
padding: 2rpx; &.active{
border:1px solid #6A8A2D;
}
} }
.item { .item {
@ -159,6 +159,9 @@
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: space-between; justify-content: space-between;
font-weight: 500;
font-size: 27rpx;
color: #999999;
} }
.item-point-guide{ .item-point-guide{
width:140rpx; width:140rpx;
@ -176,23 +179,14 @@
height: 33rpx; height: 33rpx;
} }
} }
.item-bg.active{
background: #515150;
}
.name { .name {
display: flex; display: flex;
font-size: 31rpx; font-size: 31rpx;
font-weight: bold; font-weight: bold;
color: #333333; color: #333333;
height: 42rpx;
}
.addressStr{
display: flex;
font-size: 27rpx;
color: #999999;
padding-top: 10rpx;
} }
.no-data { .no-data {
width: 100%; width: 100%;
height: 100vh; height: 100vh;
@ -231,9 +225,9 @@
.addBox{ .addBox{
margin: 0 auto; margin: 0 auto;
width: 697rpx; width: 697rpx;
height: 80rpx; height: 73rpx;
background: linear-gradient(90deg, #F84A56, #FF9834); background: #6A8A2D;
border-radius: 40rpx; border-radius: 11rpx;
font-size: 36rpx; font-size: 36rpx;
font-family: PingFang SC; font-family: PingFang SC;
font-weight: 500; font-weight: 500;
@ -242,5 +236,12 @@
text-align: center; text-align: center;
} }
} }
.distance{
font-weight: 500;
font-size: 24rpx;
color: #6A8A2D;
text-align: center;
padding-top: 11rpx;
word-wrap: break-all;
}
</style> </style>

2
subPackages/ticket/order.vue

@ -423,7 +423,7 @@
let data = { let data = {
product_list: goods, product_list: goods,
coupon_id: this.coupon ? this.coupon.id : "", coupon_id: this.coupon ? this.coupon.id : null,
} }
console.log('data数据',data); console.log('data数据',data);
this.Post({ this.Post({

Loading…
Cancel
Save