Compare commits

...

12 Commits

19 changed files with 241 additions and 113 deletions

View File

@ -57,7 +57,7 @@
},
"oauth" : {
"weixin" : {
"appid" : "wxb4018c78fa143450",
"appid" : "wx1addb25675dd8e70",
"UniversalLinks" : ""
}
}
@ -68,7 +68,7 @@
"quickapp" : {},
/* */
"mp-weixin" : {
"appid" : "wxb4018c78fa143450",
"appid" : "wx1addb25675dd8e70",
"setting" : {
"urlCheck" : false
},

View File

@ -22,7 +22,7 @@
<view class="btn-text">电话</view>
</view>
</view>
<view v-if="item.is_me" class="enter-btn" @tap="enterCommunity(item)">进入小区</view>
<view v-if="item.isShow" class="enter-btn" @tap="enterCommunity(item)">进入小区</view>
</view>
</view>
<view class="community-address">
@ -115,6 +115,8 @@ export default {
console.error('计算距离失败:', error);
item.distanceValue = Infinity;
}
// isShow
item.isShow = true;
return item;
});
@ -262,7 +264,7 @@ export default {
tel: item.tel || '',
photos: item.photos || [], //
extension: item.extension || {}, //
is_me: false
isShow: false
}));
resolve(results);
} else {

View File

@ -29,10 +29,10 @@
<view class="Msg2">
<view class="Msg2_tit">
<view class="Msg2_tit_left">获得物业公积金</view>
<view class="Msg2_tit_right" @click="choseComminty">
<!-- <view class="Msg2_tit_right" @click="choseComminty">
绑定房源
<u-icon name="arrow-right" color="#999999" size="28"></u-icon>
</view>
</view> -->
</view>
<view class="Msg2_con">
@ -41,9 +41,9 @@
{{ homeMoney }}
</span>
</view>
<view class="Msg2_con_right">
<!-- <view class="Msg2_con_right">
{{ room_name }}
</view>
</view> -->
</view>
</view>
@ -212,8 +212,8 @@ export default {
url: 'https://api.weixin.qq.com/cgi-bin/token',
data: {
grant_type: 'client_credential',
appid: "wxb4018c78fa143450",
secret: "82a3471a28fcbfe27d8eb4397b60069b"
appid: "wx1addb25675dd8e70",
secret: "1c153a91d0558b4c3834a4399ebc7496"
},
header: {
// 'custom-header': 'hello' //

View File

@ -1,54 +1,55 @@
<template>
<div class="container">
<div class="payInfoList">
<div class="PayInfoItem" v-for="item in payList">
<div class="row">
<div class="row_label">付款金额</div>
<div class="row_con">{{ item.order_amount }}</div>
</div>
<div class="row">
<div class="row_label2">{{item.create_time}}</div>
<div class="row_label2" v-if="false">Adapay微信小程序支付</div>
<div class="row_label2">{{item.payment_method}}</div>
</div>
<div class="line"></div>
<view class="container">
<view class="payInfoList">
<view class="PayInfoItem" v-for="item in payList">
<view class="row">
<view class="row_label">付款金额</view>
<view class="row_con">{{ item.order_amount }}</view>
</view>
<view class="row">
<view class="row_label2">{{item.create_time}}</view>
<view class="row_label2" v-if="false">Adapay微信小程序支付</view>
<view class="row_label2">{{item.payment_method}}</view>
</view>
<view class="line"></view>
<div class="row2">
<div class="label">订单号</div>
<div class="con3">{{item.order_no}}</div>
</div>
<view class="row2">
<view class="label">订单号</view>
<view class="con3">{{item.order_no}}</view>
</view>
<div class="row2">
<div class="label">消费门店</div>
<div class="con3">{{item.merchant_info.merchant_name}}</div>
</div>
<view class="row2">
<view class="label">消费门店</view>
<view class="con3">{{item.merchant_info.merchant_name}}</view>
</view>
<div class="row2">
<div class="label">当前状态</div>
<div class="con3" v-if="item.status == 1">已支付</div>
<div class="con3" v-if="item.status == 2">待支付</div>
<div class="con3" v-if="item.status == 3">已退款</div>
</div>
<view class="row2">
<view class="label">当前状态</view>
<view class="con3" v-if="item.status == 1">待支付</view>
<view class="con3" v-else-if="item.status == 2">已支付</view>
<view class="con3" v-else-if="item.status == 5">已退款</view>
<view class="con3" v-else>未知</view>
</view>
<div class="line"></div>
<view class="line"></view>
<div class="row3">
<div class="label">返物业费</div>
<div class="con3" @click="houseProvident">{{item.refund_property_fee}}
<view class="row3">
<view class="label">返物业费</view>
<view class="con3" @click="houseProvident">{{item.refund_property_fee}}
<u-icon name="arrow-right" color="#999999" size="40" style="max-lines: 10rpx;"></u-icon>
</div>
</div>
<div class="line"></div>
<div class="row">
<div class="label">返会员积分</div>
<div class="con3" @click="points">{{ item.refund_member_points }}
</view>
</view>
<view class="line"></view>
<view class="row">
<view class="label">返会员积分</view>
<view class="con3" @click="points">{{ item.refund_member_points }}
<u-icon name="arrow-right" color="#999999" size="40" style="max-lines: 10rpx;"></u-icon>
</div>
</div>
</view>
</view>
</div>
</div>
</div>
</view>
</view>
</view>
</template>
<script>

View File

@ -66,7 +66,7 @@
<button class="pay-btn" @click="confirmReceiving(item)">确认收货</button>
</view>
<view class="btn-group" v-if="item.order_status === 5">
<text class="afterSaleNum">{{ item.commodity_order_item_list.length }}笔售后</text>
<!-- <text class="afterSaleNum">{{ item.commodity_order_item_list.length }}笔售后</text> -->
<button class="cancel-btn" @click="afterSale(item)">退换/售后</button>
<button class="pay-btn" @click="orderEvaluate(item)" :disabled="item.evauate_status === 1">评价</button>
</view>
@ -168,8 +168,6 @@ export default {
},
methods: {
selectTab(index, item) {
console.log("🚀 ~ selectTab ~ index:", index)
console.log("🚀 ~ selectTab ~ item:", item)
this.selectedTab = index;
if (index == 6) {
this.evaluateStatus = 2;
@ -235,7 +233,7 @@ export default {
goods_ids: this.afterSaleOrderItem.commodity_order_item_list.map(item => item.goods_id),
after_sales_type: data.afterSalesType,
after_sales_reason: data.refundReason,
refund_amount: this.afterSaleOrderItem.total_amount,
refund_amount: data.refundAmount,
application_description: data.refundDescription,
// URL
application_images: data.imgList && data.imgList.length > 0 ?

View File

@ -67,7 +67,7 @@
<button class="pay-btn" @click="confirmReceiving(item)">确认收货</button>
</view>
<view class="btn-group" v-if="item.order_status === 5">
<text class="afterSaleNum">{{ item.commodity_order_item_list.length }}笔售后</text>
<!-- <text class="afterSaleNum">{{ item.commodity_order_item_list.length }}笔售后</text> -->
<button class="cancel-btn" @click="afterSale(item)">退换/售后</button>
<button class="pay-btn" @click="orderEvaluate(item)" :disabled="item.evauate_status === 1">评价</button>
</view>
@ -234,7 +234,7 @@ export default {
goods_ids: this.afterSaleOrderItem.commodity_order_item_list.map(item => item.goods_id),
after_sales_type: data.afterSalesType,
after_sales_reason: data.refundReason,
refund_amount: this.afterSaleOrderItem.total_amount,
refund_amount: data.refundAmount,
application_description: data.refundDescription,
// URL
application_images: data.imgList && data.imgList.length > 0 ?
@ -262,7 +262,7 @@ export default {
// 退
handleRefundConfirmed(data) {
const params = {
const params = {
order_id: this.afterSaleItem.id,
}
request(afterSaleApi.orderRefund, "POST", params).then((res) => {

View File

@ -281,6 +281,9 @@ export default {
refundDescription: '',
refundMethod: '自行寄回',
imgList: [],
refundAmount: 0, // 退
maxRefundAmount: 0, // 退
postage: 0, //
applyRefundReasons: [
'商品质量问题',
'商品与描述不符',
@ -309,6 +312,8 @@ export default {
this.$nextTick(() => {
if (this.afterSaleGoods && this.afterSaleGoods.length > 0) {
this.selectedAsGood = this.afterSaleGoods[0].goods_id;
this.afterSalesType = 2
this.selectedAfterSaleType = 0;
this.afterSalePopup = true;
}
})
@ -401,12 +406,17 @@ export default {
}
this.afterSalePopup2 = false;
},
// 退
// 退
confirmAfterSaleCancel2() {
const afterSaleTypes = ['退货退款', '退款'];
const selectedType = afterSaleTypes[this.selectedAfterSaleType2];
console.log('选中的售后类型:', selectedType);
// 退退
this.refundAmount = this.orderItem.total_amount;
this.maxRefundAmount = this.orderItem.total_amount;
//
this.postage = this.orderItem.postage || 0;
let selectedReasonText = '';
if (selectedType == '退货退款') {
@ -486,7 +496,50 @@ export default {
// 退
modifyRefundAmount() {
console.log('修改退款金额');
const that = this;
//
uni.showModal({
title: '修改退款金额',
editable: true,
placeholderText: `请输入不超过¥${this.maxRefundAmount.toFixed(2)}的金额`,
success: function (res) {
if (res.confirm && res.content) {
let inputAmount = parseFloat(res.content);
//
if (isNaN(inputAmount) || inputAmount <= 0) {
uni.showToast({
title: '请输入有效的金额',
icon: 'none'
});
return;
}
//
inputAmount = Math.round(inputAmount * 100) / 100;
// 退
if (inputAmount > that.maxRefundAmount) {
uni.showToast({
title: `退款金额不能超过¥${that.maxRefundAmount.toFixed(2)}`,
icon: 'none'
});
return;
}
// 退
that.refundAmount = inputAmount;
// 退
that.$emit('refundAmountChanged', that.refundAmount);
uni.showToast({
title: '退款金额修改成功',
icon: 'success'
});
}
}
});
},
//
@ -511,9 +564,9 @@ export default {
afterSalesType: this.afterSalesType,
serviceType: this.selectedServiceType,
refundReason: this.selectedRefundReason || this.changeRefundReason,
refundAmount: this.orderItem.total_amount,
maxRefundAmount: this.orderItem.total_amount,
postage: 0, // 0
refundAmount: this.refundAmount || this.orderItem.total_amount,
maxRefundAmount: this.maxRefundAmount || this.orderItem.total_amount,
postage: this.postage,
refundDescription: this.refundDescription,
refundMethod: this.refundMethod,
merchantAddress: this.orderItem.supplier_address,
@ -548,6 +601,9 @@ export default {
this.currentGGIndex = 0;
this.refundDescription = '';
this.imgList = [];
this.refundAmount = 0;
this.maxRefundAmount = 0;
this.postage = 0;
},
}
};

View File

@ -1,4 +1,4 @@
m<template>
<template>
<view class="group-purchase-container">
<!-- 顶部横幅 -->
<view class="banner">

View File

@ -375,7 +375,7 @@ page {
.shadowBox_img {
width: 600rpx;
height: 900rpx;
height: 500rpx;
background-color: #fff;
border-radius: 20rpx;
}
@ -396,8 +396,8 @@ page {
}
.boxshadow_img {
width: 300rpx;
height: 300rpx;
/* width: 300rpx;
height: 300rpx; */
margin: 0 auto;
margin-top: 40rpx;
text-align: center;
@ -405,7 +405,7 @@ page {
.boxbottom {
width: 100%;
margin-top: 100rpx;
margin-top: 50rpx;
display: flex;
justify-content: center;
align-items: center;
@ -436,7 +436,16 @@ page {
height: 150rpx;
border: 1rpx solid red;
position: absolute;
left: 50rpx;
left: 100rpx;
opacity:0;
}
.shadowBox2Item_btn{
width: 110rpx;
height: 150rpx;
border: 1rpx solid red;
position: absolute;
right: 100rpx;
opacity:0;
}

View File

@ -43,7 +43,7 @@
<view class="group-price">
<view>{{ item.commodity_goods_info.sales_price }}/{{
item.commodity_goods_info.goods_unit
}}</view>
}}</view>
<!-- 运费 -->
<view class="goods-desc" style="margin-top: 10rpx;">运费 {{
item.commodity_goods_info.freight }}</view>
@ -233,10 +233,10 @@
已支付成功
</view>
<view class="boxshadow_img">
<view style="margin-bottom: 15rpx;">{{ verifyCode }}</view>
<image
<view>核销码{{ verifyCode }}</view>
<!-- <image
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/shop_share_img.png">
</image>
</image> -->
</view>
<view class="boxbottom">
<view class="line1"></view>
@ -246,24 +246,25 @@
<view @click.stop="changeShadow">
<view class="shadowBox1">
<button class="shadowBox1Item_btn" open-type="share" bindtap="onShareButtonClick" />
<view class="shadowBox1Item" @click="shareFriend">
<view class="shadowBox1Item">
<image
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/shop_WX.png"
mode="aspectFill"></image>
微信好友
</view>
<button class="shadowBox2Item_btn" open-type="share" bindtap="onShareButtonClick" />
<view class="shadowBox1Item" @click="shareFriend">
<image
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/shop_WX.png"
mode="aspectFill"></image>
小程序链接
</view>
<view class="shadowBox1Item" @click="openSave">
<!-- <view class="shadowBox1Item" @click="openSave">
<image
src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/property-img-file/shop_saveImg.png"
mode="aspectFill"></image>
二维码海报
</view>
</view> -->
</view>
</view>
</view>
@ -617,6 +618,7 @@ export default {
receiving_name: ztAddress.name || '',
receiving_phone: ztAddress.phone || '',
receiving_address: ztAddress.address || '',
merchant_id: ztAddress.address_id,
group_buy_activity_id: firstItem.commodity_goods_info.group_buy_activity_id,
goods_and_count: group.map(item => {
const activityInfo = item.commodity_goods_info.group_buy_activity_info;

View File

@ -173,7 +173,7 @@ export default {
uni.requestPayment({
"provider": "wxpay",
"orderInfo": {
"appid": "wxb4018c78fa143450", //
"appid": "wx1addb25675dd8e70", //
"noncestr": resCopy.nonceStr, //
"package": resCopy.package, //
"prepayid":resCopy.prepayId,

View File

@ -44,9 +44,10 @@ export default {
const res = await request(apiArr.groupBuyAddress, 'POST', params)
//
res.self_pickup_address_list[0].address.forEach(item => {
const [address, phone, name] = item.split(' ');
const [id,address, phone, name] = item.split(' ');
this.locationList.push({
id: supplier_id,
address_id: id,
name: name || '',
phone: phone || '',
address: address || ''

View File

@ -39,22 +39,43 @@ import { apiArr } from "../../../api/community";
export default {
data() {
return {
communityVal: "添加我的房产",
showWorkOrderSection: false
communityVal: "切换小区",
showWorkOrderSection: false,
communityList: []
}
},
onLoad() {
async onLoad() {
const workOrderPermission = uni.getStorageSync('work_order_permission');
const orderDispatchPermission = uni.getStorageSync('order_dispatch_permission');
this.showWorkOrderSection = !(workOrderPermission === false && orderDispatchPermission === false);
//
await request(apiArr.workCommunityList, "POST", {
user_id: uni.getStorageSync('userId'),
}).then(res => {
res.rows.forEach(item => {
item.pic = item.pic.startsWith('http') ? item.pic : picUrl + item.pic
});
this.communityList = res.rows;
//
if (!uni.getStorageSync('changeWorkOrderData') && res.rows.length > 0) {
uni.setStorageSync('changeWorkOrderData', { id: res.rows[0].community_id, name: res.rows[0].name });
this.communityVal = res.rows[0].name;
}
});
},
async onShow() {
this.communityVal = uni.getStorageSync('changeCommData').name;
const params = {
community_id: uni.getStorageSync('changeCommData').id,
const changeCommData = uni.getStorageSync('changeWorkOrderData');
this.communityVal = changeCommData ? changeCommData.name : "切换小区";
if (changeCommData) {
const params = {
community_id: changeCommData.id,
}
const res = await request(apiArr.communityInfo, "POST", params);
uni.setStorageSync('allow_grab_order', res.allow_grab_order == 1 ? true : false);
}
const res = await request(apiArr.communityInfo, "POST", params);
uni.setStorageSync('allow_grab_order', res.allow_grab_order == 1 ? true : false);
},
methods: {
addCommunity() {
@ -63,8 +84,17 @@ export default {
//
navigateToWorkOrderDashboard() {
const changeCommData = uni.getStorageSync('changeWorkOrderData');
if (!changeCommData) {
uni.showToast({
title: '请先选择小区',
icon: 'none'
});
return;
}
uni.navigateTo({
url: '/packages/workOrderDashboard/index/index?communityId=' + uni.getStorageSync('changeCommData').id
url: '/packages/workOrderDashboard/index/index?communityId=' + changeCommData.id
});
}
}

View File

@ -65,24 +65,19 @@ export default {
this.communityList = res.rows
})
},
// toUpview(item) {
// uni.setStorageSync('changeCommData', { id: item.community_id, name: item.name });
// NavgateTo("/packages/community/index/index")
// },
choseCommunity(e) {
this.currentCommunity = e
uni.setStorageSync('changeCommData', { id: e.community_id, name: e.name });
uni.setStorageSync('changeWorkOrderData', { id: e.community_id, name: e.name });
uni.setStorageSync('currentCommunityAddr',e.addr);
NavgateTo("1")
},
},
onLoad(options) {
this.currentCommunity = uni.getStorageSync('changeCommData')
this.currentCommunity = uni.getStorageSync('changeWorkOrderData')
console.log(this.currentCommunity, 'currentCommunity');
this.getList();
},
onReachBottom() { },

View File

@ -260,7 +260,7 @@ page {
/* 广告横幅 */
.serverList1 {
width: 100%;
width: 97%;
height: 450rpx;
display: flex;
flex-wrap: wrap;
@ -279,19 +279,19 @@ page {
}
.serverList1_left image {
width: 350rpx;
height: 454rpx;
width: 100%;
height: 100%;
object-fit: cover;
border-radius: 20rpx;
}
.serverList1_right {
width: 400rpx;
width: 370rpx;
height: 450rpx;
}
.serverItemRight1 {
width: 350rpx;
width: 100%;
height: 222rpx;
}
@ -300,7 +300,7 @@ page {
}
.serverItemRight2 {
width: 350rpx;
width: 100%;
height: 222rpx;
margin-top: 10rpx;
}

View File

@ -92,15 +92,13 @@
<!-- 广告横幅 -->
<view class="serverList1">
<view class="serverList1_left">
<!-- <image src="https://wechat-img-file.oss-cn-beijing.aliyuncs.com/index_ad_left.jpg" mode="aspectFit" /> -->
<image :src="serverLeft" mode="aspectFit" />
<view class="serverList1_left" @click="toAdvertisingView">
<image :src="serverLeft" mode="aspectFill" />
</view>
<view class="serverList1_right">
<view :class="['serverItemRight', `serverItemRight${index + 1}`]" @tap="headerServerClick(item)"
v-for="(item, index) in serverRightList" :key="index">
<image :src="item.pic_src" mode="" />
<!-- <view>{{ item.ad_position }}</view> -->
</view>
</view>
</view>
@ -115,7 +113,7 @@
<view class="serverList_left">
<swiper>
<swiper-item v-for="(item, index) in homeLeftList" :key="index" @click="headerServerClick(item)">
<image :src="item.pic_src" alt="" />
<image :src="item.pic_src" alt="" class="serverList_left_img"/>
<!-- <view>{{ item.ad_position }}</view> -->
</swiper-item>
</swiper>
@ -134,7 +132,7 @@
<view :class="['serverItem', `serverItem${index + 4}`]" @click="headerServerClick2(item)"
v-for="(item, index) in homeRightList2" :key="index">
<view class="serverTit">{{ item.title }}</view>
<image :src="item.pic_src" mode="aspectFill" />
<image :src="item.pic_src" mode="" />
<!-- <view>{{ item.ad_position }}</view> -->
</view>
</view>
@ -352,6 +350,11 @@ export default {
})
},
// 广
toAdvertisingView(item) {
NavgateTo('/packages/advertising/index/index')
},
async goToWuye() {
uni.removeStorageSync('order_dispatch_permission');
uni.removeStorageSync('work_order_permission');

View File

@ -2,7 +2,7 @@
<view class="login"
style="background-image: url(https://wechat-img-file.oss-cn-beijing.aliyuncs.com/login/Group_491.png);">
<view class="login-title">
<view class="login-tip" style="font-size: 40rpx; color: #000000;">欢迎来到榴园社区</view>
<view class="login-tip" style="font-size: 40rpx; color: #000000;">欢迎来到湖畔生活家</view>
<view v-if="loginChannel === 'android' || loginChannel === 'ios'" class="app_login">
<input class="input" type="number" maxlength="11" data-name="userId" @input='headerInputClick'

View File

@ -1,5 +1,5 @@
{
"appid": "wxb4018c78fa143450",
"appid": "wx1addb25675dd8e70",
"compileType": "miniprogram",
"libVersion": "3.8.3",
"packOptions": {

View File

@ -1,6 +1,37 @@
// const RequsetUrl = 'https://huishang.magicany.cc/api/v1'; // 请求地址前缀
const RequsetUrl = 'https://test.hshuishang.com'; // 请求地址前缀
export const picUrl = 'https://test.hshuishang.com'; // 图片地址前缀
// 环境配置
const environments = {
development: {
apiUrl: 'https://test.hshuishang.com',
picUrl: 'https://test.hshuishang.com'
},
production: {
apiUrl: 'https://api.hshuishang.com',
picUrl: 'https://api.hshuishang.com'
}
};
// 判断当前环境
const getCurrentEnvironment = () => {
// 优先通过NODE_ENV判断
if (process && process.env && process.env.NODE_ENV) {
return process.env.NODE_ENV;
}
// 通过全局配置判断例如Vercel等平台的环境变量
if (typeof global !== 'undefined' && global.env) {
return global.env;
}
// 默认返回开发环境
return 'development';
};
// 获取当前环境配置
const currentEnv = getCurrentEnvironment();
const envConfig = environments[currentEnv] || environments.development;
export const RequsetUrl = envConfig.apiUrl; // 请求地址前缀
export const picUrl = envConfig.picUrl; // 图片地址前缀
/**
* @description 小程序跳转方法二次封装