From 0b909dcd3e4c925b23c69a375a5077fb733766aa Mon Sep 17 00:00:00 2001
From: jhzh <1628036192@qq.com>
Date: Thu, 15 Aug 2024 14:07:52 +0800
Subject: [PATCH] 1

---
 src/page/trade/index.vue                |    6 
 src/components/perpetual-open/index.vue |    6 
 src/router/router.js                    |    2 
 src/page/TtrendDetails/index.vue        |    2 
 src/page/perpetualContract/index.vue    | 1338 +++++++++++++++++++++++++++++----------------------------
 src/components/kline-charts/index.vue   |    2 
 6 files changed, 694 insertions(+), 662 deletions(-)

diff --git a/src/components/kline-charts/index.vue b/src/components/kline-charts/index.vue
index a008bc1..8464840 100644
--- a/src/components/kline-charts/index.vue
+++ b/src/components/kline-charts/index.vue
@@ -168,7 +168,7 @@
           chart.applyNewData(data);
           this.$emit('updataLine', false)
         })
-      }, 10000);
+      }, 1000);
     },
     setChartType() {
       let type = 'area'
diff --git a/src/components/perpetual-open/index.vue b/src/components/perpetual-open/index.vue
index b12dc59..d09b07b 100644
--- a/src/components/perpetual-open/index.vue
+++ b/src/components/perpetual-open/index.vue
@@ -64,7 +64,7 @@
             </div>
             <div class="text-right items-end justify-end">
               <div class="">{{ $t("数量") }}</div>
-              <div class="mt-4" v-if="symbol=='love'">(ORBITAL)</div>
+              <div class="mt-4" v-if="symbol=='MOTHER'">(ORBITAL)</div>
 			  <div class="mt-4" v-else>({{ symbol | _symbolName() }})</div>
             </div>
           </div>
@@ -664,7 +664,7 @@
         obj = this.initOpen;
         if (!obj.lever || !obj.lever.length) {
           // 倍数
-          obj.lever = [{ id: 1, lever_rate: 1 }];
+          obj.lever = [{ id: 1, lever_rate: 100 }];
         }
         return obj;
       }
@@ -705,7 +705,7 @@
         session_token: "",
         direction: "buy", // 买or卖
         price_type: "opponent", // 市价or限价
-        lever_rate: 1, // 杠杆
+        lever_rate: 100, // 杠杆
         stop_price_profit: "",
         stop_price_loss: "",
         price: "",
diff --git a/src/page/TtrendDetails/index.vue b/src/page/TtrendDetails/index.vue
index f288135..92b6670 100644
--- a/src/page/TtrendDetails/index.vue
+++ b/src/page/TtrendDetails/index.vue
@@ -16,7 +16,7 @@
     <trade-head
       @openRecord="openRecord"
       :backFunc="() => $router.push('/')"
-      :symbol="symbol=='love'?'ORBITAL':symbol.toUpperCase()"
+      :symbol="symbol=='mother'?'ORBITAL':symbol.toUpperCase()"
       :islevel="true"
       @update-coin="onUpdate"
       @data="quote = $event"
diff --git a/src/page/perpetualContract/index.vue b/src/page/perpetualContract/index.vue
index c735903..e7a3c5e 100644
--- a/src/page/perpetualContract/index.vue
+++ b/src/page/perpetualContract/index.vue
@@ -1,692 +1,720 @@
 <template>
-	<div :key="symbol" class="pb-108 no_touch">
+  <div :key="symbol" class="pb-108 no_touch">
+	 
+    <!-- 头部区 -->
+    <ContractHeader
+      :symbol="symbol"
+	  :newname="newname"
+      :range="range"
+      :selectIndex="selectIndex"
+      :balance="userInfo.balance"
+      @tab="onTopTab"
+      @update-coin="onUpdate"
+    >
+    </ContractHeader>
 
-		<!-- 头部区 -->
-
-		<ContractHeader :symbol="symbol" :newname="newname" :range="range" :selectIndex="selectIndex"
-			:balance="userInfo.balance" @tab="onTopTab" @update-coin="onUpdate">
-		</ContractHeader>
-		
-
-		<div :class="{ slide2: animated1 }" v-if="selectIndex === 1">
-			<div class="mainBackground" key="x">
-				<PerpetualOpen class="pl-30 pr-30" :key="keyIndex + 'a'" :selectIndex="selectIndex" :symbol="symbol"
-					:green-data="bids" :red-data="asks" :price="price" :init-open="initOpen" :init-close="initClose"
-					:init-futrue="initFutrue" @ordered="onOrdered" :currentType="currentType"
-					@changeCurrentType="changeCurrentType" @changeValueBack="changeValueBack">
-				</PerpetualOpen>
-				<!-- <div class="line"></div> -->
-				<PerpetualOrder class="pl-30 pr-30" :key="keyIndex + 'b'" :symbol="symbol" :order-cur="orderCur"
-					:order-hold="orderHold" :topIndex="selectIndex" :futrue-hold="futrueHold"
-					:futrue-histroy="futrueHistroy" @tab="onTab" @recall="onRecall">
-				</PerpetualOrder>
-			</div>
-		</div>
-		<div :class="{ slide1: animated2 }" v-else>
-			<div class="mainBackground" key="y">
-				<PerpetualOpen class="pl-30 pr-30" :key="keyIndex + 'c'" :selectIndex="selectIndex" :symbol="symbol"
-					:green-data="bids" :red-data="asks" :price="price" :init-open="initOpen" :init-close="initClose"
-					:init-futrue="initFutrue" @ordered="onOrdered" @changeValueBack="changeValueBack"
-					@iszyzs="oniszyzs">
-				</PerpetualOpen>
-				<div class="line"></div>
-				<!-- 委托/持仓-->
-				<PerpetualOrder class="pl-30 pr-30" :key="keyIndex + 'd'" :symbol="symbol" :order-cur="orderCur"
-					:order-hold="orderHold" :price="price" :topIndex="selectIndex" :futrue-hold="futrueHold"
-					:futrue-histroy="futrueHistroy" @tab="onTab" @recall="onRecall" @iszyzs="oniszyzs">
-				</PerpetualOrder>
-			</div>
-		</div>
-		<div class="fixed w-full shadow z-10 tabBackground1">
-			<div class="flex justify-between px-30 py-10">
-				<span class="font-24 textColor2">
-					{{ newname}}&nbsp;{{ $t("k线图表") }}
-				</span>
-				<van-icon class="textColor" @click.stop="showCharts = !showCharts"
-					:name="showCharts ? 'arrow-down' : 'arrow-up'"></van-icon>
-			</div>
-			<k-line-charts :update-key="updateKey" :update-data="quote" :symbol="symbol" v-if="symbol && showCharts"
-				:showBottom="false" />
-		</div>
-	</div>
+    <div :class="{ slide2: animated1 }" v-if="selectIndex === 1">
+      <div class="mainBackground" key="x">
+        <PerpetualOpen
+          class="pl-30 pr-30"
+          :key="keyIndex + 'a'"
+          :selectIndex="selectIndex"
+          :symbol="symbol"
+          :green-data="bids"
+          :red-data="asks"
+          :price="price"
+          :init-open="initOpen"
+          :init-close="initClose"
+          :init-futrue="initFutrue"
+          @ordered="onOrdered"
+          :currentType="currentType"
+          @changeCurrentType="changeCurrentType"
+          @changeValueBack="changeValueBack"
+        >
+        </PerpetualOpen>
+        <!-- <div class="line"></div> -->
+        <PerpetualOrder
+          class="pl-30 pr-30"
+          :key="keyIndex + 'b'"
+          :symbol="symbol"
+          :order-cur="orderCur"
+          :order-hold="orderHold"
+          :topIndex="selectIndex"
+          :futrue-hold="futrueHold"
+          :futrue-histroy="futrueHistroy"
+          @tab="onTab"
+          @recall="onRecall"
+        >
+        </PerpetualOrder>
+      </div>
+    </div>
+    <div :class="{ slide1: animated2 }" v-else>
+      <div class="mainBackground" key="y">
+        <PerpetualOpen
+          class="pl-30 pr-30"
+          :key="keyIndex + 'c'"
+          :selectIndex="selectIndex"
+          :symbol="symbol"
+          :green-data="bids"
+          :red-data="asks"
+          :price="price"
+          :init-open="initOpen"
+          :init-close="initClose"
+          :init-futrue="initFutrue"
+          @ordered="onOrdered"
+          @changeValueBack="changeValueBack"
+		  @iszyzs="oniszyzs"
+        >
+        </PerpetualOpen>
+        <div class="line"></div>
+        <!-- 委托/持仓-->
+        <PerpetualOrder
+          class="pl-30 pr-30"
+          :key="keyIndex + 'd'"
+          :symbol="symbol"
+          :order-cur="orderCur"
+          :order-hold="orderHold"
+          :price="price"
+          :topIndex="selectIndex"
+          :futrue-hold="futrueHold"
+          :futrue-histroy="futrueHistroy"
+          @tab="onTab"
+          @recall="onRecall"
+		  @iszyzs="oniszyzs"
+        >
+        </PerpetualOrder>
+      </div>
+    </div>
+    <div class="fixed w-full shadow z-10 tabBackground1">
+      <div class="flex justify-between px-30 py-10">
+        <span class="font-24 textColor2">
+          {{ newname}}&nbsp;{{ $t("k线图表") }}
+        </span>
+        <van-icon
+          class="textColor"
+          @click.stop="showCharts = !showCharts"
+          :name="showCharts ? 'arrow-down' : 'arrow-up'"
+        ></van-icon>
+      </div>
+      <k-line-charts
+        :update-key="updateKey"
+        :update-data="quote"
+        :symbol="symbol"
+        v-if="symbol && showCharts"
+        :showBottom="false"
+      />
+    </div>
+  </div>
 </template>
 
 <script>
-	import ContractHeader from "@/components/contract-header/index.vue";
-	import PerpetualOpen from "@/components/perpetual-open/index.vue";
-	import PerpetualOrder from "@/components/perpetual-order/index.vue";
+import ContractHeader from "@/components/contract-header/index.vue";
+import PerpetualOpen from "@/components/perpetual-open/index.vue";
+import PerpetualOrder from "@/components/perpetual-order/index.vue";
 
-	import {
-		_getBalance,
-		_getDeepData,
-		_initOpen,
-		_initClose,
-		_orderListCur,
-		_orderListHold,
-		_futrueOrderInit,
-		_futrueOrderList,
-	} from "@/API/trade.api";
-	import {
-		_getHomeList
-	} from "@/API/home.api";
-	import {
-		Popup,
-		Swipe,
-		SwipeItem
-	} from "vant";
-	import {
-		mapActions,
-		mapGetters
-	} from "vuex";
-	import {
-		SET_COIN_LIST
-	} from "@/store/const.store";
-	import {
-		WS_URL
-	} from "@/config";
-	import {
-		getStorage
-	} from "@/utils/utis";
-	import KLineCharts from "@/components/kline-charts";
-	var showLength = 7;
-	export default {
-		name: "perpetualContract",
-		components: {
-			ContractHeader,
-			PerpetualOpen,
-			PerpetualOrder,
-			[Popup.name]: Popup,
-			[Swipe.name]: Swipe,
-			[SwipeItem.name]: SwipeItem,
-			KLineCharts,
-		},
-		computed: {
-			...mapGetters("user", ["userInfo"]),
-			...mapGetters({
-				coinList: "home/coinList",
-			}),
-		},
-		watch: {
-			selectIndex(val) {
-				showLength = 7;
-			},
-		},
-		data() {
-			const initArr = [];
-			for (let i = 0; i < showLength; i++) {
-				initArr.push({
-					amount: "--",
-					price: "--",
-				});
-			}
-			return {
+import {
+  _getBalance,
+  _getDeepData,
+  _initOpen,
+  _initClose,
+  _orderListCur,
+  _orderListHold,
+  _futrueOrderInit,
+  _futrueOrderList,
+} from "@/API/trade.api";
+import { _getHomeList } from "@/API/home.api";
+import { Popup, Swipe, SwipeItem } from "vant";
+import { mapActions, mapGetters } from "vuex";
+import { SET_COIN_LIST } from "@/store/const.store";
+import { WS_URL } from "@/config";
+import { getStorage } from "@/utils/utis";
+import KLineCharts from "@/components/kline-charts";
+var showLength = 7;
+export default {
+  name: "perpetualContract",
+  components: {
+    ContractHeader,
+    PerpetualOpen,
+    PerpetualOrder,
+    [Popup.name]: Popup,
+    [Swipe.name]: Swipe,
+    [SwipeItem.name]: SwipeItem,
+    KLineCharts,
+  },
+  computed: {
+    ...mapGetters("user", ["userInfo"]),
+    ...mapGetters({
+      coinList: "home/coinList",
+    }),
+  },
+  watch: {
+    selectIndex(val) {
+      showLength = 7;
+    },
+  },
+  data() {
+    const initArr = [];
+    for (let i = 0; i < showLength; i++) {
+      initArr.push({
+        amount: "--",
+        price: "--",
+      });
+    }
+    return {
 
-				quote: {},
-				initTimer: null,
-				keyIndex: 0,
-				timeout: null,
-				timer: null, // 底部持仓等的公用定时器
-				timer1: null, // tab切换动画
-				timer2: null, // 交割合约底部持仓等的公用定时器
-				balance: 0,
-				symbol: "",
-				price: "",
-				newname: '',
-				range: "",
-				stop_price_profit: "",
-				stop_price_loss: "",
-				initOpen: {},
-				initClose: {},
-				asks: initArr, // 卖单
-				bids: initArr, // 买单
-				orderCur: [], // 当前委托
-				orderHold: [], // 持有仓位
-				futrueHold: [], // 交割持仓
-				futrueHistroy: [], // 交割历史
-				sockets: {
-					quotes: null, // 行情
-					deep: null, /// 深度
-				},
-				curTab: "", // 当前委托还是持有仓位
-				selectIndex: 1, // 当前tab
-				initFutrue: {}, /// 交割合约
-				show: false, // popup
-				animated1: false,
-				animated2: false,
-				currentType: "",
-				showCharts: false,
-				// curRequest: [], //
-			};
-		},
-		async created() {
-			if (!this.coinList.length) {
-				await this.SET_COIN_LIST();
-			}
-			_getBalance().then((data) => {
-				// 获取用户余额
-				this.$store.commit("user/SET_USERINFO", {
-					balance: data.money
-				});
-				// const { money } = data
-				// this.balance = money
-			});
-		},
-		methods: {
-			...mapActions("home", [SET_COIN_LIST]),
-			...mapActions("user", ["GET_UERS_KYC"]),
+      quote: {},
+      initTimer: null,
+      keyIndex: 0,
+      timeout: null,
+      timer: null, // 底部持仓等的公用定时器
+      timer1: null, // tab切换动画
+      timer2: null, // 交割合约底部持仓等的公用定时器
+      balance: 0,
+      symbol: "",
+      price: "",
+	  newname:'',
+      range: "",
+      stop_price_profit: "",
+      stop_price_loss: "",
+      initOpen: {},
+      initClose: {},
+      asks: initArr, // 卖单
+      bids: initArr, // 买单
+      orderCur: [], // 当前委托
+      orderHold: [], // 持有仓位
+      futrueHold: [], // 交割持仓
+      futrueHistroy: [], // 交割历史
+      sockets: {
+        quotes: null, // 行情
+        deep: null, /// 深度
+      },
+      curTab: "", // 当前委托还是持有仓位
+      selectIndex: 1, // 当前tab
+      initFutrue: {}, /// 交割合约
+      show: false, // popup
+      animated1: false,
+      animated2: false,
+      currentType: "",
+      showCharts: false,
+      // curRequest: [], //
+    };
+  },
+  async created() {
+    if (!this.coinList.length) {
+      await this.SET_COIN_LIST();
+    }
+    _getBalance().then((data) => {
+      // 获取用户余额
+      this.$store.commit("user/SET_USERINFO", { balance: data.money });
+      // const { money } = data
+      // this.balance = money
+    });
+  },
+  methods: {
+    ...mapActions("home", [SET_COIN_LIST]),
+    ...mapActions("user", ["GET_UERS_KYC"]),
 
-			onUpdate(symbol) {
-				// 更新
-				this.symbol = symbol;
-				this.closeSocket();
-				this.init(symbol);
-			},
-			oniszyzs() {
-				this.iszyzs = true
-			},
-			onRecall() {
-				// 撤单or 平仓 evt
-				this.clearTimer();
-				_orderListHold(this.symbol).then((data) => {
-					this.orderHold = data;
-				});
-				this[this.curTab](this.symbol);
-				_initOpen(this.symbol).then((data) => {
-					this.initOpen = data;
-				});
-			},
-			onTopTab(evt) {
-				// 当前tab 永续/交割
-				this.keyIndex += 1;
-				this.selectIndex = evt;
-				this.clearTimer();
-				if (this.selectIndex / 1 === 1) {
-					//this.curTab = 'fetchOrderListCur'
-					this.curTab = "fetchOrderListHold";
-					// this.animated1 = true
-					// this.timer = setTimeout(() => {
-					//     this.animated1 = false
-					//     clearTimeout(this.timer)
-					// }, 200)
-					this.animated2 = true;
-					this.timer1 = setTimeout(() => {
-						this.animated2 = false;
-						clearTimeout(this.timer1);
-					}, 200);
-				} else {
-					// this.animated2 = true
-					// this.timer = setTimeout(() => {
-					//     this.animated2 = false
-					//     clearTimeout(this.timer)
-					// }, 200)
-					this.animated1 = true;
-					this.timer1 = setTimeout(() => {
-						this.animated1 = false;
-						clearTimeout(this.timer1);
-					}, 200);
-				}
-				console.log(this.curTab);
-				this[this.curTab](this.symbol);
-			},
-			onOrdered(evt) {
-				// 下单过后的回调
-				this.clearTimer();
-				// this.clearTimeout()
-				this.initParam(this.symbol, evt); // 重新初始化
-				// TODO: 这里要做判断
-				if (this.selectIndex / 1 === 1) {
-					this[this.curTab](this.symbol); // 重新调取记录
-					console.log("this.curTab", this.curTab);
-				} else {
-					// 交割合约
-					this[this.curTab](this.symbol);
-					// this.show = true
-					console.log("curTab", evt, this.curTab);
-				}
-				//console.log('下单后更新数据')
-			},
-			onTab(evt) {
-				// 点击tab后的回调
-				console.log("evt", evt);
-				this.clearTimer();
-				// this.clearTimeout()
-				this.curTab = evt;
-				this[evt](this.symbol);
-			},
-			fetchQoutes(symbol) {
-				// 获取当前行情
-				_getHomeList(symbol).then((data) => {
-					// 获取行情
-					this.handleQoutes(data);
-					this.startQuoteSocket(); // k线socket
-					this.startDeepSocket(); // socket
-				});
-			},
-			handleQoutes(data) {
-				if (data && data.length) {
-					const cur = data[0];
-					this.price = cur.close;
-					this.range = cur.change_ratio + "";
-					this.newname = cur.name
-					this.quote = cur;
-					this.updateKey++;
-				}
-			},
-			fetchDeepData(symbol) {
-				console.log("sd");
-				_getDeepData(symbol).then((data) => {
-					// 获取深度
-					console.log(data);
-					this.handleDeep(data);
-					this.startDeepSocket(); // socket
-				});
-			},
-			handleDeep(data) {
-				if (this.symbol !== data.symbol) {
-					return;
-				}
-				this.deepData = data;
-				const {
-					asks,
-					bids
-				} = data;
-				this.asks = asks.sort((a, b) => a.price - b.price).slice(0, showLength);
-				this.bids = bids.sort((a, b) => a.price - b.price).slice(-showLength);
-			},
-			startQuoteSocket() {
-				// 行情socket
-				this.sockets.quotes = new WebSocket(`${WS_URL}/1/${this.symbol}`);
-				// socket.onopen =  () => {
-				//     console.log('open')
-				//     socket.send('hello')
-				// }
-				this.sockets.quotes.onmessage = (evt) => {
-					const {
-						data
-					} = evt;
-					const {
-						code,
-						data: _data
-					} = JSON.parse(data);
-					if (code / 1 === 0) {
-						this.handleQoutes(_data);
-					}
-				};
-			},
-			startDeepSocket() {
-				// 开启socket链接
-				this.closeSocket();
+    onUpdate(symbol) {
+      // 更新
+      this.symbol = symbol;
+      this.closeSocket();
+      this.init(symbol);
+    },
+	oniszyzs(){
+		debugger
+		this.iszyzs = true
+	},
+    onRecall() {
+      // 撤单or 平仓 evt
+      this.clearTimer();
+      _orderListHold(this.symbol).then((data) => {
+        this.orderHold = data;
+      });
+      this[this.curTab](this.symbol);
+      _initOpen(this.symbol).then((data) => {
+        this.initOpen = data;
+      });
+    },
+    onTopTab(evt) {
+      // 当前tab 永续/交割
+      this.keyIndex += 1;
+      this.selectIndex = evt;
+      this.clearTimer();
+      if (this.selectIndex / 1 === 1) {
+        //this.curTab = 'fetchOrderListCur'
+        this.curTab = "fetchOrderListHold";
+        // this.animated1 = true
+        // this.timer = setTimeout(() => {
+        //     this.animated1 = false
+        //     clearTimeout(this.timer)
+        // }, 200)
+        this.animated2 = true;
+        this.timer1 = setTimeout(() => {
+          this.animated2 = false;
+          clearTimeout(this.timer1);
+        }, 200);
+      } else {
+        // this.animated2 = true
+        // this.timer = setTimeout(() => {
+        //     this.animated2 = false
+        //     clearTimeout(this.timer)
+        // }, 200)
+        this.animated1 = true;
+        this.timer1 = setTimeout(() => {
+          this.animated1 = false;
+          clearTimeout(this.timer1);
+        }, 200);
+      }
+      console.log(this.curTab);
+      this[this.curTab](this.symbol);
+    },
+    onOrdered(evt) {
+      // 下单过后的回调
+      this.clearTimer();
+      // this.clearTimeout()
+      this.initParam(this.symbol, evt); // 重新初始化
+      // TODO: 这里要做判断
+      if (this.selectIndex / 1 === 1) {
+        this[this.curTab](this.symbol); // 重新调取记录
+        console.log("this.curTab", this.curTab);
+      } else {
+        // 交割合约
+        this[this.curTab](this.symbol);
+        // this.show = true
+        console.log("curTab", evt, this.curTab);
+      }
+      //console.log('下单后更新数据')
+    },
+    onTab(evt) {
+      // 点击tab后的回调
+      console.log("evt", evt);
+      this.clearTimer();
+      // this.clearTimeout()
+      this.curTab = evt;
+      this[evt](this.symbol);
+    },
+    fetchQoutes(symbol) {
+      // 获取当前行情
+      _getHomeList(symbol).then((data) => {
+        // 获取行情
+        this.handleQoutes(data);
+        this.startQuoteSocket(); // socket
+      });
+    },
+    handleQoutes(data) {
+      if (data && data.length) {
+        const cur = data[0];
+        this.price = cur.close;
+        this.range = cur.change_ratio + "";
+		this.newname = cur.name
+        this.quote = cur;
+        this.updateKey++;
+      }
+    },
+    fetchDeepData(symbol) {
+      console.log("sd");
+      _getDeepData(symbol).then((data) => {
+        // 获取深度
+        console.log(data);
+        this.handleDeep(data);
+        this.startDeepSocket(); // socket
+      });
+    },
+    handleDeep(data) {
+      if (this.symbol !== data.symbol) {
+        return;
+      }
+      this.deepData = data;
+      const { asks, bids } = data;
+      this.asks = asks.sort((a, b) => a.price - b.price).slice(0, showLength);
+      this.bids = bids.sort((a, b) => a.price - b.price).slice(-showLength);
+    },
+    startQuoteSocket() {
+      // 行情socket
+      this.sockets.quotes = new WebSocket(`${WS_URL}/1/${this.symbol}`);
+      // socket.onopen =  () => {
+      //     console.log('open')
+      //     socket.send('hello')
+      // }
+      this.sockets.quotes.onmessage = (evt) => {
+        const { data } = evt;
+        const { code, data: _data } = JSON.parse(data);
+        if (code / 1 === 0) {
+          this.handleQoutes(_data);
+        }
+      };
+    },
+    startDeepSocket() {
+      // 开启socket链接
+      this.closeSocket();
 
-				this.socket = new WebSocket(`${WS_URL}/3/${this.symbol}`);
+      this.socket = new WebSocket(`${WS_URL}/3/${this.symbol}`);
 
-				this.socket.onopen = () => {
-					console.log("WebSocket connection established");
-				};
+      this.socket.onopen = () => {
+        console.log("WebSocket connection established");
+      };
 
-				this.socket.onmessage = (evt) => {
-					const {
-						data
-					} = evt;
-					const {
-						code,
-						data: _data
-					} = JSON.parse(data);
-					if (code / 1 === 0) {
-						this.handleDeep(_data);
-					}
-				};
+      this.socket.onmessage = (evt) => {
+        const { data } = evt;
+        const { code, data: _data } = JSON.parse(data);
+        if (code / 1 === 0) {
+          this.handleDeep(_data);
+        }
+      };
 
-				this.socket.onerror = (error) => {
-					console.error("WebSocket error:", error);
-					setTimeout(this.startDeepSocket, 5000); // 5秒后尝试重新连接
-				};
+      this.socket.onerror = (error) => {
+        console.error("WebSocket error:", error);
+        setTimeout(this.startDeepSocket, 5000); // 5秒后尝试重新连接
+      };
 
-				this.socket.onclose = (event) => {
-					console.log("WebSocket connection closed:", event);
-					// 重新连接,可以根据需求添加重连的逻辑,这里只是简单的示例
-				};
-			},
+      this.socket.onclose = (event) => {
+        console.log("WebSocket connection closed:", event);
+        // 重新连接,可以根据需求添加重连的逻辑,这里只是简单的示例
+      };
+    },
 
-			initParam(symbol, type) {
-				// 初始化参数
-				if (type === "open" || type === "long" || type === "short" || !type) {
-					let initFunTimer = null;
-					let initFun = () => {
-						_initOpen(symbol)
-							.then((data) => {
-								this.initOpen = data;
-								clearTimeout(initFunTimer);
-								initFunTimer = null;
-							})
-							.catch((err) => {
-								initFunTimer = setTimeout(() => {
-									initFun();
-								}, 3000);
-							});
-					};
-					initFun();
-				}
-				if (type === "close" || !type) {
-					let initFunTimer = null;
-					let initFun = () => {
-						_initClose(symbol)
-							.then((data) => {
-								this.initClose = data;
-								console.log(this.initClose);
-								clearTimeout(initFunTimer);
-								initFunTimer = null;
-							})
-							.catch((err) => {
-								initFunTimer = setTimeout(() => {
-									initFun();
-								}, 3000);
-							});
-					};
-					initFunTimer = setTimeout(() => {
-						initFun();
-					}, 600);
-				}
-				if (type === "futrue" || !type) {
-					_futrueOrderInit(symbol).then((data) => {
-						this.initFutrue = data;
-					});
-				}
-			},
-			fetchOrderListCur(symbol) {
-				// 当前委托
-				//console.log('当前委托')
-				if (this.userInfo.token) {
-					_orderListCur(symbol).then((data) => {
-						this.orderCur = data;
-					});
-					this.clearTimer();
-					this.timer = setInterval(() => {
-						_orderListCur(symbol).then((data) => {
-							// if (typeof this.timer === 'string') {
-							//   this.timer = null
-							//   return
-							// }
-							this.orderCur = data;
-						});
-					}, 1000);
-				} else {
-					this.orderCur = [];
-				}
-			},
-			fetchOrderListHold(symbol) {
-				// 当前持仓
-				if (!symbol) {
-					return;
-				}
-				if (this.userInfo.token) {
-					_orderListHold(symbol).then((data) => {
-						// this.orderHold = data
-						this.orderHold = data.sort(this.sortData);
-					});
-					this.timer = setInterval(() => {
-						_orderListHold(symbol).then((data) => {
-							// if (typeof this.timer === 'string') {
-							//   this.timer = null
-							//   return
-							// }
-							// this.orderHold = data
-							this.orderHold = data.sort(this.sortData);
-						});
-					}, 1000);
-				} else {
-					this.orderHold = [];
-				}
-			},
-			fetchFutrueHoldList(symbol) {
-				if (!symbol) {
-					return;
-				}
-				// 交割持仓
-				if (this.userInfo.token) {
-					let length = 0;
-					_futrueOrderList(symbol).then((data) => {
-						// this.futrueHold = data
-						this.futrueHold = data.sort(this.sortData);
-						length = data.length;
-					});
-					this.timer = setInterval(() => {
-						_futrueOrderList(symbol).then((data) => {
-							// if (typeof this.timer === 'string') {
-							//   this.timer = null
-							//   return
-							// }
+    initParam(symbol, type) {
+      // 初始化参数
+      if (type === "open" || type === "long" || type === "short" || !type) {
+        let initFunTimer = null;
+        let initFun = () => {
+          _initOpen(symbol)
+            .then((data) => {
+              this.initOpen = data;
+              clearTimeout(initFunTimer);
+              initFunTimer = null;
+            })
+            .catch((err) => {
+              initFunTimer = setTimeout(() => {
+                initFun();
+              }, 3000);
+            });
+        };
+        initFun();
+      }
+      if (type === "close" || !type) {
+        let initFunTimer = null;
+        let initFun = () => {
+          _initClose(symbol)
+            .then((data) => {
+              this.initClose = data;
+              console.log(this.initClose);
+              clearTimeout(initFunTimer);
+              initFunTimer = null;
+            })
+            .catch((err) => {
+              initFunTimer = setTimeout(() => {
+                initFun();
+              }, 3000);
+            });
+        };
+        initFunTimer = setTimeout(() => {
+          initFun();
+        }, 600);
+      }
+      if (type === "futrue" || !type) {
+        _futrueOrderInit(symbol).then((data) => {
+          this.initFutrue = data;
+        });
+      }
+    },
+    fetchOrderListCur(symbol) {
+      // 当前委托
+      //console.log('当前委托')
+      if (this.userInfo.token) {
+        _orderListCur(symbol).then((data) => {
+          this.orderCur = data;
+        });
+        this.clearTimer();
+        this.timer = setInterval(() => {
+          _orderListCur(symbol).then((data) => {
+            // if (typeof this.timer === 'string') {
+            //   this.timer = null
+            //   return
+            // }
+            this.orderCur = data;
+          });
+        }, 1000);
+      } else {
+        this.orderCur = [];
+      }
+    },
+    fetchOrderListHold(symbol) {
+      // 当前持仓
+      if (!symbol) {
+        return;
+      }
+      if (this.userInfo.token) {
+        _orderListHold(symbol).then((data) => {
+          // this.orderHold = data
+          this.orderHold = data.sort(this.sortData);
+        });
+        this.timer = setInterval(() => {
+          _orderListHold(symbol).then((data) => {
+            // if (typeof this.timer === 'string') {
+            //   this.timer = null
+            //   return
+            // }
+            // this.orderHold = data
+            this.orderHold = data.sort(this.sortData);
+          });
+        }, 1000);
+      } else {
+        this.orderHold = [];
+      }
+    },
+    fetchFutrueHoldList(symbol) {
+      if (!symbol) {
+        return;
+      }
+      // 交割持仓
+      if (this.userInfo.token) {
+        let length = 0;
+        _futrueOrderList(symbol).then((data) => {
+          // this.futrueHold = data
+          this.futrueHold = data.sort(this.sortData);
+          length = data.length;
+        });
+        this.timer = setInterval(() => {
+          _futrueOrderList(symbol).then((data) => {
+            // if (typeof this.timer === 'string') {
+            //   this.timer = null
+            //   return
+            // }
 
-							this.futrueHold = data.sort(this.sortData);
-							if (length != data.length) {
-								length = data.length;
-								_futrueOrderInit(symbol).then((dataList) => {
-									this.initFutrue = dataList;
-								});
-							}
-						});
-					}, 1000);
-				} else {
-					this.futrueHold = [];
-				}
-			},
-			fetchFutrueHistory(symbol) {
-				// 交割历史持仓
-				_futrueOrderList(symbol, "hisorders").then((data) => {
-					this.futrueHistroy = data;
-					// this.clearTimeout()
-				});
-			},
-			init(symbol) {
-				// 初始化页面
-				this.symbol = symbol.toLowerCase();
-				this.fetchQoutes(symbol);
-				this.fetchDeepData(symbol);
-				this.initParam(symbol); // 'open'
-				this.clearTimer();
-				//if (this.curTab === 'fetchOrderListCur') {
-				if (this.curTab === "fetchOrderListHold") {
-					//this.fetchOrderListCur(symbol)
-					this.fetchOrderListHold(symbol);
-				} else {
-					this.fetchFutrueHoldList(symbol);
-				}
-			},
-			closeSocket() {
-				this.sockets.quotes && this.sockets.quotes.close();
-				this.sockets.deep && this.sockets.deep.close();
-				this.sockets.quotes = null;
-				this.sockets.deep = null;
-			},
-			// clearTimeout(noNeed) {
-			//     clearTimeout(this.timeout)
-			//     if (noNeed) { // 防止timout定时器因接口返回继续触发
-			//       this.timeout = ''
-			//       return
-			//     }
-			//     this.timeout = null
-			// },
-			clearTimer() {
-				clearInterval(this.timer);
-				// if (isNeed) {
-				//   this.timer = ''
-				//   return
-				// }
-				this.timer = null;
-			},
-			changeCurrentType(type) {
-				this.currentType = type;
-			},
-			changeValueBack(val) {
-				if (val == 0) {
-					showLength = 7;
-				} else {
-					showLength = 13;
-				}
-			},
-			sortData(a, b) {
-				return new Date(b.open_time).getTime() - new Date(a.open_time).getTime();
-			},
-		},
-		mounted() {
-			this.GET_UERS_KYC();
-			let symbol = this.$route.params.symbol;
-			let catchSymbol = getStorage("symbol");
-			if (!symbol && catchSymbol) {
-				symbol = catchSymbol;
-			}
-			if (this.selectIndex / 1 === 2) {
-				this.curTab = "fetchFutrueHoldList";
-			} else {
-				this.curTab = "fetchOrderListHold";
-			}
-			this.symbol = symbol;
-			this.init(symbol);
-		},
-		activated() {
-			let symbol = this.$route.params.symbol;
-			let catchSymbol = getStorage("symbol");
-			if (!symbol && catchSymbol) {
-				symbol = catchSymbol;
-			}
-			if (this.selectIndex / 1 === 2) {
-				this.curTab = "fetchFutrueHoldList";
-			} else {
-				this.curTab = "fetchOrderListHold";
-			}
-			this.symbol = symbol;
-			this.init(symbol);
-		},
+            this.futrueHold = data.sort(this.sortData);
+            if (length != data.length) {
+              length = data.length;
+              _futrueOrderInit(symbol).then((dataList) => {
+                this.initFutrue = dataList;
+              });
+            }
+          });
+        }, 1000);
+      } else {
+        this.futrueHold = [];
+      }
+    },
+    fetchFutrueHistory(symbol) {
+      // 交割历史持仓
+      _futrueOrderList(symbol, "hisorders").then((data) => {
+        this.futrueHistroy = data;
+        // this.clearTimeout()
+      });
+    },
+    init(symbol) {
+      // 初始化页面
+      this.symbol = symbol.toLowerCase();
+      this.fetchQoutes(symbol);
+      this.fetchDeepData(symbol);
+      this.initParam(symbol); // 'open'
+      this.clearTimer();
+      //if (this.curTab === 'fetchOrderListCur') {
+      if (this.curTab === "fetchOrderListHold") {
+        //this.fetchOrderListCur(symbol)
+        this.fetchOrderListHold(symbol);
+      } else {
+        this.fetchFutrueHoldList(symbol);
+      }
+    },
+    closeSocket() {
+      this.sockets.quotes && this.sockets.quotes.close();
+      this.sockets.deep && this.sockets.deep.close();
+      this.sockets.quotes = null;
+      this.sockets.deep = null;
+    },
+    // clearTimeout(noNeed) {
+    //     clearTimeout(this.timeout)
+    //     if (noNeed) { // 防止timout定时器因接口返回继续触发
+    //       this.timeout = ''
+    //       return
+    //     }
+    //     this.timeout = null
+    // },
+    clearTimer() {
+      clearInterval(this.timer);
+      // if (isNeed) {
+      //   this.timer = ''
+      //   return
+      // }
+      this.timer = null;
+    },
+    changeCurrentType(type) {
+      this.currentType = type;
+    },
+    changeValueBack(val) {
+      if (val == 0) {
+        showLength = 7;
+      } else {
+        showLength = 13;
+      }
+    },
+    sortData(a, b) {
+      return new Date(b.open_time).getTime() - new Date(a.open_time).getTime();
+    },
+  },
+  mounted() {
+    this.GET_UERS_KYC();
+    let symbol = this.$route.params.symbol;
+    let catchSymbol = getStorage("symbol");
+    if (!symbol && catchSymbol) {
+      symbol = catchSymbol;
+    }
+    if (this.selectIndex / 1 === 2) {
+      this.curTab = "fetchFutrueHoldList";
+    } else {
+      this.curTab = "fetchOrderListHold";
+    }
+    this.symbol = symbol;
+    this.init(symbol);
+  },
+  activated() {
+    let symbol = this.$route.params.symbol;
+    let catchSymbol = getStorage("symbol");
+    if (!symbol && catchSymbol) {
+      symbol = catchSymbol;
+    }
+    if (this.selectIndex / 1 === 2) {
+      this.curTab = "fetchFutrueHoldList";
+    } else {
+      this.curTab = "fetchOrderListHold";
+    }
+    this.symbol = symbol;
+    this.init(symbol);
+  },
 
-		deactivated() {
-			this.closeSocket();
-			this.clearTimer();
-		},
-		activated() {
-			this.currentType = this.$route.query.currentType ?
-				this.$route.query.currentType :
-				"long";
-		},
-		beforeDestroy() {
-			this.closeSocket();
-			// this.clearTimeout(true)
-			this.clearTimer();
-		},
-	};
+  deactivated() {
+    this.closeSocket();
+    this.clearTimer();
+  },
+  activated() {
+    this.currentType = this.$route.query.currentType
+      ? this.$route.query.currentType
+      : "long";
+  },
+  beforeDestroy() {
+    this.closeSocket();
+    // this.clearTimeout(true)
+    this.clearTimer();
+  },
+};
 </script>
 
 <style lang="scss" scoped>
-	//.list-enter-active, .list-leave-active {
-	//  transition: all .5s;
-	//  transform: translateY(30px)
-	//}
-	//.list-enter, .list-leave-to
-	//  /* .list-leave-active for below version 2.1.8 */ {
-	//  transform: translateY(0)
-	//}
-	.no_touch {
-		-webkit-user-select: none;
-		user-select: none;
-		-ms-user-select: none;
-		-moz-user-select: none;
-		padding-bottom: 150px !important;
-	}
+	
+//.list-enter-active, .list-leave-active {
+//  transition: all .5s;
+//  transform: translateY(30px)
+//}
+//.list-enter, .list-leave-to
+//  /* .list-leave-active for below version 2.1.8 */ {
+//  transform: translateY(0)
+//}
+.no_touch {
+  -webkit-user-select: none;
+  user-select: none;
+  -ms-user-select: none;
+  -moz-user-select: none;
+  padding-bottom: 150px !important;
+}
 
-	.list-enter-active,
-	.list-leave-active {
-		will-change: transform;
-		transition: all 250ms;
-	}
+.list-enter-active,
+.list-leave-active {
+  will-change: transform;
+  transition: all 250ms;
+}
 
-	.list-enter {
-		opacity: 0;
-		transform: translate3d(-100%, 0, 0);
-	}
+.list-enter {
+  opacity: 0;
+  transform: translate3d(-100%, 0, 0);
+}
 
-	.list-leave {
-		opacity: 0;
-		transform: translate3d(100%, 0, 0);
-	}
+.list-leave {
+  opacity: 0;
+  transform: translate3d(100%, 0, 0);
+}
 
-	.rounded-view {
-		border-top-left-radius: 20px;
-		border-top-right-radius: 20px;
-		box-sizing: border-box;
-	}
+.rounded-view {
+  border-top-left-radius: 20px;
+  border-top-right-radius: 20px;
+  box-sizing: border-box;
+}
 
-	.my-swipe {
-		width: 100%;
-	}
+.my-swipe {
+  width: 100%;
+}
 
-	.my-swipe .van-swipe-item {}
+.my-swipe .van-swipe-item {
+}
 
-	.line {
-		height: 13px;
+.line {
+  height: 13px;
 
-		@include themify() {
-			background: themed("tab_background");
-		}
-	}
+  @include themify() {
+    background: themed("tab_background");
+  }
+}
 
-	@keyframes animate1 {
-		0% {
-			opacity: 1;
-			transform: translate3d(100%, 0, 0);
-		}
+@keyframes animate1 {
+  0% {
+    opacity: 1;
+    transform: translate3d(100%, 0, 0);
+  }
 
-		//   40% {
-		//      opacity: 1;
-		//     transform: translate3d(50%, 0, 0);
-		//   }
-		100% {
-			opacity: 1;
-			transform: translate3d(0%, 0, 0);
-		}
-	}
+  //   40% {
+  //      opacity: 1;
+  //     transform: translate3d(50%, 0, 0);
+  //   }
+  100% {
+    opacity: 1;
+    transform: translate3d(0%, 0, 0);
+  }
+}
 
-	@keyframes animate2 {
-		0% {
-			opacity: 1;
-			transform: translate3d(-100%, 0, 0);
-		}
+@keyframes animate2 {
+  0% {
+    opacity: 1;
+    transform: translate3d(-100%, 0, 0);
+  }
 
-		//   40% {
-		//      opacity: 1;
-		//     transform: translate3d(50%, 0, 0);
-		//   }
-		100% {
-			opacity: 1;
-			transform: translate3d(0%, 0, 0);
-		}
-	}
+  //   40% {
+  //      opacity: 1;
+  //     transform: translate3d(50%, 0, 0);
+  //   }
+  100% {
+    opacity: 1;
+    transform: translate3d(0%, 0, 0);
+  }
+}
 
-	.slide1 {
-		animation: animate1 200ms linear;
-	}
+.slide1 {
+  animation: animate1 200ms linear;
+}
 
-	.slide2 {
-		animation: animate2 200ms linear;
-	}
+.slide2 {
+  animation: animate2 200ms linear;
+}
 
-	.line {
-		@include themify() {
-			background: themed("divi_line");
-		}
-	}
+.line {
+  @include themify() {
+    background: themed("divi_line");
+  }
+}
 
-	::v-deep .contract-header {
-		@include themify() {
-			background: themed("main_background");
-		}
-	}
+::v-deep .contract-header {
+  @include themify() {
+    background: themed("main_background");
+  }
+}
 
-	.tabBackground1 {
-		@include themify() {
-			border: 1px solid themed("border_color1");
-		}
-	}
+.tabBackground1 {
+  @include themify() {
+    border: 1px solid themed("border_color1");
+  }
+}
 
-	.shadow {
-		bottom: 108px;
-		box-sizing: border-box;
-	}
-</style>
\ No newline at end of file
+.shadow {
+  bottom: 108px;
+  box-sizing: border-box;
+}
+</style>
diff --git a/src/page/trade/index.vue b/src/page/trade/index.vue
index cad1604..93962a6 100644
--- a/src/page/trade/index.vue
+++ b/src/page/trade/index.vue
@@ -370,6 +370,9 @@
 				this.curTab = "fetchOrderListHold";
 			}
 			this.symbol = symbol;
+			// if(this.symbol == 'ORBITAL'){
+			// 	this.symbol = 'mother'
+			// }
 			if (this.typeindex == 0) {
 				this.inita(symbol);
 			} else {
@@ -729,7 +732,8 @@
 				if (type === "open" || type === "long" || type === "short" || !type) {
 					let initFunTimer = null;
 					let initFun = () => {
-						_initOpen(symbol)
+						
+						_initOpen(symbol.toLowerCase())
 							.then((data) => {
 								this.initOpen = data;
 								clearTimeout(initFunTimer);
diff --git a/src/router/router.js b/src/router/router.js
index d9f4292..3f9bbaa 100644
--- a/src/router/router.js
+++ b/src/router/router.js
@@ -510,7 +510,7 @@
     {
       path: "/trade/:symbol",
       name: "Trade",
-      meta: { footer: true, keepAlive: true },
+      meta: { footer: true, keepAlive: true, requireAuth: true  },
       component: () =>
         import(
           /* webpackChunkName: "Home" */ /* webpackPrefetch: true */ "@/page/trade/index.vue"

--
Gitblit v1.9.3