DESKTOP-CVS3R96\我恁爹
2022-11-15 d8f6c671a613b841566c8d7b1f36eb2bb9640ea9
多于元
13 files modified
1 files added
1373 ■■■■■ changed files
src/locales/index.js 52 ●●●●● patch | view | raw | blame | history
src/locales/zh.js 175 ●●●●● patch | view | raw | blame | history
src/main.js 5 ●●●●● patch | view | raw | blame | history
src/page/home/home.vue 126 ●●●● patch | view | raw | blame | history
src/page/kline/components/kLine.vue 25 ●●●● patch | view | raw | blame | history
src/page/kline/index.vue 70 ●●●●● patch | view | raw | blame | history
src/page/list/trading-list.vue 80 ●●●● patch | view | raw | blame | history
src/page/login/login.vue 304 ●●●● patch | view | raw | blame | history
src/page/login/register.vue 44 ●●●● patch | view | raw | blame | history
src/page/newUser/index.vue 99 ●●●●● patch | view | raw | blame | history
src/page/trading/buy.vue 55 ●●●●● patch | view | raw | blame | history
src/page/user/Warehouse.vue 250 ●●●●● patch | view | raw | blame | history
src/page/wallet/index.vue 58 ●●●● patch | view | raw | blame | history
static/css/public2.css 30 ●●●●● patch | view | raw | blame | history
src/locales/index.js
@@ -1,49 +1,39 @@
import Vue from 'vue';
import VueI18n from 'vue-i18n';
import chinese from './zh-CN.js';
import english from './en.js';
import chinesechar from './tw.js';
import Vue from "vue";
import VueI18n from "vue-i18n";
import zh from "./zh.js";
import en from "./en.js";
Vue.use(VueI18n);
function getCookie(name) {
    // 获取cookie
    var arr;
    var reg = new RegExp(`(^| )${name}=([^;]*)(;|$)`);
    if (arr = document.cookie.match(reg)) {
      return unescape(arr[2]);
    }
    return null;
}
const DEFAULT_LANG = 'en-us';
const LOCALE_KEY = 'language';
const DEFAULT_LANG = "zh";
const LOCALE_KEY = "language";
const locales = {
  zh_cn: {
    ...chinese,
  zh: {
    ...zh
  },
  en: {
    ...english,
  },
  tw: {
    ...chinesechar,
  },
    ...en
  }
};
// en-us  zh-cn
//let langLocale = getCookie(LOCALE_KEY) || 'en';
let langLocale = window.localStorage.getItem(LOCALE_KEY) || 'en';
if (!window.localStorage.getItem(LOCALE_KEY)) {
  window.localStorage.setItem(LOCALE_KEY, DEFAULT_LANG);
}
let langLocale = window.localStorage.getItem(LOCALE_KEY)
  ? window.localStorage.getItem(LOCALE_KEY)
  : "zh";
const i18n = new VueI18n({
  locale: langLocale,
  messages: locales,
  silentTranslationWarn: true
});
const init = Vue.prototype._init;
Vue.prototype._init = function (options) {
Vue.prototype._init = function(options) {
  init.call(this, {
    i18n,
    ...options,
    ...options
  });
};
@@ -53,9 +43,9 @@
    //const language = getCookie(LOCALE_KEY);
    const language = window.localStorage.getItem(LOCALE_KEY);
    if (language) {
      langLocale = language.replace('-', '_').toLowerCase();
      langLocale = language.replace("-", "_").toLowerCase();
    }
    if (undefined !== langLocale && langLocale !== '') {
    if (undefined !== langLocale && langLocale !== "") {
      lang = langLocale;
    }
    if (locales[lang] === undefined) {
@@ -64,12 +54,10 @@
    // console.log(`lang-${lang}`);
  }
  Vue.config.lang = lang;
  i18n.locale = lang;
};
setup();
export default i18n;
src/locales/zh.js
New file
@@ -0,0 +1,175 @@
/* eslint-disable */
export default {
    "MingCheng":"名称",
    "hj1":"行情",
    "hj2":"持仓",
    "hj3":"新股",
    "hj4":"我的",
    "hj5":"最多关注",
    "hj6":"新闻",
    "hj7":"经济",
    "hj8":"手机号登录",
    "hj9":"请输入手机号",
    "hj10":"登录密码",
    "hj11":"安全登录",
    "hj12":"忘记密码?",
    "hj13":"其他登录方式",
    "hj14":"没有账户",
    "hj15":"注册",
    "hj16":"电子邮箱",
    "hj17":"您所在的地区暂未开通此服务",
    "hj18":"手机注册",
    "hj19":"密码为6~12位数字、字母或符号",
    "hj20":"请再次确认密码",
    "hj21":"邀请码",
    "hj22":"安全注册",
    "hj23":"已有账户",
    "hj24":"登录",
    "hj25":"验证码",
    "hj26":"手机号注册",
    "hj27":"手机号",
    "hj28":"请输入正确的手机号",
    "hj29":"手机号不能为空",
    "hj30":"请输入密码",
    "hj31":"请确认密码",
    "hj32":"两次输入的密码不一致",
    "hj33":"请输入邀请码",
    "hj34":"注册成功,请登录",
    "hj35":"用户已注册,请登录",
    "hj36":"登录成功",
    "hj37":"输入股票名称/代码搜索",
    "hj38":"开户即可入金交易",
    "hj39":"名称",
    "hj40":"最新价",
    "hj41":"涨跌幅",
    "hj42":"申购类型",
    "hj43":"没有更多了",
    "hj44":"手续费",
    "hj45":"新股申购",
    "hj46":"线下配售",
    "hj47":"余额",
    "hj48":"可用余额",
    "hj49":"总资产",
    "hj50":"强平线",
    "hj51":"指数",
    "hj52":"股票",
    "hj53":"资产",
    "hj54":"可用资金",
    "hj55":"冻结保证金",
    "hj56":"持仓总盈亏",
    "hj57":"申购数量",
    "hj58":"立即申购",
    "hj59":"申购时间",
    "hj60":"认缴时间",
    "hj61":"自选",
    "hj62":"市场",
    "hj63":"沪深京",
    "hj64":"科创",
    "hj65":"美股",
    "hj66":"港股",
    "hj67":"数量不能为空",
    "hj68":"数量不能小于1",
    "hj69":"数量不能大于",
    "hj70":"申购成功",
    "hj71":"指数暂不支持自选!",
    "hj72":"今开",
    "hj73":"最高",
    "hj74":"昨收",
    "hj75":"最低",
    "hj76":"五档",
    "hj77":"买",
    "hj78":"卖",
    "hj79":"分时成交",
    "hj80":"时间",
    "hj81":"价格",
    "hj82":"成交量",
    "hj83":"简介",
    "hj84":"卖出",
    "hj85":"买入",
    "hj86":"分时",
    "hj87":"天",
    "hj88":"周",
    "hj89":"月",
    "hj90":"1分",
    "hj91":"5分",
    "hj92":"30分",
    "hj93":"不复权",
    "hj94":"前复权",
    "hj95":"后复权",
    "hj96":"添加自选成功",
    "hj97":"删除自选成功",
    "hj98":"买入价",
    "hj99":"当价格满足条件时买入",
    "hj100":"交易数量(手)",
    "hj101":"杠杆",
    "hj102":"需付保证金",
    "hj103":"可用余额",
    "hj104":"止盈",
    "hj105":"止损",
    "hj106":"取消",
    "hj107":"选择杠杆",
    "hj108":"市单价",
    "hj109":"挂单",
    "hj110":"追踪止损",
    "hj111":"您还未实名认证,请先实名认证了再下单",
    "hj112":"倍",
    "hj113":"下单失败,不在交易时段内",
    "hj114":"沪深京账户",
    "hj115":"指数账户",
    "hj116":"新股账户",
    "hj117":"手",
    "hj118":"浮动净盈亏",
    "hj119":"开仓价格",
    "hj120":"当前价格",
    "hj121":"平仓",
    "hj122":"当前无持仓",
    "hj123":"开始交易",
    "hj124":"当前无挂单",
    "hj125":"挂单价格",
    "hj126":"撤销",
    "hj127":"当前无平仓",
    "hj128":"平仓时间",
    "hj129":"当前无申购",
    "hj130":"申购价格",
    "hj131":"已认购",
    "hj132":"未中签",
    "hj133":"已中签",
    "hj134":"已缴纳",
    "hj135":"已转持仓",
    "hj136":"已平仓",
    "hj137":"撤单成功",
    "hj138":"您还未实名认证,请先实名认证了再下单",
    "hj139":"您确定要平仓吗",
    "hj140":"平仓失败,不在交易时段内",
    "hj141":"盈亏",
    "hj142":"切换指数账户",
    "hj143":"切换沪深账户",
    "hj144":"修改密码",
    "hj145":"资金划转",
    "hj146":"实名认证",
    "hj147":"绑定银行卡",
    "hj148":"退出登录",
    "hj149":"您确定要退出登录吗",
    "hj150":"旧密码",
    "hj151":"新密码",
    "hj152":"确认新密码",
    "hj153":"确认修改",
    "hj154":"请输入新旧密码",
    "hj155":"新密码不一致",
    "hj156":"沪深账户",
    "hj157":"账户金额互转",
    "hj158":"可提现金额",
    "hj159":"提现金额",
    "hj160":"全部",
    "hj161":"确定",
    "hj162":"提现记录",
    "hj163":"收款名称",
    "hj164":"复制",
    "hj165":"提示",
    "hj166":"全部",
    "hj167":"全部",
    "hj168":"全部",
    "hj169":"全部",
    "hj170":"全部",
    "hj171":"全部",
  }
src/main.js
@@ -48,9 +48,7 @@
Vue.use(Vant);
Vue.use(Mint)
Vue.use(Tab);
Vue.use({
  i18n: (key, value) => i18n.t(key, value),
});
Vue.prototype._i18n = i18n;
Vue.use(Tabs, Popup, DatetimePicker, Switch, Notify);
Vue.component('icon', Icon)
Vue.config.productionTip = false
@@ -157,6 +155,7 @@
new Vue({
  el: '#app',
  i18n,
  store,
  router,
  axios,
src/page/home/home.vue
@@ -30,16 +30,16 @@
        </div>
        <!-- 公告 -->
        <van-skeleton title :row="1" :loading="loading" />
        <div class="announcement" v-if="!loading&&close">
        <div class="announcement" v-if="!loading && close">
          <div class="an_content" @click="$router.push('/newGg')">
            <div class="an_left_icon">
              <img :src="Announcement" alt />
            </div>
            <div class="an_right_message " >
            <div class="an_right_message ">
              <div class="animate">
                {{ artList.artTitle }}
              </div>
            </div>
          </div>
        </div>
@@ -47,10 +47,10 @@
        <!-- 排行入门 -->
        <van-skeleton title :row="2" :loading="loading" />
        <div class="navs" v-if="!loading&&close">
        <div class="navs" v-if="!loading && close">
          <div class="navs_content">
            <div class="chacha" @click="close=false">
            <div class="chacha" @click="close = false">
              <div>
                <img :src="clear" />
              </div>
@@ -74,7 +74,7 @@
        <div class="focus_on" v-if="!loading">
          <div class="fo_content">
            <div class="top_title">
              {{ '最多关注' }}
              {{ $t('hj5') }}
            </div>
            <div class="fo_banner">
              <van-swipe class="fo_my-swipe" :autoplay="0" indicator-color="white" @change="onChange">
@@ -109,7 +109,8 @@
                  </div>
                </van-swipe-item> -->
                <van-swipe-item v-for="(item, index)  in proData" :key="index">
                  <div class="item_cont" :class="idx!=2?'item_conts':''" v-for="(item2, idx) in proData[currentIndex]" :key="idx" @click="goDetail(item2)">
                  <div class="item_cont" :class="idx != 2 ? 'item_conts' : ''"
                    v-for="(item2, idx) in proData[currentIndex]" :key="idx" @click="goDetail(item2)">
                    <div class="top_fo">
                      <div class="title">
                        {{ item2.name }}
@@ -126,10 +127,11 @@
                    <div class="bottom_fo">
                      <div class="title">
                        <span class="numberid" style="margin-right: 0.12rem;">{{ item2.symbol }}</span>
                        <div v-for="(items,indexs) in Number(item2.pnum.slice(0, 1))" style="width: 0.4rem;height: 0.4rem;display: flex;">
                          <img v-if="indexs<3" :src="Huo" alt style="width: 0.4rem;height: 0.4rem;" />
                        <div v-for="(items, indexs) in Number(item2.pnum.slice(0, 1))"
                          style="width: 0.4rem;height: 0.4rem;display: flex;">
                          <img v-if="indexs < 3" :src="Huo" alt style="width: 0.4rem;height: 0.4rem;" />
                        </div>
                      </div>
                      <div class="numbers" :class="item2.floatPoint > 0 ? 'gree' : 'redd'">
                        <span class="point">{{ item2.pnum
@@ -154,10 +156,10 @@
      <div class="news-tab">
        <mt-navbar v-model="news">
          <mt-tab-item id="tab_0">
            <span class="tab-name">新闻</span>
            <span class="tab-name">{{ $t('hj6') }}</span>
          </mt-tab-item>
          <mt-tab-item id="tab_1">
            <span class="tab-name">经济</span>
            <span class="tab-name">{{ $t('hj67') }}</span>
          </mt-tab-item>
          <mt-tab-item id="tab_2">
            <span class="tab-name">7×24</span>
@@ -182,13 +184,13 @@
              </div>
            </div>
          </mt-tab-container-item>
          <mt-tab-container-item id="tab_1" >
          <mt-tab-container-item id="tab_1">
            <div class="news-content">
              <div class="item-out" v-for="(item, inde) in newsContent4" :key="inde" @click="$router.push({
                path: '/newPage', query: {
                  listid: item.id
                }
              })" >
              })">
                <div class="item-times">{{ item.addTime | gettime }}</div>
                <div class="titContent" style="-webkit-box-orient: vertical;">{{ item.title }}</div>
              </div>
@@ -252,7 +254,7 @@
      Huo,
      is_login: false,
      loading: true,
      close:true,
      close: true,
      proData: [], // 分割好的数据
      currentIndex: 0,
      bannerImgsArr: [{
@@ -265,22 +267,21 @@
      announcementMess: "20202/10 - 交易时间安排",
      navsArr: [{
        img: Tops,
        title: "行情"
        title: this.$t('hj1'),
      },
      {
        img: Rumen,
        title: "持仓"
        title: this.$t('hj2'),
      },
      {
        img: Xuexi,
        title: "新股"
        title: this.$t('hj3'),
      },
      {
        img: Guanyu,
        title: "我的"
      }
      ],
      artList:[],
        title: this.$t('hj4'),
      }],
      artList: [],
      news: "tab_0",
      newsContent1: [],
      newsContent2: [],
@@ -288,12 +289,11 @@
      newsContent4: [],
      onlineService: "",
      isGoTo: false,
      bannerList:[],
      bannerList: [],
      userInfo: [],
    };
  },
  methods: {
    async getUserInfo() {
      // 获取用户信息
      let data = await api.getUserInfo();
@@ -320,8 +320,8 @@
      }
    },
    goDetail(item) {
      if(this.userInfo.length==0){
        this.$store.commit('dialogVisible',true);
      if (this.userInfo.length == 0) {
        this.$store.commit('dialogVisible', true);
        return;
      }
      this.$router.push({
@@ -343,49 +343,49 @@
        return 0;
      }
    },
    goJy(index){
      if(this.userInfo.length==0){
        this.$store.commit('dialogVisible',true);
    goJy(index) {
      if (this.userInfo.length == 0) {
        this.$store.commit('dialogVisible', true);
        return;
      }
      switch (index) {
        case 0:
          this.$router.push('/trading-list');
          break;
          case 1:
        case 1:
          this.$router.push('/warehouse');
          break;
          case 2:
          this.$router.push({path:'/trading-list',query:{listid:3}});
        case 2:
          this.$router.push({ path: '/trading-list', query: { listid: 3 } });
          break;
          case 3:
        case 3:
          this.$router.push('/user');
          break;
        default:
          break;
      }
      if (navigator.vibrate) {
          // 支持
        // 支持
        navigator.vibrate([55]);
      }
    },
    async getBanner () {
    async getBanner() {
      // 获取显示的banner
      let result = await api.getBannerByPlat({ platType: 'm' })
      if (result.status === 0) {
        this.bannerList = result.data
      } else {
        this.$store.commit('elAlertShow',{'elAlertShow':true,'elAlertText': result.msg});
        this.$store.commit('elAlertShow', { 'elAlertShow': true, 'elAlertText': result.msg });
      }
    },
    goOnline() {
      window.location.href = this.onlineService;
    },
    async getArtList(){
    async getArtList() {
      let data = await api.getArtList();
      if(data.status == 0){
      if (data.status == 0) {
        this.artList = data.data.list[0];
      }
    },
@@ -395,7 +395,7 @@
      if (data.status === 0) {
        this.onlineService = data.data.onlineService
      } else {
        this.$store.commit('elAlertShow',{'elAlertShow':true,'elAlertText': data.msg});
        this.$store.commit('elAlertShow', { 'elAlertShow': true, 'elAlertText': data.msg });
      }
    },
    async getStock() {
@@ -444,7 +444,7 @@
    },
    handleSearchClick() {
      //this.loading = !this.loading;
      this.$router.push({path:"/trading-list",query:{type:1}});
      this.$router.push({ path: "/trading-list", query: { type: 1 } });
    }
  },
  filters: {
@@ -491,11 +491,11 @@
    this.getArtList();
    this.getBanner()
    setInterval(() => {
      if(window.localStorage.getItem('USERTOKEN')){
      if (window.localStorage.getItem('USERTOKEN')) {
        this.isGoTo = false;
      }else{
      } else {
        this.isGoTo = !this.isGoTo
      }
    }, 10000);
@@ -626,7 +626,7 @@
        align-content: center;
        font-size: 0.29rem;
        white-space: nowrap;
         overflow: hidden;
        overflow: hidden;
        // text-overflow:ellipsis;
      }
    }
@@ -753,7 +753,7 @@
    /deep/.van-swipe__indicator--active {
      width: 0.35rem !important;
      border-radius: 0.23rem;
      background-color:  #aec7ec!important;
      background-color: #aec7ec !important;
    }
    .fo_banner {
@@ -810,7 +810,7 @@
      .numberid {
        font-size: 0.28rem;
        display: flex;
        line-height: 0.5rem;
      }
@@ -836,7 +836,8 @@
        text-align: center;
        justify-content: center;
      }
      .percentage span{
      .percentage span {
        height: 0.5rem;
        line-height: 0.5rem;
      }
@@ -998,19 +999,20 @@
  border: 0.0513rem solid #41AC75;
  color: #41AC75;
}
.animate {
padding-left: 20px;
  padding-left: 20px;
font-size: 0.29rem;
  font-size: 0.29rem;
color: #000;
  color: #000;
display: inline-block;
  display: inline-block;
white-space: nowrap;
  white-space: nowrap;
animation: 10s wordsLoop linear infinite normal;
  animation: 10s wordsLoop linear infinite normal;
}
@@ -1018,21 +1020,21 @@
@keyframes wordsLoop {
0% {
  0% {
    transform: translateX(100%);
    -webkit-transform: translateX(100%);
}
  }
100% {
  100% {
    transform: translateX(-100%);
    -webkit-transform: translateX(-100%);
}
  }
}
@@ -1040,21 +1042,21 @@
@-webkit-keyframes wordsLoop {
0% {
  0% {
    transform: translateX(100%);
    -webkit-transform: translateX(100%);
}
  }
100% {
  100% {
    transform: translateX(-100%);
    -webkit-transform: translateX(-100%);
}
  }
}
</style>
src/page/kline/components/kLine.vue
@@ -67,7 +67,8 @@
                <span>{{ item.Name }}</span>
              </div>
              <div class="btn2" @click="isShow ? isShow = false : isShow = true">
                <div class="btn2" :class="KLinePeriodIndex === index ? 'active' : ''">
                <div class="btn2">
                  <!-- :class="KLinePeriodIndex === index ? 'active' : ''" -->
                  <img src="../../../assets/img/options.png" alt />
                </div>
              </div>
@@ -118,7 +119,7 @@
import "hqchart/src/jscommon/umychart.resource/css/tools.css";
import "hqchart/src/jscommon/umychart.resource/font/iconfont.css";
import EastMoney from "../../../eastmoney/HQData.js";
import i18n from '@/locales/index.js'
//源码调试用
//import Chart from '../jscommon/umychart.vue/umychart.vue.js'
//import '../jscommon/umychart.resource/css/tools.css'
@@ -1008,13 +1009,13 @@
DefaultData.GetKLinePeriodMenu = function() {
  var data = [
    { Name: "分时", ID: 3 },
    { Name: "天", ID: 0 },
    { Name: "周", ID: 1 },
    { Name: "月", ID: 2 },
    { Name: "1分", ID: 4 },
    { Name: "5分", ID: 5 },
    { Name: "30分", ID: 7 }
    { Name: i18n.t('hj86'), ID: 3 },
    { Name: i18n.t('hj87'), ID: 0 },
    { Name: i18n.t('hj88'), ID: 1 },
    { Name: i18n.t('hj89'), ID: 2 },
    { Name: i18n.t('hj90'), ID: 4 },
    { Name: i18n.t('hj91'), ID: 5 },
    { Name: i18n.t('hj92'), ID: 7 }
  ];
  return data;
@@ -1022,9 +1023,9 @@
DefaultData.GetKLineRightMenu = function() {
  var data = [
    { Name: "不复权", ID: 0 },
    { Name: "前复权", ID: 1 },
    { Name: "后复权", ID: 2 }
    { Name: i18n.t('hj93'), ID: 0 },
    { Name: i18n.t('hj94'), ID: 1 },
    { Name: i18n.t('hj95'), ID: 2 }
  ];
  return data;
src/page/kline/index.vue
@@ -20,7 +20,7 @@
            <div class="content_money">
              <div class="top_price">
                <div class="left">
                  <span>{{ '余额' }}</span>
                  <span>{{ $t('hj47') }}</span>
                </div>
                <div class="right">
                  <span v-if="$store.state.userInfo.userAmt == undefined">¥0.00</span>
@@ -51,7 +51,7 @@
              </div>
              <div class="bottom_balance">
                <div>
                  <span>{{ '可用余额' }}</span>
                  <span>{{ $t('hj48') }}</span>
                </div>
              </div>
            </div>
@@ -82,13 +82,13 @@
          <div class="right_ets">
            <div class="tops">
              <div class="lefts topes">
                <span class="titles">{{ '今开' }}</span>
                <span class="titles">{{ $t('hj72') }}</span>
                <span :class="singDetails.nowPrice - singDetails.preclose_px < 0 ? 'number green' : 'number red'">{{
                    singDetails.open_px
                }}</span>
              </div>
              <div class="rights topes">
                <span class="titles">{{ '最高' }}</span>
                <span class="titles">{{ $t('hj73') }}</span>
                <span :class="singDetails.nowPrice - singDetails.preclose_px < 0 ? 'number green' : 'number red'">{{
                    singDetails.today_max
                }}</span>
@@ -96,13 +96,13 @@
            </div>
            <div class="bottoms">
              <div class="lefts bots">
                <span class="titles">{{ '昨收' }}</span>
                <span class="titles">{{ $t('hj74') }}</span>
                <span :class="singDetails.nowPrice - singDetails.preclose_px < 0 ? 'number green' : 'number red'">{{
                    singDetails.preclose_px
                }}</span>
              </div>
              <div class="rights bots">
                <span class="titles">{{ '最低' }}</span>
                <span class="titles">{{ $t('hj75') }}</span>
                <span :class="singDetails.nowPrice - singDetails.preclose_px < 0 ? 'number green' : 'number red'">{{
                    singDetails.today_min
                }}</span>
@@ -111,18 +111,18 @@
          </div>
        </div>
      </div>
      <div class="k_line_detail" >
        <Kline :type="singDetails.type"/>
      <div class="k_line_detail">
        <Kline :type="singDetails.type" />
      </div>
      <div class="priect_top_bottom"
        v-if="(kLineDetails.if_us != 1 && kLineDetails.type != 'hk') && kLineDetails.type != 'hk' && kLineDetails.if_zhishu == 0">
        <div class="t_title">
          <span>{{ '五档' }}</span>
          <span>{{ $t('hj76') }}</span>
        </div>
        <div class="charts">
          <div class="left_s">
            <div class="t_ma">
              <span>{{ '买' }}</span>
              <span>{{ $t('hj77') }}</span>
            </div>
            <div class="ets">
              <div class="left_sell1">
@@ -167,7 +167,7 @@
          </div>
          <div class="right_h">
            <div class="t_ma">
              <span>{{ '卖' }}</span>
              <span>{{ $t('hj78') }}</span>
            </div>
            <div class="ets">
              <div class="left_sell1">
@@ -216,12 +216,12 @@
      </div>
      <div class="priect_top_bottom" v-if="kLineDetails.if_us == 1">
        <div class="t_title">
          <span>{{ '分时成交' }}</span>
          <span>{{ $t('hj79') }}</span>
        </div>
        <div class="charts">
          <div class="left_s">
            <div class="t_ma">
              <span>{{ '时间' }}</span>
              <span>{{ $t('hj80') }}</span>
            </div>
            <div class="ets" v-for="item in timedata.data.details">
              <div class="left_sell1">
@@ -235,7 +235,7 @@
          </div>
          <div class="right_h">
            <div class="t_ma">
              <span>{{ '价格' }}</span>
              <span>{{ $t('hj81') }}</span>
            </div>
            <div class="ets" v-for="item in timedata.data.details">
              <div class="left_sell1">
@@ -249,7 +249,7 @@
          </div>
          <div class="right_h">
            <div class="t_ma">
              <span>{{ '成交量' }}</span>
              <span>{{ $t('hj82') }}</span>
            </div>
            <div class="ets" v-for="item in timedata.data.details">
              <div class="left_sell1">
@@ -266,7 +266,7 @@
      <div class="jianjie" v-if="!(kLineDetails.if_zhishu != '0' && singDetails.gid.indexOf('hk') > -1)"
        :class="acseFlag ? 'isjj' : ''" ref="isjj" id="isjj">
        <div class="top_jj">
          <span>{{ '简介' }}</span>
          <span>{{ $t('hj83') }}</span>
        </div>
        <div class="jet">
          <span>{{ jianjie }}</span>
@@ -276,7 +276,7 @@
        <div class="news-tab">
          <div class="t_title">
            <span>{{ '新闻' }}</span>
            <span>{{ $t('hj6') }}</span>
          </div>
          <mt-tab-container v-model="news" :swipeable="false" style="padding-top: 0.5rem;">
            <mt-tab-container-item id="tab_2">
@@ -293,7 +293,7 @@
      <div class="hknews" v-else>
        <div class="news-tab">
          <div class="t_title">
            <span>{{ '新闻' }}</span>
            <span>{{ $t('hj6') }}</span>
          </div>
          <mt-tab-container v-model="news" :swipeable="false" style="padding-top: 0.5rem;">
            <mt-tab-container-item id="tab_2">
@@ -322,7 +322,7 @@
      <div class="rights">
        <div class="buy_btn">
          <div class="top_buy" @click="goBuy(0)">
            <span>{{ '卖出' }}</span>
            <span>{{ $t('hj84') }}</span>
          </div>
          <div class="bottom_buy">
            <span>{{ singDetails.nowPrice }}</span>
@@ -330,7 +330,7 @@
        </div>
        <div class="sell_btn" @click="goBuy(1)">
          <div class="top_sell">
            <span>{{ '买入' }}</span>
            <span>{{ $t('hj85') }}</span>
          </div>
          <div class="bottom_sell">
            <span>{{ singDetails.nowPrice }}</span>
@@ -366,7 +366,7 @@
    Kline
  },
  created() {
    const { query } = this.$route;
    this.kLineDetails = query;
    if (query.if_us == '1') {
@@ -406,23 +406,31 @@
        if (data.status === 0) {
          this.getOpation();
          this.optionBtn = false;
          this.$message({
            message: this.$t('hj97'),
            type: 'success'
          });
        } else {
          this.optionBtn = false;
          this.$message({
          message: data.msg,
          type: 'warning'
        });
            message: data.msg,
            type: 'warning'
          });
        }
      } else {
        let data = await api.addOption({ code: this.kLineDetails.code });
        if (data.status === 0) {
          this.getOpation();
          this.optionBtn = false;
          this.$message({
            message: this.$t('hj96'),
            type: 'success'
          });
        } else {
          this.$message({
          message: data.msg,
          type: 'warning'
        });
            message: data.msg,
            type: 'warning'
          });
          this.optionBtn = false;
        }
      }
@@ -463,7 +471,7 @@
      await api.getSingleStock(opts).then(res => {
        if (res.status === 0) {
          this.singDetails = res.data.stock;
          if (res.data.introduction) {
            this.jianjie = res.data.introduction;
          } else {
@@ -490,7 +498,7 @@
        //   setTimeout(() => {
        //     that.getSingDetailUs()
        //   }, 3000);
        // }
        if (res.status === 0) {
          this.singDetails = res.data.stock;
@@ -616,8 +624,8 @@
    font-size: 0.4546rem;
    margin-top: 0.2rem;
    padding: 0 0.3rem;
    span{
    span {
      font-weight: 700;
    }
  }
src/page/list/trading-list.vue
@@ -11,7 +11,7 @@
                  <img src="../../assets/img/searchs.png" alt />
                </div>
                <div class="search_input">
                  <input type="text" class="searchs" placeholder="输入品种名称/代码搜索" ref="search" id="sousuo" v-model="gpcode"
                  <input type="text" class="searchs" :placeholder="$t('hj37')" ref="search" id="sousuo" v-model="gpcode"
                    @input="gpinput" />
                </div>
              </div>
@@ -30,7 +30,7 @@
              <img src="../../assets/img/shenfen2.png" alt />
            </div>
            <div class="text">
              <span>{{ '开户即可入金交易' }}</span>
              <span>{{ $t('hj38') }}</span>
            </div>
            <div class="right_go">
              <img src="../../assets/img/yuoujiantou.png" alt />
@@ -38,19 +38,19 @@
          </div>
          <div class="list_title">
            <div class="item_title varieties">
              <span>{{ '品种' }}</span>
              <span>{{ $t('hj39') }}</span>
            </div>
            <div class="item_title latest_price">
              <span>{{ '最新价' }}</span>
              <span>{{ $t('hj40') }}</span>
            </div>
            <div class="item_title applies">
              <span v-show="tabsItemIndex != 5">{{ '涨跌幅' }}</span>
              <span v-show="tabsItemIndex == 5" style="width: 100%;text-align: center;">{{ '申购类型' }}</span>
              <span v-show="tabsItemIndex != 5">{{ $t('hj41') }}</span>
              <span v-show="tabsItemIndex == 5" style="width: 100%;text-align: center;">{{ $t('hj42') }}</span>
            </div>
          </div>
          <!-- 市场列表 -->
          <div class="list" :class="isToken == '' ? 'listHeight' : 'listHeights'">
            <van-list v-model="loading" :finished="finished" finished-text="没有更多了" @load="onLoad"
            <van-list v-model="loading" :finished="finished" :finished-text="$t('hj43')" @load="onLoad"
              :immediate-check="false">
              <div class="van-clearfix">
                <div class="list_items">
@@ -97,7 +97,7 @@
                        </div>
                        <div class="bt">
                          <span v-if="tabsItemIndex == 5 || tabsItemIndex == 1">{{ tabsItemIndex == 5 ? 'Max:' +
                              Number(item.orderNumber) : '手续费:' + Number(item.transFee)
                              Number(item.orderNumber) : $t('hj44') + ':' + Number(item.transFee)
                          }}</span>
                          <span v-else>{{ item.today_min }}</span>
                        </div>
@@ -122,7 +122,7 @@
                        </span> -->
                          <div v-if="tabsItemIndex == 5" :class="item.type == 1 ? 'xgsgType' : 'xgsgTypeRed'">
                            <!-- {{item.orderNumber}} -->
                            {{ item.type == 1 ? '新股申购' : '线下配售' }}
                            {{ item.type == 1 ? $t('hj45') : $t('hj46') }}
                          </div>
                        </div>
                        <div class="bt" style="justify-content: flex-end;">
@@ -147,7 +147,7 @@
                  <img src="../../assets/img/searchs.png" alt />
                </div>
                <div class="search_input">
                  <input type="text" class="searchs" placeholder="输入品种名称/代码搜索"
                  <input type="text" class="searchs" :placeholder="$t('hj37')"
                    onkeyup="value=value.replace(/[^a-zA-Z0-9]/g,'')" v-model="gpcodes" @input="gpinputs" />
                </div>
              </div>
@@ -155,20 +155,20 @@
          </div>
          <div class="list_title">
            <div class="item_title varieties">
              <span>{{ '品种' }}</span>
              <span>{{ $t('hj39') }}</span>
            </div>
            <div class="item_title latest_price">
              <span>{{ '最新价' }}</span>
              <span>{{ $t('hj40') }}</span>
            </div>
            <div class="item_title applies">
              <span>{{ '涨跌幅' }}</span>
              <span>{{ $t('hj41') }}</span>
            </div>
          </div>
          <!-- 自选列表 -->
          <div class="list zxlist">
            <van-list v-model="loadings" :finished="finisheds" finished-text="没有更多了" @load="onLoads"
            <van-list v-model="loadings" :finished="finisheds" :finished-text="$t('hj43')" @load="onLoads"
              :immediate-check="false">
              <div class="van-clearfix">
                <div class="list_items">
@@ -221,7 +221,7 @@
          <div class="content_money" v-if="tabsIndex === 1">
            <div class="top_price">
              <div class="left">
                <span>{{ '余额' }}</span>
                <span>{{ $t('hj47') }}</span>
              </div>
              <div class="right" v-if="userData.length == 0">¥0.00</div>
              <div class="right" v-if="userData.length != 0">
@@ -268,7 +268,7 @@
            </div>
            <div class="bottom_balance">
              <div>
                <span>{{ '可用余额' }}</span>
                <span>{{ $t('hj48') }}</span>
              </div>
            </div>
          </div>
@@ -278,7 +278,7 @@
        <div class="card_item">
          <div class="tops_title">
            <div>
              <span>{{ '总资产' }}</span>
              <span>{{ $t('hj49') }}</span>
            </div>
          </div>
          <div class="bottom_price">
@@ -364,7 +364,7 @@
        <div class="card_item">
          <div class="tops_title">
            <div>
              <span>{{ '强平线' }}</span>
              <span>{{ $t('hj50') }}</span>
            </div>
          </div>
          <div class="bottom_price">
@@ -412,12 +412,12 @@
          <div class="tops_title">
            <div>
              <span>
                {{ tabsItemIndex == 1 ? '指数' : tabsItemIndex == 0 ? '股票' : tabsItemIndex == 2 ? '股票' :
                {{ tabsItemIndex == 1 ? $t('hj51') : tabsItemIndex == 0 ? $t('hj52') : tabsItemIndex == 2 ? $t('hj52') :
                    tabsItemIndex ==
                      5 ? '股票' : ''
                      5 ? $t('hj52') : ''
                }}
              </span>
              <span>{{ '资产' }}</span>
              <span>{{ $t('hj53') }}</span>
            </div>
          </div>
          <div class="bottom_price">
@@ -436,7 +436,7 @@
        <div class="card_item">
          <div class="tops_title">
            <div>
              <span>{{ '可用资金' }}</span>
              <span>{{ $t('hj54') }}</span>
            </div>
          </div>
          <div class="bottom_price">
@@ -456,7 +456,7 @@
        <div class="card_item">
          <div class="tops_title">
            <div>
              <span>{{ '冻结保证金' }}</span>
              <span>{{ $t('hj55') }}</span>
            </div>
          </div>
          <div class="bottom_price">
@@ -478,7 +478,7 @@
        <div class="card_item">
          <div class="tops_title">
            <div>
              <span>{{ '持仓总盈亏' }}</span>
              <span>{{ $t('hj56') }}</span>
            </div>
          </div>
          <div class="bottom_price">
@@ -515,23 +515,23 @@
      <div class="setting_content">
        <div class="old_password">
          <div class="left_titles">
            <span>{{ '申购数量:' }}</span>
            <span>{{ $t('hj57')  }}:</span>
          </div>
          <div class="right_password_input">
            <input type="number" v-model="sgNum" />
          </div>
        </div>
        <div class="btn_setting" @click="changeSg()">
          <span>{{ '立即申购' }}</span>
          <span>{{  $t('hj58') }}</span>
        </div>
        <div class="shijian">
          <div class="xgsj">
            <div class="sjtlt">申购时间: </div>
            <div class="sjtlt">{{ $t('hj59')  }}: </div>
            <div class="xgTime" v-if="this.sgsj">{{ this.sgsj | getTimeYear }}</div>
          </div>
          <div class="xgsj">
            <div class="sjtlt">认缴时间: </div>
            <div class="sjtlt">{{ $t('hj60')  }}: </div>
            <div class="xgTime" v-if="this.rjsj">{{ this.rjsj | getTimeYear }}</div>
          </div>
        </div>
@@ -569,7 +569,7 @@
  data() {
    return {
      tabsIndex: 1,
      tabsArr: ["自选", "市场"],
      tabsArr: [this.$t('hj61'), this.$t('hj62')],
      tabClassActive: 1,
      dialogFlag: false,
      pageNum: 1,
@@ -600,16 +600,16 @@
      stockType: '',
      tabsClassArr: [
        {
          name: "沪深京",
          name: this.$t('hj63'),
          type: 0
        },
        {
          name: "指数",
          name: this.$t('hj51'),
          type: 1
        },
        {
          name: "科创",
          name: this.$t('hj64'),
          type: 2
        },
        // {
@@ -617,15 +617,15 @@
        //   type: 3
        // }
        {
          name: "美股",
          name: this.$t('hj65'),
          type: 3
        },
        {
          name: "港股",
          name: this.$t('hj66'),
          type: 4
        },
        {
          name: "新股",
          name: this.$t('hj3'),
          type: 5
        }
      ],
@@ -884,16 +884,16 @@
    },
    async changeSg() {
      if (!this.sgNum) {
        Toast('数量不能为空');
        Toast(this.$t('hj67'));
        return;
      };
      //this.sgNum必须是数字并且不能小于1
      if (this.sgNum < 1) {
        Toast('数量不能小于1');
        Toast(this.$t('hj68'));
        return;
      }
      if (this.sgNum > this.orderNumber) {
        Toast('数量不能大于' + this.orderNumber);
        Toast(this.$t('hj69') + this.orderNumber);
        return;
      }
@@ -909,7 +909,7 @@
        this.sgsj = '';
        this.rjsj = '';
        this.orderNumber = '';
        Toast('申购成功');
        Toast(this.$t('hj70'));
        this.$router.push({ path: '/warehouse?index=3' });
      } else {
        Toast(data.msg);
@@ -1161,7 +1161,7 @@
    async options(val) {
      if(this.tabsItemIndex == 1){
        this.$message({
          message: '指数暂不支持自选!',
          message: this.$t('hj71'),
          type: 'warning'
        });
        return;
src/page/login/login.vue
@@ -8,7 +8,7 @@
    </div> -->
    <div class="logins_content">
      <div class="login_title animated slideInDown">
        <span>{{ '手机号登录' }}</span>
        <span>{{ $t('hj8') }}</span>
      </div>
      <div class="login_forms">
        <div class="top_forms">
@@ -18,42 +18,40 @@
          <div class="password">
            <input type="password"  placeholder="登录密码" v-model="userPassword" @input="handleInput()" />
          </div> -->
          <el-input placeholder="请输入手机号" :size="medium" maxlength="11" v-model="userName" clearable>
          <el-input :placeholder="$t('hj9')" :size="medium" maxlength="11" v-model="userName" clearable>
          </el-input>
          <el-input style="margin-top: 0.46rem;" show-password placeholder="登录密码" :size="medium" v-model="userPassword"   @input="handleInput()">
          <el-input style="margin-top: 0.46rem;" show-password :placeholder="$t('hj10')" :size="medium"
            v-model="userPassword" @input="handleInput()">
          </el-input>
        </div>
        <div class="bottom_btns" :class="btnClass ? 'on' : 'off'" >
        <div class="bottom_btns" :class="btnClass ? 'on' : 'off'">
          <div class="top_btn " @click="loginIN" :class="dengl ? 'animated pulse' : ''">
            <span>{{ '安全登录' }}</span>
            <span>{{ $t('hj11') }}</span>
          </div>
          <div class="mes" @click="getApp()">
            <span>{{ '忘记密码?' }}</span>
            <span>{{ $t('hj12') }}</span>
          </div>
        </div>
      </div>
    </div>
    <div class="login_bom">
        <div class="line">
          <div class="left_line"></div>
          <div class="center_line">
            <span>{{ '其他登录方式' }}</span>
          </div>
          <div class="right_line"></div>
      <div class="line">
        <div class="left_line"></div>
        <div class="center_line">
          <span>{{ $t('hj13') }}</span>
        </div>
        <div class="right_line"></div>
      </div>
      <div class="imgDemo">
        <div class="appImg" @click="getApp()"><img src="@/assets/img/apple.png"/></div>
        <div class="appImg" @click="getApp()"><img src="@/assets/img/google.png"/></div>
        <div class="appImg" @click="getApp()"><img src="@/assets/img/facebook.png"/></div>
        <div class="appImg" @click="getApp()"><img src="@/assets/img/apple.png" /></div>
        <div class="appImg" @click="getApp()"><img src="@/assets/img/google.png" /></div>
        <div class="appImg" @click="getApp()"><img src="@/assets/img/facebook.png" /></div>
      </div>
      <div class="myzh"><span class="mes">没有账户?</span><span @click="$router.push('/register')"  class="mes" style="color: rgb(54,124,248);">{{ '注册' }}</span> </div>
      <div class="myzh"><span class="mes">{{ $t('hj14') }}?</span><span @click="$router.push('/register')" class="mes"
          style="color: rgb(54,124,248);">{{ $t('hj15') }}</span> </div>
    </div>
    <el-alert
    v-show="alertShow"
    :closable="closable"
    :title="texts"
    :type="eltype" center></el-alert>
    <el-alert v-show="alertShow" :closable="closable" :title="texts" :type="eltype" center></el-alert>
  </div>
</template>
<script>
@@ -66,34 +64,34 @@
  name: "newLogin",
  data() {
    return {
      loginWay: "手机号登录",
      loginWay: this.$t('hj8'),
      currentLoginMode: "email",
      placeholder: "电子邮箱",
      placeholder: this.$t('hj16'),
      Logo,
      userPassword: "",
      userName: "",
      btnClass: false,
      medium: "medium",
      alertShow:false,
      closable:false,
      eltype:'warning',
      texts:"",
      dengl:false,
      loginBtn:false,
      alertShow: false,
      closable: false,
      eltype: 'warning',
      texts: "",
      dengl: false,
      loginBtn: false,
    };
  },
  components: {
    headers
  },
  methods: {
    getApp(){
     // Toast('您所在的地区暂未开通此服务')
    getApp() {
      // Toast('您所在的地区暂未开通此服务')
      //Toast 弹窗大小
      this.texts="您所在的地区暂未开通此服务"
      this.alertShow=true
      setTimeout(()=>{
        this.alertShow=false
      },2000)
      this.texts = this.$t('hj17')
      this.alertShow = true
      setTimeout(() => {
        this.alertShow = false
      }, 2000)
    },
    handleInput() {
      console.log(this.userPassword !== "" && this.userName !== '');
@@ -104,12 +102,12 @@
      }
    },
    async loginIN() {
      this.dengl=true
      setTimeout(()=>{
        this.dengl=false
      },1000)
      if(this.loginBtn){
      this.dengl = true
      setTimeout(() => {
        this.dengl = false
      }, 1000)
      if (this.loginBtn) {
        return;
      }
      this.loginBtn = true;
@@ -121,30 +119,30 @@
      if (data.status === 0) {
        this.$store.state.userInfo.phone = this.userName
        this.$store.state.userInfo.token = data.data.token
        this.texts=data.msg
        this.eltype='success'
      this.alertShow=true
      setTimeout(()=>{
        this.alertShow=false
        this.eltype='warning'
        this.$router.push('/home')
      },1000)
      this.loginBtn = false;
        this.texts = this.$t('hj36')
        this.eltype = 'success'
        this.alertShow = true
        setTimeout(() => {
          this.alertShow = false
          this.eltype = 'warning'
          this.$router.push('/home')
        }, 1000)
        this.loginBtn = false;
        window.localStorage.clear()
        window.localStorage.setItem("USERTOKEN", data.data.token);
      } else {
        this.texts=data.msg
      this.alertShow=true
      this.loginBtn = false;
      setTimeout(()=>{
        this.alertShow=false
      },2000)
        this.texts = data.msg
        this.alertShow = true
        this.loginBtn = false;
        setTimeout(() => {
          this.alertShow = false
        }, 2000)
        //Toast(data.msg)
      }
      if (navigator.vibrate) {
          // 支持
        // 支持
        navigator.vibrate([55]);
      }
    },
@@ -190,6 +188,7 @@
    width: 100%;
    height: auto;
    margin-top: 0.35rem;
    .top_forms {
      width: 100%;
      height: auto;
@@ -232,19 +231,20 @@
        width: 100%;
        height: 1.25rem;
        border-radius: 0.3564rem;
        background: rgb(154,197,250);
        background: rgb(154, 197, 250);
        color: #fff;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 0.5128rem;
        margin-top: 0.75rem;
        >span {
          font-weight: 530 !important;
        }
      }
      .mes {
        width: 100%;
@@ -258,78 +258,89 @@
    }
  }
}
.login_bom{
.login_bom {
  position: absolute;
  bottom: 2.6rem;
  width: 100%;
  height: 4rem;
  padding: 0 2rem;
}
  .line{
    //分割线
    width: 100%;
    height: 0.3846rem;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 0.3846rem;
    .left_line{
      width: 20%;
      height: 0.01rem;
      background: #e5e5e5;
    }
    .center_line{
      width: 50%;
      height: 0.01rem;
      background: #fff;
      display: flex;
      align-items: center;
      justify-content: center;
      >span{
        font-size: 0.3046rem;
        color: #000;
        background-color: #fff;
      }
    }
    .right_line{
      width: 20%;
      height: 0.01rem;
      background: #e5e5e5;
    }
.line {
  //分割线
  width: 100%;
  height: 0.3846rem;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 0.3846rem;
  .left_line {
    width: 20%;
    height: 0.01rem;
    background: #e5e5e5;
  }
  .myzh{
    width: calc(100% - 4rem);
    position: absolute;
    bottom: 0.01rem;
    text-align: center;
     .mes {
        width: 100%;
        height: 40%;
        font-size: 0.3846rem;
      }
  }
  .imgDemo{
  .center_line {
    width: 50%;
    height: 0.01rem;
    background: #fff;
    display: flex;
    justify-content: space-between;
    position: relative;
    transform:translateY(50%);
  }
  .appImg{
    width: 1.4rem;
    height: 1.4rem;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: rgb(246,246,247);
    border-radius: 100%;
    justify-content: center;
    >span {
      font-size: 0.3046rem;
      color: #000;
      background-color: #fff;
    }
  }
  .appImg img{
    width: 0.8rem;
    height: 0.8rem;
  .right_line {
    width: 20%;
    height: 0.01rem;
    background: #e5e5e5;
  }
}
.myzh {
  width: calc(100% - 4rem);
  position: absolute;
  bottom: 0.01rem;
  text-align: center;
  .mes {
    width: 100%;
    height: 40%;
    font-size: 0.3846rem;
  }
}
.imgDemo {
  display: flex;
  justify-content: space-between;
  position: relative;
  transform: translateY(50%);
}
.appImg {
  width: 1.4rem;
  height: 1.4rem;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: rgb(246, 246, 247);
  border-radius: 100%;
}
.appImg img {
  width: 0.8rem;
  height: 0.8rem;
}
.img_mess {
  width: 100%;
@@ -349,33 +360,38 @@
  }
}
/deep/.el-input__suffix{
  width: 1rem!important;
/deep/.el-input__suffix {
  width: 1rem !important;
  display: flex;
    justify-content: center;
    align-items: center;
  justify-content: center;
  align-items: center;
}
/deep/.el-input__suffix-inner{
/deep/.el-input__suffix-inner {
  display: flex;
    justify-content: center;
    align-items: center;
  justify-content: center;
  align-items: center;
}
/deep/.el-input__icon{
  width: 1rem!important;
/deep/.el-input__icon {
  width: 1rem !important;
  display: flex;
    justify-content: center;
    align-items: center;
  justify-content: center;
  align-items: center;
}
.on .top_btn {
        background: #2d8cf0!important;
      }
  /deep/.el-icon-circle-close::before{
    font-size: 0.5rem!important;
  }
/deep/.el-input__clear{
  font-size: 0.5rem!important;
  background: #2d8cf0 !important;
}
/deep/.el-icon-circle-close::before {
  font-size: 0.5rem !important;
}
/deep/.el-input__clear {
  font-size: 0.5rem !important;
}
</style>
src/page/login/register.vue
@@ -8,7 +8,7 @@
    </div> -->
    <div class="logins_content">
      <div class="login_title animated slideInDown">
        <span>{{ '手机注册' }}</span>
        <span>{{ $t('hj18') }}</span>
      </div>
      <div class="login_forms">
        <div class="top_forms">
@@ -34,19 +34,19 @@
          </el-input>
          <!-- <el-input style="margin-top: 0.46rem;" :placeholder="verification" :size="medium" v-model="code" clearable>
          </el-input> -->
          <el-input style="margin-top: 0.46rem;" show-password placeholder="密码为6~12位数字、字母或符号" size="medium"
          <el-input style="margin-top: 0.46rem;" show-password :placeholder="$t('hj19')" size="medium"
            v-model="userPassword" @input="handleInput()">
          </el-input>
          <el-input style="margin-top: 0.46rem;" show-password placeholder="请再次确认密码" size="medium" v-model="rePassword"
          <el-input style="margin-top: 0.46rem;" show-password :placeholder="$t('hj20')" size="medium" v-model="rePassword"
            @input="handleInput()">
          </el-input>
          <el-input style="margin-top: 0.46rem;" placeholder="邀请码" size="medium" v-model="userName" clearable
          <el-input style="margin-top: 0.46rem;" :placeholder="$t('hj21')" size="medium" v-model="userName" clearable
            @input="handleInput()">
          </el-input>
        </div>
        <div class="bottom_btns" :class="btnClass ? 'on' : 'off'">
          <div class="top_btn " @click="gook" :class="dengl ? 'animated pulse' : ''">
            <span>{{ '安全注册' }}</span>
            <span>{{ $t('hj22') }}</span>
          </div>
          <!-- <div
           class="register-form-item agree-model"
@@ -57,8 +57,8 @@
          <a  style="color:#fff">《注册协议》</a>
          </div> -->
          <div class="mes">
            <span>{{ '已有账户?' }}</span>
            <span @click="$router.push('/login')" style="color: rgb(54,124,248);">{{ '登录>' }}</span>
            <span>{{ $t('hj23') }}?</span>
            <span @click="$router.push('/login')" style="color: rgb(54,124,248);"> {{ $t('hj24') }} ></span>
          </div>
        </div>
      </div>
@@ -80,10 +80,10 @@
  name: "newRegister",
  data() {
    return {
      verification: "验证码",
      loginWay: "手机号注册",
      loginWay: "手机号注册",
      placeholder: "手机号",
      verification: this.$t('hj25'),
      loginWay: this.$t('hj26'),
      loginWay: this.$t('hj26'),
      placeholder: this.$t('hj27'),
      Logo,
      phone: "",
      userName: "",
@@ -117,7 +117,7 @@
    checkCodeBox() {
      if (isNull(this.phone) || !isPhone(this.phone)) {
        // Toast('请输入正确的手机号')
        this.texts = "请输入正确的手机号"
        this.texts = this.$t('hj28')
        this.alertShow = true
        setTimeout(() => {
          this.alertShow = false
@@ -149,14 +149,14 @@
      //   var reg = 11 && /^((13|14|15|17|18)[0-9]{1}\d{8})$/
      let reg = /^[0-9]{11}$/ // 手机号码验证
      if (isNull(this.phone)) {
        this.texts = "手机号不能为空"
        this.texts = this.$t('hj29')
        this.alertShow = true
        setTimeout(() => {
          this.alertShow = false
        }, 2000)
      } else {
        if (!reg.test(this.phone)) {
          this.texts = "请输入正确的手机号码"
          this.texts = this.$t('hj28')
          this.alertShow = true
          setTimeout(() => {
            this.alertShow = false
@@ -215,21 +215,21 @@
      // } else
      if (isNull(this.phone) || !isPhone(this.phone)) {
        this.texts = "请输入正确的手机号码"
        this.texts = this.$t('hj28')
        this.alertShow = true
        setTimeout(() => {
          this.alertShow = false
        }, 2000)
        this.loginBtn = false;
      } else if (isNull(this.userPassword)) {
        this.texts = "请输入密码"
        this.texts = this.$t('hj30')
        this.alertShow = true
        setTimeout(() => {
          this.alertShow = false
        }, 2000)
        this.loginBtn = false;
      } else if (isNull(this.rePassword)) {
        this.texts = "请确认密码"
        this.texts = this.$t('hj31')
        this.alertShow = true
        setTimeout(() => {
          this.alertShow = false
@@ -237,7 +237,7 @@
        this.loginBtn = false;
      } else {
        if (this.userPassword !== this.rePassword) {
          this.texts = "两次输入的密码不一致"
          this.texts = this.$t('hj32')
          this.alertShow = true
          setTimeout(() => {
            this.alertShow = false
@@ -247,14 +247,14 @@
          this.loginBtn = false;
        } else if (!pwdReg(this.userPassword)) {
          this.texts = "密码为6~12位,数字、字母或符号"
          this.texts = this.$t('hj19')
          this.alertShow = true
          setTimeout(() => {
            this.alertShow = false
          }, 2000)
          this.loginBtn = false;
        } else if (isNull(this.userName)) {
          this.texts = "请输入邀请码"
          this.texts = this.$t('hj33')
          this.alertShow = true
          setTimeout(() => {
            this.alertShow = false
@@ -270,7 +270,7 @@
          }
          let data = await api.register(opts)
          if (data.status === 0) {
            this.texts = "注册成功,请登录"
            this.texts = this.$t('hj34')
            this.elType = "success"
            this.alertShow = true
            setTimeout(() => {
@@ -312,7 +312,7 @@
      let data = await api.checkPhone({ phoneNum: this.phone })
      if (data.status === 0) {
        // 如果用户已存在返回 0
        this.texts = "用户已注册,请登录"
        this.texts = this.$t('hj35')
            this.alertShow = true
            setTimeout(() => {
              this.alertShow = false
src/page/newUser/index.vue
@@ -28,7 +28,7 @@
      </div>
      <div class="center_card">
        <div class="keyon">
          <span>{{ '总资产' }}</span>
          <span>{{ $t('hj49') }}</span>
        </div>
        <div class="num_price" v-if="userInfo.length == 0">
          ¥0
@@ -47,29 +47,33 @@
            }}22
          </p>
          <p v-else-if="!this.$store.state.settingForm.indexDisplay && !this.$store.state.settingForm.futuresDisplay"
            class="account">¥&nbsp;&nbsp;{{ $store.state.hide ? '****' : Number($store.state.userInfo.userAmt).toFixed(2) }}</p>
            class="account">¥&nbsp;&nbsp;{{ $store.state.hide ? '****' :
                Number($store.state.userInfo.userAmt).toFixed(2)
            }}</p>
        </div>
        <div class="yk es">
          <div>
            <span>{{ '冻结保证金' }}</span>
            <span>{{ $t('hj55') }}</span>
          </div>
          <div>
            <span>{{ '盈亏' }}</span>
            <span>{{ $t('hj141') }}</span>
          </div>
          <div>
            <span>{{ '可用余额(¥)' }}</span>
            <span>{{ $t('hj48') }}</span>
          </div>
        </div>
        <div class="yk as">
          <div>
            <span class="orenge">¥ {{ userInfo.length != 0 ? $store.state.userInfo.allFreezAmt + $store.state.userInfo.djzj : 0}}</span>
            <span class="orenge">¥ {{ userInfo.length != 0 ? $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 v-else>
              <span>{{ '¥ 0' }}</span>
            </span>
          </div>
@@ -87,7 +91,7 @@
                }}</span>
            </span>
          </div>
          <div v-if="userInfo.length == 0">
            <span class="bzz" v-if="!selectUserFlag">{{ '¥ 0' }}</span>
            <span class="bzz" v-else>{{ '¥ 0' }}</span>
@@ -96,10 +100,10 @@
            <span class="bzz" v-if="!selectUserFlag">{{ '¥ ' + $store.state.userInfo.userIndexAmt }}</span>
            <span class="bzz" v-else>{{ '¥ ' + $store.state.userInfo.userAmt }}</span>
          </div>
        </div>
        <div class="btns" @click="handleZh()" :class="selectUserFlag ? '' : 'active'">
          <span>{{ selectUserFlag ? '切换指数账户' : '切换沪深账户' }}</span>
          <span>{{ selectUserFlag ? $t('hj142') : $t('hj143') }}</span>
        </div>
      </div>
      <div class="jy" @click="goToSettings()">
@@ -108,7 +112,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">
@@ -121,7 +125,7 @@
            <img src="../../assets/img/huazhuan2.png" alt />
          </div>
          <div class="r_title">
            <span>{{ '资金划转' }}</span>
            <span>{{ $t('hj145') }}</span>
          </div>
        </div>
        <div class="right_gos">
@@ -134,7 +138,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">
@@ -147,7 +151,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">
@@ -160,7 +164,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">
@@ -172,7 +176,7 @@
      <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" />
@@ -180,7 +184,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" />
@@ -188,14 +192,14 @@
        </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>
@@ -207,7 +211,7 @@
import * as api from "@/axios/api";
import { Toast } from "mint-ui";
import { isNull, pwdReg } from "@/utils/utils";
import i18n from '@/locales';
import { MessageBox } from 'mint-ui'
export default {
@@ -233,9 +237,9 @@
  methods: {
    goOnline() {
      if (navigator.vibrate) {
          // 支持
          navigator.vibrate([55]);
        }
        // 支持
        navigator.vibrate([55]);
      }
      window.location.href = this.onlineService;
    },
    async getInfoSite() {
@@ -255,15 +259,15 @@
    },
    handleZh() {
      this.selectUserFlag = !this.selectUserFlag;
      if (this.userInfo.length == 0) {
        this.$store.commit('dialogVisible', true);
        return;
      }
      if (navigator.vibrate) {
          // 支持
          navigator.vibrate([55]);
        }
        // 支持
        navigator.vibrate([55]);
      }
    },
    async getUserInfo() {
      // 获取用户信息
@@ -283,14 +287,21 @@
        return;
      }
      if (navigator.vibrate) {
          // 支持
          navigator.vibrate([55]);
        }
        // 支持
        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) {
@@ -346,10 +357,10 @@
        isNull(this.newPassword) ||
        isNull(this.cirNewPassword)
      ) {
        Toast("请输入新旧密码");
        Toast(this.$t('hj154'));
        this.settingDialog = false;
      } else if (!pwdReg(this.newPassword)) {
        Toast("密码为6~12位,数字、字母或符号");
        Toast(this.$t('hj19'));
        this.settingDialog = false;
      } else {
        // 修改密码
@@ -368,14 +379,14 @@
            this.settingDialog = false;
          }
        } else {
          Toast("新密码不一致");
          Toast(this.$t('hj155'));
          this.settingDialog = false;
        }
      }
      if (navigator.vibrate) {
          // 支持
          navigator.vibrate([55]);
        }
        // 支持
        navigator.vibrate([55]);
      }
    }
  }
};
@@ -383,11 +394,13 @@
<style scoped lang="less">
.green {
    color: #028f52 !important;
  color: #028f52 !important;
}
.red{
.red {
  color: #b60c0d !important;
}
.user_page {
  width: 100%;
  height: calc(100% - 1.3rem);
@@ -528,10 +541,11 @@
        }
      }
      .account{
      .account {
        font-size: 0.6rem;
        font-weight: 600;
      }
      .yk {
        width: 100%;
        height: 0.5rem;
@@ -547,7 +561,8 @@
          align-items: center;
          justify-content: center;
        }
        .orenge{
        .orenge {
          // color: rgb(216, 141, 1) !important;
        }
      }
src/page/trading/buy.vue
@@ -22,17 +22,17 @@
                <span>{{ nowPrice }}</span>
              </div>
              <div class="bottom_es">
                <span>{{ '买入价' }}</span>
                <span>{{ $t('hj98') }}</span>
              </div>
            </div>
            <div class="rights">
              <div class="ese">
                <div class="mc" @click="handleTradingClick(0)" :class="tabsCurrentIndex === 0 ? 'actives' : ''">
                  <span>卖出</span>
                  <span>{{ $t('hj84') }}</span>
                </div>
                <div class="mr" @click="handleTradingClick(1)" :class="tabsCurrentIndex === 1 ? 'active' : ''">
                  <span>买入</span>
                  <span>{{ $t('hj85') }}</span>
                </div>
              </div>
            </div>
@@ -50,7 +50,7 @@
        </div>
        <div class="tabs_content">
          <div class="num" v-show="priceTabsCurrentIndex == 1">
            <span>{{ '当价格满足条件时买入' }}</span>
            <span>{{ $t('hj99') }}</span>
          </div>
          <div class="tr_es flexJy" v-show="priceTabsCurrentIndex == 1">
            <div class="top_input">
@@ -70,7 +70,7 @@
            </div>
          </div>
          <div class="num">
            <span>{{ '交易数量(手)' }}</span>
            <span>{{ $t('hj100') }}</span>
          </div>
          <div class="tr_es flexJy">
            <div class="top_input">
@@ -89,7 +89,7 @@
          </div>
          <div class="tr_rs gg" @click="showGg = true">
            <div class="top_bzz">
              <span>{{ '杠杆' }}</span>
              <span>{{ $t('hj101') }}</span>
              <span>{{ selectCycle + 'X' }}</span>
            </div>
            <!-- <div class="bottom_bzz">
@@ -99,8 +99,10 @@
          </div>
          <div class="tr_rs">
            <div class="top_bzz">
              <span>{{ if_us == 1 ? '需付保证金($)' : if_us == '2' ? '需付保证金(HK$)' : '需付保证金(¥)' }}</span>
              <span>{{ if_us == 1 ? '可用余额($)' : if_us == '2' ? '可用余额(HK$)' : '可用余额(¥)' }}</span>
              <span>{{ if_us == 1 ? $t('hj102') + '($)' : if_us == '2' ? $t('hj102') + '(HK$)' : $t('hj102') + '(¥)'
              }}</span>
              <span>{{ if_us == 1 ? $t('hj103') + '($)' : if_us == '2' ? $t('hj103') + '(HK$)' : $t('hj103') + '(¥)'
              }}</span>
            </div>
            <div class="bottom_bzz">
              <!-- <span>{{ (nowPrice/ selectCycle).toFixed(2) }}</span> -->
@@ -124,7 +126,7 @@
      <div class="switchs">
        <div class="zy">
          <div class="left_zy">
            <span>止盈</span>
            <span>{{ $t('hj104') }}</span>
          </div>
          <div class="right_sw">
            <van-switch v-model="checkedZy" />
@@ -147,7 +149,7 @@
        </div>
        <div class="zy">
          <div class="left_zy">
            <span>止损</span>
            <span>{{ $t('hj105') }}</span>
          </div>
          <div class="right_sw">
            <van-switch v-model="checkedZs" />
@@ -178,11 +180,11 @@
      </div>
      <div class="btn_buy" @click="gdOrSetBuy()">
        <div :class="tabsCurrentIndex == 0 ? 'maichu' : ''">
          <span>{{ tabsCurrentIndex == 0 ? '卖出' : '买入' }}</span>
          <span>{{ tabsCurrentIndex == 0 ? $t('hj84') : $t('hj85') }}</span>
        </div>
      </div>
    </div>
    <van-action-sheet v-model="showGg" :actions="siteLeverList" cancel-text="取消" description="选择杠杆"
    <van-action-sheet v-model="showGg" :actions="siteLeverList" :cancel-text="$t('hj106')" :description="$t('hj107')"
      close-on-click-action @select="onSelect" />
  </div>
</template>
@@ -220,9 +222,9 @@
  },
  data() {
    return {
      tradingArr: ['卖出', '买入'],
      tradingArr: [this.$t('hj84'), this.$t('hj85')],
      tabsCurrentIndex: 0,
      priceTabs: ['市单价', '挂单'],
      priceTabs: [this.$t('hj108'), this.$t('hj109')],
      priceTabsCurrentIndex: 0,
      num: 1,
      nums: 1,
@@ -242,21 +244,21 @@
      profitTarget: 0,
      if_us: 0,
      actions: [
        { name: '100X', subname: '需付保证金:' },
        { name: '200X', subname: '需付保证金:' },
        { name: '300X', subname: '需付保证金:' },
        { name: '100X', subname: this.$t('hj102') },
        { name: '200X', subname: this.$t('hj102') },
        { name: '300X', subname: this.$t('hj102') },
      ],
      profitArr: [
        {
          name: '止盈',
          name: this.$t('hj104'),
          checked: false
        },
        {
          name: '止损',
          name: this.$t('hj105'),
          checked: false
        },
        {
          name: '追踪止损',
          name: this.$t('hj110'),
          checked: false
        }
      ]
@@ -404,7 +406,7 @@
    //买卖
    setBuy() {
      if (!this.$store.state.userInfo.idCard) {
        this.$store.commit('elAlertShow', { 'elAlertShow': true, 'elAlertText': '您还未实名认证,请先实名认证了再下单' });
        this.$store.commit('elAlertShow', { 'elAlertShow': true, 'elAlertText': this.$t('hj111') });
        this.$router.push('/authentication')
        return
      }
@@ -470,7 +472,12 @@
        this.getUserInfo()
        this.$router.push('/orderlist?index=2')
      } else {
        this.$store.commit('elAlertShow', { 'elAlertShow': true, 'elAlertText': data.msg });
        if (data.msg.indexOf('不在交易时段内') > -1) {
          this.$store.commit('elAlertShow', { 'elAlertShow': true, 'elAlertText': this.$t('hj113') });
        } else {
          this.$store.commit('elAlertShow', { 'elAlertShow': true, 'elAlertText': data.msg });
        }
      }
    },
    //指数买入
@@ -515,7 +522,7 @@
          this.siteLeverList = []
          for (let i = 0; i < this.$store.state.userInfo.siteLever.split('/').length; i++) {
            let val = this.$store.state.userInfo.siteLever.split('/')[i]
            let item = { label: val + '倍', value: val }
            let item = { label: val + this.$t('hj112'), value: val }
            this.siteLeverList.push(item)
          }
        } else {
@@ -526,7 +533,7 @@
            let val = data.data.siteLever.split('/')[i]
            var ccet = (Number(this.nowPrice) / Number(val)).toFixed(2)
            //let item = { label: val + '倍', value: val ,bzj:ccet}
            let item = { name: val + 'X', subname: '需付保证金:' + (ccet * 100).toFixed(2), gg: val, bzj: ccet }
            let item = { name: val + 'X', subname: this.$t('hj102') + ':' + (ccet * 100).toFixed(2), gg: val, bzj: ccet }
            this.siteLeverList.push(item)
          }
        }
src/page/user/Warehouse.vue
@@ -15,7 +15,7 @@
        </div>
        <div class="overflow_box item" @click="SetTitleIndex(0)">
          <div class="left_titles">
            <span>{{ '沪深京账户' }}</span>
            <span>{{ $t('hj114') }}</span>
          </div>
          <div class="right_price">
            <span>{{ '' }}</span>
@@ -23,7 +23,7 @@
        </div>
        <div class="overflow_box item" @click="SetTitleIndex(1)">
          <div class="left_titles">
            <span>{{ '指数账户' }}</span>
            <span>{{ $t('hj115') }}</span>
          </div>
          <div class="right_price">
            <span>{{ '' }}</span>
@@ -31,7 +31,7 @@
        </div>
        <div class="overflow_box item" @click="SetTitleIndex(2)">
          <div class="left_titles">
            <span>{{ '新股账户' }}</span>
            <span>{{ $t('hj116') }}</span>
          </div>
          <div class="right_price">
            <span>{{ '' }}</span>
@@ -42,7 +42,7 @@
        <div class="top_card">
          <div class="card_content">
            <div class="t_title">
              <span>{{ '总资产' }}</span>
              <span>{{ $t('hj49') }}</span>
            </div>
            <div class="t_price">
              <!-- <span class="price">{{ '49,619.05' }}</span>
@@ -67,10 +67,10 @@
            </div>
            <div class="balance">
              <div class="left_titles">
                {{ '强平线' }}
                {{ $t('hj50') }}
              </div>
              <div class="right_titles">
                {{ '可用资金' }}
                {{ $t('hj54') }}
              </div>
            </div>
            <div class="num">
@@ -98,10 +98,10 @@
            </div>
            <div class="margin">
              <div class="left_titles">
                {{ '冻结保证金' }}
                {{ $t('hj55') }}
              </div>
              <div class="right_titles">
                {{ '持仓总盈亏' }}
                {{ $t('hj56') }}
              </div>
            </div>
            <div class="prices">
@@ -142,27 +142,26 @@
        <div class="tabs_card">
          <div class="tabs_card_content">
            <div class="tabs_top_title">
              <div class="title_items" v-for="(item, index) in   tabsArr" :key="index"
              <div class="title_items" v-for="(item, index) in tabsArr" :key="index"
                @click="handleTabsClick(item, index)" :class="index == 0 ? 'kuan' : 'kuan'">
                <span :class="tabsCurrentIndex === index ? 'active' : ''">{{ item }}{{ index == 0 ? '(' + total + ')' :
                    index == 1 ? '(' + totalss + ')' :
                      index == 2 ? '(' + totals + ')' : '(' + xgTotal + ')'
                }}</span>
                <span :class="tabsCurrentIndex === index ? 'active' : ''">
                  {{ item }}{{ index == 0 ? '(' + total + ')' : index == 1 ? '(' + totalss + ')' : index == 2 ? '(' +
                      totals + ')' : '(' + xgTotal + ')'
                  }}</span>
              </div>
            </div>
            <!-- 持仓 currentIndex: 0 -->
            <div class="over">
              <van-list v-model="loading" :finished="finished" finished-text="没有更多了"
              <van-list v-model="loading" :finished="finished" :finished-text="$t('hj43')"
                v-show="tabsCurrentIndex === 0 && total != 0" @load="onLoad" :immediate-check="immediate">
                <div class="tabs_o">
                  <div class="tabs_o_items" v-for="(item, index) in tabsPositionNumArr" :key="item.buyOrderId">
                    <div class="tabs_o_title">
                      <span class="title">{{ item.stockName }}</span>
                      <span class="buy_to_sell" :class="item.orderDirection == '买跌' ? 'maichu' : 'mairu'">{{
                          item.orderDirection == "买跌" ? '卖出' : '买入'
                      }}</span>
                      <span class="title">{{ item.stockName ? item.stockName : item.indexName }}</span>
                      <span class="buy_to_sell" :class="item.orderDirection == '买跌' ? 'maichu' : 'mairu'">
                        {{ item.orderDirection == "买跌" ? $t('hj84') : $t('hj85') }}</span>
                      <span class="multiple">{{ item.allProfitAndLose }}</span>
                      <span class="nums">{{ item.orderNum / 100 + '手' }}</span>
                      <span class="nums">{{ item.orderNum / 100 + $t('hj117') }}</span>
                    </div>
                    <div class="center_price">
                      <div class="profit">
@@ -177,17 +176,17 @@
                    </div>
                    <div class="bottom_price_title">
                      <div class="profit_title">
                        <span>{{ '浮动净盈亏' }}</span>
                        <span>{{ $t('hj118') }}</span>
                      </div>
                      <div class="start_price">
                        <span>{{ '开仓价格' }}</span>
                        <span>{{ $t('hj119') }}</span>
                      </div>
                      <div class="new_price">
                        <span>{{ '当前价格' }}</span>
                        <span>{{ $t('hj120') }}</span>
                      </div>
                    </div>
                    <div class="right_btn">
                      <span>{{ '平仓' }}</span>
                    <div class="right_btn pingbtn" @click="getpingcang(item.positionSn)">
                      <span>{{ $t('hj121') }}</span>
                    </div>
                  </div>
                </div>
@@ -196,9 +195,9 @@
                <div class="waiting_box">
                  <div class="img_cont">
                    <img src="../../assets/img/zhaobudao.png" alt />
                    <span class="gd">{{ '当前无持仓' }}</span>
                    <span class="gd">{{ $t('hj122') }}</span>
                    <div class="trading" @click="$router.push('/trading-list')">
                      <span>{{ '开始交易' }}</span>
                      <span>{{ $t('hj123') }}</span>
                    </div>
                  </div>
                </div>
@@ -211,24 +210,24 @@
                <div class="waiting_box">
                  <div class="img_cont">
                    <img src="../../assets/img/zhaobudao.png" alt />
                    <span class="gd">{{ '当前无挂单' }}</span>
                    <span class="gd">{{ $t('hj124') }}</span>
                    <div class="trading" @click="$router.push('/trading-list')">
                      <span>{{ '开始交易' }}</span>
                      <span>{{ $t('hj123') }}</span>
                    </div>
                  </div>
                </div>
              </div>
              <van-list v-model="loadingss" :finished="finishedss" finished-text="没有更多了"
              <van-list v-model="loadingss" :finished="finishedss" :finished-text="$t('hj43')"
                v-show="tabsCurrentIndex === 1 && totalss != 0" @load="onLoad" :immediate-check="immediate">
                <div class="tabs_o">
                  <div class="tabs_o_items" v-for="(item, index) in tabsOrderList" :key="item.id">
                    <div class="tabs_o_title">
                      <span class="title">{{ item.stockName }}</span>
                      <span class="title">{{ item.stockName ? item.stockName : item.indexName }}</span>
                      <span class="buy_to_sell" :class="item.buyType == 1 ? 'maichu' : 'mairu'">{{
                          item.buyType == 1 ? '卖出' : '买入'
                          item.buyType == 1 ? $t('hj84') : $t('hj85')
                      }}</span>
                      <span class="multiple">{{ item.lever }}X</span>
                      <span class="nums">{{ item.buyNum / 100 + '手' }}</span>
                      <span class="nums">{{ item.buyNum / 100 + $t('hj117') }}</span>
                    </div>
                    <div class="center_price">
@@ -242,14 +241,14 @@
                    <div class="bottom_price_title">
                      <div class="start_price">
                        <span>{{ '挂单价格' }}</span>
                        <span>{{ $t('hj125') }}</span>
                      </div>
                      <div class="new_price">
                        <span>{{ '当前价格' }}</span>
                        <span>{{ $t('hj120') }}</span>
                      </div>
                    </div>
                    <div class="right_btn" @click="gdClose(item)">
                      <span>{{ '撤销' }}</span>
                      <span>{{ $t('hj126') }}</span>
                    </div>
                  </div>
                </div>
@@ -263,27 +262,30 @@
                <div class="waiting_box">
                  <div class="img_cont">
                    <img src="../../assets/img/zhaobudao.png" alt />
                    <span class="gd">{{ '当前无平仓' }}</span>
                    <span class="gd">{{ $t('hj127') }}</span>
                    <div class="trading" @click="$router.push('/trading-list')">
                      <span>{{ '开始交易' }}</span>
                      <span>{{ $t('hj123') }}</span>
                    </div>
                  </div>
                </div>
              </div>
              <van-list v-model="loadings" :finished="finisheds" finished-text="没有更多了" @load="onLoads"
              <van-list v-model="loadings" :finished="finisheds" :finished-text="$t('hj43')" @load="onLoads"
                :immediate-check="immediate" v-show="tabsCurrentIndex === 2 && totals != 0">
                <div class="tabs_o">
                  <div class="tabs_o_items oes" v-for="(item, index) in tabsPcArr" :key="index">
                    <div class="tabs_o_title">
                      <span class="title">{{ item.stockName }}</span>
                      <span class="buy_to_sell">{{ item.orderDirection }}</span>
                      <span class="title">{{ item.stockName ? item.stockName : item.indexName }}</span>
                      <span class="buy_to_sell" :class="item.orderDirection == '买跌' ? 'maichu' : 'mairu'">{{
                          item.orderDirection == "买跌" ?
                            $t('hj84') : $t('hj85')
                      }}</span>
                      <span class="multiple">{{ item.allProfitAndLose }}</span>
                      <span class="nums">{{ item.orderNum / 100 + '手' }}</span>
                      <span class="nums">{{ item.orderNum / 100 + $t('hj117') }}</span>
                    </div>
                    <div class="bottom_price_title">
                      <div class="profit_res">
                        <span>平仓时间: {{ item.buyOrderTime | gettime }}</span>
                        <span>{{ $t('hj128') }}: {{ item.buyOrderTime | gettime }}</span>
                      </div>
                    </div>
                    <div class="right_count"
@@ -298,21 +300,21 @@
                <div class="waiting_box">
                  <div class="img_cont">
                    <img src="../../assets/img/zhaobudao.png" alt />
                    <span class="gd">{{ '当前无申购' }}</span>
                    <span class="gd">{{ $t('hj129') }}</span>
                    <div class="trading" @click="$router.push({ path: '/trading-list', query: { listid: 3 } })">
                      <span>{{ '开始交易' }}</span>
                      <span>{{ $t('hj123') }}</span>
                    </div>
                  </div>
                </div>
              </div>
              <van-list v-model="loadingXg" :finished="finishedXg" finished-text="没有更多了"
              <van-list v-model="loadingXg" :finished="finishedXg" :finished-text="$t('hj43')"
                v-show="tabsCurrentIndex === 3 && xgTotal != 0" @load="onLoadXg" :immediate-check="immediate">
                <div class="tabs_o">
                  <div class="tabs_o_items" v-for="(item, index) in tabsXgArr" :key="item.id">
                    <div class="tabs_o_title">
                      <span class="title">{{ item.newName }}</span>
                      <span class="buy_to_sell" :class="item.type == 1 ? 'mairu' : 'maichu'">{{
                          item.type == 1 ? '新股申购' : '线下配售'
                          item.type == 1 ? $t('hj45') : $t('hj46')
                      }}</span>
                      <!-- <span class="multiple">{{ item.lever  }}X</span>
                      <span class="nums">{{ item.buyNum / 100 + '手' }}</span> -->
@@ -329,17 +331,18 @@
                    <div class="bottom_price_title">
                      <div class="start_price">
                        <span>{{ '申购价格' }}</span>
                        <span>{{ $t('hj130') }}</span>
                      </div>
                      <div class="new_price">
                        <span>{{ '申购数量' }}</span>
                        <span>{{ $t('hj57') }}</span>
                      </div>
                    </div>
                    <div class="right_btn" @click="zcsg(item)" :class="item.status == 1 ? 'pink' : item.status == 2 ? 'red'
                                : item.status == 3 ? 'greeen' : item.status == 4 ? 'blue' : item.status == 5 ? 'purple' : ''">
                    : item.status == 3 ? 'greeen' : item.status == 4 ? 'blue' : item.status == 5 ? 'purple' : ''">
                      <span>{{ item.status == 1 ?
                          '已认购' : item.status == 2 ? '未中签'
                            : item.status == 3 ? '已中签' : item.status == 4 ? '已缴纳' : item.status == 5 ? '已转持仓'
                          $t('hj131') : item.status == 2 ? $t('hj132')
                            : item.status == 3 ? $t('hj133') : item.status == 4 ? $t('hj134') : item.status == 5 ?
                              $t('hj135')
                              : ''
                      }}</span>
                    </div>
@@ -360,13 +363,14 @@
<script>
import { Toast } from 'vant';
import { MessageBox } from 'mint-ui'
import * as api from "@/axios/api";
export default {
  data() {
    return {
      tabsArr: ["持仓", "挂单", "已平仓", "新股"],
      tabsArr: [this.$t('hj2'), this.$t('hj109'), this.$t('hj136'), this.$t('hj3')],
      tabsCurrentIndex: 0,
      titleName: "沪深京账户",
      titleName: this.$t('hj114'),
      indexSettingInfo: {},
      futuresSettingInfo: {},
      tabsPositionNumArr: [],
@@ -412,6 +416,58 @@
  },
  methods: {
    getpingcang(val) {
      if (!this.$store.state.userInfo.idCard) {
        Toast(this.$t('hj138'))
        this.$router.push('/authentication')
        return
      }
      if (this.titleIndex == 0) {
        MessageBox.confirm(this.$t('hj139') + '?', this.$t('hj165'), {
          confirmButtonText: this.$t('hj161'),
          cancelButtonText: this.$t('hj106'),
        }).then(async () => {
          let opt = {
            positionSn: val
          }
          let data = await api.sell(opt)
          if (data.status === 0) {
            Toast(data.msg)
            this.getzhishuListDetail();
            this.getzhishuListDetails();
            this.getorderList();
          } else if (data.msg.indexOf('不在交易时段内') > -1) {
            Toast(this.$t('hj140'))
          } else {
            Toast(data.msg)
          }
        }).catch(() => {
        });
      } else {
        MessageBox.confirm(this.$t('hj139') + '?', this.$t('hj165'), {
          confirmButtonText: this.$t('hj161'),
          cancelButtonText: this.$t('hj106'),
        }).then(async () => {
          let opt = {
            positionSn: val
          }
          let data = await api.sellIndex(opt)
          if (data.status === 0) {
            Toast(data.msg)
            this.getzhishuListDetail();
            this.getzhishuListDetails();
            this.getorderList();
          } else if (data.msg.indexOf('不在交易时段内') > -1) {
            Toast(this.$t('hj140'))
          } else {
            Toast(data.msg)
          }
        }).catch(() => {
        });
      }
    },
    onLoad() {
      this.page++;
      switch (this.titleIndex) {
@@ -451,7 +507,7 @@
      }
      let data = await api.delGuaDan(opts)
      if (data.status == 1) {
        Toast('撤单成功')
        Toast(this.$t('hj137'))
        this.page = 1;
        this.pages = 1;
        this.finished = false;
@@ -460,19 +516,19 @@
        this.tabsPcArr = [];
        switch (this.titleIndex) {
          case 0:
            this.titleName = "沪深京账户";
            this.titleName = this.$t('hj114');
            this.getListDetail();
            this.getListDetails();
            this.getorderList();
            break;
          case 1:
            this.titleName = "指数账户";
            this.titleName = this.$t('hj115');
            this.getzhishuListDetail();
            this.getzhishuListDetails();
            this.getorderList();
            break;
          case 2:
            this.titleName = "新股账户";
            this.titleName = this.$t('hj116');
            this.getQhListDetail();
            this.getQhListDetails();
            this.getorderList();
@@ -498,31 +554,37 @@
      this.tabsPcArr = [];
      switch (index) {
        case 0:
          this.titleName = "沪深京账户";
          this.titleName = this.$t('hj114');
          this.getListDetail();
          this.getListDetails();
          this.getorderList();
          this.handleTabsClick('', 0)
          break;
        case 1:
          this.titleName = "指数账户";
          this.titleName = this.$t('hj115');
          this.getzhishuListDetail();
          this.getzhishuListDetails();
          this.getorderList();
          this.handleTabsClick('', 0)
          break;
        case 2:
          this.titleName = "新股账户";
          this.getQhListDetail();
          this.getQhListDetails();
          this.getorderList();
          this.totalss = 0;
          this.totals = 0;
          this.total = 0;
          this.titleName = this.$t('hj116');
          this.handleTabsClick('', 3)
          // this.getQhListDetail();
          // this.getQhListDetails();
          // this.getorderList();
          break;
        default:
          break;
      }
      this.titleDialog = false;
      if (navigator.vibrate) {
          // 支持
          navigator.vibrate([55]);
        }
        // 支持
        navigator.vibrate([55]);
      }
    },
    handleTabsClick(item, index) {
      //持仓已平仓选项卡
@@ -531,9 +593,9 @@
        this.getNewXg();
      }
      if (navigator.vibrate) {
          // 支持
          navigator.vibrate([55]);
        }
        // 支持
        navigator.vibrate([55]);
      }
    },
    handleOpenDialog() {
      this.titleDialog = !this.titleDialog;
@@ -796,31 +858,49 @@
</script>
<style scoped lang="less">
.pink{
/deep/ .mint-msgbox-title {
  font-size: 0.4rem !important;
}
.pingbtn {
  width: auto !important;
  height: auto !important;
  background: rgb(45, 106, 233);
  color: rgb(255, 255, 255);
  padding: 0.2rem 0.4rem;
  border-radius: 0.2rem !important;
}
.pink {
  color: #eb2f96;
    background: #fff0f6;
    border-color: #ffadd2;
  background: #fff0f6;
  border-color: #ffadd2;
}
.red{
.red {
  color: #f5222d;
    background: #fff1f0;
    border-color: #ffa39e;
  background: #fff1f0;
  border-color: #ffa39e;
}
.blue{
.blue {
  color: #1890ff;
    background: #e6f7ff;
    border-color: #91d5ff;
  background: #e6f7ff;
  border-color: #91d5ff;
}
.green{
.green {
  color: #52c41a;
    background: #f6ffed;
    border-color: #b7eb8f;
  background: #f6ffed;
  border-color: #b7eb8f;
}
.purple{
.purple {
  color: #722ed1;
    background: #f9f0ff;
    border-color: #d3adf7;
  background: #f9f0ff;
  border-color: #d3adf7;
}
@boxCenter: {
  display: flex;
  justify-content: center;
@@ -1241,7 +1321,7 @@
  height: 0.7667rem;
  position: absolute;
  right: 1%;
  top: 48%;
  top: 27%;
  // background: #f7f7f7;
  // color: #3773dd;
  display: flex;
src/page/wallet/index.vue
@@ -22,7 +22,7 @@
      </div>
      <div class="center_card" v-if="tabsCurrentIndex === 0">
        <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"
@@ -42,10 +42,10 @@
        </div>
        <div class="yk es">
          <div>
            <span>{{ '沪深账户' }}</span>
            <span>{{ $t('hj156') }}</span>
          </div>
          <div>
            <span>{{ '指数账户' }}</span>
            <span>{{ $t('hj115') }}</span>
          </div>
        </div>
        <div class="yk as">
@@ -57,35 +57,35 @@
          </div>
        </div>
        <div class="btns" @click="handleGoToTransfers()">
          <span>{{ '账户金额互转' }}</span>
          <span>{{ $t('hj157') }}</span>
        </div>
      </div>
      <div class="withdrawal" v-if="tabsCurrentIndex === 1">
        <div class="ttx">
          <span>{{ '可提现金额 (元)' }}</span>
          <span>{{ $t('hj158') }}</span>
        </div>
        <div class="ttx_price">
          <span>{{ $store.state.userInfo.enableAmt }}</span>
        </div>
        <div class="ttx_input">
          <div class="titles">
            <span>{{ '提现金额' }}</span>
            <span>{{ $t('hj159') }}</span>
          </div>
          <div class="num">
            <input type="text" v-model="withdrawalValue" />
          </div>
          <div class="all" @click="withdrawalAll()">
            <span>{{ '全部' }}</span>
            <span>{{ $t('hj160') }}</span>
          </div>
        </div>
        <div class="btns" @click="handleToSure()">
          <span>{{ '确定' }}</span>
          <span>{{ $t('hj161') }}</span>
        </div>
      </div>
      <div class="banks" v-if="tabsCurrentIndex === 1">
        <div class="bank_1">
          <div class="left_name">
            <span>{{ '提现记录' }}</span>
            <span>{{ $t('hj162') }}</span>
          </div>
          <div class="center_input"></div>
          <div class="right_copy img_right" @click="handleGoToCashWithdrawalRecord()">
@@ -97,13 +97,13 @@
        <div class="bank_1">
          <div class="left_name">
            <span>{{ '收款名称' }}</span>
            <span>{{ $t('hj163') }}</span>
          </div>
          <div class="center_input">
            <input type="text" v-model="skName" readonly />
          </div>
          <div class="right_copy">
            <span v-clipboard:copy="skName" v-clipboard:success="onCopy" v-clipboard:error="onError">{{ '复制' }}</span>
            <span v-clipboard:copy="skName" v-clipboard:success="onCopy" v-clipboard:error="onError">{{ $t('hj164') }}</span>
          </div>
        </div>
        <div class="bank_1">
@@ -281,9 +281,9 @@
      // 点击全部提现
      this.withdrawalValue = this.userInfo.enableAmt;
      if (navigator.vibrate) {
          // 支持
          navigator.vibrate([55]);
        }
        // 支持
        navigator.vibrate([55]);
      }
    },
    async handleToSure() {
      // 点击确定提现
@@ -314,9 +314,9 @@
        }
      }
      if (navigator.vibrate) {
          // 支持
          navigator.vibrate([55]);
        }
        // 支持
        navigator.vibrate([55]);
      }
    },
    async getCardDetail() {
      // 获取银行卡信息
@@ -342,9 +342,9 @@
    },
    handleGoToTransferRecord() { // 充值记录
      if (navigator.vibrate) {
          // 支持
          navigator.vibrate([55]);
        }
        // 支持
        navigator.vibrate([55]);
      }
      this.$router.push('/transferRecord');
    },
    handleGoToCashWithdrawalRecord() { // 提现记录
@@ -352,16 +352,16 @@
    },
    handleGoToTransfers() {
      if (navigator.vibrate) {
          // 支持
          navigator.vibrate([55]);
        }
        // 支持
        navigator.vibrate([55]);
      }
      this.$router.push('/transfers');
    },
    handleGoCz() {
      if (navigator.vibrate) {
          // 支持
          navigator.vibrate([55]);
        }
        // 支持
        navigator.vibrate([55]);
      }
      if (this.walletNum === "") {
        this.messShow = true;
        this.mess = "请输入充值金额";
@@ -382,9 +382,9 @@
    onCopy() {
      Toast("复制成功");
      if (navigator.vibrate) {
          // 支持
          navigator.vibrate([55]);
        }
        // 支持
        navigator.vibrate([55]);
      }
    },
    onError() {
      Toast("复制失败请重试");
static/css/public2.css
@@ -12579,18 +12579,19 @@
  left: 50%;
  transform: translate3d(-50%, -50%, 0);
  background-color: #fff;
  width: 85%;
  width: 80%;
  border-radius: 3px;
  font-size: 16px;
  -webkit-user-select: none;
  overflow: hidden;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  transition: .2s
  transition: .2s;
  border-radius:16px;
}
.mint-msgbox-header {
  padding: 15px 0 0
  padding: 30px 0 0
}
.mint-msgbox-content {
@@ -12619,30 +12620,34 @@
  text-align: center;
  padding-left: 0;
  margin-bottom: 0;
  font-size: 16px;
  font-size: 26px;
  font-weight: 700;
  color: #333
  color: #333;
}
.mint-msgbox-message {
  line-height: 36px
  line-height: 36px;
  font-size: 20px;
  color: #666666;
}
.mint-msgbox-btns {
  display: -ms-flexbox;
  display: flex;
  height: 40px;
  line-height: 40px
  height: 50px;
  line-height: 50px
}
.mint-msgbox-btn {
  line-height: 35px;
  line-height: 50px;
  display: block;
  background-color: #fff;
  -ms-flex: 1;
  flex: 1;
  margin: 0;
  border: 0
  border: 0;
  font-size: 22px;
  letter-spacing: 2px;
}
.mint-msgbox-btn:focus {
@@ -12655,7 +12660,8 @@
.mint-msgbox-cancel {
  width: 50%;
  border-right: 1px solid #ddd
  border-right: 1px solid #ddd;
  color: #999;
}
.mint-msgbox-cancel:active {
@@ -13792,7 +13798,7 @@
}
.mint-msgbox-message {
  color: #999;
  color: #666666;
  margin: 0;
  text-align: center;
  line-height: 2rem !important