Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
confucius
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
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
罗超
confucius
Commits
e96fc4d9
Commit
e96fc4d9
authored
Nov 30, 2020
by
zhengke
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改页面
parent
5033308f
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
277 additions
and
47 deletions
+277
-47
msg.js
src/api/system/msg.js
+54
-0
msgmanage.vue
src/pages/system/msgmanage.vue
+223
-47
No files found.
src/api/system/msg.js
View file @
e96fc4d9
...
...
@@ -33,3 +33,57 @@ export function EditMsgConfig(data) {
});
}
/**
* 根据ID获取配置信息
*/
export
function
GetMsgBaseList
(
data
)
{
return
request
({
url
:
'/Msg/GetMsgBaseList'
,
method
:
'post'
,
data
});
}
/**
* 获取短信设置列表
*/
export
function
GetMsgBaseTemplatePageList
(
data
)
{
return
request
({
url
:
'/Msg/GetMsgBaseTemplatePageList'
,
method
:
'post'
,
data
});
}
/**
* 获取短信设置模板类型
*/
export
function
GetBaseTemplateTypeEnumList
(
data
)
{
return
request
({
url
:
'/Msg/GetBaseTemplateTypeEnumList'
,
method
:
'post'
,
data
});
}
/**
* 短信设置 保存数据
*/
export
function
SetMsgBaseTemplate
(
data
)
{
return
request
({
url
:
'/Msg/SetMsgBaseTemplate'
,
method
:
'post'
,
data
});
}
src/pages/system/msgmanage.vue
View file @
e96fc4d9
<
style
>
.msgmanage
.order_List
{
width
:
380px
;
height
:
200px
;
/* border:1px solid #022C42; */
width
:
300px
;
height
:
180px
;
box-shadow
:
#dee5ec
0px
0px
5px
;
border-radius
:
5px
;
padding
:
5px
20px
;
...
...
@@ -16,6 +15,8 @@
align-items
:
center
;
color
:
#111111
;
border-bottom
:
1px
solid
#E2E2E2
;
justify-content
:
space-between
;
align-items
:
center
;
}
.msgmanage
.order_info
{
...
...
@@ -28,7 +29,7 @@
margin-left
:
10px
;
}
.lineMsg
{
.
msgmanage
.
lineMsg
{
display
:
inline-block
;
width
:
100px
;
}
...
...
@@ -41,7 +42,7 @@
height
:
1px
;
}
.order_Success
{
.
msgmanage
.
order_Success
{
position
:
absolute
;
bottom
:
20px
;
align-items
:
center
;
...
...
@@ -50,14 +51,14 @@
justify-content
:
space-between
;
}
.SuccessInput
{
.
msgmanage
.
SuccessInput
{
border
:
none
;
width
:
150px
;
outline
:
none
;
border-bottom
:
1px
solid
#d1d1d1
;
}
.drawerTop
{
.
msgmanage
.
drawerTop
{
width
:
100%
;
height
:
50px
;
display
:
flex
;
...
...
@@ -67,7 +68,7 @@
align-items
:
center
;
}
.drawer_Span
{
.
msgmanage
.
drawer_Span
{
font-weight
:
bold
;
font-size
:
14px
;
margin-left
:
5px
;
...
...
@@ -148,7 +149,7 @@
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
<q-select
@
input=
"getConfigList"
standout=
"bg-primary text-white"
v-model=
"ConfigMsg.StoreType"
:options=
"statusData
1
"
option-value=
"Id"
option-label=
"Name"
emit-value
map-options
label=
"类型"
/>
:options=
"statusData"
option-value=
"Id"
option-label=
"Name"
emit-value
map-options
label=
"类型"
/>
</div>
</div>
<div
class=
"page-option"
>
...
...
@@ -158,18 +159,26 @@
<div
class=
"page-content"
>
<q-table
:pagination=
"ConfigMsg"
:loading=
"loading2"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-tow-column-table"
separator=
"none"
title=
""
:data=
"configData"
:columns=
"columns2"
row-key=
"name"
>
<template
v-slot:body-cell-S
endStatus
=
"props"
>
<q-td
:props=
"props"
style=
"display:flex;align-items:center;"
>
<template
v-if=
"props.row.S
endStatus==2
"
>
<img
src=
"../../assets/images/myimg/
success
.png"
alt=
""
/>
<span
class=
"sendStatus"
style=
"color:#02C499;"
>
发送成功
</span>
<template
v-slot:body-cell-S
toreType
=
"props"
>
<q-td
:props=
"props"
>
<template
v-if=
"props.row.S
toreType==1
"
>
<img
src=
"../../assets/images/myimg/
tencent
.png"
alt=
""
/>
<span
class=
"sendStatus"
style=
"color:#02C499;"
>
腾讯云
</span>
</
template
>
<
template
v-if=
"props.row.S
endStatus==1
"
>
<img
src=
"../../assets/images/myimg/
failed
.png"
alt=
""
/>
<span
class=
"sendStatus"
style=
"color:#F72E52;"
>
发送失败
</span>
<
template
v-if=
"props.row.S
toreType==2
"
>
<img
src=
"../../assets/images/myimg/
ali
.png"
alt=
""
/>
<span
class=
"sendStatus"
style=
"color:#F72E52;"
>
阿里云
</span>
</
template
>
</q-td>
</template>
<
template
v-slot:body-cell-MsgBase=
"props"
>
<q-td
:props=
"props"
>
<div>
地区:
{{
props
.
row
.
MsgBase
.
RegionId
}}
</div>
<div>
域名:
{{
props
.
row
.
MsgBase
.
Domain
}}
</div>
<div>
AccessKeyId:
{{
props
.
row
.
MsgBase
.
AccessKeyId
}}
</div>
<div>
AccessSecret:
{{
props
.
row
.
MsgBase
.
AccessSecret
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-optioned=
"props"
>
<q-td
:props=
"props"
>
<q-btn
flat
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"编辑"
...
...
@@ -177,36 +186,65 @@
</q-td>
</
template
>
<
template
v-slot:bottom
>
<q-pagination
class=
"full-width justify-end"
v-model=
"ConfigMsg.
p
ageIndex"
color=
"primary"
<q-pagination
class=
"full-width justify-end"
v-model=
"ConfigMsg.
P
ageIndex"
color=
"primary"
:max=
"pageCountConfig"
:input=
"true"
@
input=
"changePage2"
/>
</
template
>
</q-table>
</div>
</template>
<
template
v-if=
"tabCheck=='third'"
>
<div>
<div
class=
"order_List"
>
<div
class=
"page-search row items-center"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
<q-select
@
input=
"getSetingMsg"
standout=
"bg-primary text-white"
v-model=
"setMsg.StoreType"
:options=
"statusData"
option-value=
"Id"
option-label=
"Name"
emit-value
map-options
label=
"类型"
/>
</div>
</div>
<div
class=
"page-option"
>
<q-btn
color=
"accent"
class=
"q-mr-md"
icon=
"add"
label=
"新增设置"
@
click=
"addSetcfig()"
/>
</div>
</div>
<div
style=
"display:flex;"
>
<div
class=
"order_List"
v-for=
"item in setUpData"
style=
"margin-right:15px;"
>
<div
class=
"order_top"
>
<img
src=
"../../assets/images/myimg/gou.png"
/>
<span
style=
"margin-left:10px;"
>
下单成功通知
</span>
<div
style=
"display:flex;align-items:center;"
>
<img
v-if=
"item.BaseTemplateType==1"
src=
"../../assets/images/myimg/gou.png"
/>
<img
v-if=
"item.BaseTemplateType==2"
style=
"width:30px;height:30px;"
src=
"../../assets/images/myimg/failed.png"
/>
<span
style=
"margin-left:10px;"
>
{{
item
.
BaseTemplateTypeStr
}}
</span>
</div>
<div>
<i
style=
"cursor:pointer;"
@
click=
"getMsgInfo(item)"
class=
"iconfont icon-xiugai"
></i>
</div>
</div>
<div
class=
"order_info"
>
尊敬的用户你好,你的报名信息已录入成功
<template
v-if=
"item.StoreType==1"
>
<img
src=
"../../assets/images/myimg/tencent.png"
alt=
""
/>
<span
class=
"sendStatus"
style=
"color:#02C499;"
>
腾讯云
</span>
</
template
>
<
template
v-if=
"item.StoreType==2"
>
<img
src=
"../../assets/images/myimg/ali.png"
alt=
""
/>
<span
class=
"sendStatus"
style=
"color:#02C499;"
>
阿里云
</span>
</
template
>
</div>
<div
style=
"margin-top:10px;"
>
模板id:{{item.TemplateId}}
</div>
<div
class=
"order_Success"
>
<div>
签名设置:
<input
type=
"text"
class=
"SuccessInput"
/>
签名:{{item.Sign}}
</div>
<div>
<q-toggle
size=
"md"
color=
"primary"
:false-value=
"1"
:true-value=
"2"
/>
<q-toggle
size=
"md"
color=
"primary"
:disable=
"true"
v-model=
"item.TemplateStaus"
:false-value=
"1"
:true-value=
"0"
/>
</div>
</div>
</div>
</div>
<q-pagination
class=
"full-width justify-end"
v-model=
"setMsg.PageIndex"
color=
"primary"
:max=
"setDataCount"
:input=
"true"
@
input=
"changePage3"
/>
</template>
<el-drawer
title=
"
我是标题
"
:visible
.
sync=
"drawer"
:with-header=
"false"
>
<el-drawer
title=
""
:visible
.
sync=
"drawer"
:with-header=
"false"
>
<div
class=
"drawerTop"
>
<div
style=
"display:flex;align-items:center;"
>
<img
src=
"../../assets/images/myimg/success.png"
alt=
""
/>
...
...
@@ -217,16 +255,16 @@
</div>
</div>
<div
style=
"padding:20px 15px;"
>
<q-radio
v-model=
"configEditMsg.StoreType"
style=
"margin-right:20px;"
v-for=
"item in statusData"
:val=
"item.Id"
:label=
"item.Name"
/>
<q-radio
v-model=
"configEditMsg.StoreType"
style=
"margin-right:20px;"
v-for=
"item in statusData"
v-if=
"item.Id>0"
:val=
"item.Id"
:label=
"item.Name"
/>
</div>
<div
class=
"col-12"
style=
"margin:0 24px;"
>
<q-input
filled
stack-label
maxlength=
"20"
:dense=
"false"
v-model=
"configEditMsg.MsgBase.RegionId"
class=
"col-12"
label=
"地区"
:rules=
"[val => !!val || '请填写地区']"
/>
</div>
<div
class=
"col-12"
style=
"margin:20px 24px;"
>
<q-input
filled
stack-label
maxlength=
"20"
:dense=
"false"
v-model=
"configEditMsg.MsgBase.Domain"
class=
"col-12"
label=
"域名"
:rules=
"[val => !!val || '请填写域名']"
/>
<q-input
filled
stack-label
maxlength=
"20"
:dense=
"false"
v-model=
"configEditMsg.MsgBase.Domain"
class=
"col-12"
label=
"域名"
:rules=
"[val => !!val || '请填写域名']"
/>
</div>
<div
filled
class=
"col-12"
style=
"margin:20px 24px;"
>
<q-input
filled
stack-label
maxlength=
"20"
:dense=
"false"
v-model=
"configEditMsg.MsgBase.AccessKeyId"
...
...
@@ -240,6 +278,40 @@
<q-btn
color=
"accent"
class=
"q-mr-md"
icon=
"add"
label=
"保存"
@
click=
"saveConfig()"
/>
</div>
</el-drawer>
<el-drawer
title=
""
:visible
.
sync=
"msgDrawdia"
:with-header=
"false"
>
<div
class=
"drawerTop"
>
<div
style=
"display:flex;align-items:center;"
>
<img
src=
"../../assets/images/myimg/success.png"
alt=
""
/>
<span
class=
"drawer_Span"
>
短信设置
</span>
</div>
<div>
<i
class=
"iconfont icon-guanbi"
@
click=
"msgDrawdia=false"
></i>
</div>
</div>
<div
style=
"padding:20px 15px;"
>
<q-radio
v-model=
"baseEditMsg.StoreType"
style=
"margin-right:20px;"
v-for=
"item in statusData"
v-if=
"item.Id>0"
:val=
"item.Id"
:label=
"item.Name"
/>
</div>
<div
class=
"col-12"
style=
"margin:0 20px;"
>
<q-toggle
size=
"md"
label=
"模板状态"
color=
"primary"
:false-value=
"1"
:true-value=
"0"
v-model=
"baseEditMsg.TemplateStaus"
/>
</div>
<div
class=
"col-12"
style=
"margin:20px 24px;"
>
<q-select
standout=
"bg-primary text-white"
v-model=
"baseEditMsg.BaseTemplateType"
:options=
"moduleList"
option-value=
"Id"
option-label=
"Name"
emit-value
map-options
label=
"模板类型"
/>
</div>
<div
filled
class=
"col-12"
style=
"margin:30px 24px 0 24px;"
>
<q-input
filled
stack-label
maxlength=
"20"
:dense=
"false"
v-model=
"baseEditMsg.Sign"
class=
"col-12"
label=
"签名"
:rules=
"[val => !!val || '请填写签名']"
/>
</div>
<div
filled
class=
"col-12"
style=
"margin:20px 24px 0 24px;"
>
<q-input
filled
stack-label
maxlength=
"20"
:dense=
"false"
v-model=
"baseEditMsg.TemplateId"
class=
"col-12"
label=
"模板id"
:rules=
"[val => !!val || '请填写模板id']"
/>
</div>
<div
style=
"margin:30px 10px 0 0;text-align:right;"
>
<q-btn
color=
"accent"
class=
"q-mr-md"
icon=
"add"
label=
"保存"
@
click=
"saveSatMsg()"
/>
</div>
</el-drawer>
</div>
</template>
...
...
@@ -247,7 +319,11 @@
import
{
getMsgPage
,
getConfigPage
,
EditMsgConfig
EditMsgConfig
,
GetMsgBaseList
,
GetMsgBaseTemplatePageList
,
GetBaseTemplateTypeEnumList
,
SetMsgBaseTemplate
}
from
'../../api/system/msg'
;
import
{
...
...
@@ -301,14 +377,14 @@
field
:
'StoreType'
,
align
:
'left'
},
{
name
:
'
config
'
,
name
:
'
MsgBase
'
,
label
:
'配置信息 '
,
field
:
'
config
'
,
field
:
'
MsgBase
'
,
align
:
'left'
},
{
name
:
'optioned'
,
label
:
'操作'
,
field
:
'
StoreType
'
field
:
'
optioned
'
}],
data
:
[],
loading
:
true
,
...
...
@@ -352,11 +428,29 @@
AccessSecret
:
''
//秘钥Secret
}
},
//获取短信设置msg
setMsg
:
{
PageIndex
:
1
,
StoreType
:
0
,
PageSize
:
12
},
statusData
:
[],
//发送状态
statusData1
:[],
//短信配置数据
configData
:
[],
pageCountConfig
:
0
,
//配置 页数
msgDrawdia
:
false
,
//短信设置右侧弹窗
baseEditMsg
:
{
ID
:
0
,
StoreType
:
1
,
//短信供应商 1-腾讯云,2-阿里,3-其他
TemplateStaus
:
0
,
//模板状态,0-正常,1-禁用
BaseTemplateType
:
1
,
//模板类型
Sign
:
''
,
//签名
TemplateId
:
''
//模板id
},
moduleList
:
[],
//配置类型列表
setUpData
:
[],
//短信设置数据
setDataCount
:
0
,
//短信设置页数
}
},
mounted
()
{
...
...
@@ -369,13 +463,15 @@
this
.
getList
();
}
else
if
(
this
.
tabCheck
==
'second'
)
{
this
.
getConfigList
();
}
else
{
this
.
getSetingMsg
();
this
.
getModoleType
();
}
},
//获取短信流水数据
getList
()
{
this
.
loading
=
false
;
getMsgPage
(
this
.
waterMsg
).
then
(
res
=>
{
console
.
log
(
res
,
'数据'
);
this
.
data
=
res
.
Data
.
PageData
;
this
.
loading
=
false
;
this
.
pageCount
=
res
.
Data
.
PageCount
;
...
...
@@ -394,17 +490,21 @@
this
.
ConfigMsg
.
pageIndex
=
val
;
this
.
getConfigList
()
},
//短信配置翻页
changePage3
()
{
this
.
setMsg
.
pageIndex
=
val
;
this
.
getSetingMsg
()
},
//获去下拉状态
getStatus
()
{
getConfigStatus
().
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
statusData
=
res
.
Data
;
this
.
statusData1
=
res
.
Data
;
let
obj
=
{
Name
:
'全部'
,
Id
:
0
let
obj
=
{
Name
:
'全部'
,
Id
:
0
}
this
.
statusData
1
.
unshift
(
obj
);
this
.
statusData
.
unshift
(
obj
);
}
})
},
...
...
@@ -412,7 +512,6 @@
getConfigList
()
{
this
.
loading2
=
true
;
getConfigPage
(
this
.
ConfigMsg
).
then
(
res
=>
{
console
.
log
(
res
,
'数据2'
);
this
.
loading2
=
false
;
if
(
res
.
Code
==
1
)
{
this
.
configData
=
res
.
Data
.
PageData
;
...
...
@@ -425,10 +524,30 @@
//新增配置
addConfig
()
{
this
.
drawer
=
true
;
this
.
configEditMsg
.
ID
=
0
;
this
.
configEditMsg
.
StoreType
=
1
;
this
.
configEditMsg
.
MsgBase
.
RegionId
=
''
;
this
.
configEditMsg
.
MsgBase
.
Domain
=
''
;
this
.
configEditMsg
.
MsgBase
.
AccessKeyId
=
''
;
this
.
configEditMsg
.
MsgBase
.
AccessSecret
=
''
;
},
//修改配置
EditConfig
(
obj
){
EditConfig
(
obj
)
{
let
msg
=
{
ID
:
obj
.
ID
}
this
.
drawer
=
true
;
GetMsgBaseList
(
msg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
var
data
=
res
.
Data
;
this
.
configEditMsg
.
ID
=
data
.
ID
;
this
.
configEditMsg
.
StoreType
=
data
.
StoreType
;
this
.
configEditMsg
.
MsgBase
.
RegionId
=
data
.
MsgBase
.
RegionId
;
this
.
configEditMsg
.
MsgBase
.
Domain
=
data
.
MsgBase
.
Domain
;
this
.
configEditMsg
.
MsgBase
.
AccessKeyId
=
data
.
MsgBase
.
AccessKeyId
;
this
.
configEditMsg
.
MsgBase
.
AccessSecret
=
data
.
MsgBase
.
AccessSecret
;
}
})
},
//保存配置
saveConfig
()
{
...
...
@@ -465,17 +584,74 @@
return
;
}
EditMsgConfig
(
this
.
configEditMsg
).
then
(
res
=>
{
console
.
log
(
res
,
'数据'
);
this
.
$q
.
notify
({
type
:
'iconfont icon-chenggong'
,
position
:
"top"
,
message
:
`保存成功`
})
this
.
drawer
=
false
;
this
.
drawer
=
false
;
this
.
getConfigList
();
}).
catch
(()
=>
{
})
},
//获取短信设置下拉模板类型
getModoleType
()
{
GetBaseTemplateTypeEnumList
().
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
moduleList
=
res
.
Data
;
}
}).
catch
(()
=>
{
})
},
//获取短信设置数据
getSetingMsg
()
{
GetMsgBaseTemplatePageList
(
this
.
setMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
setUpData
=
res
.
Data
.
PageData
;
this
.
setDataCount
=
res
.
Data
.
PageCount
;
}
}).
catch
(()
=>
{
})
},
//新增短信设置数据
addSetcfig
()
{
this
.
baseEditMsg
.
ID
=
0
;
this
.
baseEditMsg
.
StoreType
=
1
;
this
.
baseEditMsg
.
TemplateStaus
=
0
;
this
.
baseEditMsg
.
BaseTemplateType
=
1
;
this
.
baseEditMsg
.
Sign
=
''
;
this
.
baseEditMsg
.
TemplateId
=
''
;
this
.
msgDrawdia
=
true
;
},
//修改数据
getMsgInfo
(
item
)
{
this
.
msgDrawdia
=
true
;
this
.
baseEditMsg
.
ID
=
item
.
ID
;
this
.
baseEditMsg
.
StoreType
=
item
.
StoreType
;
this
.
baseEditMsg
.
TemplateStaus
=
item
.
TemplateStaus
;
this
.
baseEditMsg
.
BaseTemplateType
=
item
.
BaseTemplateType
;
this
.
baseEditMsg
.
Sign
=
item
.
Sign
;
this
.
baseEditMsg
.
TemplateId
=
item
.
TemplateId
;
},
//保存短信设置数据
saveSatMsg
()
{
SetMsgBaseTemplate
(
this
.
baseEditMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
type
:
'iconfont icon-chenggong'
,
position
:
"top"
,
message
:
`保存成功`
})
this
.
getSetingMsg
();
this
.
msgDrawdia
=
false
;
}
}).
catch
(()
=>
{
})
}
}
}
...
...
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