Browse Source

应用管理

gzb
guozhongbo 8 months ago
parent
commit
9c9dec8191

+ 118
- 3
public/iconfont/demo_index.html View File

@@ -54,6 +54,36 @@
54 54
       <div class="content unicode" style="display: block;">
55 55
           <ul class="icon_lists dib-box">
56 56
           
57
+            <li class="dib">
58
+              <span class="icon iconfont">&#xeb2a;</span>
59
+                <div class="name">时间</div>
60
+                <div class="code-name">&amp;#xeb2a;</div>
61
+              </li>
62
+          
63
+            <li class="dib">
64
+              <span class="icon iconfont">&#xe669;</span>
65
+                <div class="name">设置</div>
66
+                <div class="code-name">&amp;#xe669;</div>
67
+              </li>
68
+          
69
+            <li class="dib">
70
+              <span class="icon iconfont">&#xe74e;</span>
71
+                <div class="name">违规管理</div>
72
+                <div class="code-name">&amp;#xe74e;</div>
73
+              </li>
74
+          
75
+            <li class="dib">
76
+              <span class="icon iconfont">&#xe601;</span>
77
+                <div class="name">wifi</div>
78
+                <div class="code-name">&amp;#xe601;</div>
79
+              </li>
80
+          
81
+            <li class="dib">
82
+              <span class="icon iconfont">&#xe67e;</span>
83
+                <div class="name">应用策略</div>
84
+                <div class="code-name">&amp;#xe67e;</div>
85
+              </li>
86
+          
57 87
             <li class="dib">
58 88
               <span class="icon iconfont">&#xe703;</span>
59 89
                 <div class="name">关注-已关注</div>
@@ -204,9 +234,9 @@
204 234
 <pre><code class="language-css"
205 235
 >@font-face {
206 236
   font-family: 'iconfont';
207
-  src: url('iconfont.woff2?t=1712026774551') format('woff2'),
208
-       url('iconfont.woff?t=1712026774551') format('woff'),
209
-       url('iconfont.ttf?t=1712026774551') format('truetype');
237
+  src: url('iconfont.woff2?t=1712125751952') format('woff2'),
238
+       url('iconfont.woff?t=1712125751952') format('woff'),
239
+       url('iconfont.ttf?t=1712125751952') format('truetype');
210 240
 }
211 241
 </code></pre>
212 242
           <h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
@@ -232,6 +262,51 @@
232 262
       <div class="content font-class">
233 263
         <ul class="icon_lists dib-box">
234 264
           
265
+          <li class="dib">
266
+            <span class="icon iconfont icon-shijian"></span>
267
+            <div class="name">
268
+              时间
269
+            </div>
270
+            <div class="code-name">.icon-shijian
271
+            </div>
272
+          </li>
273
+          
274
+          <li class="dib">
275
+            <span class="icon iconfont icon-shezhi"></span>
276
+            <div class="name">
277
+              设置
278
+            </div>
279
+            <div class="code-name">.icon-shezhi
280
+            </div>
281
+          </li>
282
+          
283
+          <li class="dib">
284
+            <span class="icon iconfont icon-weiguiguanli"></span>
285
+            <div class="name">
286
+              违规管理
287
+            </div>
288
+            <div class="code-name">.icon-weiguiguanli
289
+            </div>
290
+          </li>
291
+          
292
+          <li class="dib">
293
+            <span class="icon iconfont icon-wifi"></span>
294
+            <div class="name">
295
+              wifi
296
+            </div>
297
+            <div class="code-name">.icon-wifi
298
+            </div>
299
+          </li>
300
+          
301
+          <li class="dib">
302
+            <span class="icon iconfont icon-yingyongcelve"></span>
303
+            <div class="name">
304
+              应用策略
305
+            </div>
306
+            <div class="code-name">.icon-yingyongcelve
307
+            </div>
308
+          </li>
309
+          
235 310
           <li class="dib">
236 311
             <span class="icon iconfont icon-guanzhu-yiguanzhu"></span>
237 312
             <div class="name">
@@ -457,6 +532,46 @@
457 532
       <div class="content symbol">
458 533
           <ul class="icon_lists dib-box">
459 534
           
535
+            <li class="dib">
536
+                <svg class="icon svg-icon" aria-hidden="true">
537
+                  <use xlink:href="#icon-shijian"></use>
538
+                </svg>
539
+                <div class="name">时间</div>
540
+                <div class="code-name">#icon-shijian</div>
541
+            </li>
542
+          
543
+            <li class="dib">
544
+                <svg class="icon svg-icon" aria-hidden="true">
545
+                  <use xlink:href="#icon-shezhi"></use>
546
+                </svg>
547
+                <div class="name">设置</div>
548
+                <div class="code-name">#icon-shezhi</div>
549
+            </li>
550
+          
551
+            <li class="dib">
552
+                <svg class="icon svg-icon" aria-hidden="true">
553
+                  <use xlink:href="#icon-weiguiguanli"></use>
554
+                </svg>
555
+                <div class="name">违规管理</div>
556
+                <div class="code-name">#icon-weiguiguanli</div>
557
+            </li>
558
+          
559
+            <li class="dib">
560
+                <svg class="icon svg-icon" aria-hidden="true">
561
+                  <use xlink:href="#icon-wifi"></use>
562
+                </svg>
563
+                <div class="name">wifi</div>
564
+                <div class="code-name">#icon-wifi</div>
565
+            </li>
566
+          
567
+            <li class="dib">
568
+                <svg class="icon svg-icon" aria-hidden="true">
569
+                  <use xlink:href="#icon-yingyongcelve"></use>
570
+                </svg>
571
+                <div class="name">应用策略</div>
572
+                <div class="code-name">#icon-yingyongcelve</div>
573
+            </li>
574
+          
460 575
             <li class="dib">
461 576
                 <svg class="icon svg-icon" aria-hidden="true">
462 577
                   <use xlink:href="#icon-guanzhu-yiguanzhu"></use>

+ 23
- 3
public/iconfont/iconfont.css View File

@@ -1,8 +1,8 @@
1 1
 @font-face {
2 2
   font-family: "iconfont"; /* Project id 4468064 */
3
-  src: url('iconfont.woff2?t=1712026774551') format('woff2'),
4
-       url('iconfont.woff?t=1712026774551') format('woff'),
5
-       url('iconfont.ttf?t=1712026774551') format('truetype');
3
+  src: url('iconfont.woff2?t=1712125751952') format('woff2'),
4
+       url('iconfont.woff?t=1712125751952') format('woff'),
5
+       url('iconfont.ttf?t=1712125751952') format('truetype');
6 6
 }
7 7
 
8 8
 .iconfont {
@@ -13,6 +13,26 @@
13 13
   -moz-osx-font-smoothing: grayscale;
14 14
 }
15 15
 
16
+.icon-shijian:before {
17
+  content: "\eb2a";
18
+}
19
+
20
+.icon-shezhi:before {
21
+  content: "\e669";
22
+}
23
+
24
+.icon-weiguiguanli:before {
25
+  content: "\e74e";
26
+}
27
+
28
+.icon-wifi:before {
29
+  content: "\e601";
30
+}
31
+
32
+.icon-yingyongcelve:before {
33
+  content: "\e67e";
34
+}
35
+
16 36
 .icon-guanzhu-yiguanzhu:before {
17 37
   content: "\e703";
18 38
 }

+ 1
- 1
public/iconfont/iconfont.js
File diff suppressed because it is too large
View File


+ 35
- 0
public/iconfont/iconfont.json View File

@@ -5,6 +5,41 @@
5 5
   "css_prefix_text": "icon-",
6 6
   "description": "",
7 7
   "glyphs": [
8
+    {
9
+      "icon_id": "5387666",
10
+      "name": "时间",
11
+      "font_class": "shijian",
12
+      "unicode": "eb2a",
13
+      "unicode_decimal": 60202
14
+    },
15
+    {
16
+      "icon_id": "10984138",
17
+      "name": "设置",
18
+      "font_class": "shezhi",
19
+      "unicode": "e669",
20
+      "unicode_decimal": 58985
21
+    },
22
+    {
23
+      "icon_id": "25595644",
24
+      "name": "违规管理",
25
+      "font_class": "weiguiguanli",
26
+      "unicode": "e74e",
27
+      "unicode_decimal": 59214
28
+    },
29
+    {
30
+      "icon_id": "36916199",
31
+      "name": "wifi",
32
+      "font_class": "wifi",
33
+      "unicode": "e601",
34
+      "unicode_decimal": 58881
35
+    },
36
+    {
37
+      "icon_id": "37574735",
38
+      "name": "应用策略",
39
+      "font_class": "yingyongcelve",
40
+      "unicode": "e67e",
41
+      "unicode_decimal": 59006
42
+    },
8 43
     {
9 44
       "icon_id": "9974412",
10 45
       "name": "关注-已关注",

BIN
public/iconfont/iconfont.ttf View File


BIN
public/iconfont/iconfont.woff View File


BIN
public/iconfont/iconfont.woff2 View File


+ 58
- 63
src/views/regionSection/applicationManage/applicationGroup.vue View File

@@ -110,18 +110,27 @@
110 110
     </Modal>
111 111
     <!-- 查看 -->
112 112
     <Modal
113
-      class="modal1"
113
+      class="modal1 view"
114 114
       :mask-closable="false"
115 115
       v-model="viewInfo.show"
116 116
       title="查看"
117 117
     >
118
-      <div class="view_title">河南星火燎原软件科技有限公司</div>
119
-      <Table
120
-        style="border: 1px solid #e8eaec; border-bottom: none"
121
-        :columns="viewInfo.columns"
122
-        :data="viewInfo.list"
123
-      >
124
-      </Table>
118
+      <div class="view_title">{{ viewInfo.appgroupName }}</div>
119
+      <div class="view_content">
120
+        <div class="view_title">图标</div>
121
+        <div class="app_img">
122
+          <img
123
+            v-if="viewInfo.iconPath"
124
+            :src="$api.showImageUrl + viewInfo.iconPath"
125
+          />
126
+        </div>
127
+      </div>
128
+      <div class="view_content" style="margin-top: 20px">
129
+        <div class="view_title">描述</div>
130
+        <div class="view_comm">
131
+          {{ viewInfo.comm }}
132
+        </div>
133
+      </div>
125 134
       <div slot="footer" style="text-align: center">
126 135
         <Button @click="viewInfo.show = false">关闭</Button>
127 136
       </div>
@@ -166,31 +175,9 @@ export default {
166 175
       // 查看
167 176
       viewInfo: {
168 177
         show: false,
169
-        areaname: "",
170
-        list: [],
171
-        columns: [
172
-          {
173
-            title: "序号",
174
-            type: "index",
175
-            width: 70,
176
-            align: "center"
177
-          },
178
-          {
179
-            title: "名称",
180
-            key: "admin",
181
-            align: "center"
182
-          },
183
-          {
184
-            title: "账号",
185
-            key: "loginname",
186
-            align: "center"
187
-          },
188
-          {
189
-            title: "手机号码",
190
-            key: "phone",
191
-            align: "center"
192
-          }
193
-        ]
178
+        appgroupName: "",
179
+        iconPath: "",
180
+        comm: ""
194 181
       },
195 182
       rules: {
196 183
         appgroupName: [
@@ -384,21 +371,13 @@ export default {
384 371
       });
385 372
     },
386 373
     // 查看
387
-    toView() {
388
-      this.viewInfo.show = true;
389
-      this.viewInfo.areaname = "河南星火燎原软件科技有限公司";
390
-      this.viewInfo.list = [
391
-        {
392
-          admin: "周文彦",
393
-          loginname: "zhouwenyan@xhkjedu.com",
394
-          phone: "15610230213"
395
-        },
396
-        {
397
-          admin: "齐思宇",
398
-          loginname: "zhouwenyan@xhkjedu.com",
399
-          phone: "15610230213"
400
-        }
401
-      ];
374
+    toView(row) {
375
+      this.viewInfo = {
376
+        show: true,
377
+        appgroupName: row.appgroupName,
378
+        iconPath: row.iconPath,
379
+        comm: row.comm
380
+      };
402 381
     },
403 382
     // 编辑
404 383
     toEdit(row) {
@@ -490,21 +469,6 @@ export default {
490 469
       color: #7c8db5;
491 470
     }
492 471
   }
493
-  .app_img {
494
-    margin-top: 10px;
495
-    width: 90px;
496
-    height: 90px;
497
-    border-radius: 20px;
498
-    opacity: 1;
499
-    border: 1px solid #e5e5e5;
500
-    background: #ffffff;
501
-    overflow: hidden;
502
-    img {
503
-      width: 100%;
504
-      height: 100%;
505
-      object-fit: cover;
506
-    }
507
-  }
508 472
 }
509 473
 .table_wrap {
510 474
   .iconPath {
@@ -522,4 +486,35 @@ export default {
522 486
     }
523 487
   }
524 488
 }
489
+.app_img {
490
+  margin-top: 10px;
491
+  width: 90px;
492
+  height: 90px;
493
+  border-radius: 20px;
494
+  opacity: 1;
495
+  border: 1px solid #e5e5e5;
496
+  background: #ffffff;
497
+  overflow: hidden;
498
+  img {
499
+    width: 100%;
500
+    height: 100%;
501
+    object-fit: cover;
502
+  }
503
+}
504
+.view {
505
+  .view_content {
506
+    display: flex;
507
+    line-height: 30px;
508
+    .view_title {
509
+      width: 70px;
510
+      font-weight: 500;
511
+      font-size: 16px;
512
+      flex: none;
513
+      margin: 0 10px;
514
+    }
515
+    .view_comm {
516
+      line-height: 30px;
517
+    }
518
+  }
519
+}
525 520
 </style>

+ 20
- 18
src/views/regionSection/applicationManage/applicationManage.vue View File

@@ -5,10 +5,12 @@
5 5
         <Select
6 6
           :transfer="true"
7 7
           v-model="searchForm.appgroupid"
8
+          @on-change="searchList()"
8 9
           style="width: 120px; margin: 0 10px"
9 10
           placeholder="请选择分组"
10 11
         >
11 12
           <template v-if="group_list.length > 0">
13
+            <Option :value="0">所有分组</Option>
12 14
             <Option
13 15
               v-for="item in group_list"
14 16
               :value="item.appgroupid"
@@ -46,10 +48,10 @@
46 48
         <template slot-scope="{ row }" slot="appType">
47 49
           <div>{{ row.appType === 1 ? "推荐应用" : "必装应用" }}</div>
48 50
         </template>
49
-        <template slot-scope="{ row }" slot="enable">
51
+        <template slot-scope="{ row }" slot="enabled">
50 52
           <i-switch
51 53
             size="large"
52
-            v-model="row.enable"
54
+            v-model="row.enabled"
53 55
             :true-value="1"
54 56
             :false-value="2"
55 57
             @on-change="enabledChange(row)"
@@ -168,7 +170,7 @@
168 170
             </Select>
169 171
           </FormItem>
170 172
           <FormItem label="状态" style="width: 300px">
171
-            <RadioGroup v-model="wallpaperInfo.enable">
173
+            <RadioGroup v-model="wallpaperInfo.enabled">
172 174
               <Radio :label="1">启用</Radio>
173 175
               <Radio :label="2">禁用</Radio>
174 176
             </RadioGroup>
@@ -524,7 +526,7 @@
524 526
           <div class="view_comm">
525 527
             <div class="view_titles">
526 528
               {{ viewInfo.appName
527
-              }}<span v-if="viewInfo.enable === 1" class="qy">启用</span>
529
+              }}<span v-if="viewInfo.enabled === 1" class="qy">启用</span>
528 530
             </div>
529 531
             <div class="view_item">
530 532
               <span>版本号码</span>{{ viewInfo.versionNum }}
@@ -692,6 +694,7 @@ export default {
692 694
       showLoading: false,
693 695
       searchForm: {
694 696
         appName: "",
697
+        appgroupid: 0,
695 698
         page: 1,
696 699
         size: 10,
697 700
         list: [],
@@ -703,7 +706,7 @@ export default {
703 706
         appid: null,
704 707
         appName: "",
705 708
         appgroupid: "",
706
-        enable: 1,
709
+        enabled: 1,
707 710
         appType: 1,
708 711
         forced: 1,
709 712
         whited: 1,
@@ -730,7 +733,7 @@ export default {
730 733
         show: false,
731 734
         appName: "",
732 735
         appgroupName: "",
733
-        enable: 1,
736
+        enabled: 1,
734 737
         appType: 1,
735 738
         forced: 1,
736 739
         whited: 1,
@@ -834,7 +837,7 @@ export default {
834 837
         },
835 838
         {
836 839
           title: "状态",
837
-          slot: "enable",
840
+          slot: "enabled",
838 841
           width: 100,
839 842
           align: "center"
840 843
         },
@@ -906,7 +909,7 @@ export default {
906 909
             show: true,
907 910
             appName: res.obj.appName,
908 911
             appgroupName: row.appgroupName,
909
-            enable: res.obj.enable,
912
+            enabled: res.obj.enabled,
910 913
             appType: res.obj.appType,
911 914
             forced: res.obj.forced,
912 915
             whited: res.obj.whited,
@@ -954,7 +957,7 @@ export default {
954 957
       });
955 958
     },
956 959
     enabledChange(row) {
957
-      let api = row.enable === 1 ? app_edit_enable : app_edit_unenable;
960
+      let api = row.enabled === 1 ? app_edit_enable : app_edit_unenable;
958 961
       api({
959 962
         rtype: this.powerParams.rtype,
960 963
         objectid: this.powerParams.objectid,
@@ -1127,6 +1130,7 @@ export default {
1127 1130
       }).then((res) => {
1128 1131
         if (res.code === 0) {
1129 1132
           this.group_list = res.obj.data;
1133
+          console.log(this.group_list);
1130 1134
         } else {
1131 1135
           this.$Message.error(res.msg);
1132 1136
         }
@@ -1253,6 +1257,7 @@ export default {
1253 1257
       app_list({
1254 1258
         rtype: this.powerParams.rtype,
1255 1259
         objectid: this.powerParams.objectid,
1260
+        appgroupid: this.searchForm.appgroupid,
1256 1261
         page: this.searchForm.page,
1257 1262
         size: this.searchForm.size,
1258 1263
         appName: this.searchForm.appName
@@ -1272,13 +1277,12 @@ export default {
1272 1277
     },
1273 1278
     // 新建
1274 1279
     toAdd() {
1275
-      this.$refs.addForm.resetFields();
1276 1280
       this.wallpaperInfo = {
1277 1281
         show: true,
1278 1282
         appid: null,
1279 1283
         appName: "",
1280 1284
         appgroupid: "",
1281
-        enable: 1,
1285
+        enabled: 1,
1282 1286
         appType: 1,
1283 1287
         forced: 1,
1284 1288
         whited: 1,
@@ -1301,10 +1305,12 @@ export default {
1301 1305
         schoolids: []
1302 1306
       };
1303 1307
       this.school_list = JSON.parse(JSON.stringify(this.curRegion));
1308
+      this.$nextTick(() => {
1309
+        this.$refs.addForm.resetFields();
1310
+      });
1304 1311
     },
1305 1312
     // 保存新建
1306 1313
     saveAddInfo() {
1307
-      console.log(this.wallpaperInfo);
1308 1314
       this.$refs.addForm.validate((valid) => {
1309 1315
         if (valid) {
1310 1316
           if (!this.wallpaperInfo.appgroupid) {
@@ -1352,7 +1358,7 @@ export default {
1352 1358
             rtype: this.powerParams.rtype,
1353 1359
             objectid: this.powerParams.objectid,
1354 1360
             appName: this.wallpaperInfo.appName,
1355
-            enable: this.wallpaperInfo.enable,
1361
+            enabled: this.wallpaperInfo.enabled,
1356 1362
             appType: this.wallpaperInfo.appType,
1357 1363
             forced: this.wallpaperInfo.forced,
1358 1364
             whited: this.wallpaperInfo.whited,
@@ -1430,7 +1436,7 @@ export default {
1430 1436
             rversion: res.obj.rversion,
1431 1437
             appName: res.obj.appName,
1432 1438
             appgroupid: res.obj.appgroupid,
1433
-            enable: res.obj.enable,
1439
+            enabled: res.obj.enabled,
1434 1440
             appType: res.obj.appType,
1435 1441
             forced: res.obj.forced,
1436 1442
             whited: res.obj.whited,
@@ -1485,12 +1491,8 @@ export default {
1485 1491
                 v.title = v.schoolName;
1486 1492
                 return v;
1487 1493
               });
1488
-
1489
-              console.log(this.select_schools);
1490 1494
             }
1491 1495
           });
1492
-
1493
-          console.log(res.obj);
1494 1496
           console.log(this.wallpaperInfo);
1495 1497
         } else {
1496 1498
           this.$Message.error(res.msg);

+ 18
- 2
src/views/regionSection/regionManage/adminManage.vue View File

@@ -38,6 +38,15 @@
38 38
     </div>
39 39
     <div class="table_wrap">
40 40
       <Table :columns="columns" :data="searchForm.list">
41
+        <template slot-scope="{ row }" slot="atype">
42
+          {{
43
+            row.atype === 1
44
+              ? "平台管理员"
45
+              : row.atype === 2
46
+              ? "区域管理员"
47
+              : "学校管理员"
48
+          }}
49
+        </template>
41 50
         <template slot-scope="{ row }" slot="enabledSlot">
42 51
           <i-switch
43 52
             size="large"
@@ -386,6 +395,11 @@ export default {
386 395
           width: 80,
387 396
           align: "center"
388 397
         },
398
+        {
399
+          title: "类型",
400
+          slot: "atype",
401
+          align: "center"
402
+        },
389 403
         {
390 404
           title: "区域名称",
391 405
           key: "regionName",
@@ -431,7 +445,8 @@ export default {
431 445
       region_list_sel_qy({
432 446
         rtype: this.powerParams.rtype,
433 447
         objectid: this.powerParams.objectid,
434
-        regionid: this.powerParams.objectid }).then((data) => {
448
+        regionid: this.powerParams.objectid
449
+      }).then((data) => {
435 450
         if (data.code === 0) {
436 451
           this.searchForm.dropList = data.obj;
437 452
         } else {
@@ -605,7 +620,8 @@ export default {
605 620
       admin_detail({
606 621
         rtype: this.powerParams.rtype,
607 622
         objectid: this.powerParams.objectid,
608
-        adminid: row.adminid }).then((res) => {
623
+        adminid: row.adminid
624
+      }).then((res) => {
609 625
         if (res.code === 0) {
610 626
           this.adminInfo = {
611 627
             show: true,

+ 9
- 6
src/views/regionSection/regionManage/schoolManage.vue View File

@@ -567,9 +567,11 @@ export default {
567 567
     },
568 568
     // 获取搜索区域列表
569 569
     getSearchRegionList() {
570
-      region_list_sel_qy({  rtype: this.powerParams.rtype,
570
+      region_list_sel_qy({
571
+        rtype: this.powerParams.rtype,
571 572
         objectid: this.powerParams.objectid,
572
-        regionid: this.powerParams.objectid }).then((data) => {
573
+        regionid: this.powerParams.objectid
574
+      }).then((data) => {
573 575
         if (data.code === 0) {
574 576
           this.searchForm.dropList = data.obj;
575 577
         } else {
@@ -598,7 +600,7 @@ export default {
598 600
       school_list({
599 601
         rtype: this.powerParams.rtype,
600 602
         objectid: this.powerParams.objectid,
601
-        regionid: this.powerParams.objectid,
603
+        regionid: this.searchForm.regionid,
602 604
         page: this.searchForm.page,
603 605
         size: this.searchForm.size,
604 606
         areaCode: this.searchForm.areaCodes,
@@ -762,18 +764,19 @@ export default {
762 764
       school_detail({
763 765
         rtype: this.powerParams.rtype,
764 766
         objectid: this.powerParams.objectid,
765
-        schoolid: row.schoolid }).then((res) => {
767
+        schoolid: row.schoolid
768
+      }).then((res) => {
766 769
         if (res.code === 0) {
767 770
           let str = res.obj.areaCode;
768 771
           let obj1 = { areaCode: "" },
769 772
             obj2 = { areaCode: "" };
770 773
           if (str) {
771 774
             //获取省市区
772
-            let obj1 = this.areaList.filter((v) =>
775
+            obj1 = this.areaList.filter((v) =>
773 776
               v.areaCode.includes(str.substring(0, 2))
774 777
             )[0];
775 778
             this.marketList = obj1.childList;
776
-            let obj2 = obj1.childList.filter((v) =>
779
+            obj2 = obj1.childList.filter((v) =>
777 780
               v.areaCode.includes(str.substring(0, 4))
778 781
             )[0];
779 782
             this.regionList = obj2.childList;

+ 20
- 15
src/views/schoolSection/applicationManage/applicationList.vue View File

@@ -5,10 +5,12 @@
5 5
         <Select
6 6
           :transfer="true"
7 7
           v-model="searchForm.appgroupid"
8
+          @on-change="searchList()"
8 9
           style="width: 120px"
9 10
           placeholder="请选择分组"
10 11
         >
11 12
           <template v-if="group_list.length > 0">
13
+            <Option :value="0">所有分组</Option>
12 14
             <Option
13 15
               v-for="item in group_list"
14 16
               :value="item.appgroupid"
@@ -21,6 +23,7 @@
21 23
           :transfer="true"
22 24
           v-model="searchForm.appType"
23 25
           style="width: 120px; margin: 0 10px"
26
+          @on-change="searchList()"
24 27
           placeholder="请选择类型"
25 28
         >
26 29
           <template v-if="appType_list.length > 0">
@@ -61,10 +64,10 @@
61 64
         <template slot-scope="{ row }" slot="appType">
62 65
           <div>{{ row.appType === 1 ? "推荐应用" : "必装应用" }}</div>
63 66
         </template>
64
-        <template slot-scope="{ row }" slot="enable">
67
+        <template slot-scope="{ row }" slot="enabled">
65 68
           <i-switch
66 69
             size="large"
67
-            v-model="row.enable"
70
+            v-model="row.enabled"
68 71
             :true-value="1"
69 72
             :false-value="2"
70 73
             @on-change="enabledChange(row)"
@@ -184,7 +187,7 @@
184 187
             </Select>
185 188
           </FormItem>
186 189
           <FormItem label="状态" style="width: 300px">
187
-            <RadioGroup v-model="wallpaperInfo.enable">
190
+            <RadioGroup v-model="wallpaperInfo.enabled">
188 191
               <Radio :label="1">启用</Radio>
189 192
               <Radio :label="2">禁用</Radio>
190 193
             </RadioGroup>
@@ -493,7 +496,7 @@
493 496
           <div class="view_comm">
494 497
             <div class="view_titles">
495 498
               {{ viewInfo.appName
496
-              }}<span v-if="viewInfo.enable === 1" class="qy">启用</span>
499
+              }}<span v-if="viewInfo.enabled === 1" class="qy">启用</span>
497 500
             </div>
498 501
             <div class="view_item">
499 502
               <span>版本号码</span>{{ viewInfo.versionNum }}
@@ -551,8 +554,8 @@
551 554
             <div class="view_t">应用截图</div>
552 555
             <div class="view_img">
553 556
               <img
554
-                v-for="img in viewInfo.appImg"
555
-                :key="img"
557
+                v-for="(img, idx) in viewInfo.appImg"
558
+                :key="idx"
556 559
                 :src="$api.showImageUrl + img"
557 560
               />
558 561
             </div>
@@ -655,6 +658,7 @@ export default {
655 658
       ],
656 659
       searchForm: {
657 660
         appName: "",
661
+        appgroupid: 0,
658 662
         appType: 0,
659 663
         page: 1,
660 664
         size: 10,
@@ -666,8 +670,8 @@ export default {
666 670
         show: false,
667 671
         appid: null,
668 672
         appName: "",
669
-        appgroupid: "",
670
-        enable: 1,
673
+        appgroupid: 0,
674
+        enabled: 1,
671 675
         appType: 1,
672 676
         forced: 1,
673 677
         whited: 1,
@@ -694,7 +698,7 @@ export default {
694 698
         show: false,
695 699
         appName: "",
696 700
         appgroupName: "",
697
-        enable: 1,
701
+        enabled: 1,
698 702
         appType: 1,
699 703
         forced: 1,
700 704
         whited: 1,
@@ -798,7 +802,7 @@ export default {
798 802
         },
799 803
         {
800 804
           title: "状态",
801
-          slot: "enable",
805
+          slot: "enabled",
802 806
           width: 100,
803 807
           align: "center"
804 808
         },
@@ -870,7 +874,7 @@ export default {
870 874
             show: true,
871 875
             appName: res.obj.appName,
872 876
             appgroupName: row.appgroupName,
873
-            enable: res.obj.enable,
877
+            enabled: res.obj.enabled,
874 878
             appType: res.obj.appType,
875 879
             forced: res.obj.forced,
876 880
             whited: res.obj.whited,
@@ -918,7 +922,7 @@ export default {
918 922
       });
919 923
     },
920 924
     enabledChange(row) {
921
-      let api = row.enable === 1 ? app_edit_enable : app_edit_unenable;
925
+      let api = row.enabled === 1 ? app_edit_enable : app_edit_unenable;
922 926
       api({
923 927
         rtype: this.powerParams.rtype,
924 928
         objectid: this.powerParams.objectid,
@@ -1160,6 +1164,7 @@ export default {
1160 1164
       app_list({
1161 1165
         rtype: this.powerParams.rtype,
1162 1166
         objectid: this.powerParams.objectid,
1167
+        appgroupid: this.searchForm.appgroupid,
1163 1168
         page: this.searchForm.page,
1164 1169
         size: this.searchForm.size,
1165 1170
         appName: this.searchForm.appName,
@@ -1186,7 +1191,7 @@ export default {
1186 1191
         appid: null,
1187 1192
         appName: "",
1188 1193
         appgroupid: "",
1189
-        enable: 1,
1194
+        enabled: 1,
1190 1195
         appType: 1,
1191 1196
         forced: 1,
1192 1197
         whited: 1,
@@ -1247,7 +1252,7 @@ export default {
1247 1252
             rtype: this.powerParams.rtype,
1248 1253
             objectid: this.powerParams.objectid,
1249 1254
             appName: this.wallpaperInfo.appName,
1250
-            enable: this.wallpaperInfo.enable,
1255
+            enabled: this.wallpaperInfo.enabled,
1251 1256
             appType: this.wallpaperInfo.appType,
1252 1257
             forced: this.wallpaperInfo.forced,
1253 1258
             whited: this.wallpaperInfo.whited,
@@ -1304,7 +1309,7 @@ export default {
1304 1309
             rversion: res.obj.rversion,
1305 1310
             appName: res.obj.appName,
1306 1311
             appgroupid: res.obj.appgroupid,
1307
-            enable: res.obj.enable,
1312
+            enabled: res.obj.enabled,
1308 1313
             appType: res.obj.appType,
1309 1314
             forced: res.obj.forced,
1310 1315
             whited: res.obj.whited,

+ 9
- 2
src/views/schoolSection/strategy/personalStrategy.vue View File

@@ -1,11 +1,18 @@
1 1
 <template>
2
-  <div class="index2">2</div>
2
+  <div class="index2">
3
+    <Spin fix v-if="showLoading" style="background-color: transparent">
4
+      <Icon type="ios-loading" size="18" class="demo-spin-icon-load"></Icon>
5
+      <div>加载中</div>
6
+    </Spin>
7
+  </div>
3 8
 </template>
4 9
 
5 10
 <script>
6 11
 export default {
7 12
   data() {
8
-    return {};
13
+    return {
14
+      showLoading: false
15
+    };
9 16
   },
10 17
   methods: {}
11 18
 };

+ 56
- 15
src/views/schoolSection/strategy/publicStrategy.vue View File

@@ -2,7 +2,7 @@
2 2
   <div class="index1">
3 3
     <div class="strategy_list">
4 4
       <div class="strategy_title">
5
-        <div><span></span>时间限制策略</div>
5
+        <div><span style="font-size: 26px" class="ivu-icon iconfont icon-shijian"></span>时间限制策略</div>
6 6
         <div>
7 7
           <span>修改</span>
8 8
           <span>重置</span>
@@ -12,9 +12,8 @@
12 12
     </div>
13 13
     <div class="strategy_list">
14 14
       <div class="strategy_title">
15
-        <div><span></span>应用策略</div>
16
-        <div>
17
-        </div>
15
+        <div><span class="ivu-icon iconfont icon-yingyongcelve"></span>应用策略</div>
16
+        <div></div>
18 17
       </div>
19 18
       <div class="strategy_content">
20 19
         <div class="strategy_top">授权应用</div>
@@ -23,34 +22,71 @@
23 22
     </div>
24 23
     <div class="strategy_list">
25 24
       <div class="strategy_title">
26
-        <div><span></span>设备策略</div>
27
-        <div>
28
-        </div>
25
+        <div><span class="ivu-icon iconfont icon-shezhi"></span>设备策略</div>
26
+        <div></div>
29 27
       </div>
30 28
     </div>
31 29
     <div class="strategy_list">
32 30
       <div class="strategy_title">
33
-        <div><span></span>Wifi白名单策略</div>
34
-        <div>
35
-        </div>
31
+        <div><span style="font-size: 18px" class="ivu-icon iconfont icon-wifi"></span>Wifi白名单策略</div>
32
+        <div></div>
36 33
       </div>
37 34
     </div>
38 35
     <div class="strategy_list">
39 36
       <div class="strategy_title">
40
-        <div><span></span>违规处理</div>
41
-        <div>
42
-        </div>
37
+        <div><span class="ivu-icon iconfont icon-weiguiguanli"></span>违规处理</div>
38
+        <div></div>
43 39
       </div>
44 40
     </div>
41
+    <Spin fix v-if="showLoading" style="background-color: transparent">
42
+      <Icon type="ios-loading" size="18" class="demo-spin-icon-load"></Icon>
43
+      <div>加载中</div>
44
+    </Spin>
45 45
   </div>
46 46
 </template>
47 47
 
48 48
 <script>
49
+import { stApp_detail_obj } from "@/api/stPad";
50
+
49 51
 export default {
52
+  props: ["curClass"],
50 53
   data() {
51
-    return {};
54
+    return {
55
+      showLoading: false
56
+    };
52 57
   },
53
-  methods: {}
58
+  watch: {
59
+    curClass: {
60
+      handler() {
61
+        this.init();
62
+      },
63
+      deep: true
64
+    }
65
+  },
66
+  computed: {
67
+    powerParams() {
68
+      return this.$store.getters.powerParams;
69
+    }
70
+  },
71
+  created() {},
72
+  methods: {
73
+    init() {
74
+      console.log(this.curClass)
75
+      this.showLoading = true;
76
+      stApp_detail_obj({
77
+        rtype: this.powerParams.rtype,
78
+        objectid: this.curClass.id,
79
+        sttype: this.curClass.type
80
+      }).then((res) => {
81
+        this.showLoading = false;
82
+        if (res.code === 0) {
83
+          console.log(res.obj);
84
+        } else {
85
+          this.$Message.error(res.msg);
86
+        }
87
+      });
88
+    }
89
+  }
54 90
 };
55 91
 </script>
56 92
 
@@ -68,6 +104,11 @@ export default {
68 104
       align-items: center;
69 105
       div:first-of-type {
70 106
         font-weight: bold;
107
+        span{
108
+          font-size: 22px;
109
+          color: #339dff;
110
+          margin-right: 4px;
111
+        }
71 112
       }
72 113
       div:last-of-type {
73 114
         span {

+ 50
- 6
src/views/schoolSection/strategy/strategyManage.vue View File

@@ -1,15 +1,31 @@
1 1
 <template>
2 2
   <div class="main_root">
3 3
     <div class="schoolInfo">
4
-      <div class="schoolname">{{ schoolInfo.name }}</div>
4
+      <div
5
+        @click="curClass = schoolInfo"
6
+        :class="[
7
+          'schoolname',
8
+          curClass.id === schoolInfo.id && curClass.type === schoolInfo.type
9
+            ? 'active'
10
+            : ''
11
+        ]"
12
+      >
13
+        {{ schoolInfo.name }}
14
+        <span class="ivu-icon iconfont icon-ding-mianxing"></span>
15
+      </div>
5 16
       <div class="class_list">
6 17
         <div v-for="item in schoolInfo.children" :key="item.id">
7 18
           <div
8
-            :class="[curClass.id === item.id ? 'active' : '']"
19
+            :class="[
20
+              curClass.id === item.id && curClass.type === item.type
21
+                ? 'active'
22
+                : ''
23
+            ]"
9 24
             :title="item.name"
10 25
             @click="selectClass(item)"
11 26
           >
12 27
             {{ item.name }}
28
+            <span class="ivu-icon iconfont icon-ding-mianxing"></span>
13 29
           </div>
14 30
         </div>
15 31
       </div>
@@ -23,9 +39,13 @@
23 39
           个人策略
24 40
         </div>
25 41
       </div>
26
-      <PublicStrategy v-if="strategy === 1"></PublicStrategy>
42
+      <PublicStrategy :curClass="curClass" v-if="strategy === 1"></PublicStrategy>
27 43
       <PersonalStrategy v-else></PersonalStrategy>
28 44
     </div>
45
+    <Spin fix v-if="showLoading" style="background-color: transparent">
46
+      <Icon type="ios-loading" size="18" class="demo-spin-icon-load"></Icon>
47
+      <div>加载中</div>
48
+    </Spin>
29 49
   </div>
30 50
 </template>
31 51
 
@@ -44,12 +64,21 @@ export default {
44 64
       showLoading: false,
45 65
       schoolInfo: {
46 66
         name: "",
67
+        id: 0,
47 68
         children: []
48 69
       },
49
-      curClass: {},
70
+      curClass: {
71
+        id: 0,
72
+        name: ""
73
+      },
50 74
       strategy: 1
51 75
     };
52 76
   },
77
+  computed: {
78
+    powerParams() {
79
+      return this.$store.getters.powerParams;
80
+    }
81
+  },
53 82
   created() {
54 83
     this.userInfo = JSON.parse(
55 84
       localStorage.getItem("xh_control_userInfo")
@@ -63,7 +92,7 @@ export default {
63 92
     },
64 93
     init() {
65 94
       this.showLoading = true;
66
-      class_list({ schoolid: 1 }).then((res) => {
95
+      class_list({ schoolid: this.powerParams.objectid }).then((res) => {
67 96
         this.showLoading = false;
68 97
         if (res.code === 0) {
69 98
           this.schoolInfo = res.obj;
@@ -95,9 +124,16 @@ export default {
95 124
     background-color: white;
96 125
     .schoolname {
97 126
       font-size: 16px;
98
-      line-height: 40px;
127
+      line-height: 30px;
99 128
       font-weight: bold;
100 129
       text-align: center;
130
+      cursor: pointer;
131
+      position: relative;
132
+      margin-bottom: 10px;
133
+    }
134
+    .active {
135
+      border-radius: 6px;
136
+      background: #dbeeff;
101 137
     }
102 138
     .class_list {
103 139
       div {
@@ -105,6 +141,7 @@ export default {
105 141
         height: 30px;
106 142
         text-align: center;
107 143
         cursor: pointer;
144
+        position: relative;
108 145
       }
109 146
       .active {
110 147
         border-radius: 6px;
@@ -112,6 +149,13 @@ export default {
112 149
       }
113 150
     }
114 151
   }
152
+  .icon-ding-mianxing {
153
+    color: #339dff;
154
+    font-size: 18px;
155
+    position: absolute;
156
+    right: 10px;
157
+    top: 6px;
158
+  }
115 159
   .user_list {
116 160
     width: calc(100% - 216px);
117 161
     padding: 16px;

+ 5
- 0
src/views/schoolSection/strategy/strategyTemplate.vue View File

@@ -37,6 +37,10 @@
37 37
         show-sizer
38 38
       ></Page>
39 39
     </div>
40
+    <Spin fix v-if="showLoading" style="background-color: transparent">
41
+      <Icon type="ios-loading" size="18" class="demo-spin-icon-load"></Icon>
42
+      <div>加载中</div>
43
+    </Spin>
40 44
   </div>
41 45
 </template>
42 46
 
@@ -45,6 +49,7 @@
45 49
 export default {
46 50
   data() {
47 51
     return {
52
+      showLoading: false,
48 53
       searchForm: {
49 54
         name: "",
50 55
         page: 1,

+ 4
- 2
src/views/schoolSection/userManage/userManage.vue View File

@@ -296,6 +296,10 @@
296 296
         </div>
297 297
       </div>
298 298
     </Modal>
299
+    <Spin fix v-if="showLoading" style="background-color: transparent">
300
+      <Icon type="ios-loading" size="18" class="demo-spin-icon-load"></Icon>
301
+      <div>加载中</div>
302
+    </Spin>
299 303
   </div>
300 304
 </template>
301 305
 
@@ -738,8 +742,6 @@ export default {
738 742
     init() {
739 743
       this.showLoading = true;
740 744
       class_list({
741
-        rtype: this.powerParams.rtype,
742
-        objectid: this.powerParams.objectid,
743 745
         schoolid: this.powerParams.objectid
744 746
       }).then((res) => {
745 747
         this.showLoading = false;

Loading…
Cancel
Save