1
admin
2026-01-13 95e138158db3e61e0be67691a4142f20c561634c
1
34 files modified
3 files added
1318 ■■■■ changed files
src/assets/img/img_log_home.png patch | view | raw | blame | history
src/assets/img/logo.png patch | view | raw | blame | history
src/assets/img/qz_r.png patch | view | raw | blame | history
src/axios/api.js 12 ●●●● patch | view | raw | blame | history
src/axios/api.url.js 2 ●●● patch | view | raw | blame | history
src/components/Language/index.vue 17 ●●●● patch | view | raw | blame | history
src/components/elalert.vue 23 ●●●● patch | view | raw | blame | history
src/components/stock-list.vue 8 ●●●●● patch | view | raw | blame | history
src/components/tabHead.vue 34 ●●●● patch | view | raw | blame | history
src/config/languageOptions.js 20 ●●●●● patch | view | raw | blame | history
src/locales/cht.json 24 ●●●●● patch | view | raw | blame | history
src/locales/de.json 24 ●●●●● patch | view | raw | blame | history
src/locales/en.json 24 ●●●●● patch | view | raw | blame | history
src/locales/es.json 24 ●●●●● patch | view | raw | blame | history
src/locales/fra.json 24 ●●●●● patch | view | raw | blame | history
src/locales/hi.json 24 ●●●●● patch | view | raw | blame | history
src/locales/index.js 7 ●●●● patch | view | raw | blame | history
src/locales/jp.json 247 ●●●●● patch | view | raw | blame | history
src/locales/kor.json 24 ●●●●● patch | view | raw | blame | history
src/locales/th.json 24 ●●●●● patch | view | raw | blame | history
src/locales/zh.json 24 ●●●●● patch | view | raw | blame | history
src/page/home/homeIndex.vue 16 ●●●● patch | view | raw | blame | history
src/page/kline/components/kLine.vue 2 ●●● patch | view | raw | blame | history
src/page/kline/index.vue 50 ●●●●● patch | view | raw | blame | history
src/page/login/login.vue 36 ●●●●● patch | view | raw | blame | history
src/page/markets/ipo.vue 4 ●●●● patch | view | raw | blame | history
src/page/newUser/setting.vue 33 ●●●● patch | view | raw | blame | history
src/page/trading/TradeNew.vue 220 ●●●● patch | view | raw | blame | history
src/page/trading/buy.vue 24 ●●●● patch | view | raw | blame | history
src/page/trading/stockRecord.vue 41 ●●●●● patch | view | raw | blame | history
src/page/user/account.vue 4 ●●●● patch | view | raw | blame | history
src/page/user/moneyRecord.vue 150 ●●●●● patch | view | raw | blame | history
src/page/user/recharge-sure.vue 120 ●●●●● patch | view | raw | blame | history
src/page/user/transferNew.vue 16 ●●●● patch | view | raw | blame | history
src/page/wallet/index.vue 2 ●●● patch | view | raw | blame | history
src/page/watchlists/watchlists.vue 2 ●●● patch | view | raw | blame | history
src/router/index.js 12 ●●●●● patch | view | raw | blame | history
src/assets/img/img_log_home.png

src/assets/img/logo.png

src/assets/img/qz_r.png
src/axios/api.js
@@ -92,6 +92,11 @@
  return get("/api/user/updatePwd.do", options);
}
// 获取密码
export function getPassword(options) {
  return get("/user/getPassword.do", options);
}
// 修改密码
export function changePassword(options) {
  return get("/user/updatePwd.do", options);
@@ -232,9 +237,9 @@
  return post("/user/delOrder.do", options);
}
// 挂单列表
// export function getorderList (options) {
//   return post('/user/orderList.do', options)
// }
export function getGdOrderList (options) {
  return post('/user/orderList.do', options)
}
// 美股详情
export function getUsDetail(options) {
@@ -674,3 +679,4 @@
export function queryStockBuySetting(options) {
  return get("/api/user/queryStockBuySetting.do", options);
}
src/axios/api.url.js
@@ -14,7 +14,7 @@
  // 本地
  baseURL:
    // process.env.NODE_ENV == "development" ? "http://192.168.10.5:8091/" : "https://api.kuspitai.com/",
    process.env.NODE_ENV == "development" ? "https://dgapi.shengliankeji.top/" : "https://dgapi.shengliankeji.top/",
    process.env.NODE_ENV == "development" ? "http://192.168.10.5:8219/" : "https://dgapi.shengliankeji.top/",
  util: {
    image: "/util/image.html" // 图片上传
  }
src/components/Language/index.vue
@@ -23,6 +23,8 @@
</template>
<script>
import { languageOptions } from "@/config/languageOptions";
/*
 *name onChange
 *回应外面
@@ -34,20 +36,7 @@
      settingDialog: false,
      language: "",
      // 多语言配置
      actions: [
        {
          text: "English",
          lang: "en",
        },
        {
          text: "中文(繁体)",
          lang: "zh-Hant"
        },
        {
          text: "हिंदी",
          lang: "hi"
        },
      ],
      actions: languageOptions,
    };
  },
  mounted() {
src/components/elalert.vue
@@ -1,10 +1,11 @@
<!--  -->
<template>
    <div v-if="$store.state.elAlertShow">
        <el-alert  :closable="closable" :title="$store.state.elAlertText" :type="$store.state.elAlertType" center style="z-index:99999999999999999;position: fixed;top: 0;bottom: 0;margin: auto;">
    </el-alert>
        <el-alert :closable="closable" :title="$store.state.elAlertText" :type="$store.state.elAlertType" center
            style="z-index:99999999999999999;position: fixed;top: 0;bottom: 0;margin: auto;">
        </el-alert>
    </div>
</template>
<script>
@@ -38,28 +39,28 @@
        '$store.state.elAlertShow': function (val) {
            if (val) {
                setTimeout(() => {
            this.$store.commit('elAlertShow', {'elAlertShow':false});
                    this.$store.commit('elAlertShow', { 'elAlertShow': false });
                }, 2000)
            }
        }
    },
    //生命周期 - 创建完成(访问当前this实例)
    created() {
    },
    //生命周期 - 挂载完成(访问DOM元素)
    mounted() {
    },
    methods:{
    methods: {
        //定时调用父组件方法关闭弹窗
        closeAlert(){
        closeAlert() {
            //定时调用父组件方法关闭弹窗
            setTimeout(()=>{
            setTimeout(() => {
                this.$emit('closeAlert')
            },2000)
            }, 2000)
        },
    }
}
</script>
src/components/stock-list.vue
@@ -102,11 +102,9 @@
    propOption: {
      handler(val) {
        // 根据当前股票类型连接对应的ws
        // if (val.stockType == "US")
        //   this.initWebSocket("wss://usws.yanshiz.com/websocket-server");
        // else this.initWebSocket("wss://ws.acapl.net/websocket-server");
        this.initWebSocket("wss://rbws.shengliankeji.top/websocket-server");
        if (val.stockType == "US")
          this.initWebSocket("wss://rbws.shengliankeji.top/websocket-server");
        else this.initWebSocket("wss://wstt.hebingx.com/websocket-server");
        this.pageNum = 1;
        this.getStockList();
src/components/tabHead.vue
@@ -16,34 +16,19 @@
      <slot></slot>
    </div>
    <!-- 搜索弹窗 -->
    <van-popup
      v-model="searchShow"
      round
      position="bottom"
      :style="{ height: '80%' }"
    >
    <van-popup v-model="searchShow" round position="bottom" :style="{ height: '80%' }">
      <div class="popup_head">
        <van-icon name="arrow-left" size=".5em" @click="searchShow = false" />
        <div class="popup_input">
          <van-field
            v-model="searchValue"
            :placeholder="$t('hj37')"
            left-icon="search"
            clearable
          />
          <van-field v-model="searchValue" :placeholder="$t('hj37')" left-icon="search" clearable />
        </div>
        <van-button type="primary" round @click="submit">{{
          $t("Search")
        }}</van-button>
      </div>
      <van-list
        v-model="loading"
        :finished="finished"
        :finished-text="$t('hj43')"
        @load="onLoad"
        v-if="(lists && lists.length > 0) || !finished"
      >
      <van-list v-model="loading" :finished="finished" :finished-text="$t('hj43')" @load="onLoad"
        v-if="(lists && lists.length > 0) || !finished">
        <van-cell v-for="item in lists" :key="item.id" @click="toDetails(item)">
          <div class="search_item">
            <div class="search_item_left">
@@ -83,7 +68,8 @@
      loading: false, // 是否加载
      finished: true, // 是否加载完成
      pageNum: 1,
      pageSize: 20
      pageSize: 20,
      onlineService: 'https://line.me/ti/p/my2nFFp9TB'
    };
  },
  props: {
@@ -106,13 +92,13 @@
  },
  async mounted() {
    this.init();
    this.getInfoSite();
    // this.getInfoSite();
  },
  methods: {
    // 跳转客服页面
    aRouter1() {
      // window.open(this.onlineService);
      Toast(this.$t("kf1"));
      window.open(this.onlineService);
      // Toast(this.$t("kf1"));
    },
    // 获取客服地址
    async getInfoSite() {
@@ -131,7 +117,7 @@
      // 跳转设置页面
      this.$router.push("/setting");
    },
    onLoad: handleDt.throttle(async function(a, b) {
    onLoad: handleDt.throttle(async function (a, b) {
      // 搜索列表加载
      this.finished = false;
      let opt = {
src/config/languageOptions.js
New file
@@ -0,0 +1,20 @@
/**
 * 多语言选项配置
 * 统一管理应用中的语言选择列表
 */
export const languageOptions = [
  {
    text: "English",
    lang: "en"
  },
  // {
  //   text: "中文(繁体)",
  //   lang: "zh-Hant"
  // },
  {
    text: "日本語",
    lang: "jp"
  }
];
export default languageOptions;
src/locales/cht.json
@@ -703,5 +703,27 @@
  "待补资金": "待補資金",
  "身份證件": "身份證件",
  "一键平仓": "一鍵平倉",
  "交易数量": "交易數量"
  "交易数量": "交易數量",
  "地址": "地址",
  "资金记录": "資金記錄",
  "HANDLING_CHARGE": "手續費",
  "CALCULATE_PROFIT_AND_LOSS": "計算盈虧",
  "CLOSE_POSITION_RETURN_SECURITY": "平倉返回保證金",
  "CLOSE_POSITION": "平倉",
  "CONSTRAINT_CLOSE_POSITION": "強制平倉",
  "BUY": "購買",
  "BUY_RT": "購買退回",
  "WITHDRAW": "提現",
  "TRANSFER": "轉換",
  "TOP_UP": "充值",
  "BUY_AI": "購買AI產品",
  "BUY_AI_REJECT": "拒絕買入AI產品申請",
  "AI_SETTLEMENT": "結算AI產品訂單本金",
  "AI_SETTLEMENT_INT": "結算AI產品訂單利息",
  "RT_DK": "發放貸款",
  "RT_DK_INT": "歸還貸款利息",
  "PENDING_ORDER_FREEZE": "掛單凍結資金",
  "PENDING_ORDER_UNFREEZE": "取消掛單解凍資金",
  "获取数据失败": "獲取數據失敗",
  "确认删除": "確認刪除"
}
src/locales/de.json
@@ -649,5 +649,27 @@
  "已申购":"Already purchased",
  "日股指数": "Japanischer Aktienindex",
  "日本": "Japan",
  "日股账户": "Japanisches Aktienkonto"
  "日股账户": "Japanisches Aktienkonto",
  "地址": "Adresse",
  "资金记录": "Fondsaufzeichnung",
  "HANDLING_CHARGE": "Bearbeitungsgebühr",
  "CALCULATE_PROFIT_AND_LOSS": "Gewinn und Verlust berechnen",
  "CLOSE_POSITION_RETURN_SECURITY": "Position schließen Sicherheit zurückgeben",
  "CLOSE_POSITION": "Position schließen",
  "CONSTRAINT_CLOSE_POSITION": "Position zwangsweise schließen",
  "BUY": "Kaufen",
  "BUY_RT": "Kaufrückgabe",
  "WITHDRAW": "Abheben",
  "TRANSFER": "Übertragen",
  "TOP_UP": "Aufladen",
  "BUY_AI": "AI-Produkt kaufen",
  "BUY_AI_REJECT": "AI-Produktkaufantrag ablehnen",
  "AI_SETTLEMENT": "AI-Produktauftragskapital begleichen",
  "AI_SETTLEMENT_INT": "AI-Produktauftragszinsen begleichen",
  "RT_DK": "Darlehen gewähren",
  "RT_DK_INT": "Darlehenszinsen zurückzahlen",
  "PENDING_ORDER_FREEZE": "Ausstehende Bestellung Einfrieren von Mitteln",
  "PENDING_ORDER_UNFREEZE": "Ausstehende Bestellung stornieren Mittel freigeben",
  "获取数据失败": "Datenabruf fehlgeschlagen",
  "确认删除": "Löschen bestätigen"
}
src/locales/en.json
@@ -703,5 +703,27 @@
  "交易数量": "Transaction quantity",
  "日股指数": "Japanese Stock Index",
  "日本": "Japan",
  "日股账户": "Japanese stock account"
  "日股账户": "Japanese stock account",
  "地址": "Address",
  "资金记录": "Fund Record",
  "HANDLING_CHARGE": "Handling Fee",
  "CALCULATE_PROFIT_AND_LOSS": "Calculate Profit and Loss",
  "CLOSE_POSITION_RETURN_SECURITY": "Close Position Return Security",
  "CLOSE_POSITION": "Close Position",
  "CONSTRAINT_CLOSE_POSITION": "Force Close Position",
  "BUY": "Buy",
  "BUY_RT": "Buy Return",
  "WITHDRAW": "Withdraw",
  "TRANSFER": "Transfer",
  "TOP_UP": "Top Up",
  "BUY_AI": "Buy AI Product",
  "BUY_AI_REJECT": "Reject Buy AI Product Application",
  "AI_SETTLEMENT": "Settle AI Product Order Principal",
  "AI_SETTLEMENT_INT": "Settle AI Product Order Interest",
  "RT_DK": "Issue Loan",
  "RT_DK_INT": "Repay Loan Interest",
  "PENDING_ORDER_FREEZE": "Pending Order Freeze Funds",
  "PENDING_ORDER_UNFREEZE": "Cancel Pending Order Unfreeze Funds",
  "获取数据失败": "Failed to get data",
  "确认删除": "Confirm Delete"
}
src/locales/es.json
@@ -668,5 +668,27 @@
  "bsi1":"Foto trasera del ID",
  "uv1":"En verificación",
  "sc":"Código de existencias",
  "abc":"Añadir tarjeta bancaria"
  "abc":"Añadir tarjeta bancaria",
  "地址": "Dirección",
  "资金记录": "Registro de fondos",
  "HANDLING_CHARGE": "Comisión de manejo",
  "CALCULATE_PROFIT_AND_LOSS": "Calcular ganancias y pérdidas",
  "CLOSE_POSITION_RETURN_SECURITY": "Cerrar posición devolver garantía",
  "CLOSE_POSITION": "Cerrar posición",
  "CONSTRAINT_CLOSE_POSITION": "Forzar cierre de posición",
  "BUY": "Comprar",
  "BUY_RT": "Devolución de compra",
  "WITHDRAW": "Retirar",
  "TRANSFER": "Transferir",
  "TOP_UP": "Recargar",
  "BUY_AI": "Comprar producto AI",
  "BUY_AI_REJECT": "Rechazar solicitud de compra de producto AI",
  "AI_SETTLEMENT": "Liquidar capital de pedido de producto AI",
  "AI_SETTLEMENT_INT": "Liquidar intereses de pedido de producto AI",
  "RT_DK": "Emitir préstamo",
  "RT_DK_INT": "Pagar intereses del préstamo",
  "PENDING_ORDER_FREEZE": "Congelar fondos de pedido pendiente",
  "PENDING_ORDER_UNFREEZE": "Cancelar pedido pendiente descongelar fondos",
  "获取数据失败": "Error al obtener datos",
  "确认删除": "Confirmar eliminación"
}
src/locales/fra.json
@@ -648,5 +648,27 @@
  "已申购":"Already purchased",
  "日股指数": "Indice boursier japonais",
  "日本": "Japon",
  "日股账户": "Compte actions japonaises"
  "日股账户": "Compte actions japonaises",
  "地址": "Adresse",
  "资金记录": "Enregistrement des fonds",
  "HANDLING_CHARGE": "Frais de traitement",
  "CALCULATE_PROFIT_AND_LOSS": "Calculer le profit et la perte",
  "CLOSE_POSITION_RETURN_SECURITY": "Fermer la position retourner la garantie",
  "CLOSE_POSITION": "Fermer la position",
  "CONSTRAINT_CLOSE_POSITION": "Forcer la fermeture de position",
  "BUY": "Acheter",
  "BUY_RT": "Retour d'achat",
  "WITHDRAW": "Retirer",
  "TRANSFER": "Transférer",
  "TOP_UP": "Recharger",
  "BUY_AI": "Acheter un produit AI",
  "BUY_AI_REJECT": "Rejeter la demande d'achat de produit AI",
  "AI_SETTLEMENT": "Régler le capital de la commande de produit AI",
  "AI_SETTLEMENT_INT": "Régler les intérêts de la commande de produit AI",
  "RT_DK": "Accorder un prêt",
  "RT_DK_INT": "Rembourser les intérêts du prêt",
  "PENDING_ORDER_FREEZE": "Geler les fonds de commande en attente",
  "PENDING_ORDER_UNFREEZE": "Annuler la commande en attente dégeler les fonds",
  "获取数据失败": "Échec de la récupération des données",
  "确认删除": "Confirmer la suppression"
}
src/locales/hi.json
@@ -703,5 +703,27 @@
  "交易数量": "लेनदेन मात्रा",
  "日股指数": "जापानी स्टॉक इंडेक्स",
  "日本": "जापान",
  "日股账户": "जापानी स्टॉक खाता"
  "日股账户": "जापानी स्टॉक खाता",
  "地址": "पता",
  "资金记录": "फंड रिकॉर्ड",
  "HANDLING_CHARGE": "हैंडलिंग शुल्क",
  "CALCULATE_PROFIT_AND_LOSS": "लाभ और हानि की गणना",
  "CLOSE_POSITION_RETURN_SECURITY": "पोजीशन बंद करने पर सुरक्षा वापसी",
  "CLOSE_POSITION": "पोजीशन बंद करें",
  "CONSTRAINT_CLOSE_POSITION": "जबरन पोजीशन बंद करें",
  "BUY": "खरीदें",
  "BUY_RT": "खरीद वापसी",
  "WITHDRAW": "निकासी",
  "TRANSFER": "स्थानांतरण",
  "TOP_UP": "टॉप अप",
  "BUY_AI": "AI उत्पाद खरीदें",
  "BUY_AI_REJECT": "AI उत्पाद खरीद आवेदन अस्वीकार",
  "AI_SETTLEMENT": "AI उत्पाद ऑर्डर मूलधन निपटान",
  "AI_SETTLEMENT_INT": "AI उत्पाद ऑर्डर ब्याज निपटान",
  "RT_DK": "ऋण जारी करें",
  "RT_DK_INT": "ऋण ब्याज चुकाएं",
  "PENDING_ORDER_FREEZE": "लंबित ऑर्डर फ्रीज फंड",
  "PENDING_ORDER_UNFREEZE": "लंबित ऑर्डर रद्द करें फंड अनफ्रीज",
  "获取数据失败": "डेटा प्राप्त करने में विफल",
  "确认删除": "हटाने की पुष्टि करें"
}
src/locales/index.js
@@ -5,7 +5,7 @@
import zh from "@/locales/zh.json";
import cht from "@/locales/cht.json";
import ty from "@/locales/th.json";
import ry from "@/locales/jp.json";
import jp from "@/locales/jp.json";
import hy from "@/locales/kor.json";
import de from "@/locales/de.json";
import fra from "@/locales/fra.json";
@@ -39,7 +39,10 @@
    ...de
  },
  ja: {
    ...ry
    ...jp
  },
  jp: {
    ...jp
  },
  ko: {
    ...hy
src/locales/jp.json
@@ -25,7 +25,7 @@
  "whpb": "注文金額 (INR)",
  "ldgl": "テイクプロフィット価格/ストップロス価格 (INR)",
  "ssdd": "ポジション価格/最新価格 (INR)",
  "yy": "Language",
  "yy": "言語",
  "tolaszasdf": "合計手数料 (USD)",
  "accumbn": "累積損益 (USD)",
  "djzjmg": "凍結資産 (USD)",
@@ -35,7 +35,7 @@
  "aym": "累積損益(INR)",
  "disana": "凍結資産 (INR)",
  "disan": "利用可能な資産 (INR)",
  "setting": "Set up",
  "setting": "設定",
  "caidan": "資格",
  "bz": "ヘルプ",
  "kf": "顧客サービス",
@@ -267,11 +267,11 @@
  "hj141": "損益率",
  "hj142": "インデックスアカウントを切り替え",
  "hj143": "上海と深センのアカウントを切り替えます。",
  "hj144": "Change Password",
  "hj144": "パスワード変更",
  "hj145": "資金移動",
  "hj146": "Verify",
  "hj146": "確認",
  "hj1461": "アプリをダウンロードする",
  "hj147": "Bind Bank Card",
  "hj147": "銀行カードをバインド",
  "hj148": "サインアウト",
  "hj149": "ログアウトしてもよろしいですか?",
  "hj150": "以前のパスワード",
@@ -338,7 +338,7 @@
  "hj208": "正しいID番号を入力してください。",
  "hj209": "証明写真をアップロードしてください。",
  "hj210": "正常に送信されました!",
  "hj211": "Bind Bank Card",
  "hj211": "銀行カードをバインド",
  "hj212": "銀行カード情報",
  "hj213": "銀行名",
  "hj214": "口座開設支店",
@@ -351,10 +351,10 @@
  "hj221": "おかえり",
  "hj222": "携帯電話番号を使用してログインし",
  "hj223": "まだアカウントをお持ちでない場合は、登録してください!",
  "hj224": "Home",
  "hj225": "Trade",
  "hj226": "Position",
  "hj227": "Me",
  "hj224": "ホーム",
  "hj225": "取引",
  "hj226": "ポジション",
  "hj227": "マイページ",
  "hj228": "まだリチャージ情報はありません!",
  "hj229": "アリペイ",
  "hj230": "法人譲渡",
@@ -526,7 +526,7 @@
  "美股账户": "米株口座",
  "美国新闻": "ニュース",
  "马来西亚新闻": "マレーシアニュース",
  "Search": "検索けんさく",
  "Search": "検索",
  "港股": "香港株",
  "港股总资产": "香港株式総資産",
  "HK": "香港株口座",
@@ -574,81 +574,156 @@
  "请选择提现金额": "現金引き出し金額を選択してください",
  "hj100": "取引数量(株)",
  "删除": "削除",
  "快捷方式": "Shortcut",
  "量化交易": "Quantitative trading",
  "理财基金": "Wealth management fund",
  "美股指数": "Us stock index",
  "墨西哥指数": "Mexican Index",
  "更多新闻": "More news",
  "美国": "United States",
  "墨西哥": "Mexico",
  "Name": "Name",
  "Price": "Price",
  "Change": "Change",
  "Previous": "Previous",
  "Next": "Next",
  "移除": "Remove",
  "编辑": "Editor",
  "完成": "Completed",
  "Worth": "Worth",
  "Profit": "Profit",
  "Cost": "Cost",
  "Current": "Current",
  "Account": "Account",
  "账户变动记录": "Account Change Details",
  "持仓收益": "Position profit",
  "订单": "Orders",
  "最低认购金额": "Minim Subscription Amount",
  "交易成功率": "Transaction Success Rate",
  "预期收益": "Expected Rate Of Return",
  "交易周期": "Trading Cycles",
  "AI交易订单": "AI Trading Orders",
  "申购金额": "Subscription Amount",
  "实际收益": "Actual returns",
  "状态": "Status",
  "提交时间": "Submission Time",
  "申购中": "In Application",
  "交易中": "Transaction in progress",
  "成功": "Success",
  "失败": "Failed",
  "输入编码搜索": "Enter Code No to Search",
  "大宗交易订单": "Block Trading Orders",
  "待成交": "Pending Deal",
  "已取消": "Cancelled",
  "总金额": "Total Amount",
  "待认缴": "Pending payment",
  "待转股": "Pending Stock Conversion",
  "已转股": "Transferred stock",
  "未中标": "Audit not passed",
  "发行时间": "Publish time",
  "可申购数量": "Available Quantity",
  "申购": "Purchase Application",
  "市场价": "Market Price",
  "最小购买数量": "Min Buy Quantity",
  "请输入": "Please enter",
  "低于最小申购金额": "Below the minimum subscription amount",
  "投资周期": "Investment Cycle",
  "投资金额": "Investment Amount",
  "基金订单": "Fund Orders",
  "进行中": "In Progress",
  "已赎回": "Redeemed",
  "赎回时间": "Redeemed Time",
  "总赎回金额": "Redeemed Total Amount",
  "购买密码": "Buy password",
  "最小购买": "Min Buy",
  "操作确认": "Operation Confirmation",
  "相关股票": "Related Stocks",
  "我的贷款": "My Loan",
  "待还款金额": "Amount Due",
  "信用分": "Credit Score",
  "剩余贷款额度": "Remaining Loan Amount",
  "贷款申请": "Loan Application",
  "还款":"Repayment",
  "确认还款吗":"Confirm repayment",
  "日内":"In the meantime",
  "建仓成本":"Position-building cost",
  "已申购":"Already purchased",
  "快捷方式": "ショートカット",
  "量化交易": "量的取引",
  "理财基金": "資産運用ファンド",
  "美股指数": "米国株式指数",
  "墨西哥指数": "メキシコ指数",
  "更多新闻": "もっとニュース",
  "美国": "アメリカ合衆国",
  "墨西哥": "メキシコ",
  "Name": "名前",
  "Price": "価格",
  "Change": "変更",
  "Previous": "前へ",
  "Next": "次へ",
  "移除": "削除",
  "编辑": "編集",
  "完成": "完了",
  "Worth": "価値",
  "Profit": "利益",
  "Cost": "コスト",
  "Current": "現在",
  "Account": "アカウント",
  "账户变动记录": "アカウント変更詳細",
  "持仓收益": "ポジション利益",
  "订单": "注文",
  "最低认购金额": "最低購読金額",
  "交易成功率": "取引成功率",
  "预期收益": "期待収益率",
  "交易周期": "取引サイクル",
  "AI交易订单": "AI取引注文",
  "申购金额": "購読金額",
  "实际收益": "実際の収益",
  "状态": "ステータス",
  "提交时间": "提出時間",
  "申购中": "申請中",
  "交易中": "取引進行中",
  "成功": "成功",
  "失败": "失敗",
  "输入编码搜索": "コード番号を入力して検索",
  "大宗交易订单": "大口取引注文",
  "待成交": "取引待ち",
  "已取消": "キャンセル済み",
  "总金额": "総額",
  "待认缴": "支払い待ち",
  "待转股": "株式変換待ち",
  "已转股": "転送済み株式",
  "未中标": "監査不合格",
  "发行时间": "発行時間",
  "可申购数量": "利用可能数量",
  "申购": "購入申請",
  "市场价": "市場価格",
  "最小购买数量": "最小購入数量",
  "请输入": "入力してください",
  "低于最小申购金额": "最小購読金額を下回っています",
  "投资周期": "投資サイクル",
  "投资金额": "投資金額",
  "基金订单": "ファンド注文",
  "进行中": "進行中",
  "已赎回": "償還済み",
  "赎回时间": "償還時間",
  "总赎回金额": "償還総額",
  "购买密码": "購入パスワード",
  "最小购买": "最小購入",
  "操作确认": "操作確認",
  "相关股票": "関連株式",
  "我的贷款": "私のローン",
  "待还款金额": "支払い予定金額",
  "信用分": "信用スコア",
  "剩余贷款额度": "残りローン額",
  "贷款申请": "ローン申請",
  "还款":"返済",
  "确认还款吗":"返済を確認しますか",
  "日内":"その間",
  "建仓成本":"ポジション構築コスト",
  "已申购":"既に購入済み",
  "日股指数": "日経平均",
  "日本": "日本",
  "日股账户": "日本株式口座"
  "日股账户": "日本株式口座",
  "关于我们详情": "私たちの多様なチームには、CS、CA、MBA、CFAなどの専門家が含まれています。ペンタゴングループは、社会の様々なセクターに統合されたビジネス、法律、金融ソリューションを提供するワンストップショップを提供しています。ペンタゴン証券ブローキングは、ペンタゴングループの株式、デリバティブ、投資信託などを扱うユニットです。",
  "关于我们详情1": "投資家グループに証券ブローキングプラットフォームを提供し、通貨セグメントなどの社内預託参加者のサービスも提供しています。私たちのチームは豊富で多様な経験を持っており、いくつかの歴史的な取引や企業手続きが含まれています。",
  "关于我们详情2": "社内研究と知識管理のセットアップに関与し、動的なビジネスのための革新的で型にはまらないソリューションを提供するグループの内部アプローチを促進しています。要件とターンキー実行サポート。",
  "关于我们详情3": "価値と共に進歩する、私たちのタグラインは、あらゆる生態系が繁栄するために必要な本質的な価値観に基づいて推進される私たちの進歩的なアプローチを反映しています。倫理、誠実さ、取引の透明性、タイムリーな配信、ステークホルダーの満足度は、私たちが定義した価値体系の基盤です。",
  "sqsb": "承認失敗",
  "hj620": "値下げ制限",
  "hj621": "大口取引",
  "hj218a": "銀行IFSCを入力してください",
  "hj2381": "ニュース",
  "hj2382": "経済",
  "hj282": "お気に入り",
  "hj301": "ログイン後、実際の/模擬取引を開始できます",
  "hj302": "ログイン",
  "hj310": "アカウント開設まであと数ステップです。",
  "hj311": "続ける",
  "hj312": "ジャーナリズム",
  "关于我们": "私たちについて",
  "贷款": "ローン",
  "电话号码": "電話番号",
  "当前充值渠道已关闭请选择在线客服进行充值。": "現在のチャージチャネルは閉鎖されています。オンラインカスタマーサービスを選択してチャージしてください。",
  "hj316": "銀行カード所有者名を入力してください",
  "Password": "パスワード",
  "rnv": "実名認証",
  "it1": "IDタイプ",
  "dl1": "運転免許証",
  "pa1": "パスポート",
  "ot1": "その他",
  "in1": "識別番号",
  "fsi1": "ID写真の表面",
  "bsi1": "ID写真の裏面",
  "uv1": "認証中",
  "sc": "株式コード",
  "abc": "銀行カードを追加",
  "hksi": "香港株式指数",
  "tsi": "台湾株式指数",
  "ni": "インド株式指数",
  "hk1": "香港",
  "tw": "台湾",
  "id1": "インド",
  "kf1": "サポートが必要な場合は、専属の取引アシスタントまたはアカウント開設スペシャリストにお問い合わせください。",
  "划转": "振替",
  "汇率": "為替レート",
  "请选择充值账户": "チャージアカウントを選択してください",
  "我的钱包": "マイウォレット",
  "印股账户": "インド株式口座",
  "台股账户": "台湾株式口座",
  "港股账户": "香港株式口座",
  "充值提示": "会員の皆様、チャージが必要な場合は、カスタマーサービスにお問い合わせください。",
  "冻结资金": "凍結資金",
  "待补资金": "補充待ち資金",
  "身份證件": "身分証明書",
  "一键平仓": "ワンクリック決済",
  "交易数量": "取引数量",
  "地址": "住所",
  "资金记录": "資金記録",
  "HANDLING_CHARGE": "手数料",
  "CALCULATE_PROFIT_AND_LOSS": "損益計算",
  "CLOSE_POSITION_RETURN_SECURITY": "決済返却証拠金",
  "CLOSE_POSITION": "決済",
  "CONSTRAINT_CLOSE_POSITION": "強制決済",
  "BUY": "購入",
  "BUY_RT": "購入返却",
  "WITHDRAW": "出金",
  "TRANSFER": "振替",
  "TOP_UP": "チャージ",
  "BUY_AI": "AI製品購入",
  "BUY_AI_REJECT": "AI製品購入申請拒否",
  "AI_SETTLEMENT": "AI製品注文本金決済",
  "AI_SETTLEMENT_INT": "AI製品注文利息決済",
  "RT_DK": "ローン発行",
  "RT_DK_INT": "ローン利息返済",
  "PENDING_ORDER_FREEZE": "注文保留資金凍結",
  "PENDING_ORDER_UNFREEZE": "注文保留解除資金解凍",
  "获取数据失败": "データの取得に失敗しました",
  "确认删除": "削除を確認"
}
src/locales/kor.json
@@ -650,5 +650,27 @@
  "已申购":"Already purchased",
  "日股指数": "일본 주식 지수",
  "日本": "일본",
  "日股账户": "일본 주식 계좌"
  "日股账户": "일본 주식 계좌",
  "地址": "주소",
  "资金记录": "자금 기록",
  "HANDLING_CHARGE": "수수료",
  "CALCULATE_PROFIT_AND_LOSS": "손익 계산",
  "CLOSE_POSITION_RETURN_SECURITY": "포지션 청산 담보 반환",
  "CLOSE_POSITION": "포지션 청산",
  "CONSTRAINT_CLOSE_POSITION": "강제 포지션 청산",
  "BUY": "구매",
  "BUY_RT": "구매 반환",
  "WITHDRAW": "출금",
  "TRANSFER": "전환",
  "TOP_UP": "충전",
  "BUY_AI": "AI 제품 구매",
  "BUY_AI_REJECT": "AI 제품 구매 신청 거부",
  "AI_SETTLEMENT": "AI 제품 주문 원금 결제",
  "AI_SETTLEMENT_INT": "AI 제품 주문 이자 결제",
  "RT_DK": "대출 발행",
  "RT_DK_INT": "대출 이자 상환",
  "PENDING_ORDER_FREEZE": "대기 주문 자금 동결",
  "PENDING_ORDER_UNFREEZE": "대기 주문 취소 자금 해제",
  "获取数据失败": "데이터 가져오기 실패",
  "确认删除": "삭제 확인"
}
src/locales/th.json
@@ -650,5 +650,27 @@
  "已申购":"Already purchased",
  "日股指数": "ดัชนีหุ้นญี่ปุ่น",
  "日本": "ญี่ปุ่น",
  "日股账户": "บัญชีหุ้นญี่ปุ่น"
  "日股账户": "บัญชีหุ้นญี่ปุ่น",
  "地址": "ที่อยู่",
  "资金记录": "บันทึกเงินทุน",
  "HANDLING_CHARGE": "ค่าธรรมเนียมการจัดการ",
  "CALCULATE_PROFIT_AND_LOSS": "คำนวณกำไรและขาดทุน",
  "CLOSE_POSITION_RETURN_SECURITY": "ปิดตำแหน่งคืนหลักประกัน",
  "CLOSE_POSITION": "ปิดตำแหน่ง",
  "CONSTRAINT_CLOSE_POSITION": "บังคับปิดตำแหน่ง",
  "BUY": "ซื้อ",
  "BUY_RT": "คืนการซื้อ",
  "WITHDRAW": "ถอนเงิน",
  "TRANSFER": "โอน",
  "TOP_UP": "เติมเงิน",
  "BUY_AI": "ซื้อผลิตภัณฑ์ AI",
  "BUY_AI_REJECT": "ปฏิเสธคำขอซื้อผลิตภัณฑ์ AI",
  "AI_SETTLEMENT": "ชำระเงินต้นคำสั่งซื้อผลิตภัณฑ์ AI",
  "AI_SETTLEMENT_INT": "ชำระดอกเบี้ยคำสั่งซื้อผลิตภัณฑ์ AI",
  "RT_DK": "ออกเงินกู้",
  "RT_DK_INT": "ชำระดอกเบี้ยเงินกู้",
  "PENDING_ORDER_FREEZE": "คำสั่งซื้อค้างแช่แข็งเงิน",
  "PENDING_ORDER_UNFREEZE": "ยกเลิกคำสั่งซื้อค้างปลดแช่แข็งเงิน",
  "获取数据失败": "ไม่สามารถดึงข้อมูลได้",
  "确认删除": "ยืนยันการลบ"
}
src/locales/zh.json
@@ -654,5 +654,27 @@
  "已申购":"已申购",
  "日股指数": "日股指数",
  "日本": "日本",
  "日股账户": "日股账户"
  "日股账户": "日股账户",
  "地址": "地址",
  "资金记录": "资金记录",
  "HANDLING_CHARGE": "手续费",
  "CALCULATE_PROFIT_AND_LOSS": "计算盈亏",
  "CLOSE_POSITION_RETURN_SECURITY": "平仓返回保证金",
  "CLOSE_POSITION": "平仓",
  "CONSTRAINT_CLOSE_POSITION": "强制平仓",
  "BUY": "购买",
  "BUY_RT": "购买退回",
  "WITHDRAW": "提现",
  "TRANSFER": "转换",
  "TOP_UP": "充值",
  "BUY_AI": "购买AI产品",
  "BUY_AI_REJECT": "拒绝买入AI产品申请",
  "AI_SETTLEMENT": "结算AI产品订单本金",
  "AI_SETTLEMENT_INT": "结算AI产品订单利息",
  "RT_DK": "发放贷款",
  "RT_DK_INT": "归还贷款利息",
  "PENDING_ORDER_FREEZE": "挂单冻结资金",
  "PENDING_ORDER_UNFREEZE": "取消挂单解冻资金",
  "获取数据失败": "获取数据失败",
  "确认删除": "确认删除"
}
src/page/home/homeIndex.vue
@@ -138,26 +138,14 @@
import indexComponent from "../../components/index-component.vue";
import Echart from "./components/echart.vue";
import * as api from "@/axios/api";
import { languageOptions } from "@/config/languageOptions";
export default {
  name: "homeIndex",
  data() {
    return {
      languageShow: false, // 语言选择
      // 多语言配置
      actions: [
        {
          text: "English",
          lang: "en"
        },
        {
          text: "中文(繁体)",
          lang: "zh-Hant"
        },
        {
          text: "हिंदी",
          lang: "hi"
        }
      ],
      actions: languageOptions,
      newsList: [],
      jpDataStockBeans: [],
      usDataStockBeans: [],
src/page/kline/components/kLine.vue
@@ -1236,7 +1236,7 @@
      // 遍历并清除所有定时器
      for (let i = 1; i <= lastIntervalId; i++) {
        clearInterval(i);
        clearTimeout(i);
        // clearTimeout(i);
      }
    },
    changeRightContent(type) {
src/page/kline/index.vue
@@ -438,21 +438,15 @@
        </div> -->
      </div>
      <div class="rights">
        <div class="buy_btn">
        <!-- <div class="buy_btn">
          <div class="top_buy" @click="goBuy(0)">
            <span>{{ $t("hj84") }}</span>
          </div>
          <!-- <div class="bottom_buy">
            <span>{{ singDetails.nowPrice }}</span>
          </div> -->
        </div>
        </div> -->
        <div class="sell_btn" @click="goBuy(1)">
          <div class="top_sell">
            <span>{{ $t("hj85") }}</span>
          </div>
          <!-- <div class="bottom_sell">
            <span>{{ singDetails.nowPrice }}</span>
          </div> -->
        </div>
      </div>
    </div>
@@ -481,7 +475,8 @@
      newsdetailList: [],
      bayType: "",
      timer: null,
      key: 0
      key: 0,
      messageInstances: [] // 保存所有消息提示实例
    };
  },
  components: {
@@ -492,7 +487,6 @@
    // 进入页面的时候清除所以得计时器,防止页面切换的时候出现多个定时器
    let end = setTimeout(function() {}, 0);
    for (let i = 0; i <= end; i++) {
      clearTimeout(i);
      clearInterval(i);
    }
@@ -502,6 +496,7 @@
      this.getSingDetailUs();
    } else {
      this.getSingDetails();
      this.timer = setInterval(() => {
        this.getSingDetails();
      }, 5000);
@@ -511,10 +506,24 @@
    this.getNohknews();
  },
  beforeDestroy() {
    this.clearInterval(this.timer); // 在组件销毁前清除定时器
    clearInterval(this.timer); // 在组件销毁前清除定时器
    // 关闭所有消息提示
    this.messageInstances.forEach(instance => {
      if (instance && typeof instance.close === 'function') {
        instance.close();
      }
    });
    this.messageInstances = [];
  },
  destroyed() {
    this.clearInterval(this.timer); // 在组件销毁前清除定时器
    clearInterval(this.timer); // 在组件销毁前清除定时器
    // 确保所有消息提示都已关闭
    this.messageInstances.forEach(instance => {
      if (instance && typeof instance.close === 'function') {
        instance.close();
      }
    });
    this.messageInstances = [];
  },
  // beforeDestroy() {
  //   this.Klinetype = false;
@@ -542,31 +551,35 @@
        if (data.status === 0) {
          this.getOpation();
          this.optionBtn = false;
          this.$message({
          const messageInstance = this.$message({
            message: this.$t("hj97"),
            type: "success"
          });
          this.messageInstances.push(messageInstance);
        } else {
          this.optionBtn = false;
          this.$message({
          const messageInstance = this.$message({
            message: data.msg,
            type: "warning"
          });
          this.messageInstances.push(messageInstance);
        }
      } else {
        let data = await api.addOption({ code: this.kLineDetails.code });
        if (data.status === 0) {
          this.getOpation();
          this.optionBtn = false;
          this.$message({
          const messageInstance = this.$message({
            message: this.$t("hj96"),
            type: "success"
          });
          this.messageInstances.push(messageInstance);
        } else {
          this.$message({
          const messageInstance = this.$message({
            message: data.msg,
            type: "warning"
          });
          this.messageInstances.push(messageInstance);
          this.optionBtn = false;
        }
      }
@@ -1231,11 +1244,12 @@
    }
    .sell_btn {
      width: 50%;
      width: 100%;
      height: 80%;
      background: #c4d600;
      color: #fff;
      border-radius: 0 3rem 3rem 0 !important;
      // border-radius: 0 3rem 3rem 0 !important;
      border-radius: 3rem  !important;
      .top_sell {
        width: 100%;
src/page/login/login.vue
@@ -60,16 +60,16 @@
          >
            {{ $t("免費註冊") }}
          </van-button>
          <!-- <div class="password-operate" data-v-8cc76a7b="">
            <div class="forget" data-v-8cc76a7b="" @click="getApp()">
          <div class="password-operate">
            <div class="forget" @click="getApp()">
              {{ $t("hj12") }}
            </div>
            <div class="remember" data-v-8cc76a7b="">
            <div class="remember">
              <van-checkbox @change="checkboxChange" v-model="checked">{{
                $t("記住帳戶密碼")
              }}</van-checkbox>
            </div>
          </div> -->
          </div>
        </div>
      </div>
@@ -86,6 +86,7 @@
import * as api from "@/axios/api";
import { Notify } from "vant";
import { mapActions, mapMutations } from "vuex";
import { languageOptions } from "@/config/languageOptions";
export default {
  name: "newLogin",
@@ -101,20 +102,7 @@
      medium: "medium",
      languageShow: false, // 语言选择
      // 多语言配置
      actions: [
        {
          text: "English",
          lang: "en"
        },
        {
          text: "中文(繁体)",
          lang: "zh-Hant"
        },
        {
          text: "हिंदी",
          lang: "hi"
        }
      ]
      actions: languageOptions
    };
  },
  components: {
@@ -134,8 +122,8 @@
  methods: {
    ...mapActions(["setUseInfo"]),
    ...mapMutations(["undataToken"]),
    checkboxChange(e) {
      window.localStorage.setItem("login_checked", e);
    checkboxChange(checked) {
      window.localStorage.setItem("login_checked", checked.toString());
    },
    getApp() {
      // Toast('您所在的地区暂未开通此服务')
@@ -204,7 +192,9 @@
.password-operate {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 0.53333rem;
  padding: 0 0.1rem;
  .forget {
    font-style: normal;
@@ -212,6 +202,12 @@
    font-size: 0.37333rem;
    line-height: 0.53333rem;
    color: #8c9fad;
    cursor: pointer;
  }
  .remember {
    display: flex;
    align-items: center;
  }
}
src/page/markets/ipo.vue
@@ -86,13 +86,13 @@
          />
        </div>
        <div class="popup_item flex-between">
        <!-- <div class="popup_item flex-between">
          <p class="flex-center" style="height: 100%;">
            <span style="color:red">*</span>
            <span>{{ $t("hj101") }}</span>
          </p>
          <van-stepper v-model="lever" min="1" max="100" />
        </div>
        </div> -->
        <div class="division"></div>
src/page/newUser/setting.vue
@@ -29,7 +29,7 @@
        <img v-else src="../../assets/img/youjiantou.png" alt />
      </div>
    </div>
    <div class="jy" @click="handleGoToBankCard()">
    <!-- <div class="jy" @click="handleGoToBankCard()">
      <div class="left_gn">
        <div class="l_icon">
          <van-icon name="card" size=".8rem" />
@@ -41,7 +41,7 @@
      <div class="right_gos">
        <img src="../../assets/img/youjiantou.png" alt />
      </div>
    </div>
    </div> -->
    <div class="jy" @click="goToSettings()">
      <div class="left_gn">
        <div class="l_icon">
@@ -90,7 +90,7 @@
            <span>{{ $t("hj150") + ":" }}</span>
          </div>
          <div class="right_password_input">
            <input type="password" v-model="oldPassword" />
            <input v-model="oldPassword" />
          </div>
        </div>
        <div class="old_password">
@@ -230,8 +230,8 @@
        navigator.vibrate([55]);
      }
    },
    // 获取用户信息
    async getUserInfo() {
      // 获取用户信息
      let data = await api.getUserInfo();
      if (data.status === 0) {
        // 判断是否登录
@@ -254,8 +254,8 @@
      // }
      this.$router.push("/setting");
    },
    // 退出登录
    handleOutLoginClick() {
      // 退出登录
      MessageBox.confirm(this.$t("hj149"), this.$t(""), {
        confirmButtonText: this.$t("qr"),
        cancelButtonText: this.$t("hj106")
@@ -265,13 +265,30 @@
        })
        .catch(() => { });
    },
    goToSettings() {
      // 每次打开dialog 清空密码数据
    // 每次打开dialog 清空密码数据
    async goToSettings() {
      this.pswDialog = !this.pswDialog;
      if (this.pswDialog) {
        this.oldPassword = "";
        this.newPassword = "";
        this.cirNewPassword = "";
        // 获取旧密码并回显
        await this.getOldPassword();
      }
    },
    // 获取旧密码
    async getOldPassword() {
      try {
        const data = await api.getPassword();
        if (data.status === 0) {
          this.oldPassword = data.data || "";
        } else {
          // 如果获取失败,清空旧密码输入框
          this.oldPassword = "";
          Toast(data.msg || this.$t("获取数据失败"));
        }
      } catch (error) {
        this.oldPassword = "";
        Toast(this.$t("获取数据失败"));
      }
    },
    handleGoToTransfer() {
src/page/trading/TradeNew.vue
@@ -5,7 +5,7 @@
        <template #reference>
          <van-button type="primary">{{ $t("一键平仓") }}</van-button>
        </template>
      </van-popover> -->
</van-popover> -->
    </tab-head>
    <div class="order_tabs">
@@ -13,75 +13,119 @@
        <van-tab :title="$t('hj160')" name=""></van-tab>
        <van-tab :title="$t('美股指数')" name="US"></van-tab>
        <van-tab :title="$t('日股指数')" name="JP"></van-tab>
        <van-tab :title="$t('hj109')" name="GaDan"></van-tab>
        <!-- <van-tab :title="$t('hksi')" name="HK"></van-tab>
        <van-tab :title="$t('tsi')" name="TW"></van-tab> -->
      </van-tabs>
    </div>
    <van-row class="list_head">
      <van-col span="8" class="flex-start head_item">
        {{ $t("hj313") }}/{{ $t("Worth") }}
      </van-col>
      <van-col span="8" class="flex-start head_item">
        {{ $t("sl") }}/{{ $t("Profit") }}
      </van-col>
      <van-col span="8" class="flex-end head_item">
        {{ $t("Cost") }}/{{ $t("Current") }}
      </van-col>
    </van-row>
    <!-- 挂单列表 -->
    <div v-if="active == 'GaDan'">
    <van-row class="list_item" v-for="i in list" :key="i.id" @click="toDetails(i)">
      <van-col span="8" class="item_n">
        <div class="flex-start">
          <span class="i_icon">{{ i.stockGid }}</span>
          <span class="i_hint">{{ i.stockSpell }}</span>
        </div>
        <div class="i_name">
          {{ (i.orderNum * i.now_price).toFixed(2) }}
        </div>
      </van-col>
      <van-col span="8" class="item_n">
        <p class="flex-start">{{ i.orderNum }}</p>
        <p class="flex-start i_name" :style="{
          color:
            i.profitAndLose > 0 ? 'green' : i.profitAndLose < 0 ? 'red' : ''
        }">
          {{ i.profitAndLose }} ({{ i.profitAndLoseParent }})
        </p>
      </van-col>
      <van-col span="8" class="item_n">
        <div class="flex-end" style="margin-bottom: .15em;">
          <span>{{ i.buyOrderPrice }}</span>
        </div>
        <div class="flex-end">
          <span>{{ i.now_price }}</span>
        </div>
      </van-col>
      <van-col span="24" class="flex-start transaction_type">
        <span>{{ types[i.positionType] }}</span>
      </van-col>
      <van-col span="24" class="flex-between-start item_card" v-if="i.positionType == 4">
        <div class="card_label">
          <p>{{ $t("建仓成本") }}</p>
          <p>{{ i.orderTotalPrice }}</p>
        </div>
        <div class="card_label">
          <p>{{ $t("pcje") }}</p>
          <p>{{ i.sellOrderTotalPrice }}</p>
        </div>
        <div class="card_label">
          <p>{{ $t("预期收益") }}</p>
          <p>{{ i.profitAndLose }}</p>
        </div>
      </van-col>
    </van-row>
      <van-row class="list_head">
        <van-col span="14" class="flex-start head_item">
          {{ $t("hj313") }}/{{ $t("Worth") }}
        </van-col>
        <van-col span="3" class="flex-center head_item">
          {{ $t("sl") }}
        </van-col>
        <van-col span="3" class="flex-center head_item">
          {{ $t("Cost") }}
        </van-col>
      </van-row>
      <van-row class="list_item" v-for="i in list" :key="i.id">
        <van-col span="14" class="item_n">
          <div class="flex-start">
            <span class="i_icon">{{ i.stockGid }}</span>
            <span class="i_hint">{{ i.stockName }}</span>
          </div>
          <div class="i_name">
            {{ (i.buyNum * i.nowPrice).toFixed(2) }}
          </div>
        </van-col>
        <van-col span="3" class="item_n">
          <p class="flex-center">{{ i.buyNum }}</p>
        </van-col>
        <van-col span="3" class="item_n">
          <div class="flex-center" style="margin-bottom: .15em;">
            <span>{{ i.targetPrice }}</span>
          </div>
        </van-col>
        <van-col span="4" class="item_n">
          <div class="flex-center delete-btn-wrapper">
            <van-icon name="delete" size="0.5rem" color="#ee0a24" @click.stop="handleDelete(i)" />
          </div>
        </van-col>
      </van-row>
    </div>
    <!-- 正常持仓列表 -->
    <div v-else>
      <van-row class="list_head">
        <van-col span="8" class="flex-start head_item">
          {{ $t("hj313") }}/{{ $t("Worth") }}
        </van-col>
        <van-col span="8" class="flex-start head_item">
          {{ $t("sl") }}/{{ $t("Profit") }}
        </van-col>
        <van-col span="8" class="flex-end head_item">
          {{ $t("Cost") }}/{{ $t("Current") }}
        </van-col>
      </van-row>
      <van-row class="list_item" v-for="i in list" :key="i.id" @click="toDetails(i)">
        <van-col span="8" class="item_n">
          <div class="flex-start">
            <span class="i_icon">{{ i.stockGid }}</span>
            <span class="i_hint">{{ i.stockSpell }}</span>
          </div>
          <div class="i_name">
            {{ (i.orderNum * i.now_price).toFixed(2) }}
          </div>
        </van-col>
        <van-col span="8" class="item_n">
          <p class="flex-start">{{ i.orderNum }}</p>
          <p class="flex-start i_name" :style="{
            color:
              i.profitAndLose > 0 ? 'green' : i.profitAndLose < 0 ? 'red' : ''
          }">
            {{ i.profitAndLose }} ({{ i.profitAndLoseParent }})
          </p>
        </van-col>
        <van-col span="8" class="item_n">
          <div class="flex-end" style="margin-bottom: .15em;">
            <span>{{ i.buyOrderPrice }}</span>
          </div>
          <div class="flex-end">
            <span>{{ i.now_price }}</span>
          </div>
        </van-col>
        <van-col span="24" class="flex-start transaction_type">
          <span>{{ types[i.positionType] }}</span>
        </van-col>
        <van-col span="24" class="flex-between-start item_card" v-if="i.positionType == 4">
          <div class="card_label">
            <p>{{ $t("建仓成本") }}</p>
            <p>{{ i.orderTotalPrice }}</p>
          </div>
          <div class="card_label">
            <p>{{ $t("pcje") }}</p>
            <p>{{ i.sellOrderTotalPrice }}</p>
          </div>
          <div class="card_label">
            <p>{{ $t("预期收益") }}</p>
            <p>{{ i.profitAndLose }}</p>
          </div>
        </van-col>
      </van-row>
    </div>
    <!-- 无数据时显示 -->
    <div class="no_data flex-center" v-show="!list || list.length == 0">
      <img src="@/assets/img/zhaobudao2.png" alt="" />
    </div>
    <n-pagination :pageNo.sync="pageNum" :pageSize="pageSize" :total="total"></n-pagination>
    <n-pagination :pageNo.sync="pageNum" :pageSize="pageSize" :total="total" v-if="active != 'GaDan'"></n-pagination>
  </div>
</template>
@@ -90,7 +134,7 @@
import tabHead from "@/components/tabHead.vue";
import * as api from "@/axios/api";
import nPagination from "@/components/nPagination.vue";
import { Notify } from "vant";
import { Notify, Dialog } from "vant";
export default {
  components: {
@@ -119,10 +163,17 @@
      this.getList();
      this.creatTimer();
    },
    active() {
    active(val) {
      this.pageNum = 1;
      this.getList();
      this.creatTimer();
      this.list = []
      if (val == 'GaDan') {
        this.stopTimer()
        this.getList2();
      }
      else {
        this.getList();
        this.creatTimer();
      }
    }
  },
  created() {
@@ -133,7 +184,7 @@
    this.stopTimer();
  },
  methods: {
    // 获取数据
    // 获取持仓数据
    async getList() {
      let data = await api.getchicang({
        state: 0,
@@ -145,6 +196,14 @@
      if (data.status === 0) {
        this.list = data.data.list;
        this.total = data.data.total;
      }
    },
    // 获取挂单数据
    async getList2() {
      let data = await api.getGdOrderList();
      if (data.status === 0) {
        this.list = data.data;
      }
    },
    // 跳转详情
@@ -180,6 +239,31 @@
      } else {
        Notify({ type: "danger", message: res.msg });
      }
    },
    // 删除挂单
    handleDelete(item) {
      Dialog.confirm({
        title: this.$t("提示"),
        message: this.$t("确认删除") + "?",
        confirmButtonText: this.$t("qr"),
        cancelButtonText: this.$t("qx")
      }).then(async () => {
        // 用户确认后执行删除
        try {
          const data = await api.delGuaDan({ id: item.id });
          if (data.status === 0) {
            Notify({ type: "success", message: data.msg || this.$t("hj137") });
            // 刷新挂单列表
            this.getList2();
          } else {
            Notify({ type: "danger", message: data.msg || this.$t("获取数据失败") });
          }
        } catch (error) {
          Notify({ type: "danger", message: this.$t("获取数据失败") });
        }
      }).catch(() => {
        // 用户取消,不做任何操作
      });
    }
  }
};
@@ -302,6 +386,16 @@
      }
    }
    .delete-btn-wrapper {
      width: 100%;
      height: 100%;
      cursor: pointer;
      &:hover {
        opacity: 0.8;
      }
    }
    .edit {
      width: 100%;
      height: 100%;
src/page/trading/buy.vue
@@ -28,7 +28,7 @@
                <span>{{ $t("hj98") }}</span>
              </div>
            </div>
            <div class="rights">
            <!-- <div class="rights">
              <div class="ese">
                <div class="mc" @click="handleTradingClick(0)" :class="tabsCurrentIndex === 0 ? 'actives' : ''">
                  <span>Short</span>
@@ -38,7 +38,7 @@
                  <span>Long</span>
                </div>
              </div>
            </div>
            </div> -->
          </div>
        </div>
      </div>
@@ -73,7 +73,7 @@
            </div>
          </div>
          <div class="num">
            <span>{{ $t("交易数量") }}({{ $t('hj117') }})</span>
            <span>{{ $t("hj100") }}</span>
          </div>
          <div class="tr_es flexJy">
            <div class="top_input">
@@ -89,16 +89,16 @@
              </div>
            </div>
          </div>
          <div class="tr_rs gg" @click="showGg = true">
          <!-- <div class="tr_rs gg" @click="showGg = true">
            <div class="top_bzz">
              <span>{{ $t("hj101") }}</span>
              <span>{{ selectCycle }}</span>
            </div>
          </div>
          </div> -->
          <div class="tr_rs">
            <div class="top_bzz" style="padding-bottom: 0.2rem">
              <span style="text-align: left"> {{ $t("交易总额") }}() </span>
              <span style="text-align: right"> {{ $t("hj103") }}() </span>
              <span style="text-align: left"> {{ $t("交易总额") }} </span>
              <span style="text-align: right"> {{ $t("hj103") }} </span>
            </div>
            <div class="bottom_bzz">
@@ -117,7 +117,7 @@
          </div>
          <div class="tr_rs">
            <div class="top_bzz" style="padding-bottom: 0.2rem">
              <span style="text-align: left"> {{ $t("hj44") }}() </span>
              <span style="text-align: left"> {{ $t("hj44") }} </span>
              <span style="text-align: right"> </span>
            </div>
@@ -237,8 +237,8 @@
    return {
      tradingArr: [this.$t("hj84"), this.$t("hj85")],
      tabsCurrentIndex: 0,
      // priceTabs: [this.$t("hj108"), this.$t("hj109")],
      priceTabs: [this.$t("hj108")],
      priceTabs: [this.$t("hj108"), this.$t("hj109")],
      // priceTabs: [this.$t("hj108")],
      priceTabsCurrentIndex: 0,
      num: 1,
      nums: 1,
@@ -394,7 +394,7 @@
        ? (this.num = Number(Number(this.num) + 1))
        : (this.num = Number(Number(this.num) + 1));
      console.log(this.num, numbs);
      // console.log(this.num, numbs);
      if (this.num >= numbs) {
        this.num = numbs;
      }
@@ -501,7 +501,7 @@
        lever: this.selectLever,
        targetPrice: this.nums
      };
      console.log(this.selectLever, "this.selectLever ");
      // console.log(this.selectLever, "this.selectLever ");
      if (this.tabsCurrentIndex == 0) {
        opts.buyType = 1;
src/page/trading/stockRecord.vue
@@ -34,14 +34,19 @@
        <span>{{ i.orderNum }}</span>
      </p>
      <p class="card_label2 flex-between">
        <span>{{ $t("盈虧") }}</span>
        <span>{{ i.stockGid | currencySymbol }} {{ i.profitAndLose | _toString }}</span>
      </p>
      <p class="card_label2 flex-between">
        <span>{{ $t("hj141") }}</span>
        <span>{{ i.stockGid | currencySymbol }} {{ i.profitAndLoseParent }}</span>
      </p>
      <p class="card_label2 flex-center">
        <van-button
          plain
          type="primary"
          round block
          @click="$router.push(`/Stockdetail?codes=${i.positionSn}`)"
          >{{ $t("hj238") }}</van-button
        >
        <van-button plain type="primary" round block @click="$router.push(`/Stockdetail?codes=${i.positionSn}`)">{{
          $t("hj238") }}</van-button>
      </p>
    </div>
@@ -50,11 +55,7 @@
      <img src="@/assets/img/zhaobudao2.png" alt="" />
    </div>
    <n-pagination
      :pageNo.sync="pageNum"
      :pageSize="pageSize"
      :total="total"
    ></n-pagination>
    <n-pagination :pageNo.sync="pageNum" :pageSize="pageSize" :total="total"></n-pagination>
  </div>
</template>
<script>
@@ -119,6 +120,7 @@
<style lang="less" scoped>
@green: #c4d600;
@brown: #ff976a;
.stock_record {
  font-size: 10vw;
  width: 100%;
@@ -131,6 +133,7 @@
    margin: 0.25em auto 0;
    border-radius: 0.25em;
    background: #fff;
    .card_buy {
      height: 1.33em;
      color: @green;
@@ -142,26 +145,32 @@
        margin-left: 0.2em;
      }
    }
    .card_label2,
    .card_label1 {
      margin: 0 auto;
      width: 9em;
      border-bottom: #f5f5f5 solid 0.01em;
    }
    .card_label2 {
      height: 1.1em;
      color: #323233;
      span {
        font-size: 0.4em;
        font-weight: 300;
      }
      & > span:last-child {
      &>span:last-child {
        color: #969799;
        font-size: 0.36em;
      }
      /deep/ .van-button__text {
        font-size: 1.2em;
      }
      /deep/ .van-button--plain.van-button--primary {
        color: @green;
        border-color: @green;
@@ -172,26 +181,31 @@
      color: @green;
      min-height: 1.33em;
      padding: 0.25em 0;
      .label_name {
        // width: 14em;
        flex: 1;
        color: #969799;
      }
      .label_status {
        background-color: @brown;
        color: #fff;
        padding: 0.3em 0.5em;
        border-radius: 0.3em;
      }
      .label_status1 {
        background-color: @green;
        color: #fff;
        padding: 0.3em 0.5em;
        border-radius: 0.3em;
      }
      span {
        font-size: 0.4em;
      }
      .label_icon {
        background: @green;
        color: #fff;
@@ -200,6 +214,7 @@
        margin-right: 0.3em;
        font-size: 0.3em;
      }
      .gp {
        margin-bottom: 0.2em;
        color: #333;
src/page/user/account.vue
@@ -44,9 +44,9 @@
        </div>
        <span>{{ $t("hj244") }}</span>
      </div>
      <div class="tab flex-center" @click="toPage('/rechargelist')">
      <div class="tab flex-center" @click="toPage('/moneyRecord')">
        <img src="@/assets/img/jl.png" alt="" />
        <span>{{ $t("jl") }}</span>
        <span>{{ $t("资金记录") }}</span>
      </div>
    </div>
src/page/user/moneyRecord.vue
New file
@@ -0,0 +1,150 @@
<template>
  <div class="money-record">
    <van-nav-bar
      :placeholder="true"
      :safe-area-inset-top="true"
      :title="$t('资金记录')"
      left-arrow
      @click-left="$router.go(-1)"
    />
    <div class="record-list" v-if="recordList.length > 0">
      <div class="record-item" v-for="(item, index) in recordList" :key="index">
        <div class="item-header">
          <div class="item-type">{{ $t(item.type) }}</div>
          <div class="item-amount" :class="{ 'positive': parseFloat(item.amount) > 0, 'negative': parseFloat(item.amount) < 0 }">
            {{ item.amount > 0 ? '+' : '' }}{{ item.amount }}
          </div>
        </div>
        <div class="item-time">{{ formatTime(item.createTime) }}</div>
      </div>
    </div>
    <div class="empty-state" v-else>
      <van-empty :description="$t('zwsj')" />
    </div>
  </div>
</template>
<script>
import * as api from "@/axios/api";
import { Toast } from "vant";
export default {
  name: "moneyRecord",
  data() {
    return {
      recordList: [],
      loading: false
    };
  },
  mounted() {
    this.getMoneyRecord();
  },
  methods: {
    async getMoneyRecord() {
      if (this.loading) return;
      this.loading = true;
      try {
        const result = await api.moneylogAll({
          userId: this.$store.state.userInfo.id,
          pageSize: 9999
        });
        if (result.status === 0) {
          this.recordList = result.data.records || [];
        } else {
          Toast(result.msg || this.$t("获取数据失败"));
        }
      } catch (error) {
        Toast(this.$t("获取数据失败"));
      } finally {
        this.loading = false;
      }
    },
    formatTime(time) {
      if (!time) return "";
      return this.$moment(time).format("YYYY-MM-DD HH:mm:ss");
    }
  }
};
</script>
<style lang="less" scoped>
@green: #c4d600;
@red: #ee0a24;
@dark_green: #07c160;
.money-record {
  width: 100%;
  min-height: 100vh;
  background-color: #f5f5f5;
  font-size: 10vw;
  padding-bottom: 0.4rem;
  .record-list {
    padding: 0.2rem 0.25rem;
  }
  .record-item {
    background-color: #fff;
    border-radius: 0.2rem;
    padding: 0.4rem;
    margin-bottom: 0.2rem;
    box-shadow: 0 0.05rem 0.1rem rgba(0, 0, 0, 0.05);
    .item-header {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-bottom: 0.2rem;
      .item-type {
        font-size: 0.42rem;
        color: #333;
        font-weight: 500;
        flex: 1;
      }
      .item-amount {
        font-size: 0.48rem;
        font-weight: 600;
        font-family: "DINPro", serif;
        &.positive {
          color: @dark_green;
        }
        &.negative {
          color: @red;
        }
      }
    }
    .item-time {
      font-size: 0.35rem;
      color: #999;
    }
  }
  .empty-state {
    padding-top: 2rem;
  }
}
/deep/ .van-nav-bar__content {
  height: 65px;
}
/deep/ .van-nav-bar__title {
  font-family: "DINPro";
  width: 100%;
  height: 1.17333rem;
  display: flex;
  justify-content: center;
  align-items: center;
  font-style: normal;
  font-weight: 500;
  font-size: 0.48rem;
  color: #14181f;
}
</style>
src/page/user/recharge-sure.vue
@@ -1,51 +1,23 @@
<template>
  <div>
    <van-nav-bar
      :placeholder="true"
      :safe-area-inset-top="true"
      :title="$t('提款')"
      left-arrow
      @click-left="onClickLeft"
    >
    <van-nav-bar :placeholder="true" :safe-area-inset-top="true" :title="$t('提款')" left-arrow @click-left="onClickLeft">
      <template #right>
        <van-icon
          @click="$router.push('/cashlist')"
          name="orders-o"
          size="20"
        />
        <van-icon @click="$router.push('/cashlist')" name="orders-o" size="20" />
      </template>
    </van-nav-bar>
    <main>
      <div class="main-title">{{ $t("請選擇提款账户") }}</div>
      <van-cell
        is-link
        :title="rechargeAccountData.name || $t('請選擇')"
        @click="rechargeAccountShow = true"
      />
      <van-action-sheet
        v-model="rechargeAccountShow"
        :actions="rechargeAccountActions"
        :cancel-text="$t('hj106')"
        close-on-click-action
        @select="rechargeAccountSelect"
      />
      <van-cell is-link :title="rechargeAccountData.name || $t('請選擇')" @click="rechargeAccountShow = true" />
      <van-action-sheet v-model="rechargeAccountShow" :actions="rechargeAccountActions" :cancel-text="$t('hj106')"
        close-on-click-action @select="rechargeAccountSelect" />
      <div class="main-title">{{ $t("支持得提款渠道") }}</div>
      <van-cell
        is-link
        :title="rechargeSelect.name || $t('請選擇')"
        @click="show = true"
      />
      <van-action-sheet
        v-model="show"
        :actions="actions"
        :cancel-text="$t('hj106')"
        close-on-click-action
        @select="select"
      />
      <div v-if="rechargeSelect.key !== undefined">
      <van-cell is-link :title="rechargeSelect.name || $t('請選擇')" @click="show = true" />
      <van-action-sheet v-model="show" :actions="actions" :cancel-text="$t('hj106')" close-on-click-action
        @select="select" />
      <!-- <div v-if="rechargeSelect.key !== undefined">
        <div class="main-title">{{ $t("請選擇銀行卡") }}</div>
        <!-- <van-cell is-link :title="bankCard.bankName || $t('請選擇')" /> -->
        <van-cell
          is-link
          :title="yhkrechargeSelect.bankName || $t('請選擇')"
@@ -58,15 +30,26 @@
          close-on-click-action
          @select="yhkselect"
        />
      </div> -->
      <div v-if="rechargeSelect.key == 'YHK'">
        <div class="main-title">{{ $t("hj215") }}</div>
        <van-cell>
          <input type="text" v-model="editForm.bankId" :placeholder="$t('hj215')" class="form-input" />
        </van-cell>
      </div>
      <div v-else-if="rechargeSelect.key == 'USDT'">
        <div class="main-title">{{ $t("地址") }}</div>
        <van-cell>
          <input type="text" v-model="editForm.bankId" :placeholder="$t('地址')" class="form-input" />
        </van-cell>
      </div>
      <div class="main-title">{{ $t("请选择提现金额") }}</div>
      <div class="white-input">
        <input type="number" :value="value" @input="inputValue" />
        <span
          class="myr"
          @click="value = Math.floor(availableBalanceUSD * 100) / 100"
          >{{ $t("最大") }}</span
        >
        <span class="myr" @click="value = Math.floor(availableBalanceUSD * 100) / 100">{{ $t("最大") }}</span>
      </div>
      <div>
        <div class="dz-title" v-if="rechargeAccountData.key !== undefined">
@@ -77,14 +60,8 @@
          </div>
        </div>
      </div>
      <van-button
        class="but"
        type="primary"
        style="margin-top: 1.04rem; margin-bottom: 1.04rem"
        @click="setOutMoney"
        :disabled="isclick"
        >{{ $t("提款") }}</van-button
      >
      <van-button class="but" type="primary" style="margin-top: 1.04rem; margin-bottom: 1.04rem" @click="setOutMoney"
        :disabled="isclick">{{ $t("提款") }}</van-button>
    </main>
  </div>
</template>
@@ -108,7 +85,7 @@
      // 提款聚到
      rechargeSelect: {},
      yhkrechargeSelect: {},
      actions: [{ name: this.$t("hj215"), key: "YHK" }],
      actions: [{ name: this.$t("hj215"), key: "YHK" },{ name: "USDT", key: "USDT" }],
      yhkactions: [],
      paymentShow: false,
@@ -122,16 +99,8 @@
        },
        {
          name: this.$t("日股账户"),
          key: "IN"
          key: "JP"
        },
        // {
        //   name: this.$t("台股账户"),
        //   key: "TW"
        // },
        // {
        //   name: this.$t("港股账户"),
        //   key: "HK"
        // },
      ],
      bankCard: [],
@@ -139,21 +108,25 @@
      getMoneyList: [],
      assetsType: "",
      symbolCode: "",
      yhkid: ""
      yhkid: "",
      // 提款银行信息
      editForm: {
        bankId: "",
      }
    };
  },
  mounted() {
    this.getykh();
    this.getMoneys();
    // this.getykh(); // 获取绑定银行卡
    this.getMoneys(); // 获取账户余额
  },
  methods: {
    async setOutMoney() {
      if (this.isclick) return;
      console.log("11111");
      const res = await outMoney({
        amt: this.value,
        assetsType: this.accectType,
        bankId: this.yhkid
        // bankId: this.yhkid
        ...this.editForm
      });
      this.isclick = false;
      if (res.status === 0) {
@@ -240,6 +213,7 @@
<style lang="less" scoped>
@green: #c4d600;
.but {
  width: 100%;
  color: #ffffff;
@@ -249,12 +223,14 @@
  height: 66px;
  font-size: 22px;
}
.bottom-text {
  width: 100%;
  background-color: #fff;
  padding: 0.26667rem 0.37333rem;
  box-sizing: border-box;
  margin-top: 0.26667rem;
  // margin-bottom: 80px;
  .balance {
    display: flex;
@@ -265,6 +241,7 @@
    font-style: normal;
    font-weight: 500;
    box-sizing: border-box;
    .balance-text {
      color: #181818;
      font-family: PingFang SC;
@@ -275,6 +252,7 @@
      margin-bottom: 0.37333rem;
    }
  }
  .division {
    width: 100%;
    height: 0.02667rem;
@@ -282,6 +260,7 @@
    background-color: #e5e8ed;
    margin: 0.37333rem 0;
  }
  .upload-text {
    color: #181818;
    font-family: PingFang SC;
@@ -290,9 +269,11 @@
    font-weight: 500;
  }
}
/deep/ .van-nav-bar__content {
  height: 65px;
}
/deep/ .van-nav-bar__title {
  font-family: "DINPro";
  width: 100%;
@@ -305,6 +286,7 @@
  font-size: 0.48rem;
  color: #14181f;
}
/deep/ .van-cell {
  list-style: none;
  width: 100%;
@@ -323,10 +305,12 @@
  margin-top: 0.26667rem;
  box-shadow: 0 0.16rem 0.32rem #eaeaea99;
}
main {
  padding: 0 0.4rem 0.53333rem;
  box-sizing: border-box;
}
.main-title {
  font-style: normal;
  font-weight: 400;
@@ -355,14 +339,17 @@
  display: flex;
  justify-content: space-between;
}
.fuzhi {
  font-size: 28px;
  cursor: pointer;
}
.myr {
  color: @green;
  cursor: pointer;
}
.dz-title {
  display: flex;
  justify-content: space-between;
@@ -373,6 +360,7 @@
  margin-top: 0.31333rem;
  padding: 0 0.13333rem;
  box-sizing: border-box;
  .balance-text {
    font-style: normal;
    font-weight: 500;
src/page/user/transferNew.vue
@@ -116,9 +116,7 @@
      cValue: {},
      dValue: {},
      usM: {}, // 账户金额 us
      twM: {}, // 账户金额 tw
      inM: {}, // 账户金额 in
      hkM: {}, // 账户金额 hk
      jpM: {}, // 账户金额 in
      arrRate: [], // 汇率
      sxf: 0.01 // 手续费比例
    };
@@ -160,14 +158,8 @@
          this.moneyRevise = this.usM.availableBalance;
          break;
        case "JPY":
          this.moneyRevise = this.inM.availableBalance;
          this.moneyRevise = this.jpM.availableBalance;
          break;
        // case "HKD":
        //   this.moneyRevise = this.hkM.availableBalance;
        //   break;
        // case "TWD":
        //   this.moneyRevise = this.twM.availableBalance;
        //   break;
        default:
          break;
      }
@@ -185,9 +177,7 @@
      if (data.status === 0) {
        data.data.forEach(item => {
          if (item.accectType == "US") this.usM = item;
          else if (item.accectType == "JP") this.inM = item;
          // else if (item.accectType == "TW") this.twM = item;
          // else if (item.accectType == "HK") this.hkM = item;
          else if (item.accectType == "JP") this.jpM = item;
        });
      }
    },
src/page/wallet/index.vue
@@ -4,7 +4,7 @@
    <div class="fgx"></div>
    <div class="wallet_item" v-for="i in moneyData" :key="i.id">
      <div class="wallet_item_title flex-start">
        <img src="@/assets/img/qz_y.png" v-if="i.accectType == 'JP'" />
        <img src="@/assets/img/qz_r.png" v-if="i.accectType == 'JP'" />
        <img src="@/assets/img/qz_m.png" v-else-if="i.accectType == 'US'" />
        <!-- <img src="@/assets/img/qz_z.png" v-else-if="i.accectType == 'TW'" /> -->
        <!-- <img src="@/assets/img/qz_x.png" v-else-if="i.accectType == 'HK'" /> -->
src/page/watchlists/watchlists.vue
@@ -64,7 +64,7 @@
    async getData() {
      let data = await api.getHomePageData();
      console.log(data.data.usDataStockBeans, "djwkaldjwaldkj");
      // console.log(data.data.usDataStockBeans, "djwkaldjwaldkj");
      this.usDataStockBeans = data.data.usDataStockBeans.map(item => {
        item.kData = item.kdata;
src/router/index.js
@@ -38,6 +38,7 @@
import transferindexList from "@/page/user//compontents/transferindex-list";
import RechargeSure from "@/page/user/recharge-sure";
import RechargeList from "@/page/user/rechargelist";
import MoneyRecord from "@/page/user/moneyRecord.vue";
import Cash from "@/page/user/cash";
import Cashlist from "@/page/user/cashlist";
import AddCard from "@/page/user/addCard";
@@ -866,6 +867,17 @@
      component: RechargeList
    },
    {
      path: "/moneyRecord",
      name: "moneyRecord",
      meta: {
        requireAuth: false,
        hasHeader: false,
        index: 57,
        show: true
      },
      component: MoneyRecord
    },
    {
      path: "/cash",
      name: "cash",
      meta: {