|
@@ -0,0 +1,118 @@
|
|
|
|
|
+<template>
|
|
|
|
|
+ <div class="profile">
|
|
|
|
|
+ <nav-bar title="完善信息" @click-left="$router.go(-1)"></nav-bar>
|
|
|
|
|
+ <van-form @submit="onSubmit" style="margin-top: 20px">
|
|
|
|
|
+ <van-field
|
|
|
|
|
+ name="realName"
|
|
|
|
|
+ v-model="realName"
|
|
|
|
|
+ label="姓名"
|
|
|
|
|
+ placeholder="姓名"
|
|
|
|
|
+ :rules="[{ required: true, message: '请填写姓名' }]"
|
|
|
|
|
+ />
|
|
|
|
|
+ <van-field label="性别" name="sex">
|
|
|
|
|
+ <template #input>
|
|
|
|
|
+ <van-radio-group v-model="sex" direction="horizontal" :checked-color="$theme.prim">
|
|
|
|
|
+ <van-radio name="男">男</van-radio>
|
|
|
|
|
+ <van-radio name="女">女</van-radio>
|
|
|
|
|
+ </van-radio-group>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </van-field>
|
|
|
|
|
+ <van-field
|
|
|
|
|
+ name="bankNo"
|
|
|
|
|
+ v-model="bankNo"
|
|
|
|
|
+ label="银行账号"
|
|
|
|
|
+ placeholder="收款银行账号"
|
|
|
|
|
+ :rules="[{ required: true, message: '请填写收款银行账号' }]"
|
|
|
|
|
+ />
|
|
|
|
|
+ <van-field name="email" v-model="email" label="邮箱" placeholder="邮箱" />
|
|
|
|
|
+ <van-field
|
|
|
|
|
+ name="receiver"
|
|
|
|
|
+ v-model="receiver"
|
|
|
|
|
+ label="收件人姓名"
|
|
|
|
|
+ placeholder="收件人姓名"
|
|
|
|
|
+ :rules="[{ required: true, message: '请填写收件人姓名' }]"
|
|
|
|
|
+ />
|
|
|
|
|
+ <van-field
|
|
|
|
|
+ name="receiverPhone"
|
|
|
|
|
+ v-model="receiverPhone"
|
|
|
|
|
+ label="收件人电话"
|
|
|
|
|
+ placeholder="收件人电话"
|
|
|
|
|
+ :rules="[{ required: true, message: '请填写收件人电话' }]"
|
|
|
|
|
+ />
|
|
|
|
|
+ <van-field
|
|
|
|
|
+ name="address"
|
|
|
|
|
+ v-model="address"
|
|
|
|
|
+ label="收件地址"
|
|
|
|
|
+ placeholder="收件地址"
|
|
|
|
|
+ type="textarea"
|
|
|
|
|
+ :rules="[{ required: true, message: '请填写收件地址' }]"
|
|
|
|
|
+ />
|
|
|
|
|
+ <div style="margin: 16px">
|
|
|
|
|
+ <van-button round block size="small" :color="$theme.prim" type="info" native-type="submit">
|
|
|
|
|
+ 提交
|
|
|
|
|
+ </van-button>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </van-form>
|
|
|
|
|
+ </div>
|
|
|
|
|
+</template>
|
|
|
|
|
+<script>
|
|
|
|
|
+import { mapState } from 'vuex';
|
|
|
|
|
+export default {
|
|
|
|
|
+ data() {
|
|
|
|
|
+ return {
|
|
|
|
|
+ realName: '',
|
|
|
|
|
+ sex: '',
|
|
|
|
|
+ bankNo: '',
|
|
|
|
|
+ email: '',
|
|
|
|
|
+ receiver: '',
|
|
|
|
|
+ receiverPhone: '',
|
|
|
|
|
+ address: ''
|
|
|
|
|
+ };
|
|
|
|
|
+ },
|
|
|
|
|
+ computed: {
|
|
|
|
|
+ ...mapState(['userInfo'])
|
|
|
|
|
+ },
|
|
|
|
|
+ created() {
|
|
|
|
|
+ this.setInfo();
|
|
|
|
|
+ },
|
|
|
|
|
+ methods: {
|
|
|
|
|
+ onSubmit(data) {
|
|
|
|
|
+ console.log(data);
|
|
|
|
|
+ this.$toast.loading();
|
|
|
|
|
+ this.$http
|
|
|
|
|
+ .post(
|
|
|
|
|
+ '/user/update',
|
|
|
|
|
+ {
|
|
|
|
|
+ ...data,
|
|
|
|
|
+ id: this.$store.state.userInfo.id
|
|
|
|
|
+ },
|
|
|
|
|
+ { body: 'json' }
|
|
|
|
|
+ )
|
|
|
|
|
+ .then(res => {
|
|
|
|
|
+ this.$toast.success('保存成功');
|
|
|
|
|
+ this.$router.go(-1);
|
|
|
|
|
+ })
|
|
|
|
|
+ .catch(e => {
|
|
|
|
|
+ this.$toast(e.error || '保存失败');
|
|
|
|
|
+ });
|
|
|
|
|
+ },
|
|
|
|
|
+ setInfo() {
|
|
|
|
|
+ if (this.userInfo) {
|
|
|
|
|
+ ['realName', 'sex', 'bankNo', 'email', 'receiver', 'receiverPhone', 'address'].forEach(i => {
|
|
|
|
|
+ this.$set(this, i, this.userInfo[i]);
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ watch: {
|
|
|
|
|
+ userInfo() {
|
|
|
|
|
+ this.setInfo();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+};
|
|
|
|
|
+</script>
|
|
|
|
|
+<style lang="less" scoped>
|
|
|
|
|
+.profile {
|
|
|
|
|
+ background: @bg !important;
|
|
|
|
|
+}
|
|
|
|
|
+</style>
|