| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219 | <template>	<view class="my-info-page">		<!-- 导航区域 -->		<view class="icon-title-navBar-box">			<view @click="handleBack" class="nav-bar-icon"></view>			<text class="nav-bar-title">个人信息</text>		</view>		<!-- 头像 -->		<view class="user-img-box">						<uni-file-picker limit="1" :del-icon="false" disable-preview :auto-upload="false"				@select="handleSelect" file-mediatype="image" class="phone-file-picker user-file-picker">				<text class="user-title">头像</text>				<img class="head-img" :src="data.icon" v-if="data.icon">				<icon class="phone-default-userImg" v-else></icon>				<icon class="user-jt-icon"></icon>			</uni-file-picker>			<!-- <view>图片地址:{{data.icon}}</view> -->		</view>		<!-- 姓名 -->		<view class="form-label-input">			<view class="phone-form-label"><text class="form-label-require">*</text>姓名</view>			<input v-model="data.realName"  placeholder="请输入姓名" />			<icon></icon>		</view>		<!-- 手机号 -->		<view class="form-label-input">			<view class="phone-form-label"><text class="form-label-require">*</text>手机号</view>			<input v-model="data.userName"  placeholder="请输入手机号" />			<icon></icon>		</view>		<button type="default" class="phone-green-btn info-btn" @click="handleUpdate">修改资料</button>	</view></template><script setup>	import * as myApi from "@/api/my.js";	import {getAliyunPolicy} from "@/api/jiazheng.js"	import {ref,reactive} from "vue"	import {onLoad} from "@dcloudio/uni-app"	const imageStyles = ref({		width: 120,		height: 120,	});	const data = reactive({		from: 'shouye', // my | kaoshi | shouye		gender: 0,		icon: '',		realName: '',		userName: '',		userId: null	})	onLoad((options) => {		data.from = options.from || 'shouye';		initPage();	})	function handleSelect(e) {		console.log('eee',e)		doUploadImage(e)	}	function genderSelect(genderValue){		data.gender = genderValue;	}	function doUploadImage(params) {		const filePath = params.tempFiles[0];		const fileUrl = params.tempFilePaths;				try {			const suffix = filePath.file.name.split('.').pop();			let req = {				prefix: 'resource/',				suffix: suffix,			}			uni.showLoading({				title: '上传中...',				mask: true			});			getAliyunPolicy(req).then(res => {				if (res.code == 0) {					const policyData = res.data;										const formData = {						key:  policyData.key,						policy:  policyData.policy,						signature:  policyData.signature,						OSSAccessKeyId:  policyData.accessid,						success_action_status:  '200',					}										uni.uploadFile({						url: policyData.uploadUrl,						filePath: fileUrl[0],						name: 'file',						formData: formData,						success(uploadRes) {							if (uploadRes.statusCode === 200) {								console.log('uploadRes',uploadRes)								data.icon = `${policyData.downloadUrl}/${policyData.key}`;								console.log( `${policyData.downloadUrl}/${policyData.key}`)								uni.showToast({									title: '上传成功',									icon: 'success'								});															} else {								uni.showToast({									icon: 'none',									title: '上传失败',								});								uni.hideLoading();							}									},						fail(err) {							uni.showToast({								icon: 'none',								title: '上传失败',							});							uni.hideLoading();						}					});				} else {					uni.showToast({						title: '获取凭证失败',					});					uni.hideLoading();				}			})		} catch (error) {			uni.showToast({				title: '上传失败',				icon: 'none'			});			uni.hideLoading();		}	}	function handleUpdate() {		let arr = [];		if (!data.realName) {			arr.push('姓名');		}		if (!data.userName) {			arr.push('电话');		}		if (!data.icon) {			arr.push('头像');		}		if (!data.realName || !data.userName||!data.icon) {			uni.showToast({				icon: 'none',				title: `请完善${arr.join('、')}信息!`			})			return;		}				const opt = {			gender: data.gender,			icon: data.icon, 			realName: data.realName,			userId: data.userId,			userName: data.userName,		}		myApi.getMineUpdate(opt).then(res => {			if (res.data) {				uni.showToast({					title: '更新成功'				})				handleBack();			}		})	}	function handleBack() {		const pages = getCurrentPages();		if (pages.length>1) {			uni.navigateBack()		} else {			/* if (data.from == 'my') {				uni.redirectTo({					url: '/pages/client/my/index'				})			} else if (data.from == 'kaoshi') {				uni.redirectTo({					url: '/pages/client/ShouYe/shouye'				})			} else {				uni.redirectTo({					url: '/pages/client/my/index'				})			} */			history.back();		}	}	function initPage() {		myApi.getMineUser().then(res => {			const {gender,icon,realName,userName,userId} = res.data;			data.gender = res.data.gender;			data.icon = res.data.icon;			data.realName = res.data.realName; 			data.userName = res.data.userName;			data.userId = res.data.userId;		})	}</script><style></style>
 |