cloud-web-corejs 1.0.77 → 1.0.79

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