Browse Source

修改as详情信息图表逻辑

DESKTOP-NE65RNK\Citrus_limon 1 năm trước cách đây
mục cha
commit
c7376d7dbb

+ 9 - 6
src/views/bot/arbitrage/detail.vue

@@ -73,7 +73,8 @@ const logtextRef = ref();
 const route = useRoute();
 
 interface PageConfig {
-  loading: boolean;
+  robotLoading: boolean;
+  balanceLoading: boolean;
 }
 interface Logs {
   time?: string;
@@ -81,7 +82,8 @@ interface Logs {
 }
 
 let pageConfig: PageConfig = reactive({
-  loading: false,
+  robotLoading: false,
+  balanceLoading: false,
 });
 
 const columns = ref([
@@ -104,9 +106,9 @@ let balanceChart = shallowRef();
 // 获取机器人详情
 const getRobotDetail = () => {
   const params = { id: route.params.id };
-  pageConfig.loading = true;
+  pageConfig.robotLoading = true;
   get_arbitrage_robot_detail(params, (data: any) => {
-    pageConfig.loading = false;
+    pageConfig.robotLoading = false;
     if (data.code == 200) {
       robotDetail.value = data.data;
       document.title = data.data.alias;
@@ -117,9 +119,9 @@ const getRobotDetail = () => {
 };
 const getBalanceInfo = (id: number) => {
   const params = { botId: id, startTime: +new Date() - 7 * 24 * 60 * 60 * 1000, endTime: +new Date() };
-  pageConfig.loading = true;
+  pageConfig.balanceLoading = true;
   get_arbitrage_robot_detail_balance(params, (data: any) => {
-    pageConfig.loading = false;
+    pageConfig.balanceLoading = false;
     if (data.code == 200) {
       balanceList.value = data.data;
 
@@ -230,6 +232,7 @@ onUnmounted(() => {
   -webkit-box-orient: vertical;
   overflow: hidden;
   line-break: anywhere;
+  line-clamp: 2; /* 控制显示的行数 */
   -webkit-line-clamp: 2; /* 控制显示的行数 */
 }
 .container-wp {

+ 1 - 0
src/views/bot/arbitrage/index.vue

@@ -165,6 +165,7 @@ onBeforeUnmount(() => {
   -webkit-box-orient: vertical;
   overflow: hidden;
   line-break: anywhere;
+  line-clamp: 2; /* 控制显示的行数 */
   -webkit-line-clamp: 2; /* 控制显示的行数 */
 }
 .custom-form-layout {

+ 44 - 19
src/views/bot/as/detail.vue

@@ -33,8 +33,11 @@
       <template v-slot:title>
         <span class="card-title">内部数据</span>
       </template>
+      <template v-slot:extra>
+        <lay-button class="card-button" @click="handleSwitchRun">{{ predictorSwitchRun ? "暂停" : "运行" }}</lay-button>
+      </template>
       <template v-slot:body>
-        <div class="predictor-chart" ref="predictorChartRef" @mouseleave="startPredictorInterval" @mouseenter="stopPredictorInterval"></div>
+        <div class="predictor-chart" ref="predictorChartRef"></div>
       </template>
     </lay-card>
 
@@ -81,7 +84,10 @@ const logtextRef = ref();
 const route = useRoute();
 
 interface PageConfig {
-  loading: boolean;
+  predictorLoading: boolean;
+  robotLoading: boolean;
+  balanceLoading: boolean;
+  logsLoading: boolean;
 }
 interface Logs {
   time?: string;
@@ -89,34 +95,37 @@ interface Logs {
 }
 
 let pageConfig: PageConfig = reactive({
-  loading: false,
+  predictorLoading: false,
+  robotLoading: false,
+  balanceLoading: false,
+  logsLoading: false,
 });
 
 const columns = ref([
   { title: "时间", key: "time", width: 150 },
   { title: "日志", key: "text", customSlot: "text" },
 ]);
+
 let logsList = ref<Array<Logs>>();
 let robotDetail = ref<any>({});
 let balanceList = ref([]);
 let balanceChart = shallowRef();
 let predictorChart = shallowRef();
 let predictorInterval = ref();
+let predictorSwitchRun = ref(true);
+let requestLimit = ref(false);
 let timer = ref();
 
 const getPredictorState = () => {
   const params = { botId: route.params.id, startTime: +new Date() - 7 * 24 * 60 * 60 * 1000, endTime: +new Date() };
-  if (pageConfig.loading) return;
-  pageConfig.loading = true;
+  if (pageConfig.predictorLoading) return;
+  pageConfig.predictorLoading = true;
   get_as_robot_detail(params, (data: any) => {
-    pageConfig.loading = false;
-
-    if (data.code == 200) {
-      !predictorChart.value ? initPredictorChart(data.data) : updatePredictorChart(data.data);
-    }
+    pageConfig.predictorLoading = false;
+    if (data.code == 200 && data.data != null) !predictorChart.value ? initPredictorChart(data.data) : updatePredictorChart(data.data);
+    requestLimit.value = false;
   });
 };
-getPredictorState();
 
 const initPredictorChart = (data: any) => {
   if (predictorChart.value != null && !predictorChart.value.isDisposed()) echarts.dispose(predictorChart.value);
@@ -389,8 +398,12 @@ const updatePredictorChart = (data: any) => {
 
 const startPredictorInterval = () => {
   if (!predictorInterval.value) {
+    getPredictorState();
     predictorInterval.value = setInterval(() => {
-      getPredictorState();
+      if (!requestLimit.value) {
+        requestLimit.value = true;
+        getPredictorState();
+      }
     }, 5000);
   }
 };
@@ -406,9 +419,9 @@ const stopPredictorInterval = () => {
 // 获取机器人详情
 const getRobotDetail = () => {
   const params = { id: route.params.id };
-  pageConfig.loading = true;
+  pageConfig.robotLoading = true;
   get_robot_detail(params, (data: any) => {
-    pageConfig.loading = false;
+    pageConfig.robotLoading = false;
     if (data.code == 200) {
       robotDetail.value = data.data;
       document.title = data.data.name;
@@ -418,9 +431,9 @@ const getRobotDetail = () => {
 };
 const getBalanceInfo = (id: number) => {
   const params = { id: id };
-  pageConfig.loading = true;
+  pageConfig.balanceLoading = true;
   get_remaining_detail(params, (data: any) => {
-    pageConfig.loading = false;
+    pageConfig.balanceLoading = false;
     if (data.code == 200) {
       balanceList.value = data.data;
 
@@ -458,11 +471,10 @@ const getBalanceInfo = (id: number) => {
 
 // 请求机器人日志
 const getLogsInfo = () => {
-  pageConfig.loading = true;
   const params = { id: route.params.id, n: 500 };
-  pageConfig.loading = true;
+  pageConfig.logsLoading = true;
   get_robot_logs(params, (data: any) => {
-    pageConfig.loading = false;
+    pageConfig.logsLoading = false;
     if (data.code == 200) {
       logsList.value = handlePageInfo(data.data);
     }
@@ -474,6 +486,16 @@ const showLog = (data: any) => {
   logtextRef.value.show(data);
 };
 
+const handleSwitchRun = () => {
+  if (predictorSwitchRun.value) {
+    predictorSwitchRun.value = false;
+    stopPredictorInterval();
+  } else {
+    predictorSwitchRun.value = true;
+    startPredictorInterval();
+  }
+};
+
 const handlePageInfo = (data: any) => {
   let infoList = data;
   let result = infoList.map((item: string) => {
@@ -558,6 +580,9 @@ onUnmounted(() => {
 </script>
 
 <style lang="scss" scoped>
+.card-button {
+  padding: 2px 18px;
+}
 .ellipsis-2 {
   display: -webkit-box;
   -webkit-box-orient: vertical;

+ 14 - 9
src/views/bot/manage/detail.vue

@@ -78,15 +78,20 @@ const logtextRef = ref();
 const route = useRoute();
 
 interface PageConfig {
-  loading: boolean;
+  robotLoading: boolean;
+  balanceLoading: boolean;
+  logsLoading: boolean;
 }
+
 interface Logs {
   time?: string;
   text?: string;
 }
 
 let pageConfig: PageConfig = reactive({
-  loading: false,
+  robotLoading: false,
+  balanceLoading: false,
+  logsLoading: false,
 });
 
 const columns = ref([
@@ -102,9 +107,9 @@ let timer = ref();
 // 获取机器人详情
 const getRobotDetail = () => {
   const params = { id: route.params.id };
-  pageConfig.loading = true;
+  pageConfig.robotLoading = true;
   get_robot_detail(params, (data: any) => {
-    pageConfig.loading = false;
+    pageConfig.robotLoading = false;
     if (data.code == 200) {
       robotDetail.value = data.data;
       document.title = data.data.name;
@@ -114,9 +119,9 @@ const getRobotDetail = () => {
 };
 const getBalanceInfo = (id: number) => {
   const params = { id: id };
-  pageConfig.loading = true;
+  pageConfig.balanceLoading = true;
   get_remaining_detail(params, (data: any) => {
-    pageConfig.loading = false;
+    pageConfig.balanceLoading = false;
     if (data.code == 200) {
       balanceList.value = data.data;
 
@@ -154,11 +159,10 @@ const getBalanceInfo = (id: number) => {
 
 // 请求机器人日志
 const getLogsInfo = () => {
-  pageConfig.loading = true;
   const params = { id: route.params.id, n: 500 };
-  pageConfig.loading = true;
+  pageConfig.logsLoading = true;
   get_robot_logs(params, (data: any) => {
-    pageConfig.loading = false;
+    pageConfig.logsLoading = false;
     if (data.code == 200) {
       logsList.value = handlePageInfo(data.data);
     }
@@ -256,6 +260,7 @@ onUnmounted(() => {
   -webkit-box-orient: vertical;
   overflow: hidden;
   line-break: anywhere;
+  line-clamp: 2; /* 控制显示的行数 */
   -webkit-line-clamp: 2; /* 控制显示的行数 */
 }
 .container-wp {