Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
X
xxx_phase2_web
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
夏敏伟
xxx_phase2_web
Commits
f9d6ea76
Commit
f9d6ea76
authored
Oct 26, 2023
by
夏敏伟
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加导调控制模块的新增及模块展示
parent
8f430b6c
Changes
16
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
1193 additions
and
572 deletions
+1193
-572
package.json
package.json
+3
-0
src/api/chat/chatRecords.js
src/api/chat/chatRecords.js
+9
-4
src/api/chat/chatRoom.js
src/api/chat/chatRoom.js
+2
-2
src/api/user.js
src/api/user.js
+6
-2
src/util/directive/el-dragDialog/drag.js
src/util/directive/el-dragDialog/drag.js
+80
-0
src/util/directive/el-dragDialog/index.js
src/util/directive/el-dragDialog/index.js
+15
-0
src/util/http_util.js
src/util/http_util.js
+3
-1
src/view/ddkz/components/chatRoomDialog.vue
src/view/ddkz/components/chatRoomDialog.vue
+19
-17
src/view/ddkz/components/chatRoomPeople.vue
src/view/ddkz/components/chatRoomPeople.vue
+21
-11
src/view/ddkz/components/noticeDialog.vue
src/view/ddkz/components/noticeDialog.vue
+24
-4
src/view/ddkz/ddkzzs.vue
src/view/ddkz/ddkzzs.vue
+245
-527
src/view/home.vue
src/view/home.vue
+6
-4
src/view/sjgl/ddkzConfig.vue
src/view/sjgl/ddkzConfig.vue
+80
-0
src/view/sjgl/ddkzConfig/ddkzConfigAdd.vue
src/view/sjgl/ddkzConfig/ddkzConfigAdd.vue
+472
-0
src/view/sjgl/ddkzConfig/ddkzConfigList.vue
src/view/sjgl/ddkzConfig/ddkzConfigList.vue
+203
-0
webpack.config.js
webpack.config.js
+5
-0
No files found.
package.json
View file @
f9d6ea76
...
@@ -61,5 +61,8 @@
...
@@ -61,5 +61,8 @@
"
vuex
"
:
"
^3.6.2
"
,
"
vuex
"
:
"
^3.6.2
"
,
"
webuploader
"
:
"
^0.1.5
"
,
"
webuploader
"
:
"
^0.1.5
"
,
"
xlsx
"
:
"
^0.17.0
"
"
xlsx
"
:
"
^0.17.0
"
},
"volta"
:
{
"node"
:
"14.21.3"
}
}
}
}
src/api/chat/chatRecords.js
View file @
f9d6ea76
...
@@ -4,16 +4,16 @@ const PREFIX_RECORDS = 'api/rest/chat/chatRecords';
...
@@ -4,16 +4,16 @@ const PREFIX_RECORDS = 'api/rest/chat/chatRecords';
//分页查询群聊记录
//分页查询群聊记录
//查询小群
//查询小群
export
const
getRecordsByPagingTeam
=
(
chatRoomId
,
currPage
,
pageSize
,
startTime
,
endTime
,
fromUserId
,
teamId
)
=>
{
export
const
getRecordsByPagingTeam
=
(
chatRoomId
,
currPage
,
pageSize
,
startTime
,
endTime
,
fromUserId
,
teamId
)
=>
{
let
url
=
`
${
PREFIX_RECORDS
}
/chatroomTeam/page`
;
let
url
=
`
${
PREFIX_RECORDS
}
/chatroomTeam/page`
;
url
+=
addParam
({
chatRoomId
,
currPage
,
pageSize
,
startTime
,
endTime
,
fromUserId
,
teamId
});
url
+=
addParam
({
chatRoomId
,
currPage
,
pageSize
,
startTime
,
endTime
,
fromUserId
,
teamId
});
return
get
(
url
);
return
get
(
url
);
}
}
//查询大群
//查询大群
export
const
getRecordsByPaging
=
(
chatRoomId
,
currPage
,
pageSize
,
startTime
,
endTime
,
fromUserId
,
teamId
)
=>
{
export
const
getRecordsByPaging
=
(
chatRoomId
,
currPage
,
pageSize
,
startTime
,
endTime
,
fromUserId
,
teamId
)
=>
{
let
url
=
`
${
PREFIX_RECORDS
}
/chatroom/page`
;
let
url
=
`
${
PREFIX_RECORDS
}
/chatroom/page`
;
url
+=
addParam
({
chatRoomId
,
currPage
,
pageSize
,
startTime
,
endTime
,
fromUserId
,
teamId
});
url
+=
addParam
({
chatRoomId
,
currPage
,
pageSize
,
startTime
,
endTime
,
fromUserId
,
teamId
});
return
get
(
url
);
return
get
(
url
);
}
}
...
@@ -27,4 +27,9 @@ export const getPrivateLetterByPaging = (currPage, pageSize, startTime, endTime,
...
@@ -27,4 +27,9 @@ export const getPrivateLetterByPaging = (currPage, pageSize, startTime, endTime,
//查询群聊中未读信息
//查询群聊中未读信息
export
const
getListUnread
=
(
chatRoomId
,
userId
)
=>
{
export
const
getListUnread
=
(
chatRoomId
,
userId
)
=>
{
return
get
(
`
${
PREFIX_RECORDS
}
/listUnread?chatRoomId=
${
chatRoomId
}
&userId=
${
userId
}
`
);
return
get
(
`
${
PREFIX_RECORDS
}
/listUnread?chatRoomId=
${
chatRoomId
}
&userId=
${
userId
}
`
);
}
//获取图片库照片
export
const
getFileUrl
=
(
bucket
,
name
)
=>
{
return
get
(
`api/rest/file/viewPicture/
${
bucket
}
?objectName=
${
name
}
`
);
}
}
\ No newline at end of file
src/api/chat/chatRoom.js
View file @
f9d6ea76
...
@@ -28,8 +28,8 @@ export const leaveChatRoom = (userId) => {
...
@@ -28,8 +28,8 @@ export const leaveChatRoom = (userId) => {
}
}
//查询某个用户所有聊天室(群组)
//查询某个用户所有聊天室(群组)
export
const
getChatRoomList
=
(
userId
)
=>
{
export
const
getChatRoomList
=
(
data
)
=>
{
return
get
(
`
${
PREFIX_CHATROOM
}
/list?userId=
${
userId
}
`
);
return
post
(
`
${
PREFIX_CHATROOM
}
/list`
,
data
);
}
}
//阅读(群组)信息
//阅读(群组)信息
...
...
src/api/user.js
View file @
f9d6ea76
...
@@ -42,7 +42,7 @@ export function queryUserPerformance(pageNum = 1, pageSize = 10, logType = LITER
...
@@ -42,7 +42,7 @@ export function queryUserPerformance(pageNum = 1, pageSize = 10, logType = LITER
* @param {*} body
* @param {*} body
* @returns
* @returns
*/
*/
export
function
countUserPerformance
(
pageNum
=
1
,
pageSize
=
10
,
logType
=
LITERATURE
,
body
=
{})
{
export
function
countUserPerformance
(
pageNum
=
1
,
pageSize
=
10
,
logType
=
LITERATURE
,
body
=
{})
{
return
post
(
`api/rest/user/countUserPerformance?pageNum=
${
pageNum
}
&pageSize=
${
pageSize
}
&logType=
${
logType
}
`
,
body
);
return
post
(
`api/rest/user/countUserPerformance?pageNum=
${
pageNum
}
&pageSize=
${
pageSize
}
&logType=
${
logType
}
`
,
body
);
}
}
...
@@ -67,7 +67,7 @@ export function queryNotification(pageNum, pageSize, account, text) {
...
@@ -67,7 +67,7 @@ export function queryNotification(pageNum, pageSize, account, text) {
* @param {*} account
* @param {*} account
* @returns
* @returns
*/
*/
export
function
removeNotification
(
ids
,
account
)
{
export
function
removeNotification
(
ids
,
account
)
{
return
delete_util
(
`api/rest/user/removeNotification?account=
${
account
}
`
,
ids
);
return
delete_util
(
`api/rest/user/removeNotification?account=
${
account
}
`
,
ids
);
}
}
...
@@ -81,4 +81,8 @@ export function readNotification(account, noteId) {
...
@@ -81,4 +81,8 @@ export function readNotification(account, noteId) {
let
url
=
`api/rest/user/readNotification`
;
let
url
=
`api/rest/user/readNotification`
;
url
+=
addParam
({
account
,
noteId
});
url
+=
addParam
({
account
,
noteId
});
return
post
(
url
,
{});
return
post
(
url
,
{});
}
export
function
getUserList
()
{
return
get
(
"
api/rest/system/user/queryUser
"
)
}
}
\ No newline at end of file
src/util/directive/el-dragDialog/drag.js
0 → 100644
View file @
f9d6ea76
export
default
{
bind
(
el
,
binding
,
vnode
)
{
const
dialogHeaderEl
=
el
.
querySelector
(
'
.el-dialog__header
'
)
const
dragDom
=
el
.
querySelector
(
'
.el-dialog
'
)
dialogHeaderEl
.
style
.
cssText
+=
'
;cursor:move;
'
dragDom
.
style
.
cssText
+=
'
;top:0px;
'
// 获取原有属性 ie dom元素.currentStyle 火狐谷歌 window.getComputedStyle(dom元素, null);
const
getStyle
=
(
function
()
{
if
(
window
.
document
.
currentStyle
)
{
return
(
dom
,
attr
)
=>
dom
.
currentStyle
[
attr
]
}
else
{
return
(
dom
,
attr
)
=>
getComputedStyle
(
dom
,
false
)[
attr
]
}
})()
dialogHeaderEl
.
onmousedown
=
(
e
)
=>
{
// 鼠标按下,计算当前元素距离可视区的距离
const
disX
=
e
.
clientX
-
dialogHeaderEl
.
offsetLeft
const
disY
=
e
.
clientY
-
dialogHeaderEl
.
offsetTop
const
dragDomWidth
=
dragDom
.
offsetWidth
const
dragDomheight
=
dragDom
.
offsetHeight
const
screenWidth
=
document
.
body
.
clientWidth
const
screenHeight
=
document
.
body
.
clientHeight
const
minDragDomLeft
=
dragDom
.
offsetLeft
const
maxDragDomLeft
=
screenWidth
-
dragDom
.
offsetLeft
-
dragDomWidth
const
minDragDomTop
=
dragDom
.
offsetTop
const
maxDragDomTop
=
screenHeight
-
dragDom
.
offsetTop
-
dragDomheight
// 获取到的值带px 正则匹配替换
let
styL
=
getStyle
(
dragDom
,
'
left
'
)
let
styT
=
getStyle
(
dragDom
,
'
top
'
)
if
(
styL
.
includes
(
'
%
'
))
{
styL
=
+
document
.
body
.
clientWidth
*
(
+
styL
.
replace
(
/%/g
,
''
)
/
100
)
styT
=
+
document
.
body
.
clientHeight
*
(
+
styT
.
replace
(
/%/g
,
''
)
/
100
)
}
else
{
styL
=
+
styL
.
replace
(
/
\p
x/g
,
''
)
styT
=
+
styT
.
replace
(
/
\p
x/g
,
''
)
}
document
.
onmousemove
=
function
(
e
)
{
// 通过事件委托,计算移动的距离
let
left
=
e
.
clientX
-
disX
let
top
=
e
.
clientY
-
disY
// 边界处理
if
(
-
(
left
)
>
minDragDomLeft
)
{
left
=
-
minDragDomLeft
}
else
if
(
left
>
maxDragDomLeft
)
{
left
=
maxDragDomLeft
}
if
(
-
(
top
)
>
minDragDomTop
)
{
top
=
-
minDragDomTop
}
else
if
(
top
>
maxDragDomTop
)
{
top
=
maxDragDomTop
}
// 移动当前元素
dragDom
.
style
.
cssText
+=
`;left:
${
left
+
styL
}
px;top:
${
top
+
styT
}
px;`
// emit onDrag event
vnode
.
child
.
$emit
(
'
dragDialog
'
)
}
document
.
onmouseup
=
function
()
{
document
.
onmousemove
=
null
document
.
onmouseup
=
null
}
}
}
}
\ No newline at end of file
src/util/directive/el-dragDialog/index.js
0 → 100644
View file @
f9d6ea76
import
drag
from
'
@/util/directive/el-dragDialog/drag
'
const
install
=
function
(
Vue
)
{
Vue
.
directive
(
'
el-drag-dialog
'
,
drag
)
}
if
(
window
.
Vue
)
{
window
[
'
el-drag-dialog
'
]
=
drag
Vue
.
use
(
install
);
}
drag
.
install
=
install
export
default
drag
src/util/http_util.js
View file @
f9d6ea76
...
@@ -310,10 +310,12 @@ let getTime_extent = (n) => {
...
@@ -310,10 +310,12 @@ let getTime_extent = (n) => {
let
pre_rq
=
pre_year
+
'
-
'
+
pre_newMonth
+
'
-
'
+
pre_newDate
;
let
pre_rq
=
pre_year
+
'
-
'
+
pre_newMonth
+
'
-
'
+
pre_newDate
;
let
pre_rq_start
=
pre_year
+
'
-
'
+
pre_newMonth
+
'
-
'
+
pre_newDate
+
'
'
+
'
00:00:00
'
;
let
pre_rq_start
=
pre_year
+
'
-
'
+
pre_newMonth
+
'
-
'
+
pre_newDate
+
'
'
+
'
00:00:00
'
;
let
pre_rq_end
=
pre_year
+
'
-
'
+
pre_newMonth
+
'
-
'
+
pre_newDate
+
'
'
+
'
23:59:59
'
;
let
pre_rq_end
=
pre_year
+
'
-
'
+
pre_newMonth
+
'
-
'
+
pre_newDate
+
'
'
+
'
23:59:59
'
;
let
currentDate
=
pre_year
+
'
-
'
+
pre_newMonth
+
'
-
'
+
pre_newDate
+
'
'
+
now
.
toLocaleTimeString
();
return
{
return
{
pre_rq
,
pre_rq
,
pre_rq_start
,
pre_rq_start
,
pre_rq_end
pre_rq_end
,
currentDate
}
}
}
}
...
...
src/view/ddkz/components/chatRoomDialog.vue
View file @
f9d6ea76
<
template
>
<
template
>
<el-dialog
title=
"聊天室"
:visible.sync=
"dialogVisible"
width=
"40%"
:before-close=
"handleClo
se"
>
<el-dialog
v-if=
"dialogVisible"
v-el-drag-dialog
title=
"聊天室"
:visible.sync=
"dialogVisible"
width=
"40%"
:before-close=
"handleClose"
:close-on-click-modal=
"fal
se"
>
<div
class=
"info-messageInfo"
>
<div
class=
"info-messageInfo"
>
<!--
<div
class=
"title"
>
<img
:src=
"arrow"
alt=
""
>
<span>
内部通讯
</span>
</div>
-->
<div
class=
"messageInfo-content"
>
<div
class=
"messageInfo-content"
>
<div
class=
"chatPerson"
>
<div
class=
"chatPerson"
>
<span
:style=
"
{ backgroundColor: chatPerson.isLine ? '#30d64d' : '#686a6b' }"
<span
:style=
"
{ backgroundColor: chatPerson.isLine ? '#30d64d' : '#686a6b' }"
v-show="chatPerson.isLine != undefined">
</span>
v-show="chatPerson.isLine != undefined">
</span>
<span
v-text=
"chatPerson.name"
></span>
<span
v-text=
"chatPerson.name"
></span>
</div>
</div>
<div
id=
"chatContent"
class=
"chatContent"
>
<div
id=
"chatContent"
class=
"chatContent"
ref=
"chatContent"
>
<div
v-for=
"item in chatMessageList"
class=
"everyMessage"
>
<div
v-for=
"item in chatMessageList"
class=
"everyMessage"
>
<div
:style=
"
{ justifyContent: item.fromUserId == userInfo.account ? 'flex-end' : 'flex-start' }">
<div
:style=
"
{ justifyContent: item.fromUserId == userInfo.account ? 'flex-end' : 'flex-start' }">
<template
v-if=
"item.fromUserId != userInfo.account"
>
<template
v-if=
"item.fromUserId != userInfo.account"
>
...
@@ -23,7 +19,6 @@
...
@@ -23,7 +19,6 @@
<img
:src=
"avatar"
alt=
""
>
<img
:src=
"avatar"
alt=
""
>
</
template
>
</
template
>
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"chatSendMessage"
>
<div
class=
"chatSendMessage"
>
...
@@ -44,6 +39,7 @@
...
@@ -44,6 +39,7 @@
<
script
>
<
script
>
import
avatar
from
'
../../../assets/img/ddkz/headPhoto.jpg
'
;
import
avatar
from
'
../../../assets/img/ddkz/headPhoto.jpg
'
;
import
{
getRecordsByPagingTeam
}
from
'
../../../api/chat/chatRecords
'
;
import
{
getRecordsByPagingTeam
}
from
'
../../../api/chat/chatRecords
'
;
import
elDragDialog
from
"
@/util/directive/el-dragDialog
"
;
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
...
@@ -62,17 +58,23 @@ export default {
...
@@ -62,17 +58,23 @@ export default {
myStompClient
:
null
myStompClient
:
null
}
}
},
},
directives
:
{
elDragDialog
},
props
:
{
props
:
{
visible
:
Boolean
,
visible
:
Boolean
,
analogData
:
Array
,
analogData
:
Array
,
stompClient
:
Object
,
stompClient
:
Object
,
currentChatRoomInfo
:
Object
currentChatRoomInfo
:
Object
},
},
methods
:
{
methods
:
{
handleClose
()
{
handleClose
()
{
// this.dialogVisible = false;
this
.
$emit
(
'
handleCancel
'
);
this
.
$emit
(
'
handleCancel
'
);
},
},
showDialog
(){
this
.
dialogVisible
=
true
;
},
sendMessageFn
()
{
sendMessageFn
()
{
if
(
this
.
sendMessage
.
trim
().
length
>
0
)
{
if
(
this
.
sendMessage
.
trim
().
length
>
0
)
{
this
.
myStompClient
.
send
(
"
/app/sendToChatRoomTeam/
"
+
this
.
currentChatRoom
.
id
+
'
/
'
+
this
.
currentChatRoom
.
teamId
,
{},
JSON
.
stringify
({
this
.
myStompClient
.
send
(
"
/app/sendToChatRoomTeam/
"
+
this
.
currentChatRoom
.
id
+
'
/
'
+
this
.
currentChatRoom
.
teamId
,
{},
JSON
.
stringify
({
...
@@ -88,8 +90,7 @@ export default {
...
@@ -88,8 +90,7 @@ export default {
}
}
},
},
keepBottom
()
{
keepBottom
()
{
const
divscll
=
document
.
getElementById
(
'
chatContent
'
);
this
.
$refs
.
chatContent
.
scrollTop
=
this
.
$refs
.
chatContent
.
scrollHeight
;
divscll
.
scrollTop
=
divscll
.
scrollHeight
;
},
},
listChatroom
(
data
)
{
listChatroom
(
data
)
{
//取消群聊的订阅
//取消群聊的订阅
...
@@ -105,18 +106,22 @@ export default {
...
@@ -105,18 +106,22 @@ export default {
content
:
JSON
.
parse
(
data
.
body
).
content
,
content
:
JSON
.
parse
(
data
.
body
).
content
,
fromUserId
:
data
.
headers
.
fromUserId
fromUserId
:
data
.
headers
.
fromUserId
});
});
this
.
$nextTick
(()
=>
{
this
.
keepBottom
();
});
},
{
id
:
"
multicast
"
+
e
.
id
+
new
Date
().
getTime
()
});
},
{
id
:
"
multicast
"
+
e
.
id
+
new
Date
().
getTime
()
});
})
})
},
},
getCurrentMessageList
(
item
)
{
getCurrentMessageList
(
item
)
{
//查询我方聊天记录
//查询我方聊天记录
getRecordsByPagingTeam
(
item
.
id
,
1
,
100
,
'
2020-01-01 00:00:00
'
,
'
202
3
-10-01 00:00:00
'
,
null
,
item
.
teamId
).
then
(
res1
=>
{
getRecordsByPagingTeam
(
item
.
id
,
1
,
100
,
'
2020-01-01 00:00:00
'
,
'
202
4
-10-01 00:00:00
'
,
null
,
item
.
teamId
).
then
(
res1
=>
{
this
.
chatMessageList
=
res1
.
records
;
this
.
chatMessageList
=
res1
.
records
;
this
.
$nextTick
(()
=>
{
this
.
keepBottom
();
});
})
})
}
}
},
},
computed
:
{
computed
:
{
userInfo
()
{
userInfo
()
{
...
@@ -135,9 +140,6 @@ export default {
...
@@ -135,9 +140,6 @@ export default {
//订阅
//订阅
this
.
listChatroom
(
this
.
analogDataList
);
this
.
listChatroom
(
this
.
analogDataList
);
this
.
getCurrentMessageList
(
this
.
$props
.
currentChatRoomInfo
);
this
.
getCurrentMessageList
(
this
.
$props
.
currentChatRoomInfo
);
setTimeout
(()
=>
{
this
.
keepBottom
();
},
2000
);
}
}
}
}
</
script
>
</
script
>
...
@@ -145,7 +147,7 @@ export default {
...
@@ -145,7 +147,7 @@ export default {
<
style
lang=
"scss"
>
<
style
lang=
"scss"
>
.info-messageInfo
{
.info-messageInfo
{
width
:
100%
;
width
:
100%
;
height
:
7
0%
;
height
:
6
0%
;
.title
{
.title
{
width
:
100%
;
width
:
100%
;
...
...
src/view/ddkz/components/chatRoomPeople.vue
View file @
f9d6ea76
<
template
>
<
template
>
<el-dialog
title=
"人员情况"
:visible.sync=
"dialogVisible"
width=
"40%"
:before-close=
"handleClose"
>
<el-dialog
v-el-drag-dialog
title=
"人员情况"
:visible.sync=
"dialogVisible"
width=
"40%"
:before-close=
"handleClose"
@
open=
"handleDialogOpen"
>
<div
class=
"info-personInfo"
>
<div
class=
"info-personInfo"
>
<!--
<div
class=
"title"
>
<img
:src=
"arrow"
alt=
""
>
<span>
人员情况
</span>
</div>
-->
<div
class=
"personInfo-content"
>
<div
class=
"personInfo-content"
>
<div
v-for=
"item in personList"
class=
"everyPersonList"
>
<div
v-for=
"item in personList"
class=
"everyPersonList"
>
<span
v-text=
"item.userId"
@
click=
"selectPerson(item);"
></span>
<span
v-text=
"item.userId"
@
click=
"selectPerson(item);"
></span>
...
@@ -16,6 +13,7 @@
...
@@ -16,6 +13,7 @@
<
script
>
<
script
>
import
elDragDialog
from
"
@/util/directive/el-dragDialog
"
;
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
...
@@ -23,19 +21,30 @@ export default {
...
@@ -23,19 +21,30 @@ export default {
personList
:
[]
personList
:
[]
}
}
},
},
directives
:
{
elDragDialog
},
props
:
{
props
:
{
visible
:
Boolean
,
//
visible: Boolean,
peopleList
:
Array
peopleList
:
Array
},
},
methods
:
{
methods
:
{
handleClose
()
{
handleClose
()
{
this
.
$emit
(
'
handleCancel
'
);
this
.
dialogVisible
=
false
;
// this.$emit('handleCancel');
},
showDialog
()
{
this
.
dialogVisible
=
true
;
},
handleDialogOpen
()
{
// this.dialogVisible = this.$props.visible;
this
.
personList
=
this
.
$props
.
peopleList
;
}
}
},
},
mounted
()
{
//
mounted() {
this
.
dialogVisible
=
this
.
$props
.
visible
;
//
this.dialogVisible = this.$props.visible;
this
.
personList
=
this
.
$props
.
peopleList
;
//
this.personList = this.$props.peopleList;
}
//
}
}
}
</
script
>
</
script
>
...
@@ -44,6 +53,7 @@ export default {
...
@@ -44,6 +53,7 @@ export default {
.info-personInfo
{
.info-personInfo
{
width
:
100%
;
width
:
100%
;
height
:
30%
;
height
:
30%
;
overflow-y
:
auto
;
.title
{
.title
{
width
:
100%
;
width
:
100%
;
...
...
src/view/ddkz/components/noticeDialog.vue
View file @
f9d6ea76
<
template
>
<
template
>
<el-dialog
title=
"发送公告"
:visible.sync=
"dialogVisible"
width=
"30%"
:before-close=
"handleClose"
>
<el-dialog
v-el-drag-dialog
title=
"发送公告"
:visible.sync=
"dialogVisible"
width=
"30%"
:before-close=
"handleClose"
>
<div
class=
"notice"
>
<div
class=
"notice"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"80px"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"80px"
>
<el-form-item
label=
"标题"
>
<el-form-item
label=
"标题"
>
...
@@ -16,7 +16,7 @@
...
@@ -16,7 +16,7 @@
</el-upload>
</el-upload>
</el-form-item>
</el-form-item>
<el-form-item
style=
"text-align: center;"
>
<el-form-item
style=
"text-align: center;"
>
<el-button
type=
"default"
>
取消
</el-button>
<el-button
type=
"default"
@
click=
"handleClose"
>
取消
</el-button>
<el-button
type=
"success"
@
click=
"sendNotice"
>
发送
</el-button>
<el-button
type=
"success"
@
click=
"sendNotice"
>
发送
</el-button>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
...
@@ -28,6 +28,7 @@
...
@@ -28,6 +28,7 @@
<
script
>
<
script
>
import
{
upLoadFiles
}
from
'
../../../api/chat/chatRoom
'
;
import
{
upLoadFiles
}
from
'
../../../api/chat/chatRoom
'
;
import
{
format_file
}
from
'
../../../util/http_util
'
;
import
{
format_file
}
from
'
../../../util/http_util
'
;
import
elDragDialog
from
"
@/util/directive/el-dragDialog
"
;
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
...
@@ -35,7 +36,8 @@ export default {
...
@@ -35,7 +36,8 @@ export default {
form
:
{
form
:
{
title
:
''
,
title
:
''
,
content
:
''
,
content
:
''
,
attachment
:
''
attachment
:
''
,
messageForm
:
null
},
},
formatFile
:
format_file
(),
formatFile
:
format_file
(),
myStompClient
:
null
,
myStompClient
:
null
,
...
@@ -43,6 +45,9 @@ export default {
...
@@ -43,6 +45,9 @@ export default {
analogDataList
:
[],
analogDataList
:
[],
}
}
},
},
directives
:
{
elDragDialog
},
props
:
{
props
:
{
visible
:
Boolean
,
visible
:
Boolean
,
stompClient
:
Object
,
stompClient
:
Object
,
...
@@ -51,13 +56,28 @@ export default {
...
@@ -51,13 +56,28 @@ export default {
},
},
methods
:
{
methods
:
{
handleClose
()
{
handleClose
()
{
this
.
$emit
(
'
handleCancel
'
);
this
.
dialogVisible
=
false
;
// this.$emit('handleCancel');
},
showDialog
(){
this
.
dialogVisible
=
true
;
},
},
handleChange
(
file
,
fileList
)
{
handleChange
(
file
,
fileList
)
{
let
fd
=
new
FormData
();
let
fd
=
new
FormData
();
fd
.
append
(
'
file
'
,
file
.
raw
);
fd
.
append
(
'
file
'
,
file
.
raw
);
upLoadFiles
(
'
CHAT
'
,
fd
).
then
(
res
=>
{
upLoadFiles
(
'
CHAT
'
,
fd
).
then
(
res
=>
{
this
.
form
.
attachment
=
res
;
this
.
form
.
attachment
=
res
;
let
type
=
file
.
name
.
split
(
'
.
'
)[
1
];
if
(
type
==
'
png
'
||
type
==
'
jpg
'
){
this
.
form
.
messageForm
=
'
PICTURE
'
;
}
else
if
(
type
==
'
mp4
'
){
this
.
form
.
messageForm
=
'
VIDEO
'
;
}
else
if
(
type
==
'
xlsx
'
||
type
==
'
xls
'
){
this
.
form
.
messageForm
=
'
EXCEL
'
;
}
else
{
this
.
form
.
messageForm
=
'
TEXT
'
;
}
});
});
},
},
handleRemove
()
{
},
handleRemove
()
{
},
...
...
src/view/ddkz/ddkzzs.vue
View file @
f9d6ea76
...
@@ -6,12 +6,16 @@
...
@@ -6,12 +6,16 @@
<div
class=
"ddkz-selection"
>
<div
class=
"ddkz-selection"
>
<el-form
ref=
"form"
:inline=
"true"
:model=
"form"
label-width=
"80px"
class=
"demo-form-inline"
>
<el-form
ref=
"form"
:inline=
"true"
:model=
"form"
label-width=
"80px"
class=
"demo-form-inline"
>
<el-form-item>
<el-form-item>
<el-date-picker
v-model=
"form.date"
type=
"daterange"
range-separator=
"至"
<el-date-picker
value-format=
"yyyy-MM-dd HH:mm:ss"
v-model=
"form.dateRange"
type=
"daterange"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
>
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
:default-time=
"['00:00:00', '23:59:59']"
>
</el-date-picker>
</el-date-picker>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<el-input
v-model=
"form.name"
placeholder=
"请输入关键词"
suffix-icon=
"el-icon-search"
></el-input>
<el-input
v-model=
"form.keyWord"
placeholder=
"请输入关键词"
suffix-icon=
"el-icon-search"
></el-input>
</el-form-item>
<el-form-item>
<div
class=
"searchButton"
@
click=
"searchChatList"
>
搜索
</div>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
</div>
</div>
...
@@ -40,16 +44,14 @@
...
@@ -40,16 +44,14 @@
<div
class=
"ddkz-info-selection"
>
<div
class=
"ddkz-info-selection"
>
<el-form
ref=
"form"
:inline=
"true"
:model=
"formInfo"
class=
"demo-form-inline"
>
<el-form
ref=
"form"
:inline=
"true"
:model=
"formInfo"
class=
"demo-form-inline"
>
<el-form-item>
<el-form-item>
<el-select
v-model=
"formInfo.topic"
placeholder=
"请选择"
>
<el-select
v-model=
"formInfo.day"
placeholder=
"请选择日期"
clearable
>
<el-option
v-for=
"item in options"
:key=
"item.value"
:label=
"item.label"
<el-option
v-for=
"item in options"
:key=
"item"
:label=
"item"
:value=
"item"
>
:value=
"item.value"
>
</el-option>
</el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<el-select
v-model=
"formInfo.step"
placeholder=
"请选择"
>
<el-select
v-model=
"formInfo.fromUser"
placeholder=
"请选择公告来源"
clearable
>
<el-option
v-for=
"item in options"
:key=
"item.value"
:label=
"item.label"
<el-option
v-for=
"item in optionsFrom"
:key=
"item"
:label=
"item"
:value=
"item"
>
:value=
"item.value"
>
</el-option>
</el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
...
@@ -64,76 +66,39 @@
...
@@ -64,76 +66,39 @@
<div
class=
"everyDayTitle"
>
<div
class=
"everyDayTitle"
>
<div
class=
"circle-light"
></div>
 
<div
class=
"circle-light"
></div>
 
<span
v-text=
"item.time"
></span>
 
<span
v-text=
"item.time"
></span>
 
<!--
<span
v-text=
"item.week"
></span>
-->
</div>
</div>
<div
class=
"everyDayNew"
>
<div
class=
"everyDayNew"
>
<div
class=
"everyTemplate"
>
<div
class=
"everyTemplate"
>
<div
v-for=
"item1 in item.news"
<div
v-for=
"item1 in item.news"
:class=
"['everyDayNewCard', 'cardType' + item1.teamInfo.teamType]"
>
:class=
"['everyDayNewCard', 'cardType' + item1.teamInfo.teamType]"
>
<div
class=
"everyDayNewCardTitle"
v-text=
"item1.title"
></div>
<div
class=
"everyDayNewCardTitle"
v-text=
"item1.title"
></div>
<div
class=
"everyDayNewCardInfo"
>
<div
class=
"everyDayNewCardContent"
>
<span
v-text=
"item1.time"
></span>
 
<div
class=
"left-everyDayNew"
:style=
"
{ width: item1.attachment ? '50%' : '100%' }">
<!--
<span
v-text=
"item1.location"
></span>
 
-->
<div
class=
"everyDayNewCardInfo"
>
来源:
<span
class=
"newsSource"
v-text=
"item1.from"
></span>
<span
v-text=
"item1.time"
></span>
 
来源:
<span
class=
"newsSource"
v-text=
"item1.from"
></span>
</div>
<div
class=
"everyDayNewCardText"
v-text=
"item1.content"
></div>
</div>
<div
class=
"right-everyDayNew"
v-if=
"item1.attachment"
>
<template
v-if=
"item1.type == 'PICTURE'"
>
<el-image
:src=
"item1.url"
:preview-src-list=
"[item1.url]"
>
</el-image>
</
template
>
<
template
v-else-if=
"item1.type == 'VIDEO'"
>
<video
:src=
"item1.url"
controls
loop
>
</video>
</
template
>
<
template
v-else-if=
"item1.type == 'EXCEL'"
>
<el-image
:src=
"excelImg"
@
click=
"showLiterature(item1.attachment)"
>
</el-image>
</
template
>
<
template
v-else-if=
"item1.type == 'TEXT'"
>
<el-image
:src=
"textImg"
@
click=
"showLiterature(item1.attachment)"
>
</el-image>
</
template
>
</div>
</div>
</div>
<div
class=
"everyDayNewCardContent"
v-text=
"item1.content"
></div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"info-content-right"
>
<div
class=
"info-personInfo"
>
<div
class=
"title"
>
<img
:src=
"arrow"
alt=
""
>
<span>
人员情况
</span>
</div>
<div
class=
"personInfo-content"
>
<div
v-for=
"item in personList"
class=
"everyPersonList"
>
<span
v-for=
"item1 in item"
@
click=
"selectPerson(item1);"
>
<span
v-text=
"item1.name"
></span>
<span
:style=
"
{ backgroundColor: item1.isLine ? '#30d64d' : '#686a6b' }">
</span>
</span>
</div>
</div>
</div>
<div
class=
"info-messageInfo"
>
<div
class=
"title"
>
<img
:src=
"arrow"
alt=
""
>
<span>
内部通讯
</span>
</div>
<div
class=
"messageInfo-content"
>
<div
class=
"chatPerson"
>
<span
:style=
"
{ backgroundColor: chatPerson.isLine ? '#30d64d' : '#686a6b' }"
v-show="chatPerson.isLine != undefined">
</span>
<span
v-text=
"chatPerson.name"
></span>
</div>
<div
id=
"chatContent"
class=
"chatContent"
>
<div
v-for=
"item in chatMessageList"
class=
"everyMessage"
>
<div
v-for=
"item1 in item.list"
:style=
"
{ justifyContent: item.isMe ? 'flex-end' : 'flex-start' }">
<template
v-if=
"!item.isMe"
>
<img
:src=
"avatar"
alt=
""
>
<div
v-text=
"item1"
style=
"background-color:white"
></div>
</
template
>
<
template
v-else-if=
"item.isMe"
>
<div
v-text=
"item1"
style=
"background-color: #85ce61;"
></div>
<img
:src=
"avatar"
alt=
""
>
</
template
>
</div>
</div>
</div>
<div
class=
"chatSendMessage"
>
<div
class=
"messageContent"
>
<el-input
type=
"textarea"
autosize
placeholder=
"请输入内容"
v-model=
"sendMessage"
>
</el-input>
</div>
<div
class=
"sendMessageButtonList"
>
<!-- <el-button size="mini" type="info" @click="sendNotice">发送公告</el-button>
<el-button size="mini" type="info" @click="test">邮箱</el-button> -->
<el-button
size=
"mini"
type=
"success"
@
click=
"sendMessageFn"
>
发送
</el-button>
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -142,13 +107,14 @@
...
@@ -142,13 +107,14 @@
</div>
</div>
</div>
</div>
</transition>
</transition>
<NoticeDialog
v-if=
"visible"
:visible=
"visibl
e"
@
handleCancel=
"closeDialog"
:stompClient=
"stompClient"
<NoticeDialog
v-if=
"visible"
ref=
"myNotic
e"
@
handleCancel=
"closeDialog"
:stompClient=
"stompClient"
:currentChatRoomInfo=
"currentChatRoomInfo"
:analogData=
"analogData"
@
showInfo=
"showInfo"
></NoticeDialog>
:currentChatRoomInfo=
"currentChatRoomInfo"
:analogData=
"analogData"
@
showInfo=
"showInfo"
></NoticeDialog>
<ChatRoomDialog
v-if=
"chatRoomVisible"
:visible=
"chatRoomVisible"
@
handleCancel=
"closeDialogChatRoom"
<ChatRoomDialog
v-if=
"chatRoomVisible"
:visible=
"chatRoomVisible"
ref=
"myChatRoom"
:analogData=
"analogData"
:currentChatRoomInfo=
"currentChatRoomInfo"
:stompClient=
"stompClient"
>
@
handleCancel=
"closeDialogChatRoom"
:analogData=
"analogData"
:currentChatRoomInfo=
"currentChatRoomInfo"
:stompClient=
"stompClient"
>
</ChatRoomDialog>
</ChatRoomDialog>
<ChatRoomPeople
v-if=
"chatRoomPeopleVisible"
:visible=
"chatRoomPeopleVisib
le"
<ChatRoomPeople
ref=
"myChatRoomPeople"
@
handleCancel=
"closeDialogChatRoomPeop
le"
@
handleCancel=
"closeDialogChatRoomPeople"
:peopleList=
"peopleList"
></ChatRoomPeople>
:peopleList=
"peopleList"
></ChatRoomPeople>
<el-tooltip
placement=
"left"
class=
"myButtonList"
v-if=
"isInfo"
>
<el-tooltip
placement=
"left"
class=
"myButtonList"
v-if=
"isInfo"
>
<div
class=
"myTools"
slot=
"content"
>
<div
class=
"myTools"
slot=
"content"
>
<div>
<div>
...
@@ -175,211 +141,34 @@ import arrow from '../../assets/img/ddkz/8.png';
...
@@ -175,211 +141,34 @@ import arrow from '../../assets/img/ddkz/8.png';
import
avatar
from
'
../../assets/img/ddkz/headPhoto.jpg
'
;
import
avatar
from
'
../../assets/img/ddkz/headPhoto.jpg
'
;
import
NoticeDialog
from
'
../../view/ddkz/components/noticeDialog.vue
'
;
import
NoticeDialog
from
'
../../view/ddkz/components/noticeDialog.vue
'
;
import
ChatRoomDialog
from
"
./components/chatRoomDialog.vue
"
;
import
ChatRoomDialog
from
"
./components/chatRoomDialog.vue
"
;
import
ChatRoomPeople
from
"
.
/components/chatRoomPeople.vue
"
;
import
ChatRoomPeople
from
"
@/view/ddkz
/components/chatRoomPeople.vue
"
;
import
{
getChatRoomList
,
getChatRoomInfo
}
from
"
../../api/chat/chatRoom
"
;
import
{
getChatRoomList
,
getChatRoomInfo
}
from
"
../../api/chat/chatRoom
"
;
import
{
getRecordsByPaging
}
from
'
../../api/chat/chatRecords
'
;
import
{
getRecordsByPaging
,
getFileUrl
}
from
'
../../api/chat/chatRecords
'
;
import
textImg
from
'
@/assets/img/ddkz/tool1.png
'
;
import
excelImg
from
'
@/assets/img/ddkz/tool5.png
'
;
import
'
../../util/stomp.min.js
'
import
'
../../util/stomp.min.js
'
import
{
getTime_extent
,
download
}
from
'
@/util/http_util.js
'
;
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
form
:
{
form
:
{
keyWord
:
''
,
keyWord
:
null
,
date
:
''
date
Range
:
[]
},
},
formInfo
:
{
formInfo
:
{
topic
:
''
,
day
:
null
,
step
:
''
fromUser
:
null
},
},
analogData
:
[
analogData
:
[],
// {
// title: '马克龙:G20宣言不是俄方“外交胜利”',
// date: '2023-09-12 08:54:00',
// text: '据路透社报道,法国总统马克龙10日称,二十国集团(G20)领导人新德里峰会宣言不是俄罗斯的“外交胜利”。报道称,马克龙表示,为解决国际经济问题而成立的G20不是可以期待实现俄乌冲突外交进展的场合。另据法新社报道,俄罗斯外长拉夫罗夫10日表示,G20领导人新德里峰会是一个“成功”。报道称,拉夫罗夫说:“我们努力阻止西方将峰会议程‘乌克兰化’的企图。”他还表示,峰会宣言“根本没有提到俄罗斯”。',
// isRed: true,
// isBlue: false,
// isYellow: true
// },
// {
// title: '马克龙:G20宣言不是俄方“外交胜利”',
// date: '2023-09-12 08:54:00',
// text: '据路透社报道,法国总统马克龙10日称,二十国集团(G20)领导人新德里峰会宣言不是俄罗斯的“外交胜利”。报道称,马克龙表示,为解决国际经济问题而成立的G20不是可以期待实现俄乌冲突外交进展的场合。另据法新社报道,俄罗斯外长拉夫罗夫10日表示,G20领导人新德里峰会是一个“成功”。报道称,拉夫罗夫说:“我们努力阻止西方将峰会议程‘乌克兰化’的企图。”他还表示,峰会宣言“根本没有提到俄罗斯”。',
// isRed: true,
// isBlue: true,
// isYellow: true
// },
// {
// title: '马克龙:G20宣言不是俄方“外交胜利”',
// date: '2023-09-12 08:54:00',
// text: '据路透社报道,法国总统马克龙10日称,二十国集团(G20)领导人新德里峰会宣言不是俄罗斯的“外交胜利”。报道称,马克龙表示,为解决国际经济问题而成立的G20不是可以期待实现俄乌冲突外交进展的场合。另据法新社报道,俄罗斯外长拉夫罗夫10日表示,G20领导人新德里峰会是一个“成功”。报道称,拉夫罗夫说:“我们努力阻止西方将峰会议程‘乌克兰化’的企图。”他还表示,峰会宣言“根本没有提到俄罗斯”。',
// isRed: true,
// isBlue: true,
// isYellow: true
// },
// {
// title: '马克龙:G20宣言不是俄方“外交胜利”',
// date: '2023-09-12 08:54:00',
// text: '据路透社报道,法国总统马克龙10日称,二十国集团(G20)领导人新德里峰会宣言不是俄罗斯的“外交胜利”。报道称,马克龙表示,为解决国际经济问题而成立的G20不是可以期待实现俄乌冲突外交进展的场合。另据法新社报道,俄罗斯外长拉夫罗夫10日表示,G20领导人新德里峰会是一个“成功”。报道称,拉夫罗夫说:“我们努力阻止西方将峰会议程‘乌克兰化’的企图。”他还表示,峰会宣言“根本没有提到俄罗斯”。',
// isRed: false,
// isBlue: true,
// isYellow: true
// },
// {
// title: '马克龙:G20宣言不是俄方“外交胜利”',
// date: '2023-09-12 08:54:00',
// text: '据路透社报道,法国总统马克龙10日称,二十国集团(G20)领导人新德里峰会宣言不是俄罗斯的“外交胜利”。报道称,马克龙表示,为解决国际经济问题而成立的G20不是可以期待实现俄乌冲突外交进展的场合。另据法新社报道,俄罗斯外长拉夫罗夫10日表示,G20领导人新德里峰会是一个“成功”。报道称,拉夫罗夫说:“我们努力阻止西方将峰会议程‘乌克兰化’的企图。”他还表示,峰会宣言“根本没有提到俄罗斯”。',
// isRed: true,
// isBlue: false,
// isYellow: true
// },
// {
// title: '马克龙:G20宣言不是俄方“外交胜利”',
// date: '2023-09-12 08:54:00',
// text: '据路透社报道,法国总统马克龙10日称,二十国集团(G20)领导人新德里峰会宣言不是俄罗斯的“外交胜利”。报道称,马克龙表示,为解决国际经济问题而成立的G20不是可以期待实现俄乌冲突外交进展的场合。另据法新社报道,俄罗斯外长拉夫罗夫10日表示,G20领导人新德里峰会是一个“成功”。报道称,拉夫罗夫说:“我们努力阻止西方将峰会议程‘乌克兰化’的企图。”他还表示,峰会宣言“根本没有提到俄罗斯”。',
// isRed: false,
// isBlue: false,
// isYellow: true
// },
// {
// title: '马克龙:G20宣言不是俄方“外交胜利”',
// date: '2023-09-12 08:54:00',
// text: '据路透社报道,法国总统马克龙10日称,二十国集团(G20)领导人新德里峰会宣言不是俄罗斯的“外交胜利”。报道称,马克龙表示,为解决国际经济问题而成立的G20不是可以期待实现俄乌冲突外交进展的场合。另据法新社报道,俄罗斯外长拉夫罗夫10日表示,G20领导人新德里峰会是一个“成功”。报道称,拉夫罗夫说:“我们努力阻止西方将峰会议程‘乌克兰化’的企图。”他还表示,峰会宣言“根本没有提到俄罗斯”。',
// isRed: true,
// isBlue: true,
// isYellow: true
// },
// {
// title: '马克龙:G20宣言不是俄方“外交胜利”',
// date: '2023-09-12 08:54:00',
// text: '据路透社报道,法国总统马克龙10日称,二十国集团(G20)领导人新德里峰会宣言不是俄罗斯的“外交胜利”。报道称,马克龙表示,为解决国际经济问题而成立的G20不是可以期待实现俄乌冲突外交进展的场合。另据法新社报道,俄罗斯外长拉夫罗夫10日表示,G20领导人新德里峰会是一个“成功”。报道称,拉夫罗夫说:“我们努力阻止西方将峰会议程‘乌克兰化’的企图。”他还表示,峰会宣言“根本没有提到俄罗斯”。',
// isRed: false,
// isBlue: true,
// isYellow: true
// },
// {
// title: '马克龙:G20宣言不是俄方“外交胜利”',
// date: '2023-09-12 08:54:00',
// text: '据路透社报道,法国总统马克龙10日称,二十国集团(G20)领导人新德里峰会宣言不是俄罗斯的“外交胜利”。报道称,马克龙表示,为解决国际经济问题而成立的G20不是可以期待实现俄乌冲突外交进展的场合。另据法新社报道,俄罗斯外长拉夫罗夫10日表示,G20领导人新德里峰会是一个“成功”。报道称,拉夫罗夫说:“我们努力阻止西方将峰会议程‘乌克兰化’的企图。”他还表示,峰会宣言“根本没有提到俄罗斯”。',
// isRed: false,
// isBlue: false,
// isYellow: true
// },
// {
// title: '马克龙:G20宣言不是俄方“外交胜利”',
// date: '2023-09-12 08:54:00',
// text: '据路透社报道,法国总统马克龙10日称,二十国集团(G20)领导人新德里峰会宣言不是俄罗斯的“外交胜利”。报道称,马克龙表示,为解决国际经济问题而成立的G20不是可以期待实现俄乌冲突外交进展的场合。另据法新社报道,俄罗斯外长拉夫罗夫10日表示,G20领导人新德里峰会是一个“成功”。报道称,拉夫罗夫说:“我们努力阻止西方将峰会议程‘乌克兰化’的企图。”他还表示,峰会宣言“根本没有提到俄罗斯”。',
// isRed: false,
// isBlue: false,
// isYellow: true
// },
// {
// title: '马克龙:G20宣言不是俄方“外交胜利”',
// date: '2023-09-12 08:54:00',
// text: '据路透社报道,法国总统马克龙10日称,二十国集团(G20)领导人新德里峰会宣言不是俄罗斯的“外交胜利”。报道称,马克龙表示,为解决国际经济问题而成立的G20不是可以期待实现俄乌冲突外交进展的场合。另据法新社报道,俄罗斯外长拉夫罗夫10日表示,G20领导人新德里峰会是一个“成功”。报道称,拉夫罗夫说:“我们努力阻止西方将峰会议程‘乌克兰化’的企图。”他还表示,峰会宣言“根本没有提到俄罗斯”。',
// isRed: false,
// isBlue: false,
// isYellow: true
// },
// {
// title: '马克龙:G20宣言不是俄方“外交胜利”',
// date: '2023-09-12 08:54:00',
// text: '据路透社报道,法国总统马克龙10日称,二十国集团(G20)领导人新德里峰会宣言不是俄罗斯的“外交胜利”。报道称,马克龙表示,为解决国际经济问题而成立的G20不是可以期待实现俄乌冲突外交进展的场合。另据法新社报道,俄罗斯外长拉夫罗夫10日表示,G20领导人新德里峰会是一个“成功”。报道称,拉夫罗夫说:“我们努力阻止西方将峰会议程‘乌克兰化’的企图。”他还表示,峰会宣言“根本没有提到俄罗斯”。',
// isRed: false,
// isBlue: false,
// isYellow: true
// },
// {
// title: '马克龙:G20宣言不是俄方“外交胜利”',
// date: '2023-09-12 08:54:00',
// text: '据路透社报道,法国总统马克龙10日称,二十国集团(G20)领导人新德里峰会宣言不是俄罗斯的“外交胜利”。报道称,马克龙表示,为解决国际经济问题而成立的G20不是可以期待实现俄乌冲突外交进展的场合。另据法新社报道,俄罗斯外长拉夫罗夫10日表示,G20领导人新德里峰会是一个“成功”。报道称,拉夫罗夫说:“我们努力阻止西方将峰会议程‘乌克兰化’的企图。”他还表示,峰会宣言“根本没有提到俄罗斯”。',
// isRed: false,
// isBlue: false,
// isYellow: true
// },
// {
// title: '马克龙:G20宣言不是俄方“外交胜利”',
// date: '2023-09-12 08:54:00',
// text: '据路透社报道,法国总统马克龙10日称,二十国集团(G20)领导人新德里峰会宣言不是俄罗斯的“外交胜利”。报道称,马克龙表示,为解决国际经济问题而成立的G20不是可以期待实现俄乌冲突外交进展的场合。另据法新社报道,俄罗斯外长拉夫罗夫10日表示,G20领导人新德里峰会是一个“成功”。报道称,拉夫罗夫说:“我们努力阻止西方将峰会议程‘乌克兰化’的企图。”他还表示,峰会宣言“根本没有提到俄罗斯”。',
// isRed: false,
// isBlue: false,
// isYellow: true
// },
// {
// title: '马克龙:G20宣言不是俄方“外交胜利”',
// date: '2023-09-12 08:54:00',
// text: '据路透社报道,法国总统马克龙10日称,二十国集团(G20)领导人新德里峰会宣言不是俄罗斯的“外交胜利”。报道称,马克龙表示,为解决国际经济问题而成立的G20不是可以期待实现俄乌冲突外交进展的场合。另据法新社报道,俄罗斯外长拉夫罗夫10日表示,G20领导人新德里峰会是一个“成功”。报道称,拉夫罗夫说:“我们努力阻止西方将峰会议程‘乌克兰化’的企图。”他还表示,峰会宣言“根本没有提到俄罗斯”。',
// isRed: false,
// isBlue: false,
// isYellow: true
// },
// {
// title: '马克龙:G20宣言不是俄方“外交胜利”',
// date: '2023-09-12 08:54:00',
// text: '据路透社报道,法国总统马克龙10日称,二十国集团(G20)领导人新德里峰会宣言不是俄罗斯的“外交胜利”。报道称,马克龙表示,为解决国际经济问题而成立的G20不是可以期待实现俄乌冲突外交进展的场合。另据法新社报道,俄罗斯外长拉夫罗夫10日表示,G20领导人新德里峰会是一个“成功”。报道称,拉夫罗夫说:“我们努力阻止西方将峰会议程‘乌克兰化’的企图。”他还表示,峰会宣言“根本没有提到俄罗斯”。',
// isRed: false,
// isBlue: false,
// isYellow: true
// },
],
isInfo
:
false
,
isInfo
:
false
,
options
:
[{
options
:
[],
value
:
'
2023081501
'
,
optionsFrom
:
[],
label
:
'
2023年08月15日******课题
'
},
{
value
:
'
2023081502
'
,
label
:
'
2023年08月15日******课题
'
},
{
value
:
'
2023081503
'
,
label
:
'
2023年08月15日******课题
'
},
{
value
:
'
2023081504
'
,
label
:
'
2023年08月15日******课题
'
},
{
value
:
'
2023081505
'
,
label
:
'
2023年08月15日******课题
'
}],
goBack
:
goBack
,
goBack
:
goBack
,
newsList
:
[],
newsList
:
[],
arrow
:
arrow
,
arrow
:
arrow
,
personList
:
[[
personList
:
[],
{
publicNoticeList
:
[],
name
:
'
部长 李叔
'
,
isLine
:
true
},
{
name
:
'
副部长 李文
'
,
isLine
:
false
},
{
name
:
'
助理 李叔文
'
,
isLine
:
true
}
],
[
{
name
:
'
部长 李叔
'
,
isLine
:
false
},
{
name
:
'
副部长 李文
'
,
isLine
:
true
},
{
name
:
'
助理 李叔文
'
,
isLine
:
true
}
],
[
{
name
:
'
部长 李叔
'
,
isLine
:
true
},
{
name
:
'
副部长 李文
'
,
isLine
:
false
},
{
name
:
'
助理 李叔文
'
,
isLine
:
false
}
]],
chatPerson
:
{
chatPerson
:
{
name
:
''
,
name
:
''
,
isLine
:
undefined
isLine
:
undefined
...
@@ -400,8 +189,10 @@ export default {
...
@@ -400,8 +189,10 @@ export default {
peopleList
:
[],
peopleList
:
[],
// chatMessageList: [],
// chatMessageList: [],
currentChatRoomInfo
:
{},
currentChatRoomInfo
:
{},
stompClient
:
''
,
stompClient
:
{},
ws
:
null
ws
:
null
,
excelImg
:
excelImg
,
textImg
:
textImg
}
}
},
},
components
:
{
components
:
{
...
@@ -421,27 +212,65 @@ export default {
...
@@ -421,27 +212,65 @@ export default {
getChatRoomInfo
(
item
.
id
,
this
.
userInfo
.
account
).
then
(
res
=>
{
getChatRoomInfo
(
item
.
id
,
this
.
userInfo
.
account
).
then
(
res
=>
{
this
.
peopleList
=
res
.
chatRoomMemberRelationBOList
;
this
.
peopleList
=
res
.
chatRoomMemberRelationBOList
;
});
});
//分页查询群聊天记录
this
.
getRecordsByPagingFn
(
item
);
getRecordsByPaging
(
item
.
id
,
1
,
100
,
'
2020-01-01 00:00:00
'
,
'
2023-10-01 00:00:00
'
).
then
(
res1
=>
{
}
let
newsArr
=
[];
},
res1
.
records
.
forEach
(
item
=>
{
//分页查询群聊天记录
let
obj
=
{
time
:
''
,
news
:
[]
};
getRecordsByPagingFn
(
item
)
{
if
(
newsArr
.
some
(
newsArrChild
=>
{
return
newsArrChild
.
time
==
item
.
createTime
.
slice
(
0
,
10
)
}))
{
getRecordsByPaging
(
item
.
id
,
1
,
100
,
this
.
form
.
dateRange
.
length
>
0
?
this
.
form
.
dateRange
[
0
]
:
'
2020-01-01 00:00:00
'
,
this
.
form
.
dateRange
.
length
>
0
?
this
.
form
.
dateRange
[
1
]
:
getTime_extent
(
0
).
pre_rq_end
).
then
(
res1
=>
{
newsArr
.
forEach
(
item1
=>
{
this
.
publicNoticeList
=
res1
.
records
;
if
(
item1
.
time
==
item
.
createTime
.
slice
(
0
,
10
))
{
this
.
dataOrderByParams
(
null
,
null
);
item1
.
news
.
push
({
time
:
item
.
createTime
,
title
:
item
.
title
,
content
:
item
.
content
,
from
:
item
.
fromUserId
,
teamInfo
:
item
.
teamInfo
});
let
newsArr
=
[],
dayArr
=
[];
}
this
.
optionsFrom
=
[];
})
this
.
publicNoticeList
.
forEach
(
item
=>
{
}
else
{
let
obj
=
{
time
:
''
,
news
:
[]
};
obj
.
time
=
item
.
createTime
.
slice
(
0
,
10
);
if
(
this
.
optionsFrom
.
indexOf
(
item
.
fromUserId
)
==
-
1
)
{
obj
.
news
.
push
({
time
:
item
.
createTime
,
title
:
item
.
title
,
content
:
item
.
content
,
from
:
item
.
fromUserId
,
teamInfo
:
item
.
teamInfo
});
this
.
optionsFrom
.
push
(
item
.
fromUserId
);
newsArr
.
push
(
obj
);
}
}
if
(
newsArr
.
some
(
newsArrChild
=>
{
return
newsArrChild
.
time
==
item
.
createTime
.
slice
(
0
,
10
)
}))
{
});
newsArr
.
forEach
(
item1
=>
{
this
.
newsList
=
newsArr
;
if
(
item1
.
time
==
item
.
createTime
.
slice
(
0
,
10
))
{
item1
.
news
.
push
({
time
:
item
.
createTime
,
title
:
item
.
title
,
content
:
item
.
content
,
from
:
item
.
fromUserId
,
teamInfo
:
item
.
teamInfo
});
}
})
}
else
{
obj
.
time
=
item
.
createTime
.
slice
(
0
,
10
);
dayArr
.
push
(
item
.
createTime
.
slice
(
0
,
10
));
this
.
options
=
dayArr
;
obj
.
news
.
push
({
time
:
item
.
createTime
,
title
:
item
.
title
,
content
:
item
.
content
,
from
:
item
.
fromUserId
,
teamInfo
:
item
.
teamInfo
});
newsArr
.
push
(
obj
);
}
});
});
});
},
dataOrderByParams
(
day
,
user
)
{
let
newsArr
=
[];
let
tmpArr
=
this
.
publicNoticeList
;
if
(
day
==
null
&&
user
!=
null
)
{
tmpArr
=
this
.
publicNoticeList
.
filter
(
item
=>
{
return
item
.
fromUserId
==
user
});
}
else
if
(
day
!=
null
&&
user
==
null
)
{
tmpArr
=
this
.
publicNoticeList
.
filter
(
item
=>
{
return
item
.
createTime
.
slice
(
0
,
10
)
==
day
});
}
else
if
(
day
!=
null
&&
user
!=
null
)
{
tmpArr
=
this
.
publicNoticeList
.
filter
(
item
=>
{
return
item
.
fromUserId
==
user
&&
item
.
createTime
.
slice
(
0
,
10
)
==
day
});
}
}
tmpArr
.
forEach
(
item
=>
{
console
.
log
(
item
);
let
obj
=
{
time
:
''
,
news
:
[]
};
let
fileUrl
=
null
;
fileUrl
=
item
.
attachment
?
'
api/rest/file/viewPicture/CHAT?objectName=
'
+
item
.
attachment
:
null
;
if
(
newsArr
.
some
(
newsArrChild
=>
{
return
newsArrChild
.
time
==
item
.
createTime
.
slice
(
0
,
10
)
}))
{
newsArr
.
forEach
(
item1
=>
{
if
(
item1
.
time
==
item
.
createTime
.
slice
(
0
,
10
))
{
item1
.
news
.
push
({
time
:
item
.
createTime
,
title
:
item
.
title
,
content
:
item
.
content
,
from
:
item
.
fromUserId
,
teamInfo
:
item
.
teamInfo
,
url
:
fileUrl
,
type
:
item
.
messageForm
,
attachment
:
item
.
attachment
});
}
})
}
else
{
obj
.
time
=
item
.
createTime
.
slice
(
0
,
10
);
obj
.
news
.
push
({
time
:
item
.
createTime
,
title
:
item
.
title
,
content
:
item
.
content
,
from
:
item
.
fromUserId
,
teamInfo
:
item
.
teamInfo
,
url
:
fileUrl
,
type
:
item
.
messageForm
,
attachment
:
item
.
attachment
});
newsArr
.
push
(
obj
);
}
});
this
.
newsList
=
newsArr
;
},
},
selectPerson
(
item
)
{
selectPerson
(
item
)
{
this
.
chatPerson
=
item
;
this
.
chatPerson
=
item
;
...
@@ -466,21 +295,39 @@ export default {
...
@@ -466,21 +295,39 @@ export default {
},
},
sendNotice
()
{
sendNotice
()
{
this
.
visible
=
true
;
this
.
visible
=
true
;
this
.
$nextTick
(()
=>
{
this
.
$refs
.
myNotice
.
showDialog
();
})
// if (this.$refs.myNotice) {
// this.$refs.myNotice.showDialog();
// }
},
},
closeDialogChatRoom
()
{
closeDialogChatRoom
()
{
this
.
chatRoomVisible
=
false
;
this
.
chatRoomVisible
=
false
;
},
},
showChatRoom
()
{
showChatRoom
()
{
this
.
chatRoomVisible
=
true
;
this
.
chatRoomVisible
=
true
;
// this.$nextTick(() => {
// this.$refs.myChatRoom.showDialog();
// })
// if (this.$refs.myChatRoom) {
// this.$refs.myChatRoom.showDialog();
// }
},
},
closeDialogChatRoomPeople
()
{
closeDialogChatRoomPeople
()
{
this
.
chatRoomPeopleVisible
=
false
;
this
.
chatRoomPeopleVisible
=
false
;
},
},
showPeopleList
()
{
showPeopleList
()
{
this
.
chatRoomPeopleVisible
=
true
;
// this.chatRoomPeopleVisible = true;
this
.
$nextTick
(()
=>
{
this
.
$refs
.
myChatRoomPeople
.
showDialog
();
})
// if (this.$refs.myChatRoomPeople) {
// this.$refs.myChatRoomPeople.showDialog();
// }
},
},
queryChatRoomListFn
()
{
queryChatRoomListFn
(
params
)
{
getChatRoomList
(
this
.
userInfo
.
account
).
then
(
res
=>
{
getChatRoomList
(
params
).
then
(
res
=>
{
this
.
analogData
=
res
;
this
.
analogData
=
res
;
});
});
},
},
...
@@ -503,6 +350,12 @@ export default {
...
@@ -503,6 +350,12 @@ export default {
});
});
})
})
},
searchChatList
()
{
this
.
queryChatRoomListFn
({
startTime
:
this
.
form
.
dateRange
.
length
>
0
?
this
.
form
.
dateRange
[
0
]
:
null
,
endTime
:
this
.
form
.
dateRange
.
length
>
0
?
this
.
form
.
dateRange
[
1
]
:
null
,
userId
:
this
.
userInfo
.
account
,
keyword
:
this
.
form
.
keyWord
==
''
?
null
:
this
.
form
.
keyWord
});
},
showLiterature
(
url
)
{
window
.
open
(
"
api/rest/file/download/CHAT/
"
+
url
);
}
}
},
},
computed
:
{
computed
:
{
...
@@ -514,9 +367,30 @@ export default {
...
@@ -514,9 +367,30 @@ export default {
}
}
}
}
},
},
watch
:
{
'
formInfo.day
'
(
newVal
,
oldVal
)
{
if
(
newVal
==
''
)
{
this
.
formInfo
.
day
=
null
;
this
.
dataOrderByParams
(
null
,
this
.
formInfo
.
fromUser
);
}
else
{
this
.
dataOrderByParams
(
newVal
,
this
.
formInfo
.
fromUser
);
}
},
'
formInfo.fromUser
'
(
newVal
,
oldVal
)
{
if
(
newVal
==
''
)
{
this
.
formInfo
.
fromUser
=
null
;
this
.
dataOrderByParams
(
this
.
formInfo
.
day
,
null
);
}
else
{
this
.
dataOrderByParams
(
this
.
formInfo
.
day
,
newVal
);
}
}
},
mounted
()
{
mounted
()
{
this
.
queryChatRoomListFn
();
this
.
queryChatRoomListFn
(
{
userId
:
this
.
userInfo
.
account
}
);
this
.
connect
();
this
.
connect
();
},
destroyed
()
{
this
.
ws
.
onclose
();
}
}
}
}
</
script
>
</
script
>
...
@@ -541,7 +415,7 @@ export default {
...
@@ -541,7 +415,7 @@ export default {
.el-input
{
.el-input
{
float
:
left
;
float
:
left
;
width
:
200px
;
width
:
200px
;
margin-right
:
3
0px
;
// margin-right: 2
0px;
.el-input__inner
{
.el-input__inner
{
background
:
none
;
background
:
none
;
...
@@ -566,6 +440,26 @@ export default {
...
@@ -566,6 +440,26 @@ export default {
.el-input__inner
{
.el-input__inner
{
border
:
1px
solid
#3a5f94
c9
!
important
;
border
:
1px
solid
#3a5f94
c9
!
important
;
}
}
.searchButton
{
width
:
80px
;
height
:
30px
;
line-height
:
30px
;
margin-top
:
4px
;
margin-right
:
30px
;
font-size
:
14px
;
text-align
:
center
;
// background-image: url(../../../assets/img/fzjc/7.png);
background-size
:
100%
100%
;
background-repeat
:
no-repeat
;
border
:
1px
solid
#3a5f94
c9
!
important
;
border-radius
:
5px
;
cursor
:
pointer
;
&
:hover
{
background-color
:
#171a1c
f7
;
}
}
}
}
.ddkz-content
{
.ddkz-content
{
...
@@ -768,6 +662,8 @@ export default {
...
@@ -768,6 +662,8 @@ export default {
}
}
}
}
.everyDayNew
{
.everyDayNew
{
width
:
100%
;
width
:
100%
;
height
:
220px
;
height
:
220px
;
...
@@ -777,7 +673,7 @@ export default {
...
@@ -777,7 +673,7 @@ export default {
overflow-y
:
hidden
;
overflow-y
:
hidden
;
.everyTemplate
{
.everyTemplate
{
width
:
100
%
;
width
:
98
%
;
height
:
100%
;
height
:
100%
;
padding-bottom
:
10px
;
padding-bottom
:
10px
;
box-sizing
:
border-box
;
box-sizing
:
border-box
;
...
@@ -805,32 +701,65 @@ export default {
...
@@ -805,32 +701,65 @@ export default {
border-bottom
:
1px
solid
#7b7b7b
dd
;
border-bottom
:
1px
solid
#7b7b7b
dd
;
}
}
.everyDayNewCard
Info
{
.everyDayNewCard
Content
{
width
:
100%
;
width
:
100%
;
height
:
2
0px
;
height
:
11
0px
;
margin-top
:
10px
;
margin-top
:
10px
;
font-size
:
12px
;
display
:
flex
;
font-weight
:
600
;
color
:
white
;
.newsSource
{
.left-everyDayNew
{
color
:
red
;
width
:
50%
;
height
:
100%
;
.everyDayNewCardInfo
{
width
:
100%
;
height
:
20px
;
margin-top
:
10px
;
font-size
:
12px
;
font-weight
:
600
;
color
:
white
;
.newsSource
{
color
:
red
;
}
}
.everyDayNewCardText
{
width
:
100%
;
// height: calc(100% - 58px);
margin-top
:
5px
;
font-size
:
12px
;
font-weight
:
600
;
color
:
white
;
display
:
-
webkit-box
;
-webkit-box-orient
:
vertical
;
-webkit-line-clamp
:
5
;
/* 控制显示的行数 */
overflow
:
hidden
;
word-break
:
break-all
}
}
}
}
.everyDayNewCardContent
{
.right-everyDayNew
{
width
:
100%
;
width
:
50%
;
// height: calc(100% - 58px);
height
:
100%
;
margin-top
:
5px
;
text-align
:
center
;
font-size
:
12px
;
font-weight
:
600
;
img
{
color
:
white
;
width
:
100%
;
display
:
-
webkit-box
;
height
:
100%
;
-webkit-box-orient
:
vertical
;
}
-webkit-line-clamp
:
5
;
/* 控制显示的行数 */
video
{
overflow
:
hidden
;
width
:
100%
;
height
:
100%
;
}
}
}
}
}
}
.cardTypeDIRECTOR
{
.cardTypeDIRECTOR
{
...
@@ -851,217 +780,6 @@ export default {
...
@@ -851,217 +780,6 @@ export default {
}
}
}
}
.info-content-right
{
width
:
400px
;
height
:
100%
;
float
:
left
;
margin-left
:
20px
;
border
:
1px
solid
#445771
;
border-left
:
4px
solid
#445771
;
padding
:
10px
20px
;
box-sizing
:
border-box
;
display
:
none
;
.info-personInfo
{
width
:
100%
;
height
:
30%
;
.title
{
width
:
100%
;
height
:
30px
;
line-height
:
30px
;
img
{
width
:
20px
;
height
:
20px
;
}
span
{
font-size
:
16px
;
font-weight
:
500
;
color
:
white
;
vertical-align
:
text-bottom
;
}
}
.personInfo-content
{
width
:
100%
;
height
:
calc
(
100%
-
30px
);
.everyPersonList
{
width
:
100%
;
height
:
35px
;
line-height
:
35px
;
margin-top
:
10px
;
padding
:
0px
10px
;
font-size
:
13px
;
color
:
#f1f1f7
;
box-sizing
:
border-box
;
&
:nth-child
(
3n
)
{
background-image
:
url(../../assets/img/ddkz/12.png)
;
background-size
:
100%
100%
;
}
&
:nth-child
(
3n
+
1
)
{
background-image
:
url(../../assets/img/ddkz/13.png)
;
background-size
:
100%
100%
;
}
&
:nth-child
(
3n
+
2
)
{
background-image
:
url(../../assets/img/ddkz/14.png)
;
background-size
:
100%
100%
;
}
&
>
span
{
float
:
left
;
margin-left
:
10px
;
&
:hover
{
color
:
green
;
cursor
:
pointer
;
}
&
>
span
:first-child
{
float
:
left
;
}
&
>
span
:last-child
{
width
:
10px
;
height
:
10px
;
border-radius
:
50%
;
display
:
block
;
float
:
left
;
margin-top
:
12
.5px
;
margin-left
:
5px
;
}
}
}
}
}
.info-messageInfo
{
width
:
100%
;
height
:
70%
;
.title
{
width
:
100%
;
height
:
30px
;
line-height
:
30px
;
img
{
width
:
20px
;
height
:
20px
;
}
span
{
font-size
:
16px
;
font-weight
:
500
;
color
:
white
;
vertical-align
:
text-bottom
;
}
}
.messageInfo-content
{
width
:
100%
;
height
:
calc
(
100%
-
40px
);
margin-top
:
10px
;
padding
:
0px
10px
;
border
:
1px
solid
#254751
;
box-sizing
:
border-box
;
.chatPerson
{
width
:
100%
;
height
:
40px
;
line-height
:
40px
;
display
:
flex
;
justify-content
:
center
;
font-size
:
13px
;
border-bottom
:
1px
solid
#37383f
;
&
>
span
:first-child
{
width
:
10px
;
height
:
10px
;
border-radius
:
50%
;
display
:
block
;
float
:
left
;
margin-top
:
15px
;
margin-left
:
5px
;
}
&
>
span
:last-child
{
float
:
left
;
margin-left
:
10px
;
}
}
.chatContent
{
width
:
100%
;
height
:
60%
;
border-bottom
:
1px
solid
#37383f
;
padding
:
10px
0px
;
box-sizing
:
border-box
;
overflow-y
:
auto
;
.everyMessage
{
width
:
100%
;
margin-top
:
10px
;
&
>
div
{
width
:
100%
;
display
:
flex
;
align-items
:
center
;
margin-top
:
10px
;
font-size
:
13px
;
img
{
width
:
20px
;
height
:
20px
;
margin
:
0px
10px
;
}
&
>
div
{
padding
:
5px
10px
;
border-radius
:
5px
;
color
:
black
;
}
}
}
}
.chatSendMessage
{
width
:
100%
;
height
:
calc
(
40%
-
42px
);
position
:
relative
;
.messageContent
{
width
:
100%
;
height
:
100%
;
padding
:
5px
;
box-sizing
:
border-box
;
.el-textarea__inner
{
height
:
100%
!
important
;
color
:
white
!
important
;
background-color
:
transparent
!
important
;
border
:
1px
solid
#37383f
!
important
;
}
}
.sendMessageButtonList
{
position
:
absolute
;
right
:
10px
;
bottom
:
10px
;
}
}
}
}
}
}
}
}
}
...
...
src/view/home.vue
View file @
f9d6ea76
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
</div>
</div>
<div
class=
"button-list-right"
>
<div
class=
"button-list-right"
>
<div
v-for=
"(item, index) in modules.rightModule"
<div
v-for=
"(item, index) in modules.rightModule"
:class=
"['module-info', isSelected
-3 == index ? 'selectedModule' : '']"
@
click=
"choiceModule(index+
3)"
:class=
"['module-info', isSelected
- 3 == index ? 'selectedModule' : '']"
@
click=
"choiceModule(index +
3)"
v-text=
"item.name"
>
v-text=
"item.name"
>
</div>
</div>
</div>
</div>
...
@@ -338,6 +338,7 @@ export default {
...
@@ -338,6 +338,7 @@ export default {
background-size
:
100%
105%
;
background-size
:
100%
105%
;
background-repeat
:
no-repeat
;
background-repeat
:
no-repeat
;
color
:
white
;
color
:
white
;
.ant-layout-header
{
.ant-layout-header
{
background
:
none
;
background
:
none
;
}
}
...
@@ -352,6 +353,7 @@ export default {
...
@@ -352,6 +353,7 @@ export default {
font-size
:
13px
;
font-size
:
13px
;
letter-spacing
:
2px
;
letter-spacing
:
2px
;
font-weight
:
900
;
font-weight
:
900
;
h1
{
h1
{
font-size
:
34px
;
font-size
:
34px
;
letter-spacing
:
7px
;
letter-spacing
:
7px
;
...
@@ -360,7 +362,8 @@ export default {
...
@@ -360,7 +362,8 @@ export default {
margin-bottom
:
0px
!
important
;
margin-bottom
:
0px
!
important
;
font-family
:
cursive
;
font-family
:
cursive
;
text-align
:
center
;
text-align
:
center
;
span
{
span
{
background-image
:
linear-gradient
(
to
right
,
#498ce1
,
#75f8d2
,
#498ce1
);
background-image
:
linear-gradient
(
to
right
,
#498ce1
,
#75f8d2
,
#498ce1
);
color
:
transparent
;
color
:
transparent
;
-webkit-background-clip
:
text
;
-webkit-background-clip
:
text
;
...
@@ -846,5 +849,4 @@ export default {
...
@@ -846,5 +849,4 @@ export default {
transition
:
all
0
.4s
ease
;
transition
:
all
0
.4s
ease
;
cursor
:
pointer
;
cursor
:
pointer
;
}
}
}
}
</
style
>
</
style
>
\ No newline at end of file
\ No newline at end of file
src/view/sjgl/ddkzConfig.vue
0 → 100644
View file @
f9d6ea76
<
template
>
<div
class=
"ddkzConfig"
>
<el-tabs
type=
"border-card"
@
tab-click=
"handleTabClick"
v-model=
"activeTabs"
>
<el-tab-pane>
<span
slot=
"label"
><i
class=
"el-icon-date"
></i>
新增会议
</span>
<DdkzConfigAdd></DdkzConfigAdd>
</el-tab-pane>
<el-tab-pane>
<span
slot=
"label"
><i
class=
"el-icon-date"
></i>
会议列表
</span>
<DdkzConfigList></DdkzConfigList>
</el-tab-pane>
</el-tabs>
</div>
</
template
>
<
script
>
import
ddkzConfigAdd
from
'
../sjgl/ddkzConfig/ddkzConfigAdd.vue
'
;
import
ddkzConfigList
from
'
../sjgl/ddkzConfig/ddkzConfigList.vue
'
;
export
default
{
data
()
{
return
{
activeTabs
:
''
}
},
components
:{
DdkzConfigAdd
:
ddkzConfigAdd
,
DdkzConfigList
:
ddkzConfigList
},
methods
:
{
handleTabClick
()
{
}
}
}
</
script
>
<
style
lang=
"scss"
>
.ddkzConfig
{
width
:
99%
;
height
:
98%
;
padding
:
30px
;
box-sizing
:
border-box
;
overflow-y
:
auto
;
>
.el-tabs--border-card
{
width
:
calc
(
100%
-
4px
);
height
:
calc
(
100%
-
4px
);
border
:
2px
solid
#125473
;
border-radius
:
5px
;
box-sizing
:
border-box
;
background
:
#ffffff
00
;
>
.el-tabs__content
{
width
:
100%
;
height
:
calc
(
100%
-
40px
);
box-sizing
:
border-box
;
}
>
.el-tabs__header
{
background-color
:
unset
;
border-bottom
:
2px
solid
#125473
;
.el-tabs__item
{
color
:
#dedede
;
}
.el-tabs__item.is-active
{
color
:
#ffe000
;
background-color
:
#116791
;
border-right-color
:
#116791
;
border-left-color
:
#116791
;
}
.el-tabs__item
:not
(
.is-disabled
)
:hover
{
color
:
#ffe000
;
}
}
}
}
</
style
>
\ No newline at end of file
src/view/sjgl/ddkzConfig/ddkzConfigAdd.vue
0 → 100644
View file @
f9d6ea76
<
template
>
<div
class=
"addDdkzConfig"
>
<el-form
class=
"myForm"
label-position=
"right"
label-width=
"200px"
:model=
"formData"
>
<el-form-item
label=
"议题"
>
<el-input
v-model=
"formData.nickname"
></el-input>
</el-form-item>
<el-form-item
label=
"聊天室主持人"
>
<!--
<el-input
v-model=
"formData.chatroomOwner"
></el-input>
-->
<el-select
v-model=
"formData.chatroomOwner"
placeholder=
"请选择"
>
<el-option
v-for=
"item in allData"
:key=
"item.account"
:label=
"item.account"
:value=
"item.account"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"备注"
>
<el-input
v-model=
"formData.conRemark"
></el-input>
</el-form-item>
<el-form-item
label=
"与会方"
>
<div>
<el-button
type=
"primary"
@
click=
"addTeam"
>
增加与会方
</el-button>
</div>
<el-form
class=
"yhf"
v-for=
"(item, index) in formData.teams"
:key=
"index"
>
<el-form-item
label=
"队伍名称"
>
<el-input
v-model=
"item.teamName"
></el-input>
</el-form-item>
<el-form-item
label=
"参会立场"
>
<el-select
v-model=
"item.teamType"
placeholder=
"请选择"
>
<el-option
v-for=
"item in teamType"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"参会人员"
>
<div
class=
"PackView_transfer"
>
<div
class=
"ta-transfer"
>
<div
class=
"ta-transfer_left"
>
<div
class=
"transfer-view-head"
>
<div
class=
"head_left"
>
<el-checkbox
:indeterminate=
"item.invoking.isIndeterminate"
:disabled=
'allData.length == 0'
v-model=
"item.invoking.checkAll"
@
change=
"handleCheckAllChange($event, index, true)"
>
人员列表
</el-checkbox>
</div>
<div
class=
"head_right"
>
<span>
{{
item
.
invoking
.
selected_num
}}
</span>
<span>
/
</span>
<span>
{{
allData
.
length
}}
</span>
</div>
</div>
<div
class=
"transfer-view-main"
>
<el-checkbox-group
v-model=
"item.invoking.checkedCities"
@
change=
"handleCheckedCitiesChange($event, index, true)"
>
<div
class=
"transfer-view-item"
v-for=
"(item1, index1) in allData"
>
<el-checkbox
:label=
"item1.id"
:key=
"item1.account"
>
{{
item1
.
account
}}
</el-checkbox>
</div>
</el-checkbox-group>
</div>
</div>
<div
class=
"ta-transfer_btn"
>
<el-button
type=
"primary"
:disabled=
'item.parameter.selected_num == 0'
@
click=
"removeGoods(index)"
icon=
"el-icon-arrow-left"
>
离席
</el-button>
<el-button
type=
"primary"
:disabled=
'item.invoking.selected_num == 0'
@
click=
'addRemoveGoods(index)'
>
参会
<i
class=
"el-icon-arrow-right el-icon--right"
></i>
</el-button>
</div>
<div
class=
"ta-transfer_right"
>
<div
class=
"transfer-view-head"
>
<div
class=
"head_left"
>
<el-checkbox
:indeterminate=
"item.parameter.isIndeterminate"
:disabled=
'item.wpinfo.length == 0'
v-model=
"item.parameter.checkAll"
@
change=
"handleCheckAllChange($event, index)"
>
参会人员
</el-checkbox>
</div>
<div
class=
"head_right"
>
<span>
{{
item
.
parameter
.
selected_num
}}
</span>
<span>
/
</span>
<span>
{{
item
.
wpinfo
.
length
}}
</span>
</div>
</div>
<div
class=
"transfer-view-main"
>
<el-checkbox-group
v-model=
"item.parameter.checkedCities"
@
change=
"handleCheckedCitiesChange($event, index)"
>
<div
class=
"transfer-view-item"
v-for=
"(item1, index1) in item.wpinfo"
>
<el-checkbox
:label=
"item1.id"
:key=
"item1.account"
>
{{
item1
.
account
}}
</el-checkbox>
</div>
</el-checkbox-group>
</div>
</div>
</div>
</div>
</el-form-item>
</el-form>
</el-form-item>
<el-form-item>
<el-button
type=
"success"
@
click=
"createMeeting"
>
创建会议
</el-button>
</el-form-item>
</el-form>
</div>
</
template
>
<
script
>
import
{
getUserList
}
from
'
@/api/user.js
'
;
import
{
getTime_extent
}
from
'
@/util/http_util.js
'
;
import
{
createChatRoom
}
from
'
@/api/chat/chatRoom.js
'
;
export
default
{
data
()
{
return
{
formData
:
{
chatroomOwner
:
''
,
conRemark
:
''
,
nickname
:
''
,
chatroomHeadPic
:
''
,
teams
:
[
{
createTime
:
''
,
member
:
[],
teamName
:
''
,
teamType
:
''
,
invoking
:
{
checkedCities
:
[],
selected_num
:
0
,
isIndeterminate
:
false
,
checkAll
:
false
},
parameter
:
{
isIndeterminate
:
false
,
checkAll
:
false
,
checkedCities
:
[],
selected_num
:
0
,
dataAll
:
[]
},
wpinfo
:
[]
}
]
},
value
:
[],
teamType
:
[
{
value
:
'
DIRECTOR
'
,
label
:
'
中立方
'
},
{
value
:
'
RED
'
,
label
:
'
红方
'
},
{
value
:
'
BLUE
'
,
label
:
'
蓝方
'
},
{
value
:
'
OTHER
'
,
label
:
'
其他方
'
}
],
// dataAll: [],
allData
:
[],
tmpArr
:[],
bgData
:
[
{
invoking
:
{
checkedCities
:
[],
selected_num
:
0
,
isIndeterminate
:
false
,
checkAll
:
false
},
parameter
:
{
isIndeterminate
:
false
,
checkAll
:
false
,
checkedCities
:
[],
selected_num
:
0
,
dataAll
:
[]
},
wpinfo
:
[]
}
],
userList
:
[]
};
},
methods
:
{
addTeam
()
{
this
.
formData
.
teams
.
push
(
{
createTime
:
''
,
member
:
[],
teamName
:
''
,
teamType
:
''
,
invoking
:
{
checkedCities
:
[],
selected_num
:
0
,
isIndeterminate
:
false
,
checkAll
:
false
},
parameter
:
{
isIndeterminate
:
false
,
checkAll
:
false
,
checkedCities
:
[],
selected_num
:
0
,
dataAll
:
[]
},
wpinfo
:
[]
}
);
},
addRemoveGoods
(
index
)
{
//添加或者删除物品
let
formData
=
this
.
formData
.
teams
[
index
].
invoking
.
checkedCities
for
(
const
key
in
formData
)
{
for
(
const
k
in
this
.
allData
)
{
if
(
this
.
allData
[
k
].
id
==
formData
[
key
])
{
this
.
formData
.
teams
[
index
].
wpinfo
.
push
.
apply
(
this
.
formData
.
teams
[
index
].
wpinfo
,
this
.
allData
.
splice
(
k
,
1
))
}
}
}
for
(
const
key
in
this
.
formData
.
teams
[
index
].
wpinfo
)
{
this
.
formData
.
teams
[
index
].
parameter
.
dataAll
.
push
(
this
.
formData
.
teams
[
index
].
wpinfo
[
key
].
id
)
}
this
.
formData
.
teams
[
index
].
invoking
.
selected_num
=
0
this
.
formData
.
teams
[
index
].
invoking
.
isIndeterminate
=
false
this
.
formData
.
teams
[
index
].
invoking
.
checkedCities
=
[]
this
.
formData
.
teams
[
index
].
invoking
.
checkAll
=
false
},
removeGoods
(
index
)
{
//拿出
let
formData
=
this
.
formData
.
teams
[
index
].
parameter
.
checkedCities
for
(
const
key
in
formData
)
{
for
(
const
k
in
this
.
formData
.
teams
[
index
].
wpinfo
)
{
if
(
this
.
formData
.
teams
[
index
].
wpinfo
[
k
].
id
==
formData
[
key
])
{
this
.
allData
.
push
.
apply
(
this
.
allData
,
this
.
formData
.
teams
[
index
].
wpinfo
.
splice
(
k
,
1
))
}
}
}
this
.
formData
.
teams
[
index
].
parameter
.
selected_num
=
0
this
.
formData
.
teams
[
index
].
parameter
.
isIndeterminate
=
false
this
.
formData
.
teams
[
index
].
parameter
.
checkedCities
=
[]
this
.
formData
.
teams
[
index
].
parameter
.
checkAll
=
false
},
// ----------------------------
handleCheckAllChange
(
val
,
index
,
falg
)
{
//点击全选
let
tmpArr
=
[];
this
.
allData
.
forEach
(
item
=>
{
tmpArr
.
push
(
item
.
id
);
});
if
(
falg
)
{
this
.
formData
.
teams
[
index
].
invoking
.
checkedCities
=
val
?
tmpArr
:
[];
this
.
formData
.
teams
[
index
].
invoking
.
selected_num
=
val
?
tmpArr
.
length
:
0
this
.
formData
.
teams
[
index
].
invoking
.
isIndeterminate
=
false
;
}
else
{
this
.
formData
.
teams
[
index
].
parameter
.
checkedCities
=
val
?
this
.
formData
.
teams
[
index
].
parameter
.
dataAll
:
[]
this
.
formData
.
teams
[
index
].
parameter
.
selected_num
=
val
?
this
.
formData
.
teams
[
index
].
parameter
.
dataAll
.
length
:
0
this
.
formData
.
teams
[
index
].
parameter
.
isIndeterminate
=
false
;
}
},
handleCheckedCitiesChange
(
value
,
index
,
falg
)
{
//判断是否触发全选
if
(
falg
)
{
this
.
formData
.
teams
[
index
].
invoking
.
selected_num
=
value
.
length
value
.
length
>=
1
?
this
.
formData
.
teams
[
index
].
invoking
.
isIndeterminate
=
true
:
this
.
formData
.
teams
[
index
].
invoking
.
isIndeterminate
=
false
if
(
this
.
allData
.
length
==
value
.
length
)
{
this
.
formData
.
teams
[
index
].
invoking
.
checkAll
=
true
this
.
formData
.
teams
[
index
].
invoking
.
isIndeterminate
=
false
}
else
{
this
.
formData
.
teams
[
index
].
invoking
.
checkAll
=
false
}
}
else
{
this
.
formData
.
teams
[
index
].
parameter
.
selected_num
=
value
.
length
value
.
length
>=
1
?
this
.
formData
.
teams
[
index
].
parameter
.
isIndeterminate
=
true
:
this
.
formData
.
teams
[
index
].
parameter
.
isIndeterminate
=
false
if
(
this
.
formData
.
teams
[
index
].
wpinfo
.
length
==
value
.
length
)
{
this
.
formData
.
teams
[
index
].
parameter
.
checkAll
=
true
this
.
formData
.
teams
[
index
].
parameter
.
isIndeterminate
=
false
}
else
{
this
.
formData
.
teams
[
index
].
parameter
.
checkAll
=
false
}
}
},
getUserList
()
{
getUserList
().
then
(
res
=>
{
this
.
allData
=
res
;
this
.
tmpArr
=
res
;
})
},
createMeeting
()
{
this
.
formData
.
teams
.
forEach
(
item
=>
{
item
.
createTime
=
getTime_extent
(
0
).
currentDate
;
item
.
wpinfo
.
forEach
(
item1
=>
{
item
.
member
.
push
(
item1
.
account
);
})
});
createChatRoom
(
this
.
formData
).
then
(
res
=>
{
if
(
res
==
'
创建成功
'
)
{
this
.
$message
.
success
(
'
聊天室创建成功!
'
);
}
}).
catch
(
error
=>
{
this
.
$message
.
error
(
error
);
})
}
},
watch
:
{
'
formData.chatroomOwner
'
(
newVal
,
oldVal
)
{
let
tmp
=
this
.
tmpArr
.
filter
(
item
=>
{
return
item
.
account
==
oldVal
});
if
(
tmp
.
length
>
0
)
{
this
.
allData
.
push
(
tmp
[
0
]);
}
this
.
allData
=
this
.
allData
.
filter
(
item
=>
{
return
item
.
account
!=
newVal
});
}
},
mounted
()
{
this
.
getUserList
();
}
}
</
script
>
<
style
lang=
"scss"
>
.addDdkzConfig
{
width
:
100%
;
height
:
100%
;
overflow-y
:
auto
;
.myForm
{
.el-input
{
.el-input__inner
{
width
:
40%
;
color
:
white
!
important
;
background
:
none
!
important
;
border
:
1px
solid
#3a5f94
c9
!
important
;
box-shadow
:
0
0
10px
#3a5f94
c9
;
}
}
.el-select
{
.el-input__inner
{
width
:
200px
;
}
}
}
.yhf
{
width
:
48%
;
float
:
left
;
margin-top
:
2%
;
margin-left
:
1%
;
border
:
1px
solid
#3a5f94
c9
;
padding
:
20px
;
box-sizing
:
border-box
;
border-radius
:
4px
;
&
>
div
:first-child
,
&
>
:nth-child
(
2
)
{
margin-top
:
10px
;
display
:
flex
;
&
>
div
:first-child
{
width
:
150px
;
}
.el-input__inner
{
width
:
200px
;
}
}
.el-transfer-panel
{
width
:
170px
!
important
;
}
.myTransfer
{
margin-top
:
30px
;
}
.ta-transfer
{
width
:
100%
;
height
:
400px
;
margin-bottom
:
50px
;
box-sizing
:
border-box
;
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
.ta-transfer_left
,
.ta-transfer_right
{
width
:
30%
;
height
:
100%
;
background-color
:
#ffffff
;
border
:
1px
solid
#ebeef5
;
border-radius
:
5px
;
.transfer-view-head
{
width
:
100%
;
height
:
50px
;
background-color
:
#f5f7fa
;
border-bottom
:
1px
solid
#ebeef5
;
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
padding
:
0
10px
;
box-sizing
:
border-box
;
.head_left
{
display
:
flex
;
width
:
70%
;
height
:
100%
;
.el-checkbox
{
display
:
flex
;
align-items
:
center
;
height
:
100%
;
width
:
100%
;
}
.el-checkbox__label
{
font-size
:
16px
;
}
}
.head_right
{
width
:
30%
;
span
{
font-size
:
14px
;
color
:
#909399
;
}
}
}
.transfer-view-main
{
width
:
100%
;
height
:
calc
(
100%
-
50px
);
padding
:
10px
10px
0
10px
;
box-sizing
:
border-box
;
overflow-y
:
auto
;
.transfer-view-item
{
margin-bottom
:
10px
;
width
:
100%
;
height
:
20px
;
// background-color: #c5c1c1;
display
:
flex
;
align-items
:
center
;
.el-checkbox
{
display
:
flex
;
align-items
:
center
;
width
:
100%
;
height
:
100%
;
.el-checkbox__label
{
color
:
#606266
;
}
.el-checkbox__input.is-checked
+
.el-checkbox__label
{
color
:
#409eff
;
}
}
.el-checkbox
:hover
{
.el-checkbox__label
{
color
:
#409eff
;
}
}
}
}
}
.ta-transfer_btn
{
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
width
:
30%
;
height
:
100px
;
}
}
}
.el-form-item__label
{
color
:
white
;
}
}
</
style
>
\ No newline at end of file
src/view/sjgl/ddkzConfig/ddkzConfigList.vue
0 → 100644
View file @
f9d6ea76
<
template
>
<div
class=
"ddkzConfigList"
>
<div
class=
"ddkzCondition"
>
<el-date-picker
value-format=
"yyyy-MM-dd HH:mm:ss"
v-model=
"dateRange"
type=
"daterange"
range-separator=
"至"
start-placeholder=
"开始时间"
end-placeholder=
"结束时间"
:default-time=
"['00:00:00', '23:59:59']"
>
</el-date-picker>
<div
class=
"searchButton"
@
click=
"searchChatList"
>
搜索
</div>
</div>
<div
class=
"ddkzContent"
>
<el-table
:data=
"meetingList"
tooltip-effect=
"dark"
style=
"width: 100%;"
height=
"calc(100% - 60px)"
@
selection-change=
"handleSelectionChange"
>
<!--
<el-table-column
type=
"selection"
width=
"55"
>
</el-table-column>
-->
<el-table-column
prop=
"nickname"
label=
"主题"
align=
"center"
></el-table-column>
<el-table-column
prop=
"chatroomOwner"
label=
"支持人"
align=
"center"
></el-table-column>
<el-table-column
prop=
"createTime"
label=
"日期"
align=
"center"
></el-table-column>
<!--
<el-table-column
label=
"操作"
align=
"center"
width=
"500"
>
<template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"danger"
@
click=
"deleteMeeting(scope.row)"
>
删除
</el-button>
</
template
>
</el-table-column>
-->
</el-table>
</div>
</div>
</template>
<
script
>
import
{
getChatRoomList
}
from
"
@/api/chat/chatRoom
"
;
export
default
{
data
()
{
return
{
dateRange
:
[],
meetingList
:
[]
}
},
methods
:
{
handleSelectionChange
()
{
},
deleteMeeting
(
item
)
{
},
queryChatRoomListFn
(
param
)
{
getChatRoomList
(
param
).
then
(
res
=>
{
this
.
meetingList
=
res
;
});
},
searchChatList
(){
if
(
this
.
dateRange
.
length
==
2
){
this
.
queryChatRoomListFn
({
startTime
:
this
.
dateRange
[
0
],
endTime
:
this
.
dateRange
[
1
],
userId
:
this
.
userInfo
.
account
})
}
else
{
this
.
queryChatRoomListFn
({
userId
:
this
.
userInfo
.
account
})
}
}
},
computed
:
{
userInfo
()
{
if
(
this
.
$store
.
getters
.
userInfo
)
{
return
this
.
$store
.
getters
.
userInfo
;
}
else
{
return
{
account
:
""
};
}
}
},
mounted
()
{
this
.
queryChatRoomListFn
({
userId
:
this
.
userInfo
.
account
});
}
}
</
script
>
<
style
lang=
"scss"
>
.ddkzConfigList
{
width
:
100%
;
height
:
100%
;
.ddkzCondition
{
width
:
100%
;
height
:
80px
;
display
:
flex
;
.el-date-editor
{
background
:
none
;
span
{
color
:
white
;
}
.el-range-input
{
color
:
white
;
background
:
none
;
}
}
.el-input__inner
{
border
:
1px
solid
#3a5f94
c9
!
important
;
}
.searchButton
{
width
:
80px
;
height
:
30px
;
line-height
:
30px
;
margin-top
:
4px
;
margin-left
:
20px
;
font-size
:
14px
;
text-align
:
center
;
// background-image: url(../../../assets/img/fzjc/7.png);
background-size
:
100%
100%
;
background-repeat
:
no-repeat
;
border
:
1px
solid
#3a5f94
c9
!
important
;
border-radius
:
5px
;
cursor
:
pointer
;
}
}
.ddkzContent
{
width
:
100%
;
height
:
calc
(
100%
-
50px
);
overflow-y
:
auto
;
.el-table
tr
{
background-color
:
transparent
!
important
;
color
:
#ffffff
c7
;
}
.el-table
thead
tr
{
height
:
40px
;
background
:
url(../../../assets/img/setting/tr1.png)
no-repeat
;
background-size
:
100%
100%
;
}
.el-table
th
{
background-color
:
transparent
;
}
tbody
tr
{
border-bottom
:
1px
solid
#252631
;
}
.el-table
td
{
border-bottom
:
1px
solid
#252631
;
border-right
:
unset
;
}
.el-table--enable-row-hover
.el-table__body
tr
:hover
>
td
{
background-color
:
#82848a
78
;
}
.el-table
th
{
border
:
unset
;
}
.el-table--fit
{
background
:
none
!
important
;
border
:
unset
;
}
.el-icon-delete-solid
{
color
:
red
;
cursor
:
pointer
;
font-size
:
18px
;
}
.el-icon-edit
{
color
:
#1172d8
;
cursor
:
pointer
;
font-size
:
20px
;
}
.el-icon-view
{
color
:
#00ffff
;
font-size
:
20px
;
cursor
:
pointer
;
}
.
el-table--group
:
:
after
,
.
el-table--border
::
after
,
.
el-table
::
before
{
background-color
:
unset
;
}
.pagination-div
{
width
:
100%
;
height
:
50px
;
.el-pagination
{
margin-top
:
9px
;
text-align
:
right
;
.el-pagination__total
{
color
:
white
;
}
.el-pagination__jump
{
color
:
white
;
}
}
.myPagination.is-background
.el-pager
li
:not
(
.disabled
)
.active
{
color
:
#fff
;
border
:
1px
solid
#146a80
;
box-shadow
:
0
0
10px
#1b6097
;
background-color
:
#1d2d46
;
}
}
}
}
</
style
>
\ No newline at end of file
webpack.config.js
View file @
f9d6ea76
...
@@ -13,6 +13,11 @@ module.exports = {
...
@@ -13,6 +13,11 @@ module.exports = {
filename
:
'
[name].[contenthash:8].js
'
,
filename
:
'
[name].[contenthash:8].js
'
,
path
:
path
.
resolve
(
__dirname
,
'
./dist
'
)
// 打包后的目录
path
:
path
.
resolve
(
__dirname
,
'
./dist
'
)
// 打包后的目录
},
},
resolve
:{
alias
:{
'
@
'
:
path
.
join
(
__dirname
,
'
./src/
'
)
}
},
plugins
:
[
plugins
:
[
new
HtmlWebpackPlugin
({
new
HtmlWebpackPlugin
({
template
:
path
.
resolve
(
__dirname
,
'
./index.html
'
),
template
:
path
.
resolve
(
__dirname
,
'
./index.html
'
),
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment