Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
smart_gov_platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
smart_gov_platform
Commits
5787a50e
Commit
5787a50e
authored
Apr 09, 2025
by
“yiyousong”
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 添加消息管理静态页面
parent
ee7c343f
Changes
15
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
734 additions
and
8 deletions
+734
-8
portal-manager-ui/admin/src/assets/fonts/demo_index.html
portal-manager-ui/admin/src/assets/fonts/demo_index.html
+26
-3
portal-manager-ui/admin/src/assets/fonts/iconfont.css
portal-manager-ui/admin/src/assets/fonts/iconfont.css
+7
-3
portal-manager-ui/admin/src/assets/fonts/iconfont.js
portal-manager-ui/admin/src/assets/fonts/iconfont.js
+1
-1
portal-manager-ui/admin/src/assets/fonts/iconfont.json
portal-manager-ui/admin/src/assets/fonts/iconfont.json
+7
-0
portal-manager-ui/admin/src/assets/fonts/iconfont.ttf
portal-manager-ui/admin/src/assets/fonts/iconfont.ttf
+0
-0
portal-manager-ui/admin/src/assets/fonts/iconfont.woff
portal-manager-ui/admin/src/assets/fonts/iconfont.woff
+0
-0
portal-manager-ui/admin/src/assets/fonts/iconfont.woff2
portal-manager-ui/admin/src/assets/fonts/iconfont.woff2
+0
-0
portal-manager-ui/admin/src/components/MessageInfo.vue
portal-manager-ui/admin/src/components/MessageInfo.vue
+65
-0
portal-manager-ui/admin/src/components/YSwitch.vue
portal-manager-ui/admin/src/components/YSwitch.vue
+51
-0
portal-manager-ui/admin/src/router/routes.js
portal-manager-ui/admin/src/router/routes.js
+30
-1
portal-manager-ui/admin/src/views/home/home.vue
portal-manager-ui/admin/src/views/home/home.vue
+117
-0
portal-manager-ui/admin/src/views/thePlatformIsSet/components/messageManage/MessageList.vue
...thePlatformIsSet/components/messageManage/MessageList.vue
+129
-0
portal-manager-ui/admin/src/views/thePlatformIsSet/components/messageManage/MessageManage.vue
...ePlatformIsSet/components/messageManage/MessageManage.vue
+112
-0
portal-manager-ui/admin/src/views/thePlatformIsSet/components/messageManage/MessageSet.vue
.../thePlatformIsSet/components/messageManage/MessageSet.vue
+95
-0
portal-manager-ui/admin/src/views/thePlatformIsSet/components/messageManage/components/AddReceive.vue
...mIsSet/components/messageManage/components/AddReceive.vue
+94
-0
No files found.
portal-manager-ui/admin/src/assets/fonts/demo_index.html
View file @
5787a50e
...
@@ -54,6 +54,12 @@
...
@@ -54,6 +54,12 @@
<div
class=
"content unicode"
style=
"display: block;"
>
<div
class=
"content unicode"
style=
"display: block;"
>
<ul
class=
"icon_lists dib-box"
>
<ul
class=
"icon_lists dib-box"
>
<li
class=
"dib"
>
<span
class=
"icon iconfont"
>

</span>
<div
class=
"name"
>
notice
</div>
<div
class=
"code-name"
>
&
#xe617;
</div>
</li>
<li
class=
"dib"
>
<li
class=
"dib"
>
<span
class=
"icon iconfont"
>

</span>
<span
class=
"icon iconfont"
>

</span>
<div
class=
"name"
>
闭眼睛
</div>
<div
class=
"name"
>
闭眼睛
</div>
...
@@ -102,9 +108,9 @@
...
@@ -102,9 +108,9 @@
<pre><code
class=
"language-css"
<pre><code
class=
"language-css"
>
@font-face {
>
@font-face {
font-family: 'iconfont';
font-family: 'iconfont';
src: url('iconfont.woff2?t=1
693536528455
') format('woff2'),
src: url('iconfont.woff2?t=1
744101949457
') format('woff2'),
url('iconfont.woff?t=1
693536528455
') format('woff'),
url('iconfont.woff?t=1
744101949457
') format('woff'),
url('iconfont.ttf?t=1
693536528455
') format('truetype');
url('iconfont.ttf?t=1
744101949457
') format('truetype');
}
}
</code></pre>
</code></pre>
<h3
id=
"-iconfont-"
>
第二步:定义使用 iconfont 的样式
</h3>
<h3
id=
"-iconfont-"
>
第二步:定义使用 iconfont 的样式
</h3>
...
@@ -130,6 +136,15 @@
...
@@ -130,6 +136,15 @@
<div
class=
"content font-class"
>
<div
class=
"content font-class"
>
<ul
class=
"icon_lists dib-box"
>
<ul
class=
"icon_lists dib-box"
>
<li
class=
"dib"
>
<span
class=
"icon iconfont icon-notice"
></span>
<div
class=
"name"
>
notice
</div>
<div
class=
"code-name"
>
.icon-notice
</div>
</li>
<li
class=
"dib"
>
<li
class=
"dib"
>
<span
class=
"icon iconfont icon-hidden"
></span>
<span
class=
"icon iconfont icon-hidden"
></span>
<div
class=
"name"
>
<div
class=
"name"
>
...
@@ -202,6 +217,14 @@
...
@@ -202,6 +217,14 @@
<div
class=
"content symbol"
>
<div
class=
"content symbol"
>
<ul
class=
"icon_lists dib-box"
>
<ul
class=
"icon_lists dib-box"
>
<li
class=
"dib"
>
<svg
class=
"icon svg-icon"
aria-hidden=
"true"
>
<use
xlink:href=
"#icon-notice"
></use>
</svg>
<div
class=
"name"
>
notice
</div>
<div
class=
"code-name"
>
#icon-notice
</div>
</li>
<li
class=
"dib"
>
<li
class=
"dib"
>
<svg
class=
"icon svg-icon"
aria-hidden=
"true"
>
<svg
class=
"icon svg-icon"
aria-hidden=
"true"
>
<use
xlink:href=
"#icon-hidden"
></use>
<use
xlink:href=
"#icon-hidden"
></use>
...
...
portal-manager-ui/admin/src/assets/fonts/iconfont.css
View file @
5787a50e
@font-face
{
@font-face
{
font-family
:
"iconfont"
;
/* Project id 4222008 */
font-family
:
"iconfont"
;
/* Project id 4222008 */
src
:
url('iconfont.woff2?t=1
693536528455
')
format
(
'woff2'
),
src
:
url('iconfont.woff2?t=1
744101949457
')
format
(
'woff2'
),
url('iconfont.woff?t=1
693536528455
')
format
(
'woff'
),
url('iconfont.woff?t=1
744101949457
')
format
(
'woff'
),
url('iconfont.ttf?t=1
693536528455
')
format
(
'truetype'
);
url('iconfont.ttf?t=1
744101949457
')
format
(
'truetype'
);
}
}
.iconfont
{
.iconfont
{
...
@@ -13,6 +13,10 @@
...
@@ -13,6 +13,10 @@
-moz-osx-font-smoothing
:
grayscale
;
-moz-osx-font-smoothing
:
grayscale
;
}
}
.icon-notice
:before
{
content
:
"\e617"
;
}
.icon-hidden
:before
{
.icon-hidden
:before
{
content
:
"\e901"
;
content
:
"\e901"
;
}
}
...
...
portal-manager-ui/admin/src/assets/fonts/iconfont.js
View file @
5787a50e
This diff is collapsed.
Click to expand it.
portal-manager-ui/admin/src/assets/fonts/iconfont.json
View file @
5787a50e
...
@@ -5,6 +5,13 @@
...
@@ -5,6 +5,13 @@
"css_prefix_text"
:
"icon-"
,
"css_prefix_text"
:
"icon-"
,
"description"
:
""
,
"description"
:
""
,
"glyphs"
:
[
"glyphs"
:
[
{
"icon_id"
:
"13071212"
,
"name"
:
"notice"
,
"font_class"
:
"notice"
,
"unicode"
:
"e617"
,
"unicode_decimal"
:
58903
},
{
{
"icon_id"
:
"4354835"
,
"icon_id"
:
"4354835"
,
"name"
:
"闭眼睛"
,
"name"
:
"闭眼睛"
,
...
...
portal-manager-ui/admin/src/assets/fonts/iconfont.ttf
View file @
5787a50e
No preview for this file type
portal-manager-ui/admin/src/assets/fonts/iconfont.woff
View file @
5787a50e
No preview for this file type
portal-manager-ui/admin/src/assets/fonts/iconfont.woff2
View file @
5787a50e
No preview for this file type
portal-manager-ui/admin/src/components/MessageInfo.vue
0 → 100644
View file @
5787a50e
<
template
>
<div>
<a-drawer
:zIndex=
"2000"
title=
"消息详情"
placement=
"right"
width=
"500px"
:visible=
"Visible"
@
close=
"onClose"
>
<a-descriptions
:column=
"1"
>
<a-descriptions-item
label=
"消息类型"
>
预警消息
</a-descriptions-item>
<a-descriptions-item
label=
"消息内容"
>
等待超时
</a-descriptions-item>
<a-descriptions-item
label=
"消息来源"
>
排队系统
</a-descriptions-item>
<a-descriptions-item
label=
"系统提醒时间"
>
2022-11-07 16:00:00
</a-descriptions-item>
<a-descriptions-item
label=
"是否短线提醒"
>
是
</a-descriptions-item>
<a-descriptions-item
label=
"接收人"
>
张三
</a-descriptions-item>
<a-descriptions-item
label=
"短线提醒时间"
>
2022-11-07 16:00:00
</a-descriptions-item>
</a-descriptions>
</a-drawer>
</div>
</
template
>
<
script
>
export
default
{
props
:
{
show
:
{
type
:
Boolean
,
required
:
true
,
default
:
false
,
},
detailsInfo
:
{
type
:
Object
,
required
:
true
,
default
:
()
=>
{
return
{};
},
},
},
data
()
{
return
{};
},
computed
:
{
Visible
:
{
get
()
{
return
this
.
show
;
},
set
(
val
)
{
this
.
$emit
(
"
update:show
"
,
val
);
},
},
},
methods
:
{
onClose
()
{
this
.
Visible
=
false
;
},
},
};
</
script
>
<
style
lang=
"less"
scoped
></
style
>
portal-manager-ui/admin/src/components/YSwitch.vue
0 → 100644
View file @
5787a50e
<
template
>
<div>
<!--
<a-checkbox
@
change=
"onChange"
:checked=
"value"
>
Checkbox
</a-checkbox>
-->
<a-switch
:checked-children=
"checkedChildren"
:un-checked-children=
"unCheckedChildren"
:disabled=
"disabled"
:checked=
"value"
@
change=
"onChange"
v-bind=
"$attrs"
/>
</div>
</
template
>
<
script
>
export
default
{
model
:
{
prop
:
"
checked
"
,
event
:
"
change
"
,
},
props
:
{
checkedChildren
:
{
default
:
""
,
},
unCheckedChildren
:
{
default
:
""
,
},
checked
:
{
required
:
true
,
},
disabled
:
{
type
:
Boolean
,
required
:
false
,
default
:
false
,
},
},
computed
:
{
value
()
{
return
this
.
checked
===
1
||
this
.
checked
===
"
1
"
;
},
},
methods
:
{
onChange
(
checked
)
{
this
.
$emit
(
"
change
"
,
checked
?
1
:
0
);
this
.
$emit
(
"
onChange
"
,
checked
?
1
:
0
);
},
},
};
</
script
>
<
style
lang=
"less"
scoped
></
style
>
portal-manager-ui/admin/src/router/routes.js
View file @
5787a50e
...
@@ -366,7 +366,6 @@ const routes = [
...
@@ -366,7 +366,6 @@ const routes = [
},
},
},
},
{
{
path
:
"
windowLeft
"
,
path
:
"
windowLeft
"
,
name
:
"
windowLeft
"
,
name
:
"
windowLeft
"
,
...
@@ -832,6 +831,36 @@ const routes = [
...
@@ -832,6 +831,36 @@ const routes = [
},
},
],
],
},
},
{
path
:
"
messageManage
"
,
name
:
"
messageManage
"
,
redirect
:
"
/home/thePlatformIsSet/messageManage/messageList
"
,
component
:
()
=>
import
(
/* webpackChunkName: "menuManagement" */
"
@/views/thePlatformIsSet/components/messageManage/MessageManage.vue
"
),
meta
:
{
title
:
"
消息服务
"
},
children
:
[
{
path
:
"
messageList
"
,
name
:
"
messageList
"
,
component
:
()
=>
import
(
/* webpackChunkName: "menuMgmt" */
"
@/views/thePlatformIsSet/components/messageManage/MessageList.vue
"
),
meta
:
{
title
:
"
消息列表
"
},
},
{
path
:
"
messageSet
"
,
name
:
"
messageSet
"
,
component
:
()
=>
import
(
/* webpackChunkName: "menuMgmt" */
"
@/views/thePlatformIsSet/components/messageManage/MessageSet.vue
"
),
meta
:
{
title
:
"
消息配置
"
},
},
],
},
{
{
path
:
"
logService
"
,
path
:
"
logService
"
,
name
:
"
logService
"
,
name
:
"
logService
"
,
...
...
portal-manager-ui/admin/src/views/home/home.vue
View file @
5787a50e
...
@@ -74,6 +74,61 @@
...
@@ -74,6 +74,61 @@
</a-menu>
</a-menu>
</a-dropdown>
</a-dropdown>
</div>
</div>
<div
class=
"line"
></div>
<a-popover
arrowPointAtCenter
trigger=
"click"
:overlayStyle=
"
{ width: '300px' }"
overlayClassName="message-popover"
placement="bottomRight"
>
<div
slot=
"title"
class=
"text-[16px]"
>
999条消息
</div>
<div
slot=
"content"
class=
"message-content"
>
<div
class=
"message-list"
>
<template
v-if=
"messageList.length"
>
<div
v-for=
"(v, i) in messageList"
:key=
"v.id"
@
click=
"changeMessageInfo(v)"
>
<div
class=
"flex justify-between items-start"
>
<div
class=
"flex gap-[6px]"
>
<div
class=
"w-[50px] h-[50px] rounded-full flex justify-center items-center text-white hint"
>
预警
</div>
<div
class=
"flex flex-col justify-between"
>
<div>
{{
v
.
message
}}
</div>
<div>
{{
v
.
time
}}
</div>
</div>
</div>
<a-tag
color=
"blue"
>
排队系统
</a-tag>
</div>
<a-divider
dashed
v-if=
"i
<
4
"
/>
</div>
</
template
>
<a-empty
v-else
:image=
"require('@/assets/images/no_data.png')"
:image-style=
"{
height: '100px',
}"
>
<span
slot=
"description"
>
暂无数据
</span>
</a-empty>
<MessageInfo
:show.sync=
"showMessageInfo"
:detailsInfo=
"messageInfo"
></MessageInfo>
</div>
<div
class=
"message-footer"
>
查看更多 >
</div>
</div>
<a-badge
:count=
"10"
:overflow-count=
"999"
>
<i
class=
"iconfont icon-notice cursor-pointer"
></i>
</a-badge>
</a-popover>
</div>
</div>
<changePassword
:visibleEditPwd.sync=
"visibleEditPwd"
></changePassword>
<changePassword
:visibleEditPwd.sync=
"visibleEditPwd"
></changePassword>
</div>
</div>
...
@@ -86,11 +141,13 @@ import { mapState, mapMutations, mapGetters } from "vuex";
...
@@ -86,11 +141,13 @@ import { mapState, mapMutations, mapGetters } from "vuex";
import
{
LogoutInterface
}
from
"
@/api/user
"
;
import
{
LogoutInterface
}
from
"
@/api/user
"
;
import
changePassword
from
"
./components/changePassword.vue
"
;
import
changePassword
from
"
./components/changePassword.vue
"
;
import
HeaderSite
from
"
./components/HeaderSite.vue
"
;
import
HeaderSite
from
"
./components/HeaderSite.vue
"
;
import
MessageInfo
from
"
@/components/MessageInfo.vue
"
;
import
storage
from
"
@/utils/js/Storage
"
;
import
storage
from
"
@/utils/js/Storage
"
;
export
default
{
export
default
{
components
:
{
components
:
{
changePassword
,
changePassword
,
HeaderSite
,
HeaderSite
,
MessageInfo
,
},
},
data
()
{
data
()
{
return
{
return
{
...
@@ -102,12 +159,42 @@ export default {
...
@@ -102,12 +159,42 @@ export default {
nowDay
:
""
,
nowDay
:
""
,
nowWeek
:
""
,
nowWeek
:
""
,
visibleEditPwd
:
false
,
visibleEditPwd
:
false
,
showMessageInfo
:
false
,
messageInfo
:
{},
homePage
:
[
homePage
:
[
"
/home/dataManagement
"
,
"
/home/dataManagement
"
,
"
/home/siteArrange
"
,
"
/home/siteArrange
"
,
"
/home/dataActuary
"
,
"
/home/dataActuary
"
,
"
/home/thePlatformIsSet/setPlatformes
"
,
"
/home/thePlatformIsSet/setPlatformes
"
,
],
],
// 消息列表
messageList
:
[
{
id
:
1
,
message
:
"
等待时长超时
"
,
time
:
"
04.08 09:00:00
"
,
},
{
id
:
2
,
message
:
"
等待时长超时
"
,
time
:
"
04.08 09:00:00
"
,
},
{
id
:
3
,
message
:
"
等待时长超时
"
,
time
:
"
04.08 09:00:00
"
,
},
{
id
:
4
,
message
:
"
等待时长超时
"
,
time
:
"
04.08 09:00:00
"
,
},
{
id
:
5
,
message
:
"
等待时长超时
"
,
time
:
"
04.08 09:00:00
"
,
},
],
};
};
},
},
computed
:
{
computed
:
{
...
@@ -184,15 +271,27 @@ export default {
...
@@ -184,15 +271,27 @@ export default {
storage
.
set
(
1
,
"
routeInfo
"
,
route
.
key
);
storage
.
set
(
1
,
"
routeInfo
"
,
route
.
key
);
this
.
$router
.
push
(
route
.
key
);
this
.
$router
.
push
(
route
.
key
);
},
},
changeMessageInfo
(
row
)
{
this
.
messageInfo
=
row
;
this
.
showMessageInfo
=
true
;
},
},
},
beforeDestroy
()
{
beforeDestroy
()
{
clearInterval
(
this
.
timer
);
clearInterval
(
this
.
timer
);
},
},
};
};
</
script
>
</
script
>
<
style
lang=
"less"
>
.message-popover {
.ant-popover-inner-content {
padding: 0px;
}
}
</
style
>
<
style
lang=
"less"
scoped
>
<
style
lang=
"less"
scoped
>
@headerHeight: 72px;
@headerHeight: 72px;
.route-view {
.route-view {
position: relative;
position: relative;
}
}
...
@@ -293,4 +392,22 @@ export default {
...
@@ -293,4 +392,22 @@ export default {
.inside {
.inside {
background: linear-gradient(90deg, #1845c6 0%, #2999ff 100%) !important;
background: linear-gradient(90deg, #1845c6 0%, #2999ff 100%) !important;
}
}
:deep(.ant-badge-count) {
box-shadow: none;
}
.icon-notice {
font-size: 24px;
}
.hint {
background: linear-gradient(to right, #68a1fc 0%, #387dfd 100%);
}
.message-list {
padding: 12px 16px;
}
.message-footer {
padding: 12px;
border: 1px solid #e8e8e8;
text-align: center;
cursor: pointer;
}
</
style
>
</
style
>
portal-manager-ui/admin/src/views/thePlatformIsSet/components/messageManage/MessageList.vue
0 → 100644
View file @
5787a50e
<
template
>
<div>
<div
class=
"flex items-center justify-between mb-[20px]"
>
<div>
发送消息总量:
<span
class=
"primary font-bold"
>
4545645646条
</span>
</div>
<a-space>
<a-select>
<a-select-option
value=
""
>
全部内容
</a-select-option>
</a-select>
<a-select>
<a-select-option
value=
""
>
全部来源
</a-select-option>
</a-select>
<a-range-picker
v-model=
"BegindAndEndTime"
/>
<a-button
type=
"primary"
>
搜索
</a-button>
<a-button>
重置
</a-button>
</a-space>
</div>
<a-table
size=
"small"
bordered
:scroll=
"
{ y: 590 }"
:row-key="(record) => record.id"
:pagination="{
showTotal: (total) => `共 ${total} 条`,
current: current,
total: total,
pageSize: size,
showSizeChanger: true,
showQuickJumper: true,
pageSizeOptions: pageSizeOptions,
onChange: changePagination,
onShowSizeChange: showSizeChange,
}"
:columns="columns"
:data-source="tableData"
:loading="loading"
>
</a-table>
</div>
</
template
>
<
script
>
import
Storage
from
"
@/utils/js/Storage
"
;
export
default
{
data
()
{
return
{
columns
:
[
{
width
:
"
60px
"
,
title
:
"
序号
"
,
align
:
"
center
"
,
customRender
:
(
text
,
record
,
index
)
=>
{
return
(
this
.
current
-
1
)
*
this
.
size
+
index
+
1
;
},
},
{
title
:
"
消息类型
"
,
align
:
"
center
"
,
dataIndex
:
"
name
"
,
width
:
200
,
},
{
title
:
"
消息内容
"
,
align
:
"
center
"
,
dataIndex
:
"
age
"
,
width
:
200
,
},
{
title
:
"
消息来源
"
,
align
:
"
center
"
,
dataIndex
:
"
address
"
,
width
:
200
,
},
{
title
:
"
系统提醒时间
"
,
align
:
"
center
"
,
dataIndex
:
"
address
"
,
width
:
200
,
},
{
title
:
"
是否短信提醒
"
,
align
:
"
center
"
,
dataIndex
:
"
address
"
,
width
:
200
,
},
{
title
:
"
接收人
"
,
align
:
"
center
"
,
dataIndex
:
"
address
"
,
width
:
200
,
},
{
title
:
"
短信提醒时间
"
,
align
:
"
center
"
,
dataIndex
:
"
address
"
,
width
:
200
,
},
{
title
:
"
操作
"
,
align
:
"
center
"
,
dataIndex
:
"
address
"
,
width
:
200
,
},
],
tableData
:
[],
siteId
:
Storage
.
get
(
2
,
"
siteId
"
)
?
Storage
.
get
(
2
,
"
siteId
"
)
:
""
,
searchName
:
""
,
BegindAndEndTime
:
[
this
.
$moment
().
format
(
"
YYYY-MM-DD
"
),
this
.
$moment
().
format
(
"
YYYY-MM-DD
"
),
],
pageSizeOptions
:
[
"
10
"
,
"
30
"
,
"
50
"
,
"
100
"
],
current
:
1
,
size
:
10
,
total
:
0
,
dict
:
{},
// 日志字典
};
},
created
()
{},
methods
:
{},
};
</
script
>
<
style
lang=
"less"
scoped
>
/deep/.ant-spin-container {
display: block;
}
</
style
>
portal-manager-ui/admin/src/views/thePlatformIsSet/components/messageManage/MessageManage.vue
0 → 100644
View file @
5787a50e
<
template
>
<div
class=
"Container"
>
<div
class=
"main"
>
<a-tabs
v-model=
"tabsActive"
@
change=
"tabsChange"
:forceRender=
"false"
>
<a-button
style=
"margin-right: 16px"
slot=
"tabBarExtraContent"
@
click=
"$router.push('/home/thePlatformIsSet/setPlatformes')"
>
返回上一级
</a-button
>
<a-tab-pane
:key=
"item.path"
v-for=
"item of tabsList['children']"
:tab=
"item['meta']['title']"
>
</a-tab-pane>
</a-tabs>
<router-view
style=
"padding: 0 1rem"
/>
</div>
</div>
</
template
>
<
script
>
import
{
getItemData
}
from
"
@/utils/js/common.js
"
;
import
common
from
"
@/mixins/common
"
;
export
default
{
name
:
"
PortalAdminVueMessageManagement
"
,
mixins
:
[
common
],
data
()
{
return
{
tabsActive
:
undefined
,
};
},
computed
:
{
tabsList
()
{
return
getItemData
(
this
.
$router
.
options
.
routes
,
"
name
"
,
"
messageManage
"
);
},
},
mounted
()
{
this
.
$nextTick
(()
=>
{
this
.
tabsActive
=
this
.
$route
.
path
.
substr
(
this
.
$route
.
path
.
lastIndexOf
(
"
/
"
)
+
1
);
});
},
methods
:
{
tabsChange
(
val
)
{
this
.
$router
.
push
({
path
:
`/home/thePlatformIsSet/messageManage/
${
val
}
`
,
// query: { testoption: "test001" },
});
},
},
};
</
script
>
<
style
lang=
"less"
scoped
>
@headerH: 4.5rem;
.Container {
width: 100%;
height: 100% !important;
// background: #fac;
background: #f5f5f5;
display: flex;
flex-direction: column;
.main {
// background: #afc;
background: #ffffff;
border-radius: 6px;
flex: 1;
overflow-y: auto;
overflow-x: hidden;
margin: 1.2rem 2rem;
}
&::before {
content: "";
display: block;
width: 100%;
height: @headerH;
background: rgb(59, 135, 255);
background: -moz-linear-gradient(
174deg,
rgba(59, 135, 255, 1) 24%,
rgba(108, 53, 247, 1) 85%
);
background: -webkit-linear-gradient(
174deg,
rgba(59, 135, 255, 1) 24%,
rgba(108, 53, 247, 1) 85%
);
background: linear-gradient(
174deg,
rgba(59, 135, 255, 1) 24%,
rgba(108, 53, 247, 1) 85%
);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#3b87ff",endColorstr="#6c35f7",GradientType=1);
}
.ant-tabs-nav {
.ant-tabs-tab {
margin: 0 !important;
}
}
.ant-tabs-tab {
font-size: 1rem !important;
& + .ant-tabs-tab {
margin: 0 !important;
margin-left: 0.7rem !important;
}
}
}
</
style
>
portal-manager-ui/admin/src/views/thePlatformIsSet/components/messageManage/MessageSet.vue
0 → 100644
View file @
5787a50e
<
template
>
<div
class=
"flex items-center gap-6"
>
<a-card
:title=
"title"
style=
"width: 300px"
>
<YSwitch
slot=
"extra"
v-model=
"value"
@
onChange=
"handleSwitch"
></YSwitch>
<div
class=
"flex items-center justify-between mb-4"
>
<div>
消息内容:
</div>
<div
class=
"primary"
>
等待时长超时
</div>
</div>
<div
class=
"flex items-center justify-between"
>
<div>
消息来源:
</div>
<div
class=
"primary"
>
排队系统
</div>
</div>
<a-divider
dashed
/>
<div
class=
"flex items-center justify-between mb-4"
>
<div>
接收人:
</div>
<div
class=
"primary"
>
张三
</div>
</div>
<div
class=
"flex items-center justify-between"
>
<div>
手机号码:
</div>
<div
class=
"primary"
>
16608319500
</div>
</div>
</a-card>
<a-card
:title=
"title"
style=
"width: 300px"
>
<YSwitch
slot=
"extra"
v-model=
"value"
></YSwitch>
<div
class=
"flex items-center justify-between mb-4"
>
<div>
消息内容:
</div>
<div
class=
"primary"
>
办理时长超时
</div>
</div>
<div
class=
"flex items-center justify-between"
>
<div>
消息来源:
</div>
<div
class=
"primary"
>
排队系统
</div>
</div>
<a-divider
dashed
/>
<div
class=
"flex items-center justify-between mb-4"
>
<div>
接收人:
</div>
<div
class=
"primary"
>
张三
</div>
</div>
<div
class=
"flex items-center justify-between"
>
<div>
手机号码:
</div>
<div
class=
"primary"
>
16608319500
</div>
</div>
</a-card>
<a-card
:title=
"title"
style=
"width: 300px"
>
<YSwitch
slot=
"extra"
v-model=
"value"
></YSwitch>
<div
class=
"flex items-center justify-between mb-4"
>
<div>
消息内容:
</div>
<div
class=
"primary"
>
差评
</div>
</div>
<div
class=
"flex items-center justify-between"
>
<div>
消息来源:
</div>
<div
class=
"primary"
>
评价系统
</div>
</div>
<a-divider
dashed
/>
<div
class=
"flex items-center justify-between mb-4"
>
<div>
接收人:
</div>
<div
class=
"primary"
>
张三
</div>
</div>
<div
class=
"flex items-center justify-between"
>
<div>
手机号码:
</div>
<div
class=
"primary"
>
16608319500
</div>
</div>
</a-card>
<AddReceive
:show.sync=
"show"
></AddReceive>
</div>
</
template
>
<
script
>
import
YSwitch
from
"
@/components/YSwitch.vue
"
;
import
AddReceive
from
"
./components/AddReceive.vue
"
;
export
default
{
components
:
{
YSwitch
,
AddReceive
,
},
data
()
{
return
{
title
:
"
预警消息
"
,
value
:
1
,
show
:
false
,
};
},
created
()
{},
methods
:
{
handleSwitch
()
{
this
.
show
=
true
;
},
},
};
</
script
>
<
style
lang=
"less"
scoped
>
/deep/.ant-spin-container {
display: block;
}
</
style
>
portal-manager-ui/admin/src/views/thePlatformIsSet/components/messageManage/components/AddReceive.vue
0 → 100644
View file @
5787a50e
<
template
>
<div
class=
"roleEditModal_box"
ref=
"roleEditModal_box"
>
<a-modal
title=
"短信提醒"
:visible=
"Visible"
@
cancel=
"handleCancel"
width=
"30%"
>
<a-form-model
:label-col=
"
{
span: 4,
}"
:wrapper-col="{
span: 20,
}"
ref="form"
:model="form"
>
<a-form-model-item
label=
"接收人"
prop=
"name"
>
<a-input
placeholder=
"请输入接收人姓名"
allowClear
v-model=
"form.name"
/>
</a-form-model-item>
<a-form-model-item
label=
"手机号码"
prop=
"remark"
>
<a-input
placeholder=
"请输入手机号码"
allowClear
v-model=
"form.name"
/>
</a-form-model-item>
</a-form-model>
<template
slot=
"footer"
>
<a-button
@
click=
"resetForm"
>
重置
</a-button>
<a-button
type=
"primary"
class=
"addclass"
@
click=
"handleOk"
>
确定
</a-button
>
</
template
>
</a-modal>
</div>
</template>
<
script
>
export
default
{
props
:
{
show
:
{
required
:
true
,
type
:
Boolean
,
default
:
false
,
},
},
data
()
{
return
{
loading
:
false
,
form
:
{
name
:
""
,
//姓名
remark
:
""
,
//描述
},
//页面表单信息
};
},
computed
:
{
Visible
:
{
get
()
{
return
this
.
show
;
},
set
(
val
)
{
this
.
$emit
(
"
update:show
"
,
val
);
},
},
},
methods
:
{
onAdd
()
{
Object
.
assign
(
this
.
form
,
this
.
$options
.
data
().
form
);
this
.
form
.
id
&&
this
.
$delete
(
this
.
form
,
"
id
"
);
},
onEdit
(
row
)
{
setTimeout
(()
=>
{
this
.
form
=
{
...
row
};
},
10
);
},
handleCancel
()
{
this
.
resetForm
();
this
.
Visible
=
false
;
},
resetForm
()
{
this
.
$refs
.
form
.
resetFields
();
},
handleOk
()
{},
},
};
</
script
>
<
style
lang=
"less"
scoped
></
style
>
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