Commit 3dc36ecced0cea0d9e96941634ec5bf8d3e28aea
1 parent
e4a19f49
短信发送日志的前端,部分完成
Showing
8 changed files
with
124 additions
and
43 deletions
ruoyi-ui/src/utils/dict.js
| @@ -19,6 +19,8 @@ export const DICT_TYPE = { | @@ -19,6 +19,8 @@ export const DICT_TYPE = { | ||
| 19 | SYS_CONFIG_TYPE: 'sys_config_type', | 19 | SYS_CONFIG_TYPE: 'sys_config_type', |
| 20 | SYS_SMS_CHANNEL_CODE: 'sys_sms_channel_code', | 20 | SYS_SMS_CHANNEL_CODE: 'sys_sms_channel_code', |
| 21 | SYS_SMS_TEMPLATE_TYPE: 'sys_sms_template_type', | 21 | SYS_SMS_TEMPLATE_TYPE: 'sys_sms_template_type', |
| 22 | + SYS_SMS_SEND_STATUS: 'sys_sms_send_status', | ||
| 23 | + SYS_SMS_RECEIVE_STATUS: 'sys_sms_receive_status', | ||
| 22 | 24 | ||
| 23 | INF_REDIS_TIMEOUT_TYPE: 'inf_redis_timeout_type', | 25 | INF_REDIS_TIMEOUT_TYPE: 'inf_redis_timeout_type', |
| 24 | INF_JOB_STATUS: 'inf_job_status', | 26 | INF_JOB_STATUS: 'inf_job_status', |
ruoyi-ui/src/views/system/operatelog/index.vue
ruoyi-ui/src/views/system/sms/smsLog.vue
| @@ -2,16 +2,20 @@ | @@ -2,16 +2,20 @@ | ||
| 2 | <div class="app-container"> | 2 | <div class="app-container"> |
| 3 | 3 | ||
| 4 | <!-- 搜索工作栏 --> | 4 | <!-- 搜索工作栏 --> |
| 5 | - <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> | ||
| 6 | - <el-form-item label="短信渠道编号" prop="channelId"> | ||
| 7 | - <el-input v-model="queryParams.channelId" placeholder="请输入短信渠道编号" clearable size="small" @keyup.enter.native="handleQuery"/> | 5 | + <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px"> |
| 6 | + <el-form-item label="手机号" prop="mobile"> | ||
| 7 | + <el-input v-model="queryParams.mobile" placeholder="请输入手机号" clearable size="small" @keyup.enter.native="handleQuery"/> | ||
| 8 | + </el-form-item> | ||
| 9 | + <el-form-item label="短信渠道" prop="channelId"> | ||
| 10 | + <el-select v-model="queryParams.channelId" placeholder="请选择短信渠道" clearable size="small"> | ||
| 11 | + <el-option v-for="channel in channelOptions" | ||
| 12 | + :key="channel.id" :value="channel.id" | ||
| 13 | + :label="channel.signature + '【' + getDictDataLabel(DICT_TYPE.SYS_SMS_CHANNEL_CODE, channel.code) + '】'" /> | ||
| 14 | + </el-select> | ||
| 8 | </el-form-item> | 15 | </el-form-item> |
| 9 | <el-form-item label="模板编号" prop="templateId"> | 16 | <el-form-item label="模板编号" prop="templateId"> |
| 10 | <el-input v-model="queryParams.templateId" placeholder="请输入模板编号" clearable size="small" @keyup.enter.native="handleQuery"/> | 17 | <el-input v-model="queryParams.templateId" placeholder="请输入模板编号" clearable size="small" @keyup.enter.native="handleQuery"/> |
| 11 | </el-form-item> | 18 | </el-form-item> |
| 12 | - <el-form-item label="手机号" prop="mobile"> | ||
| 13 | - <el-input v-model="queryParams.mobile" placeholder="请输入手机号" clearable size="small" @keyup.enter.native="handleQuery"/> | ||
| 14 | - </el-form-item> | ||
| 15 | <el-form-item label="发送状态" prop="sendStatus"> | 19 | <el-form-item label="发送状态" prop="sendStatus"> |
| 16 | <el-select v-model="queryParams.sendStatus" placeholder="请选择发送状态" clearable size="small"> | 20 | <el-select v-model="queryParams.sendStatus" placeholder="请选择发送状态" clearable size="small"> |
| 17 | <el-option label="请选择字典生成" value="" /> | 21 | <el-option label="请选择字典生成" value="" /> |
| @@ -52,46 +56,51 @@ | @@ -52,46 +56,51 @@ | ||
| 52 | <!-- 列表 --> | 56 | <!-- 列表 --> |
| 53 | <el-table v-loading="loading" :data="list"> | 57 | <el-table v-loading="loading" :data="list"> |
| 54 | <el-table-column label="编号" align="center" prop="id" /> | 58 | <el-table-column label="编号" align="center" prop="id" /> |
| 55 | - <el-table-column label="短信渠道编号" align="center" prop="channelId" /> | ||
| 56 | - <el-table-column label="短信渠道编码" align="center" prop="channelCode" /> | ||
| 57 | - <el-table-column label="模板编号" align="center" prop="templateId" /> | ||
| 58 | - <el-table-column label="模板编码" align="center" prop="templateCode" /> | ||
| 59 | - <el-table-column label="短信类型" align="center" prop="templateType" /> | ||
| 60 | - <el-table-column label="短信内容" align="center" prop="templateContent" /> | ||
| 61 | - <el-table-column label="短信参数" align="center" prop="templateParams" /> | ||
| 62 | - <el-table-column label="短信 API 的模板编号" align="center" prop="apiTemplateId" /> | ||
| 63 | - <el-table-column label="手机号" align="center" prop="mobile" /> | ||
| 64 | - <el-table-column label="用户编号" align="center" prop="userId" /> | ||
| 65 | - <el-table-column label="用户类型" align="center" prop="userType" /> | ||
| 66 | - <el-table-column label="发送状态" align="center" prop="sendStatus" /> | ||
| 67 | - <el-table-column label="发送时间" align="center" prop="sendTime" width="180"> | 59 | + <el-table-column label="创建时间" align="center" prop="createTime" width="180"> |
| 68 | <template slot-scope="scope"> | 60 | <template slot-scope="scope"> |
| 69 | - <span>{{ parseTime(scope.row.sendTime) }}</span> | 61 | + <span>{{ parseTime(scope.row.createTime) }}</span> |
| 62 | + </template> | ||
| 63 | + </el-table-column> | ||
| 64 | + <el-table-column label="手机号" align="center" prop="mobile" width="120"> | ||
| 65 | + <template slot-scope="scope"> | ||
| 66 | + <div>{{ scope.row.mobile }}</div> | ||
| 67 | + <div v-if="scope.row.userType && scope.row.userId"> | ||
| 68 | + {{ getDictDataLabel(DICT_TYPE.USER_TYPE, scope.row.userType) + '(' + scope.row.userId + ')' }} | ||
| 69 | + </div> | ||
| 70 | + </template> | ||
| 71 | + </el-table-column> | ||
| 72 | + <el-table-column label="短信内容" align="center" prop="templateContent" width="300" /> | ||
| 73 | + <el-table-column label="发送状态" align="center"> | ||
| 74 | + <template slot-scope="scope"> | ||
| 75 | + <span>{{ getDictDataLabel(DICT_TYPE.SYS_SMS_SEND_STATUS, scope.row.sendStatus) }}</span> | ||
| 76 | + </template> | ||
| 77 | + </el-table-column> | ||
| 78 | + <el-table-column label="接收状态" align="center"> | ||
| 79 | + <template slot-scope="scope"> | ||
| 80 | + <span>{{ getDictDataLabel(DICT_TYPE.SYS_SMS_RECEIVE_STATUS, scope.row.receiveStatus) }}</span> | ||
| 70 | </template> | 81 | </template> |
| 71 | </el-table-column> | 82 | </el-table-column> |
| 72 | - <el-table-column label="发送结果的编码" align="center" prop="sendCode" /> | ||
| 73 | - <el-table-column label="发送结果的提示" align="center" prop="sendMsg" /> | ||
| 74 | - <el-table-column label="短信 API 发送结果的编码" align="center" prop="apiSendCode" /> | ||
| 75 | - <el-table-column label="短信 API 发送失败的提示" align="center" prop="apiSendMsg" /> | ||
| 76 | - <el-table-column label="短信 API 发送返回的唯一请求 ID" align="center" prop="apiRequestId" /> | ||
| 77 | - <el-table-column label="短信 API 发送返回的序号" align="center" prop="apiSerialNo" /> | ||
| 78 | - <el-table-column label="接收状态" align="center" prop="receiveStatus" /> | ||
| 79 | <el-table-column label="接收时间" align="center" prop="receiveTime" width="180"> | 83 | <el-table-column label="接收时间" align="center" prop="receiveTime" width="180"> |
| 80 | <template slot-scope="scope"> | 84 | <template slot-scope="scope"> |
| 81 | <span>{{ parseTime(scope.row.receiveTime) }}</span> | 85 | <span>{{ parseTime(scope.row.receiveTime) }}</span> |
| 82 | </template> | 86 | </template> |
| 83 | </el-table-column> | 87 | </el-table-column> |
| 84 | - <el-table-column label="API 接收结果的编码" align="center" prop="apiReceiveCode" /> | ||
| 85 | - <el-table-column label="API 接收结果的说明" align="center" prop="apiReceiveMsg" /> | ||
| 86 | - <el-table-column label="创建时间" align="center" prop="createTime" width="180"> | 88 | + <el-table-column label="短信渠道" align="center"> |
| 87 | <template slot-scope="scope"> | 89 | <template slot-scope="scope"> |
| 88 | - <span>{{ parseTime(scope.row.createTime) }}</span> | 90 | + <div>{{ formatChannelSignature(scope.row.channelId) }}</div> |
| 91 | + <div>【{{ getDictDataLabel(DICT_TYPE.SYS_SMS_CHANNEL_CODE, scope.row.channelCode) }}】</div> | ||
| 92 | + </template> | ||
| 93 | + </el-table-column> | ||
| 94 | + <el-table-column label="模板编号" align="center" prop="templateId" /> | ||
| 95 | + <el-table-column label="短信类型" align="center" prop="templateType"> | ||
| 96 | + <template slot-scope="scope"> | ||
| 97 | + <span>{{ getDictDataLabel(DICT_TYPE.SYS_SMS_TEMPLATE_TYPE, scope.row.templateType) }}</span> | ||
| 89 | </template> | 98 | </template> |
| 90 | </el-table-column> | 99 | </el-table-column> |
| 91 | <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> | 100 | <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> |
| 92 | <template slot-scope="scope"> | 101 | <template slot-scope="scope"> |
| 93 | - <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" | ||
| 94 | - v-hasPermi="['system:sms-log:update']">修改</el-button> | 102 | + <el-button size="mini" type="text" icon="el-icon-view" @click="handleView(scope.row,scope.index)" |
| 103 | + v-hasPermi="['system:sms-log:query']">详细</el-button> | ||
| 95 | </template> | 104 | </template> |
| 96 | </el-table-column> | 105 | </el-table-column> |
| 97 | </el-table> | 106 | </el-table> |
| @@ -99,13 +108,59 @@ | @@ -99,13 +108,59 @@ | ||
| 99 | <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" | 108 | <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" |
| 100 | @pagination="getList"/> | 109 | @pagination="getList"/> |
| 101 | 110 | ||
| 102 | - <!-- 对话框(添加 / 修改) --> | 111 | + <!-- 短信日志详细 --> |
| 112 | + <el-dialog title="短信日志详细" :visible.sync="open" width="700px" append-to-body> | ||
| 113 | + <el-form ref="form" :model="form" label-width="100px" size="mini"> | ||
| 114 | + <el-row> | ||
| 115 | + <el-col :span="24"> | ||
| 116 | + <el-form-item label="日志主键:">{{ form.id }}</el-form-item> | ||
| 117 | + </el-col> | ||
| 118 | + <el-col :span="24"> | ||
| 119 | + <el-form-item label="链路追踪:">{{ form.traceId }}</el-form-item> | ||
| 120 | + </el-col> | ||
| 121 | + <el-col :span="24"> | ||
| 122 | + <el-form-item label="用户信息:">{{ form.userId }} | {{ form.userNickname }} | {{ form.userIp }} | {{ form.userAgent}} </el-form-item> | ||
| 123 | + </el-col> | ||
| 124 | + <el-col :span="24"> | ||
| 125 | + <el-form-item label="操作信息:"> | ||
| 126 | + {{ form.module }} | {{ form.name }} | {{ getDictDataLabel(DICT_TYPE.SYS_OPERATE_TYPE, form.type) }} | ||
| 127 | + <br /> {{ form.content }} | ||
| 128 | + <br /> {{ form.exts }} | ||
| 129 | + </el-form-item> | ||
| 130 | + </el-col> | ||
| 131 | + <el-col :span="24"> | ||
| 132 | + <el-form-item label="请求信息:">{{ form.requestMethod }} | {{ form.requestUrl }} </el-form-item> | ||
| 133 | + </el-col> | ||
| 134 | + <el-col :span="24"> | ||
| 135 | + <el-form-item label="方法名:">{{ form.javaMethod }}</el-form-item> | ||
| 136 | + </el-col> | ||
| 137 | + <el-col :span="24"> | ||
| 138 | + <el-form-item label="方法参数:">{{ form.javaMethodArgs }}</el-form-item> | ||
| 139 | + </el-col> | ||
| 140 | + <el-col :span="24"> | ||
| 141 | + <el-form-item label="开始时间:"> | ||
| 142 | + {{ parseTime(form.startTime) }} | {{ form.duration }} ms | ||
| 143 | + </el-form-item> | ||
| 144 | + </el-col> | ||
| 145 | + <el-col :span="12"> | ||
| 146 | + <el-form-item label="操作结果:"> | ||
| 147 | + <div v-if="form.resultCode === 0">正常 | {{ form.resultData}} </div> | ||
| 148 | + <div v-else-if="form.resultCode > 0">失败 | {{ form.resultCode }} || {{ form.resultMsg}}</div> | ||
| 149 | + </el-form-item> | ||
| 150 | + </el-col> | ||
| 151 | + </el-row> | ||
| 152 | + </el-form> | ||
| 153 | + <div slot="footer" class="dialog-footer"> | ||
| 154 | + <el-button @click="open = false">关 闭</el-button> | ||
| 155 | + </div> | ||
| 156 | + </el-dialog> | ||
| 103 | 157 | ||
| 104 | </div> | 158 | </div> |
| 105 | </template> | 159 | </template> |
| 106 | 160 | ||
| 107 | <script> | 161 | <script> |
| 108 | import { getSmsLogPage, exportSmsLogExcel } from "@/api/system/sms/smsLog"; | 162 | import { getSmsLogPage, exportSmsLogExcel } from "@/api/system/sms/smsLog"; |
| 163 | +import { getSimpleSmsChannels } from "@/api/system/sms/smsChannel"; | ||
| 109 | 164 | ||
| 110 | export default { | 165 | export default { |
| 111 | name: "SmsLog", | 166 | name: "SmsLog", |
| @@ -127,6 +182,8 @@ export default { | @@ -127,6 +182,8 @@ export default { | ||
| 127 | open: false, | 182 | open: false, |
| 128 | dateRangeSendTime: [], | 183 | dateRangeSendTime: [], |
| 129 | dateRangeReceiveTime: [], | 184 | dateRangeReceiveTime: [], |
| 185 | + // 表单参数 | ||
| 186 | + form: {}, | ||
| 130 | // 查询参数 | 187 | // 查询参数 |
| 131 | queryParams: { | 188 | queryParams: { |
| 132 | pageNo: 1, | 189 | pageNo: 1, |
| @@ -137,10 +194,16 @@ export default { | @@ -137,10 +194,16 @@ export default { | ||
| 137 | sendStatus: null, | 194 | sendStatus: null, |
| 138 | receiveStatus: null, | 195 | receiveStatus: null, |
| 139 | }, | 196 | }, |
| 197 | + // 短信渠道 | ||
| 198 | + channelOptions: [], | ||
| 140 | }; | 199 | }; |
| 141 | }, | 200 | }, |
| 142 | created() { | 201 | created() { |
| 143 | this.getList(); | 202 | this.getList(); |
| 203 | + // 获得短信渠道 | ||
| 204 | + getSimpleSmsChannels().then(response => { | ||
| 205 | + this.channelOptions = response.data; | ||
| 206 | + }) | ||
| 144 | }, | 207 | }, |
| 145 | methods: { | 208 | methods: { |
| 146 | /** 查询列表 */ | 209 | /** 查询列表 */ |
| @@ -192,6 +255,20 @@ export default { | @@ -192,6 +255,20 @@ export default { | ||
| 192 | }).then(response => { | 255 | }).then(response => { |
| 193 | this.downloadExcel(response, '短信日志.xls'); | 256 | this.downloadExcel(response, '短信日志.xls'); |
| 194 | }) | 257 | }) |
| 258 | + }, | ||
| 259 | + /** 详细按钮操作 */ | ||
| 260 | + handleView(row) { | ||
| 261 | + this.open = true; | ||
| 262 | + this.form = row; | ||
| 263 | + }, | ||
| 264 | + /** 格式化短信渠道 */ | ||
| 265 | + formatChannelSignature(channelId) { | ||
| 266 | + for (const channel of this.channelOptions) { | ||
| 267 | + if (channel.id === channelId) { | ||
| 268 | + return channel.signature; | ||
| 269 | + } | ||
| 270 | + } | ||
| 271 | + return '找不到签名:' + channelId; | ||
| 195 | } | 272 | } |
| 196 | } | 273 | } |
| 197 | }; | 274 | }; |
ruoyi-ui/src/views/system/sms/smsTemplate.vue
| @@ -21,8 +21,8 @@ | @@ -21,8 +21,8 @@ | ||
| 21 | <el-form-item label="短信 API 的模板编号" prop="apiTemplateId"> | 21 | <el-form-item label="短信 API 的模板编号" prop="apiTemplateId"> |
| 22 | <el-input v-model="queryParams.apiTemplateId" placeholder="请输入短信 API 的模板编号" clearable size="small" @keyup.enter.native="handleQuery"/> | 22 | <el-input v-model="queryParams.apiTemplateId" placeholder="请输入短信 API 的模板编号" clearable size="small" @keyup.enter.native="handleQuery"/> |
| 23 | </el-form-item> | 23 | </el-form-item> |
| 24 | - <el-form-item label="短信渠道编号" prop="channelId"> | ||
| 25 | - <el-select v-model="queryParams.channelId" placeholder="请选择短信渠道编号" clearable size="small"> | 24 | + <el-form-item label="短信渠道" prop="channelId"> |
| 25 | + <el-select v-model="queryParams.channelId" placeholder="请选择短信渠道" clearable size="small"> | ||
| 26 | <el-option v-for="channel in channelOptions" | 26 | <el-option v-for="channel in channelOptions" |
| 27 | :key="channel.id" :value="channel.id" | 27 | :key="channel.id" :value="channel.id" |
| 28 | :label="channel.signature + '【' + getDictDataLabel(DICT_TYPE.SYS_SMS_CHANNEL_CODE, channel.code) + '】'" /> | 28 | :label="channel.signature + '【' + getDictDataLabel(DICT_TYPE.SYS_SMS_CHANNEL_CODE, channel.code) + '】'" /> |
| @@ -60,12 +60,12 @@ | @@ -60,12 +60,12 @@ | ||
| 60 | <template slot-scope="scope"> | 60 | <template slot-scope="scope"> |
| 61 | <span>{{ getDictDataLabel(DICT_TYPE.SYS_SMS_TEMPLATE_TYPE, scope.row.type) }}</span> | 61 | <span>{{ getDictDataLabel(DICT_TYPE.SYS_SMS_TEMPLATE_TYPE, scope.row.type) }}</span> |
| 62 | </template> | 62 | </template> |
| 63 | - </el-table-column>> | 63 | + </el-table-column> |
| 64 | <el-table-column label="开启状态" align="center" prop="status"> | 64 | <el-table-column label="开启状态" align="center" prop="status"> |
| 65 | <template slot-scope="scope"> | 65 | <template slot-scope="scope"> |
| 66 | <span>{{ getDictDataLabel(DICT_TYPE.SYS_COMMON_STATUS, scope.row.status) }}</span> | 66 | <span>{{ getDictDataLabel(DICT_TYPE.SYS_COMMON_STATUS, scope.row.status) }}</span> |
| 67 | </template> | 67 | </template> |
| 68 | - </el-table-column>> | 68 | + </el-table-column> |
| 69 | <el-table-column label="备注" align="center" prop="remark" /> | 69 | <el-table-column label="备注" align="center" prop="remark" /> |
| 70 | <el-table-column label="短信 API 的模板编号" align="center" prop="apiTemplateId" width="180" /> | 70 | <el-table-column label="短信 API 的模板编号" align="center" prop="apiTemplateId" width="180" /> |
| 71 | <el-table-column label="短信渠道" align="center"> | 71 | <el-table-column label="短信渠道" align="center"> |
src/main/java/cn/iocoder/dashboard/framework/sms/core/client/SmsClient.java
| @@ -28,10 +28,11 @@ public interface SmsClient { | @@ -28,10 +28,11 @@ public interface SmsClient { | ||
| 28 | * @param logId 日志编号 | 28 | * @param logId 日志编号 |
| 29 | * @param mobile 手机号 | 29 | * @param mobile 手机号 |
| 30 | * @param apiTemplateId 短信 API 的模板编号 | 30 | * @param apiTemplateId 短信 API 的模板编号 |
| 31 | - * @param templateParams 短信模板参数 | 31 | + * @param templateParams 短信模板参数。通过 List 数组,保证参数的顺序 |
| 32 | * @return 短信发送结果 | 32 | * @return 短信发送结果 |
| 33 | */ | 33 | */ |
| 34 | - SmsCommonResult<SmsSendRespDTO> sendSms(Long logId, String mobile, String apiTemplateId, List<KeyValue<String, Object>> templateParams); | 34 | + SmsCommonResult<SmsSendRespDTO> sendSms(Long logId, String mobile, String apiTemplateId, |
| 35 | + List<KeyValue<String, Object>> templateParams); | ||
| 35 | 36 | ||
| 36 | /** | 37 | /** |
| 37 | * 解析接收短信的接收结果 | 38 | * 解析接收短信的接收结果 |
src/main/java/cn/iocoder/dashboard/modules/system/controller/dict/SysDictTypeController.java
| @@ -41,7 +41,7 @@ public class SysDictTypeController { | @@ -41,7 +41,7 @@ public class SysDictTypeController { | ||
| 41 | return success(dictTypeId); | 41 | return success(dictTypeId); |
| 42 | } | 42 | } |
| 43 | 43 | ||
| 44 | - @PostMapping("update") | 44 | + @PutMapping("/update") |
| 45 | @ApiOperation("修改字典类型") | 45 | @ApiOperation("修改字典类型") |
| 46 | @PreAuthorize("@ss.hasPermission('system:dict:update')") | 46 | @PreAuthorize("@ss.hasPermission('system:dict:update')") |
| 47 | public CommonResult<Boolean> updateDictType(@Valid @RequestBody SysDictTypeUpdateReqVO reqVO) { | 47 | public CommonResult<Boolean> updateDictType(@Valid @RequestBody SysDictTypeUpdateReqVO reqVO) { |
src/main/java/cn/iocoder/dashboard/modules/system/enums/dict/SysDictTypeEnum.java
| @@ -20,6 +20,8 @@ public enum SysDictTypeEnum { | @@ -20,6 +20,8 @@ public enum SysDictTypeEnum { | ||
| 20 | SYS_BOOLEAN_STRING("sys_boolean_string"), // Boolean 是否类型 | 20 | SYS_BOOLEAN_STRING("sys_boolean_string"), // Boolean 是否类型 |
| 21 | SYS_SMS_CHANNEL_CODE("sys_sms_channel_code"), // 短信渠道编码 | 21 | SYS_SMS_CHANNEL_CODE("sys_sms_channel_code"), // 短信渠道编码 |
| 22 | SYS_SMS_TEMPLATE_TYPE("sys_sms_template_type"), // 短信模板类型 | 22 | SYS_SMS_TEMPLATE_TYPE("sys_sms_template_type"), // 短信模板类型 |
| 23 | + SYS_SMS_SEND_STATUS("sys_sms_send_status"), // 短信发送状态 | ||
| 24 | + SYS_SMS_RECEIVE_STATUS("sys_sms_receive_status"), // 短信接收状态 | ||
| 23 | 25 | ||
| 24 | INF_REDIS_TIMEOUT_TYPE("inf_redis_timeout_type"), // Redis 超时类型 | 26 | INF_REDIS_TIMEOUT_TYPE("inf_redis_timeout_type"), // Redis 超时类型 |
| 25 | INF_JOB_STATUS("inf_job_status"), // 定时任务状态的枚举 | 27 | INF_JOB_STATUS("inf_job_status"), // 定时任务状态的枚举 |
src/main/resources/codegen/vue/views/index.vue.vm
| @@ -76,7 +76,7 @@ | @@ -76,7 +76,7 @@ | ||
| 76 | <template slot-scope="scope"> | 76 | <template slot-scope="scope"> |
| 77 | <span>{{ getDictDataLabel(DICT_TYPE.$dictType.toUpperCase(), scope.row.${column.javaField}) }}</span> | 77 | <span>{{ getDictDataLabel(DICT_TYPE.$dictType.toUpperCase(), scope.row.${column.javaField}) }}</span> |
| 78 | </template> | 78 | </template> |
| 79 | - </el-table-column>> | 79 | + </el-table-column> |
| 80 | #else | 80 | #else |
| 81 | <el-table-column label="${comment}" align="center" prop="${javaField}" /> | 81 | <el-table-column label="${comment}" align="center" prop="${javaField}" /> |
| 82 | #end | 82 | #end |