Browse Source

应用管理

gzb
guozhongbo 9 months ago
parent
commit
9c9dec8191

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

54
       <div class="content unicode" style="display: block;">
54
       <div class="content unicode" style="display: block;">
55
           <ul class="icon_lists dib-box">
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
             <li class="dib">
87
             <li class="dib">
58
               <span class="icon iconfont">&#xe703;</span>
88
               <span class="icon iconfont">&#xe703;</span>
59
                 <div class="name">关注-已关注</div>
89
                 <div class="name">关注-已关注</div>
204
 <pre><code class="language-css"
234
 <pre><code class="language-css"
205
 >@font-face {
235
 >@font-face {
206
   font-family: 'iconfont';
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
 </code></pre>
241
 </code></pre>
212
           <h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
242
           <h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
232
       <div class="content font-class">
262
       <div class="content font-class">
233
         <ul class="icon_lists dib-box">
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
           <li class="dib">
310
           <li class="dib">
236
             <span class="icon iconfont icon-guanzhu-yiguanzhu"></span>
311
             <span class="icon iconfont icon-guanzhu-yiguanzhu"></span>
237
             <div class="name">
312
             <div class="name">
457
       <div class="content symbol">
532
       <div class="content symbol">
458
           <ul class="icon_lists dib-box">
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
             <li class="dib">
575
             <li class="dib">
461
                 <svg class="icon svg-icon" aria-hidden="true">
576
                 <svg class="icon svg-icon" aria-hidden="true">
462
                   <use xlink:href="#icon-guanzhu-yiguanzhu"></use>
577
                   <use xlink:href="#icon-guanzhu-yiguanzhu"></use>

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

1
 @font-face {
1
 @font-face {
2
   font-family: "iconfont"; /* Project id 4468064 */
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
 .iconfont {
8
 .iconfont {
13
   -moz-osx-font-smoothing: grayscale;
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
 .icon-guanzhu-yiguanzhu:before {
36
 .icon-guanzhu-yiguanzhu:before {
17
   content: "\e703";
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
   "css_prefix_text": "icon-",
5
   "css_prefix_text": "icon-",
6
   "description": "",
6
   "description": "",
7
   "glyphs": [
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
       "icon_id": "9974412",
44
       "icon_id": "9974412",
10
       "name": "关注-已关注",
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
     </Modal>
110
     </Modal>
111
     <!-- 查看 -->
111
     <!-- 查看 -->
112
     <Modal
112
     <Modal
113
-      class="modal1"
113
+      class="modal1 view"
114
       :mask-closable="false"
114
       :mask-closable="false"
115
       v-model="viewInfo.show"
115
       v-model="viewInfo.show"
116
       title="查看"
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
       <div slot="footer" style="text-align: center">
134
       <div slot="footer" style="text-align: center">
126
         <Button @click="viewInfo.show = false">关闭</Button>
135
         <Button @click="viewInfo.show = false">关闭</Button>
127
       </div>
136
       </div>
166
       // 查看
175
       // 查看
167
       viewInfo: {
176
       viewInfo: {
168
         show: false,
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
       rules: {
182
       rules: {
196
         appgroupName: [
183
         appgroupName: [
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
     toEdit(row) {
383
     toEdit(row) {
490
       color: #7c8db5;
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
 .table_wrap {
473
 .table_wrap {
510
   .iconPath {
474
   .iconPath {
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
 </style>
520
 </style>

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

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

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

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

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

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

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

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

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

1
 <template>
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
 </template>
8
 </template>
4
 
9
 
5
 <script>
10
 <script>
6
 export default {
11
 export default {
7
   data() {
12
   data() {
8
-    return {};
13
+    return {
14
+      showLoading: false
15
+    };
9
   },
16
   },
10
   methods: {}
17
   methods: {}
11
 };
18
 };

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

2
   <div class="index1">
2
   <div class="index1">
3
     <div class="strategy_list">
3
     <div class="strategy_list">
4
       <div class="strategy_title">
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
         <div>
6
         <div>
7
           <span>修改</span>
7
           <span>修改</span>
8
           <span>重置</span>
8
           <span>重置</span>
12
     </div>
12
     </div>
13
     <div class="strategy_list">
13
     <div class="strategy_list">
14
       <div class="strategy_title">
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
       </div>
17
       </div>
19
       <div class="strategy_content">
18
       <div class="strategy_content">
20
         <div class="strategy_top">授权应用</div>
19
         <div class="strategy_top">授权应用</div>
23
     </div>
22
     </div>
24
     <div class="strategy_list">
23
     <div class="strategy_list">
25
       <div class="strategy_title">
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
       </div>
27
       </div>
30
     </div>
28
     </div>
31
     <div class="strategy_list">
29
     <div class="strategy_list">
32
       <div class="strategy_title">
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
       </div>
33
       </div>
37
     </div>
34
     </div>
38
     <div class="strategy_list">
35
     <div class="strategy_list">
39
       <div class="strategy_title">
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
       </div>
39
       </div>
44
     </div>
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
   </div>
45
   </div>
46
 </template>
46
 </template>
47
 
47
 
48
 <script>
48
 <script>
49
+import { stApp_detail_obj } from "@/api/stPad";
50
+
49
 export default {
51
 export default {
52
+  props: ["curClass"],
50
   data() {
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
 </script>
91
 </script>
56
 
92
 
68
       align-items: center;
104
       align-items: center;
69
       div:first-of-type {
105
       div:first-of-type {
70
         font-weight: bold;
106
         font-weight: bold;
107
+        span{
108
+          font-size: 22px;
109
+          color: #339dff;
110
+          margin-right: 4px;
111
+        }
71
       }
112
       }
72
       div:last-of-type {
113
       div:last-of-type {
73
         span {
114
         span {

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

1
 <template>
1
 <template>
2
   <div class="main_root">
2
   <div class="main_root">
3
     <div class="schoolInfo">
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
       <div class="class_list">
16
       <div class="class_list">
6
         <div v-for="item in schoolInfo.children" :key="item.id">
17
         <div v-for="item in schoolInfo.children" :key="item.id">
7
           <div
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
             :title="item.name"
24
             :title="item.name"
10
             @click="selectClass(item)"
25
             @click="selectClass(item)"
11
           >
26
           >
12
             {{ item.name }}
27
             {{ item.name }}
28
+            <span class="ivu-icon iconfont icon-ding-mianxing"></span>
13
           </div>
29
           </div>
14
         </div>
30
         </div>
15
       </div>
31
       </div>
23
           个人策略
39
           个人策略
24
         </div>
40
         </div>
25
       </div>
41
       </div>
26
-      <PublicStrategy v-if="strategy === 1"></PublicStrategy>
42
+      <PublicStrategy :curClass="curClass" v-if="strategy === 1"></PublicStrategy>
27
       <PersonalStrategy v-else></PersonalStrategy>
43
       <PersonalStrategy v-else></PersonalStrategy>
28
     </div>
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
   </div>
49
   </div>
30
 </template>
50
 </template>
31
 
51
 
44
       showLoading: false,
64
       showLoading: false,
45
       schoolInfo: {
65
       schoolInfo: {
46
         name: "",
66
         name: "",
67
+        id: 0,
47
         children: []
68
         children: []
48
       },
69
       },
49
-      curClass: {},
70
+      curClass: {
71
+        id: 0,
72
+        name: ""
73
+      },
50
       strategy: 1
74
       strategy: 1
51
     };
75
     };
52
   },
76
   },
77
+  computed: {
78
+    powerParams() {
79
+      return this.$store.getters.powerParams;
80
+    }
81
+  },
53
   created() {
82
   created() {
54
     this.userInfo = JSON.parse(
83
     this.userInfo = JSON.parse(
55
       localStorage.getItem("xh_control_userInfo")
84
       localStorage.getItem("xh_control_userInfo")
63
     },
92
     },
64
     init() {
93
     init() {
65
       this.showLoading = true;
94
       this.showLoading = true;
66
-      class_list({ schoolid: 1 }).then((res) => {
95
+      class_list({ schoolid: this.powerParams.objectid }).then((res) => {
67
         this.showLoading = false;
96
         this.showLoading = false;
68
         if (res.code === 0) {
97
         if (res.code === 0) {
69
           this.schoolInfo = res.obj;
98
           this.schoolInfo = res.obj;
95
     background-color: white;
124
     background-color: white;
96
     .schoolname {
125
     .schoolname {
97
       font-size: 16px;
126
       font-size: 16px;
98
-      line-height: 40px;
127
+      line-height: 30px;
99
       font-weight: bold;
128
       font-weight: bold;
100
       text-align: center;
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
     .class_list {
138
     .class_list {
103
       div {
139
       div {
105
         height: 30px;
141
         height: 30px;
106
         text-align: center;
142
         text-align: center;
107
         cursor: pointer;
143
         cursor: pointer;
144
+        position: relative;
108
       }
145
       }
109
       .active {
146
       .active {
110
         border-radius: 6px;
147
         border-radius: 6px;
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
   .user_list {
159
   .user_list {
116
     width: calc(100% - 216px);
160
     width: calc(100% - 216px);
117
     padding: 16px;
161
     padding: 16px;

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

37
         show-sizer
37
         show-sizer
38
       ></Page>
38
       ></Page>
39
     </div>
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
   </div>
44
   </div>
41
 </template>
45
 </template>
42
 
46
 
45
 export default {
49
 export default {
46
   data() {
50
   data() {
47
     return {
51
     return {
52
+      showLoading: false,
48
       searchForm: {
53
       searchForm: {
49
         name: "",
54
         name: "",
50
         page: 1,
55
         page: 1,

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

296
         </div>
296
         </div>
297
       </div>
297
       </div>
298
     </Modal>
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
   </div>
303
   </div>
300
 </template>
304
 </template>
301
 
305
 
738
     init() {
742
     init() {
739
       this.showLoading = true;
743
       this.showLoading = true;
740
       class_list({
744
       class_list({
741
-        rtype: this.powerParams.rtype,
742
-        objectid: this.powerParams.objectid,
743
         schoolid: this.powerParams.objectid
745
         schoolid: this.powerParams.objectid
744
       }).then((res) => {
746
       }).then((res) => {
745
         this.showLoading = false;
747
         this.showLoading = false;

Loading…
Cancel
Save