123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387 |
- <template>
- <view class="page">
- <view class="list_info">
- <view class="bcenter">
- <view class="avator" @click="upload">
- <image class="img" :src="avator" mode="aspectFill" />
- <image class="photo" src="../../static/me/photo.png" mode="widthFix" />
- </view>
- </view>
- <view class="section_title">基本信息</view>
- <view class="info_card">
- <view class="info_item">
- <text class="label">昵称</text>
- <view class="content">
- <input type="text" placeholder="请输入昵称" v-model="nickname" maxlength="30" />
- <image class="arrow" src="../../static/me/arrow_right_gray.png" mode="widthFix" />
- </view>
- </view>
- <view class="info_item">
- <text class="label">简介</text>
- <view class="content">
- <input type="text" placeholder="请输入简介" v-model="content" maxlength="32" />
- <image class="arrow" src="../../static/me/arrow_right_gray.png" mode="widthFix" />
- </view>
- </view>
- <view class="info_item" @click="SetSex">
- <text class="label">性别</text>
- <view class="content">
- <input type="text" placeholder="请选择" v-model="sexText" disabled="true" />
- <image class="arrow" src="../../static/me/arrow_right_gray.png" mode="widthFix" />
- </view>
- </view>
- <view class="info_item">
- <text class="label">生日</text>
- <view class="content">
- <picker mode="date" :value="birthday" :end="endDate" @change="onBirthdayChange">
- <input type="text" placeholder="请选择生日" v-model="birthday" disabled="true" />
- </picker>
- <image class="arrow" src="../../static/me/arrow_right_gray.png" mode="widthFix" />
- </view>
- </view>
- <view class="info_item">
- <text class="label">星座</text>
- <view class="content">
- <input type="text" :value="xinzuo_sel" disabled="true" />
- <image class="arrow" src="../../static/me/arrow_right_gray.png" mode="widthFix" />
- </view>
- </view>
- </view>
- <view class="section_title">个性标签</view>
- <view class="info_card">
- <view class="item_tag">
- <view class="tag" v-for="(item,index) in sel_tags">
- {{item}}
- <image class="close" src="../../static/me/close.png" mode="widthFix" @click="delTag(item)" />
- </view>
- <view class="addNew" @click="showPop = true;">添加+</view>
- </view>
- </view>
- <view class="blankHeight"></view>
- </view>
- <view class="btn_submit" @click="submitData">提交保存</view>
- <DialogBox ref="DialogBox"></DialogBox>
- <view class="popSel" v-if="showPop" @tap.stop="onPreview">
- <view class="list_info">
- <view class="name">你的兴趣爱好是?</view>
- <view class="desc">提示:最多选择10个兴趣爱好标签</view>
- <view class="item_tag">
- <view @tap.stop="chkTag(item)" class="tag" :class="selTags(item)?'active':''"
- v-for="(item,index) in list_tag">
- {{item}}
- </view>
- </view>
- </view>
- <view class="btn_submit" @click="showPop = false;">提交选择</view>
- </view>
- <ToastW3 ref="ToastW3"></ToastW3>
- <view v-if="showRights"
- style="width:100%;height:300rpx;background-color: rgba(255,255,255,0.9);position: fixed;top:0;display: flex;flex-direction: column;justify-content: center;align-items: center;">
- <text
- style="width:90%;color:#000000;font-size:38rpx;text-align: left;padding:10rpx 20rpx;padding-top:10rpx;">正在获取相机、存储权限</text>
- <text
- style="width:90%;color:#666666;font-size:28rpx;text-align: left;padding:10rpx 20rpx;">该权限用于获取设备拍摄或获取本地应用相册,进行头像或图片上传。</text>
- </view>
- </view>
- </template>
- <script>
- import {
- requestAndroidPermission,
- gotoAppPermissionSetting
- } from '../index/permission.js'
- export default {
- components: {},
- data() {
- return {
- showRights: false,
- title: '',
- sel: 1,
- info: {},
- showPop: false,
- nickname: '',
- content: '',
- sex: 1,
- age: 18,
- height: 160,
- weight: 50,
- avator: '../../static/me/avator.png',
- ziye: '',
- qianmin: '',
- xinzuo_sel: '',
- xinzuo: ['水瓶座', '双鱼座', '白羊座', '金牛座', '双子座', '巨蟹座', '狮子座', '处女座', '天秤座', '天蝎座', '射手座', '摩羯座'],
- list_tag: [],
- sel_tags: [],
- sexText: '',
- birthday: '',
- sexOptions: ['男', '女', '其他'],
- endDate: new Date().toISOString().split('T')[0]
- }
- },
- onLoad() {
- let tagStr =
- "篮球、羽毛球、兵乓球、足球、滑板、滑旱冰、跑步、跳绳、举重、听音乐、看电影、绘画、写小说、看书、做弹弓玩、做木剑玩、做橡皮枪玩、积木、用麻将搭金字塔、拼图、拆装、扑克牌、小汽车、手表、鞋之类的、弹吉他、钢琴、萨克斯、葫芦丝、大号、小号、折纸、剪纸、品茶、涂鸦、英雄联盟、qq堂、cs、cf、地下城勇士、桌面游戏";
- this.list_tag = tagStr.split("、");
- this.getInfoData();
- },
- onShow() {},
- methods: {
- onBack() {},
- onPreview() {},
- chkSel() {
- if (this.sel == 1) {
- this.sel = 0;
- } else {
- this.sel = 1;
- }
- },
- chkSex(sex) {
- this.sex = sex;
- },
- delTag(tg) {
- let list_tag2 = [];
- for (let i = 0; i < this.sel_tags.length; i++) {
- if (this.sel_tags[i] != tg) {
- list_tag2.push(this.sel_tags[i]);
- }
- }
- this.sel_tags = list_tag2;
- },
- selTags(itm) {
- let that = this;
- let isIn = false;
- for (let entry of this.sel_tags) {
- if (entry == itm) {
- isIn = true;
- break;
- }
- }
- return isIn;
- },
- chkTag(itm) {
- if (this.selTags(itm)) {
- let tmpTags = [];
- for (let entry of this.sel_tags) {
- if (entry != itm) {
- tmpTags.push(entry);
- }
- }
- this.sel_tags = tmpTags;
- } else {
- if (this.sel_tags.length <= 9) {
- this.sel_tags.push(itm);
- } else {
- this.$refs['ToastW3'].showToast({
- title: "最多选择10个标签",
- animation: 0
- });
- }
- }
- },
- sliderChange1(e) {
- this.age = e.detail.value;
- },
- sliderChange2(e) {
- this.height = e.detail.value;
- },
- sliderChange3(e) {
- this.weight = e.detail.value;
- },
- SetSex() {
- let that = this;
- uni.showActionSheet({
- itemColor: '#000000',
- itemList: this.sexOptions,
- success: function(res) {
- that.sexText = that.sexOptions[res.tapIndex];
- that.sex = res.tapIndex + 1;
- },
- fail: function(res) {
- console.log(res.errMsg);
- }
- });
- },
- getInfoData() {
- uni.request({
- url: this.$apiHost + '/Member/getinfoData',
- data: {
- uuid: getApp().globalData.uuid
- },
- header: {
- 'content-type': 'application/json'
- },
- success: (res) => {
- console.log(res.data);
- this.nickname = res.data.nickname;
- this.wechat = res.data.wechat;
- this.sex = res.data.sex;
- this.sexText = this.sexOptions[res.data.sex - 1] || '';
- this.birthday = res.data.birthday;
- this.xinzuo_sel = this.getConstellation(this.birthday);
- if (res.data.avator != "") {
- this.avator = res.data.avator;
- }
- if (res.data.aihao) {
- this.sel_tags = res.data.aihao.split(",");
- }
- }
- });
- },
- submitData() {
- let aihao = this.sel_tags.join(',')
- let obj2 = {
- uuid: getApp().globalData.uuid,
- avator: this.avator,
- nickname: this.nickname,
- content: this.content,
- sex: this.sex,
- birthday: this.birthday,
- xinzuo: this.xinzuo_sel,
- ziye: this.ziye,
- qianmin: this.qianmin,
- aihao: aihao
- }
- uni.request({
- url: this.$apiHost + '/Member/setinfoData',
- data: obj2,
- method: 'POST',
- header: {
- 'Content-Type': 'application/x-www-form-urlencoded',
- 'sign': getApp().globalData.headerSign
- },
- dataType: 'json',
- success: (res) => {
- console.log("res", res.data)
- this.$refs['ToastW3'].showToast({
- title: res.data.str,
- animation: 0
- });
- if (res.data.success == 'yes') {
- setTimeout(function() {
- uni.navigateBack()
- }, 800)
- }
- this.getInfoData()
- }
- });
- },
- upload() {
- this.checkRights();
- console.log("----upload");
- var _self = this;
- uni.chooseImage({
- count: 1,
- sizeType: ['compressed'],
- sourceType: ['album', 'camera'],
- success: function(res) {
- console.log('res:', res)
- if (res.tempFilePaths.length > 0) {
- _self.imglocal = res.tempFilePaths[0]
- const tempFilePaths = res.tempFilePaths[0];
- console.log('tempFilePaths:', tempFilePaths);
- const uploadTask = uni.uploadFile({
- url: _self.$apiHost + '/Xweb/upload_img?skey=' + _self.skey,
- filePath: res.tempFilePaths[0],
- name: 'file',
- success: function(uploadFileRes) {
- let resdata = JSON.parse(uploadFileRes.data)
- console.log('Success11:', uploadFileRes);
- console.log('Success21:', resdata);
- if (resdata.success == 'yes') {
- _self.showRights = false;
- _self.avator = resdata.url;
- }
- },
- fail: function(uploadFileFail) {
- console.log('Error:', uploadFileFail.data);
- },
- complete: () => {
- console.log('Complete:');
- }
- });
- }
- },
- error: function(e) {
- console.log(e);
- }
- });
- },
- checkRights() {
- let that = this;
- that.showRights = true;
- requestAndroidPermission('android.permission.CAMERA')
- .then(result => {
- that.showRights = false;
- if (result === 1) {} else if (result === 0) {
- console.log('权限被拒绝');
- } else if (result === -1) {
- console.log('权限被永久拒绝');
- }
- })
- .catch(error => {
- that.showRights = true;
- console.log('权限申请失败:', error);
- });
- },
- onBirthdayChange(e) {
- this.birthday = e.detail.value;
- this.xinzuo_sel = this.getConstellation(this.birthday);
- },
- getConstellation(birthday) {
- if (!birthday) return '';
- const month = parseInt(birthday.split('-')[1]);
- const day = parseInt(birthday.split('-')[2]);
- // 星座日期数组
- const constellationDates = [
- [1, 20, "水瓶座"],
- [2, 19, "双鱼座"],
- [3, 21, "白羊座"],
- [4, 20, "金牛座"],
- [5, 21, "双子座"],
- [6, 22, "巨蟹座"],
- [7, 23, "狮子座"],
- [8, 23, "处女座"],
- [9, 23, "天秤座"],
- [10, 24, "天蝎座"],
- [11, 23, "射手座"],
- [12, 22, "摩羯座"]
- ];
- let constellation = "";
- if (day < constellationDates[month - 1][1]) {
- constellation = constellationDates[month - 1][2];
- } else {
- constellation = constellationDates[month % 12][2];
- }
- return constellation;
- }
- }
- }
- </script>
- <style scoped lang="scss">
- @import 'normal.scss';
- .popSel {
- position: fixed;
- z-index: 999999;
- top: 0;
- left: 0;
- background-color: #ffffff;
- width: 100vh;
- height: 100vh;
- }
- </style>
|