Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
J
jiedao-app-operator-master
Project
Project
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
lanbaoming
jiedao-app-operator-master
Commits
6185d54e
Commit
6185d54e
authored
Nov 20, 2024
by
honghy
Committed by
wux
Jan 02, 2025
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
短信模块实作
parent
fbe9d15a
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
690 additions
and
79 deletions
+690
-79
smsNode.js
src/api/system/sms/smsNode.js
+54
-0
smsTemplate.js
src/api/system/sms/smsTemplate.js
+8
-0
dict.js
src/utils/dict.js
+3
-0
CancelCargo.vue
src/views/ecw/order/components/CancelCargo.vue
+12
-3
CargoControlEdit.vue
src/views/ecw/order/components/CargoControlEdit.vue
+11
-2
Fallback.vue
src/views/ecw/order/components/Fallback.vue
+14
-5
Release.vue
src/views/ecw/order/components/Release.vue
+47
-40
SendSmsCode.vue
src/views/ecw/order/components/SendSmsCode.vue
+13
-8
Transfer.vue
src/views/ecw/order/components/Transfer.vue
+12
-4
TransferCargo.vue
src/views/ecw/order/components/TransferCargo.vue
+10
-1
smsLog.vue
src/views/system/sms/smsLog.vue
+5
-0
smsNode.vue
src/views/system/sms/smsNode.vue
+425
-0
smsTemplate.vue
src/views/system/sms/smsTemplate.vue
+76
-16
No files found.
src/api/system/sms/smsNode.js
0 → 100644
View file @
6185d54e
import
request
from
'
@/utils/request
'
// 创建短信节点
export
function
createSmsNode
(
data
)
{
return
request
({
url
:
'
/system/sms-node/create
'
,
method
:
'
post
'
,
data
:
data
})
}
// 更新短信节点
export
function
updateSmsNode
(
data
)
{
return
request
({
url
:
'
/system/sms-node/update
'
,
method
:
'
put
'
,
data
:
data
})
}
// 删除短信节点
export
function
deleteSmsNode
(
id
)
{
return
request
({
url
:
'
/system/sms-node/delete?id=
'
+
id
,
method
:
'
delete
'
})
}
// 获得短信节点
export
function
getSmsNode
(
id
)
{
return
request
({
url
:
'
/system/sms-node/get?id=
'
+
id
,
method
:
'
get
'
})
}
// 获得短信节点分页
export
function
getSmsNodePage
(
query
)
{
return
request
({
url
:
'
/system/sms-node/page
'
,
method
:
'
get
'
,
params
:
query
})
}
// 导出短信节点 Excel
export
function
exportSmsNodeExcel
(
query
)
{
return
request
({
url
:
'
/system/sms-node/export-excel
'
,
method
:
'
get
'
,
params
:
query
,
responseType
:
'
blob
'
})
}
src/api/system/sms/smsTemplate.js
View file @
6185d54e
...
...
@@ -62,3 +62,11 @@ export function exportSmsTemplateExcel(query) {
})
}
// 获得短信模板列表
export
function
getSmsTemplateList
(
query
)
{
return
request
({
url
:
'
/system/sms-template/list
'
,
method
:
'
get
'
,
params
:
query
})
}
src/utils/dict.js
View file @
6185d54e
...
...
@@ -27,6 +27,9 @@ export const DICT_TYPE = {
SYSTEM_SMS_TEMPLATE_TYPE
:
"
system_sms_template_type
"
,
SYSTEM_SMS_SEND_STATUS
:
"
system_sms_send_status
"
,
SYSTEM_SMS_RECEIVE_STATUS
:
"
system_sms_receive_status
"
,
SYSTEM_SMS_NODE_NODE
:
'
system_sms_node_node
'
,
//节点
SYSTEM_SMS_TEMPLATE_MESSAGE_TYPE
:
'
system_sms_template_message_type
'
,
//发送类型
SYSTEM_SMS_TEMPLATE_LANGUAGE
:
'
system_sms_template_language
'
,
//节点
SYSTEM_MAIL_SEND_STATUS
:
"
mail_send_status
"
,
SYSTEM_ERROR_CODE_TYPE
:
"
system_error_code_type
"
,
INTERNAL_MESSAGE_TYPE
:
"
internal_message_type
"
,
...
...
src/views/ecw/order/components/CancelCargo.vue
View file @
6185d54e
...
...
@@ -28,13 +28,22 @@
<el-form-item
:label=
"$t('上传凭证')"
>
<image-upload
v-model=
"formData.voucher"
/>
</el-form-item>
<el-form-item
:label=
"$t('控货手机号')"
>
+
{{
detail
.
dialCode
}}
{{
detail
.
phone
}}
</el-form-item>
<el-form-item
:label=
"$t('手机验证码')"
>
<el-input
v-model=
"formData.code"
placeholder=
""
style=
"width: 100px; margin-right:10px"
></el-input>
<send-sms-code
:order-id=
"order.orderId"
:scene=
"5"
/>
<send-sms-code
:form=
"
{
orderId: order.orderId,
nodeValue: 'delivery-verification-sms',
isTransport: 0,
transportId: 0,
isOrders: 0,
messageType: ''
}"
/>
</el-form-item>
<div
class=
"title"
>
{{
$t
(
'
审批流程
'
)
}}
</div>
...
...
@@ -125,4 +134,4 @@ export default {
margin-right
:
10px
;
}
}
</
style
>
\ No newline at end of file
</
style
>
src/views/ecw/order/components/CargoControlEdit.vue
View file @
6185d54e
...
...
@@ -38,7 +38,16 @@
</el-form-item>
<el-form-item
:label=
"$t('手机验证码')"
prop=
"field106"
>
<el-input
v-model=
"formData.code"
placeholder=
""
style=
"width: 100px; margin-right:10px"
></el-input>
<send-sms-code
:order-id=
"order.orderId"
:scene=
"5"
/>
<send-sms-code
:form=
"
{
orderId: order.orderId,
nodeValue: 'delivery-verification-sms',
isTransport: 0,
transportId: 0,
isOrders: 0,
messageType: ''
}"
/>
</el-form-item>
<div
class=
"title"
>
{{
$t
(
'
审批流程
'
)
}}
</div>
<work-flow
xmlkey=
"release_goods"
v-model=
"ccIdArr"
/>
...
...
@@ -109,7 +118,7 @@ export default {
submit
(){
let
data
=
Object
.
assign
({},
this
.
formData
,
{
cargoControlPickId
:
this
.
info
.
id
,
orderId
:
this
.
order
.
orderId
,
orderNo
:
this
.
order
.
orderNo
})
...
...
src/views/ecw/order/components/Fallback.vue
View file @
6185d54e
...
...
@@ -29,8 +29,8 @@
</el-form-item>
</el-col>
</el-row>
<el-form-item
:label=
"$t('反复核原因')"
prop=
"recurrentNuclearType"
>
<dict-selector
:type=
"DICT_TYPE.ECW_PICK_RECURRENT_NUCLEAR_TYPE"
v-model=
"formData.recurrentNuclearType"
form-type=
"radio"
/>
...
...
@@ -43,11 +43,20 @@
<
template
v-else
>
+
{{
order
.
cargoControlCountryCode
}}
{{
order
.
cargoControlPhone
}}
</
template
>
</el-form-item>
<el-form-item
:label=
"$t('手机验证码')"
prop=
"code"
>
<el-input
v-model=
"formData.code"
placeholder=
""
style=
"width: 100px; margin-right:10px"
></el-input>
<send-sms-code
:order-id=
"order.orderId"
:scene=
"5"
/>
<send-sms-code
:form=
"{
orderId: order.orderId,
nodeValue: 'delivery-verification-sms',
isTransport: 0,
transportId: 0,
isOrders: 0,
messageType: ''
}"
/>
</el-form-item>
<div
class=
"title"
>
{{$t('审批流程')}}
</div>
<work-flow
xmlkey=
"release_goods"
v-model=
"ccIdArr"
/>
...
...
@@ -114,7 +123,7 @@ export default {
this
.
$refs
.
form
.
validate
().
then
(
res
=>
{
let
data
=
Object
.
assign
({},
this
.
formData
,
{
cargoControlPickId
:
this
.
info
.
id
,
orderId
:
this
.
order
.
orderId
,
orderNo
:
this
.
order
.
orderNo
})
...
...
src/views/ecw/order/components/Release.vue
View file @
6185d54e
<
template
>
<el-dialog
:title=
"title"
visible
:before-close=
"closeDialog"
:close-on-click-modal=
"false"
width=
"1000px"
>
<el-form
v-if=
"agreement"
ref=
"form"
:model=
"formData"
:rules=
"rules"
size=
"small"
label-width=
"140px"
>
<el-row>
<el-col
:span=
"8"
>
<el-form-item
:label=
"$t('订单号')"
>
{{
detail
.
orderNo
}}
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
:label=
"$t('体积')"
>
{{
detail
.
sumVolume
}}
m³
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
:label=
"$t('重量')"
>
{{
detail
.
sumWeight
}}
kg
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
:label=
"$t('总箱数')"
>
{{
detail
.
sumNum
}}
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
:label=
"$t('总控货箱数')"
>
{{
detail
.
sumNum
}}
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-dialog
:title=
"title"
visible
:before-close=
"closeDialog"
:close-on-click-modal=
"false"
width=
"1000px"
>
<el-form
v-if=
"agreement"
ref=
"form"
:model=
"formData"
:rules=
"rules"
size=
"small"
label-width=
"140px"
>
<el-row>
<el-col
:span=
"8"
>
<el-form-item
:label=
"$t('订单号')"
>
{{
detail
.
orderNo
}}
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
:label=
"$t('体积')"
>
{{
detail
.
sumVolume
}}
m³
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
:label=
"$t('重量')"
>
{{
detail
.
sumWeight
}}
kg
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
:label=
"$t('总箱数')"
>
{{
detail
.
sumNum
}}
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
:label=
"$t('总控货箱数')"
>
{{
detail
.
sumNum
}}
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
:label=
"$t('剩余放货箱数')"
>
{{
detail
.
sumNum
-
detail
.
releaseNum
}}
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
:label=
"$t('到仓日期/卸柜日期')"
>
{{
detail
.
unloadTime
||
'
-
'
}}
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
{{
detail
.
unloadTime
||
'
-
'
}}
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
:label=
"$t('放货锁定收货人到期')"
>
{{
detail
.
lockConsigneeTime
||
'
-
'
}}
</el-form-item>
...
...
@@ -131,13 +131,20 @@
<el-input
v-model=
"formData.code"
:placeholder=
"$t('请输入手机验证码')"
clearable
class=
"w-150 mr-10"
></el-input>
<!-- <el-button type="success">{{ $t('获取验证码') }}</el-button> -->
<send-sms-code
:order-id=
"detail.orderId"
scene=
"5"
/>
</el-form-item>
<el-form-item
label=
""
style=
"margin-top:20px"
>
<el-button
type=
"success"
@
click=
"submit"
>
{{ $t('确认提货') }}
</el-button>
<el-button
type=
"default"
@
click=
"closeDialog"
>
{{ $t('关闭') }}
</el-button>
</el-form-item>
</el-form>
<send-sms-code
:form=
"{
orderId: detail.orderId,
nodeValue: 'delivery-verification-sms',
isTransport: 0,
transportId: 0,
isOrders: 0,
}"
/>
</el-form-item>
<el-form-item
label=
""
style=
"margin-top:20px"
>
<el-button
type=
"success"
@
click=
"submit"
>
{{$t('确认提货')}}
</el-button>
<el-button
type=
"default"
@
click=
"closeDialog"
>
{{$t('关闭')}}
</el-button>
</el-form-item>
</el-form>
<div
v-else
>
<!-- <release-agreement /> -->
...
...
src/views/ecw/order/components/SendSmsCode.vue
View file @
6185d54e
<
template
>
<el-button
@
click=
"send"
:disabled=
"leftTime > 0 && leftTime
<
60
"
>
{{
text
}}
</el-button>
<el-dropdown
@
command=
"send"
:disabled=
"leftTime > 0 && leftTime
<
60
"
>
<el-button
type=
"primary"
>
{{
text
}}
<i
class=
"el-icon-arrow-down el-icon--right"
></i>
</el-button>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-item
command=
"1"
>
SMS
</el-dropdown-item>
<el-dropdown-item
command=
"2"
>
WhatsApp
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</
template
>
<
script
>
import
{
sendSmsCode
}
from
'
@/api/ecw/orderCargoControl
'
let
timeout
=
null
export
default
{
props
:{
orderId
:
[
String
,
Number
],
scene
:
[
String
,
Number
]
form
:
Object
},
data
(){
return
{
...
...
@@ -30,13 +37,11 @@ export default {
if
(
timeout
)
clearTimeout
(
timeout
)
},
methods
:{
send
(){
send
(
messageType
){
if
(
this
.
loading
||
(
this
.
leftTime
>
0
&&
this
.
leftTime
<
60
))
return
false
this
.
loading
=
true
sendSmsCode
({
orderId
:
this
.
orderId
,
scene
:
this
.
scene
}).
then
(
res
=>
{
this
.
form
[
'
messageType
'
]
=
messageType
sendSmsCode
(
this
.
form
).
then
(
res
=>
{
this
.
$message
.
success
(
this
.
$t
(
'
发送成功
'
))
this
.
countDown
()
}).
finally
(
res
=>
{
...
...
src/views/ecw/order/components/Transfer.vue
View file @
6185d54e
...
...
@@ -8,7 +8,7 @@
<el-form-item
:label=
"$t('原控货手机号')"
>
<el-input
:value=
"'+' + cargoControlCountryCode + ' ' + cargoControlPhone"
disabled
></el-input>
</el-form-item>
<el-form-item
:label=
"$t('新控货人')"
prop=
"name"
>
<el-input
v-model=
"form.name"
></el-input>
</el-form-item>
...
...
@@ -21,7 +21,15 @@
</el-form-item>
<el-form-item
:label=
"$t('手机验证码')"
prop=
"code"
>
<el-input
v-model.number=
"form.code"
type=
"number"
class=
"w-200 mr-10"
></el-input>
<send-sms-code
:order-id=
"orderId"
scene=
"4"
/>
<send-sms-code
:form=
"
{
orderId: orderId,
nodeValue: 'transfer-control-goods',
isTransport: 0,
transportId: 0,
isOrders: 0,
}"
/>
</el-form-item>
<el-form-item
label=
""
>
<el-button
type=
"primary"
@
click=
"submit"
>
{{
$t
(
'
确定转移
'
)
}}
</el-button>
...
...
@@ -111,8 +119,8 @@ export default {
this
.
closeDialog
()
})
})
}
}
}
</
script
>
\ No newline at end of file
</
script
>
src/views/ecw/order/components/TransferCargo.vue
View file @
6185d54e
...
...
@@ -63,7 +63,16 @@
</el-form-item>
<el-form-item
:label=
"$t('手机验证码')"
prop=
"code"
>
<el-input
v-model=
"formData.code"
:placeholder=
"$t('请输入手机验证码')"
clearable
class=
"w-150 mr-10"
></el-input>
<send-sms-code
:order-id=
"detail.orderId"
scene=
"5"
/>
<send-sms-code
:form=
"{
orderId: detail.orderId,
nodeValue: 'delivery-verification-sms',
isTransport: 0,
transportId: 0,
isOrders: 0,
messageType: ''
}"
/>
</el-form-item>
<div
class=
"page-title"
>
{{$t('审批流程')}}
</div>
<work-flow
v-model=
"ccIdArr"
xmlkey=
"transfer_goods"
/>
...
...
src/views/system/sms/smsLog.vue
View file @
6185d54e
...
...
@@ -178,6 +178,11 @@
<el-form-item
label=
"API 接收结果:"
>
{{ form.apiReceiveCode }} | {{ form.apiReceiveMsg }}
</el-form-item>
</el-col>
<el-col
:span=
"24"
>
<el-form-item
label=
"节点模板序列号:"
>
{{ form.nodeTemplateSn }}
</el-form-item>
</el-col>
</el-row>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
...
...
src/views/system/sms/smsNode.vue
0 → 100644
View file @
6185d54e
<
template
>
<div
class=
"app-container"
>
<!-- 搜索工作栏 -->
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form-item
label=
"节点"
prop=
"nodeValue"
>
<el-select
clearable
v-model=
"queryParams.nodeValue"
placeholder=
"请选择节点类型"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.SYSTEM_SMS_NODE_NODE)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"运输方式"
prop=
"transportId"
>
<el-select
clearable
v-model=
"queryParams.transportId"
:placeholder=
"$t('请选择运输方式类型')"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.ECW_TRANSPORT_TYPE)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"parseInt(dict.value)"
/>
<el-option
key=
"0"
label=
"其他"
:value=
"parseInt(0)"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"国家"
prop=
"countryId"
>
<el-select
filterable
clearable
v-model=
"queryParams.countryId"
:placeholder=
"$t('请选择国家')"
>
<el-option
key=
"0"
label=
"全部"
:value=
"parseInt(0)"
/>
<el-option
key=
"-1"
label=
"其他"
:value=
"parseInt(-1)"
/>
<el-option
v-for=
"dict in countryList"
:key=
"dict.id"
:label=
"$l(dict, 'name')"
:value=
"parseInt(dict.id)"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"启用状态"
prop=
"status"
>
<el-select
v-model=
"queryParams.status"
:placeholder=
"$t('请选择开启状态')"
clearable
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.COMMON_STATUS)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"是否匹配运输方式"
prop=
"isTransport"
label-width=
"134px"
>
<el-select
clearable
v-model=
"queryParams.isTransport"
>
<el-option
key=
"0"
label=
"否"
:value=
"parseInt(0)"
/>
<el-option
key=
"1"
label=
"是"
:value=
"parseInt(1)"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"多订单"
prop=
"isOrders"
>
<el-select
clearable
v-model=
"queryParams.isOrders"
>
<el-option
key=
"0"
label=
"否"
:value=
"parseInt(0)"
/>
<el-option
key=
"1"
label=
"是"
:value=
"parseInt(1)"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('创建时间')"
>
<el-date-picker
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
type=
"daterange"
range-separator=
"-"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
/>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
搜索
</el-button>
<el-button
icon=
"el-icon-refresh"
@
click=
"resetQuery"
>
重置
</el-button>
</el-form-item>
</el-form>
<!-- 操作工具栏 -->
<el-row
:gutter=
"10"
class=
"mb8"
>
<el-col
:span=
"1.5"
>
<el-button
type=
"primary"
plain
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAdd"
v-hasPermi=
"['system:sms-node:create']"
>
新增
</el-button>
</el-col>
<!--
<el-col
:span=
"1.5"
>
<el-button
type=
"warning"
plain
icon=
"el-icon-download"
size=
"mini"
@
click=
"handleExport"
:loading=
"exportLoading"
v-hasPermi=
"['system:sms-node:export']"
>
导出
</el-button>
</el-col>
-->
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
</el-row>
<!-- 列表 -->
<el-table
v-loading=
"loading"
:data=
"list"
>
<el-table-column
label=
"编号"
align=
"center"
prop=
"id"
/>
<el-table-column
label=
"节点"
align=
"center"
prop=
"nodeValue"
>
<template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.SYSTEM_SMS_NODE_NODE"
:value=
"scope.row.nodeValue"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"运输方式"
align=
"center"
prop=
"transportId"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.TRANSPORT_TYPE"
:value=
"scope.row.transportId"
/>
{{
scope
.
row
.
transportId
==
0
?
'
其他
'
:
''
}}
</
template
>
</el-table-column>
<el-table-column
label=
"国家"
align=
"center"
prop=
"countryId"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
countryId
!=
null
?
countryMap
.
get
(
scope
.
row
.
countryId
)
!=
null
?
countryMap
.
get
(
scope
.
row
.
countryId
).
nameZh
:
''
:
''
}}
</
template
>
</el-table-column>
<el-table-column
label=
"国家区号"
align=
"center"
prop=
"countryCode"
/>
<el-table-column
label=
"启用状态"
align=
"center"
prop=
"status"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.COMMON_STATUS"
:value=
"scope.row.status"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"是否匹配运输方式"
align=
"center"
prop=
"isTransport"
width=
"130"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
isTransport
==
0
?
'
否
'
:
'
是
'
}}
</
template
>
</el-table-column>
<el-table-column
label=
"多订单"
align=
"center"
prop=
"isOrders"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
isOrders
==
0
?
'
否
'
:
'
是
'
}}
</
template
>
</el-table-column>
<el-table-column
label=
"模板1"
align=
"center"
prop=
"templateIdOne"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
templateIdOne
!=
null
?
smsTemplateMap
.
get
(
scope
.
row
.
templateIdOne
)
!=
null
?
smsTemplateMap
.
get
(
scope
.
row
.
templateIdOne
).
name
:
''
:
''
}}
</
template
>
</el-table-column>
<el-table-column
label=
"模板2"
align=
"center"
prop=
"templateIdTwo"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
templateIdTwo
!=
null
?
smsTemplateMap
.
get
(
scope
.
row
.
templateIdTwo
)
!=
null
?
smsTemplateMap
.
get
(
scope
.
row
.
templateIdTwo
).
name
:
''
:
''
}}
</
template
>
</el-table-column>
<el-table-column
label=
"模板3"
align=
"center"
prop=
"templateIdThree"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
templateIdThree
!=
null
?
smsTemplateMap
.
get
(
scope
.
row
.
templateIdThree
)
!=
null
?
smsTemplateMap
.
get
(
scope
.
row
.
templateIdThree
).
name
:
''
:
''
}}
</
template
>
</el-table-column>
<el-table-column
label=
"模板4"
align=
"center"
prop=
"templateIdFour"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
templateIdFour
!=
null
?
smsTemplateMap
.
get
(
scope
.
row
.
templateIdFour
)
!=
null
?
smsTemplateMap
.
get
(
scope
.
row
.
templateIdFour
).
name
:
''
:
''
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('创建时间')"
align=
"center"
prop=
"createTime"
width=
"180"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleUpdate(scope.row)"
v-hasPermi=
"['system:sms-node:update']"
>
修改
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
v-hasPermi=
"['system:sms-node:delete']"
>
删除
</el-button>
</
template
>
</el-table-column>
</el-table>
<!-- 分页组件 -->
<pagination
v-show=
"total > 0"
:total=
"total"
:page.sync=
"queryParams.pageNo"
:limit.sync=
"queryParams.pageSize"
@
pagination=
"getList"
/>
<!-- 对话框(添加 / 修改) -->
<el-dialog
:title=
"title"
:visible.sync=
"open"
width=
"500px"
append-to-body
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"150px"
>
<el-form-item
label=
"节点"
prop=
"nodeValue"
>
<el-select
v-model=
"form.nodeValue"
placeholder=
"请选择节点类型"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.SYSTEM_SMS_NODE_NODE)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('运输方式')"
prop=
"transportId"
>
<el-select
v-model=
"form.transportId"
:placeholder=
"$t('请选择运输方式类型')"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.ECW_TRANSPORT_TYPE)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"parseInt(dict.value)"
/>
<el-option
key=
"0"
label=
"其他"
:value=
"parseInt(0)"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"国家"
prop=
"countryId"
>
<el-select
filterable
clearable
v-model=
"form.countryId"
:placeholder=
"$t('请选择国家')"
@
change=
"handleChangeCountry"
>
<el-option
key=
"0"
label=
"全部"
:value=
"parseInt(0)"
/>
<el-option
key=
"-1"
label=
"其他"
:value=
"parseInt(-1)"
/>
<el-option
v-for=
"dict in countryList"
:key=
"dict.id"
:label=
"$l(dict, 'name')"
:value=
"parseInt(dict.id)"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"国家区号"
prop=
"countryCode"
>
{{form.countryCode}}
</el-form-item>
<el-form-item
:label=
"$t('开启状态')"
prop=
"status"
>
<el-radio-group
v-model=
"form.status"
>
<el-radio
v-for=
"dict in this.getDictDatas(DICT_TYPE.COMMON_STATUS)"
:key=
"dict.value"
:label=
"parseInt(dict.value)"
>
{{dict.label}}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
label=
"是否匹配运输方式"
prop=
"isTransport"
>
<el-select
v-model=
"form.isTransport"
>
<el-option
key=
"0"
label=
"否"
:value=
"parseInt(0)"
/>
<el-option
key=
"1"
label=
"是"
:value=
"parseInt(1)"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"多订单"
prop=
"isOrders"
>
<el-select
v-model=
"form.isOrders"
>
<el-option
key=
"0"
label=
"否"
:value=
"parseInt(0)"
/>
<el-option
key=
"1"
label=
"是"
:value=
"parseInt(1)"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"模板1"
prop=
"templateIdOne"
>
<el-select
filterable
clearable
v-model=
"form.templateIdOne"
placeholder=
"请选择模板1"
>
<el-option
v-for=
"dict in smsTemplateList"
:key=
"dict.id"
:label=
"dict.name"
:value=
"dict.id"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"模板2"
prop=
"templateIdTwo"
>
<el-select
filterable
clearable
v-model=
"form.templateIdTwo"
placeholder=
"请选择模板2"
>
<el-option
v-for=
"dict in smsTemplateList"
:key=
"dict.id"
:label=
"dict.name"
:value=
"dict.id"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"模板3"
prop=
"templateIdThree"
>
<el-select
filterable
clearable
v-model=
"form.templateIdThree"
placeholder=
"请选择模板3"
>
<el-option
v-for=
"dict in smsTemplateList"
:key=
"dict.id"
:label=
"dict.name"
:value=
"dict.id"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"模板4"
prop=
"templateIdFour"
>
<el-select
filterable
clearable
v-model=
"form.templateIdFour"
placeholder=
"请选择模板4"
>
<el-option
v-for=
"dict in smsTemplateList"
:key=
"dict.id"
:label=
"dict.name"
:value=
"dict.id"
/>
</el-select>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitForm"
>
确 定
</el-button>
<el-button
@
click=
"cancel"
>
取 消
</el-button>
</div>
</el-dialog>
</div>
</template>
<
script
>
import
{
createSmsNode
,
updateSmsNode
,
deleteSmsNode
,
getSmsNode
,
getSmsNodePage
,
exportSmsNodeExcel
}
from
"
@/api/system/sms/smsNode
"
;
import
{
getCountryListAll
}
from
'
@/api/ecw/country
'
import
{
getSmsTemplateList
}
from
'
@/api/system/sms/smsTemplate
'
export
default
{
name
:
"
SmsNode
"
,
components
:
{
},
data
()
{
return
{
// 遮罩层
loading
:
true
,
// 导出遮罩层
exportLoading
:
false
,
// 显示搜索条件
showSearch
:
true
,
// 总条数
total
:
0
,
// 短信节点列表
list
:
[],
// 弹出层标题
title
:
""
,
// 是否显示弹出层
open
:
false
,
dateRangeCreateTime
:
[],
countryList
:
[],
smsTemplateList
:
[],
// 查询参数
queryParams
:
{
pageNo
:
1
,
pageSize
:
10
,
nodeValue
:
null
,
transportId
:
null
,
countryId
:
null
,
countryCode
:
null
,
status
:
null
,
templateIdOne
:
null
,
templateIdTwo
:
null
,
templateIdThree
:
null
,
templateIdFour
:
null
,
isTransport
:
null
,
isOrders
:
null
},
// 表单参数
form
:
{},
// 表单校验
rules
:
{
nodeValue
:
[{
required
:
true
,
message
:
"
节点不能为空
"
,
trigger
:
"
blur
"
}],
transportId
:
[{
required
:
true
,
message
:
"
运输方式不能为空
"
,
trigger
:
"
blur
"
}],
countryId
:
[{
required
:
true
,
message
:
"
国家区号不能为空
"
,
trigger
:
"
change
"
}],
countryCode
:
[{
required
:
true
,
message
:
"
国家区号不能为空
"
,
trigger
:
"
blur
"
}],
status
:
[{
required
:
true
,
message
:
"
启用状态不能为空
"
,
trigger
:
"
change
"
}],
templateIdOne
:
[{
required
:
true
,
message
:
"
模板1不能为空
"
,
trigger
:
"
change
"
}],
isTransport
:
[{
required
:
true
,
message
:
"
是否匹配运输方式不能为空
"
,
trigger
:
"
change
"
}],
isOrders
:
[{
required
:
true
,
message
:
"
多订单不能为空
"
,
trigger
:
"
change
"
}],
},
countryMap
:
new
Map
(),
smsTemplateMap
:
new
Map
()
};
},
async
created
()
{
const
that
=
this
this
.
getList
();
getCountryListAll
().
then
(
res
=>
{
this
.
countryList
=
res
.
data
.
map
(
item
=>
{
item
.
tel
=
item
.
tel
.
replace
(
'
+
'
,
''
)
that
.
countryMap
.
set
(
item
.
id
,
item
)
return
item
})
})
this
.
countryMap
.
set
(
0
,{
id
:
0
,
nameZh
:
'
全部
'
})
this
.
countryMap
.
set
(
-
1
,{
id
:
-
1
,
nameZh
:
'
其他
'
})
getSmsTemplateList
().
then
(
res
=>
{
this
.
smsTemplateList
=
res
.
data
for
(
var
i
=
0
;
i
<
res
.
data
.
length
;
i
++
){
this
.
smsTemplateMap
.
set
(
res
.
data
[
i
].
id
,
res
.
data
[
i
])
}
})
},
methods
:
{
/** 查询列表 */
getList
()
{
this
.
loading
=
true
;
// 处理查询参数
let
params
=
{...
this
.
queryParams
};
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
// 执行查询
getSmsNodePage
(
params
).
then
(
response
=>
{
this
.
list
=
response
.
data
.
list
;
this
.
total
=
response
.
data
.
total
;
this
.
loading
=
false
;
});
},
/** 取消按钮 */
cancel
()
{
this
.
open
=
false
;
this
.
reset
();
},
/** 表单重置 */
reset
()
{
this
.
form
=
{
id
:
undefined
,
nodeValue
:
undefined
,
transportId
:
undefined
,
countryId
:
undefined
,
countryCode
:
undefined
,
status
:
undefined
,
templateIdOne
:
undefined
,
templateIdTwo
:
undefined
,
templateIdThree
:
undefined
,
templateIdFour
:
undefined
,
isTransport
:
undefined
,
isOrders
:
undefined
};
this
.
resetForm
(
"
form
"
);
},
/** 搜索按钮操作 */
handleQuery
()
{
this
.
queryParams
.
pageNo
=
1
;
this
.
getList
();
},
/** 重置按钮操作 */
resetQuery
()
{
this
.
dateRangeCreateTime
=
[];
this
.
resetForm
(
"
queryForm
"
);
this
.
handleQuery
();
},
/** 新增按钮操作 */
handleAdd
()
{
this
.
reset
();
this
.
open
=
true
;
this
.
title
=
"
添加短信节点
"
;
},
/** 修改按钮操作 */
handleUpdate
(
row
)
{
this
.
reset
();
const
id
=
row
.
id
;
getSmsNode
(
id
).
then
(
response
=>
{
this
.
form
=
response
.
data
;
this
.
open
=
true
;
this
.
title
=
"
修改短信节点
"
;
});
},
/** 提交按钮 */
submitForm
()
{
this
.
$refs
[
"
form
"
].
validate
(
valid
=>
{
if
(
!
valid
)
{
return
;
}
// 修改的提交
if
(
this
.
form
.
id
!=
null
)
{
updateSmsNode
(
this
.
form
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"
修改成功
"
);
this
.
open
=
false
;
this
.
getList
();
});
return
;
}
// 添加的提交
createSmsNode
(
this
.
form
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"
新增成功
"
);
this
.
open
=
false
;
this
.
getList
();
});
});
},
/** 删除按钮操作 */
handleDelete
(
row
)
{
const
id
=
row
.
id
;
this
.
$modal
.
confirm
(
'
是否确认删除短信节点编号为"
'
+
id
+
'
"的数据项?
'
).
then
(
function
()
{
return
deleteSmsNode
(
id
);
}).
then
(()
=>
{
this
.
getList
();
this
.
$modal
.
msgSuccess
(
"
删除成功
"
);
}).
catch
(()
=>
{});
},
/** 导出按钮操作 */
handleExport
()
{
// 处理查询参数
let
params
=
{...
this
.
queryParams
};
params
.
pageNo
=
undefined
;
params
.
pageSize
=
undefined
;
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
// 执行导出
this
.
$modal
.
confirm
(
'
是否确认导出所有短信节点数据项?
'
).
then
(()
=>
{
this
.
exportLoading
=
true
;
return
exportSmsNodeExcel
(
params
);
}).
then
(
response
=>
{
this
.
$download
.
excel
(
response
,
'
${table.classComment}.xls
'
);
this
.
exportLoading
=
false
;
}).
catch
(()
=>
{});
},
// 切换国家
handleChangeCountry
(
val
)
{
if
(
val
==
0
||
val
==-
1
)
{
this
.
form
.
countryCode
=
val
}
else
{
this
.
form
.
countryCode
=
this
.
countryList
.
filter
(
a
=>
a
.
id
==
val
)[
0
].
tel
}
}
}
};
</
script
>
src/views/system/sms/smsTemplate.vue
View file @
6185d54e
...
...
@@ -21,9 +21,9 @@
<el-form-item
label=
"短信 API 的模板编号"
prop=
"apiTemplateId"
>
<el-input
v-model=
"queryParams.apiTemplateId"
placeholder=
"请输入短信 API 的模板编号"
clearable
size=
"small"
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"短信 API 的模板编号"
prop=
"apiTemplateIdEn"
>
<!--
<el-form-item
label=
"短信 API 的模板编号"
prop=
"apiTemplateIdEn"
>
<el-input
v-model=
"queryParams.apiTemplateIdEn"
placeholder=
"请输入英文短信 API 的模板编号"
clearable
size=
"small"
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
</el-form-item>
-->
<el-form-item
:label=
"$t('短信渠道')"
prop=
"channelId"
>
<el-select
v-model=
"queryParams.channelId"
:placeholder=
"$t('请选择短信渠道')"
clearable
>
<el-option
v-for=
"channel in channelOptions"
...
...
@@ -31,6 +31,19 @@
:label=
"channel.signature + '【' + getDictDataLabel(DICT_TYPE.SYSTEM_SMS_CHANNEL_CODE, channel.code) + '】'"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"节点"
prop=
"nodeValue"
>
<el-select
clearable
v-model=
"queryParams.nodeValue"
placeholder=
"请选择节点类型"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.SYSTEM_SMS_NODE_NODE)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"运输方式"
prop=
"transportId"
>
<el-select
clearable
v-model=
"queryParams.transportId"
:placeholder=
"$t('请选择运输方式类型')"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.ECW_TRANSPORT_TYPE)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"parseInt(dict.value)"
/>
<el-option
:key=
"parseInt(0)"
label=
"其他"
:value=
"parseInt(0)"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('创建时间')"
>
<el-date-picker
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
type=
"daterange"
range-separator=
"-"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
/>
...
...
@@ -57,11 +70,26 @@
<!-- 列表 -->
<el-table
v-loading=
"loading"
:data=
"list"
>
<el-table-column
:label=
"$t('模板编号')"
align=
"center"
prop=
"id"
/>
<el-table-column
:label=
"$t('模板编码')"
align=
"center"
prop=
"code"
/>
<el-table-column
label=
"发送类型"
align=
"center"
prop=
"messageType"
>
<template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.SYSTEM_SMS_TEMPLATE_MESSAGE_TYPE"
:value=
"scope.row.messageType"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"节点"
align=
"center"
prop=
"type"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.SYSTEM_SMS_NODE_NODE"
:value=
"scope.row.nodeValue"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('运输方式')"
align=
"center"
prop=
"type"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
:value=
"scope.row.transportId"
/>
{{
scope
.
row
.
transportId
==
0
?
'
其他
'
:
''
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('模板编码')"
align=
"center"
prop=
"code"
/>
<el-table-column
:label=
"$t('模板名称')"
align=
"center"
prop=
"name"
/>
<el-table-column
label=
"
中文API
模板编号"
align=
"center"
prop=
"apiTemplateId"
width=
"120"
/>
<el-table-column
:label=
"$t('
中文
模板内容')"
align=
"center"
prop=
"content"
width=
"200"
/>
<el-table-column
label=
"模板编号"
align=
"center"
prop=
"apiTemplateId"
width=
"120"
/>
<el-table-column
:label=
"$t('模板内容')"
align=
"center"
prop=
"content"
width=
"200"
/>
<el-table-column
:label=
"$t('短信类型')"
align=
"center"
prop=
"type"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.SYSTEM_SMS_TEMPLATE_TYPE"
:value=
"scope.row.type"
/>
...
...
@@ -72,8 +100,8 @@
<dict-tag
:type=
"DICT_TYPE.COMMON_STATUS"
:value=
"scope.row.status"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"英文API模板编号"
align=
"center"
prop=
"apiTemplateIdEn"
width=
"120"
/>
<el-table-column
:label=
"$t('英文模板内容')"
align=
"center"
prop=
"contentEn"
width=
"100"
/>
<!--
<el-table-column label="英文API模板编号" align="center" prop="apiTemplateIdEn" width="120" />
<el-table-column :label="$t('英文模板内容')" align="center" prop="contentEn" width="100" />
-->
<el-table-column
:label=
"$t('短信渠道')"
align=
"center"
width=
"120"
>
<
template
slot-scope=
"scope"
>
<div>
{{
formatChannelSignature
(
scope
.
row
.
channelId
)
}}
</div>
...
...
@@ -89,8 +117,8 @@
<el-table-column
:label=
"$t('操作')"
align=
"center"
class-name=
"small-padding fixed-width"
width=
"150"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-share"
@
click=
"handleSendSms(scope.row)"
v-hasPermi=
"['system:sms-template:send-sms']"
>
{{
$t
(
'
测试
'
)
}}
</el-button>
<!--
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-share"
@
click=
"handleSendSms(scope.row)"
v-hasPermi=
"['system:sms-template:send-sms']"
>
{{
$t
(
'
测试
'
)
}}
</el-button>
-->
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleUpdate(scope.row)"
v-hasPermi=
"['system:sms-template:update']"
>
{{
$t
(
'
修改
'
)
}}
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
...
...
@@ -112,12 +140,31 @@
:label=
"channel.signature + '【' + getDictDataLabel(DICT_TYPE.SYSTEM_SMS_CHANNEL_CODE, channel.code) + '】'"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('发送类型')"
prop=
"messageType"
>
<el-select
v-model=
"form.messageType"
placeholder=
"请选择发送类型"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.SYSTEM_SMS_TEMPLATE_MESSAGE_TYPE)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"parseInt(dict.value)"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('短信类型')"
prop=
"type"
>
<el-select
v-model=
"form.type"
:placeholder=
"$t('请选择短信类型')"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.SYSTEM_SMS_TEMPLATE_TYPE)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"parseInt(dict.value)"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"节点"
prop=
"nodeValue"
>
<el-select
v-model=
"form.nodeValue"
placeholder=
"请选择节点类型"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.SYSTEM_SMS_NODE_NODE)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('运输方式')"
prop=
"transportId"
>
<el-select
v-model=
"form.transportId"
:placeholder=
"$t('请选择运输方式类型')"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.ECW_TRANSPORT_TYPE)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"parseInt(dict.value)"
/>
<el-option
key=
"0"
label=
"无"
:value=
"parseInt(0)"
/>
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('模板编号')"
prop=
"code"
>
<el-input
v-model=
"form.code"
:placeholder=
"$t('请输入模板编号')"
/>
</el-form-item>
...
...
@@ -132,21 +179,27 @@
:key=
"dict.value"
:label=
"parseInt(dict.value)"
>
{{dict.label}}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
label=
"
中文
短信API模板编号"
prop=
"apiTemplateId"
>
<el-form-item
label=
"短信API模板编号"
prop=
"apiTemplateId"
>
<el-input
v-model=
"form.apiTemplateId"
placeholder=
"请输入短信 API 的模板编号"
/>
</el-form-item>
<el-form-item
:label=
"$t('模板内容')"
prop=
"content"
>
<el-input
type=
"textarea"
v-model=
"form.content"
:placeholder=
"$t('请输入模板内容')"
/>
</el-form-item>
<el-form-item
label=
"英文短信API模板编号"
prop=
"apiTemplateIdEn"
>
<!--
<el-form-item label="英文短信API模板编号" prop="apiTemplateIdEn">
<el-input v-model="form.apiTemplateIdEn" placeholder="请输入英文短信API模板编号" />
</el-form-item>
<el-form-item :label="$t('英文模板内容')" prop="contentEn">
<el-input type="textarea" v-model="form.contentEn" :placeholder="$t('请输入英文模板内容')" />
</el-form-item>
</el-form-item>
-->
<el-form-item
:label=
"$t('备注')"
prop=
"remark"
>
<el-input
v-model=
"form.remark"
:placeholder=
"$t('请输入备注')"
/>
</el-form-item>
<el-form-item
label=
"语言"
prop=
"language"
>
<el-select
v-model=
"form.language"
placeholder=
"请选择语言"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.SYSTEM_SMS_TEMPLATE_LANGUAGE)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitForm"
>
{{ $t('确 定') }}
</el-button>
...
...
@@ -160,9 +213,9 @@
<el-form-item
:label=
"$t('模板内容')"
prop=
"content"
>
<el-input
v-model=
"sendSmsForm.content"
type=
"textarea"
:placeholder=
"$t('请输入模板内容')"
readonly
/>
</el-form-item>
<el-form-item
:label=
"$t('英文模板内容')"
prop=
"contentEn"
>
<!--
<el-form-item :label="$t('英文模板内容')" prop="contentEn">
<el-input v-model="sendSmsForm.contentEn" type="textarea" :placeholder="$t('请输入英文模板内容')" readonly />
</el-form-item>
</el-form-item>
-->
<!-- <el-table-column-->
<!-- prop="areaCode"-->
<!-- :label="$t('区号')">-->
...
...
@@ -231,6 +284,8 @@ export default {
apiTemplateId
:
null
,
apiTemplateIdEn
:
null
,
channelId
:
null
,
transportId
:
null
,
nodeValue
:
null
},
// 表单参数
form
:
{},
...
...
@@ -241,10 +296,13 @@ export default {
code
:
[{
required
:
true
,
message
:
this
.
$t
(
"
模板编码不能为空
"
),
trigger
:
"
blur
"
}],
name
:
[{
required
:
true
,
message
:
this
.
$t
(
"
模板名称不能为空
"
),
trigger
:
"
blur
"
}],
content
:
[{
required
:
true
,
message
:
this
.
$t
(
"
模板内容不能为空
"
),
trigger
:
"
blur
"
}],
contentEn
:
[{
required
:
false
,
message
:
this
.
$t
(
"
英文模板内容不能为空
"
),
trigger
:
"
blur
"
}],
//
contentEn: [{ required: false, message: this.$t("英文模板内容不能为空"), trigger: "blur" }],
apiTemplateId
:
[{
required
:
true
,
message
:
"
中文短信API的模板编号不能为空
"
,
trigger
:
"
blur
"
}],
apiTemplateIdEn
:
[{
required
:
false
,
message
:
"
英文短信API的模板编号不能为空
"
,
trigger
:
"
blur
"
}],
//
apiTemplateIdEn: [{ required: false, message: "英文短信API的模板编号不能为空", trigger: "blur" }],
channelId
:
[{
required
:
true
,
message
:
this
.
$t
(
"
短信渠道编号不能为空
"
),
trigger
:
"
change
"
}],
transportId
:
[{
required
:
true
,
message
:
"
运输方式不能为空
"
,
trigger
:
"
change
"
}],
nodeValue
:
[{
required
:
true
,
message
:
"
节点不能为空
"
,
trigger
:
"
change
"
}],
messageType
:
[{
required
:
true
,
message
:
"
发送类型不能为空
"
,
trigger
:
"
change
"
}],
},
// 短信渠道
channelOptions
:
[],
...
...
@@ -304,6 +362,8 @@ export default {
remark
:
undefined
,
apiTemplateId
:
undefined
,
channelId
:
undefined
,
transportId
:
undefined
,
nodeValue
:
undefined
};
this
.
resetForm
(
"
form
"
);
},
...
...
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