作者:HenryJuliju | 来源:互联网 | 2023-09-18 17:28
uniapp 学习笔记三十四 加载用户地址列表和默认地址的在线数据修改
uniapp 学习笔记三十四 加载用户地址列表和默认地址的在线数据修改
order.vue
{{orderAddress.username}},{{orderAddress.phone}}{{orderAddress.city}}{{orderAddress.region}}{{orderAddress.detail}} 请选择地址 配送时间 选择配送日期 选择配送时间 {item.name}} -->蛋糕 Fraction {item.list[item.idx].price}} --> {item.list[item.idx].spec}} -->X {item.num}} -->总计199 立即支付
address.vue
默 {{item.username}},{{item.phone}}{{item.city}}{{item.region}}{{item.detail}} 默认地址 设为默认 删除地址 新增地址
address.js
import {$post,$get} from '@/utils/request.js' export default{namespaced:true,state(){return{checkedIdx:-1, //记录用户勾选的地址addressList:[/* {username:'曹国舅',phone:'13010101010',city:'北京',region:'朝阳区',detail:'朝阳路周家井',isdefault:true},{username:'何仙姑',phone:'13010101010',city:'北京',region:'海淀区',detail:'中关村二街',isdefault:false},{username:'吕洞宾',phone:'13010101010',city:'北京',region:'门头沟',detail:'黑山大街',isdefault:false} */]}},getters:{orderAddress(state){ // 订单中的地址// 根据 checkedIdx 与 isdefault 共同得到一个地址对象let {checkedIdx,addressList} = stateif (checkedIdx!=-1) {return addressList[checkedIdx]}let len = addressList.lengthfor(let i=0;i{if(i==idx){item.isdefault = true}else{item.isdefault = false}})},addressCheckMut(state,idx){//选取地址state.checkedIdx = idx//点选返回uni.navigateBack({delta:1})},addressAddMut(state,addressObj){//新增地址state.addressList.push(addressObj)},addressInitMut(state,addressArr){//初始化地址列表state.addressList = addressArr}},actions:{addressAddAct(context,addressObj){$post('/1.1/classes/address',addressObj).then(({objectId})=>{// console.log(res);context.commit('addressAddMut',{...addressObj,objectId})uni.navigateBack({delta:1})})},addressInitAct(context,userid){let url = `/1.1/classes/address?where={"userid":"${userid}"}`$get(url).then(({results})=>{// console.log(url,res);context.commit('addressInitMut',results)})}} }
APP.vue
user.js
import {$post} from '../utils/request.js' export default {namespaced:true, //开启命名空间后,访问所有属性都需要带模块名state(){return {userInfo:null}},mutations:{initInfo(state,info){// 存入状态机变量state.userInfo = info}},actions:{userLoginAct(context,info){$post('/1.1/login',info).then(res=>{console.log('PostUser:',res)let {code} = resif (code) {let title = code == 211 ? '账号不存在' : '密码错误'uni.showToast({title,icon:'none'})return}context.commit('initInfo',res)// 存入本地存储uni.setStorage({key:'userInfo',data:res})// 返回上一页uni.navigateBack({delta:1})})}} }
address-detail.vue
{{regiOnIdx==-1?'请选择区域':regionArr[regionIdx]}}
确定