xiongzhu 5 years ago
parent
commit
58015239ca
1 changed files with 118 additions and 0 deletions
  1. 118 0
      src/main/mobile/src/views/profile.vue

+ 118 - 0
src/main/mobile/src/views/profile.vue

@@ -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>