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
d9953e68
Commit
d9953e68
authored
Oct 28, 2023
by
高飞
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://192.168.168.218/xiaminwei/xxx_phase2_web
parents
abbacd8b
b1d888a9
Changes
16
Show 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 @
d9953e68
...
@@ -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 @
d9953e68
...
@@ -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
);
}
}
...
@@ -28,3 +28,8 @@ export const getPrivateLetterByPaging = (currPage, pageSize, startTime, endTime,
...
@@ -28,3 +28,8 @@ 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 @
d9953e68
...
@@ -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 @
d9953e68
...
@@ -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
);
}
}
...
@@ -82,3 +82,7 @@ export function readNotification(account, noteId) {
...
@@ -82,3 +82,7 @@ export function readNotification(account, noteId) {
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 @
d9953e68
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 @
d9953e68
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 @
d9953e68
...
@@ -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 @
d9953e68
<
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 @
d9953e68
<
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');
},
},
mounted
()
{
showDialog
()
{
this
.
dialogVisible
=
this
.
$props
.
visible
;
this
.
dialogVisible
=
true
;
},
handleDialogOpen
()
{
// this.dialogVisible = this.$props.visible;
this
.
personList
=
this
.
$props
.
peopleList
;
this
.
personList
=
this
.
$props
.
peopleList
;
}
}
},
// mounted() {
// this.dialogVisible = this.$props.visible;
// 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 @
d9953e68
<
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 @
d9953e68
...
@@ -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=
"everyDayNewCardContent"
>
<div
class=
"left-everyDayNew"
:style=
"
{ width: item1.attachment ? '50%' : '100%' }">
<div
class=
"everyDayNewCardInfo"
>
<div
class=
"everyDayNewCardInfo"
>
<span
v-text=
"item1.time"
></span>
 
<span
v-text=
"item1.time"
></span>
 
<!--
<span
v-text=
"item1.location"
></span>
 
-->
来源:
<span
class=
"newsSource"
v-text=
"item1.from"
></span>
来源:
<span
class=
"newsSource"
v-text=
"item1.from"
></span>
</div>
</div>
<div
class=
"everyDayNewCardContent"
v-text=
"item1.content"
></div>
<div
class=
"everyDayNewCardText"
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>
<div
class=
"personInfo-content"
>
<div
class=
"right-everyDayNew"
v-if=
"item1.attachment"
>
<div
v-for=
"item in personList"
class=
"everyPersonList"
>
<template
v-if=
"item1.type == 'PICTURE'"
>
<span
v-for=
"item1 in item"
@
click=
"selectPerson(item1);"
>
<el-image
:src=
"item1.url"
:preview-src-list=
"[item1.url]"
>
<span
v-text=
"item1.name"
></span>
</el-image>
<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
>
<
template
v-else-if=
"item.isMe"
>
<
template
v-else-if=
"item1.type == 'VIDEO'"
>
<div
v-text=
"item1"
style=
"background-color: #85ce61;"
></div>
<video
:src=
"item1.url"
controls
loop
>
<img
:src=
"avatar"
alt=
""
>
</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
>
</
template
>
</div>
</div>
</div>
</div>
<div
class=
"chatSendMessage"
>
<div
class=
"messageContent"
>
<el-input
type=
"textarea"
autosize
placeholder=
"请输入内容"
v-model=
"sendMessage"
>
</el-input>
</div>
</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,11 +212,21 @@ export default {
...
@@ -421,11 +212,21 @@ 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
=>
{
getRecordsByPagingFn
(
item
)
{
let
newsArr
=
[];
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
=>
{
res1
.
records
.
forEach
(
item
=>
{
this
.
publicNoticeList
=
res1
.
records
;
this
.
dataOrderByParams
(
null
,
null
);
let
newsArr
=
[],
dayArr
=
[];
this
.
optionsFrom
=
[];
this
.
publicNoticeList
.
forEach
(
item
=>
{
let
obj
=
{
time
:
''
,
news
:
[]
};
let
obj
=
{
time
:
''
,
news
:
[]
};
if
(
this
.
optionsFrom
.
indexOf
(
item
.
fromUserId
)
==
-
1
)
{
this
.
optionsFrom
.
push
(
item
.
fromUserId
);
}
if
(
newsArr
.
some
(
newsArrChild
=>
{
return
newsArrChild
.
time
==
item
.
createTime
.
slice
(
0
,
10
)
}))
{
if
(
newsArr
.
some
(
newsArrChild
=>
{
return
newsArrChild
.
time
==
item
.
createTime
.
slice
(
0
,
10
)
}))
{
newsArr
.
forEach
(
item1
=>
{
newsArr
.
forEach
(
item1
=>
{
if
(
item1
.
time
==
item
.
createTime
.
slice
(
0
,
10
))
{
if
(
item1
.
time
==
item
.
createTime
.
slice
(
0
,
10
))
{
...
@@ -434,14 +235,42 @@ export default {
...
@@ -434,14 +235,42 @@ export default {
})
})
}
else
{
}
else
{
obj
.
time
=
item
.
createTime
.
slice
(
0
,
10
);
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
});
obj
.
news
.
push
({
time
:
item
.
createTime
,
title
:
item
.
title
,
content
:
item
.
content
,
from
:
item
.
fromUserId
,
teamInfo
:
item
.
teamInfo
});
newsArr
.
push
(
obj
);
newsArr
.
push
(
obj
);
}
}
});
});
this
.
newsList
=
newsArr
;
});
});
},
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,6 +701,16 @@ export default {
...
@@ -805,6 +701,16 @@ export default {
border-bottom
:
1px
solid
#7b7b7b
dd
;
border-bottom
:
1px
solid
#7b7b7b
dd
;
}
}
.everyDayNewCardContent
{
width
:
100%
;
height
:
110px
;
margin-top
:
10px
;
display
:
flex
;
.left-everyDayNew
{
width
:
50%
;
height
:
100%
;
.everyDayNewCardInfo
{
.everyDayNewCardInfo
{
width
:
100%
;
width
:
100%
;
height
:
20px
;
height
:
20px
;
...
@@ -818,7 +724,7 @@ export default {
...
@@ -818,7 +724,7 @@ export default {
}
}
}
}
.everyDayNewCardConten
t
{
.everyDayNewCardTex
t
{
width
:
100%
;
width
:
100%
;
// height: calc(100% - 58px);
// height: calc(100% - 58px);
margin-top
:
5px
;
margin-top
:
5px
;
...
@@ -830,237 +736,49 @@ export default {
...
@@ -830,237 +736,49 @@ export default {
-webkit-line-clamp
:
5
;
-webkit-line-clamp
:
5
;
/* 控制显示的行数 */
/* 控制显示的行数 */
overflow
:
hidden
;
overflow
:
hidden
;
word-break
:
break-all
}
}
}
}
.cardTypeDIRECTOR
{
.right-everyDayNew
{
background-image
:
url(../../assets/img/ddkz/new3.png)
;
width
:
50%
;
background-size
:
100%
100%
;
}
.cardTypeBLUE
{
background-image
:
url(../../assets/img/ddkz/new1.png)
;
background-size
:
100%
100%
;
}
.cardTypeRED
{
background-image
:
url(../../assets/img/ddkz/new2.png)
;
background-size
:
100%
100%
;
}
}
}
}
.info-content-right
{
width
:
400px
;
height
:
100%
;
height
:
100%
;
float
:
left
;
text-align
:
center
;
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
{
img
{
width
:
20px
;
height
:
20px
;
}
span
{
font-size
:
16px
;
font-weight
:
500
;
color
:
white
;
vertical-align
:
text-bottom
;
}
}
.personInfo-content
{
width
:
100%
;
width
:
100%
;
height
:
calc
(
100%
-
30px
);
height
:
100%
;
.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-messageInf
o
{
vide
o
{
width
:
100%
;
width
:
100%
;
height
:
70%
;
height
:
100%
;
.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
;
}
}
.cardTypeDIRECTOR
{
background-image
:
url(../../assets/img/ddkz/new3.png)
;
background-size
:
100%
100%
;
}
}
.chatContent
{
.cardTypeBLUE
{
width
:
100%
;
background-image
:
url(../../assets/img/ddkz/new1.png)
;
height
:
60%
;
background-size
:
100%
100%
;
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
{
.cardTypeRED
{
padding
:
5px
10px
;
background-image
:
url(../../assets/img/ddkz/new2.png)
;
border-radius
:
5px
;
background-size
:
100%
100%
;
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 @
d9953e68
...
@@ -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>
...
@@ -340,6 +340,7 @@ export default {
...
@@ -340,6 +340,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
;
}
}
...
@@ -354,6 +355,7 @@ export default {
...
@@ -354,6 +355,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
;
...
@@ -362,7 +364,8 @@ export default {
...
@@ -362,7 +364,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
;
...
@@ -848,5 +851,4 @@ export default {
...
@@ -848,5 +851,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 @
d9953e68
<
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 @
d9953e68
<
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 @
d9953e68
<
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 @
d9953e68
...
@@ -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