Compare commits
28 Commits
d5f9055445
...
ad5ed4040c
Author | SHA1 | Date | |
---|---|---|---|
ad5ed4040c | |||
f076c03c99 | |||
ab4c80ae36 | |||
28832c38ae | |||
b95f009ff3 | |||
5616cd046f | |||
3fd6e953c6 | |||
eedb40b9d0 | |||
c162fc983f | |||
83afd6216e | |||
|
d7877a3e77 | ||
b5e8936307 | |||
5b89988e4d | |||
0e99c3f719 | |||
51c6a3b820 | |||
d79e38e44c | |||
a1eac2a1e8 | |||
fe60d5a1cf | |||
8f010c634c | |||
b5985ce1a0 | |||
a9477b9657 | |||
4674acac3c | |||
45c087bf14 | |||
7e50a6f56e | |||
20e27317be | |||
89ddba5321 | |||
52caeef425 | |||
a14d662370 |
6
App.vue
6
App.vue
@ -8,6 +8,12 @@
|
|||||||
...mapState(["hasLogin"])
|
...mapState(["hasLogin"])
|
||||||
},
|
},
|
||||||
onLaunch() {
|
onLaunch() {
|
||||||
|
// 禁止旋转
|
||||||
|
// #ifdef APP-PLUS
|
||||||
|
plus.screen.lockOrientation('portrait-primary');
|
||||||
|
// #endif
|
||||||
|
|
||||||
|
|
||||||
getApp().globalData.im = this.imService
|
getApp().globalData.im = this.imService
|
||||||
// 缓存token
|
// 缓存token
|
||||||
uni.getStorage({
|
uni.getStorage({
|
||||||
|
@ -139,9 +139,9 @@ export default {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
// 订单步骤2:发起订单,返回订单信息
|
// 订单步骤2:发起订单,返回订单信息
|
||||||
sendOrder({ ifcart, cart_id, address_id, buy_city_id, pintuan_id, pintuangroup_id, voucher_id, member_deliver_type, invoice_id }) {
|
sendOrder({ ifcart, cart_id, address_id, buy_city_id, pintuan_id, pintuangroup_id, voucher_id, member_deliver_type, invoice_id, pay_message }) {
|
||||||
return vm.$u.post('buy/buy_step2', {
|
return vm.$u.post('buy/buy_step2', {
|
||||||
ifcart, cart_id, address_id, buy_city_id, pintuan_id, pintuangroup_id, voucher_id, member_deliver_type, invoice_id,
|
ifcart, cart_id, address_id, buy_city_id, pintuan_id, pintuangroup_id, voucher_id, member_deliver_type, invoice_id, pay_message
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
// 订单步骤3:发起支付(第三方统一下单)
|
// 订单步骤3:发起支付(第三方统一下单)
|
||||||
|
@ -154,10 +154,11 @@ export default {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
// 美甲-提交订单
|
// 美甲-提交订单
|
||||||
addManicure({ name, time }) {
|
addManicure({ name, phone, time }) {
|
||||||
return vm.$u.post('MemberManicure/addManicure', {
|
return vm.$u.post('MemberManicure/addManicure', {
|
||||||
name: name,
|
name: name,
|
||||||
time: time
|
phone: phone,
|
||||||
|
// time: time
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
// 会员服务-积分数
|
// 会员服务-积分数
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
<view class="label-list">
|
<view class="label-list">
|
||||||
<view v-for="(label, index) in evaluateSpec" :key="index" :class="{'active': current == index}" @click="current=index">{{ index + '(' + label + ')' }}</view>
|
<view v-for="(label, index) in evaluateSpec" :key="index" :class="{'active': current == index}" @click="current=index">{{ index + '(' + label + ')' }}</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="comment-container">
|
<view class="comment-container" v-if="isShow">
|
||||||
<view v-for="(item, index) in evalueList" :key="index" class="itme">
|
<view v-for="(item, index) in evalueList" :key="index" class="itme">
|
||||||
<comment :reply="true" :content="item"></comment>
|
<comment :reply="true" :content="item"></comment>
|
||||||
</view>
|
</view>
|
||||||
@ -25,6 +25,7 @@ export default {
|
|||||||
evaluateSpec: {},
|
evaluateSpec: {},
|
||||||
loadStatus: 'loadmore',
|
loadStatus: 'loadmore',
|
||||||
timer: true,
|
timer: true,
|
||||||
|
isShow: false, // 是否显示组建
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
@ -50,7 +51,7 @@ export default {
|
|||||||
if(!this.timer) return false;
|
if(!this.timer) return false;
|
||||||
this.loadStatus = "loading";
|
this.loadStatus = "loading";
|
||||||
this.page++;
|
this.page++;
|
||||||
this.getAllEvalue({ type: this.current, load: 'more' }).then(length => {
|
this.getAllEvalue({ type: this.current, load: 'loadmore' }).then(length => {
|
||||||
if(length == 0) {
|
if(length == 0) {
|
||||||
this.page--;
|
this.page--;
|
||||||
this.loadStatus = 'nomore';
|
this.loadStatus = 'nomore';
|
||||||
@ -72,15 +73,17 @@ export default {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
async getAllEvalue({ type, load } = {}) {
|
async getAllEvalue({ type, load = 'reload' } = {}) {
|
||||||
let params = {
|
let params = {
|
||||||
goods_id: this.id,
|
goods_id: this.id,
|
||||||
page: this.page,
|
page: this.page,
|
||||||
}
|
}
|
||||||
if(type) Object.assign(params, { type: type });
|
if(type) Object.assign(params, { type: type });
|
||||||
|
this.isShow = false;
|
||||||
const res = await this.$u.api.getAllEvalue(params);
|
const res = await this.$u.api.getAllEvalue(params);
|
||||||
|
this.isShow = true;
|
||||||
if (res.errCode == 0) {
|
if (res.errCode == 0) {
|
||||||
if(load) this.evalueList.push(...res.data);
|
if(load == 'loadmore') this.evalueList.push(...res.data);
|
||||||
else this.evalueList = res.data;
|
else this.evalueList = res.data;
|
||||||
} else {
|
} else {
|
||||||
this.evalueList = [];
|
this.evalueList = [];
|
||||||
|
@ -34,24 +34,29 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="order-info">
|
<view class="order-info">
|
||||||
<view @click="showCoupon({type: 2, store_id: item[0].store_id})" v-if="orderType == 1 || orderType == 5">
|
<view class="show-view" @click="showCoupon({type: 2, store_id: item[0].store_id})" v-if="orderType == 1 || orderType == 5">
|
||||||
<view class="title">优惠券折扣</view>
|
<view class="title">优惠券折扣</view>
|
||||||
<view class="value">
|
<view class="value">
|
||||||
<view>-¥{{ storeCoupon[item[0].store_id] ? storeCoupon[item[0].store_id].voucher_price.toFixed(2) : '0.00' }}</view>
|
<view>-¥{{ storeCoupon[item[0].store_id] ? storeCoupon[item[0].store_id].voucher_price.toFixed(2) : '0.00' }}</view>
|
||||||
<image src="../static/image/1.png"></image>
|
<image src="../static/image/1.png"></image>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view>
|
<view class="show-view">
|
||||||
<view class="title">运费</view>
|
<view class="title">运费</view>
|
||||||
<view class="value">
|
<view class="value">
|
||||||
<view v-if="freight">¥{{ freight | setFreight(index) }}</view>
|
<view v-if="freight">¥{{ freight | setFreight(index) }}</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
<view class="remark">
|
||||||
|
<view class="title">订单备注</view>
|
||||||
|
<u-input v-model="remark[index]" type="textarea" :height="88" placeholder="选填" />
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="pick-up" v-if="delivery.type == 3">
|
<view class="pick-up" v-if="delivery.type == 3">
|
||||||
<view class="title">自提地址</view>
|
<view class="title">自提地址</view>
|
||||||
<view class="content">{{ orderInfo.store_list[index].store_address }}</view>
|
<view class="content">{{ orderInfo.store_list[index].store_address }}</view>
|
||||||
</view>
|
</view>
|
||||||
|
<view class="store-total">共{{ item | getTotalNum }}件 小计:<text>¥{{ orderInfo.store_goods_total[index] | getStorePrice(storeCoupon, index) }}</text></view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="common-active">
|
<view class="common-active">
|
||||||
@ -146,12 +151,34 @@ export default {
|
|||||||
orderType: '', // 订单类型 1 普通订单 2 拼团订单 3 秒杀订单 4 优惠券 5 购物车订单
|
orderType: '', // 订单类型 1 普通订单 2 拼团订单 3 秒杀订单 4 优惠券 5 购物车订单
|
||||||
debounce: true,
|
debounce: true,
|
||||||
hasInvoice: 0,
|
hasInvoice: 0,
|
||||||
|
remark: {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
Coupon
|
Coupon
|
||||||
},
|
},
|
||||||
filters: {
|
filters: {
|
||||||
|
// 店铺总数量
|
||||||
|
getTotalNum(data, coupon) {
|
||||||
|
let num = 0;
|
||||||
|
data.forEach(item => {
|
||||||
|
num += item.goods_num;
|
||||||
|
})
|
||||||
|
return num;
|
||||||
|
},
|
||||||
|
// 店铺总金额
|
||||||
|
getStorePrice(price, coupon, index) {
|
||||||
|
for (const key in coupon) {
|
||||||
|
if (coupon.hasOwnProperty(key)) {
|
||||||
|
const element = coupon[key];
|
||||||
|
if(index == key) {
|
||||||
|
price -= Number(element.voucher_price);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return price;
|
||||||
|
},
|
||||||
|
// 订单总数量
|
||||||
setTotalNumber(data) {
|
setTotalNumber(data) {
|
||||||
let num = 0;
|
let num = 0;
|
||||||
for (const key in data) {
|
for (const key in data) {
|
||||||
@ -175,6 +202,7 @@ export default {
|
|||||||
if(!this.orderInfo.is_selfraising) this.deliveryList[2].disabled = true;
|
if(!this.orderInfo.is_selfraising) this.deliveryList[2].disabled = true;
|
||||||
// console.log('orderType' + this.orderType);
|
// console.log('orderType' + this.orderType);
|
||||||
// console.log(this.orderInfo);
|
// console.log(this.orderInfo);
|
||||||
|
this.initRemark();
|
||||||
this.getGoodsClass();
|
this.getGoodsClass();
|
||||||
this.setTotalPrice();
|
this.setTotalPrice();
|
||||||
},
|
},
|
||||||
@ -188,8 +216,9 @@ export default {
|
|||||||
} else {
|
} else {
|
||||||
if(this.$store.getters.getOrderAddress) this.addressInfo = this.$store.state.orderAddress;
|
if(this.$store.getters.getOrderAddress) this.addressInfo = this.$store.state.orderAddress;
|
||||||
}
|
}
|
||||||
|
// 是否开发票
|
||||||
this.hasInvoice = this.$store.getters.hasInvoice;
|
this.hasInvoice = this.$store.getters.hasInvoice;
|
||||||
console.log(this.hasInvoice);
|
// console.log(this.hasInvoice);
|
||||||
},
|
},
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
this.$store.commit('updateAddress', {});
|
this.$store.commit('updateAddress', {});
|
||||||
@ -202,6 +231,17 @@ export default {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
initRemark() {
|
||||||
|
// 初始化备注
|
||||||
|
const obj = this.orderInfo.store_cart_list;
|
||||||
|
for (const key in obj) {
|
||||||
|
if (obj.hasOwnProperty(key)) {
|
||||||
|
const element = obj[key];
|
||||||
|
this.remark[key] = '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
console.log(this.remark);
|
||||||
|
},
|
||||||
// 如果有pintuangroup_headid为参团不然为开团
|
// 如果有pintuangroup_headid为参团不然为开团
|
||||||
async withImmediate(type) {
|
async withImmediate(type) {
|
||||||
let params = {
|
let params = {
|
||||||
@ -228,6 +268,7 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
intermediate() {
|
intermediate() {
|
||||||
|
console.log(this.remark);
|
||||||
if(!this.debounce) return;
|
if(!this.debounce) return;
|
||||||
this.debounce = false;
|
this.debounce = false;
|
||||||
if(this.orderType == 2) {
|
if(this.orderType == 2) {
|
||||||
@ -281,6 +322,7 @@ export default {
|
|||||||
buy_city_id: this.addressInfo.city_id,
|
buy_city_id: this.addressInfo.city_id,
|
||||||
member_deliver_type: this.delivery.type,
|
member_deliver_type: this.delivery.type,
|
||||||
invoice_id: this.$store.getters.getInvoiceId, // 发票抬头ID,不开票传0
|
invoice_id: this.$store.getters.getInvoiceId, // 发票抬头ID,不开票传0
|
||||||
|
pay_message: this.remark,
|
||||||
}
|
}
|
||||||
if(coupon.length) Object.assign(params, { voucher_id: coupon });
|
if(coupon.length) Object.assign(params, { voucher_id: coupon });
|
||||||
if(this.orderType == 2) {
|
if(this.orderType == 2) {
|
||||||
@ -288,6 +330,7 @@ export default {
|
|||||||
if(this.orderInfo.pintuangroup_id) Object.assign(params, { pintuangroup_id: this.orderInfo.pintuangroup_id });
|
if(this.orderInfo.pintuangroup_id) Object.assign(params, { pintuangroup_id: this.orderInfo.pintuangroup_id });
|
||||||
}
|
}
|
||||||
// console.log(params);
|
// console.log(params);
|
||||||
|
// return;
|
||||||
this.$u.api.sendOrder(params).then(res => {
|
this.$u.api.sendOrder(params).then(res => {
|
||||||
if(res.errCode == 0) {
|
if(res.errCode == 0) {
|
||||||
this.$u.route({
|
this.$u.route({
|
||||||
@ -587,7 +630,7 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
.order-info {
|
.order-info {
|
||||||
> view {
|
.show-view {
|
||||||
height: 98rpx;
|
height: 98rpx;
|
||||||
background: rgba(255,255,255,1);
|
background: rgba(255,255,255,1);
|
||||||
padding: 35rpx 30rpx;
|
padding: 35rpx 30rpx;
|
||||||
@ -612,6 +655,24 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.remark {
|
||||||
|
background: rgba(255,255,255,1);
|
||||||
|
padding: 35rpx 30rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
margin-bottom: 2rpx;
|
||||||
|
.title {
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: rgba(102,102,102,1);
|
||||||
|
margin-right: 20rpx;
|
||||||
|
}
|
||||||
|
/deep/ .u-input {
|
||||||
|
font-size: 28rpx;
|
||||||
|
.u-input__textarea {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.pick-up {
|
.pick-up {
|
||||||
padding: 30rpx;
|
padding: 30rpx;
|
||||||
@ -627,6 +688,16 @@ export default {
|
|||||||
line-height: 40rpx;
|
line-height: 40rpx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.store-total {
|
||||||
|
text-align: right;
|
||||||
|
padding: 34rpx 30rpx;
|
||||||
|
background: rgba(255,255,255,1);
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #656565;
|
||||||
|
> text {
|
||||||
|
color: #FF770F;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.common-active {
|
.common-active {
|
||||||
|
101
pageE/mine/Contact.vue
Normal file
101
pageE/mine/Contact.vue
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
<template>
|
||||||
|
<view class="contact">
|
||||||
|
<view class="item-view" @click="makePhone">
|
||||||
|
<view class="title">联系电话</view>
|
||||||
|
<view class="content">{{ phoneNumber }}</view>
|
||||||
|
<u-icon name="arrow-right" color="#9A9A9A" size="24"></u-icon>
|
||||||
|
</view>
|
||||||
|
<view class="item-view" @click="customerService">
|
||||||
|
<view class="title">客服服务</view>
|
||||||
|
<u-icon name="arrow-right" color="#9A9A9A" size="24"></u-icon>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
phoneNumber: '',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getPhone();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getPhone() {
|
||||||
|
this.$u.api.getConfigInfo({
|
||||||
|
code: 'site_tel400'
|
||||||
|
}).then(res => {
|
||||||
|
this.phoneNumber = res.data.config.value;
|
||||||
|
})
|
||||||
|
},
|
||||||
|
makePhone() {
|
||||||
|
uni.makePhoneCall({
|
||||||
|
phoneNumber: this.phoneNumber,
|
||||||
|
});
|
||||||
|
},
|
||||||
|
customerService(){
|
||||||
|
if(!this.$store.state.hasLogin){
|
||||||
|
this.$u.toast('请先登录');
|
||||||
|
} else {
|
||||||
|
function Friend(uuid, name, avatar,time = "", text = "",date = "") {
|
||||||
|
this.uuid = uuid;
|
||||||
|
this.name = name;
|
||||||
|
this.avatar = avatar;
|
||||||
|
this.online = false;
|
||||||
|
this.unReadMessage = 0;
|
||||||
|
this.text = text;
|
||||||
|
this.time = time;
|
||||||
|
this.date = date
|
||||||
|
}
|
||||||
|
const token = uni.getStorageSync('token');
|
||||||
|
let that = this
|
||||||
|
uni.request({
|
||||||
|
url:"https://mall.dmygkeji.com/api/Specialci/getAtwillUserInfo",
|
||||||
|
data:{
|
||||||
|
userId: 1
|
||||||
|
},
|
||||||
|
method:"POST",
|
||||||
|
header:{
|
||||||
|
"Authorization" : 'Bearer' + " " + token
|
||||||
|
},
|
||||||
|
success(res){
|
||||||
|
res = res.data;
|
||||||
|
let user = new Friend(res.data.member_id,"官方平台客服",res.data.member_avatar);
|
||||||
|
that.$u.route({
|
||||||
|
url:"/pageD/privateChat/privateChat",
|
||||||
|
params:{
|
||||||
|
id:JSON.stringify(user)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.contact {
|
||||||
|
border-top: 1rpx solid #ECECEC;
|
||||||
|
.item-view {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 34rpx 30rpx;
|
||||||
|
border-bottom: 2rpx solid #ECECEC;
|
||||||
|
.title {
|
||||||
|
font-size: 30rpx;
|
||||||
|
color: #343434;
|
||||||
|
}
|
||||||
|
.content {
|
||||||
|
margin-left: auto;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #666666;
|
||||||
|
}
|
||||||
|
.u-icon {
|
||||||
|
margin-left: 20rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
@ -27,7 +27,7 @@ import storeViwe from './storeConcerns'
|
|||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
list: [{ name: "商家" }, { name: "达人" }],
|
list: [{ name: "店铺" }, { name: "达人" }],
|
||||||
daren: [],
|
daren: [],
|
||||||
shangjia:[],
|
shangjia:[],
|
||||||
height: 0,
|
height: 0,
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
<view class="personal" v-show="type==1">
|
<view class="personal" v-show="type==1">
|
||||||
<view class="info-item">
|
<view class="info-item">
|
||||||
<view class="title">手机号</view>
|
<view class="title">手机号</view>
|
||||||
<input type="number" placeholder="请输入您的手机号" maxlength="11" v-model="personalPhone" />
|
<input type="text" placeholder="请输入您的手机号" maxlength="11" v-model="personalPhone" />
|
||||||
</view>
|
</view>
|
||||||
<view class="info-item">
|
<view class="info-item">
|
||||||
<view class="title">身份证号</view>
|
<view class="title">身份证号</view>
|
||||||
@ -37,7 +37,7 @@
|
|||||||
</view>
|
</view>
|
||||||
<view class="info-item">
|
<view class="info-item">
|
||||||
<view class="title">电话号码</view>
|
<view class="title">电话号码</view>
|
||||||
<input type="number" placeholder="请输入公司电话" maxlength="11" v-model="companyPhone" />
|
<input type="text" placeholder="请输入公司电话" maxlength="11" v-model="companyPhone" />
|
||||||
</view>
|
</view>
|
||||||
<view class="info-item">
|
<view class="info-item">
|
||||||
<view class="title">开户银行</view>
|
<view class="title">开户银行</view>
|
||||||
@ -91,6 +91,7 @@ export default {
|
|||||||
this.action == 1 ? this.invoiceAdd() : this.invoiceEdit();
|
this.action == 1 ? this.invoiceAdd() : this.invoiceEdit();
|
||||||
},
|
},
|
||||||
verificationParams() {
|
verificationParams() {
|
||||||
|
const phone = /^0\d{2,3}-?\d{7,8}$/;
|
||||||
if(this.type == 1) {
|
if(this.type == 1) {
|
||||||
if(this.$u.test.isEmpty(this.title)) {
|
if(this.$u.test.isEmpty(this.title)) {
|
||||||
this.$u.toast('发票抬头不可为空');
|
this.$u.toast('发票抬头不可为空');
|
||||||
@ -100,7 +101,7 @@ export default {
|
|||||||
this.$u.toast('手机号不可为空');
|
this.$u.toast('手机号不可为空');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(!this.$u.test.mobile(this.personalPhone)) {
|
if(!this.$u.test.mobile(this.personalPhone) && !phone.test(this.personalPhone)) {
|
||||||
this.$u.toast('请正确填写手机号');
|
this.$u.toast('请正确填写手机号');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -129,7 +130,7 @@ export default {
|
|||||||
this.$u.toast('电话号码不可为空');
|
this.$u.toast('电话号码不可为空');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(!this.$u.test.mobile(this.companyPhone)) {
|
if(!this.$u.test.mobile(this.companyPhone) && !phone.test(this.companyPhone)) {
|
||||||
this.$u.toast('请正确填写电话号码');
|
this.$u.toast('请正确填写电话号码');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -66,6 +66,7 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="info-order">
|
<view class="info-order">
|
||||||
|
<view v-if="orderInfo.extend_order_common.order_message">订单备注:{{ orderInfo.extend_order_common.order_message }}</view>
|
||||||
<view>订单编号:{{ orderInfo.order_sn }}</view>
|
<view>订单编号:{{ orderInfo.order_sn }}</view>
|
||||||
<view>支付单号:{{ orderInfo.pay_sn }}</view>
|
<view>支付单号:{{ orderInfo.pay_sn }}</view>
|
||||||
<view>创建时间:{{ orderInfo.add_time | date}}</view>
|
<view>创建时间:{{ orderInfo.add_time | date}}</view>
|
||||||
@ -73,9 +74,9 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- '4', '8' -->
|
<!-- '4', '8' -->
|
||||||
<view class="btn" v-if="['1', '2', '6'].indexOf(orderstate) >= 0">
|
<view class="btn" v-if="['1', '2', '4', '6'].indexOf(orderstate) >= 0">
|
||||||
<!-- orderstate == '4' || -->
|
<!-- orderstate == '4' || -->
|
||||||
<view class="cancel" v-if="(orderstate == '1') && orderInfo.is_refund == 1" @click="toOtherPage('RefundOrder')">申请退款</view>
|
<view class="cancel" v-if="(orderstate == '1' || orderstate == '4') && orderInfo.is_refund == 1" @click="toOtherPage('RefundOrder')">申请退款</view>
|
||||||
<!-- <view class="cancel" v-if="orderstate == '8'" @click="cancelOrder">取消订单</view> -->
|
<!-- <view class="cancel" v-if="orderstate == '8'" @click="cancelOrder">取消订单</view> -->
|
||||||
<view class="cancel" v-if="orderstate == '1' && orderInfo.shipping_code && orderInfo.member_deliver_type != 3" @click="toOtherPage('Logistics')">查看物流</view>
|
<view class="cancel" v-if="orderstate == '1' && orderInfo.shipping_code && orderInfo.member_deliver_type != 3" @click="toOtherPage('Logistics')">查看物流</view>
|
||||||
<view class="logistics" v-if="orderstate == '1'" @click="confirmReceive">确认收货</view>
|
<view class="logistics" v-if="orderstate == '1'" @click="confirmReceive">确认收货</view>
|
||||||
|
@ -129,12 +129,11 @@ export default {
|
|||||||
page: this.page,
|
page: this.page,
|
||||||
type: type,
|
type: type,
|
||||||
})
|
})
|
||||||
console.log(load)
|
// res.data.forEach(element => {
|
||||||
res.data.forEach(element => {
|
// element.extend_order_goods.forEach(i=>{
|
||||||
element.extend_order_goods.forEach(i=>{
|
// // console.log(i)
|
||||||
// console.log(i)
|
// })
|
||||||
})
|
// });
|
||||||
});
|
|
||||||
this.timer = true;
|
this.timer = true;
|
||||||
uni.stopPullDownRefresh(); // 结束刷新
|
uni.stopPullDownRefresh(); // 结束刷新
|
||||||
if(res.errCode == 0) {
|
if(res.errCode == 0) {
|
||||||
@ -146,11 +145,11 @@ export default {
|
|||||||
this.orderList[this.current].push(...res.data);
|
this.orderList[this.current].push(...res.data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.orderList[this.current].forEach(element => {
|
// this.orderList[this.current].forEach(element => {
|
||||||
element.extend_order_goods.forEach(i=>{
|
// element.extend_order_goods.forEach(i=>{
|
||||||
// console.log(i)
|
// // console.log(i)
|
||||||
})
|
// })
|
||||||
});
|
// });
|
||||||
this.$forceUpdate();
|
this.$forceUpdate();
|
||||||
|
|
||||||
// console.log(this.orderList);
|
// console.log(this.orderList);
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
<view class="radios-container">
|
<view class="radios-container">
|
||||||
<view v-if="type == 2">
|
<view v-if="type == 2">
|
||||||
<label class="radio-view" v-for="(item, index) in goodsList" :key="index">
|
<label class="radio-view" v-for="(item, index) in goodsList" :key="index">
|
||||||
|
|
||||||
<view class="store_info">
|
<view class="store_info">
|
||||||
<view class="info_img">
|
<view class="info_img">
|
||||||
<image :src="item.goods_image" mode="">
|
<image :src="item.goods_image" mode="">
|
||||||
@ -84,7 +83,6 @@ export default {
|
|||||||
computed: {
|
computed: {
|
||||||
totalPrice() {
|
totalPrice() {
|
||||||
if(this.type == 2){
|
if(this.type == 2){
|
||||||
console.log(this.goodsList)
|
|
||||||
let pac = 0;
|
let pac = 0;
|
||||||
for(let i in this.goodsList){
|
for(let i in this.goodsList){
|
||||||
pac += parseFloat(this.goodsList[i].goods_pay_price) * 100 ;
|
pac += parseFloat(this.goodsList[i].goods_pay_price) * 100 ;
|
||||||
@ -189,12 +187,17 @@ export default {
|
|||||||
background-color: #EDEDED;
|
background-color: #EDEDED;
|
||||||
.radios-container {
|
.radios-container {
|
||||||
margin-bottom: 20rpx;
|
margin-bottom: 20rpx;
|
||||||
|
.u-radio-group {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
.radio-view {
|
.radio-view {
|
||||||
|
width: 100%;
|
||||||
background-color: #FFFFFF;
|
background-color: #FFFFFF;
|
||||||
padding: 26rpx;
|
padding: 26rpx;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin-bottom: 1rpx;
|
margin-bottom: 1rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
.radio {
|
.radio {
|
||||||
margin-right: 20rpx;
|
margin-right: 20rpx;
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,10 @@
|
|||||||
<text class="tips" v-if="version" @click="updateVersion">发现新版本: {{ version }}</text>
|
<text class="tips" v-if="version" @click="updateVersion">发现新版本: {{ version }}</text>
|
||||||
<text class="tips" v-else>已是最新版本</text>
|
<text class="tips" v-else>已是最新版本</text>
|
||||||
</view>
|
</view>
|
||||||
|
<view>
|
||||||
|
<text class="title">联系我们</text>
|
||||||
|
<text class="tips">{{ phoneNumber }}</text>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
@ -25,10 +29,12 @@ export default {
|
|||||||
version: '',
|
version: '',
|
||||||
phone_type: "",
|
phone_type: "",
|
||||||
status: '',
|
status: '',
|
||||||
|
phoneNumber: '',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onLoad() {
|
onLoad() {
|
||||||
this.getVersion();
|
this.getVersion();
|
||||||
|
this.getPhone();
|
||||||
this.phone_type = this.$u.os();
|
this.phone_type = this.$u.os();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@ -42,6 +48,13 @@ export default {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
getPhone() {
|
||||||
|
this.$u.api.getConfigInfo({
|
||||||
|
code: 'site_tel400'
|
||||||
|
}).then(res => {
|
||||||
|
this.phoneNumber = res.data.config.value;
|
||||||
|
})
|
||||||
|
},
|
||||||
viewAboutUs() {
|
viewAboutUs() {
|
||||||
this.$u.route('/pageE/mine/ArticleDetails', {
|
this.$u.route('/pageE/mine/ArticleDetails', {
|
||||||
type: 2
|
type: 2
|
||||||
@ -96,7 +109,7 @@ export default {
|
|||||||
}
|
}
|
||||||
.tips {
|
.tips {
|
||||||
color: #999;
|
color: #999;
|
||||||
font-size: 22rpx;
|
font-size: 28rpx;
|
||||||
}
|
}
|
||||||
.version-view {
|
.version-view {
|
||||||
.tips {
|
.tips {
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
<view class="order-status">{{ item.status }}</view>
|
<view class="order-status">{{ item.status }}</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="order-name">美甲人姓名:{{ item.manicure_name }}</view>
|
<view class="order-name">美甲人姓名:{{ item.manicure_name }}</view>
|
||||||
|
<view class="order-name">美甲人电话:{{ item.phone }}</view>
|
||||||
<view class="order-date">时间:{{ item.manicure_time | date }}</view>
|
<view class="order-date">时间:{{ item.manicure_time | date }}</view>
|
||||||
</view>
|
</view>
|
||||||
<u-loadmore :status="loadStatus" bgColor="#ECECEC" margin-bottom="20" v-if="orderList.length>=pageSize"></u-loadmore>
|
<u-loadmore :status="loadStatus" bgColor="#ECECEC" margin-bottom="20" v-if="orderList.length>=pageSize"></u-loadmore>
|
||||||
@ -129,7 +130,7 @@ export default {
|
|||||||
.order-item {
|
.order-item {
|
||||||
padding: 30rpx;
|
padding: 30rpx;
|
||||||
width:690rpx;
|
width:690rpx;
|
||||||
height: 229rpx;
|
// height: 229rpx;
|
||||||
background: rgba(255,255,255,1);
|
background: rgba(255,255,255,1);
|
||||||
border-radius: 10rpx;
|
border-radius: 10rpx;
|
||||||
margin-bottom: 20rpx;
|
margin-bottom: 20rpx;
|
||||||
|
@ -5,15 +5,23 @@
|
|||||||
<view>美甲人:</view>
|
<view>美甲人:</view>
|
||||||
<input type="text" v-model="name" />
|
<input type="text" v-model="name" />
|
||||||
</view>
|
</view>
|
||||||
<view class="order-date" @click="show=true">
|
<view class="order-name">
|
||||||
<view class="title">美甲时间:</view>
|
<view>美甲人电话:</view>
|
||||||
<image src="../static/mine/21.png" v-if="!time"></image>
|
<input type="text" v-model="phone" maxlength="11" />
|
||||||
<view v-else class="time">{{ time }}</view>
|
|
||||||
</view>
|
</view>
|
||||||
<view class="order-address">
|
<view class="order-address">
|
||||||
<view class="title">美甲地址:</view>
|
<view class="title">美甲地址:</view>
|
||||||
<input type="text" v-model="address" disabled />
|
<input type="text" v-model="address" disabled />
|
||||||
</view>
|
</view>
|
||||||
|
<view class="order-name">
|
||||||
|
<view>美甲店电话:</view>
|
||||||
|
<input type="text" v-model="storePhone" disabled />
|
||||||
|
</view>
|
||||||
|
<!-- <view class="order-date" @click="show=true">
|
||||||
|
<view class="title">美甲时间:</view>
|
||||||
|
<image src="../static/mine/21.png" v-if="!time"></image>
|
||||||
|
<view v-else class="time">{{ time }}</view>
|
||||||
|
</view> -->
|
||||||
</view>
|
</view>
|
||||||
<view class="order-btn" @click="addManicureOrder">确认订单</view>
|
<view class="order-btn" @click="addManicureOrder">确认订单</view>
|
||||||
<u-picker mode="time" v-model="show" :params="params" @confirm="chooseDate"></u-picker>
|
<u-picker mode="time" v-model="show" :params="params" @confirm="chooseDate"></u-picker>
|
||||||
@ -26,6 +34,8 @@ export default {
|
|||||||
return {
|
return {
|
||||||
name: '',
|
name: '',
|
||||||
time: '',
|
time: '',
|
||||||
|
phone: '',
|
||||||
|
storePhone: '',
|
||||||
address: '',
|
address: '',
|
||||||
params: {
|
params: {
|
||||||
year: true,
|
year: true,
|
||||||
@ -41,28 +51,38 @@ export default {
|
|||||||
},
|
},
|
||||||
onLoad() {
|
onLoad() {
|
||||||
this.getConfigInfo();
|
this.getConfigInfo();
|
||||||
|
this.getPhone();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
validateValue() {
|
validateValue() {
|
||||||
if(this.$u.test.isEmpty(this.name)) {
|
if(this.$u.test.isEmpty(this.name)) {
|
||||||
this.showToast('姓名不能为空', 'error');
|
this.showToast('姓名不能为空');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(this.$u.test.isEmpty(this.time)) {
|
if(this.$u.test.isEmpty(this.phone)) {
|
||||||
this.showToast('日期不能为空', 'error');
|
this.showToast('美甲人电话不能为空');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(new Date() > new Date(this.time)) {
|
if(!this.$u.test.mobile(this.phone)) {
|
||||||
this.showToast('日期错误', 'error');
|
this.showToast('美甲人电话错误');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
// if(this.$u.test.isEmpty(this.time)) {
|
||||||
|
// this.showToast('日期不能为空', 'error');
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
// if(new Date() > new Date(this.time)) {
|
||||||
|
// this.showToast('日期错误', 'error');
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
addManicureOrder() {
|
addManicureOrder() {
|
||||||
if(!this.validateValue()) return false;
|
if(!this.validateValue()) return false;
|
||||||
this.$u.api.addManicure({
|
this.$u.api.addManicure({
|
||||||
name: this.name,
|
name: this.name,
|
||||||
time: new Date(this.time)
|
phone: this.phone,
|
||||||
|
// time: new Date(this.time)
|
||||||
}).then((res)=>{
|
}).then((res)=>{
|
||||||
if(res.errCode == 0) {
|
if(res.errCode == 0) {
|
||||||
this.$refs.uToast.show({
|
this.$refs.uToast.show({
|
||||||
@ -85,6 +105,15 @@ export default {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
getPhone() {
|
||||||
|
this.$u.api.getConfigInfo({
|
||||||
|
code: 'manicure_phone',
|
||||||
|
}).then(res => {
|
||||||
|
if(res.errCode == 0) {
|
||||||
|
this.storePhone = res.data.config.value;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
chooseDate(e) {
|
chooseDate(e) {
|
||||||
// let time = e.year + '年' + e.month + '月' + e.day + '日' + e.hour + '时' + e.minute + '分'
|
// let time = e.year + '年' + e.month + '月' + e.day + '日' + e.hour + '时' + e.minute + '分'
|
||||||
let time = e.year + '/' + e.month + '/' + e.day + ' ' + e.hour + ':' + e.minute
|
let time = e.year + '/' + e.month + '/' + e.day + ' ' + e.hour + ':' + e.minute
|
||||||
|
@ -411,12 +411,16 @@ export default {
|
|||||||
radioChange(e){
|
radioChange(e){
|
||||||
const ids = e.split(" ");
|
const ids = e.split(" ");
|
||||||
// console.log(ids)
|
// console.log(ids)
|
||||||
let checkedGoods = {};
|
let checkedGoods;
|
||||||
this.orderList.forEach(order => {
|
this.orderList.forEach(order => {
|
||||||
if(order.order_id == ids[0]) {
|
if(order.order_id == ids[0]) {
|
||||||
Object.assign(checkedGoods, { store: order.extend_store });
|
checkedGoods = {
|
||||||
Object.assign(checkedGoods, { order_sn: order.order_sn });
|
store: order.extend_store,
|
||||||
Object.assign(checkedGoods, { order_id: order.order_id });
|
order_sn: order.order_sn,
|
||||||
|
order_id: order.order_id,
|
||||||
|
reciver_info: order.extend_order_common.reciver_info,
|
||||||
|
reciver_name: order.extend_order_common.reciver_name
|
||||||
|
}
|
||||||
order.extend_order_goods.forEach(goods => {
|
order.extend_order_goods.forEach(goods => {
|
||||||
if(goods.goods_id == ids[1]) {
|
if(goods.goods_id == ids[1]) {
|
||||||
Object.assign(checkedGoods, { goods: goods });
|
Object.assign(checkedGoods, { goods: goods });
|
||||||
@ -425,6 +429,13 @@ export default {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
this.setDefaultValue();
|
||||||
|
},
|
||||||
|
setDefaultValue() {
|
||||||
|
this.name = this.checkedGoods.reciver_name;
|
||||||
|
this.phone = this.checkedGoods.reciver_info.mob_phone;
|
||||||
|
this.area = this.checkedGoods.reciver_info.area;
|
||||||
|
this.address = this.checkedGoods.reciver_info.street;
|
||||||
},
|
},
|
||||||
setArea(area) {
|
setArea(area) {
|
||||||
// console.log(area);
|
// console.log(area);
|
||||||
|
13
pages.json
13
pages.json
@ -780,6 +780,19 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"path": "mine/Contact",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "联系我们",
|
||||||
|
"app-plus": {
|
||||||
|
"titleSize": "36px",
|
||||||
|
"titleNView": {
|
||||||
|
"titleColor": "#333333",
|
||||||
|
"backgroundColor": "#FFFFFF"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"path": "mine/Integral",
|
"path": "mine/Integral",
|
||||||
"style": {
|
"style": {
|
||||||
|
@ -307,7 +307,8 @@
|
|||||||
// 新人优惠券
|
// 新人优惠券
|
||||||
if (this.$store.state.showCoupons) {
|
if (this.$store.state.showCoupons) {
|
||||||
this.isNewmembervoucher();
|
this.isNewmembervoucher();
|
||||||
}
|
}
|
||||||
|
this.getRecommendList();
|
||||||
},
|
},
|
||||||
async onLoad(){
|
async onLoad(){
|
||||||
this.articleList = [];
|
this.articleList = [];
|
||||||
|
@ -16,7 +16,10 @@
|
|||||||
<view class="user-rank">等级:{{ userInfo.member_level || 0 }}级</view>
|
<view class="user-rank">等级:{{ userInfo.member_level || 0 }}级</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="member-service" @click="toOtherPage('/mine/MemberServe')">会员服务</view>
|
<view class="btn">
|
||||||
|
<view class="member-service" @click="toOtherPage('/mine/MemberServe')">会员服务</view>
|
||||||
|
<view class="member-service" @click="toOtherPage('/mine/Contact')">联系我们</view>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="bottom">
|
<view class="bottom">
|
||||||
<view @click="toOtherPage('/mine/GoodsCollection')">
|
<view @click="toOtherPage('/mine/GoodsCollection')">
|
||||||
@ -83,6 +86,10 @@
|
|||||||
<image src="/static/image/mine/39.png"></image>
|
<image src="/static/image/mine/39.png"></image>
|
||||||
<view>试穿试送</view>
|
<view>试穿试送</view>
|
||||||
</view>
|
</view>
|
||||||
|
<view @click="toCartPage">
|
||||||
|
<image src="/static/image/common/33.png"></image>
|
||||||
|
<view>购物车</view>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="more-tool">
|
<view class="more-tool">
|
||||||
@ -166,7 +173,7 @@ export default {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'refund',
|
name: 'refund',
|
||||||
title: '售后',
|
title: '退款售后',
|
||||||
img: '/static/image/mine/9.png',
|
img: '/static/image/mine/9.png',
|
||||||
link: '/order/Index?current=7',
|
link: '/order/Index?current=7',
|
||||||
number: '',
|
number: '',
|
||||||
@ -224,7 +231,10 @@ export default {
|
|||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: '/pageE' + url
|
url: '/pageE' + url
|
||||||
});
|
});
|
||||||
}
|
},
|
||||||
|
toCartPage() {
|
||||||
|
this.$u.route('/pageC/cart/index');
|
||||||
|
},
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
@ -236,6 +246,7 @@ export default {
|
|||||||
// width: 100%;
|
// width: 100%;
|
||||||
height: 272rpx;
|
height: 272rpx;
|
||||||
background-color: #FF7807;
|
background-color: #FF7807;
|
||||||
|
position: relative;
|
||||||
.top {
|
.top {
|
||||||
padding: 40rpx 0 0 30rpx;
|
padding: 40rpx 0 0 30rpx;
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -292,16 +303,23 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.member-service {
|
.btn {
|
||||||
height: 52rpx;
|
position: absolute;
|
||||||
line-height: 52rpx;
|
right: 0;
|
||||||
box-sizing: content-box;
|
top: 43rpx;
|
||||||
margin-left: auto;
|
.member-service {
|
||||||
padding: 0 51rpx 0 22rpx;
|
height: 52rpx;
|
||||||
background: rgba(255,255,255,0.32);
|
line-height: 52rpx;
|
||||||
border-radius: 26rpx 0 0 26rpx;
|
box-sizing: content-box;
|
||||||
font-size: 26rpx;
|
padding: 0 51rpx 0 22rpx;
|
||||||
color:rgba(51,51,51,1);
|
background: rgba(255,255,255,0.32);
|
||||||
|
border-radius: 26rpx 0 0 26rpx;
|
||||||
|
font-size: 26rpx;
|
||||||
|
color:rgba(51,51,51,1);
|
||||||
|
&:not(:last-child) {
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.bottom {
|
.bottom {
|
||||||
@ -437,7 +455,7 @@ export default {
|
|||||||
> view:nth-child(6){
|
> view:nth-child(6){
|
||||||
@include image-size($image-width: 33rpx, $image-height: 35rpx);
|
@include image-size($image-width: 33rpx, $image-height: 35rpx);
|
||||||
.order-num {
|
.order-num {
|
||||||
left: 24rpx;
|
left: 44rpx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
BIN
static/image/common/33.png
Normal file
BIN
static/image/common/33.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 10 KiB |
Loading…
x
Reference in New Issue
Block a user