Browse Source

学校-设备设置

gzb
wangzhonglu 10 months ago
parent
commit
cee0aea51f

+ 1
- 1
public/ckeditor_4.16.2_full/plugins/simpleupload/dialogs/simpleupload.js View File

@@ -51,7 +51,7 @@
51 51
               var _response = JSON.parse(this.response);
52 52
               if (_response.code === 0) {
53 53
                 // 显示消息弹窗
54
-                a.showNotification(_response.msg, 'success');
54
+                // a.showNotification(_response.msg, 'success');
55 55
                 a.insertHtml("<p><img src=" + window._config.showImageUrl + _response.obj + "></p>");
56 56
               } else {
57 57
                 var _rwarningMsg = a.showNotification(_response.msg, 'warning');

+ 12
- 0
src/api/setting.js View File

@@ -44,3 +44,15 @@ export const password_edit = (data) => setRequest("password/edit", data);
44 44
  * 8.3.3 设备设置-重置
45 45
  */
46 46
 export const password_delete = (data) => setRequest("password/delete", data);
47
+/**
48
+ * 8.3.2.1 设备设置管理-详情
49
+ */
50
+export const deviceSet_detail = (data) => setRequest("deviceSet/detail", data);
51
+/**
52
+ * 8.3.2.2 设备设置管理-保存
53
+ */
54
+export const deviceSet_edit = (data) => setRequest("deviceSet/edit", data);
55
+/**
56
+ * 8.3.2.3 设备设置管理-重置
57
+ */
58
+export const deviceSet_delete = (data) => setRequest("deviceSet/delete", data);

+ 516
- 4
src/views/schoolSection/setting/deviceSetting.vue View File

@@ -1,14 +1,526 @@
1 1
 <template>
2
-  <div class="main_root"></div>
2
+  <div class="main_root">
3
+    <div class="menu_list">
4
+      <div
5
+        :class="['menu_item', menuInfo.selected === 1 ? 'selected' : '']"
6
+        @click="toChangeMenu(1)"
7
+      >
8
+        设置管理密码
9
+      </div>
10
+      <div
11
+        :class="['menu_item', menuInfo.selected === 2 ? 'selected' : '']"
12
+        @click="toChangeMenu(2)"
13
+      >
14
+        设备设置管理
15
+      </div>
16
+    </div>
17
+    <div class="tip_bg" v-if="menuInfo.selected === 1">
18
+      <div class="require">选择动态密码后,需要去设备列表中计算设备密码。</div>
19
+      <div class="require">
20
+        校级管理员可设置设备管理密码为空,校级密码为空时,该校设备管理密码继承超管设置的设备管理密码。
21
+      </div>
22
+    </div>
23
+    <div class="tip_bg" v-else-if="menuInfo.selected === 2">
24
+      <div class="require">
25
+        学校强制绑定设备开关打开后,每个学生只能绑定一台设备,一旦和设备绑定将不能在其他设备上登录,需要更换设备时,需要管理员对该学生进行解绑操作。
26
+      </div>
27
+      <div class="require">
28
+        SD卡功能设置开启后,该学校的所有设备SD功能均可使用,如果需要单独控制可以在设备管理中对单个设备进行开启或关闭操作。
29
+      </div>
30
+      <div class="require">
31
+        隐藏图库,相机开启后,该学校的所有设备桌面不再显示图库,相机。
32
+      </div>
33
+      <div class="require">
34
+        禁用注销开启后,该单位的所有设备一旦登录成功,必须输入管理员密码才能退出登录。
35
+      </div>
36
+      <div class="require">
37
+        限制使用时长后,客户端使用时间到了设备提醒休息,默认允许使用30分钟,这里你可以自行设置(可设置范围20~120分钟)。
38
+      </div>
39
+      <div class="require">
40
+        限制安装来源功能开启后,只允许安装<span style="color: #339dff"
41
+          >云鸽</span
42
+        >商店内的应用(该功能仅对华为设备生效)。
43
+      </div>
44
+    </div>
45
+    <div class="form_box" v-if="menuInfo.selected === 1">
46
+      <Form :label-width="80">
47
+        <FormItem label="动态密码">
48
+          <RadioGroup v-model="menuInfo.pswDetail.trend">
49
+            <Radio :label="1">是</Radio>
50
+            <Radio :label="0">否</Radio>
51
+          </RadioGroup>
52
+        </FormItem>
53
+        <FormItem label="管理密码">
54
+          <Input
55
+            v-model="menuInfo.pswDetail.password"
56
+            placeholder="请输入管理密码"
57
+          ></Input>
58
+        </FormItem>
59
+      </Form>
60
+    </div>
61
+    <div class="form_box" v-else-if="menuInfo.selected === 2">
62
+      <Form :label-width="200">
63
+        <FormItem label="是否强制绑定">
64
+          <RadioGroup v-model="menuInfo.setDetail.forceBind">
65
+            <Radio :label="1">是</Radio>
66
+            <Radio :label="0">否</Radio>
67
+          </RadioGroup>
68
+        </FormItem>
69
+        <FormItem label="启动SD卡功能">
70
+          <RadioGroup v-model="menuInfo.setDetail.sdcard">
71
+            <Radio :label="1">是</Radio>
72
+            <Radio :label="0">否</Radio>
73
+          </RadioGroup>
74
+        </FormItem>
75
+        <FormItem label="启用电话短信">
76
+          <RadioGroup v-model="menuInfo.setDetail.simcard">
77
+            <Radio :label="1">是</Radio>
78
+            <Radio :label="0">否</Radio>
79
+          </RadioGroup>
80
+        </FormItem>
81
+        <FormItem label="启用数据流量">
82
+          <RadioGroup v-model="menuInfo.setDetail.dataFlow">
83
+            <Radio :label="1">是</Radio>
84
+            <Radio :label="0">否</Radio>
85
+          </RadioGroup>
86
+        </FormItem>
87
+        <FormItem label="是否禁用注销">
88
+          <RadioGroup v-model="menuInfo.setDetail.logout">
89
+            <Radio :label="1">是</Radio>
90
+            <Radio :label="0">否</Radio>
91
+          </RadioGroup>
92
+        </FormItem>
93
+        <FormItem label="隐藏一键清理">
94
+          <RadioGroup v-model="menuInfo.setDetail.cleanup">
95
+            <Radio :label="1">是</Radio>
96
+            <Radio :label="0">否</Radio>
97
+          </RadioGroup>
98
+        </FormItem>
99
+        <FormItem label="隐藏一键加速">
100
+          <RadioGroup v-model="menuInfo.setDetail.accelerate">
101
+            <Radio :label="1">是</Radio>
102
+            <Radio :label="0">否</Radio>
103
+          </RadioGroup>
104
+        </FormItem>
105
+        <FormItem label="开启手势密码">
106
+          <RadioGroup v-model="menuInfo.setDetail.gesturePwd">
107
+            <Radio :label="1">是</Radio>
108
+            <Radio :label="0">否</Radio>
109
+          </RadioGroup>
110
+        </FormItem>
111
+        <FormItem label="启用wifi高级选项">
112
+          <RadioGroup v-model="menuInfo.setDetail.wifiAdvanced">
113
+            <Radio :label="1">是</Radio>
114
+            <Radio :label="0">否</Radio>
115
+          </RadioGroup>
116
+        </FormItem>
117
+        <FormItem label="启用截屏">
118
+          <RadioGroup v-model="menuInfo.setDetail.screenshots">
119
+            <Radio :label="1">是</Radio>
120
+            <Radio :label="0">否</Radio>
121
+          </RadioGroup>
122
+        </FormItem>
123
+        <FormItem label="启用客户端管理员">
124
+          <RadioGroup v-model="menuInfo.setDetail.clientAdmin">
125
+            <Radio :label="1">是</Radio>
126
+            <Radio :label="0">否</Radio>
127
+          </RadioGroup>
128
+        </FormItem>
129
+        <FormItem label="隐藏自动旋转">
130
+          <RadioGroup v-model="menuInfo.setDetail.rotateSetting">
131
+            <Radio :label="1">是</Radio>
132
+            <Radio :label="0">否</Radio>
133
+          </RadioGroup>
134
+        </FormItem>
135
+        <FormItem label="开启使用时长提醒">
136
+          <RadioGroup v-model="menuInfo.setDetail.remindDuration">
137
+            <Radio :label="1">是</Radio>
138
+            <Radio :label="0">否</Radio>
139
+          </RadioGroup>
140
+        </FormItem>
141
+        <FormItem
142
+          label="提醒时长(分钟)"
143
+          v-if="menuInfo.setDetail.remindDuration === 1"
144
+        >
145
+          <InputNumber
146
+            :min="1"
147
+            v-model="menuInfo.setDetail.duration"
148
+          ></InputNumber>
149
+        </FormItem>
150
+        <FormItem label="启用OTG功能">
151
+          <RadioGroup v-model="menuInfo.setDetail.otg">
152
+            <Radio :label="1">是</Radio>
153
+            <Radio :label="0">否</Radio>
154
+          </RadioGroup>
155
+        </FormItem>
156
+      </Form>
157
+      <Form :label-width="200">
158
+        <FormItem label="隐藏图库">
159
+          <RadioGroup v-model="menuInfo.setDetail.gallery">
160
+            <Radio :label="1">是</Radio>
161
+            <Radio :label="0">否</Radio>
162
+          </RadioGroup>
163
+        </FormItem>
164
+        <FormItem label="隐藏相机">
165
+          <RadioGroup v-model="menuInfo.setDetail.camera">
166
+            <Radio :label="1">是</Radio>
167
+            <Radio :label="0">否</Radio>
168
+          </RadioGroup>
169
+        </FormItem>
170
+        <FormItem label="隐藏时钟">
171
+          <RadioGroup v-model="menuInfo.setDetail.alarmClock">
172
+            <Radio :label="1">是</Radio>
173
+            <Radio :label="0">否</Radio>
174
+          </RadioGroup>
175
+        </FormItem>
176
+        <FormItem label="隐藏日志">
177
+          <RadioGroup v-model="menuInfo.setDetail.calendar">
178
+            <Radio :label="1">是</Radio>
179
+            <Radio :label="0">否</Radio>
180
+          </RadioGroup>
181
+        </FormItem>
182
+        <FormItem label="开启护眼模式">
183
+          <RadioGroup v-model="menuInfo.setDetail.protectedEyes">
184
+            <Radio :label="1">是</Radio>
185
+            <Radio :label="0">否</Radio>
186
+          </RadioGroup>
187
+        </FormItem>
188
+        <FormItem label="限制安装来源">
189
+          <RadioGroup v-model="menuInfo.setDetail.installStore">
190
+            <Radio :label="1">是</Radio>
191
+            <Radio :label="0">否</Radio>
192
+          </RadioGroup>
193
+        </FormItem>
194
+        <FormItem label="允许用户改密码">
195
+          <RadioGroup v-model="menuInfo.setDetail.changePwd">
196
+            <Radio :label="1">是</Radio>
197
+            <Radio :label="0">否</Radio>
198
+          </RadioGroup>
199
+        </FormItem>
200
+        <FormItem label="组织部门显示">
201
+          <RadioGroup v-model="menuInfo.setDetail.schoolClass">
202
+            <Radio :label="1">是</Radio>
203
+            <Radio :label="0">否</Radio>
204
+          </RadioGroup>
205
+        </FormItem>
206
+        <FormItem label="启用GPS">
207
+          <RadioGroup v-model="menuInfo.setDetail.gps">
208
+            <Radio :label="1">是</Radio>
209
+            <Radio :label="0">否</Radio>
210
+          </RadioGroup>
211
+        </FormItem>
212
+        <FormItem label="显示隐私声明">
213
+          <RadioGroup v-model="menuInfo.setDetail.privacyStatement">
214
+            <Radio :label="1">是</Radio>
215
+            <Radio :label="0">否</Radio>
216
+          </RadioGroup>
217
+        </FormItem>
218
+      </Form>
219
+    </div>
220
+    <div class="bottom_btns">
221
+      <Button
222
+        :disabled="
223
+          (menuInfo.selected === 1 && !menuInfo.pswDetail.pwid) ||
224
+          (menuInfo.selected === 2 && !menuInfo.setDetail.dsid)
225
+        "
226
+        style="margin-right: 20px"
227
+        @click="resetDetail()"
228
+        >取消</Button
229
+      >
230
+      <Button type="primary" class="primary_btn" @click="saveDetail()"
231
+        >保存</Button
232
+      >
233
+    </div>
234
+  </div>
3 235
 </template>
4 236
 
5 237
 <script>
238
+import {
239
+  password_detail,
240
+  password_edit,
241
+  password_delete,
242
+  deviceSet_detail,
243
+  deviceSet_edit,
244
+  deviceSet_delete
245
+} from "@/api/setting";
6 246
 export default {
7 247
   data() {
8
-    return {};
248
+    return {
249
+      menuInfo: {
250
+        selected: 1,
251
+        pswDetail: {
252
+          pwid: null,
253
+          rversion: null,
254
+          trend: 1,
255
+          password: null
256
+        },
257
+        setDetail: {
258
+          dsid: null,
259
+          rversion: null,
260
+          forceBind: 1,
261
+          sdcard: 1,
262
+          simcard: 1,
263
+          dataFlow: 1,
264
+          logout: 1,
265
+          cleanup: 1,
266
+          accelerate: 1,
267
+          gesturePwd: 1,
268
+          wifiAdvanced: 1,
269
+          screenshots: 1,
270
+          clientAdmin: 1,
271
+          rotateSetting: 1,
272
+          gallery: 1,
273
+          camera: 1,
274
+          alarmClock: 1,
275
+          calendar: 1,
276
+          protectedEyes: 1,
277
+          installStore: 1,
278
+          changePwd: 1,
279
+          schoolClass: 1,
280
+          gps: 1,
281
+          privacyStatement: 1,
282
+          remindDuration: 1,
283
+          duration: 30,
284
+          otg: 1
285
+        }
286
+      }
287
+    };
9 288
   },
10
-  methods: {}
289
+  created() {
290
+    this.getPswDetail();
291
+  },
292
+  methods: {
293
+    toChangeMenu(type) {
294
+      this.menuInfo.selected = type;
295
+      if (this.menuInfo.selected === 1) {
296
+        this.getPswDetail();
297
+      } else if (this.menuInfo.selected === 2) {
298
+        this.getSetDetail();
299
+      }
300
+    },
301
+    resetDetail() {
302
+      console.warn("------schoolid-------");
303
+      if (this.menuInfo.selected === 1) {
304
+        if (!this.menuInfo.pswDetail.pwid) {
305
+          return;
306
+        }
307
+        password_delete({
308
+          pwid: this.menuInfo.pswDetail.pwid,
309
+          rversion: this.menuInfo.pswDetail.rversion
310
+        }).then((data) => {
311
+          if (data.code === 0) {
312
+            this.getPswDetail();
313
+            this.$Message.success(data.msg);
314
+          } else {
315
+            this.$Message.error(data.msg);
316
+          }
317
+        });
318
+      } else if (this.menuInfo.selected === 2) {
319
+        if (!this.menuInfo.setDetail.dsid) {
320
+          return;
321
+        }
322
+        deviceSet_delete({
323
+          dsid: this.menuInfo.setDetail.dsid,
324
+          rversion: this.menuInfo.setDetail.rversion
325
+        }).then((data) => {
326
+          if (data.code === 0) {
327
+            this.getSetDetail();
328
+            this.$Message.success(data.msg);
329
+          } else {
330
+            this.$Message.error(data.msg);
331
+          }
332
+        });
333
+      }
334
+    },
335
+    getPswDetail() {
336
+      console.warn("------schoolid-------");
337
+      password_detail({
338
+        schoolid: 4
339
+      }).then((data) => {
340
+        if (data.code === 0) {
341
+          if (data.obj) {
342
+            this.menuInfo.pswDetail = data.obj;
343
+          } else {
344
+            this.menuInfo.pswDetail = {
345
+              pwid: null,
346
+              rversion: null,
347
+              trend: 1,
348
+              password: null
349
+            };
350
+          }
351
+        } else {
352
+          this.$Message.error(data.msg);
353
+        }
354
+      });
355
+    },
356
+    getSetDetail() {
357
+      console.warn("------schoolid-------");
358
+      deviceSet_detail({
359
+        schoolid: 4
360
+      }).then((data) => {
361
+        if (data.code === 0) {
362
+          if (data.obj) {
363
+            this.menuInfo.setDetail = data.obj;
364
+          } else {
365
+            this.menuInfo.setDetail = {
366
+              dsid: null,
367
+              rversion: null,
368
+              forceBind: 1,
369
+              sdcard: 1,
370
+              simcard: 1,
371
+              dataFlow: 1,
372
+              logout: 1,
373
+              cleanup: 1,
374
+              accelerate: 1,
375
+              gesturePwd: 1,
376
+              wifiAdvanced: 1,
377
+              screenshots: 1,
378
+              clientAdmin: 1,
379
+              rotateSetting: 1,
380
+              gallery: 1,
381
+              camera: 1,
382
+              alarmClock: 1,
383
+              calendar: 1,
384
+              protectedEyes: 1,
385
+              installStore: 1,
386
+              changePwd: 1,
387
+              schoolClass: 1,
388
+              gps: 1,
389
+              privacyStatement: 1,
390
+              remindDuration: 1,
391
+              duration: 30,
392
+              otg: 1
393
+            };
394
+          }
395
+        } else {
396
+          this.$Message.error(data.msg);
397
+        }
398
+      });
399
+    },
400
+    saveDetail() {
401
+      if (this.menuInfo.selected === 1) {
402
+        this.savePswDetail();
403
+      } else if (this.menuInfo.selected === 2) {
404
+        this.saveSetDetail();
405
+      }
406
+    },
407
+    savePswDetail() {
408
+      console.warn("------schoolid-------");
409
+      password_edit({
410
+        schoolid: 4,
411
+        trend: this.menuInfo.pswDetail.trend,
412
+        password: this.menuInfo.pswDetail.password,
413
+        pwid: this.menuInfo.pswDetail.pwid,
414
+        rversion: this.menuInfo.pswDetail.rversion
415
+      }).then((data) => {
416
+        if (data.code === 0) {
417
+          this.$Message.success(data.msg);
418
+          this.getPswDetail();
419
+        } else {
420
+          this.$Message.error(data.msg);
421
+        }
422
+      });
423
+    },
424
+    saveSetDetail() {
425
+      console.warn("------schoolid-------");
426
+      deviceSet_edit({
427
+        schoolid: 4,
428
+        dsid: this.menuInfo.setDetail.dsid,
429
+        rversion: this.menuInfo.setDetail.rversion,
430
+        forceBind: this.menuInfo.setDetail.forceBind,
431
+        sdcard: this.menuInfo.setDetail.sdcard,
432
+        simcard: this.menuInfo.setDetail.simcard,
433
+        dataFlow: this.menuInfo.setDetail.dataFlow,
434
+        logout: this.menuInfo.setDetail.logout,
435
+        cleanup: this.menuInfo.setDetail.cleanup,
436
+        accelerate: this.menuInfo.setDetail.accelerate,
437
+        gesturePwd: this.menuInfo.setDetail.gesturePwd,
438
+        wifiAdvanced: this.menuInfo.setDetail.wifiAdvanced,
439
+        screenshots: this.menuInfo.setDetail.screenshots,
440
+        clientAdmin: this.menuInfo.setDetail.clientAdmin,
441
+        rotateSetting: this.menuInfo.setDetail.rotateSetting,
442
+        gallery: this.menuInfo.setDetail.gallery,
443
+        camera: this.menuInfo.setDetail.camera,
444
+        alarmClock: this.menuInfo.setDetail.alarmClock,
445
+        calendar: this.menuInfo.setDetail.calendar,
446
+        protectedEyes: this.menuInfo.setDetail.protectedEyes,
447
+        installStore: this.menuInfo.setDetail.installStore,
448
+        changePwd: this.menuInfo.setDetail.changePwd,
449
+        schoolClass: this.menuInfo.setDetail.schoolClass,
450
+        gps: this.menuInfo.setDetail.gps,
451
+        privacyStatement: this.menuInfo.setDetail.privacyStatement,
452
+        remindDuration: this.menuInfo.setDetail.remindDuration,
453
+        duration: this.menuInfo.setDetail.duration,
454
+        otg: this.menuInfo.setDetail.otg
455
+      }).then((data) => {
456
+        if (data.code === 0) {
457
+          this.$Message.success(data.msg);
458
+          this.getSetDetail();
459
+        } else {
460
+          this.$Message.error(data.msg);
461
+        }
462
+      });
463
+    }
464
+  }
11 465
 };
12 466
 </script>
13 467
 
14
-<style lang="less" scoped></style>
468
+<style lang="less" scoped>
469
+.menu_list {
470
+  display: flex;
471
+  justify-content: flex-start;
472
+  align-items: center;
473
+  margin: 20px 100px;
474
+  color: #7c8db5;
475
+  .menu_item {
476
+    margin-right: 20px;
477
+    padding: 0 4px;
478
+    font-size: 16px;
479
+    line-height: 1.6;
480
+    border-bottom: 2px solid transparent;
481
+    cursor: pointer;
482
+    &.selected {
483
+      color: #339cff;
484
+      border-color: #339cff;
485
+    }
486
+  }
487
+}
488
+.tip_bg {
489
+  margin: 0 100px;
490
+  border-radius: 8px;
491
+  border: 1px dashed #ced9f2;
492
+  background: #f1f6fc;
493
+  .require {
494
+    margin: 10px 20px;
495
+    font-size: 16px;
496
+    line-height: 1.6;
497
+    &::before {
498
+      content: "*" !important;
499
+      display: inline-block;
500
+      margin-right: 4px;
501
+      line-height: 1;
502
+      font-family: SimSun;
503
+      font-size: 14px;
504
+      color: #ed4014;
505
+    }
506
+  }
507
+}
508
+.form_box {
509
+  display: flex;
510
+  justify-content: center;
511
+  align-items: flex-start;
512
+  margin: 20px 100px;
513
+  /deep/.ivu-form {
514
+    width: 35%;
515
+    .ivu-form-item {
516
+      margin-bottom: 10px;
517
+    }
518
+  }
519
+}
520
+.bottom_btns {
521
+  display: flex;
522
+  justify-content: center;
523
+  align-items: center;
524
+  margin: 20px 0;
525
+}
526
+</style>

Loading…
Cancel
Save