123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350 |
- <template>
- <div>
- <nav-bar path="index" title="身份验证"/>
- <div class='card'>
- <h3><strong>个人资料</strong></h3>
- <van-cell-group :border="false">
- <van-field
- v-model="phone"
- required
- clearable
- label="手机号"
- placeholder="请输入手机号"
- :error="phoneError"
- @click="phoneError=false"
- />
- <!--<van-field-->
- <!--v-model="sms"-->
- <!--center-->
- <!--clearable-->
- <!--label="短信验证码"-->
- <!--placeholder="请输入短信验证码"-->
- <!--required-->
- <!--disabled-->
- <!-->-->
- <!--<van-button slot="button" size="small" type="primary">发送验证码</van-button>-->
- <!--</van-field>-->
- <van-field
- v-model="username"
- required
- clearable
- label="昵称"
- placeholder="请输入昵称"
- maxlength="12"
- :error="usernameError"
- @click="usernameError=false"
- />
- <van-field
- v-model="wechat"
- required
- clearable
- label="微信号"
- placeholder="请输入微信号"
- maxlength="20"
- :error="wechatError"
- @click="wechatError=false"
- />
- </van-cell-group>
- <p>性别</p>
- <van-radio-group v-model="radio">
- <van-radio name="1" checked-color="#fd6740" style="float: left; margin-right: 20px">男</van-radio>
- <van-radio name="2" checked-color="#fd6740">女</van-radio>
- </van-radio-group>
- <p>宿舍区</p>
- <van-button size="large" @click="show = true">{{dormitory}}</van-button>
- <van-actionsheet
- v-model="show"
- :actions="actions"
- cancel-text="取消"
- @select="onSelect"
- />
- </div>
- <div class="card" style="margin-bottom: 10px">
- <p>上传校卡照片</p>
- <div style="margin-bottom: 10px">
- <add-photo @onRead="onRead"/>
- </div>
- <p>活动仅允许深大学生参与,请上传正面校卡照片审核~</p>
- </div>
- <van-button
- class="submit_button"
- type="primary"
- @click="next"
- :loading="loading"
- >下一步
- </van-button>
- </div>
- </template>
- <script>
- import {BasicFunction} from "../connector/basic-service";
- import NavBar from '../components/navBar';
- import {
- Uploader, Icon,
- CellGroup, Field,
- RadioGroup, Radio,
- Picker,
- Button,
- Actionsheet,
- Toast
- } from 'vant';
- import AddPhoto from "../components/addPhoto";
- export default {
- name: "SecurityVerify",
- components: {
- AddPhoto,
- NavBar,
- [Uploader.name]: Uploader, [Icon.name]: Icon,
- [CellGroup.name]: CellGroup, [Field.name]: Field,
- [RadioGroup.name]: RadioGroup, [Radio.name]: Radio,
- [Picker.name]: Picker,
- [Button.name]: Button,
- [Actionsheet.name]: Actionsheet
- },
- data() {
- return {
- phone: '',
- phoneError: false,
- sms: '',
- username: '',
- usernameError: false,
- wechat: '',
- wechatError: false,
- radio: '1',
- show: false,
- dormitory: '点击选择宿舍区',
- dorId: -1,
- actions: [
- {id: 0, name: '斋区'},
- {id: 1, name: '西南'},
- {id: 2, name: '南区'},
- {id: 3, name: '桂庙'},
- {id: 4, name: '西丽'},
- ],
- photo: null,
- loading: false
- };
- },
- methods: {
- next() {
- this.loading = true;
- // 检查输入
- if (this.phone.length !== 11) {
- Toast.fail("请输入11位手机号");
- this.phoneError = true;
- this.loading = false;
- return;
- } else if (!isNumber(this.phone)) {
- Toast.fail("请输入正确格式的手机号");
- this.phoneError = true;
- this.loading = false;
- return;
- } else if (isEmojiCharacter(this.username)) {
- Toast.fail('不支持表情哦');
- this.usernameError = true;
- this.loading = false;
- return;
- } else if (this.username.length < 1) {
- this.usernameError = true;
- this.loading = false;
- return;
- } else if (isEmojiCharacter(this.wechat) || this.wechat.length < 6) {
- this.wechatError = true;
- Toast.fail('请输入正确格式的微信号');
- this.loading = false;
- return;
- } else if (this.dorId === -1) {
- Toast.fail('请选择宿舍区');
- this.loading = false;
- return;
- } else if (this.photo === null) {
- Toast.fail('请上传校卡正面照片');
- this.loading = false;
- return;
- }
- let that = this;
- // console.log('------- photo -------');
- // console.log(this.photo);
- let formData = new FormData();
- formData.append('file', this.photo);
- BasicFunction.get_data("http://gift.fogice.com/server/fileserver/upload?sign=abcdefg", function (res) {
- // console.log('----- upload photo result -----');
- // console.log(res);
- // if (res.model === undefined || res.model.length === 0) {
- // Toast.fail('上传失败,请重试');
- // return;
- // }
- try {
- let imgURL = res.model;
- if (res.ret === '10000') {
- let userId = localStorage.getItem('frontend-userid');
- // console.log('----- User Identity -----');
- BasicFunction.get_data("smartIdentity/list?userId=" + userId, function (res) {
- try {
- let useridentity = res.model.list[0];
- if (res.ret === '10000' && res.model !== undefined && res.model.list !== undefined && res.model.list.length > 0) {
- useridentity.userWxAccount = that.wechat;
- useridentity.dormDistrict = that.dorId;
- useridentity.userSex = parseInt(that.radio);
- useridentity.userSchoolCardPic = imgURL;
- useridentity.userReviewStatus = 100;
- useridentity.reviewerNote = "未审核";
- useridentity.reviewerNoteToUser = "未审核";
- BasicFunction.get_data("smartIdentity/updateBatch", function (response) {
- // console.log(useridentity);
- // console.log(response);
- if (response.ret === "10000") {
- // console.log('----- User Info -----');
- BasicFunction.get_data('smartUsers/list?uid=' + userId, function (res) {
- // console.log(res);
- try {
- let user = res.model.list[0];
- if (res.ret === '10000' && res.model !== undefined && res.model.list !== undefined) {
- user.name = that.username;
- user.phone = that.phone;
- // console.log('----- Update User Info -----');
- // console.log(user);
- BasicFunction.get_data('smartUsers/updateBatch', function (res) {
- // console.log(res);
- if (res !== undefined && res.ret === '10000') {
- Toast.success("注册成功");
- that.$router.push('presentRegister');
- } else {
- Toast.fail('注册失败');
- that.loading = false;
- }
- }, [user]);
- } else {
- Toast.fail('获取用户信息失败');
- that.loading = false;
- }
- } catch (e) {
- console.warn(e);
- Toast.fail('获取用户信息失败');
- that.loading = false;
- }
- }, {});
- } else {
- Toast.fail("注册失败,请检查网络");
- that.loading = false;
- }
- }, [useridentity]);
- } else {
- Toast.fail('获取信息失败');
- that.loading = false;
- }
- } catch (e) {
- console.warn(e);
- Toast.fail('获取信息失败');
- that.loading = false;
- }
- }, {});
- } else {
- Toast.fail('上传图片失败,请检查网络');
- that.loading = false;
- }
- } catch (e) {
- console.warn(e);
- Toast.fail('上传图片失败,请检查网络');
- that.loading = false;
- }
- }, formData);
- },
- onSelect(item) {
- // 点击选项时默认不会关闭菜单,可以手动关闭
- this.show = false;
- this.dormitory = item.name;
- this.dorId = item.id;
- },
- onRead(e) {
- this.photo = e;
- }
- },
- created: function () {
- let userid = localStorage.getItem('frontend-userid');
- let that = this;
- BasicFunction.get_data('smartUsers/list?uid=' + userid, function (res) {
- // console.log('----- User Info ----- ' + userid);
- // console.log(res);
- if (res.ret === '10000') {
- if (res.model.list[0].phone.length !== 0) that.$router.push('presentRegister');
- }
- }, {});
- }
- }
- // 判断是否有emoji
- function isEmojiCharacter(substring) {
- for (var i = 0; i < substring.length; i++) {
- var hs = substring.charCodeAt(i);
- if (0xd800 <= hs && hs <= 0xdbff) {
- if (substring.length > 1) {
- var ls = substring.charCodeAt(i + 1);
- var uc = ((hs - 0xd800) * 0x400) + (ls - 0xdc00) + 0x10000;
- if (0x1d000 <= uc && uc <= 0x1f77f) {
- return true;
- }
- }
- } else if (substring.length > 1) {
- var ls = substring.charCodeAt(i + 1);
- if (ls == 0x20e3) {
- return true;
- }
- } else {
- if (0x2100 <= hs && hs <= 0x27ff) {
- return true;
- } else if (0x2B05 <= hs && hs <= 0x2b07) {
- return true;
- } else if (0x2934 <= hs && hs <= 0x2935) {
- return true;
- } else if (0x3297 <= hs && hs <= 0x3299) {
- return true;
- } else if (hs == 0xa9 || hs == 0xae || hs == 0x303d || hs == 0x3030
- || hs == 0x2b55 || hs == 0x2b1c || hs == 0x2b1b
- || hs == 0x2b50) {
- return true;
- }
- }
- }
- }
- // 判断是否是数字
- function isNumber(str) {
- for (let i = 0; i < str.length; i++) {
- if (str[i] < '0' || str[i] > '9') return false;
- }
- return true;
- }
- </script>
- <style scoped>
- p, h3 {
- color: #fd6740;
- }
- h3 {
- padding: 5px;
- border-bottom: solid 1px #e4e4e4;
- }
- .card {
- background-color: white;
- margin: 20px 20px;
- border: solid 1px #e4e4e4;
- padding: 15px;
- text-align: left;
- }
- .submit_button {
- margin-bottom: 10px;
- margin-left: auto;
- margin-right: auto;
- background-color: #fd6740;
- border-color: #fd6740;
- width: 85%;
- }
- </style>
|