11wqe1 14 時間 前
コミット
abcf5c7226

+ 1 - 0
src/components/sidebarL.vue

@@ -157,6 +157,7 @@ import { myMixin } from "@/mixins/mixin.js"
             }),
             // 跳转到看板
             async gotoKanban(){
+                if (this.roleUser.orgName != '荔园小学教育集团') return console.log('非荔园平台不可进入');
                 // 重新获取基础数据
                 await store.dispatch('user/getschPerInfo')
                 // 清除数据让数据看板中的埋点正常(不能这样写,那点返回校区的话就完蛋了)

+ 4 - 3
src/components/topPage.vue

@@ -4,14 +4,15 @@
             <div class="topBlock">
                 <div class="topTit" style="display: flex;">
                     <div>欢迎使用</div>
-                    <div style="color: #0354D7;margin: 0 15px;"><span v-if="roleUser.orgName">{{roleUser.orgName}}—</span>{{ roleUser.schoolName }}</div>
-                    <div>AI平台!</div>
+                    <div style="color: #0354D7;margin: 0 15px;">可可智慧教育平台</div>
+                    <!-- <div style="color: #0354D7;margin: 0 15px;"><span v-if="roleUser.orgName">{{roleUser.orgName}}—</span>{{ roleUser.schoolName }}</div>
+                    <div>AI平台!</div> -->
                 </div>
                 <div class="topDetail">
                      {{ fromL.basics.brief }}
                 </div>
             </div>
-            <img style="width: 96px;height: 96px;" src="../assets/img/root.png" alt="">
+            <img style="width: 150px;object-fit: cover;transform: scaleX(-1);" src="../assets/img/cocoloading.gif" alt="">
         </div>
 
         <div style="width: 100%;height: 100%;object-fit: cover;border-radius: 10px;height: 300px;margin-bottom: 14px;" 

+ 6 - 0
src/router/index.js

@@ -4,6 +4,7 @@ import HomeView from '../views/HomeView.vue';
 import homepageL  from '@/views/homepageL.vue'
 import loginPage from '@/views/login/loginPage.vue'
 import KanBan from '@/views/kanBan/index.vue';
+import dataBoardNew from '@/views/kanBan/components/dataBoardNew/index.vue';
 
 Vue.use(VueRouter);
 
@@ -43,6 +44,11 @@ const routes = [
     path:'/KanBan',
     name:'KanBan',
     component:KanBan
+  },
+   {
+    path:'/dataBoardNew',
+    name:'dataBoardNew',
+    component:dataBoardNew
   },
   {
     path: '/wxTest',

+ 5 - 1
src/views/kanBan/components/dataBoardNew/AIApp/chartList/ParetoChart.vue

@@ -82,7 +82,11 @@ export default {
             data: this.xData,
             axisLabel: {
               rotate: 30,
-              interval: 0
+              interval: 0,
+              margin: 20,  // 增加标签与轴线的间距
+               formatter: function(value) {
+                  return value.replace(/(.{6})/g, '$1\n');  // 每6字符换行
+                }
             }
           }
         ],

+ 2 - 2
src/views/kanBan/components/dataBoardNew/AIApp/index.vue

@@ -11,7 +11,7 @@
               <span>{{ index + 1 }}</span>
               <div class="hotConAATxt">{{ i.name }}</div>
             </div>
-            <div style="color: #3072D8;width: 40px;text-align: right">{{ i.form_count }}次</div>
+            <div style="color: #3072D8;width: 80px;text-align: right">{{ i.form_count }}次</div>
           </div>
         </div>
       </div>
@@ -23,7 +23,7 @@
               <span>{{ index + 1 }}</span>
               <div class="hotConAATxt">{{ i.username }}</div>
             </div>
-            <div style="color: #3072D8;width: 40px;text-align: right;">{{ i.form_count }}个</div>
+            <div style="color: #3072D8;width: 80px;text-align: right;">{{ i.form_count }}个</div>
           </div>
         </div>
       </div>

+ 1 - 1
src/views/kanBan/components/dataBoardNew/baseData/chartList/tealiveness.vue

@@ -90,7 +90,7 @@ props:['alldata'],
         tooltip: {
           trigger: 'axis',
           formatter: params => {
-            return `日期: ${params[0].name}<br/>数值: ${params[0].value}`;
+            return `日期: ${params[0].name}<br/>数值: ${params[0].value}`;
           }
         },
         xAxis: {

+ 2 - 1
src/views/kanBan/components/dataBoardNew/baseData/chartList/useTimer.vue

@@ -8,7 +8,8 @@
             <div @click="cut(2)" :class="cutNum ==2 ? 'hov' :''">月</div>
         </div>
     </div>
-    <div ref="chartContainer" style="width: 100%; flex: 1;"></div>
+    <div ref="chartContainer" v-if="chartData.length" style="width: 100%; flex: 1;"></div>
+    <div style="width: 100%;height: 100%;display: flex;justify-content: center;align-items: center;" v-else>暂无数据</div>
   </div>
 </template>
 

+ 26 - 1
src/views/kanBan/components/dataBoardNew/baseData/index.vue

@@ -86,16 +86,34 @@ export default {
                     // console.log('res.data[4][0].lab',res.data[4][0]);
 
                     // console.log('res.data[4][0].lab',res.data[4][0].lab);
+                    const now = new Date();
+                    const day = now.getDate();
+                    const month = now.getMonth() + 1; // 8 (月份从0开始)
+                    const week = this.getWeekOfMonth()
+                    // console.log('week',week);
                     
-                    res.data[4] = Array.from({ length: res.data[4][0].lab * 1 ? res.data[4][0].lab * 1 : 1}, (_, i) => {
+                    res.data[4] = Array.from({ length: day}, (_, i) => {
                         const lab = String(i + 1).padStart(2, '0'); // 生成lab为01到最新日期
                         const existingEntry = res.data[4].find(entry => entry.lab === lab);
                         return existingEntry ? existingEntry : { lab, num: 0 };
                     });
 
+                    res.data[5] = Array.from({ length: res.data[5].length ? res.data[5][res.data[5].length-1].lab * 1 : week}, (_, i) => {
+                        const lab = String(i + 1).padStart(2, '0'); // 生成lab为01到最新日期
+                        const existingEntry = res.data[5].find(entry => 0+entry.lab === lab);                        
+                        return existingEntry ? existingEntry : { lab, num: 0 };
+                    });
+
+                    res.data[6] = Array.from({ length: month}, (_, i) => {
+                        const lab = String(i + 1).padStart(2, '0'); // 生成lab为01到最新日期
+                        const existingEntry = res.data[6].find(entry => entry.lab === lab);
+                        return existingEntry ? existingEntry : { lab, num: 0 };
+                    });
+
                     // console.log('res.data[4]',res.data[4]);
 
                     this.alldata = res.data.slice(4)
+                    // console.log('this.alldata',this.alldata);
                     
 
                     this.loading = false;
@@ -105,6 +123,13 @@ export default {
                     console.error(err);
                 });
         },
+        // 获取今天是第几周
+        getWeekOfMonth() {
+            const date = new Date();
+            const dayOfMonth = date.getDate();
+            const dayOfWeek = date.getDay() || 7; // 将周日(0)转换为7
+            return Math.ceil((dayOfMonth + 6 - dayOfWeek) / 7);
+        }
     },
     mounted() {
         // console.log('getTeaBaseData',this.oid);

+ 7 - 7
src/views/kanBan/components/dataBoardNew/index.vue

@@ -8,10 +8,10 @@
     </div>
     <div class="db_bg">
       <div class="db_body">
-        <baseData v-if="pageEnd == 0" :oid="oid" :org="org" :key="opl"></baseData>
-        <AIApp v-if="pageEnd == 1" :oid="oid" :org="org" :userid="userid" :key="opl"></AIApp>
-        <teaing v-if="pageEnd == 2" :oid="oid" :org="org" :key="opl"></teaing>
-        <teaMange v-if="pageEnd == 3" :oid="oid" :org="org" :key="opl"></teaMange>
+        <baseData v-if="pageEnd == 0" :oid="oidL ? oidL : oid" :org="orgL ? orgL : org" :key="opl"></baseData>
+        <AIApp v-if="pageEnd == 1" :oid="oidL ? oidL : oid" :org="orgL ? orgL : org" :userid="useridL ? useridL : userid" :key="opl"></AIApp>
+        <teaing v-if="pageEnd == 2" :oid="oidL ? oidL : oid" :org="orgL ? orgL : org" :key="opl"></teaing>
+        <teaMange v-if="pageEnd == 3" :oid="oidL ? oidL : oid" :org="orgL ? orgL : org" :key="opl"></teaMange>
       </div>
     </div>
   </div>
@@ -42,9 +42,9 @@ export default {
   },
   data() {
     return {
-      // oid: this.oid,
-      // org: this.org,
-      // userid: this.$route.query.userid,
+      oidL: this.$route.query.oid,
+      orgL: this.$route.query.org,
+      useridL: this.$route.query.userid,
       opl:0,
       barList: [
           { name: '基础数据', ind: 1 },

+ 1 - 1
src/views/kanBan/components/dataBoardNew/teaing/chartList/BubbleChart.vue

@@ -101,7 +101,7 @@ export default {
         series: [{
           type: 'scatter',
           symbolSize: function(data) {
-            return data[2] * 4; // 气泡大小与课程数量成正比
+            return Math.min(data[2] * 4, 40); // 气泡大小与课程数量成正比
           },
           data: this.chartData,
 

+ 9 - 9
src/views/kanBan/components/dataBoardNew/teaing/chartList/aidedDesign.vue

@@ -76,17 +76,17 @@ export default {
         //   // bottom: '3%',
         //   containLabel: true
         // },
-        legend: {
-          bottom:'0%',
-          left:'5%',
-          right:'5%'
-        },
+        // legend: {
+        //   bottom:'0%',
+        //   left:'5%',
+        //   right:'5%'
+        // },
         series: [
           {
             name: '模式分类',
             type: 'pie',
-            center: ['50%', '33%'], // 调整饼图的中心位置
-            radius: ['0%', '30%'],
+            center: ['50%', '50%'], // 调整饼图的中心位置
+            radius: ['0%', '40%'],
             label: {
               show: false,
               position: 'center'
@@ -101,8 +101,8 @@ export default {
           {
             name: '学科分类',
             type: 'pie',
-            center: ['50%', '33%'], // 调整饼图的中心位置
-            radius: ['40%', '60%'],
+            center: ['50%', '50%'], // 调整饼图的中心位置
+            radius: ['50%', '80%'],
             label: {
               show: false
             },

+ 1 - 0
src/views/kanBan/components/dataBoardNew/teaing/chartList/appUseAss.vue

@@ -143,6 +143,7 @@ export default {
         },
         grid: {
           top: '23%',      // 上边距,给图表留出空间
+          left: 70
         },
         xAxis: {
           name: "单节课程AI迁入数量",

+ 3 - 3
src/views/kanBan/components/dataBoardNew/teaing/index.vue

@@ -13,7 +13,7 @@
               <span>{{ index + 1 }}</span>
               <div class="hotConAATxt">{{ i.title }}</div>
             </div>
-            <div style="color: #3072D8;width: 40px;text-align: right">{{ i.opennum }}次</div>
+            <div style="color: #3072D8;width: 80px;text-align: right">{{ i.opennum }}次</div>
           </div>
         </div>
       </div>
@@ -28,7 +28,7 @@
               <span>{{ index + 1 }}</span>
               <div class="hotConAATxt">{{ i.title }}</div>
             </div>
-            <div style="color: #3072D8;width: 40px;text-align: right">{{ i.num }}次</div>
+            <div style="color: #3072D8;width: 80px;text-align: right">{{ i.num }}次</div>
           </div>
         </div>
       </div>
@@ -220,7 +220,7 @@ export default {
   justify-content: space-between;
   align-items: center;
   padding: 8px 0;
-  height: 30px;
+  /* height: 30px; */
   box-sizing: border-box;
   border-bottom:1px #e7e7e7 solid;
 }

+ 4 - 2
src/views/login/loginPage.vue

@@ -369,7 +369,8 @@ export default {
 							if (
 								userjson.data[0][0].type == 1 &&
 								userjson.data[0][0].role == 1 &&
-								userjson.data[0][0].rrole == 1
+								userjson.data[0][0].rrole == 1 &&
+								this.allowOrgList.findIndex((i) => i.area) != -1
 							) {
 								this.$router.push({ path: "/kanban" });
 							} else {
@@ -429,7 +430,8 @@ export default {
 							if (
 								userjson.data[0][0].type == 1 &&
 								userjson.data[0][0].role == 1 &&
-								userjson.data[0][0].rrole == 1
+								userjson.data[0][0].rrole == 1 &&
+								this.allowOrgList.findIndex((i) => i.area) != -1
 							) {
 								this.$router.push({ path: "/kanban" });
 							} else {