Commit e5ff81a196fe9b5f80b8fea673117f7e373308ab

Authored by 阿宝
1 parent ca39cc52

集团管理员接口

src/api/apis/apis.js
1   -
2   -import service from "../axios"
3   -import setUpUrls from "../urls/apis"
  1 +import service from "../axios";
  2 +import setUpUrls from "../urls/apis";
4 3  
5 4 export default {
6   - // 学校管理员首页数据
  5 + // 教师首页数据
7 6 teacherIndex(data) {
8 7 return service({
9 8 url: setUpUrls.teacherIndex,
10   - method: 'POST',
11   - data
12   - })
  9 + method: "POST",
  10 + data,
  11 + });
13 12 },
14 13 // 学校管理员首页数据
15 14 schoolIndex(data) {
16 15 return service({
17 16 url: setUpUrls.schoolIndex,
18   - method: 'POST',
19   - data
20   - })
  17 + method: "POST",
  18 + data,
  19 + });
  20 + },
  21 + // 集团管理员首页数据
  22 + tenantIndex(data) {
  23 + return service({
  24 + url: setUpUrls.tenantIndex,
  25 + method: "POST",
  26 + data,
  27 + });
21 28 },
22 29 // 查询角色列表
23 30 roleList(data) {
24 31 return service({
25 32 url: setUpUrls.roleList,
26   - method: 'POST',
27   - data
28   - })
  33 + method: "POST",
  34 + data,
  35 + });
29 36 },
30 37 // 分页查询账号
31 38 userPage(data) {
32 39 return service({
33 40 url: setUpUrls.userPage,
34   - method: 'POST',
35   - data
36   - })
  41 + method: "POST",
  42 + data,
  43 + });
37 44 },
38 45 // 修改账号 禁用账号、修改账号密码等
39 46 updateUser(data) {
40 47 return service({
41 48 url: setUpUrls.updateUser,
42   - method: 'POST',
43   - data
44   - })
  49 + method: "POST",
  50 + data,
  51 + });
45 52 },
46 53 // 查询学校详情
47 54 schoolDetail(data) {
48 55 return service({
49 56 url: setUpUrls.schoolDetail,
50   - method: 'POST',
51   - data
52   - })
  57 + method: "POST",
  58 + data,
  59 + });
53 60 },
54 61 // 修改学校信息
55 62 updateSchool(data) {
56 63 return service({
57 64 url: setUpUrls.updateSchool,
58   - method: 'POST',
59   - data
60   - })
  65 + method: "POST",
  66 + data,
  67 + });
61 68 },
62 69 // 学校年级管理
63 70 gradeList(data) {
64 71 return service({
65 72 url: setUpUrls.gradeList,
66   - method: 'POST',
67   - data
68   - })
  73 + method: "POST",
  74 + data,
  75 + });
69 76 },
70 77 // 查询学校所有科目
71 78 subjectList(data) {
72 79 return service({
73 80 url: setUpUrls.subjectList,
74   - method: 'POST',
75   - data
76   - })
  81 + method: "POST",
  82 + data,
  83 + });
77 84 },
78 85 // 修改年级信息
79 86 updateGrade(data) {
80 87 return service({
81 88 url: setUpUrls.updateGrade,
82   - method: 'POST',
83   - data
84   - })
  89 + method: "POST",
  90 + data,
  91 + });
85 92 },
86 93 // 查询学校班级列表
87 94 schoolClassList(data) {
88 95 return service({
89 96 url: setUpUrls.classList,
90   - method: 'POST',
91   - data
92   - })
  97 + method: "POST",
  98 + data,
  99 + });
93 100 },
94 101 // 查询学生列表
95 102 studentList(data) {
96 103 return service({
97 104 url: setUpUrls.studentList,
98   - method: 'POST',
99   - data
100   - })
  105 + method: "POST",
  106 + data,
  107 + });
101 108 },
102 109 // 修改班级信息
103 110 updateClass(data) {
104 111 return service({
105 112 url: setUpUrls.updateClass,
106   - method: 'POST',
107   - data
108   - })
  113 + method: "POST",
  114 + data,
  115 + });
109 116 },
110 117 // 增加学生
111 118 addStudent(data) {
112 119 return service({
113 120 url: setUpUrls.addStudent,
114   - method: 'POST',
115   - data
116   - })
  121 + method: "POST",
  122 + data,
  123 + });
117 124 },
118 125 // 删除学生
119 126 delStudent(data) {
120 127 return service({
121 128 url: setUpUrls.delStudent,
122   - method: 'POST',
123   - data
124   - })
  129 + method: "POST",
  130 + data,
  131 + });
125 132 },
126 133 // 查询学校教师列表
127 134 teacherList(data) {
128 135 return service({
129 136 url: setUpUrls.teacherList,
130   - method: 'POST',
131   - data
132   - })
  137 + method: "POST",
  138 + data,
  139 + });
133 140 },
134 141 // 新增教师
135 142 addTeacher(data) {
136 143 return service({
137 144 url: setUpUrls.addTeacher,
138   - method: 'POST',
139   - data
140   - })
  145 + method: "POST",
  146 + data,
  147 + });
141 148 },
142 149 // 修改教师信息
143 150 updateTeacher(data) {
144 151 return service({
145 152 url: setUpUrls.updateTeacher,
146   - method: 'POST',
147   - data
148   - })
  153 + method: "POST",
  154 + data,
  155 + });
149 156 },
150 157 // 删除教师管理班级或年级
151 158 delTeacherManager(data) {
152 159 return service({
153 160 url: setUpUrls.delTeacherManager,
154   - method: 'POST',
155   - data
156   - })
  161 + method: "POST",
  162 + data,
  163 + });
157 164 },
158 165 // 查询基站统计数据
159 166 stationReport(data) {
160 167 return service({
161 168 url: setUpUrls.stationReport,
162   - method: 'POST',
163   - data
164   - })
  169 + method: "POST",
  170 + data,
  171 + });
165 172 },
166 173 // 查询答题器统计数据
167 174 keyboardReport(data) {
168 175 return service({
169 176 url: setUpUrls.keyboardReport,
170   - method: 'POST',
171   - data
172   - })
  177 + method: "POST",
  178 + data,
  179 + });
173 180 },
174 181 // 分页查询设备列表
175 182 deviceList(data) {
176 183 return service({
177 184 url: setUpUrls.deviceList,
178   - method: 'POST',
179   - data
180   - })
  185 + method: "POST",
  186 + data,
  187 + });
181 188 },
182 189 // 修改设备自动升级状态
183 190 modifyUpgradeFlag(data) {
184 191 return service({
185 192 url: setUpUrls.modifyUpgradeFlag,
186   - method: 'POST',
187   - data
188   - })
  193 + method: "POST",
  194 + data,
  195 + });
189 196 },
190 197 // 修改基站信息
191 198 updateDevice(data) {
192 199 return service({
193 200 url: setUpUrls.updateDevice,
194   - method: 'POST',
195   - data
196   - })
  201 + method: "POST",
  202 + data,
  203 + });
197 204 },
198 205 // 查询下载配置列表
199 206 appConfigList(data) {
200 207 return service({
201 208 url: setUpUrls.appConfigList,
202   - method: 'POST',
203   - data
204   - })
  209 + method: "POST",
  210 + data,
  211 + });
205 212 },
206 213 // 查询最新的授课端应用版本
207 214 latestVersion(data) {
208 215 return service({
209 216 url: setUpUrls.latestVersion,
210   - method: 'POST',
211   - data
212   - })
  217 + method: "POST",
  218 + data,
  219 + });
213 220 },
214 221 // 下载指定配置的最新版本授课端
215 222 getAppDownloadUrl(data) {
216 223 return service({
217 224 url: setUpUrls.getAppDownloadUrl,
218   - method: 'POST',
219   - data
220   - })
  225 + method: "POST",
  226 + data,
  227 + });
221 228 },
222 229 // 新增授课端应用配置
223 230 addAppConfig(data) {
224 231 return service({
225 232 url: setUpUrls.addAppConfig,
226   - method: 'POST',
227   - data
228   - })
  233 + method: "POST",
  234 + data,
  235 + });
229 236 },
230 237 // 修改授课端应用配置
231 238 updateAppConfig(data) {
232 239 return service({
233 240 url: setUpUrls.updateAppConfig,
234   - method: 'POST',
235   - data
236   - })
  241 + method: "POST",
  242 + data,
  243 + });
237 244 },
238 245 // 发卡记录
239 246 cardList(data) {
240 247 return service({
241 248 url: setUpUrls.cardList,
242   - method: 'POST',
243   - data
244   - })
  249 + method: "POST",
  250 + data,
  251 + });
  252 + },
  253 +
  254 + /**
  255 + * 集团管理员-学校管理
  256 + */
  257 + // 区域列表
  258 + regionList(data) {
  259 + return service({
  260 + url: setUpUrls.regionList,
  261 + method: "POST",
  262 + data,
  263 + });
  264 + },
  265 + // 学校列表
  266 + schoolList(data) {
  267 + return service({
  268 + url: setUpUrls.schoolList,
  269 + method: "POST",
  270 + data,
  271 + });
  272 + },
  273 + // 新增或修改学校
  274 + saveSchool(data) {
  275 + return service({
  276 + url: setUpUrls.saveSchool,
  277 + method: "POST",
  278 + data,
  279 + });
  280 + },
  281 + // 删除学校
  282 + removeSchool(data) {
  283 + return service({
  284 + url: setUpUrls.removeSchool,
  285 + method: "POST",
  286 + data,
  287 + });
  288 + },
  289 + // 新增或修改区域
  290 + saveRegion(data) {
  291 + return service({
  292 + url: setUpUrls.saveRegion,
  293 + method: "POST",
  294 + data,
  295 + });
  296 + },
  297 + // 新增学校管理员
  298 + addSchoolManager(data) {
  299 + return service({
  300 + url: setUpUrls.addSchoolManager,
  301 + method: "POST",
  302 + data,
  303 + });
  304 + },
  305 + // 查询角色列表
  306 + tenantRoleList(data) {
  307 + return service({
  308 + url: setUpUrls.tenantRoleList,
  309 + method: "POST",
  310 + data,
  311 + });
  312 + },
  313 + // 账号列表
  314 + tenantUserPage(data) {
  315 + return service({
  316 + url: setUpUrls.tenantUserPage,
  317 + method: "POST",
  318 + data,
  319 + });
  320 + },
  321 + // 新增账号
  322 + addUser(data) {
  323 + return service({
  324 + url: setUpUrls.addUser,
  325 + method: "POST",
  326 + data,
  327 + });
  328 + },
  329 + // 禁用账号、修改账号密码等
  330 + tenantUpdateUser(data) {
  331 + return service({
  332 + url: setUpUrls.tenantUpdateUser,
  333 + method: "POST",
  334 + data,
  335 + });
  336 + },
  337 + // 查询基站统计数据
  338 + tenantStationReport(data) {
  339 + return service({
  340 + url: setUpUrls.tenantStationReport,
  341 + method: "POST",
  342 + data,
  343 + });
  344 + },
  345 + // 查询答题器统计数据
  346 + tenantKeyboardReport(data) {
  347 + return service({
  348 + url: setUpUrls.tenantKeyboardReport,
  349 + method: "POST",
  350 + data,
  351 + });
  352 + },
  353 + // 分页查询设备列表
  354 + tenantDeviceList(data) {
  355 + return service({
  356 + url: setUpUrls.tenantDeviceList,
  357 + method: "POST",
  358 + data,
  359 + });
  360 + },
  361 + // 查询学校年级
  362 + tenantGradeList(data) {
  363 + return service({
  364 + url: setUpUrls.tenantGradeList,
  365 + method: "POST",
  366 + data,
  367 + });
  368 + },
  369 + // 查询学校班级
  370 + tenantClassList(data) {
  371 + return service({
  372 + url: setUpUrls.tenantClassList,
  373 + method: "POST",
  374 + data,
  375 + });
  376 + },
  377 + // 学校使用对比
  378 + schoolContrast(data) {
  379 + return service({
  380 + url: setUpUrls.schoolContrast,
  381 + method: "POST",
  382 + data,
  383 + });
  384 + },
  385 + // 年级使用对比
  386 + gradeContrast(data) {
  387 + return service({
  388 + url: setUpUrls.gradeContrast,
  389 + method: "POST",
  390 + data,
  391 + });
245 392 },
246   -
247   -}
  393 +};
... ...
src/api/axios.js
... ... @@ -42,7 +42,7 @@ service.interceptors.response.use(
42 42 // Cookies.set("access_token", response.data.message, { expires: 1 / 12 })
43 43 // console.log(response.status)
44 44 if (res.status == 999) {
45   - // if (!location.href.includes("localhost")) {
  45 + if (!location.href.includes("localhost")) {
46 46 if (res.data) {
47 47 window.location.href = res.data;
48 48 } else {
... ... @@ -55,7 +55,7 @@ service.interceptors.response.use(
55 55 });
56 56 }
57 57 }
58   - // }
  58 + }
59 59 } else {
60 60 // Cookies.set("access_token", response.data.message, { expires: 1 / 12 })
61 61 }
... ...
src/api/urls/apis.js
... ... @@ -4,6 +4,8 @@ export default {
4 4 teacherIndex: "/api_html/teaching/index",
5 5 // 学校管理员首页数据
6 6 schoolIndex: "/api_html/school/manager/index",
  7 + // 学校管理员首页数据
  8 + tenantIndex: "/api_html/tenant/index",
7 9 // 查询角色列表
8 10 roleList: "/api_html/school/manager/roleList",
9 11 // 分页查询账号
... ... @@ -60,4 +62,41 @@ export default {
60 62 updateAppConfig: "/api_html/school/manager/updateAppConfig",
61 63 // 发卡记录
62 64 cardList: "/api_html/school/manager/cardList",
  65 +
  66 +
  67 + // 查询区域列表
  68 + regionList: "/api_html/tenant/regionList",
  69 + // 查询学校列表
  70 + schoolList: "/api_html/tenant/schoolList",
  71 + // 新增或修改区域
  72 + saveRegion: "/api_html/tenant/saveRegion",
  73 + // 新增或修改学校
  74 + saveSchool: "/api_html/tenant/saveSchool",
  75 + // 删除学校
  76 + removeSchool: "/api_html/tenant/delSchool",
  77 + // 新增学校管理员
  78 + addSchoolManager: "/api_html/tenant/addSchoolManager",
  79 + // 查询角色列表
  80 + tenantRoleList: "/api_html/tenant/roleList",
  81 + // 账号列表
  82 + tenantUserPage: "/api_html/tenant/userPage",
  83 + // 新增账号
  84 + addUser: "/api_html/tenant/addUser",
  85 + // 禁用账号、修改账号密码等
  86 + tenantUpdateUser: "/api_html/tenant/updateUser",
  87 + // 查询基站统计数据
  88 + tenantStationReport: "/api_html/tenant/stationReport",
  89 + // 查询答题器统计数据
  90 + tenantKeyboardReport: "/api_html/tenant/keyboardReport",
  91 + // 分页查询设备列表
  92 + tenantDeviceList: "/api_html/tenant/deviceList",
  93 + // 查询学校年级
  94 + tenantGradeList: "/api_html/tenant/gradeList",
  95 + // 查询学校班级
  96 + tenantClassList: "/api_html/tenant/classList",
  97 +
  98 + // 学校使用对比
  99 + schoolContrast: "/api_html/tenant/schoolContrast",
  100 + // 年级使用对比
  101 + gradeContrast: "/api_html/tenant/gradeContrast",
63 102 }
... ...
src/assets/css/index.scss
... ... @@ -42,7 +42,7 @@
42 42 border-radius: 20px;
43 43 border: 1px solid #e2e2e2;
44 44 box-sizing: border-box;
45   -
  45 + background: #fff;
46 46 .el-input__inner {
47 47 border-radius: 20px;
48 48 border: none;
... ...
src/router/index.js
... ... @@ -68,22 +68,6 @@ let defaultRouter = [
68 68 }
69 69 ]
70 70 },
71   - // {
72   - // path: "/setUpConglomerate",
73   - // iconCls: "fa fa-building", // 图标样式class
74   - // name: "学校管理",
75   - // component: Layout,
76   - // alone: true,
77   - // children: [
78   - // {
79   - // path: "/setUpConglomerate",
80   - // iconCls: "fa fa-building",
81   - // name: '集团管理',
82   - // component: SetUpConglomerate,
83   - // children: []
84   - // },
85   - // ]
86   - // },
87 71 {
88 72 path: "/404",
89 73 component: NotFound,
... ...
src/views/analysis/index.vue
... ... @@ -12,7 +12,7 @@
12 12 class="sel"
13 13 v-model="query.gradeName"
14 14 placeholder="选择年级"
15   - @change="_QueryData(1)"
  15 + @change="_QueryData"
16 16 >
17 17 <el-option
18 18 v-for="item in gradeList"
... ... @@ -55,15 +55,15 @@
55 55 >本季度</span
56 56 >
57 57 </p>
58   - <el-button type="primary" round @click="_QueryData()">筛选</el-button>
  58 + <el-button type="primary" round @click="_QueryData">筛选</el-button>
59 59 </div>
60 60 </div>
61 61 <div class="table-box">
62 62 <div class="radio-box" v-if="role == 'ROLE_JITUAN'">
63 63 <el-radio-group v-model="type" @change="changeType">
64   - <el-radio-button :label="1">学校使用对比</el-radio-button>
65   - <el-radio-button :label="2">学段使用对比</el-radio-button>
66   - </el-radio-group>
  64 + <el-radio-button :label="1">学校使用对比</el-radio-button>
  65 + <el-radio-button :label="2">学段使用对比</el-radio-button>
  66 + </el-radio-group>
67 67 </div>
68 68 <el-table
69 69 :data="tableData"
... ... @@ -93,10 +93,7 @@
93 93 </template>
94 94 </el-table-column>
95 95 </el-table>
96   - <p
97   - class="down"
98   - v-if="role != 'ROLE_JITUAN'"
99   - >
  96 + <p class="down" v-if="role != 'ROLE_JITUAN'">
100 97 <el-button plain round icon="fa fa-cloud-download"
101 98 >导出报表</el-button
102 99 >
... ... @@ -111,9 +108,9 @@ import { formatDate } from &quot;@/utils&quot;;
111 108 export default {
112 109 data() {
113 110 return {
114   - role:"",
  111 + role: "",
115 112 date: "", //今天-本周-本月-本季度
116   - type:1, //集团管理员 表格切换
  113 + type: 1, //集团管理员 表格切换
117 114 query: {
118 115 //搜索条件
119 116 gradeName: "",
... ... @@ -157,7 +154,7 @@ export default {
157 154 this.role = this.$store.getters.info.permissions.find(
158 155 (item) => item.roleName == this.$store.getters.info.showRoleName
159 156 )?.role;
160   - this._QueryDataGrade();
  157 + this._QueryGradeList();
161 158 // this.setDate(1);
162 159 let startDay = this.query?.startDay;
163 160 if (!startDay) {
... ... @@ -166,8 +163,11 @@ export default {
166 163 }
167 164 },
168 165 methods: {
169   - changeType(val){
170   - // this._QueryData(val)
  166 + changeType(val) {
  167 + if(val==1){
  168 + this.query.gradeName = ""
  169 + }
  170 + this._QueryData(val)
171 171 },
172 172 setDate(index) {
173 173 const that = this;
... ... @@ -246,32 +246,63 @@ export default {
246 246 query[key] = this.query[key];
247 247 }
248 248 }
249   - const { data, status, info } = await this.$request.fetchQuizList({
  249 + if (this.role == "ROLE_JITUAN") {
  250 + if (this.query.gradeName == "") {
  251 + this.type = 1;
  252 + } else {
  253 + this.type = 2;
  254 + }
  255 + }
  256 + const Contrast =
  257 + this.role != "ROLE_JITUAN"
  258 + ? this.$request.gradeContrast
  259 + : this.type == 1
  260 + ? this.$request.schoolContrast
  261 + : this.$request.gradeContrast;
  262 + const { data, status, info } = await Contrast({
250 263 ...query,
251 264 });
252 265 this.loading = false;
253 266 if (status === 0) {
  267 + this.tableData = [...data.list] || [];
254 268 } else {
255 269 this.$message.error(info);
256 270 }
257 271 },
258   - async _QueryDataGrade() {
259   - //年级数据
260   - const { data, status, info } = await this.$request.gradeList();
  272 + // 查找班级
  273 + async _QueryGradeList() {
  274 + this.loading = true;
  275 + const gradeList =
  276 + this.role != "ROLE_JITUAN"
  277 + ? this.$request.gradeList
  278 + : this.$request.regionList;
  279 + const { data, status, info } = await gradeList();
261 280 if (status === 0) {
262   - this.gradeList =
263   - data.list?.map((item) => {
264   - return {
265   - value: item.gradeName,
266   - label: item.gradeName,
267   - id: item.grade,
268   - };
269   - }) || [];
270   - this.gradeList.unshift({
271   - value: "",
272   - label: "全部",
273   - });
274   - this.query.gradeName = this.gradeList[0]?.value;
  281 + if (!!data.list) {
  282 + if (this.role != "ROLE_JITUAN") {
  283 + this.gradeList =
  284 + data.list?.map((item) => {
  285 + let gradeList = {
  286 + value: item.grade,
  287 + label: item.gradeName,
  288 + };
  289 + return gradeList;
  290 + }) || [];
  291 + } else {
  292 + this.gradeList =
  293 + data.list?.map((item) => {
  294 + let gradeList = {
  295 + value: item.id,
  296 + label: item.regionName,
  297 + };
  298 + return gradeList;
  299 + }) || [];
  300 + this.gradeList.unshift({
  301 + value: "",
  302 + label: "全部",
  303 + });
  304 + }
  305 + }
275 306 } else {
276 307 this.$message.error(info);
277 308 }
... ... @@ -284,8 +315,8 @@ export default {
284 315 .table-box {
285 316 padding: 0 20px;
286 317 }
287   -.radio-box{
288   - padding-bottom:12px;
  318 +.radio-box {
  319 + padding-bottom: 12px;
289 320 }
290 321 .down {
291 322 padding-top: 20px;
... ...
src/views/device/index.vue
... ... @@ -296,7 +296,9 @@
296 296 :show-all-levels="false"
297 297 @change="_QueryData(false)"
298 298 ></el-cascader>
299   - <span class="sel">共选择{{selectionTabIds.length}}个授课端</span>
  299 + <span class="sel"
  300 + >共选择{{ selectionTabIds.length }}个授课端</span
  301 + >
300 302 <el-button plan round @click="autoUpDate(false)"
301 303 >开启自动更新</el-button
302 304 >
... ... @@ -485,6 +487,7 @@ export default {
485 487 },
486 488 data() {
487 489 return {
  490 + role: "",
488 491 school: "",
489 492 loading: false,
490 493 url: "/web/upLoadDevice",
... ... @@ -541,6 +544,13 @@ export default {
541 544 };
542 545 },
543 546 created() {
  547 + let role = "";
  548 + this.$store.getters.info.permissions.map((item) => {
  549 + if (item.roleName == this.$store.getters.info.showRoleName) {
  550 + role = item.role;
  551 + }
  552 + });
  553 + this.role = role ? role : this.$store.getters.info.permissions[0].role;
544 554 this.stationReport();
545 555 this._QueryGradeList();
546 556 this._QueryData();
... ... @@ -612,7 +622,7 @@ export default {
612 622 this.loadingUpDate = false;
613 623 if (data && !data.code) {
614 624 this._QueryData(false);
615   - this.selectionTabIds = []
  625 + this.selectionTabIds = [];
616 626 this.$message.success("开启自动更新成功");
617 627 } else {
618 628 this.$message.error(data.message);
... ... @@ -631,7 +641,7 @@ export default {
631 641 });
632 642 this.loadingUpDate = false;
633 643 if (data && !data.code) {
634   - this.selectionTabIds = []
  644 + this.selectionTabIds = [];
635 645 this._QueryData(false);
636 646 this.$message.success("关闭自动更新成功");
637 647 } else {
... ... @@ -668,25 +678,47 @@ export default {
668 678 // 查找班级
669 679 async _QueryGradeList() {
670 680 this.loading = true;
671   - const { data, status, info } = await this.$request.gradeList();
  681 + const gradeList =
  682 + this.role != "ROLE_JITUAN"
  683 + ? this.$request.gradeList
  684 + : this.$request.regionList;
  685 + const { data, status, info } = await gradeList();
672 686 console.log(status);
673 687 if (status === 0) {
674 688 if (!!data.list) {
675   - this.gradeList =
676   - data.list?.map((item) => {
677   - let gradeList = {
678   - value: item.grade,
679   - label: item.gradeName,
680   - };
681   - gradeList.children =
682   - item.classList?.map((items) => {
683   - return {
684   - value: items.classCode,
685   - label: items.className,
686   - };
687   - }) || [];
688   - return gradeList;
689   - }) || [];
  689 + if (this.role != "ROLE_JITUAN") {
  690 + this.gradeList =
  691 + data.list?.map((item) => {
  692 + let gradeList = {
  693 + value: item.grade,
  694 + label: item.gradeName,
  695 + };
  696 + gradeList.children =
  697 + item.classList?.map((items) => {
  698 + return {
  699 + value: items.classCode,
  700 + label: items.className,
  701 + };
  702 + }) || [];
  703 + return gradeList;
  704 + }) || [];
  705 + } else {
  706 + this.gradeList =
  707 + data.list?.map((item) => {
  708 + let gradeList = {
  709 + value: item.id,
  710 + label: item.regionName,
  711 + };
  712 + gradeList.children =
  713 + item.schoolList?.map((items) => {
  714 + return {
  715 + value: items.id,
  716 + label: items.schoolName,
  717 + };
  718 + }) || [];
  719 + return gradeList;
  720 + }) || [];
  721 + }
690 722 }
691 723 } else {
692 724 this.$message.error(info);
... ... @@ -694,13 +726,21 @@ export default {
694 726 },
695 727 // 基站统计数据
696 728 async stationReport() {
697   - const { data, status, info } = await this.$request.stationReport();
  729 + const stationReport =
  730 + this.role != "ROLE_JITUAN"
  731 + ? this.$request.stationReport
  732 + : this.$request.tenantStationReport;
  733 + const { data, status, info } = await stationReport();
698 734 if (status === 0) {
699 735 this.chartData =
700 736 data.list?.map((item) => {
701 737 return {
702 738 name:
703   - item.onlineStatus == "1" ? "在线" : item.onlineStatus == 0 ? "离线" : "异常",
  739 + item.onlineStatus == "1"
  740 + ? "在线"
  741 + : item.onlineStatus == 0
  742 + ? "离线"
  743 + : "异常",
704 744 value: item.rate,
705 745 count: item.count,
706 746 };
... ... @@ -712,7 +752,11 @@ export default {
712 752 },
713 753 // 答题器统计数据
714 754 async keyboardReport() {
715   - const { data, status, info } = await this.$request.keyboardReport();
  755 + const keyboardReport =
  756 + this.role != "ROLE_JITUAN"
  757 + ? this.$request.keyboardReport
  758 + : this.$request.tenantKeyboardReport;
  759 + const { data, status, info } = await keyboardReport();
716 760 if (status === 0) {
717 761 this.chartData2 =
718 762 data.list?.map((item) => {
... ... @@ -765,16 +809,19 @@ export default {
765 809 }
766 810  
767 811 this.loading = true;
768   - const { data, status, info } = await this.$request.deviceList({
  812 + const deviceList =
  813 + this.role != "ROLE_JITUAN"
  814 + ? this.$request.deviceList
  815 + : this.$request.tenantDeviceList;
  816 + const { data, status, info } = await deviceList({
769 817 ...query,
770 818 deviceType: this.type,
771 819 page: this.page,
772 820 size: this.size,
773 821 });
774 822 this.loading = false;
775   - console.log(status);
776   - if (status === 0) {
777   - this.tableData = data.list || [];
  823 + if (status == 0) {
  824 + this.tableData = data?.list || [];
778 825 } else {
779 826 this.$message.error(info);
780 827 }
... ...
src/views/down/client.vue
... ... @@ -53,12 +53,19 @@
53 53 <div class="back-l" @click="dialogVis = false">
54 54 <i class="fa fa-mail-reply-all"></i>
55 55 <p>
56   - {{ `${type == 1 ? "参数设置" : formData.configName + "-修改入口"}` }}
  56 + {{
  57 + `${type == 1 ? "参数设置" : formData.configName + "-修改入口"}`
  58 + }}
57 59 </p>
58 60 </div>
59 61 </div>
60 62 <div class="form-box">
61   - <el-form :model="formData" :rules="ruleForm" label-width="180px">
  63 + <el-form
  64 + ref="forms"
  65 + :model="formData"
  66 + :rules="ruleForm"
  67 + label-width="180px"
  68 + >
62 69 <el-form-item label="主菜单设置:" prop="configName" v-if="type == 1">
63 70 <el-col :span="12">
64 71 <el-input
... ... @@ -401,7 +408,7 @@ export default {
401 408 setConfigForm(obj) {
402 409 let content = JSON.parse(obj.content);
403 410 console.log(content);
404   - this.formData.configName = obj.configName
  411 + this.formData.configName = obj.configName;
405 412 for (let key in this.formData) {
406 413 content[key] ? (this.formData[key] = content[key]) : "";
407 414 }
... ... @@ -441,18 +448,24 @@ export default {
441 448 }
442 449 }
443 450 content.examsDuration = content.examsDuration * 60;
444   -
445   - if (this.type == 1) {
446   - this.addAppConfig({
447   - configName: this.formData.configName,
448   - content: { ...content },
449   - });
450   - } else {
451   - this.updateAppConfig({
452   - configId: this.configId,
453   - content: { ...content },
454   - });
455   - }
  451 + this.$refs.forms.validate((valid) => {
  452 + if (valid) {
  453 + if (this.type == 1) {
  454 + this.addAppConfig({
  455 + configName: this.formData.configName,
  456 + content: { ...content },
  457 + });
  458 + } else {
  459 + this.updateAppConfig({
  460 + configId: this.configId,
  461 + content: { ...content },
  462 + });
  463 + }
  464 + } else {
  465 + this.$message.warning("配置名称输入有误请检查!");
  466 + return false;
  467 + }
  468 + });
456 469 },
457 470  
458 471 async addAppConfig(params) {
... ...
src/views/examinationPaper/add.vue
... ... @@ -25,6 +25,7 @@
25 25 >
26 26 <el-form-item label="答题卡名称:" prop="title">
27 27 <el-input
  28 + class="sel2"
28 29 type="text"
29 30 placeholder="请输入答题卡名称"
30 31 v-model.trim="form.title"
... ... @@ -955,6 +956,9 @@ export default {
955 956 .red {
956 957 color: #f30;
957 958 }
  959 +.sel2{
  960 + width:480px;
  961 +}
958 962 .content-box{
959 963 width:100%;
960 964 height:100%;
... ...
src/views/index/mainIndex.vue
... ... @@ -6,9 +6,9 @@
6 6 <div class="text">
7 7 <p class="p1">账号管理</p>
8 8 <p class="p2">
9   - 管理{{ schoolInfo.teacherCourseCount }}个任课教师,{{
10   - schoolInfo.classManagerCount
11   - }}个班主任,{{ schoolInfo.teacherGradeCount }}个备课组长账号信息。
  9 + 管理{{ dataInfo.teacherCourseCount }}个任课教师,{{
  10 + dataInfo.classManagerCount
  11 + }}个班主任,{{ dataInfo.teacherGradeCount }}个备课组长账号信息。
12 12 </p>
13 13 </div>
14 14 </li>
... ... @@ -17,9 +17,9 @@
17 17 <div class="text">
18 18 <p class="p1">学校管理</p>
19 19 <p class="p2">
20   - 管理{{ schoolInfo.gradeCount }}个年级,{{
21   - schoolInfo.classCount
22   - }}个班级,{{ schoolInfo.studentCount }}名学生信息。
  20 + 管理{{ dataInfo.gradeCount }}个年级,{{
  21 + dataInfo.classCount
  22 + }}个班级,{{ dataInfo.studentCount }}名学生信息。
23 23 </p>
24 24 </div>
25 25 </li>
... ... @@ -28,8 +28,8 @@
28 28 <div class="text">
29 29 <p class="p1">设备状态</p>
30 30 <p class="p2">
31   - 管理{{ schoolInfo.stationCount }}个基站,{{
32   - schoolInfo.keyboardCount
  31 + 管理{{ dataInfo.stationCount }}个基站,{{
  32 + dataInfo.keyboardCount
33 33 }}套答题器设备。
34 34 </p>
35 35 </div>
... ... @@ -44,7 +44,7 @@
44 44 </div>
45 45 <div class="nav-item item1 item-child2" @click="links('/card')">
46 46 <img class="icon" src="../../assets/nav/card.png" alt="" />
47   - <p class="p1">发卡补卡</p>
  47 + <p class="p1">发卡记录</p>
48 48 <p class="p2">查看发卡、换卡记录信息。</p>
49 49 </div>
50 50 <div class="nav-item item1 item-child2" @click="links('/down')">
... ... @@ -65,15 +65,15 @@
65 65 <img class="icon" :src="getImgs(item.path)" alt="" />
66 66 <div class="text" v-if="item.path == '/setUpConglomerate'">
67 67 <p class="p1">学校管理</p>
68   - <p class="p2">管理3个区域,14个学校。</p>
  68 + <p class="p2">管理{{dataInfo.regionCount}}个区域,{{dataInfo.schoolCount}}个学校。</p>
69 69 </div>
70 70 <div class="text" v-else-if="item.path == '/setUpAccount'">
71 71 <p class="p1">账号管理</p>
72   - <p class="p2">共35个各层级管理员账号。</p>
  72 + <p class="p2">共{{dataInfo.regionManagerCount+dataInfo.schoolManagerCount}}个各层级管理员账号。</p>
73 73 </div>
74 74 <div class="text" v-else-if="item.path == '/device'">
75 75 <p class="p1">设备状态</p>
76   - <p class="p2">管理14个基站,396套答题器设备。</p>
  76 + <p class="p2">管理{{dataInfo.stationCount}}个基站,{{dataInfo.keyboardCount}}套答题器设备。</p>
77 77 </div>
78 78 <div class="text" v-else-if="item.path == '/analysis'">
79 79 <p class="p1">使用分析</p>
... ... @@ -96,22 +96,22 @@
96 96 <img class="icon" :src="getImgs(item.path)" alt="" />
97 97 <div class="text" v-if="item.path == '/examinationPaper'">
98 98 <p class="p1">备题组卷</p>
99   - <p class="p2">管理{{ schoolInfo.paperCount }}套答题卡。</p>
  99 + <p class="p2">管理{{ dataInfo.paperCount }}套答题卡。</p>
100 100 </div>
101 101 <div class="text" v-else-if="item.path == '/portrait'">
102 102 <p class="p1">学生画像</p>
103   - <!-- <p class="p2">共分析{{ schoolInfo.imagesCount }}名学生成绩。</p> -->
  103 + <!-- <p class="p2">共分析{{ dataInfo.imagesCount }}名学生成绩。</p> -->
104 104 <p class="p2">功能开发中。</p>
105 105 </div>
106 106 <div class="text" v-else-if="item.path == '/ask'">
107 107 <p class="p1">随堂问报表</p>
108 108 <p class="p2">
109   - 对{{ schoolInfo.classPeriodCount }}套随堂问答题记录分析。
  109 + 对{{ dataInfo.classPeriodCount }}套随堂问答题记录分析。
110 110 </p>
111 111 </div>
112 112 <div class="text" v-else-if="item.path == '/test'">
113 113 <p class="p1">即时测报表</p>
114   - <p class="p2">对{{ schoolInfo.examCount }}套即时测答题记录分析。</p>
  114 + <p class="p2">对{{ dataInfo.examCount }}套即时测答题记录分析。</p>
115 115 </div>
116 116 </li>
117 117 </template>
... ... @@ -126,7 +126,7 @@ export default {
126 126 return {
127 127 type: "",
128 128 navList: [],
129   - schoolInfo: {},
  129 + dataInfo: {},
130 130 };
131 131 },
132 132 watch: {
... ... @@ -164,6 +164,8 @@ export default {
164 164 this.schoolIndex();
165 165 } else if (this.type == "ROLE_JIAOSHI" || this.type == "ROLE_BANZHUREN") {
166 166 this.teacherIndex();
  167 + }else if (this.type == "ROLE_JITUAN") {
  168 + this.tenantIndex();
167 169 }
168 170 },
169 171 methods: {
... ... @@ -178,7 +180,7 @@ export default {
178 180 async teacherIndex() {
179 181 const { data, status, info } = await this.$request.teacherIndex();
180 182 if (status === 0) {
181   - this.schoolInfo = { ...data };
  183 + this.dataInfo = { ...data };
182 184 } else {
183 185 this.$message.error(info);
184 186 }
... ... @@ -186,7 +188,15 @@ export default {
186 188 async schoolIndex() {
187 189 const { data, status, info } = await this.$request.schoolIndex();
188 190 if (status === 0) {
189   - this.schoolInfo = { ...data };
  191 + this.dataInfo = { ...data };
  192 + } else {
  193 + this.$message.error(info);
  194 + }
  195 + },
  196 + async tenantIndex() {
  197 + const { data, status, info } = await this.$request.tenantIndex();
  198 + if (status === 0) {
  199 + this.dataInfo = { ...data };
190 200 } else {
191 201 this.$message.error(info);
192 202 }
... ...
src/views/login/index.vue
... ... @@ -90,12 +90,14 @@ export default {
90 90 disableClick: true,
91 91 passwordType: "password",
92 92 loginForm: {
93   - username: "13610050254",
94   - password: "Pw050254#",
  93 + // username: "13610050254",
  94 + // password: "Pw050254#",
95 95 // username: "18946034886",
96 96 // password: "Pw034886#",
97 97 // username: "18332123505",
98 98 // password: "Pw123505#",
  99 + username: "15911715665",
  100 + password: "Csiy88888",
99 101 },
100 102 loginRules: {
101 103 username: [
... ...
src/views/setUp/account.vue
... ... @@ -4,10 +4,44 @@
4 4 <template slot="title">
5 5 <span>账号管理</span>
6 6 </template>
  7 + <template slot="btns" v-if="role == 'ROLE_JITUAN'">
  8 + <el-tooltip effect="dark" content="导入账号" placement="bottom">
  9 + <el-button
  10 + type="primary"
  11 + icon="el-icon-upload2"
  12 + size="mini"
  13 + plain
  14 + circle
  15 + @click="diaUp = true"
  16 + ></el-button>
  17 + </el-tooltip>
  18 + <el-tooltip effect="dark" content="添加账号" placement="bottom">
  19 + <el-button
  20 + type="primary"
  21 + icon="el-icon-plus"
  22 + size="mini"
  23 + plain
  24 + circle
  25 + @click="openAddDia"
  26 + ></el-button>
  27 + </el-tooltip>
  28 + </template>
7 29 </back-box>
8 30 <div class="answer-header">
9 31 <div class="sel-box">
  32 + <el-cascader
  33 + v-if="role == 'ROLE_JITUAN'"
  34 + class="sel"
  35 + collapse-tags
  36 + clearable
  37 + placeholder="选择学校"
  38 + v-model="query.schoolId"
  39 + :options="schoolList"
  40 + :props="props"
  41 + :show-all-levels="false"
  42 + ></el-cascader>
10 43 <el-select
  44 + v-else
11 45 class="sel"
12 46 v-model="query.roleId"
13 47 placeholder="选择账号角色"
... ... @@ -31,7 +65,9 @@
31 65 <el-option label="禁用" :value="1"></el-option>
32 66 </el-select>
33 67 <el-input
34   - placeholder="请输入老师账号"
  68 + :placeholder="
  69 + role != 'ROLE_JITUAN' ? '请输入老师账号' : '请输入账号名称'
  70 + "
35 71 v-model="query.loginName"
36 72 class="input-with-select"
37 73 @keyup.enter.native="(page = 1), _QueryData(2)"
... ... @@ -43,6 +79,7 @@
43 79 ></el-button>
44 80 </el-input>
45 81 <el-input
  82 + v-if="role != 'ROLE_JITUAN'"
46 83 placeholder="请输入老师姓名"
47 84 v-model="query.realName"
48 85 class="input-with-select"
... ... @@ -54,6 +91,13 @@
54 91 @click="(page = 1), _QueryData(3)"
55 92 ></el-button>
56 93 </el-input>
  94 + <el-button
  95 + v-if="role == 'ROLE_JITUAN'"
  96 + type="primary"
  97 + round
  98 + @click="_QueryData(4)"
  99 + >筛选</el-button
  100 + >
57 101 </div>
58 102 </div>
59 103 <div class="table-box">
... ... @@ -82,6 +126,18 @@
82 126 }}</span>
83 127 </template>
84 128 </el-table-column>
  129 + <el-table-column
  130 + v-if="role == 'ROLE_JITUAN'"
  131 + prop="regionList"
  132 + label="管辖范围"
  133 + align="center"
  134 + >
  135 + <template slot-scope="scoped" v-if="scoped.row.regionList">
  136 + <span v-for="item in scoped.row.regionList" :key="item.id">{{
  137 + item.regionName
  138 + }}</span>
  139 + </template>
  140 + </el-table-column>
85 141 <el-table-column prop="available" label="状态" align="center"
86 142 ><template slot-scope="scoped">{{
87 143 `${scoped.row.available == 0 ? "正常" : "禁用"}`
... ... @@ -177,15 +233,123 @@
177 233 <el-button @click="diaCount = false">取 消</el-button>
178 234 </div>
179 235 </el-dialog>
  236 + <el-dialog title="添加账号" :visible.sync="diaAdd" width="400">
  237 + <el-form
  238 + class="form-box"
  239 + :model="formAddCount"
  240 + :rules="ruleAddCount"
  241 + ref="formAddCount"
  242 + label-width="160px"
  243 + >
  244 + <el-form-item label="手机号码:" prop="phone">
  245 + <el-col :span="12">
  246 + <el-input
  247 + placeholder="请输入联系电话"
  248 + v-model.trim="formAddCount.phone"
  249 + maxlength="11"
  250 + >
  251 + </el-input>
  252 + </el-col>
  253 + </el-form-item>
  254 + <el-form-item label="密码:" prop="password">
  255 + <el-col :span="12">
  256 + <el-input
  257 + placeholder="请输入密码"
  258 + v-model.trim="formAddCount.password"
  259 + maxlength="18"
  260 + >
  261 + </el-input>
  262 + </el-col>
  263 + </el-form-item>
  264 + <el-form-item label="姓名:" prop="realName">
  265 + <el-col :span="12">
  266 + <el-input
  267 + placeholder="请输入姓名"
  268 + v-model.trim="formAddCount.realName"
  269 + maxlength="30"
  270 + >
  271 + </el-input>
  272 + </el-col>
  273 + </el-form-item>
  274 + <el-form-item label="选择角色:" prop="roleId">
  275 + <el-col :span="12">
  276 + <el-select
  277 + class="sel"
  278 + v-model="formAddCount.roleId"
  279 + placeholder="选择角色"
  280 + >
  281 + <el-option
  282 + v-for="item in tenantRoleList"
  283 + :key="item.id"
  284 + :label="item.roleName"
  285 + :value="item.id"
  286 + ></el-option>
  287 + </el-select>
  288 + </el-col>
  289 + </el-form-item>
  290 + <el-form-item label="选择管辖范围:" prop="regionId">
  291 + <el-col :span="12">
  292 + <el-select
  293 + class="sel"
  294 + v-model="formAddCount.regionId"
  295 + placeholder="选择管辖范围"
  296 + >
  297 + <el-option
  298 + v-for="item in regionList"
  299 + :key="item.id"
  300 + :label="item.regionName"
  301 + :value="item.id"
  302 + ></el-option>
  303 + </el-select>
  304 + </el-col>
  305 + </el-form-item>
  306 + </el-form>
  307 + <div class="dialog-footer" slot="footer">
  308 + <el-button @click="saveAddCount">确 定</el-button>
  309 + <el-button @click="diaAdd = false">取 消</el-button>
  310 + </div>
  311 + </el-dialog>
  312 + <el-dialog title="导入账号名单" :visible.sync="diaUp" width="600">
  313 + <up-load id="downTeacher" :url="url" fileName="教师名单">
  314 + <p class="down-txt" slot="down">
  315 + 通过Excel名单导入账号名单,点击
  316 + <el-link type="danger" @click="downExcel">模板下载</el-link> 。
  317 + </p>
  318 + </up-load>
  319 + <div class="dialog-footer" slot="footer">
  320 + <el-button @click="diaUp = false">取 消</el-button>
  321 + </div>
  322 + </el-dialog>
180 323 </div>
181 324 </template>
182 325  
183 326 <script>
  327 +import { encryptLoginPassword } from "@/utils";
184 328 export default {
185 329 data() {
186 330 return {
  331 + role: "",
  332 + diaUp: false,
  333 + diaAdd: false,
  334 + url: "", //上传地址
187 335 loading: false,
188 336 diaCount: false,
  337 + tenantRoleList: [],
  338 + regionList: [],
  339 + schoolList: [],
  340 + props: { multiple: true, checkStrictly: false },
  341 + roleList: [],
  342 + query: {
  343 + schoolId: [],
  344 + roleId: "",
  345 + available: "",
  346 + loginName: "",
  347 + realName: "",
  348 + },
  349 + tableData: [],
  350 + total: 0,
  351 + page: 1,
  352 + size: 20,
189 353 formCount: {
190 354 userId: "",
191 355 loginName: "",
... ... @@ -199,24 +363,82 @@ export default {
199 363 { required: true, message: "请输入教师姓名", trigger: "blur" },
200 364 ],
201 365 },
202   - roleList: [],
203   - query: {
204   - roleId: "",
205   - available: "",
206   - loginName: "",
  366 + formAddCount: {
  367 + phone: "",
207 368 realName: "",
  369 + password: "",
  370 + roleId: "",
  371 + regionId: "",
  372 + },
  373 + ruleAddCount: {
  374 + phone: [{ required: true, message: "请输入联系电话", trigger: "blur" }],
  375 + realName: [{ required: true, message: "请输入姓名", trigger: "blur" }],
  376 + password: [{ required: true, message: "请输入密码", trigger: "blur" }],
  377 + roleId: [{ required: true, message: "请选择角色", trigger: "blur" }],
  378 + regionId: [
  379 + { required: true, message: "请选择权限区域", trigger: "blur" },
  380 + ],
208 381 },
209   - tableData: [],
210   - total: 0,
211   - page: 1,
212   - size: 20,
213 382 };
214 383 },
215 384 created() {
  385 + let role = "";
  386 + this.$store.getters.info.permissions.map((item) => {
  387 + if (item.roleName == this.$store.getters.info.showRoleName) {
  388 + role = item.role;
  389 + }
  390 + });
  391 + this.role = role ? role : this.$store.getters.info.permissions[0].role;
  392 + if (this.role == "ROLE_JITUAN") {
  393 + this._TenantRoleList();
  394 + this._RegionList();
  395 + } else {
  396 + this._RoleList();
  397 + }
216 398 this._QueryData(4);
217   - this._RoleList();
218 399 },
219 400 methods: {
  401 + async downExcel() {
  402 + let data = await this.$request.downDevice();
  403 + if (data && !data.code) {
  404 + let blob = new Blob([data], {
  405 + type: "application/vnd.ms-excel;charset=utf-8",
  406 + });
  407 + downloadFile(`账号信息.xlsx`, blob);
  408 + } else {
  409 + this.$message.error(data.message);
  410 + }
  411 + },
  412 + openAddDia() {
  413 + //添加账号
  414 + this.formAddCount.phone = "";
  415 + this.formAddCount.realName = "";
  416 + this.formAddCount.password = "";
  417 + this.formAddCount.roleId = "";
  418 + this.formAddCount.regionId = "";
  419 + this.diaAdd = true;
  420 + },
  421 + saveAddCount() {
  422 + this.$refs.formAddCount.validate(async (valid) => {
  423 + if (valid) {
  424 + let params = { ...this.formAddCount };
  425 + params.password = encryptLoginPassword(params.password);
  426 + const { data, status, info } = await this.$request.addUser({
  427 + ...params,
  428 + });
  429 + if (status === 0) {
  430 + this.$message.success(info);
  431 + this._QueryData(4);
  432 + this.diaAdd = false;
  433 + } else {
  434 + this.$message.error(info);
  435 + }
  436 + } else {
  437 + this.$message.warning("输入有误请检查!");
  438 + return false;
  439 + }
  440 + });
  441 + },
220 442 setCount(obj) {
221 443 this.formCount.userId = obj.userId;
222 444 this.formCount.loginName = obj.loginName;
... ... @@ -224,6 +446,7 @@ export default {
224 446 this.diaCount = true;
225 447 },
226 448 handleDropdownClick(value, item) {
  449 + console.log(item);
227 450 //更多
228 451 if (value == 2) {
229 452 this.$confirm("确定要删除这条账号信息吗?", "提示", {
... ... @@ -246,10 +469,16 @@ export default {
246 469 saveCount() {
247 470 this.$refs.formCount.validate(async (valid) => {
248 471 if (valid) {
249   - const { data, status, info } = await this.$request.updateUser({
250   - type: 3,
251   - ...this.formCount,
252   - });
  472 + const { data, status, info } =
  473 + this.role != "ROLE_JITUAN"
  474 + ? await this.$request.updateUser({
  475 + type: 3,
  476 + ...this.formCount,
  477 + })
  478 + : await this.$request.tenantUpdateUser({
  479 + type: 3,
  480 + ...this.formCount,
  481 + });
253 482 if (status === 0) {
254 483 this.$message.success(info);
255 484 this._QueryData(4);
... ... @@ -257,22 +486,27 @@ export default {
257 486 this.$message.error(info);
258 487 }
259 488 } else {
260   - console.log("输入有误请检查!");
  489 + this.$message.warning("输入有误请检查!");
261 490 return false;
262 491 }
263 492 });
264 493 },
265 494 async updateUser(obj, type) {
266 495 let query = {
267   - userId: obj.userId,
  496 + userId: obj.id,
268 497 type: type,
269 498 };
270 499 if (type == 1) {
271 500 query.available = obj.available == 0 ? 1 : 0;
272 501 }
273   - const { data, status, info } = await this.$request.updateUser({
274   - ...query,
275   - });
  502 + const { data, status, info } =
  503 + this.role != "ROLE_JITUAN"
  504 + ? await this.$request.updateUser({
  505 + ...query,
  506 + })
  507 + : await this.$request.tenantUpdateUser({
  508 + ...query,
  509 + });
276 510 if (status === 0) {
277 511 this.$message.success(info);
278 512 this._QueryData(4);
... ... @@ -288,6 +522,37 @@ export default {
288 522 this.$message.error(info);
289 523 }
290 524 },
  525 + async _TenantRoleList() {
  526 + //集团-添加账号权限
  527 + const { data, status, info } = await this.$request.tenantRoleList();
  528 + if (status === 0) {
  529 + this.tenantRoleList = data.list || [];
  530 + } else {
  531 + this.$message.error(info);
  532 + }
  533 + },
  534 + async _RegionList() {
  535 + //集团-区域列表
  536 + const { data, status, info } = await this.$request.regionList();
  537 + if (status === 0) {
  538 + this.regionList = [...data.list] || [];
  539 + this.schoolList = data.list?.map((item) => {
  540 + let children = item.schoolList?.map((items) => {
  541 + return {
  542 + value: items.id,
  543 + label: items.schoolName,
  544 + };
  545 + });
  546 + return {
  547 + value: item.id,
  548 + label: item.regionName,
  549 + children: children,
  550 + };
  551 + });
  552 + } else {
  553 + this.$message.error(info);
  554 + }
  555 + },
291 556 async _QueryData(type) {
292 557 let query = {};
293 558 if (type == 1) {
... ... @@ -298,6 +563,7 @@ export default {
298 563 } else if (type == 2) {
299 564 this.query.roleId = "";
300 565 this.query.available = "";
  566 + this.query.schoolId = [];
301 567 query.loginName = this.query.loginName;
302 568 this.query.realName = "";
303 569 } else if (type == 3) {
... ... @@ -308,13 +574,35 @@ export default {
308 574 } else {
309 575 query = { ...this.query };
310 576 }
  577 + if (this.role == "ROLE_JITUAN") {
  578 + delete query.realName;
  579 + query.regionIds = [];
  580 + query.schoolIds = [];
  581 + query.schoolId?.map((item) => {
  582 + if (!query.regionIds.includes(item[0])) {
  583 + query.regionIds.push(item[0]);
  584 + }
  585 + if (!query.schoolIds.includes(item[1])) {
  586 + query.schoolIds.push(item[1]);
  587 + }
  588 + });
  589 + delete query.schoolId;
  590 + }
311 591 this.loading = true;
312 592 this.tableData = [];
313   - const { data, status, info } = await this.$request.userPage({
314   - ...query,
315   - page: this.page,
316   - size: this.size,
317   - });
  593 + const { data, status, info } =
  594 + this.role != "ROLE_JITUAN"
  595 + ? await this.$request.userPage({
  596 + ...query,
  597 + page: this.page,
  598 + size: this.size,
  599 + })
  600 + : await this.$request.tenantUserPage({
  601 + ...query,
  602 + page: this.page,
  603 + size: this.size,
  604 + });
  605 +
318 606 this.loading = false;
319 607 if (status === 0) {
320 608 this.tableData = data.list || [];
... ...
src/views/setUp/conglomerate.vue
... ... @@ -6,85 +6,79 @@
6 6 </template>
7 7 </back-box>
8 8 <div class="page-content">
9   - <el-empty
10   - :image-size="100"
11   - v-if="!tableList.length && loading == false"
12   - description="没有更多数据"
13   - ></el-empty>
14   - <div v-else class="content-box" v-loading="loading">
  9 + <div class="content-box" v-loading="loading">
15 10 <div class="left-box">
16 11 <p class="h-title">
17   - <span class="tog-type" @click="setType">{{
18   - `${type == 1 ? "集团列表" : "区域列表"}`
19   - }}</span>
  12 + <span class="tog-type">集团列表</span>
20 13 <i class="icon el-icon-circle-plus-outline" @click="edit"></i>
21 14 </p>
22 15 <ul class="school-ul">
23 16 <li
24 17 class="school-item"
  18 + :class="showId == '' ? 'active' : ''"
  19 + @click="(showId = ''), showSchool(false)"
  20 + >
  21 + 全部({{ schoolTotal }})
  22 + </li>
  23 + <li
  24 + class="school-item"
25 25 v-for="item in tableList"
26 26 :key="item.id"
27 27 :class="showId == item.id ? 'active' : ''"
28   - @click="showSchool(item)"
  28 + @click="(showId = item.id), showSchool()"
29 29 >
30   - {{ item.name }}({{ item.num }})
31   - <!-- <i class="el-icon-edit-outline" @click.stop="setSchool(item)"></i> -->
  30 + {{ item.regionName }}({{ item.schoolCount }})
  31 + <i class="el-icon-edit-outline" @click.stop="setRegion(item)"></i>
32 32 </li>
33 33 </ul>
34 34 </div>
35 35 <div class="content-detail">
36 36 <div class="title-box">
37   - <span>管辖的学校(5)</span>
  37 + <span>管辖的学校({{schoolData.num}})</span>
38 38 <i class="icon el-icon-circle-plus-outline" @click="addSchool"></i>
39 39 </div>
40   - <ul class="detail-list">
  40 + <el-empty
  41 + :image-size="100"
  42 + v-if="!schoolData.list.length && loading == false"
  43 + description="没有更多数据"
  44 + ></el-empty>
  45 + <ul v-else class="detail-list">
41 46 <li
42 47 class="detail-item"
43 48 v-for="item in schoolData.list"
44 49 :key="item.id"
45 50 >
46 51 <p class="item-tit">
47   - <span class="name" :class="type == 1 ? 'active' : ''">{{
48   - item.name
  52 + <span class="name active" @click="setSchool(item)">{{
  53 + item.schoolName
49 54 }}</span>
50   - <i
51   - @click="addAdmin(item)"
52   - v-if="type == 1"
53   - class="icon el-icon-user-solid"
54   - ></i>
55   - <el-popconfirm
56   - v-if="type == 2"
57   - title="确定删除吗?"
58   - @confirm="removeSchool(item)"
59   - >
60   - <i slot="reference" class="icon el-icon-delete"></i>
61   - </el-popconfirm>
  55 + <i @click="addAdmin(item)" class="icon el-icon-user-solid"></i>
62 56 </p>
63 57 <div class="info">
64 58 <p class="info-item">
65 59 <span class="txt">基站</span>
66 60 <img class="pic" src="../../assets/images/jizhan.png" />
67   - <span>49</span>
  61 + <span>{{ item.stationCount }}</span>
68 62 </p>
69 63 <p class="info-item">
70 64 <span class="txt">键盘</span>
71 65 <img class="pic" src="../../assets/images/jianpan.png" />
72   - <span>49</span>
  66 + <span>{{ item.keyboardCount }}</span>
73 67 </p>
74 68 <p class="info-item">
75 69 <span class="txt">班级</span>
76 70 <img class="pic" src="../../assets/images/banji.png" />
77   - <span>49</span>
  71 + <span>{{ item.classCount }}</span>
78 72 </p>
79 73 <p class="info-item">
80 74 <span class="txt">学生</span>
81 75 <img class="pic" src="../../assets/images/xuesheng.png" />
82   - <span>49</span>
  76 + <span>{{ item.studentCount }}</span>
83 77 </p>
84 78 <p class="info-item">
85 79 <span class="txt">老师</span>
86 80 <img class="pic" src="../../assets/images/laoshi.png" />
87   - <span>49</span>
  81 + <span>{{ item.teacherCount }}</span>
88 82 </p>
89 83 </div>
90 84 </li>
... ... @@ -92,7 +86,11 @@
92 86 </div>
93 87 </div>
94 88 </div>
95   - <el-dialog title="添加区域/集团" :visible.sync="diaCL" width="400">
  89 + <el-dialog
  90 + :title="isAdd ? '添加区域/集团' : '修改区域/集团'"
  91 + :visible.sync="diaCL"
  92 + width="400"
  93 + >
96 94 <el-form
97 95 class="form-box"
98 96 ref="formCL"
... ... @@ -100,11 +98,11 @@
100 98 :rules="rulesCL"
101 99 label-width="160px"
102 100 >
103   - <el-form-item label="区域/集团名称:" prop="name">
  101 + <el-form-item label="区域/集团名称:" prop="regionName">
104 102 <el-col :span="10">
105 103 <el-input
106 104 maxlength="30"
107   - v-model.trim="formCL.name"
  105 + v-model.trim="formCL.regionName"
108 106 placeholder="请输入区域/集团名称"
109 107 />
110 108 </el-col>
... ... @@ -124,7 +122,7 @@
124 122 label-width="160px"
125 123 >
126 124 <el-form-item label="学校名称:">
127   - <span>{{ schoolData.name + formAdmin.name }}</span>
  125 + <span>{{ formAdmin.schoolName }}</span>
128 126 </el-form-item>
129 127 <el-form-item label="手机号码:" prop="phone">
130 128 <el-col :span="10">
... ... @@ -139,7 +137,8 @@
139 137 <el-col :span="10">
140 138 <el-input
141 139 maxlength="18"
142   - v-model.trim="formAdmin.phone"
  140 + v-model.trim="formAdmin.password"
  141 + show-password
143 142 placeholder="请输入密码"
144 143 />
145 144 </el-col>
... ... @@ -167,11 +166,11 @@
167 166 :rules="rulesSchool"
168 167 label-width="160px"
169 168 >
170   - <el-form-item label="学校名称:" prop="name">
  169 + <el-form-item label="学校名称:" prop="schoolName">
171 170 <el-col :span="10">
172 171 <el-input
173   - maxlength="11"
174   - v-model.trim="formSchool.name"
  172 + maxlength="30"
  173 + v-model.trim="formSchool.schoolName"
175 174 placeholder="请输入学校名称"
176 175 />
177 176 </el-col>
... ... @@ -179,24 +178,25 @@
179 178 <el-form-item label="所属区域/集团:">
180 179 <el-select
181 180 class="sel"
182   - v-model="formSchool.quyu"
  181 + v-model="formSchool.regionId"
183 182 placeholder="选择所属区域/集团"
184 183 >
185 184 <el-option
186 185 v-for="item in tableList"
187 186 :key="item.id"
188   - :label="item.name"
  187 + :label="item.regionName"
189 188 :value="item.id"
190 189 >
191 190 </el-option>
192 191 </el-select>
193 192 </el-form-item>
194   - <el-form-item label="学段:" prop="grade">
195   - <el-checkbox-group v-model="formSchool.grade">
  193 + <el-form-item label="学段:">
  194 + <el-checkbox-group v-model="formSchool.sections">
196 195 <el-checkbox :label="1">小学</el-checkbox>
197 196 <el-checkbox :label="2">初中</el-checkbox>
198 197 <el-checkbox :label="3">高中</el-checkbox>
199 198 <el-checkbox :label="4">本科</el-checkbox>
  199 + <el-checkbox :label="7">高补</el-checkbox>
200 200 </el-checkbox-group>
201 201 </el-form-item>
202 202 </el-form>
... ... @@ -207,47 +207,73 @@
207 207 <el-button round @click="diaSchool = false">取 消</el-button>
208 208 </div>
209 209 </el-dialog>
  210 + <el-dialog title="学校信息修改" :visible.sync="diaSchool2" width="400">
  211 + <el-form
  212 + class="form-box"
  213 + ref="formSchool2"
  214 + :model="setFormSchool"
  215 + :rules="rulesSchool"
  216 + label-width="160px"
  217 + >
  218 + <el-form-item label="学校名称:" prop="schoolName">
  219 + <el-col :span="10">
  220 + <el-input
  221 + maxlength="30"
  222 + v-model.trim="setFormSchool.schoolName"
  223 + placeholder="请输入学校名称"
  224 + />
  225 + </el-col>
  226 + </el-form-item>
  227 + </el-form>
  228 + <div class="dialog-footer" slot="footer">
  229 + <el-button type="primary" round @click="saveSetFormSchool"
  230 + >确 定</el-button
  231 + >
  232 + <el-button round @click="diaSchool2 = false">取 消</el-button>
  233 + <el-button round @click="removeSchool">删除学校</el-button>
  234 + </div>
  235 + </el-dialog>
210 236 </div>
211 237 </template>
212 238  
213 239 <script>
  240 +import { encryptLoginPassword } from "@/utils";
214 241 export default {
215 242 data() {
216 243 return {
  244 + isAdd: true,
217 245 diaCL: false,
218 246 diaAdmin: false,
219 247 diaSchool: false,
  248 + diaSchool2: false,
220 249 loading: false,
221   - type: 1, //集团列表-1 区域列表-2
222   - showId: 1, //显示学校Id
  250 + showId: "", //显示学校Id
  251 + schoolTotal: 0,
223 252 tableList: [
224 253 // 集团列表/区域列表
225 254 {
226 255 id: 1,
227   - name: "云南衡水实验中学",
228   - num: 5,
  256 + regionName: "云南衡水实验中学",
  257 + schoolCount: 5,
229 258 },
230 259 ],
231 260 schoolData: {
232 261 //学校信息
233   - num: 5,
234   - name: "云南衡水实验中学",
235   - list: [
236   - { id: 1, name: "曲靖校区" },
237   - { id: 2, name: "玉溪校区" },
238   - ],
  262 + num: 0,
  263 + list: [{ id: 1, schoolName: "曲靖校区" }],
239 264 },
240 265 formCL: {
241   - name: "",
  266 + regionId: "",
  267 + regionName: "",
242 268 },
243 269 rulesCL: {
244   - name: [
  270 + regionName: [
245 271 { required: true, message: "请输入区域/集团名称", trigger: "blur" },
246 272 ],
247 273 },
248 274 formAdmin: {
249   - id: "",
250   - name: "",
  275 + schoolId: "",
  276 + schoolName: "",
251 277 phone: "",
252 278 password: "",
253 279 realName: "",
... ... @@ -258,125 +284,185 @@ export default {
258 284 realName: [{ required: true, message: "请输入姓名", trigger: "blur" }],
259 285 },
260 286 formSchool: {
261   - name: "",
262   - grade: [],
263   - quyu: "",
  287 + schoolName: "",
  288 + regionId: "",
  289 + sections: [],
264 290 },
265 291 rulesSchool: {
266   - name: [{ required: true, message: "请输入学校名称", trigger: "blur" }],
267   - grade: [{ required: true, message: "请选择学段", trigger: "blur" }],
  292 + schoolName: [
  293 + { required: true, message: "请输入学校名称", trigger: "blur" },
  294 + ],
  295 + // sections: [{ required: true, message: "请选择学段", trigger: "blur" }],
  296 + },
  297 + setFormSchool: {
  298 + schoolId: "",
  299 + schoolName: "",
268 300 },
269 301 };
270 302 },
  303 + created() {
  304 + this._QueryData();
  305 + this.showSchool();
  306 + },
271 307 methods: {
272 308 edit() {
273 309 //添加区域/集团
274   - this.formCL.name = "";
  310 + this.isAdd = true;
  311 + this.formCL.regionId = "";
  312 + this.formCL.regionName = "";
275 313 this.diaCL = true;
276 314 },
277 315 addAdmin(obj) {
278 316 //添加管理员
279   - this.formAdmin = { ...obj };
  317 + this.formAdmin.schoolId = obj.id;
  318 + this.formAdmin.schoolName = obj.schoolName;
  319 + this.formAdmin.phone = "";
  320 + this.formAdmin.password = "";
  321 + this.formAdmin.realName = "";
  322 +
  323 +
280 324 this.diaAdmin = true;
281 325 },
282   - addSchool(obj) {
  326 + addSchool() {
283 327 //添加学校
284   - this.formSchool = {
285   - name: "",
286   - grade: [],
287   - quyu: "",
288   - };
  328 + this.formSchool.name = "";
  329 + this.formSchool.grade = [];
  330 + this.formSchool.quyu = "";
289 331 this.diaSchool = true;
290 332 },
291   - setSchool() {
292   - //
  333 + setRegion(obj) {
  334 + this.isAdd = false;
  335 + this.formCL.regionId = obj.id;
  336 + this.formCL.regionName = obj.regionName;
  337 + this.diaCL = true;
293 338 },
294   - setType() {
295   - //集团列表、区域列表切换
296   - this.type = this.type == 1 ? 2 : 1;
297   - this._QueryData();
  339 + setSchool(obj) {
  340 + this.setFormSchool.schoolId = obj.id;
  341 + this.setFormSchool.schoolName = obj.schoolName;
  342 + this.diaSchool2 = true;
298 343 },
299   - removeSchool(obj) {
300   - // const { data, status, info } = await this.$request.xxx({
301   - // id: obj.id,
302   - // });
303   - // if (status === 0) {
304   - // this.$message.success(info);
305   - // } else {
306   - // this.$message.error(info);
307   - // }
  344 + async removeSchool() {
  345 + const { data, status, info } = await this.$request.removeSchool({
  346 + schoolId: this.setFormSchool.schoolId,
  347 + });
  348 + if (status === 0) {
  349 + this._QueryData()
  350 + this.showSchool()
  351 + this.$message.success(info);
  352 + this.diaSchool2 = false
  353 + } else {
  354 + this.$message.error(info);
  355 + }
308 356 },
309 357 saveFormCL() {
310 358 //保存添加区域/集团
311   - // this.$refs["formCL"].validate(async (valid) => {
312   - // // 验证通过:保存
313   - // if (valid) {
314   - // const { data, status, info } = await this.$request.xxx({
315   - // name: this.formCL.name,
316   - // });
317   - // if (status === 0) {
318   - // this.$message.success(info);
319   - this.diaCL = false;
320   - // } else {
321   - // this.$message.error(info);
322   - // }
323   - // } else {
324   - // this.$message.error("区域/集团名称数据有误,请检查!");
325   - // return false;
326   - // }
327   - // });
  359 + this.$refs["formCL"].validate(async (valid) => {
  360 + // 验证通过:保存
  361 + if (valid) {
  362 + const { data, status, info } = await this.$request.saveRegion({
  363 + regionId: this.formCL.regionId,
  364 + regionName: this.formCL.regionName,
  365 + });
  366 + if (status === 0) {
  367 + this._QueryData()
  368 + this.$message.success(info);
  369 + this.diaCL = false;
  370 + } else {
  371 + this.$message.error(info);
  372 + }
  373 + } else {
  374 + this.$message.error("区域/集团名称数据有误,请检查!");
  375 + return false;
  376 + }
  377 + });
328 378 },
329 379 saveFormAdmin() {
330 380 //保存管理员
331   - // this.$refs["formAdmin"].validate(async (valid) => {
332   - // // 验证通过:保存
333   - // if (valid) {
334   - // const { data, status, info } = await this.$request.xxx({...formAdmin});
335   - // if (status === 0) {
336   - // this.$message.success(info);
337   - this.diaAdmin = false;
338   - // } else {
339   - // this.$message.error(info);
340   - // }
341   - // } else {
342   - // this.$message.error("区域/集团名称数据有误,请检查!");
343   - // return false;
344   - // }
345   - // });
  381 + this.$refs["formAdmin"].validate(async (valid) => {
  382 + // 验证通过:保存
  383 + if (valid) {
  384 + let params = { ...this.formAdmin };
  385 + params.password = encryptLoginPassword(this.formAdmin.password);
  386 + delete params.schoolName;
  387 + const { data, status, info } = await this.$request.addSchoolManager({
  388 + ...params,
  389 + });
  390 + if (status === 0) {
  391 + this.$message.success(info);
  392 + this.diaAdmin = false;
  393 + } else {
  394 + this.$message.error(info);
  395 + }
  396 + } else {
  397 + this.$message.error("数据有误,请检查!");
  398 + return false;
  399 + }
  400 + });
346 401 },
347 402 saveFormSchool() {
348 403 //保存学校
349   - // this.$refs["formAdmin"].validate(async (valid) => {
350   - // // 验证通过:保存
351   - // if (valid) {
352   - // const { data, status, info } = await this.$request.xxx({...formAdmin});
353   - // if (status === 0) {
354   - // this.$message.success(info);
355   - this.diaSchool = false;
356   - // } else {
357   - // this.$message.error(info);
358   - // }
359   - // } else {
360   - // this.$message.error("区域/集团名称数据有误,请检查!");
361   - // return false;
362   - // }
363   - // });
  404 + this.$refs["formSchool"].validate(async (valid) => {
  405 + // 验证通过:保存
  406 + if (valid) {
  407 + const { data, status, info } = await this.$request.saveSchool({
  408 + ...this.formSchool,
  409 + });
  410 + if (status === 0) {
  411 + this.$message.success(info);
  412 + this.diaSchool = false;
  413 + this._QueryData();
  414 + this.showSchool();
  415 + } else {
  416 + this.$message.error(info);
  417 + }
  418 + } else {
  419 + this.$message.error("学校名称数据有误,请检查!");
  420 + return false;
  421 + }
  422 + });
364 423 },
365   - async showSchool(obj) {
366   - // const { data, status, info } = await this.$request.xxx();
367   - // if (status === 0) {
368   - // this.$message.success(info);
369   - // } else {
370   - // this.$message.error(info);
371   - // }
  424 + saveSetFormSchool() {
  425 + //保存学校
  426 + this.$refs["formSchool2"].validate(async (valid) => {
  427 + // 验证通过:保存
  428 + if (valid) {
  429 + const { data, status, info } = await this.$request.saveSchool({
  430 + ...this.setFormSchool,
  431 + });
  432 + if (status === 0) {
  433 + this.$message.success(info);
  434 + this.diaSchool2 = false;
  435 + this.showSchool();
  436 + } else {
  437 + this.$message.error(info);
  438 + }
  439 + } else {
  440 + this.$message.error("学校名称数据有误,请检查!");
  441 + return false;
  442 + }
  443 + });
  444 + },
  445 + async showSchool() {
  446 + this.loading = true
  447 + const { data, status, info } = await this.$request.schoolList({
  448 + regionId: this.showId,
  449 + });
  450 + this.loading = false
  451 + if (status === 0) {
  452 + this.schoolData.list = [...data.list] || [];
  453 + this.schoolData.num = data.count;
  454 + } else {
  455 + this.$message.error(info);
  456 + }
372 457 },
373 458 async _QueryData() {
374   - // const { data, status, info } = await this.$request.xxx();
375   - // if (status === 0) {
376   - // this.$message.success(info);
377   - // } else {
378   - // this.$message.error(info);
379   - // }
  459 + const { data, status, info } = await this.$request.regionList();
  460 + if (status === 0) {
  461 + this.tableList = [...data.list] || [];
  462 + this.schoolTotal = data.schoolCount;
  463 + } else {
  464 + this.$message.error(info);
  465 + }
380 466 },
381 467 },
382 468 };
... ...
src/views/setUp/school.vue
... ... @@ -174,8 +174,8 @@
174 174 <el-form-item label="手机号码:" prop="contactPhone"
175 175 ><el-col :span="10"
176 176 ><el-input
177   - type="number"
178 177 v-model="formSchool.contactPhone"
  178 + type="number"
179 179 oninput="if(value.length > 11) value = value.slice(0,11)"
180 180 placeholder="请输入联系人手机号码"
181 181 ></el-input></el-col
... ...
src/views/setUp/student.vue
... ... @@ -284,7 +284,7 @@ export default {
284 284 this.$message.error(info);
285 285 }
286 286 } else {
287   - console.log("输入有误请检查!");
  287 + this.$message.warning("输入有误请检查!");
288 288 return false;
289 289 }
290 290 });
... ...
src/views/setUp/teacher.vue
... ... @@ -59,9 +59,9 @@
59 59 </el-input>
60 60 <el-input
61 61 type="number"
  62 + oninput="if(value.length > 11) value = value.slice(0,11)"
62 63 placeholder="请输入老师手机号"
63 64 v-model="query.phone"
64   - maxlength="11"
65 65 class="input-with-select"
66 66 @keyup.enter.native="_QueryData(3)"
67 67 >
... ... @@ -216,7 +216,9 @@
216 216 </div>
217 217 </el-dialog>
218 218 <el-dialog
219   - :title="isAdd ? '添加教师' : setTercherType==1?'编辑教师信息':'管理班级'"
  219 + :title="
  220 + isAdd ? '添加教师' : setTercherType == 1 ? '编辑教师信息' : '管理班级'
  221 + "
220 222 :visible.sync="diaTeacher"
221 223 width="400"
222 224 >
... ... @@ -227,8 +229,8 @@
227 229 :rules="rulesTeacher"
228 230 label-width="160px"
229 231 >
230   - <el-form-item v-show="!isAdd && setTercherType == 2" label="教师姓名:">
231   - <span>{{formTeacher.teacherName}}</span>
  232 + <el-form-item v-show="!isAdd && setTercherType == 2" label="教师姓名:">
  233 + <span>{{ formTeacher.teacherName }}</span>
232 234 </el-form-item>
233 235 <el-form-item
234 236 v-show="isAdd || (!isAdd && setTercherType == 1)"
... ... @@ -236,21 +238,37 @@
236 238 prop="loginName"
237 239 >
238 240 <el-col :span="10">
239   - <el-input type="number" moninput="if(value.length > 11) value = value.slice(0,11)" v-model.trim="formTeacher.loginName" />
  241 + <el-input
  242 + type="number"
  243 + moninput="if(value.length > 11) value = value.slice(0,11)"
  244 + v-model.trim="formTeacher.loginName"
  245 + />
240 246 </el-col>
241 247 </el-form-item>
242   - <el-form-item v-show="isAdd || (!isAdd && setTercherType == 1)" label="教师姓名:" prop="teacherName">
  248 + <el-form-item
  249 + v-show="isAdd || (!isAdd && setTercherType == 1)"
  250 + label="教师姓名:"
  251 + prop="teacherName"
  252 + >
243 253 <el-col :span="10">
244 254 <el-input maxlength="30" v-model.trim="formTeacher.teacherName" />
245 255 </el-col>
246 256 </el-form-item>
247   - <el-form-item v-show="isAdd || (!isAdd && setTercherType == 1)" label="性别:" prop="sex">
  257 + <el-form-item
  258 + v-show="isAdd || (!isAdd && setTercherType == 1)"
  259 + label="性别:"
  260 + prop="sex"
  261 + >
248 262 <el-radio-group v-model="formTeacher.sex">
249 263 <el-radio :label="1">男</el-radio>
250 264 <el-radio :label="2">女</el-radio>
251 265 </el-radio-group>
252 266 </el-form-item>
253   - <el-form-item v-show="isAdd || (!isAdd && setTercherType == 2)" label="教师角色:" prop="roleList">
  267 + <el-form-item
  268 + v-show="isAdd || (!isAdd && setTercherType == 2)"
  269 + label="教师角色:"
  270 + prop="roleList"
  271 + >
254 272 <div
255 273 class="role-list"
256 274 v-for="(item, index) in formTeacher.roleList"
... ... @@ -429,7 +447,7 @@ export default {
429 447 },
430 448 editTeacher(type) {
431 449 this.diaTeacher = true;
432   - this.setTercherType = type
  450 + this.setTercherType = type;
433 451 this.isAdd = false;
434 452 for (let key in this.teacherDetail) {
435 453 if (key == "realName") {
... ... @@ -474,7 +492,7 @@ export default {
474 492 this.$message.error(res.info);
475 493 }
476 494 } else {
477   - console.log("输入有误请检查!");
  495 + this.$message.warning("输入有误请检查!");
478 496 return false;
479 497 }
480 498 });
... ... @@ -493,24 +511,24 @@ export default {
493 511 if (item.roleId == 6) {
494 512 managerList.push({
495 513 classId: item.classId[1],
496   - className: this.classList.find(
497   - (items) => items.value == item.classId[1]
498   - )?.label||"",
  514 + className:
  515 + this.classList.find((items) => items.value == item.classId[1])
  516 + ?.label || "",
499 517 });
500 518 } else if (item.roleId == 7) {
501 519 teacherCourseList.push({
502 520 classId: item.classId[0],
503   - className: this.classList.find(
504   - (items) => items.value == item.classId[0]
505   - )?.label||"",
  521 + className:
  522 + this.classList.find((items) => items.value == item.classId[0])
  523 + ?.label || "",
506 524 subjectName: item.classId[1],
507 525 });
508 526 } else {
509 527 gradeGroupList.push({
510 528 grade: item.classId[0],
511   - gradeName: this.gradeList.find(
512   - (items) => items.id == item.classId[0]
513   - )?.label||"",
  529 + gradeName:
  530 + this.gradeList.find((items) => items.id == item.classId[0])
  531 + ?.label || "",
514 532 subjectName: item.classId[1],
515 533 });
516 534 }
... ... @@ -580,22 +598,21 @@ export default {
580 598 this.query.teacherName = "";
581 599 this.query.phone = "";
582 600 } else if (type == 2) {
583   - if(this.query.teacherName == ""){
584   - this.$message.warning('请输入老师姓名')
585   - return
  601 + if (this.query.teacherName == "") {
  602 + this.$message.warning("请输入老师姓名");
  603 + return;
586 604 }
587 605 query.teacherName = this.query.teacherName;
588 606 this.query.gradeName = "";
589 607 this.query.phone = "";
590 608 } else if (type == 3) {
591   - if(this.query.phone == ""){
592   - this.$message.warning('请输入老师手机')
593   - return
  609 + if (this.query.phone == "") {
  610 + this.$message.warning("请输入老师手机");
  611 + return;
594 612 }
595 613 query.phone = this.query.phone;
596 614 this.query.teacherName = "";
597 615 this.query.gradeName = "";
598   -
599 616 } else if (type == 10) {
600 617 query = { ...this.query };
601 618 }
... ...