Commit 560c12f202d2440c2af8154c8f7a3c8c8a92cf77
1 parent
23a6dc5f
学校设置,软件下载
Showing
11 changed files
with
534 additions
and
79 deletions
src/api/apis/setUp.js renamed to src/api/apis/apis.js
| 1 | 1 | |
| 2 | 2 | import service from "../axios" |
| 3 | -import setUpUrls from "../urls/setUp" | |
| 3 | +import setUpUrls from "../urls/apis" | |
| 4 | 4 | |
| 5 | 5 | export default { |
| 6 | 6 | // 学校管理员首页数据 |
| 7 | + teacherIndex(data) { | |
| 8 | + return service({ | |
| 9 | + url: setUpUrls.teacherIndex, | |
| 10 | + method: 'POST', | |
| 11 | + data | |
| 12 | + }) | |
| 13 | + }, | |
| 14 | + // 学校管理员首页数据 | |
| 7 | 15 | schoolIndex(data) { |
| 8 | 16 | return service({ |
| 9 | 17 | url: setUpUrls.schoolIndex, | ... | ... |
src/api/apis/device.js deleted
| 1 | - | |
| 2 | -import service from "../axios" | |
| 3 | -import deviceUrls from "../urls/device" | |
| 4 | - | |
| 5 | -export default { | |
| 6 | - // 下载设备模板 | |
| 7 | - downDevice(data) { | |
| 8 | - return service({ | |
| 9 | - url: deviceUrls.downDevice, | |
| 10 | - method: 'POST', | |
| 11 | - data | |
| 12 | - }) | |
| 13 | - }, | |
| 14 | - // 设备列表 | |
| 15 | - fetchDeviceList(data) { | |
| 16 | - return service({ | |
| 17 | - url: deviceUrls.deviceList, | |
| 18 | - method: 'POST', | |
| 19 | - data | |
| 20 | - }) | |
| 21 | - }, | |
| 22 | - // autoUpDate | |
| 23 | - autoUpDate(data) { | |
| 24 | - return service({ | |
| 25 | - url: deviceUrls.autoUpDate, | |
| 26 | - method: 'POST', | |
| 27 | - data | |
| 28 | - }) | |
| 29 | - }, | |
| 30 | - // 设备列表 | |
| 31 | - stopUpdate(data) { | |
| 32 | - return service({ | |
| 33 | - url: deviceUrls.stopUpdate, | |
| 34 | - method: 'POST', | |
| 35 | - data | |
| 36 | - }) | |
| 37 | - }, | |
| 38 | - | |
| 39 | -} |
src/api/urls/setUp.js renamed to src/api/urls/apis.js
src/api/urls/device.js deleted
src/assets/images/zan.png
0 → 100644
1.8 KB
src/views/down/client.vue
| 1 | 1 | <template> |
| 2 | - <div>授课端配置下载</div> | |
| 2 | + <div class="page-container"> | |
| 3 | + <back-box> | |
| 4 | + <template slot="title"> | |
| 5 | + <span>授课端下载</span> | |
| 6 | + </template> | |
| 7 | + </back-box> | |
| 8 | + <div class="page-content"> | |
| 9 | + <div class="content-top"> | |
| 10 | + <div class="cont-info"> | |
| 11 | + <img class="logo" :src="info.appImage" alt="" /> | |
| 12 | + <div> | |
| 13 | + <p class="name">{{ `${info.appName} ${info.versionName}` }}</p> | |
| 14 | + <p class="txt">文件大小:{{ `${info.fileSize}` }}M</p> | |
| 15 | + <p class="txt">最近更新:{{ info.modifiedTime }}</p> | |
| 16 | + </div> | |
| 17 | + </div> | |
| 18 | + <div class="down-box"> | |
| 19 | + <p class="txt">默认参数配置</p> | |
| 20 | + <el-button | |
| 21 | + class="down-btn" | |
| 22 | + type="primary" | |
| 23 | + @click="getAppDownloadUrl(false)" | |
| 24 | + >立即下载</el-button | |
| 25 | + > | |
| 26 | + </div> | |
| 27 | + </div> | |
| 28 | + <ul class="down-ul"> | |
| 29 | + <li class="down-li" v-for="item in tableData" :key="item.id"> | |
| 30 | + <span @click="edit(item)">{{ item.configName }}</span> | |
| 31 | + <el-button plan round @click="getAppDownloadUrl(item.id)" | |
| 32 | + >下载</el-button | |
| 33 | + > | |
| 34 | + </li> | |
| 35 | + <li class="down-li"> | |
| 36 | + <span>自定义软件功能</span> | |
| 37 | + <el-button plan round icon="el-icon-plus">参数设置</el-button> | |
| 38 | + </li> | |
| 39 | + </ul> | |
| 40 | + </div> | |
| 41 | + <div class="edit-dia" v-show="dialogVis" width="1000px" height="100%"> | |
| 42 | + <div class="back"> | |
| 43 | + <div class="back-l" @click="dialogVis = false"> | |
| 44 | + <i class="fa fa-mail-reply-all"></i> | |
| 45 | + <p>参数设置</p> | |
| 46 | + </div> | |
| 47 | + </div> | |
| 48 | + <div class="form-box"> | |
| 49 | + <el-form :model="formData" :rules="ruleForm" label-width="160px"> | |
| 50 | + <el-form-item label="主菜单设置:" prop="mainMenu"> | |
| 51 | + <el-checkbox-group v-model="formData.mainMenu" :max="4"> | |
| 52 | + <el-checkbox v-for="item in menuList" :label="item" :key="item">{{ | |
| 53 | + item | |
| 54 | + }}</el-checkbox> | |
| 55 | + </el-checkbox-group> | |
| 56 | + </el-form-item> | |
| 57 | + <el-form-item label="弹出菜单组:" prop="popupMenu"> | |
| 58 | + <el-radio-group v-model="formData.popupMenu"> | |
| 59 | + <p class="popup-menu"> | |
| 60 | + <el-radio :label="1" | |
| 61 | + ><span>1:签到点名</span> <span> 2:导入导出</span> | |
| 62 | + <span>3:班级管理</span> <span>4:系统设置</span></el-radio | |
| 63 | + > | |
| 64 | + </p> | |
| 65 | + <p class="popup-menu popup-menu1"> | |
| 66 | + <el-radio :label="2"> | |
| 67 | + <span>1:签到点名</span> <span> 2:导入导出</span> | |
| 68 | + <span>3:考试任务</span> <span>4:系统设置</span></el-radio | |
| 69 | + > | |
| 70 | + </p> | |
| 71 | + </el-radio-group> | |
| 72 | + </el-form-item> | |
| 73 | + <el-form-item label="成绩等级设置:"> | |
| 74 | + <el-col :span="12"> | |
| 75 | + <p class="silde-p"> | |
| 76 | + <el-slider v-model="formData.failedSet"></el-slider | |
| 77 | + ><span>不及格</span> | |
| 78 | + </p> | |
| 79 | + <p class="silde-p"> | |
| 80 | + <el-slider v-model="formData.passSet"></el-slider | |
| 81 | + ><span>及格</span> | |
| 82 | + </p> | |
| 83 | + <p class="silde-p"> | |
| 84 | + <el-slider v-model="formData.goodSet"></el-slider | |
| 85 | + ><span>良好</span> | |
| 86 | + </p> | |
| 87 | + <p class="silde-p"> | |
| 88 | + <el-slider v-model="formData.excellenSet"></el-slider | |
| 89 | + ><span>优秀</span> | |
| 90 | + </p> | |
| 91 | + </el-col> | |
| 92 | + </el-form-item> | |
| 93 | + <el-form-item label="抢答设置:" prop="viesAnswerSet"> | |
| 94 | + <el-radio-group v-model="formData.popupMenu"> | |
| 95 | + <el-radio :label="0">倒计时抢答</el-radio> | |
| 96 | + <el-radio :label="1">即时抢答</el-radio> | |
| 97 | + <el-radio :label="2">老师选择</el-radio> | |
| 98 | + </el-radio-group> | |
| 99 | + <el-input-number | |
| 100 | + size="small" | |
| 101 | + class="count-down" | |
| 102 | + v-model="formData.countdown" | |
| 103 | + :step="1" | |
| 104 | + :step-strictly="true" | |
| 105 | + ></el-input-number | |
| 106 | + >秒 | |
| 107 | + </el-form-item> | |
| 108 | + <el-form-item label="抽答设置:" prop="viesAnswerSet"> | |
| 109 | + <el-radio-group v-model="formData.ballotAnswerSet"> | |
| 110 | + <el-radio :label="0">点名抽答</el-radio> | |
| 111 | + <el-radio :label="1">随机抽答</el-radio> | |
| 112 | + </el-radio-group> | |
| 113 | + </el-form-item> | |
| 114 | + </el-form> | |
| 115 | + </div> | |
| 116 | + </div> | |
| 117 | + </div> | |
| 3 | 118 | </template> |
| 4 | 119 | |
| 5 | 120 | <script> |
| 6 | 121 | export default { |
| 7 | - | |
| 8 | -} | |
| 122 | + data() { | |
| 123 | + return { | |
| 124 | + page: 1, | |
| 125 | + size: 20, | |
| 126 | + info: { | |
| 127 | + appName: "", | |
| 128 | + appImage: "", | |
| 129 | + versionName: "", | |
| 130 | + fileSize: "", | |
| 131 | + modifiedTime: "", | |
| 132 | + }, | |
| 133 | + tableData: [], | |
| 134 | + dialogVis: true, | |
| 135 | + formData: { | |
| 136 | + mainMenu: ["问"], | |
| 137 | + popupMenu: 1, | |
| 138 | + failedSet: 60, | |
| 139 | + passSet: 80, | |
| 140 | + goodSet: 90, | |
| 141 | + excellenSet: 98, | |
| 142 | + viesAnswerSet: 0, | |
| 143 | + countdown: 5, | |
| 144 | + ballotAnswerSet: 0, | |
| 145 | + }, | |
| 146 | + ruleForm: { | |
| 147 | + mainMenu: [ | |
| 148 | + { required: true, message: "请选择主菜单", trigger: "blur" }, | |
| 149 | + ], | |
| 150 | + popupMenu: [ | |
| 151 | + { required: true, message: "请选择弹出菜单", trigger: "blur" }, | |
| 152 | + ], | |
| 153 | + viesAnswerSet: [ | |
| 154 | + { required: true, message: "请选择抢答类型", trigger: "blur" }, | |
| 155 | + ], | |
| 156 | + countdown: [ | |
| 157 | + { required: true, message: "请输入抢答倒计时", trigger: "blur" }, | |
| 158 | + ], | |
| 159 | + ballotAnswerSet: [ | |
| 160 | + { required: true, message: "请选择抽答类型", trigger: "blur" }, | |
| 161 | + ], | |
| 162 | + }, | |
| 163 | + menuList: ["问", "测", "析"], | |
| 164 | + }; | |
| 165 | + }, | |
| 166 | + created() { | |
| 167 | + this.latestVersion(); | |
| 168 | + this.appConfigList(); | |
| 169 | + }, | |
| 170 | + methods: { | |
| 171 | + async latestVersion() { | |
| 172 | + const { data, status, info } = await this.$request.latestVersion(); | |
| 173 | + if (status == 0) { | |
| 174 | + this.info = { ...data }; | |
| 175 | + this.info.fileSize = | |
| 176 | + (this.info.fileSize && (this.info.fileSize / 1024).toFixed(0)) || | |
| 177 | + "--"; | |
| 178 | + } else { | |
| 179 | + this.$message.error(info); | |
| 180 | + } | |
| 181 | + }, | |
| 182 | + async appConfigList() { | |
| 183 | + const { data, status, info } = await this.$request.appConfigList({ | |
| 184 | + page: this.page, | |
| 185 | + size: this.size, | |
| 186 | + }); | |
| 187 | + if (status == 0) { | |
| 188 | + this.tableData = [...data.list] || []; | |
| 189 | + } else { | |
| 190 | + this.$message.error(info); | |
| 191 | + } | |
| 192 | + }, | |
| 193 | + async getAppDownloadUrl(configId) { | |
| 194 | + const { data, status, info } = await this.$request.getAppDownloadUrl({ | |
| 195 | + configId: configId || "", | |
| 196 | + }); | |
| 197 | + if (status == 0) { | |
| 198 | + // this.tableData = [...data.list] || []; | |
| 199 | + } else { | |
| 200 | + this.$message.error(info); | |
| 201 | + } | |
| 202 | + }, | |
| 203 | + }, | |
| 204 | +}; | |
| 9 | 205 | </script> |
| 10 | 206 | |
| 11 | -<style> | |
| 12 | - | |
| 207 | +<style lang="scss" scoped> | |
| 208 | +.page-container { | |
| 209 | + position: relative; | |
| 210 | +} | |
| 211 | +.page-content { | |
| 212 | + padding: 30px; | |
| 213 | + .content-top { | |
| 214 | + padding: 20px 50px 20px 20px; | |
| 215 | + display: flex; | |
| 216 | + justify-content: space-between; | |
| 217 | + align-items: center; | |
| 218 | + .cont-info { | |
| 219 | + flex: 1; | |
| 220 | + display: flex; | |
| 221 | + align-items: center; | |
| 222 | + .logo { | |
| 223 | + width: 140px; | |
| 224 | + margin-right: 16px; | |
| 225 | + } | |
| 226 | + .name { | |
| 227 | + font-size: 20px; | |
| 228 | + color: #333; | |
| 229 | + line-height: 24px; | |
| 230 | + padding-bottom: 12px; | |
| 231 | + } | |
| 232 | + .txt { | |
| 233 | + font-size: 15px; | |
| 234 | + color: #7f7f7f; | |
| 235 | + line-height: 25px; | |
| 236 | + } | |
| 237 | + } | |
| 238 | + .down-box { | |
| 239 | + width: 200px; | |
| 240 | + text-align: center; | |
| 241 | + .txt { | |
| 242 | + font-size: 16px; | |
| 243 | + padding-bottom: 8px; | |
| 244 | + } | |
| 245 | + .down-btn { | |
| 246 | + font-size: 20px; | |
| 247 | + } | |
| 248 | + } | |
| 249 | + } | |
| 250 | + .down-ul { | |
| 251 | + display: flex; | |
| 252 | + flex-wrap: wrap; | |
| 253 | + padding: 0 20px; | |
| 254 | + .down-li { | |
| 255 | + width: calc(50% - 12px); | |
| 256 | + height: 72px; | |
| 257 | + padding: 0 16px; | |
| 258 | + box-sizing: border-box; | |
| 259 | + display: flex; | |
| 260 | + justify-content: space-between; | |
| 261 | + align-items: center; | |
| 262 | + margin: 0 24px 30px 0; | |
| 263 | + border-radius: 10px; | |
| 264 | + background: #f8f8f8; | |
| 265 | + box-shadow: 2px 2px 5px #ccc; | |
| 266 | + &:nth-child(2n) { | |
| 267 | + margin-right: 0; | |
| 268 | + } | |
| 269 | + font-size: 16px; | |
| 270 | + color: #667ffd; | |
| 271 | + } | |
| 272 | + } | |
| 273 | +} | |
| 274 | +:deep(.el-button.is-round) { | |
| 275 | + width: 120px; | |
| 276 | + text-align: center; | |
| 277 | + padding: 10px 0; | |
| 278 | +} | |
| 279 | +.edit-dia { | |
| 280 | + position: absolute; | |
| 281 | + left: 0; | |
| 282 | + top: 0; | |
| 283 | + right: 0; | |
| 284 | + bottom: 0; | |
| 285 | + width: 100%; | |
| 286 | + height: calc(100vh - 80px); | |
| 287 | + background: #fff; | |
| 288 | + overflow-y: auto; | |
| 289 | + .back { | |
| 290 | + width: 100%; | |
| 291 | + height: 56px; | |
| 292 | + border-bottom: 1px solid #e2e2e2; | |
| 293 | + display: flex; | |
| 294 | + align-items: center; | |
| 295 | + padding: 0 20px; | |
| 296 | + box-sizing: border-box; | |
| 297 | + .back-l { | |
| 298 | + display: flex; | |
| 299 | + align-items: center; | |
| 300 | + cursor: pointer; | |
| 301 | + flex-shrink: 0; | |
| 302 | + font-size: 18px; | |
| 303 | + font-weight: 500; | |
| 304 | + } | |
| 305 | + .fa-mail-reply-all { | |
| 306 | + font-size: 28px; | |
| 307 | + color: #b3b3b3; | |
| 308 | + margin-right: 12px; | |
| 309 | + } | |
| 310 | + } | |
| 311 | + .form-box { | |
| 312 | + padding: 20px; | |
| 313 | + .popup-menu { | |
| 314 | + padding-bottom: 16px; | |
| 315 | + span { | |
| 316 | + padding-right: 12px; | |
| 317 | + } | |
| 318 | + } | |
| 319 | + .popup-menu1 { | |
| 320 | + padding-bottom: 0; | |
| 321 | + } | |
| 322 | + .count-down { | |
| 323 | + width: 48px; | |
| 324 | + margin: 0 8px 0 20px; | |
| 325 | + :deep(.el-input__inner) { | |
| 326 | + width: 48px; | |
| 327 | + height: 32px; | |
| 328 | + line-height: 32px; | |
| 329 | + border-radius: 20px; | |
| 330 | + border-color: #667ffd; | |
| 331 | + padding: 0; | |
| 332 | + } | |
| 333 | + :deep(.el-input-number__decrease) { | |
| 334 | + display: none; | |
| 335 | + } | |
| 336 | + :deep(.el-input-number__increase) { | |
| 337 | + display: none; | |
| 338 | + } | |
| 339 | + } | |
| 340 | + .silde-p { | |
| 341 | + display: flex; | |
| 342 | + align-items: center; | |
| 343 | + height:36px; | |
| 344 | + line-height:36px; | |
| 345 | + & > span { | |
| 346 | + width: 48px; | |
| 347 | + margin-left: 10px; | |
| 348 | + flex-shrink: 0; | |
| 349 | + } | |
| 350 | + :deep(.el-slider) { | |
| 351 | + flex: 1; | |
| 352 | + } | |
| 353 | + :deep(.el-slider__runway) { | |
| 354 | + margin:5px 0; | |
| 355 | + } | |
| 356 | + } | |
| 357 | + } | |
| 358 | +} | |
| 13 | 359 | </style> |
| 14 | 360 | \ No newline at end of file | ... | ... |
src/views/down/index.vue
| 1 | 1 | <template> |
| 2 | 2 | <div> |
| 3 | - <router-link to="/downClient">授课端下载</router-link> | |
| 4 | - <back-box> | |
| 3 | + <back-box> | |
| 5 | 4 | <template slot="title"> |
| 6 | 5 | <span>软件下载</span> |
| 7 | 6 | </template> |
| 8 | 7 | </back-box> |
| 9 | - <div class=""></div> | |
| 8 | + <div class="page-content"> | |
| 9 | + <div class="down-item"> | |
| 10 | + <p class="txt"> | |
| 11 | + K12公私立学校、高等院校、教育培训机构的课堂互动教学、即时课堂测验 | |
| 12 | + </p> | |
| 13 | + <el-button plan round @click="links">授课端下载</el-button> | |
| 14 | + </div> | |
| 15 | + <div class="down-item"> | |
| 16 | + <p class="txt"> | |
| 17 | + 配合发卡器硬件,方便学校管理员进行发卡补卡操作的软件。 | |
| 18 | + </p> | |
| 19 | + <el-button plan round>发卡软件下载</el-button> | |
| 20 | + </div> | |
| 21 | + </div> | |
| 10 | 22 | </div> |
| 11 | 23 | </template> |
| 12 | 24 | |
| 13 | 25 | <script> |
| 14 | 26 | export default { |
| 15 | - | |
| 16 | -} | |
| 27 | + methods:{ | |
| 28 | + links(){ | |
| 29 | + this.$router.push({ | |
| 30 | + path:'/downClient' | |
| 31 | + }) | |
| 32 | + } | |
| 33 | + } | |
| 34 | +}; | |
| 17 | 35 | </script> |
| 18 | 36 | |
| 19 | -<style> | |
| 20 | - | |
| 37 | +<style lang="scss" scoped> | |
| 38 | +.page-content { | |
| 39 | + padding: 50px; | |
| 40 | + display: flex; | |
| 41 | + justify-content: center; | |
| 42 | + .down-item { | |
| 43 | + width: 200px; | |
| 44 | + padding: 50px 20px; | |
| 45 | + border-radius: 20px; | |
| 46 | + margin: 20px; | |
| 47 | + display: flex; | |
| 48 | + flex-direction: column; | |
| 49 | + justify-content: center; | |
| 50 | + align-items: center; | |
| 51 | + background: #f8f8f8; | |
| 52 | + box-shadow: 2px 2px 5px #ccc; | |
| 53 | + .txt { | |
| 54 | + font-size: 16px; | |
| 55 | + color: #7f7f7f; | |
| 56 | + line-height: 24px; | |
| 57 | + height: 120px; | |
| 58 | + } | |
| 59 | + } | |
| 60 | +} | |
| 21 | 61 | </style> |
| 22 | 62 | \ No newline at end of file | ... | ... |
src/views/index/mainIndex.vue
| ... | ... | @@ -71,19 +71,19 @@ |
| 71 | 71 | <img class="icon" :src="getImgs(item.path)" alt="" /> |
| 72 | 72 | <div class="text" v-if="item.path == '/examinationPaper'"> |
| 73 | 73 | <p class="p1">备题组卷</p> |
| 74 | - <p class="p2">管理32套答题卡。</p> | |
| 74 | + <p class="p2">管理{{schoolInfo.paperCount}}套答题卡。</p> | |
| 75 | 75 | </div> |
| 76 | 76 | <div class="text" v-else-if="item.path == '/portrait'"> |
| 77 | 77 | <p class="p1">学生画像</p> |
| 78 | - <p class="p2">共分析532名学生成绩。</p> | |
| 78 | + <p class="p2">共分析{{schoolInfo.imagesCount}}名学生成绩。</p> | |
| 79 | 79 | </div> |
| 80 | 80 | <div class="text" v-else-if="item.path == '/ask'"> |
| 81 | 81 | <p class="p1">随堂问报表</p> |
| 82 | - <p class="p2">对41套随堂问答题记录分析。</p> | |
| 82 | + <p class="p2">对{{schoolInfo.classPeriodCount}}套随堂问答题记录分析。</p> | |
| 83 | 83 | </div> |
| 84 | 84 | <div class="text" v-else-if="item.path == '/test'"> |
| 85 | 85 | <p class="p1">即时测报表</p> |
| 86 | - <p class="p2">对28套即时测答题记录分析。</p> | |
| 86 | + <p class="p2">对{{schoolInfo.examCount}}套即时测答题记录分析。</p> | |
| 87 | 87 | </div> |
| 88 | 88 | </li> |
| 89 | 89 | </template> |
| ... | ... | @@ -116,6 +116,8 @@ export default { |
| 116 | 116 | }) |
| 117 | 117 | if(this.type == "ROLE_XUEXIAO"){ |
| 118 | 118 | this.schoolIndex() |
| 119 | + }else if(this.type == "ROLE_JIAOSHI" || this.type == "ROLE_BANZHUREN"){ | |
| 120 | + this.teacherIndex() | |
| 119 | 121 | } |
| 120 | 122 | }, |
| 121 | 123 | methods: { |
| ... | ... | @@ -127,6 +129,14 @@ export default { |
| 127 | 129 | path: path, |
| 128 | 130 | }); |
| 129 | 131 | }, |
| 132 | + async teacherIndex() { | |
| 133 | + const { data, status, info } = await this.$request.teacherIndex(); | |
| 134 | + if (status === 0) { | |
| 135 | + this.schoolInfo = { ...data }; | |
| 136 | + } else { | |
| 137 | + this.$message.error(info); | |
| 138 | + } | |
| 139 | + }, | |
| 130 | 140 | async schoolIndex() { |
| 131 | 141 | const { data, status, info } = await this.$request.schoolIndex(); |
| 132 | 142 | if (status === 0) { | ... | ... |
src/views/setUp/school.vue
| ... | ... | @@ -19,7 +19,7 @@ |
| 19 | 19 | </back-box> |
| 20 | 20 | <div class="page-content"> |
| 21 | 21 | <div class="content-box"> |
| 22 | - <i class="el-icon-edit"></i> | |
| 22 | + <i class="el-icon-edit" @click="diaSchool = true"></i> | |
| 23 | 23 | <ul class="school-info"> |
| 24 | 24 | <li class="school-item"> |
| 25 | 25 | <span class="s1">学校名称:</span> |
| ... | ... | @@ -91,6 +91,54 @@ |
| 91 | 91 | <el-button @click="diaUp = false">取 消</el-button> |
| 92 | 92 | </div> |
| 93 | 93 | </el-dialog> |
| 94 | + <el-dialog title="修改学校信息" :visible.sync="diaSchool" width="400"> | |
| 95 | + <el-form | |
| 96 | + class="form-box" | |
| 97 | + :model="formSchool" | |
| 98 | + :rules="rulesSchool" | |
| 99 | + label-width="160px" | |
| 100 | + > | |
| 101 | + <el-form-item label="学段:" prop="sections"> | |
| 102 | + <el-checkbox-group v-model="formSchool.sections"> | |
| 103 | + <el-checkbox | |
| 104 | + v-for="item in sectionsList" | |
| 105 | + :label="item.id" | |
| 106 | + :key="item.id" | |
| 107 | + >{{ item.name }}</el-checkbox | |
| 108 | + > | |
| 109 | + </el-checkbox-group> | |
| 110 | + </el-form-item> | |
| 111 | + <el-form-item label="授课端管理密码:" prop="managePwd"> | |
| 112 | + <el-col :span="10"> | |
| 113 | + <el-input | |
| 114 | + maxlength="30" | |
| 115 | + v-model="formSchool.managePwd" | |
| 116 | + placeholder="请输入授课端管理密码" | |
| 117 | + ></el-input> | |
| 118 | + </el-col> | |
| 119 | + </el-form-item> | |
| 120 | + <el-form-item label="联系人:" prop="contactPerson" | |
| 121 | + ><el-col :span="10" | |
| 122 | + ><el-input | |
| 123 | + maxlength="30" | |
| 124 | + v-model="formSchool.contactPerson" | |
| 125 | + placeholder="请输入联系人" | |
| 126 | + ></el-input></el-col | |
| 127 | + ></el-form-item> | |
| 128 | + <el-form-item label="手机号码:" prop="contactPhone" | |
| 129 | + ><el-col :span="10" | |
| 130 | + ><el-input | |
| 131 | + maxlength="11" | |
| 132 | + v-model="formSchool.contactPhone" | |
| 133 | + placeholder="请输入联系人手机号码" | |
| 134 | + ></el-input></el-col | |
| 135 | + ></el-form-item> | |
| 136 | + </el-form> | |
| 137 | + <div class="dialog-footer" slot="footer"> | |
| 138 | + <el-button @click="editSchool">确 定</el-button> | |
| 139 | + <el-button @click="diaSchool = false">取 消</el-button> | |
| 140 | + </div> | |
| 141 | + </el-dialog> | |
| 94 | 142 | </div> |
| 95 | 143 | </template> |
| 96 | 144 | |
| ... | ... | @@ -131,9 +179,10 @@ export default { |
| 131 | 179 | }, |
| 132 | 180 | data() { |
| 133 | 181 | return { |
| 182 | + loading: false, | |
| 134 | 183 | url: "xxx", |
| 135 | 184 | diaUp: false, |
| 136 | - loading: false, | |
| 185 | + diaSchool: false, | |
| 137 | 186 | school: { |
| 138 | 187 | schoolName: "长水实验中学", |
| 139 | 188 | managePwd: "123456", |
| ... | ... | @@ -143,6 +192,25 @@ export default { |
| 143 | 192 | tenantName: "长水集团", |
| 144 | 193 | }, |
| 145 | 194 | tableData: [], |
| 195 | + formSchool: { | |
| 196 | + sections: "", | |
| 197 | + managePwd: "", | |
| 198 | + contactPerson: "", | |
| 199 | + contactPhone: "", | |
| 200 | + }, | |
| 201 | + rulesSchool: { | |
| 202 | + sections: [{ required: true, message: "请选择学段", trigger: "blur" }], | |
| 203 | + managePwd: [ | |
| 204 | + { required: true, message: "请填写管理密码", trigger: "blur" }, | |
| 205 | + ], | |
| 206 | + }, | |
| 207 | + sectionsList: [ | |
| 208 | + { id: "1", name: "小学" }, | |
| 209 | + { id: "2", name: "初中" }, | |
| 210 | + { id: "3", name: "高中" }, | |
| 211 | + { id: "4", name: "大学" }, | |
| 212 | + { id: "7", name: "高补" }, | |
| 213 | + ], | |
| 146 | 214 | }; |
| 147 | 215 | }, |
| 148 | 216 | created() { |
| ... | ... | @@ -151,6 +219,31 @@ export default { |
| 151 | 219 | }, |
| 152 | 220 | methods: { |
| 153 | 221 | setGrade(obj) {}, |
| 222 | + async editSchool() { | |
| 223 | + if (!this.formSchool.sections.length) { | |
| 224 | + this.$message.error("请选择学段!"); | |
| 225 | + return; | |
| 226 | + } | |
| 227 | + if (!this.formSchool.managePwd) { | |
| 228 | + this.$message.error("请填写密码!"); | |
| 229 | + return; | |
| 230 | + } | |
| 231 | + if (this.loading) { | |
| 232 | + return; | |
| 233 | + } | |
| 234 | + this.loading = true; | |
| 235 | + let form = {...this.formSchool} | |
| 236 | + form.sections = this.formSchool.sections.join(',') | |
| 237 | + const { data, status, info } = await this.$request.updateSchool({...form}); | |
| 238 | + this.loading = false; | |
| 239 | + if (status === 0) { | |
| 240 | + this.$message.success("修改成功~"); | |
| 241 | + this.diaSchool = false; | |
| 242 | + this._QueryDataSchool(); | |
| 243 | + } else { | |
| 244 | + this.$message.error(info); | |
| 245 | + } | |
| 246 | + }, | |
| 154 | 247 | async _QueryDataSchool() { |
| 155 | 248 | this.loading = true; |
| 156 | 249 | const { data, status, info } = await this.$request.schoolDetail(); |
| ... | ... | @@ -158,6 +251,10 @@ export default { |
| 158 | 251 | console.log(status); |
| 159 | 252 | if (status === 0) { |
| 160 | 253 | this.school = { ...data }; |
| 254 | + for (let key in this.formSchool) { | |
| 255 | + this.formSchool[key] = data[key] || ""; | |
| 256 | + } | |
| 257 | + this.formSchool.sections = this.formSchool.sections.split(","); | |
| 161 | 258 | } else { |
| 162 | 259 | this.$message.error(info); |
| 163 | 260 | } |
| ... | ... | @@ -245,9 +342,9 @@ export default { |
| 245 | 342 | border-radius: 10px; |
| 246 | 343 | box-shadow: 1px 1px 3px #888; |
| 247 | 344 | cursor: pointer; |
| 248 | - transition: all .5s; | |
| 249 | - &:hover{ | |
| 250 | - transform: translate(-2px,-5px); | |
| 345 | + transition: all 0.5s; | |
| 346 | + &:hover { | |
| 347 | + transform: translate(-2px, -5px); | |
| 251 | 348 | box-shadow: 5px 5px 10px #888; |
| 252 | 349 | } |
| 253 | 350 | } |
| ... | ... | @@ -274,4 +371,7 @@ export default { |
| 274 | 371 | } |
| 275 | 372 | } |
| 276 | 373 | } |
| 374 | +.form-box { | |
| 375 | + margin: 0 20px; | |
| 376 | +} | |
| 277 | 377 | </style> |
| 278 | 378 | \ No newline at end of file | ... | ... |
src/views/setUp/student.vue
| ... | ... | @@ -2,7 +2,7 @@ |
| 2 | 2 | <div> |
| 3 | 3 | <back-box> |
| 4 | 4 | <template slot="title"> |
| 5 | - <span>教师管理</span> | |
| 5 | + <span>学生管理</span> | |
| 6 | 6 | </template> |
| 7 | 7 | <template slot="btns"> |
| 8 | 8 | <el-tooltip effect="dark" content="添加学生" placement="bottom"> |
| ... | ... | @@ -40,8 +40,8 @@ |
| 40 | 40 | class="stu-item" |
| 41 | 41 | v-for="item in classList" |
| 42 | 42 | :key="item.classCode" |
| 43 | - :class="query.classId == item.classCode ? 'avtive' : ''" | |
| 44 | - @click="classDetail(item.classCode)" | |
| 43 | + :class="query.classId == item.id ? 'active' : ''" | |
| 44 | + @click="classDetail(item.id)" | |
| 45 | 45 | > |
| 46 | 46 | <i class="el-icon-edit-outline"></i> |
| 47 | 47 | {{ item.className }}({{ item.studentCount }}) |
| ... | ... | @@ -140,7 +140,7 @@ export default { |
| 140 | 140 | }, |
| 141 | 141 | async created() { |
| 142 | 142 | await this._QueryDataGrade(); |
| 143 | - this._QueryClass(); | |
| 143 | + await this._QueryClass(); | |
| 144 | 144 | this._QueryData(3); |
| 145 | 145 | }, |
| 146 | 146 | methods: { |
| ... | ... | @@ -201,6 +201,7 @@ export default { |
| 201 | 201 | }); |
| 202 | 202 | if (status === 0) { |
| 203 | 203 | this.classList = [...data.list] || []; |
| 204 | + this.query.classId = this.classList[0]?.id; | |
| 204 | 205 | } else { |
| 205 | 206 | this.$message.error(info); |
| 206 | 207 | } | ... | ... |
src/views/setUp/teacher.vue
| ... | ... | @@ -99,7 +99,7 @@ |
| 99 | 99 | <div class="detail-top"> |
| 100 | 100 | <p class="p-item">手机号码:{{ teacherDetail.loginName }}</p> |
| 101 | 101 | <p class="p-item"> |
| 102 | - 状态:{{ teacherDetail.available == 1 ? "正常" : "不可用" }} | |
| 102 | + 状态:{{ teacherDetail.available == 1 ? "不可用" : "正常" }} | |
| 103 | 103 | </p> |
| 104 | 104 | <p class="p-item"> |
| 105 | 105 | 性别:{{ | ... | ... |