wangfukang 1 month ago
parent
commit
1308a2f246
  1. 2
      package1/address/addressList.vue
  2. 2
      package1/ieBrowser/chat.vue
  3. 37
      package1/ieBrowser/messages.vue
  4. 33
      package1/ieBrowser/mySpace.vue
  5. 2
      package1/ieBrowser/settings.vue
  6. 1
      package1/order/orderDetail.vue
  7. 92
      package1/runErrand/runErrand.vue

2
package1/address/addressList.vue

@ -47,7 +47,7 @@
<uni-icons type="right" size="16" color="#999"></uni-icons> <uni-icons type="right" size="16" color="#999"></uni-icons>
</view> </view>
<view style="margin-bottom: 20rpx;display: flex;padding: 20rpx;background: rgba(247, 248, 248, 0.6);border-radius: 20rpx;"> <view style="margin-bottom: 20rpx;display: flex;padding: 20rpx;background: rgba(247, 248, 248, 0.6);border-radius: 20rpx;">
<input type="text" v-model="addressForm.floor" @input="onFloorInput" placeholder="请填写所在楼层(仅限整数)" style="width: 100%;" /> <input type="number" v-model="addressForm.floor" @input="onFloorInput" placeholder="请填写所在楼层(仅限整数)" style="width: 100%;" />
</view> </view>
<view style="margin-bottom: 20rpx;display: flex;padding: 20rpx;background: rgba(247, 248, 248, 0.6);border-radius: 20rpx;"> <view style="margin-bottom: 20rpx;display: flex;padding: 20rpx;background: rgba(247, 248, 248, 0.6);border-radius: 20rpx;">
<input type="text" maxlength="30" v-model="addressForm.roomNum" @input="onRoomNumInput" placeholder="请填写门牌号或所在机构科室" style="width: 100%;" /> <input type="text" maxlength="30" v-model="addressForm.roomNum" @input="onRoomNumInput" placeholder="请填写门牌号或所在机构科室" style="width: 100%;" />

2
package1/ieBrowser/chat.vue

@ -1668,7 +1668,7 @@
} }
}, },
back() { back() {
uni.redirectTo({ url: '/package1/ieBrowser/index' }) uni.redirectTo({ url: '/package1/ieBrowser/messages' })
} }
} }
} }

37
package1/ieBrowser/messages.vue

@ -1,16 +1,22 @@
<template> <template>
<view class="messages-page"> <view class="messages-page">
<view class="top-safe" :style="{ height: menuButtonInfo.top + 'px' }"></view> <view class="messages-fixed">
<view class="float-bar"> <view class="top-safe" :style="{ height: menuButtonInfo.top + 'px' }"></view>
<view class="home-back" @tap="backHome"> <view class="float-bar">
<text class="home-back-icon"></text> <view class="home-back" @tap="backHome">
<text>返回首页</text> <text class="home-back-icon"></text>
<text>返回首页</text>
</view>
</view>
<view class="head">
<view class="title">消息</view>
<view class="sub-row">
<view class="sub">聊天列表未完成的陪伴</view>
<view class="top-btn" @tap="scrollToTop">顶部</view>
</view>
</view> </view>
</view> </view>
<view class="head"> <view class="messages-fixed-holder"></view>
<view class="title">消息</view>
<view class="sub">聊天列表未完成的陪伴</view>
</view>
<view class="room-card" v-for="item in requests" :key="item.id" @tap="openRecord(item)" @longpress="confirmDelete(item)"> <view class="room-card" v-for="item in requests" :key="item.id" @tap="openRecord(item)" @longpress="confirmDelete(item)">
<view class="avatar-wrap"> <view class="avatar-wrap">
<image class="avatar-img" v-if="item.avatarUrl" :src="item.avatarUrl" mode="aspectFill"></image> <image class="avatar-img" v-if="item.avatarUrl" :src="item.avatarUrl" mode="aspectFill"></image>
@ -167,6 +173,12 @@
} }
}, },
backHome() { uni.switchTab({ url: '/pages/index/index' }) }, backHome() { uni.switchTab({ url: '/pages/index/index' }) },
scrollToTop() {
uni.pageScrollTo({
scrollTop: 0,
duration: 260
})
},
confirmDelete(item) { confirmDelete(item) {
if (!item || !item.id) return if (!item || !item.id) return
this.deleteTarget = item this.deleteTarget = item
@ -217,13 +229,18 @@
<style lang="scss" scoped> <style lang="scss" scoped>
page { background: #f7f9ff; } page { background: #f7f9ff; }
.messages-page { min-height: 100vh; padding: 0 30rpx 230rpx; box-sizing: border-box; color: #151a2d; background: radial-gradient(circle at 18% 8%, rgba(169,255,231,.42), transparent 280rpx), linear-gradient(180deg, #fbfdff, #eef4ff); } .messages-page { min-height: 100vh; padding: 0 30rpx 230rpx; box-sizing: border-box; color: #151a2d; background: radial-gradient(circle at 18% 8%, rgba(169,255,231,.42), transparent 280rpx), linear-gradient(180deg, #fbfdff, #eef4ff); }
.messages-fixed { position: fixed; top: 0; left: 0; right: 0; z-index: 1000; padding: 0 30rpx 24rpx; box-sizing: border-box; background: radial-gradient(circle at 18% 8%, rgba(169,255,231,.42), transparent 280rpx), linear-gradient(180deg, #fbfdff 0%, #f7fbff 100%); }
.messages-fixed-holder { height: 310rpx; }
.float-bar { position: relative; z-index: 5; display: flex; align-items: center; justify-content: space-between; } .float-bar { position: relative; z-index: 5; display: flex; align-items: center; justify-content: space-between; }
.home-back { display: flex; align-items: center; height: 58rpx; padding: 0 22rpx 0 12rpx; border: 1rpx solid rgba(255,255,255,.88); border-radius: 999rpx; color: rgba(22,27,46,.66); background: rgba(255,255,255,.66); backdrop-filter: blur(20rpx); box-shadow: 0 14rpx 36rpx rgba(96,112,160,.12), inset 0 1rpx 0 rgba(255,255,255,.95); font-size: 23rpx; font-weight: 800; } .home-back { display: flex; align-items: center; height: 58rpx; padding: 0 22rpx 0 12rpx; border: 1rpx solid rgba(255,255,255,.88); border-radius: 999rpx; color: rgba(22,27,46,.66); background: rgba(255,255,255,.66); backdrop-filter: blur(20rpx); box-shadow: 0 14rpx 36rpx rgba(96,112,160,.12), inset 0 1rpx 0 rgba(255,255,255,.95); font-size: 23rpx; font-weight: 800; }
.home-back:active { transform: scale(.95); background: rgba(169,255,231,.7); } .home-back:active { transform: scale(.95); background: rgba(169,255,231,.7); }
.home-back-icon { margin-right: 6rpx;padding-bottom: 6rpx; font-size: 40rpx; line-height: 50rpx; font-weight: 400; } .home-back-icon { margin-right: 6rpx;padding-bottom: 6rpx; font-size: 40rpx; line-height: 50rpx; font-weight: 400; }
.head { padding-top: 10rpx; } .head { padding-top: 10rpx; }
.title { font-size: 52rpx; font-weight: 800; } .title { font-size: 52rpx; font-weight: 800; }
.sub { margin-top: 12rpx; color: rgba(21,26,45,.5); font-size: 25rpx; } .sub-row { margin-top: 12rpx; display: flex; align-items: center; justify-content: space-between; }
.sub { color: rgba(21,26,45,.5); font-size: 25rpx; }
.top-btn { flex-shrink: 0; margin-left: 18rpx; height: 50rpx; padding: 0 22rpx; border-radius: 999rpx; line-height: 50rpx; color: #11162a; background: #a9ffe7; box-shadow: 0 12rpx 26rpx rgba(96,112,160,.12); font-size: 23rpx; font-weight: 800; }
.top-btn:active { transform: scale(.95); opacity: .82; }
.room-card { display: flex; align-items: center; margin-top: 26rpx; padding: 28rpx; border-radius: 36rpx; background: rgba(255,255,255,.64); border: 1rpx solid rgba(255,255,255,.86); box-shadow: 0 22rpx 60rpx rgba(96,112,160,.12); } .room-card { display: flex; align-items: center; margin-top: 26rpx; padding: 28rpx; border-radius: 36rpx; background: rgba(255,255,255,.64); border: 1rpx solid rgba(255,255,255,.86); box-shadow: 0 22rpx 60rpx rgba(96,112,160,.12); }
.room-card.active { background: rgba(17,22,42,.92); color: #fff; } .room-card.active { background: rgba(17,22,42,.92); color: #fff; }
.avatar-wrap { position: relative; flex-shrink: 0; width: 78rpx; height: 78rpx; margin-right: 20rpx; } .avatar-wrap { position: relative; flex-shrink: 0; width: 78rpx; height: 78rpx; margin-right: 20rpx; }

33
package1/ieBrowser/mySpace.vue

@ -1,24 +1,27 @@
<template> <template>
<view class="my-space-page"> <view class="my-space-page">
<view class="top-safe" :style="{ height: menuButtonInfo.top + 'px' }"></view> <view class="my-space-fixed">
<view class="float-bar"> <view class="top-safe" :style="{ height: menuButtonInfo.top + 'px' }"></view>
<view class="home-back" @tap="back"> <view class="float-bar">
<text class="home-back-icon"></text> <view class="home-back" @tap="back">
<text>返回资料</text> <text class="home-back-icon"></text>
<text>返回资料</text>
</view>
</view> </view>
</view>
<view class="space-hero"> <view class="space-hero">
<image class="hero-avatar-img" v-if="profile.avatarUrl" :src="profile.avatarUrl" mode="aspectFill"></image> <image class="hero-avatar-img" v-if="profile.avatarUrl" :src="profile.avatarUrl" mode="aspectFill"></image>
<view class="hero-avatar" v-else>{{ profile.avatarText || '' }}</view> <view class="hero-avatar" v-else>{{ profile.avatarText || '' }}</view>
<view class="hero-main"> <view class="hero-main">
<view class="hero-title-row"> <view class="hero-title-row">
<view class="hero-title">我的个人空间</view> <view class="hero-title">我的个人空间</view>
<view class="publish-btn" @tap="openComposer">+ 发动态</view> <view class="publish-btn" @tap="openComposer">+ 发动态</view>
</view>
<view class="hero-sub">{{ profile.anonymousName || '半匿名漂流者' }} · {{ profile.currentMode === 'e' ? '轻轻热闹' : '安静陪伴' }}</view>
</view> </view>
<view class="hero-sub">{{ profile.anonymousName || '半匿名漂流者' }} · {{ profile.currentMode === 'e' ? '轻轻热闹' : '安静陪伴' }}</view>
</view> </view>
</view> </view>
<view class="my-space-fixed-holder"></view>
<view class="moment-empty" v-if="!moments.length && !loadingMoments">还没有动态发一条让同频的人认识你</view> <view class="moment-empty" v-if="!moments.length && !loadingMoments">还没有动态发一条让同频的人认识你</view>
<view class="moment-card" v-for="item in moments" :key="item.id"> <view class="moment-card" v-for="item in moments" :key="item.id">
@ -426,6 +429,8 @@
<style lang="scss" scoped> <style lang="scss" scoped>
page { background: #f7f9ff; } page { background: #f7f9ff; }
.my-space-page { min-height: 100vh; padding: 0 32rpx 80rpx; box-sizing: border-box; color: #161b2e; background: radial-gradient(circle at 50% 8%, rgba(169,255,231,.36), transparent 320rpx), radial-gradient(circle at 86% 30%, rgba(255,184,209,.2), transparent 340rpx), linear-gradient(180deg, #fbfdff, #eef4ff 62%, #fff4e8); } .my-space-page { min-height: 100vh; padding: 0 32rpx 80rpx; box-sizing: border-box; color: #161b2e; background: radial-gradient(circle at 50% 8%, rgba(169,255,231,.36), transparent 320rpx), radial-gradient(circle at 86% 30%, rgba(255,184,209,.2), transparent 340rpx), linear-gradient(180deg, #fbfdff, #eef4ff 62%, #fff4e8); }
.my-space-fixed { position: fixed; top: 0; left: 0; right: 0; z-index: 1000; padding: 0 32rpx 22rpx; box-sizing: border-box; background: radial-gradient(circle at 50% 8%, rgba(169,255,231,.36), transparent 320rpx), radial-gradient(circle at 86% 30%, rgba(255,184,209,.2), transparent 340rpx), linear-gradient(180deg, #fbfdff 0%, #eef4ff 100%); }
.my-space-fixed-holder { height: 336rpx; }
.float-bar { position: relative; z-index: 5; display: flex; align-items: center; } .float-bar { position: relative; z-index: 5; display: flex; align-items: center; }
.home-back { display: flex; align-items: center; height: 58rpx; padding: 0 22rpx 0 12rpx; border: 1rpx solid rgba(255,255,255,.88); border-radius: 999rpx; color: rgba(22,27,46,.66); background: rgba(255,255,255,.66); backdrop-filter: blur(20rpx); box-shadow: 0 14rpx 36rpx rgba(96,112,160,.12), inset 0 1rpx 0 rgba(255,255,255,.95); font-size: 23rpx; font-weight: 800; } .home-back { display: flex; align-items: center; height: 58rpx; padding: 0 22rpx 0 12rpx; border: 1rpx solid rgba(255,255,255,.88); border-radius: 999rpx; color: rgba(22,27,46,.66); background: rgba(255,255,255,.66); backdrop-filter: blur(20rpx); box-shadow: 0 14rpx 36rpx rgba(96,112,160,.12), inset 0 1rpx 0 rgba(255,255,255,.95); font-size: 23rpx; font-weight: 800; }
.home-back-icon { margin-right: 6rpx; padding-bottom: 6rpx; font-size: 40rpx; line-height: 50rpx; font-weight: 400; } .home-back-icon { margin-right: 6rpx; padding-bottom: 6rpx; font-size: 40rpx; line-height: 50rpx; font-weight: 400; }

2
package1/ieBrowser/settings.vue

@ -76,7 +76,7 @@
this.loadList() this.loadList()
}, },
methods: { methods: {
back() { uni.redirectTo({ url: '/package1/ieBrowser/index' }) }, back() { uni.redirectTo({ url: '/package1/ieBrowser/universe' }) },
switchTab(tab) { switchTab(tab) {
if (this.activeTab === tab) return if (this.activeTab === tab) return
this.activeTab = tab this.activeTab = tab

1
package1/order/orderDetail.vue

@ -1239,6 +1239,7 @@
if (this.payData.otherOrder == 1) { if (this.payData.otherOrder == 1) {
this.refundType = 3 this.refundType = 3
this.refundTypeStatus = 2 this.refundTypeStatus = 2
this.sellTime = 3
} }
if (this.payData.shopMakeTime != null) { if (this.payData.shopMakeTime != null) {
const date1 = new Date(this.payData.deliveryInfo.acceptTime); const date1 = new Date(this.payData.deliveryInfo.acceptTime);

92
package1/runErrand/runErrand.vue

@ -159,13 +159,13 @@
<view> <view>
<view style="line-height:70rpx;">手机尾号</view> <view style="line-height:70rpx;">手机尾号</view>
<view class="check-input"> <view class="check-input">
<input type="text" v-model="addFormData.phoneNumber" style="width: 100%;height: 100%;padding: 0 20rpx;border: 1px solid #eee;border-radius:10rpx;" placeholder="建议填写预留手机尾号4位"> <input type="number" v-model="addFormData.phoneNumber" style="width: 100%;height: 100%;padding: 0 20rpx;border: 1px solid #eee;border-radius:10rpx;" placeholder="建议填写预留手机尾号4位">
</view> </view>
</view> </view>
<view v-if="isKuaidi"> <view v-if="isKuaidi">
<view style="line-height:70rpx;">取件码</view> <view style="line-height:70rpx;">取件码</view>
<view class="check-input" v-for="(item,index) in addFormData.codeList" :key="index" style="border: none;display: flex;"> <view class="check-input" v-for="(item,index) in addFormData.codeList" :key="index" style="border: none;display: flex;">
<input type="text" v-model="item.code" style="width: 100%;height: 100%;padding: 0 20rpx;border: 1px solid #eee;border-radius:10rpx;" placeholder="建议填写取件码"> <input type="number" v-model="item.code" style="width: 100%;height: 100%;padding: 0 20rpx;border: 1px solid #eee;border-radius:10rpx;" placeholder="建议填写取件码">
<view @tap="delCode(index)" v-if="addFormData.codeList.length>1" style="width: 90rpx;height: 70rpx;line-height: 70rpx;text-align: center;"> <view @tap="delCode(index)" v-if="addFormData.codeList.length>1" style="width: 90rpx;height: 70rpx;line-height: 70rpx;text-align: center;">
<uni-icons type="trash" size="18"></uni-icons> <uni-icons type="trash" size="18"></uni-icons>
</view> </view>
@ -206,11 +206,13 @@
<view class="content-title"> <view class="content-title">
订单备注 订单备注
</view> </view>
<view style="height: 200rpx;background: rgba(247, 248, 248, 0.6);border-radius: 40rpx;padding: 20rpx;margin-top: 20rpx;flex: 1;"> <view class="remark-preview" @tap="openRemarkPopup">
<textarea v-model="addFormData.remark" maxlength="50" cols="30" rows="10" placeholder="请填写备注" style="height: 160rpx;width: 100%;"></textarea> <text v-if="addFormData.remark">{{addFormData.remark}}</text>
<text v-else class="remark-placeholder">请填写备注</text>
<uni-icons type="right" size="14" color="#999"></uni-icons>
</view> </view>
</view> </view>
<view style="display: flex;height: 80rpx;line-height: 80rpx;font-weight: 700; align-items:center;padding: 0 4%;border-top: 1px solid #eee;margin-top: 10px;" @tap="openCouponPopup"> <!-- <view style="display: flex;height: 80rpx;line-height: 80rpx;font-weight: 700; align-items:center;padding: 0 4%;border-top: 1px solid #eee;margin-top: 10px;" @tap="openCouponPopup">
<view style="flex: 1;"> <view style="flex: 1;">
优惠券 优惠券
</view> </view>
@ -224,7 +226,7 @@
无可用券 无可用券
</view> </view>
<uni-icons type="right" size="14" color="#999" style="margin-left:10rpx;"></uni-icons> <uni-icons type="right" size="14" color="#999" style="margin-left:10rpx;"></uni-icons>
</view> </view> -->
<view style="height: 80rpx;line-height: 80rpx;display: flex;padding: 0 4%;"> <view style="height: 80rpx;line-height: 80rpx;display: flex;padding: 0 4%;">
<view style="flex: 1;font-weight: 700;"> <view style="flex: 1;font-weight: 700;">
{{isKuaidi?'代取配送费':'跑腿费'}} {{isKuaidi?'代取配送费':'跑腿费'}}
@ -328,6 +330,21 @@
</view> </view>
</uni-popup> </uni-popup>
<uni-popup ref="remarkPopup" type="center" background-color="transparent">
<view class="commission-popup">
<view class="commission-popup-title">填写订单备注</view>
<view class="commission-popup-desc">最多输入 50 个字</view>
<view class="remark-popup-input">
<textarea v-model="remarkInputValue" maxlength="50" auto-height
placeholder="请填写备注" cursor-spacing="120" />
</view>
<view class="commission-popup-actions">
<view class="commission-popup-cancel" @tap="$refs.remarkPopup.close()">取消</view>
<view class="commission-popup-confirm" @tap="confirmRemark">确定</view>
</view>
</view>
</uni-popup>
<uni-popup ref="warnPopup" background-color="#fff"> <uni-popup ref="warnPopup" background-color="#fff">
<view style="width:600rpx;height:740rpx;"> <view style="width:600rpx;height:740rpx;">
<img v-if="warnPopup === 'shdz'" @tap="$refs.warnPopup.close()" src="https://jewel-shop.oss-cn-beijing.aliyuncs.com/4996043b3987401794b974d359429b8e.png" alt="填写收货地址" style="width:100%;height:100%;" /> <img v-if="warnPopup === 'shdz'" @tap="$refs.warnPopup.close()" src="https://jewel-shop.oss-cn-beijing.aliyuncs.com/4996043b3987401794b974d359429b8e.png" alt="填写收货地址" style="width:100%;height:100%;" />
@ -386,6 +403,7 @@
assignedWorker:null, assignedWorker:null,
customCommission:'0.1', customCommission:'0.1',
commissionInputValue: '', commissionInputValue: '',
remarkInputValue: '',
shopArea: [], shopArea: [],
kuaidiAreaList: [], kuaidiAreaList: [],
shopAreaLoaded: false, shopAreaLoaded: false,
@ -460,7 +478,7 @@
onShow() { onShow() {
this.menuButtonInfo = uni.getMenuButtonBoundingClientRect() this.menuButtonInfo = uni.getMenuButtonBoundingClientRect()
this.initAddress() this.initAddress()
this.fetchCoupons() /* this.fetchCoupons() */
const now = new Date(); const now = new Date();
const startTime = new Date(now); const startTime = new Date(now);
const endTime = new Date(now); const endTime = new Date(now);
@ -523,10 +541,19 @@
} }
this.customCommission = this.formatCommissionValue(this.commissionInputValue); this.customCommission = this.formatCommissionValue(this.commissionInputValue);
this.$refs.commissionPopup.close(); this.$refs.commissionPopup.close();
this.fetchCoupons(); /* this.fetchCoupons(); */
},
openRemarkPopup() {
this.remarkInputValue = this.addFormData.remark || '';
this.$refs.remarkPopup.open('center');
},
confirmRemark() {
this.addFormData.remark = (this.remarkInputValue || '').slice(0, 50);
uni.hideKeyboard();
this.$refs.remarkPopup.close();
}, },
openCouponPopup() { openCouponPopup() {
this.fetchCoupons(); /* this.fetchCoupons(); */
this.$refs.couponPopup.open('bottom'); this.$refs.couponPopup.open('bottom');
}, },
fetchCoupons() { fetchCoupons() {
@ -1240,6 +1267,53 @@
box-shadow: 0 12rpx 26rpx rgba(11, 155, 115, 0.12); box-shadow: 0 12rpx 26rpx rgba(11, 155, 115, 0.12);
} }
.remark-preview {
display: flex;
align-items: center;
justify-content: space-between;
flex: 1;
min-height: 120rpx;
margin-top: 20rpx;
padding: 20rpx;
border-radius: 24rpx;
background: rgba(247, 248, 248, 0.6);
box-sizing: border-box;
color: #333;
font-size: 26rpx;
line-height: 38rpx;
text {
flex: 1;
margin-right: 12rpx;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
}
.remark-placeholder {
color: #999;
}
.remark-popup-input {
min-height: 180rpx;
margin-top: 34rpx;
padding: 22rpx 26rpx;
border-radius: 24rpx;
background: #f6faf8;
border: 1rpx solid #e5efeb;
box-sizing: border-box;
textarea {
width: 100%;
min-height: 136rpx;
font-size: 30rpx;
line-height: 42rpx;
}
}
.check-input { .check-input {
height: 70rpx; height: 70rpx;
width: 100%; width: 100%;

Loading…
Cancel
Save