001价格优化

This commit is contained in:
丁杰 2026-04-13 17:20:29 +08:00
parent 227b63b6bf
commit dc1898ebb1
4 changed files with 17076 additions and 17966 deletions

File diff suppressed because it is too large Load Diff

View File

@ -573,7 +573,7 @@
const currentCityCode = (cityItem.code || '').slice(0, 6) const currentCityCode = (cityItem.code || '').slice(0, 6)
if (currentCityCode === targetCityCode) { if (currentCityCode === targetCityCode) {
result.cityIndex = cIdx result.cityIndex = cIdx
const areas = cityItem.areas || [] const areas = cityItem?.areas || []
for (let aIdx = 0; aIdx < areas.length; aIdx++) { for (let aIdx = 0; aIdx < areas.length; aIdx++) {
const areaItem = areas[aIdx] const areaItem = areas[aIdx]
const currentAreaCode = (areaItem.code || '').slice(0, 6) const currentAreaCode = (areaItem.code || '').slice(0, 6)

View File

@ -254,8 +254,12 @@
applyType: 3, applyType: 3,
// //
hours: Array.from({ length: 24 }, (_, i) => i < 10 ? `0${i}` : `${i}`), hours: Array.from({
minutes: Array.from({ length: 60 }, (_, i) => i < 10 ? `0${i}` : `${i}`), length: 24
}, (_, i) => i < 10 ? `0${i}` : `${i}`),
minutes: Array.from({
length: 60
}, (_, i) => i < 10 ? `0${i}` : `${i}`),
indicatorStyle: 'height: 68rpx;', indicatorStyle: 'height: 68rpx;',
// //
@ -294,7 +298,7 @@
this.loadApplyDetails(); this.loadApplyDetails();
this.locatinCitys = this.ChinaCitys[0].citys; this.locatinCitys = this.ChinaCitys[0].citys;
this.locationAreas = this.locatinCitys[0].areas; this.locationAreas = this.locatinCitys[0]?.areas || [];
}, },
onUnload() { onUnload() {
uni.$off('address-selected-for-sj'); uni.$off('address-selected-for-sj');
@ -351,7 +355,9 @@
console.log('开始获取用户信息...'); console.log('开始获取用户信息...');
const type = 3; const type = 3;
request.post('/user/getuser', { type }).then(result => { request.post('/user/getuser', {
type
}).then(result => {
console.log('接口返回完整数据:', result); console.log('接口返回完整数据:', result);
if (result.state === 1 && result.data) { if (result.state === 1 && result.data) {
@ -380,8 +386,12 @@
this.longitude = userData.longitude || ''; this.longitude = userData.longitude || '';
this.latitude = userData.latitude || ''; this.latitude = userData.latitude || '';
this.pendingData = { ...this.originalData }; this.pendingData = {
this.displayData = { ...this.originalData }; ...this.originalData
};
this.displayData = {
...this.originalData
};
console.log('数据初始化完成'); console.log('数据初始化完成');
} else { } else {
@ -426,7 +436,9 @@
async loadApplyDetails() { async loadApplyDetails() {
try { try {
console.log('开始加载申请详情...'); console.log('开始加载申请详情...');
const res = await request.post('/sj/userSjAuth/details', { apply_type: this.applyType }); const res = await request.post('/sj/userSjAuth/details', {
apply_type: this.applyType
});
console.log('申请详情接口返回:', res); console.log('申请详情接口返回:', res);
@ -460,7 +472,8 @@
address: detail.address || this.originalData.address, address: detail.address || this.originalData.address,
major: detail.major || this.originalData.major, major: detail.major || this.originalData.major,
dependency_code: detail.dependency_code || this.originalData.dependency_code, dependency_code: detail.dependency_code || this.originalData.dependency_code,
dependency_province: detail.dependency_province || this.originalData.dependency_province, dependency_province: detail.dependency_province || this.originalData
.dependency_province,
dependency_city: detail.dependency_city || this.originalData.dependency_city, dependency_city: detail.dependency_city || this.originalData.dependency_city,
longitude: detail.longitude || this.originalData.longitude, longitude: detail.longitude || this.originalData.longitude,
latitude: detail.latitude || this.originalData.latitude, latitude: detail.latitude || this.originalData.latitude,
@ -469,7 +482,9 @@
} }
if (this.auditStatus === 2) { if (this.auditStatus === 2) {
this.originalData = { ...this.pendingData }; this.originalData = {
...this.pendingData
};
} }
} }
@ -506,19 +521,25 @@
this.buttonType = 'view'; this.buttonType = 'view';
this.editable = false; this.editable = false;
this.showPendingData = false; this.showPendingData = false;
this.displayData = { ...this.originalData }; this.displayData = {
...this.originalData
};
} else if (this.auditStatus === 3) { } else if (this.auditStatus === 3) {
this.showAuditTip = false; this.showAuditTip = false;
this.buttonType = 'reject'; this.buttonType = 'reject';
this.editable = false; this.editable = false;
this.showPendingData = false; this.showPendingData = false;
this.displayData = { ...this.originalData }; this.displayData = {
...this.originalData
};
} else { } else {
this.showAuditTip = false; this.showAuditTip = false;
this.buttonType = 'change'; this.buttonType = 'change';
this.editable = false; this.editable = false;
this.showPendingData = false; this.showPendingData = false;
this.displayData = { ...this.originalData }; this.displayData = {
...this.originalData
};
} }
this.updateNavTitle(); this.updateNavTitle();
@ -540,23 +561,31 @@
startChange() { startChange() {
this.editable = true; this.editable = true;
this.buttonType = 'edit'; this.buttonType = 'edit';
this.displayData = { ...this.pendingData }; this.displayData = {
...this.pendingData
};
this.updateNavTitle(); this.updateNavTitle();
}, },
cancelChange() { cancelChange() {
this.editable = false; this.editable = false;
this.buttonType = 'change'; this.buttonType = 'change';
this.displayData = { ...this.originalData }; this.displayData = {
...this.originalData
};
this.updateNavTitle(); this.updateNavTitle();
}, },
togglePendingData() { togglePendingData() {
this.showPendingData = !this.showPendingData; this.showPendingData = !this.showPendingData;
if (this.showPendingData) { if (this.showPendingData) {
this.displayData = { ...this.pendingData }; this.displayData = {
...this.pendingData
};
} else { } else {
this.displayData = { ...this.originalData }; this.displayData = {
...this.originalData
};
} }
this.updateNavTitle(); this.updateNavTitle();
}, },
@ -570,9 +599,13 @@
} }
try { try {
uni.showLoading({ title: '提交中...' }); uni.showLoading({
title: '提交中...'
});
this.pendingData = { ...this.displayData }; this.pendingData = {
...this.displayData
};
const submitData = { const submitData = {
apply_type: this.applyType, apply_type: this.applyType,
@ -595,13 +628,18 @@
uni.hideLoading(); uni.hideLoading();
if (res.code === 200) { if (res.code === 200) {
uni.showToast({ title: '提交成功', icon: 'none' }); uni.showToast({
title: '提交成功',
icon: 'none'
});
this.backText = ''; this.backText = '';
this.auditStatus = 1; this.auditStatus = 1;
this.hasResubmitted = true; this.hasResubmitted = true;
this.pendingData = { ...this.displayData }; this.pendingData = {
...this.displayData
};
this.editable = false; this.editable = false;
this.buttonType = 'view'; this.buttonType = 'view';
@ -613,34 +651,55 @@
}, 1500); }, 1500);
} else { } else {
uni.showToast({ title: res.msg || '提交失败', icon: 'none' }); uni.showToast({
title: res.msg || '提交失败',
icon: 'none'
});
} }
} catch (error) { } catch (error) {
uni.hideLoading(); uni.hideLoading();
console.error('提交失败:', error); console.error('提交失败:', error);
uni.showToast({ title: '网络错误,请重试', icon: 'none' }); uni.showToast({
title: '网络错误,请重试',
icon: 'none'
});
} }
}, },
validateForm() { validateForm() {
if (!this.displayData.head_photo) { if (!this.displayData.head_photo) {
uni.showToast({ title: '请上传店铺logo', icon: 'none' }); uni.showToast({
title: '请上传店铺logo',
icon: 'none'
});
return false; return false;
} }
if (!this.displayData.name) { if (!this.displayData.name) {
uni.showToast({ title: '请输入店铺名称', icon: 'none' }); uni.showToast({
title: '请输入店铺名称',
icon: 'none'
});
return false; return false;
} }
if (!this.displayData.dependency) { if (!this.displayData.dependency) {
uni.showToast({ title: '请选择门店所在地', icon: 'none' }); uni.showToast({
title: '请选择门店所在地',
icon: 'none'
});
return false; return false;
} }
if (!this.displayData.address) { if (!this.displayData.address) {
uni.showToast({ title: '请选择门店详细地址', icon: 'none' }); uni.showToast({
title: '请选择门店详细地址',
icon: 'none'
});
return false; return false;
} }
if (!this.displayData.major) { if (!this.displayData.major) {
uni.showToast({ title: '请选择专业经验', icon: 'none' }); uni.showToast({
title: '请选择专业经验',
icon: 'none'
});
return false; return false;
} }
return true; return true;
@ -692,7 +751,9 @@
success: resolve, success: resolve,
fail: reject fail: reject
}); });
}).catch(() => ({ tapIndex: -1 })); }).catch(() => ({
tapIndex: -1
}));
if (res.tapIndex === -1) return; // if (res.tapIndex === -1) return; //
@ -702,7 +763,9 @@
this._openCamera(type, ['camera']); this._openCamera(type, ['camera']);
} else { } else {
this.isShowCameraPer = true; this.isShowCameraPer = true;
const { granted } = await permissionUtils.checkPermission('camera', '需要相机权限以拍照'); const {
granted
} = await permissionUtils.checkPermission('camera', '需要相机权限以拍照');
if (granted) { if (granted) {
this.isShowCameraPer = false; this.isShowCameraPer = false;
this._openCamera(type, ['camera']); this._openCamera(type, ['camera']);
@ -725,7 +788,9 @@
this._openCamera(type, ['album']); this._openCamera(type, ['album']);
} else { } else {
this.isShowStoragePer = true; this.isShowStoragePer = true;
const { granted } = await permissionUtils.checkPermission('photo_library', '需要存储权限以选择照片'); const {
granted
} = await permissionUtils.checkPermission('photo_library', '需要存储权限以选择照片');
if (granted) { if (granted) {
this.isShowStoragePer = false; this.isShowStoragePer = false;
this._openCamera(type, ['album']); this._openCamera(type, ['album']);
@ -760,7 +825,10 @@
if (!chooseResult.tempFilePaths || chooseResult.tempFilePaths.length === 0) return; if (!chooseResult.tempFilePaths || chooseResult.tempFilePaths.length === 0) return;
const tempFilePath = chooseResult.tempFilePaths[0]; const tempFilePath = chooseResult.tempFilePaths[0];
const file = { path: tempFilePath, size: 0 }; const file = {
path: tempFilePath,
size: 0
};
const result = await this.directUpload(file, this.userId, this.identity + 1); const result = await this.directUpload(file, this.userId, this.identity + 1);
@ -771,7 +839,10 @@
} catch (err) { } catch (err) {
console.log('上传图片错误:', err); console.log('上传图片错误:', err);
if (!err.errMsg || !err.errMsg.includes('cancel')) { if (!err.errMsg || !err.errMsg.includes('cancel')) {
uni.showToast({ title: '上传失败', icon: 'none' }); uni.showToast({
title: '上传失败',
icon: 'none'
});
} }
} }
}, },
@ -805,7 +876,10 @@
if (!chooseResult.tempFilePaths || chooseResult.tempFilePaths.length === 0) return; if (!chooseResult.tempFilePaths || chooseResult.tempFilePaths.length === 0) return;
const tempFilePath = chooseResult.tempFilePaths[0]; const tempFilePath = chooseResult.tempFilePaths[0];
const file = { path: tempFilePath, size: 0 }; const file = {
path: tempFilePath,
size: 0
};
const result = await this.directUpload(file, this.userId, this.identity + 1); const result = await this.directUpload(file, this.userId, this.identity + 1);
@ -816,7 +890,10 @@
} catch (err) { } catch (err) {
console.log('上传图片错误:', err); console.log('上传图片错误:', err);
if (!err.errMsg || !err.errMsg.includes('cancel')) { if (!err.errMsg || !err.errMsg.includes('cancel')) {
uni.showToast({ title: '上传失败', icon: 'none' }); uni.showToast({
title: '上传失败',
icon: 'none'
});
} }
} }
}, },
@ -839,7 +916,10 @@
let name = `${userId}_${artisan}_${date}.${fileExtension}`; let name = `${userId}_${artisan}_${date}.${fileExtension}`;
console.log('安全文件名:', name); console.log('安全文件名:', name);
const ossConfig = await request.post('/user/getalioss', { type, kind: 1 }); const ossConfig = await request.post('/user/getalioss', {
type,
kind: 1
});
return await new Promise((resolve, reject) => { return await new Promise((resolve, reject) => {
uni.uploadFile({ uni.uploadFile({
@ -883,7 +963,7 @@
let index1 = e.detail.value[0] || 0; let index1 = e.detail.value[0] || 0;
let index2 = e.detail.value[1] || 0; let index2 = e.detail.value[1] || 0;
this.locatinCitys = this.ChinaCitys[index1].citys; this.locatinCitys = this.ChinaCitys[index1].citys;
this.locationAreas = this.locatinCitys[index2].areas; this.locationAreas = this.locatinCitys[index2]?.areas || [];
}, },
confirmLocationSelect() { confirmLocationSelect() {
let valueArr = this.locationValue; let valueArr = this.locationValue;
@ -1008,7 +1088,9 @@
}); });
}, },
_navigateToAddress({ canInitCurrentLocation = false } = {}) { _navigateToAddress({
canInitCurrentLocation = false
} = {}) {
let params = 'source=sj_info'; let params = 'source=sj_info';
const dependency = String(this.displayData.dependency || '').trim(); const dependency = String(this.displayData.dependency || '').trim();
@ -1068,7 +1150,8 @@
const regionParts = []; const regionParts = [];
if (addressData.pname) regionParts.push(addressData.pname); if (addressData.pname) regionParts.push(addressData.pname);
if (addressData.cityname && addressData.cityname !== addressData.pname) regionParts.push(addressData.cityname); if (addressData.cityname && addressData.cityname !== addressData.pname) regionParts.push(addressData
.cityname);
if (addressData.adname) regionParts.push(addressData.adname); if (addressData.adname) regionParts.push(addressData.adname);
const regionText = regionParts.join(''); const regionText = regionParts.join('');
@ -1337,8 +1420,10 @@
.picker-value, .picker-value,
.placeholder { .placeholder {
flex: 1; /* 占据剩余宽度 */ flex: 1;
text-align: right; /* 文字右对齐 */ /* 占据剩余宽度 */
text-align: right;
/* 文字右对齐 */
font-size: 28rpx; font-size: 28rpx;
word-break: break-all; word-break: break-all;
white-space: normal; white-space: normal;

View File

@ -22,7 +22,8 @@
<view class="kh-card-footer-left flex-row-center"> <view class="kh-card-footer-left flex-row-center">
<image class="kh-card-footer-left-img" :src="orderInfo.order_headphoto"></image> <image class="kh-card-footer-left-img" :src="orderInfo.order_headphoto"></image>
<view class="kh-card-footer-left-text"> <view class="kh-card-footer-left-text">
{{ `${orderInfo.order_username} ${orderInfo.phone_user}` }}</view> {{ `${orderInfo.order_username} ${orderInfo.phone_user}` }}
</view>
</view> </view>
<image class="kh-card-footer-right" @click="contactService(orderInfo.phone_user)" <image class="kh-card-footer-right" @click="contactService(orderInfo.phone_user)"
src="/static/images/icons/phone.png"></image> src="/static/images/icons/phone.png"></image>
@ -58,7 +59,7 @@
</view> </view>
<!-- 店铺信息 --> <!-- 店铺信息 -->
<view class="shop_card" <!-- <view class="shop_card"
v-if=" serviceType !== '2' && orderInfo.order_kind !== 3 && user_sj && user_sj.name"> v-if=" serviceType !== '2' && orderInfo.order_kind !== 3 && user_sj && user_sj.name">
<view class="shop_info_box"> <view class="shop_info_box">
<view class="shop_info_row"> <view class="shop_info_row">
@ -89,9 +90,24 @@
<text class="shop_address" v-if="user_sj.address">地址{{ user_sj.address }}</text> <text class="shop_address" v-if="user_sj.address">地址{{ user_sj.address }}</text>
</view> </view>
</view> </view>
</view> -->
<!-- 用户信息 -->
<view class="shop_card" v-if="orderInfo.order_kind==2">
<view class="userinfo">
<view class="" v-if="orderInfo.user_yh.head_photo">
<image :src="orderInfo.user_yh.head_photo" mode="widthFix"
style="width: 70rpx;border-radius: 50%;"></image>
</view>
<view class="" style="margin-left: 20rpx;margin-top: 15rpx;">{{orderInfo.user_yh.username}}</view>
<view class="" style="margin-left: 12rpx;margin-top: 15rpx;">{{orderInfo.user_yh.account}}</view>
<view class="" style="margin-left: auto;" @click="contactService(orderInfo.user_yh.account)">
<image
src="https://mrrplus.oss-cn-beijing.aliyuncs.com/photo/system/1cd9338d-f5b3-421b-8757-92578387e05d.png"
mode="widthFix" style="width: 40rpx;margin-top: 15rpx;"></image>
</view>
</view>
</view> </view>
<!-- 服务时段 --> <!-- 服务时段 -->
<view class="time_card" v-if="orderInfo.order_kind == 3"> <view class="time_card" v-if="orderInfo.order_kind == 3">
<view class="card_title">服务时段</view> <view class="card_title">服务时段</view>
@ -117,7 +133,7 @@
<view class="service-name-num">×1</view> <view class="service-name-num">×1</view>
</view> </view>
<view v-if="orderInfo.team_buy_id" class="group-price"> <view v-if="orderInfo.team_buy_id" class="group-price">
<view class="service-price">原价¥{{ orderInfo.cost_money }}</view> <!-- <view class="service-price">原价¥{{ orderInfo.cost_money }}</view> -->
<view class="service-price2">团购价:¥<text style="font-size: 36rpx">{{ <view class="service-price2">团购价:¥<text style="font-size: 36rpx">{{
orderInfo.order_money orderInfo.order_money
}}</text></view> }}</text></view>
@ -127,11 +143,33 @@
</text> </text>
</view> </view>
</view> </view>
<view class="service-item1">
<view class="serverinfo">
<view class="serverinfo-l">服务售价</view>
<view class="serverinfo-r">
<view class="serverinfo-r-o" v-if="orderInfo.cost_money!=orderInfo.line_money">
{{orderInfo.cost_money}}</view>
<view class="serverinfo-r-t">{{orderInfo.line_money}}</view>
</view>
</view>
</view>
<view class="service-item1">
<view class="payinfo">
<view class="payinfo-l">用户实付</view>
<view class="payinfo-r">{{orderInfo.pay_money}}</view>
</view>
</view>
<view class="service-item1" v-if="orderInfo.butie_zonge!=0">
<view class="btinfo">
<view class="btinfo-l">平台补贴</view>
<view class="btinfo-r">{{orderInfo.butie_zonge}}</view>
</view>
</view>
<view class="service-real"> <view class="service-real">
<text class="real-lable">实付金额</text> <text class="real-lable">商家结算基数</text>
<view class="real-price"> <view class="real-price">
<text class="icon"></text> <text class="icon"></text>
<text>{{ orderInfo.pay_money?orderInfo.pay_money:0 }}</text> <text>{{ orderInfo.jiesuan_jine_yiju?orderInfo.jiesuan_jine_yiju:0 }}</text>
</view> </view>
</view> </view>
</view> </view>
@ -213,10 +251,29 @@
<text class="value">{{orderInfo.team_buy_order_number}}</text> <text class="value">{{orderInfo.team_buy_order_number}}</text>
</view> </view>
</view> </view>
<view class="order-card" v-if="Object.keys(orderInfo.coupon_info).length>0">
<text class="card-title">优惠券信息</text>
<view class="coupon-item">
<view class="info-item">
<text class="label">优惠券</text>
<text class="value">{{orderInfo.coupon_info.title}}</text>
</view>
<view class="info-item">
<text class="label">券码</text>
<text class="value">{{orderInfo.coupon_info.code_num}}</text>
</view>
<view class="info-item">
<text class="label">优惠券金额</text>
<text class="value">{{orderInfo.coupon_info.reduce_money}}</text>
</view>
</view>
</view>
</view> </view>
<!-- 底部按钮 --> <!-- 底部按钮 -->
<view class="bottom-buttons" v-if="haveButton && (orderInfo.state == 2) || orderInfo.state == 3 || orderInfo.state == 4"> <view class="bottom-buttons"
v-if="haveButton && (orderInfo.state == 2) || orderInfo.state == 3 || orderInfo.state == 4">
<!-- <view class="contact-button" @click="contactService(orderInfo.phone_user)"> <!-- <view class="contact-button" @click="contactService(orderInfo.phone_user)">
<image src="/static/images/tell_icon.png" class="tell-icon"></image> <image src="/static/images/tell_icon.png" class="tell-icon"></image>
<text class="contact-text">联系TA</text> <text class="contact-text">联系TA</text>
@ -387,7 +444,9 @@
methods: { methods: {
// //
messageRead(id) { messageRead(id) {
request.post("/sj/push/messageRead",{id:id}).then(res=>{ request.post("/sj/push/messageRead", {
id: id
}).then(res => {
console.log("messageRead:", res) console.log("messageRead:", res)
this.messageUpudateNum() this.messageUpudateNum()
}) })
@ -1533,4 +1592,120 @@
} }
} }
} }
.userinfo {
display: flex;
}
.serverinfo {
display: flex;
justify-content: space-between;
}
.serverinfo-l {
width: 120rpx;
height: 42rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 30rpx;
color: #333333;
line-height: 42rpx;
text-align: left;
font-style: normal;
}
.serverinfo-r {
display: flex;
}
.serverinfo-r-o {
height: 40rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 26rpx;
color: #999999;
line-height: 40rpx;
text-align: left;
font-style: normal;
// margin-left: 350rpx;
text-decoration: line-through;
}
.serverinfo-r-t {
height: 40rpx;
font-family: DINPro, DINPro;
font-weight: 500;
font-size: 32rpx;
color: #333333;
line-height: 40rpx;
text-align: left;
font-style: normal;
margin-left: 17rpx;
}
.service-item1 {
margin-bottom: 32rpx;
}
.payinfo {
display: flex;
justify-content: space-between;
}
.payinfo-l {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 26rpx;
color: #666666;
line-height: 37rpx;
text-align: left;
font-style: normal;
}
.payinfo-r {
font-family: DINPro, DINPro;
font-weight: 500;
font-size: 32rpx;
color: #333333;
line-height: 41rpx;
text-align: left;
font-style: normal;
}
.btinfo {
display: flex;
justify-content: space-between;
}
.btinfo-l {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 26rpx;
color: #666666;
line-height: 37rpx;
text-align: left;
font-style: normal;
}
.btinfo-r {
font-family: DINPro, DINPro;
font-weight: 500;
font-size: 30rpx;
color: #333333;
line-height: 38rpx;
text-align: left;
font-style: normal;
}
.coupon-title{
width: 160rpx;
height: 40rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 500;
font-size: 32rpx;
color: #3D3D3D;
line-height: 39rpx;
text-align: left;
font-style: normal;
}
.coupon-item {}
</style> </style>