324 行
14 KiB
HTML
可执行文件
324 行
14 KiB
HTML
可执行文件
<!--[1.7.5]-->
|
||
<style>
|
||
.small-form .el-input {
|
||
width: 200px;
|
||
}
|
||
|
||
.tips {
|
||
color: #aaa;
|
||
font-size: 13px;
|
||
}
|
||
|
||
.ulListStyle {
|
||
list-style: inherit !important;
|
||
}
|
||
|
||
.ulListStyle::marker {
|
||
text-indent: 10px;
|
||
}
|
||
|
||
.box-card {
|
||
margin-top: 10px;
|
||
}
|
||
</style>
|
||
<div id="SmsApp">
|
||
<el-collapse>
|
||
<el-collapse-item name="1">
|
||
<template slot="title">
|
||
<el-button type="text" size="small">短信规则 >></el-button>
|
||
</template>
|
||
<p>该短信为阿里大鱼短信,如需开通,请登录阿里云,搜索"阿里大鱼"进行设置 <a target="_blank" style="color:#409EFF"
|
||
href="https://account.aliyun.com/">去设置</a>
|
||
</p>
|
||
<p>短信验证码:使用同一个签名,对同一个手机号码发送短信验证码,1条/分钟,5条/小时,10条/天。一个手机号码通过阿里云短信服务平台只能收到40条/天。</p>
|
||
<p>短信通知:使用同一个签名和同一个短信模版ID,对同一个手机号码发送短信通知,支持50条/日</p>
|
||
<p>短信测试:点击保存设置后,才能根据最新的设置进行短信测试,若要测试商户配置,请开启总开关</p>
|
||
<p><a style="color:#409EFF"
|
||
href="https://help.aliyun.com/document_detail/44335.html?spm=a2c4g.11186623.4.1.7603402aeAHMn8"
|
||
target="_blank">点击查看阿里大鱼短信具体规则</a></p>
|
||
<p>短信配置模板说明:</p>
|
||
<ul class="ulListStyle">
|
||
<li>验证码:仅支持一个变量:${code}->验证码</li>
|
||
<li>会员注册成功提醒:仅支持两个变量:${phone}->手机号,${shopname}->商户名称</li>
|
||
<li v-if="operate.credit">
|
||
商户赊账提醒:仅支持三个变量:${store_count}->门店数量,${month_wait_still}->本月待还金额,${all_wait_still}->总待还金额
|
||
</li>
|
||
<li v-if="operate.credit">
|
||
门店赊账提醒:仅支持三个变量:${store_name}->门店名称,${month_wait_still}->本月待还金额,${all_wait_still}->总待还金额
|
||
</li>
|
||
</ul>
|
||
</el-collapse-item>
|
||
</el-collapse>
|
||
<el-card class="box-card">
|
||
<div slot="header">
|
||
<span>系统短信(仅支持验证码)</span>
|
||
</div>
|
||
<el-form :inline="true" size="mini">
|
||
<el-form-item label="状态">
|
||
<span v-if="system_config.status==1" style="color: #0bb20c">可用</span>
|
||
<span v-else style="color: #ea4b5a">不可用</span>
|
||
</el-form-item>
|
||
<el-form-item label="上限">{{system_config.max}}</el-form-item>
|
||
<el-form-item label="已用">{{system_config.used}}</el-form-item>
|
||
<el-form-item label="剩余">{{system_config.surplus}}</el-form-item>
|
||
</el-form>
|
||
</el-card>
|
||
<el-divider content-position="left">自定义短信</el-divider>
|
||
<el-form label-width="160px" size="small" class="small-form">
|
||
<el-form-item label="accessKeyId">
|
||
<el-input v-model="ruleForm.accesskeyid" clearable placeholder="阿里大鱼accessKeyId"></el-input>
|
||
</el-form-item>
|
||
<el-form-item label="密钥">
|
||
<el-input v-model="ruleForm.accesskeysecret" clearable placeholder="阿里大鱼密钥"></el-input>
|
||
</el-form-item>
|
||
<el-form-item label="签名名称">
|
||
<el-input v-model="ruleForm.signname" clearable placeholder="阿里大鱼签名名称"></el-input>
|
||
</el-form-item>
|
||
<el-form-item label="验证码模板">
|
||
<el-input v-model="ruleForm.verifitemplatecode" clearable placeholder="验证码模板CODE"></el-input>
|
||
<el-button type="text" v-if="operate.smSTest" @click="testModel(1)">短信测试</el-button>
|
||
</el-form-item>
|
||
<el-form-item label="成功注册会员模板">
|
||
<el-input v-model="ruleForm.registertemplatecode" clearable placeholder="成功注册会员模板CODE"></el-input>
|
||
<el-button type="text" v-if="operate.smSTest" @click="testModel(2)">短信测试</el-button>
|
||
<div>
|
||
<span style="color: #666">是否开启成功注册会员模板</span>
|
||
<el-switch v-model="ruleForm.register"
|
||
active-value="1"
|
||
inactive-value="2">
|
||
</el-switch>
|
||
</div>
|
||
</el-form-item>
|
||
<template v-if="operate.credit==1">
|
||
<el-form-item label="商户赊账短信通知模板">
|
||
<el-input v-model="ruleForm.mer_credit_code" clearable placeholder="赊账短信通知模板CODE"></el-input>
|
||
<el-button type="text" v-if="operate.smSTest" @click="testModel(3)">短信测试</el-button>
|
||
</el-form-item>
|
||
<el-form-item label="门店赊账短信通知模板">
|
||
<el-input v-model="ruleForm.store_credit_code" clearable placeholder="赊账短信通知模板CODE"></el-input>
|
||
<el-button type="text" v-if="operate.smSTest" @click="testModel(4)">短信测试</el-button>
|
||
</el-form-item>
|
||
</template>
|
||
|
||
<el-form-item label="自定义模板总开关">
|
||
<el-switch v-model="ruleForm.status"
|
||
active-value="1"
|
||
inactive-value="2">
|
||
</el-switch>
|
||
<div class="tips">若未开启,则没有成功注册的短信,验证码将会使用系统验证码,其余的短信类型将发送不成功</div>
|
||
</el-form-item>
|
||
<el-form-item v-if="operate.saveMerSms">
|
||
<el-button @click="seeSmsOrder">查看短信记录</el-button>
|
||
<el-button type="primary" @click="saveSmsSet">保存设置</el-button>
|
||
</el-form-item>
|
||
</el-form>
|
||
|
||
<el-dialog title="短信记录" :modal-append-to-body="false"
|
||
:visible.sync="smsOrderDialog" custom-class="select-image-el-dialog" width="600px">
|
||
<el-form :inline="true" size="mini">
|
||
<el-form-item label="短信类型:">
|
||
<el-select v-model="searchForm.type"
|
||
placeholder="选择短信类型" clearable filterable>
|
||
<el-option label="系统短信" :value="1"></el-option>
|
||
<el-option label="商家短信" :value="2"></el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
<el-form-item label="短信状态:">
|
||
<el-select v-model="searchForm.status"
|
||
placeholder="选择短信状态" clearable filterable>
|
||
<el-option label="成功" :value="1"></el-option>
|
||
<el-option label="失败" :value="2"></el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
<el-form-item>
|
||
<el-button plain type="primary" @click="handleCurrentChange(1)">搜索</el-button>
|
||
</el-form-item>
|
||
</el-form>
|
||
<el-table border :data="smsOrderList" size="mini">
|
||
<el-table-column align="center" type="index" label="序号" width="60px"></el-table-column>
|
||
<el-table-column align="center" prop="phone" label="手机号" width="130px"></el-table-column>
|
||
<el-table-column align="center" prop="info" label="关键内容" width="130px"
|
||
show-overflow-tooltip></el-table-column>
|
||
<el-table-column align="center" prop="status_name" label="状态" width="100px"></el-table-column>
|
||
<el-table-column align="center" prop="add_time" label="时间" width="150px"></el-table-column>
|
||
<el-table-column align="center" prop="scene_name" label="短信类型" width="110px"></el-table-column>
|
||
<el-table-column align="center" prop="type_name" label="用途" width="110px"></el-table-column>
|
||
</el-table>
|
||
<el-pagination
|
||
@current-change="handleCurrentChange"
|
||
:current-page="searchForm.page"
|
||
:page-sizes="[10]"
|
||
:page-size="10"
|
||
layout="total, sizes, prev, pager, next, jumper"
|
||
:total="currentLen">
|
||
</el-pagination>
|
||
</el-dialog>
|
||
</div>
|
||
<script>
|
||
var SmsApp = new Vue({
|
||
el: '#SmsApp',
|
||
data() {
|
||
return {
|
||
ruleForm: {
|
||
accesskeyid: '',
|
||
accesskeysecret: '',
|
||
signname: '',
|
||
verifitemplatecode: '',
|
||
registertemplatecode: '',
|
||
register: '2',
|
||
mer_credit_code: '',
|
||
store_credit_code: '',
|
||
status: '2',
|
||
},//商户短信表单信息
|
||
system_config: {},//系统短信
|
||
operate: {
|
||
smSTest: false,
|
||
saveMerSms: false,
|
||
credit: false,
|
||
},//权限
|
||
smsOrderDialog: false,
|
||
smsOrderList: [],
|
||
searchForm: {
|
||
type: '',
|
||
status: '',
|
||
page: 1,
|
||
limit: 10,
|
||
},
|
||
currentLen: 0,
|
||
loading: false,
|
||
}
|
||
},
|
||
methods: {
|
||
//保存短信配置
|
||
saveSmsSet() {
|
||
this.$confirm('确认保存以上设置吗', '提示', {
|
||
confirmButtonText: '保存',
|
||
cancelButtonText: '取消',
|
||
}).then(() => {
|
||
this.loading = true;
|
||
$.ajax({
|
||
url: '/index.php/Retail/Sms/saveMerSms',
|
||
data: this.ruleForm,
|
||
type: 'post',
|
||
success: (res) => {
|
||
this.loading = false;
|
||
this.$message({
|
||
message: res.msg,
|
||
type: res.status == 1 ? 'success' : 'warning',
|
||
});
|
||
},
|
||
error: (error) => {
|
||
this.loading = false;
|
||
console.error(error);
|
||
this.$message({
|
||
message: '请求发生错误,请稍后重试',
|
||
type: 'error',
|
||
});
|
||
}
|
||
})
|
||
}).catch(() => {
|
||
|
||
});
|
||
},
|
||
//测试短信
|
||
testModel(type) {
|
||
this.$prompt('请输入接收短信的手机号', '提示', {
|
||
closeOnClickModal: false,
|
||
confirmButtonText: '发送短信',
|
||
cancelButtonText: '取消',
|
||
inputPattern: /^1[3456789]\d{9}$/,
|
||
title: '',
|
||
inputErrorMessage: '手机号输入不正确'
|
||
}).then(({value}) => {
|
||
$.ajax({
|
||
url: '/index.php/Retail/Sms/smSTest',
|
||
type: 'post',
|
||
data: {
|
||
phone: value,
|
||
type: type,
|
||
},
|
||
success: (res) => {
|
||
if (res.status == 1) {
|
||
this.$message({message: res.message, type: 'success'});
|
||
} else {
|
||
this.$message({message: res.message, type: 'error'});
|
||
}
|
||
},
|
||
error: (error) => {
|
||
console.error(error);
|
||
this.$message({message: '系统发生错误,请稍后重试', type: 'error'});
|
||
}
|
||
})
|
||
})
|
||
},
|
||
//查看短信记录
|
||
seeSmsOrder() {
|
||
this.handleCurrentChange(1);
|
||
this.smsOrderDialog = true;
|
||
},
|
||
//切换短信记录分页
|
||
handleCurrentChange(val) {
|
||
this.searchForm.page = 1;
|
||
this.getSmsOrder();
|
||
},
|
||
//获取短信记录
|
||
getSmsOrder() {
|
||
$.ajax({
|
||
url: '/index.php/Retail/Sms/getMerSmsOrder',
|
||
data: this.searchForm,
|
||
type: 'post',
|
||
success: (res) => {
|
||
if (res.status == 1) {
|
||
this.smsOrderList = res.data;
|
||
this.currentLen = res.count;
|
||
}
|
||
}
|
||
})
|
||
},
|
||
//获取短信设置
|
||
getSmsConfig() {
|
||
$.ajax({
|
||
url: '/index.php/Retail/Sms/index',
|
||
type: 'post',
|
||
success: (res) => {
|
||
if (res.status == 1) {
|
||
for (let key in this.ruleForm) {
|
||
if (res.data.merchant_config[key]) this.ruleForm[key] = res.data.merchant_config[key];
|
||
}
|
||
this.system_config = res.data.system_config;
|
||
this.operate.credit = res.data.credit;
|
||
}
|
||
}
|
||
})
|
||
},
|
||
//获取操作权限
|
||
getOperate() {
|
||
var auth_list = {
|
||
saveMerSms: '/index.php/Retail/Sms/saveMerSms',
|
||
smSTest: '/index.php/Retail/Sms/smSTest',
|
||
};
|
||
$.ajax({
|
||
url: '/index.php/Retail/Component/checkOperateAuth',
|
||
type: "post",
|
||
data: {
|
||
auth_list: JSON.stringify(auth_list),
|
||
},
|
||
success: (res) => {
|
||
if (res.status == 1) {
|
||
console.log(res);
|
||
this.operate.saveMerSms = res.data.saveMerSms;
|
||
this.operate.smSTest = res.data.smSTest;
|
||
}
|
||
}
|
||
})
|
||
}
|
||
},
|
||
mounted() {
|
||
this.getOperate();
|
||
this.getSmsConfig();
|
||
},
|
||
created() {
|
||
|
||
}
|
||
})
|
||
</script> |