first commit
This commit is contained in:
1
金壶/appV1/pages/my/.pydio
Normal file
1
金壶/appV1/pages/my/.pydio
Normal file
@@ -0,0 +1 @@
|
||||
c277717d-6d81-4989-92ed-425db9fd8ef7
|
||||
27
金壶/appV1/pages/my/AboutUs.vue
Normal file
27
金壶/appV1/pages/my/AboutUs.vue
Normal file
@@ -0,0 +1,27 @@
|
||||
<template>
|
||||
<div class="content">
|
||||
<HeaderTop page_title='关于我们'></HeaderTop>
|
||||
<view class="padding-30">
|
||||
<h2>测试</h2>
|
||||
</view>
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import HeaderTop from '../../components/HeaderTop/HeaderTop.vue'
|
||||
export default {
|
||||
comments: {
|
||||
HeaderTop
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
||||
};
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
|
||||
</style>
|
||||
66
金壶/appV1/pages/my/authentication.vue
Normal file
66
金壶/appV1/pages/my/authentication.vue
Normal file
@@ -0,0 +1,66 @@
|
||||
<template>
|
||||
<!-- 认证1 页面 -->
|
||||
<view class="content"></view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import verification from '../../common/verification.js' //正则验证
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
get_code: false,
|
||||
count_time: 60,
|
||||
phone: '',
|
||||
code: '',
|
||||
new_password: '',
|
||||
sure_password: '',
|
||||
}
|
||||
},
|
||||
// 跳过按钮的回调函数
|
||||
onNavigationBarButtonTap(e) {
|
||||
|
||||
},
|
||||
methods: {
|
||||
// 获取验证码
|
||||
getCode() {
|
||||
this.get_code = !this.get_code
|
||||
this.timer();
|
||||
},
|
||||
// 验证码计时器
|
||||
timer() {
|
||||
if (this.count_time > 0) {
|
||||
this.count_time--;
|
||||
this.get_code = true
|
||||
setTimeout(this.timer, 1000);
|
||||
} else {
|
||||
this.count_time = 60;
|
||||
this.get_code = false
|
||||
|
||||
}
|
||||
},
|
||||
sure() {
|
||||
verification.isNull(this.phone, this.code, this.new_password, this.sure_password) // 非空验证
|
||||
if (verification.isNull.prototype.the_Null == true) {
|
||||
verification.isPhone(this.phone); // 手机号格式验证
|
||||
}
|
||||
if (verification.isPhone.prototype.the_isPhone == true) {
|
||||
verification.isSamePsd(this.new_password, this.sure_password); // 两次密码是否相同
|
||||
}
|
||||
|
||||
if (
|
||||
verification.isNull.prototype.the_Null == true &&
|
||||
verification.isPhone.prototype.the_isPhone == true &&
|
||||
verification.isSamePsd.prototype.the_isSamePsd == true
|
||||
) {
|
||||
uni.navigateTo({
|
||||
url: 'authentication'
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<style>
|
||||
</style>
|
||||
77
金壶/appV1/pages/my/bind_phone.vue
Normal file
77
金壶/appV1/pages/my/bind_phone.vue
Normal file
@@ -0,0 +1,77 @@
|
||||
<template>
|
||||
<!-- 绑定手机号 页面 -->
|
||||
<view class="content">
|
||||
<HeaderTop page_title='绑定手机号'></HeaderTop>
|
||||
<view class="padding-30">
|
||||
<view class="uni-form-item uni-column d-flex x_margin0auto padding-zy30 j-sb a-center border-bottom list">
|
||||
<input class="uni-input h-100 flex-1" type="number" focus placeholder="请输入手机号" v-model="phone"/>
|
||||
<view class="get_code x-text-red x-text-font24" v-if="get_code==false" @click="getCode()">获取验证码</view>
|
||||
<view class="get_code x-text-red x-text-font24 w-50" v-else>{{count_time}}s后再次获取验证码</view>
|
||||
</view>
|
||||
<view class="uni-form-item uni-column d-flex x_margin0auto padding-zy30 j-sb a-center border-bottom list">
|
||||
<input class="uni-input flex-1" type="number" placeholder="验证码" v-model="code" />
|
||||
</view>
|
||||
<view class="x_public_box x-bg-159 esc_login x-text-white" @click="sureBind()">确定</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import HeaderTop from '../../components/HeaderTop/HeaderTop.vue'
|
||||
import verification from '../../common/verification.js' //正则验证
|
||||
export default{
|
||||
data(){
|
||||
return {
|
||||
phone:'',
|
||||
get_code: false, //判断是否点击了“获取验证码”按钮 是:true ; 否:false
|
||||
code: '', // 验证码
|
||||
count_time: 60,
|
||||
}
|
||||
},
|
||||
comments: {
|
||||
HeaderTop
|
||||
},
|
||||
methods:{
|
||||
// 确认绑定手机号
|
||||
sureBind(){
|
||||
verification.isNull(this.phone, this.code) // 非空验证
|
||||
if (verification.isNull.prototype.the_Null == true) {
|
||||
uni.navigateBack(2)
|
||||
|
||||
}
|
||||
},
|
||||
// 获取验证码
|
||||
getCode() {
|
||||
this.get_code = !this.get_code
|
||||
this.timer();
|
||||
},
|
||||
// 验证码计时器
|
||||
timer() {
|
||||
if (this.count_time > 0) {
|
||||
this.count_time--;
|
||||
this.get_code = true
|
||||
setTimeout(this.timer, 1000);
|
||||
} else {
|
||||
this.count_time = 60;
|
||||
this.get_code = false
|
||||
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.content {
|
||||
position: relative;
|
||||
.list{
|
||||
height: 83upx;
|
||||
}
|
||||
.esc_login{
|
||||
line-height: 82upx;
|
||||
position: absolute;
|
||||
bottom:100upx;
|
||||
left: 34upx;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
107
金壶/appV1/pages/my/change_password.vue
Normal file
107
金壶/appV1/pages/my/change_password.vue
Normal file
@@ -0,0 +1,107 @@
|
||||
<template>
|
||||
<!-- 修改密码 页面 -->
|
||||
<view class="content">
|
||||
<HeaderTop page_title='修改密码'></HeaderTop>
|
||||
<view class="padding-30">
|
||||
<view class="padding-zy30 d-flex j-sb a-center border-bottom list">
|
||||
<view class="">旧密码</view>
|
||||
<input type="password" value="" placeholder="请输入旧密码" class="flex-1" v-if="is_seenOld==false" v-model="old_password"/>
|
||||
<input type="text" value="" placeholder="请输入旧密码" class="flex-1" v-if="is_seenOld==true" v-model="old_password"/>
|
||||
<image src="../../static/my/bukan.png" mode="" class="bukan" v-if="is_seenOld==false" @click="isChangeOld()"></image>
|
||||
<image src="../../static/my/kan.png" mode="" class="kan" v-if="is_seenOld==true" @click="isChangeOld()"></image>
|
||||
</view>
|
||||
<view class="padding-zy30 d-flex j-sb a-center border-bottom list">
|
||||
<view class="">新密码</view>
|
||||
<input type="password" value="" placeholder="请输入新密码" class="flex-1" v-if="is_seenNew==false" v-model="new_password"/>
|
||||
<input type="text" value="" placeholder="请输入新密码" class="flex-1" v-if="is_seenNew==true" v-model="new_password"/>
|
||||
<image src="../../static/my/bukan.png" mode="" class="bukan" v-if="is_seenNew==false" @click="isChangeNew()"></image>
|
||||
<image src="../../static/my/kan.png" mode="" class="kan" v-if="is_seenNew==true" @click="isChangeNew()"></image>
|
||||
</view>
|
||||
<view class="padding-zy30 d-flex j-sb a-center border-bottom list">
|
||||
<view class="">确认密码</view>
|
||||
<input type="password" value="" placeholder="请输入新密码" class="flex-1" ref='sure_pass' v-if="is_seenSure==false" v-model="sure_password"/>
|
||||
<input type="text" value="" placeholder="请输入新密码" class="flex-1" ref='sure_pass' v-if="is_seenSure==true" v-model="sure_password"/>
|
||||
<image src="../../static/my/bukan.png" mode="" class="bukan" v-if="is_seenSure==false" @click="isChangeSure()"></image>
|
||||
<image src="../../static/my/kan.png" mode="" class="kan" v-if="is_seenSure==true" @click="isChangeSure()"></image>
|
||||
</view>
|
||||
<view class="x_public_box x-bg-159 esc_login x-text-white w-90" @click="surePassword()">确定</view>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import verification from '../../common/verification.js' //正则验证
|
||||
import HeaderTop from '../../components/HeaderTop/HeaderTop.vue'
|
||||
import X_login from '../../utils/models/x_login.js'
|
||||
export default{
|
||||
data(){
|
||||
return {
|
||||
old_password:'', //旧密码
|
||||
new_password:'', //新密码
|
||||
sure_password:'', //确认密码
|
||||
is_seenOld:false,
|
||||
is_seenNew:false,
|
||||
is_seenSure:false
|
||||
}
|
||||
},
|
||||
comments: {
|
||||
HeaderTop
|
||||
},
|
||||
methods:{
|
||||
isChangeOld(){
|
||||
this.is_seenOld = ! this.is_seenOld
|
||||
},
|
||||
isChangeNew(){
|
||||
this.is_seenNew = ! this.is_seenNew
|
||||
},
|
||||
isChangeSure(){
|
||||
this.is_seenSure = ! this.is_seenSure
|
||||
},
|
||||
// 确认修改密码
|
||||
async surePassword(){
|
||||
verification.isNull(this.old_password, this.new_password, this.sure_password) // 非空验证
|
||||
if (verification.isNull.prototype.the_Null == true) {
|
||||
verification.isSamePsd(this.new_password,this.sure_password); // 两次密码是否相同
|
||||
}
|
||||
|
||||
if (
|
||||
verification.isNull.prototype.the_Null == true &&
|
||||
verification.isSamePsd.prototype.the_isSamePsd == true
|
||||
) {
|
||||
let res = await X_login.X_editphone(this.old_password,this.new_password)
|
||||
uni.clearStorage();
|
||||
uni.redirectTo({
|
||||
url:'./x_login'
|
||||
})
|
||||
this.handleError(res, res => {
|
||||
this.list = res.data
|
||||
})
|
||||
// uni.navigateBack(2)
|
||||
// console.log('修改成功');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.content {
|
||||
position: relative;
|
||||
.list{
|
||||
height: 83upx;
|
||||
.bukan{
|
||||
height:15upx;
|
||||
width:47upx;
|
||||
}
|
||||
.kan{
|
||||
height:36upx;
|
||||
width:47upx;
|
||||
}
|
||||
}
|
||||
.esc_login{
|
||||
line-height: 82upx;
|
||||
margin-top:200upx;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
320
金壶/appV1/pages/my/collect.vue
Normal file
320
金壶/appV1/pages/my/collect.vue
Normal file
@@ -0,0 +1,320 @@
|
||||
<template>
|
||||
<!-- 购物车 页面 -->
|
||||
<view class="content w-100 h-100">
|
||||
<!-- <view>
|
||||
<image src="../../static/font/search.png" mode=""></image>
|
||||
</view> -->
|
||||
<view class="header bg-linear-gradient x-text-white text-center">
|
||||
<image src="../../static/my/left.png" mode="" class="goback" @click="back()"></image>
|
||||
收藏商品
|
||||
<view class="search">
|
||||
<!-- <image src="../../static/font/search.png" mode=""></image> -->
|
||||
</view>
|
||||
<view class="edit_shoppingCar" @click="edit_shoppingCar()" v-if="isEdit==true">完成</view>
|
||||
<view class="edit_shoppingCar" @click="edit_shoppingCar()" v-if="isEdit==false &&list.length>0">编辑</view>
|
||||
</view>
|
||||
<view class="list" v-if="list.length>0">
|
||||
<view class="list_items" v-for="(item,index) in list" :key="index">
|
||||
<checkbox-group class="block" style='padding:0 30upx 30upx'>
|
||||
<view class=" d-flex a-center">
|
||||
<view class="d-flex goods_items a-center w-100">
|
||||
<checkbox-group @change="selected(item)" v-if="isEdit==true">
|
||||
<checkbox class="xuanzhong" :checked="item.checked" />
|
||||
</checkbox-group>
|
||||
<view class="box_img" @click="goodsDetail(item)">
|
||||
<image :src="'https://'+item.pc_thumb" mode="" class="h-100 w-100"></image>
|
||||
</view>
|
||||
<view class="goods_txt flex-1" @click="goodsDetail(item)">
|
||||
<view class="font-weight">{{item.name}}</view>
|
||||
<view class="">{{item.factory_name}}</view>
|
||||
<view class="">{{item.spec_desc}}</view>
|
||||
<view class="x-text-159">{{item.show_price}}</view>
|
||||
</view>
|
||||
<!-- <view class="goods_count d-flex">
|
||||
<view class="bianji_cars_num bianji_cars_numJian" @click="reduse_goodsNum(index)">-</view>
|
||||
<view class="bianji_cars_num bianji_cars_numAdd">{{goods_num}}</view>
|
||||
<view class="bianji_cars_num bianji_cars_numAdd" @click="add_goodsNum(index)">+</view>
|
||||
</view> -->
|
||||
</view>
|
||||
</view>
|
||||
</checkbox-group>
|
||||
<view class="line"></view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<!-- <view class="settlement shadow d-flex a-center" v-if="isEdit==true">
|
||||
|
||||
</view> -->
|
||||
<view class="settlement shadow d-flex a-center" v-if="isEdit==true">
|
||||
<view class="all_choose">
|
||||
<checkbox-group @change="selectedall()">
|
||||
<checkbox class="quanxuananniu" :checked="allchecked" />全选
|
||||
</checkbox-group>
|
||||
</view>
|
||||
<view class="x_textRight flex-1 d-flex text-right ml-5">
|
||||
<view>已选:</view>
|
||||
<view class="x-text-159"> {{jianshu}} </view>
|
||||
<view>件</view>
|
||||
</view>
|
||||
<view class="x-bg-159 text-center del_goods bg-danger text-white" @click="del_goods()">删除</view>
|
||||
</view>
|
||||
<view class="no_list x_margin0auto" v-if="list.length<=0">
|
||||
<image src="../../static/shoppingCart/nopic.png" mode="" class="no_list_img"></image>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import X_goods from '../../utils/models/goods.js'
|
||||
import HeaderTop from '../../components/HeaderTop/HeaderTop.vue'
|
||||
// import {Config} from '@/utils/config'
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
allchecked: false, //默认全选为true,因为后台数据没有是否选中的信息
|
||||
goods_num: 10, //商品当前数量
|
||||
Stock: 20, //当前商品的总库存
|
||||
isEdit: false, // 判断是否编辑购物车,true为编辑,false为不编辑
|
||||
add_choose_checked: false,
|
||||
list: [], // 数据
|
||||
|
||||
isChecked: false,
|
||||
checkboxData: [{
|
||||
'value': 0,
|
||||
'label': '选项一'
|
||||
}, {
|
||||
'value': 1,
|
||||
'label': '选项2'
|
||||
}],
|
||||
checkedArr: [], //复选框选中的值
|
||||
allChecked: false, //是否全选
|
||||
jianshu: 0, // 已选中的件数
|
||||
goods_id: '',
|
||||
goodsId_arr:[],
|
||||
id: {}
|
||||
}
|
||||
},
|
||||
comments: {
|
||||
HeaderTop
|
||||
},
|
||||
onLoad() {
|
||||
|
||||
},
|
||||
mounted() {
|
||||
this.collectList();
|
||||
},
|
||||
methods: {
|
||||
// 删除收藏的商品
|
||||
async del_goods() {
|
||||
var newArr = this.list.filter(function(obj) {
|
||||
return obj.checked == true;
|
||||
});
|
||||
newArr.map((item,index)=>{
|
||||
this.goods_id += item.goods_id+','
|
||||
this.goodsId_arr.push({"goods_id":item.goods_id})
|
||||
});
|
||||
|
||||
//this.goods_id = this.goods_id.substr(0, this.goods_id.length - 1);
|
||||
// let res = await X_goods.X_addCollect_app(JSON.stringify(this.goodsId_arr), 2)
|
||||
let res = await X_goods.X_addCollect_app(this.goods_id, 2)
|
||||
this.handleError(res, res => {
|
||||
|
||||
this.isEdit = false
|
||||
this.collectList();
|
||||
})
|
||||
},
|
||||
// 单个商品前的勾选
|
||||
selected(item) {
|
||||
|
||||
item.checked = !item.checked
|
||||
|
||||
if (!item.checked) {
|
||||
this.allchecked = false
|
||||
this.jianshu--
|
||||
} else {
|
||||
this.jianshu++
|
||||
const test = this.list.every(item => {
|
||||
return item.checked === true
|
||||
})
|
||||
if (test) {
|
||||
this.allchecked = true
|
||||
} else {
|
||||
this.allchecked = false
|
||||
}
|
||||
}
|
||||
},
|
||||
// 全选按钮
|
||||
selectedall() {
|
||||
this.allchecked = !this.allchecked;
|
||||
this.jianshu = 0;
|
||||
|
||||
if (this.allchecked) {
|
||||
this.list.map(item => {
|
||||
item.checked = true
|
||||
})
|
||||
|
||||
this.jianshu = this.jianshu + this.list.length
|
||||
|
||||
} else {
|
||||
this.list.map(item => {
|
||||
item.checked = false
|
||||
|
||||
})
|
||||
}
|
||||
},
|
||||
// 商品收藏列表
|
||||
async collectList() {
|
||||
|
||||
let res = await X_goods.x_Collectlsit()
|
||||
this.handleError(res, res => {
|
||||
|
||||
this.list = res.data.data.list
|
||||
|
||||
this.list.map(item => {
|
||||
item.checked = false
|
||||
})
|
||||
})
|
||||
},
|
||||
//去结算
|
||||
to_pay() {
|
||||
uni.navigateTo({
|
||||
url: './sureOrder'
|
||||
})
|
||||
},
|
||||
// 管理购物车
|
||||
edit_shoppingCar() {
|
||||
this.isEdit = !this.isEdit
|
||||
},
|
||||
// 进入商品详情页
|
||||
goodsDetail(item) {
|
||||
console.log(item,2)
|
||||
if (this.isEdit == false) {
|
||||
uni.navigateTo({
|
||||
url:'../home/search-list?keyword='+item.name
|
||||
})
|
||||
}
|
||||
},
|
||||
back(){
|
||||
uni.navigateBack(1)
|
||||
},
|
||||
// 登录
|
||||
to_login() {
|
||||
uni.navigateTo({
|
||||
url: 'x_login'
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.content {
|
||||
.header {
|
||||
height: 148upx;
|
||||
font-size: 32upx;
|
||||
position: relative;
|
||||
line-height: 194upx;
|
||||
.goback{
|
||||
position: absolute;
|
||||
bottom:29upx;
|
||||
left:31upx;
|
||||
height:30.9upx;
|
||||
width:18upx;
|
||||
}
|
||||
.edit_shoppingCar {
|
||||
position: absolute;
|
||||
bottom: -48upx;
|
||||
right: 31upx;
|
||||
}
|
||||
}
|
||||
|
||||
.list {
|
||||
|
||||
height: calc(100% - 248upx);
|
||||
overflow-y: auto;
|
||||
|
||||
.list_items {
|
||||
|
||||
|
||||
.box_img {
|
||||
height: 153.3upx;
|
||||
width: 270upx;
|
||||
padding: 10upx 20upx;
|
||||
margin: 0 10upx;
|
||||
}
|
||||
|
||||
.goods_items {
|
||||
position: relative;
|
||||
|
||||
.goods_count {
|
||||
position: absolute;
|
||||
bottom: -14upx;
|
||||
right: 8upx;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
.line {
|
||||
height: 4upx;
|
||||
background-color: #F2F2F2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.no_list {
|
||||
margin-top: 315upx;
|
||||
text-align: center;
|
||||
|
||||
.no_list_img {
|
||||
height: 198upx;
|
||||
width: 395upx;
|
||||
}
|
||||
}
|
||||
|
||||
.settlement {
|
||||
height: 100upx;
|
||||
.all_choose {
|
||||
width: 30%;
|
||||
margin-left: 30upx;
|
||||
}
|
||||
|
||||
.to_buy {
|
||||
line-height: 100upx;
|
||||
width: 260upx;
|
||||
min-width: 224.6upx;
|
||||
font-size: 34upx;
|
||||
}
|
||||
|
||||
.add_toCollection {
|
||||
border: 1upx solid #EDCA4A;
|
||||
border-radius: 30upx;
|
||||
|
||||
line-height: 60upx;
|
||||
width: 198.8upx;
|
||||
color: #EDCA4A;
|
||||
margin: 0 22px 0 30px;
|
||||
}
|
||||
|
||||
.del_goods {
|
||||
border: 1upx solid #EB5159;
|
||||
// border-radius: 30upx;
|
||||
width: 249.6upx;
|
||||
height: 100upx;
|
||||
line-height: 100upx;
|
||||
color: #EB5159;
|
||||
border: 1upx solid #EB5159;
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
}
|
||||
|
||||
// .search{
|
||||
// border: 1rpx solid #007AFF;
|
||||
// width: 40.9upx;height: 40.9upx;
|
||||
// position: absolute;
|
||||
// bottom: -48upx;
|
||||
// right: 150upx;
|
||||
// }
|
||||
}
|
||||
</style>
|
||||
76
金壶/appV1/pages/my/explain.vue
Normal file
76
金壶/appV1/pages/my/explain.vue
Normal file
@@ -0,0 +1,76 @@
|
||||
<template>
|
||||
<!-- 《医点医滴会员服务协议》 -->
|
||||
<view class="content">
|
||||
<HeaderTop page_title='医点医滴会员服务协议'></HeaderTop>
|
||||
<view class="padding-30">
|
||||
<view class="font-weight font_28">《医点医滴会员服务协议》</view>
|
||||
<view class="">欢迎使用医点医滴平台(以下简称"平台")。为维护市场交易秩序,平台与会员(指采购商会员)达成以下服务协议:</view>
|
||||
<view class="font-weight">一、遵守法律法规</view>
|
||||
<view>采购商会员使用平台进行药品交易,其行为必须遵循《中华人民共和国药品管理法》、《医疗器械监督管理条例》、《中华人民共和国合同法》、《中华人民共和国电子签名法》、《药品经营质量管理规范》、《药品流通监督管理办法》、《互联网药品信息服务管理办法》及《互联网药品交易服务审批暂行规定》等有关法律法规。</view>
|
||||
<view class="font-weight">二、平台服务对象</view>
|
||||
<view>平台服务对象是具有合法资质的医药、医疗器械及保健品经营企业和医疗机构等。平台服务对象必须成为平台注册会员,才能使用平台。平台服务对象通过线下资料认证后成为采购商会员可以在平台进行采购活动。</view>
|
||||
<view>平台服务对象要向平台提供真实、准确的资质材料(包括公司的名称、地址、联系电话、法人代表、银行账号和国家规定的相关证书和授权书等),资质材料如发生变更,应立即联系客服进行修改。</view>
|
||||
<view>如平台有合理理由怀疑服务对象资质材料不准确,平台有权暂停或终止用户的注册身份及资料,并拒绝用户在目前或将来对“服务”(或其任何部分)以任何形式使用。</view>
|
||||
<view>如服务对象的资质材料不真实、不准确,致使医点医滴平台或第三方受到任何直接或间接经济损失的,本平台有权随时取消服务对象的会员资格,所造成的损失应由服务对象全部承担。</view>
|
||||
<view>如因服务对象提供的资质材料不实或不准确而给自身造成任何性质的损失,其后果由服务对象自行承担。</view>
|
||||
<view>如由于服务对象自身保管不当,导致会员信息资料被他人窃用,其后果均由服务对象自行承担。</view>
|
||||
<view class="font-weight">三、平台服务内容</view>
|
||||
<view>(一)提供医药相关产品信息服务,帮助会员进行药品采购和提高经营效率。</view>
|
||||
<view>(二)提供采购订单跟踪、物流等服务。平台记录交易履约全程,保证交易可追溯。</view>
|
||||
<view>(三)为医药企业、产品、品牌提供推广服务。</view>
|
||||
<view>(四)平台提供的其他服务。</view>
|
||||
<view>(四)平台提供的其他服务。</view>
|
||||
<view class="font-weight">四、采购商会员权利义务</view>
|
||||
<view>(一)采购商会员采购行为必须符合各项法律、法规及平台的交易管理规则。会员自行承担因产品的违规采购产生的法律责任,并同意赔偿违反前述承诺给平台造成的损失,包括合理的追索费用。</view>
|
||||
<view>(二)采购商会员承诺通过交易平台从事医药电子商务符合国家有关法律、法规的规定,不利用平台进行任何非法交易活动,否则,本平台有权立即取消其会员资格,所造成的后果应由当事人全部承担,本平台不承担连带责任。</view>
|
||||
<view>(三)采购商会员享受平台提供的一站式服务,且应保证具备合法资质,并提供相应证明材料,会员资料应符合国家相关法律和规定,并对其真实性负全部责任。</view>
|
||||
<view>(四)采购商会员在平台采购应不超过经营范围采购商品,并按国家规范采购商品并提供相应证明文件。</view>
|
||||
<view class="font-weight">五、平台权利义务</view>
|
||||
<view>(一)平台为交易双方提供产品展示、信息沟通、订单处理、结算等服务。如出现技术障碍及时告知会员并组织修复,在此期间平台有权暂时停止以上服务,直至故障消除。</view>
|
||||
<view>(二)平台为会员提供的医药商品信息的版权和知识产权归平台所有,未经许可,任何单位和个人不得以任何形式复制、转载、出售、出版、传播信息资料,否则,本平台将追究其经济和法律责任。</view>
|
||||
<view>(三)平台保留对服务相关功能(例如药品信息管理、结算流程)变更、升级的权利。</view>
|
||||
<view>(四)根据法律法规及本平台交易的实际情况,平台有权修改有关条款,并于公示即时生效。会员在平台修改服务条款后继续使用服务,则被视作接受修改条款。</view>
|
||||
<view>(五)会员若因违法、违规侵害了第三方的合法权利,而导致第三方或行政、司法机关对金壶医药交易平台及金壶医药有限公司提出索赔或处罚要求(包括但不限于诉讼费、律师费、差旅费等),必须全额赔偿给金壶医药有限公司。</view>
|
||||
<view>(六) 平台有权对会员使用平台服务的情况进行审查和监督(包括但不限于对会员存储在平台的内容进行审核),如会员在使用网络服务时违反任何本条款规定,平台或其授权的人有权要求会员改正或直接采取一切必要的措施(包括但不限于暂停或终止会员使用网络服务的权利)以减轻会员不当行为造成的影响。如会员有违反规定导致任何法律后果的发生,会员应独立承担所有相应的法律责任。</view>
|
||||
<view class="font-weight">六、免责及责任的限制与排除</view>
|
||||
<view>(一)平台的会员名和密码只限会员使用,会员对使用该账号的一切行为承担法律责任。会员应采取一切合理安保措施保护其资料不被泄漏。如用户发现其账号遭他人非法使用,应立即通知平台。因用户的保管疏忽而产生的风险、损失由会员独自承担,本平台不承担责任。</view>
|
||||
<view>(二) 对于因不可抗力或平台不能控制的原因或其他意外事件(包括但不限于任何间接、偶然、特殊及继起的损害)造成的服务中断或其他缺陷,使得本条款履行不能,平台不承担任何责任,但将尽力减少因此而给客户造成的损失和影响。 不可抗力、不能控制的原因、意外事件是指不能预见、不能克服并不能避免且对一方或双方当事人造成重大影响的客观事件,包括但不限于自然灾害如洪水、地震、瘟疫流行等以及社会事件如战争、动乱、政府行为等。</view>
|
||||
<view class="font-weight">七、协议的中止和终止</view>
|
||||
<view>会员违反本协议规定或本协议附属规定的情况下,平台有权中止或终止本协议。协议终止并不意味着终止前所发生的未完成交易指令的撤销,也不能消除因终止前的交易所带来的任何法律后果。</view>
|
||||
<view class="font-weight">八、法律适用和争议解决</view>
|
||||
<view>(一)本协议一切事宜均适用中华人民共和国法律并依其解释。</view>
|
||||
<view>(二)若履行本协议发生争议,由双方友好协商解决;协商不成时,可向安徽金壶医药有限公司住所地人民法院提起诉讼。</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import HeaderTop from '../../components/HeaderTop/HeaderTop.vue'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
||||
}
|
||||
},
|
||||
comments: {
|
||||
HeaderTop
|
||||
},
|
||||
onShow() {
|
||||
|
||||
},
|
||||
mounted() {
|
||||
|
||||
},
|
||||
onLoad(option) {
|
||||
console.log(option,0)
|
||||
|
||||
},
|
||||
methods: {
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
|
||||
</style>
|
||||
94
金壶/appV1/pages/my/goauthentication.vue
Normal file
94
金壶/appV1/pages/my/goauthentication.vue
Normal file
@@ -0,0 +1,94 @@
|
||||
<template>
|
||||
<!-- 购物车 页面 -->
|
||||
<view class="content w-100 h-100 position-relative">
|
||||
<view class="header bg-linear-gradient x-text-white text-center ">
|
||||
认证
|
||||
<view class="edit_shoppingCar" @click="modification">修改</view>
|
||||
</view>
|
||||
<view class="img ">
|
||||
<image class="Pview img" src="../../static/1000.jpg" mode=""></image>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import HeaderTop from '../../components/HeaderTop/HeaderTop.vue'
|
||||
// import {Config} from '@/utils/config'
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
isEdit: false, // 判断是否编辑购物车,true为编辑,false为不编辑
|
||||
}
|
||||
},
|
||||
comments: {
|
||||
HeaderTop
|
||||
},
|
||||
onLoad() {
|
||||
|
||||
},
|
||||
mounted() {
|
||||
|
||||
},
|
||||
methods: {
|
||||
//去结算
|
||||
to_updata(){
|
||||
uni.navigateTo({
|
||||
url:'./Eauthentication'
|
||||
})
|
||||
},
|
||||
|
||||
// 登录
|
||||
to_login() {
|
||||
uni.navigateTo({
|
||||
url: 'x_login'
|
||||
});
|
||||
},
|
||||
|
||||
// 修改
|
||||
modification(){
|
||||
uni.navigateTo({
|
||||
url:'Eauthentication'
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.content {
|
||||
.header {
|
||||
height: 148upx;
|
||||
font-size: 32upx;
|
||||
position: relative;
|
||||
line-height: 194upx;
|
||||
|
||||
.edit_shoppingCar {
|
||||
position: absolute;
|
||||
bottom: -48upx;
|
||||
right: 31upx;
|
||||
}
|
||||
}
|
||||
|
||||
.img{
|
||||
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
margin-top: -50px;
|
||||
margin-left: -100px;
|
||||
width: 100px;
|
||||
height: 100x;
|
||||
background: green;
|
||||
|
||||
}
|
||||
|
||||
.Pview{
|
||||
width: 585upx;
|
||||
height: 322upx;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
</style>
|
||||
82
金壶/appV1/pages/my/gong_mes.vue
Normal file
82
金壶/appV1/pages/my/gong_mes.vue
Normal file
@@ -0,0 +1,82 @@
|
||||
<template>
|
||||
<!-- 对公信息 页面 -->
|
||||
|
||||
<view class="content h-100">
|
||||
<HeaderTop page_title='对公账户信息'></HeaderTop>
|
||||
<view class="message d-flex j-sb border-bottom margin-zy20" style="line-height: 90upx;">
|
||||
<view>单位名称</view>
|
||||
<view>{{list.company_name}}</view>
|
||||
</view>
|
||||
<view class="message d-flex j-sb border-bottom margin-zy20" style="line-height: 90upx;">
|
||||
<view>纳税人识别码</view>
|
||||
<view>{{list.company_code}}</view>
|
||||
</view>
|
||||
<view class="message d-flex j-sb border-bottom margin-zy20" style="line-height: 90upx;">
|
||||
<view>地址</view>
|
||||
<view>{{list.address}}</view>
|
||||
</view>
|
||||
<view class="message d-flex j-sb border-bottom margin-zy20" style="line-height: 90upx;">
|
||||
<view>电话</view>
|
||||
<view>{{list.tel}}</view>
|
||||
</view>
|
||||
<view class="message d-flex j-sb border-bottom margin-zy20" style="line-height: 90upx;">
|
||||
<view>开户行</view>
|
||||
<view>{{list.bank_name}}</view>
|
||||
</view>
|
||||
<view class="message d-flex j-sb border-bottom margin-zy20" style="line-height: 90upx;">
|
||||
<view>账号</view>
|
||||
<view>{{list.account_number}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
|
||||
<script>
|
||||
import HeaderTop from '../../components/HeaderTop/HeaderTop.vue'
|
||||
import X_login from '../../utils/models/x_login.js'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
list_flag:'',
|
||||
list:''
|
||||
}
|
||||
},
|
||||
onShow() {
|
||||
this.messageList()
|
||||
},
|
||||
mounted() {
|
||||
|
||||
},
|
||||
comments: {
|
||||
HeaderTop
|
||||
},
|
||||
onLoad(option) {
|
||||
|
||||
this.list_flag = option.list_flag
|
||||
},
|
||||
methods: {
|
||||
async messageList(){
|
||||
let res = await X_login.X_accountInfo()
|
||||
this.handleError(res, res => {
|
||||
|
||||
this.list = res.data;
|
||||
|
||||
})
|
||||
},
|
||||
//对公打款
|
||||
gong(){
|
||||
|
||||
},
|
||||
// 返回
|
||||
goBack(){
|
||||
public_function.goBack();
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.content {
|
||||
|
||||
}
|
||||
</style>
|
||||
108
金壶/appV1/pages/my/is_message.vue
Normal file
108
金壶/appV1/pages/my/is_message.vue
Normal file
@@ -0,0 +1,108 @@
|
||||
<template>
|
||||
<!-- 消息 页面 -->
|
||||
<view class="content">
|
||||
<PublicTop page_title='消息'></PublicTop>
|
||||
<!-- 占位 -->
|
||||
<view class="place"></view>
|
||||
<view>
|
||||
<view v-if='messageList.length<=0' align="center">
|
||||
<image src="../../static/no/u/carno.png" mode="" class="noCar_img"></image>
|
||||
<view class="x_textCenter margin-shu20 font_28 x_text_hui">暂无消息</view>
|
||||
</view>
|
||||
<view class="padding-30" v-for="(item,index) of this.messageList" :key="index">
|
||||
<view class="padding-zy30 d-flex j-sb a-center border-bottom">
|
||||
<image src="../../static/my/mycar.png" mode="" class="" style="height:74upx; width:76upx;"></image>
|
||||
<view class="font-weight margin-zy20">{{item.biz_type_text}}</view>
|
||||
<view class="flex-1 x_text_hui">{{item.biz_title}}</view>
|
||||
<view class="">{{item.create_time}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="loading-text">{{loadingText}}</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import PublicTop from '../../components/HeaderTop/PublicTop.vue'
|
||||
import message from '../../utils/models/message.js'
|
||||
export default{
|
||||
data(){
|
||||
return {
|
||||
cache:250,
|
||||
messageList:[],
|
||||
page:1,
|
||||
isScroll:true,
|
||||
loadingText:"",
|
||||
}
|
||||
},
|
||||
components: {
|
||||
PublicTop
|
||||
},
|
||||
//下拉刷新,需要自己在page.json文件中配置开启页面下拉刷新 "enablePullDownRefresh": true
|
||||
onPullDownRefresh() {
|
||||
setTimeout(()=>{
|
||||
this.reload();
|
||||
uni.stopPullDownRefresh();
|
||||
}, 1000);
|
||||
},
|
||||
//上拉加载,需要自己在page.json文件中配置"onReachBottomDistance"
|
||||
onReachBottom(){
|
||||
if(!this.isScroll){
|
||||
this.loadingText="到底了";
|
||||
return false;
|
||||
}else{
|
||||
this.loadingText="正在加载...";
|
||||
setTimeout(() => {
|
||||
this.getList();
|
||||
}, 500);
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
async getList() {
|
||||
let parames = {
|
||||
page:this.page
|
||||
}
|
||||
|
||||
let data = await message.getList(parames)
|
||||
if(data.data.current_page == data.data.last_page){
|
||||
this.isScroll = false
|
||||
}
|
||||
for (let i = 0; i < data.data.data.length; i++) {
|
||||
this.messageList.push(data.data.data[i])
|
||||
}
|
||||
this.page++
|
||||
this.handleError(data, res => {
|
||||
|
||||
})
|
||||
},
|
||||
},
|
||||
created() {
|
||||
if(this.page){
|
||||
this.isScroll = true
|
||||
this.serviceList = []
|
||||
}
|
||||
this.getList()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.place{
|
||||
background-color: #ffffff;
|
||||
height: 148upx;
|
||||
}
|
||||
.noCar_img{
|
||||
height:238upx;
|
||||
width:350upx;
|
||||
margin-top: 100upx;
|
||||
}
|
||||
.loading-text{
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 60upx;
|
||||
color: #979797;
|
||||
font-size: 24upx;
|
||||
}
|
||||
</style>
|
||||
393
金壶/appV1/pages/my/my.vue
Normal file
393
金壶/appV1/pages/my/my.vue
Normal file
@@ -0,0 +1,393 @@
|
||||
<template>
|
||||
<!-- 我的 页面 -->
|
||||
<view class="content w-100 h-100 bg_F2F2F2">
|
||||
<view class="info w-100 d-flex bg-linear-gradient">
|
||||
<view class="head_portrait">
|
||||
<!-- <img src="../../static/my/touxiang.png" alt="" class='h-100 w-100'> -->
|
||||
<image src="../../static/my/touxiang.png" alt="" class='h-100 w-100'></image>
|
||||
</view>
|
||||
<view class="d-flex x-text-white info_txt">
|
||||
<view class="" @click="to_login()" v-if="is_login==false">注册/登录</view>
|
||||
<view class="" v-if="is_login==true">{{userPhone}}</view>
|
||||
</view>
|
||||
<image src="../../static/my/shezhi.png" mode="" class="set_up" @click="toSetting()"></image>
|
||||
<image src="../../static/my/message.png" mode="" class="h-100 w-100 mes" @click="to_message()"></image>
|
||||
</view>
|
||||
<view class='padding-zy30'>
|
||||
<view class="x_public_box info_item">
|
||||
<!-- 我的订单 -->
|
||||
<view class="my_order x_margin0auto ">
|
||||
<view class="order_tip d-flex j-sb a-center x-border-hui padding-zy30" @click="to_order(0)">
|
||||
<view class="">我的订单</view>
|
||||
<image src="../../static/my/right.png" mode="" class="order_back"></image>
|
||||
</view>
|
||||
|
||||
<view class="order_items d-flex j-around" style="padding-top: 30upx;">
|
||||
<!-- // 1 待付款 2代发货 6待收货 3已完成 -->
|
||||
<view @click="to_order(1)" class="order_item_box">
|
||||
<image src="../../static/my/bag2.png" mode="" class="order_img"></image>
|
||||
<view>待付款</view>
|
||||
<!-- <view class="order_num" v-if='item.order_status==1'>{{item.count}}</view> -->
|
||||
<view class="order_num" v-if='order_num[0].count'>{{order_num[0].count}}</view>
|
||||
</view>
|
||||
<view @click="to_order(2)" class="order_item_box">
|
||||
<image src="../../static/my/bag1.png" mode="" class="order_img"></image>
|
||||
<view>待发货</view>
|
||||
<!-- <view class="order_num" v-if='item.order_status==2'>{{item.count}}</view> -->
|
||||
<view class="order_num" v-if='order_num[1].count'>{{order_num[1].count}}</view>
|
||||
</view>
|
||||
<view @click="to_order(3)" class="order_item_box">
|
||||
|
||||
<image src="../../static/my/mycar.png" mode="" class="order_img"></image>
|
||||
<view>待收货</view>
|
||||
<view class="order_num" v-if='order_num[2].count'>{{order_num[2].count}}</view>
|
||||
<!-- <view class="order_num" v-if='item.order_status==6'>{{item.count}}</view> -->
|
||||
</view>
|
||||
<view @click="to_order(4)" class="order_item_box">
|
||||
<image src="../../static/my/dui.png" mode="" class="order_img"></image>
|
||||
<view>已完成</view>
|
||||
<view class="order_num" v-if='order_num[3].count'>{{order_num[3].count}}</view>
|
||||
<!-- <view class="order_num" v-if='item.order_status==3'>{{item.count}}</view> -->
|
||||
</view>
|
||||
<!-- <view @click="to_refund()">
|
||||
<image src="../../static/my/qian.png" mode="" class="order_img"></image>
|
||||
<view>退款/售后</view>
|
||||
</view> -->
|
||||
</view>
|
||||
|
||||
|
||||
</view>
|
||||
</view>
|
||||
<view class="x_public_box">
|
||||
<!-- 我的服务 -->
|
||||
<view class="my_order x_margin0auto my_service">
|
||||
<view class="order_tip d-flex j-sb a-center x-border-hui padding-zy30">
|
||||
<view class="">我的服务</view>
|
||||
</view>
|
||||
<view class="service_items d-flex j-around">
|
||||
<view @click="Eauthentication()">
|
||||
<image src="../../static/my/add.png" mode="" class="service_img"></image>
|
||||
<view>企业认证</view>
|
||||
</view>
|
||||
<view @click="to_opinion()">
|
||||
<image src="../../static/my/mykefu.png" mode="" class="service_img"></image>
|
||||
<view>专属客服</view>
|
||||
</view>
|
||||
<view @click="pathList()">
|
||||
<image src="../../static/my/location.png" mode="" class="service_img"></image>
|
||||
<view>收货地址</view>
|
||||
</view>
|
||||
<view @click="go_collect()">
|
||||
<image src="../../static/my/star.png" mode="" class="service_img"></image>
|
||||
<view>我的收藏</view>
|
||||
</view>
|
||||
<view @click="duigong()">
|
||||
<image src="../../static/my/gong.png" mode="" class="service_img"></image>
|
||||
<view>对公信息</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="Copyright text-center x_text_hui">
|
||||
<view>Copyright©2014-2020</view>
|
||||
<view>医点医滴平台 版权所有</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
|
||||
<script>
|
||||
import {
|
||||
Config
|
||||
} from '../../utils/config.js'
|
||||
import X_login from '../../utils/models/x_login.js'
|
||||
import X_goods from '../../utils/models/goods.js'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
is_login: false,
|
||||
userPhone: '',
|
||||
order_num:[
|
||||
{"order_status":1,"count":0},
|
||||
{"order_status":2,"count":0},
|
||||
{"order_status":6,"count":0},
|
||||
{"order_status":3,"count":0}
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
onLoad() {
|
||||
|
||||
},
|
||||
beforeCreate() {
|
||||
|
||||
},
|
||||
created() {
|
||||
|
||||
},
|
||||
mounted() {
|
||||
|
||||
this.istell();
|
||||
},
|
||||
onShow() {
|
||||
this.istell();
|
||||
this.get_order_count();
|
||||
},
|
||||
methods: {
|
||||
// 获取订单数量
|
||||
async get_order_count() {
|
||||
let res = await X_goods.x_order_count()
|
||||
this.order_num = res.data
|
||||
|
||||
this.handleError(res, res => {
|
||||
|
||||
})
|
||||
},
|
||||
// 对公信息
|
||||
duigong() {
|
||||
uni.navigateTo({
|
||||
url: './gong_mes'
|
||||
})
|
||||
},
|
||||
async istell() {
|
||||
|
||||
let res = await X_login.x_tell()
|
||||
|
||||
this.userPhone = res.data;
|
||||
if(res.data){
|
||||
this.is_login = true
|
||||
}
|
||||
this.handleError(res, res => {
|
||||
// this.userPhone = res.data;
|
||||
|
||||
})
|
||||
},
|
||||
// 获取用户手机号
|
||||
// async istell() {
|
||||
// uni.getStorage({
|
||||
// key: 'isAuthentication',
|
||||
// success: function(res) {
|
||||
// // console.log(res,'zheshi');
|
||||
// if (res.data == '') {
|
||||
// uni.navigateTo({
|
||||
// url: './x_login'
|
||||
// })
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
// let res = await X_login.x_tell()
|
||||
// this.handleError(res, res => {
|
||||
// if (res.data == '') {
|
||||
// uni.getStorage({
|
||||
// key: 'isAuthentication',
|
||||
// success: function(res) {
|
||||
// if (res.data == '') {
|
||||
|
||||
// uni.navigateTo({
|
||||
// url: './x_login'
|
||||
// })
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
// } else {
|
||||
// this.userPhone = res.data;
|
||||
|
||||
// this.is_login = true
|
||||
// if (this.userPhone == undefined || '') {
|
||||
// uni.navigateTo({
|
||||
// url: './x_login'
|
||||
// })
|
||||
// }
|
||||
// }
|
||||
|
||||
// })
|
||||
// },
|
||||
// 认证
|
||||
to_Authentication() {
|
||||
uni.navigateTo({
|
||||
url: 'authentication'
|
||||
})
|
||||
},
|
||||
//意见反馈
|
||||
to_opinion() {
|
||||
uni.navigateTo({
|
||||
url: 'opinion'
|
||||
})
|
||||
},
|
||||
// 退款/售后
|
||||
to_refund() {
|
||||
uni.navigateTo({
|
||||
url: '../refund/refund'
|
||||
})
|
||||
},
|
||||
// 我的订单
|
||||
to_order(index) {
|
||||
uni.navigateTo({
|
||||
url: '../order/index?is_index=' + index
|
||||
})
|
||||
},
|
||||
// 消息
|
||||
to_message() {
|
||||
uni.navigateTo({
|
||||
url: 'is_message'
|
||||
})
|
||||
},
|
||||
// 设置
|
||||
toSetting() {
|
||||
uni.navigateTo({
|
||||
url: './setting'
|
||||
})
|
||||
},
|
||||
// 登录
|
||||
to_login() {
|
||||
uni.navigateTo({
|
||||
url: 'x_login'
|
||||
});
|
||||
},
|
||||
// 收藏
|
||||
go_collect() {
|
||||
uni.navigateTo({
|
||||
url: './collect'
|
||||
})
|
||||
},
|
||||
// 收获地址
|
||||
pathList() {
|
||||
uni.navigateTo({
|
||||
url: '/pages/my/path-change'
|
||||
})
|
||||
},
|
||||
// 企业认证
|
||||
Eauthentication() {
|
||||
uni.navigateTo({
|
||||
url: '../auth/is_Authentication'
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.content {
|
||||
.info {
|
||||
position: relative;
|
||||
height: 340upx;
|
||||
padding: 0 10upx;
|
||||
|
||||
.head_portrait {
|
||||
height: 128upx;
|
||||
width: 128upx;
|
||||
position: absolute;
|
||||
top: 102upx;
|
||||
left: 30upx;
|
||||
}
|
||||
|
||||
.info_txt {
|
||||
line-height: 122upx;
|
||||
position: absolute;
|
||||
top: 116upx;
|
||||
left: 200upx;
|
||||
font-size: 30upx;
|
||||
}
|
||||
|
||||
.set_up {
|
||||
position: absolute;
|
||||
bottom: 233upx;
|
||||
right: 127upx;
|
||||
height: 41upx;
|
||||
width: 45upx;
|
||||
}
|
||||
|
||||
.mes {
|
||||
width: 44upx;
|
||||
height: 38upx;
|
||||
position: absolute;
|
||||
right: 43upx;
|
||||
top: 72upx;
|
||||
}
|
||||
}
|
||||
|
||||
.info_item {
|
||||
height: 248upx;
|
||||
margin-top: -82upx;
|
||||
position: relative;
|
||||
z-index: 30;
|
||||
|
||||
.the_items {
|
||||
padding-top: 10upx;
|
||||
}
|
||||
}
|
||||
|
||||
.my_order {
|
||||
height: 200upx;
|
||||
margin: 0 auto;
|
||||
|
||||
.order_tip {
|
||||
line-height: 80upx;
|
||||
border-bottom: 2upx solid #F4F4F4;
|
||||
}
|
||||
|
||||
.order_items {
|
||||
text-align: center;
|
||||
|
||||
padding-top: 15upx;
|
||||
|
||||
|
||||
.order_item_box{
|
||||
position: relative;
|
||||
|
||||
|
||||
}
|
||||
.order_img {
|
||||
|
||||
height: 52upx;
|
||||
width: 61upx;
|
||||
|
||||
}
|
||||
.order_num{
|
||||
position: absolute;
|
||||
top:-16upx;
|
||||
right:-16upx;
|
||||
// padding: 2upx 10upx;
|
||||
height:40upx;
|
||||
width:40upx;
|
||||
line-height: 40upx;
|
||||
|
||||
color:#FFFFFF;
|
||||
border-radius: 50%;
|
||||
background-color: red;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.service_items {
|
||||
text-align: center;
|
||||
padding-top: 26upx;
|
||||
}
|
||||
|
||||
.order_back {
|
||||
height: 30upx;
|
||||
width: 19upx;
|
||||
}
|
||||
}
|
||||
|
||||
.my_service {
|
||||
height: 352upx;
|
||||
|
||||
.service_img {
|
||||
height: 91upx;
|
||||
width: 91upx;
|
||||
}
|
||||
}
|
||||
|
||||
.Copyright {
|
||||
width: 100%;
|
||||
position: absolute;
|
||||
bottom: 30upx;
|
||||
|
||||
}
|
||||
}
|
||||
</style>
|
||||
95
金壶/appV1/pages/my/opinion.vue
Normal file
95
金壶/appV1/pages/my/opinion.vue
Normal file
@@ -0,0 +1,95 @@
|
||||
<template>
|
||||
<!-- 意见反馈 页面 -->
|
||||
<view class="content bg_F2F2F2">
|
||||
<HeaderTop page_title='专属客服'></HeaderTop>
|
||||
<view class="list bg_F2F2F2">
|
||||
<view class="top bg-linear-gradient w-100">
|
||||
<!-- <img src="../../static/my/zhuanshukefu.png" alt="" class='kefu'> -->
|
||||
<image src="../../static/my/zhuanshukefu.png" alt="" class='kefu'></image>
|
||||
</view>
|
||||
<view class="x-bg-white info" v-for="(item,index) in list" :key="index" >
|
||||
<view class="d-flex border-bottom">
|
||||
<view class="font-weight">客服名称</view>
|
||||
<view class="margin-zy20">{{item.nickname}}</view>
|
||||
</view>
|
||||
<view class="d-flex j-sb a-center">
|
||||
<view class="font-weight">联系方式</view>
|
||||
<view class="margin-zy20 text-left flex-1" @tap='to_call(item)'>{{item.mobile}}</view>
|
||||
<image src="../../static/my/dianhua.png" mode="" class="tell" @tap='to_call(item)'></image>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import HeaderTop from '../../components/HeaderTop/HeaderTop.vue'
|
||||
import X_goods from '../../utils/models/goods.js'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
list:''
|
||||
}
|
||||
},
|
||||
comments: {
|
||||
HeaderTop
|
||||
},
|
||||
onShow() {
|
||||
this.the_custOmer()
|
||||
},
|
||||
components: {
|
||||
|
||||
|
||||
},
|
||||
methods: {
|
||||
to_call(item){
|
||||
uni.makePhoneCall({
|
||||
phoneNumber: item.mobile //仅为示例
|
||||
});
|
||||
},
|
||||
// x_custOmer
|
||||
async the_custOmer() {
|
||||
let res = await X_goods.x_custOmer()
|
||||
console.log(res)
|
||||
this.list = res.data
|
||||
console.log(this.list)
|
||||
this.handleError(res, res => {
|
||||
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.content {
|
||||
.list{
|
||||
.top{
|
||||
height:240upx;
|
||||
text-align: center;
|
||||
.kefu{
|
||||
height:180upx;
|
||||
width:180upx;
|
||||
border-radius: 50%;
|
||||
margin-top:126upx;
|
||||
}
|
||||
}
|
||||
.info{
|
||||
width:690upx;
|
||||
border-radius: 30upx;
|
||||
margin:100upx auto;
|
||||
padding: 0 30upx;
|
||||
line-height: 100upx;
|
||||
.tell{
|
||||
height:34upx;
|
||||
width:28upx;
|
||||
}
|
||||
}
|
||||
.other{
|
||||
width:100%;
|
||||
position: fixed;
|
||||
bottom:50upx;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
237
金壶/appV1/pages/my/path-change.vue
Normal file
237
金壶/appV1/pages/my/path-change.vue
Normal file
@@ -0,0 +1,237 @@
|
||||
<template>
|
||||
<!-- 收货地址 -->
|
||||
<view class="w-100 h-100 all">
|
||||
<HeaderTop page_title='收货地址'></HeaderTop>
|
||||
<view class="list">
|
||||
<view class="list_item d-flex j-sb j-center a-center padding-30 border-bottom" v-for="(item,index) in dataList" :key="index">
|
||||
<!-- <radio value="" :checked="item.checked" style="width:10%;" v-if="goods_id!=''" /> -->
|
||||
<view class="items_info flex-1 padding-zy30">
|
||||
<view class="d-flex">
|
||||
<view>{{item.consignee}}</view>
|
||||
<view class='margin-zy20'>{{item.tel}}</view>
|
||||
<view class="is_choose margin-zy20" v-if='item.is_default!=0'>默认</view>
|
||||
</view>
|
||||
<view>
|
||||
{{item.address}}
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<image src="../../static/shoppingCart/edit1.png" mode="" style="height:40upx; width:40upx;margin-right: 30upx;" @click.stop="edit(index)"></image>
|
||||
</view>
|
||||
</view>
|
||||
<!-- <block v-for="(item,index) in dataList" :key="index">
|
||||
<uni-swipe-action :options="options"
|
||||
@click="bindClick($event,index)">
|
||||
<uni-list-item @click="choose(item)">
|
||||
<view class="text-secondary text-dark">
|
||||
<view class="d-flex a-center">
|
||||
<text class="text-dark mr-2 font-weight">{{item.consignee}}</text>
|
||||
{{item.tel}}
|
||||
<text class="main-text-color ml-2"
|
||||
v-if="item.isdefault">[默认]</text>
|
||||
</view>
|
||||
<view>{{item.area_name}} {{"("}}{{item.address}}{{")"}}</view>
|
||||
</view>
|
||||
</uni-list-item>
|
||||
</uni-swipe-action>
|
||||
</block> -->
|
||||
<view class="x_public_box x-text-white x-bg-159 margin-shu20 shadow addBtn w-90" style="line-height: 80upx;" @click="addPath()">新增收货地址</view>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import store from '@/store/index.js'
|
||||
import HeaderTop from '../../components/HeaderTop/HeaderTop.vue'
|
||||
import uniListItem from "@/components/uni-ui/uni-list-item/uni-list-item.vue"
|
||||
import uniSwipeAction from "@/components/uni-ui/uni-swipe-action/uni-swipe-action.vue"
|
||||
import {mapState,mapMutations} from "vuex"
|
||||
|
||||
import shippingAddress from '../../utils/models/shop.js'
|
||||
export default {
|
||||
components: {
|
||||
uniListItem,
|
||||
uniSwipeAction,
|
||||
HeaderTop
|
||||
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
address_id:'',
|
||||
goods_id:'',
|
||||
dataList:[], //数据列表
|
||||
|
||||
isChoose:false,
|
||||
options: [{
|
||||
text: '编辑',
|
||||
style: {
|
||||
backgroundColor: '#007aff'
|
||||
}
|
||||
}, {
|
||||
text: '删除',
|
||||
style: {
|
||||
backgroundColor: '#dd524d'
|
||||
}
|
||||
}],
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapState({
|
||||
|
||||
|
||||
|
||||
list:state=>state.path.list
|
||||
}),
|
||||
},
|
||||
|
||||
onLoad(option) {
|
||||
if (option.type === '') {
|
||||
this.isChoose = true
|
||||
}
|
||||
if(option.goods_id){
|
||||
|
||||
this.goods_id = option.goods_id
|
||||
|
||||
}
|
||||
// 请求数据
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
// 编辑地址
|
||||
edit(index){
|
||||
// console.log(this.goods_id)
|
||||
uni.redirectTo({
|
||||
url:'./user-path-edit?address_item='+JSON.stringify(this.dataList[index])
|
||||
})
|
||||
console.log(JSON.stringify(this.dataList[index]));
|
||||
|
||||
// {"id":286,
|
||||
// "area_id":216,
|
||||
// "address":"aeawef",
|
||||
// "consignee":"天空",
|
||||
// "tel":"1565654848",
|
||||
// "is_default":0,
|
||||
// "area_name":"河南省 - 洛阳市 - 嵩县",
|
||||
// "short_consignee":"天空",
|
||||
// "checked":fals,
|
||||
// }
|
||||
},
|
||||
// 选择地址
|
||||
|
||||
// 地址列表
|
||||
async getData(){
|
||||
let res = await shippingAddress.addressList();
|
||||
this.handleError(res, res => {
|
||||
|
||||
this.dataList = res.data.data.list
|
||||
|
||||
|
||||
this.dataList.forEach(item=>{
|
||||
|
||||
item.checked = false
|
||||
this.address_id = item.id
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
async deletelist(){
|
||||
let res = await shippingAddress.deleteAddress(this.address_id);
|
||||
this.handleError(res, res => {
|
||||
|
||||
if(res.code == 200){
|
||||
uni.showToast({
|
||||
title:'删除成功'
|
||||
})
|
||||
}else{
|
||||
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
|
||||
async bindClick(value,i) {
|
||||
let res;
|
||||
switch (value.index){
|
||||
case 0: // 修改
|
||||
let obj = JSON.stringify({
|
||||
index:i,
|
||||
item:this.address_id
|
||||
})
|
||||
setTimeout(()=> {
|
||||
uni.redirectTo({
|
||||
url: '../my/user-path-edit?data='+obj,
|
||||
});
|
||||
},50);
|
||||
break;
|
||||
case 1: // 删除
|
||||
let res = await shippingAddress.deleteAddress(this.address_id);
|
||||
this.handleError(res, res => {
|
||||
|
||||
if(res.code == 200){
|
||||
uni.showModal({
|
||||
content: '要删除该收货地址吗?',
|
||||
success(res){
|
||||
if(res.confirm){
|
||||
uni.showToast({
|
||||
title:'删除成功'
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
}else{
|
||||
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
break;
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
|
||||
// 选择收货地址
|
||||
// choose(item){
|
||||
// if (this.isChoose) {
|
||||
// // 通知订单提交页修改收货地址
|
||||
// uni.$emit('choosePath',item)
|
||||
// // 关闭当前页面
|
||||
// uni.navigateBack({
|
||||
// delta: 1
|
||||
// });
|
||||
// }
|
||||
// },
|
||||
// 新增地址
|
||||
addPath() {
|
||||
uni.redirectTo({
|
||||
url: '../my/user-path-add'
|
||||
});
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.is_choose{
|
||||
background-color: #EDCA4A;
|
||||
color: #FFFFFF;
|
||||
height:50upx;
|
||||
line-height: 50upx;
|
||||
padding: 0 15upx;
|
||||
font-size: 28upx;
|
||||
border-radius: 20upx;
|
||||
}
|
||||
.list{
|
||||
height:calc(100% - 300upx);
|
||||
overflow-y: auto;
|
||||
}
|
||||
.addBtn{
|
||||
position: absolute;
|
||||
bottom:0upx;
|
||||
left: 34upx;
|
||||
}
|
||||
|
||||
</style>
|
||||
190
金壶/appV1/pages/my/pay_success.vue
Normal file
190
金壶/appV1/pages/my/pay_success.vue
Normal file
@@ -0,0 +1,190 @@
|
||||
<template>
|
||||
<!-- 支付成功 页面 -->
|
||||
<view class="content h-100">
|
||||
<view class="banner">
|
||||
<!-- <image src="../../static/my/left.png" mode="" class="back" @click="goBack()"></image> -->
|
||||
<view class="page_title text-center x-text-white">支付</view>
|
||||
<view class="pay_state d-flex a-center j-center">
|
||||
<image src="../../static/shoppingCart/dui.png" mode="" class="margin-zy20" style="height:84upx; width:92upx;"></image>
|
||||
<view class="x-text-white" style="font-size: 34upx;" v-if='list_flag==4 || list_flag==5'>支付成功</view>
|
||||
<view class="x-text-white" style="font-size: 34upx;" v-if='list_flag==1 || list_flag==2'>订单提交成功</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="text-center margin-shu20" v-if='list_flag==1 || list_flag==2'>请尽快完成支付,超时系统将取消订单</view>
|
||||
<view class="text-center margin-shu20" v-if='list_flag==4 || list_flag==5'>感谢您的购买,我们将尽快为您发货</view>
|
||||
<view class="two_btn d-flex j-sb w-90" style="margin:50upx auto;">
|
||||
<view class="x_public_box x-text-white x-bg-159" style="line-height: 80upx; width:45%;" @click="lookOrder()">查看订单</view>
|
||||
<view class="x_public_box x-text-white" style="width:45%; background-color: #F4C91C; line-height:80upx;" v-if='list_flag==4 || list_flag==5' @click="gohome()">返回首页</view>
|
||||
<view class="x_public_box x-text-white" style="width:45%; background-color: #F4C91C; line-height:80upx;" v-if='list_flag==1 || list_flag==2' @click="gong()">对公打款</view>
|
||||
</view>
|
||||
|
||||
<view class="x-bg-white info" v-for="(item,index) in list" :key="index" >
|
||||
<view class="d-flex border-bottom">
|
||||
<view class="font-weight">客服名称</view>
|
||||
<view class="margin-zy20">{{item.nickname}}</view>
|
||||
</view>
|
||||
<view class="d-flex j-sb a-center">
|
||||
<view class="font-weight">联系方式</view>
|
||||
<view class="margin-zy20 text-left flex-1" @tap='to_call(item)'>{{item.mobile}}</view>
|
||||
<image src="../../static/my/dianhua.png" mode="" class="tell" @tap='to_call(item)'></image>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
|
||||
<script>
|
||||
// import {Config} from '../../utils/config.js'
|
||||
import {Config} from '../../utils/config.js'
|
||||
import X_goods from '../../utils/models/goods.js'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
list_flag:'',
|
||||
list:''
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
||||
},
|
||||
onLoad(option) {
|
||||
//console.log(option)
|
||||
|
||||
//this.list_flag = option.list_flag
|
||||
},
|
||||
onShow() {
|
||||
this.list_flag = Config.list_flag
|
||||
this.the_custOmer()
|
||||
},
|
||||
methods: {
|
||||
// 查看订单
|
||||
lookOrder(){
|
||||
uni.navigateTo({
|
||||
url:'../../pages/order/index'
|
||||
})
|
||||
},
|
||||
//对公打款
|
||||
gong(){
|
||||
uni.navigateTo({
|
||||
url:'./gong_mes'
|
||||
})
|
||||
},
|
||||
// 返回首页
|
||||
gohome(){
|
||||
uni.switchTab({
|
||||
url: '../home/home'
|
||||
})
|
||||
},
|
||||
// 返回
|
||||
goBack(){
|
||||
uni.navigateBack(1)
|
||||
},
|
||||
|
||||
// 拨打电话
|
||||
to_call(item){
|
||||
uni.makePhoneCall({
|
||||
phoneNumber: item.mobile //仅为示例
|
||||
});
|
||||
},
|
||||
// x_custOmer
|
||||
async the_custOmer() {
|
||||
let res = await X_goods.x_custOmer()
|
||||
console.log(res)
|
||||
this.list = res.data
|
||||
this.handleError(res, res => {
|
||||
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.content {
|
||||
.banner{
|
||||
height:511upx;
|
||||
position: relative;
|
||||
background-image: url(../../static/shoppingCart/bgsucc.png);
|
||||
background-position: 100% 100%;
|
||||
background-size: cover;
|
||||
padding-top:70upx;
|
||||
.pay_state{
|
||||
margin-top:50upx;
|
||||
}
|
||||
.page_title{
|
||||
// line-height: 118upx;
|
||||
font-size: 32upx;
|
||||
}
|
||||
|
||||
.back{
|
||||
position: absolute;
|
||||
top:80upx;
|
||||
left:33upx;
|
||||
height:31upx;
|
||||
width:19upx;
|
||||
}
|
||||
}
|
||||
.login{
|
||||
margin-top:60upx;
|
||||
}
|
||||
.my_form{
|
||||
.my_form_menu{
|
||||
.menu_items{
|
||||
margin-right:44upx;
|
||||
}
|
||||
}
|
||||
.menu_active{
|
||||
color: #282828;
|
||||
font-size: 32upx;
|
||||
border-bottom:4upx solid #6B68DC;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
.my_input{
|
||||
padding:100upx 64upx;
|
||||
.two_input{
|
||||
border-bottom:1upx solid #F2F2F2;
|
||||
height:100upx;
|
||||
}
|
||||
}
|
||||
.forget_password{
|
||||
display: inline-block;
|
||||
margin:15upx 0;
|
||||
color: #6B6AD5;
|
||||
border-bottom: 1upx solid #6B6AD5;
|
||||
}
|
||||
.agree {
|
||||
display: -webkit-box;
|
||||
overflow: hidden;
|
||||
white-space: normal !important;
|
||||
text-overflow: ellipsis;
|
||||
word-wrap: break-word;
|
||||
-webkit-line-clamp: 3;
|
||||
-webkit-box-orient: vertical
|
||||
}
|
||||
.besthelp{
|
||||
padding-left: 170upx;
|
||||
color:#ff1c00eb;
|
||||
font-size: 16px;
|
||||
margin-top: 15upx;
|
||||
.callphone{
|
||||
display: inline-block;
|
||||
width:35upx;
|
||||
height:35upx;
|
||||
margin-left:35upx;
|
||||
}
|
||||
}
|
||||
.info{
|
||||
background-color: #eeeeee6e;
|
||||
width:690upx;
|
||||
border-radius: 30upx;
|
||||
margin:40upx auto;
|
||||
padding: 0 30upx;
|
||||
line-height: 100upx;
|
||||
.tell{
|
||||
height:34upx;
|
||||
width:28upx;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
201
金壶/appV1/pages/my/pay_type.vue
Normal file
201
金壶/appV1/pages/my/pay_type.vue
Normal file
@@ -0,0 +1,201 @@
|
||||
<template>
|
||||
<!-- 支付订单 页面 -->
|
||||
<view class="content bg_F2F2F2">
|
||||
<HeaderTop page_title='支付订单'></HeaderTop>
|
||||
<view class="x_text_hui text-center time">支付剩余时间{{list.deadline_time}}</view>
|
||||
<view class="text-center">¥ <text class="font-weight money">{{list.total_amount}}</text></view>
|
||||
<view class="pay_types x-bg-white w-90 " style="border-radius: 20upx; margin:100upx auto;">
|
||||
<view class="d-flex padding-30 border-bottom" @click="radioChange(1)">
|
||||
<!-- <image src="../../static/shoppingCart/weixin.png" mode=""></image> -->
|
||||
<!-- <view style='height:50upx;width:50upx; border:1px solid red;' :style="{backgroundImage:'url(${zhifubao})',backgroundSize: 'cover'}">
|
||||
<img src="../../static/shoppingCart/zhifubao.png" alt="">
|
||||
</view> -->
|
||||
<!-- <view style="background-image:url(../../static/shoppingCart/zhifubao.png);"></view>
|
||||
<view :style="{backgroundImage:'url(../../static/shoppingCart/zhifubao.png)'}"></view> -->
|
||||
<!-- <img src="../../static/shoppingCart/zhifubao.png" alt="" style='50upx;width:50upx;'> -->
|
||||
<image src="../../static/shoppingCart/zhifubao.png" mode="" style='height:50upx;width:50upx;'></image>
|
||||
<view class="flex-1 padding-zy30">支付宝支付</view>
|
||||
<radio value="支付宝支付" :checked="current==1" style="width:10%;" />
|
||||
</view>
|
||||
<view class="d-flex padding-30 border-bottom" @click="radioChange(2)">
|
||||
<image src="../../static/shoppingCart/weixin.png" mode="" style='height:50upx;width:50upx;'></image>
|
||||
<view class="flex-1 padding-zy30">微信支付</view>
|
||||
<radio value="微信支付" :checked="current==2" style="width:10%;" />
|
||||
</view>
|
||||
<view class="d-flex padding-30 border-bottom" @click="radioChange(3)">
|
||||
<image src="../../static/shoppingCart/gong.png" mode="" style='height:50upx;width:50upx;'></image>
|
||||
<view class="flex-1 padding-zy30">公对公打款</view>
|
||||
<radio value="公对公打款" :checked="current==3" style="width:10%;" />
|
||||
</view>
|
||||
<view class="d-flex padding-30" @click="radioChange(4)" v-if="list.is_new_user === 1">
|
||||
<image src="../../static/shoppingCart/huo.png" mode="" style='height:50upx;width:50upx;'></image>
|
||||
<view class="flex-1 padding-zy30">货到付款</view>
|
||||
<radio value="货到付款" :checked="current==4" style="width:10%;" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="x_public_box sureBtn x-bg-159 x-text-white w-90" @click="pay()">确定</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import HeaderTop from '../../components/HeaderTop/HeaderTop.vue'
|
||||
import X_goods from '../../utils/models/goods.js'
|
||||
import {
|
||||
Config
|
||||
} from '../../utils/config.js'
|
||||
import zhifubao from "../../static/shoppingCart/zhifubao.png"
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
current: '',
|
||||
order_id: '',
|
||||
list: '',
|
||||
list_flag: '' // 1货到付款,值2线下支付,值3小程序支付,值4微信支付,值5支付宝支付
|
||||
}
|
||||
},
|
||||
onShow() {
|
||||
this.isPay();
|
||||
|
||||
},
|
||||
comments: {
|
||||
HeaderTop
|
||||
},
|
||||
onLoad(option) {
|
||||
this.order_id = option.order_id
|
||||
},
|
||||
onBackPress(options) {
|
||||
if (options.from === 'backbutton') {
|
||||
uni.redirectTo({
|
||||
url: '../../pages/order/index?is_index=1',
|
||||
});
|
||||
}
|
||||
return true
|
||||
},
|
||||
// onBackPress(options) {
|
||||
// uni.navigateTo({
|
||||
// url: '../../pages/order/index',
|
||||
// });
|
||||
// },
|
||||
methods: {
|
||||
// 支付
|
||||
async isPay() {
|
||||
let res = await X_goods.X_toPay(this.order_id)
|
||||
this.handleError(res, res => {
|
||||
|
||||
this.list = res.data
|
||||
})
|
||||
},
|
||||
// 调用支付 X_appPay
|
||||
async pay() {
|
||||
list_flag: '' // 1货到付款,值2线下支付,值3小程序支付,值4微信支付,值5支付宝支付
|
||||
if (this.current == 1) { //支付宝支付
|
||||
this.list_flag = 5
|
||||
Config.list_flag = this.list_flag
|
||||
let res = await X_goods.X_appPay(this.order_id, this.list_flag)
|
||||
let orderInfo = res.data.aliPayInfo
|
||||
uni.requestPayment({
|
||||
provider: 'alipay',
|
||||
orderInfo: orderInfo,
|
||||
success: function(res) {
|
||||
uni.redirectTo({
|
||||
url: './pay_success'
|
||||
})
|
||||
|
||||
uni.showToast({
|
||||
title: '支付成功',
|
||||
duration: 2000,
|
||||
icon: 'none'
|
||||
});
|
||||
|
||||
},
|
||||
fail: function(err) {
|
||||
uni.redirectTo({
|
||||
url: '../order/index'
|
||||
})
|
||||
}
|
||||
});
|
||||
this.handleError(res, res => {
|
||||
|
||||
})
|
||||
}
|
||||
if (this.current == 2) { // 微信支付
|
||||
this.list_flag = 4
|
||||
Config.list_flag = this.list_flag
|
||||
let res = await X_goods.X_appPay(this.order_id, this.list_flag)
|
||||
this.handleError(res, res => {
|
||||
|
||||
})
|
||||
let orderInfo = res.data.wxPayInfo
|
||||
uni.requestPayment({
|
||||
provider: 'wxpay',
|
||||
orderInfo: orderInfo, //微信、支付宝订单数据
|
||||
success: function(res) {
|
||||
console.log('success:' + JSON.stringify(res));
|
||||
uni.redirectTo({
|
||||
url: './pay_success'
|
||||
})
|
||||
|
||||
uni.showToast({
|
||||
title: '支付成功',
|
||||
duration: 2000,
|
||||
icon: 'none'
|
||||
});
|
||||
},
|
||||
fail: function(err) {
|
||||
console.log('fail:' + JSON.stringify(err));
|
||||
console.log(res, 'shishi')
|
||||
uni.redirectTo({
|
||||
url: '../order/index'
|
||||
})
|
||||
}
|
||||
});
|
||||
}
|
||||
if (this.current == 3) { // 线下支付
|
||||
this.list_flag = 2
|
||||
Config.list_flag = this.list_flag
|
||||
let res = await X_goods.X_appPay(this.order_id, this.list_flag)
|
||||
uni.redirectTo({
|
||||
url: './pay_success'
|
||||
})
|
||||
this.handleError(res, res => {
|
||||
|
||||
})
|
||||
}
|
||||
if (this.current == 4) { // 货到付款
|
||||
this.list_flag = 1
|
||||
Config.list_flag = this.list_flag
|
||||
let res = await X_goods.X_appPay(this.order_id, this.list_flag)
|
||||
uni.redirectTo({
|
||||
url: './pay_success'
|
||||
})
|
||||
this.handleError(res, res => {
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
},
|
||||
//选择支付方式
|
||||
radioChange(e) {
|
||||
console.log(333)
|
||||
this.current = e
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.content {
|
||||
.time {
|
||||
margin: 60upx 0;
|
||||
}
|
||||
|
||||
.money {
|
||||
font-size: 52upx;
|
||||
}
|
||||
|
||||
.sureBtn {
|
||||
line-height: 82upx;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
57
金壶/appV1/pages/my/personal_center.vue
Normal file
57
金壶/appV1/pages/my/personal_center.vue
Normal file
@@ -0,0 +1,57 @@
|
||||
<template>
|
||||
<!-- 个人中心 页面 -->
|
||||
<view class="content">
|
||||
<HeaderTop page_title='个人中心'></HeaderTop>
|
||||
<view class="padding-30">
|
||||
<view class="padding-zy30 d-flex j-sb a-center border-bottom list" @click="to_bind_phone()">
|
||||
<view class="">手机号</view>
|
||||
<image src="../../static/my/right.png" mode="" class="p_right"></image>
|
||||
</view>
|
||||
<view class="padding-zy30 d-flex j-sb a-center border-bottom list" @click="to_change_pass()">
|
||||
<view class="">修改密码</view>
|
||||
<image src="../../static/my/right.png" mode="" class="p_right"></image>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import HeaderTop from '../../components/HeaderTop/HeaderTop.vue'
|
||||
export default{
|
||||
data(){
|
||||
return {
|
||||
|
||||
}
|
||||
},
|
||||
comments: {
|
||||
HeaderTop
|
||||
},
|
||||
methods:{
|
||||
to_bind_phone(){
|
||||
uni.navigateTo({
|
||||
url:'bind_phone'
|
||||
})
|
||||
},
|
||||
to_change_pass(){
|
||||
uni.navigateTo({
|
||||
url:'change_password'
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.content {
|
||||
position: relative;
|
||||
.list{
|
||||
height: 83upx;
|
||||
}
|
||||
.esc_login{
|
||||
line-height: 82upx;
|
||||
position: absolute;
|
||||
bottom:100upx;
|
||||
left: 34upx;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
135
金壶/appV1/pages/my/setting.vue
Normal file
135
金壶/appV1/pages/my/setting.vue
Normal file
@@ -0,0 +1,135 @@
|
||||
<template>
|
||||
<!-- 设置 页面 -->
|
||||
<view class="content">
|
||||
<HeaderTop page_title='设置'></HeaderTop>
|
||||
<view class="padding-30">
|
||||
<view class="padding-zy30 d-flex j-sb a-center border-bottom list" @click="to_editPassword()">
|
||||
<view class="">修改密码</view>
|
||||
<image src="../../static/my/right.png" mode="" class="p_right"></image>
|
||||
</view>
|
||||
<view class="padding-zy30 d-flex j-sb a-center border-bottom list" @click="phone_message()">
|
||||
<view class="">消息提醒设置</view>
|
||||
<image src="../../static/my/right.png" mode="" class="p_right"></image>
|
||||
</view>
|
||||
<view class="padding-zy30 d-flex j-sb a-center border-bottom list" @click="clear_cache()">
|
||||
<view class="">清除缓存</view>
|
||||
<view class="p_right cache_right">{{currentSize}}{{currentSizeText}}</view>
|
||||
</view>
|
||||
<view class="x_public_box x-bg-159 esc_login x-text-white w-90" style="line-height: 80upx;" @click="esc_login()">退出登录</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import HeaderTop from '../../components/HeaderTop/HeaderTop.vue'
|
||||
import permission from '../../common/permission.js' //正则验证
|
||||
import uploadImage from '@/common/ossutil/uploadFile.js';
|
||||
export default{
|
||||
data(){
|
||||
return {
|
||||
cache:250,
|
||||
currentSize:0,
|
||||
currentSizeText:'K'
|
||||
}
|
||||
},
|
||||
comments: {
|
||||
HeaderTop
|
||||
},
|
||||
methods:{
|
||||
// 退出登录
|
||||
esc_login(){
|
||||
uni.navigateTo({
|
||||
url:'./x_login'
|
||||
})
|
||||
uni.clearStorage();
|
||||
},
|
||||
// 清除缓存
|
||||
clear_cache(){
|
||||
let that = this;
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: '确定清空缓存',
|
||||
success: function (res) {
|
||||
if (res.confirm) {
|
||||
that.do_clear_cache()
|
||||
} else if (res.cancel) {
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
do_clear_cache(){
|
||||
try {
|
||||
const value = uni.getStorageSync('isAuthentication');
|
||||
|
||||
if (value) {
|
||||
let that = this
|
||||
uni.clearStorage({
|
||||
success: function (res) {
|
||||
uni.setStorageSync('isAuthentication', value);
|
||||
that.get_cache()
|
||||
}
|
||||
});
|
||||
}
|
||||
} catch (e) {
|
||||
|
||||
}
|
||||
},
|
||||
// 获取缓存
|
||||
get_cache(){
|
||||
let that = this
|
||||
uni.getStorageInfo({
|
||||
success: function (res) {
|
||||
if(res.currentSize >= 1024 && res.currentSize/1024 < 1024){
|
||||
that.currentSize = res.currentSize/1024
|
||||
that.currentSizeText = 'M'
|
||||
}
|
||||
if(res.currentSize/1024 >= 1024){
|
||||
that.currentSize = res.currentSize/1024/1024
|
||||
that.currentSizeText = 'G'
|
||||
}
|
||||
if(res.currentSize < 1024 && res.currentSize > 3){
|
||||
that.currentSize = res.currentSize
|
||||
that.currentSizeText = 'K'
|
||||
}
|
||||
if(res.currentSize <= 3){
|
||||
that.currentSize = '0'
|
||||
that.currentSizeText = 'K'
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
// 个人信息
|
||||
to_editPassword(){
|
||||
uni.navigateTo({
|
||||
url:'change_password'
|
||||
})
|
||||
},
|
||||
phone_message(){
|
||||
permission.gotoAppSetting()
|
||||
}
|
||||
|
||||
},
|
||||
created() {
|
||||
this.get_cache()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.content {
|
||||
position: relative;
|
||||
.list{
|
||||
height: 83upx;
|
||||
}
|
||||
.esc_login{
|
||||
line-height: 82upx;
|
||||
position: absolute;
|
||||
bottom:100upx;
|
||||
left: 34upx;
|
||||
}
|
||||
}
|
||||
.cache_right{
|
||||
margin-right: 60upx;
|
||||
}
|
||||
</style>
|
||||
312
金壶/appV1/pages/my/user-path-add.vue
Normal file
312
金壶/appV1/pages/my/user-path-add.vue
Normal file
@@ -0,0 +1,312 @@
|
||||
<template>
|
||||
<!-- 新增地址 -->
|
||||
<view class="content w-100 h-100">
|
||||
<HeaderTop page_title='新增地址'></HeaderTop>
|
||||
<view class="p-2 border-bottom d-flex a-center bg-white">
|
||||
<view class="font-md text-secondary mr-1 flex-shrink text-dark">
|
||||
收货人:</view>
|
||||
<input class="px-1 font-md flex-1" type="text" v-model="form.consignee" />
|
||||
</view>
|
||||
<view class="p-2 d-flex a-center bg-white border-bottom">
|
||||
<view class="font-md text-secondary mr-1 flex-shrink text-dark ">
|
||||
手机号码:</view>
|
||||
<input class="px-1 font-md flex-1" type="number" v-model="form.tel" />
|
||||
</view>
|
||||
<view class="p-2 d-flex a-center bg-white border-bottom" @click="chooseAera()">
|
||||
<view class="font-md text-secondary mr-1 flex-shrink text-dark">
|
||||
请选择:{{all_area}}</view>
|
||||
</view>
|
||||
<view class="p-2 d-flex a-center bg-white border-bottom">
|
||||
<view class="font-md text-secondary mr-1 flex-shrink text-dark">
|
||||
详细地址:</view>
|
||||
<input class="px-1 font-md flex-1" type="text" v-model="form.address" />
|
||||
</view>
|
||||
|
||||
|
||||
<view class="p-2 d-flex a-center bg-white">
|
||||
<view class="font-md text-secondary mr-1 flex-shrink text-dark">
|
||||
设为默认地址:</view>
|
||||
<switch class="ml-auto" @change="switch2Change" />
|
||||
</view>
|
||||
<text class="pt-0 p-2 d-flex a-center bg-white text-danger">
|
||||
每次下单默认推荐使用该地址</text>
|
||||
|
||||
|
||||
<view class="x_public_box x-text-white x-bg-159 margin-shu20 editBtn w-90" style="line-height: 80upx;" @click="submit()">
|
||||
确认
|
||||
</view>
|
||||
|
||||
<!-- 选择地区遮挡层 -->
|
||||
<view class="region w-100 h-100 " v-if='show_Aera==true'>
|
||||
<view class="region_box w-100 padding-30">
|
||||
<view class="d-flex j-sb region_top">
|
||||
<view @click="cancel()">取消</view>
|
||||
<view @click="sure()">确定</view>
|
||||
</view>
|
||||
<view class="region_list d-flex j-sb">
|
||||
<view class="region_item">
|
||||
<view v-for='(item,index) of sheng' :key='index' @click="choose_sheng(index)" :class="{active:sheng_index==index}">{{item.area_name}}</view>
|
||||
</view>
|
||||
<view class="region_item">
|
||||
<view v-for='(item,index) of shi_arr' :key='index' @click="choose_shi(index)" :class="{active:shi_index==index}">{{item.area_name}}</view>
|
||||
</view>
|
||||
<view class="region_item">
|
||||
<view v-for='(item,index) of qu_arr' :key='index' @click="choose_qu(index)" :class="{active:qu_index==index}">{{item.area_name}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
mapActions
|
||||
} from "vuex"
|
||||
import verification from '../../common/verification.js' //正则验证
|
||||
import shippingAddress from '../../utils/models/shop.js'
|
||||
export default {
|
||||
|
||||
data() {
|
||||
return {
|
||||
all_area: '',
|
||||
sheng: [],
|
||||
shi: [],
|
||||
shi_arr: [],
|
||||
qu: [],
|
||||
qu_arr: [],
|
||||
sheng_index: 0,
|
||||
shi_index: 0,
|
||||
qu_index: 0,
|
||||
is_show: false,
|
||||
is_checked: false,
|
||||
// 测试修改id,区县id
|
||||
|
||||
addAddress_id: '', //新增时传入默认地址
|
||||
address_item: '', // 传参地址对象
|
||||
area_id: '',
|
||||
xian_id: '',
|
||||
is_id: '',
|
||||
|
||||
isedit: true,
|
||||
themeColor: '#007AFF',
|
||||
pickerValue: [0, 0, 1],
|
||||
index: -1,
|
||||
show_Aera: false,
|
||||
form: {
|
||||
address: '',
|
||||
id: '',
|
||||
consignee: '',
|
||||
tel: '',
|
||||
}
|
||||
}
|
||||
},
|
||||
onLoad(option) {
|
||||
|
||||
},
|
||||
mounted() {
|
||||
|
||||
},
|
||||
methods: {
|
||||
|
||||
// 是否选择默认
|
||||
switch2Change(e) {
|
||||
this.is_checked = e.target.value
|
||||
|
||||
},
|
||||
// 选择县、区
|
||||
choose_qu(index) {
|
||||
this.qu_index = index
|
||||
this.xian_id = this.qu_arr[index].id
|
||||
},
|
||||
// 选择市
|
||||
choose_shi(index) {
|
||||
this.shi_index = index
|
||||
this.qu_arr = [];
|
||||
this.qu.forEach(item => {
|
||||
if (this.shi_arr[this.shi_index].id == item.parent_area_id) {
|
||||
this.qu_arr.push(item)
|
||||
}
|
||||
})
|
||||
},
|
||||
// 选择省
|
||||
choose_sheng(index) {
|
||||
this.sheng_index = index
|
||||
this.shi_arr = [];
|
||||
this.shi.forEach(item => {
|
||||
if (item.parent_area_id == this.sheng[index].id) {
|
||||
this.shi_arr.push(item)
|
||||
|
||||
}
|
||||
})
|
||||
},
|
||||
//选择地区
|
||||
chooseAera() {
|
||||
this.show_Aera = !this.show_Aera
|
||||
this.chooseAeraList()
|
||||
},
|
||||
// 新增地址
|
||||
sure() {
|
||||
this.show_Aera = false
|
||||
if (this.sheng[this.sheng_index].area_name == '' || this.shi_arr[this.shi_index].area_name == '' || this.qu_arr[
|
||||
this.qu_index].area_name == '') {
|
||||
uni.showToast({
|
||||
title: '请选择所在地区'
|
||||
});
|
||||
} else {
|
||||
this.area_id = this.qu_arr[this.qu_index].id
|
||||
|
||||
this.all_area = this.sheng[this.sheng_index].area_name + '-' + this.shi_arr[this.shi_index].area_name + '-' + this
|
||||
.qu_arr[this.qu_index].area_name
|
||||
}
|
||||
},
|
||||
// 取消
|
||||
cancel() {
|
||||
this.show_Aera = false
|
||||
},
|
||||
//地区列表
|
||||
async chooseAeraList() {
|
||||
let res = await shippingAddress.shippingAddress();
|
||||
this.handleError(res, res => {
|
||||
for (let i in res.data) {
|
||||
var item = res.data[i]
|
||||
if (item.id && !item.parent_area_id && !item.grand_pa_id) {
|
||||
this.sheng.push(item)
|
||||
}
|
||||
if (item.id && item.parent_area_id && !item.grand_pa_id) {
|
||||
this.shi.push(item)
|
||||
}
|
||||
if (item.id && item.parent_area_id && item.grand_pa_id) {
|
||||
this.qu.push(item)
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
// 提交
|
||||
// 增加地址数据
|
||||
async submit() {
|
||||
if(this.form.tel=='' || this.form.consignee=='' || this.all_area=='' || this.form.address==''){
|
||||
uni.showToast({
|
||||
title: '请完善信息',
|
||||
duration: 2000,
|
||||
icon: 'none'
|
||||
});
|
||||
return
|
||||
}
|
||||
verification.isPhone(this.form.tel); // 手机号格式验证
|
||||
if (verification.isPhone.prototype.the_isPhone !== true) {
|
||||
uni.showToast({
|
||||
title: '请输入正确的手机号',
|
||||
duration: 2000,
|
||||
icon: 'none'
|
||||
});
|
||||
return
|
||||
}
|
||||
let res = await shippingAddress.makeChangeAddress(
|
||||
this.area_id, //区县id
|
||||
this.form.address,
|
||||
this.form.id, //id地址id
|
||||
this.form.consignee,
|
||||
this.form.tel
|
||||
);
|
||||
|
||||
this.is_id = res.data.data.id
|
||||
if (this.is_checked == true) {
|
||||
this.is_defaultAddress()
|
||||
}
|
||||
|
||||
this.handleError(res, res => {
|
||||
uni.showToast({
|
||||
title: res.message,
|
||||
duration: 2000,
|
||||
icon: 'none'
|
||||
});
|
||||
setTimeout(function() {
|
||||
uni.redirectTo({
|
||||
url: './user-path-list'
|
||||
})
|
||||
}, 500);
|
||||
})
|
||||
},
|
||||
// defaultAddress
|
||||
async is_defaultAddress() {
|
||||
let res = await shippingAddress.defaultAddress(this.is_id)
|
||||
|
||||
this.handleError(res, res => {
|
||||
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
page {
|
||||
background: #F7F7F7;
|
||||
}
|
||||
|
||||
.content {
|
||||
.header {
|
||||
height: 148upx;
|
||||
font-size: 32upx;
|
||||
position: relative;
|
||||
line-height: 194upx;
|
||||
|
||||
.edit_shoppingCar {
|
||||
position: absolute;
|
||||
bottom: -48upx;
|
||||
right: 31upx;
|
||||
}
|
||||
}
|
||||
|
||||
.editBtn {
|
||||
position: absolute;
|
||||
bottom: 100upx;
|
||||
left: 34upx;
|
||||
}
|
||||
|
||||
.region {
|
||||
overflow: hidden;
|
||||
position: absolute;
|
||||
left: 0%;
|
||||
top: 0%;
|
||||
background-color: rgba(0, 0, 0, 0.2);
|
||||
|
||||
.region_box {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
background-color: #FFFFFF;
|
||||
|
||||
height: 600upx;
|
||||
|
||||
.region_top {
|
||||
line-height: 70upx;
|
||||
height: 70upx;
|
||||
}
|
||||
|
||||
.region_list {
|
||||
|
||||
line-height: 90upx;
|
||||
height: calc(100% - 70upx);
|
||||
overflow-y: auto;
|
||||
|
||||
.region_item {
|
||||
height: 100%;
|
||||
overflow-y: auto;
|
||||
color: #b2b2b2;
|
||||
width: 33.3%;
|
||||
text-align: center;
|
||||
|
||||
.active {
|
||||
color: #6E67FF;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
356
金壶/appV1/pages/my/user-path-edit.vue
Normal file
356
金壶/appV1/pages/my/user-path-edit.vue
Normal file
@@ -0,0 +1,356 @@
|
||||
<template>
|
||||
<!-- 修改地址 -->
|
||||
<view class="content w-100 h-100">
|
||||
<HeaderTop page_title='修改地址'></HeaderTop>
|
||||
<view class="p-2 border-bottom d-flex a-center bg-white">
|
||||
<view class="font-md text-secondary mr-1 flex-shrink text-dark">
|
||||
收货人:</view>
|
||||
<input class="px-1 font-md flex-1" type="text" v-model="form.consignee" />
|
||||
</view>
|
||||
<view class="p-2 d-flex a-center bg-white border-bottom">
|
||||
<view class="font-md text-secondary mr-1 flex-shrink text-dark ">
|
||||
手机号码:</view>
|
||||
<input class="px-1 font-md flex-1" type="number" v-model="form.tel" />
|
||||
</view>
|
||||
<view class="p-2 d-flex a-center bg-white border-bottom" @click="chooseAera()">
|
||||
<view class="font-md text-secondary mr-1 flex-shrink text-dark">
|
||||
请选择:{{all_area}}</view>
|
||||
</view>
|
||||
|
||||
|
||||
|
||||
<!-- <view class="p-2 border-bottom d-flex a-center bg-white">
|
||||
<view class="font-md text-secondary mr-1 flex-shrink text-dark">
|
||||
所在地区:</view>
|
||||
<input class="px-1 font-md flex-1" type="text" disabled
|
||||
@click="showMulLinkageThreePicker" placeholder="请选择所在地区"
|
||||
:value="form.path"/>
|
||||
|
||||
<mpvue-city-picker :themeColor="themeColor" ref="mpvueCityPicker" :pickerValueDefault="pickerValue" @onConfirm="onConfirm"></mpvue-city-picker>
|
||||
|
||||
</view> -->
|
||||
<view class="p-2 d-flex a-center bg-white border-bottom">
|
||||
<view class="font-md text-secondary mr-1 flex-shrink text-dark">
|
||||
详细地址:</view>
|
||||
<input class="px-1 font-md flex-1" type="text" v-model="form.address" />
|
||||
</view>
|
||||
|
||||
|
||||
<view class="p-2 d-flex a-center bg-white">
|
||||
<view class="font-md text-secondary mr-1 flex-shrink text-dark">
|
||||
设为默认地址:</view>
|
||||
<switch class="ml-auto" @change="switch2Change" :checked="is_checked" />
|
||||
</view>
|
||||
<text class="pt-0 p-2 d-flex a-center bg-white text-danger">
|
||||
每次下单默认推荐使用该地址</text>
|
||||
<view class="x_public_box x-text-white x-bg-159 margin-shu20 editBtn w-90" style="line-height: 80upx;" @click="submit()">确认</view>
|
||||
<!-- <view class="x_public_box x-text-white x-bg-159 margin-shu20" style="line-height: 80upx;" @click="del_address()">删除地址</view> -->
|
||||
|
||||
<!-- <view class="p-3">
|
||||
<view class="text-center w-100 bg-danger text-white font-md rounded py-2" hover-class="main-bg-hover-color" @click="submit">
|
||||
确认
|
||||
</view>
|
||||
<view class="text-center w-100 bg-danger text-white font-md rounded py-2 margin-shu20" hover-class="main-bg-hover-color" @click="del_address()">
|
||||
删除地址
|
||||
</view>
|
||||
</view> -->
|
||||
<!-- 选择地区遮挡层 -->
|
||||
<view class="region w-100 h-100 " v-if='show_Aera==true'>
|
||||
<view class="region_box w-100 padding-30">
|
||||
<view class="d-flex j-sb region_top">
|
||||
<view @click="cancel()">取消</view>
|
||||
<view @click="sure()">确定</view>
|
||||
</view>
|
||||
<view class="region_list d-flex j-sb">
|
||||
<view class="region_item">
|
||||
<view v-for='(item,index) of sheng' :key='index' @click="choose_sheng(index)" :class="{active:sheng_index==index}">{{item.area_name}}</view>
|
||||
</view>
|
||||
<view class="region_item">
|
||||
<view v-for='(item,index) of shi_arr' :key='index' @click="choose_shi(index)" :class="{active:shi_index==index}">{{item.area_name}}</view>
|
||||
</view>
|
||||
<view class="region_item">
|
||||
<view v-for='(item,index) of qu_arr' :key='index' @click="choose_qu(index)" :class="{active:qu_index==index}">{{item.area_name}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import {
|
||||
mapActions
|
||||
} from "vuex"
|
||||
import verification from '../../common/verification.js' //正则验证
|
||||
import shippingAddress from '../../utils/models/shop.js'
|
||||
export default {
|
||||
|
||||
data() {
|
||||
return {
|
||||
all_area:'',
|
||||
sheng: [],
|
||||
shi: [],
|
||||
shi_arr:[],
|
||||
qu: [],
|
||||
qu_arr:[],
|
||||
sheng_index :0,
|
||||
shi_index:0,
|
||||
qu_index:0,
|
||||
is_show:false,
|
||||
is_checked:false,
|
||||
// 测试修改id,区县id
|
||||
addAddress_id: '', //新增时传入默认地址
|
||||
address_item: '', // 传参地址对象
|
||||
area_id: 2,
|
||||
xian_id:'',
|
||||
|
||||
|
||||
isedit: true,
|
||||
themeColor: '#007AFF',
|
||||
pickerValue: [0, 0, 1],
|
||||
index: -1,
|
||||
show_Aera: false,
|
||||
form: ''
|
||||
}
|
||||
},
|
||||
onLoad(option) {
|
||||
|
||||
this.form = option.address_item
|
||||
if(JSON.parse(option.address_item).is_default!=0){
|
||||
this.is_checked = true
|
||||
}else{
|
||||
this.is_checked = false
|
||||
}
|
||||
|
||||
if(this.form==''){
|
||||
|
||||
}else{
|
||||
this.form = JSON.parse(this.form)
|
||||
this.all_area = this.form.area_name
|
||||
this.id = this.form.id
|
||||
}
|
||||
},
|
||||
// 监听返回
|
||||
onBackPress() {
|
||||
|
||||
},
|
||||
mounted() {
|
||||
|
||||
},
|
||||
methods: {
|
||||
...mapActions(['updatePathAction', 'createPathAction']),
|
||||
// 是否选择默认
|
||||
switch2Change(e){
|
||||
this.is_checked = e.target.value
|
||||
},
|
||||
// 删除地址
|
||||
async del_address(){
|
||||
let res = await shippingAddress.deleteAddress(this.form.id);
|
||||
this.handleError(res, res => {
|
||||
|
||||
})
|
||||
uni.showToast({
|
||||
title: res.message,
|
||||
duration: 2000,
|
||||
icon: 'none'
|
||||
});
|
||||
setTimeout(function() {
|
||||
uni.redirectTo({
|
||||
url:'./user-path-list'
|
||||
})
|
||||
}, 1000);
|
||||
},
|
||||
// id_moren
|
||||
id_moren(){
|
||||
this.is_show = !this.is_show
|
||||
},
|
||||
// 选择县、区
|
||||
choose_qu(index){
|
||||
this.qu_index = index
|
||||
this.xian_id = this.qu_arr[index].id
|
||||
},
|
||||
// 选择市
|
||||
choose_shi(index){
|
||||
this.shi_index = index
|
||||
this.qu_arr = [];
|
||||
this.qu.forEach(item=>{
|
||||
if(this.shi_arr[this.shi_index].id == item.parent_area_id){
|
||||
this.qu_arr.push(item)
|
||||
}
|
||||
})
|
||||
},
|
||||
// 选择省
|
||||
choose_sheng(index){
|
||||
this.sheng_index = index
|
||||
|
||||
this.shi_arr = [];
|
||||
this.shi.forEach(item=>{
|
||||
if(item.parent_area_id == this.sheng[index].id){
|
||||
this.shi_arr.push(item)
|
||||
// console.log(this.shi_arr,'shi')
|
||||
}
|
||||
})
|
||||
},
|
||||
//选择地区
|
||||
chooseAera() {
|
||||
this.show_Aera = !this.show_Aera
|
||||
this.chooseAeraList()
|
||||
},
|
||||
sure(){
|
||||
this.show_Aera = false
|
||||
if(this.sheng[this.sheng_index].area_name=='' || this.shi_arr[this.shi_index].area_name=='' || this.qu_arr[this.qu_index].area_name==''){
|
||||
uni.showToast({
|
||||
title: '请选择所在地区',
|
||||
duration: 2000,
|
||||
icon: 'none'
|
||||
});
|
||||
}else{
|
||||
this.all_area = this.sheng[this.sheng_index].area_name + '-' +this.shi_arr[this.shi_index].area_name + '-' + this.qu_arr[this.qu_index].area_name
|
||||
}
|
||||
},
|
||||
// 取消
|
||||
cancel(){
|
||||
this.show_Aera = false
|
||||
},
|
||||
//地区列表
|
||||
async chooseAeraList() {
|
||||
let res = await shippingAddress.shippingAddress();
|
||||
this.handleError(res, res => {
|
||||
for (let i in res.data) {
|
||||
var item = res.data[i]
|
||||
if (item.id && !item.parent_area_id && !item.grand_pa_id) {
|
||||
this.sheng.push(item)
|
||||
}
|
||||
if (item.id && item.parent_area_id && !item.grand_pa_id) {
|
||||
this.shi.push(item)
|
||||
}
|
||||
if (item.id && item.parent_area_id && item.grand_pa_id) {
|
||||
this.qu.push(item)
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
// defaultAddress 是否设置成默认地址
|
||||
async is_defaultAddress(){
|
||||
let res = await shippingAddress.defaultAddress(this.is_id)
|
||||
|
||||
this.handleError(res, res => {
|
||||
|
||||
})
|
||||
},
|
||||
// 增加地址数据
|
||||
async submit() {
|
||||
|
||||
verification.isPhone(this.form.tel); // 手机号格式验证
|
||||
if (verification.isPhone.prototype.the_isPhone !== true) {
|
||||
uni.showToast({
|
||||
title: '请输入正确的手机号',
|
||||
duration: 2000,
|
||||
icon: 'none'
|
||||
});
|
||||
return
|
||||
}
|
||||
let res = await shippingAddress.makeChangeAddress(
|
||||
this.form.area_id, //区县id
|
||||
this.form.address,
|
||||
this.form.id, //id地址id
|
||||
this.form.consignee,
|
||||
this.form.tel
|
||||
);
|
||||
this.is_id = res.data.data.id
|
||||
if(this.is_checked==true){
|
||||
this.is_defaultAddress()
|
||||
}
|
||||
setTimeout(function() {
|
||||
uni.redirectTo({
|
||||
url:'./user-path-list'
|
||||
})
|
||||
// uni.navigateTo({
|
||||
// url:'./user-path-list'
|
||||
// })
|
||||
}, 500);
|
||||
this.handleError(res, res => {
|
||||
this.addAddress_id = res.data.data.id
|
||||
})
|
||||
},
|
||||
// 三级联动确定
|
||||
onConfirm(e) {
|
||||
this.form.path = e.label
|
||||
this.pickerValue = e.value
|
||||
},
|
||||
// 显示三级联动选择
|
||||
showMulLinkageThreePicker() {
|
||||
this.$refs.mpvueCityPicker.show()
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
page {
|
||||
background: #F7F7F7;
|
||||
}
|
||||
|
||||
.content {
|
||||
.header {
|
||||
height: 148upx;
|
||||
font-size: 32upx;
|
||||
position: relative;
|
||||
line-height: 194upx;
|
||||
|
||||
.edit_shoppingCar {
|
||||
position: absolute;
|
||||
bottom: -48upx;
|
||||
right: 31upx;
|
||||
}
|
||||
}
|
||||
|
||||
.region {
|
||||
overflow: hidden;
|
||||
position: absolute;
|
||||
left: 0%;
|
||||
top: 0%;
|
||||
background-color: rgba(0, 0, 0, 0.2);
|
||||
|
||||
.region_box {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
background-color: #FFFFFF;
|
||||
|
||||
height: 600upx;
|
||||
|
||||
.region_top {
|
||||
line-height: 70upx;
|
||||
height: 70upx;
|
||||
}
|
||||
|
||||
.region_list {
|
||||
|
||||
line-height: 90upx;
|
||||
height: calc(100% - 70upx);
|
||||
overflow-y: auto;
|
||||
|
||||
.region_item {
|
||||
height: 100%;
|
||||
overflow-y: auto;
|
||||
color: #b2b2b2;
|
||||
width: 33.3%;
|
||||
text-align: center;
|
||||
.active{
|
||||
color:#6E67FF;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.editBtn{
|
||||
position: absolute;
|
||||
bottom:100upx;
|
||||
left: 34upx;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
260
金壶/appV1/pages/my/user-path-list.vue
Normal file
260
金壶/appV1/pages/my/user-path-list.vue
Normal file
@@ -0,0 +1,260 @@
|
||||
<template>
|
||||
<!-- 收货地址 -->
|
||||
<view class="w-100 h-100 all">
|
||||
<HeaderTop page_title='收货地址'></HeaderTop>
|
||||
<view class="list">
|
||||
<view class="list_item d-flex j-sb j-center a-center padding-30 border-bottom" v-for="(item,index) in dataList" :key="index" @click="chooseadd(index)">
|
||||
<!-- <radio value="" :checked="item.checked" style="width:10%;" v-if="goods_id!=''" /> -->
|
||||
<view class="items_info flex-1 padding-zy30">
|
||||
<view class="d-flex">
|
||||
<view>{{item.consignee}}</view>
|
||||
<view class='margin-zy20'>{{item.tel}}</view>
|
||||
<view class="is_choose margin-zy20" v-if='item.is_default!=0'>默认</view>
|
||||
</view>
|
||||
<view>
|
||||
{{item.address}}
|
||||
</view>
|
||||
</view>
|
||||
<!-- <view style="10%;" @click.stop="edit(index)">编辑</view> -->
|
||||
<image src="../../static/shoppingCart/edit1.png" mode="" style="height:40upx; width:40upx;margin-right: 30upx;" @click.stop="edit(index)"></image>
|
||||
</view>
|
||||
</view>
|
||||
<!-- <block v-for="(item,index) in dataList" :key="index">
|
||||
<uni-swipe-action :options="options"
|
||||
@click="bindClick($event,index)">
|
||||
<uni-list-item @click="choose(item)">
|
||||
<view class="text-secondary text-dark">
|
||||
<view class="d-flex a-center">
|
||||
<text class="text-dark mr-2 font-weight">{{item.consignee}}</text>
|
||||
{{item.tel}}
|
||||
<text class="main-text-color ml-2"
|
||||
v-if="item.isdefault">[默认]</text>
|
||||
</view>
|
||||
<view>{{item.area_name}} {{"("}}{{item.address}}{{")"}}</view>
|
||||
</view>
|
||||
</uni-list-item>
|
||||
</uni-swipe-action>
|
||||
</block> -->
|
||||
<view class="x_public_box x-text-white x-bg-159 margin-shu20 shadow addBtn w-90" style="line-height: 80upx;" @click="addPath()">新增收货地址</view>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import store from '@/store/index.js'
|
||||
import HeaderTop from '../../components/HeaderTop/HeaderTop.vue'
|
||||
import uniListItem from "@/components/uni-ui/uni-list-item/uni-list-item.vue"
|
||||
import uniSwipeAction from "@/components/uni-ui/uni-swipe-action/uni-swipe-action.vue"
|
||||
import {mapState,mapMutations} from "vuex"
|
||||
|
||||
import shippingAddress from '../../utils/models/shop.js'
|
||||
export default {
|
||||
components: {
|
||||
uniListItem,
|
||||
uniSwipeAction,
|
||||
HeaderTop
|
||||
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
address_id:'',
|
||||
goods_id:'',
|
||||
dataList:[], //数据列表
|
||||
|
||||
isChoose:false,
|
||||
options: [{
|
||||
text: '编辑',
|
||||
style: {
|
||||
backgroundColor: '#007aff'
|
||||
}
|
||||
}, {
|
||||
text: '删除',
|
||||
style: {
|
||||
backgroundColor: '#dd524d'
|
||||
}
|
||||
}],
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapState({
|
||||
list:state=>state.path.list
|
||||
}),
|
||||
},
|
||||
// // 监听导航栏按钮点击
|
||||
// onNavigationBarButtonTap(e) {
|
||||
// if(e.index === 0){
|
||||
// uni.navigateTo({
|
||||
// url: '../my/user-path-edit'
|
||||
// });
|
||||
// }
|
||||
// },
|
||||
onLoad(option) {
|
||||
if (option.type === '') {
|
||||
this.isChoose = true
|
||||
}
|
||||
if(option.goods_id){
|
||||
|
||||
this.goods_id = option.goods_id
|
||||
|
||||
}
|
||||
// 请求数据
|
||||
this.getData()
|
||||
},
|
||||
// 默认返回
|
||||
onBackPress(options) {
|
||||
if (options.from === 'backbutton') {
|
||||
uni.navigateTo({
|
||||
url: '../../pages/order/index?is_index=1',
|
||||
});
|
||||
}
|
||||
return true
|
||||
},
|
||||
methods: {
|
||||
// 编辑地址
|
||||
edit(index){
|
||||
// console.log(this.goods_id)
|
||||
uni.redirectTo({
|
||||
url:'./user-path-edit?address_item='+JSON.stringify(this.dataList[index])
|
||||
})
|
||||
console.log(JSON.stringify(this.dataList[index]));
|
||||
|
||||
// {"id":286,
|
||||
// "area_id":216,
|
||||
// "address":"aeawef",
|
||||
// "consignee":"天空",
|
||||
// "tel":"1565654848",
|
||||
// "is_default":0,
|
||||
// "area_name":"河南省 - 洛阳市 - 嵩县",
|
||||
// "short_consignee":"天空",
|
||||
// "checked":fals,
|
||||
// }
|
||||
},
|
||||
// 选择地址
|
||||
chooseadd(index){
|
||||
this.goods_id = this.$store.state.goods_id;
|
||||
if(this.goods_id ==''){
|
||||
console.log(1111)
|
||||
}else{
|
||||
this.dataList[index].checked = !this.dataList[index].checked
|
||||
uni.navigateTo({
|
||||
url:'../shoppingCart/sureOrder?goods_id='+this.goods_id+'&address='+JSON.stringify(this.dataList[index])
|
||||
})
|
||||
}
|
||||
},
|
||||
// 地址列表
|
||||
async getData(){
|
||||
let res = await shippingAddress.addressList();
|
||||
this.handleError(res, res => {
|
||||
|
||||
this.dataList = res.data.data.list
|
||||
|
||||
|
||||
this.dataList.forEach(item=>{
|
||||
|
||||
item.checked = false
|
||||
this.address_id = item.id
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
async deletelist(){
|
||||
let res = await shippingAddress.deleteAddress(this.address_id);
|
||||
this.handleError(res, res => {
|
||||
|
||||
if(res.code == 200){
|
||||
uni.showToast({
|
||||
title:'删除成功'
|
||||
})
|
||||
}else{
|
||||
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
|
||||
async bindClick(value,i) {
|
||||
let res;
|
||||
switch (value.index){
|
||||
case 0: // 修改
|
||||
let obj = JSON.stringify({
|
||||
index:i,
|
||||
item:this.address_id
|
||||
})
|
||||
setTimeout(()=> {
|
||||
uni.redirectTo({
|
||||
url: '../my/user-path-edit?data='+obj,
|
||||
});
|
||||
},50);
|
||||
break;
|
||||
case 1: // 删除
|
||||
let res = await shippingAddress.deleteAddress(this.address_id);
|
||||
this.handleError(res, res => {
|
||||
|
||||
if(res.code == 200){
|
||||
uni.showModal({
|
||||
content: '要删除该收货地址吗?',
|
||||
success(res){
|
||||
if(res.confirm){
|
||||
uni.showToast({
|
||||
title:'删除成功'
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
}else{
|
||||
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
break;
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
|
||||
// 选择收货地址
|
||||
choose(item){
|
||||
if (this.isChoose) {
|
||||
// 通知订单提交页修改收货地址
|
||||
uni.$emit('choosePath',item)
|
||||
// 关闭当前页面
|
||||
uni.navigateBack({
|
||||
delta: 1
|
||||
});
|
||||
}
|
||||
},
|
||||
// 新增地址
|
||||
addPath() {
|
||||
uni.redirectTo({
|
||||
url: '../my/user-path-add'
|
||||
});
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.is_choose{
|
||||
background-color: #EDCA4A;
|
||||
color: #FFFFFF;
|
||||
height:50upx;
|
||||
line-height: 50upx;
|
||||
padding: 0 15upx;
|
||||
font-size: 28upx;
|
||||
border-radius: 20upx;
|
||||
}
|
||||
.list{
|
||||
height:calc(100% - 300upx);
|
||||
overflow-y: auto;
|
||||
}
|
||||
.addBtn{
|
||||
position: absolute;
|
||||
bottom:0upx;
|
||||
left: 34upx;
|
||||
}
|
||||
|
||||
</style>
|
||||
390
金壶/appV1/pages/my/x_login.vue
Normal file
390
金壶/appV1/pages/my/x_login.vue
Normal file
@@ -0,0 +1,390 @@
|
||||
<template>
|
||||
<!-- 登录 页面 -->
|
||||
<view class="content h-100">
|
||||
<view class="banner">
|
||||
<!-- <image src="../../static/my/left.png" mode="" class="back" @click="goBack()"></image> -->
|
||||
<view v-if="login_flag" class="page_title text-center x-text-white" >登录</view>
|
||||
<view v-if="!login_flag" class="page_title text-center x-text-white">注册</view>
|
||||
</view>
|
||||
<view class="my_form padding-zy64">
|
||||
<view class="my_form_menu d-flex">
|
||||
<view class="menu_items" @click="chooseMenu(index)" :class="{menu_active: menu_index==index}" v-for="(item,index) of form_menu" :key='index'>{{item.name}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 登录表单 -->
|
||||
<view class="uni-common-mt my_input" v-if="menu_index==0">
|
||||
<view class="uni-form-item uni-column d-flex x_margin0auto two_input a-center">
|
||||
<image src="../../static/my/phone.png" mode="" class="w-36 h-41"></image>
|
||||
<input class="uni-input h-100 flex-1" type="text" cursor-spacing="20" focus placeholder="请输入手机号" v-model="phone"/>
|
||||
</view>
|
||||
<view class="uni-form-item uni-column d-flex x_margin0auto two_input a-center">
|
||||
<image src="../../static/my/suo.png" mode="" class="w-36 h-41"></image>
|
||||
<input class="uni-input flex-1 mima" cursor-spacing="20" :type="is_type" placeholder="请输入密码" v-model="password"/>
|
||||
<image src="../../static/my/bukan.png" mode="" class="is_seen" v-if="seen==false" @tap='change_seen()'></image>
|
||||
<image src="../../static/my/kan.png" mode="" class="is_seen1" v-if="seen==true" @tap='change_seen()'></image>
|
||||
</view>
|
||||
<button class="public_blue_btn login" @click="toLogin()">登录</button>
|
||||
<text class="forget_password" @click="forget_password()">忘记密码?</text>
|
||||
</view>
|
||||
<!-- 注册表单 -->
|
||||
<view class="uni-common-mt my_input" v-if="menu_index==1">
|
||||
<view class="uni-form-item uni-column d-flex x_margin0auto two_input a-center">
|
||||
<image src="../../static/my/phone.png" mode="" class="w-36 h-41"></image>
|
||||
<input class="uni-input h-100 flex-1" type="number" focus placeholder="请输入手机号" v-model="phone"/>
|
||||
</view>
|
||||
<view class="uni-form-item uni-column d-flex x_margin0auto two_input a-center">
|
||||
<image src="../../static/my/loginadd.png" mode="" class="w-36 h-41"></image>
|
||||
<input class="uni-input flex-1" type="number" placeholder="验证码" v-model="code" />
|
||||
<view class="get_code x-text-red x-text-font24 text-right" v-if="get_code==false" @click="getCode()">获取验证码</view>
|
||||
<view class="get_code x-text-red x-text-font24 w-50 text-right" v-else>{{count_time}}s后再次获取验证码</view>
|
||||
</view>
|
||||
<view class="uni-form-item uni-column d-flex x_margin0auto two_input a-center j-sb">
|
||||
<image src="../../static/my/suo.png" mode="" class="w-36 h-41"></image>
|
||||
<input class="uni-input flex-1" :type="is_RseenType" placeholder="请设置密码" v-model="new_password" />
|
||||
<image src="../../static/my/bukan.png" mode="" class="is_seen" v-if="Rseen==false" @tap='change_Rseen()'></image>
|
||||
<image src="../../static/my/kan.png" mode="" class="is_seen1" v-if="Rseen==true" @tap='change_Rseen()'></image>
|
||||
</view>
|
||||
<view class="uni-form-item uni-column d-flex x_margin0auto two_input a-center j-sb">
|
||||
<image src="../../static/my/suo.png" mode="" class="w-36 h-41"></image>
|
||||
<input class="uni-input flex-1" :type="is_rseenType" placeholder="确认密码" v-model="sure_password" />
|
||||
<image src="../../static/my/bukan.png" mode="" class="is_seen" v-if="rseen==false" @tap='change_rseen()'></image>
|
||||
<image src="../../static/my/kan.png" mode="" class="is_seen1" v-if="rseen==true" @tap='change_rseen()'></image>
|
||||
</view>
|
||||
<!-- <view class="uni-form-item uni-column d-flex x_margin0auto two_input a-center">
|
||||
<image src="../../static/my/phone.png" mode="" class="w-36 h-41"></image>
|
||||
<input class="uni-input h-100 flex-1" type="number" focus placeholder="客服编号(选填)" v-model="kefu_num"/>
|
||||
</view> -->
|
||||
<button class="public_blue_btn login" @click="the_register()">注册</button>
|
||||
<view class="agree d-flex">
|
||||
<view>点击“注册”即表示您已阅读并同意</view>
|
||||
<view class="x-text-red" @tap='look_Explain()'>《医点医滴会员服务协议》</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
|
||||
<script>
|
||||
import verification from '../../common/verification.js' //正则验证
|
||||
import public_function from '../../common/public_function.js' //公用方法
|
||||
import X_login from '../../utils/models/x_login.js'
|
||||
import {http_use,http_post} from '../../utils/http.js'
|
||||
import {Config} from '../../utils/config.js'
|
||||
import md5 from '../../common/ossutil/md5.min.js'
|
||||
let Base64 = require('../../common/ossutil/base64.js');
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
seen:false,
|
||||
Rseen:false,
|
||||
rseen:false,
|
||||
login_flag:true,
|
||||
is_type:'password',
|
||||
is_RseenType:'password',
|
||||
is_rseenType:'password',
|
||||
Base64:'',
|
||||
phone:'',
|
||||
password:'',
|
||||
form_menu:[{
|
||||
name:'登录',
|
||||
id:0
|
||||
},{
|
||||
name:'注册',
|
||||
id:1
|
||||
}],
|
||||
menu_index:0,
|
||||
get_code: false, //判断是否点击了“获取验证码”按钮 是:true ; 否:false
|
||||
code: '', // 验证码
|
||||
new_password: '',
|
||||
sure_password: '',
|
||||
count_time: 60,
|
||||
now_time:'',// 当前时间戳
|
||||
is_sign:'' //签名
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
||||
this.Base64 = Base64;
|
||||
|
||||
},
|
||||
methods: {
|
||||
// look_Explain
|
||||
look_Explain(){
|
||||
uni.navigateTo({
|
||||
url:'./explain'
|
||||
})
|
||||
},
|
||||
// 返回
|
||||
goBack(){
|
||||
uni.switchTab({
|
||||
url: '/pages/home/home'
|
||||
});
|
||||
},
|
||||
change_rseen(){
|
||||
this.rseen = !this.rseen
|
||||
|
||||
if(this.rseen == true){
|
||||
this.is_rseenType = 'text'
|
||||
|
||||
}else{
|
||||
this.is_rseenType = 'password'
|
||||
|
||||
}
|
||||
},
|
||||
change_Rseen(){
|
||||
this.Rseen = !this.Rseen
|
||||
|
||||
if(this.Rseen == true){
|
||||
this.is_RseenType = 'text'
|
||||
|
||||
}else{
|
||||
this.is_RseenType = 'password'
|
||||
|
||||
}
|
||||
},
|
||||
// 密码内容是否可见
|
||||
change_seen(){
|
||||
this.seen = !this.seen
|
||||
if(this.seen == true){
|
||||
this.is_type = 'text'
|
||||
|
||||
}else{
|
||||
this.is_type = 'password'
|
||||
|
||||
}
|
||||
},
|
||||
// 注册
|
||||
async the_register(){
|
||||
verification.isNull(this.phone, this.code, this.new_password, this.sure_password) // 非空验证
|
||||
if (verification.isNull.prototype.the_Null == true) {
|
||||
verification.isPhone(this.phone); // 手机号格式验证
|
||||
}
|
||||
if (verification.isPhone.prototype.the_isPhone == true) {
|
||||
verification.isSamePsd(this.new_password, this.sure_password); // 两次密码是否相同
|
||||
}
|
||||
if(this.new_password.length<6){
|
||||
uni.showToast({
|
||||
title: '请输入至少6位密码',
|
||||
duration: 2000,
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
|
||||
if (
|
||||
verification.isNull.prototype.the_Null == true &&
|
||||
verification.isPhone.prototype.the_isPhone == true &&
|
||||
verification.isSamePsd.prototype.the_isSamePsd == true &&
|
||||
this.new_password.length>=6
|
||||
) {
|
||||
|
||||
|
||||
|
||||
let res = await X_login.x_register(this.phone, this.code,this.new_password)
|
||||
if(res.code ==200){
|
||||
uni.showToast({
|
||||
title: res.message,
|
||||
duration: 2000,
|
||||
icon: 'none'
|
||||
});
|
||||
this.password = this.new_password
|
||||
|
||||
|
||||
this.toLogin();
|
||||
// setTimeout(function() {
|
||||
// this.menu_index = 0
|
||||
// }, 1000);
|
||||
}
|
||||
this.handleError(res, res => {
|
||||
|
||||
|
||||
})
|
||||
return
|
||||
uni.navigateTo({
|
||||
url: 'authentication'
|
||||
});
|
||||
}
|
||||
},
|
||||
// 获取验证码
|
||||
async getCode() {
|
||||
verification.isPhone(this.phone);
|
||||
if(verification.isPhone.prototype.the_isPhone == true){
|
||||
let res = await X_login.phonecode_app(this.phone, this.code,1)
|
||||
if(res.data.errcode==-1){
|
||||
uni.showToast({
|
||||
title: res.data.errmsg,
|
||||
duration: 2000,
|
||||
icon: 'none'
|
||||
});
|
||||
}else{
|
||||
this.get_code = !this.get_code
|
||||
this.timer();
|
||||
}
|
||||
this.handleError(res, res => {
|
||||
|
||||
})
|
||||
}
|
||||
},
|
||||
// 验证码计时器
|
||||
timer() {
|
||||
if (this.count_time > 0) {
|
||||
this.count_time--;
|
||||
this.get_code = true
|
||||
setTimeout(this.timer, 1000);
|
||||
} else {
|
||||
this.count_time = 60;
|
||||
this.get_code = false
|
||||
|
||||
}
|
||||
},
|
||||
// 选择菜单(登录或者注册)
|
||||
chooseMenu(index){
|
||||
// 解决登录 或 注册 重复点击标题切换
|
||||
if (this.menu_index != index){
|
||||
this.menu_index = index;
|
||||
this.login_flag = !this.login_flag
|
||||
}
|
||||
},
|
||||
// 登录
|
||||
async toLogin(){
|
||||
verification.isNull(this.phone, this.password) // 非空验证
|
||||
if (verification.isNull.prototype.the_Null == true) {
|
||||
verification.isUniCode(this.phone); // 判断是否出现汉字
|
||||
}
|
||||
if(this.password.length<6){
|
||||
uni.showToast({
|
||||
title: '请输入至少6位密码',
|
||||
duration: 2000,
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
|
||||
if (
|
||||
verification.isNull.prototype.the_Null == true &&
|
||||
verification.isUniCode.prototype.the_isUniCode == true &&
|
||||
this.password.length>=6
|
||||
) {
|
||||
this.now_time = (Date.parse(new Date()))/1000; //获取当前时间戳
|
||||
this.is_sign = md5('123456' + 'test' + this.phone + md5(this.password) + this.now_time) //签名
|
||||
let res = await X_login.login(this.phone, this.password,'test',this.now_time,this.is_sign)
|
||||
this.handleError(res, res => {
|
||||
uni.showToast({
|
||||
title: res.message,
|
||||
duration: 2000,
|
||||
icon: 'none'
|
||||
});
|
||||
|
||||
Config.appid = res.data.client.appid; // appid
|
||||
Config.uid = res.data.client.id; // uid
|
||||
Config.access_token = res.data.access_token; // access_token
|
||||
Config.refresh_token = res.data.refresh_token; // refresh_token
|
||||
// 使用base64把字符串加密
|
||||
Config.authentication = "USERID " + Base64.encode(Config.appid + '-' + Config.uid + '-' + Config.access_token + '-' + Config.refresh_token);
|
||||
|
||||
uni.setStorage({
|
||||
key: 'isAuthentication',
|
||||
data: Config.authentication,
|
||||
success: function () {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
setTimeout(function() {
|
||||
uni.switchTab({
|
||||
url: '../home/home'
|
||||
})
|
||||
}, 500);
|
||||
})
|
||||
}
|
||||
},
|
||||
// 忘记密码
|
||||
forget_password(){
|
||||
uni.navigateTo({
|
||||
url: 'x_reset_assword'
|
||||
});
|
||||
}
|
||||
},
|
||||
onShow() {
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.content {
|
||||
.banner{
|
||||
height:404upx;
|
||||
padding-top:60upx;
|
||||
position: relative;
|
||||
background-image: url(../../static/my/login.png);
|
||||
background-position: 100% 100%;
|
||||
background-size: cover;
|
||||
border:none;
|
||||
outline: none;
|
||||
.page_title{
|
||||
font-size: 32upx;
|
||||
}
|
||||
.back{
|
||||
position: absolute;
|
||||
top:100upx;
|
||||
left:33upx;
|
||||
height:31upx;
|
||||
width:19upx;
|
||||
}
|
||||
}
|
||||
.login{
|
||||
margin-top:60upx;
|
||||
}
|
||||
.my_form{
|
||||
.my_form_menu{
|
||||
.menu_items{
|
||||
margin-right:44upx;
|
||||
}
|
||||
}
|
||||
.menu_active{
|
||||
color: #282828;
|
||||
font-size: 32upx;
|
||||
border-bottom:4upx solid #6B68DC;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
.my_input{
|
||||
padding:100upx 64upx;
|
||||
.two_input{
|
||||
border-bottom:1upx solid #F2F2F2;
|
||||
height:100upx;
|
||||
.uni-input{
|
||||
border:none;
|
||||
outline: none;
|
||||
padding-left:20upx;
|
||||
|
||||
}
|
||||
.is_seen{
|
||||
|
||||
height:20upx;
|
||||
width:47upx;
|
||||
}
|
||||
.is_seen1{
|
||||
|
||||
height:30upx;
|
||||
width:47upx;
|
||||
}
|
||||
}
|
||||
}
|
||||
.forget_password{
|
||||
display: inline-block;
|
||||
margin:15upx 0;
|
||||
color: #6B6AD5;
|
||||
border-bottom: 1upx solid #6B6AD5;
|
||||
}
|
||||
.agree {
|
||||
display: -webkit-box;
|
||||
overflow: hidden;
|
||||
white-space: normal !important;
|
||||
text-overflow: ellipsis;
|
||||
word-wrap: break-word;
|
||||
-webkit-line-clamp: 3;
|
||||
-webkit-box-orient: vertical
|
||||
}
|
||||
}
|
||||
</style>
|
||||
123
金壶/appV1/pages/my/x_register.vue
Normal file
123
金壶/appV1/pages/my/x_register.vue
Normal file
@@ -0,0 +1,123 @@
|
||||
<template>
|
||||
<!-- 注册 页面 -->
|
||||
<view class="content">
|
||||
<HeaderTop page_title='注cc册'></HeaderTop>
|
||||
<view class="uni-common-mt">
|
||||
<view class="uni-form-item uni-column d-flex w-526 x_margin0auto">
|
||||
<image src="../../static/1000.jpg" mode="" class="w-38 h-38"></image>
|
||||
<input class="uni-input" type="number" focus placeholder="请输入手机号" v-model="phone" />
|
||||
</view>
|
||||
<view class="uni-form-item uni-column d-flex w-526 x_margin0auto">
|
||||
<image src="../../static/1000.jpg" mode="" class="w-38 h-38"></image>
|
||||
<input class="uni-input flex-1" type="number" placeholder="验证码" v-model="code" />
|
||||
<view class="get_code x-text-red x-text-font24" v-if="get_code==false" @click="getCode()">获取验证码</view>
|
||||
<view class="get_code x-text-red x-text-font24 w-50" v-else>{{count_time}}s后再次获取验证码</view>
|
||||
</view>
|
||||
<view class="uni-form-item uni-column d-flex w-526 x_margin0auto">
|
||||
<image src="../../static/1000.jpg" mode="" class="w-38 h-38"></image>
|
||||
<input class="uni-input" type="password" placeholder="请设置密码" v-model="new_password" />
|
||||
</view>
|
||||
<view class="uni-form-item uni-column d-flex w-526 x_margin0auto">
|
||||
<image src="../../static/1000.jpg" mode="" class="w-38 h-38"></image>
|
||||
<input class="uni-input" type="password" placeholder="确认密码" v-model="sure_password" />
|
||||
</view>
|
||||
</view>
|
||||
<button class="public_blue_btn sure w-90 bg-linear-gradient" @click="sure()">注册</button>
|
||||
<view class="agree">点击“注册”即表示您已阅读并同意<text class="x-text-red">《医点医滴会员服务协议》</text></view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
|
||||
<script>
|
||||
import verification from '../../common/verification.js' //正则验证
|
||||
import HeaderTop from '../../components/HeaderTop/HeaderTop.vue'
|
||||
import {http_use,http_post} from '../../utils/http.js'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
get_code: false,
|
||||
count_time: 60,
|
||||
phone: '',
|
||||
code: '',
|
||||
new_password: '',
|
||||
sure_password: '',
|
||||
}
|
||||
},
|
||||
comments:{
|
||||
HeaderTop
|
||||
},
|
||||
methods: {
|
||||
// 获取验证码
|
||||
getCode() {
|
||||
this.get_code = !this.get_code
|
||||
this.timer();
|
||||
},
|
||||
// 验证码计时器
|
||||
timer() {
|
||||
if (this.count_time > 0) {
|
||||
this.count_time--;
|
||||
this.get_code = true
|
||||
setTimeout(this.timer, 1000);
|
||||
} else {
|
||||
this.count_time = 60;
|
||||
this.get_code = false
|
||||
|
||||
}
|
||||
},
|
||||
sure() {
|
||||
verification.isNull(this.phone, this.code, this.new_password, this.sure_password) // 非空验证
|
||||
if (verification.isNull.prototype.the_Null == true) {
|
||||
verification.isPhone(this.phone); // 手机号格式验证
|
||||
}
|
||||
if (verification.isPhone.prototype.the_isPhone == true) {
|
||||
verification.isSamePsd(this.new_password, this.sure_password); // 两次密码是否相同
|
||||
}
|
||||
|
||||
if (
|
||||
verification.isNull.prototype.the_Null == true &&
|
||||
verification.isPhone.prototype.the_isPhone == true &&
|
||||
verification.isSamePsd.prototype.the_isSamePsd == true
|
||||
) {
|
||||
uni.navigateTo({
|
||||
url: 'authentication'
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.content {
|
||||
|
||||
|
||||
.uni-common-mt {
|
||||
|
||||
padding: 138upx 100upx 0 ;
|
||||
|
||||
.uni-form-item {
|
||||
border-bottom: 2upx solid #ECE4E4;
|
||||
padding-top: 60upx;
|
||||
|
||||
.login_icon {
|
||||
margin-right: 40upx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.sure {
|
||||
margin-top: 70upx;
|
||||
|
||||
}
|
||||
|
||||
.agree {
|
||||
display: -webkit-box;
|
||||
overflow: hidden;
|
||||
white-space: normal !important;
|
||||
text-overflow: ellipsis;
|
||||
word-wrap: break-word;
|
||||
-webkit-line-clamp: 3;
|
||||
-webkit-box-orient: vertical
|
||||
}
|
||||
}
|
||||
</style>
|
||||
190
金壶/appV1/pages/my/x_reset_assword.vue
Normal file
190
金壶/appV1/pages/my/x_reset_assword.vue
Normal file
@@ -0,0 +1,190 @@
|
||||
<template>
|
||||
<!-- 重置密码 页面 -->
|
||||
<view class="content h-100">
|
||||
<view class="banner">
|
||||
<image src="../../static/my/left.png" mode="" class="back" @click="goback()"></image>
|
||||
<view class="page_title text-center x-text-white">重置密码</view>
|
||||
</view>
|
||||
<view class="uni-common-mt my_input">
|
||||
<view class="uni-form-item uni-column d-flex x_margin0auto two_input a-center">
|
||||
<image src="../../static/my/phone.png" mode="" class="w-36 h-41"></image>
|
||||
<input class="uni-input h-100 flex-1" type="number" focus placeholder="请输入手机号" v-model="phone"/>
|
||||
</view>
|
||||
<view class="uni-form-item uni-column d-flex x_margin0auto two_input a-center">
|
||||
<image src="../../static/my/loginadd.png" mode="" class="w-36 h-41"></image>
|
||||
<input class="uni-input flex-1" type="number" placeholder="验证码" v-model="code" />
|
||||
<view class="get_code x-text-red x-text-font24 text-right" v-if="get_code==false" @click="getCode()">获取验证码</view>
|
||||
<view class="get_code x-text-red x-text-font24 w-50 text-right" v-else>{{count_time}}s后再次获取验证码</view>
|
||||
</view>
|
||||
<view class="uni-form-item uni-column d-flex x_margin0auto two_input a-center">
|
||||
<image src="../../static/my/suo.png" mode="" class="w-36 h-41"></image>
|
||||
<input class="uni-input" type="password" placeholder="请设置密码" v-model="new_password" />
|
||||
</view>
|
||||
<view class="uni-form-item uni-column d-flex x_margin0auto two_input a-center">
|
||||
<image src="../../static/my/suo.png" mode="" class="w-36 h-41"></image>
|
||||
<input class="uni-input" type="password" placeholder="确认密码" v-model="sure_password" />
|
||||
</view>
|
||||
<button class="public_blue_btn login" @click="sure()">确认修改</button>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import X_login from '../../utils/models/x_login.js'
|
||||
import verification from '../../common/verification.js' //正则验证
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
get_code: false,
|
||||
count_time: 60,
|
||||
phone: '',
|
||||
code: '',
|
||||
new_password: '',
|
||||
sure_password: '',
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 获取验证码
|
||||
async getCode() {
|
||||
verification.isPhone(this.phone);
|
||||
if(verification.isPhone.prototype.the_isPhone == true){
|
||||
|
||||
let res = await X_login.phonecode_app(this.phone,this.code,2)
|
||||
|
||||
if(res.data.errcode==-14){
|
||||
uni.showToast({
|
||||
title: res.data.errmsg,
|
||||
duration: 2000,
|
||||
icon: 'none'
|
||||
});
|
||||
return
|
||||
}
|
||||
this.get_code = !this.get_code
|
||||
this.timer();
|
||||
this.handleError(res, res => {
|
||||
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
goback(){
|
||||
uni.navigateBack(1)
|
||||
},
|
||||
// getCode() {
|
||||
// this.get_code = !this.get_code
|
||||
// this.timer();
|
||||
// },
|
||||
// 验证码计时器
|
||||
timer() {
|
||||
if (this.count_time > 0) {
|
||||
this.count_time--;
|
||||
this.get_code = true
|
||||
setTimeout(this.timer, 1000);
|
||||
} else {
|
||||
this.count_time = 60;
|
||||
this.get_code = false
|
||||
|
||||
}
|
||||
},
|
||||
// 确认修改
|
||||
async sure() {
|
||||
verification.isNull(this.phone, this.code, this.new_password, this.sure_password) // 非空验证
|
||||
if (verification.isNull.prototype.the_Null == true) {
|
||||
verification.isPhone(this.phone); // 手机号格式验证
|
||||
}
|
||||
if (verification.isPhone.prototype.the_isPhone == true) {
|
||||
verification.isSamePsd(this.new_password, this.sure_password); // 两次密码是否相同
|
||||
}
|
||||
|
||||
if (
|
||||
verification.isNull.prototype.the_Null == true &&
|
||||
verification.isPhone.prototype.the_isPhone == true &&
|
||||
verification.isSamePsd.prototype.the_isSamePsd == true
|
||||
) {
|
||||
let res = await X_login.forgetPassword_app(this.phone, this.code,this.new_password)
|
||||
this.handleError(res, res => {
|
||||
|
||||
uni.navigateTo({
|
||||
url: 'x_login'
|
||||
});
|
||||
})
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.content {
|
||||
.banner{
|
||||
height:404upx;
|
||||
padding-top:60upx;
|
||||
position: relative;
|
||||
background-image: url(../../static/my/login.png);
|
||||
background-position: 100% 100%;
|
||||
background-size: cover;
|
||||
.page_title{
|
||||
// line-height: 118upx;
|
||||
font-size: 32upx;
|
||||
}
|
||||
.back{
|
||||
position: absolute;
|
||||
top:100upx;
|
||||
left:33upx;
|
||||
height:31upx;
|
||||
width:19upx;
|
||||
}
|
||||
}
|
||||
.login{
|
||||
margin-top:60upx;
|
||||
}
|
||||
.my_form{
|
||||
.my_form_menu{
|
||||
.menu_items{
|
||||
margin-right:44upx;
|
||||
}
|
||||
}
|
||||
.menu_active{
|
||||
color: #282828;
|
||||
font-size: 32upx;
|
||||
border-bottom:4upx solid #6B68DC;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
.my_input{
|
||||
padding:100upx 64upx;
|
||||
.two_input{
|
||||
border-bottom:1upx solid #F2F2F2;
|
||||
height:100upx;
|
||||
}
|
||||
}
|
||||
.forget_password{
|
||||
display: inline-block;
|
||||
margin:15upx 0;
|
||||
color: #6B6AD5;
|
||||
border-bottom: 1upx solid #6B6AD5;
|
||||
}
|
||||
.agree {
|
||||
display: -webkit-box;
|
||||
overflow: hidden;
|
||||
white-space: normal !important;
|
||||
text-overflow: ellipsis;
|
||||
word-wrap: break-word;
|
||||
-webkit-line-clamp: 3;
|
||||
-webkit-box-orient: vertical
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user