Procházet zdrojové kódy

Merge branch 'master' of http://git.izouma.com/xiongzhu/9th

panhui před 4 roky
rodič
revize
898e9b326d
32 změnil soubory, kde provedl 1681 přidání a 615 odebrání
  1. 12 4
      build.sh
  2. 1 1
      src/main/nine-space/src/views/product/Detail.vue
  3. 317 317
      src/main/nine-space/yarn.lock
  4. binární
      src/main/pc-space/src/assets/icon-xiugaichengg@3x.png
  5. binární
      src/main/pc-space/src/assets/renzheng-icon-geren@3x.png
  6. binární
      src/main/pc-space/src/assets/renzheng-icon-qiye@3x.png
  7. 2 6
      src/main/pc-space/src/components/FansInfo.vue
  8. 34 11
      src/main/pc-space/src/components/PageHeader.vue
  9. 24 24
      src/main/pc-space/src/components/SecurityPhone.vue
  10. 136 0
      src/main/pc-space/src/components/TransactionPhone.vue
  11. 3 0
      src/main/pc-space/src/mixins/common.js
  12. 34 2
      src/main/pc-space/src/router/index.js
  13. 5 1
      src/main/pc-space/src/views/Index.vue
  14. 42 11
      src/main/pc-space/src/views/user/AccountData.vue
  15. 4 4
      src/main/pc-space/src/views/user/Authentication.vue
  16. 148 84
      src/main/pc-space/src/views/user/EnterpriseAuthentication.vue
  17. 216 0
      src/main/pc-space/src/views/user/Modifypad.vue
  18. 3 8
      src/main/pc-space/src/views/user/Security.vue
  19. 149 0
      src/main/pc-space/src/views/user/SecuritySuccess.vue
  20. 227 0
      src/main/pc-space/src/views/user/Transaction.vue
  21. 149 0
      src/main/pc-space/src/views/user/TransactionSuccess.vue
  22. 124 79
      src/main/pc-space/src/views/user/UserAuthentication.vue
  23. 2 2
      src/main/pc-space/yarn.lock
  24. 26 26
      src/main/resources/access.key
  25. 11 0
      src/main/resources/application.yaml
  26. 0 1
      src/main/vue/package.json
  27. 2 10
      src/main/vue/src/views/AdminEdit.vue
  28. 4 2
      src/main/vue/src/views/BannerEdit.vue
  29. 6 0
      src/main/vue/src/views/CollectionList.vue
  30. 0 9
      src/main/vue/src/views/MinterEdit.vue
  31. 0 9
      src/main/vue/src/views/UserEdit.vue
  32. 0 4
      src/main/vue/yarn.lock

+ 12 - 4
build.sh

@@ -1,7 +1,15 @@
 git checkout
 git pull
-#(cd src/main/vue && npm run build)
+(cd src/main/vue && yarn)
+(cd src/main/vue && yarn build)
+rsync -av --delete src/main/vue/dist/ /var/www/9th/admin/
+(cd src/main/nine-space && yarn)
+(cd src/main/nine-space && yarn build)
+rsync -av --delete src/main/nine-space/dist/ /var/www/9th/9th/
+(cd src/main/pc-space && yarn)
+(cd src/main/pc-space && yarn build)
+rsync -av --delete src/main/pc-space/dist/ /var/www/9th/9th-pc/
 mvn clean package
-systemctl stop zmj
-cp target/zhumj-0.0.1-SNAPSHOT.jar /var/www/zmj/zhumj-0.0.1-SNAPSHOT.jar
-systemctl start zmj
+systemctl stop 9th
+mv -f target/9th-0.0.1-SNAPSHOT.jar /var/www/9th/9th-0.0.1-SNAPSHOT.jar
+systemctl start 9th

+ 1 - 1
src/main/nine-space/src/views/product/Detail.vue

@@ -31,7 +31,7 @@
                     含 <span>{{ info.royalties }}%</span> 版税
                 </div>
                 <div class="flex1"></div>
-                <div class="text">
+                <div class="text" v-if="info.salable && info.total > 0">
                     <span>已售 {{ info.sale }}</span>
                     <span>剩余 {{ info.stock }}</span>
                 </div>

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 317 - 317
src/main/nine-space/yarn.lock


binární
src/main/pc-space/src/assets/icon-xiugaichengg@3x.png


binární
src/main/pc-space/src/assets/renzheng-icon-geren@3x.png


binární
src/main/pc-space/src/assets/renzheng-icon-qiye@3x.png


+ 2 - 6
src/main/pc-space/src/components/FansInfo.vue

@@ -3,7 +3,7 @@
         <div class="top"></div>
         <!-- <img class="top" :src="userInfo.avatar" alt="" /> -->
         <div class="top1">
-            <div class="title" @click="Fans">
+            <div class="title" @click="all('/fans')">
                 <div class="title1">{{ userInfo.follows }}</div>
                 <div class="title2" :class="{ active }">粉丝</div>
             </div>
@@ -24,11 +24,7 @@ export default {
             active: ''
         };
     },
-    methods: {
-        Fans() {
-            this.$router.push('/fans');
-        }
-    },
+    methods: {},
     computed: {
         ...mapState(['userInfo'])
     }

+ 34 - 11
src/main/pc-space/src/components/PageHeader.vue

@@ -27,10 +27,10 @@
                             <el-dropdown-item command="nickname" style="word-break: keep-all"
                                 >{{ userInfo.username }}
                             </el-dropdown-item>
-                            <div class="border1"></div>
+                            <div class="border"></div>
                             <el-dropdown-item command="supply" style="word-break: keep-all">去认证 </el-dropdown-item>
                             <el-dropdown-item command="edit" style="word-break: keep-all">编辑资料 </el-dropdown-item>
-                            <div class="border1"></div>
+                            <div class="border"></div>
                             <el-dropdown-item command="logout">退出登录 </el-dropdown-item>
                         </el-dropdown-menu>
                     </el-dropdown>
@@ -60,6 +60,11 @@ export default {
             return this.userInfo.avatar
                 ? this.userInfo.avatar
                 : 'https://zhirongip.oss-cn-hangzhou.aliyuncs.com/image/2021-06-30-17-02-42uzAOUPcw.jpeg';
+        },
+        type() {
+            return this.userInfo.authorities.find(item => {
+                return item.name == 'ROLE_INSTITUTION' || item.name == 'ROLE_PERSONAL';
+            });
         }
     },
     mounted() {
@@ -87,6 +92,24 @@ export default {
             } else if (command === 'logout') {
                 localStorage.removeItem('webToken');
                 this.$router.push('/');
+            } else if (command === 'supply') {
+                if (this.type) {
+                    if (this.type.name == 'ROLE_INSTITUTION') {
+                        this.$nextTick(() => {
+                            // if (this.institutionInfo.status == 'PASS') {
+                            this.$router.push('/enterpriseauthentication');
+                            // }
+                        });
+                    } else if (this.type.name == 'ROLE_PERSONAL') {
+                        this.$nextTick(() => {
+                            // if (this.institutionInfo.status == 'PASS') {
+                            this.$router.push('/userauthentication');
+                            // }
+                        });
+                    }
+                } else {
+                    this.$router.push('/authentication');
+                }
             }
         }
     }
@@ -97,23 +120,23 @@ export default {
     font-weight: bold;
     text-align: center;
 }
-.border1 {
+.border {
     margin: 6px 16px;
     height: 1px;
     background: #f2f3f5;
 }
+/deep/ .el-tabs__nav-scroll {
+    padding-left: 13px;
+}
+/deep/ .el-tabs__item {
+    font-weight: bold;
+    font-size: 14px;
+    width: 300px;
+}
 .container {
     height: 90px;
     background: #0f1111;
     width: 100%;
-    // /deep/ .el-tabs__nav-scroll {
-    //     padding-left: 13px;
-    // }
-    // /deep/ .el-tabs__item {
-    //     font-weight: bold;
-    //     font-size: 14px;
-    //     width: 300px;
-    // }
 
     .header {
         display: flex;

+ 24 - 24
src/main/pc-space/src/components/SecurityPhone.vue

@@ -45,30 +45,30 @@ export default {
             this.sendCode(this.ruleForm.phone);
         },
         phoneSend() {
-            if (!/^1[3-9]\d{9}$/.test(this.ruleForm.phone)) {
-                this.$message.error('请输入正确手机号');
-                return;
-            }
-            this.$http
-                .get('/sms/verify', {
-                    phone: this.ruleForm.phone,
-                    code: this.ruleForm.code
-                })
-                .then(() => {
-                    this.$http
-                        .post('/user/changePhone', { phone: this.ruleForm.phone })
-                        .then(() => {
-                            this.$message.warning('更改成功');
-                            localStorage.removeItem('webToken');
-                            this.$store.commit('updateUserInfo', null);
-                        })
-                        .catch(e => {
-                            this.$message.error(e.error);
-                        });
-                })
-                .catch(e => {
-                    this.$message.error(e.error);
-                });
+            // if (!/^1[3-9]\d{9}$/.test(this.ruleForm.phone)) {
+            //     this.$message.error('请输入正确手机号');
+            //     return;
+            // }
+            // this.$http
+            //     .get('/sms/verify', {
+            //         phone: this.ruleForm.phone,
+            //         code: this.ruleForm.code
+            //     })
+            //     .then(() => {
+            //         this.$http
+            //             .post('/user/changePhone', { phone: this.ruleForm.phone })
+            //             .then(() => {
+            //                 this.$message.warning('更改成功');
+            //                 this.$store.commit('updateUserInfo', null);
+            //             })
+            //             .catch(e => {
+            //                 this.$message.error(e.error);
+            //             });
+            //     })
+            //     .catch(e => {
+            //         this.$message.error(e.error);
+            //     });
+            this.$router.push('/securitysuccess');
         },
         Jump() {
             this.$emit('Jump');

+ 136 - 0
src/main/pc-space/src/components/TransactionPhone.vue

@@ -0,0 +1,136 @@
+<template>
+    <div class="container">
+        <el-steps :space="180" :active="2" align-center>
+            <el-step title="验证当前手机号"></el-step>
+            <el-step title="绑定新手机号"></el-step>
+            <el-step title="完成"></el-step>
+        </el-steps>
+        <el-form :label-position="labelPosition" ref="form2" label-width="340px" :model="ruleForm" :rules="rules">
+            <el-form-item label="新手机号" prop="phone">
+                <el-input style="width: 300px" v-model="ruleForm.phone" placeholder="请输入新的手机号码"></el-input>
+            </el-form-item>
+            <el-form-item label="验证码" prop="code">
+                <el-input style="width: 300px" v-model="ruleForm.code" placeholder="请输入4位验证码">
+                    <span @click="send" style="color: #00ffcb; cursor: pointer; font-size: 13px" slot="suffix">{{
+                        time === 0 ? '发送验证码' : `重新发送${time}s`
+                    }}</span>
+                </el-input>
+            </el-form-item>
+        </el-form>
+        <div class="btn">
+            <el-button type="primary" @click="phoneSend">确认</el-button>
+            <div class="btn2" @click="Jump">返回</div>
+        </div>
+    </div>
+</template>
+<script>
+import { mapState } from 'vuex';
+export default {
+    data() {
+        return {
+            labelPosition: 'right',
+            ruleForm: {
+                phone: '',
+                code: ''
+            },
+            time: 0,
+            rules: {}
+        };
+    },
+    computed: {
+        ...mapState(['userInfo'])
+    },
+    methods: {
+        send() {
+            this.sendCode(this.ruleForm.phone);
+        },
+        phoneSend() {
+            // if (!/^1[3-9]\d{9}$/.test(this.ruleForm.phone)) {
+            //     this.$message.error('请输入正确手机号');
+            //     return;
+            // }
+            // this.$http
+            //     .get('/sms/verify', {
+            //         phone: this.ruleForm.phone,
+            //         code: this.ruleForm.code
+            //     })
+            //     .then(() => {
+            //         this.$http
+            //             .post('/user/changePhone', { phone: this.ruleForm.phone })
+            //             .then(() => {
+            //                 this.$message.warning('更改成功');
+            //                 this.$store.commit('updateUserInfo', null);
+            //             })
+            //             .catch(e => {
+            //                 this.$message.error(e.error);
+            //             });
+            //     })
+            //     .catch(e => {
+            //         this.$message.error(e.error);
+            //     });
+            this.$router.push('/transactionsuccess');
+        },
+        Jump() {
+            this.$emit('Jump');
+        }
+    }
+};
+</script>
+<style lang="less" scoped>
+/deep/ .el-steps {
+    margin-left: 385px;
+}
+/deep/.el-step:nth-child(1) {
+    .el-step__icon {
+        background: linear-gradient(143deg, #00ffcb 0%, #006eff 100%, #006eff 100%);
+        color: #ffffff;
+        border: 0;
+    }
+}
+/deep/.el-step:nth-child(2) {
+    .el-step__icon {
+        background: linear-gradient(143deg, #00ffcb 0%, #006eff 100%, #006eff 100%) !important;
+        color: #ffffff;
+        border: 0;
+    }
+}
+/deep/.el-step:nth-child(3) {
+    .el-step__icon {
+        background: #c8c9cc;
+        color: #ffffff;
+        border: 0;
+    }
+}
+/deep/ .el-step__title.is-process {
+    font-weight: 400;
+    color: #939599;
+}
+/deep/ .el-step__title.is-wait {
+    color: #939599;
+}
+.container {
+    .btn {
+        margin: 80px 0 0 110px;
+        display: flex;
+        justify-content: center;
+        .btn2 {
+            width: 130px;
+            height: 36px;
+            background: #c4c7cc;
+            border-radius: 4px;
+            cursor: pointer;
+            color: #ffffff;
+            font-size: 13px;
+            text-align: center;
+            line-height: 36px;
+            margin-left: 20px;
+        }
+    }
+    /deep/ .el-button {
+        width: 130px;
+        height: 36px;
+        background: linear-gradient(133deg, #00ffcb 0%, #006eff 100%);
+        border-radius: 4px;
+    }
+}
+</style>

+ 3 - 0
src/main/pc-space/src/mixins/common.js

@@ -58,6 +58,9 @@ export default {
                 return Promise.resolve(res.data);
             });
         },
+        all(link) {
+            this.$router.push(link);
+        },
         getImg(imgs = '', type = '', size = 300) {
             if (!imgs) {
                 imgs = '';

+ 34 - 2
src/main/pc-space/src/router/index.js

@@ -103,7 +103,39 @@ const routes = [
                 name: 'security',
                 component: () => import('../views/user/Security.vue'),
                 meta: {
-                    title: '账户与安全'
+                    title: '修改登录账号'
+                }
+            },
+            {
+                path: '/securitysuccess',
+                name: 'securitysuccess',
+                component: () => import('../views/user/SecuritySuccess.vue'),
+                meta: {
+                    title: '修改登录账号'
+                }
+            },
+            {
+                path: '/transaction',
+                name: 'transaction',
+                component: () => import('../views/user/Transaction.vue'),
+                meta: {
+                    title: '修改交易密码'
+                }
+            },
+            {
+                path: '/transactionsuccess',
+                name: 'transactionsuccess',
+                component: () => import('../views/user/TransactionSuccess.vue'),
+                meta: {
+                    title: '修改交易密码'
+                }
+            },
+            {
+                path: '/modifypad',
+                name: 'modifypad',
+                component: () => import('../views/user/Modifypad.vue'),
+                meta: {
+                    title: '修改密码'
                 }
             },
             {
@@ -127,7 +159,7 @@ const routes = [
                 name: 'enterpriseauthentication',
                 component: () => import('../views/user/EnterpriseAuthentication.vue'),
                 meta: {
-                    title: '个人认证'
+                    title: '企业认证'
                 }
             }
         ]

+ 5 - 1
src/main/pc-space/src/views/Index.vue

@@ -10,7 +10,11 @@
                     this.$route.name !== 'security' &&
                     this.$route.name !== 'authentication' &&
                     this.$route.name !== 'userauthentication' &&
-                    this.$route.name !== 'enterpriseauthentication'
+                    this.$route.name !== 'enterpriseauthentication' &&
+                    this.$route.name !== 'transactionsuccess' &&
+                    this.$route.name !== 'transaction' &&
+                    this.$route.name !== 'securitysuccess' &&
+                    this.$route.name !== 'modifypad'
                 "
             >
                 <div class="footer center-content">

+ 42 - 11
src/main/pc-space/src/views/user/AccountData.vue

@@ -23,7 +23,7 @@
                 </div>
                 <div class="text4">修改</div>
             </div>
-            <div class="box">
+            <!-- <div class="box">
                 <div class="text">
                     <div class="text1">
                         <span class="el-icon-document"></span>
@@ -34,7 +34,7 @@
                     </div>
                 </div>
                 <div class="text4">修改</div>
-            </div>
+            </div> -->
             <div class="box">
                 <div class="text">
                     <div class="text1">
@@ -55,7 +55,7 @@
                     <div class="text2">登录账号</div>
                     <div class="text3">{{ Phone }}</div>
                 </div>
-                <div class="text4" @click="Security">修改</div>
+                <div class="text4" @click="all('security')">修改</div>
             </div>
             <div class="box">
                 <div class="text">
@@ -65,7 +65,7 @@
                     <div class="text2">登录密码</div>
                     <div class="text3">********</div>
                 </div>
-                <div class="text4">修改</div>
+                <div class="text4" @click="all('modifypad')">修改</div>
             </div>
             <div class="box">
                 <div class="text">
@@ -75,7 +75,7 @@
                     <div class="text2">交易密码</div>
                     <div class="text3">付款时用来认证身份信息</div>
                 </div>
-                <div class="text4">修改</div>
+                <div class="text4" @click="all('/transaction')">修改</div>
             </div>
             <div class="border"></div>
             <div class="name">认证信息</div>
@@ -85,7 +85,7 @@
                         <span class="el-icon-lock"></span>
                     </div>
                     <div class="text2">实名认证</div>
-                    <div class="text3">当前未实名认证</div>
+                    <div class="text3">{{ Status }}</div>
                 </div>
                 <div class="text4" @click="Auths">修改</div>
             </div>
@@ -103,15 +103,46 @@ export default {
     computed: {
         ...mapState(['userInfo']),
         Phone() {
-            return this.userInfo.phone.slice(0, 2) + ' ******* ' + this.userInfo.phone.slice(9, 11);
+            return this.userInfo.phone.slice(0, 3) + ' **** ' + this.userInfo.phone.slice(7, 11);
+        },
+        type() {
+            return this.userInfo.authorities.find(item => {
+                return item.name == 'ROLE_INSTITUTION' || item.name == 'ROLE_PERSONAL';
+            });
+        },
+        Status() {
+            if (this.userInfo.authStatus === 'NOT_AUTH') {
+                return '未认证';
+            } else if (this.userInfo.authStatus === 'PENDING') {
+                return '认证中';
+            } else if (this.userInfo.authStatus === 'SUCCESS') {
+                return '已认证';
+            } else {
+                return '认证失败';
+            }
         }
     },
     methods: {
-        Security() {
-            this.$router.push('/security');
-        },
         Auths() {
-            this.$router.push('/authentication');
+            if (this.type) {
+                if (this.type.name == 'ROLE_INSTITUTION') {
+                    this.$nextTick(() => {
+                        // if (this.institutionInfo.status == 'PASS') {
+                        this.$router.push('/enterpriseauthentication');
+                        // }
+                    });
+                } else if (this.type.name == 'ROLE_PERSONAL') {
+                    this.$nextTick(() => {
+                        // if (this.institutionInfo.status == 'PASS') {
+                        this.$router.push('/userauthentication');
+                        // }
+                    });
+                }
+            } else {
+                this.$router.push('/authentication');
+            }
+            // ROLE_INSTITUTION 企业
+            // ROLE_PERSONAL 个人
         }
     }
 };

+ 4 - 4
src/main/pc-space/src/views/user/Authentication.vue

@@ -4,16 +4,16 @@
         <div class="name">认证信息暂不允许修改,且无法替换认证类型,请谨慎选择</div>
         <div class="box">
             <div class="box1">
-                <img class="img" src="" alt="" />
+                <img class="img" src="../../assets/renzheng-icon-geren@3x.png" alt="" />
                 <div class="text1">个人认证</div>
                 <div class="text2">个人通过实名认证后,绑定相对应银 行卡即可进行交易售卖</div>
-                <el-button>重新登录</el-button>
+                <el-button @click="all('/userauthentication')">个人认证</el-button>
             </div>
             <div class="box1">
-                <img class="img" src="" alt="" />
+                <img class="img" src="../../assets/renzheng-icon-qiye@3x.png" alt="" />
                 <div class="text1">企业认证</div>
                 <div class="text2">企业通过营业执照认证后,并签署 相应合同即可进行售卖,冰箱周部 分定制化服务</div>
-                <el-button>重新登录</el-button>
+                <el-button @click="all('/enterpriseauthentication')">企业认证</el-button>
             </div>
         </div>
     </div>

+ 148 - 84
src/main/pc-space/src/views/user/EnterpriseAuthentication.vue

@@ -4,41 +4,67 @@
         <div class="box">
             <div class="name">企业认证 <span>账户实名认证后不能修改</span></div>
             <div class="border"></div>
-            <el-form ref="form" :label-position="labelPosition" :model="sizeForm" :rules="registerRule">
-                <el-form-item label="法人姓名" prop="nickname">
-                    <el-input
-                        style="width: 300px"
-                        placeholder="请输入您的真实姓名"
-                        v-model="sizeForm.nickname"
-                    ></el-input>
-                </el-form-item>
+            <div class="fail" v-if="userInfo.authStatus === 'PENDING' || userInfo.authStatus === 'FAIL'">
+                <img class="text1" src="../../assets/icon-xiugaichengg@3x.png" alt="" />
+                <div class="text2">已提交企业认证</div>
+                <div class="text3">等待后台审核信息,预计1-3个工作日内完成</div>
+                <div class="botn" @click="Jump">返回</div>
+            </div>
+            <div v-if="userInfo.authStatus === 'NOT_AUTH' || userInfo.authStatus === 'SUCCESS'">
+                <el-form ref="form" :label-position="labelPosition" :model="sizeForm" :rules="registerRule">
+                    <el-form-item label="法人姓名" prop="nickname">
+                        <el-input
+                            style="width: 300px"
+                            placeholder="请输入您的真实姓名"
+                            v-model="sizeForm.nickname"
+                        ></el-input>
+                    </el-form-item>
+                    <el-form-item label="法人身份证号" prop="IDs">
+                        <el-input
+                            style="width: 300px"
+                            placeholder="请输入18位身份证号"
+                            v-model="sizeForm.IDs"
+                        ></el-input>
+                    </el-form-item>
 
-                <el-form-item label="本人身份证 (正面图)" prop="photoFront">
-                    <single-upload class="upload" v-model="sizeForm.photoFront"></single-upload>
-                </el-form-item>
-                <div class="description">{{ explain }}</div>
-                <el-form-item label="本人身份证 (反面图)" prop="photoBackside">
-                    <single-upload class="upload" v-model="sizeForm.photoBackside"></single-upload>
-                </el-form-item>
-                <div class="description">{{ explain }}</div>
-                <el-form-item label="企业名称" prop="email">
-                    <el-input style="width: 300px" placeholder="请输入企业名称" v-model="sizeForm.email"></el-input>
-                </el-form-item>
-                <el-form-item label="工商营业执照注册号/统一社会信用代码" prop="documentNumber">
-                    <el-input
-                        style="width: 300px"
-                        placeholder="请输入18位身份证号"
-                        v-model="sizeForm.documentNumber"
-                    ></el-input>
-                </el-form-item>
-                <el-form-item label="营业执照" prop="photoBackside">
-                    <single-upload class="upload" v-model="sizeForm.photoBackside"></single-upload>
-                </el-form-item>
-                <div class="description">请上传清晰图片,格式JPG或PNG,大小不得超过 2 M</div>
-            </el-form>
-            <div class="btn">
-                <el-button type="primary" @click="onSubmit">提交审核</el-button>
-                <div class="btn1" @click="Jump">返回</div>
+                    <el-form-item label="法人身份证 (正面图)" prop="photoFront">
+                        <single-upload class="upload" v-model="sizeForm.photoFront"></single-upload>
+                    </el-form-item>
+                    <div class="description">{{ explain }}</div>
+                    <el-form-item label="法人身份证 (反面图)" prop="photoBackside">
+                        <single-upload class="upload" v-model="sizeForm.photoBackside"></single-upload>
+                    </el-form-item>
+                    <div class="description">{{ explain }}</div>
+                    <el-form-item label="企业名称" prop="name">
+                        <el-input style="width: 300px" placeholder="请输入企业名称" v-model="sizeForm.name"></el-input>
+                    </el-form-item>
+                    <el-form-item label="工商营业执照注册号/统一社会信用代码" prop="uscc">
+                        <el-input
+                            style="width: 300px"
+                            placeholder="工商营业执照注册号/统一社会信用代码"
+                            v-model="sizeForm.uscc"
+                        ></el-input>
+                    </el-form-item>
+                    <el-form-item prop="establishedAt" label="工商营业执照有效日期截止时间">
+                        <el-date-picker
+                            v-model="sizeForm.establishedAt"
+                            type="date"
+                            style="width: 300px"
+                            value-format="yyyy-MM-dd"
+                            placeholder="选择日期"
+                        >
+                        </el-date-picker>
+                    </el-form-item>
+                    <div class="description">证照有效截止日期需大于60天,如证照上日期为长期或无,请勾选长期</div>
+                    <el-form-item label="营业执照" prop="businessLicense">
+                        <single-upload class="upload" v-model="sizeForm.businessLicense"></single-upload>
+                    </el-form-item>
+                    <div class="description">请上传清晰图片,格式JPG或PNG,大小不得超过 2 M</div>
+                </el-form>
+                <div class="btn">
+                    <el-button type="primary" @click="onSubmit">提交审核</el-button>
+                    <div class="btn1" @click="Jump">返回</div>
+                </div>
             </div>
         </div>
     </div>
@@ -52,21 +78,27 @@ export default {
             labelPosition: 'right',
             sizeForm: {
                 nickname: '',
-                documentNumber: '',
+                uscc: '',
                 photoFront: '',
+                businessLicense: '',
                 photoBackside: '',
-                phone: '',
-                email: '',
-                type: 'ID_CARD'
+                name: '',
+                establishedAt: '',
+                // phone: '',
+                IDs: ''
             },
             typeFl: {},
             registerRule: {
-                documentNumber: { required: true, message: '请输入您的证件编号', trigger: 'blur' },
+                uscc: { required: true, min: 18, max: 18, message: '请输入18位统一社会信用代码', trigger: 'blur' },
+                IDs: { required: true, min: 18, max: 18, message: '请输入18位身份证号', trigger: 'blur' },
                 nickname: { required: true, message: '请输入您的真实姓名', trigger: 'blur' },
-                phone: { required: true, message: '请输入您的联系方式', trigger: 'blur' },
+                establishedAt: { required: true, message: '请选择', trigger: 'blur' },
+                name: { required: true, message: '请输入企业名称', trigger: 'blur' },
+                // phone: { required: true, message: '请输入您的联系方式', trigger: 'blur' },
                 email: { type: 'email', required: true, message: '请输入您的邮箱', trigger: 'blur' },
-                photoFront: { required: true, message: '请添加您的身份证(正面)', trigger: 'blur' },
-                photoBackside: { required: true, message: '请添加您的身份证(反面)', trigger: 'blur' }
+                photoFront: { required: true, message: '请添加您的法人身份证(正面)', trigger: 'blur' },
+                photoBackside: { required: true, message: '请添加您的法人身份证(反面)', trigger: 'blur' },
+                businessLicense: { required: true, message: '请添加营业执照', trigger: 'blur' }
             }
         };
     },
@@ -85,25 +117,26 @@ export default {
             });
         }
     },
-    created() {
-        this.$http
-            .get('/personal/my')
-            .then(res => {
-                this.sizeForm = {
-                    ...res,
-                    nickname: this.userInfo.nickname,
-                    phone: this.userInfo.phone,
-                    avatar: this.userInfo.avatar,
-                    email: this.userInfo.email
-                };
-            })
-            .catch(e => {
-                console.log(e);
-            });
-        this.sizeForm.nickname == this.userInfo.nickname, this.sizeForm.phone == this.userInfo.phone;
-    },
+    // created() {
+    //     this.$http
+    //         .get('/personal/my')
+    //         .then(res => {
+    //             this.sizeForm = {
+    //                 ...res,
+    //                 nickname: this.userInfo.nickname,
+    //                 phone: this.userInfo.phone,
+    //                 avatar: this.userInfo.avatar,
+    //                 email: this.userInfo.email
+    //             };
+    //         })
+    //         .catch(e => {
+    //             console.log(e);
+    //         });
+    // },
     methods: {
-        Jump() {},
+        Jump() {
+            this.$router.go(-1);
+        },
         onSubmit() {
             this.$refs.form.validate(valid => {
                 if (valid) {
@@ -124,36 +157,34 @@ export default {
                 ...this.userInfo,
                 nickname: this.sizeForm.nickname,
                 phone: this.sizeForm.phone,
-                avatar: this.sizeForm.avatar,
+                avatar: this.userInfo.avatar,
                 email: this.sizeForm.email
             };
             userInfo.authorities = [
                 ...userInfo.authorities,
                 {
-                    name: 'ROLE_PERSONAL'
+                    name: 'ROLE_INSTITUTION'
                 }
             ];
-
-            this.$http
-                .post('user/save', userInfo, {
-                    body: 'json'
-                })
-                .then(res => {
-                    this.sizeForm.avatar = res.avatar;
-                    this.$store.dispatch('getUserInfo');
-                    return this.$http.post('/personal/save', data, { body: 'json' }).then(res => {
-                        console.log(res);
-                        this.sizeForm = res;
-                        this.saving = false;
-                        this.$store.dispatch('getUserInfo');
-                        // this.$router.push('/Authentication');
-                    });
-                })
-                .catch(e => {
-                    console.log(e);
-                    this.saving = false;
-                    this.$message.error(e.error);
-                });
+            console.log(userInfo);
+            // this.$http
+            //     .post('user/save', userInfo, {
+            //         body: 'json'
+            //     })
+            //     .then(res => {
+            //         this.sizeForm.avatar = res.avatar;
+            //         this.$store.dispatch('getUserInfo');
+            //         return this.$http.post('/institution/save', data, { body: 'json' }).then(res => {
+            //             this.sizeForm = res;
+            //             this.saving = false;
+            //             this.$store.dispatch('getUserInfo');
+            //         });
+            //     })
+            //     .catch(e => {
+            //         console.log(e);
+            //         this.saving = false;
+            //         this.$message.error(e.error);
+            //     });
         }
     }
 };
@@ -192,6 +223,7 @@ export default {
             width: 130px;
             height: 36px;
             background: #c4c7cc;
+            cursor: pointer;
             border-radius: 4px;
             color: #ffffff;
             font-size: 13px;
@@ -216,14 +248,46 @@ export default {
         margin: -11px 0 20px 294px;
     }
     .box {
-        height: 1277px;
         background: #1c1e26;
         padding: 17px 16px;
+        padding-bottom: 200px;
         .border {
             height: 1px;
             background: #494a4d;
             margin: 17px 0 60px;
         }
+        .fail {
+            text-align: center;
+            .text1 {
+                width: 68px;
+                height: 68px;
+            }
+            .text2 {
+                font-size: 20px;
+                font-weight: bold;
+                color: #00ffcb;
+                line-height: 26px;
+                margin: 20px 0 10px;
+            }
+            .text3 {
+                font-size: 14px;
+                font-weight: 400;
+                color: #ffffff;
+                line-height: 24px;
+            }
+            .botn {
+                width: 130px;
+                height: 36px;
+                font-size: 13px;
+                color: #ffffff;
+                cursor: pointer;
+                line-height: 36px;
+                text-align: center;
+                background: linear-gradient(133deg, #00ffcb 0%, #006eff 100%);
+                border-radius: 4px;
+                margin: 87px 0 0 518px;
+            }
+        }
         .name {
             font-size: 16px;
             font-weight: bold;

+ 216 - 0
src/main/pc-space/src/views/user/Modifypad.vue

@@ -0,0 +1,216 @@
+<template>
+    <div class="container center-content">
+        <div class="title">账户与安全</div>
+        <div class="box">
+            <div class="name">
+                <div class="name1">修改登录密码</div>
+                <div class="name2">修改密码后立即生效,下次登录请使用新密码</div>
+            </div>
+            <div class="border"></div>
+            <div class="content">
+                <el-form
+                    :label-position="labelPosition"
+                    label-width="343px"
+                    :model="ruleForm"
+                    ref="form"
+                    :rules="rules"
+                >
+                    <el-form-item label="原密码" prop="password">
+                        <el-input
+                            style="width: 300px"
+                            type="password"
+                            v-model="ruleForm.password"
+                            placeholder="请输入原密码"
+                        ></el-input>
+                    </el-form-item>
+                    <el-form-item label="新密码" prop="pass">
+                        <el-input
+                            style="width: 300px"
+                            type="password"
+                            v-model="ruleForm.pass"
+                            placeholder="请输入新密码,8-16位字母数字组合"
+                            autocomplete="off"
+                        ></el-input>
+                    </el-form-item>
+                    <el-form-item label="确认密码" prop="checkPass">
+                        <el-input
+                            style="width: 300px"
+                            type="password"
+                            v-model="ruleForm.checkPass"
+                            placeholder="请再次输出新密码"
+                            autocomplete="off"
+                        ></el-input>
+                    </el-form-item>
+                </el-form>
+                <div class="btn">
+                    <el-button type="primary" @click="codeSend">确认</el-button>
+                    <div class="btn2" @click="all('/accountdata')">返回</div>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+export default {
+    data() {
+        return {
+            labelPosition: 'right',
+            ruleForm: {
+                pass: '',
+                password: ''
+            },
+            rules: {
+                checkPass: [
+                    {
+                        validator: (rule, value, callback) => {
+                            if (value !== this.ruleForm.pass) {
+                                callback(new Error('两次密码输入不一致'));
+                            } else {
+                                callback();
+                            }
+                        },
+                        trigger: 'blur'
+                    },
+                    { required: true, message: '请再次输入密码', trigger: 'blur' }
+                ]
+            }
+        };
+    },
+    methods: {
+        codeSend() {
+            this.$refs.form.validate(valid => {
+                if (valid) {
+                    this.$http
+                        .post('/user/changePw', {
+                            newPassword: this.ruleForm.pass,
+                            password: this.ruleForm.password
+                        })
+                        .then(() => {
+                            this.$message.warning('修改成功,请重新登录');
+                            localStorage.removeItem('webToken');
+                            this.$store.commit('updateUserInfo', null);
+                        })
+                        .then(() => {
+                            this.$router.push('/Login');
+                        })
+                        .catch(e => {
+                            this.$message.error(e.error);
+                        });
+                }
+            });
+        }
+    }
+};
+</script>
+
+<style lang="less" scoped>
+/deep/ .el-steps {
+    margin-left: 385px;
+}
+/deep/.el-step:nth-child(1) {
+    .el-step__icon {
+        background: linear-gradient(143deg, #00ffcb 0%, #006eff 100%, #006eff 100%);
+        color: #ffffff;
+        border: 0;
+    }
+}
+/deep/.el-step:nth-child(2) {
+    .el-step__icon {
+        background: #c8c9cc;
+        color: #ffffff;
+        border: 0;
+    }
+}
+/deep/.el-step:nth-child(3) {
+    .el-step__icon {
+        background: #c8c9cc;
+        color: #ffffff;
+        border: 0;
+    }
+}
+/deep/ .el-step__title.is-process {
+    font-weight: 400;
+    color: #939599;
+}
+/deep/ .el-step__title.is-wait {
+    color: #939599;
+}
+.container {
+    .btn {
+        display: flex;
+        justify-content: center;
+        margin: 80px 0 0 110px;
+        .btn2 {
+            width: 130px;
+            height: 36px;
+            background: #c4c7cc;
+            border-radius: 4px;
+            cursor: pointer;
+            color: #ffffff;
+            font-size: 13px;
+            text-align: center;
+            line-height: 36px;
+            margin-left: 20px;
+        }
+    }
+    /deep/ .el-button {
+        width: 130px;
+        height: 36px;
+        background: linear-gradient(133deg, #00ffcb 0%, #006eff 100%);
+        border-radius: 4px;
+    }
+    /deep/ .el-step__title {
+        font-size: 13px;
+    }
+    /deep/ .el-form-item__label {
+        color: #ffffff;
+        margin-left: 175px;
+    }
+    /deep/ .el-form {
+        margin-top: 66px;
+    }
+    /deep/ .el-input__inner {
+        border: 1px solid #494a4d;
+        background: #1c1e26;
+        color: #ffffff;
+    }
+    .title {
+        height: 42px;
+        font-size: 32px;
+        font-weight: 400;
+        color: #ffffff;
+        line-height: 42px;
+        padding: 60px 0;
+    }
+    .box {
+        height: 539px;
+        background: #1c1e26;
+    }
+    .name {
+        .flex();
+        padding: 17px 16px;
+        .name1 {
+            font-size: 16px;
+            font-weight: bold;
+            color: #ffffff;
+            line-height: 26px;
+        }
+        .name2 {
+            font-size: 12px;
+            font-weight: 400;
+            color: #939599;
+            margin-left: 10px;
+        }
+    }
+    .phone {
+        color: #ffffff;
+        font-size: 18px;
+    }
+    .border {
+        height: 1px;
+        background: #494a4d;
+        margin: 0 16px 40px;
+    }
+}
+</style>

+ 3 - 8
src/main/pc-space/src/views/user/Security.vue

@@ -1,6 +1,6 @@
 <template>
     <div class="container center-content">
-        <div class="title">变更手机号</div>
+        <div class="title">账户与安全</div>
         <div class="box">
             <div class="name">
                 <div class="name1">修改登录账户</div>
@@ -36,7 +36,7 @@
                 </el-form>
                 <div class="btn">
                     <el-button type="primary" @click="codeSend">确认</el-button>
-                    <div class="btn2" @click="Jump2">返回</div>
+                    <div class="btn2" @click="all('/accountdata')">返回</div>
                 </div>
             </div>
             <div v-else>
@@ -87,9 +87,6 @@ export default {
             return this.userInfo.phone.slice(0, 3) + ' **** ' + this.userInfo.phone.slice(7, 11);
         }
     },
-    // created() {
-    //     this.ruleForm.phone = this.userInfo.phone;
-    // },
     methods: {
         send() {
             this.sendMsg(this.ruleForm.phone);
@@ -113,9 +110,6 @@ export default {
         Jump() {
             this.flag = true;
             this.ruleForm.phone = this.userInfo.phone;
-        },
-        Jump2() {
-            this.$router.push('/accountdata');
         }
     }
 };
@@ -190,6 +184,7 @@ export default {
     /deep/ .el-input__inner {
         border: 1px solid #494a4d;
         background: #1c1e26;
+        color: #ffffff;
     }
     .title {
         height: 42px;

+ 149 - 0
src/main/pc-space/src/views/user/SecuritySuccess.vue

@@ -0,0 +1,149 @@
+<template>
+    <div class="container center-content">
+        <div class="title">账户与安全</div>
+        <div class="box">
+            <div class="name">
+                <div class="name1">修改登录账户</div>
+                <div class="name2">修改手机号即同时修改登录账户名称</div>
+            </div>
+            <div class="border"></div>
+            <div class="content">
+                <el-steps :space="180" :active="3" align-center>
+                    <el-step title="验证当前手机号"></el-step>
+                    <el-step title="绑定新手机号"></el-step>
+                    <el-step title="完成"></el-step>
+                </el-steps>
+                <div class="fail">
+                    <img class="text1" src="../../assets/icon-xiugaichengg@3x.png" alt="" />
+                    <div class="text2">修改成功,下次登录请使用新账号!</div>
+                    <div class="botn" @click="Login">重新登录</div>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+import eventBus from '../../eventBus';
+export default {
+    data() {
+        return {
+            labelPosition: 'right'
+        };
+    },
+    computed: {},
+    methods: {
+        codeSend() {
+            this.$http
+                .get('/sms/verify', {
+                    phone: this.ruleForm.phone,
+                    code: this.ruleForm.code
+                })
+                .then(() => {
+                    this.ruleForm.code = '';
+                    this.ruleForm.phone = '';
+                    this.flag = false;
+                })
+                .catch(e => {
+                    this.$message.error(e.error);
+                });
+        },
+        Login() {
+            eventBus.$emit('login');
+        }
+    }
+};
+</script>
+
+<style lang="less" scoped>
+/deep/ .el-steps {
+    margin-left: 385px;
+}
+/deep/.el-step:nth-child(1) {
+    .el-step__icon {
+        background: linear-gradient(143deg, #00ffcb 0%, #006eff 100%, #006eff 100%);
+        color: #ffffff;
+        border: 0;
+    }
+}
+/deep/.el-step:nth-child(2) {
+    .el-step__icon {
+        background: linear-gradient(143deg, #00ffcb 0%, #006eff 100%, #006eff 100%);
+        color: #ffffff;
+        border: 0;
+    }
+}
+/deep/.el-step:nth-child(3) {
+    .el-step__icon {
+        background: linear-gradient(143deg, #00ffcb 0%, #006eff 100%, #006eff 100%);
+        color: #ffffff;
+        border: 0;
+    }
+}
+.container {
+    .fail {
+        text-align: center;
+        margin-left: 100px;
+        .text1 {
+            width: 68px;
+            height: 68px;
+            margin-top: 60px;
+        }
+        .text2 {
+            font-size: 14px;
+            font-weight: 400;
+            color: #ffffff;
+            line-height: 24px;
+            margin-top: 20px;
+        }
+        .botn {
+            width: 130px;
+            height: 36px;
+            font-size: 13px;
+            color: #ffffff;
+            cursor: pointer;
+            line-height: 36px;
+            text-align: center;
+            background: linear-gradient(133deg, #00ffcb 0%, #006eff 100%);
+            border-radius: 4px;
+            margin: 59px 0 0 488px;
+        }
+    }
+    /deep/ .el-step__title {
+        font-size: 13px;
+    }
+    .title {
+        height: 42px;
+        font-size: 32px;
+        font-weight: 400;
+        color: #ffffff;
+        line-height: 42px;
+        padding: 60px 0;
+    }
+    .box {
+        height: 539px;
+        background: #1c1e26;
+    }
+    .name {
+        .flex();
+        padding: 17px 16px;
+        .name1 {
+            font-size: 16px;
+            font-weight: bold;
+            color: #ffffff;
+            line-height: 26px;
+        }
+        .name2 {
+            font-size: 12px;
+            font-weight: 400;
+            color: #939599;
+            margin-left: 10px;
+        }
+    }
+    .border {
+        height: 1px;
+        background: #494a4d;
+        margin: 0 16px 40px;
+    }
+}
+</style>

+ 227 - 0
src/main/pc-space/src/views/user/Transaction.vue

@@ -0,0 +1,227 @@
+<template>
+    <div class="container center-content">
+        <div class="title">修改交易密码</div>
+        <div class="box">
+            <div class="name">
+                <div class="name1">修改交易密码</div>
+                <div class="name2">修改交易密码后立即生效,下次交易请使用新密码</div>
+            </div>
+            <div class="border"></div>
+            <div class="content" v-if="flag">
+                <el-steps :space="180" :active="1" align-center>
+                    <el-step title="验证当前手机号"></el-step>
+                    <el-step title="绑定新手机号"></el-step>
+                    <el-step title="完成"></el-step>
+                </el-steps>
+                <el-form
+                    :label-position="labelPosition"
+                    ref="form"
+                    label-width="340px"
+                    :model="ruleForm"
+                    :rules="rules"
+                >
+                    <el-form-item label="当前手机号" prop="phone">
+                        <div class="phone">{{ Phone }}</div>
+                    </el-form-item>
+                    <el-form-item label="验证码" prop="code">
+                        <el-input style="width: 300px" v-model="ruleForm.code" placeholder="请输入4位验证码">
+                            <span
+                                @click="send"
+                                style="color: #00ffcb; cursor: pointer; font-size: 13px"
+                                slot="suffix"
+                                >{{ time === 0 ? '发送验证码' : `重新发送${time}s` }}</span
+                            >
+                        </el-input>
+                    </el-form-item>
+                </el-form>
+                <div class="btn">
+                    <el-button type="primary" @click="codeSend">确认</el-button>
+                    <div class="btn2" @click="all('/accountdata')">返回</div>
+                </div>
+            </div>
+            <div v-else>
+                <transaction-phone @Jump="Jump"></transaction-phone>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+import TransactionPhone from '../../components/TransactionPhone.vue';
+import { mapState } from 'vuex';
+export default {
+    components: { TransactionPhone },
+    data() {
+        return {
+            flag: true,
+            labelPosition: 'right',
+            ruleForm: {
+                phone: '',
+                code: '',
+                pass: '',
+                password: '',
+                checkPass: '',
+                type: ''
+            },
+            time: 0,
+            rules: {
+                checkPass: [
+                    {
+                        validator: (rule, value, callback) => {
+                            if (value !== this.ruleForm.pass) {
+                                callback(new Error('两次密码输入不一致'));
+                            } else {
+                                callback();
+                            }
+                        },
+                        trigger: 'blur'
+                    },
+                    { required: true, message: '请再次输入密码', trigger: 'blur' }
+                ]
+            }
+        };
+    },
+    computed: {
+        ...mapState(['userInfo']),
+        Phone() {
+            return this.userInfo.phone.slice(0, 3) + ' **** ' + this.userInfo.phone.slice(7, 11);
+        }
+    },
+    methods: {
+        send() {
+            this.sendMsg(this.ruleForm.phone);
+        },
+        codeSend() {
+            // this.flag = false;
+            this.$http
+                .get('/sms/verify', {
+                    phone: this.ruleForm.phone,
+                    code: this.ruleForm.code
+                })
+                .then(() => {
+                    this.ruleForm.code = '';
+                    this.ruleForm.phone = '';
+                    this.flag = false;
+                })
+                .catch(e => {
+                    this.$message.error(e.error);
+                });
+        },
+        Jump() {
+            this.flag = true;
+            this.ruleForm.phone = this.userInfo.phone;
+        }
+    }
+};
+</script>
+
+<style lang="less" scoped>
+/deep/ .el-steps {
+    margin-left: 385px;
+}
+/deep/.el-step:nth-child(1) {
+    .el-step__icon {
+        background: linear-gradient(143deg, #00ffcb 0%, #006eff 100%, #006eff 100%);
+        color: #ffffff;
+        border: 0;
+    }
+}
+/deep/.el-step:nth-child(2) {
+    .el-step__icon {
+        background: #c8c9cc;
+        color: #ffffff;
+        border: 0;
+    }
+}
+/deep/.el-step:nth-child(3) {
+    .el-step__icon {
+        background: #c8c9cc;
+        color: #ffffff;
+        border: 0;
+    }
+}
+/deep/ .el-step__title.is-process {
+    font-weight: 400;
+    color: #939599;
+}
+/deep/ .el-step__title.is-wait {
+    color: #939599;
+}
+.container {
+    .btn {
+        display: flex;
+        justify-content: center;
+        margin: 80px 0 0 110px;
+        .btn2 {
+            width: 130px;
+            height: 36px;
+            background: #c4c7cc;
+            border-radius: 4px;
+            cursor: pointer;
+            color: #ffffff;
+            font-size: 13px;
+            text-align: center;
+            line-height: 36px;
+            margin-left: 20px;
+        }
+    }
+    /deep/ .el-button {
+        width: 130px;
+        height: 36px;
+        background: linear-gradient(133deg, #00ffcb 0%, #006eff 100%);
+        border-radius: 4px;
+    }
+    /deep/ .el-step__title {
+        font-size: 13px;
+    }
+    /deep/ .el-form-item__label {
+        color: #ffffff;
+        margin-left: 175px;
+    }
+    /deep/ .el-form {
+        margin-top: 66px;
+    }
+    /deep/ .el-input__inner {
+        border: 1px solid #494a4d;
+        background: #1c1e26;
+        color: #ffffff;
+    }
+    .title {
+        height: 42px;
+        font-size: 32px;
+        font-weight: 400;
+        color: #ffffff;
+        line-height: 42px;
+        padding: 60px 0;
+    }
+    .box {
+        height: 539px;
+        background: #1c1e26;
+    }
+    .name {
+        .flex();
+        padding: 17px 16px;
+        .name1 {
+            font-size: 16px;
+            font-weight: bold;
+            color: #ffffff;
+            line-height: 26px;
+        }
+        .name2 {
+            font-size: 12px;
+            font-weight: 400;
+            color: #939599;
+            margin-left: 10px;
+        }
+    }
+    .phone {
+        color: #ffffff;
+        font-size: 18px;
+    }
+    .border {
+        height: 1px;
+        background: #494a4d;
+        margin: 0 16px 40px;
+    }
+}
+</style>

+ 149 - 0
src/main/pc-space/src/views/user/TransactionSuccess.vue

@@ -0,0 +1,149 @@
+<template>
+    <div class="container center-content">
+        <div class="title">修改交易密码</div>
+        <div class="box">
+            <div class="name">
+                <div class="name1">修改交易密码</div>
+                <div class="name2">修改交易密码后立即生效,下次交易请使用新密码</div>
+            </div>
+            <div class="border"></div>
+            <div class="content">
+                <el-steps :space="180" :active="3" align-center>
+                    <el-step title="验证当前手机号"></el-step>
+                    <el-step title="绑定新手机号"></el-step>
+                    <el-step title="完成"></el-step>
+                </el-steps>
+                <div class="fail">
+                    <img class="text1" src="../../assets/icon-xiugaichengg@3x.png" alt="" />
+                    <div class="text2">修改成功,下次登录请使用新账号!</div>
+                    <div class="botn" @click="Login">重新登录</div>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+import eventBus from '../../eventBus';
+export default {
+    data() {
+        return {
+            labelPosition: 'right'
+        };
+    },
+    computed: {},
+    methods: {
+        codeSend() {
+            this.$http
+                .get('/sms/verify', {
+                    phone: this.ruleForm.phone,
+                    code: this.ruleForm.code
+                })
+                .then(() => {
+                    this.ruleForm.code = '';
+                    this.ruleForm.phone = '';
+                    this.flag = false;
+                })
+                .catch(e => {
+                    this.$message.error(e.error);
+                });
+        },
+        Login() {
+            eventBus.$emit('login');
+        }
+    }
+};
+</script>
+
+<style lang="less" scoped>
+/deep/ .el-steps {
+    margin-left: 385px;
+}
+/deep/.el-step:nth-child(1) {
+    .el-step__icon {
+        background: linear-gradient(143deg, #00ffcb 0%, #006eff 100%, #006eff 100%);
+        color: #ffffff;
+        border: 0;
+    }
+}
+/deep/.el-step:nth-child(2) {
+    .el-step__icon {
+        background: linear-gradient(143deg, #00ffcb 0%, #006eff 100%, #006eff 100%);
+        color: #ffffff;
+        border: 0;
+    }
+}
+/deep/.el-step:nth-child(3) {
+    .el-step__icon {
+        background: linear-gradient(143deg, #00ffcb 0%, #006eff 100%, #006eff 100%);
+        color: #ffffff;
+        border: 0;
+    }
+}
+.container {
+    .fail {
+        text-align: center;
+        margin-left: 100px;
+        .text1 {
+            width: 68px;
+            height: 68px;
+            margin-top: 60px;
+        }
+        .text2 {
+            font-size: 14px;
+            font-weight: 400;
+            color: #ffffff;
+            line-height: 24px;
+            margin-top: 20px;
+        }
+        .botn {
+            width: 130px;
+            height: 36px;
+            font-size: 13px;
+            color: #ffffff;
+            cursor: pointer;
+            line-height: 36px;
+            text-align: center;
+            background: linear-gradient(133deg, #00ffcb 0%, #006eff 100%);
+            border-radius: 4px;
+            margin: 59px 0 0 488px;
+        }
+    }
+    /deep/ .el-step__title {
+        font-size: 13px;
+    }
+    .title {
+        height: 42px;
+        font-size: 32px;
+        font-weight: 400;
+        color: #ffffff;
+        line-height: 42px;
+        padding: 60px 0;
+    }
+    .box {
+        height: 539px;
+        background: #1c1e26;
+    }
+    .name {
+        .flex();
+        padding: 17px 16px;
+        .name1 {
+            font-size: 16px;
+            font-weight: bold;
+            color: #ffffff;
+            line-height: 26px;
+        }
+        .name2 {
+            font-size: 12px;
+            font-weight: 400;
+            color: #939599;
+            margin-left: 10px;
+        }
+    }
+    .border {
+        height: 1px;
+        background: #494a4d;
+        margin: 0 16px 40px;
+    }
+}
+</style>

+ 124 - 79
src/main/pc-space/src/views/user/UserAuthentication.vue

@@ -4,44 +4,52 @@
         <div class="box">
             <div class="name">个人认证 <span>账户实名认证后不能修改</span></div>
             <div class="border"></div>
-            <el-form ref="form" :label-position="labelPosition" :model="sizeForm" :rules="registerRule">
-                <el-form-item label="姓名" prop="nickname">
-                    <el-input
-                        style="width: 300px"
-                        placeholder="请输入您的真实姓名"
-                        v-model="sizeForm.nickname"
-                    ></el-input>
-                </el-form-item>
-                <el-form-item label="手机号码" prop="phone">
-                    <el-input
-                        style="width: 300px"
-                        placeholder="请输入您的联系方式"
-                        :disabled="true"
-                        v-model="sizeForm.phone"
-                    ></el-input>
-                </el-form-item>
-                <el-form-item label="电子邮箱" prop="email">
-                    <el-input style="width: 300px" placeholder="请输入邮箱" v-model="sizeForm.email"></el-input>
-                </el-form-item>
-                <el-form-item label="身份证号" prop="documentNumber">
-                    <el-input
-                        style="width: 300px"
-                        placeholder="请输入18位身份证号"
-                        v-model="sizeForm.documentNumber"
-                    ></el-input>
-                </el-form-item>
-                <el-form-item label="本人身份证 (正面图)" prop="photoFront">
-                    <single-upload class="upload" v-model="sizeForm.photoFront"></single-upload>
-                </el-form-item>
-                <div class="description">{{ explain }}</div>
-                <el-form-item label="本人身份证 (反面图)" prop="photoBackside">
-                    <single-upload class="upload" v-model="sizeForm.photoBackside"></single-upload>
-                </el-form-item>
-                <div class="description">{{ explain }}</div>
-            </el-form>
-            <div class="btn">
-                <el-button type="primary" @click="onSubmit">提交审核</el-button>
-                <div class="btn1" @click="Jump">返回</div>
+            <div class="fail" v-if="userInfo.authStatus === 'PENDING' || userInfo.authStatus === 'FAIL'">
+                <img class="text1" src="../../assets/icon-xiugaichengg@3x.png" alt="" />
+                <div class="text2">已提交个人认证</div>
+                <div class="text3">等待后台审核信息,预计1-3个工作日内完成</div>
+                <div class="botn" @click="Jump">返回</div>
+            </div>
+            <div v-if="userInfo.authStatus === 'NOT_AUTH' || userInfo.authStatus === 'SUCCESS'">
+                <el-form ref="form" :label-position="labelPosition" :model="sizeForm" :rules="registerRule">
+                    <el-form-item label="姓名" prop="nickname">
+                        <el-input
+                            style="width: 300px"
+                            placeholder="请输入您的真实姓名"
+                            v-model="sizeForm.nickname"
+                        ></el-input>
+                    </el-form-item>
+                    <el-form-item label="手机号码" prop="phone">
+                        <el-input
+                            style="width: 300px"
+                            placeholder="请输入您的联系方式"
+                            :disabled="true"
+                            v-model="sizeForm.phone"
+                        ></el-input>
+                    </el-form-item>
+                    <el-form-item label="电子邮箱" prop="email">
+                        <el-input style="width: 300px" placeholder="请输入邮箱" v-model="sizeForm.email"></el-input>
+                    </el-form-item>
+                    <el-form-item label="身份证号" prop="documentNumber">
+                        <el-input
+                            style="width: 300px"
+                            placeholder="请输入18位身份证号"
+                            v-model="sizeForm.documentNumber"
+                        ></el-input>
+                    </el-form-item>
+                    <el-form-item label="本人身份证 (正面图)" prop="photoFront">
+                        <single-upload class="upload" v-model="sizeForm.photoFront"></single-upload>
+                    </el-form-item>
+                    <div class="description">{{ explain }}</div>
+                    <el-form-item label="本人身份证 (反面图)" prop="photoBackside">
+                        <single-upload class="upload" v-model="sizeForm.photoBackside"></single-upload>
+                    </el-form-item>
+                    <div class="description">{{ explain }}</div>
+                </el-form>
+                <div class="btn">
+                    <el-button type="primary" @click="onSubmit">提交审核</el-button>
+                    <div class="btn1" @click="Jump">返回</div>
+                </div>
             </div>
         </div>
     </div>
@@ -59,8 +67,7 @@ export default {
                 photoFront: '',
                 photoBackside: '',
                 phone: '',
-                email: '',
-                type: 'ID_CARD'
+                email: ''
             },
             typeFl: {},
             registerRule: {
@@ -89,28 +96,34 @@ export default {
         }
     },
     created() {
-        this.$http
-            .get('/personal/my')
-            .then(res => {
-                this.sizeForm = {
-                    ...res,
-                    nickname: this.userInfo.nickname,
-                    phone: this.userInfo.phone,
-                    avatar: this.userInfo.avatar,
-                    email: this.userInfo.email
-                };
-            })
-            .catch(e => {
-                console.log(e);
-            });
-        this.sizeForm.nickname == this.userInfo.nickname, this.sizeForm.phone == this.userInfo.phone;
+        //     this.$http
+        //         .get('/personal/my')
+        //         .then(res => {
+        //             this.sizeForm = {
+        //                 ...res,
+        //                 nickname: this.userInfo.nickname,
+        //                 phone: this.userInfo.phone,
+        //                 avatar: this.userInfo.avatar,
+        //                 email: this.userInfo.email
+        //             };
+        //         })
+        //         .catch(e => {
+        //             console.log(e);
+        //         });
+        (this.sizeForm.nickname = this.userInfo.nickname), (this.sizeForm.phone = this.userInfo.phone);
     },
     methods: {
-        Jump() {},
+        Jump() {
+            this.$router.go(-1);
+        },
         onSubmit() {
             this.$refs.form.validate(valid => {
                 if (valid) {
-                    this.$confirm('提交资料需要审核,确定吗?', '提示', { type: 'warning' }).then(() => {
+                    this.$confirm(
+                        '保证提交的所有资料证真实有效且确属本人,如有假冒信息,一切法律后果自行承担!',
+                        '提示',
+                        { type: 'warning' }
+                    ).then(() => {
                         this.preservation();
                     });
                 }
@@ -136,27 +149,26 @@ export default {
                     name: 'ROLE_PERSONAL'
                 }
             ];
-
-            this.$http
-                .post('user/save', userInfo, {
-                    body: 'json'
-                })
-                .then(res => {
-                    this.sizeForm.avatar = res.avatar;
-                    this.$store.dispatch('getUserInfo');
-                    return this.$http.post('/personal/save', data, { body: 'json' }).then(res => {
-                        console.log(res);
-                        this.sizeForm = res;
-                        this.saving = false;
-                        this.$store.dispatch('getUserInfo');
-                        // this.$router.push('/Authentication');
-                    });
-                })
-                .catch(e => {
-                    console.log(e);
-                    this.saving = false;
-                    this.$message.error(e.error);
-                });
+            console.log(userInfo);
+            // this.$http
+            //     .post('user/save', userInfo, {
+            //         body: 'json'
+            //     })
+            //     .then(res => {
+            //         this.sizeForm.avatar = res.avatar;
+            //         this.$store.dispatch('getUserInfo');
+            //         return this.$http.post('/personal/save', data, { body: 'json' }).then(res => {
+            //             console.log(res);
+            //             this.sizeForm = res;
+            //             this.saving = false;
+            //             this.$store.dispatch('getUserInfo');
+            //         });
+            //     })
+            //     .catch(e => {
+            //         console.log(e);
+            //         this.saving = false;
+            //         this.$message.error(e.error);
+            //     });
         }
     }
 };
@@ -197,6 +209,7 @@ export default {
             background: #c4c7cc;
             border-radius: 4px;
             color: #ffffff;
+            cursor: pointer;
             font-size: 13px;
             text-align: center;
             line-height: 36px;
@@ -219,14 +232,46 @@ export default {
         margin: -11px 0 20px 94px;
     }
     .box {
-        height: 1000px;
         background: #1c1e26;
         padding: 17px 16px;
+        padding-bottom: 200px;
         .border {
             height: 1px;
             background: #494a4d;
             margin: 17px 0 60px;
         }
+        .fail {
+            text-align: center;
+            .text1 {
+                width: 68px;
+                height: 68px;
+            }
+            .text2 {
+                font-size: 20px;
+                font-weight: bold;
+                color: #00ffcb;
+                line-height: 26px;
+                margin: 20px 0 10px;
+            }
+            .text3 {
+                font-size: 14px;
+                font-weight: 400;
+                color: #ffffff;
+                line-height: 24px;
+            }
+            .botn {
+                width: 130px;
+                height: 36px;
+                font-size: 13px;
+                cursor: pointer;
+                color: #ffffff;
+                line-height: 36px;
+                text-align: center;
+                background: linear-gradient(133deg, #00ffcb 0%, #006eff 100%);
+                border-radius: 4px;
+                margin: 87px 0 0 518px;
+            }
+        }
         .name {
             font-size: 16px;
             font-weight: bold;

+ 2 - 2
src/main/pc-space/yarn.lock

@@ -3025,8 +3025,8 @@ dashdash@^1.12.0:
 
 dayjs@^1.10.7:
   version "1.10.7"
-  resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.7.tgz#2cf5f91add28116748440866a0a1d26f3a6ce468"
-  integrity sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==
+  resolved "https://registry.nlark.com/dayjs/download/dayjs-1.10.7.tgz#2cf5f91add28116748440866a0a1d26f3a6ce468"
+  integrity sha1-LPX5Gt0oEWdIRAhmoKHSbzps5Gg=
 
 de-indent@^1.0.2:
   version "1.0.2"

+ 26 - 26
src/main/resources/access.key

@@ -1,28 +1,28 @@
 -----BEGIN PRIVATE KEY-----
-MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCgyCUCqd8oIR9x
-0EEPTH6gOAI7LH63MnVm9zfB5IzQrr1rZjwfui+9H/TXHzXDNJVoSddzoWr5p2Wc
-mBVgqqwRNtgdA1kQPOHAEmsGPHJ87EK7cFGTGML1ACNOfePZN7Fe1NmiGGKqP+1B
-YzizWvfRoFFwb2v419BdxVaPBeFe/F4yACKGoTaJU4PZEwwcEFjvKem1Enbmdmo0
-JykUty4naujryZU/wYa8PhQmrs1UCue7n33Xt6907t8MDpcqnBkColFwks6EgXAx
-yaPJfzHJzUqGrC2bN5B19a/TPgdy8AN8H5IqbXbyoXHcv/Zc0jvAo3x9uxD9ee39
-PVX3hxtZAgMBAAECggEAUGPCHZLSAT6OelmmLgARUAqxEuUsdmzERrdVKZ0cyzqT
-ex+i8DonpGhWAzmXqAKisYI6N5Z95lXMeH+SMMMlRXYmmFsULQpD1cVfvb57f/qh
-YxbFssaus9Fd1eEcC3/NL509M879hiJwfkEeGI9jWWzPS2hqlAFULY59uQU3qkW5
-WQbxsEtC2x3uz785nlf/Qh/Mc8er51y0Bl428MWqeg7e7+ijLKs9F1qC7p2/sAVm
-HFt1P4whlyeBEPQwVI9bNqx7Qc0+658VLP7dsD+/xg07FLwrPQ4n3/HlMNw4whtx
-GZWXvW/363QrdbiR7BNrpoXieyMHO3a+eXqnIRkAAQKBgQDbEJcABmPcdcZHuYIO
-A0qOzh2fRZ13Pil8LnYgR1FpjYb23QfWXM76vU/uIVa1ISgyM9plUD3BSPcH9fr4
-LpfgG1e8tvgMMHEY2oLWnDHrslyTQC9nHRJDjfvF/w+5Q+0Y6sqbRqg4bS2QAxdv
-bSfDc2QHwgeos6Fmfp8d2/go7wKBgQC74+iNEcNzxsuoRDTrXaKO7M4tSEzASju3
-P4yOL2yOGnFAETKYuFW4eb7xcxa7l1iJREH1UXcr5WWmpSkcaoTZWzsw3QnA4lRV
-vx63zxJmC9a1Ao5Gi7KDC8Zfjqt68lqEJ0eUPbXTzpu0BeB3pl/I2VxiuahjjNyT
-niv25A6wNwKBgDb8aQqGkBZMMaLbO3vM86/4qJLL5ISDw+H5v4jGnfbCoXfhbxAt
-Z36keiWplJwOYIqJXW5Ev9t+NxN2eLJG77Q+6LzjqEtW9WxpnKHFvvoMYRRM7hkR
-wP3X67R9GzNDi4XPmV90UtEnBmK5g+5iFbMHibowx79ep0qUydey2Q1dAoGADwCu
-w/zkH22DO4detmB+p2zvNZxtTHlg9UvkvEG7KEmiO1xkLt+hMJ7ACWWILihykFtb
-7Ou5WU7y4/CSLMuwme539nnf2n/3/fTJziGBtZZCaaevlqB2+5HIID8zIBkT8zNz
-urmGuEfqFODXQJaPVWlNwDBU6sYHot3hYtBo/9cCgYA0RL8iQ9VczPZk4BysmaYo
-OcN3E+zQ2qJgAaDD+pDDtp7Iyg7wfMJIDnUbvlhf/huv9dSFBBO6tXiXfWVMqZGD
-StblLz0CmKgfY26pPXZXqlaYhJHmOoTVCt9cICCPGuZBIzALAFyo5vcBz6cohG9d
-LqHETf25LXDxzZ4wXQMHyg==
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCv4l+/2POs5Znj
+zJumYMEJ/fJ59+DLZImIJWGa1ClKUrl+Jb4QHA79t3LUUs6PK0FjC7YUrH31yG5N
+EiXikA3SEVwzJ3Sc5+XQvIr1WTp3dMt/JJ7GFcHKxO3X3E/ZpG15rMa9d9P+bEwG
+c4wAgNbS6i0JBYuzSxnsE2yrdoQpblxzoJ/fqOnzpzo2cg41zmv5/XrARqQ/lD1K
+L8l5L/2kLMktwStNf8U7zLrKRS1UB37a29fcAyPvehqAskeDjBj+OR677eQemp8J
+pd6jd0YETyiGeTb9LRpyjIwW9cV3DO3X7WpbQVQ01SRH7qBql//vgstv5Bt5l2wa
+5Y8/IqJDAgMBAAECggEAE65jo36d6dN5cG21Xx1FjJ4vk2li7K+P2j3Amcgy5J+0
+JQMJLRlOriJohYzMk2W2N+SYF+EjaSzn9tTYi20uNrr9k7XPDT2/0CdA72pwKezW
+VqBc6fKGUG/P449CGisVmv9z78CoZrhsm24zlNzV7R0KNA+8TbBSMsILr3YgHNiO
+klIhy0jGz5jzS4TPG2wwDb4N4lA9J/yuyK+zZ40qyh5vljy1xdP9VknJcAtchotY
+k1mqAjFkPImI3kQmhLD6RVxqB7e9lEYoxZSiawc4VIq0tHOPCNbhaRR5tA+YbJSX
+ZFmMvnh8D0VsEtQLqcx9kxZ0+QA3dv/f2Hq4CDBVJQKBgQDeWworh205TxntC6b/
+nFUHu5RuytAiSkRzmzojZLTHuVWQsFa0m+Zzk+8xEagrVHIiBJMNSW7bcJapmzdu
+AlSc6SClVsHOk+mtUgoiTeV44C/KXX8MRTvRS2Cxnx0/JlJ+T7mDFohZR9/kCNYe
+TBrsfHpAiD2+qTIiNPEVb5H4JQKBgQDKf0Nry4hlzcUAWj9VCU9hWU2smA+9GjuZ
+827HAdZ3aawRG3hkRz3afI6sGCEiHgco1ZPrO/moyu08b6np3WRpue0WRLuiWAfq
+qElwfYRrP8TFrNWH9k8lO9dLrKtItqjylHCs6yPQ4xjYa6Jy3p5UntMhe7ln/p6u
+7ZAPzCqQRwKBgQCuE2Hr4BMPWbD3VjcAR/h9nEnBTwAQyEm8o9qpGM86yQqGwrau
+oJqTA06wAJ3ChlLv9NrW/RVPsF4THBQSCLsLOKu5JSmHO18mtGKAprEup3xilj2/
+cng5CyUBCYtRBARzJKEcUkiedNl/4bcXcwdk+rKO0Npd6IH6K65N1NHXDQKBgEIY
+Hdp+WWvZKPb/ffJ0kntU2bx++YwgltmeEkdUezsIu8ftrnMUqcS5qRvU2GO5Z17V
+r201azzD14FFdTFHOPIlZJRDJPdNQnA+M5JK9cDH1KMs0ZmKNLUTfidOGa4nKKfc
++ZYHPe59YWuqXiCeNxGpsYIZTx/5hLPWCJKPckkbAoGBAMVp1Wkt88j/Uj9sSeSY
+SL8p+oajciQt3cKJorToeF09bjDpY+2WHy3jI/lebvwE4vOZ8pMRrNhjFk0FLySI
+d3wL6EqpFiolLA1yT5g8Z5Wd6YUkEFyxluIlLB/MfdxPjoHSu6f1Bm7mo/0Xl14i
+CKHDb5auQhZXzlAQGfMCzOq8
 -----END PRIVATE KEY-----

+ 11 - 0
src/main/resources/application.yaml

@@ -85,6 +85,17 @@ aliyun:
   oss-domain: https://9space-2021.oss-cn-shenzhen.aliyuncs.com
 general:
   host: https://nft.9space.vip
+#mychain:
+#  rest:
+#    bizid: a00e36c5
+#    cipher-suit: ec
+#    rest-url: https://rest.baas.alipay.com
+#    access-id: VB4osv3QHEHBGVZM
+#    access-secret: access.key
+#    tenantid: HEHBGVZM
+#    read-file-from-ext: false
+#    account: nine-space-official
+#    kmsId: m9U4I0R2HEHBGVZM1635922538317
 mychain:
   rest:
     bizid: a00e36c5

+ 0 - 1
src/main/vue/package.json

@@ -8,7 +8,6 @@
     "build-theme": "npx et -o src/styles/element_theme"
   },
   "dependencies": {
-    "@download/blockies": "https://github.com/download13/blockies.git",
     "@fortawesome/fontawesome": "^1.1.8",
     "@fortawesome/fontawesome-free-solid": "^5.0.13",
     "@fortawesome/vue-fontawesome": "^0.1.7",

+ 2 - 10
src/main/vue/src/views/AdminEdit.vue

@@ -65,8 +65,6 @@
     </div>
 </template>
 <script>
-import { toSvg } from 'jdenticon';
-import { createIcon } from '@download/blockies';
 import faker from 'faker';
 faker.locale = 'zh_CN';
 console.log(faker);
@@ -96,7 +94,8 @@ export default {
         return {
             saving: false,
             formData: {
-                avatar: 'https://awesomeadmin.oss-cn-hangzhou.aliyuncs.com/image/avatar_male.png'
+                avatar: 'https://awesomeadmin.oss-cn-hangzhou.aliyuncs.com/image/avatar_male.png',
+                admin: true
             },
             rules: {
                 avatar: [{ required: true, message: '请上传头像', trigger: 'blur' }],
@@ -190,13 +189,6 @@ export default {
                 .catch(() => {});
         },
         gen() {
-            const icon = createIcon({
-                size: 10,
-                scale: 20
-            });
-            this.$http.post('/upload/base64', { base64: icon.toDataURL() }).then(res => {
-                this.formData.avatar = res;
-            });
             const card = faker.helpers.createCard();
             this.formData.username = card.username;
             this.formData.nickname = card.name;

+ 4 - 2
src/main/vue/src/views/BannerEdit.vue

@@ -43,10 +43,12 @@
                         <el-switch v-model="formData.link"></el-switch>
                     </el-form-item>
                     <el-form-item prop="linkType" label="跳转类型">
-                        <el-input v-model="formData.linkType"></el-input>
+                        <el-select v-model="formData.linkType">
+                            <el-option label="藏品/盲盒" value="collection"></el-option>
+                        </el-select>
                     </el-form-item>
                     <el-form-item prop="linkContent" label="跳转内容">
-                        <el-input v-model="formData.linkContent"></el-input>
+                        <el-input v-model="formData.linkContent" placeholder="输入ID"></el-input>
                     </el-form-item>
                     <el-form-item class="form-submit">
                         <el-button @click="onSave" :loading="saving" type="primary"> 保存 </el-button>

+ 6 - 0
src/main/vue/src/views/CollectionList.vue

@@ -80,6 +80,12 @@
                     <el-tag type="info" v-else>否</el-tag>
                 </template>
             </el-table-column>
+            <el-table-column prop="salable" label="仅展示" width="90" align="center">
+                <template v-slot="{ row }">
+                    <el-tag type="success" v-if="!row.salable">是</el-tag>
+                    <el-tag type="info" v-else>否</el-tag>
+                </template>
+            </el-table-column>
             <el-table-column prop="price" label="价格" width="90"> </el-table-column>
             <el-table-column prop="sort" label="排序" width="90" align="center">
                 <template slot="header" slot-scope="{ column }">

+ 0 - 9
src/main/vue/src/views/MinterEdit.vue

@@ -79,8 +79,6 @@
     </div>
 </template>
 <script>
-import { toSvg } from 'jdenticon';
-import { createIcon } from '@download/blockies';
 import randomstring from 'randomstring';
 import faker from 'faker';
 faker.locale = 'zh_CN';
@@ -221,13 +219,6 @@ export default {
                 .catch(() => {});
         },
         gen() {
-            const icon = createIcon({
-                size: 10,
-                scale: 20
-            });
-            this.$http.post('/upload/base64', { base64: icon.toDataURL() }).then(res => {
-                this.formData.avatar = res;
-            });
             const card = faker.helpers.createCard();
             this.formData.username = card.username;
             this.formData.nickname = card.name;

+ 0 - 9
src/main/vue/src/views/UserEdit.vue

@@ -67,8 +67,6 @@
     </div>
 </template>
 <script>
-import { toSvg } from 'jdenticon';
-import { createIcon } from '@download/blockies';
 import faker from 'faker';
 faker.locale = 'zh_CN';
 console.log(faker);
@@ -187,13 +185,6 @@ export default {
                 .catch(() => {});
         },
         gen() {
-            const icon = createIcon({
-                size: 10,
-                scale: 20
-            });
-            this.$http.post('/upload/base64', { base64: icon.toDataURL() }).then(res => {
-                this.formData.avatar = res;
-            });
             const card = faker.helpers.createCard();
             this.formData.username = card.username;
             this.formData.nickname = card.name;

+ 0 - 4
src/main/vue/yarn.lock

@@ -822,10 +822,6 @@
     lodash "^4.17.13"
     to-fast-properties "^2.0.0"
 
-"@download/blockies@https://github.com/download13/blockies.git":
-  version "1.0.3"
-  resolved "https://github.com/download13/blockies.git#55518d38203582cd4a7b55204b7a26f8032ea07e"
-
 "@fortawesome/fontawesome-common-types@^0.1.7":
   version "0.1.7"
   resolved "https://registry.npm.taobao.org/@fortawesome/fontawesome-common-types/download/@fortawesome/fontawesome-common-types-0.1.7.tgz#4336c4b06d0b5608ff1215464b66fcf9f4795284"

Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů