cloud-web-corejs 1.0.44-dev.1 → 1.0.45-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "cloud-web-corejs",
3
3
  "private": false,
4
- "version": "1.0.44-dev.1",
4
+ "version": "1.0.45-dev.1",
5
5
  "scripts": {
6
6
  "dev": "vue-cli-service serve",
7
7
  "lint": "eslint --ext .js,.vue src",
@@ -0,0 +1,979 @@
1
+ <template>
2
+ <div class="index-home">
3
+ <el-row>
4
+ <el-col :span="8">
5
+ <div class="i-user-info">
6
+ <img class="img" v-if="headPhotoUrl" :src="headPhotoUrl"/>
7
+ <p class="name">{{ $t1('您好2') }},{{ userInfo.nickName }}</p>
8
+ <p>{{ companyInfo.companyName }}</p>
9
+ </div>
10
+ <div class="notice-box">
11
+ <div class="txt" @click="openMoreNotifyMessage()">
12
+ <i class="iconfont icon-xiaoxitongzhi"></i>
13
+ <span v-if="unreadMessageNum>0"
14
+ v-html="$t1('您 有{number}条 未读消息,请及时查看。',{number: `<b>${(unreadMessageNum > 99 ? '99+' : unreadMessageNum)}</b>`})">
15
+ </span>
16
+ <span v-else-if="unreadMessageNum==0">
17
+ {{ $t1('您 暂无 未读消息。') }}
18
+ </span>
19
+ </div>
20
+ <el-tooltip class="item" effect="dark" :content="$t1('刷新')" placement="top">
21
+ <el-button type="text" @click="getUnreadMessageNum(true)"><i class="el-icon-refresh"></i></el-button>
22
+ </el-tooltip>
23
+ <el-tooltip class="item" effect="dark" :content="$t1('查看更多')" placement="top">
24
+ <el-button type="text" @click="openMoreNotifyMessage()" class="more">
25
+ <i class="el-icon-news"></i>
26
+ </el-button>
27
+ </el-tooltip>
28
+ </div>
29
+ <el-card class="box-card">
30
+ <div slot="header" class="clearfix">
31
+ <span style="float:left">
32
+ <i class="el-icon-chat-line-round ico"></i>
33
+ {{ $t1('公告') }}
34
+ </span>
35
+ <el-button type="text" @click="openSystemNoticeDialog()"><span class="more">MORE+</span></el-button>
36
+ </div>
37
+ <div class="home-notice-list">
38
+ <div v-for="(systemNotice,index) in systemNotices" :key="index" class="item"
39
+ @click="openSystemNoticeDialog(systemNotice)"
40
+ :title="systemNotice.title">
41
+ {{ systemNotice.title }}
42
+ <span class="time">{{ systemNotice.modifyDate.substring(0, 10) }}</span>
43
+ </div>
44
+ </div>
45
+ </el-card>
46
+ </el-col>
47
+ <el-col :span="homeConfig.toDoSpan || 12" style="padding-left:6px;">
48
+ <el-card class="box-card">
49
+ <div slot="header" class="clearfix">
50
+ <span style="float:left">
51
+ <i class="el-icon-chat-line-round ico"></i>
52
+ {{ $t1('待办事项') }}
53
+ </span>
54
+ <el-tooltip class="item" effect="dark" :content="$t1('刷新')" placement="top">
55
+ <el-button type="text" @click="getWfInfoList(true)" class="more" style="right:107px">
56
+ <i class="el-icon-refresh"></i>
57
+ </el-button>
58
+ </el-tooltip>
59
+ <el-button type="text" @click="$router.push('/basic/wf/wf_manage/list')" class="more">
60
+ <i class="el-icon-news"></i>
61
+ <span>{{ $t1('查看更多+') }}</span>
62
+ </el-button>
63
+ </div>
64
+ <div class="need-to">
65
+ <vxe-grid :data="unDoWfRows" ref="table-wf" v-bind="wfOption"
66
+ @resizable-change="$vxeTableUtil.onColumnWitchChange"
67
+ @custom="$vxeTableUtil.customHandle"></vxe-grid>
68
+ </div>
69
+ </el-card>
70
+ </el-col>
71
+ <el-col :span="4" style="padding-left:6px;" v-show="homeConfig.showFastTrack!==false">
72
+ <el-card class="box-card">
73
+ <div slot="header" class="clearfix">
74
+ <span style="float:left">
75
+ <i class="el-icon-star-off ico"></i>
76
+ {{ $t1('快捷通道') }}
77
+ </span>
78
+ <el-button type="text" @click="showCommMenuDialog = true"><span class="more">MORE+</span></el-button>
79
+ </div>
80
+ <div class="fast-box">
81
+ <div class="item" v-for="commMenu in commMenus" :key="commMenu.id">
82
+ <a href="javascript:void(0);" @click="rourteTo(commMenu)">
83
+ <p><i :class="!!commMenu.menuImg?('iconfont '+commMenu.menuImg):null"></i><span>{{
84
+ commMenu.menuName
85
+ }}</span></p>
86
+ </a>
87
+ </div>
88
+ </div>
89
+ </el-card>
90
+ </el-col>
91
+
92
+ <!-- <el-col :span="8">
93
+ <el-card class="box-card">
94
+ <div slot="header" class="clearfix">
95
+ <span style="float:left">
96
+ <i class="el-icon-message ico"></i>
97
+ 消息通知
98
+ </span>
99
+ <el-button type="text" @click="openNotifyTemplateGroupDialog" class="more" style="right:100px">
100
+ <i class="el-icon-receiving"></i>
101
+ <span>选择分组</span>
102
+ </el-button>
103
+ <el-button type="text" @click="openMoreNotifyMessage()" class="more">
104
+ <i class="el-icon-news"></i>
105
+ <span>查看更多+</span>
106
+ </el-button>
107
+ </div>
108
+ <div class="home-notice-list to-reed" style="height: 400px;">
109
+ <div v-for="(notifyMessage,index) in notifyMessages" class="item"
110
+ :class="{noread:notifyMessage.readed == 0}"
111
+ :title="notifyMessage.content" @click="checkNotifyMessage(notifyMessage,index)">
112
+ <div class="clearfix">
113
+ <el-tag type="warning">{{
114
+ notifyMessage.notifyTypeName
115
+ }}
116
+ </el-tag>
117
+ <span class="time">{{
118
+ notifyMessage.createDate
119
+ }}</span>
120
+ <div class="btns fr">
121
+ <el-link type="primary" @click.stop="openNotifyMessageDialog(notifyMessage)"><i class="el-icon-files"></i>
122
+ </el-link>
123
+ </div>
124
+ </div>
125
+ <span class="name">{{ notifyMessage.content }}</span>
126
+ </div>
127
+ </div>
128
+ </el-card>
129
+ </el-col> -->
130
+ </el-row>
131
+ <slot></slot>
132
+ <systemNoticeInfoDialog v-if="showSystemNoticeInfoDialog" :visiable.sync="showSystemNoticeInfoDialog"
133
+ :param="csnRow" :appendToTop="true"></systemNoticeInfoDialog>
134
+
135
+ <commMenuDialog v-if="showCommMenuDialog" :visiable.sync="showCommMenuDialog"
136
+ @confirm="commMenuCallBack"></commMenuDialog>
137
+ <wfContentDialog v-if="showWfDialog" :visible.sync="showWfDialog" @close="wfClose"
138
+ :option.sync="wfContentOption"></wfContentDialog>
139
+
140
+ <notifyMessageDialog ref="notifyMessageDialog"></notifyMessageDialog>
141
+
142
+ <notifyMessageInfoDialog v-if="showNoticeDialog" :visiable.sync="showNoticeDialog"
143
+ :dataId.sync="notifyMessageInfoId"
144
+ @readHanlde="notifyMessageReadHanlde"></notifyMessageInfoDialog>
145
+
146
+
147
+ <el-dialog
148
+ :title="$t1('选择分组')"
149
+ :append-to-body="true"
150
+ :modal-append-to-body="true"
151
+ :close-on-click-modal="false"
152
+ v-if="showGroupDialog"
153
+ :visible.sync="showGroupDialog"
154
+ :modal="false"
155
+ custom-class="el-dialog dialog-style list-dialog"
156
+ width="355px"
157
+ :destroy-on-close="true"
158
+ >
159
+ <div class="cont group-list">
160
+ <div class="item" v-for="(notifyTemplate,index) in notifyTemplates" :key="index"
161
+ @click="openMoreNotifyMessage(notifyTemplate.notifyType)">
162
+ <i class="iconfont icon-fenzu"></i>
163
+ <span class="name">{{ notifyTemplate.ntName }}</span>
164
+ <!-- <span class="nums">99+</span>-->
165
+ </div>
166
+ </div>
167
+ </el-dialog>
168
+
169
+ </div>
170
+ </template>
171
+
172
+ <script>
173
+ import systemNoticeInfoDialog from '../../../views/user/system_notice/infoDialog.vue';
174
+ import commMenuDialog from '../../../views/user/commMenu/index.vue';
175
+ import notifyMessageDialog from '../../../views/user/notify_message/dialog.vue';
176
+ import notifyMessageInfoDialog from '../../../views/user/notify_message/infoDialog';
177
+
178
+ import {getToken} from "@base/utils/auth";
179
+ import wfContentDialog from "../../../views/user/wf/wf_manage/wfContentDialog";
180
+ import corejsConfig from "@/corejsConfig";
181
+
182
+ export default {
183
+ name: 'home',
184
+ components: {
185
+ systemNoticeInfoDialog,
186
+ commMenuDialog,
187
+ notifyMessageDialog,
188
+ notifyMessageInfoDialog,
189
+ wfContentDialog
190
+ },
191
+ data() {
192
+ return {
193
+ showNoticeDialog: false,
194
+ showGroupDialog: false,
195
+ notifyTemplates: [],
196
+ userInfo: {},
197
+ companyInfo: {},
198
+ systemNotices: [],
199
+ showSystemNoticeInfoDialog: false,
200
+ csnRow: null,
201
+ headPhotoUrl: '',
202
+ dialogVisible: true,
203
+ unDoWfRows: [],
204
+ wfOption: {},
205
+ showWfDialog: false,
206
+ wfContentOption: {},
207
+ showWfContent: true,
208
+ wfContent: null,
209
+ wfDataId: '',
210
+ showCommMenuDialog: false,
211
+ commMenus: [],
212
+ notifyMessages: [],
213
+ notifyMessageInfoIndex: null,
214
+ notifyMessageInfoId: null,
215
+ unreadMessageNum: 0,
216
+ activating: true,
217
+ wfTimer: null,
218
+ homeConfig:corejsConfig.homeConfig || {}
219
+ };
220
+ },
221
+ activated() {
222
+ this.activating = true;
223
+ if (this.wfTimer) {
224
+ this.timerExcFun(true);
225
+ }
226
+ },
227
+ deactivated() {
228
+ this.activating = false;
229
+ },
230
+ beforeDestroy() {
231
+ this.clearTimer();
232
+ },
233
+ created() {
234
+ this.getUserInfo();
235
+ this.initSystemNotice();
236
+ this.initCommMenu();
237
+ this.initNotifyMessage();
238
+ this.initWfParam();
239
+ this.initWfTimer();
240
+ },
241
+ methods: {
242
+ wfClose() {
243
+ this.timerExcFun(true);
244
+ },
245
+ initWfTimer() {
246
+ this.wfTimer = setInterval(() => {
247
+ this.timerExcFun(false);
248
+ }, 10000);
249
+ this.timerExcFun(true);
250
+ },
251
+ timerExcFun(isLoading) {
252
+ if (!this.activating) {
253
+ return;
254
+ }
255
+ this.getWfInfoList(isLoading);
256
+ this.getUnreadMessageNum(isLoading);
257
+ this.$emit('timerHandle')
258
+ },
259
+ clearTimer() {
260
+ clearInterval(this.wfTimer);
261
+ this.wfTimer = null;
262
+ },
263
+ getUserInfo() {
264
+ this.$http({
265
+ url: USER_PREFIX + '/user/currentUser',
266
+ method: 'post',
267
+ success: res => {
268
+ let userInfo = res.objx;
269
+ this.headPhotoUrl = userInfo.headPhotoUrl ? userInfo.headPhotoUrl : require('@/resources/images' + '/default-header.png');
270
+
271
+ this.userInfo = userInfo;
272
+ }
273
+ });
274
+ this.$http({
275
+ url: USER_PREFIX + '/company_info/getCurrent',
276
+ method: `post`,
277
+ success: res => {
278
+ this.companyInfo = res.objx || {};
279
+ }
280
+ });
281
+ },
282
+ initSystemNotice() {
283
+ this.$http({
284
+ url: USER_PREFIX + '/system_notice/listPage',
285
+ data: {publish: true},
286
+ method: 'post',
287
+ success: res => {
288
+ this.systemNotices = res.objx && res.objx.records ? res.objx.records : [];
289
+ }
290
+ });
291
+ },
292
+ openSystemNoticeDialog(row) {
293
+ this.csnRow = row || null;
294
+ this.showSystemNoticeInfoDialog = true;
295
+ },
296
+ initUnDoWfInfo() {
297
+ this.$http({
298
+ url: AGILEBPM_PREFIX + '/wf_manage/listPage',
299
+ data: {type: 0},
300
+ method: 'post',
301
+ success: res => {
302
+ this.unDoWfRows = res.objx.records || [];
303
+ }
304
+ });
305
+ },
306
+ initWfTableList() {
307
+ let that = this;
308
+ let paramColumns = this.wfParamDTOs.map(item => {
309
+ return {
310
+ title: this.$t1(item.paramName),
311
+ field: item.paramKey,
312
+ width: 150
313
+ };
314
+ })
315
+ var statuses = {running: this.$t1('审核中'), back: this.$t1('已驳回'), end: this.$t1('已完成')};
316
+ let tableOption = {
317
+ vue: this,
318
+ tableRef: 'table-wf',
319
+ tableName: 'home-table-wf',
320
+ config: {
321
+ height: 'auto'
322
+ },
323
+ columns: [
324
+ {type: 'checkbox', width: 48, resizable: false, fixed: 'left'},
325
+ {
326
+ title: this.$t1('单据类型'),
327
+ field: 'objTypeName',
328
+ width: 150,
329
+ fixed: 'left'
330
+ },
331
+ {
332
+ title: this.$t1('流程主题'),
333
+ field: 'name',
334
+ width: 150
335
+ },
336
+ {
337
+ title: this.$t1('启动人'),
338
+ field: 'starterName',
339
+ width: 150
340
+ },
341
+ {
342
+ title: this.$t1('当前任务'),
343
+ field: 'taskName',
344
+ width: 150
345
+ },
346
+ {
347
+ title: this.$t1('当前任务用户'),
348
+ field: 'candidateNames',
349
+ width: 150
350
+ },
351
+ {
352
+ title: this.$t1('启动时间'),
353
+ field: 'createDate',
354
+ width: 150
355
+ },
356
+ ...paramColumns,
357
+ {
358
+ width: 47,
359
+ fixed: 'right',
360
+ title: '',
361
+ sortable: false,
362
+ slots: {
363
+ default: ({row}) => {
364
+ return [
365
+ <a
366
+ href="javascript:void(0);"
367
+ class="a-link"
368
+ onclick={() => {
369
+ this.openWfDialog(row);
370
+ }}
371
+ >
372
+ <el-tooltip enterable={false} effect="dark" content={this.$t1('查看')} placement="top"
373
+ popper-class="tooltip-skin">
374
+ <i class="el-icon-edit"/>
375
+ </el-tooltip>
376
+ </a>
377
+ ];
378
+ }
379
+ }
380
+ }
381
+ ]
382
+ };
383
+ this.$vxeTableUtil.initVxeTable(tableOption).then(opts => {
384
+ this.wfOption = opts;
385
+ });
386
+ },
387
+ openWfDialog(row) {
388
+ this.wfContentOption = {
389
+ objId: row.objId,
390
+ url: row.url,
391
+ objTypeCode: row.objTypeCode
392
+ };
393
+ this.showWfDialog = true;
394
+ },
395
+ commMenuCallBack(datas) {
396
+ this.commMenus = datas || [];
397
+ },
398
+ initCommMenu() {
399
+ this.$http({
400
+ url: USER_PREFIX + '/comm_menu/currentList',
401
+ data: {longOne: 0},
402
+ method: 'POST'
403
+ }).then(resultMsg => {
404
+ this.commMenus = resultMsg.objx || [];
405
+ });
406
+ },
407
+ initNotifyMessage() {
408
+ this.$http({
409
+ url: USER_PREFIX + '/notify_message/listPage',
410
+ data: {},
411
+ method: 'post',
412
+ success: res => {
413
+ this.notifyMessages = res.objx && res.objx.records ? res.objx.records : [];
414
+ }
415
+ });
416
+ },
417
+ openNotifyMessageDialog(row) {
418
+ if (row.jumpContent) {
419
+ this.$refs.notifyMessageDialog.open(row, () => {
420
+ row.readed = 1;
421
+ });
422
+ }
423
+ },
424
+ openMoreNotifyMessage(notifyType) {
425
+ let data = {notifyType: (notifyType || '')};
426
+ let view = {
427
+ name: 'notify_message:list',
428
+ query: data
429
+ };
430
+ this.$store.dispatch('tagsView/delCachedView', view).then(() => {
431
+ this.$router.replace(view);
432
+ });
433
+
434
+ if (notifyType) {
435
+ this.showGroupDialog = false;
436
+ }
437
+ },
438
+ checkNotifyMessage(row, index) {
439
+ this.showNoticeDialog = true;
440
+ this.notifyMessageInfoIndex = index;
441
+ this.notifyMessageInfoId = row.id;
442
+ },
443
+ notifyMessageReadHanlde() {
444
+ this.notifyMessages[this.notifyMessageInfoIndex].readed = 1;
445
+ },
446
+ openNotifyTemplateGroupDialog() {
447
+ this.$http({
448
+ url: USER_PREFIX + `/notify_template/listPage`,
449
+ method: `post`,
450
+ data: {},
451
+ isLoading: true,
452
+ loadingTarget: document.body,
453
+ success: res => {
454
+ this.notifyTemplates = res.objx && res.objx.records ? res.objx.records : [];
455
+ this.showGroupDialog = true;
456
+ }
457
+ });
458
+ },
459
+ rourteTo(route) {
460
+ if (route.type == 4) {
461
+ this.jumpOutLink(route)
462
+ } else if (route.type == 3) {
463
+ let menuCode = route.menuCode;
464
+ let path = "/user/outLink/index/" + menuCode;
465
+ this.$router.push({path: path, query: {url: route.url}});
466
+ } else {
467
+ this.$router.push(route.url);
468
+ }
469
+ },
470
+ jumpOutLink(route) {
471
+ let path = route.url;
472
+ if (route.type == 4 && path) {
473
+ if (path.indexOf('token={token}') >= 0) {
474
+ path = path.replace('token={token}', 'token=' + getToken())
475
+ }
476
+ window.open(path);
477
+ }
478
+ },
479
+ initWfParam() {
480
+ return this.$http({
481
+ url: USER_PREFIX + '/wf_param/list',
482
+ method: `post`,
483
+ data: {},
484
+ isLoading: true,
485
+ loadingTarget: document.body,
486
+ modalStrictly: true,
487
+ success: res => {
488
+ this.wfParamDTOs = res.objx || [];
489
+ this.initWfTableList();
490
+ }
491
+ });
492
+ },
493
+ getWfInfoList(isLoading) {
494
+ if (!this.activating) {
495
+ return;
496
+ }
497
+ this.$http({
498
+ url: USER_PREFIX + '/wf_info/listPage',
499
+ data: {type: 0, size: 20},
500
+ method: 'post',
501
+ isLoading: isLoading,
502
+ loadingTarget: document.body,
503
+ success: res => {
504
+ this.unDoWfRows = res.objx && res.objx.records ? res.objx.records : [];
505
+ },
506
+ failMsg: false,
507
+ errorMsg: false,
508
+ fail: (res, response) => {
509
+ if (response && response.status == 200) {
510
+ this.$errorMsg(res);
511
+ }
512
+ }
513
+ });
514
+ },
515
+ getUnreadMessageNum(isLoading) {
516
+ if (!this.activating) {
517
+ return;
518
+ }
519
+ return this.$http({
520
+ url: USER_PREFIX + '/notify_message/countMessage',
521
+ method: `post`,
522
+ data: {},
523
+ isLoading: isLoading,
524
+ loadingTarget: document.body,
525
+ success: res => {
526
+ this.unreadMessageNum = res.objx || 0;
527
+ },
528
+ failMsg: false,
529
+ errorMsg: false,
530
+ fail: (res, response) => {
531
+ if (response && response.status == 200) {
532
+ this.$errorMsg(res);
533
+ }
534
+ }
535
+ });
536
+ },
537
+ wfhandleCallback(flag) {
538
+ if ([1, 2, 3].includes(flag)) {
539
+ this.showWfDialog = false;
540
+ this.wfClose();
541
+ }
542
+ }
543
+ }
544
+ };
545
+ </script>
546
+ <style lang="scss" scoped>
547
+ @import '~@/styles/variables.scss';
548
+
549
+ body #app .index-home {
550
+ margin: 3px 10px;
551
+ height: calc(100vh - 38px);
552
+ overflow: auto;
553
+
554
+ #containt {
555
+ margin: 0;
556
+ background: none;
557
+ height: auto;
558
+ box-shadow: none;
559
+ }
560
+
561
+ .i-user-info {
562
+ background: url(~@/resources/images/home-img.png) #2a6494 no-repeat 116% 45px;
563
+ margin-bottom: 6px;
564
+ background-size: 181px;
565
+ padding: 14px 38px 11px 16px;
566
+ border-radius: 4px 4px;
567
+ color: #fff;
568
+ font-size: 12px;
569
+ margin-top: 3px;
570
+ height: 95px;
571
+ overflow: hidden;
572
+
573
+ .name {
574
+ opacity: 1;
575
+ font-weight: 600;
576
+ margin: 9px 0 14px;
577
+ font-size: 14px;
578
+ }
579
+
580
+ .img {
581
+ width: 60px;
582
+ height: 60px;
583
+ float: left;
584
+ border-radius: 50%;
585
+ border: solid 4px rgba(255, 255, 255, 0.28);
586
+ margin-right: 10px;
587
+ }
588
+ }
589
+
590
+ .home-notice-list {
591
+ height: 182px;
592
+ margin: 0 -12px;
593
+
594
+ .item {
595
+ padding: 6px 12px;
596
+ font-size: 12px;
597
+ cursor: pointer;
598
+ overflow: hidden;
599
+ text-overflow: ellipsis;
600
+ white-space: nowrap;
601
+
602
+ .time {
603
+ color: #b9b9b9;
604
+ font-size: 12px;
605
+ right: 12px;
606
+ }
607
+
608
+ &:hover {
609
+ color: $baseColor;
610
+ background-color: transparentize($baseColor, 0.97);
611
+
612
+ .time {
613
+ color: $baseColor
614
+ }
615
+ }
616
+
617
+ &.no-read:before {
618
+ content: "";
619
+ width: 6px;
620
+ height: 6px;
621
+ background-color: $red;
622
+ border-radius: 50%;
623
+ vertical-align: middle;
624
+ display: inline-block;
625
+ margin-bottom: 1px;
626
+ }
627
+ }
628
+
629
+ &.to-reed {
630
+ height: 300px;
631
+ overflow: auto;
632
+ margin: -8px -12px;
633
+
634
+
635
+ .item {
636
+ white-space: initial;
637
+ padding: 8px 22px 2px;
638
+ position: relative;
639
+
640
+ &:after {
641
+ content: "";
642
+ position: absolute;
643
+ left: 22px;
644
+ right: 22px;
645
+ border-top: dashed 1px #eee;
646
+ height: 1px;
647
+ bottom: 0;
648
+ }
649
+
650
+ &.noread {
651
+ &:before {
652
+ content: "";
653
+ width: 6px;
654
+ height: 6px;
655
+ background-color: $red;
656
+ border-radius: 50%;
657
+ margin-right: 5px;
658
+ display: inline-block;
659
+ position: absolute;
660
+ left: 10px;
661
+ top: 16px;
662
+ }
663
+ }
664
+
665
+ .el-tag {
666
+ zoom: 0.95;
667
+ padding: 0 5px;
668
+ height: 24px;
669
+ line-height: 24px;
670
+ }
671
+
672
+ // .noread{
673
+ // position: absolute;right:0;top:0;
674
+ // span{transform: rotate(47deg);
675
+ // -ms-transform: rotate(47deg);
676
+ // -moz-transform: rotate(47deg);
677
+ // -webkit-transform: rotate(47deg);
678
+ // -o-transform: rotate(47deg);
679
+ // z-index: 3;
680
+ // color: #FFF;
681
+ // position: absolute;
682
+ // right: 1px;
683
+ // top: 2px;}
684
+ // &:after{
685
+ // content: "\e618";
686
+ // font-size: 62px;
687
+ // font-family: "iconfont";
688
+ // color:$red
689
+ // }
690
+ // }
691
+ .time {
692
+ position: relative;
693
+ right: 0;
694
+ margin-left: 12px;
695
+ }
696
+
697
+ .name {
698
+ overflow: hidden;
699
+ text-overflow: ellipsis;
700
+ white-space: nowrap;
701
+ margin-top: 3px;
702
+ display: block;
703
+ margin-bottom: 4px;
704
+ }
705
+
706
+ &:hover .name {
707
+ color: $baseColor
708
+ }
709
+
710
+ &:first-child:before {
711
+ border-top: none
712
+ }
713
+
714
+ .btns {
715
+ text-align: right;
716
+
717
+ .el-link {
718
+ font-size: 12px;
719
+ display: inline-block;
720
+ margin-left: 14px;
721
+
722
+ i {
723
+ font-size: 12px;
724
+ margin-right: 3px;
725
+ }
726
+ }
727
+ }
728
+ }
729
+
730
+ }
731
+ }
732
+
733
+ .fast-box {
734
+ height: 329px;
735
+ overflow: hidden;
736
+
737
+ .item {
738
+ width: 100%;
739
+ text-align: center;
740
+ float: left;
741
+
742
+ p {
743
+ color: #2a6494;
744
+ border: solid 1px #e2e2e2;
745
+ margin: 3.5px 4px;
746
+ width: calc(100% - 4px);
747
+ border-radius: 6px;
748
+ position: relative;
749
+ height: 33px;
750
+ line-height: 32px;
751
+ text-align: left;
752
+ padding-left: 14px;
753
+ font-size: 12px;
754
+
755
+ i {
756
+ font-size: 14px;
757
+ vertical-align: middle;
758
+ margin-right: 2px;
759
+ }
760
+
761
+ span {
762
+ vertical-align: middle;
763
+ }
764
+
765
+ &:before {
766
+ content: '';
767
+ width: 4px;
768
+ height: 14px;
769
+ display: inline-block;
770
+ background: #225279b8;
771
+ position: absolute;
772
+ left: -1px;
773
+ top: 9px;
774
+ }
775
+
776
+ &:hover {
777
+ background-color: $baseColor;
778
+ color: #fff;
779
+ border-color: $baseColor;
780
+
781
+ &:before {
782
+ background: #fff;
783
+ }
784
+ }
785
+ }
786
+ }
787
+ }
788
+
789
+ .need-to {
790
+ height: 332px;
791
+ }
792
+
793
+ .table-box {
794
+ width: 100%;
795
+ font-size: 12px;
796
+
797
+ th {
798
+ line-height: 32px;
799
+ background: #f7f7f7;
800
+ font-weight: 400;
801
+ color: #808080;
802
+ padding: 0 6px;
803
+ }
804
+
805
+ td {
806
+ text-align: center;
807
+ line-height: 34px;
808
+ color: #424242;
809
+ border-bottom: solid 1px #eee;
810
+ padding: 0 6px;
811
+ }
812
+
813
+ tr:last-child td {
814
+ border-bottom: none;
815
+ }
816
+ }
817
+ }
818
+
819
+ .box-card .more {
820
+ background-color: #f7f7f7;
821
+ }
822
+
823
+ .group-list {
824
+ padding: 18px 18px 6px 32px !important;
825
+ height: 400px;
826
+ overflow: auto;
827
+
828
+ .item {
829
+ position: relative;
830
+ height: 36px;
831
+ border: solid 1px #eee;
832
+ line-height: 34px;
833
+ border-radius: 2px;
834
+ padding: 0 42px 0 14px;
835
+ margin-bottom: 10px;
836
+ cursor: pointer;
837
+
838
+ &::before {
839
+ content: "";
840
+ width: 8px;
841
+ height: 8px;
842
+ border: solid 1px #eee;
843
+ border-radius: 50%;
844
+ display: inline-block;
845
+ position: absolute;
846
+ left: -16px;
847
+ top: 13px;
848
+ }
849
+
850
+ &.checked {
851
+ &:before {
852
+ content: "";
853
+ background-color: $baseColor;
854
+ border-color: $baseColor
855
+ }
856
+
857
+ background-color: transparentize($baseColor, 0.9);
858
+ color: $baseColor;
859
+ border-color: $baseColor;
860
+ }
861
+
862
+ i {
863
+ font-size: 12px;
864
+ vertical-align: middle;
865
+ }
866
+
867
+ .name {
868
+ font-size: 12px;
869
+ margin-left: 8px;
870
+ vertical-align: middle;
871
+ }
872
+
873
+ .nums {
874
+ width: 22px;
875
+ height: 22px;
876
+ border-radius: 50%;
877
+ display: inline-block;
878
+ position: absolute;
879
+ right: 5px;
880
+ top: 6px;
881
+ color: #FFF;
882
+ font-size: 12px;
883
+ background-color: $red;
884
+ line-height: 22px;
885
+ text-align: center;
886
+ }
887
+ }
888
+ }
889
+
890
+ .notice-box {
891
+ background-color: #2a649429;
892
+ border-radius: 0 0 4px 4px;
893
+ padding: 9px 12px;
894
+ margin-bottom: 5px;
895
+ margin-top: -6px;
896
+ position: relative;
897
+ z-index: 2;
898
+ font-size: 13px;
899
+ color: #212121;
900
+ overflow: hidden;
901
+
902
+ .txt {
903
+ line-height: 28px;
904
+ font-size: 12px;
905
+ position: relative;
906
+ display: inline-block;
907
+ cursor: pointer;
908
+
909
+ &:before {
910
+ content: "";
911
+ background-color: $baseColor;
912
+ width: 4px;
913
+ height: 20px;
914
+ border-radius: 2px;
915
+ display: inline-block;
916
+ vertical-align: middle;
917
+ margin-right: 18px;
918
+ }
919
+
920
+ i {
921
+ font-size: 14px;
922
+ margin-right: 12px;
923
+ vertical-align: middle;
924
+ }
925
+
926
+ > span {
927
+ vertical-align: middle;
928
+ height: 22px;
929
+ line-height: 22px;
930
+ display: inline-block;
931
+
932
+ b {
933
+ color: #FFF;
934
+ margin: 0 4px;
935
+ font-size: 16px;
936
+ vertical-align: middle;
937
+ background: #FF5615;
938
+ border-radius: 50%;
939
+ display: inline-block;
940
+ padding: 4px;
941
+ font-weight: 200;
942
+ line-height: 1;
943
+ }
944
+ }
945
+
946
+ }
947
+
948
+ .el-button {
949
+ position: absolute;
950
+ right: 46px;
951
+ padding: 0;
952
+ height: 22px;
953
+ line-height: 22px;
954
+ min-width: 22px;
955
+ text-align: center;
956
+ border-radius: 2px;
957
+ top: 50%;
958
+ margin-top: -11px;
959
+
960
+ i {
961
+ font-size: 15px;
962
+ }
963
+
964
+ &:hover {
965
+ background-color: $baseColor;
966
+ color: #FFF;
967
+ }
968
+
969
+ &.more {
970
+ right: 12px;
971
+ background: #f7f7f7;
972
+
973
+ &:hover {
974
+ color: $baseColor
975
+ }
976
+ }
977
+ }
978
+ }
979
+ </style>
@@ -11,6 +11,7 @@
11
11
  </template>
12
12
 
13
13
  <script>
14
+ import corejsConfig from "@/corejsConfig";
14
15
 
15
16
  export default {
16
17
  name: 'home',
@@ -64,22 +65,23 @@ export default {
64
65
  let menus = res.objx || [];
65
66
  let homeMenu = menus.find(menu => menu.type == 2 && menu.enabled);
66
67
  let menuUrl = homeMenu?.url;
67
- let defaultUrl = '/user/home/default';
68
+
69
+ let str1 = "@base/views";
70
+ let str2 = "@/views";
71
+ let url = null;
68
72
  if (menuUrl) {
69
- let url = menuUrl + '.vue';
70
- let str1 = "@base/views";
71
- let str2 = "@/views";
72
- if (url.startsWith(str1)) {
73
- let a = url.slice(str1.length);
74
- this.homeContent = require('@base/views' + url.slice(str1.length)).default;
75
- } else if (url.startsWith(str2)) {
76
- this.homeContent = require('@/views' + url.slice(str2.length)).default;
77
- } else {
78
- this.homeContent = require('@/views' + url).default;
79
- }
73
+ url = menuUrl + '.vue';
74
+ } else {
75
+ let homeConfig = corejsConfig.homeConfig || {}
76
+ url = homeConfig.url ? homeConfig.url : '/user/home/default.vue'
77
+ }
78
+ if (url.startsWith(str1)) {
79
+ let a = url.slice(str1.length);
80
+ this.homeContent = require('@base/views' + url.slice(str1.length)).default;
81
+ } else if (url.startsWith(str2)) {
82
+ this.homeContent = require('@/views' + url.slice(str2.length)).default;
80
83
  } else {
81
- let url = defaultUrl + '.vue';
82
- this.homeContent = require('@base/views' + url).default;
84
+ this.homeContent = require('@/views' + url).default;
83
85
  }
84
86
 
85
87
  this.showHomeContent = true;
@@ -65,7 +65,18 @@ export default {
65
65
  let url = purl + '.vue';
66
66
  this.queryParam = queryParam;
67
67
  this.showWfContent = true;
68
- this.wfContent = require('@/views' + url).default;
68
+
69
+ let t = "@base/views";
70
+ let t2 = '/user/bill_setting/h5_view.vue';
71
+ if(url == t2){
72
+ this.wfContent = require('@base/views' + url).default;
73
+ }else if (url.startsWith(t)) {
74
+ let path = url.slice(t.length);
75
+ this.wfContent = require('@base/views' + path).default;
76
+ } else {
77
+ this.wfContent = require('@/views' + url).default;
78
+ }
79
+
69
80
  this.initI18n();
70
81
 
71
82
  },