From d0610dd54b23991096366076ad2fca6fbef80040 Mon Sep 17 00:00:00 2001
From: "liu.shiyi" <liu.shiyi@ustcinfo.com>
Date: Mon, 25 Sep 2023 16:11:17 +0800
Subject: [PATCH] =?UTF-8?q?fix:tab=E7=BB=84=E4=BB=B6=E9=85=8D=E7=BD=AE?=
 =?UTF-8?q?=E4=B8=8D=E5=AE=8C=E5=96=84=E6=97=B6=E4=B8=8D=E4=BA=88=E4=BF=9D?=
 =?UTF-8?q?=E5=AD=98=EF=BC=8C=E5=BC=B9=E5=87=BA=E8=AD=A6=E5=91=8A=E6=8F=90?=
 =?UTF-8?q?=E7=A4=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../BigScreenDesign/PageDesignTop.vue         | 29 +++++++++++++++++--
 1 file changed, 27 insertions(+), 2 deletions(-)

diff --git a/data-room-ui/packages/BigScreenDesign/PageDesignTop.vue b/data-room-ui/packages/BigScreenDesign/PageDesignTop.vue
index 94383bc5..9ba455db 100644
--- a/data-room-ui/packages/BigScreenDesign/PageDesignTop.vue
+++ b/data-room-ui/packages/BigScreenDesign/PageDesignTop.vue
@@ -358,8 +358,10 @@ export default {
         type: 'warning',
         customClass: 'bs-el-message-box'
       }).then(async () => {
-        await this.save()
-        await this.backManagement()
+        const flag =  await this.save()
+        if (flag){
+          await this.backManagement()
+        }
       }).catch((action) => {
         if (action === 'cancel') {
           this.backManagement()
@@ -395,9 +397,32 @@ export default {
       })
       window.open(href, '_blank')
     },
+    // 保存时判断tabs组件里面的元素是否符合要求
+    validateTabs(chartList){
+      let isValid = true
+      if(chartList.length){
+        for(let chart of chartList){
+          if(chart.type === 'chartTab' && chart.customize.tabList.length !== 0 ){
+            for(let tab of  chart.customize.tabList){
+              if((!tab.name) || (!tab.chartCode)){
+                isValid = false
+                return isValid
+              }
+            }
+          }
+        }
+      }
+      return isValid
+    },
     // 保存
     async save (type, hasPageTemplateId = false) {
       const pageInfo = cloneDeep(this.handleSaveData())
+      //保存时判断tabs组件里面的元素是否符合要求
+      const flag = this.validateTabs(pageInfo?.chartList)
+      if (!flag){
+        this.$message.warning('请完成tab项配置')
+        return false
+      }
       // 保存页面
       try {
         if (!hasPageTemplateId) {