Files
xo_user_client/pages/user-address-save/user-address-save.vue
2025-04-25 09:49:53 +08:00

862 lines
45 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<view :class="theme_view">
<view v-if="data_list_loding_status === 3">
<form @submit="form_submit" class="form-container">
<view class="padding-main oh">
<view class="border-radius-main bg-white spacing-mb oh">
<view class="form-gorup">
<view class="flex-row jc-sb align-c br-b-f5 padding-bottom-sm">
<view class="form-gorup-title">{{$t('user-address-save.user-address-save.5yhgps')}}<text class="form-group-tips-must">*</text></view>
<input type="text" name="name" :value="address_data.name || ''" maxlength="16" placeholder-class="cr-grey-9" class="cr-base flex-1 flex-width" :placeholder="$t('user-address-save.user-address-save.wii4sp')" />
</view>
<view class="flex-row jc-sb align-c padding-top-sm">
<view class="form-gorup-title">{{$t('promotion-user.promotion-user.62c8m1')}}<text class="form-group-tips-must">*</text></view>
<input type="text" name="tel" :value="address_data.tel || ''" maxlength="30" placeholder-class="cr-grey-9" class="cr-base flex-1 flex-width" :placeholder="$t('user-address-save.user-address-save.65507o')" />
</view>
</view>
</view>
<view class="border-radius-main bg-white spacing-mb oh">
<view class="form-gorup">
<view class="flex-row jc-sb br-b-f5 padding-vertical-sm pr">
<view class="form-gorup-title">
<text>{{$t('user-address-save.user-address-save.h8f148')}}</text>
<text class="form-group-tips-must">*</text>
</view>
<view class="flex-1 flex-width flex-col">
<view v-if="home_user_address_map_status == 1" @tap="choose_user_location_event" class="flex-row jc-sb align-c">
<view v-if="home_user_address_map_status == 1" class="cr-main" @tap="choose_user_location_event">{{$t('user-address-save.user-address-save.13rpdw')}}</view>
<iconfont name="icon-xzdz-dingwei" size="28rpx"></iconfont>
</view>
<block v-if="is_user_address_forbid_choice_region == 0">
<view class="flex-row align-c" :class="home_user_address_map_status == 1 ? 'br-t-dashed padding-top-sm margin-top-sm' : ''">
<view class="flex-1 flex-width">
<view @tap="open_ragion" class="single-text">
<text v-if="province_name"> {{ province_name }}{{ city_name ? '-' + city_name : '' }}{{ county_name ? '-' + county_name : '' }} </text>
<text v-else class="cr-grey-9">{{$t('extraction-apply.extraction-apply.cy87k6')}}</text>
</view>
<component-region-picker :propProvinceId="province_id" :propCityId="city_id" :propCountyId="county_id" :propShow="region_picker_show" @onclose="close_event" @call-back="region_event"></component-region-picker>
</view>
<view class="code-search oh pr">
<input type="text" :value="address_data.address_last_code || ''" maxlength="30" placeholder-class="cr-grey-9" class="code-input cr-base dis-inline-block bg-base text-size-xs padding-left-sm va-m" :placeholder="$t('user-address-save.user-address-save.he685s')" @input="region_code_value_event" />
<button type="default" size="mini" class="btn bg-black br-black cr-white text-size-xs pa" @tap="region_code_event" :disabled="form_submit_disabled_status">{{$t('user-address-save.user-address-save.mb7cjx')}}</button>
</view>
</view>
</block>
<block v-else>
<view v-if="(address_data.province_name || null) != null" :class="home_user_address_map_status == 1 ? 'br-t-dashed padding-top-sm margin-top-sm' : ''">
{{ address_data.province_name }}{{ (address_data.city_name || null) === null ? '' : '-' + address_data.city_name }}{{ (address_data.county_name || null) === null ? '' : '-' + address_data.county_name }}
</view>
</block>
</view>
</view>
<view class="flex-row jc-sb align-c br-b-f5 padding-vertical-sm">
<view class="form-gorup-title">{{$t('user-address-save.user-address-save.4rc269')}}<text class="form-group-tips-must">*</text></view>
<view class="flex-1 flex-width">
<input type="text" name="address" :value="address_data.address || ''" maxlength="80" placeholder-class="cr-grey-9" :class="'cr-base bs-bb ' + (home_user_address_map_status == 1 ? 'address-value' : '')" :placeholder="$t('user-address-save.user-address-save.vdkv32')" />
</view>
</view>
<!-- 智能识别 -->
<view v-if="is_user_address_discern == 1" class="pr padding-top-sm">
<view class="intelligent-identification oh" :style="identfication_show ? 'height:254rpx;' : 'height:0;'">
<view class="bg-base border-radius-main padding-main oh">
<textarea @input="address_discern_value_event" :value="address_discern_value" class="margin-0" :placeholder="$t('user-address-save.user-address-save.b32r6v')" placeholder-class="cr-grey" />
<view class="padding-top-sm tr" :class="identfication_show ? '' : 'dis-none'">
<button type="default" size="mini" class="btn round cr-base text-size-xs margin-right-sm padding-0 tc" @tap="clear_discern_submit_event">{{$t('goods-search.goods-search.pxk051')}}</button>
<button type="default" size="mini" class="btn round bg-main cr-white text-size-xs padding-0 tc" @tap="address_discern_submit_event">{{$t('user-address-save.user-address-save.s3o1p5')}}</button>
</view>
</view>
</view>
<view class="tc padding-top-main" @tap="identfication_change">
<text class="padding-right-sm">{{$t('user-address-save.user-address-save.42l857')}}</text>
<iconfont :name="identfication_show ? 'icon-arrow-top' : 'icon-arrow-bottom'" size="28rpx" color="#666"></iconfont>
</view>
</view>
</view>
</view>
<view class="border-radius-main bg-white spacing-mb oh">
<view class="form-gorup">
<view class="flex-row br-b-f5 padding-top-sm padding-bottom-main">
<view class="form-gorup-title padding-top-sm alias-title">{{$t('user-address-save.user-address-save.231435')}}</view>
<view class="flex-1 flex-width">
<view class="flex-row">
<view v-for="(item, index) in alias_list" :key="index" class="alias-btn" :class="item === (address_data.alias || null) ? 'bg-main cr-white br-main' : 'bg-white cr-black br-grey-d'" :data-value="item" @tap="alias_change">{{ item }}</view>
</view>
<view class="padding-top-lg label-edit-right">
<view v-if="alias_eidt_bool" class="flex-row align-c alias-add pr">
<input type="text" v-model="alias_eidt_text" maxlength="16" placeholder-class="cr-grey-9" class="input-alias cr-base dis-inline-block bg-base text-size-xs padding-left-sm va-m" :placeholder="$t('user-address-save.user-address-save.l6vjlm')" />
<button type="default" size="mini" class="btn round cr-white text-size-xs pa" :class="(alias_eidt_text || null) !== null ? 'br-main bg-main' : 'bg-grey br-grey'" @tap="alias_add_submit_event">{{$t('index.index.7w75zb')}}</button>
</view>
<view v-else>
<view v-if="alias_eidt_text">
<view class="flex-row align-c alias-edit">
<button type="default" size="mini" class="btn text-size-xs" :class="alias_eidt_text === (address_data.alias || '') ? 'bg-main cr-white br-main' : 'bg-white cr-black br-grey-d'" @tap="alias_checked_change">{{ alias_eidt_text }}</button>
<button type="default" size="mini" class="btn bg-main-pair cr-white br-main-pair text-size-xs" @tap="alias_edit_submit_event">{{$t('common.edit')}}</button>
</view>
</view>
<view v-else class="alias-btn bg-white cr-black br-grey-d" @tap="alias_add">
<iconfont name="icon-xzdz-tianjiabiaoq" size="28rpx"></iconfont>
</view>
</view>
<input type="hidden" name="alias" :value="address_data.alias" class="dis-none" />
</view>
</view>
</view>
<view class="flex-row jc-sb align-c padding-top-main">
<view class="form-gorup-title default-title">{{$t('user-address-save.user-address-save.g43klm')}}</view>
<switch :color="theme_color" :checked="(address_data.is_default || 0) == 1 ? true : false" @change="default_ads_change_event" />
</view>
</view>
</view>
<!-- 身份证信息 -->
<view v-if="home_user_address_idcard_status == 1" class="idcard-container border-radius-main bg-white oh">
<view class="form-gorup">
<view class="flex-row align-c br-b-f5 padding-vertical-sm">
<view class="form-gorup-title">{{$t('user-address-save.user-address-save.3w7r14')}}<text class="form-group-tips-must">*</text></view>
<input type="text" name="idcard_name" :value="address_data.idcard_name || ''" maxlength="16" placeholder-class="cr-grey-9" class="cr-base flex-1 flex-width" :placeholder="$t('user-address-save.user-address-save.c73v42')" />
</view>
<view class="flex-row align-c br-b-f5 padding-vertical-sm">
<view class="form-gorup-title">{{$t('user-address-save.user-address-save.0y1vl6')}}<text class="form-group-tips-must">*</text></view>
<input type="idcard" name="idcard_number" :value="address_data.idcard_number || ''" maxlength="18" placeholder-class="cr-grey-9" class="cr-base flex-1 flex-width" :placeholder="$t('user-address-save.user-address-save.c742c8')" />
</view>
<view class="flex-row align-c padding-vertical-sm margin-bottom-lg">
<view class="form-gorup-title">{{$t('user-address-save.user-address-save.761ek6')}}<text class="form-group-tips-must">*</text></view>
<view class="form-upload-data cr-grey-9 text-size-xs">{{$t('user-address-save.user-address-save.c811s5')}}</view>
</view>
<view class="flex-row align-c">
<view class="flex-width-half oh padding-right-main pr">
<view v-if="(idcard_images_data.idcard_front || null) != null" class="pa top-0 right-0 z-i padding-right-main" @tap="upload_delete_event" data-value="idcard_front">
<iconfont name="icon-bjdz-guanbi" size="28rpx" color="cr-grey-d"></iconfont>
</view>
<image class="image wh-auto" :src="(idcard_images_data.idcard_front || null) != null ? idcard_images_data.idcard_front : common_static_url + 'idcard-front.jpg'" data-value="idcard_front" mode="widthFix" @tap="file_upload_event"></image>
</view>
<view class="flex-width-half oh padding-left-main pr">
<view v-if="(idcard_images_data.idcard_back || null) != null" class="pa top-0 right-0 z-i" @tap="upload_delete_event" data-value="idcard_back">
<iconfont name="icon-bjdz-guanbi" size="28rpx" color="cr-grey-d"></iconfont>
</view>
<image class="image wh-auto" :src="(idcard_images_data.idcard_back || null) != null ? idcard_images_data.idcard_back : common_static_url + 'idcard-back.jpg'" data-value="idcard_back" mode="widthFix" @tap="file_upload_event"></image>
</view>
</view>
</view>
</view>
<view class="padding-vertical-main margin-top-sm spacing-mb">
<view class="bottom-line-exclude oh">
<button class="btn cr-white round text-size" type="default" form-type="submit" hover-class="none" :disabled="form_submit_disabled_status" :style="btn_bg_color">{{$t('common.save')}}</button>
<button v-if="params && (params.id || null) !== null && params.id !== '0'" class="btn round bg-white cr-main br-main spacing-mt" type="default" @tap="address_delete_event" hover-class="none">{{$t('common.del')}}</button>
</view>
</view>
</view>
</form>
</view>
<view v-else>
<!-- 提示信息 -->
<component-no-data :propStatus="data_list_loding_status"></component-no-data>
</view>
<!-- 位置选择 -->
<component-choice-location ref="choice_location" :propIsShowAddressChoice="false" @onBack="user_back_choice_location"></component-choice-location>
<!-- 公共 -->
<component-common ref="common"></component-common>
</view>
</template>
<script>
const app = getApp();
import componentCommon from '@/components/common/common';
import componentNoData from '@/components/no-data/no-data';
import componentRegionPicker from '@/components/region-picker/region-picker';
import componentChoiceLocation from '@/components/choice-location/choice-location';
var common_static_url = app.globalData.get_static_url('common');
const theme_color = app.globalData.get_theme_color();
const theme_color_light = app.globalData.get_theme_color(null, true);
export default {
data() {
return {
theme_view: app.globalData.get_theme_value_view(),
common_static_url: common_static_url,
theme_color: app.globalData.get_theme_color(),
params: {},
data_list_loding_status: 1,
data_list_loding_msg: '',
editor_path_type: '',
address_data: {},
// id
province_id: null,
city_id: null,
county_id: null,
// name
province_name: '',
city_name: '',
county_name: '',
idcard_images_data: {},
user_location: null,
address_discern_value: '',
form_submit_disabled_status: false,
region_code_value: '',
// 基础配置
home_user_address_map_status: 0,
home_user_address_idcard_status: 0,
is_user_address_discern: 0,
is_user_address_location_discern: 0,
is_user_address_forbid_choice_region: 0,
// 多列选择器
region_picker_show: false,
// 智能识别
identfication_show: false,
// 别名
alias_list: [this.$t('user-address-save.user-address-save.t1loj5'), this.$t('user-address-save.user-address-save.6t396c'), this.$t('user-address-save.user-address-save.34rqp8')],
alias_eidt_bool: false,
alias_eidt_text: '',
btn_bg_color: 'background:linear-gradient(107deg, ' + theme_color_light + ' 0%, ' + theme_color + ' 100%)',
};
},
components: {
componentCommon,
componentNoData,
componentRegionPicker,
componentChoiceLocation
},
onLoad(params) {
// 调用公共事件方法
app.globalData.page_event_onload_handle(params);
// 设置参数
this.setData({
params: params || {},
});
// 设置标题
uni.setNavigationBarTitle({
title: this.$t('user-address-save.user-address-save.4rc269') + ((this.params.id || null) == null ? this.$t('invoice-saveinfo.invoice-saveinfo.004t56') : this.$t('common.edit')),
});
// 初始化配置
this.init_config();
// 清除位置缓存信息
this.choose_user_location_remove();
// 初始化
this.init();
// 公共onshow事件
if ((this.$refs.common || null) != null) {
this.$refs.common.on_show();
}
},
onShow() {
// 调用公共事件方法
app.globalData.page_event_onshow_handle();
// 用户位置初始化
this.user_location_init();
// 分享菜单处理
app.globalData.page_share_handle();
},
methods: {
// 初始化配置
init_config(status) {
if ((status || false) == true) {
this.setData({
home_user_address_map_status: app.globalData.get_config('config.home_user_address_map_status'),
home_user_address_idcard_status: app.globalData.get_config('config.home_user_address_idcard_status'),
is_user_address_discern: app.globalData.get_config('plugins_base.intellectstools.data.is_user_address_discern', 0),
is_user_address_location_discern: app.globalData.get_config('plugins_base.intellectstools.data.is_user_address_location_discern', 0),
is_user_address_forbid_choice_region: app.globalData.get_config('plugins_base.intellectstools.data.is_user_address_forbid_choice_region', 0),
data_list_loding_status: 3,
});
} else {
app.globalData.is_config(this, 'init_config');
}
},
// 获取数据
init() {
var user = app.globalData.get_user_info(this, 'init');
if (user != false) {
this.get_data();
}
},
// 获取数据
get_data() {
uni.request({
url: app.globalData.get_request_url('detail', 'useraddress'),
method: 'POST',
data: {...this.params, ...{is_lang: 0}},
dataType: 'json',
success: (res) => {
if (res.data.code == 0) {
var data = res.data.data || null;
var ads_data = data.data || null;
var idcard_images = {
idcard_front: ads_data == null ? '' : ads_data.idcard_front || '',
idcard_back: ads_data == null ? '' : ads_data.idcard_back || '',
};
var alias = '';
if (ads_data) {
alias = ads_data.alias || '';
}
this.setData({
address_data: ads_data || {},
idcard_images_data: idcard_images,
editor_path_type: data.editor_path_type || '',
data_list_loding_status: 3,
});
if (this.alias_list.indexOf(alias) === -1) {
this.setData({
alias_eidt_text: alias || '',
});
}
// 数据设置
if (ads_data != null) {
this.setData({
province_id: ads_data.province || null,
city_id: ads_data.city || null,
county_id: ads_data.county || null,
city_name: ads_data.city_name || '',
province_name: ads_data.province_name || '',
county_name: ads_data.county_name || '',
});
// 地理位置
var lng = ads_data.lng || 0;
var lat = ads_data.lat || 0;
if (lng != 0 && lat != 0) {
this.setData({
user_location: {
lng: lng,
lat: lat,
address: ads_data.address || '',
},
});
}
}
} else {
if (app.globalData.is_login_check(res.data)) {
app.globalData.showToast(res.data.msg);
}
}
},
fail: () => {
app.globalData.showToast(this.$t('user-address-save.user-address-save.2pey0m'));
},
});
},
// 选择地理位置
choose_user_location_event(e) {
if ((this.$refs.choice_location || null) != null) {
this.$refs.choice_location.choose_user_location();
}
},
// 清除位置缓存信息
choose_user_location_remove() {
app.globalData.choice_user_location_remove();
},
// 选择用户地理位置回调
user_back_choice_location(e) {
this.setData({
user_location: e
});
// 是否开启地理位置选择后自动识别
if (this.user_location.status == 1 && this.is_user_address_location_discern == 1) {
this.address_discern_handle(this.user_location, 0, 1);
}
},
// 地址信息初始化
user_location_init() {
this.setData({
user_location: app.globalData.choice_user_location_init()
});
// 是否开启地理位置选择后自动识别
if (this.user_location.status == 1 && this.is_user_address_location_discern == 1) {
this.address_discern_handle(this.user_location, 0, 1);
}
},
// 文件上传
file_upload_event(e) {
var form_name = e.currentTarget.dataset.value || null;
if (form_name == null) {
app.globalData.showToast(this.$t('user-address-save.user-address-save.7w01kd'));
return false;
}
var self = this;
uni.chooseImage({
count: 1,
success(res) {
var success = 0;
var fail = 0;
var length = res.tempFilePaths.length;
var count = 0;
self.upload_one_by_one(res.tempFilePaths, success, fail, count, length, form_name);
},
});
},
// 采用递归的方式上传多张
upload_one_by_one(img_paths, success, fail, count, length, form_name) {
var self = this;
uni.uploadFile({
url: app.globalData.get_request_url('index', 'ueditor'),
filePath: img_paths[count],
name: 'upfile',
formData: {
action: 'uploadimage',
path_type: self.editor_path_type,
},
success: function (res) {
success++;
if (res.statusCode == 200) {
var data = typeof res.data == 'object' ? res.data : JSON.parse(res.data);
if (data.code == 0 && (data.data.url || null) != null) {
var temp_idcard_images_data = self.idcard_images_data || {};
temp_idcard_images_data[form_name] = data.data.url;
self.setData({
idcard_images_data: temp_idcard_images_data,
});
} else {
app.globalData.showToast(data.msg);
}
}
},
fail: function (e) {
fail++;
},
complete: function (e) {
count++;
// 下一张
if (count >= length) {
// 上传完毕,作一下提示
//app.showToast('上传成功' + success +'张', 'success');
} else {
// 递归调用,上传下一张
self.upload_one_by_one(img_paths, success, fail, count, length, form_name);
}
},
});
},
// 图片删除
upload_delete_event(e) {
var form_name = e.currentTarget.dataset.value || null;
if (form_name == null) {
app.globalData.showToast(this.$t('user-address-save.user-address-save.7w01kd'));
return false;
}
uni.showModal({
title: this.$t('common.warm_tips'),
content: this.$t('order.order.psi67g'),
success(res) {
if (res.confirm) {
var temp_idcard_images_data = self.idcard_images_data || {};
temp_idcard_images_data[form_name] = '';
self.setData({
idcard_images_data: temp_idcard_images_data,
});
}
},
});
},
// 默认地址设置改变
default_ads_change_event(e) {
var temp_ads = this.address_data;
temp_ads['is_default'] = (temp_ads.is_default || 0) == 1 ? 0 : 1;
this.setData({
address_data: temp_ads,
});
},
// 地址信息识别输入事件
address_discern_value_event(e) {
this.setData({
address_discern_value: e.detail.value,
});
},
// 地址信息识别确认事件
address_discern_submit_event(e) {
if ((this.address_discern_value || null) == null) {
app.globalData.showToast(this.$t('user-address-save.user-address-save.z687lv'));
return false;
}
// 地址识别处理
this.address_discern_handle({ address: this.address_discern_value }, 1, 0);
},
// 清除
clear_discern_submit_event() {
this.setData({
address_discern_value: '',
});
},
// 地址识别处理
// data 地址信息
// is_user 是否解析用户信息0, 1
// type 0 用户输入地址信息识别, 1用户选择地理位置识别
address_discern_handle(data, is_user = 0, type = 0) {
data['is_user'] = is_user;
uni.showLoading({
title: this.$t('common.processing_in_text'),
mask: true,
});
uni.request({
url: app.globalData.get_request_url('address', 'index', 'intellectstools'),
method: 'POST',
data: data,
dataType: 'json',
success: (res) => {
uni.hideLoading();
if (res.data.code == 0) {
var temp_ads = this.address_data || {};
var ads_data = res.data.data;
var upd_data = {
province_id: ads_data.province || null,
city_id: ads_data.city || null,
county_id: ads_data.county || null,
city_name: ads_data.city_name || '',
province_name: ads_data.province_name || '',
county_name: ads_data.county_name || '',
};
// 地址赋值
var arr = ['province', 'city', 'county', 'province_name', 'city_name', 'county_name', 'address', 'name', 'tel'];
for (var i in arr) {
if ((ads_data[arr[i]] || null) != null) {
temp_ads[arr[i]] = ads_data[arr[i]];
}
}
// 用户手动识别操作
// 识别成功后清除用户选择的地理位置信息、避免坐标与识别的地址不相符
if (type == 0) {
// 已有的地址坐标也清除
temp_ads['lng'] = '';
temp_ads['lat'] = '';
// 已获取的数据置为null
upd_data['user_location'] = null;
// 清除位置缓存信息
this.choose_user_location_remove();
}
upd_data['address_data'] = temp_ads;
this.setData(upd_data);
} else {
if (app.globalData.is_login_check(res.data)) {
app.globalData.showToast(res.data.msg);
} else {
app.globalData.showToast(this.$t('common.sub_error_retry_tips'));
}
}
},
fail: () => {
uni.hideLoading();
app.globalData.showToast(this.$t('common.internet_error_tips'));
},
});
},
// 数据提交
form_submit(e) {
// 表单数据
var form_data = e.detail.value;
// 加入页面请求参数
form_data['params'] = this.params;
// 数据校验
var validation = [
{ fields: 'name', msg: this.$t('extraction-apply.extraction-apply.q15b4n') },
{ fields: 'tel', msg: this.$t('extraction-apply.extraction-apply.3or25c') },
{ fields: 'province', msg: this.$t('extraction-apply.extraction-apply.m99d2g') },
{ fields: 'city', msg: this.$t('extraction-apply.extraction-apply.03587o') },
{ fields: 'address', msg: this.$t('extraction-apply.extraction-apply.v1g617') },
];
// 是否开启了地理位置选择
if (this.home_user_address_map_status == 1) {
validation.push({ fields: 'lng', msg: this.$t('extraction-apply.extraction-apply.8831v6') });
validation.push({ fields: 'lat', msg: this.$t('extraction-apply.extraction-apply.8831v6') });
}
// 是否开启了用户身份证信息
if (this.home_user_address_idcard_status == 1) {
// 验证
validation.push({ fields: 'idcard_name', msg: this.$t('user-address-save.user-address-save.lrlmxf') });
validation.push({ fields: 'idcard_number', msg: this.$t('user-address-save.user-address-save.0x8i97') });
validation.push({ fields: 'idcard_front', msg: this.$t('user-address-save.user-address-save.224l36') });
validation.push({ fields: 'idcard_back', msg: this.$t('user-address-save.user-address-save.glf52g') });
// 数据
form_data['idcard_front'] = this.idcard_images_data.idcard_front || '';
form_data['idcard_back'] = this.idcard_images_data.idcard_back || '';
}
form_data['province'] = this.province_id;
form_data['city'] = this.city_id;
form_data['county'] = this.county_id;
form_data['id'] = this.params.id || 0;
// 默认地址信息
var temp_ads = this.address_data || {};
form_data['is_default'] = temp_ads.is_default || 0;
// 地理位置
var lng = temp_ads.lng || 0;
var lat = temp_ads.lat || 0;
if ((this.user_location || null) != null) {
lng = this.user_location.lng || 0;
lat = this.user_location.lat || 0;
}
form_data['lng'] = lng;
form_data['lat'] = lat;
// 验证提交表单
if (app.globalData.fields_check(form_data, validation)) {
// 数据保存
this.setData({
form_submit_disabled_status: true,
});
uni.showLoading({
title: this.$t('common.processing_in_text'),
});
uni.request({
url: app.globalData.get_request_url('save', 'useraddress'),
method: 'POST',
data: form_data,
dataType: 'json',
success: (res) => {
uni.hideLoading();
if (res.data.code == 0) {
app.globalData.showToast(res.data.msg, 'success');
this.back_prev_event();
} else {
this.setData({
form_submit_disabled_status: false,
});
if (app.globalData.is_login_check(res.data)) {
app.globalData.showToast(res.data.msg);
} else {
app.globalData.showToast(this.$t('common.sub_error_retry_tips'));
}
}
},
fail: () => {
this.setData({
form_submit_disabled_status: false,
});
uni.hideLoading();
app.globalData.showToast(this.$t('common.internet_error_tips'));
},
});
}
},
// 地址编号输入事件
region_code_value_event(e) {
this.setData({
region_code_value: e.detail.value,
});
},
// 地址编号搜索
region_code_event(e) {
if ((this.region_code_value || null) == null) {
app.globalData.showToast(this.$t('user-address-save.user-address-save.wkfi45'));
return false;
}
this.setData({
form_submit_disabled_status: true,
});
uni.request({
url: app.globalData.get_request_url('codedata', 'region'),
method: 'POST',
data: { code: this.region_code_value },
dataType: 'json',
success: (res) => {
this.setData({
form_submit_disabled_status: false,
});
if (res.data.code == 0) {
app.globalData.showToast(res.data.msg, 'success');
var ads = res.data.data;
var province = ads.province || {};
var city = ads.city || {};
var county = ads.county || {};
this.setData({
province_id: province.id || null,
city_id: city.id || null,
county_id: county.id || null,
province_name: province.name || null,
city_name: city.name || null,
county_name: county.name || null,
});
if (!this.province_id || !this.city_id) {
this.setData({
region_picker_show: true,
});
}
} else {
if (app.globalData.is_login_check(res.data)) {
app.globalData.showToast(res.data.msg);
} else {
app.globalData.showToast(this.$t('common.sub_error_retry_tips'));
}
}
},
fail: () => {
this.setData({
form_submit_disabled_status: false,
});
app.globalData.showToast(this.$t('common.internet_error_tips'));
},
});
},
open_ragion(e) {
this.setData({
region_picker_show: true,
});
},
close_event(data) {
this.setData({
region_picker_show: false,
});
},
region_event(address1, address2, address3) {
if((address1 || null) == null) {
address1 = {};
}
if((address2 || null) == null) {
address2 = {};
}
if((address3 || null) == null) {
address3 = {};
}
this.setData({
province_id: address1.id || null,
city_id: address2.id || null,
county_id: address3.id || null,
province_name: address1.name || '',
city_name: address2.name || '',
county_name: address3.name || '',
});
},
// 地址粘贴板
identfication_change() {
this.setData({
identfication_show: !this.identfication_show,
});
},
// 别名
alias_change(e) {
let val = e.currentTarget.dataset.value || null;
this.$set(this.address_data, 'alias', val);
this.setData({
alias_eidt_bool: false,
});
},
// 新增别名选中
alias_checked_change() {
this.$set(this.address_data, 'alias', this.alias_eidt_text);
},
// 新增别名
alias_add(e) {
this.setData({
alias_eidt_bool: true,
});
},
// 别名提交
alias_add_submit_event() {
this.setData({
alias_eidt_bool: false,
});
this.$set(this.address_data, 'alias', this.alias_eidt_text);
},
// 别名编辑
alias_edit_submit_event() {
this.setData({
alias_eidt_bool: true,
});
},
// 删除地址
address_delete_event() {
var value = this.params.id || null;
if (value == null) {
app.globalData.showToast(this.$t('user-address-save.user-address-save.620370'));
return false;
}
uni.showModal({
title: this.$t('common.warm_tips'),
content: this.$t('recommend-list.recommend-list.54d418'),
confirmText: this.$t('common.confirm'),
cancelText: this.$t('recommend-list.recommend-list.w9460o'),
success: (result) => {
if (result.confirm) {
// 加载loding
uni.showLoading({
title: this.$t('common.processing_in_text'),
});
// 获取数据
uni.request({
url: app.globalData.get_request_url('delete', 'useraddress'),
method: 'POST',
data: {
id: value,
},
dataType: 'json',
success: (res) => {
uni.hideLoading();
if (res.data.code == 0) {
app.globalData.showToast(res.data.msg, 'success');
this.back_prev_event();
} else {
if (app.globalData.is_login_check(res.data)) {
app.globalData.showToast(res.data.msg);
} else {
app.globalData.showToast(this.$t('common.sub_error_retry_tips'));
}
}
},
fail: () => {
uni.hideLoading();
app.globalData.showToast(this.$t('common.internet_error_tips'));
},
});
}
},
});
},
back_prev_event() {
var pages = app.globalData.prev_page();
if (pages) {
setTimeout(function () {
uni.navigateBack();
}, 1000);
} else {
setTimeout(function () {
app.globalData.url_open('/pages/user-address/user-address', true);
}, 1000);
}
},
},
};
</script>
<style scoped>
@import './user-address-save.css';
</style>