From 35ba5f69dc6f207e73c99af9c46e0820a7388852 Mon Sep 17 00:00:00 2001
From: PC-20250623MANY\Administrator <344137771@qq.com>
Date: Sat, 26 Jul 2025 17:49:17 +0800
Subject: [PATCH] 1
---
src/locales/es.json | 655 ++++++++++++++++++++++++++++++++++++
src/locales/en.json | 4
src/locales/index.js | 6
src/page/markets/markets.vue | 22
src/page/list/tradingList/data.list.vue | 2
src/page/kline/index.vue | 174 ++++-----
src/axios/api.url.js | 3
src/page/home/homeIndex.vue | 24
src/page/kline/components/kLine.vue | 80 +---
src/components/stock-list.vue | 73 ++-
src/page/kline/kIndex.vue | 2
src/components/Language/index.vue | 11
12 files changed, 835 insertions(+), 221 deletions(-)
diff --git a/src/axios/api.url.js b/src/axios/api.url.js
index 84f1a5b..b2f6fde 100644
--- a/src/axios/api.url.js
+++ b/src/axios/api.url.js
@@ -13,7 +13,8 @@
// baseURL: "https://stockapi.yanshiz.com/",
// 本地
baseURL:
- process.env.NODE_ENV == "development" ? "http://192.168.10.5:8091/" : "https://api.kuspitai.com/",
+ // process.env.NODE_ENV == "development" ? "http://192.168.10.5:8091/" : "https://api.kuspitai.com/",
+ process.env.NODE_ENV == "development" ? "https://api.kuspitai.com/" : "https://api.kuspitai.com/",
util: {
image: "/util/image.html" // 图片上传
}
diff --git a/src/components/Language/index.vue b/src/components/Language/index.vue
index 304a3f1..340d1be 100644
--- a/src/components/Language/index.vue
+++ b/src/components/Language/index.vue
@@ -39,11 +39,12 @@
text: "English",
lang: "en",
},
- {
- text: "简体中文",
- lang: "zh-CN",
- },
- { text: "हिंदी", lang: "hi" },
+ // {
+ // text: "简体中文",
+ // lang: "zh-CN",
+ // },
+ // { text: "हिंदी", lang: "hi" },
+ { text: "español", lang: "es" },
// {
// text: "Deutsch",
// lang: "de",
diff --git a/src/components/stock-list.vue b/src/components/stock-list.vue
index a2b8ad3..03e8878 100644
--- a/src/components/stock-list.vue
+++ b/src/components/stock-list.vue
@@ -6,12 +6,7 @@
<van-col span="8" class="flex-end head_item">{{ $t("Change") }}</van-col>
</van-row>
- <van-row
- class="markets_item"
- v-for="item in stockList"
- :key="item.id"
- @click="toDetails(item)"
- >
+ <van-row class="markets_item" v-for="item in stockList" :key="item.id" @click="toDetails(item)">
<van-col span="12" class="item_n">
<div class="flex-start">
<span class="i_icon">{{ item.stock_type }}</span>
@@ -22,43 +17,25 @@
<van-col span="4" class="flex-start item_n">{{ item.nowPrice }}</van-col>
<van-col span="8" class="item_n">
- <div
- class="flex-end"
- style="margin-bottom: .15em;"
- :class="{ red: item.hcrate < 0, green: item.hcrate > 0 }"
- >
+ <div class="flex-end" style="margin-bottom: .15em;" :class="{ red: item.hcrate < 0, green: item.hcrate > 0 }">
{{ item.hcrate }}
</div>
- <div
- class="flex-end"
- :class="{ red: item.hcrate < 0, green: item.hcrate > 0 }"
- >
+ <div class="flex-end" :class="{ red: item.hcrate < 0, green: item.hcrate > 0 }">
{{ item.hcrateP }}
</div>
</van-col>
- <div
- class="edit flex-end"
- v-show="editorShow"
- @click.stop="deleteStock(item)"
- >
+ <div class="edit flex-end" v-show="editorShow" @click.stop="deleteStock(item)">
<span>{{ $t("移除") }}</span>
</div>
</van-row>
<!-- 无数据时显示 -->
- <div
- class="no_data flex-center"
- v-show="!stockList || stockList.length == 0"
- >
+ <div class="no_data flex-center" v-show="!stockList || stockList.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"></n-pagination>
</div>
</template>
@@ -66,6 +43,7 @@
import nPagination from "@/components/nPagination.vue";
import * as api from "@/axios/api";
import { Toast } from "vant";
+import { WhrWebSocket } from "@/utils/WhrWebSocket";
export default {
name: "stock_list",
components: {
@@ -113,6 +91,7 @@
},
mounted() {
this.getStockList();
+ this.initWebSocket();
},
methods: {
// 获取数据
@@ -161,8 +140,34 @@
} else {
Toast.fail(data.msg);
}
+ },
+ // 连接ws实时监控变动
+ initWebSocket() {
+ console.log("initWebSocket");
+ this.Trade = new WhrWebSocket({
+ path: `wss://ws.kuspitai.com/websocket-server `,
+ onmessage: this.getTradeMessage,
+ });
+
+ this.Trade.init();
+ },
+ getTradeMessage({ data }) {
+ let result = JSON.parse(data);
+ let pid = result.pid;
+ let userToUpdate = this.stockList.find((item) => item.code == pid);
+ if (userToUpdate) {
+ // 更新对象数据
+ userToUpdate.nowPrice = result.last;
+ userToUpdate.hcrateP = result.pcp;
+ }
+ },
+ },
+ beforeDestroy() {
+ if (this.Trade) {
+ this.Trade.close();
+ console.log('WebSocket disconnected');
}
- }
+ },
};
</script>
@@ -227,11 +232,9 @@
position: absolute;
top: 0;
left: 0;
- background: linear-gradient(
- to right,
- rgba(0, 0, 0, 0),
- rgba(0, 0, 0, 0.8)
- );
+ background: linear-gradient(to right,
+ rgba(0, 0, 0, 0),
+ rgba(0, 0, 0, 0.8));
text-align: end;
color: @red;
padding-right: 0.25em;
diff --git a/src/locales/en.json b/src/locales/en.json
index 2eab1cd..decf00c 100644
--- a/src/locales/en.json
+++ b/src/locales/en.json
@@ -213,8 +213,8 @@
"hj81": "Price",
"hj82": "Trading volume",
"hj83": "Introduction",
- "hj84": "Buy short",
- "hj85": "Buy long",
+ "hj84": "Sell",
+ "hj85": "Buy",
"hj86": "Time sharing",
"hj87": "Day",
"hj88": "Week",
diff --git a/src/locales/es.json b/src/locales/es.json
new file mode 100644
index 0000000..defe275
--- /dev/null
+++ b/src/locales/es.json
@@ -0,0 +1,655 @@
+{
+ "已上市": "Listada",
+ "秘钥": "Clave",
+ "描述": "Descripción",
+ "操作时间": "Hora de Operación",
+ "请输入电子邮箱": "Ingrese su correo electrónico",
+ "银行卡户主名称": "Nombre del Titular de la Tarjeta",
+ "请输入银行卡户主名称": "Ingrese el nombre del titular de la tarjeta",
+ "tips_sb": "Si tiene problemas, contáctenos por Telegram",
+ "top_s": "Si tiene alguna pregunta, contáctenos por correo electrónico",
+ "zc": "Soporte",
+ "wmdfw": "Nuestros Servicios",
+ "fxkz": "Control de Riesgos",
+ "yszc": "Política de Privacidad",
+ "zgzs": "Certificados",
+ "ysmrz": "Verificación de Identidad Completada",
+ "订单号": "Número de Orden",
+ "时间": "Hora",
+ "dlan": "Iniciar Sesión",
+ "申请杠杠成功,请联系客服!": "¡Solicitud de apalancamiento exitosa! Por favor, contacte al servicio al cliente.",
+ "dltips": "Inicie sesión para operar en modo real/simulado",
+ "usertop": "Activos Totales de la Cuenta (USD)",
+ "pcje": "Monto de Liquidación",
+ "gbsj": "Hora de Cierre",
+ "kpsj": "Hora de Apertura",
+ "gmsj": "Tiempo de Mantenimiento de la Posición",
+ "shou": "Posición (Acciones)",
+ "whpb": "Monto de la Orden (INR)",
+ "ldgl": "Precio de Toma de Ganancias/Stop Loss (INR)",
+ "ssdd": "Precio de Posición/Precio Actual (INR)",
+ "yy": "Idioma",
+ "tolaszasdf": "Comisión Total (USD)",
+ "accumbn": "Ganancias/Pérdidas Acumuladas (USD)",
+ "djzjmg": "Activos Congelados (USD)",
+ "uszzcaa": "Activos Totales en Acciones de EE.UU. (USD)",
+ "uszzc": "Activos Disponibles (USD)",
+ "ysa": "Comisión Total (INR)",
+ "aym": "Ganancias/Pérdidas Acumuladas (INR)",
+ "disana": "Activos Congelados (INR)",
+ "disan": "Activos Disponibles (INR)",
+ "setting": "Configuración",
+ "caidan": "Calificaciones",
+ "bz": "Ayuda",
+ "kf": "Servicio al Cliente",
+ "hometips": "Activos Totales",
+ "uszh2": "Acciones de EE.UU. Congeladas (USD)",
+ "uszh1": "Acciones de EE.UU. Disponibles (USD)",
+ "uszh": "Cuenta de Acciones de EE.UU.",
+ "kygp": "Acciones Indias Disponibles (INR)",
+ "djgp": "Acciones Indias Congeladas (INR)",
+ "hhaa": "Cuenta de Acciones de EE.UU.",
+ "hhhh": "Cuenta de Acciones de India",
+ "btn3": "Transferir",
+ "btn2": "Retirar",
+ "btn1": "Recargar",
+ "titxt": "Activos Totales en Acciones de EE.UU. (USD)",
+ "titxta": "Activos Totales en Acciones de India (INR)",
+ "gball": "Cerrar Todas las Posiciones",
+ "nwetitle": "Operar",
+ "nwetitlea": "Historial",
+ "ihj49": "Activos Totales India",
+ "uhj49": "Activos Totales EE.UU.",
+ "mggs": "Mercado de EE.UU.",
+ "ydgs": "Mercado de India",
+ "TOPA": "Ganadores",
+ "TOPB": "Perdedores",
+ "TOPC": "Volumen",
+ "qrzr": "Confirmar transferencia a cuenta USD",
+ "qrzra": "Confirmar transferencia a cuenta INR",
+ "zjhza": "USD a INR",
+ "zjhz": "INR a USD",
+ "qhmg": "Cambiar a cuenta EE.UU.",
+ "qhlb": "Cambiar a cuenta INR",
+ "yg": "Acciones Indias",
+ "hjtxcg": "Retiro Exitoso",
+ "hjtxsb": "Retiro Fallido",
+ "hjddqx": "Orden Cancelada",
+ "hjshz": "En Revisión",
+ "hjtxyhk": "Retirar a Tarjeta Bancaria",
+ "hjqxyy": "Razón de Cancelación",
+ "hjkh": "Número de Tarjeta",
+ "hjqxtx": "Cancelar Retiro",
+ "regJg": "Seleccione una institución primero",
+ "regPhone": "Ingrese un número de teléfono válido",
+ "regPhone2": "Ingrese su número de teléfono",
+ "regpInt": "Ingrese un número entero",
+ "MingCheng": "Nombre",
+ "hj1": "Mercado",
+ "yeb": "Fondos",
+ "yebjl": "Historial de Fondos",
+ "subdk": "Solicitar Préstamo",
+ "subdka": "Retirar",
+ "dkjl": "Historial de Préstamos",
+ "gm": "Comprar",
+ "jl": "Historial",
+ "ky": "Disponible",
+ "ye": "Saldo",
+ "sl": "Cantidad",
+ "qx": "Cancelar",
+ "qr": "Confirmar",
+ "ll": "Tasa de Interés",
+ "sxcg": "Actualización Exitosa",
+ "zwsj": "Sin datos por ahora",
+ "syl": "Tasa de Rendimiento",
+ "yuan": "Yuan",
+ "je": "Monto",
+ "sj": "Hora",
+ "js": "Liquidar",
+ "jssj": "Hora de Liquidación",
+ "wjs": "No Liquidado",
+ "yjs": "Liquidado",
+ "wei": "No",
+ "yi": "Sí",
+ "sqz": "En Solicitud",
+ "sptg": "Aprobado",
+ "shjj": "Rechazado",
+ "dkffcg": "Desembolso de Préstamo Exitoso",
+ "dkjg": "Institución Crediticia",
+ "dkje": "Monto del Préstamo",
+ "dkrdh": "Teléfono del Prestatario",
+ "shje": "Monto Revisado",
+ "dksj": "Hora del Préstamo",
+ "yj": "Comentario",
+ "xzjg": "Seleccionar Institución",
+ "sqje": "Monto Solicitado",
+ "lxhm": "Número de Contacto",
+ "sq": "Solicitar",
+ "yhdk": "Préstamo Bancario",
+ "xykdk": "Financiamiento con Tarjeta de Crédito",
+ "zqfx": "Emisión de Bonos",
+ "gdmz": "Financiamiento de Accionistas",
+ "jgxz": "Selección de Institución",
+ "hj2": "Posiciones",
+ "hj3": "Nuevas Emisiones",
+ "hj4": "Mío",
+ "hj5": "Más Seguidos",
+ "hj6": "Noticias",
+ "hj7": "Economía",
+ "hj8": "Iniciar Sesión con Teléfono",
+ "hj9": "Ingrese su número de teléfono",
+ "hj10": "Contraseña de Inicio de Sesión",
+ "hj11": "Inicio de Sesión Seguro",
+ "hj12": "¿Olvidó su contraseña?",
+ "hj13": "Otras formas de inicio de sesión",
+ "hj14": "¿No tiene cuenta?",
+ "hj15": "Registrarse",
+ "hj16": "Correo Electrónico",
+ "hj17": "Este servicio no está disponible en su región",
+ "hj18": "Registro con Teléfono",
+ "hj19": "Contraseña de 6-12 dígitos, letras o símbolos",
+ "hj20": "Confirme la contraseña",
+ "hj21": "Código de Invitación",
+ "hj22": "Registro Seguro",
+ "hj23": "¿Ya tiene cuenta?",
+ "hj24": "Iniciar Sesión",
+ "hj25": "Código de Verificación",
+ "hj26": "Registro con Número de Teléfono",
+ "hj27": "Número de Teléfono",
+ "hj28": "Ingrese un número de teléfono válido",
+ "hj29": "El número de teléfono no puede estar vacío",
+ "hj30": "Ingrese la contraseña",
+ "hj31": "Confirme la contraseña",
+ "hj32": "Las contraseñas no coinciden",
+ "hj33": "Ingrese el código de invitación",
+ "hj34": "Registro exitoso, inicie sesión",
+ "hj35": "Usuario ya registrado, inicie sesión",
+ "hj36": "Inicio de sesión exitoso",
+ "hj37": "Buscar por nombre/código de acción",
+ "hj38": "Abra una cuenta para depositar y operar",
+ "hj39": "Nombre",
+ "hj40": "Último Precio",
+ "hj41": "Cambio %",
+ "hj42": "Tipo de Suscripción",
+ "hj43": "No hay más datos",
+ "hj430": "Cargando...",
+ "hj44": "Comisión",
+ "hj45": "Suscripción a Nuevas Emisiones",
+ "新股配售": "Colocación de Nuevas Emisiones",
+ "hj46": "Colocación Privada",
+ "hj47": "Saldo",
+ "hj48": "Saldo Disponible",
+ "hj49": "Activos Totales",
+ "hj50": "Línea de Liquidación Forzosa",
+ "hj51": "Índices",
+ "hj52": "Acciones",
+ "hj53": "Activos",
+ "hj54": "Fondos Disponibles",
+ "hj55": "Margen Congelado",
+ "hj56": "Ganancias/Pérdidas Totales en Posiciones",
+ "hj57": "Cantidad Suscrita",
+ "hj58": "Suscribir Ahora",
+ "hj59": "Hora de Suscripción",
+ "hj70": "Suscripción Exitosa",
+ "配售数量": "Cantidad de Colocación",
+ "立即配售": "Colocar Ahora",
+ "配售时间": "Hora de Colocación",
+ "配售成功": "Colocación Exitosa",
+ "hj60": "Hora de Pago",
+ "hj61": "Favoritos",
+ "hj62": "Mercado",
+ "hj63": "SH/SZ/BJ",
+ "hj64": "STAR",
+ "hj65": "EE.UU.",
+ "hj66": "HK",
+ "hj67": "La cantidad no puede estar vacía",
+ "hj68": "La cantidad no puede ser menor a 1",
+ "hj69": "La cantidad no puede exceder",
+ "hj71": "¡Los índices no pueden agregarse a favoritos!",
+ "hj72": "Apertura",
+ "hj73": "Máximo",
+ "hj74": "Cierre Anterior",
+ "hj75": "Mínimo",
+ "hj76": "5 Niveles",
+ "hj77": "Compra",
+ "hj78": "Venta",
+ "hj79": "Transacciones en Tiempo Real",
+ "hj80": "Hora",
+ "hj81": "Precio",
+ "hj82": "Volumen",
+ "hj83": "Resumen",
+ "hj84": "Vender",
+ "hj85": "Comprar",
+ "hj86": "Tiempo Real",
+ "hj87": "Día",
+ "天": "Día",
+ "hj88": "Semana",
+ "hj89": "Mes",
+ "hj90": "1 Min",
+ "hj91": "5 Min",
+ "hj92": "30 Min",
+ "hj93": "Sin Ajustar",
+ "hj94": "Ajustado (Antes)",
+ "hj95": "Ajustado (Después)",
+ "hj96": "Agregado a Favoritos",
+ "hj97": "Eliminado de Favoritos",
+ "hj98": "Precio de Compra",
+ "hj99": "Comprar cuando se cumpla el precio",
+ "hj100": "Cantidad (Acciones)",
+ "hj101": "Apalancamiento",
+ "hj102": "Margen por Lote",
+ "hj103": "Saldo Disponible",
+ "hj104": "Toma de Ganancias",
+ "hj105": "Stop Loss",
+ "hj106": "Cancelar",
+ "hj107": "Seleccionar Apalancamiento",
+ "hj108": "Precio de Mercado",
+ "hj109": "Orden Pendiente",
+ "hj110": "Stop Loss Trailing",
+ "hj111": "Verifique su identidad antes de operar",
+ "hj112": "x",
+ "hj113": "Error: Fuera del horario de operación",
+ "hj114": "Cuenta SH/SZ/BJ",
+ "hj115": "Cuenta de Índices",
+ "hj116": "Cuenta de Nuevas Emisiones",
+ "hj117": "Lote",
+ "hj118": "Ganancias/Pérdidas Flotantes Netas",
+ "hj119": "Precio de Apertura",
+ "hj120": "Precio Actual",
+ "hj121": "Cerrar Posición",
+ "hj122": "Sin posiciones actualmente",
+ "hj123": "Comenzar a Operar",
+ "hj124": "Sin órdenes pendientes actualmente",
+ "hj125": "Precio de Orden Pendiente",
+ "hj126": "Cancelar",
+ "hj127": "Sin historial de cierres",
+ "hj128": "Hora de Cierre",
+ "hj129": "Sin suscripciones actuales",
+ "hj130": "Precio de Suscripción",
+ "hj131": "Suscrito",
+ "hj132": "No Asignado",
+ "hj133": "Asignado",
+ "hj134": "Pagado",
+ "hj135": "Transferido a Posición",
+ "hj136": "Posición Cerrada",
+ "hj137": "Orden cancelada exitosamente",
+ "hj138": "Verifique su identidad antes de operar",
+ "hj139": "¿Confirmar cierre de posición?",
+ "hj140": "Error: Fuera del horario de operación",
+ "hj141": "Tasa de Ganancia/Pérdida",
+ "hj142": "Cambiar a Cuenta de Índices",
+ "hj143": "Cambiar a Cuenta SH/SZ/BJ",
+ "hj144": "Cambiar Contraseña",
+ "hj145": "Transferencia de Fondos",
+ "hj146": "Verificar",
+ "hj1461": "Descargar App",
+ "hj147": "Vincular Tarjeta Bancaria",
+ "hj148": "Cerrar Sesión",
+ "hj149": "¿Confirmar cierre de sesión?",
+ "hj150": "Contraseña Anterior",
+ "hj151": "Nueva Contraseña",
+ "hj152": "Confirmar Nueva Contraseña",
+ "hj153": "Confirmar Cambio",
+ "hj154": "Ingrese las contraseñas antigua y nueva",
+ "hj155": "Las nuevas contraseñas no coinciden",
+ "hj156": "Cuenta SH/SZ/BJ",
+ "hj157": "Transferencia entre Cuentas",
+ "hj158": "Monto Retirable",
+ "hj159": "Monto a Retirar",
+ "hj160": "Todo",
+ "hj161": "Confirmar",
+ "hj162": "Historial de Retiros",
+ "hj162e": "Sin información de retiros",
+ "hj163": "Nombre del Beneficiario",
+ "hj164": "Copiar",
+ "hj165": "Nota",
+ "hj166": "Banco del Beneficiario",
+ "hj167": "Cuenta del Beneficiario",
+ "hj168": "Historial de Recargas",
+ "hj169": "Ver",
+ "hj170": "Monto de Recarga",
+ "hj170a": "Método de Recarga",
+ "hj171a": "Seleccione método de recarga",
+ "hj171": "Ingrese el monto de recarga",
+ "hj172": "Recargar",
+ "hj173": "Proceso de Operación",
+ "hj174": "Haga clic en 'Copiar' para copiar la información",
+ "hj175": "Copiado. Abra su banca móvil para transferir",
+ "hj176": "Para asegurar la acreditación, verifique que el monto transferido coincida con el solicitado",
+ "hj177": "Retirar",
+ "hj178": "Complete la verificación de identidad primero",
+ "hj179": "Vincule una tarjeta bancaria primero",
+ "hj180": "Ingrese un monto de retiro válido",
+ "hj181": "El monto de retiro no puede ser menor a",
+ "hj182": "Solicitud exitosa, en revisión",
+ "hj183": "Error en retiro, reintente o contacte al administrador",
+ "hj184": "Menor que el mínimo de recarga",
+ "hj185": "Copiado",
+ "hj186": "Error al copiar, reintente",
+ "hj187": "Transferencia de Fondos",
+ "hj188": "Financiamiento a Índices",
+ "hj189": "Índices a Financiamiento",
+ "hj190": "Monto Transferible",
+ "hj191": "Monto a Transferir",
+ "hj192": "Ingrese el monto a transferir",
+ "hj193": "Confirmar transferencia a cuenta de índices",
+ "hj194": "Confirmar transferencia a cuenta de financiamiento",
+ "hj195": "Nombre Real",
+ "hj196": "Número de Identificación",
+ "hj197": "Frente de Identificación",
+ "hj198": "Subiendo...",
+ "hj199": "Reverso de Identificación",
+ "hj200": "Verificación fallida, reintente",
+ "hj201": "Razón del Fallo",
+ "hj202": "En Revisión",
+ "hj203": "Verificar",
+ "hj204": "No Verificado",
+ "hj205": "¡La imagen no puede exceder 10MB!",
+ "hj206": "Imagen demasiado grande, seleccione una menor a 20MB",
+ "hj207": "Ingrese su nombre real",
+ "hj208": "Ingrese un número de identificación válido",
+ "hj209": "Suba las fotos de su identificación",
+ "hj210": "¡Enviado exitosamente!",
+ "hj211": "Vincular Tarjeta Bancaria",
+ "hj212": "Información de la Tarjeta",
+ "hj213": "Nombre del Banco",
+ "hj214": "Sucursal",
+ "hj215": "Número de Tarjeta",
+ "hj216": "Confirmar Vinculación",
+ "hj217": "Ingrese el número de tarjeta",
+ "hj218": "Ingrese el nombre del banco",
+ "hj219": "Ingrese la sucursal",
+ "hj220": "¡Agregado exitosamente!",
+ "hj221": "Bienvenido de vuelta",
+ "hj222": "Iniciar Sesión con Teléfono",
+ "hj223": "¿No tiene cuenta? ¡Regístrese!",
+ "hj224": "Inicio",
+ "hj225": "Operar",
+ "hj226": "Posiciones",
+ "hj227": "Perfil",
+ "hj228": "Sin información de recargas",
+ "hj229": "Alipay",
+ "hj230": "Transferencia Corporativa",
+ "hj231": "Recarga Exitosa",
+ "hj232": "Recarga Fallida",
+ "审核中": "Cancelar Recarga",
+ "hj234": "Número de Orden",
+ "hj235": "Cargando...",
+ "hj236": "Todos los datos cargados",
+ "hj237": "Comprar",
+ "hj238": "Detalles",
+ "hj239": "Detalles del Anuncio",
+ "hj240": "Olvidé mi Contraseña",
+ "hj241": "Abrir Cuenta",
+ "hj242": "Mercado",
+ "hj243": "Centro Personal",
+ "hj244": "Monedero",
+ "hj245": "Transferir",
+ "hj246": "Verificación",
+ "hj247": "Tarjeta Bancaria",
+ "hj248": "Inicio de Sesión",
+ "hj249": "Registro",
+ "hj250": "Pagar",
+ "hj251": "¿Confirmar pago?",
+ "hj252": "Este sitio es de prueba técnica, no ofrece servicios reales",
+ "hj253": "Cantidad Asignada",
+ "hj254": "Ejecutado",
+ "hj255": "No Ejecutado",
+ "hj256": "Recargar",
+ "hj257": "Historial de Operaciones",
+ "hj258": "SZ",
+ "hj259": "SH",
+ "hj260": "BJ",
+ "hj261": "Información Privilegiada",
+ "hj300": "Información Privilegiada",
+ "hj262": "Ingrese la cantidad",
+ "hj263": "Monto de Compra",
+ "hj264": "Ingrese la clave",
+ "hj265": "Compra Exitosa",
+ "hj266": "Clave VIP para Ofertas",
+ "hj267": "Confirmar",
+ "hj268": "Historial de Información Privilegiada",
+ "hj269": "Precio de Compra",
+ "hj270": "Cantidad Comprada",
+ "hj271": "Precio Unitario de Compra",
+ "hj272": "Orden de Compra",
+ "hj273": "Hora de Compra",
+ "hj274": "Acción",
+ "hj275": "Seleccione el apalancamiento",
+ "hj276": "Orden colocada exitosamente",
+ "hj277": "La cantidad no puede ser menor a",
+ "hj278": "La cantidad no puede exceder",
+ "hj279": "Ofertas VIP",
+ "hj280": "Límite Disponible",
+ "hj281": "Seleccionar Multiplicador de Apalancamiento",
+ "hj303": "IFSC",
+ "hj304": "UPI",
+ "hj305": "Ingrese monto a retirar",
+ "hj306": "Ingrese nombre del banco",
+ "hj307": "Ingrese número de tarjeta",
+ "hj308": "Ingrese IFSC del banco",
+ "hj309": "Ingrese UPI del banco",
+ "hj313": "Acción",
+ "hj314": "Último Precio",
+ "hj315": "% Cambio",
+ "US": "Cuenta EE.UU.",
+ "IN": "Cuenta India",
+ "MAS": "Cuenta Malasia",
+ "提款": "Retirar",
+ "安全": "Seguridad",
+ "用戶手冊": "Manual del Usuario",
+ "平臺": "Plataforma",
+ "申購記錄": "Historial de Suscripciones",
+ "資訊": "Información",
+ "数字货币": "Moneda Digital",
+ "马股": "Malasia",
+ "美股": "EE.UU.",
+ "名稱": "Nombre",
+ "最大購買": "Compra Máxima",
+ "單筆價格": "Precio Unitario",
+ "马来西亚": "Malasia",
+ "全部平仓": "Cerrar Todas las Posiciones",
+ "浮動盈虧": "Ganancias/Pérdidas Flotantes",
+ "可用資產": "Activos Disponibles",
+ "累計盈虧": "Ganancias/Pérdidas Acumuladas",
+ "凍結資產": "Activos Congelados",
+ "總手續費": "Comisiones Totales",
+ "盈虧": "Ganancias/Pérdidas",
+ "持倉價": "Precio de Posición",
+ "訂單金額": "Monto de la Orden",
+ "開倉手續費": "Comisión de Apertura",
+ "止損價": "Precio de Stop Loss",
+ "止盈價": "Precio de Toma de Ganancias",
+ "持倉時間": "Tiempo de Posición",
+ "訂單編號": "Número de Orden",
+ "美股總資產": "Activos Totales EE.UU.",
+ "印股總資產": "Activos Totales India",
+ "馬股總資產": "Activos Totales Malasia",
+ "平仓": "Cerrar Posición",
+ "确认平仓": "Confirmar Cierre de Posición",
+ "市價": "Precio de Mercado",
+ "賬戶總資產": "Activos Totales de la Cuenta",
+ "類型": "Tipo",
+ "總浮動盈虧": "Ganancias/Pérdidas Flotantes Totales",
+ "美股資產": "Activos EE.UU.",
+ "美股总资产": "Activos Totales EE.UU.",
+ "印股总资产": "Activos Totales India",
+ "馬股总资产": "Activos Totales Malasia",
+ "美股可用": "Disponible EE.UU.",
+ "美股冻结": "Congelado EE.UU.",
+ "印股資產": "Activos India",
+ "印股可用": "Disponible India",
+ "馬股資產": "Activos Malasia",
+ "馬股可用": "Disponible Malasia",
+ "馬股冻结": "Congelado Malasia",
+ "請選擇": "Seleccione",
+ "轉換得到金額": "Monto Recibido",
+ "輸入金額": "Ingrese Monto",
+ "劃轉": "Transferir",
+ "平倉": "Cerrar Posición",
+ "持倉": "Posiciones",
+ "最大": "Máximo",
+ "可用餘額": "Saldo Disponible",
+ "確認劃轉": "Confirmar Transferencia",
+ "划转成功": "Transferencia Exitosa",
+ "提款成功,等待审核": "Retiro exitoso, en revisión",
+ "不能选择一样的": "No se puede seleccionar lo mismo",
+ "總資產": "Activos Totales",
+ "請選擇提款账户": "Seleccione cuenta de retiro",
+ "請選擇銀行卡": "Seleccione tarjeta bancaria",
+ "請選擇充值金額": "Seleccione monto de recarga",
+ "買漲/買跌": "Comprar Alcista/Bajista",
+ "倉位(股)": "Posición (Acciones)",
+ "您確定一鍵平倉所有訂單嗎?": "¿Confirmar cerrar todas las órdenes?",
+ "打新日曆": "Calendario de OPVs",
+ "立即登录": "Iniciar Sesión Ahora",
+ "記住帳戶密碼": "Recordar usuario y contraseña",
+ "還沒賬號?": "¿No tiene cuenta?",
+ "已有賬號?": "¿Ya tiene cuenta?",
+ "免費註冊": "Registro Gratuito",
+ "馬上登錄": "Iniciar Sesión Ahora",
+ "我已閱讀並同意": "He leído y acepto",
+ "《用戶服務協議》": "Acuerdo de Servicio",
+ "立即注册": "Registrarse Ahora",
+ "新股记录": "Historial de Nuevas Emisiones",
+ "登錄賬號": "Iniciar Sesión",
+ "买跌": "Comprar Bajista (Vender)",
+ "买涨": "Comprar Alcista (Comprar)",
+ "韩国股市": "Corea",
+ "韩股总资产": "Activos Totales Corea",
+ "韩股資產": "Activos Corea",
+ "韩股可用": "Disponible Corea",
+ "韩股冻结": "Congelado Corea",
+ "支持得支付渠道": "Canales de Pago Soportados",
+ "充值中心": "Centro de Recargas",
+ "最小充值金額": "Mínimo de Recarga",
+ "收款卡號": "Número de Cuenta Destino",
+ "收款銀行": "Banco Destino",
+ "收款人名字": "Nombre del Beneficiario",
+ "請選擇充值賬戶": "Seleccione cuenta de recarga",
+ "上傳憑證": "Subir Comprobante",
+ "HG": "Cuenta Corea",
+ "支持得提款渠道": "Canales de Retiro Soportados",
+ "銀行卡充值": "Recarga con Tarjeta",
+ "韩股總資產": "Activos Totales Corea",
+ "上傳憑證:": "Subir Comprobante:",
+ "从": "De",
+ "到": "A",
+ "密码修改成功": "Contraseña cambiada exitosamente",
+ "劃轉记录": "Historial de Transferencias",
+ "馬股账户": "Cuenta Malasia",
+ "美股账户": "Cuenta EE.UU.",
+ "美国新闻": "Noticias EE.UU.",
+ "马来西亚新闻": "Noticias Malasia",
+ "Search": "Buscar",
+ "港股": "Hong Kong",
+ "港股总资产": "Activos Totales HK",
+ "HK": "Cuenta HK",
+ "港股资产": "Activos HK",
+ "港股可用": "Disponible HK",
+ "港股冻结": "Congelado HK",
+ "订单详情": "Detalles de la Orden",
+ "港股總資產": "Activos Totales HK",
+ "一鍵平倉": "Cerrar Todas",
+ "印股": "India",
+ "印股冻结": "Congelado India",
+ "印度新闻": "Noticias India",
+ "上市时间": "Fecha de Listado",
+ "提示": "Nota",
+ "是否认缴": "¿Pagar?",
+ "确定": "Aceptar",
+ "取消": "Cancelar",
+ "确认": "Confirmar",
+ "申请杠杠": "Solicitar Apalancamiento",
+ "认购成功": "Suscripción Exitosa",
+ "待补金额": "Monto Pendiente",
+ "待上市": "Próximo a Listar",
+ "交易总额": "Volumen Total de Operaciones",
+ "申购开启时间": "Hora de Apertura de Suscripción",
+ "配售开启时间": "Hora de Apertura de Colocación",
+ "申购结束时间": "Hora de Cierre de Suscripción",
+ "周期": "Período",
+ "市场": "Mercado",
+ "配售结束时间": "Hora de Cierre de Colocación",
+ "请选择提现金额": "Seleccione monto de retiro",
+ "关于我们": "Sobre Nosotros",
+ "贷款": "Préstamo",
+ "hj621": "Operaciones por Bloque",
+ "电话号码": "Número de Teléfono",
+ "当前充值渠道已关闭请选择在线客服进行充值。": "Canal de recarga cerrado, contacte servicio al cliente.",
+ "删除": "Eliminar",
+ "快捷方式": "Accesos Rápidos",
+ "量化交易": "Trading Cuantitativo",
+ "理财基金": "Fondos de Inversión",
+ "美股指数": "Índices EE.UU.",
+ "墨西哥指数": "Índices México",
+ "更多新闻": "Más Noticias",
+ "美国": "EE.UU.",
+ "墨西哥": "México",
+ "Name": "Nombre",
+ "Price": "Precio",
+ "Change": "Cambio",
+ "Previous": "Anterior",
+ "Next": "Siguiente",
+ "移除": "Quitar",
+ "编辑": "Editar",
+ "完成": "Listo",
+ "Worth": "Valor",
+ "Profit": "Ganancia",
+ "Cost": "Costo",
+ "Current": "Actual",
+ "Account": "Cuenta",
+ "账户变动记录": "Historial de Movimientos",
+ "持仓收益": "Rendimiento de Posición",
+ "订单": "Orden",
+ "最低认购金额": "Mínimo de Suscripción",
+ "交易成功率": "Tasa de Éxito",
+ "预期收益": "Rendimiento Esperado",
+ "交易周期": "Ciclo de Operación",
+ "AI交易订单": "Órdenes de Trading AI",
+ "申购金额": "Monto Suscrito",
+ "实际收益": "Rendimiento Real",
+ "状态": "Estado",
+ "提交时间": "Hora de Envío",
+ "申购中": "Suscribiendo",
+ "交易中": "Operando",
+ "成功": "Exitoso",
+ "失败": "Fallido",
+ "输入编码搜索": "Buscar por código",
+ "大宗交易订单": "Órdenes por Bloque",
+ "待成交": "Pendiente de Ejecución",
+ "已取消": "Cancelada",
+ "总金额": "Monto Total",
+ "待认缴": "Pendiente de Pago",
+ "待转股": "Pendiente de Conversión",
+ "已转股": "Convertido",
+ "未中标": "No Adjudicado",
+ "发行时间": "Fecha de Emisión",
+ "可申购数量": "Cantidad Suscribible",
+ "申购": "Suscripción",
+ "市场价": "Precio de Mercado",
+ "最小购买数量": "Cantidad Mínima de Compra",
+ "请输入": "Ingrese",
+ "低于最小申购金额": "Por debajo del mínimo de suscripción",
+ "投资周期": "Período de Inversión",
+ "投资金额": "Monto de Inversión",
+ "基金订单": "Órdenes de Fondos",
+ "进行中": "En Proceso",
+ "已赎回": "Rescatado",
+ "赎回时间": "Hora de Rescate",
+ "总赎回金额": "Monto Total de Rescate",
+ "购买密码": "Clave de Compra",
+ "最小购买": "Compra Mínima",
+ "操作确认": "Confirmación de Operación",
+ "相关股票": "Acciones Relacionadas",
+ "我的贷款": "Mis Préstamos",
+ "待还款金额": "Monto Pendiente",
+ "信用分": "Puntuación de Crédito",
+ "剩余贷款额度": "Límite de Préstamo Restante",
+ "贷款申请": "Solicitud de Préstamo",
+ "还款": "Pagar",
+ "确认还款吗": "¿Confirmar pago?",
+ "日内": "Intradía",
+ "建仓成本": "Costo de Apertura",
+ "已申购": "Suscrito"
+}
\ No newline at end of file
diff --git a/src/locales/index.js b/src/locales/index.js
index d7a2169..b2f776b 100644
--- a/src/locales/index.js
+++ b/src/locales/index.js
@@ -8,6 +8,7 @@
import hy from "@/locales/kor.json";
import de from "@/locales/de.json";
import fra from "@/locales/fra.json";
+import es from "@/locales/es.json";
Vue.use(VueI18n);
@@ -38,7 +39,10 @@
},
ko: {
...hy
- }
+ },
+ es: {
+ ...es
+ },
};
// en-us zh-cn
// let langLocale = getCookie(LOCALE_KEY) || 'en';
diff --git a/src/page/home/homeIndex.vue b/src/page/home/homeIndex.vue
index 5d82c36..b793a2f 100644
--- a/src/page/home/homeIndex.vue
+++ b/src/page/home/homeIndex.vue
@@ -24,25 +24,25 @@
<div class="swiper">
<div class="swiper-wrapper flex-between">
<div class="swiper-slide">
- <div class="nav_item flex-center" @click="toPage('/aiTrading')">
+ <div class="nav_item flex-start" @click="toPage('/aiTrading')">
<img src="../../assets/img/home_1.png" alt="" />
<span>AI {{ $t("量化交易") }}</span>
</div>
</div>
<div class="swiper-slide">
- <div class="nav_item flex-center" @click="toPage('/blockTrading')">
+ <div class="nav_item flex-start" @click="toPage('/blockTrading')">
<img src="../../assets/img/home_2.png" alt="" />
<span>{{ $t("hj621") }}</span>
</div>
</div>
<div class="swiper-slide">
- <div class="nav_item flex-center" @click="toPage('/ipo')">
+ <div class="nav_item flex-start" @click="toPage('/ipo')">
<img src="../../assets/img/home_3.png" alt="" />
<span>IPO</span>
</div>
</div>
<div class="swiper-slide">
- <div class="nav_item flex-center" @click="toPage('/fund')">
+ <div class="nav_item flex-start" @click="toPage('/fund')">
<img src="../../assets/img/home_4.png" alt="" />
<span>{{ $t("理财基金") }}</span>
</div>
@@ -120,11 +120,12 @@
text: "English",
lang: "en"
},
- {
- text: "简体中文",
- lang: "zh-CN"
- },
- { text: "हिंदी", lang: "hi" }
+ // {
+ // text: "简体中文",
+ // lang: "zh-CN"
+ // },
+ // { text: "हिंदी", lang: "hi" },
+ { text: "español", lang: "es" }
// {
// text: "Deutsch",
// lang: "de",
@@ -264,8 +265,7 @@
.swiper-slide {
width: 2.1875em;
- height: 2.1em;
- // padding: 0 0.25em 0 0.25em;
+ height: 2.5em;
.nav_item {
background-color: #fff;
@@ -273,6 +273,7 @@
width: 100%;
height: 100%;
flex-direction: column;
+ padding-top: .25em;
img {
width: 0.75em;
@@ -282,6 +283,7 @@
span {
font-size: 0.25em;
font-weight: 500;
+ text-align: center;
}
}
}
diff --git a/src/page/kline/components/kLine.vue b/src/page/kline/components/kLine.vue
index e2347d8..93b5b8b 100644
--- a/src/page/kline/components/kLine.vue
+++ b/src/page/kline/components/kLine.vue
@@ -6,60 +6,27 @@
<div class="periodWrap kline_periodWrap" ref="kline_periodWrap">
<!-- DWM 分 -->
<div class="btnGroup" style="position: relative">
- <div
- class="btn2"
- v-for="(item, index) in KLinePeriodMenu"
- :class="{ active: KLinePeriodIndex == index }"
- :key="item.ID"
- @click="OnClickKLinePeriodMenu(index, item, 'kline')"
- >
+ <div class="btn2" v-for="(item, index) in KLinePeriodMenu" :class="{ active: KLinePeriodIndex == index }"
+ :key="item.ID" @click="OnClickKLinePeriodMenu(index, item, 'kline')">
<span>{{ item.Name }}</span>
</div>
- <div
- style="position: absolute; right: 0; top: 25px; z-index: 99"
- v-if="isShow == true"
- >
- <div
- class="btnGroup"
- v-show="IsShowRightMenu"
- style="display: flex; flex-direction: column"
- >
- <div
- class="btn"
- :class="{ active: KLineRightIndex == index }"
- v-for="(item, index) in KLineRightMenu"
- :key="item.ID"
- style="padding: 10px"
- @click="OnClickKLineRightMenu(index, item)"
- >
+ <div style="position: absolute; right: 0; top: 25px; z-index: 99" v-if="isShow == true">
+ <div class="btnGroup" v-show="IsShowRightMenu" style="display: flex; flex-direction: column">
+ <div class="btn" :class="{ active: KLineRightIndex == index }" v-for="(item, index) in KLineRightMenu"
+ :key="item.ID" style="padding: 10px" @click="OnClickKLineRightMenu(index, item)">
{{ item.Name }}
</div>
- <div
- class="btn"
- v-for="item in KLineIndexMenu"
- :key="item.ID"
- style="padding: 10px"
- @click="ChangeKLineIndex(item)"
- >
+ <div class="btn" v-for="item in KLineIndexMenu" :key="item.ID" style="padding: 10px"
+ @click="ChangeKLineIndex(item)">
{{ item.Name }}
</div>
</div>
</div>
</div>
</div>
- <div
- class="hqchart"
- id="hqchart_minute"
- ref="kline"
- v-show="chartType == 'minute'"
- ></div>
- <div
- class="hqchart"
- id="hqchart_kline"
- ref="kline2"
- v-show="chartType == 'kline'"
- ></div>
+ <div class="hqchart" id="hqchart_minute" ref="kline" v-show="chartType == 'minute'"></div>
+ <div class="hqchart" id="hqchart_kline" ref="kline2" v-show="chartType == 'kline'"></div>
</div>
</div>
</div>
@@ -76,12 +43,12 @@
import EastMoney from "../../../eastmoney/HQData.js";
import i18n from "@/locales/index.js";
-HQChart.Chart.MARKET_SUFFIX_NAME.GetMarketStatus = function(symbol) {
+HQChart.Chart.MARKET_SUFFIX_NAME.GetMarketStatus = function (symbol) {
return 2;
}; // 一直交易
-function DefaultData() {}
+function DefaultData() { }
-DefaultData.GetMinuteOption = function() {
+DefaultData.GetMinuteOption = function () {
var option = {
Type: "分钟走势图", // 创建图形类型
// Type:'分钟走势图横屏',
@@ -91,7 +58,7 @@
// { Index:"KDJ", Modify: false, Change: true, Close: true},
// { Index: "KDJ", Modify: false, Change: false, Close: false }
],
-
+ SplashTitle: 'loading...',
Symbol: "AAPL.usa",
IsAutoUpdate: true, // 是自动更新数据
AutoUpdateFrequency: 20000,
@@ -146,7 +113,7 @@
return option;
};
-DefaultData.GetMinuteIndexMenu = function() {
+DefaultData.GetMinuteIndexMenu = function () {
var data = [
{
Name: "MACD",
@@ -173,7 +140,7 @@
return data;
};
-DefaultData.GetKLineIndexMenu = function() {
+DefaultData.GetKLineIndexMenu = function () {
var data = [
{
Name: "MA",
@@ -210,7 +177,7 @@
return data;
};
-DefaultData.GetTestSymbolMenu = function() {
+DefaultData.GetTestSymbolMenu = function () {
// 品种代码规则 ${东方财富品种代码}_${东方财富市场}.${HQChart内部市场后缀}
var data = [
{
@@ -931,7 +898,7 @@
};
// k形图
-DefaultData.GetKLineOption = function() {
+DefaultData.GetKLineOption = function () {
var option = {
Type: "历史K线图", // 创建图形类型
Language: "EN", // 英文 'EN' 简体中文:'CN' 繁体中文:"TC"
@@ -952,6 +919,7 @@
}
// { Index: 'MACD', Modify: true, Change: true, Close: false }
],
+ SplashTitle: 'loading...',
Symbol: "600015.sh",
IsAutoUpdate: true, // 是自动更新数据
AutoUpdateFrequency: 15000,
@@ -1027,7 +995,7 @@
return option;
};
-DefaultData.GetMinuteDayMenu = function() {
+DefaultData.GetMinuteDayMenu = function () {
var data = [
{
Name: "1D",
@@ -1054,7 +1022,7 @@
return data;
};
-DefaultData.GetKLinePeriodMenu = function() {
+DefaultData.GetKLinePeriodMenu = function () {
var data = [
// { Name: i18n.t('hj86'), ID: 3 },分时额外处理
// { Name: i18n.t("hj86"), ID: 4 },
@@ -1087,7 +1055,7 @@
return data;
};
-DefaultData.GetKLineRightMenu = function() {
+DefaultData.GetKLineRightMenu = function () {
var data = [
{
Name: i18n.t("hj93"),
@@ -1208,7 +1176,7 @@
var self = this;
// 侦听元素的调整大小事件,并使用元素作为调整大小事件的参数来调用侦听器函数。传递给函数的选项将
// 覆盖实例选项
- erd.listenTo(this.$refs["rightContent"], function(element) {
+ erd.listenTo(this.$refs["rightContent"], function (element) {
var width = element.offsetWidth;
var height = element.offsetHeight;
self.tableHeight = height - 10; // 将监听到的宽高进行赋值
@@ -1466,7 +1434,7 @@
justify-content: center;
// flex-direction: column;
- > .btn {
+ >.btn {
cursor: pointer;
width: 100%;
text-align: center;
diff --git a/src/page/kline/index.vue b/src/page/kline/index.vue
index 407ea4d..546c178 100644
--- a/src/page/kline/index.vue
+++ b/src/page/kline/index.vue
@@ -8,12 +8,15 @@
<img src="../../assets/img/zuojiantou.png" alt />
</div>
<div class="right_title">
- <div class="t_t" style="white-space: nowrap">
+ <div class="t_t line-one" style="white-space: nowrap">
+ <span>{{ singDetails.name }}</span>
+ </div>
+ <!-- <div class="t_t" style="white-space: nowrap">
<span>{{ singDetails.name }}({{ singDetails.gid }})</span>
</div>
<div class="b_t">
<span>{{ singDetails.spell }}</span>
- </div>
+ </div> -->
</div>
</div>
<!-- 隐藏右侧金额显示 -->
@@ -74,16 +77,18 @@
</div>
</div> -->
</div>
+ <div class="flex-start" style="font-size: .4rem;">
+ <span class="i_icon">{{ bayType }}</span>
+ <span class="i_hint" style="color:#777">{{ singDetails.spell }}</span>
+ </div>
+ <div class="detail_title_a">{{ singDetails.name }}({{ singDetails.gid }})</div>
<div class="real_time_detail">
<div class="left_now_price">
<div class="top_now">
<!-- <span :class="singDetails.nowPrice - singDetails.preclose_px > 0 ? 'price green' : 'price red'">{{
singDetails.nowPrice
}}</span> -->
- <span
- :class="singDetails.hcrate > 0 ? 'price green' : 'price red'"
- >{{ singDetails.nowPrice }}</span
- >
+ <span :class="singDetails.hcrate > 0 ? 'price green' : 'price red'">{{ singDetails.nowPrice }}</span>
</div>
<div class="bottom_now">
<div>
@@ -94,19 +99,14 @@
<span v-else>
{{
(singDetails.nowPrice - singDetails.preclose_px).toFixed(2)
- }}</span
- >
+ }}</span>
</div>
- <div
- class="tew"
- :class="singDetails.hcrate > 0 ? 'number green' : 'number red'"
- >
+ <div class="tew" :class="singDetails.hcrate > 0 ? 'number green' : 'number red'">
<span v-if="singDetails.nowPrice === 0">-</span>
<!-- <span v-else>({{ singDetails.nowPrice - singDetails.preclose_px > 0 ? '+' : '' }}
{{ singDetails.hcrate ? singDetails.hcrate : '0' }}%)</span> -->
<span v-else>
- ({{ singDetails.hcrate ? singDetails.hcrate : "0" }}%)</span
- >
+ ({{ singDetails.hcrate ? singDetails.hcrate : "0" }}%)</span>
</div>
</div>
</div>
@@ -117,24 +117,16 @@
<!-- <span :class="singDetails.preclose_px < 0 ? 'number green' : 'number red'">{{
singDetails.open_px
}}</span> -->
- <span
- :class="
- singDetails.hcrate > 0 ? 'number green' : 'number red'
- "
- >{{ singDetails.open_px }}</span
- >
+ <span :class="singDetails.hcrate > 0 ? 'number green' : 'number red'
+ ">{{ singDetails.open_px }}</span>
</div>
<div class="rights topes">
<span class="titles">{{ $t("hj73") }}</span>
<!-- <span :class="singDetails.preclose_px < 0 ? 'number green' : 'number red'">{{
singDetails.today_max
}}</span> -->
- <span
- :class="
- singDetails.hcrate > 0 ? 'number green' : 'number red'
- "
- >{{ singDetails.today_max }}</span
- >
+ <span :class="singDetails.hcrate > 0 ? 'number green' : 'number red'
+ ">{{ singDetails.today_max }}</span>
</div>
</div>
<div class="bottoms">
@@ -143,24 +135,16 @@
<!-- <span :class="singDetails.preclose_px < 0 ? 'number green' : 'number red'">{{
singDetails.preclose_px
}}</span> -->
- <span
- :class="
- singDetails.hcrate > 0 ? 'number green' : 'number red'
- "
- >{{ singDetails.preclose_px }}</span
- >
+ <span :class="singDetails.hcrate > 0 ? 'number green' : 'number red'
+ ">{{ singDetails.preclose_px }}</span>
</div>
<div class="rights bots">
<span class="titles">{{ $t("hj75") }}</span>
<!-- <span :class="singDetails.preclose_px < 0 ? 'number green' : 'number red'">{{
singDetails.today_min
}}</span> -->
- <span
- :class="
- singDetails.hcrate > 0 ? 'number green' : 'number red'
- "
- >{{ singDetails.today_min }}</span
- >
+ <span :class="singDetails.hcrate > 0 ? 'number green' : 'number red'
+ ">{{ singDetails.today_min }}</span>
</div>
</div>
</div>
@@ -169,16 +153,12 @@
<div class="k_line_detail">
<Kline :key="key" :type="singDetails.type" />
</div>
- <div
- class="priect_top_bottom"
- style="display: none"
- v-if="
- kLineDetails.if_us != 1 &&
- kLineDetails.type != 'hk' &&
- kLineDetails.type != 'hk' &&
- kLineDetails.if_zhishu == 0
- "
- >
+ <div class="priect_top_bottom" style="display: none" v-if="
+ kLineDetails.if_us != 1 &&
+ kLineDetails.type != 'hk' &&
+ kLineDetails.type != 'hk' &&
+ kLineDetails.if_zhishu == 0
+ ">
<div class="t_title">
<span>{{ $t("hj76") }}</span>
</div>
@@ -284,11 +264,7 @@
<div class="t_ma">
<span>{{ $t("hj80") }}</span>
</div>
- <div
- class="ets"
- v-for="(item, i) in timedata.data.details"
- :key="i"
- >
+ <div class="ets" v-for="(item, i) in timedata.data.details" :key="i">
<div class="left_sell1">
<span>{{ item.split(",")[0] }}</span>
</div>
@@ -301,11 +277,7 @@
<div class="t_ma">
<span>{{ $t("hj81") }}</span>
</div>
- <div
- class="ets"
- v-for="(item, i) in timedata.data.details"
- :key="i"
- >
+ <div class="ets" v-for="(item, i) in timedata.data.details" :key="i">
<div class="left_sell1">
<span>{{ item.split(",")[1] }}</span>
</div>
@@ -318,11 +290,7 @@
<div class="t_ma">
<span>{{ $t("hj82") }}</span>
</div>
- <div
- class="ets"
- v-for="(item, i) in timedata.data.details"
- :key="i"
- >
+ <div class="ets" v-for="(item, i) in timedata.data.details" :key="i">
<div class="left_sell1">
<span>{{ item.split(",")[2] }}</span>
</div>
@@ -416,16 +384,12 @@
<div class="btns">
<div class="lefts">
<div class="left_ca" @click="option()">
- <img
- src="../../assets/img/meishoucang.png"
- alt
- v-if="isOptionOpt === false"
- />
+ <img src="../../assets/img/meishoucang.png" alt v-if="isOptionOpt === false" />
<img src="../../assets/img/shoucangle.png" alt v-else />
</div>
- <div class="right_xx" @click="handleJj()">
+ <!-- <div class="right_xx" @click="handleJj()">
<a href="#"><img src="../../assets/img/xiaoxi.png" alt/></a>
- </div>
+ </div> -->
</div>
<div class="rights">
<div class="buy_btn">
@@ -840,7 +804,7 @@
height: calc(100% - 1.7rem);
overflow: auto;
- > .content {
+ >.content {
width: 100%;
height: 100%;
position: relative;
@@ -861,8 +825,24 @@
padding: 0 0.3rem;
background: #fff;
+ .detail_title_a {
+ font-size: .45rem;
+ font-weight: 500;
+ margin-top: .2rem;
+ line-height: .45rem;
+ }
+
+ .i_icon {
+ border-radius: 0 26em 26em 0;
+ background: #07c160;
+ color: #fff;
+ padding: 0.1em 0.5em 0.1em 0.4em;
+ margin-right: 0.3em;
+ font-size: 0.8em;
+ }
+
.top_back {
- width: 50%;
+ width: 90%;
height: 1.2rem;
display: flex;
align-items: center;
@@ -872,22 +852,26 @@
height: 80%;
display: flex;
align-items: center;
+ margin-right: 10vw;
- > img {
- margin-top: 0.2rem;
+ >img {
+ // margin-top: 0.2rem;
width: 0.6rem;
height: 0.6rem;
}
}
.right_title {
- width: 3rem;
- height: 80%;
+ width: 70%;
+ // height: 80%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
.t_t {
width: 100%;
- height: 70%;
- display: flex;
+ height: 100%;
+ line-height: 1.2rem;
align-items: center;
font-size: 0.4615rem;
@@ -910,7 +894,7 @@
.k_line_detail {
width: 100%;
- height: calc(100vh - 300px);
+ height: 100vw;
background: #fff;
border-radius: 0 0 0.3rem 0.3rem;
}
@@ -935,6 +919,7 @@
display: flex;
align-items: center;
font-weight: bold;
+
span {
font-weight: 500;
}
@@ -957,19 +942,20 @@
max-width: 70%;
height: 100%;
- > div {
+ >div {
width: 100%;
padding: 0.15rem 0;
display: flex;
align-items: center;
- > div {
+ >div {
// width: 50%;
height: 100%;
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 0.1rem;
+
.titles {
padding-right: 0.1rem;
}
@@ -1029,7 +1015,7 @@
justify-content: space-between;
margin-top: 0.6rem;
- > div {
+ >div {
width: 49%;
height: 100%;
}
@@ -1050,7 +1036,7 @@
display: flex;
margin-top: 0.08rem;
- > div {
+ >div {
width: 50%;
height: 100%;
display: flex;
@@ -1133,8 +1119,9 @@
height: 70%;
display: flex;
align-items: center;
+ padding-left: .3rem;
- > div {
+ >div {
width: 50%;
height: 100%;
display: flex;
@@ -1149,21 +1136,23 @@
}
.rights {
- width: 70%;
+ width: 80%;
height: 70%;
display: flex;
align-items: center;
- justify-content: space-around;
+ justify-content: center;
+ padding-right: .2rem;
- > div {
+ >div {
border-radius: 0.15rem;
}
.buy_btn {
- width: 45%;
- height: 100%;
+ width: 50%;
+ height: 80%;
background: rgb(225, 59, 69);
color: #fff;
+ border-radius: 3rem 0 0 3rem !important;
.top_buy {
width: 100%;
@@ -1186,10 +1175,11 @@
}
.sell_btn {
- width: 45%;
- height: 100%;
- background: rgb(68, 155, 84);
+ width: 50%;
+ height: 80%;
+ background: #c4d600;
color: #fff;
+ border-radius: 0 3rem 3rem 0 !important;
.top_sell {
width: 100%;
diff --git a/src/page/kline/kIndex.vue b/src/page/kline/kIndex.vue
index b71a4af..ff1c6cd 100644
--- a/src/page/kline/kIndex.vue
+++ b/src/page/kline/kIndex.vue
@@ -747,7 +747,7 @@
.k_line_detail {
width: 100%;
- height: calc(100vh - 300px);
+ height: 100vw;
background: #fff;
border-radius: 0 0 0.3rem 0.3rem;
}
diff --git a/src/page/list/tradingList/data.list.vue b/src/page/list/tradingList/data.list.vue
index 193caff..97b5b9f 100644
--- a/src/page/list/tradingList/data.list.vue
+++ b/src/page/list/tradingList/data.list.vue
@@ -334,7 +334,7 @@
initWebSocket() {
console.log("initWebSocket");
this.Trade = new WhrWebSocket({
- path: `wss://ws.durocaspitall.com/websocket-server `,
+ path: `wss://ws.kuspitai.com/websocket-server `,
onmessage: this.getTradeMessage,
});
diff --git a/src/page/markets/markets.vue b/src/page/markets/markets.vue
index 38ed571..f334895 100644
--- a/src/page/markets/markets.vue
+++ b/src/page/markets/markets.vue
@@ -1,13 +1,7 @@
<template>
<div class="markets">
<tab-head :rightShow="false">
- <van-popover
- v-model="switchShow"
- trigger="click"
- :actions="actions"
- @select="onSelect"
- placement="bottom-end"
- >
+ <van-popover v-model="switchShow" trigger="click" :actions="actions" @select="onSelect" placement="bottom-end">
<template #reference>
<div class="switch flex-center">
<van-icon name="exchange" size=".45em" />
@@ -18,13 +12,8 @@
</tab-head>
<div class="tabs flex-between">
- <div
- class="tab_item flex-center"
- :class="{ active: item.pid == tab }"
- v-for="item in tabList"
- :key="item.pid"
- @click="tab = item.pid"
- >
+ <div class="tab_item flex-center" :class="{ active: item.pid == tab }" v-for="item in tabList" :key="item.pid"
+ @click="tab = item.pid">
<span>{{ item.abbreviation }}</span>
</div>
</div>
@@ -108,7 +97,8 @@
await this.getTabData();
this.tab = this.tabList[0].pid;
},
- mounted() {},
+ mounted() {
+ },
methods: {
// 选择
async onSelect(e) {
@@ -146,7 +136,7 @@
// tab切换
tabChange() {
this.getIndicesAndKData();
- }
+ },
}
};
</script>
--
Gitblit v1.9.3