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
bef1e3d8
Commit
bef1e3d8
authored
Nov 29, 2024
by
honghy
Committed by
wux
Dec 24, 2024
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增短信日志穿梭、节点国家多选、模板预览
parent
51bca401
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
112 additions
and
15 deletions
+112
-15
smsNode.vue
src/views/system/sms/smsNode.vue
+112
-15
No files found.
src/views/system/sms/smsNode.vue
View file @
bef1e3d8
...
@@ -104,22 +104,30 @@
...
@@ -104,22 +104,30 @@
</el-table-column>
</el-table-column>
<el-table-column
label=
"模板1"
align=
"center"
prop=
"templateIdOne"
>
<el-table-column
label=
"模板1"
align=
"center"
prop=
"templateIdOne"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
templateIdOne
!=
null
?
smsTemplateMap
.
get
(
scope
.
row
.
templateIdOne
)
!=
null
?
smsTemplateMap
.
get
(
scope
.
row
.
templateIdOne
).
name
:
''
:
''
}}
<el-button
size=
"mini"
type=
"text"
@
click=
"look(smsTemplateMap.get(scope.row.templateIdOne))"
>
{{
scope
.
row
.
templateIdOne
!=
null
?
smsTemplateMap
.
get
(
scope
.
row
.
templateIdOne
)
!=
null
?
smsTemplateMap
.
get
(
scope
.
row
.
templateIdOne
).
name
:
''
:
''
}}
</el-button>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"模板2"
align=
"center"
prop=
"templateIdTwo"
>
<el-table-column
label=
"模板2"
align=
"center"
prop=
"templateIdTwo"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
templateIdTwo
!=
null
?
smsTemplateMap
.
get
(
scope
.
row
.
templateIdTwo
)
!=
null
?
smsTemplateMap
.
get
(
scope
.
row
.
templateIdTwo
).
name
:
''
:
''
}}
<el-button
size=
"mini"
type=
"text"
@
click=
"look(smsTemplateMap.get(scope.row.templateIdTwo))"
>
{{
scope
.
row
.
templateIdTwo
!=
null
?
smsTemplateMap
.
get
(
scope
.
row
.
templateIdTwo
)
!=
null
?
smsTemplateMap
.
get
(
scope
.
row
.
templateIdTwo
).
name
:
''
:
''
}}
</el-button>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"模板3"
align=
"center"
prop=
"templateIdThree"
>
<el-table-column
label=
"模板3"
align=
"center"
prop=
"templateIdThree"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
templateIdThree
!=
null
?
smsTemplateMap
.
get
(
scope
.
row
.
templateIdThree
)
!=
null
?
smsTemplateMap
.
get
(
scope
.
row
.
templateIdThree
).
name
:
''
:
''
}}
<el-button
size=
"mini"
type=
"text"
@
click=
"look(smsTemplateMap.get(scope.row.templateIdThree))"
>
{{
scope
.
row
.
templateIdThree
!=
null
?
smsTemplateMap
.
get
(
scope
.
row
.
templateIdThree
)
!=
null
?
smsTemplateMap
.
get
(
scope
.
row
.
templateIdThree
).
name
:
''
:
''
}}
</el-button>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"模板4"
align=
"center"
prop=
"templateIdFour"
>
<el-table-column
label=
"模板4"
align=
"center"
prop=
"templateIdFour"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
templateIdFour
!=
null
?
smsTemplateMap
.
get
(
scope
.
row
.
templateIdFour
)
!=
null
?
smsTemplateMap
.
get
(
scope
.
row
.
templateIdFour
).
name
:
''
:
''
}}
<el-button
size=
"mini"
type=
"text"
@
click=
"look(smsTemplateMap.get(scope.row.templateIdFour))"
>
{{
scope
.
row
.
templateIdFour
!=
null
?
smsTemplateMap
.
get
(
scope
.
row
.
templateIdFour
)
!=
null
?
smsTemplateMap
.
get
(
scope
.
row
.
templateIdFour
).
name
:
''
:
''
}}
</el-button>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('创建时间')"
align=
"center"
prop=
"createTime"
width=
"180"
>
<el-table-column
:label=
"$t('创建时间')"
align=
"center"
prop=
"createTime"
width=
"180"
>
...
@@ -158,8 +166,8 @@
...
@@ -158,8 +166,8 @@
<el-option
key=
"0"
label=
"其他"
:value=
"parseInt(0)"
/>
<el-option
key=
"0"
label=
"其他"
:value=
"parseInt(0)"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"国家"
prop=
"
countryId
"
>
<el-form-item
label=
"国家"
prop=
"
tel
"
>
<el-select
filterable
clearable
v-model=
"form.countryId
"
:placeholder=
"$t('请选择国家')"
@
change=
"handleChangeCountry"
>
<el-select
filterable
clearable
multiple
v-model=
"form.countryIds
"
:placeholder=
"$t('请选择国家')"
@
change=
"handleChangeCountry"
>
<el-option
key=
"0"
label=
"全部"
:value=
"parseInt(0)"
/>
<el-option
key=
"0"
label=
"全部"
:value=
"parseInt(0)"
/>
<el-option
key=
"-1"
label=
"其他"
:value=
"parseInt(-1)"
/>
<el-option
key=
"-1"
label=
"其他"
:value=
"parseInt(-1)"
/>
<el-option
v-for=
"dict in countryList"
<el-option
v-for=
"dict in countryList"
...
@@ -246,6 +254,74 @@
...
@@ -246,6 +254,74 @@
</div>
</div>
</el-dialog>
</el-dialog>
<!-- 预览模板 -->
<el-dialog
:visible.sync=
"open2"
width=
"500px"
append-to-body
>
<el-form
label-width=
"140px"
>
<el-form-item
:label=
"$t('短信渠道编号')"
prop=
"channelId"
>
<el-select
v-model=
"form2.channelId"
:placeholder=
"$t('请选择短信渠道编号')"
>
<el-option
v-for=
"channel in channelOptions"
:key=
"channel.id"
:value=
"channel.id"
: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=
"form2.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=
"form2.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=
"form2.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=
"form2.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=
"form2.code"
:placeholder=
"$t('请输入模板编号')"
/>
</el-form-item>
<el-form-item
:label=
"$t('模板名称')"
prop=
"name"
>
<el-input
v-model=
"form2.name"
:placeholder=
"$t('请输入模板名称')"
/>
</el-form-item>
<el-form-item
:label=
"$t('开启状态')"
prop=
"status"
>
<el-radio-group
v-model=
"form2.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=
"短信API模板编号"
prop=
"apiTemplateId"
>
<el-input
v-model=
"form2.apiTemplateId"
placeholder=
"请输入短信 API 的模板编号"
/>
</el-form-item>
<el-form-item
:label=
"$t('模板内容')"
prop=
"content"
>
<el-input
type=
"textarea"
v-model=
"form2.content"
:placeholder=
"$t('请输入模板内容')"
/>
</el-form-item>
<el-form-item
:label=
"$t('备注')"
prop=
"remark"
>
<el-input
v-model=
"form2.remark"
:placeholder=
"$t('请输入备注')"
/>
</el-form-item>
<el-form-item
label=
"语言"
prop=
"language"
>
<el-select
v-model=
"form2.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>
</el-dialog>
</div>
</div>
</template>
</template>
...
@@ -253,6 +329,7 @@
...
@@ -253,6 +329,7 @@
import
{
createSmsNode
,
updateSmsNode
,
deleteSmsNode
,
getSmsNode
,
getSmsNodePage
,
exportSmsNodeExcel
,
testSms
}
from
"
@/api/system/sms/smsNode
"
;
import
{
createSmsNode
,
updateSmsNode
,
deleteSmsNode
,
getSmsNode
,
getSmsNodePage
,
exportSmsNodeExcel
,
testSms
}
from
"
@/api/system/sms/smsNode
"
;
import
{
getCountryListAll
}
from
'
@/api/ecw/country
'
import
{
getCountryListAll
}
from
'
@/api/ecw/country
'
import
{
getSmsTemplateList
}
from
'
@/api/system/sms/smsTemplate
'
import
{
getSmsTemplateList
}
from
'
@/api/system/sms/smsTemplate
'
import
{
getSimpleSmsChannels
}
from
"
@/api/system/sms/smsChannel
"
;
export
default
{
export
default
{
name
:
"
SmsNode
"
,
name
:
"
SmsNode
"
,
...
@@ -295,11 +372,15 @@ export default {
...
@@ -295,11 +372,15 @@ export default {
},
},
// 表单参数
// 表单参数
form
:
{},
form
:
{},
form2
:
{},
open2
:
false
,
// 短信渠道
channelOptions
:
[],
// 表单校验
// 表单校验
rules
:
{
rules
:
{
nodeValue
:
[{
required
:
true
,
message
:
"
节点不能为空
"
,
trigger
:
"
blur
"
}],
nodeValue
:
[{
required
:
true
,
message
:
"
节点不能为空
"
,
trigger
:
"
blur
"
}],
transportId
:
[{
required
:
true
,
message
:
"
运输方式不能为空
"
,
trigger
:
"
blur
"
}],
transportId
:
[{
required
:
true
,
message
:
"
运输方式不能为空
"
,
trigger
:
"
blur
"
}],
country
Id
:
[{
required
:
true
,
message
:
"
国家区号不能为空
"
,
trigger
:
"
change
"
}],
country
Codes
:
[{
required
:
true
,
message
:
"
国家区号不能为空
"
,
trigger
:
"
change
"
}],
countryCode
:
[{
required
:
true
,
message
:
"
国家区号不能为空
"
,
trigger
:
"
blur
"
}],
countryCode
:
[{
required
:
true
,
message
:
"
国家区号不能为空
"
,
trigger
:
"
blur
"
}],
status
:
[{
required
:
true
,
message
:
"
启用状态不能为空
"
,
trigger
:
"
change
"
}],
status
:
[{
required
:
true
,
message
:
"
启用状态不能为空
"
,
trigger
:
"
change
"
}],
templateIdOne
:
[{
required
:
true
,
message
:
"
模板1不能为空
"
,
trigger
:
"
change
"
}],
templateIdOne
:
[{
required
:
true
,
message
:
"
模板1不能为空
"
,
trigger
:
"
change
"
}],
...
@@ -315,11 +396,12 @@ export default {
...
@@ -315,11 +396,12 @@ export default {
countryCode
:
[{
required
:
true
,
message
:
"
区号不能为空
"
,
trigger
:
"
blur
"
}],
countryCode
:
[{
required
:
true
,
message
:
"
区号不能为空
"
,
trigger
:
"
blur
"
}],
messageType
:
[{
required
:
true
,
message
:
"
发送类型不能为空
"
,
trigger
:
"
blur
"
}],
messageType
:
[{
required
:
true
,
message
:
"
发送类型不能为空
"
,
trigger
:
"
blur
"
}],
nodeTemplateSn
:
[{
required
:
true
,
message
:
"
模板序号不能为空
"
,
trigger
:
"
blur
"
}],
nodeTemplateSn
:
[{
required
:
true
,
message
:
"
模板序号不能为空
"
,
trigger
:
"
blur
"
}],
templateParams
:
[{
required
:
true
,
message
:
"
参数(JSON)不能为空
"
,
trigger
:
"
blur
"
}],
},
},
node
:
{}
node
:
{}
};
};
},
},
async
created
()
{
created
()
{
const
that
=
this
const
that
=
this
this
.
getList
();
this
.
getList
();
getCountryListAll
().
then
(
res
=>
{
getCountryListAll
().
then
(
res
=>
{
...
@@ -329,14 +411,18 @@ export default {
...
@@ -329,14 +411,18 @@ export default {
return
item
return
item
})
})
})
})
this
.
countryMap
.
set
(
0
,{
id
:
0
,
nameZh
:
'
全部
'
})
this
.
countryMap
.
set
(
0
,{
id
:
0
,
nameZh
:
'
全部
'
,
tel
:
0
})
this
.
countryMap
.
set
(
-
1
,{
id
:
-
1
,
nameZh
:
'
其他
'
})
this
.
countryMap
.
set
(
-
1
,{
id
:
-
1
,
nameZh
:
'
其他
'
,
tel
:
-
1
})
getSmsTemplateList
().
then
(
res
=>
{
getSmsTemplateList
().
then
(
res
=>
{
this
.
smsTemplateList
=
res
.
data
this
.
smsTemplateList
=
res
.
data
for
(
var
i
=
0
;
i
<
res
.
data
.
length
;
i
++
){
for
(
var
i
=
0
;
i
<
res
.
data
.
length
;
i
++
){
this
.
smsTemplateMap
.
set
(
res
.
data
[
i
].
id
,
res
.
data
[
i
])
this
.
smsTemplateMap
.
set
(
res
.
data
[
i
].
id
,
res
.
data
[
i
])
}
}
})
})
// 获得短信渠道
getSimpleSmsChannels
().
then
(
response
=>
{
this
.
channelOptions
=
response
.
data
;
})
},
},
methods
:
{
methods
:
{
/** 查询列表 */
/** 查询列表 */
...
@@ -408,6 +494,13 @@ export default {
...
@@ -408,6 +494,13 @@ export default {
if
(
!
valid
)
{
if
(
!
valid
)
{
return
;
return
;
}
}
var
countryCodes
=
[];
var
countryIds
=
this
.
form
.
countryIds
for
(
var
i
=
0
;
i
<
countryIds
.
length
;
i
++
)
{
countryCodes
.
push
(
this
.
countryMap
.
get
(
countryIds
[
i
]).
tel
)
}
this
.
form
.
countryId
=
[...
this
.
form
.
countryIds
].
join
(
'
,
'
)
this
.
form
.
countryCode
=
[...
countryCodes
].
join
(
'
,
'
)
// 修改的提交
// 修改的提交
if
(
this
.
form
.
id
!=
null
)
{
if
(
this
.
form
.
id
!=
null
)
{
updateSmsNode
(
this
.
form
).
then
(
response
=>
{
updateSmsNode
(
this
.
form
).
then
(
response
=>
{
...
@@ -453,11 +546,11 @@ export default {
...
@@ -453,11 +546,11 @@ export default {
},
},
// 切换国家
// 切换国家
handleChangeCountry
(
val
)
{
handleChangeCountry
(
val
)
{
if
(
val
==
0
||
val
==-
1
)
{
//
if(val==0||val==-1) {
this
.
form
.
countryCode
=
val
//
this.form.countryCode = val
}
else
{
//
} else {
this
.
form
.
countryCode
=
this
.
countryList
.
filter
(
a
=>
a
.
id
==
val
)[
0
].
tel
//
this.form.countryCode = this.countryList.filter(a => a.id == val)[0].tel
}
//
}
},
},
test
(
row
)
{
test
(
row
)
{
this
.
sendSmsForm
=
{
this
.
sendSmsForm
=
{
...
@@ -491,6 +584,10 @@ export default {
...
@@ -491,6 +584,10 @@ export default {
this
.
sendSmsOpen
=
false
;
this
.
sendSmsOpen
=
false
;
});
});
});
});
},
look
(
rows
)
{
this
.
form2
=
rows
this
.
open2
=
true
}
}
}
}
};
};
...
...
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