Browse Source

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

Li 2 years ago
parent
commit
d23da474a1

+ 1 - 1
TEAMModelBI/ClientApp/public/index.html

@@ -12,7 +12,7 @@
     </title>
 </head>
 <script src="https://g.alicdn.com/dingding/dinglogin/0.0.5/ddLogin.js"></script>
-<script src="https://at.alicdn.com/t/c/font_2934132_gbzdmtxtsi.js"></script>
+<script src="https://at.alicdn.com/t/c/font_2934132_bridb2z65aq.js"></script>
 <script src="../src/access/iconfont.js"></script>
 
 <body>

+ 16 - 0
TEAMModelBI/ClientApp/src/api/index.js

@@ -421,6 +421,10 @@ export default {
     schooloneDetails(data) {
         return post('/school/get-scstats', data)
     },
+    //获取某个学校的资源数和课堂数量
+    classroomDatas(data) {
+        return post('/school/get-leseoncnt', data)
+    },
 
 
     //顾问使用(我参与的)
@@ -513,6 +517,18 @@ export default {
     getschoolCorrelation(data) {
         return post('/bizconfig/get-schools', data)
     },
+    //根据企业ID获取 用户列表
+    getUserarr(data) {
+        return post('/bizuser/get-bizid', data)
+    },
+    //根据手机号查询企业用户
+    searchphoneUser(data) {
+        return post('/bizuser/get-mobileuser', data)
+    },
+    //关联用户到企业
+    getCorrelationUser(data) {
+        return post('/bizuser/rel-biz', data)
+    },
 
 
     //获取地址location

+ 2 - 1
TEAMModelBI/ClientApp/src/until/http.js

@@ -20,7 +20,8 @@ axios.interceptors.request.use(
             config.url.indexOf('business') != -1 ||
             config.url.indexOf('bizconfig') != -1 ||
             config.url.indexOf('paper') != -1 ||
-            config.url.indexOf('notice') != -1
+            config.url.indexOf('notice') != -1 ||
+            config.url.indexOf('bizuser') != -1
         ) {
             config.headers = {
                 'Content-Type': 'application/json',

+ 275 - 9
TEAMModelBI/ClientApp/src/view/areaServe/setthird.vue

@@ -27,6 +27,13 @@
                   <!-- <el-input v-model="setform.mobile" @input="saveState=true" v-if="PowerShow" /> -->
                   <el-input v-model="setform.mobile" disabled />
                 </el-form-item>
+                <el-form-item label="企业类型">
+                  <el-radio-group v-model="setType">
+                    <el-radio label="0" v-if="setform.type == '1'" disabled>非定制</el-radio>
+                    <el-radio label="0" v-else>非定制</el-radio>
+                    <el-radio label="1">定制</el-radio>
+                  </el-radio-group>
+                </el-form-item>
                 <el-form-item label="企业logo">
                   <div class="upload-logo">
                     <el-upload class="avatar-uploader" :headers="uploadHeader" accept=".png,.jpeg,.jpg" action="/blob/upload-public" :disabled='uploadState' :show-file-list="false" :before-upload="changeBadge" :on-success="success" :on-error="handleUpdErr" v-if="PowerShow">
@@ -60,9 +67,9 @@
                   <div class="tokenbox">
                     <!-- <el-input v-model="setform.token" :rows="2" type="textarea" @input="saveState=true" v-if="PowerShow" /> -->
                     <el-input v-model="setform.token" :rows="2" type="textarea" disabled />
-                  </div>
-                  <div class="generatebox-copy">
-                    <el-button type="primary" size="small" @click="copykeys(setform.token)">复制秘钥</el-button>
+                    <div class="generatebox-copy">
+                      <el-button type="primary" size="small" @click="copykeys(setform.token)">复制秘钥</el-button>
+                    </div>
                   </div>
                   <div class="generatebox" v-if="PowerShow">
                     <el-button type="primary" size="small" @click="againGenerate">重新生成秘钥</el-button>
@@ -124,6 +131,61 @@
             </div>
           </div>
         </el-tab-pane>
+        <el-tab-pane label="用户信息" name="user">
+          <div class="set-basics">
+            <p class="set-basics-title">
+            <div class="set-basics-title-name">关联用户</div>
+            <div class="set-basics-save">
+              <el-button type="primary" size="small" @click="addschoolRelevancy=true" v-if="PowerShow">
+                <svg class="addrelevancy-icon" aria-hidden="true">
+                  <use xlink:href="#icon-guanlianrenyuan"></use>
+                </svg>
+                添加关联用户
+              </el-button>
+            </div>
+            <!-- <div class="set-basics-save remove" v-if="removeArr.length !==0">
+              <el-button type="danger" size="small" @click="removeSchools('','batch')">
+                <svg class="addrelevancy-icon" aria-hidden="true">
+                  <use xlink:href="#icon-addLink-fill"></use>
+                </svg>
+                移除选中用户
+              </el-button>
+            </div> -->
+            </p>
+            <div class="relevancyschool-list">
+              <el-table :data="userData" height="65vh" style="width: 100%" empty-text="暂无关联学校" v-if="userData.length !==0" @selection-change="removeUserList">
+                <!-- <el-table-column label="状态" type="selection" /> -->
+                <el-table-column prop="index" label="编号" type="index" align="center" />
+                <el-table-column label="头像" align="center">
+                  <template #default="scope">
+                    <el-image style="width: 60px; height: 60px" :src="scope.row.picture" fit="fill" v-if="scope.row.picture"></el-image>
+                    <PersonalPhoto style="cursor: pointer;" :name="scope.row.name" v-else></PersonalPhoto>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="name" label="名称" align="center" />
+                <el-table-column label="电话号码" align="center">
+                  <template #default="scope">
+                    <div v-if="scope.row.mobile">{{scope.row.mobile}}</div>
+                    <div v-else> 暂无 </div>
+                  </template>
+                </el-table-column>
+                <el-table-column label="电子邮箱" align="center">
+                  <template #default="scope">
+                    <div v-if="scope.row.mail">{{scope.row.mail}}</div>
+                    <div v-else> 暂无 </div>
+                  </template>
+                </el-table-column>
+                <el-table-column label="操作" align="center" v-if="PowerShow">
+                  <template #default="scope">
+                    <el-button class="deletebtns" type="danger" size="small" @click="removeUser(scope.row,'alone')">移除用户
+                    </el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+              <div v-else class="notdatas"><span>暂无关联用户</span></div>
+            </div>
+          </div>
+        </el-tab-pane>
       </el-tabs>
     </div>
     <!--添加关联学校弹窗-->
@@ -139,7 +201,7 @@
           </el-input>
         </div>
         <el-table ref="multipleTableRef" :data="schoolLists" style="width: 100%" height="42vh" @selection-change="handleSelectionChange" empty-text="暂无相关搜索学校">
-          <el-table-column label="校徽">
+          <el-table-column label="校徽" align="center">
             <template #default="scope">
               <el-image style="width: 40px; height: 40px" :src="scope.row.picture" fit="fill"></el-image>
             </template>
@@ -157,6 +219,58 @@
       </el-dialog>
     </div>
     <!--添加关联学校弹窗end-->
+    <!--添加关联用户弹窗-->
+    <div class="adduser-relevancy">
+      <el-dialog v-model="addschoolRelevancy" title="搜索用户列表" width="25%">
+        <div>
+          <el-input v-model="searchUser" placeholder="搜索 手机号码" class="input-with-select" size="small" clearable>
+            <template #prepend>
+              <svg class="addrelevancy-icon" aria-hidden="true">
+                <use xlink:href="#icon-sousuo3-copy"></use>
+              </svg>
+            </template>
+          </el-input>
+        </div>
+        <el-table :data="userLists" style="width: 100%" height="42vh" @selection-change="handleUser" empty-text="暂无搜索相关用户" v-loading="searchUserstate" element-loading-text="加载中...">
+          <el-table-column label="头像" align="center">
+            <template #default="scope">
+              <el-image style="width: 40px; height: 40px" :src="scope.row.picture" fit="fill" v-if="scope.row.picture"></el-image>
+              <PersonalPhoto style="cursor: pointer;" :name="scope.row.name" v-else></PersonalPhoto>
+            </template>
+          </el-table-column>
+          <el-table-column property="name" label="名称" />
+          <!-- <el-table-column property="mobile" label="手机号码" /> -->
+          <el-table-column label="手机号码" align="center">
+            <template #default="scope">
+              <div v-if="scope.row.mobile">{{scope.row.mobile}}</div>
+              <div v-else> 暂无 </div>
+            </template>
+          </el-table-column>
+          <el-table-column label="状态" type="selection" />
+        </el-table>
+        <template #footer>
+          <span class="dialog-footer">
+            <el-button @click="addschoolRelevancy = false">取消</el-button>
+            <el-button type="primary" @click="notarizebox=true">关联选中用户</el-button>
+          </span>
+        </template>
+      </el-dialog>
+    </div>
+    <!--添加关联用户弹窗end-->
+    <!--身份确认-->
+    <el-dialog v-model="notarizebox" title="选择关联身份" width="20%" class="radiusbox">
+      <el-radio-group v-model="correlationRole">
+        <el-radio label="1" size="large">任命为管理员</el-radio>
+        <el-radio label="2" size="large">普通会员</el-radio>
+      </el-radio-group>
+      <template #footer>
+        <span class="dialog-footer">
+          <el-button @click="notarizebox = false">取消</el-button>
+          <el-button type="primary" @click="correlationUser('add')">确认</el-button>
+        </span>
+      </template>
+    </el-dialog>
+    <!--身份确认end-->
   </div>
 </template>
 <script>
@@ -182,6 +296,7 @@ export default {
     let setform = ref({
       name: '',
       credit: '',
+      type: '0',
       mobile: '',
       imageUrl: '',
       email: '',
@@ -189,6 +304,7 @@ export default {
       domain: '',
       webhook: '',
     })
+    let setType = ref('0')
     let formVerify = ref({
       name: [
         { required: true, message: '企业名称不能为空', trigger: 'blur' },
@@ -204,15 +320,23 @@ export default {
     })
     let saveState = ref(false)
     let tableData = ref([])
+    let userData = ref([])
     let schoolLists = ref([])
+    let userLists = ref([])
     let original = ref([])
     let timer = ref('')
     let addschoolRelevancy = ref(false)
     let checkedSchool = ref([])
+    let checkedUser = ref([])
     let removeArr = ref([])
+    let removeUserarr = ref([])
     let serachValues = ref('')
     let uploadState = ref(false)
     let uploadHeader = ref({})
+    let searchUser = ref('')
+    let searchUserstate = ref(false)
+    let notarizebox = ref(false)
+    let correlationRole = ref('2')
     function backs () {
       context.emit('backState', 'list')
     }
@@ -272,6 +396,10 @@ export default {
       console.log(val, '选中')
       checkedSchool.value = val
     }
+    //勾选的即将关联的用户
+    function handleUser (val) {
+      checkedUser.value = val
+    }
     //企业关联学校
     function correlationSchool () {
       let schoolList = checkedSchool.value
@@ -284,6 +412,31 @@ export default {
         ElMessage.error('关联失败')
       })
     }
+    //添加或删除用户的提示
+    function operateHint (type) {
+      ElMessageBox.alert(
+        '<strong>proxy is <i>HTML</i> string</strong>',
+        'HTML String',
+        {
+          dangerouslyUseHTMLString: true,
+        }
+      )
+    }
+    //企业关联用户
+    function correlationUser (types) {
+      console.log(types, '7')
+      let userlist = checkedUser.value[0]
+      let typevalue = types
+      console.log(userlist)
+      let bizsData = { bizId: setform.value.id, name: setform.value.name, picture: setform.value.picture, role: [correlationRole.value === '1' ? 'admin' : 'read'] }
+      let data = { id: userlist.id, type: typevalue, bizs: [bizsData], userType: userlist.id.indexOf('-') == -1 ? 'tmdId' : '' }
+      proxy.$api.getCorrelationUser(data).then((res) => {
+        console.log(res, '添加角色')
+        res.state === 200 ? (ElMessage.success('关联成功'), notarizebox.value = false, details(setform.value.id), addschoolRelevancy.value = false) : ''
+      }).catch((err) => {
+        ElMessage.error('关联失败,API异常')
+      })
+    }
     //重新生成秘匙
     function againGenerate () {
       let data = { id: setform.value.id }
@@ -297,6 +450,10 @@ export default {
     function removeSchoolList (val) {
       removeArr.value = val
     }
+    //移除用户选中
+    function removeUserList (val) {
+      removeUserarr.value = val
+    }
     //企业内移除关联学校
     function removeSchools (data, type) {
       console.log(data, type, '现在的删除方式')
@@ -331,6 +488,42 @@ export default {
         })
       })
     }
+    //企业内移除用户关联
+    function removeUser (data, type) {
+      let removeList = []
+      data && type === 'alone' ? removeList.push(data) : ''
+      type === 'batch' ? removeUserarr.value.forEach((item) => { removeList.push(item) }) : ''
+      let text = ''
+      if (removeUserarr.value.length > 0 && !data) {
+        for (let i in removeUserarr.value) {
+          if (i < 6) {
+            text === '' ? text = removeUserarr.value[i].name : text = text + ',' + removeUserarr.value[i].name
+          } else {
+            text.indexOf('... 等') !== -1 ? '' : text = text + '... 等'
+          }
+        }
+      } else if (data) {
+        text = data.name
+      }
+      console.log(data, '类型')
+      ElMessageBox.confirm(`您确定要移除 ${text} 与 当前企业的关联 吗? 请慎重操作!`, '移除关联用户', {
+        confirmButtonText: proxy.$t(`commonMsg.confirm`),
+        cancelButtonText: proxy.$t(`commonMsg.closes`),
+        type: 'warning',
+        center: true,
+      }).then(() => {
+        console.log(data, '类型111')
+        let bizsData = [];
+        data.relation.forEach((item) => { item.bizId === setform.value.id ? bizsData.push(item) : '' })
+        let datainfo = { id: data.id, type: 'del', bizs: bizsData, userType: data.id.indexOf('-') == -1 ? 'tmdId' : '' }
+        proxy.$api.getCorrelationUser(datainfo).then((res) => {
+          console.log(res, '移除角色')
+          res.state === 200 ? (ElMessage.success('移除成功'), details(setform.value.id)) : ''
+        }).catch((err) => {
+          ElMessage.error('移除失败,API异常')
+        })
+      })
+    }
     function debounce (fn, wait) {
       if (timer.value !== null) {
         clearTimeout(timer.value)
@@ -345,12 +538,48 @@ export default {
       })
       schoolLists.value = newArr
     }
+    //对用户进行搜索
+    function serachUserinfo () {
+      let values = searchUser.value
+      let data = { mobile: values }
+      searchUserstate.value = true
+      proxy.$api.searchphoneUser(data).then((res) => {
+        console.log(res, '999999')
+        // res.state === 200 ? userLists.value = res.userinfos : ''
+        if (res.state === 200) {
+          if (res.bizUsers.length !== 0) {
+            userLists.value = res.bizUsers
+            userLists.value.userType = ''
+          } else if (res.coreUser !== null) {
+            userLists.value = [res.coreUser]
+            userLists.value.userType = 'tmdId'
+          }
+          if (res.bizUsers.length === 0 && res.coreUser === null) { userLists.value = [] }
+        }
+        searchUserstate.value = false
+      }).catch((error) => {
+        ElMessage.error('搜索失败,API异常')
+        searchUserstate.value = false
+      })
+    }
     //保存基础设置
     function saveSet () {
       console.log(setform.value, '保存相关')
       let datas = setform.value
       let schoolData = tableData.value
-      let saveData = { code: datas.code, id: datas.id, name: datas.name, credit: datas.credit, picture: datas.imageUrl, mobile: datas.mobile, email: datas.email, domain: datas.domain, webhook: datas.webhook, schools: schoolData }
+      let saveData = {
+        code: datas.code,
+        id: datas.id,
+        name: datas.name,
+        credit: datas.credit,
+        picture: datas.imageUrl,
+        mobile: datas.mobile,
+        email: datas.email,
+        domain: datas.domain,
+        webhook: datas.webhook,
+        schools: schoolData,
+        isCustomize: Number(setType.value)
+      }
       proxy.$api.updateThirdparty(saveData).then((res) => {
         res.state === 200 ? (ElMessage.success('保存成功'), context.emit('backState', 'list')) : ElMessage.error('保存失败')
       }).catch((error) => {
@@ -361,11 +590,22 @@ export default {
       let datas = { id: val }
       proxy.$api.getAllenterprise(datas).then((res) => {
         console.log(res, '详情')
-        res.state === 200 ? (setform.value = res.businesses[0], setform.value.imageUrl = res.businesses[0].picture, tableData.value = res.businesses[0].schools) : ''
+        res.state === 200 ? (setform.value = res.businesses[0], setform.value.imageUrl = res.businesses[0].picture, setType.value = res.businesses[0].isCustomize.toString(), setform.value.type = res.businesses[0].isCustomize.toString(), tableData.value = res.businesses[0].schools) : ''
         getschoolList(setform.value.id)
       }).catch((error) => {
         ElMessage.error('企业详情获取失败,API异常')
       })
+      getUserlist(val)
+    }
+    //获取企业用户列表
+    function getUserlist (value) {
+      let data = { id: value }
+      proxy.$api.getUserarr(data).then((res) => {
+        console.log(res, '用户list')
+        res.state === 200 ? userData.value = res.businessUsers : ''
+      }).catch((error) => {
+        ElMessage.error('企业用户列表获取失败,API异常')
+      })
     }
     //复制
     async function copykeys (value) {
@@ -391,6 +631,14 @@ export default {
         schoolLists.value = original.value
       }
     })
+    watch(searchUser, (newdata) => {
+      if (newdata.trim().length !== 0) {
+        debounce(serachUserinfo, 500)
+      } else {
+        console.log('111')
+        userLists.value = []
+      }
+    })
     uploadInt()
     return {
       activeName,
@@ -421,7 +669,20 @@ export default {
       deltelogos,
       PowerShow,
       details,
-      copykeys
+      copykeys,
+      setType,
+      userData,
+      userLists,
+      searchUser,
+      serachUserinfo,
+      handleUser,
+      searchUserstate,
+      correlationUser,
+      notarizebox,
+      correlationRole,
+      removeUser,
+      removeUserarr,
+      removeUserList
     }
   },
 }
@@ -519,6 +780,8 @@ export default {
   bottom: 5px;
   left: 101%;
 }
+.generatebox:hover {
+}
 .generatebox-copy {
   position: absolute;
   top: 5px;
@@ -569,11 +832,14 @@ export default {
   width: 100%;
   height: 100%;
 }
-.token-box:hover .generatebox-copy {
+.tokenbox:hover .generatebox-copy {
   opacity: 1 !important;
 }
-.token-box:hover .el-textarea__inner {
+.tokenbox:hover .el-textarea__inner {
   background: rgba(189, 195, 199, 0.45);
   cursor: pointer;
 }
+.setboxs .radiusbox {
+  border-radius: 5px;
+}
 </style>

+ 12 - 12
TEAMModelBI/ClientApp/src/view/created/created.vue

@@ -1171,7 +1171,7 @@ export default {
         scAdmin = []
         let newPeriod = []
         item.periodTxt = ''
-        if(item.hasOwnProperty("period")) {
+        if (item.hasOwnProperty("period")) {
           item.period.forEach((periodItem) => {
             (item.periodTxt != '') ? item.periodTxt += '、' : ''
             item.periodTxt += periodItem
@@ -1179,7 +1179,7 @@ export default {
               items.name === periodItem ? newPeriod.push(items) : ''
             }
           })
-        } 
+        }
         item.period = newPeriod
         item.province = (item.hasOwnProperty("province")) ? item.province : ''
         item.type = (item.hasOwnProperty("type")) ? item.type : 1
@@ -1582,7 +1582,7 @@ export default {
           regionCodeNow = 'CN'
         } else {
           regionInfoList.forEach(function (item) {
-            if ( schoolForm.value[i].schoolLocation.region != '' && item['name'].includes(schoolForm.value[i].schoolLocation.region) ) {
+            if (schoolForm.value[i].schoolLocation.region != '' && item['name'].includes(schoolForm.value[i].schoolLocation.region)) {
               regionNameNow = item.name.replace('地區', '')
               regionCodeNow = item.code
             }
@@ -1670,8 +1670,8 @@ export default {
       let cityText = value[0].city
       let cityCodes = ''
       if (siteValue === 'cn') {
-        let cityNums = value[0].city.indexOf('市') !== -1 && value[0].city !== '直辖市' ? value[0].city.indexOf('市') : value[0].city.indexOf('县') !== -1 ? value[0].city.indexOf('县') : value[0].city.indexOf('自治州') !== -1 ? value[0].city.indexOf('自治州') : value[0].city.indexOf('直辖市') !== -1 ? value[0].city.length : value[0].city.indexOf('区') !== -1 ? value[0].city.indexOf('区') :  ''
-          cityText = value[0].city.substr(0, cityNums)
+        let cityNums = value[0].city.indexOf('市') !== -1 && value[0].city !== '直辖市' ? value[0].city.indexOf('市') : value[0].city.indexOf('县') !== -1 ? value[0].city.indexOf('县') : value[0].city.indexOf('自治州') !== -1 ? value[0].city.indexOf('自治州') : value[0].city.indexOf('直辖市') !== -1 ? value[0].city.length : value[0].city.indexOf('区') !== -1 ? value[0].city.indexOf('区') : ''
+        cityText = value[0].city.substr(0, cityNums)
       }
       //区 关键字剔除
       let distNums = value[0].dist.indexOf('区') !== -1 && value[0].dist.length > 2 ? value[0].dist.indexOf('区') : value[0].dist.indexOf('县') !== -1 ? value[0].dist.indexOf('县') : value[0].dist.indexOf('市') !== -1 ? value[0].dist.indexOf('市') : value[0].dist.indexOf('直辖市') !== -1 || value[0].dist.indexOf('天府新区') !== -1 ? value[0].dist.length : ''
@@ -1687,14 +1687,14 @@ export default {
           }
         }
       } else {
-          provinceCodes = ''
-          for (let i in regionsJosn) {
-            regionsJosn[i].name.replace('地區', '') === value[0].region ? (regionCodes = regionsJosn[i].code, childrenData = regionsJosn[i].children) : ''
-            for (let c in childrenData) {
-              childrenData[c].name === value[0].city ? cityCodes = childrenData[c].code : ''
-            }
+        provinceCodes = ''
+        for (let i in regionsJosn) {
+          regionsJosn[i].name.replace('地區', '') === value[0].region ? (regionCodes = regionsJosn[i].code, childrenData = regionsJosn[i].children) : ''
+          for (let c in childrenData) {
+            childrenData[c].name === value[0].city ? cityCodes = childrenData[c].code : ''
           }
-       }
+        }
+      }
       console.log(regionText, provinceText, cityText, distText, regionCodes, provinceCodes, cityCodes)
       let backData = []
       backData.push(

+ 66 - 22
TEAMModelBI/ClientApp/src/view/schoolmanage/schoolAnalyse.vue

@@ -267,7 +267,7 @@
             <p class="items-basics-num">{{anSchool.classNum}}</p>
           </div>
           <div class="items-basics">
-            <p class="items-basics-title">课例数:</p>
+            <p class="items-basics-title">资源数:</p>
             <p class="items-basics-num">{{anSchool.classInfoNum}}</p>
           </div>
         </div>
@@ -284,29 +284,17 @@
     <!--课堂信息-->
     <div class="class-datas">
       <div class="class-info">
-        <div class="class-box box1">
-          <div class="classbox-num">126</div>
-          <div class="classbox-title">课堂总数</div>
-        </div>
-        <div class="class-box box2">
-          <div class="classbox-num">126</div>
-          <div class="classbox-title">今日课堂</div>
-        </div>
-        <div class="class-box box3">
-          <div class="classbox-num">126</div>
-          <div class="classbox-title">本周课堂</div>
-        </div>
-        <div class="class-box box4">
-          <div class="classbox-num">126</div>
-          <div class="classbox-title">本月课堂</div>
+        <div class="class-box box1" v-for="item in classroomsData.attend" :key="item.id">
+          <div class="classbox-num">{{item.value}}</div>
+          <div class="classbox-title">{{item.name}}</div>
         </div>
       </div>
       <div class="class-total">
-        <div class="class-box total-box total1">
-          <div class="classbox-num total-num">126</div>
-          <div class="classbox-title total-title">课堂总时数</div>
+        <div class="class-box total-box total1" v-for="itemD in classroomsData.details" :key="itemD.id">
+          <div class="classbox-num total-num">{{itemD.value}}</div>
+          <div class="classbox-title total-title">{{itemD.name}}</div>
         </div>
-        <div class="class-box total-box total2">
+        <!-- <div class="class-box total-box total2">
           <div class="classbox-num total-num">126</div>
           <div class="classbox-title total-title">课堂总参与人次</div>
         </div>
@@ -321,7 +309,7 @@
         <div class="class-box total-box total5">
           <div class="classbox-num total-num">126</div>
           <div class="classbox-title total-title">课堂提问总题数</div>
-        </div>
+        </div> -->
       </div>
     </div>
     <!--课堂信息end-->
@@ -1624,6 +1612,34 @@ export default {
     })
     let timer = ref()
     let allscSearch = ref()
+    let classTotal = ref({
+      resource: 0,
+      total: 0,
+      day: 0,
+      week: 0,
+      month: 0,
+      duration: 0,
+      attendcount: 0,
+      interactioncount: 0,
+      workcount: 0,
+      questionscount: 0,
+    })
+    //显示某个学校的课堂数
+    let classroomsData = ref({
+      attend: [
+        { id: 1, name: '课堂总数', value: 0 },
+        { id: 2, name: '今日课堂', value: 0 },
+        { id: 3, name: '本周课堂', value: 0 },
+        { id: 4, name: '本月课堂', value: 0 },
+      ],
+      details: [
+        { id: 1, name: '课堂总时数', value: 0 },
+        { id: 2, name: '课堂总参与人次', value: 0 },
+        { id: 3, name: '课堂总互动次数', value: 0 },
+        { id: 4, name: '课堂任务总人次', value: 0 },
+        { id: 5, name: '课堂提问总题数', value: 0 },
+      ]
+    })
     function showInit () {
       let urls = window.location.href.indexOf('pattern=area')
       let detailsUrl = window.location.href.indexOf('pattern=details')
@@ -2098,6 +2114,8 @@ export default {
       proxy.$api.schooloneDetails(datas).then((res) => {
         console.log(res, '返回VVVVV22V2V2V2')
         if (res.state === 200) {
+          //调取资源数和课堂相关数据API
+          getClassroomdata(schoolkey)
           //处理基础数据
           let schooldata = { id: res.scStats.id, picture: res.scStats.picture, size: res.scStats.size, name: res.scStats.name }
           schoolDeatils.value = schooldata
@@ -2144,6 +2162,29 @@ export default {
         }
       })
     }
+    //获取某个学校课堂相关数据和资源数
+    function getClassroomdata (id) {
+      if (!id) return
+      let data = { code: id }
+      proxy.$api.classroomDatas(data).then((res) => {
+        console.log(res, '课堂数据')
+        if (res.state === 200) {
+          classroomsData.value.attend[0].value = res.cnt
+          classroomsData.value.attend[1].value = res.dayCnt
+          classroomsData.value.attend[2].value = res.weekCnt
+          classroomsData.value.attend[3].value = res.monthCnt
+          anSchool.value.classInfoNum = res.resourcesCount
+
+          classroomsData.value.details[0].value = res.duration === 0 ? 0 : Number((res.duration / 60).toFixed(2))
+          classroomsData.value.details[1].value = res.attendCount
+          classroomsData.value.details[2].value = res.clientInteractionCount
+          classroomsData.value.details[3].value = res.workCount
+          classroomsData.value.details[4].value = res.interactionCount
+        }
+      }).catch((err) => {
+        ElMessage.error('课堂信息获取失败,API异常')
+      })
+    }
     //获取某个学校的年级和科目数据
     function gradeandsubjects (val) {
       if (!val) {
@@ -2376,7 +2417,10 @@ export default {
       allscSearch,
       columns,
       columnsWidth,
-      serviceVersion
+      serviceVersion,
+      classTotal,
+      getClassroomdata,
+      classroomsData
     }
   },
 }