panhui 4 年 前
コミット
fa7e839dce

+ 1 - 1
src/main/java/com/izouma/nineth/web/IdentityAuthController.java

@@ -25,7 +25,7 @@ public class IdentityAuthController extends BaseController {
     private IdentityAuthService identityAuthService;
     private IdentityAuthService identityAuthService;
     private IdentityAuthRepo    identityAuthRepo;
     private IdentityAuthRepo    identityAuthRepo;
 
 
-    @PreAuthorize("hasRole('ADMIN')")
+//    @PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/all")
     @PostMapping("/all")
     public Page<IdentityAuth> all(@RequestBody PageQuery pageQuery) {
     public Page<IdentityAuth> all(@RequestBody PageQuery pageQuery) {
         return identityAuthService.all(pageQuery);
         return identityAuthService.all(pageQuery);

+ 6 - 2
src/main/nine-space/public/index.html

@@ -5,11 +5,15 @@
     <meta http-equiv="X-UA-Compatible" content="IE=edge" />
     <meta http-equiv="X-UA-Compatible" content="IE=edge" />
     <meta
     <meta
       name="viewport"
       name="viewport"
-      content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, viewport-fit=cover"
+      content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"
     />
     />
     <meta name="msapplication-tap-highlight" content="no" />
     <meta name="msapplication-tap-highlight" content="no" />
     <meta name="format-detection" content="telphone=no" />
     <meta name="format-detection" content="telphone=no" />
-    <link rel="icon" href="<%= BASE_URL %>favicon.ico" />
+    <meta name="format-detection" content="email=no" />
+    <meta name="screen-orientation" content="portrait" />
+    <meta name="x5-orientation" content="portrait" />
+    <meta name="full-screen" content="yes" />
+    <meta name="x5-fullscreen" content="true" />
     <title><%= htmlWebpackPlugin.options.title %></title>
     <title><%= htmlWebpackPlugin.options.title %></title>
     <style>
     <style>
       html,
       html,

+ 13 - 0
src/main/nine-space/src/assets/svgs/icon_share.svg

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <title>icon_share_weixin</title>
+    <g id="第九空间" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="用户持有的NFT详情" transform="translate(-323.000000, -1577.000000)" fill="#333230">
+            <g id="编组-3" transform="translate(311.000000, 1573.000000)">
+                <g id="icon" transform="translate(12.000000, 4.000000)">
+                    <path d="M6.7047137,15.253711 C4.69572751,16.3586652 4.41333056,18.9303033 4.02559468,19.5425973 C3.63785881,20.1548913 1.96690728,14.9674069 4.53921448,11.7064086 C6.25408596,9.53240973 8.5183606,8.34285978 11.3320384,8.13775874 L11.3320384,5.50543407 C11.3320384,5.06360627 11.6902106,4.70543407 12.1320384,4.70543407 C12.2961761,4.70543407 12.4563415,4.75592176 12.5908083,4.85004854 L20.8178961,10.60901 C21.1798556,10.8623816 21.2678834,11.361206 21.0145118,11.7231655 C20.9609527,11.7996785 20.8944092,11.866222 20.8178961,11.9197811 L12.5908083,17.6787426 C12.2288488,17.9321142 11.7300245,17.8440864 11.4766529,17.482127 C11.3825261,17.3476601 11.3320384,17.1874948 11.3320384,17.0233571 L11.3320384,14.3910324 C9.5864794,14.2295154 8.04403783,14.5170749 6.7047137,15.253711 Z" id="形状结合"></path>
+                </g>
+            </g>
+        </g>
+    </g>
+</svg>

+ 18 - 0
src/main/nine-space/src/assets/svgs/renzheng_icon.svg

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <title>renzheng_icon</title>
+    <g id="第九空间" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="个人中心" transform="translate(-183.000000, -294.000000)" fill-rule="nonzero">
+            <g id="编组-2" transform="translate(16.000000, 120.000000)">
+                <g id="编组-4" transform="translate(167.000000, 174.000000)">
+                    <g id="编组-12" transform="translate(1.000000, 1.000000)">
+                        <path d="M8,0 C12.416,0 16,3.584 16,8 C16,12.416 12.416,16 8,16 C3.584,16 0,12.416 0,8 C0,3.584 3.584,0 8,0 Z" id="路径" fill="#FC7032"></path>
+                        <path d="M8,0 C10.1673557,0 12.1342986,0.86331695 13.5754778,2.26460009 C13.851391,3.12695733 14,4.0462294 14,5 C14,9.968 9.968,14 5,14 C4.0462294,14 3.12695733,13.851391 2.26409104,13.5760802 C0.86331695,12.1342986 0,10.1673557 0,8 C0,3.584 3.584,0 8,0 Z" id="形状结合" fill="#FF7E3E"></path>
+                        <path d="M8,0 C8.6788297,0 9.33799925,0.0846898844 9.96751224,0.244073251 C9.98941168,0.493285589 10,0.745413793 10,1 C10,5.968 5.968,10 1,10 C0.745413793,10 0.493285589,9.98941168 0.244032028,9.96865168 C0.0846898844,9.33799925 0,8.6788297 0,8 C0,3.584 3.584,0 8,0 Z" id="形状结合" fill="#FFA56A"></path>
+                        <polygon id="路径" fill="#FFFFFF" points="11.088 4.856 8.872 9.76 5.768 4.856 3.04 4.864 8.864 13 12.848 4.864"></polygon>
+                    </g>
+                </g>
+            </g>
+        </g>
+    </g>
+</svg>

+ 19 - 17
src/main/nine-space/src/components/creator/CreatorInfo.vue

@@ -83,25 +83,27 @@ export default {
   },
   },
   methods: {
   methods: {
     follow() {
     follow() {
-      if (!this.info.follow) {
-        this.$http.get(`/user/${this.info.id}/follow`).then((res) => {
-          this.$emit("update:info", {
-            ...this.info,
-            follow: true,
-            followers: this.info.followers + 1,
+      this.checkLogin().then(() => {
+        if (!this.info.follow) {
+          this.$http.get(`/user/${this.info.id}/follow`).then((res) => {
+            this.$emit("update:info", {
+              ...this.info,
+              follow: true,
+              followers: this.info.followers + 1,
+            });
+            this.$toast.success("关注成功");
           });
           });
-          this.$toast.success("关注成功");
-        });
-      } else {
-        this.$http.get(`/user/${this.info.id}/unfollow`).then(() => {
-          this.$emit("update:info", {
-            ...this.info,
-            follow: false,
-            followers: this.info.followers - 1,
+        } else {
+          this.$http.get(`/user/${this.info.id}/unfollow`).then(() => {
+            this.$emit("update:info", {
+              ...this.info,
+              follow: false,
+              followers: this.info.followers - 1,
+            });
+            this.$toast.success("取消关注");
           });
           });
-          this.$toast.success("取消关注");
-        });
-      }
+        }
+      });
     },
     },
   },
   },
 };
 };

+ 1 - 1
src/main/nine-space/src/mixins/common.js

@@ -16,7 +16,7 @@ export default {
       AuthStatus: new Map([
       AuthStatus: new Map([
         ["NOT_AUTH", "未认证"],
         ["NOT_AUTH", "未认证"],
         ["PENDING", "认证中"],
         ["PENDING", "认证中"],
-        ["SUCCESS", "认证成功"],
+        ["SUCCESS", "认证"],
         ["FAIL", "认证失败"],
         ["FAIL", "认证失败"],
       ]),
       ]),
     };
     };

+ 10 - 0
src/main/nine-space/src/router/index.js

@@ -99,6 +99,11 @@ const routes = [
     name: "userVerified",
     name: "userVerified",
     component: () => import("../views/account/Verified.vue"),
     component: () => import("../views/account/Verified.vue"),
   },
   },
+  {
+    path: "/verifiedSuc",
+    name: "verifiedSuc",
+    component: () => import("../views/account/VerifiedSuc.vue"),
+  },
   {
   {
     path: "/setting",
     path: "/setting",
     name: "userSetting",
     name: "userSetting",
@@ -119,6 +124,11 @@ const routes = [
     name: "security",
     name: "security",
     component: () => import("../views/account/Security.vue"),
     component: () => import("../views/account/Security.vue"),
   },
   },
+  {
+    path: "/tradingPassword",
+    name: "tradingPassword",
+    component: () => import("../views/account/TradingPassword.vue"),
+  },
   {
   {
     path: "/detail",
     path: "/detail",
     name: "detail",
     name: "detail",

+ 1 - 1
src/main/nine-space/src/views/Discover.vue

@@ -269,7 +269,7 @@ export default {
   margin-top: 12px;
   margin-top: 12px;
 }
 }
 /deep/ .van-grid-item__content {
 /deep/ .van-grid-item__content {
-  padding: 14px 20px 16px;
+  padding: 14px 0 16px;
 }
 }
 /deep/ .van-grid-item__text {
 /deep/ .van-grid-item__text {
   color: #fff;
   color: #fff;

+ 26 - 3
src/main/nine-space/src/views/Mine.vue

@@ -45,10 +45,23 @@
           <div class="flex1"></div>
           <div class="flex1"></div>
           <van-button
           <van-button
             plain
             plain
-            color="#fff"
+            color="#939599"
+            size="mini"
+            :icon="require('../assets/svgs/renzheng_icon.svg')"
+            round
+            @click="$router.push('/verifiedSuc')"
+            v-if="authStatus === '已认证'"
+            class="verid"
+          >
+            {{ authStatus }}
+          </van-button>
+          <van-button
+            plain
+            color="#939599"
             size="mini"
             size="mini"
             :icon="require('../assets/svgs/person.svg')"
             :icon="require('../assets/svgs/person.svg')"
             round
             round
+            v-else
             @click="goAuth"
             @click="goAuth"
           >
           >
             {{ authStatus }}
             {{ authStatus }}
@@ -56,7 +69,7 @@
           <van-button
           <van-button
             plain
             plain
             @click="$router.push('/setting')"
             @click="$router.push('/setting')"
-            color="#fff"
+            color="#939599"
             size="mini"
             size="mini"
             round
             round
             >编辑资料</van-button
             >编辑资料</van-button
@@ -221,7 +234,7 @@ export default {
       if (this.authStatus === "认证中" || this.authStatus === "认证失败") {
       if (this.authStatus === "认证中" || this.authStatus === "认证失败") {
         this.$router.push("/waiting");
         this.$router.push("/waiting");
       } else if (this.authStatus === "未认证") {
       } else if (this.authStatus === "未认证") {
-        this.$router.push("/verfied");
+        this.$router.push("/verified");
       }
       }
     },
     },
   },
   },
@@ -373,10 +386,20 @@ export default {
         width: 18px;
         width: 18px;
         height: 18px;
         height: 18px;
       }
       }
+      color: #fff !important;
     }
     }
     .van-button + .van-button {
     .van-button + .van-button {
       margin-left: 10px;
       margin-left: 10px;
     }
     }
+
+    .verid {
+      color: #d8d8d8;
+      line-height: 24px;
+      background: linear-gradient(45deg, #fdfb60 0%, #ff8f3e 100%);
+      background-clip: text;
+      -webkit-background-clip: text;
+      -webkit-text-fill-color: transparent;
+    }
   }
   }
 }
 }
 .userInfo-top {
 .userInfo-top {

+ 5 - 1
src/main/nine-space/src/views/account/Security.vue

@@ -3,7 +3,11 @@
     <div class="title">账户与安全</div>
     <div class="title">账户与安全</div>
     <van-cell-group>
     <van-cell-group>
       <van-cell title="修改登录密码" :to="{ path: '/forget' }" is-link />
       <van-cell title="修改登录密码" :to="{ path: '/forget' }" is-link />
-      <van-cell title="修改支付密码" is-link />
+      <van-cell
+        title="修改支付密码"
+        :to="{ path: '/tradingPassword' }"
+        is-link
+      />
       <van-cell title="修改手机号" :to="{ path: '/changePhone' }" is-link />
       <van-cell title="修改手机号" :to="{ path: '/changePhone' }" is-link />
     </van-cell-group>
     </van-cell-group>
   </div>
   </div>

+ 91 - 30
src/main/nine-space/src/views/account/TradingPassword.vue

@@ -9,7 +9,7 @@
       <van-cell
       <van-cell
         class="phone"
         class="phone"
         :title="phone"
         :title="phone"
-        label="修改手机号需先验证当前手机号"
+        label="修改交易密码需先验证当前手机号"
       />
       />
       <van-field
       <van-field
         type="digit"
         type="digit"
@@ -52,17 +52,38 @@
     </van-form>
     </van-form>
 
 
     <van-form v-else ref="form" @submit="submit">
     <van-form v-else ref="form" @submit="submit">
-      <van-password-input
-        :value="value"
-        :focused="showKeyboard"
-        @focus="showKeyboard = true"
-      />
-      <!-- 数字键盘 -->
-      <van-number-keyboard
-        v-model="value"
-        :show="showKeyboard"
-        @blur="showKeyboard = false"
-      />
+      <div class="input">
+        <div class="text1">请输入交易密码</div>
+        <van-password-input
+          :value="password"
+          :focused="showKeyboard"
+          @focus="showKeyboard = true"
+        />
+        <!-- 数字键盘 -->
+        <van-number-keyboard
+          v-model="password"
+          :show="showKeyboard"
+          @blur="showKeyboard = false"
+          maxlength="6"
+        />
+      </div>
+
+      <div class="input">
+        <div class="text1">请再次输入交易密码</div>
+        <van-password-input
+          :value="password2"
+          :focused="showKeyboard2"
+          @focus="showKeyboard2 = true"
+        />
+        <!-- 数字键盘 -->
+        <van-number-keyboard
+          v-model="password2"
+          :show="showKeyboard2"
+          @blur="showKeyboard2 = false"
+          maxlength="6"
+        />
+      </div>
+
       <div class="button">
       <div class="button">
         <van-button
         <van-button
           round
           round
@@ -90,15 +111,10 @@ export default {
         phone: "",
         phone: "",
         code: "",
         code: "",
       },
       },
-    };
-  },
-  setup() {
-    const value = ref("123");
-    const showKeyboard = ref(true);
-
-    return {
-      value,
-      showKeyboard,
+      password: "",
+      password2: "",
+      showKeyboard: false,
+      showKeyboard2: false,
     };
     };
   },
   },
   computed: {
   computed: {
@@ -118,16 +134,27 @@ export default {
       });
       });
     },
     },
     submit() {
     submit() {
+      if (!this.password || !this.password2) {
+        this.$toast("密码不能为空");
+        return;
+      }
+      if (this.password2 !== this.password) {
+        this.$toast("两次密码不一致");
+        return;
+      }
       this.$toast.loading({
       this.$toast.loading({
         message: "加载中...",
         message: "加载中...",
         forbidClick: true,
         forbidClick: true,
       });
       });
-      this.verifyMsg(this.form.phone, this.form.code)
-        .then(() => {
-          return this.$http.post("/user/bindPhone?phone=" + this.form.phone);
-        })
+      this.$http
+        .post(
+          "/user/setTradeCode?code=" +
+            this.form.code +
+            "&tradeCode=" +
+            this.password
+        )
         .then(() => {
         .then(() => {
-          this.$toast.success("修改成功");
+          this.$toast.success("设置成功");
           setTimeout(() => {
           setTimeout(() => {
             this.$router.back();
             this.$router.back();
           }, 1500);
           }, 1500);
@@ -139,10 +166,7 @@ export default {
         });
         });
     },
     },
     next() {
     next() {
-      this.verifyMsg(this.userInfo.phone, this.form.code).then((res) => {
-        this.setTime(0);
-        this.step = 1;
-      });
+      this.step = 1;
     },
     },
   },
   },
 };
 };
@@ -233,4 +257,41 @@ export default {
     color: #939599;
     color: #939599;
   }
   }
 }
 }
+
+/deep/ .van-password-input {
+  margin: 0 0;
+  .van-password-input__security {
+    border: 1px solid #939599;
+    height: 42px;
+    border-radius: 2px;
+    li {
+      background-color: transparent;
+      &:not(:last-child) {
+        border-right: 1px solid #939599;
+      }
+      i {
+        background-color: #fff;
+      }
+    }
+  }
+}
+/deep/.van-number-keyboard__body {
+  background-color: #4a4a4a;
+  .van-key {
+    background-color: @bg;
+    &:active {
+      background-color: @bg3;
+    }
+  }
+}
+
+.input {
+  margin-top: 20px;
+  .text1 {
+    font-size: 14px;
+    color: #ffffff;
+    line-height: 24px;
+    margin-bottom: 6px;
+  }
+}
 </style>
 </style>

+ 17 - 5
src/main/nine-space/src/views/account/Verified.vue

@@ -37,12 +37,18 @@
       </van-field>
       </van-field>
 
 
       <van-field
       <van-field
-        type="digit"
+        type="mail"
         label="电子邮箱"
         label="电子邮箱"
         name="电子邮箱"
         name="电子邮箱"
         placeholder="请输入电子邮箱"
         placeholder="请输入电子邮箱"
         v-model="form.email"
         v-model="form.email"
-        :rules="[{ required: true, message: '请输入电子邮箱' }]"
+        :rules="[
+          { required: true, message: '请输入电子邮箱' },
+          {
+            pattern: emailPattern,
+            message: '电子邮箱格式错误',
+          },
+        ]"
       >
       >
       </van-field>
       </van-field>
 
 
@@ -132,6 +138,8 @@ export default {
   data() {
   data() {
     return {
     return {
       active: "phone",
       active: "phone",
+      emailPattern:
+        /^([a-zA-Z0-9]+[_|_|\-|.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|_|.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,6}$/,
       form: {
       form: {
         realName: "",
         realName: "",
         phone: "",
         phone: "",
@@ -141,13 +149,17 @@ export default {
         idBack: "",
         idBack: "",
         status: "",
         status: "",
       },
       },
+      btn: null,
     };
     };
   },
   },
   mounted() {
   mounted() {
-    document.body.appendChild(this.$refs.btn);
+    this.btn = this.$refs.btn;
+    document.body.appendChild(this.btn);
   },
   },
-  unmounted() {
-    document.body.removeChild(this.$refs.btn);
+  beforeUnmount() {
+    if (this.btn) {
+      document.body.removeChild(this.btn);
+    }
   },
   },
   methods: {
   methods: {
     submit() {
     submit() {

+ 109 - 0
src/main/nine-space/src/views/account/VerifiedSuc.vue

@@ -0,0 +1,109 @@
+<template>
+  <div class="page">
+    <div class="tabs">
+      <div class="text1">实名认证已完成</div>
+      <div class="text2">
+        <span>账户实名认证后不能修改</span>
+      </div>
+    </div>
+    <div class="info">
+      <div class="text1">姓名</div>
+      <div class="text2">{{ form.realName }}</div>
+    </div>
+    <div class="info">
+      <div class="text1">手机号码</div>
+      <div class="text2">{{ form.phone }}</div>
+    </div>
+    <div class="info">
+      <div class="text1">电子邮箱</div>
+      <div class="text2">{{ form.email }}</div>
+    </div>
+    <div class="info">
+      <div class="text1">身份证号</div>
+      <div class="text2">{{ form.idNo }}</div>
+    </div>
+    <div class="info">
+      <div class="text1">身份证照片</div>
+      <div class="text2">已上传</div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      form: {},
+    };
+  },
+  mounted() {
+    this.$http
+      .post(
+        "/identityAuth/all",
+        {
+          query: {
+            userId: this.$store.state.userInfo.id,
+          },
+        },
+        { body: "json" }
+      )
+      .then((res) => {
+        if (!res.empty) {
+          this.form = res.content[0];
+        }
+      });
+  },
+};
+</script>
+<style lang="less" scoped>
+.page {
+  padding: 10px 16px 150px;
+}
+.tabs {
+  padding-bottom: 12px;
+  .text1 {
+    font-size: 20px;
+    font-weight: bold;
+    color: #ffffff;
+    line-height: 30px;
+  }
+  .text2 {
+    font-size: 12px;
+    color: #939599;
+    line-height: 22px;
+    margin-top: 4px;
+  }
+}
+
+.info {
+  display: flex;
+  align-items: center;
+  height: 70px;
+  position: relative;
+  .text1 {
+    font-size: 14px;
+    font-weight: bold;
+    color: #939599;
+    line-height: 24px;
+    min-width: 90px;
+  }
+
+  .text2 {
+    font-size: 16px;
+    color: #939599;
+    line-height: 24px;
+  }
+
+  &:not(:last-child) {
+    &::after {
+      content: "";
+      position: absolute;
+      left: 90px;
+      right: 0px;
+      bottom: 0;
+      height: 1px;
+      background-color: #202122;
+    }
+  }
+}
+</style>

+ 8 - 4
src/main/nine-space/src/views/order/Orders.vue

@@ -25,6 +25,7 @@
 
 
       <van-tabs
       <van-tabs
         v-model:active="status"
         v-model:active="status"
+        :ellipsis="false"
         line-width="16"
         line-width="16"
         line-height="2"
         line-height="2"
         @click="changeStatus"
         @click="changeStatus"
@@ -231,13 +232,16 @@ export default {
 .discover {
 .discover {
   padding-bottom: 50px;
   padding-bottom: 50px;
 }
 }
-
+/deep/.van-tabs__nav--line.van-tabs__nav--complete {
+  padding-left: 16px;
+  padding-right: 16px;
+}
 /deep/.van-tab {
 /deep/.van-tab {
   color: #fff;
   color: #fff;
-  flex: 0;
-  padding: 20px;
+  flex-grow: 0;
+  padding: 20px 0;
   flex-shrink: 0;
   flex-shrink: 0;
-  min-width: 100px;
+  margin-right: 50px;
 
 
   &.van-tab--active {
   &.van-tab--active {
     color: @prim;
     color: @prim;