first commit

This commit is contained in:
编码猿
2024-09-27 01:32:49 +08:00
commit 28ebe05a64
7399 changed files with 1174529 additions and 0 deletions

View File

@@ -0,0 +1 @@
d3dec3c4-94df-4ab4-ab35-254e5acb1f6f

View File

@@ -0,0 +1,204 @@
// user/address/address.js
const app = getApp();
const util = app.loadUtils("util");
const regeneratorRuntime = app.loadAsync();
const model = app.loadModel("index");
const http = app.loadHttp();
Page({
/**
* 页面的初始数据
*/
data: {
system: app.globalData.system, //设备相关信息
pageTitle: "添加地址", //头部标题
isBack: true,//显示返回
conten: "",//地址显示
name: "",//收货人姓名
tel: "",//收货人手机号
detail: "",//收货地址详情
radioItems: [
{ name: '是', value: '0', checked: 'true' },
{ name: '否', value: '1', },
],
updateAdd: "",//修改收货地址
modify: null,//0 修改地址 1 增加地址
isAdd: false,//防止表单重复提交
},
radioChange: function (e) {
var checked = e.detail.value
var changed = {}
for (var i = 0; i < this.data.radioItems.length; i++) {
if (checked.indexOf(this.data.radioItems[i].name) !== -1) {
changed['radioItems[' + i + '].checked'] = true
} else {
changed['radioItems[' + i + '].checked'] = false
}
}
this.setData(changed)
},
// 接收修改地址
async upAdd() {
let add = await model.storage.getSetting("updataAdd")
if (!!add) {
model.storage.deleteStorage('updataAdd')
let conten = {
id: add.id,
address: add.address,
address_component: {
province: add.provinceName,
city: add.cityName,
district: add.countryName
}
}
this.setData({
updateAdd: add,
conten: conten
})
}
},
// 选择地址的方法
async add() {
let data = await util.selectAdd()
let conten = this.data.conten
data.result.id = conten.id
this.setData({
conten: data.result
})
},
// 提交收货地址
async subAdd(e) {
if (this.data.isAdd) return;
let value = e.detail.value
if (value.name == "") {
model.msg.dataMsg({
content: "请输入联系人",
type: "warning"
})
return
}
if (value.tel == "") {
model.msg.dataMsg({
content: "请输入手机号",
type: "warning"
})
return
}
if (!(/^1[3456789]\d{9}$/.test(value.tel))) {
model.msg.dataMsg({
content: "请输入正确的手机号",
type: "warning"
})
return false;
}
if (this.data.conten == "") {
model.msg.dataMsg({
content: "请选择收货地址",
type: "warning"
})
return
}
if (value.detail == "") {
model.msg.dataMsg({
content: "请输入详情地址",
type: "warning"
})
return
}
let data = {
userName: value.name,
telNumber: value.tel,
address: this.data.conten.address,
provinceName: this.data.conten.address_component.province,
cityName: this.data.conten.address_component.city,
countryName: this.data.conten.address_component.district,
detail: value.detail,
is_default: 0
}
// 判断是否选中默认
if (this.data.radioItems[0].checked) {
data.is_default = 1
}
// 修改地址需要地址id
if (this.data.modify == 0) {
data.id = this.data.conten.id
}
this.setData({
isAdd: true
})
// 判断是否是修改地址
let url = this.data.modify == 0 ? `${http.api.editUserAddress}` : `${http.api.userAddress}`
let res = await http.http.request2({ url: url, method: "POST", data: data })
if (res.data.status == 1) {
model.msg.dataMsg({
content: res.data.msg,
type: "success"
})
// 成功1s后返回上一页
setTimeout(() => {
wx.navigateBack({
})
}, 1000)
}
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.setData({
modify: options.modify
})
this.upAdd()
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

View File

@@ -0,0 +1,4 @@
{
"navigationBarTextStyle": "black",
"usingComponents": {}
}

View File

@@ -0,0 +1,59 @@
<!-- 头部 -->
<nav-bar isBack="{{isBack}}" pageTitle="{{pageTitle}}" system="{{system}}"></nav-bar>
<!-- user/address/address.wxml -->
<view class="address">
<form bindsubmit="subAdd">
<view class="list_text pd30 mt20">
<view class="text_row">
<view class="text_row1 flex-con2">联系人</view>
<view class="text_row2 flex-con2">
<input placeholder-style="color:#cccccc;" name="name" type="text" value="{{!!updateAdd.userName ? updateAdd.userName : ''}}" placeholder="{{ !!updateAdd.userName ? updateAdd.userName : '请输入姓名'}}" />
</view>
<view class="text_row3 flex-con3"></view>
</view>
<view class="text_row">
<view class="text_row1 flex-con2">电话</view>
<view class="text_row2 flex-con2">
<input placeholder-style="color:#cccccc;" name="tel" type="number" value="{{!!updateAdd.telNumber ? updateAdd.telNumber : ''}}" placeholder="{{ !!updateAdd.telNumber ? updateAdd.telNumber : '请输入手机号'}}" />
</view>
<view class="text_row3 flex-con3"></view>
</view>
<view class="text_row">
<view class="text_row1 flex-con2">位置</view>
<view class="text_row2 flex-con2" bind:tap="add">
<span>{{conten.address ||'请选择您的位置'}}</span>
</view>
<view class="text_row3 flex-con3" bind:tap="add">
<image src="/static/img/icon/rthyrthertherth.png" />
</view>
</view>
<view class="text_row">
<view class="text_row1 flex-con2">详情地址</view>
<view class="text_row2 flex-con2">
<input placeholder-style="color:#cccccc;" name="detail" type="text" value="{{!!updateAdd.detail ? updateAdd.detail : ''}}" placeholder="{{ !!updateAdd.detail ? updateAdd.detail : '小区/大厦/楼层门号'}}" />
</view>
<view class="text_row3 flex-con3"></view>
</view>
<view class="text_row">
<view class="text_row1 flex-con2">默认地址</view>
<view class="text_row2 flex-con2">
<radio-group class="group flex-con2 flex1" bindchange="radioChange">
<view class="label-2 flex1" wx:for="{{radioItems}}" wx:key="{{ index }}">
<label class="label-2__text" for="{{item.name}}">
<radio id="{{item.name}}" hidden value="{{item.name}}" checked="{{item.checked}}"></radio>
<view class="label-2__icon">
<view class="label-2__icon-checked" style="opacity:{{item.checked ? 1: 0}}"></view>
</view>
<text>{{item.name}}</text>
</label>
</view>
</radio-group>
</view>
<view class="text_row3 flex-con3"></view>
</view>
</view>
<button class="sub" form-type="submit">保存</button>
</form>
</view>
<!-- toasta提示 -->
<i-toast id="toast" />

View File

@@ -0,0 +1,111 @@
/* user/address/address.wxss */
.list_text {
background-color: #fff;
}
.text_row {
display: flex;
height: 100rpx;
width: 100%;
border-bottom: 2rpx solid #ebebeb;
}
.text_row1 {
flex: 2;
font-size: 32rpx;
font-weight: 700;
font-stretch: normal;
letter-spacing: 0px;
color: #333;
}
.text_row2 {
padding-left: 40rpx;
flex: 7;
font-size: 32rpx;
font-weight: normal;
font-stretch: normal;
letter-spacing: 0px;
color: #666;
}
.text_row2 span {
font-family: PingFang-SC-Medium;
font-size: 32rpx;
font-weight: normal;
font-stretch: normal;
letter-spacing: 0px;
color: #ccc;
display: -webkit-box !important;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
}
.text_row3 {
flex: 1;
}
.text_row3 image {
width: 15rpx;
height: 33rpx;
}
.text_row:last-child {
border: 0;
}
.label-1__text, .label-2__text {
display: inline-block;
vertical-align: middle;
height: 100%;
width: 50%;
}
.label-1__icon {
position: relative;
margin-right: 10px;
display: inline-block;
vertical-align: middle;
width: 18px;
height: 18px;
background: #fcfff4;
}
.label-1__icon-checked {
position: absolute;
top: 3px;
left: 3px;
width: 12px;
height: 12px;
background: #1aad19;
}
.label-2__icon {
position: relative;
display: inline-block;
vertical-align: middle;
margin-right: 10px;
width: 18px;
height: 18px;
border: #ebebeb solid 2rpx;
background: #fff;
border-radius: 50px;
}
.label-2__icon-checked {
position: absolute;
left: 50%;
top: 50%;
margin: -6px 0 0 -6px;
width: 12px;
height: 12px;
background: #1aad19;
border-radius: 50%;
}
.label-4_text {
text-align: center;
margin-top: 15px;
}