23 files modified
3 files added
| New file |
| | |
| | | [ |
| | | "请先实名认证了再下单", |
| | | "请选择购买手数", |
| | | "请选择买卖方向", |
| | | "款", |
| | | "全", |
| | | "戶手冊", |
| | | "臺", |
| | | "新日曆", |
| | | "購記錄", |
| | | "訊", |
| | | "添加自选成功", |
| | | "删除自选股成功", |
| | | "大購買", |
| | | "股", |
| | | "筆價格", |
| | | "字货币", |
| | | "錄賬號", |
| | | "即登录", |
| | | "住帳戶密碼", |
| | | "費註冊", |
| | | "已閱讀並同意", |
| | | "即注册", |
| | | "上登錄", |
| | | "戶總資產", |
| | | "股總資產", |
| | | "股資產", |
| | | "股可用", |
| | | "股冻结", |
| | | "码修改成功", |
| | | "不在交易时段内", |
| | | "資產", |
| | | "用資產", |
| | | "浮動盈虧", |
| | | "計盈虧", |
| | | "結資產", |
| | | "手續費", |
| | | "虧", |
| | | "倉價", |
| | | "單金額", |
| | | "倉手續費", |
| | | "損價", |
| | | "盈價", |
| | | "倉時間", |
| | | "單編號", |
| | | "仓", |
| | | "買跌", |
| | | "型", |
| | | "價", |
| | | "倉", |
| | | "部平仓", |
| | | "動盈虧", |
| | | "股总资产", |
| | | "来西亚", |
| | | "转成功", |
| | | "能选择一样的", |
| | | "请上传文件", |
| | | "已复制到剪贴板", |
| | | "行卡充值", |
| | | "上传文件", |
| | | "请输入整数" |
| | | ] |
| | |
| | | }, |
| | | |
| | | // Various Dev Server settings |
| | | host: "192.168.0.105", // can be overwritten by process.env.HOST |
| | | host: "127.0.0.1", // can be overwritten by process.env.HOST |
| | | port: 80, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined |
| | | autoOpenBrowser: true, |
| | | errorOverlay: true, |
| New file |
| | |
| | | const fs = require('fs'); |
| | | const path = require('path'); |
| | | |
| | | // 函数用于遍历目录 |
| | | function traverseDirectory(directoryPath, resultArray) { |
| | | const files = fs.readdirSync(directoryPath); // 同步读取目录内容 |
| | | files.forEach(file => { |
| | | const filePath = path.join(directoryPath, file); |
| | | const stats = fs.statSync(filePath); // 获取文件信息 |
| | | if (stats.isDirectory()) { |
| | | traverseDirectory(filePath, resultArray); // 如果是目录,递归遍历子目录 |
| | | } else if (stats.isFile() && path.extname(filePath) === '.vue') { |
| | | const fileContent = fs.readFileSync(filePath, 'utf8'); // 读取文件内容 |
| | | // 提取 template 和 script 标签中的中文内容 |
| | | const matches = fileContent.match(/<(template|script)>([\s\S]*?)<\/\1>/g); |
| | | if (matches) { |
| | | matches.forEach(match => { |
| | | const content = match.replace(/<!--[\s\S]*?-->/g, ''); // 去除注释 |
| | | const chineseMatches = content.match(/(?<!\$t\(")([\u4e00-\u9fa5]+)(?="\))/g); // 匹配中文字符,排除$t("")引号内的中文 |
| | | if (chineseMatches) { |
| | | chineseMatches.forEach(chinese => { |
| | | resultArray.push(chinese.trim()); // 将中文字符添加到结果数组中 |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | // 设置要遍历的目录路径 |
| | | const directoryPath = './src'; // 修改为你的目录路径 |
| | | |
| | | // 创建一个空数组来保存结果 |
| | | const resultArray = []; |
| | | |
| | | // 开始遍历目录 |
| | | traverseDirectory(directoryPath, resultArray); |
| | | |
| | | // 去重 |
| | | const uniqueResults = [...new Set(resultArray)]; |
| | | |
| | | // 将结果保存到本地 |
| | | fs.writeFileSync('chinese_data.json', JSON.stringify(uniqueResults, null, 2), 'utf8'); |
| | |
| | | <template> |
| | | <div id="app" :class="`${$state.theme === 'red' ? 'red-theme' : 'black-theme'}`"> |
| | | <div |
| | | id="app" |
| | | :class="`${$state.theme === 'red' ? 'red-theme' : 'black-theme'}`" |
| | | > |
| | | <div :class="`header-box`" v-if="hasHeader && title !== $t('hj248')"> |
| | | <mt-header :title="title"> |
| | | <mt-button icon="back" slot="left" @click="$router.go(-1)"></mt-button> |
| | | |
| | | <div v-if="!is_Show"> |
| | | <template v-if="iconRight == 'search'"> |
| | | <img slot="right" class="search-right" src="./assets/ico/fangdajing.png" alt /> |
| | | </template> |
| | | <template v-else> |
| | | <mt-button icon="more" slot="right"></mt-button> |
| | | </template> |
| | | <img |
| | | slot="right" |
| | | class="search-right" |
| | | src="./assets/ico/fangdajing.png" |
| | | alt |
| | | /> |
| | | </template> |
| | | <template v-else> |
| | | <mt-button icon="more" slot="right"></mt-button> |
| | | </template> |
| | | </div> |
| | | |
| | | </mt-header> |
| | | </div> |
| | | <div class="body-box"> |
| | | <transition |
| | | :name="transitionName" |
| | | > |
| | | <transition :name="transitionName"> |
| | | <router-view></router-view> |
| | | </transition> |
| | | </div> |
| | | <foot v-if="$route.meta.show !== true" @close="footColse"></foot> |
| | | <elalert></elalert> |
| | | <loginPopup @close="dialogClose"/> |
| | | <loginPopup @close="dialogClose" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import elalert from '@/components/elalert.vue' |
| | | import foot from '@/components/foot.vue' |
| | | import loginPopup from '@/components/loginDialog.vue' |
| | | import elalert from "@/components/elalert.vue"; |
| | | import foot from "@/components/foot.vue"; |
| | | import loginPopup from "@/components/loginDialog.vue"; |
| | | // 引入css |
| | | import '@/assets/iconfont/iconfont.css' |
| | | import '@/assets/iconfont/iconfont.ttf' |
| | | import "@/assets/iconfont/iconfont.css"; |
| | | import "@/assets/iconfont/iconfont.ttf"; |
| | | import { getUserInfodata } from "./axios/api"; |
| | | |
| | | export default { |
| | | components: { |
| | | foot, |
| | | elalert, |
| | | loginPopup |
| | | loginPopup, |
| | | }, |
| | | name: 'App', |
| | | created () { |
| | | this.$state.theme = 'red' |
| | | console.log(this.$state.theme, 'asdasdasd') |
| | | let title = this.$route.meta.title || this.$t('hj224') |
| | | this.title = title |
| | | name: "App", |
| | | created() { |
| | | this.getUserInfo(); |
| | | this.$state.theme = "red"; |
| | | console.log(this.$state.theme, "asdasdasd"); |
| | | let title = this.$route.meta.title || this.$t("hj224"); |
| | | this.title = title; |
| | | if (this.$route.meta.is_Show) { |
| | | this.is_Show = this.$route.meta.is_Show |
| | | this.is_Show = this.$route.meta.is_Show; |
| | | } else { |
| | | this.is_Show = true |
| | | this.is_Show = true; |
| | | } |
| | | if (this.$route.meta.hasHeader) { |
| | | this.hasHeader = true |
| | | this.hasHeader = true; |
| | | } else { |
| | | this.hasHeader = false |
| | | this.hasHeader = false; |
| | | } |
| | | if (this.$route.meta.iconRight) { |
| | | this.iconRight = this.$route.meta.iconRight |
| | | this.iconRight = this.$route.meta.iconRight; |
| | | } else { |
| | | this.iconRight = 'default' |
| | | this.iconRight = "default"; |
| | | } |
| | | // this.$store.state.className = window.localStorage.getItem('styleName')?window.localStorage.getItem('styleName'):'red' |
| | | }, |
| | | watch: { |
| | | $route (to, from) { |
| | | let title = to.meta.title || this.$t('hj224') |
| | | this.title = title |
| | | $route(to, from) { |
| | | let title = to.meta.title || this.$t("hj224"); |
| | | this.title = title; |
| | | if (to.meta.iconRight) { |
| | | this.iconRight = to.meta.iconRight |
| | | this.iconRight = to.meta.iconRight; |
| | | } else { |
| | | this.iconRight = 'default' |
| | | this.iconRight = "default"; |
| | | } |
| | | if (to.meta.hasHeader) { |
| | | this.hasHeader = true |
| | | this.hasHeader = true; |
| | | } else { |
| | | this.hasHeader = false |
| | | this.hasHeader = false; |
| | | } |
| | | |
| | | if (to.meta.index > from.meta.index) { |
| | | console.log('slide-left') |
| | | console.log("slide-left"); |
| | | // 设置动画名称 |
| | | this.transitionName = 'slide-left' |
| | | this.transitionName = "slide-left"; |
| | | } else { |
| | | console.log('slide-right') |
| | | this.transitionName = 'slide-right' |
| | | console.log("slide-right"); |
| | | this.transitionName = "slide-right"; |
| | | } |
| | | } |
| | | }, |
| | | }, |
| | | data () { |
| | | data() { |
| | | return { |
| | | title: '首页', |
| | | title: "首页", |
| | | hasHeader: false, |
| | | iconRight: 'default', |
| | | transitionName: '', |
| | | iconRight: "default", |
| | | transitionName: "", |
| | | is_Show: true, |
| | | is_foot: true |
| | | } |
| | | is_foot: true, |
| | | }; |
| | | }, |
| | | methods: { |
| | | footColse () { |
| | | this.$store.commit('dialogVisible', true) |
| | | async getUserInfo() { |
| | | // 获取用户信息 |
| | | // let showcookie = this.getCookie('USER_TOKEN'); |
| | | let data = await getUserInfodata(); |
| | | if (data.status === 0) { |
| | | // this.getProductSetting() |
| | | this.$store.state.userInfo = data.data; |
| | | } else { |
| | | this.$store.commit("elAlertShow", { |
| | | elAlertShow: true, |
| | | elAlertText: data.msg, |
| | | }); |
| | | } |
| | | this.$store.state.user = this.user; |
| | | }, |
| | | dialogClose () { |
| | | this.$store.commit('dialogVisible', false) |
| | | } |
| | | } |
| | | } |
| | | footColse() { |
| | | this.$store.commit("dialogVisible", true); |
| | | }, |
| | | dialogClose() { |
| | | this.$store.commit("dialogVisible", false); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | |
| | | /deep/ .van-list__finished-text{ |
| | | /deep/ .van-list__finished-text { |
| | | line-height: 1.925926rem !important; |
| | | } |
| | | /deep/ .van-list__error-text{ |
| | | /deep/ .van-list__error-text { |
| | | line-height: 1.925926rem !important; |
| | | } |
| | | #app { |
| | |
| | | overflow-y: auto; |
| | | } |
| | | &.red-theme { |
| | | background: rgb(241,242,246); |
| | | color:#000; |
| | | background: rgb(241, 242, 246); |
| | | color: #000; |
| | | /deep/.mint-header { |
| | | background: none; |
| | | .mint-header-title { |
| | |
| | | color: #000; |
| | | } |
| | | /deep/.navs_content { |
| | | background: #fff!important; |
| | | background: #fff !important; |
| | | } |
| | | /deep/.fo_content { |
| | | background: #fff; |
| | | background: #fff; |
| | | } |
| | | /deep/.news-tab{ |
| | | /deep/.news-tab { |
| | | background: #fff; |
| | | } |
| | | /deep/.mint-tab-item-label { |
| | | color: #000; |
| | | font-size: .26rem; |
| | | |
| | | font-size: 0.26rem; |
| | | } |
| | | /deep/.top_title{ |
| | | /deep/.top_title { |
| | | color: #000; |
| | | } |
| | | /deep/.titContent{ |
| | | color:#000; |
| | | /deep/.titContent { |
| | | color: #000; |
| | | } |
| | | /deep/.mint-navbar { |
| | | background: #fff; |
| | |
| | | background: #fff; |
| | | border: none; |
| | | } |
| | | /deep/.footCss{ |
| | | /deep/.footCss { |
| | | background: #fff; |
| | | } |
| | | /deep/.newDetail-tits{ |
| | | /deep/.newDetail-tits { |
| | | color: #aaa; |
| | | } |
| | | /deep/.van-skeleton__row, .van-skeleton__title{ |
| | | background-color: #fff!important; |
| | | /deep/.van-skeleton__row, |
| | | .van-skeleton__title { |
| | | background-color: #fff !important; |
| | | } |
| | | } |
| | | &.black-theme { |
| | |
| | | background: rgb(33, 33, 43); |
| | | |
| | | /deep/.navs_content { |
| | | background: #272733; |
| | | background: #272733; |
| | | } |
| | | /deep/.fo_content { |
| | | background: #272733; |
| | | background: #272733; |
| | | } |
| | | /deep/.news-tab{ |
| | | /deep/.news-tab { |
| | | background: #272733; |
| | | } |
| | | /deep/.mint-navbar { |
| | |
| | | } |
| | | /deep/.mint-tab-item-label { |
| | | color: #fff; |
| | | font-size: .26rem; |
| | | |
| | | font-size: 0.26rem; |
| | | } |
| | | /deep/.titContent{ |
| | | color:#000; |
| | | /deep/.titContent { |
| | | color: #000; |
| | | } |
| | | /deep/.mint-tab-container {} |
| | | /deep/.mint-tab-container { |
| | | } |
| | | |
| | | /deep/.mint-tab-item { |
| | | background: #272733; |
| | | } |
| | | /deep/.van-swipe-item { |
| | | color: #000; |
| | | color: #000; |
| | | } |
| | | /deep/.footCss{ |
| | | /deep/.footCss { |
| | | background: rgb(33, 33, 43); |
| | | } |
| | | /deep/.newDetail-tits{ |
| | | /deep/.newDetail-tits { |
| | | color: #999; |
| | | } |
| | | } |
| | |
| | | .mint-search-list { |
| | | position: relative !important; |
| | | } |
| | | .topLeft{ |
| | | |
| | | .topLeft { |
| | | } |
| | | |
| | | /deep/.el-alert{ |
| | | width: 75%!important; |
| | | height: 1.1rem!important; |
| | | position: absolute!important; |
| | | top: 0!important; |
| | | bottom: 0!important; |
| | | left: 0!important; |
| | | right: 0!important; |
| | | margin: auto!important; |
| | | font-size: 0.36rem!important; |
| | | /deep/.el-alert { |
| | | width: 75% !important; |
| | | height: 1.1rem !important; |
| | | position: absolute !important; |
| | | top: 0 !important; |
| | | bottom: 0 !important; |
| | | left: 0 !important; |
| | | right: 0 !important; |
| | | margin: auto !important; |
| | | font-size: 0.36rem !important; |
| | | } |
| | | /deep/.el-alert__title{ |
| | | font-size: 0.36rem!important; |
| | | /deep/.el-alert__title { |
| | | font-size: 0.36rem !important; |
| | | } |
| | | /deep/.el-icon-close::before{ |
| | | display: none; |
| | | /deep/.el-icon-close::before { |
| | | display: none; |
| | | } |
| | | /deep/.icon-icon_A::before{ |
| | | font-size: 0.6rem!important; |
| | | /deep/.icon-icon_A::before { |
| | | font-size: 0.6rem !important; |
| | | } |
| | | </style> |
| | |
| | | export function selCzFn(options) { |
| | | return post("/user/pay/flyPay.do", options); |
| | | } |
| | | // 充值 |
| | | export function positionzx(options) { |
| | | return post("/user/option/list.do", options); |
| | | } |
| | | // 充值 |
| | | export function getMoenyLog(options) { |
| | | return post("/user/getMoenyLog.do", options); |
| | | } |
| | |
| | | 韩股總資產: "Total assets of Korean stocks", |
| | | "上傳憑證:": "Upload voucher:", |
| | | 从: "from", |
| | | 密码修改成功: "Password modification successful", |
| | | 劃轉记录: "Transfer Record", |
| | | 馬股账户: "Horse stock account", |
| | | 美股账户: "US stock account", |
| | | 到: "to" |
| | | }; |
| | |
| | | 韩股總資產: "한국 주식 총자산", |
| | | "上傳憑證:": "자격 증명 업로드:", |
| | | 从: "부터", |
| | | 到: "에" |
| | | 到: "에", |
| | | 密码修改成功: "암호 수정 성공", |
| | | 劃轉记录: "레코드 스왑", |
| | | 馬股账户: "마주 계좌", |
| | | 美股账户: "미국 주식 계좌" |
| | | }; |
| | |
| | | 韩股總資產: " कोरियाई शेयरों की कुल संपत्ति", |
| | | "上傳憑證:": " प्रमाणपत्र अपलोड करें", |
| | | 从: "से", |
| | | 到: "को" |
| | | 到: "को", |
| | | 密码修改成功: "पासवर्ड सफलतापूर्वक बदला गया", |
| | | 劃轉记录: "स्थानांतरण रिकॉर्ड", |
| | | 馬股账户: "मलेशियाई स्टॉक खाता", |
| | | 美股账户: "यूएस स्टॉक खाता" |
| | | }; |
| | |
| | | 韩股總資產: " 韓国株の総資産", |
| | | "上傳憑證:": " 証明書をアップロードします", |
| | | 从: "から", |
| | | 到: "に" |
| | | 到: "に", |
| | | 密码修改成功: "パスワードの変更に成功しました", |
| | | 劃轉记录: "かいてんきろく", |
| | | 馬股账户: "馬株口座", |
| | | 美股账户: "米株口座" |
| | | }; |
| | |
| | | 韩股總資產: " สินทรัพย์รวมของหุ้นเกาหลี", |
| | | "上傳憑證:": " อัพโหลดใบรับรอง", |
| | | 从: "จาก", |
| | | 到: "ถึง" |
| | | 到: "ถึง", |
| | | 密码修改成功: "แก้ไขรหัสผ่านสำเร็จ", |
| | | 劃轉记录: "บันทึกการเดินทาง", |
| | | 馬股账户: "บัญชีหุ้นม้า", |
| | | 美股账户: "บัญชี MeiShar" |
| | | }; |
| | |
| | | 韩股總資產: " 韩股總資產", |
| | | "上傳憑證:": " 上傳憑證:", |
| | | 从: "從", |
| | | 到: "到" |
| | | 到: "到", |
| | | "密码修改成功": "密碼修改成功", |
| | | "劃轉记录": "劃轉記錄", |
| | | "馬股账户": "馬股帳戶", |
| | | "美股账户": "美股帳戶" |
| | | }; |
| | |
| | | hj230: "对公转账", |
| | | hj231: "充值成功", |
| | | hj232: "充值失败", |
| | | hj233: "取消充值", |
| | | 审核中: "取消充值", |
| | | hj234: "订单号", |
| | | hj235: "loading...", |
| | | hj236: "已全部加载", |
| | |
| | | "上傳憑證:": "上傳憑證:", |
| | | 从: "从", |
| | | 到: "到", |
| | | |
| | | // |
| | | |
| | | 密码修改成功: "密码修改成功", |
| | | 劃轉记录: "劃轉记录", |
| | | 馬股账户: "馬股账户", |
| | | 美股账户: "美股账户" |
| | | }; |
| | |
| | | <ul class="menu" style="border-bottom: 0px"> |
| | | <!----><!----> |
| | | <li @click="$router.push('/recharge')"> |
| | | <a class="link" |
| | | ><div class="icon"> |
| | | <div class="link"> |
| | | <div class="icon"> |
| | | <img |
| | | src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAK2SURBVHgB7ZpPbtNAFMa/SYoUNuCwIpUA9wbpCSgrtr1BWLHmBoUtAqndsKWcANYIqXCCBi4QIyGCkJC9QkEQD++5aeU6k3r8Z8ZuOj9plPbVU8/XN/PmzZsCDofD4XA4HA6HwzS71EJqsmVtQm0EA0wAyJa2EJoI6CPRbrS0dHDF2EB5iswOE5SacVfOw07wulNlDdfKJJTeNdrrux3clxJD8oRPi9Tjn1GwiGIgEALjeYxPf4F3W/1yIaTKtlRL0JqG0p8DTzYERqcCdRh4S6/XGo/bhy8rPFN0nlufoCVw9C2Uw7zH1ilK+12Bt3metha0OAr3BI55YKiBbNCaRmfDC2YS2xTFI1U/ax6+3sEeahKbg794lxIrHk6mmUiOl7VxgYdPkNga9EWQ7WfFw5Q0POXPl+9/wxa8t6vsxgWHtHY7lFSw2BcfZrAFv5PjxpIdhiGJu7bFMjThk1Q1azeeSz88iHa+fI/RBJyX08dh2mbWw49/7ZHYERpC0CFkyQZ9ikVpEotFsKrC9PktpT03SiMZcLTpiX7aZsbDNYmtilCcvuoX3BKxq6hXcMvE8pTO2oxnWj8ieUwdc08xRdFZw/TE+LYnttM24/vwXOIzGkJSSShrMy6YXvARDcH1r6zNuOAeFdyEYi3ZgIt9WZtxwX06l8YSb2AbgUPVmdjKaYk8vA/bxHimMlfJpbWrmIOSNeSyUF37YFNxFmbW8eYh+HNBLlBEcCOBR4c7d/3TLwOadw9W1bOK8ggt/C+AGzc9uf/qtaTEY/JTo0zbyB3vosZ1hPqKeolnByvWbZpG1jAPrEelVA4uqAj/Di7L6ohlmr7FT7zNRT6uQen24UTmH+3tXdrudIWm+raDpFBPNSgSv0ODGtIf4N6561KJr/T9mFPV2cl1aWuDqMPhcDgcDjX/AeVdQUXCe3p2AAAAAElFTkSuQmCC" |
| | | alt="" |
| | | /> |
| | | </div> |
| | | <div class="name">{{ $t("hj256") }}</div></a |
| | | > |
| | | <div class="name">{{ $t("hj256") }}</div> |
| | | </div> |
| | | </li> |
| | | <!-- RechargeSure --> |
| | | <li @click="$router.push('/RechargeSure')"> |
| | |
| | | </div> |
| | | </li> |
| | | <li @click="$router.push('/setting')"> |
| | | <a href="/help" class="link" |
| | | ><div class="icon"> |
| | | <div class="link"> |
| | | <div class="icon"> |
| | | <img |
| | | src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAUzSURBVHgB7ZrPbxtFFMe/47VV51DHIQk4pSTTChA0ipoeQIgLTlUhRBEEJCSEIDGRQClCariA6KEN3DiRSAjKqeGKQGn/grq3QpHiAwJxyqakjQUBGyKklMb7eLOuYXe9ib3eHwZpPxd7x+Od/e578+a92QViYmJiYmJiuoWATwZy8hwEzYGQRRgQSiSoBIMu/frzTxfhE1+C+3P3FQQSFxARBOg1iIlqWdfRIQn4QEBIRAhbRyaJVvpzchod4lMw6YgagSyPuzQ4KMfRAUn4wBCoCrI1Xdksr+URIBwj8gJGgSBsVjU0Ws5m5bFqVa/CA74snCKtZD1m7SNu/QaG5NxgbmR1IDdyOZuTEh7YLOvFX8rXCxDibWu76d77jAI84kvwdhpV50U4+5gCiT6i+m/5JBkL6IDNDX2Bo/WirVGI5+ARX4KrOruTsIt2WjDt+A8JcRQdUtuXmHc05dmtPS2HvgTfQbcepGr29djNC7xeZAPzBgNrtvFSzV61F74FE8h2AYZWs0XPIC7SwaptfG2nuxYWJJouwMyULDhvSpT4FsyZlm49Jrhaz9aH70DXBPtahxWCalWy3DfhEpQSRCWyZrECvc4+qxXKpoBJLYEniDDOZ5R887L17qgafNOEQOnkk3l5fU1Hp3gWrKJwUhiTIKO0WV4vatCKO7BlH/n+3PAFYZm3fLHSnrSLfOPbRoVkDZhLCkybAqme4FvPqNq5bZy/jN99Tw6RCa6LpRWY81TjLOjgRJkTA04oivxzvtGPc+yC9X/OCkVFamXRngTOsTXnNNgFemH+gw+nT774culQn2gr4/I0h1Oo5a1lILuyme4lIV4Tznnagr+2fl9VYuGTYXm4kBZYUZ7STv8gojTYyrrGZVu7ol+ZnkEm0xtk/SzZbS6vV6hlMPQdtBqU6zXqIZXs86zNu/U5Mjomn3n2helXWXAISE1gmS09MdQn9N06BSa4gUr2+aPobFdzVrkewsW0NI91bLc5HYhLt4MKUICvDKtd5J2xXIlEsAooQQSodlFj7RbEIhHM6/A8Ikat7W7toQuu8NxNcFKBiFFjqrjR1I6Q2eZ0EV2Al0gzVXW2hy7YsGRgUaPycmdb6IJ5bex4h8MvvMHYlIhEEbQkuoThMnboghslXjcQLmNHlnj8VwhdsCre0SXIZewoLKyjSyRcxg68ePiH2Q2pPr67ubOW6UnsWrb19ghk0r6f2rpCvCXkbAtH8Ou/LfPzXHPRP7HwR8vuX81m8Pjh4C+lZuCKsy14l56tcIlGnrKrL769hTC4DTQ9QA9e8Pk+nbcui+12V+781GgKgSOw5FYTh+PSn9010ZjDismxdPbM0xnX4r+XBWd6QpjDBt53aw4vaJ0f0htflV99UqFF3lc+DZ/8+MP3tuOHHj7S1Ifr4cUDu2zzRLfjUa+Jdfjg0vKX2Nr6NwgeuPcg9u/POLvpt/aovyMT3KfmE2ECHYq+eWMdn35sf7T8yKOPObvpaoy99qj9vePh8RmR2k3UCM/Do+hr31zFzNRLuMGirZx6y7apYZ57rx1LhadokZUym9ymirWNzIunIjzwwP0PytGxo/lW/ZT7Xvv6qs2NG7zJYi2CTcu2EqvwHB4Hc8NLzhdMokZt5L/73lnzuwpQas62+6jFs2Bl5dQ2rVCX6tx3zpzF1NRMdYfwOT+TWmjHqlY6WgDroo2FyCwtUD1+/MTaG6dOl0ZHx4q8T3axXYs2n8oH6l2NZBrjAjWJsNC00u0/oXt9HysmJiYmJuZ/wN/6Zaai9yOqrAAAAABJRU5ErkJggg==" |
| | | alt="" |
| | | /> |
| | | </div> |
| | | <div class="name">{{ $t("用戶手冊") }}</div></a |
| | | > |
| | | <div class="name">{{ $t("用戶手冊") }}</div> |
| | | </div> |
| | | </li> |
| | | <li @click="$router.push('/setting')"> |
| | | <a href="/platform" class="link" |
| | | ><div class="icon"> |
| | | <div class="link"> |
| | | <div class="icon"> |
| | | <img |
| | | src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAUQSURBVHgB7ZlPaBxVHMe/k9SYUk13EdI2WJnoUSgR/4AhkigqggerQgNeujnEqJckNIf24m68iKBke/FPKyQePHgoQfEgVEyLsUIRUgShHmRXg1kJ2Nmk0iTW7PP3m90xuzszb97szGz+OB94NH0z89583+/3e/N7vwViYmJiYmJi/k/o1OaoTVf+3rMkqGWoibo2hT0ofIyaAbtYq+WoncQeYABl9xWKjYX3YBeiU5uFXFhOcn3XxLcVp27uy/3pyn2o/C2zeAY7mONozGp65dquie8ByOOUr/UrjMOxK1uwBWyzm7NbZuH+guy+o/BPCjswvjOQf2bS2IrTRtAhj29ekDE0gQHIV38O4a6+jm2Ob9nE/YiOFOQLHRlhxamNnCESBUOkCitieqkoFgpFYVATlWZw31tvT4mj9+mBBGvwR/3gSWpFBIBE6qIFo5owregZ94u/5fHYse76bmUdLQiGXexrho7hZc/0kC26ZIgsvWqOxPIGVCP2yi+3sbpmNx5Z2HEsKBJUsB1RSkNrXcDIn9OmeAfYqu0aFjTNHg6LNzYxNHMTL390E+9evAUVeCweU+XeoC5d+zwLLJVyNX0lTOLjezLWf5cN0bOpmXm2Xn0bW/Pct2s4P7+B1fWtab4e68CDXftqhjySqJ2WYpz/yW8KvHhvUrsGCeEKHrkxByEG7I9peWqZwjuJy/SE7dP11U9/480vbmHRKNme7H3gDlwYubumz0Uwk6c3fPJIkudzJlyXLv0zbk5qg92tNPP02ZUcuaxu9XKcvvThKoY++ctV7Kln9sMHOi+oLKbDtbDF8HKK4jgNlyRk8OE2dFDgnf9uw/Fxvjbx7H4M97U7XpdYuPxSGrKHD2rjTs9GI5hJFXS0tfGm5CsFnCCLDj/Rbop2w0swym/a7eTa0Qm2IOFPHTsw983127rsNnbf7IkDOJr0jjIVwYKs3OVg5cgFGxRP6xqMz37YwHsX12yxygKzg3eh9/59UEVJMOUIG2Tl7qRWkyuE/x2uY71cGMDgI3fi6hn7XsJ9fsSqQkuSaG/FC/X9kQumGaI8VMgR5umuhsgFU9q4bVVIp7kjFyy2sSxTcpg7epcOVvkIhOYwdzME7yiaITjQeTkIwmHuoIJ1rxs0x9y6cVZX1NevxWHuoIL55CNNHSnjkR7X/HDugywetVc7fM0dhoX550736mEJlxGQK/OXzLJO+sy4LwuTe12yd/kjhXK9WHe5PkNtElWuVEkteUHMHZOPhNVwDu0G169G30jh+3nnNeNyT/b9afT2DThepzpCsj61bBR2Y1nZNIOqRfljRUxVVSA928+/GuLU6bTb2KLjYEJMnM7Ix6HqJ0JGh2KRnOtNqmInqRTLgtzGffX1MXNBPMdSrHE1KnzBQ3iPl5UvfDknHu/rdxVKbmveo7JoSzQXmkAKEjfv7Dw0e/XHnO3luO/EKyddhXLhffrTWeVwoJbzU7YNgzTcrW3GZnWcurmvFadK7lsl1suV/e7SqugoC085XbSK6bwLO/Hc88dBP6s4Ft0l5FupTNsZcpnWL3w8s9Wg3eDPC1nd9TMjIe9VnrWIOpfm1ebUaAiSFJPclyyaBW1KvsVy7Yq+tw+piGWitnA1Osq/NNanoplr13/XDx3uSkGdIgmd0Uo4qyrUopmCLXRsZWv/WZ531nauf1FJiCsVlcKBtdsW+RBi5saULq5v4vOwMqiYmJiYmJiY5vEvlMTFZ7VdSzYAAAAASUVORK5CYII=" |
| | | alt="" |
| | | /> |
| | | </div> |
| | | <div class="name">{{ $t("平臺") }}</div></a |
| | | > |
| | | <div class="name">{{ $t("平臺") }}</div> |
| | | </div> |
| | | </li> |
| | | <li @click="$router.push('/transferIndex')"> |
| | | <a href="/transferIndex" class="link" |
| | | ><div class="icon"> |
| | | <div class="link"> |
| | | <div class="icon"> |
| | | <img |
| | | src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAQvSURBVHgB7Zq/TxRBFMe/gyZCI4cmICSa5R8wWGiiIeEoTEwkETWxsOFsSKyAQAxWd9qY2ICVCQ00lgZN7MHEWNgcsdLqzl+cMcE7rM5Cxvf2bvHY25mdvds9DtxP8nLL7OzsfufN25l5CxATExMTExPzP2GRrZEtV48PLQmyDJl02QIOofBpsiLqxTqWI5vAISCJyvCVhsbCh3AAschWoReW05w/MPHtxKlq+HJ5uloP1WOdxzNoY8bRmNes6rkDE99J6OOUz40YtMOxq+uwLPZ5mPOwXIT6AXn4TiE4KbRhfGegn2bS+BenjWBBH9/cIdNoAUnoe38N4fa+hX2Ob92NRxAdKeg7OjIaj9PJrYzudK4oE4WiTBW25fJmSWYLJVkkk1UrctnDRwvy9BmrKcECwXA33kNW8r2qIjaNpZN19yORluzAlJC2F33j/svnPC6cHXQXG+s4iuYwF+uCPXqMX37CFmsMeRhebQ32CP9nIToQJQqx7NVOgawQDU1bdXBb3KZJ3egEK8T+KMoh8mr4b3Nq8yu37UOzMex9vUJsUAqPT3iW9yf23pZeas5hnp5wtL9H5KEgfA+HJLZBbE9zTKsqhCt4f8U6WF0d6mcIT3B7iLWREtOql1g0MeyCFxOozLOhoInhXaTA4kC3mHGXRy64SPFUFvaKLDSMBNMa4bfEoHt+jnYeJsqVxEDLoS5JdB7BNY/yQPh7eHIr1MX83OUuzJLVYuJhG4GV/m5xp7Yocg83g5fYINCStW4h0raCmxXL7His5tpScBhiGeGx+2p2t1SPawvI+1ld9f57P/f8HZZYFa3wsNG2jQlbrPS4d7OCLb8Kghf0BpiK/bVt3H8sLu9R1hS8zdNmD2nFswEfTMUuPV3E+fpsR6B7h+Fh/tzJCbYJzxo7eK1rwETs2zfrdlonfX8mkIdpeK27i4IK5kk871Fuka3AI0neCbyAJo51Yjl/dWMsiZtjo/axG073PH+1pry+/AcvERI8jHVp0wxqhH/flgs1GUhf+/ipKGfn06q25fHuhJybz+jb4Q1LyFgwTJLzVs1U7ANKxbIgVbuTd6ftDvFtyzDH1ajwrI/wIT8v09CUF4dHlEIvDSftOiadtkn3QgtIQTPMe3v7Vt+9z9U9HJfduj2hFMqJ9+Vnq8bhQJbTpXiiIA21t+3YrI1T1fB14tRo+NaI9RvKQbeHplioCE95nXSS6V5vXubK1XHQZxXPpLuG/BGJ6709QjvvRyXYgbdn/L8elkllilOQ1+3fgOT90rMOUa+lubd5aaSav21o+JJHF+05NahYzl2VJc6ZiGWi9nAtFipfGt1L0czGh29W36mBFMwpkdAVsYMnpkIdWinYwUIlvvl31/P8Zu3k/FcHRjhTISvnnbdtiTch9tqYlou8gjL9eBYTExMTExPTPvwFuTt0PD0I6k4AAAAASUVORK5CYII=" |
| | | alt="" |
| | | /> |
| | | </div> |
| | | <div class="name">{{ $t("hj245") }}</div></a |
| | | > |
| | | <div class="name">{{ $t("hj245") }}</div> |
| | | </div> |
| | | </li> |
| | | <li @click="settingDialog = true"> |
| | | <a href="#" class="links"> |
| | | <div class="links"> |
| | | <div class="icon"> |
| | | <img |
| | | src="data:image/png;base64,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" |
| | |
| | | <div class="name" style="margin-top: 2px"> |
| | | {{ $t("yy") }} |
| | | </div> |
| | | </a> |
| | | </div> |
| | | </li> |
| | | </ul> |
| | | <van-popup |
| | |
| | | </div>--> |
| | | <div class="periodWrap kline_periodWrap" ref="kline_periodWrap"> |
| | | <!-- DWM 分 --> |
| | | <div class="btnGroup" style="position:relative"> |
| | | <div class="btnGroup" style="position: relative"> |
| | | <div |
| | | class="btn2" |
| | | v-for="(item, index) in KLinePeriodMenu" |
| | |
| | | :key="item.ID" |
| | | @click="OnClickKLinePeriodMenu(index, item, 'kline')" |
| | | > |
| | | <!-- <div |
| | | <!-- <div |
| | | class="btn2" |
| | | v-for="(item, index) in KLinePeriodMenu" |
| | | :class="{ active: KLinePeriodIndex == index }" |
| | |
| | | > --> |
| | | <span>{{ item.Name }}</span> |
| | | </div> |
| | | <div class="btn2" @click="isShow ? isShow = false : isShow = true"> |
| | | <div |
| | | class="btn2" |
| | | @click="isShow ? (isShow = false) : (isShow = true)" |
| | | > |
| | | <div class="btn2"> |
| | | <!-- :class="KLinePeriodIndex === index ? 'active' : ''" --> |
| | | <img src="../../../assets/img/options.png" alt /> |
| | | </div> |
| | | </div> |
| | | <div style="position:absolute;right: 0;top: 25px;;z-index: 99;" v-if="isShow == true"> |
| | | <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;" |
| | | 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" |
| | | style="padding: 10px" |
| | | @click="OnClickKLineRightMenu(index, item)" |
| | | >{{ item.Name }}</div> |
| | | > |
| | | {{ item.Name }} |
| | | </div> |
| | | <div |
| | | class="btn" |
| | | v-for="(item) in KLineIndexMenu" |
| | | v-for="item in KLineIndexMenu" |
| | | :key="item.ID" |
| | | style="padding:10px" |
| | | style="padding: 10px" |
| | | @click="ChangeKLineIndex(item)" |
| | | >{{ item.Name }}</div> |
| | | > |
| | | {{ 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 class="statementWrap" ref="kline_statementWrap"> |
| | | 郑重声明:本页面所有数据来自互联网或自动生成的测试数据,仅用于学习HQChart图形库使用,不构成任何投资价值信息。如使用者依据本网站提供的信息、资料及图表进行金融、证券等投资所造成的盈亏与本网站无关。 |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import _ from 'lodash' |
| | | import HQChart from 'hqchart' |
| | | import 'hqchart/src/jscommon/umychart.resource/css/tools.css' |
| | | import 'hqchart/src/jscommon/umychart.resource/font/iconfont.css' |
| | | import EastMoney from '../../../eastmoney/HQData.js' |
| | | import i18n from '@/locales/index.js' |
| | | import _ from "lodash"; |
| | | import HQChart from "hqchart"; |
| | | import "hqchart/src/jscommon/umychart.resource/css/tools.css"; |
| | | import "hqchart/src/jscommon/umychart.resource/font/iconfont.css"; |
| | | import EastMoney from "../../../eastmoney/HQData.js"; |
| | | import i18n from "@/locales/index.js"; |
| | | // 源码调试用 |
| | | // import Chart from '../jscommon/umychart.vue/umychart.vue.js' |
| | | // import '../jscommon/umychart.resource/css/tools.css' |
| | | // import '../jscommon/umychart.resource/font/iconfont.css' |
| | | // var HQChart={ Chart:Chart }; |
| | | HQChart.Chart.MARKET_SUFFIX_NAME.GetMarketStatus = function (symbol) { |
| | | return 2 |
| | | } // 一直交易 |
| | | function DefaultData () {} |
| | | return 2; |
| | | }; // 一直交易 |
| | | function DefaultData() {} |
| | | |
| | | DefaultData.GetMinuteOption = function () { |
| | | var option = { |
| | | Type: '分钟走势图', // 创建图形类型 |
| | | Type: "分钟走势图", // 创建图形类型 |
| | | // Type:'分钟走势图横屏', |
| | | Language: 1, // 英文 'EN' 简体中文:'CN' 繁体中文:"TC" |
| | | // 窗口指标 |
| | |
| | | // { Index: "KDJ", Modify: false, Change: false, Close: false } |
| | | ], |
| | | |
| | | Symbol: 'AAPL.usa', |
| | | Symbol: "AAPL.usa", |
| | | IsAutoUpdate: true, // 是自动更新数据 |
| | | AutoUpdateFrequency: 20000, |
| | | DayCount: 1, // 1 最新交易日数据 >1 多日走势图 |
| | |
| | | |
| | | MinuteLine: { |
| | | IsDrawAreaPrice: true, // 是否画价格面积图 |
| | | IsShowAveragePrice: true // 不显示均线 |
| | | IsShowAveragePrice: true, // 不显示均线 |
| | | }, |
| | | |
| | | // 边框 |
| | |
| | | Top: 0, |
| | | Bottom: 1, |
| | | AutoRight: { Blank: 10, MinWidth: 40 }, |
| | | AutoLeft: { Blank: 10, MinWidth: 40 } |
| | | AutoLeft: { Blank: 10, MinWidth: 40 }, |
| | | }, |
| | | |
| | | // 子框架设置 |
| | |
| | | // 扩展图形 |
| | | ExtendChart: [ |
| | | // {Name:'MinuteTooltip' } //手机端tooltip |
| | | ] |
| | | } |
| | | ], |
| | | }; |
| | | |
| | | return option |
| | | } |
| | | return option; |
| | | }; |
| | | |
| | | DefaultData.GetMinuteIndexMenu = function () { |
| | | var data = [ |
| | | { Name: 'MACD', ID: 'MACD', WindowIndex: 2 }, |
| | | { Name: 'KDJ', ID: 'KDJ', WindowIndex: 2 }, |
| | | { Name: 'DMI', ID: 'DMI', WindowIndex: 2 }, |
| | | { Name: 'ROC', ID: 'ROC', WindowIndex: 2 } |
| | | ] |
| | | { Name: "MACD", ID: "MACD", WindowIndex: 2 }, |
| | | { Name: "KDJ", ID: "KDJ", WindowIndex: 2 }, |
| | | { Name: "DMI", ID: "DMI", WindowIndex: 2 }, |
| | | { Name: "ROC", ID: "ROC", WindowIndex: 2 }, |
| | | ]; |
| | | |
| | | return data |
| | | } |
| | | return data; |
| | | }; |
| | | |
| | | DefaultData.GetKLineIndexMenu = function () { |
| | | var data = [ |
| | | { Name: 'MA', ID: 'MA', WindowIndex: 0 }, |
| | | { Name: 'BOLL', ID: 'BOLL', WindowIndex: 0 }, |
| | | { Name: 'MACD', ID: 'MACD', WindowIndex: 1 }, |
| | | { Name: 'KDJ', ID: 'KDJ', WindowIndex: 1 }, |
| | | { Name: 'DMI', ID: 'DMI', WindowIndex: 1 }, |
| | | { Name: 'ROC', ID: 'ROC', WindowIndex: 1 } |
| | | ] |
| | | { Name: "MA", ID: "MA", WindowIndex: 0 }, |
| | | { Name: "BOLL", ID: "BOLL", WindowIndex: 0 }, |
| | | { Name: "MACD", ID: "MACD", WindowIndex: 1 }, |
| | | { Name: "KDJ", ID: "KDJ", WindowIndex: 1 }, |
| | | { Name: "DMI", ID: "DMI", WindowIndex: 1 }, |
| | | { Name: "ROC", ID: "ROC", WindowIndex: 1 }, |
| | | ]; |
| | | |
| | | return data |
| | | } |
| | | return data; |
| | | }; |
| | | |
| | | DefaultData.GetTestSymbolMenu = function () { |
| | | // 品种代码规则 ${东方财富品种代码}_${东方财富市场}.${HQChart内部市场后缀} |
| | | var data = [ |
| | | { |
| | | Title: '美股', |
| | | Icon: '', |
| | | Title: "美股", |
| | | Icon: "", |
| | | Sub: [ |
| | | { |
| | | Name: '网易', |
| | | Code: 'NTES_105.usa' |
| | | Name: "网易", |
| | | Code: "NTES_105.usa", |
| | | }, |
| | | { |
| | | Name: '微软', |
| | | Code: 'MSFT_105.usa' |
| | | Name: "微软", |
| | | Code: "MSFT_105.usa", |
| | | }, |
| | | { |
| | | Name: '亚马逊', |
| | | Code: 'AMZN_105.usa' |
| | | Name: "亚马逊", |
| | | Code: "AMZN_105.usa", |
| | | }, |
| | | { |
| | | Name: '人人网', |
| | | Code: 'RENN_106.usa' |
| | | Name: "人人网", |
| | | Code: "RENN_106.usa", |
| | | }, |
| | | { |
| | | Name: '滴滴', |
| | | Code: 'DIDI_106.usa' |
| | | Name: "滴滴", |
| | | Code: "DIDI_106.usa", |
| | | }, |
| | | { |
| | | Name: '阿里巴巴', |
| | | Code: 'BABA_106.usa' |
| | | Name: "阿里巴巴", |
| | | Code: "BABA_106.usa", |
| | | }, |
| | | { |
| | | Name: '知乎', |
| | | Code: 'ZH_106.usa' |
| | | Name: "知乎", |
| | | Code: "ZH_106.usa", |
| | | }, |
| | | { |
| | | Name: '道琼斯', |
| | | Code: 'DJIA_100.usa' |
| | | Name: "道琼斯", |
| | | Code: "DJIA_100.usa", |
| | | }, |
| | | { |
| | | Name: '标普500', |
| | | Code: 'SPX_100.usa' |
| | | Name: "标普500", |
| | | Code: "SPX_100.usa", |
| | | }, |
| | | { |
| | | Name: '纳斯达克', |
| | | Code: 'NDX_100.usa' |
| | | } |
| | | ] |
| | | Name: "纳斯达克", |
| | | Code: "NDX_100.usa", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | Title: '沪深A股', |
| | | Icon: '', |
| | | Title: "沪深A股", |
| | | Icon: "", |
| | | Sub: [ |
| | | { |
| | | Name: '浦发银行', |
| | | Code: '600000_1.sh' |
| | | Name: "浦发银行", |
| | | Code: "600000_1.sh", |
| | | }, |
| | | { |
| | | Name: '东方财富', |
| | | Code: '300059_0.sz' |
| | | Name: "东方财富", |
| | | Code: "300059_0.sz", |
| | | }, |
| | | { |
| | | Name: '上证指数', |
| | | Code: '000001_1.sh' |
| | | Name: "上证指数", |
| | | Code: "000001_1.sh", |
| | | }, |
| | | { |
| | | Name: '深证成指', |
| | | Code: '399001_0.sz' |
| | | } |
| | | ] |
| | | Name: "深证成指", |
| | | Code: "399001_0.sz", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | Title: '北交所', |
| | | Icon: '', |
| | | Title: "北交所", |
| | | Icon: "", |
| | | Sub: [ |
| | | { |
| | | Name: '凯添燃气', |
| | | Code: '831010_0.bj' |
| | | Name: "凯添燃气", |
| | | Code: "831010_0.bj", |
| | | }, |
| | | { |
| | | Name: '驱动力', |
| | | Code: '838275_0.bj' |
| | | Name: "驱动力", |
| | | Code: "838275_0.bj", |
| | | }, |
| | | { |
| | | Name: '齐鲁华信', |
| | | Code: '830832_0.bj' |
| | | Name: "齐鲁华信", |
| | | Code: "830832_0.bj", |
| | | }, |
| | | { |
| | | Name: '苏轴股份', |
| | | Code: '430418_0.bj' |
| | | } |
| | | ] |
| | | Name: "苏轴股份", |
| | | Code: "430418_0.bj", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | Title: 'ETF基金', |
| | | Icon: '', |
| | | Title: "ETF基金", |
| | | Icon: "", |
| | | Sub: [ |
| | | { |
| | | Name: '50ETF基金', |
| | | Code: '510800_1.sh' |
| | | Name: "50ETF基金", |
| | | Code: "510800_1.sh", |
| | | }, |
| | | { |
| | | Name: '上证180ETF', |
| | | Code: '510180_1.sh' |
| | | Name: "上证180ETF", |
| | | Code: "510180_1.sh", |
| | | }, |
| | | { |
| | | Name: '恒生ETF', |
| | | Code: '159920_0.sz' |
| | | Name: "恒生ETF", |
| | | Code: "159920_0.sz", |
| | | }, |
| | | { |
| | | Name: '创业板50ETF', |
| | | Code: '159949_0.sz' |
| | | } |
| | | ] |
| | | Name: "创业板50ETF", |
| | | Code: "159949_0.sz", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | Title: '港股', |
| | | Icon: '', |
| | | Title: "港股", |
| | | Icon: "", |
| | | Sub: [ |
| | | { |
| | | Name: '比亚迪股份', |
| | | Code: '01211_116.hk' |
| | | Name: "比亚迪股份", |
| | | Code: "01211_116.hk", |
| | | }, |
| | | { |
| | | Name: '招商银行', |
| | | Code: '03968_116.hk' |
| | | Name: "招商银行", |
| | | Code: "03968_116.hk", |
| | | }, |
| | | { |
| | | Name: '汇丰控股', |
| | | Code: '00005_116.hk' |
| | | Name: "汇丰控股", |
| | | Code: "00005_116.hk", |
| | | }, |
| | | { |
| | | Name: '长和', |
| | | Code: '00001_116.hk' |
| | | Name: "长和", |
| | | Code: "00001_116.hk", |
| | | }, |
| | | { |
| | | Name: '恒生指数', |
| | | Code: 'HSI_100.hk' |
| | | } |
| | | ] |
| | | Name: "恒生指数", |
| | | Code: "HSI_100.hk", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | Title: '外汇', |
| | | Icon: '', |
| | | Title: "外汇", |
| | | Icon: "", |
| | | Sub: [ |
| | | { |
| | | Name: '美元兑加元', |
| | | Code: 'USDCAD_119.FOREX' |
| | | Name: "美元兑加元", |
| | | Code: "USDCAD_119.FOREX", |
| | | }, |
| | | { |
| | | Name: '美元兑港币', |
| | | Code: 'USDHKD_119.FOREX' |
| | | Name: "美元兑港币", |
| | | Code: "USDHKD_119.FOREX", |
| | | }, |
| | | { |
| | | Name: '美元兑欧元', |
| | | Code: 'USDEUR_119.FOREX' |
| | | Name: "美元兑欧元", |
| | | Code: "USDEUR_119.FOREX", |
| | | }, |
| | | { |
| | | Name: '欧元兑英镑', |
| | | Code: 'EURGBP_119.FOREX' |
| | | Name: "欧元兑英镑", |
| | | Code: "EURGBP_119.FOREX", |
| | | }, |
| | | { |
| | | Name: '美元指数', |
| | | Code: 'UPI_100.ET' |
| | | } |
| | | ] |
| | | Name: "美元指数", |
| | | Code: "UPI_100.ET", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | Title: '上海期货交易所', |
| | | Icon: '', |
| | | Title: "上海期货交易所", |
| | | Icon: "", |
| | | Sub: [ |
| | | { |
| | | Name: '沪铜主力', |
| | | Code: 'CUM_113.SHFE' |
| | | Name: "沪铜主力", |
| | | Code: "CUM_113.SHFE", |
| | | }, |
| | | { |
| | | Name: '沪锡主力', |
| | | Code: 'SNM_113.SHFE' |
| | | Name: "沪锡主力", |
| | | Code: "SNM_113.SHFE", |
| | | }, |
| | | { |
| | | Name: '沪金主力', |
| | | Code: 'AUM_113.SHFE' |
| | | Name: "沪金主力", |
| | | Code: "AUM_113.SHFE", |
| | | }, |
| | | { |
| | | Name: '沪镍主力', |
| | | Code: 'NIM_113.SHFE' |
| | | Name: "沪镍主力", |
| | | Code: "NIM_113.SHFE", |
| | | }, |
| | | { |
| | | Name: '橡胶主力', |
| | | Code: 'RUM_113.SHFE' |
| | | Name: "橡胶主力", |
| | | Code: "RUM_113.SHFE", |
| | | }, |
| | | { |
| | | Name: '螺纹钢主力', |
| | | Code: 'RBM_113.SHFE' |
| | | Name: "螺纹钢主力", |
| | | Code: "RBM_113.SHFE", |
| | | }, |
| | | { |
| | | Name: '沪银主力', |
| | | Code: 'AGM_113.SHFE' |
| | | Name: "沪银主力", |
| | | Code: "AGM_113.SHFE", |
| | | }, |
| | | { |
| | | Name: '线材主力', |
| | | Code: 'WRM_113.SHFE' |
| | | Name: "线材主力", |
| | | Code: "WRM_113.SHFE", |
| | | }, |
| | | { |
| | | Name: '沪铅主力', |
| | | Code: 'PBM_113.SHFE' |
| | | Name: "沪铅主力", |
| | | Code: "PBM_113.SHFE", |
| | | }, |
| | | { |
| | | Name: '沪锌主力', |
| | | Code: 'ZNM_113.SHFE' |
| | | Name: "沪锌主力", |
| | | Code: "ZNM_113.SHFE", |
| | | }, |
| | | { |
| | | Name: '石油沥青主力', |
| | | Code: 'BUM_113.SHFE' |
| | | Name: "石油沥青主力", |
| | | Code: "BUM_113.SHFE", |
| | | }, |
| | | { |
| | | Name: '沪铝主力', |
| | | Code: 'ALM_113.SHFE' |
| | | Name: "沪铝主力", |
| | | Code: "ALM_113.SHFE", |
| | | }, |
| | | { |
| | | Name: '燃油主力', |
| | | Code: 'FUM_113.SHFE' |
| | | Name: "燃油主力", |
| | | Code: "FUM_113.SHFE", |
| | | }, |
| | | { |
| | | Name: '热轧卷板主力', |
| | | Code: 'HCM_113.SHFE' |
| | | Name: "热轧卷板主力", |
| | | Code: "HCM_113.SHFE", |
| | | }, |
| | | { |
| | | Name: '纸浆主力', |
| | | Code: 'SPM_113.SHFE' |
| | | Name: "纸浆主力", |
| | | Code: "SPM_113.SHFE", |
| | | }, |
| | | { |
| | | Name: '不锈钢主力', |
| | | Code: 'SSM_113.SHFE' |
| | | } |
| | | ] |
| | | Name: "不锈钢主力", |
| | | Code: "SSM_113.SHFE", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | Title: '上海国际能源交易中心', |
| | | Icon: '', |
| | | Title: "上海国际能源交易中心", |
| | | Icon: "", |
| | | Sub: [ |
| | | { |
| | | Name: '原油主力', |
| | | Code: 'SCM_142.SHFE' |
| | | Name: "原油主力", |
| | | Code: "SCM_142.SHFE", |
| | | }, |
| | | { |
| | | Name: '20号胶主力', |
| | | Code: 'NRM_142.SHFE' |
| | | Name: "20号胶主力", |
| | | Code: "NRM_142.SHFE", |
| | | }, |
| | | { |
| | | Name: '低硫燃油主力', |
| | | Code: 'LUM_142.SHFE' |
| | | Name: "低硫燃油主力", |
| | | Code: "LUM_142.SHFE", |
| | | }, |
| | | { |
| | | Name: '国际铜主力', |
| | | Code: 'BCM_142.SHFE' |
| | | } |
| | | ] |
| | | Name: "国际铜主力", |
| | | Code: "BCM_142.SHFE", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | Title: '大连商品交易所', |
| | | Icon: '', |
| | | Title: "大连商品交易所", |
| | | Icon: "", |
| | | Sub: [ |
| | | { |
| | | Name: '玉米主力', |
| | | Code: 'CM_114.DCE' |
| | | Name: "玉米主力", |
| | | Code: "CM_114.DCE", |
| | | }, |
| | | { |
| | | Name: '豆一主力', |
| | | Code: 'AM_114.DCE' |
| | | Name: "豆一主力", |
| | | Code: "AM_114.DCE", |
| | | }, |
| | | { |
| | | Name: '豆二主力', |
| | | Code: 'BM_114.DCE' |
| | | Name: "豆二主力", |
| | | Code: "BM_114.DCE", |
| | | }, |
| | | { |
| | | Name: '豆粕主力', |
| | | Code: 'MM_114.DCE' |
| | | Name: "豆粕主力", |
| | | Code: "MM_114.DCE", |
| | | }, |
| | | { |
| | | Name: '豆油主力', |
| | | Code: 'YM_114.DCE' |
| | | Name: "豆油主力", |
| | | Code: "YM_114.DCE", |
| | | }, |
| | | { |
| | | Name: '棕榈油主力', |
| | | Code: 'PM_114.DCE' |
| | | Name: "棕榈油主力", |
| | | Code: "PM_114.DCE", |
| | | }, |
| | | { |
| | | Name: '聚乙烯主力', |
| | | Code: 'LM_114.DCE' |
| | | Name: "聚乙烯主力", |
| | | Code: "LM_114.DCE", |
| | | }, |
| | | { |
| | | Name: '聚氯乙烯主力', |
| | | Code: 'VM_114.DCE' |
| | | Name: "聚氯乙烯主力", |
| | | Code: "VM_114.DCE", |
| | | }, |
| | | |
| | | { |
| | | Name: '焦炭主力', |
| | | Code: 'JM_114.DCE' |
| | | Name: "焦炭主力", |
| | | Code: "JM_114.DCE", |
| | | }, |
| | | { |
| | | Name: '焦煤主力', |
| | | Code: 'JMM_114.DCE' |
| | | Name: "焦煤主力", |
| | | Code: "JMM_114.DCE", |
| | | }, |
| | | { |
| | | Name: '纤维板主力', |
| | | Code: 'FBM_114.DCE' |
| | | Name: "纤维板主力", |
| | | Code: "FBM_114.DCE", |
| | | }, |
| | | { |
| | | Name: '胶合板主力', |
| | | Code: 'BBM_114.DCE' |
| | | Name: "胶合板主力", |
| | | Code: "BBM_114.DCE", |
| | | }, |
| | | { |
| | | Name: '铁矿石主力', |
| | | Code: 'IM_114.DCE' |
| | | Name: "铁矿石主力", |
| | | Code: "IM_114.DCE", |
| | | }, |
| | | { |
| | | Name: '鸡蛋主力', |
| | | Code: 'JDM_114.DCE' |
| | | Name: "鸡蛋主力", |
| | | Code: "JDM_114.DCE", |
| | | }, |
| | | |
| | | { |
| | | Name: '聚丙烯主力', |
| | | Code: 'PPM_114.DCE' |
| | | Name: "聚丙烯主力", |
| | | Code: "PPM_114.DCE", |
| | | }, |
| | | { |
| | | Name: '玉米淀粉主力', |
| | | Code: 'CSM_114.DCE' |
| | | Name: "玉米淀粉主力", |
| | | Code: "CSM_114.DCE", |
| | | }, |
| | | { |
| | | Name: '乙二醇主力', |
| | | Code: 'EGM_114.DCE' |
| | | Name: "乙二醇主力", |
| | | Code: "EGM_114.DCE", |
| | | }, |
| | | { |
| | | Name: '粳米主力', |
| | | Code: 'RRM_114.DCE' |
| | | Name: "粳米主力", |
| | | Code: "RRM_114.DCE", |
| | | }, |
| | | { |
| | | Name: '苯乙烯主力', |
| | | Code: 'EBM_114.DCE' |
| | | Name: "苯乙烯主力", |
| | | Code: "EBM_114.DCE", |
| | | }, |
| | | { |
| | | Name: 'LPG主力', |
| | | Code: 'PGM_114.DCE' |
| | | Name: "LPG主力", |
| | | Code: "PGM_114.DCE", |
| | | }, |
| | | { |
| | | Name: '生猪主力', |
| | | Code: 'LHM_114.DCE' |
| | | } |
| | | ] |
| | | Name: "生猪主力", |
| | | Code: "LHM_114.DCE", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | Title: '郑州商品交易所', |
| | | Icon: '', |
| | | Title: "郑州商品交易所", |
| | | Icon: "", |
| | | Sub: [ |
| | | { |
| | | Name: '强麦主力', |
| | | Code: 'WHM_115.CZC' |
| | | Name: "强麦主力", |
| | | Code: "WHM_115.CZC", |
| | | }, |
| | | { |
| | | Name: '普麦主力', |
| | | Code: 'PMM_115.CZC' |
| | | Name: "普麦主力", |
| | | Code: "PMM_115.CZC", |
| | | }, |
| | | { |
| | | Name: '一号棉花主力', |
| | | Code: 'CFM_115.CZC' |
| | | Name: "一号棉花主力", |
| | | Code: "CFM_115.CZC", |
| | | }, |
| | | { |
| | | Name: '白糖主力', |
| | | Code: 'SRM_115.CZC' |
| | | Name: "白糖主力", |
| | | Code: "SRM_115.CZC", |
| | | }, |
| | | { |
| | | Name: 'PTA主力', |
| | | Code: 'TAM_115.CZC' |
| | | Name: "PTA主力", |
| | | Code: "TAM_115.CZC", |
| | | }, |
| | | { |
| | | Name: '菜油主力', |
| | | Code: 'OIM_115.CZC' |
| | | Name: "菜油主力", |
| | | Code: "OIM_115.CZC", |
| | | }, |
| | | { |
| | | Name: '早籼稻主力', |
| | | Code: 'RIM_115.CZC' |
| | | Name: "早籼稻主力", |
| | | Code: "RIM_115.CZC", |
| | | }, |
| | | { |
| | | Name: '甲醇主力', |
| | | Code: 'MAM_115.CZC' |
| | | Name: "甲醇主力", |
| | | Code: "MAM_115.CZC", |
| | | }, |
| | | { |
| | | Name: '玻璃主力', |
| | | Code: 'FGM_115.CZC' |
| | | Name: "玻璃主力", |
| | | Code: "FGM_115.CZC", |
| | | }, |
| | | { |
| | | Name: '菜籽主力', |
| | | Code: 'RSM_115.CZC' |
| | | Name: "菜籽主力", |
| | | Code: "RSM_115.CZC", |
| | | }, |
| | | { |
| | | Name: '菜粕主力', |
| | | Code: 'RMM_115.CZC' |
| | | Name: "菜粕主力", |
| | | Code: "RMM_115.CZC", |
| | | }, |
| | | { |
| | | Name: '粳稻主力', |
| | | Code: 'JRM_115.CZC' |
| | | Name: "粳稻主力", |
| | | Code: "JRM_115.CZC", |
| | | }, |
| | | { |
| | | Name: '晚籼稻主力', |
| | | Code: 'LRM_115.CZC' |
| | | Name: "晚籼稻主力", |
| | | Code: "LRM_115.CZC", |
| | | }, |
| | | { |
| | | Name: '硅铁主力', |
| | | Code: 'SFM_115.CZC' |
| | | Name: "硅铁主力", |
| | | Code: "SFM_115.CZC", |
| | | }, |
| | | { |
| | | Name: '锰硅主力', |
| | | Code: 'SMM_115.CZC' |
| | | Name: "锰硅主力", |
| | | Code: "SMM_115.CZC", |
| | | }, |
| | | { |
| | | Name: '动力煤主力', |
| | | Code: 'ZCM_115.CZC' |
| | | Name: "动力煤主力", |
| | | Code: "ZCM_115.CZC", |
| | | }, |
| | | { |
| | | Name: '棉纱主力', |
| | | Code: 'CYM_115.CZC' |
| | | Name: "棉纱主力", |
| | | Code: "CYM_115.CZC", |
| | | }, |
| | | { |
| | | Name: '苹果主力', |
| | | Code: 'APM_115.CZC' |
| | | Name: "苹果主力", |
| | | Code: "APM_115.CZC", |
| | | }, |
| | | { |
| | | Name: '红枣主力', |
| | | Code: 'CJM_115.CZC' |
| | | Name: "红枣主力", |
| | | Code: "CJM_115.CZC", |
| | | }, |
| | | { |
| | | Name: '尿素主力', |
| | | Code: 'URM_115.CZC' |
| | | Name: "尿素主力", |
| | | Code: "URM_115.CZC", |
| | | }, |
| | | { |
| | | Name: '纯碱主力', |
| | | Code: 'SAM_115.CZC' |
| | | Name: "纯碱主力", |
| | | Code: "SAM_115.CZC", |
| | | }, |
| | | { |
| | | Name: '短纤主力', |
| | | Code: 'PFM_115.CZC' |
| | | Name: "短纤主力", |
| | | Code: "PFM_115.CZC", |
| | | }, |
| | | { |
| | | Name: '花生主力', |
| | | Code: 'PKM_115.CZC' |
| | | } |
| | | ] |
| | | Name: "花生主力", |
| | | Code: "PKM_115.CZC", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | Title: '中国金融期货交易所', |
| | | Icon: '', |
| | | Title: "中国金融期货交易所", |
| | | Icon: "", |
| | | Sub: [ |
| | | { |
| | | Name: '二债主力', |
| | | Code: 'TS-130130_8.CFE' |
| | | Name: "二债主力", |
| | | Code: "TS-130130_8.CFE", |
| | | }, |
| | | { |
| | | Name: '五债主力', |
| | | Code: 'TF-050130_8.CFE' |
| | | Name: "五债主力", |
| | | Code: "TF-050130_8.CFE", |
| | | }, |
| | | { |
| | | Name: '十债主力', |
| | | Code: 'T-110130_8.CFE' |
| | | Name: "十债主力", |
| | | Code: "T-110130_8.CFE", |
| | | }, |
| | | { |
| | | Name: '上证主力', |
| | | Code: 'IH-070130_8.CFE' |
| | | Name: "上证主力", |
| | | Code: "IH-070130_8.CFE", |
| | | }, |
| | | { |
| | | Name: '中证主力', |
| | | Code: 'IC-060130_8.CFE' |
| | | Name: "中证主力", |
| | | Code: "IC-060130_8.CFE", |
| | | }, |
| | | { |
| | | Name: '沪深主力', |
| | | Code: 'IF-040130_8.CFE' |
| | | } |
| | | ] |
| | | Name: "沪深主力", |
| | | Code: "IF-040130_8.CFE", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | Title: '芝加哥商业交易所', |
| | | Icon: '', |
| | | Title: "芝加哥商业交易所", |
| | | Icon: "", |
| | | Sub: [ |
| | | { |
| | | Name: '小麦当月连续', |
| | | Code: 'ZW00Y_103.CBOT' |
| | | Name: "小麦当月连续", |
| | | Code: "ZW00Y_103.CBOT", |
| | | }, |
| | | { |
| | | Name: '迷你小麦当月连续', |
| | | Code: 'XW00Y_103.CBOT' |
| | | Name: "迷你小麦当月连续", |
| | | Code: "XW00Y_103.CBOT", |
| | | }, |
| | | { |
| | | Name: '玉米当月连续', |
| | | Code: 'ZC00Y_103.CBOT' |
| | | Name: "玉米当月连续", |
| | | Code: "ZC00Y_103.CBOT", |
| | | }, |
| | | { |
| | | Name: '迷你玉米当月连续', |
| | | Code: 'XC00Y_103.CBOT' |
| | | Name: "迷你玉米当月连续", |
| | | Code: "XC00Y_103.CBOT", |
| | | }, |
| | | { |
| | | Name: '大豆当月连续', |
| | | Code: 'ZS00Y_103.CBOT' |
| | | Name: "大豆当月连续", |
| | | Code: "ZS00Y_103.CBOT", |
| | | }, |
| | | { |
| | | Name: '迷你大豆当月连续', |
| | | Code: 'XK00Y_103.CBOT' |
| | | Name: "迷你大豆当月连续", |
| | | Code: "XK00Y_103.CBOT", |
| | | }, |
| | | { |
| | | Name: '豆油当月连续', |
| | | Code: 'ZL00Y_103.CBOT' |
| | | Name: "豆油当月连续", |
| | | Code: "ZL00Y_103.CBOT", |
| | | }, |
| | | { |
| | | Name: '豆粕当月连续', |
| | | Code: 'ZM00Y_103.CBOT' |
| | | Name: "豆粕当月连续", |
| | | Code: "ZM00Y_103.CBOT", |
| | | }, |
| | | { |
| | | Name: '燕麦当月连续', |
| | | Code: 'ZO00Y_103.CBOT' |
| | | Name: "燕麦当月连续", |
| | | Code: "ZO00Y_103.CBOT", |
| | | }, |
| | | { |
| | | Name: '稻谷当月连续', |
| | | Code: 'ZR00Y_103.CBOT' |
| | | Name: "稻谷当月连续", |
| | | Code: "ZR00Y_103.CBOT", |
| | | }, |
| | | |
| | | { |
| | | Name: '小型纳指当月连续', |
| | | Code: 'NQ00Y_103.CBOT' |
| | | Name: "小型纳指当月连续", |
| | | Code: "NQ00Y_103.CBOT", |
| | | }, |
| | | { |
| | | Name: '小型标普当月连续', |
| | | Code: 'ES00Y_103.CBOT' |
| | | Name: "小型标普当月连续", |
| | | Code: "ES00Y_103.CBOT", |
| | | }, |
| | | { |
| | | Name: '小型道指当月连续', |
| | | Code: 'YM00Y_103.CBOT' |
| | | Name: "小型道指当月连续", |
| | | Code: "YM00Y_103.CBOT", |
| | | }, |
| | | |
| | | { |
| | | Name: '2年美国债当月连续', |
| | | Code: 'TU00Y_103.CBOT' |
| | | Name: "2年美国债当月连续", |
| | | Code: "TU00Y_103.CBOT", |
| | | }, |
| | | { |
| | | Name: '5年美国债当月连续', |
| | | Code: 'FV00Y_103.CBOT' |
| | | Name: "5年美国债当月连续", |
| | | Code: "FV00Y_103.CBOT", |
| | | }, |
| | | { |
| | | Name: '10年美国债当月连续', |
| | | Code: 'TY00Y_103.CBOT' |
| | | Name: "10年美国债当月连续", |
| | | Code: "TY00Y_103.CBOT", |
| | | }, |
| | | { |
| | | Name: '30年美国债当月连续', |
| | | Code: 'US00Y_103.CBOT' |
| | | Name: "30年美国债当月连续", |
| | | Code: "US00Y_103.CBOT", |
| | | }, |
| | | { |
| | | Name: '超国债当月连续', |
| | | Code: 'UL00Y_103.CBOT' |
| | | } |
| | | ] |
| | | Name: "超国债当月连续", |
| | | Code: "UL00Y_103.CBOT", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | Title: '纽约商品交易所', |
| | | Icon: '', |
| | | Title: "纽约商品交易所", |
| | | Icon: "", |
| | | Sub: [ |
| | | { |
| | | Name: 'NYMEX原油', |
| | | Code: 'CL00Y_102.NYMEX' |
| | | Name: "NYMEX原油", |
| | | Code: "CL00Y_102.NYMEX", |
| | | }, |
| | | { |
| | | Name: 'NYMEX铂金', |
| | | Code: 'PL00Y_102.NYMEX' |
| | | Name: "NYMEX铂金", |
| | | Code: "PL00Y_102.NYMEX", |
| | | }, |
| | | { |
| | | Name: '迷你原油', |
| | | Code: 'QM00Y_102.NYMEX' |
| | | Name: "迷你原油", |
| | | Code: "QM00Y_102.NYMEX", |
| | | }, |
| | | { |
| | | Name: 'NYMEX燃油', |
| | | Code: 'HO00Y_102.NYMEX' |
| | | Name: "NYMEX燃油", |
| | | Code: "HO00Y_102.NYMEX", |
| | | }, |
| | | { |
| | | Name: 'NYMEX汽油', |
| | | Code: 'RB00Y_102.NYMEX' |
| | | Name: "NYMEX汽油", |
| | | Code: "RB00Y_102.NYMEX", |
| | | }, |
| | | { |
| | | Name: 'NYMEX钯金', |
| | | Code: 'PA00Y_102.NYMEX' |
| | | Name: "NYMEX钯金", |
| | | Code: "PA00Y_102.NYMEX", |
| | | }, |
| | | { |
| | | Name: '热轧钢卷', |
| | | Code: 'HR00Y_102.NYMEX' |
| | | Name: "热轧钢卷", |
| | | Code: "HR00Y_102.NYMEX", |
| | | }, |
| | | { |
| | | Name: '天然气', |
| | | Code: 'NG00Y_102.NYMEX' |
| | | } |
| | | ] |
| | | Name: "天然气", |
| | | Code: "NG00Y_102.NYMEX", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | Title: '纽约商业期货交易所', |
| | | Icon: '', |
| | | Title: "纽约商业期货交易所", |
| | | Icon: "", |
| | | Sub: [ |
| | | { |
| | | Name: 'COMEX白银', |
| | | Code: 'SI00Y_101.COMEX' |
| | | Name: "COMEX白银", |
| | | Code: "SI00Y_101.COMEX", |
| | | }, |
| | | { |
| | | Name: '迷你白银', |
| | | Code: 'QI00Y_101.COMEX' |
| | | Name: "迷你白银", |
| | | Code: "QI00Y_101.COMEX", |
| | | }, |
| | | { |
| | | Name: '微型黄金', |
| | | Code: 'MGC00Y_101.COMEX' |
| | | Name: "微型黄金", |
| | | Code: "MGC00Y_101.COMEX", |
| | | }, |
| | | { |
| | | Name: '迷你黄金', |
| | | Code: 'QO00Y_101.COMEX' |
| | | Name: "迷你黄金", |
| | | Code: "QO00Y_101.COMEX", |
| | | }, |
| | | { |
| | | Name: 'COMEX黄金', |
| | | Code: 'GC00Y_101.COMEX' |
| | | Name: "COMEX黄金", |
| | | Code: "GC00Y_101.COMEX", |
| | | }, |
| | | { |
| | | Name: 'COMEX铜', |
| | | Code: 'HG00Y_101.COMEX' |
| | | } |
| | | ] |
| | | Name: "COMEX铜", |
| | | Code: "HG00Y_101.COMEX", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | Title: '纽约期货交易所', |
| | | Icon: '', |
| | | Title: "纽约期货交易所", |
| | | Icon: "", |
| | | Sub: [ |
| | | { |
| | | Name: '棉花当月连续', |
| | | Code: 'CT00Y_108.NYBOT' |
| | | } |
| | | ] |
| | | Name: "棉花当月连续", |
| | | Code: "CT00Y_108.NYBOT", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | Title: '伦敦金属交易所', |
| | | Icon: '', |
| | | Title: "伦敦金属交易所", |
| | | Icon: "", |
| | | Sub: [ |
| | | { |
| | | Name: '综合镍03', |
| | | Code: 'NI-LNKT_109.LME' |
| | | Name: "综合镍03", |
| | | Code: "NI-LNKT_109.LME", |
| | | }, |
| | | { |
| | | Name: '综合铜03', |
| | | Code: 'CA-LCPT_109.LME' |
| | | Name: "综合铜03", |
| | | Code: "CA-LCPT_109.LME", |
| | | }, |
| | | { |
| | | Name: '综合铝03', |
| | | Code: 'AH-LALT_109.LME' |
| | | Name: "综合铝03", |
| | | Code: "AH-LALT_109.LME", |
| | | }, |
| | | { |
| | | Name: '综合锡03', |
| | | Code: 'SN-LTNT_109.LME' |
| | | Name: "综合锡03", |
| | | Code: "SN-LTNT_109.LME", |
| | | }, |
| | | { |
| | | Name: '综合锌03', |
| | | Code: 'ZS-LZNT_109.LME' |
| | | Name: "综合锌03", |
| | | Code: "ZS-LZNT_109.LME", |
| | | }, |
| | | { |
| | | Name: '综合铅03', |
| | | Code: 'PB-LLDT_109.LME' |
| | | } |
| | | ] |
| | | Name: "综合铅03", |
| | | Code: "PB-LLDT_109.LME", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | Title: '东京商品交易所', |
| | | Icon: '', |
| | | Title: "东京商品交易所", |
| | | Icon: "", |
| | | Sub: [ |
| | | { |
| | | Name: '日铂金当月连续', |
| | | Code: 'JPL00Y_111.TOCOM' |
| | | Name: "日铂金当月连续", |
| | | Code: "JPL00Y_111.TOCOM", |
| | | }, |
| | | { |
| | | Name: '日白银当月连续', |
| | | Code: 'JAG00Y_111.TOCOM' |
| | | Name: "日白银当月连续", |
| | | Code: "JAG00Y_111.TOCOM", |
| | | }, |
| | | { |
| | | Name: '日原油当月连续', |
| | | Code: 'JCO00Y_111.TOCOM' |
| | | Name: "日原油当月连续", |
| | | Code: "JCO00Y_111.TOCOM", |
| | | }, |
| | | { |
| | | Name: '日煤油当月连续', |
| | | Code: 'JKE00Y_111.TOCOM' |
| | | Name: "日煤油当月连续", |
| | | Code: "JKE00Y_111.TOCOM", |
| | | }, |
| | | { |
| | | Name: '日橡胶当月连续', |
| | | Code: 'JRU00Y_111.TOCOM' |
| | | Name: "日橡胶当月连续", |
| | | Code: "JRU00Y_111.TOCOM", |
| | | }, |
| | | { |
| | | Name: '日黄金当月连续', |
| | | Code: 'JAU00Y_111.TOCOM' |
| | | Name: "日黄金当月连续", |
| | | Code: "JAU00Y_111.TOCOM", |
| | | }, |
| | | { |
| | | Name: '日汽油当月连续', |
| | | Code: 'JGL00Y_111.TOCOM' |
| | | } |
| | | ] |
| | | Name: "日汽油当月连续", |
| | | Code: "JGL00Y_111.TOCOM", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | Title: '美国洲际交易所', |
| | | Icon: '', |
| | | Title: "美国洲际交易所", |
| | | Icon: "", |
| | | Sub: [ |
| | | { |
| | | Name: '布伦特原油当月连续', |
| | | Code: 'B00Y_112.IPE' |
| | | Name: "布伦特原油当月连续", |
| | | Code: "B00Y_112.IPE", |
| | | }, |
| | | { |
| | | Name: '重柴油当月连续', |
| | | Code: 'G00Y_112.IPE' |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | Name: "重柴油当月连续", |
| | | Code: "G00Y_112.IPE", |
| | | }, |
| | | ], |
| | | }, |
| | | ]; |
| | | |
| | | return data |
| | | } |
| | | return data; |
| | | }; |
| | | |
| | | // k形图 |
| | | DefaultData.GetKLineOption = function () { |
| | | var option = { |
| | | Type: '历史K线图', // 创建图形类型 |
| | | Type: "历史K线图", // 创建图形类型 |
| | | Language: 1, // 英文 'EN' 简体中文:'CN' 繁体中文:"TC" |
| | | // 窗口指标 |
| | | Windows: [ |
| | | { Index: 'MA', Modify: true, Change: false, height: 20 }, |
| | | { Index: "MA", Modify: true, Change: false, height: 20 }, |
| | | // { Index: 'MA', Modify: true, Modify: false, Change: false, height: 20 }, |
| | | { Index: 'ATR', Modify: false, Change: false, Close: false } |
| | | { Index: "ATR", Modify: false, Change: false, Close: false }, |
| | | // { Index: 'MACD', Modify: true, Change: true, Close: false } |
| | | ], |
| | | Symbol: '600015.sh', |
| | | Symbol: "600015.sh", |
| | | IsAutoUpdate: true, // 是自动更新数据 |
| | | AutoUpdateFrequency: 15000, |
| | | IsApiPeriod: true, |
| | |
| | | KLineDoubleClick: false, // 双击分钟走势图 |
| | | IsShowTooltip: true, // 是否显示K线提示信息 |
| | | DrawType: 0, |
| | | RightSpaceCount: 2 |
| | | RightSpaceCount: 2, |
| | | }, |
| | | |
| | | CorssCursorInfo: { Left: 0, Right: 1 }, |
| | |
| | | KLineTitle: { |
| | | IsShowName: false, // 不显示股票名称 |
| | | IsShowSettingInfo: false, // 不显示周期/复权 |
| | | isShowDateTime: true |
| | | isShowDateTime: true, |
| | | }, |
| | | |
| | | // 边框 |
| | |
| | | Right: 1, // 右边间距 |
| | | Top: 0, |
| | | Bottom: 15, |
| | | AutoRight: { Blank: 10, MinWidth: 40 } |
| | | AutoRight: { Blank: 10, MinWidth: 40 }, |
| | | }, |
| | | |
| | | // 子框架设置 |
| | |
| | | Custom: [ |
| | | { |
| | | Type: 0, |
| | | Position: 'right' |
| | | } |
| | | ] |
| | | Position: "right", |
| | | }, |
| | | ], |
| | | }, |
| | | { SplitCount: 3, IsShowLeftText: false }, |
| | | { SplitCount: 3, IsShowLeftText: false } |
| | | { SplitCount: 3, IsShowLeftText: false }, |
| | | ], |
| | | |
| | | // 扩展图形 |
| | | ExtendChart: [ |
| | | // { Name:'KLineTooltip' }, //手机端tooltip |
| | | ] |
| | | } |
| | | ], |
| | | }; |
| | | |
| | | return option |
| | | } |
| | | return option; |
| | | }; |
| | | |
| | | DefaultData.GetMinuteDayMenu = function () { |
| | | var data = [ |
| | | { Name: '1D', ID: 1 }, |
| | | { Name: '2D', ID: 2 }, |
| | | { Name: '3D', ID: 3 }, |
| | | { Name: '4D', ID: 4 }, |
| | | { Name: '5D', ID: 5 } |
| | | ] |
| | | { Name: "1D", ID: 1 }, |
| | | { Name: "2D", ID: 2 }, |
| | | { Name: "3D", ID: 3 }, |
| | | { Name: "4D", ID: 4 }, |
| | | { Name: "5D", ID: 5 }, |
| | | ]; |
| | | |
| | | return data |
| | | } |
| | | return data; |
| | | }; |
| | | |
| | | DefaultData.GetKLinePeriodMenu = function () { |
| | | var data = [ |
| | | // { Name: i18n.t('hj86'), ID: 3 },分时额外处理 |
| | | { Name: i18n.t('hj86'), ID: 4 }, |
| | | { Name: i18n.t('hj87'), ID: 0 }, |
| | | { Name: i18n.t('hj88'), ID: 1 }, |
| | | { Name: i18n.t('hj89'), ID: 2 }, |
| | | { Name: i18n.t('hj90'), ID: 4 }, |
| | | { Name: i18n.t('hj91'), ID: 5 }, |
| | | { Name: i18n.t('hj92'), ID: 7 } |
| | | ] |
| | | { Name: i18n.t("hj86"), ID: 4 }, |
| | | { Name: i18n.t("hj87"), ID: 0 }, |
| | | { Name: i18n.t("hj88"), ID: 1 }, |
| | | { Name: i18n.t("hj89"), ID: 2 }, |
| | | { Name: i18n.t("hj90"), ID: 4 }, |
| | | { Name: i18n.t("hj91"), ID: 5 }, |
| | | { Name: i18n.t("hj92"), ID: 7 }, |
| | | ]; |
| | | |
| | | return data |
| | | } |
| | | return data; |
| | | }; |
| | | |
| | | DefaultData.GetKLineRightMenu = function () { |
| | | var data = [ |
| | | { Name: i18n.t('hj93'), ID: 0 }, |
| | | { Name: i18n.t('hj94'), ID: 1 }, |
| | | { Name: i18n.t('hj95'), ID: 2 } |
| | | ] |
| | | { Name: i18n.t("hj93"), ID: 0 }, |
| | | { Name: i18n.t("hj94"), ID: 1 }, |
| | | { Name: i18n.t("hj95"), ID: 2 }, |
| | | ]; |
| | | |
| | | return data |
| | | } |
| | | return data; |
| | | }; |
| | | |
| | | export default { |
| | | props: { |
| | | hktype: { |
| | | type: String, |
| | | default: '' |
| | | } |
| | | default: "", |
| | | }, |
| | | }, |
| | | data () { |
| | | data() { |
| | | return { |
| | | MinuteDayMenu: DefaultData.GetMinuteDayMenu(), |
| | | MinuteDayIndex: 0, |
| | |
| | | // Symbol:'000001_0.sh', |
| | | // 上海 1.sh 深圳0.sz 北京0.bj |
| | | |
| | | Symbol: '', // HQChart内部编码美股加后缀.usa AAPL.usa |
| | | Symbol: "", // HQChart内部编码美股加后缀.usa AAPL.usa |
| | | |
| | | Chart: null, // 图形控件 分时图 |
| | | KLineChart: null, // 图形控件 K线图 |
| | | NavMenuAry: DefaultData.GetTestSymbolMenu(), |
| | | |
| | | VolChartHeight: 10, |
| | | chartType: 'kline', |
| | | isShow: false |
| | | } |
| | | chartType: "kline", |
| | | isShow: false, |
| | | }; |
| | | }, |
| | | created () { |
| | | const { query } = this.$route |
| | | if (query.if_zhishu === '0') { |
| | | this.Symbol = `${query.code}_${query.sok}.${query.type}` |
| | | } else if ((query.code.indexOf('hk') > -1) && query.if_zhishu !== 0) { |
| | | this.Symbol = `${query.if_zhishu}_${query.sok}.hk` |
| | | created() { |
| | | const { query } = this.$route; |
| | | if (query.if_zhishu === "0") { |
| | | this.Symbol = `${query.code}_${query.sok}.${query.type}`; |
| | | } else if (query.code.indexOf("hk") > -1 && query.if_zhishu !== 0) { |
| | | this.Symbol = `${query.if_zhishu}_${query.sok}.hk`; |
| | | } else { |
| | | this.Symbol = `${query.if_zhishu}_${query.sok}.${query.type}` |
| | | this.Symbol = `${query.if_zhishu}_${query.sok}.${query.type}`; |
| | | } |
| | | // this.Symbol = 'BRK_A106.usa' |
| | | |
| | | console.log('------?????', this.Symbol) |
| | | console.log("------?????", this.Symbol); |
| | | // 写入localStorage |
| | | localStorage.setItem('hqchart_symbol', this.Symbol) |
| | | localStorage.setItem("hqchart_symbol", this.Symbol); |
| | | }, |
| | | |
| | | mounted () { |
| | | this.offHeight = this.$refs['rightContent'].offsetHeight |
| | | this.OnSize() |
| | | this.SetChartStyle() |
| | | mounted() { |
| | | this.offHeight = this.$refs["rightContent"].offsetHeight; |
| | | this.OnSize(); |
| | | this.SetChartStyle(); |
| | | this.$nextTick(() => { |
| | | this.CreateMinuteChart() |
| | | this.CreateKLineChart() |
| | | }) |
| | | let that = this |
| | | window.onresize = _.debounce(this.OnSize, 200) |
| | | this.CreateMinuteChart(); |
| | | this.CreateKLineChart(); |
| | | }); |
| | | let that = this; |
| | | window.onresize = _.debounce(this.OnSize, 200); |
| | | // 自适应K线图 |
| | | var elementResizeDetectorMaker = require('element-resize-detector') |
| | | var elementResizeDetectorMaker = require("element-resize-detector"); |
| | | |
| | | // 创建实例,无参数 |
| | | var erd = elementResizeDetectorMaker() // 使用默认选项(将使用基于对象的方法)。 |
| | | var erd = elementResizeDetectorMaker(); // 使用默认选项(将使用基于对象的方法)。 |
| | | |
| | | // 创建实例带参数 |
| | | // 使用基于超快速滚动的方法。 |
| | | // 这是推荐的策略。 |
| | | elementResizeDetectorMaker({ |
| | | // var erdUltraFast = elementResizeDetectorMaker({ |
| | | strategy: 'scroll', |
| | | // var erdUltraFast = elementResizeDetectorMaker({ |
| | | strategy: "scroll", |
| | | callOnAdd: true, // callOnAdd选项,用于确定在添加侦听器时是否应调用它们。默认为true。 |
| | | // 如果为true,则确保在添加侦听器后将对其进行调用。如果为false,则在添加侦听器时将不保证其 |
| | | // 被调用(不会阻止其被调用) |
| | | debug: true |
| | | }) |
| | | debug: true, |
| | | }); |
| | | // 监听class为staticNextMain的元素 大小变化 |
| | | var self = this |
| | | var self = this; |
| | | // 侦听元素的调整大小事件,并使用元素作为调整大小事件的参数来调用侦听器函数。传递给函数的选项将 |
| | | // 覆盖实例选项 |
| | | erd.listenTo(this.$refs['rightContent'], function ( |
| | | element |
| | | ) { |
| | | var width = element.offsetWidth |
| | | var height = element.offsetHeight |
| | | self.tableHeight = height - 100 // 将监听到的宽高进行赋值 |
| | | self.tableWidth = width - 20 |
| | | that.offHeight = height |
| | | that.OnSize() |
| | | }) |
| | | erd.listenTo(this.$refs["rightContent"], function (element) { |
| | | var width = element.offsetWidth; |
| | | var height = element.offsetHeight; |
| | | self.tableHeight = height - 100; // 将监听到的宽高进行赋值 |
| | | self.tableWidth = width - 20; |
| | | that.offHeight = height; |
| | | that.OnSize(); |
| | | }); |
| | | }, |
| | | |
| | | methods: { |
| | | OnSize () { |
| | | var width = this.$refs.right.clientWidth |
| | | OnSize() { |
| | | var width = this.$refs.right.clientWidth; |
| | | // var rightTab = this.$refs.rightTab |
| | | // var periodWrap = this.$refs.minute_periodWrap |
| | | // var indexWrap = this.$refs.minute_indexWrap |
| | | // var statementWrap = this.$refs.minute_statementWrap |
| | | // // var chartHeight = window.innerHeight - rightTab.offsetHeight - periodWrap.offsetHeight - indexWrap.offsetHeight; |
| | | var chartHeight = this.offHeight |
| | | var chartHeight = this.offHeight; |
| | | |
| | | var kline = this.$refs.kline |
| | | kline.style.width = width + 'px' |
| | | kline.style.height = chartHeight + 'px' |
| | | var kline2 = this.$refs.kline2 |
| | | kline2.style.width = width + 'px' |
| | | kline2.style.height = chartHeight + 'px' |
| | | var kline = this.$refs.kline; |
| | | kline.style.width = width + "px"; |
| | | kline.style.height = chartHeight + "px"; |
| | | var kline2 = this.$refs.kline2; |
| | | kline2.style.width = width + "px"; |
| | | kline2.style.height = chartHeight + "px"; |
| | | |
| | | if (this.Chart) this.Chart.OnSize() |
| | | if (this.KLineChart) this.KLineChart.OnSize() |
| | | if (this.Chart) this.Chart.OnSize(); |
| | | if (this.KLineChart) this.KLineChart.OnSize(); |
| | | }, |
| | | |
| | | changeRightContent (type) { |
| | | this.KLinePeriodIndex = 0 |
| | | this.chartType = type |
| | | changeRightContent(type) { |
| | | this.KLinePeriodIndex = 0; |
| | | this.chartType = type; |
| | | this.$nextTick(() => { |
| | | this.OnSize() |
| | | }) |
| | | this.OnSize(); |
| | | }); |
| | | }, |
| | | |
| | | SetChartStyle () { |
| | | EastMoney.HQData.SetMinuteChartCoordinate() |
| | | SetChartStyle() { |
| | | EastMoney.HQData.SetMinuteChartCoordinate(); |
| | | var blackStyle = HQChart.Chart.HQChartStyle.GetStyleConfig( |
| | | HQChart.Chart.STYLE_TYPE_ID.WHITE_ID |
| | | ) // 读取黑色风格配置 |
| | | HQChart.Chart.JSChart.SetStyle(blackStyle) |
| | | ); // 读取黑色风格配置 |
| | | |
| | | // blackStyle.UpBarColor = "rgba(0,0,0,1)"; |
| | | HQChart.Chart.JSChart.SetStyle(blackStyle); |
| | | }, |
| | | |
| | | CreateMinuteChart () { |
| | | if (this.Chart) return |
| | | CreateMinuteChart() { |
| | | if (this.Chart) return; |
| | | |
| | | var option = DefaultData.GetMinuteOption() |
| | | option.Symbol = this.Symbol |
| | | var option = DefaultData.GetMinuteOption(); |
| | | option.Symbol = this.Symbol; |
| | | option.NetworkFilter = (data, callback) => { |
| | | this.NetworkFilter(data, callback) |
| | | } // 网络请求回调函数 |
| | | this.NetworkFilter(data, callback); |
| | | }; // 网络请求回调函数 |
| | | |
| | | var chart = HQChart.Chart.JSChart.Init(this.$refs.kline) |
| | | chart.SetOption(option) |
| | | this.Chart = chart |
| | | var chart = HQChart.Chart.JSChart.Init(this.$refs.kline); |
| | | chart.SetOption(option); |
| | | this.Chart = chart; |
| | | }, |
| | | |
| | | CreateKLineChart () { |
| | | if (this.KLineChart) return |
| | | CreateKLineChart() { |
| | | if (this.KLineChart) return; |
| | | |
| | | var option = DefaultData.GetKLineOption() |
| | | option.Symbol = this.Symbol |
| | | var option = DefaultData.GetKLineOption(); |
| | | option.Symbol = this.Symbol; |
| | | option.NetworkFilter = (data, callback) => { |
| | | this.NetworkFilter(data, callback) |
| | | } // 网络请求回调函数 |
| | | var chart = HQChart.Chart.JSChart.Init(this.$refs.kline2) |
| | | HQChart.Chart.JSChart.GetResource().FrameLogo.Text = null |
| | | chart.SetOption(option) |
| | | this.KLineChart = chart |
| | | this.NetworkFilter(data, callback); |
| | | }; // 网络请求回调函数 |
| | | var chart = HQChart.Chart.JSChart.Init(this.$refs.kline2); |
| | | HQChart.Chart.JSChart.GetResource().FrameLogo.Text = null; |
| | | chart.SetOption(option); |
| | | this.KLineChart = chart; |
| | | }, |
| | | |
| | | ChangeSymbol ( |
| | | ChangeSymbol( |
| | | symbol // 切换股票 |
| | | ) { |
| | | var symbolUpper = symbol.toUpperCase() |
| | | var isShowVolChart = EastMoney.HQData.IsShowVolChart(symbolUpper) |
| | | var frame = this.Chart.JSChartContainer.Frame.SubFrame[1] |
| | | var symbolUpper = symbol.toUpperCase(); |
| | | var isShowVolChart = EastMoney.HQData.IsShowVolChart(symbolUpper); |
| | | var frame = this.Chart.JSChartContainer.Frame.SubFrame[1]; |
| | | if (isShowVolChart) { |
| | | if (frame.Height <= 0) frame.Height = this.VolChartHeight |
| | | if (frame.Height <= 0) frame.Height = this.VolChartHeight; |
| | | } else { |
| | | if (frame.Height > 0) this.VolChartHeight = frame.Height |
| | | frame.Height = 0 |
| | | if (frame.Height > 0) this.VolChartHeight = frame.Height; |
| | | frame.Height = 0; |
| | | } |
| | | var period = this.KLineChart.JSChartContainer.Period |
| | | var isShowRightMenu = EastMoney.HQData.IsEnableRight(period, symbol) // 是否显示复权菜单 |
| | | this.IsShowRightMenu = isShowRightMenu |
| | | var period = this.KLineChart.JSChartContainer.Period; |
| | | var isShowRightMenu = EastMoney.HQData.IsEnableRight(period, symbol); // 是否显示复权菜单 |
| | | this.IsShowRightMenu = isShowRightMenu; |
| | | |
| | | this.Symbol = symbol |
| | | this.Chart.ChangeSymbol(this.Symbol) |
| | | this.KLineChart.ChangeSymbol(this.Symbol) |
| | | this.Symbol = symbol; |
| | | this.Chart.ChangeSymbol(this.Symbol); |
| | | this.KLineChart.ChangeSymbol(this.Symbol); |
| | | }, |
| | | |
| | | OnClickMinuteDayMenu ( |
| | | OnClickMinuteDayMenu( |
| | | index, |
| | | item // 分时图天数 |
| | | ) { |
| | | this.MinuteDayIndex = index |
| | | this.Chart.ChangeDayCount(item.ID) |
| | | this.MinuteDayIndex = index; |
| | | this.Chart.ChangeDayCount(item.ID); |
| | | }, |
| | | |
| | | OnClickKLinePeriodMenu ( |
| | | OnClickKLinePeriodMenu( |
| | | index, |
| | | item, |
| | | type // K线周期 |
| | | ) { |
| | | |
| | | // if (index !== 0) { //分时额外处理才注释的 |
| | | this.chartType = type |
| | | this.KLinePeriodIndex = index |
| | | this.KLineChart.ChangePeriod(item.ID) |
| | | this.chartType = type; |
| | | this.KLinePeriodIndex = index; |
| | | this.KLineChart.ChangePeriod(item.ID); |
| | | // } |
| | | }, |
| | | |
| | | OnClickKLineRightMenu ( |
| | | OnClickKLineRightMenu( |
| | | index, |
| | | item // K线复权 |
| | | ) { |
| | | this.KLineRightIndex = index |
| | | this.KLineChart.ChangeRight(item.ID) |
| | | this.KLineRightIndex = index; |
| | | this.KLineChart.ChangeRight(item.ID); |
| | | }, |
| | | |
| | | ChangeMinuteIndex ( |
| | | ChangeMinuteIndex( |
| | | item // 切换分时图指标 |
| | | ) { |
| | | if (this.Chart) this.Chart.ChangeIndex(item.WindowIndex, item.ID) |
| | | if (this.Chart) this.Chart.ChangeIndex(item.WindowIndex, item.ID); |
| | | }, |
| | | |
| | | ChangeKLineIndex ( |
| | | ChangeKLineIndex( |
| | | item // 切换K线图指标 |
| | | ) { |
| | | if (this.KLineChart) { this.KLineChart.ChangeIndex(item.WindowIndex, item.ID) } |
| | | }, |
| | | |
| | | NetworkFilter ( |
| | | data, |
| | | callback // 第3方数据替换接口 |
| | | ) { |
| | | EastMoney.HQData.Log('[HQChartDemo::NetworkFilter] data', data) |
| | | |
| | | switch (data.Name) { |
| | | // 分时图数据对接 |
| | | case 'MinuteChartContainer::RequestMinuteData': |
| | | EastMoney.HQData.NetworkFilter(data, callback) |
| | | break |
| | | case 'MinuteChartContainer::RequestHistoryMinuteData': |
| | | EastMoney.HQData.NetworkFilter(data, callback) |
| | | break |
| | | |
| | | case 'KLineChartContainer::RequestHistoryData': // 日线全量数据下载 |
| | | EastMoney.HQData.NetworkFilter(data, callback) |
| | | break |
| | | case 'KLineChartContainer::RequestRealtimeData': // 日线实时数据更新 |
| | | EastMoney.HQData.NetworkFilter(data, callback) |
| | | break |
| | | case 'KLineChartContainer::RequestFlowCapitalData': // 流通股本 |
| | | EastMoney.HQData.NetworkFilter(data, callback) |
| | | break |
| | | case 'KLineChartContainer::ReqeustHistoryMinuteData': // 分钟全量数据下载 |
| | | EastMoney.HQData.NetworkFilter(data, callback) |
| | | break |
| | | case 'KLineChartContainer::RequestMinuteRealtimeData': // 分钟增量数据更新 |
| | | EastMoney.HQData.NetworkFilter(data, callback) |
| | | break |
| | | if (this.KLineChart) { |
| | | this.KLineChart.ChangeIndex(item.WindowIndex, item.ID); |
| | | } |
| | | }, |
| | | |
| | | handleSelect (key, keyPath) { |
| | | console.log(key, keyPath) |
| | | this.ChangeSymbol(keyPath[1]) |
| | | NetworkFilter( |
| | | data, |
| | | callback // 第3方数据替换接口 |
| | | ) { |
| | | EastMoney.HQData.Log("[HQChartDemo::NetworkFilter] data", data); |
| | | |
| | | switch (data.Name) { |
| | | // 分时图数据对接 |
| | | case "MinuteChartContainer::RequestMinuteData": |
| | | EastMoney.HQData.NetworkFilter(data, callback); |
| | | break; |
| | | case "MinuteChartContainer::RequestHistoryMinuteData": |
| | | EastMoney.HQData.NetworkFilter(data, callback); |
| | | break; |
| | | |
| | | case "KLineChartContainer::RequestHistoryData": // 日线全量数据下载 |
| | | EastMoney.HQData.NetworkFilter(data, callback); |
| | | break; |
| | | case "KLineChartContainer::RequestRealtimeData": // 日线实时数据更新 |
| | | EastMoney.HQData.NetworkFilter(data, callback); |
| | | break; |
| | | case "KLineChartContainer::RequestFlowCapitalData": // 流通股本 |
| | | EastMoney.HQData.NetworkFilter(data, callback); |
| | | break; |
| | | case "KLineChartContainer::ReqeustHistoryMinuteData": // 分钟全量数据下载 |
| | | EastMoney.HQData.NetworkFilter(data, callback); |
| | | break; |
| | | case "KLineChartContainer::RequestMinuteRealtimeData": // 分钟增量数据更新 |
| | | EastMoney.HQData.NetworkFilter(data, callback); |
| | | break; |
| | | } |
| | | }, |
| | | |
| | | handleOpen (key, keyPath) { |
| | | console.log(key, keyPath) |
| | | handleSelect(key, keyPath) { |
| | | console.log(key, keyPath); |
| | | this.ChangeSymbol(keyPath[1]); |
| | | }, |
| | | |
| | | handleClose (key, keyPath) { |
| | | console.log(key, keyPath) |
| | | } |
| | | } |
| | | } |
| | | handleOpen(key, keyPath) { |
| | | console.log(key, keyPath); |
| | | }, |
| | | |
| | | handleClose(key, keyPath) { |
| | | console.log(key, keyPath); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | <style lang="less"> |
| | | @animation-duration: 0.3s; |
| | |
| | | width: 0.5rem; |
| | | height: 0.5rem; |
| | | } |
| | | .active { |
| | | color: rgb(2, 99, 226); |
| | | font-weight: 800; |
| | | background: rgb(245, 245, 245); |
| | | } |
| | | .active { |
| | | color: rgb(2, 99, 226); |
| | | font-weight: 800; |
| | | background: rgb(245, 245, 245); |
| | | } |
| | | } |
| | | canvas { |
| | | height: 100% !important; |
| | |
| | | <template> |
| | | <div :class="`wrapper ${$state.theme === 'red' ? 'red-theme' : 'black-theme'}`" style="background-color: #21212b;"> |
| | | <div |
| | | :class="`wrapper ${$state.theme === 'red' ? 'red-theme' : 'black-theme'}`" |
| | | style="background-color: #21212b" |
| | | > |
| | | <div> |
| | | <div @click="list_type=!list_type">1</div> |
| | | <div @click="list_type = !list_type">1</div> |
| | | </div> |
| | | <!-- <mt-header v-if="selected == '2'" fixed title=""> |
| | | <router-link to="/" slot="left"> |
| | |
| | | <mt-button slot="right" icon="search" @click="toSearch"></mt-button> |
| | | </mt-header> --> |
| | | |
| | | <!-- <mt-navbar class="top-navbar" v-model="selected" :style="selected != '2'?'':''" :fixed="selected != '2'?true:false"> |
| | | <!-- <mt-navbar class="top-navbar" v-model="selected" :style="selected != '2'?'':''" :fixed="selected != '2'?true:false"> |
| | | |
| | | <mt-tab-item v-if="this.$store.state.settingForm.indexDisplay" id="1">指数</mt-tab-item> |
| | | <mt-tab-item v-if="this.$store.state.settingForm.stockDisplay" id="2">沪深</mt-tab-item> |
| | |
| | | </mt-tab-container-item> |
| | | </mt-tab-container> --> |
| | | <!-- <foot></foot> --> |
| | | <div style="background-color: #21212b;"> |
| | | <div style="background-color: #21212b"> |
| | | <div class="list-title"> |
| | | <div class="list-left">代码</div> |
| | | <div class="list-conter">最in假</div> |
| | | <div class="list-right">涨跌幅</div> |
| | | </div> |
| | | <div class="list-content" v-for="item in 20"> |
| | | <div class="list-content" v-for="item in 20" :key="item"> |
| | | <div class="list-left"> |
| | | <div class="taini"> |
| | | <span class="circular">●</span> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | // import '@/assets/style/common.less' |
| | | import List0 from './list-all' |
| | | import List1 from './list-index' |
| | | import List2 from './list-stock' |
| | | import List3 from './list-kechuang' |
| | | import List4 from './list-futures' |
| | | import * as api from '@/axios/api' |
| | | import { Toast } from 'mint-ui' |
| | | import List0 from "./list-all"; |
| | | import List1 from "./list-index"; |
| | | import List2 from "./list-stock"; |
| | | import List3 from "./list-kechuang"; |
| | | import List4 from "./list-futures"; |
| | | import * as api from "@/axios/api"; |
| | | import { Toast } from "mint-ui"; |
| | | |
| | | export default { |
| | | components: { |
| | | |
| | | List0, |
| | | List1, |
| | | List2, |
| | |
| | | List4, |
| | | }, |
| | | props: {}, |
| | | data () { |
| | | data() { |
| | | return { |
| | | selected: '', // 选中 |
| | | selected: "", // 选中 |
| | | count: 1000, |
| | | loading: false, |
| | | list_type:false, |
| | | } |
| | | list_type: false, |
| | | }; |
| | | }, |
| | | watch: {}, |
| | | computed: {}, |
| | | created () { |
| | | this.getProductSetting() |
| | | created() { |
| | | this.getProductSetting(); |
| | | if (!this.$store.state.userInfo.phone) { |
| | | this.getUserInfo() |
| | | this.getUserInfo(); |
| | | } |
| | | }, |
| | | mounted () { |
| | | mounted() { |
| | | if (this.$route.query.index) { |
| | | this.selected = this.$route.query.index |
| | | this.selected = this.$route.query.index; |
| | | } |
| | | }, |
| | | methods: { |
| | | toSearch () { |
| | | this.$router.push('/searchlist') |
| | | toSearch() { |
| | | this.$router.push("/searchlist"); |
| | | }, |
| | | changeNavOptions (opts) { |
| | | this.selected = opts |
| | | changeNavOptions(opts) { |
| | | this.selected = opts; |
| | | }, |
| | | async getUserInfo () { |
| | | async getUserInfo() { |
| | | // 获取用户信息 |
| | | let data = await api.getUserInfo() |
| | | let data = await api.getUserInfo(); |
| | | if (data.status === 0) { |
| | | this.$store.state.userInfo = data.data |
| | | this.$store.state.userInfo = data.data; |
| | | } else { |
| | | Toast(data.msg) |
| | | Toast(data.msg); |
| | | } |
| | | }, |
| | | async getProductSetting () { |
| | | let data = await api.getProductSetting() |
| | | async getProductSetting() { |
| | | let data = await api.getProductSetting(); |
| | | if (data.status === 0) { |
| | | this.$store.state.settingForm = data.data |
| | | this.$store.state.settingForm = data.data; |
| | | // 1 指数 2 沪深 3科创 4 期货 |
| | | if (this.$store.state.settingForm.indexDisplay) { |
| | | this.selected = '1' |
| | | this.selected = "1"; |
| | | } else if (this.$store.state.settingForm.stockDisplay) { |
| | | this.selected = '2' |
| | | this.selected = "2"; |
| | | } else if (this.$store.state.settingForm.kcStockDisplay) { |
| | | this.selected = '3' |
| | | this.selected = "3"; |
| | | } else { |
| | | this.selected = '4' |
| | | this.selected = "4"; |
| | | } |
| | | } else { |
| | | this.$message.error(data.msg) |
| | | this.$message.error(data.msg); |
| | | } |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | <style lang="less" scoped> |
| | | .is-selected .mint-tab-item-label:hover { |
| | | text-decoration: none; |
| | | } |
| | | |
| | | .wrapper /deep/ .mint-tab-item-label { |
| | | font-size: 0.264rem; |
| | | } |
| | | |
| | | .mint-navbar .mint-tab-item.is-selected { |
| | | border-bottom: 2px solid #d50000; |
| | | text-decoration: none; |
| | | } |
| | | |
| | | .nav-wrapper { |
| | | padding-top: 0.8rem; |
| | | } |
| | | |
| | | .mint-tab-container-item { |
| | | // padding-top: 1.2rem; |
| | | |
| | | .mint-button--default { |
| | | padding: 0 0.2rem; |
| | | font-size: 0.24rem; |
| | | height: 0.5rem; |
| | | margin: 0.2rem 0.2rem 0; |
| | | color: #607d8b; |
| | | box-shadow: 0 0 1px #3b71b9; |
| | | background: none; |
| | | } |
| | | } |
| | | |
| | | .mint-navbar { |
| | | box-shadow: 0px 0px 4px rgba(6, 0, 1, 0.2); |
| | | |
| | | .mint-tab-item { |
| | | // background: #21252a; |
| | | padding: 0.2rem 0; |
| | | |
| | | &.is-selected { |
| | | border: none; |
| | | margin-bottom: 0; |
| | | } |
| | | |
| | | .mint-tab-item-label { |
| | | font-size: 0.22rem; |
| | | } |
| | | |
| | | .iconfont { |
| | | display: block; |
| | | font-size: 0.46rem; |
| | | margin-bottom: 0.12rem; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .top-navbar { |
| | | .mint-tab-item { |
| | | padding: 0.2rem 0; |
| | | width: 1.42rem; |
| | | height: 0.44rem; |
| | | margin: 0.3rem 0.1rem 0 0.1rem; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | border-radius: 0.01rem; |
| | | } |
| | | } |
| | | .wrapper { |
| | | width: 100%; |
| | | height: 100%; |
| | | position: relative; |
| | | box-sizing: border-box; |
| | | padding-top: 1rem; |
| | | .top-navbar { |
| | | position: absolute; |
| | | top: 0; |
| | | left: 50%; |
| | | width: 70%; |
| | | margin-left: -35%; |
| | | background: none; |
| | | box-shadow: none; |
| | | /deep/.mint-tab-item { |
| | | .mint-tab-item-label { |
| | | font-size: 0.28rem; |
| | | font-family: MicrosoftYaHeiLight; |
| | | font-weight: 400; |
| | | color: rgba(255, 255, 255, 1); |
| | | } |
| | | &.is-selected { |
| | | position: relative; |
| | | background: linear-gradient( |
| | | 0deg, |
| | | rgba(27, 166, 208, 1), |
| | | rgba(2, 116, 150, 1) |
| | | ); |
| | | &::after { |
| | | position: absolute; |
| | | content: ""; |
| | | display: block; |
| | | width: 0.67rem; |
| | | height: 0.06rem; |
| | | background-color: #138eb4; |
| | | bottom: 0; |
| | | left: 50%; |
| | | margin-left: -0.335rem; |
| | | display: none; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .order-list { |
| | | width: 100%; |
| | | height: 100%; |
| | | /deep/.mint-tab-container-wrap { |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | } |
| | | } |
| | | .top-search { |
| | | padding: 0.2rem; |
| | | .top-search-btn { |
| | | background-color: #16171d; |
| | | padding: 0.1rem 0.2rem; |
| | | width: 1.6rem; |
| | | text-align: center; |
| | | border-radius: 0.2rem; |
| | | color: #fff; |
| | | border: 1px solid rgb(96, 125, 139); |
| | | margin: 0 auto; |
| | | } |
| | | } |
| | | .red-theme { |
| | | .top-search-btn { |
| | | border-color: #000; |
| | | color: #000; |
| | | background-color: #fff; |
| | | } |
| | | .top-navbar { |
| | | /deep/.mint-tab-item { |
| | | background-color: #cbcbcb; |
| | | .mint-tab-item-label { |
| | | color: #000; |
| | | } |
| | | &.is-selected { |
| | | background: #bb1715; |
| | | .mint-tab-item-label { |
| | | color: #fff; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="less" scoped> |
| | | .is-selected .mint-tab-item-label:hover { |
| | | text-decoration: none; |
| | | } |
| | | .list-title { |
| | | display: flex; |
| | | width: calc(100vw - 32px); |
| | | margin-left: 0; |
| | | margin-right: 0; |
| | | margin: 0 auto; |
| | | color: #8b8896; |
| | | border-bottom: #000 0.01rem solid; |
| | | align-items: center; |
| | | padding-top: 0.28rem; |
| | | padding-bottom: 0.28rem; |
| | | } |
| | | .taini { |
| | | color: #f1f0f5; |
| | | font-size: 0.38rem; |
| | | } |
| | | .circular { |
| | | color: rgb(169, 169, 169); |
| | | font-size: 0.4rem; |
| | | } |
| | | .list-left { |
| | | width: 39.44986%; |
| | | } |
| | | .down { |
| | | font-size: 0.38rem; |
| | | color: #ef534f; |
| | | } |
| | | .list-code { |
| | | padding-left: 0.35rem; |
| | | margin-top: 0.2rem; |
| | | transition: all 0.2s; |
| | | } |
| | | .list-content { |
| | | display: flex; |
| | | width: calc(100vw - 32px); |
| | | margin-left: 0; |
| | | margin-right: 0; |
| | | margin: 0 auto; |
| | | color: #8b8896; |
| | | border-bottom: #000 0.01rem solid; |
| | | align-items: center; |
| | | padding-top: 0.28rem; |
| | | padding-bottom: 0.28rem; |
| | | transition: all 0.2s; |
| | | background-color: #21212b; |
| | | } |
| | | |
| | | .wrapper /deep/ .mint-tab-item-label { |
| | | font-size: 0.264rem; |
| | | } |
| | | |
| | | .mint-navbar .mint-tab-item.is-selected { |
| | | border-bottom: 2px solid #d50000; |
| | | text-decoration: none; |
| | | } |
| | | |
| | | .nav-wrapper { |
| | | padding-top: 0.8rem; |
| | | } |
| | | |
| | | .mint-tab-container-item { |
| | | // padding-top: 1.2rem; |
| | | |
| | | .mint-button--default { |
| | | padding: 0 0.2rem; |
| | | font-size: 0.24rem; |
| | | height: 0.5rem; |
| | | margin: 0.2rem 0.2rem 0; |
| | | color: #607d8b; |
| | | box-shadow: 0 0 1px #3b71b9; |
| | | background: none; |
| | | } |
| | | } |
| | | |
| | | .mint-navbar { |
| | | box-shadow: 0px 0px 4px rgba(6, 0, 1, 0.2); |
| | | |
| | | .mint-tab-item { |
| | | // background: #21252a; |
| | | padding: 0.2rem 0; |
| | | |
| | | &.is-selected { |
| | | border: none; |
| | | margin-bottom: 0; |
| | | } |
| | | |
| | | .mint-tab-item-label { |
| | | font-size: 0.22rem; |
| | | } |
| | | |
| | | .iconfont { |
| | | display: block; |
| | | font-size: 0.46rem; |
| | | margin-bottom: 0.12rem; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .top-navbar { |
| | | .mint-tab-item { |
| | | padding: 0.2rem 0; |
| | | width: 1.42rem; |
| | | height: 0.44rem; |
| | | margin: 0.3rem 0.1rem 0 0.1rem; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | border-radius: 0.01rem; |
| | | } |
| | | } |
| | | .wrapper{ |
| | | width: 100%; |
| | | height: 100%; |
| | | position: relative; |
| | | box-sizing: border-box; |
| | | padding-top: 1rem; |
| | | .top-navbar{ |
| | | position: absolute; |
| | | top: 0; |
| | | left: 50%; |
| | | width: 70%; |
| | | margin-left: -35%; |
| | | background: none; |
| | | box-shadow: none; |
| | | /deep/.mint-tab-item{ |
| | | .mint-tab-item-label{ |
| | | font-size:0.28rem; |
| | | font-family:MicrosoftYaHeiLight; |
| | | font-weight:400; |
| | | color:rgba(255,255,255,1); |
| | | } |
| | | &.is-selected{ |
| | | position: relative; |
| | | background:linear-gradient(0deg,rgba(27,166,208,1),rgba(2,116,150,1)); |
| | | &::after{ |
| | | position: absolute; |
| | | content: ''; |
| | | display: block; |
| | | width: 0.67rem; |
| | | height: 0.06rem; |
| | | background-color: #138EB4; |
| | | bottom: 0; |
| | | left: 50%; |
| | | margin-left: -0.335rem; |
| | | display: none; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .order-list{ |
| | | width: 100%; |
| | | height: 100%; |
| | | /deep/.mint-tab-container-wrap{ |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | } |
| | | } |
| | | .top-search{ |
| | | padding: .2rem; |
| | | .top-search-btn { |
| | | background-color: #16171d; |
| | | padding: .1rem .2rem; |
| | | width: 1.60rem; |
| | | text-align: center; |
| | | border-radius: .2rem; |
| | | color: #fff; |
| | | border: 1px solid rgb(96, 125, 139); |
| | | margin: 0 auto; |
| | | } |
| | | } |
| | | .red-theme{ |
| | | .top-search-btn { |
| | | border-color: #000; |
| | | color: #000; |
| | | background-color: #fff; |
| | | } |
| | | .top-navbar{ |
| | | /deep/.mint-tab-item{ |
| | | background-color: #CBCBCB; |
| | | .mint-tab-item-label{ |
| | | color: #000; |
| | | } |
| | | &.is-selected{ |
| | | background: #BB1715; |
| | | .mint-tab-item-label{ |
| | | color: #fff; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .list-title{ |
| | | display: flex; |
| | | width: calc(100vw - 32px); |
| | | margin-left: 0; |
| | | margin-right: 0; |
| | | margin: 0 auto; |
| | | color: #8b8896; |
| | | border-bottom: #000 0.01rem solid; |
| | | align-items: center; |
| | | padding-top: 0.28rem; |
| | | padding-bottom: 0.28rem; |
| | | } |
| | | .taini{ |
| | | color: #f1f0f5; |
| | | font-size: 0.38rem; |
| | | } |
| | | .circular{ |
| | | color: rgb(169,169,169); |
| | | font-size: 0.4rem; |
| | | } |
| | | .list-left{ |
| | | width: 39.44986%; |
| | | } |
| | | .down{ |
| | | font-size: 0.38rem; |
| | | color: #ef534f; |
| | | } |
| | | .list-code{ |
| | | padding-left: 0.35rem; |
| | | margin-top: 0.2rem; |
| | | transition: all 0.2s; |
| | | } |
| | | .list-content{ |
| | | display: flex; |
| | | width: calc(100vw - 32px); |
| | | margin-left: 0; |
| | | margin-right: 0; |
| | | margin: 0 auto; |
| | | color: #8b8896; |
| | | border-bottom: #000 0.01rem solid; |
| | | align-items: center; |
| | | padding-top: 0.28rem; |
| | | padding-bottom: 0.28rem; |
| | | transition: all 0.2s; |
| | | background-color: #21212b; |
| | | } |
| | | |
| | | .list-conter{ |
| | | width: 21.90556%; |
| | | text-align: right; |
| | | } |
| | | .list-right{ |
| | | width: 38.64456%; |
| | | text-align: right; |
| | | } |
| | | .chgTextRed{ |
| | | float: right; |
| | | font-size: 0.38rem; |
| | | width: 50%; |
| | | border-radius: 2px; |
| | | color: #fff!important; |
| | | text-align: center; |
| | | height: 0.65rem; |
| | | line-height: 0.65rem; |
| | | background-color: #ef534f; |
| | | } |
| | | .minCaption{ |
| | | color: #8b8896; |
| | | font-size: 0.16rem; |
| | | transition: all 0.2s; |
| | | } |
| | | .list-conter { |
| | | width: 21.90556%; |
| | | text-align: right; |
| | | } |
| | | .list-right { |
| | | width: 38.64456%; |
| | | text-align: right; |
| | | } |
| | | .chgTextRed { |
| | | float: right; |
| | | font-size: 0.38rem; |
| | | width: 50%; |
| | | border-radius: 2px; |
| | | color: #fff !important; |
| | | text-align: center; |
| | | height: 0.65rem; |
| | | line-height: 0.65rem; |
| | | background-color: #ef534f; |
| | | } |
| | | .minCaption { |
| | | color: #8b8896; |
| | | font-size: 0.16rem; |
| | | transition: all 0.2s; |
| | | } |
| | | </style> |
| | |
| | | type: Array, |
| | | default: [], |
| | | }, |
| | | zxtabsList: { |
| | | type: Array, |
| | | default: [], |
| | | }, |
| | | }, |
| | | watch: { |
| | | active(e) { |
| | |
| | | }, |
| | | }); |
| | | }, |
| | | |
| | | // 获取列表 |
| | | getStock: handleDt.debounce(async function (a, b, c) { |
| | | a = this.active; |
| | | |
| | | let stockType = ""; |
| | | if (a !== "") { |
| | | let array = this.tabsList.filter((item) => item.key === a); |
| | | stockType = array[0].name; |
| | | } else { |
| | | // return this.getStockzx(); |
| | | let array = this.zxtabsList.filter((item) => item.key === b); |
| | | stockType = array[0].name; |
| | | } |
| | | console.log(a, b, c, "====="); |
| | | let pageNumVal = c || this.pageNumVal; |
| | | let opt = { |
| | | pageNum: pageNumVal, |
| | |
| | | stockType: stockType, |
| | | orderBy: "", |
| | | }; |
| | | let data = await api.getStockByType(opt); |
| | | |
| | | // console.log(); |
| | | // api.positionzx; |
| | | let data; |
| | | if (a !== "") { |
| | | data = await api.getStockByType(opt); |
| | | } else { |
| | | // 自选 |
| | | data = await api.positionzx(opt); |
| | | } |
| | | |
| | | this.loadings = false; |
| | | if (data.status === 0) { |
| | | console.log(data.data.list.length < 15); |
| | | if (data.data.list.length < 15) { |
| | | this.finished = true; |
| | | } |
| | |
| | | } |
| | | }, 500), |
| | | onLoads() { |
| | | console.log(333333); |
| | | // if (!this.loading) { |
| | | this.pageNumVal++; |
| | | this.loadings = true; |
| | | this.getStock(); |
| | | // } |
| | | }, |
| | | optionszx() {}, |
| | | }, |
| | |
| | | :sousuo="sousuo" |
| | | :zxactive="zxactive" |
| | | :tabsList="tabsList" |
| | | :zxtabsList="zxtabsList" |
| | | /> |
| | | </div> |
| | | </template> |
| | |
| | | data() { |
| | | return { |
| | | tabsList: [ |
| | | // { title: "自选", key: "" }, |
| | | { title: this.$t("hj61"), key: "" }, |
| | | { title: this.$t("数字货币"), key: "1", name: "SZHB" }, |
| | | { title: this.$t("马股"), key: "2", name: "MAS" }, |
| | | { title: this.$t("美股"), key: "3", name: "US" }, |
| | |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- <div class="jy" @click="handleGoToTransfer()"> |
| | | <div class="left_gn"> |
| | | <div class="l_icon"> |
| | | </div> |
| | | <div class="r_title"> |
| | | <span>{{ $t('hj145') }}</span> |
| | | </div> |
| | | </div> |
| | | <div class="right_gos"> |
| | | <img src="../../assets/img/youjiantou.png" alt /> |
| | | </div> |
| | | </div> --> |
| | | <div class="jy" @click="handleGoToAuthentication()"> |
| | | <div class="left_gn"> |
| | | <div class="l_icon"> |
| | |
| | | <img v-else src="../../assets/img/youjiantou.png" alt /> |
| | | </div> |
| | | </div> |
| | | <!-- |
| | | <div class="jy" @click="subclick()"> |
| | | <div class="left_gn"> |
| | | <div class="l_icon"> |
| | | </div> |
| | | <div class="r_title"> |
| | | <span>{{ $t('subdk') }}</span> |
| | | </div> |
| | | </div> |
| | | <div class="right_gos"> |
| | | <img src="../../assets/img/youjiantou.png" alt /> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="jy" @click="yebclick()"> |
| | | <div class="left_gn"> |
| | | <div class="l_icon"> |
| | | </div> |
| | | <div class="r_title"> |
| | | <span>{{ $t('yeb') }}</span> |
| | | </div> |
| | | </div> |
| | | <div class="right_gos"> |
| | | <img src="../../assets/img/youjiantou.png" alt /> |
| | | </div> |
| | | </div> --> |
| | | <div class="jy" @click="clicklang()"> |
| | | <div class="left_gn"> |
| | | <div class="l_icon"></div> |
| | |
| | | import { Toast, MessageBox } from "mint-ui"; |
| | | import { isNull, pwdReg } from "@/utils/utils"; |
| | | import { mapMutations } from "vuex"; |
| | | import { Notify } from "vant"; |
| | | |
| | | export default { |
| | | name: "newUser", |
| | |
| | | let data = await api.changePassword(opts); |
| | | if (data.status === 0) { |
| | | this.changeLoginPsdBox = false; |
| | | Toast(data.msg); |
| | | |
| | | this.pswDialog = false; |
| | | this.settingDialog = false; |
| | | Notify({ type: "success", message: this.$t("密码修改成功") }); |
| | | } else { |
| | | Toast(data.msg); |
| | | this.settingDialog = false; |
| | |
| | | <template> |
| | | <div class="wrapper"> |
| | | <!-- <div class="header"> |
| | | <mt-header title="提现记录"> |
| | | <router-link to="/user" slot="left"> |
| | | <mt-button icon="back">我的</mt-button> |
| | | </router-link> |
| | | </mt-header> |
| | | </div> --> |
| | | <div class="text-center"> |
| | | <div class="btn-group"> |
| | | <a href="#/cash" class="with-draw-btn">提现</a> |
| | | <a href="javascript:;" class="with-draw-detai-btn on">记录</a> |
| | | </div> |
| | | </div> |
| | | <div> |
| | | <div class="box page-part transaction"> |
| | | <div class="box-contain clearfix"> |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import cashList from './compontents/cash-list' |
| | | import cashList from "./compontents/cash-list"; |
| | | |
| | | export default { |
| | | components: { |
| | | cashList |
| | | cashList, |
| | | }, |
| | | props: {}, |
| | | data () { |
| | | data() { |
| | | return { |
| | | number: '' |
| | | } |
| | | number: "", |
| | | }; |
| | | }, |
| | | watch: {}, |
| | | computed: {}, |
| | | created () {}, |
| | | mounted () { |
| | | if (this.$state.theme =='red') { |
| | | document.body.classList.remove('black-bg') |
| | | document.body.classList.add('red-bg') |
| | | created() {}, |
| | | mounted() { |
| | | if (this.$state.theme == "red") { |
| | | document.body.classList.remove("black-bg"); |
| | | document.body.classList.add("red-bg"); |
| | | } |
| | | }, |
| | | beforeDestroy () { |
| | | if (this.$state.theme =='red') { |
| | | document.body.classList.remove('red-bg') |
| | | document.body.classList.add('black-bg') |
| | | beforeDestroy() { |
| | | if (this.$state.theme == "red") { |
| | | document.body.classList.remove("red-bg"); |
| | | document.body.classList.add("black-bg"); |
| | | } |
| | | }, |
| | | methods: { |
| | | toSure () { |
| | | toSure() { |
| | | // 确定 |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | <style lang="less" scoped> |
| | | .mint-header { |
| | | // background: #f4f4f4; |
| | | margin-bottom: 0.2rem; |
| | | } |
| | | .mint-header { |
| | | // background: #f4f4f4; |
| | | margin-bottom: 0.2rem; |
| | | } |
| | | .wrapper { |
| | | padding-bottom: 100px; |
| | | } |
| | | .btn-group { |
| | | // background: #f4f4f4; |
| | | text-align: center; |
| | | margin: 0 auto; |
| | | margin-bottom: 0.5rem; |
| | | |
| | | .btn-group { |
| | | // background: #f4f4f4; |
| | | a { |
| | | display: inline-block; |
| | | text-align: center; |
| | | margin: 0 auto; |
| | | margin-bottom: 0.5rem; |
| | | |
| | | a { |
| | | display: inline-block; |
| | | text-align: center; |
| | | font-size: 0.29rem; |
| | | height: 0.7rem; |
| | | line-height: 0.6rem; |
| | | width: 1.44rem; |
| | | margin: 0; |
| | | margin-top: 0; |
| | | padding: 0; |
| | | } |
| | | |
| | | .with-draw-btn { |
| | | position: relative; |
| | | right: -10px; |
| | | width: 1.51rem; |
| | | border-top-left-radius: 0.695rem; |
| | | border-bottom-left-radius: 0.695rem; |
| | | } |
| | | |
| | | .with-draw-detai-btn { |
| | | border-top-right-radius: 0.695rem; |
| | | border-bottom-right-radius: 0.695rem; |
| | | } |
| | | |
| | | .on { |
| | | color: #fff; |
| | | } |
| | | font-size: 0.29rem; |
| | | height: 0.7rem; |
| | | line-height: 0.6rem; |
| | | width: 1.44rem; |
| | | margin: 0; |
| | | margin-top: 0; |
| | | padding: 0; |
| | | } |
| | | |
| | | .transaction { |
| | | margin-top: 0.2rem; |
| | | color: rgba(100, 100, 100, 0.78); |
| | | |
| | | .transaction-title { |
| | | padding: 0.15rem 0.3rem; |
| | | } |
| | | |
| | | .empty { |
| | | height: 2.8rem; |
| | | line-height: 2.8rem; |
| | | } |
| | | .with-draw-btn { |
| | | position: relative; |
| | | right: -10px; |
| | | width: 1.51rem; |
| | | border-top-left-radius: 0.695rem; |
| | | border-bottom-left-radius: 0.695rem; |
| | | } |
| | | |
| | | .with-draw-detai-btn { |
| | | border-top-right-radius: 0.695rem; |
| | | border-bottom-right-radius: 0.695rem; |
| | | } |
| | | |
| | | .on { |
| | | color: #fff; |
| | | } |
| | | } |
| | | |
| | | .transaction { |
| | | margin-top: 0.2rem; |
| | | color: rgba(100, 100, 100, 0.78); |
| | | |
| | | .transaction-title { |
| | | padding: 0.15rem 0.3rem; |
| | | } |
| | | |
| | | .empty { |
| | | height: 2.8rem; |
| | | line-height: 2.8rem; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <div class="wrapper"> |
| | | <div v-if="list.length<=0" class="empty text-center"> |
| | | 暂无提现信息! |
| | | <div v-if="list.length <= 0" class="empty text-center"> |
| | | {{ $t("hj162e") }}! |
| | | </div> |
| | | <div v-else> |
| | | <ul |
| | | class="table-list" |
| | | v-infinite-scroll="loadMore" |
| | | infinite-scroll-disabled="loading" |
| | | infinite-scroll-distance="10"> |
| | | <li class="list-body" v-for="(item) in list" :key="item.key"> |
| | | infinite-scroll-distance="10" |
| | | > |
| | | <li class="list-body" v-for="item in list" :key="item.key"> |
| | | <div class="order-info-box"> |
| | | <div class="order-title"> |
| | | <span class="main"> |
| | | 提现至银行卡 |
| | | </span> |
| | | <span class="payNumber">₹{{item.withAmt}}</span> |
| | | <span class="main"> {{ $t("hjtxyhk") }} </span> |
| | | <span class="payNumber">${{ item.withAmt }}</span> |
| | | <span class="red pull-right"> |
| | | {{item.withStatus == 1?'提现成功':item.withStatus == 2?'提现失败':item.withStatus == 3?'订单取消':'审核中'}} |
| | | <i v-if="item.withStatus == 1" class="iconfont icon-tongguo4 animated bounceIn"></i> |
| | | <i v-if="item.withStatus==0" class="iconfont icon-dengdai animated bounceInDown"></i> |
| | | <i v-if="item.withStatus == 2" class="iconfont icon-failure animated bounceInDown"></i> |
| | | <i v-if="item.withStatus == 3" |
| | | class="iconfont icon-iconfontweitongguo animated bounceInDown"></i> |
| | | </span> |
| | | {{ |
| | | item.withStatus == 1 |
| | | ? $t("hjtxcg") |
| | | : item.withStatus == 2 |
| | | ? $t("hjtxsb") |
| | | : item.withStatus == 3 |
| | | ? $t("hjddqx") |
| | | : $t("hjshz") |
| | | }} |
| | | <i |
| | | v-if="item.withStatus == 1" |
| | | class="iconfont icon-tongguo4 animated bounceIn" |
| | | ></i> |
| | | <i |
| | | v-if="item.withStatus == 0" |
| | | class="iconfont icon-dengdai animated bounceInDown" |
| | | ></i> |
| | | <i |
| | | v-if="item.withStatus == 2" |
| | | class="iconfont icon-failure animated bounceInDown" |
| | | ></i> |
| | | <i |
| | | v-if="item.withStatus == 3" |
| | | class="iconfont icon-iconfontweitongguo animated bounceInDown" |
| | | ></i> |
| | | </span> |
| | | <!-- <span class="secondary ">123456789</span> --> |
| | | </div> |
| | | <div class="order-info"> |
| | | <p class="clearfix"> |
| | | <span class="col-xs-6">手续费:<b class="space">¥{{item.withFee}}</b></span> |
| | | <span class="col-xs-6" |
| | | >{{ $t("hj44") }}:<b class="space" |
| | | >${{ item.withFee }}</b |
| | | ></span |
| | | > |
| | | <!-- <span class="col-xs-6">实际到账金额:<b class="space" style="font-size:0.26rem">{{item.withAmt - item.withFee}}</b>元</span> --> |
| | | </p> |
| | | <p class="clearfix"> |
| | | <span class="col-xs-12">银行卡:<b class="space">{{item.bankName}}-{{item.bankAddress}}</b></span> |
| | | <span class="col-xs-12" |
| | | >{{ $t("hj247") }}:<b class="space" |
| | | >{{ item.bankName }}-{{ item.bankAddress }}</b |
| | | ></span |
| | | > |
| | | </p> |
| | | <p class="clearfix"> |
| | | <span class="col-xs-12">卡号:<b class="space">{{item.bankNo}}</b></span> |
| | | <span class="col-xs-12" |
| | | >{{ $t("hjkh") }}:<b class="space">{{ item.bankNo }}</b></span |
| | | > |
| | | </p> |
| | | <p v-if="item.withStatus == 3" class="clearfix"> |
| | | <span class="col-xs-12">取消原因:<b class="space">{{item.withMsg}}</b></span> |
| | | <span class="col-xs-12" |
| | | >{{ $t("hjqxyy") }}:<b class="space">{{ |
| | | item.withMsg |
| | | }}</b></span |
| | | > |
| | | </p> |
| | | <p v-if="item.withStatus == 2" class="clearfix"> |
| | | <span class="col-xs-12">失败原因:<b class="space">{{item.withMsg}}</b></span> |
| | | <span class="col-xs-12" |
| | | >{{ $t("hj201") }}:<b class="space">{{ |
| | | item.withMsg |
| | | }}</b></span |
| | | > |
| | | </p> |
| | | <p class="clearfix"> |
| | | <span class="secondary col-xs-6">时间: |
| | | <b v-if="item.applyTime">{{new Date(item.applyTime) | timeFormat}}</b> |
| | | <b v-else></b> |
| | | </span> |
| | | <span class="secondary col-xs-6" |
| | | >{{ $t("sj") }}: |
| | | <b v-if="item.applyTime">{{ |
| | | new Date(item.applyTime) | timeFormat |
| | | }}</b> |
| | | <b v-else></b> |
| | | </span> |
| | | </p> |
| | | </div> |
| | | <div v-if="item.withStatus == 0" class="order-foot clearfix"> |
| | | <div @click="cancle(item.id)" class="foot-btn"> |
| | | <i class='font-icon'></i> |
| | | 取消提现 |
| | | <i class="font-icon"></i> |
| | | {{ $t("hjqxtx") }} |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | <!-- <div class="capital"> |
| | | <div class="pro"> |
| | |
| | | loading... |
| | | </div> |
| | | <div v-show="!loading" class="load-all text-center"> |
| | | 已全部加载 |
| | | {{ $t("hj236") }} |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { Toast } from 'mint-ui' |
| | | import * as api from '@/axios/api' |
| | | import { Toast } from "mint-ui"; |
| | | import * as api from "@/axios/api"; |
| | | |
| | | export default { |
| | | components: {}, |
| | | props: {}, |
| | | data () { |
| | | data() { |
| | | return { |
| | | loading: false, |
| | | list: [], |
| | | pageNum: 1, |
| | | pageSize: 15 |
| | | } |
| | | pageSize: 15, |
| | | }; |
| | | }, |
| | | watch: {}, |
| | | computed: {}, |
| | | created () {}, |
| | | mounted () { |
| | | this.getListDetail() |
| | | created() {}, |
| | | mounted() { |
| | | this.getListDetail(); |
| | | }, |
| | | methods: { |
| | | async getListDetail () { |
| | | async getListDetail() { |
| | | let opt = { |
| | | withStatus: '', // 提现状态 0已提交,1转账成功,2转账失败 |
| | | withStatus: "", // 提现状态 0已提交,1转账成功,2转账失败 |
| | | pageNum: this.pageNum, |
| | | pageSize: 15 |
| | | } |
| | | let data = await api.withdrawList(opt) |
| | | pageSize: 15, |
| | | }; |
| | | let data = await api.withdrawList(opt); |
| | | if (data.status === 0) { |
| | | data.data.list.forEach(element => { |
| | | this.list.push(element) |
| | | }) |
| | | data.data.list.forEach((element) => { |
| | | this.list.push(element); |
| | | }); |
| | | } else { |
| | | Toast(data.msg) |
| | | Toast(data.msg); |
| | | } |
| | | }, |
| | | async loadMore () { |
| | | async loadMore() { |
| | | if (this.list.length < 10) { |
| | | return |
| | | return; |
| | | } |
| | | this.loading = true |
| | | this.loading = true; |
| | | // 加载下一页 |
| | | this.pageNum++ |
| | | await this.getListDetail() |
| | | this.loading = false |
| | | this.pageNum++; |
| | | await this.getListDetail(); |
| | | this.loading = false; |
| | | }, |
| | | async cancle (val) { |
| | | async cancle(val) { |
| | | // 取消提现 |
| | | // MessageBox.confirm('您确定要平仓吗?').then(async action => { |
| | | let opt = { |
| | | withId: val |
| | | } |
| | | let data = await api.canceloutMoney(opt) |
| | | withId: val, |
| | | }; |
| | | let data = await api.canceloutMoney(opt); |
| | | if (data.status === 0) { |
| | | this.list = [] |
| | | Toast(data.msg) |
| | | this.getListDetail() |
| | | this.list = []; |
| | | Toast(data.msg); |
| | | this.getListDetail(); |
| | | } else { |
| | | Toast(data.msg) |
| | | Toast(data.msg); |
| | | } |
| | | // }); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | <style lang="less" scoped> |
| | | .wrapper { |
| | | // padding-top: 0.9rem; |
| | | } |
| | | |
| | | .payNumber { |
| | | font-size: 0.3rem; |
| | | color: #ff8000; |
| | | } |
| | | |
| | | .table-list { |
| | | padding: 0.2rem 0; |
| | | |
| | | .list-body { |
| | | padding: 0.1rem 0.2rem; |
| | | |
| | | .capital:nth-child(1) { |
| | | border-top: 0.01rem solid #3f444a; |
| | | } |
| | | |
| | | .capital { |
| | | padding: 0.2rem; |
| | | // border-radius: 0.2rem; |
| | | border-bottom: 0.01rem solid #3f444a; |
| | | |
| | | div { |
| | | line-height: 0.4rem; |
| | | } |
| | | |
| | | .col-xs-4 { |
| | | padding-left: 0; |
| | | padding-right: 0; |
| | | } |
| | | |
| | | .pro { |
| | | color: #999; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="less" scoped> |
| | | .wrapper { |
| | | // padding-top: 0.9rem; |
| | | } |
| | | |
| | | .payNumber { |
| | | font-size: 0.3rem; |
| | | color: #ff8000; |
| | | } |
| | | |
| | | .table-list { |
| | | padding: 0.2rem 0; |
| | | |
| | | .list-body { |
| | | padding: 0.1rem 0.2rem; |
| | | |
| | | .capital:nth-child(1) { |
| | | border-top: 0.01rem solid #3f444a; |
| | | } |
| | | |
| | | .capital { |
| | | padding: 0.2rem; |
| | | // border-radius: 0.2rem; |
| | | border-bottom: 0.01rem solid #3f444a; |
| | | |
| | | div { |
| | | line-height: 0.4rem; |
| | | } |
| | | |
| | | .col-xs-4 { |
| | | padding-left: 0; |
| | | padding-right: 0; |
| | | } |
| | | |
| | | .pro { |
| | | color: #999; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <div> |
| | | <div v-if="list.length<=0" class="empty text-center"> |
| | | 暂无充值信息! |
| | | <div style="padding-bottom: 100px"> |
| | | <div v-if="list.length <= 0" class="empty text-center"> |
| | | {{ $t("hj228") }}! |
| | | </div> |
| | | <div v-else> |
| | | <ul |
| | | class="table-list" |
| | | v-infinite-scroll="loadMore" |
| | | infinite-scroll-disabled="loading" |
| | | infinite-scroll-distance="10"> |
| | | <li class="list-body" v-for="(item) in list" :key="item.key"> |
| | | infinite-scroll-distance="10" |
| | | > |
| | | <li class="list-body" v-for="item in list" :key="item.key"> |
| | | <div class="order-info-box"> |
| | | <div class="order-title"> |
| | | <span :class="['main',item.payChannel == 0?'ali':item.payChannel == 1?'cart':'wechat']"> |
| | | <!-- <i v-if="item.payChannel == 0 || item.payChannel == '支付宝'" style="color:#1296db;" |
| | | class="iconfont icon-zhifubao"></i> |
| | | <i v-if="item.payChannel == '微信' " style="color:#1296db;" class="iconfont icon-weixin"></i> |
| | | <i v-if="item.payChannel == 1 || item.payChannel == '对公转账'" style="color:#1296db;" |
| | | class="iconfont icon-yinlian"></i> --> |
| | | {{item.payChannel == 0?'支付宝':item.payChannel == 1?'对公转账':item.payChannel}} |
| | | </span> |
| | | <span class="payNumber">充值:<span :style="{color:$state.theme =='red'?'#BB1815':''}">¥{{item.payAmt}}</span></span> |
| | | <span :class="['main', 'wechat']"> |
| | | {{ item.payChannel }} |
| | | </span> |
| | | <span class="payNumber"> |
| | | {{ $t("hj172") }}: |
| | | <span |
| | | :style="{ color: $state.theme == 'red' ? '#BB1815' : '' }" |
| | | > |
| | | {{ item.channelName }} {{ item.payAmt }} |
| | | </span> |
| | | </span> |
| | | <span |
| | | :class="item.orderStatus == 1?'green pull-right':item.orderStatus == 2?'red pull-right':'red pull-right'"> |
| | | <i v-if="item.orderStatus == 1" class="iconfont icon-tongguo4 animated bounceIn"></i> |
| | | <i v-if="item.orderStatus==0" class="iconfont icon-dengdai animated bounceInDown"></i> |
| | | <i v-if="item.orderStatus == 2" class="iconfont icon-failure animated bounceInDown"></i> |
| | | <i v-if="item.orderStatus == 3" |
| | | class="iconfont icon-iconfontweitongguo animated bounceInDown"></i> |
| | | <!-- 1 => 成功 2 失败 3取消 4 等待 --> |
| | | {{item.orderStatus == 1?'充值成功':item.orderStatus == 2?'充值失败':item.orderStatus == 3?'取消充值':'审核中'}} |
| | | |
| | | </span> |
| | | <!-- <span class="secondary ">123456789</span> --> |
| | | :class=" |
| | | item.orderStatus == 1 |
| | | ? 'green pull-right' |
| | | : item.orderStatus == 2 |
| | | ? 'red pull-right' |
| | | : 'red pull-right' |
| | | " |
| | | > |
| | | <i |
| | | v-if="item.orderStatus == 1" |
| | | class="iconfont icon-tongguo4 animated bounceIn" |
| | | ></i> |
| | | <i |
| | | v-if="item.orderStatus == 0" |
| | | class="iconfont icon-dengdai animated bounceInDown" |
| | | ></i> |
| | | <i |
| | | v-if="item.orderStatus == 2" |
| | | class="iconfont icon-failure animated bounceInDown" |
| | | ></i> |
| | | <i |
| | | v-if="item.orderStatus == 3" |
| | | class="iconfont icon-iconfontweitongguo animated bounceInDown" |
| | | ></i> |
| | | <!-- 1 => 成功 2 失败 3取消 4 等待 --> |
| | | {{ |
| | | item.orderStatus == 1 |
| | | ? $t("hj231") |
| | | : item.orderStatus == 2 |
| | | ? $t("hj232") |
| | | : item.orderStatus == 3 |
| | | ? $t("hj233") |
| | | : $t("hjshz") |
| | | }} |
| | | </span> |
| | | </div> |
| | | <div class="order-info"> |
| | | <!-- <p class="clearfix"> |
| | | <span class="col-xs-5">{{item.orderDesc}}</span> |
| | | </p> --> |
| | | <!-- <p class="clearfix"> |
| | | <span class="col-xs-12">订单号:<b>{{item.orderSn}}</b></span> |
| | | </p> |
| | | <p class="clearfix"> |
| | | <span class="secondary col-xs-6">时间: |
| | | <b v-if="item.addTime">{{new Date(item.addTime) | timeFormat}}</b> |
| | | <b v-else></b> |
| | | </span> |
| | | </p> --> |
| | | <div class="info-mix "> |
| | | <span class="info-item">订单号:<b>{{item.orderSn}}</b></span> |
| | | <span class="info-item">时间: |
| | | <b v-if="item.addTime">{{new Date(item.addTime) | timeFormat}}</b> |
| | | <b v-else></b> |
| | | <div class="info-mix"> |
| | | <span class="info-item" |
| | | >订单号:<b>{{ item.orderSn }}</b></span |
| | | > |
| | | <span class="info-item" |
| | | >时间: |
| | | <b v-if="item.addTime">{{ |
| | | new Date(item.addTime) | timeFormat |
| | | }}</b> |
| | | <b v-else></b> |
| | | </span> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | <!-- <div class="capital"> |
| | | <div class="pro"> |
| | | {{item.payChannel}} <span class="pull-right">金额:{{item.payAmt}}</span> |
| | | </div> |
| | | <div class=" clearfix"> |
| | | <div class="col-xs-4"></div> |
| | | <div class="col-xs-8"> |
| | | <span class="pull-right"> |
| | | {{new Date(item.addTime) | timeFormat}} |
| | | </span> |
| | | </div> |
| | | </div> |
| | | </div> --> |
| | | </li> |
| | | </ul> |
| | | <div v-show="loading" class="load-all text-center"> |
| | |
| | | loading... |
| | | </div> |
| | | <div v-show="!loading" class="load-all text-center"> |
| | | 已全部加载 |
| | | {{ $t("hj236") }} |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { Toast } from 'mint-ui' |
| | | import * as api from '@/axios/api' |
| | | import { Toast } from "mint-ui"; |
| | | import * as api from "@/axios/api"; |
| | | |
| | | export default { |
| | | components: {}, |
| | | props: {}, |
| | | data () { |
| | | data() { |
| | | return { |
| | | loading: false, |
| | | list: [], |
| | | pageNum: 1, |
| | | pageSize: 15, |
| | | total: 0 |
| | | } |
| | | total: 0, |
| | | }; |
| | | }, |
| | | watch: {}, |
| | | computed: {}, |
| | | created () {}, |
| | | mounted () { |
| | | this.getListDetail() |
| | | created() {}, |
| | | mounted() { |
| | | this.getListDetail(); |
| | | }, |
| | | methods: { |
| | | async getListDetail () { |
| | | async getListDetail() { |
| | | let opt = { |
| | | payChannel: '', // 支付方式 |
| | | orderStatus: '', // 订单状态 |
| | | payChannel: "", // 支付方式 |
| | | orderStatus: "", // 订单状态 |
| | | pageNum: this.pageNum, |
| | | pageSize: 15 |
| | | } |
| | | let data = await api.rechargeList(opt) |
| | | pageSize: 15, |
| | | }; |
| | | let data = await api.rechargeList(opt); |
| | | if (data.status === 0) { |
| | | data.data.list.forEach(element => { |
| | | this.list.push(element) |
| | | }) |
| | | this.total = data.data.total |
| | | data.data.list.forEach((element) => { |
| | | this.list.push(element); |
| | | }); |
| | | this.total = data.data.total; |
| | | } else { |
| | | Toast(data.msg) |
| | | Toast(data.msg); |
| | | } |
| | | }, |
| | | async loadMore () { |
| | | async loadMore() { |
| | | if (this.list.length < 10 || this.total <= this.pageNum * this.pageNum) { |
| | | return |
| | | return; |
| | | } |
| | | this.loading = true |
| | | this.loading = true; |
| | | // 加载下一页 |
| | | this.pageNum++ |
| | | await this.getListDetail() |
| | | this.loading = false |
| | | this.pageNum++; |
| | | await this.getListDetail(); |
| | | this.loading = false; |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | <style lang="less" scoped> |
| | | .wrapper { |
| | | padding-top: 0.9rem; |
| | | } |
| | | |
| | | .table-list { |
| | | // padding: 0.2rem 0; |
| | | |
| | | .list-body { |
| | | padding: 0.1rem 0.3rem; |
| | | |
| | | .capital:nth-child(1) { |
| | | border-top: 0.01rem solid #3f444a; |
| | | } |
| | | |
| | | .capital { |
| | | padding: 0.2rem; |
| | | // border-radius: 0.2rem; |
| | | border-bottom: 0.01rem solid #3f444a; |
| | | |
| | | div { |
| | | line-height: 0.4rem; |
| | | } |
| | | |
| | | .col-xs-4 { |
| | | padding-left: 0; |
| | | padding-right: 0; |
| | | } |
| | | |
| | | .pro { |
| | | color: #999; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="less" scoped> |
| | | .wrapper { |
| | | padding-top: 0.9rem; |
| | | |
| | | .payNumber { |
| | | font-size: 0.24rem; |
| | | font-weight: bold; |
| | | span { |
| | | font-family: lightnumber; |
| | | } |
| | | |
| | | .table-list { |
| | | padding: 0.2rem 0; |
| | | |
| | | .list-body { |
| | | padding: 0.1rem 0.3rem; |
| | | |
| | | .capital:nth-child(1) { |
| | | border-top: 0.01rem solid #3f444a; |
| | | } |
| | | |
| | | .capital { |
| | | padding: 0.2rem; |
| | | // border-radius: 0.2rem; |
| | | border-bottom: 0.01rem solid #3f444a; |
| | | |
| | | div { |
| | | line-height: 0.4rem; |
| | | } |
| | | |
| | | .col-xs-4 { |
| | | padding-left: 0; |
| | | padding-right: 0; |
| | | } |
| | | |
| | | .pro { |
| | | color: #999; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .payNumber { |
| | | } |
| | | /deep/.order-info-box { |
| | | background-color: #16171d; |
| | | padding: 0; |
| | | .main { |
| | | padding: 0.05rem 0.15rem; |
| | | letter-spacing: 0; |
| | | text-align: center; |
| | | margin-right: 0.16rem; |
| | | font-size: 0.24rem; |
| | | font-weight: bold; |
| | | span { |
| | | font-family: lightnumber; |
| | | border-radius: 3px; |
| | | &.ali { |
| | | background-color: #138eb4; |
| | | } |
| | | &.cart { |
| | | background-color: #7266ba; |
| | | } |
| | | &.wechat { |
| | | background-color: #009c46; |
| | | } |
| | | } |
| | | /deep/.order-info-box { |
| | | background-color: #16171d; |
| | | padding: 0; |
| | | .main{ |
| | | padding: 0.05rem .15rem; |
| | | letter-spacing:0; |
| | | text-align: center; |
| | | margin-right: .16rem; |
| | | font-size: 0.24rem; |
| | | border-radius: 3px; |
| | | &.ali { |
| | | background-color: #138EB4; |
| | | } |
| | | &.cart { |
| | | background-color: #7266BA; |
| | | } |
| | | &.wechat { |
| | | background-color: #009C46; |
| | | } |
| | | .order-info { |
| | | border-bottom: 1px solid #2e3237; |
| | | padding-bottom: 0.3rem; |
| | | } |
| | | .order-title { |
| | | border-bottom: none; |
| | | } |
| | | .info-mix { |
| | | display: flex; |
| | | font-size: 0.2rem; |
| | | width: 100%; |
| | | .info-item { |
| | | margin-right: 0.2rem; |
| | | color: #fff8; |
| | | } |
| | | } |
| | | } |
| | | .red-theme { |
| | | .list-body { |
| | | background-color: #fff; |
| | | } |
| | | .order-info-box { |
| | | background-color: #fff; |
| | | .order-info { |
| | | border-bottom: 1px solid #2e3237; |
| | | padding-bottom: .3rem; |
| | | } |
| | | .order-title{ |
| | | border-bottom: none; |
| | | } |
| | | .info-mix{ |
| | | display: flex; |
| | | font-size: .2rem; |
| | | width: 100%; |
| | | .info-item { |
| | | margin-right: .2rem; |
| | | color: #fff8; |
| | | } |
| | | border-bottom-color: #e9e9e9; |
| | | } |
| | | } |
| | | .red-theme { |
| | | .list-body { |
| | | background-color: #fff; |
| | | } |
| | | .order-info-box { |
| | | background-color: #fff; |
| | | .order-info { |
| | | border-bottom-color: #e9e9e9; |
| | | } |
| | | } |
| | | .order-info-box .main.cart { |
| | | color: #fff; |
| | | } |
| | | .payNumber { |
| | | color: #000; |
| | | } |
| | | .order-info-box .info-mix .info-item{ |
| | | color: #666666; |
| | | } |
| | | .load-all{ |
| | | background-color: #fff; |
| | | } |
| | | .order-info-box .main.cart { |
| | | color: #fff; |
| | | } |
| | | .payNumber { |
| | | color: #000; |
| | | } |
| | | .order-info-box .info-mix .info-item { |
| | | color: #666666; |
| | | } |
| | | .load-all { |
| | | background-color: #fff; |
| | | } |
| | | } |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | <div style="height: 100vh"> |
| | | <van-nav-bar |
| | | :placeholder="true" |
| | | :safe-area-inset-top="true" |
| | | :title="$t('劃轉记录')" |
| | | left-arrow |
| | | @click-left="$router.go(-1)" |
| | | > |
| | | </van-nav-bar> |
| | | <div> |
| | | <van-list |
| | | v-model="loading" |
| | | :finished="finished" |
| | | finished-text="没有更多了" |
| | | @load="onLoad" |
| | | > |
| | | <van-cell v-for="item in list" :key="item.id"> |
| | | <div class="item"> |
| | | <div> |
| | | <div v-if="Number(item.amount) < 0"> |
| | | {{ $t("美股账户") }} > {{ $t("馬股账户") }} |
| | | </div> |
| | | <div v-else>{{ $t("馬股账户") }} > {{ $t("美股账户") }}</div> |
| | | </div> |
| | | <div>{{ Math.abs(Number(item.amount)) }} USD</div> |
| | | </div> |
| | | </van-cell> |
| | | </van-list> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getMoenyLog } from "@/axios/api"; |
| | | export default { |
| | | data() { |
| | | return { |
| | | list: [], |
| | | loading: false, |
| | | finished: false, |
| | | }; |
| | | }, |
| | | created() { |
| | | this.getMoenyLogs(); |
| | | }, |
| | | methods: { |
| | | async getMoenyLogs() { |
| | | const res = await getMoenyLog({ type: "转换" }); |
| | | const arr = res.data.filter((item) => item.accectType === "US"); |
| | | this.list = arr; |
| | | // 加载状态结束 |
| | | this.loading = false; |
| | | this.finished = true; |
| | | }, |
| | | onLoad() { |
| | | // 异步更新数据 |
| | | // setTimeout 仅做示例,真实场景中一般为 ajax 请求 |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | .item { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | font-size: 16px; |
| | | line-height: 38px; |
| | | } |
| | | /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> |
| | |
| | | :title="$t('劃轉')" |
| | | left-arrow |
| | | @click-left="onClickLeft" |
| | | /> |
| | | > |
| | | <template #right> |
| | | <van-icon |
| | | @click="$router.push('/transferindex-list')" |
| | | name="orders-o" |
| | | size="20" |
| | | /> |
| | | </template> |
| | | </van-nav-bar> |
| | | <main> |
| | | <div> |
| | | <div class="main-header"> |
| | |
| | | <script> |
| | | import * as api from "@/axios/api"; |
| | | import { Notify } from "vant"; |
| | | import { login, transfer } from "../../axios/api"; |
| | | import { transfer } from "../../axios/api"; |
| | | |
| | | export default { |
| | | created() { |
| | |
| | | components: {}, |
| | | data() { |
| | | return { |
| | | exchangeRate: 7.35, |
| | | exchangeRate: 4.59, |
| | | formValue: "", |
| | | from: {}, |
| | | to: {}, |
| | |
| | | if (res.status === 0) { |
| | | Notify({ type: "success", message: this.$t("划转成功") }); |
| | | setTimeout(() => { |
| | | this.$router.push("/user"); |
| | | this.$router.push("/transferindex-list"); |
| | | }, 500); |
| | | } else { |
| | | Notify({ type: "warning", message: res.msg }); |
| | |
| | | :title="$t('提款')" |
| | | left-arrow |
| | | @click-left="onClickLeft" |
| | | /> |
| | | > |
| | | <template #right> |
| | | <van-icon |
| | | @click="$router.push('/cashlist')" |
| | | name="orders-o" |
| | | size="20" |
| | | /> |
| | | </template> |
| | | </van-nav-bar> |
| | | <main> |
| | | <div class="main-title">{{ $t("請選擇提款账户") }}</div> |
| | | <van-cell |
| | |
| | | <div class="dz-title" v-if="rechargeAccountData.key !== undefined"> |
| | | <div>{{ $t("可用餘額") }}</div> |
| | | <div class="balance-text"> |
| | | {{ availableBalanceUSD }} {{ symbolCode }} |
| | | {{ availableBalanceUSD }} USD |
| | | <!-- {{ symbolCode }} --> |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- <div class="dz-title"> |
| | | <div>實際到帳</div> |
| | | <div class="balance-text">0.0000</div> |
| | | </div> --> |
| | | <!-- <div class="dz-title" v-if="rechargeAccountData.key !== undefined"> |
| | | <div>最小提款金額</div> |
| | | <div class="balance-text">0.0000</div> |
| | | </div> --> |
| | | </div> |
| | | <van-button |
| | | class="but" |
| | |
| | | assetsType: this.accectType, |
| | | }); |
| | | if (res.status === 0) { |
| | | Notify({ type: "success", message: this.$t("提款成功,等待审核") }); |
| | | Notify({ type: "success", message: this.$t("hj182") }); |
| | | setTimeout(() => { |
| | | this.onClickLeft(); |
| | | this.$router.push("/cashlist"); |
| | | }, 500); |
| | | } else { |
| | | Notify(res.msg); |
| | |
| | | this.getMoneyList = res.data; |
| | | res.data.map((item) => { |
| | | if (item.accectType === this.rechargeAccountData.key) { |
| | | console.log(item.accectType, "assetsType1"); |
| | | this.availableBalanceUSD = item.availableBalance; |
| | | this.availableBalanceUSD = item.availableBalanceUSD; |
| | | this.symbolCode = item.symbolCode; |
| | | this.accectType = item.accectType; |
| | | } |
| | |
| | | this.rechargeAccountData = e; |
| | | (this.getMoneyList || []).map((item) => { |
| | | if (item.accectType === this.rechargeAccountData.key) { |
| | | this.availableBalanceUSD = item.availableBalance; |
| | | this.availableBalanceUSD = item.availableBalanceUSD; |
| | | this.symbolCode = item.symbolCode; |
| | | this.accectType = item.accectType; |
| | | } |
| | |
| | | :title="$t('充值中心')" |
| | | left-arrow |
| | | @click-left="onClickLeft" |
| | | /> |
| | | > |
| | | <template #right> |
| | | <van-icon |
| | | @click="$router.push('/rechargelist')" |
| | | name="orders-o" |
| | | size="20" |
| | | /> |
| | | </template> |
| | | </van-nav-bar> |
| | | <main> |
| | | <div> |
| | | <div class="main-title">{{ $t("支持得支付渠道") }}</div> |
| | |
| | | </div> |
| | | <div class="main-title">{{ $t("收款人名字") }}</div> |
| | | <div class="white-input"> |
| | | <span>{{ paymentSelectData.channelImg }}</span> |
| | | <span>{{ paymentSelectData.channelName }}</span> |
| | | <i |
| | | class="iconfont icon-fuzhi fuzhi" |
| | | @click="(e) => copyText(e, channelImg)" |
| | | @click="(e) => copyText(e, paymentSelectData.channelName)" |
| | | ></i> |
| | | </div> |
| | | <div class="main-title">{{ $t("請選擇充值賬戶") }}</div> |
| | |
| | | {{ $t("上傳憑證:") }} |
| | | </div> |
| | | <el-upload |
| | | v-loading="loading" |
| | | :with-credentials="true" |
| | | class="avatar-uploader" |
| | | :action="admin + '/user/upload.do'" |
| | |
| | | </el-upload> |
| | | </div> |
| | | </div> |
| | | <!-- :disabled="butFlg" --> |
| | | <van-button |
| | | :disabled="butFlg" |
| | | class="but" |
| | | type="primary" |
| | | style="margin-top: 1.04rem; margin-bottom: 1.04rem" |
| | |
| | | // getPayInfo |
| | | data() { |
| | | return { |
| | | loading: false, |
| | | butFlg: true, |
| | | admin: apiUrl.baseURL, |
| | | value: 0, |
| | |
| | | img: this.form.img1key, |
| | | }); |
| | | if (res.status === 0) { |
| | | Notify({ type: "success", message: "充值成功" }); |
| | | Notify({ type: "success", message: this.$t("hj182") }); |
| | | setTimeout(() => { |
| | | this.onClickLeft(); |
| | | this.$router.push("/rechargelist"); |
| | | }, 500); |
| | | } |
| | | // Notify("请上传文件"); |
| | |
| | | handleAvatarSuccess(res, file) { |
| | | this.imgStatus = false; |
| | | this.form.img1key = res.data.url; |
| | | this.loading = false; |
| | | this.judgeValue(); |
| | | }, |
| | | beforeAvatarUpload(file) { |
| | | this.loading = true; |
| | | this.judgeValue(); |
| | | this.imgStatus = true; |
| | | }, |
| | | handleError() { |
| | | this.loading = false; |
| | | this.imgStatus = false; |
| | | }, |
| | | // upload |
| | |
| | | console.log(file); |
| | | let formData = new FormData(); |
| | | formData.append("file", file.file || file.raw); |
| | | console.log(formData); |
| | | // console.log(formData); |
| | | const res = await upload({ file: formData }); |
| | | console.log(res); |
| | | // console.log(res); |
| | | }, |
| | | copyText(e, data) { |
| | | var clipboard = new ClipboardJS(".copy-button", { |
| | |
| | | /deep/ .el-upload__input { |
| | | display: none !important; |
| | | } |
| | | /deep/ .avatar-uploader { |
| | | width: 2.740741rem; |
| | | height: 2.740741rem; |
| | | } |
| | | </style> |
| | |
| | | import Aggre from "@/page/user/agreement"; |
| | | import Recharge from "@/page/user/recharge"; |
| | | import RransferIndex from "@/page/user/ransferIndex"; |
| | | import transferindexList from "@/page/user//compontents/transferindex-list"; |
| | | import RechargeSure from "@/page/user/recharge-sure"; |
| | | import RechargeList from "@/page/user/rechargelist"; |
| | | import Cash from "@/page/user/cash"; |
| | |
| | | }, |
| | | |
| | | { |
| | | path: "/transferindex-list", |
| | | name: "transferindexList", |
| | | meta: { |
| | | title: "划转记录", |
| | | requireAuth: true, |
| | | index: 3020 |
| | | }, |
| | | component: transferindexList |
| | | }, |
| | | { |
| | | path: "/yebs", |
| | | name: "yebs", |
| | | meta: { |
| | |
| | | path: "/rechargelist", |
| | | name: "rechargelist", |
| | | meta: { |
| | | title: "充值记录", |
| | | title: i18n.t("hj168"), |
| | | requireAuth: true, |
| | | hasHeader: true, |
| | | index: 33 |
| | |
| | | path: "/cashlist", |
| | | name: "cashlist", |
| | | meta: { |
| | | title: "提现记录", |
| | | title: i18n.t("hj162"), |
| | | requireAuth: true, |
| | | hasHeader: true, |
| | | index: 36 |