1
jhzh
2025-04-21 067883c72b282546402064eb1b78d8618d45b74d
src/page/newUser/index.vue
@@ -2,20 +2,26 @@
  <div class="user_page">
    <div class="content">
      <div class="top_icon">
        <div class="right_icon">
          <div @click="goToTopUp()">
            <img src="../../assets/img/qiandai.png" alt />
          <!-- <div @click="goToTopUp()">
            <img src="@/assets/img/qianbao.png" alt />
          </div> -->
          <div style="justify-content: flex-end;">
            <a href="https://t.me/Mc1992023" target="_blank">
              <img style="width: 0.5rem;height: 0.5rem;" src="@/assets/img/kefu.png" alt />
            </a>
          </div>
          <div>
            <img src="../../assets/img/kefu.png" alt />
          </div>
          <!-- <div @click="goOnline" style="justify-content: flex-end;">
            <img style="width: 0.5rem;height: 0.5rem;" src="@/assets/img/kefu.png" alt />
          </div> -->
        </div>
      </div>
      <div class="users">
      <div class="users" @click="goWall()" style="display:none">
        <div class="left_tou">
          <div class="left_tx">
            <div>
              <img src="../../assets/img/eslogo.png" alt />
              <img src="@/assets/img/eslogo.png" alt />
            </div>
          </div>
          <div class="right_name">
@@ -23,71 +29,99 @@
          </div>
        </div>
        <div class="right_go">
          <img src="../../assets/img/youjiantou.png" alt />
          <img src="@/assets/img/youjiantou.png" alt />
        </div>
      </div>
      <div class="center_card">
        <div class="keyon">
          <span>{{ '总资产' }}</span>
          <span>{{ $t('hj49') }}</span>
        </div>
        <div class="num_price">
          <p
            v-if="this.$store.state.settingForm.indexDisplay && !this.$store.state.settingForm.futuresDisplay"
            class="account"
          >
            ¥{{ $store.state.hide ? '****' : Number($store.state.userInfo.userAmt +
            $store.state.userInfo.userIndexAmt).toFixed(2)
        <div class="num_price" v-if="userInfo.length == 0">
          ﷼0
        </div>
        <div class="num_price" v-if="userInfo.length != 0">
          <p v-if="this.$store.state.settingForm.indexDisplay && !this.$store.state.settingForm.futuresDisplay"
            class="account">
            ﷼{{ $store.state.hide ? '****' : Number($store.state.userInfo.userAmt +
              $store.state.userInfo.userIndexAmt).toFixed(2)
            }}
          </p>
          <p
            v-else-if="!this.$store.state.settingForm.indexDisplay && this.$store.state.settingForm.futuresDisplay"
            class="account"
          >
            ¥{{ $store.state.hide ? '****' : Number($store.state.userInfo.userAmt +
            $store.state.userInfo.userFuturesAmt).toFixed(2)
          <p v-else-if="!this.$store.state.settingForm.indexDisplay && this.$store.state.settingForm.futuresDisplay"
            class="account">
            ﷼{{ $store.state.hide ? '****' : Number($store.state.userInfo.userAmt +
              $store.state.userInfo.userFuturesAmt).toFixed(2)
            }}
          </p>
          <p
            v-else-if="!this.$store.state.settingForm.indexDisplay && !this.$store.state.settingForm.futuresDisplay"
            class="account"
          >¥{{ $store.state.hide ? '****' : Number($store.state.userInfo.userAmt).toFixed(2) }}</p>
          <p v-else-if="!this.$store.state.settingForm.indexDisplay && !this.$store.state.settingForm.futuresDisplay"
            class="account">﷼&nbsp;&nbsp;{{ $store.state.hide ? '****' :
              regexNum($store.state.userInfo.userAmt)
            }}</p>
        </div>
        <div style="text-align: center;">Phone: {{ this.$store.state.userInfo.phone }}</div>
        <div class="yk es">
          <div>
            <span>{{ '盈亏' }}</span>
            <span>{{ $t('hj55') }}</span>
          </div>
          <div>
            <span>{{ '可用余额(¥)' }}</span>
            <span>{{ $t('hj141') }}</span>
          </div>
          <div>
            <span>{{ $t('hj48') }}</span>
          </div>
        </div>
        <div class="yk as">
          <div>
            <span class="orenge">﷼ {{ userInfo.length != 0 ? regexNum($store.state.userInfo.allFreezAmt +
              $store.state.userInfo.djzj) : 0
            }}</span>
          </div>
          <div v-if="userInfo.length == 0">
            <span v-if="!selectUserFlag">
              <span>{{ '﷼ 0' }}</span>
            </span>
            <span v-else>
              <span>{{ '﷼ 0' }}</span>
            </span>
          </div>
          <div v-if="userInfo.length != 0">
            <span v-if="!selectUserFlag">
              <span
                :class="$store.state.userInfo.allIndexProfitAndLose > 0 ? ' red' : $store.state.userInfo.allIndexProfitAndLose < 0 ? ' green' : ''"
              >{{ '¥ ' + $store.state.userInfo.allIndexProfitAndLose }}</span>
                :class="$store.state.userInfo.allIndexProfitAndLose > 0 ? ' red' : $store.state.userInfo.allIndexProfitAndLose < 0 ? ' green' : ''">{{
                  '﷼ ' + $store.state.userInfo.allIndexProfitAndLose
                }}</span>
            </span>
            <span v-else>
              <span
                :class="$store.state.userInfo.allProfitAndLose > 0 ? ' red' : $store.state.userInfo.allProfitAndLose < 0 ? ' green' : ''"
              >{{ '¥ ' + $store.state.userInfo.allProfitAndLose }}</span>
                :class="$store.state.userInfo.allProfitAndLose > 0 ? ' red' : $store.state.userInfo.allProfitAndLose < 0 ? ' green' : ''">{{
                  regexNum($store.state.userInfo.allProfitAndLose)
                }}</span>
            </span>
          </div>
          <div>
            <span class="bzz" v-if="!selectUserFlag">{{ '¥ ' + $store.state.userInfo.userIndexAmt }}</span>
          <div v-if="userInfo.length == 0">
            <span class="bzz" v-if="!selectUserFlag">{{ '﷼ 0' }}</span>
            <span class="bzz" v-else>{{ '﷼ 0' }}</span>
          </div>
          <div v-if="userInfo.length != 0">
            <span class="bzz" v-if="!selectUserFlag">{{ '﷼ ' + $store.state.userInfo.enableIndexAmt }}</span>
            <span class="bzz" v-else>{{ '  ' + regexNum($store.state.userInfo.enableAmt) }}</span>
          </div>
        </div>
        <div class="btns" @click="handleZh()" :class="selectUserFlag ? '' : 'active'">
          <span>{{ selectUserFlag ? '切换指数账户' : '切换沪深账户' }}</span>
        </div>
        <!-- <div class="btns" @click="handleZh()" :class="selectUserFlag ? '' : 'active'">
          <span>{{ selectUserFlag ? $t('hj142') : $t('hj143') }}</span>
        </div> -->
      </div>
      <div class="jy">
      <div class="jy" @click="goWall()">
        <div class="left_gn">
          <div class="l_icon">
            <img src="../../assets/img/shezhi.png" alt />
            <img src="../../assets/img/huazhuan2.png" alt />
          </div>
          <div class="r_title">
            <span>{{ '设置' }}</span>
            <span>{{ $t('hj256') }}</span>
          </div>
        </div>
        <div class="right_gos">
@@ -100,7 +134,7 @@
            <img src="../../assets/img/xiugaimima.png" alt />
          </div>
          <div class="r_title">
            <span>{{ '修改密码' }}</span>
            <span>{{ $t('hj144') }}</span>
          </div>
        </div>
        <div class="right_gos">
@@ -113,7 +147,7 @@
            <img src="../../assets/img/huazhuan2.png" alt />
          </div>
          <div class="r_title">
            <span>{{ '资金划转' }}</span>
            <span>{{ $t('subdka') }}</span>
          </div>
        </div>
        <div class="right_gos">
@@ -126,7 +160,7 @@
            <img src="../../assets/img/shiming.png" alt />
          </div>
          <div class="r_title">
            <span>{{ '实名认证' }}</span>
            <span>{{ $t('hj146') }}</span>
          </div>
        </div>
        <div class="right_gos">
@@ -139,7 +173,7 @@
            <img src="../../assets/img/shiming.png" alt />
          </div>
          <div class="r_title">
            <span>{{ '绑定银行卡' }}</span>
            <span>{{ $t('hj147') }}</span>
          </div>
        </div>
        <div class="right_gos">
@@ -152,7 +186,7 @@
            <img src="../../assets/img/out2.png" alt />
          </div>
          <div class="r_title">
            <span>{{ '退出登录' }}</span>
            <span>{{ $t('hj148') }}</span>
          </div>
        </div>
        <div class="right_gos">
@@ -160,11 +194,11 @@
        </div>
      </div>
    </div>
    <van-popup v-model="settingDialog" position="bottom" :style="{ height: '35%' }">
    <van-popup v-model="settingDialog" position="bottom" :style="{ height: '40%' }">
      <div class="setting_content">
        <div class="old_password">
          <div class="left_titles">
            <span>{{ '旧密码:' }}</span>
            <span>{{ $t('hj150') + ':' }}</span>
          </div>
          <div class="right_password_input">
            <input type="password" v-model="oldPassword" />
@@ -172,7 +206,7 @@
        </div>
        <div class="old_password">
          <div class="left_titles">
            <span>{{ '新密码:' }}</span>
            <span>{{ $t('hj151') + ':' }}</span>
          </div>
          <div class="right_password_input">
            <input type="password" v-model="newPassword" />
@@ -180,92 +214,185 @@
        </div>
        <div class="old_password">
          <div class="left_titles">
            <span>{{ '确认新密码:' }}</span>
            <span>{{ $t('hj152') + ':' }}</span>
          </div>
          <div class="right_password_input">
            <input type="password" v-model="cirNewPassword" />
          </div>
        </div>
        <div class="btn_setting" @click="changeLoginPsd()">
          <span>{{ '确认修改' }}</span>
          <span>{{ $t('hj153') }}</span>
        </div>
      </div>
    </van-popup>
  </div>
</template>
<script>
import * as api from "@/axios/api";
import { Toast } from "mint-ui";
import { isNull, pwdReg } from "@/utils/utils";
import * as api from '@/axios/api'
import { Toast, MessageBox } from 'mint-ui'
import { isNull, pwdReg } from '@/utils/utils'
export default {
  name: "newUser",
  name: 'newUser',
  data() {
    return {
      name: "大狗子",
      name: '大狗子',
      selectUserFlag: true,
      settingDialog: false,
      oldPassword: "", // 旧密码
      newPassword: "", // 新密码
      cirNewPassword: "", //确认新密码
      userInfo: {}
    };
      oldPassword: '', // 旧密码
      newPassword: '', // 新密码
      cirNewPassword: '', // 确认新密码
      userInfo: [],
      onlineService: ''
    }
  },
  components: {
  },
  created() {
    this.getUserInfo();
    this.getUserInfo()
    this.getInfoSite()
  },
  methods: {
    regexNum(str) {
      console.log(str);
      str = str.toString()
      if (str.indexOf(".") == -1) {
        str = str + ".00"
      }
      var newStr = str.split('.')
      var point = newStr[1]
      if (point.length < 2) {
        point = point + "0"
      }
      var moneyPoint = newStr[0]
      if (moneyPoint.length <= 3) {
        return moneyPoint + "." + point
      } else {
        var mPoint = moneyPoint.substr(moneyPoint.length - 3, moneyPoint.length)
        var twoPoint = moneyPoint.substr(0, moneyPoint.length - 3)
        var endString = twoPoint.toString().replace(/(\d)(?=(\d{2})+(?!\d))/g, '$1,')
        return endString + "," + mPoint + '.' + point;
      }
    },
    goOnline() {
      if (navigator.vibrate) {
        // 支持
        navigator.vibrate([55])
      }
      this.$router.push('/service')
    },
    async getInfoSite() {
      let data = await api.getInfoSite()
      if (data.status === 0) {
        this.onlineService = data.data.onlineService
      } else {
        Toast(data.msg)
      }
    },
    goWall() {
      // if (this.userInfo.length === 0) {
      //   this.$store.commit('dialogVisible', true)
      //   return
      // }
      this.$router.push('/recharge')
    },
    handleZh() {
      this.selectUserFlag = !this.selectUserFlag;
      this.selectUserFlag = !this.selectUserFlag
      if (this.userInfo.length === 0) {
        this.$store.commit('dialogVisible', true)
        return
      }
      if (navigator.vibrate) {
        // 支持
        navigator.vibrate([55])
      }
    },
    async getUserInfo() {
      // 获取用户信息
      let data = await api.getUserInfo();
      let data = await api.getUserInfo()
      if (data.status === 0) {
        // 判断是否登录
        this.$store.state.userInfo = data.data;
        this.userInfo = data.data;
        this.$store.commit('dialogVisible', false)
        this.$store.state.userInfo = data.data
        this.userInfo = data.data
      } else {
        this.$store.commit('dialogVisible', true)
      }
    },
    goToTopUp() {
      this.$router.push("/wallet");
      if (this.userInfo.length === 0) {
        this.$store.commit('dialogVisible', true)
        return
      }
      if (navigator.vibrate) {
        // 支持
        navigator.vibrate([55])
      }
      this.$router.push('/wallet')
    },
    handleOutLoginClick() {
      // 退出登录
      this.toRegister();
      MessageBox.confirm(this.$t('hj149') + '?', this.$t('hj165'), {
        confirmButtonText: this.$t('hj161'),
        cancelButtonText: this.$t('hj106')
      }).then(() => {
        this.toRegister()
      }).catch(() => {
      })
    },
    goToSettings() {
      // if (this.userInfo.length === 0) {
      //   this.$store.commit('dialogVisible', true)
      //   return
      // }
      // 每次打开dialog 清空密码数据
      this.settingDialog = !this.settingDialog;
      this.settingDialog = !this.settingDialog
      if (this.settingDialog) {
        this.oldPassword = "";
        this.newPassword = "";
        this.cirNewPassword = "";
        this.oldPassword = ''
        this.newPassword = ''
        this.cirNewPassword = ''
      }
    },
    handleGoToTransfer() {
      this.$router.push("/transfers");
      // if (this.userInfo.length === 0) {
      //   this.$store.commit('dialogVisible', true)
      //   return
      // }
      this.$router.push('/RechargeSure')
    },
    handleGoToAuthentication() {
      this.$router.push("/authentications");
      // if (this.userInfo.length === 0) {
      //   this.$store.commit('dialogVisible', true)
      //   return
      // }
      this.$router.push('/authentications')
    },
    handleGoToBankCard() {
      this.$router.push("/bankCard");
      // if (this.userInfo.length === 0) {
      //   this.$store.commit('dialogVisible', true)
      //   return
      // }
      this.$router.push('/banklist')
    },
    async toRegister() {
      // 注销登陆
      window.localStorage.clear("USERTOKEN"); // 清空本地存储 USERTOKEN字段
      this.clearCookie();
      let data = await api.logout();
      window.localStorage.removeItem('USERTOKEN') // 清空本地存储 USERTOKEN字段
      this.clearCookie()
      let data = await api.logout()
      if (data.status === 0) {
        // Toast(data.msg)
        this.$router.push("/login");
        this.$router.push('/login')
      } else {
        Toast(data.msg);
        Toast(data.msg)
      }
      this.$router.push("/login");
      this.$router.push('/login')
    },
    async changeLoginPsd() {
      // 修改密码
@@ -274,61 +401,79 @@
        isNull(this.newPassword) ||
        isNull(this.cirNewPassword)
      ) {
        Toast("请输入新旧密码");
        this.settingDialog = false;
        Toast(this.$t('hj154'))
        this.settingDialog = false
      } else if (!pwdReg(this.newPassword)) {
        Toast("密码为6~12位,数字、字母或符号");
        this.settingDialog = false;
        Toast(this.$t('hj19'))
        this.settingDialog = false
      } else {
        // 修改密码
        if (this.newPassword === this.cirNewPassword) {
          let opts = {
            oldPwd: this.oldPassword,
            newPwd: this.newPassword
          };
          let data = await api.changePassword(opts);
          }
          let data = await api.changePassword(opts)
          if (data.status === 0) {
            this.changeLoginPsdBox = false;
            Toast(data.msg);
            this.settingDialog = false;
            this.changeLoginPsdBox = false
            Toast(data.msg)
            this.settingDialog = false
          } else {
            Toast(data.msg);
            this.settingDialog = false;
            Toast(data.msg)
            this.settingDialog = false
          }
        } else {
          Toast("新密码不一致");
          this.settingDialog = false;
          Toast(this.$t('hj155'))
          this.settingDialog = false
        }
      }
      if (navigator.vibrate) {
        // 支持
        navigator.vibrate([55])
      }
    }
  }
};
  },
}
</script>
<style scoped lang="less">
.green {
  color: #028f52 !important;
}
.red {
  color: #b60c0d !important;
}
.user_page {
  width: 100%;
  height: calc(100% - 1.3rem);
  .content {
    width: 100%;
    height: 100%;
    padding: 0 0.3rem;
    .top_icon {
      width: 100%;
      height: 1.5rem;
      display: flex;
      justify-content: flex-end;
      align-items: center;
      .right_icon {
        width: 25%;
        width: 17%;
        height: 50%;
        display: flex;
        > div {
          width: 50%;
        >div {
          width: 100%;
          height: 100%;
          display: flex;
          justify-content: center;
          justify-content: space-between;
          align-items: center;
          img {
            width: 0.6rem;
            height: 0.6rem;
@@ -336,6 +481,7 @@
        }
      }
    }
    .users {
      width: 100%;
      height: 1.7949rem;
@@ -344,10 +490,12 @@
      display: flex;
      align-items: center;
      justify-content: space-between;
      .left_tou {
        width: 80%;
        height: 70%;
        display: flex;
        .left_tx {
          width: 20%;
          height: 100%;
@@ -355,29 +503,34 @@
          display: flex;
          align-items: center;
          justify-content: center;
          > div {
          >div {
            width: 1rem;
            height: 1rem;
            border-radius: 50%;
            overflow: hidden;
            background: rgb(211, 211, 211);
            img {
              width: 100%;
              height: 100%;
            }
          }
        }
        .right_name {
          width: 80%;
          height: 100%;
          display: flex;
          align-items: center;
          font-size: 0.4415rem;
          span {
            font-weight: 600;
          }
        }
      }
      .right_go {
        width: 20%;
        height: 70%;
@@ -385,69 +538,98 @@
        justify-content: flex-end;
        align-items: center;
        padding-right: 0.2rem;
        img {
          width: 0.6rem;
          height: 0.6rem;
        }
      }
    }
    .center_card {
      width: 100%;
      height: 5.3846rem;
      // height: 5.3846rem;
      background-image: linear-gradient(to right bottom, #ffffff, #dfedfc);
      // background-image: linear-gradient(to right, #ffffff , #dfedfc);
      margin-top: 0.5rem;
      // margin-top: 0.5rem;
      border-radius: 0.15rem;
      padding: 0.5rem 0.4rem;
      .keyon {
        width: 100%;
        height: 0.5128rem;
        font-size: 0.359rem;
        display: flex;
        align-items: center;
        color: #3d4144;
        font-weight: 600;
        justify-content: center;
        padding-bottom: 0.2rem;
        span {
          font-weight: 600;
          font-size: 0.6rem;
        }
      }
      .num_price {
        width: 100%;
        height: 0.6667rem;
        // height: 0.6667rem;
        margin-top: 0.1rem;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 0.5528rem;
        padding-bottom: 0.3rem;
        span {
          font-weight: 600;
        }
      }
      .account {
        font-size: 0.6rem;
        font-weight: 600;
      }
      .yk {
        width: 100%;
        height: 0.5rem;
        display: flex;
        align-items: center;
        > div {
          width: 50%;
        justify-content: space-between;
        >div {
          width: 33%;
          height: 100%;
          color: #97989d;
          display: flex;
          align-items: center;
          justify-content: center;
        }
        .orenge {
          // color: rgb(216, 141, 1) !important;
        }
      }
      .yk.es {
        margin-top: 0.3rem;
      }
      .yk.as {
        font-size: 0.4033rem;
        margin-top: 0.1rem;
        span {
          color: #000;
          font-weight: 600;
        }
        .bzz {
          color: #4ea364;
          // color: #4ea364;
        }
      }
      .btns {
        width: 100%;
        height: 1.2821rem;
@@ -459,14 +641,17 @@
        font-size: 0.4015rem;
        color: #fff;
        margin-top: 0.35rem;
        span {
          font-weight: 600;
        }
      }
      .active {
        background: #4ea364;
      }
    }
    .jy {
      width: 100%;
      height: 1.5rem;
@@ -477,39 +662,47 @@
      justify-content: space-between;
      padding: 0 0.3rem;
      margin-top: 0.3rem;
      .left_gn {
        width: 40%;
        // width: 40%;
        height: 60%;
        display: flex;
        .l_icon {
          width: 30%;
          // width: 30%;
          height: 100%;
          display: flex;
          justify-content: center;
          align-items: center;
          img {
            width: 0.5041rem;
            height: 0.5041rem;
          }
        }
        .r_title {
          width: 70%;
          // width: 70%;
          height: 100%;
          display: flex;
          align-items: center;
          font-size: 0.4046rem;
          color: #404040;
          padding-left: 0.3rem;
          span {
            font-weight: 600;
          }
        }
      }
      .right_gos {
        width: 20%;
        // width: 20%;
        height: 60%;
        display: flex;
        align-items: center;
        justify-content: flex-end;
        img {
          width: 0.6rem;
          height: 0.6rem;
@@ -518,10 +711,12 @@
    }
  }
}
.setting_content {
  width: 100%;
  height: 5rem;
  padding: 0.3rem;
  .old_password {
    width: 100%;
    height: 1rem;
@@ -529,22 +724,26 @@
    border-radius: 0.15rem;
    display: flex;
    margin-top: 0.5rem;
    .left_titles {
      width: 25%;
      height: 100%;
      display: flex;
      align-items: center;
      padding-left: 0.2rem;
      // justify-content: flex-end;
      span {
        font-weight: 600;
      }
    }
    .right_password_input {
      width: 80%;
      height: 100%;
      display: flex;
      align-items: center;
      input {
        width: 100%;
        height: 100%;
@@ -552,6 +751,7 @@
      }
    }
  }
  .btn_setting {
    width: 100%;
    height: 1.3rem;
@@ -563,9 +763,10 @@
    display: flex;
    align-items: center;
    justify-content: center;
    span {
      font-weight: 600;
    }
  }
}
</style>
</style>