mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 02:08:43 +08:00 
			
		
		
		
	会员地址管理CRUD
This commit is contained in:
		| @@ -1,6 +1,8 @@ | |||||||
| /* 页面公共scss */ | /* 页面公共scss */ | ||||||
| .container { | .container { | ||||||
| 	background-color: $custom-bg-color; | 	background-color: $custom-bg-color; | ||||||
|  |   margin: 0; | ||||||
|  |   padding: 0; | ||||||
| 	box-sizing: border-box; | 	box-sizing: border-box; | ||||||
| 	height: 100%; | 	height: 100%; | ||||||
| } | } | ||||||
|   | |||||||
| @@ -67,13 +67,13 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     { |     { | ||||||
|       "path": "pages/address/add", |       "path": "pages/address/create", | ||||||
|       "style": { |       "style": { | ||||||
|         "navigationBarTitleText": "新增地址" |         "navigationBarTitleText": "新增地址" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     { |     { | ||||||
|       "path": "pages/address/edit", |       "path": "pages/address/update", | ||||||
|       "style": { |       "style": { | ||||||
|         "navigationBarTitleText": "修改地址" |         "navigationBarTitleText": "修改地址" | ||||||
|       } |       } | ||||||
|   | |||||||
| @@ -1,17 +0,0 @@ | |||||||
| <template> |  | ||||||
|   <view class="container"> </view> |  | ||||||
| </template> |  | ||||||
|  |  | ||||||
| <script> |  | ||||||
| export default { |  | ||||||
|   data() { |  | ||||||
|     return { |  | ||||||
|       title: '' |  | ||||||
|     } |  | ||||||
|   }, |  | ||||||
|   onLoad() {}, |  | ||||||
|   methods: {} |  | ||||||
| } |  | ||||||
| </script> |  | ||||||
|  |  | ||||||
| <style lang="scss" scoped></style> |  | ||||||
							
								
								
									
										148
									
								
								yudao-ui-app/pages/address/create.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										148
									
								
								yudao-ui-app/pages/address/create.vue
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,148 @@ | |||||||
|  | <template> | ||||||
|  |   <view class="container"> | ||||||
|  |     <view class="address-box"> | ||||||
|  |       <u--form labelPosition="left" :model="formData" :rules="rules" ref="form"> | ||||||
|  |         <u-form-item label="收件人名称" prop="name" labelWidth="90" borderBottom ref="item-name"> | ||||||
|  |           <u-input type="text" maxlength="11" v-model="formData.name" clearable placeholder="请填写收件人名称" border="none"></u-input> | ||||||
|  |         </u-form-item> | ||||||
|  |  | ||||||
|  |         <u-form-item label="手机号" prop="mobile" labelWidth="90" borderBottom ref="item-mobile"> | ||||||
|  |           <u-input type="number" maxlength="11" v-model="formData.mobile" clearable placeholder="请填写手机号" border="none"></u-input> | ||||||
|  |         </u-form-item> | ||||||
|  |  | ||||||
|  |         <u-form-item label="省市地区" prop="areaText" labelWidth="90" borderBottom @click=" regionVisible = true; hideKeyboard()" ref="item-areaText"> | ||||||
|  |           <u--input v-model="formData.areaText" disabled disabledColor="#ffffff" placeholder="请选择省市地区" border="none"></u--input> | ||||||
|  |           <u-icon slot="right" name="arrow-right"></u-icon> | ||||||
|  |           <w-picker :visible.sync="regionVisible" mode="region" :value="defaultRegion" default-type="value" :hide-area="false" @confirm="onConfirm($event, 'region')" @cancel="onCancel" ref="region"></w-picker> | ||||||
|  |         </u-form-item> | ||||||
|  |  | ||||||
|  |         <u-form-item label="详细地址" prop="detail" labelWidth="90" borderBottom ref="item-detail"> | ||||||
|  |           <u--textarea placeholder="请输入街道门牌号不低于6个字" v-model="formData.detail" count></u--textarea> | ||||||
|  |         </u-form-item> | ||||||
|  |  | ||||||
|  |         <u-form-item label="默认地址" prop="type" labelWidth="90" borderBottom ref="item-type"> | ||||||
|  |           <u-radio-group v-model="formData.type"> | ||||||
|  |             <u-radio :customStyle="{ marginRight: '16px' }" v-for="(item, index) in typeList" :key="index" :label="item.name" :name="item.value"></u-radio> | ||||||
|  |           </u-radio-group> | ||||||
|  |         </u-form-item> | ||||||
|  |  | ||||||
|  |         <view class="btn-group"> | ||||||
|  |           <u-button type="primary" text="保存地址" customStyle="margin-top: 50px" @click="handleSubmit"></u-button> | ||||||
|  |         </view> | ||||||
|  |       </u--form> | ||||||
|  |     </view> | ||||||
|  |   </view> | ||||||
|  | </template> | ||||||
|  |  | ||||||
|  | <script> | ||||||
|  | import { createAddress } from '../../api/address' | ||||||
|  |  | ||||||
|  | export default { | ||||||
|  |   data() { | ||||||
|  |     return { | ||||||
|  |       regionVisible: false, | ||||||
|  |       defaultRegion: ['110000', '110100', '110101'], | ||||||
|  |       typeList: [ | ||||||
|  |         { | ||||||
|  |           name: '是', | ||||||
|  |           value: 1 | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           name: '否', | ||||||
|  |           value: 2 | ||||||
|  |         } | ||||||
|  |       ], | ||||||
|  |       formData: { | ||||||
|  |         name: '', | ||||||
|  |         mobile: '', | ||||||
|  |         areaText: '', | ||||||
|  |         areaCode: '', | ||||||
|  |         detail: '', | ||||||
|  |         detailAddress: '', | ||||||
|  |         type: 1 | ||||||
|  |       }, | ||||||
|  |       rules: { | ||||||
|  |         name: [ | ||||||
|  |           { | ||||||
|  |             type: 'string', | ||||||
|  |             min: 2, | ||||||
|  |             max: 12, | ||||||
|  |             required: true, | ||||||
|  |             message: '请填写收件人名称', | ||||||
|  |             trigger: ['blur', 'change'] | ||||||
|  |           }, | ||||||
|  |           { | ||||||
|  |             message: '收件人名称不能为空', | ||||||
|  |             // 触发器可以同时用blur和change | ||||||
|  |             trigger: ['change', 'blur'] | ||||||
|  |           } | ||||||
|  |         ], | ||||||
|  |         mobile: [ | ||||||
|  |           { | ||||||
|  |             type: 'integer', | ||||||
|  |             required: true, | ||||||
|  |             message: '请填写手机号', | ||||||
|  |             trigger: ['blur', 'change'] | ||||||
|  |           }, | ||||||
|  |           { | ||||||
|  |             // 自定义验证函数,见上说明 | ||||||
|  |             validator: (rule, value, callback) => { | ||||||
|  |               // 上面有说,返回true表示校验通过,返回false表示不通过 | ||||||
|  |               // uni.$u.test.mobile()就是返回true或者false的 | ||||||
|  |               return uni.$u.test.mobile(value) | ||||||
|  |             }, | ||||||
|  |             message: '手机号码不正确', | ||||||
|  |             // 触发器可以同时用blur和change | ||||||
|  |             trigger: ['change', 'blur'] | ||||||
|  |           } | ||||||
|  |         ], | ||||||
|  |         areaText: { | ||||||
|  |           type: 'string', | ||||||
|  |           required: true, | ||||||
|  |           message: '请选择省市地区', | ||||||
|  |           trigger: ['blur', 'change'] | ||||||
|  |         }, | ||||||
|  |         detailAddress: { | ||||||
|  |           type: 'string', | ||||||
|  |           min: 6, | ||||||
|  |           max: 30, | ||||||
|  |           required: true, | ||||||
|  |           message: '请填写详细地址', | ||||||
|  |           trigger: ['blur', 'change'] | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |   }, | ||||||
|  |   onLoad() {}, | ||||||
|  |   methods: { | ||||||
|  |     onConfirm(res) { | ||||||
|  |       this.formData.areaText = res.result | ||||||
|  |       this.formData.areaCode = res.value[2] | ||||||
|  |     }, | ||||||
|  |     onCancel() {}, | ||||||
|  |     hideKeyboard() { | ||||||
|  |       uni.hideKeyboard() | ||||||
|  |     }, | ||||||
|  |     handleSubmit() { | ||||||
|  |       this.$refs.form.validate().then(res => { | ||||||
|  |         this.formData.detailAddress = this.formData.areaText + this.formData.detail | ||||||
|  |         console.log(this.formData) | ||||||
|  |         createAddress(this.formData).then(res => { | ||||||
|  |           uni.$u.toast('地址已保存') | ||||||
|  |           setTimeout(() => { | ||||||
|  |             uni.navigateBack() | ||||||
|  |           }, 1000) | ||||||
|  |         }) | ||||||
|  |       }) | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | </script> | ||||||
|  |  | ||||||
|  | <style lang="scss" scoped> | ||||||
|  | .address-box { | ||||||
|  |   width: 690rpx; | ||||||
|  |   margin: 0 auto; | ||||||
|  |   padding-top: 30rpx; | ||||||
|  | } | ||||||
|  | </style> | ||||||
| @@ -1,17 +0,0 @@ | |||||||
| <template> |  | ||||||
|   <view class="container"> </view> |  | ||||||
| </template> |  | ||||||
|  |  | ||||||
| <script> |  | ||||||
| export default { |  | ||||||
|   data() { |  | ||||||
|     return { |  | ||||||
|       title: '' |  | ||||||
|     } |  | ||||||
|   }, |  | ||||||
|   onLoad() {}, |  | ||||||
|   methods: {} |  | ||||||
| } |  | ||||||
| </script> |  | ||||||
|  |  | ||||||
| <style lang="scss" scoped></style> |  | ||||||
| @@ -1,17 +1,116 @@ | |||||||
| <template> | <template> | ||||||
|   <view class="container"> </view> |   <view class="container"> | ||||||
|  |     <view class="address-list" v-for="(item, index) in addressList" :key="item.id"> | ||||||
|  |       <view class="address-item" @click="handleClick" @longpress="handleLongPress(item)"> | ||||||
|  |         <view class="left"> | ||||||
|  |           <u-avatar :text="item.name ? item.name.slice(0, 1) : 'U'" fontSize="18" randomBgColor></u-avatar> | ||||||
|  |         </view> | ||||||
|  |         <view class="middle"> | ||||||
|  |           <view class="info"> | ||||||
|  |             <view class="name">{{ item.name }}</view> | ||||||
|  |             <view class="mobile">{{ item.mobile }}</view> | ||||||
|  |             <u-tag class="type" v-if="item.type === 1" text="默认" plain size="mini" type="success"></u-tag> | ||||||
|  |           </view> | ||||||
|  |           <view class="detail"> | ||||||
|  |             <u--text :lines="2" size="14" color="#939393" :text="item.detailAddress"></u--text> | ||||||
|  |           </view> | ||||||
|  |         </view> | ||||||
|  |         <navigator class="right" :url="`/pages/address/update?addressId=${item.id}`" open-type="navigate" hover-class="none"> | ||||||
|  |           <u-icon name="edit-pen" size="28"></u-icon> | ||||||
|  |         </navigator> | ||||||
|  |       </view> | ||||||
|  |     </view> | ||||||
|  |  | ||||||
|  |     <navigator class="fixed-btn-box" url="/pages/address/create" open-type="navigate" hover-class="none"> | ||||||
|  |       <u-button type="primary" size="large" text="新增地址"></u-button> | ||||||
|  |     </navigator> | ||||||
|  |     <u-safe-bottom customStyle="background: #ffffff"></u-safe-bottom> | ||||||
|  |   </view> | ||||||
| </template> | </template> | ||||||
|  |  | ||||||
| <script> | <script> | ||||||
|  | import { getAddressList, deleteAddress } from '../../api/address' | ||||||
|  |  | ||||||
| export default { | export default { | ||||||
|   data() { |   data() { | ||||||
|     return { |     return { | ||||||
|       title: '' |       addressList: [] | ||||||
|     } |     } | ||||||
|   }, |   }, | ||||||
|   onLoad() {}, |   onLoad() {}, | ||||||
|   methods: {} |   onShow() { | ||||||
|  |     this.loadAddressListData() | ||||||
|  |   }, | ||||||
|  |   methods: { | ||||||
|  |     loadAddressListData() { | ||||||
|  |       getAddressList().then(res => { | ||||||
|  |         this.addressList = res.data | ||||||
|  |       }) | ||||||
|  |     }, | ||||||
|  |     handleLongPress(item) { | ||||||
|  |       uni.showModal({ | ||||||
|  |         title: '提示', | ||||||
|  |         content: `删除收件人[${item.name}${item.mobile}]\n地址:${item.detailAddress.slice(0, 5)}......${item.detailAddress.slice(-6)}?`, | ||||||
|  |         success: res => { | ||||||
|  |           if (res.confirm) { | ||||||
|  |             deleteAddress({ id: item.id }).then(res => { | ||||||
|  |               uni.$u.toast('地址已删除') | ||||||
|  |               this.loadAddressListData(); | ||||||
|  |             }) | ||||||
|  |           } else if (res.cancel) { | ||||||
|  |             //console.log('用户点击取消') | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |       }) | ||||||
|  |     }, | ||||||
|  |     handleClick(){ | ||||||
|  |       // TODO 提交订单时选择地址逻辑 | ||||||
|  |     } | ||||||
|  |   } | ||||||
| } | } | ||||||
| </script> | </script> | ||||||
|  |  | ||||||
| <style lang="scss" scoped></style> | <style lang="scss" scoped> | ||||||
|  | .address-list { | ||||||
|  |   .address-item { | ||||||
|  |     padding: 10rpx 0; | ||||||
|  |     border-bottom: $custom-border-style; | ||||||
|  |     @include flex-space-between; | ||||||
|  |     .left { | ||||||
|  |       margin: 20rpx; | ||||||
|  |     } | ||||||
|  |     .middle { | ||||||
|  |       flex: 1; | ||||||
|  |       margin: 20rpx; | ||||||
|  |       @include flex(column); | ||||||
|  |       .info { | ||||||
|  |         @include flex-left; | ||||||
|  |         .name { | ||||||
|  |           font-size: 30rpx; | ||||||
|  |           font-weight: 700; | ||||||
|  |         } | ||||||
|  |         .mobile { | ||||||
|  |           font-size: 28rpx; | ||||||
|  |           margin-left: 15rpx; | ||||||
|  |         } | ||||||
|  |         .type { | ||||||
|  |           margin-left: 15rpx; | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |       .detail { | ||||||
|  |         margin-top: 10rpx; | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |     .right { | ||||||
|  |       margin: 20rpx; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .fixed-btn-box { | ||||||
|  |   position: fixed; | ||||||
|  |   bottom: 0; | ||||||
|  |   left: 0; | ||||||
|  |   width: 750rpx; | ||||||
|  | } | ||||||
|  | </style> | ||||||
|   | |||||||
							
								
								
									
										178
									
								
								yudao-ui-app/pages/address/update.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										178
									
								
								yudao-ui-app/pages/address/update.vue
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,178 @@ | |||||||
|  | <template> | ||||||
|  |   <view class="container"> | ||||||
|  |     <view class="address-box"> | ||||||
|  |       <u--form labelPosition="left" :model="formData" :rules="rules" ref="form"> | ||||||
|  |         <u-form-item label="收件人名称" prop="name" labelWidth="90" borderBottom ref="item-name"> | ||||||
|  |           <u-input type="text" maxlength="11" v-model="formData.name" clearable placeholder="请填写收件人名称" border="none"></u-input> | ||||||
|  |         </u-form-item> | ||||||
|  |  | ||||||
|  |         <u-form-item label="手机号" prop="mobile" labelWidth="90" borderBottom ref="item-mobile"> | ||||||
|  |           <u-input type="number" maxlength="11" v-model="formData.mobile" clearable placeholder="请填写手机号" border="none"></u-input> | ||||||
|  |         </u-form-item> | ||||||
|  |  | ||||||
|  |         <u-form-item label="省市地区" prop="areaText" labelWidth="90" borderBottom @click=" regionVisible = true; hideKeyboard()" ref="item-areaText"> | ||||||
|  |           <u--input v-model="formData.areaText" disabled disabledColor="#ffffff" placeholder="请选择省市地区" border="none"></u--input> | ||||||
|  |           <u-icon slot="right" name="arrow-right"></u-icon> | ||||||
|  |           <w-picker :visible.sync="regionVisible" mode="region" :value="defaultRegion" default-type="value" :hide-area="false" @confirm="onConfirm($event, 'region')" @cancel="onCancel" ref="region"></w-picker> | ||||||
|  |         </u-form-item> | ||||||
|  |  | ||||||
|  |         <u-form-item label="详细地址" prop="detail" labelWidth="90" borderBottom ref="item-detail"> | ||||||
|  |           <u--textarea placeholder="请输入街道门牌号不低于6个字" v-model="formData.detail" count></u--textarea> | ||||||
|  |         </u-form-item> | ||||||
|  |  | ||||||
|  |         <u-form-item label="默认地址" prop="type" labelWidth="90" borderBottom ref="item-type"> | ||||||
|  |           <u-radio-group v-model="formData.type"> | ||||||
|  |             <u-radio :customStyle="{ marginRight: '16px' }" v-for="(item, index) in typeList" :key="index" :label="item.name" :name="item.value"></u-radio> | ||||||
|  |           </u-radio-group> | ||||||
|  |         </u-form-item> | ||||||
|  |  | ||||||
|  |         <view class="btn-group"> | ||||||
|  |           <u-button type="primary" text="更新地址" customStyle="margin-top: 50px" @click="handleSubmit"></u-button> | ||||||
|  |         </view> | ||||||
|  |       </u--form> | ||||||
|  |     </view> | ||||||
|  |   </view> | ||||||
|  | </template> | ||||||
|  |  | ||||||
|  | <script> | ||||||
|  | import { getAddressById, updateAddress } from '../../api/address' | ||||||
|  |  | ||||||
|  | export default { | ||||||
|  |   data() { | ||||||
|  |     return { | ||||||
|  |       id: '', | ||||||
|  |       regionVisible: false, | ||||||
|  |       defaultRegion: ['110000', '110100', '110101'], | ||||||
|  |       typeList: [ | ||||||
|  |         { | ||||||
|  |           name: '是', | ||||||
|  |           value: 1 | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           name: '否', | ||||||
|  |           value: 2 | ||||||
|  |         } | ||||||
|  |       ], | ||||||
|  |       formData: { | ||||||
|  |         id: '', | ||||||
|  |         name: '', | ||||||
|  |         mobile: '', | ||||||
|  |         areaText: '', | ||||||
|  |         areaCode: '', | ||||||
|  |         detail: '', | ||||||
|  |         detailAddress: '', | ||||||
|  |         type: 1 | ||||||
|  |       }, | ||||||
|  |       rules: { | ||||||
|  |         name: [ | ||||||
|  |           { | ||||||
|  |             type: 'string', | ||||||
|  |             min: 2, | ||||||
|  |             max: 12, | ||||||
|  |             required: true, | ||||||
|  |             message: '请填写收件人名称', | ||||||
|  |             trigger: ['blur', 'change'] | ||||||
|  |           }, | ||||||
|  |           { | ||||||
|  |             message: '收件人名称不能为空', | ||||||
|  |             // 触发器可以同时用blur和change | ||||||
|  |             trigger: ['change', 'blur'] | ||||||
|  |           } | ||||||
|  |         ], | ||||||
|  |         mobile: [ | ||||||
|  |           { | ||||||
|  |             type: 'integer', | ||||||
|  |             required: true, | ||||||
|  |             message: '请填写手机号', | ||||||
|  |             trigger: ['blur', 'change'] | ||||||
|  |           }, | ||||||
|  |           { | ||||||
|  |             // 自定义验证函数,见上说明 | ||||||
|  |             validator: (rule, value, callback) => { | ||||||
|  |               // 上面有说,返回true表示校验通过,返回false表示不通过 | ||||||
|  |               // uni.$u.test.mobile()就是返回true或者false的 | ||||||
|  |               return uni.$u.test.mobile(value) | ||||||
|  |             }, | ||||||
|  |             message: '手机号码不正确', | ||||||
|  |             // 触发器可以同时用blur和change | ||||||
|  |             trigger: ['change', 'blur'] | ||||||
|  |           } | ||||||
|  |         ], | ||||||
|  |         areaText: { | ||||||
|  |           type: 'string', | ||||||
|  |           required: true, | ||||||
|  |           message: '请选择省市地区', | ||||||
|  |           trigger: ['blur', 'change'] | ||||||
|  |         }, | ||||||
|  |         detailAddress: { | ||||||
|  |           type: 'string', | ||||||
|  |           min: 6, | ||||||
|  |           max: 30, | ||||||
|  |           required: true, | ||||||
|  |           message: '请填写详细地址', | ||||||
|  |           trigger: ['blur', 'change'] | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |   }, | ||||||
|  |   onLoad(e) { | ||||||
|  |     if (!e.addressId) { | ||||||
|  |       uni.$u.toast('请求参数错误') | ||||||
|  |     } else { | ||||||
|  |       this.id = e.addressId | ||||||
|  |       this.loadAddressData() | ||||||
|  |     } | ||||||
|  |   }, | ||||||
|  |   methods: { | ||||||
|  |     loadAddressData() { | ||||||
|  |       getAddressById({ id: this.id }).then(res => { | ||||||
|  |         this.formData = res.data | ||||||
|  |         this.initRegionData() | ||||||
|  |       }) | ||||||
|  |     }, | ||||||
|  |     initRegionData(){ | ||||||
|  |       //回显 【省市地区】 和 【详细地址】 信息 | ||||||
|  |       if (this.formData.areaCode) { | ||||||
|  |         const areaCode = this.formData.areaCode + '' | ||||||
|  |         //通过地区code反解析出【省-市-地区】code | ||||||
|  |         this.defaultRegion.splice(0, 3, areaCode.substring(0,2).padEnd(6, '0'), areaCode.substring(0,4).padEnd(6, '0'), areaCode) | ||||||
|  |         this.$nextTick(res => { | ||||||
|  |           let areaText = this.$refs.region._data.result.result | ||||||
|  |           this.formData.areaText = areaText | ||||||
|  |           //通过从完整详细地址除去【省-市-地区】得到后半段地址信息 | ||||||
|  |           this.formData.detail = this.formData.detailAddress.replace(areaText, '') | ||||||
|  |           this.$forceUpdate(); | ||||||
|  |         }) | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     onConfirm(res) { | ||||||
|  |       this.formData.areaText = res.result | ||||||
|  |       this.formData.areaCode = res.value[2] | ||||||
|  |     }, | ||||||
|  |     onCancel() {}, | ||||||
|  |     hideKeyboard() { | ||||||
|  |       uni.hideKeyboard() | ||||||
|  |     }, | ||||||
|  |     handleSubmit() { | ||||||
|  |       this.$refs.form.validate().then(res => { | ||||||
|  |         this.formData.detailAddress = this.formData.areaText + this.formData.detail | ||||||
|  |         console.log(this.formData) | ||||||
|  |         updateAddress(this.formData).then(res => { | ||||||
|  |           uni.$u.toast('地址已更新') | ||||||
|  |           setTimeout(() => { | ||||||
|  |             uni.navigateBack() | ||||||
|  |           }, 1000) | ||||||
|  |         }) | ||||||
|  |       }) | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | </script> | ||||||
|  |  | ||||||
|  | <style lang="scss" scoped> | ||||||
|  | .address-box { | ||||||
|  |   width: 690rpx; | ||||||
|  |   margin: 0 auto; | ||||||
|  |   padding-top: 30rpx; | ||||||
|  | } | ||||||
|  | </style> | ||||||
		Reference in New Issue
	
	Block a user
	 sfmind
					sfmind