Просмотр исходного кода

Merge branch 'develop' of http://52.130.252.100:10000/TEAMMODEL/TEAMModelOS into develop

Li 2 лет назад
Родитель
Сommit
cc9c1e4b1d

+ 12 - 2
TEAMModelBI/ClientApp/src/view/common/aside.vue

@@ -226,7 +226,7 @@ export default {
         name: '区校掌握',
         icon: '#icon-jichuguanli',
         router: '',
-        role: ['admin', 'assist', 'leader'],
+        role: ['admin', 'assist', 'leader', 'sales'],
         isShow: true,
         permission: '',
         sort: 12,
@@ -253,7 +253,7 @@ export default {
         name: '我参与的',
         icon: '#icon-canyu',
         router: '',
-        role: ['admin', 'assist', 'leader'],
+        role: ['admin', 'assist', 'leader', 'sales'],
         isShow: true,
         permission: '',
         sort: 15,
@@ -349,6 +349,16 @@ export default {
         if (a > b) return 1
         return 0
       })
+      //处理顾问和销售  没有学区情况的路由
+      if (userRoles.includes('sales') || userRoles.includes('assist')) {
+        for (let i in menuList.value) {
+          let menuChild = menuList.value[i]
+          for (let y in menuChild.child) {
+            console.log(menuChild.child[y], 'Menu内容')
+            menuChild.child[y].router === '/home/district' ? menuChild.child.splice(y, 1) : ''
+          }
+        }
+      }
       console.log(menuList.value, result, '菜单')
       //router内容
       let nowUrl = routers.currentRoute.value.path

+ 3 - 3
TEAMModelBI/ClientApp/src/view/index/index.vue

@@ -3250,7 +3250,7 @@ export default {
 .statisticsbox-all {
   width: 100%;
   height: 100%;
-  /* padding: 1% 1%; */
+  padding: 0.5% 0%;
   line-height: 20px;
   position: relative;
   /* margin-top: 35px; */
@@ -3511,7 +3511,7 @@ export default {
 .bottom-leftbox {
   width: 56%;
   padding: 1%;
-  height: 350px;
+  height: 340px;
   /* background: #fff; */
   position: relative;
   margin-right: 1%;
@@ -3521,7 +3521,7 @@ export default {
 
 .bottom-rightbox {
   width: 43%;
-  height: 350px;
+  height: 340px;
   /* background-color: #fff; */
   display: flex;
   justify-content: center;

+ 84 - 17
TEAMModelBI/ClientApp/src/view/participation/index.vue

@@ -120,9 +120,11 @@
         <!-- <el-table-column prop="state" label="状态" width="110" align="center" /> -->
         <el-table-column :label="$t(`schoolManages.tables.operate`)" align="center">
           <template #default="scope">
-            <el-button type="primary" size="small" @click.prevent="deleteRow(scope.$index, scope.row)">
-              {{ $t(`schoolManages.tables.operatecontent`) }}</el-button>
+            <el-button type="primary" size="small" @click.prevent="deleteRow(scope.$index, scope.row)" v-if="userPower.roles.includes('sales')">
+              查看</el-button>
             <!-- <el-button type="danger" size="small" @click="removeSchool(scope.row,scope.$index)">删除</el-button> -->
+            <el-button type="primary" size="small" @click.prevent="deleteRow(scope.$index, scope.row)" v-else>
+              {{ $t(`schoolManages.tables.operatecontent`) }}</el-button>
           </template>
         </el-table-column>
       </el-table>
@@ -152,10 +154,14 @@
           <div class="school-formbox">
             <el-form ref="form" :model="nowPitchdata" label-width="120px">
               <el-form-item :label="$t(`schoolManages.basicSet.name`) + ':'" class="school-form-name">
-                <el-input v-model="nowPitchdata.name"></el-input>
+                <el-input v-model="nowPitchdata.name" v-if="userPower.roles.includes('sales')" disabled></el-input>
+                <el-input v-model="nowPitchdata.name" v-else></el-input>
               </el-form-item>
               <el-form-item :label="$t(`schoolManages.basicSet.badge`) + ':'" class="school-form-badge">
-                <el-upload class="upload-demo-redact" :headers="uploadHeader" action="/blob/upload-public" :before-upload="changeBadge" :on-success="success" :on-error="handleUpdErr">
+                <div class="upload-demo-redact" v-if="userPower.roles.includes('sales')">
+                  <el-image :src="nowPitchdata.picture" fit="contain"></el-image>
+                </div>
+                <el-upload class="upload-demo-redact" :headers="uploadHeader" action="/blob/upload-public" :before-upload="changeBadge" :on-success="success" :on-error="handleUpdErr" v-else>
                   <el-image :src="nowPitchdata.picture" fit="contain"></el-image>
                   <div class="changebadge">
                     <el-button>{{ $t(`schoolManages.basicSet.badgeChange`) }}</el-button>
@@ -170,10 +176,18 @@
                                 <el-checkbox v-model="nowPitchdata.period[4].value" label="大学"></el-checkbox>
                             </el-form-item> -->
               <el-form-item :label="$t(`schoolManages.basicSet.type`) + ':'" class="school-form-grading">
-                <el-radio v-model="nowPitchdata.type" label="1" size="large">
-                  {{ $t(`schoolManages.basicSet.ordinary`) }}</el-radio>
-                <el-radio v-model="nowPitchdata.type" label="2" size="large">
-                  {{ $t(`schoolManages.basicSet.higherEducation`) }}</el-radio>
+                <el-radio-group v-model="nowPitchdata.type" class="study-radio" disabled v-if="userPower.roles.includes('sales')">
+                  <el-radio label="1" size="large">
+                    {{ $t(`schoolManages.basicSet.ordinary`) }}</el-radio>
+                  <el-radio label="2" size="large">
+                    {{ $t(`schoolManages.basicSet.higherEducation`) }}</el-radio>
+                </el-radio-group>
+                <el-radio-group v-model="nowPitchdata.type" class="study-radio" v-else>
+                  <el-radio label="1" size="large">
+                    {{ $t(`schoolManages.basicSet.ordinary`) }}</el-radio>
+                  <el-radio label="2" size="large">
+                    {{ $t(`schoolManages.basicSet.higherEducation`) }}</el-radio>
+                </el-radio-group>
               </el-form-item>
               <!-- <el-form-item :label="$t(`schoolManages.basicSet.nowAssistant`)+':'" class="school-form-admin">
                                 <el-select v-model="adminvalue" multiple @change="assistChange" :placeholder="$t(`schoolManages.basicSet.nowAssistanthint`)">
@@ -186,7 +200,13 @@
                 <el-input disabled :placeholder="$t(`schoolManages.basicSet.notCode`)" v-else="nowPitchdata.id ==null" />
               </el-form-item>
               <el-form-item label="所属学区:" class="school-form-area">
-                <el-select v-model="areaSelect.Selectvalue" :placeholder="$t(`schoolManages.basicSet.region`)">
+                <el-select v-model="areaSelect.Selectvalue" :placeholder="$t(`schoolManages.basicSet.region`)" disabled v-if="userPower.roles.includes('sales')">
+                  <el-option v-for="item in areaSelect.data" :key="item.name" :label="item.name" :value="item.id" :disabled="item.cutArea">
+                    <div class="areaname">{{item.name}}</div>
+                    <div class="stepicon" v-show="item.cutArea"><span>已同步省平台</span></div>
+                  </el-option>
+                </el-select>
+                <el-select v-model="areaSelect.Selectvalue" :placeholder="$t(`schoolManages.basicSet.region`)" v-else>
                   <el-option v-for="item in areaSelect.data" :key="item.name" :label="item.name" :value="item.id" :disabled="item.cutArea">
                     <div class="areaname">{{item.name}}</div>
                     <div class="stepicon" v-show="item.cutArea"><span>已同步省平台</span></div>
@@ -200,14 +220,28 @@
                                 <el-input disabled :placeholder="nowPitchdata.address" />
                             </el-form-item> -->
               <el-form-item :label="$t(`schoolManages.basicSet.spacesize`) + ':'" class="school-form-size">
-                <el-slider v-model="nowPitchdata.size" :step="100" show-stops show-input :min='0' :max='1000' />
+                <div v-if="!userPower.roles.includes('sales')" class="sizebox">
+                  <el-slider v-model="nowPitchdata.size" :step="500" show-stops show-input :min='0' :max='10300' />
+                </div>
+                <div v-else class="sizebox">
+                  <el-slider v-model="nowPitchdata.size" :step="500" show-stops show-input :min='0' :max='10300' disabled />
+                </div>
+                <div class="siznum">GB</div>
+                <div class="selectsize">
+                  <span>快捷选定:</span>
+                  <el-button size="small" @click="nowPitchdata.size =100" disabled v-if="userPower.roles.includes('sales')">100</el-button>
+                  <el-button size="small" @click="nowPitchdata.size =100" v-else>100</el-button>
+                  <el-button size="small" @click="nowPitchdata.size =300" disabled v-if="userPower.roles.includes('sales')">300</el-button>
+                  <el-button size="small" @click="nowPitchdata.size =300" v-else>300</el-button>
+                  <el-button size="small" @click="nowPitchdata.size =500" disabled v-if="userPower.roles.includes('sales')">500</el-button>
+                  <el-button size="small" @click="nowPitchdata.size =500" v-else>500</el-button>
+                </div>
               </el-form-item>
               <!-- <el-form-item label="学校状态:" class="school-form-state">
                     <el-switch v-model="value2" active-color="#13ce66" inactive-color="#ff4949" />
                 </el-form-item> -->
-              <el-form-item>
-                <el-button type="primary" @click="updateSchoolinfo">
-                  {{ $t(`schoolManages.basicSet.submit`) }}</el-button>
+              <el-form-item v-show="!userPower.roles.includes('sales')">
+                <el-button type="primary" @click="updateSchoolinfo">{{ $t(`schoolManages.basicSet.submit`) }}</el-button>
                 <el-button @click="schoolClose">{{ $t(`commonMsg.closes`) }}</el-button>
               </el-form-item>
             </el-form>
@@ -217,9 +251,9 @@
       <el-tab-pane :label="$t(`schoolManages.redactGrading`)">
         <SetSchool :schoolData="studyPhase" ref="setSchoolData"></SetSchool>
       </el-tab-pane>
-      <el-tab-pane label="试卷资源">
+      <!-- <el-tab-pane label="试卷资源">
         <Exammination></Exammination>
-      </el-tab-pane>
+      </el-tab-pane> -->
     </el-tabs>
   </div>
   <!--编辑学校页面end-->
@@ -247,6 +281,7 @@ export default {
     let PowerShow = true
     const store = useStore()
     const routerInfo = useRouter()
+    let userPower = jwt_decode(JSON.parse(localStorage.getItem('id_token')))
     //为了让表单呈现 暂时的数据,
     let tableData = ref([])
     const form = reactive({
@@ -841,7 +876,8 @@ export default {
       debounce,
       datascroll,
       tableNexttoken,
-      selectValue
+      selectValue,
+      userPower
     }
   },
 }
@@ -929,7 +965,7 @@ export default {
 }
 
 .school-form-size {
-  width: 21%;
+  width: 55% !important;
   color: #bdc3c7;
 }
 
@@ -1121,6 +1157,9 @@ export default {
   color: #ecf0f1;
   margin: 0 auto;
 }
+.study-radio {
+  text-align: left !important;
+}
 .basic {
   color: #409eff;
 }
@@ -1130,6 +1169,34 @@ export default {
 .majors {
   color: #e6a23c;
 }
+.siznum,
+.sizebox,
+.selectsize {
+  display: inline-block;
+  vertical-align: top;
+}
+.sizebox {
+  width: 50.5%;
+}
+.siznum {
+  width: 3%;
+  margin-left: 2%;
+}
+.selectsize {
+  width: 35%;
+  font-size: 12px;
+  margin-left: 1%;
+}
+@media screen and (max-width: 1920px) {
+  .school-form-size {
+    width: 65% !important;
+  }
+}
+@media screen and (max-width: 1400px) {
+  .school-form-size {
+    width: 80% !important;
+  }
+}
 </style>
 <style>
 .schoolboxtad .el-cascader {

+ 83 - 64
TEAMModelBI/ClientApp/src/view/participation/setPhase.vue

@@ -5,10 +5,11 @@
         <div class="pane-title-name">{{ $t(`schoolManages.gradSet.grad.title`) }}</div>
         <div class="pane-title-icon">
           <el-tooltip placement="bottom">
-            <template #content>{{ $t(`schoolManages.gradSet.grad.hint1`) }}<br />{{
-                                $t(`schoolManages.gradSet.grad.hint2`)
-                        }}<br />{{ $t(`schoolManages.gradSet.grad.hint3`)
-}}<br />{{ $t(`schoolManages.gradSet.grad.hint4`) }}
+            <template #content>
+              {{ $t(`schoolManages.gradSet.grad.hint1`) }}<br />
+              {{$t(`schoolManages.gradSet.grad.hint2`)}}<br />
+              {{ $t(`schoolManages.gradSet.grad.hint3`)}}<br />
+              {{ $t(`schoolManages.gradSet.grad.hint4`) }}
             </template>
             <div>
               <svg class="ordinary-hint" aria-hidden="true">
@@ -17,7 +18,7 @@
             </div>
           </el-tooltip>
         </div>
-        <div class="redactbox" @click="amendPhasename">
+        <div class="redactbox" @click="amendPhasename" v-show="!userPower.roles.includes('sales')">
           <svg class="redacticon" aria-hidden="true">
             <use xlink:href="#icon-bianji"></use>
           </svg>
@@ -51,11 +52,10 @@
           <div class="semesterbox-title-name">{{ $t(`schoolManages.gradSet.semester.title`) }}</div>
           <div class="semesterbox-title-icon">
             <el-tooltip placement="bottom">
-              <template #content>{{ $t(`schoolManages.gradSet.semester.hint1`) }}<br />{{
-                                    $t(`schoolManages.gradSet.semester.hint2`)
-                            }}<br />{{
-        $t(`schoolManages.gradSet.semester.hint3`)
-}}
+              <template #content>
+                {{ $t(`schoolManages.gradSet.semester.hint1`) }}<br />
+                {{$t(`schoolManages.gradSet.semester.hint2`)}}<br />
+                {{$t(`schoolManages.gradSet.semester.hint3`)}}
               </template>
               <div>
                 <svg class="ordinary-hint" aria-hidden="true">
@@ -64,19 +64,17 @@
               </div>
             </el-tooltip>
           </div>
-          <div class="semesterbox-title-add" @click="semesterCompile('', 'semesterAdd')">
+          <div class="semesterbox-title-add" @click="semesterCompile('', 'semesterAdd')" v-show="!userPower.roles.includes('sales')">
             <svg class="mini-hint" aria-hidden="true">
               <use xlink:href="#icon-jia-copy"></use>
             </svg>
           </div>
         </div>
-        <div class="setting-time">
+        <div class="setting-time" v-if="nowschoolData.period[pathNowphase].semesters.length >1">
           <div class="set-item" v-for="(items, index) in nowschoolData.period[pathNowphase].semesters" @mouseenter="semesterCut(items, index)">
             <div class="set-time-semester">{{ items.name }}</div>
             <div class="set-time-start">
-              {{ $t(`schoolManages.gradSet.semester.startTime`) }}<span>{{ items.month }}月</span>/<span>{{
-                                    items.day
-                            }}日</span>
+              {{ $t(`schoolManages.gradSet.semester.startTime`) }}<span>{{ items.month }}月</span>/<span>{{items.day}}日</span>
             </div>
             <div class="set-time-period">
               {{ $t(`schoolManages.gradSet.semester.duration`) }}:<span>{{ items.totaldays }}</span></div>
@@ -84,9 +82,9 @@
               <span>{{ $t(`schoolManages.gradSet.semester.entrance`) }}</span>
             </div>
             <div class="set-time-enrollment-star" v-else-if="items.start === 1" @click="enrollment(items.id)">
-              <span>{{ $t(`schoolManages.gradSet.semester.setEntrance`) }}</span>
+              <span v-show="!userPower.roles.includes('sales')">{{ $t(`schoolManages.gradSet.semester.setEntrance`) }}</span>
             </div>
-            <div class="set-time-redact">
+            <div class="set-time-redact" v-show="!userPower.roles.includes('sales')">
               <div @click="semesterCompile(items, 'updateSemester', index)">
                 <svg class="redact-icon" aria-hidden="true">
                   <use xlink:href="#icon-bianji1"></use>
@@ -140,10 +138,12 @@
             </ul>
           </div>
           <div class="time-now-state">
-            <span>{{ $t(`schoolManages.gradSet.semester.nowstate`) }}:</span><span>{{ timesteps.nowitem.name
-                        }}</span>
+            <span>{{ $t(`schoolManages.gradSet.semester.nowstate`) }}:</span><span>{{ timesteps.nowitem.name}}</span>
           </div>
         </div>
+        <div class="notdata settimg-notdata" v-else>
+          <div class="notdata-title"><span>暂无数据</span></div>
+        </div>
       </div>
       <!--学期设置end-->
       <!--年级设置-->
@@ -151,20 +151,20 @@
         <div class="semesterbox-title">
           <div class="semesterbox-title-name">{{ $t(`schoolManages.gradSet.gradeAndsubjects.gradeTitle`) }}
           </div>
-          <div class="semesterbox-title-add" @click="addsemester()">
+          <div class="semesterbox-title-add" @click="addsemester()" v-show="!userPower.roles.includes('sales')">
             <svg class="mini-hint" aria-hidden="true">
               <use xlink:href="#icon-jia-copy"></use>
             </svg>
           </div>
         </div>
-        <div class="class-item-frame">
+        <div class="class-item-frame" v-if="nowschoolData.period[pathNowphase].grades.length !==0">
           <div class="class-item" v-for="(item, index) in nowschoolData.period[pathNowphase].grades" :key="index">
             <span class="class-item-number">{{ index + 1 }}</span>
             <div class="class-item-name" v-if="inputgrade.index !== index">{{ item }}</div>
             <div class="class-item-name" v-else-if="inputgrade.index === index">
               <el-input v-model="inputgrade.name" @blur="updategrade(index)" :placeholder='$t(`schoolManages.gradSet.gradeAndsubjects.gradeHint`)' />
             </div>
-            <div class="class-item-icon">
+            <div class="class-item-icon" v-show="!userPower.roles.includes('sales')">
               <div @click="inputgrade.name = item, inputgrade.index = index">
                 <svg class="redact-icon" aria-hidden="true">
                   <use xlink:href="#icon-bianji1"></use>
@@ -178,6 +178,9 @@
             </div>
           </div>
         </div>
+        <div class="notdata settimg-notdata" v-else>
+          <div class="notdata-title"><span>暂无数据</span></div>
+        </div>
       </div>
       <!--年级设置end-->
       <!--学科设置-->
@@ -190,14 +193,14 @@
                         <span class="ordinary-subject">{{$t(`schoolManages.gradSet.gradeAndsubjects.subjectType.subject`)}}</span>
                         <span class="specialty-subject">{{$t(`schoolManages.gradSet.gradeAndsubjects.subjectType.major`)}}</span>
                     </div> -->
-          <div class="semesterbox-title-add" @click="semesterCompile('', 'gradeClass')">
+          <div class="semesterbox-title-add" @click="semesterCompile('', 'gradeClass')" v-show="!userPower.roles.includes('sales')">
             <svg class="mini-hint" aria-hidden="true">
               <use xlink:href="#icon-jia-copy"></use>
             </svg>
           </div>
         </div>
-        <div class="subject-group">
-          <div class="subject-group-item" v-for="item in nowschoolData.period[pathNowphase].subjects" :key="item.id">
+        <div class="subject-group" v-if="nowschoolData.period[pathNowphase].subjects.length !==0">
+          <div :class="[userPower.roles.includes('sales') ?'replenish':'','subject-group-item']" v-for="item in nowschoolData.period[pathNowphase].subjects" :key="item.id">
             <!-- <span class="subject-type" title="通用" v-show="item.type ===0"></span>
                         <span class="subject-type-ordinary" title="学科" v-show="item.type ===1"></span>
                         <span class="subject-type-specialty" title="专业" v-show="item.type ===2"></span> -->
@@ -205,7 +208,7 @@
               <!-- <input autocomplete="off" spellcheck="false" type="text" placeholder="设置学科..." disabled="disabled" class="ivu-input ivu-input-default ivu-input-disabled"> -->
               {{ item.name }}
             </div>
-            <div class="redactbox-icon">
+            <div class="redactbox-icon" v-show="!userPower.roles.includes('sales')">
               <div class="redacicon" @click="semesterCompile(item, 'updateSubjects')">
                 <svg class="subject-redact-icon" aria-hidden="true">
                   <use xlink:href="#icon-bianji1-copy"></use>
@@ -219,13 +222,16 @@
             </div>
           </div>
         </div>
+        <div class="notdata settimg-notdata" v-else>
+          <div class="notdata-title"><span>暂无数据</span></div>
+        </div>
       </div>
       <!--学科设置end-->
       <!--班级专业名称/班级类型名称-->
       <div class="subjectbox">
         <div class="semesterbox-title grade-class">
           <div class="semesterbox-title-name">班级专业名称/班级类型名称</div>
-          <div class="semesterbox-title-add" @click="addExamtype('gradeClass')">
+          <div class="semesterbox-title-add" @click="addExamtype('gradeClass')" v-show="!userPower.roles.includes('sales')">
             <svg class="mini-hint" aria-hidden="true">
               <use xlink:href="#icon-jia-copy"></use>
             </svg>
@@ -240,7 +246,7 @@
               <div class="exam-type-item-name" v-else-if="gradeClassdata.index === index">
                 <el-input v-model="gradeClassdata.name" @blur="updateExamupdate(item, 'gradeclass')" placeholder='设置专业...' class="exam-edit-input" />
               </div>
-              <div class="exam-type-item-icon">
+              <div class="exam-type-item-icon" v-show="!userPower.roles.includes('sales')">
                 <div class="exam-type-redacicon" @click="gradeClassdata.name = item.name, gradeClassdata.id = item.id, gradeClassdata.index = index">
                   <svg class="subject-redact-icon" aria-hidden="true">
                     <use xlink:href="#icon-bianji1-copy"></use>
@@ -264,7 +270,7 @@
       <div class="situationbox">
         <div class="semesterbox-title">
           <div class="semesterbox-title-name">{{ $t(`schoolManages.gradSet.condition.title`) }}</div>
-          <div class="semesterbox-title-add" @click="addExamtype()">
+          <div class="semesterbox-title-add" @click="addExamtype()" v-show="!userPower.roles.includes('sales')">
             <svg class="mini-hint" aria-hidden="true">
               <use xlink:href="#icon-jia-copy"></use>
             </svg>
@@ -274,13 +280,12 @@
           <div class="exam-type-title"><span>{{ $t(`schoolManages.gradSet.condition.type`) }}:</span></div>
           <div class="exam-type-content">
             <div class="exam-type-item" v-for="(item, index) in nowschoolData.period[pathNowphase].analysis.type" :key="index">
-              <div class="exam-type-item-name" v-if="examType.index !== index"><span>{{ item.name
-                            }}</span>
+              <div class="exam-type-item-name" v-if="examType.index !== index"><span>{{ item.name}}</span>
               </div>
               <div class="exam-type-item-name" v-else-if="examType.index === index">
                 <el-input v-model="examType.name" @blur="updateExamupdate(item)" :placeholder='$t(`schoolManages.gradSet.condition.typehint`)' class="exam-edit-input" />
               </div>
-              <div class="exam-type-item-icon">
+              <div class="exam-type-item-icon" v-show="!userPower.roles.includes('sales')">
                 <div class="exam-type-redacicon" @click="examType.name = item.name, examType.id = item.id, examType.index = index">
                   <svg class="subject-redact-icon" aria-hidden="true">
                     <use xlink:href="#icon-bianji1-copy"></use>
@@ -297,13 +302,11 @@
           <div class="satisfybox">
             <div class="satisfybox-icon">
               <el-tooltip placement="right">
-                <template #content>{{ $t(`schoolManages.gradSet.condition.enterHint.hint1`) }}<br />{{
-                                        $t(`schoolManages.gradSet.condition.enterHint.hint2`)
-                                }}<br />{{
-        $t(`schoolManages.gradSet.condition.enterHint.hint3`)
-}}<br />{{
-        $t(`schoolManages.gradSet.condition.enterHint.hint4`)
-}}
+                <template #content>
+                  {{ $t(`schoolManages.gradSet.condition.enterHint.hint1`) }}<br />
+                  {{$t(`schoolManages.gradSet.condition.enterHint.hint2`)}}<br />
+                  {{$t(`schoolManages.gradSet.condition.enterHint.hint3`)}}<br />
+                  {{$t(`schoolManages.gradSet.condition.enterHint.hint4`)}}
                 </template>
                 <div>
                   <svg class="satisfybox-hint" aria-hidden="true">
@@ -317,7 +320,7 @@
             <div class="satisfybox-content">
               <el-input-number v-model="justOrsatisfy[0].num" :label="justOrsatisfy[0].num + '%'" @blur="coilAndpass('income')" :min="0" :max="100" size="mini" :disabled="justOrsatisfy[0].disabled" />
             </div>
-            <div class="satisfybox-modify" @click="justOrsatisfy[0].disabled = false">
+            <div class="satisfybox-modify" @click="justOrsatisfy[0].disabled = false" v-show="!userPower.roles.includes('sales')">
               <svg class="subject-redact-icon" aria-hidden="true">
                 <use xlink:href="#icon-75bianji"></use>
               </svg>
@@ -326,11 +329,10 @@
           <div class="passbox">
             <div class="pass-icon">
               <el-tooltip placement="right">
-                <template #content>{{ $t(`schoolManages.gradSet.condition.treadHint.hint1`) }}<br />{{
-                                        $t(`schoolManages.gradSet.condition.treadHint.hint2`)
-                                }}<br />{{
-        $t(`schoolManages.gradSet.condition.treadHint.hint3`)
-}}
+                <template #content>
+                  {{ $t(`schoolManages.gradSet.condition.treadHint.hint1`) }}<br />
+                  {{$t(`schoolManages.gradSet.condition.treadHint.hint2`)}}<br />
+                  {{$t(`schoolManages.gradSet.condition.treadHint.hint3`)}}
                 </template>
                 <div>
                   <svg class="satisfybox-hint" aria-hidden="true">
@@ -343,7 +345,7 @@
             <div class="pass-content">
               <el-input-number v-model="justOrsatisfy[1].num" @blur="coilAndpass('touch')" :min="0" :max="100" size="mini" :disabled="justOrsatisfy[1].disabled" />
             </div>
-            <div class="pass-modify" @click="justOrsatisfy[1].disabled = false">
+            <div class="pass-modify" @click="justOrsatisfy[1].disabled = false" v-show="!userPower.roles.includes('sales')">
               <svg class="subject-redact-icon" aria-hidden="true">
                 <use xlink:href="#icon-75bianji"></use>
               </svg>
@@ -360,9 +362,7 @@
           <div class="semesterbox-title-name settime">{{ $t(`schoolManages.gradSet.timeFrame.title`) }}</div>
           <div class="semesterbox-title-icon">
             <el-tooltip placement="right">
-              <template #content>{{ $t(`schoolManages.gradSet.timeFrame.hint1`) }}<br />{{
-                                    $t(`schoolManages.gradSet.timeFrame.hint2`)
-                            }}
+              <template #content>{{ $t(`schoolManages.gradSet.timeFrame.hint1`) }}<br />{{$t(`schoolManages.gradSet.timeFrame.hint2`)}}
               </template>
               <div>
                 <svg class="ordinary-hint" aria-hidden="true">
@@ -371,7 +371,7 @@
               </div>
             </el-tooltip>
           </div>
-          <div class="semesterbox-title-add" @click="semesterCompile('', 'addTimebucket', '')">
+          <div class="semesterbox-title-add" @click="semesterCompile('', 'addTimebucket', '')" v-show="!userPower.roles.includes('sales')">
             <svg class="mini-hint" aria-hidden="true">
               <use xlink:href="#icon-jia-copy"></use>
             </svg>
@@ -379,7 +379,7 @@
         </div>
       </div>
       <!--时段设置-->
-      <div class="settimebox">
+      <div class="settimebox" v-if="nowschoolData.period[pathNowphase].timetable.length !==0">
         <el-timeline>
           <el-timeline-item center v-for="(item, index) in nowschoolData.period[pathNowphase].timetable" :key="index" :icon="item.type === '1' ? 'el-icon-reading' : 'el-icon-alarm-clock'" class="settime-item" :class="{ 'pitch': pathNow == index }" @click="pathNow = index">
             <el-card>
@@ -387,7 +387,7 @@
               <div class="settime-time">{{ item.time }}</div>
               <div class="settime-name">({{ item.label }})</div>
             </el-card>
-            <div class="settime-icon">
+            <div class="settime-icon" v-show="!userPower.roles.includes('sales')">
               <div @click="semesterCompile(item, 'updateTimebucket', index)">
                 <svg class="mini-hint" aria-hidden="true">
                   <use xlink:href="#icon-bianji1"></use>
@@ -402,6 +402,9 @@
           </el-timeline-item>
         </el-timeline>
       </div>
+      <div class="notdata" v-else>
+        <div class="notdata-title"><span>暂无数据</span></div>
+      </div>
       <!--时段设置end-->
     </div>
     <!--時段設置end-->
@@ -493,6 +496,7 @@
 import { reactive, ref, getCurrentInstance, toRef, watch, nextTick } from 'vue'
 import { ElMessage, ElMessageBox } from 'element-plus'
 import { useStore } from 'vuex'
+import jwt_decode from 'jwt-decode'
 export default {
   props: {
     schoolData: {
@@ -504,6 +508,7 @@ export default {
     let { proxy } = getCurrentInstance()
     // let PowerShow = proxy.$access.inspectPower('batchschool-upd')
     const store = useStore()
+    let userPower = jwt_decode(JSON.parse(localStorage.getItem('id_token')))
     // const routerInfo = useRouter()
     let timesteps = ref({
       times: [
@@ -725,12 +730,16 @@ export default {
       if (!data) {
         return
       }
-      if (data.period[pathNowphase.value].semesters.length === 0 || data.period[pathNowphase.value].subjects.length === 0) {
-        ElMessage.error('学段管理内数据异常')
-        return
-      }
       let datas = data
       //显示学段名称和校区
+      for (let i in datas.period) {
+        let ids = datas.period[i].campusId
+        for (let y in datas.campuses) {
+          datas.campuses[y].id === ids ? (datas.period[i].area = datas.campuses[y].name) : ''
+        }
+      }
+      console.log('8888888888888')
+      //显示学段名称和校区
       for (let i in datas.period) {
         let ids = datas.period[i].campusId
         datas.period[i].changed = false
@@ -738,21 +747,24 @@ export default {
           datas.campuses[y].id === ids ? (datas.period[i].area = datas.campuses[y].name) : ''
         }
       }
+      console.log('9999999999')
       //处理学期设置
       let phasetime = data.period[pathNowphase.value].semesters
       console.log(phasetime, '当前的学期')
       let topStart = 0
       let downStart = 0
-      for (let i in phasetime) {
-        phasetime[i].start === 0 ? ((topStart = phasetime[i].month), (phasetime[i].totaldays = 0)) : ((downStart = phasetime[i].month), (phasetime[i].totaldays = 0))
-        for (let u in timesteps.value.times) {
-          timesteps.value.times[u].id >= topStart && timesteps.value.times[u].id < downStart ? (timesteps.value.times[u].state = true) : ''
-          timesteps.value.times[u].id === topStart ? (timesteps.value.times[u].label = true) : ''
-          timesteps.value.times[u].id === downStart ? (timesteps.value.times[u - 1].label = true) : ''
+      if (phasetime.length > 1) {
+        for (let i in phasetime) {
+          phasetime[i].start === 0 ? ((topStart = phasetime[i].month), (phasetime[i].totaldays = 0)) : ((downStart = phasetime[i].month), (phasetime[i].totaldays = 0))
+          for (let u in timesteps.value.times) {
+            timesteps.value.times[u].id >= topStart && timesteps.value.times[u].id < downStart ? (timesteps.value.times[u].state = true) : ''
+            timesteps.value.times[u].id === topStart ? (timesteps.value.times[u].label = true) : ''
+            timesteps.value.times[u].id === downStart ? (timesteps.value.times[u - 1].label = true) : ''
+          }
         }
+        timesteps.value.nowitem = data.period[pathNowphase.value].semesters[0]
       }
-      timesteps.value.nowitem = data.period[pathNowphase.value].semesters[0]
-      console.log(timesteps.value)
+      console.log(timesteps.value, '查看这里是否执行')
       // for (let i in phasetime) {
       //     phasetime[i].start === 0 ? (phasetime[i].totaldays = proxy.$common.totalDay(topStart, downStart)) : (phasetime[i].totaldays = proxy.$common.totalDay(downStart, topStart))
       // }
@@ -1317,6 +1329,7 @@ export default {
       timeZoneList,
       semesterSort,
       gradeClassdata,
+      userPower
     }
   },
 }
@@ -2182,6 +2195,12 @@ export default {
 .settimebox:hover {
   overflow-y: auto;
 }
+.replenish {
+  padding-right: 25px;
+}
+.settimg-notdata {
+  padding-top: 5%;
+}
 </style>
 <style>
 .pitch .el-card__body {

+ 6 - 1
TEAMModelBI/ClientApp/src/view/schoolServe/analyseSchool.vue

@@ -18,7 +18,7 @@
     </div>
     <div class="topbox">
       <div class="topbox-list">
-        <div class="top-aspects" v-for="(item,index) in headerData" :key="index">
+        <div class="top-aspects" v-for="(item,index) in headerData" :key="index" v-loading="loadingSchool.headerData" element-loading-background="rgba(0, 0, 0, 0.2)">
           <div :class="[item.classname,'left-top-icon']">
             <svg class="top-header-icon" aria-hidden="true">
               <use :xlink:href="item.icon"></use>
@@ -1021,6 +1021,7 @@ export default {
       },
     ])
     let loadingSchool = ref({
+      headerData: true,
       basics: true,
       modules: true,
       course: true,
@@ -1043,6 +1044,7 @@ export default {
           headerData.value[2].num = res.stuCnt
           headerData.value[3].num = res.roomCnt
           headerData.value[4].num = res.lesCnt
+          loadingSchool.value.headerData = false
           //本学期 本周数据
           basicsData.value.totals.month[0].num = res.weekLesCnt
           basicsData.value.totals.month[1].num = res.weekACTCnt
@@ -1508,4 +1510,7 @@ export default {
 .centerbox-right-rightbox .el-table__header-wrapper {
   line-height: 20px;
 }
+.school-servebox .el-loading-spinner .circular {
+  display: inline !important;
+}
 </style>

+ 11 - 9
TEAMModelBI/ClientApp/src/view/schoolServe/setschool.vue

@@ -67,7 +67,7 @@
             </svg>
           </div>
         </div>
-        <div class="setting-time" v-if="nowschoolData.period[pathNowphase].semesters.length !==0">
+        <div class="setting-time" v-if="nowschoolData.period[pathNowphase].semesters.length >1">
           <div class="set-item" v-for="(items, index) in nowschoolData.period[pathNowphase].semesters" :key="index" @mouseenter="semesterCut(items, index)">
             <div class="set-time-semester">{{ items.name }}</div>
             <div class="set-time-start">
@@ -781,16 +781,18 @@ export default {
       console.log(phasetime, '当前的学期')
       let topStart = 0
       let downStart = 0
-      for (let i in phasetime) {
-        phasetime[i].start === 0 ? ((topStart = phasetime[i].month), (phasetime[i].totaldays = 0)) : ((downStart = phasetime[i].month), (phasetime[i].totaldays = 0))
-        for (let u in timesteps.value.times) {
-          timesteps.value.times[u].id >= topStart && timesteps.value.times[u].id < downStart ? (timesteps.value.times[u].state = true) : ''
-          timesteps.value.times[u].id === topStart ? (timesteps.value.times[u].label = true) : ''
-          timesteps.value.times[u].id === downStart ? (timesteps.value.times[u - 1].label = true) : ''
+      if (phasetime.length > 1) {
+        for (let i in phasetime) {
+          phasetime[i].start === 0 ? ((topStart = phasetime[i].month), (phasetime[i].totaldays = 0)) : ((downStart = phasetime[i].month), (phasetime[i].totaldays = 0))
+          for (let u in timesteps.value.times) {
+            timesteps.value.times[u].id >= topStart && timesteps.value.times[u].id < downStart ? (timesteps.value.times[u].state = true) : ''
+            timesteps.value.times[u].id === topStart ? (timesteps.value.times[u].label = true) : ''
+            timesteps.value.times[u].id === downStart ? (timesteps.value.times[u - 1].label = true) : ''
+          }
         }
+        timesteps.value.nowitem = data.period[pathNowphase.value].semesters[0]
+        console.log(timesteps.value)
       }
-      timesteps.value.nowitem = data.period[pathNowphase.value].semesters[0]
-      console.log(timesteps.value)
       // for (let i in phasetime) {
       //     phasetime[i].start === 0 ? (phasetime[i].totaldays = proxy.$common.totalDay(topStart, downStart)) : (phasetime[i].totaldays = proxy.$common.totalDay(downStart, topStart))
       // }

+ 3 - 3
TEAMModelBI/ClientApp/src/view/schoolmanage/schoolAnalyse.vue

@@ -229,7 +229,7 @@
               <el-input v-model="searchText.values" size="small" placeholder="搜索学校名称/简码" clearable />
             </template>
             <template #default="scope">
-              <el-button size="small" type="primary">前往查看</el-button>
+              <el-button size="small" type="primary" @click="detailsSchool(scope.row)">前往查看</el-button>
             </template>
           </el-table-column>
         </el-table>
@@ -1564,7 +1564,6 @@ export default {
           headerbasics.value[1].subnum = res.tchMonthCnt
           headerbasics.value[2].subnum = 0
           headerbasics.value[3].subnum = res.lessMthCnt
-          allLoding.value.headerData = false
           let beginsData = res.scRankCnts.sort((a, b) => a.openCnt < b.openCnt ? 1 : a.openCnt > b.openCnt ? -1 : 0)
           let activityDataInfo = res.scRankCnts.sort((a, b) => a.actCnt < b.actCnt ? 1 : a.actCnt > b.actCnt ? -1 : 0)
           let compositeData = res.scRankCnts.sort((a, b) => parseInt(a.openCnt) + parseInt(a.actCnt) + parseInt(a.lessCnt) + parseInt(a.interCnt) < parseInt(b.openCnt) + parseInt(b.actCnt) + parseInt(b.lessCnt) + parseInt(a.interCnt) ? 1 : parseInt(a.openCnt) + parseInt(a.actCnt) + parseInt(a.lessCnt) + parseInt(a.interCnt) > parseInt(b.openCnt) + parseInt(b.actCnt) + parseInt(b.lessCnt) + parseInt(a.interCnt) ? -1 : 0)
@@ -1585,6 +1584,7 @@ export default {
           activityData.value = activityDataInfo
           comprehensiveData.value = compositeData
           console.log(comprehensiveData.value, '查看1111')
+          allLoding.value.headerData = false
           allLoding.value.rank = false
           searchText.loading = false
           store.commit('clickCounselor', '')
@@ -1611,7 +1611,7 @@ export default {
       let nowstate = state
       let data = state === 'details' ? { schoolId: val } :
         store.state.areaClickCounselor && urlState ? { tmdId: store.state.areaClickCounselor, role: store.state.areaClickRoles } :
-          (roleA === 'admin' || roleA === 'leader') && !store.state.areaClickCounselor && state !== 'details' ? {} : ''
+          (roleA === 'admin' || roleA === 'leader') && !store.state.areaClickCounselor && state !== 'details' ? {} : { tmdId: user.tmdId }
       proxy.$api.getAllaspects(data).then((res) => {
         console.log(res, '课例等的返回')
         if (res.state === 200) {