Commit 076c7a4e3e3e3a05c4eea51ebc96d19a41073e01

Authored by YunaiV
1 parent e33b2f0d

优化短信模块的代码

Showing 18 changed files with 41 additions and 40 deletions
sql/ruoyi-vue-pro.sql
No preview for this file type
yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/impl/wx/WXPayClientConfig.java
@@ -82,9 +82,9 @@ public class WXPayClientConfig implements PayClientConfig { @@ -82,9 +82,9 @@ public class WXPayClientConfig implements PayClientConfig {
82 @NotBlank(message = "apiclient_cert 不能为空", groups = V3.class) 82 @NotBlank(message = "apiclient_cert 不能为空", groups = V3.class)
83 private String privateCertContent; 83 private String privateCertContent;
84 /** 84 /**
85 - * apiV3 秘钥值 85 + * apiV3 密钥值
86 */ 86 */
87 - @NotBlank(message = "apiV3 秘钥值 不能为空", groups = V3.class) 87 + @NotBlank(message = "apiV3 密钥值 不能为空", groups = V3.class)
88 private String apiV3Key; 88 private String apiV3Key;
89 89
90 /** 90 /**
yudao-framework/yudao-spring-boot-starter-biz-sms/src/main/java/cn/iocoder/yudao/framework/sms/core/client/SmsClient.java
@@ -11,7 +11,7 @@ import java.util.List; @@ -11,7 +11,7 @@ import java.util.List;
11 * 短信客户端,用于对接各短信平台的 SDK,实现短信发送等功能 11 * 短信客户端,用于对接各短信平台的 SDK,实现短信发送等功能
12 * 12 *
13 * @author zzf 13 * @author zzf
14 - * @date 2021/1/25 14:14 14 + * @since 2021/1/25 14:14
15 */ 15 */
16 public interface SmsClient { 16 public interface SmsClient {
17 17
yudao-framework/yudao-spring-boot-starter-biz-sms/src/main/java/cn/iocoder/yudao/framework/sms/core/client/SmsClientFactory.java
@@ -6,7 +6,7 @@ import cn.iocoder.yudao.framework.sms.core.property.SmsChannelProperties; @@ -6,7 +6,7 @@ import cn.iocoder.yudao.framework.sms.core.property.SmsChannelProperties;
6 * 短信客户端的工厂接口 6 * 短信客户端的工厂接口
7 * 7 *
8 * @author zzf 8 * @author zzf
9 - * @date 2021/1/28 14:01 9 + * @since 2021/1/28 14:01
10 */ 10 */
11 public interface SmsClientFactory { 11 public interface SmsClientFactory {
12 12
yudao-framework/yudao-spring-boot-starter-biz-sms/src/main/java/cn/iocoder/yudao/framework/sms/core/client/impl/AbstractSmsClient.java
@@ -16,7 +16,7 @@ import java.util.List; @@ -16,7 +16,7 @@ import java.util.List;
16 * 短信客户端的抽象类,提供模板方法,减少子类的冗余代码 16 * 短信客户端的抽象类,提供模板方法,减少子类的冗余代码
17 * 17 *
18 * @author zzf 18 * @author zzf
19 - * @date 2021/2/1 9:28 19 + * @since 2021/2/1 9:28
20 */ 20 */
21 @Slf4j 21 @Slf4j
22 public abstract class AbstractSmsClient implements SmsClient { 22 public abstract class AbstractSmsClient implements SmsClient {
yudao-framework/yudao-spring-boot-starter-biz-sms/src/main/java/cn/iocoder/yudao/framework/sms/core/client/impl/aliyun/AliyunSmsClient.java
@@ -41,7 +41,7 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.TIME_ZONE_DE @@ -41,7 +41,7 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.TIME_ZONE_DE
41 * 阿里短信客户端的实现类 41 * 阿里短信客户端的实现类
42 * 42 *
43 * @author zzf 43 * @author zzf
44 - * @date 2021/1/25 14:17 44 + * @since 2021/1/25 14:17
45 */ 45 */
46 @Slf4j 46 @Slf4j
47 public class AliyunSmsClient extends AbstractSmsClient { 47 public class AliyunSmsClient extends AbstractSmsClient {
yudao-framework/yudao-spring-boot-starter-biz-sms/src/main/java/cn/iocoder/yudao/framework/sms/core/property/TencentSmsChannelProperties.java renamed to yudao-framework/yudao-spring-boot-starter-biz-sms/src/main/java/cn/iocoder/yudao/framework/sms/core/client/impl/tencent/TencentSmsChannelProperties.java
1 -package cn.iocoder.yudao.framework.sms.core.property; 1 +package cn.iocoder.yudao.framework.sms.core.client.impl.tencent;
2 2
3 import cn.hutool.core.bean.BeanUtil; 3 import cn.hutool.core.bean.BeanUtil;
4 import cn.hutool.core.lang.Assert; 4 import cn.hutool.core.lang.Assert;
  5 +import cn.iocoder.yudao.framework.sms.core.property.SmsChannelProperties;
5 import lombok.Data; 6 import lombok.Data;
6 7
7 /** 8 /**
yudao-framework/yudao-spring-boot-starter-biz-sms/src/main/java/cn/iocoder/yudao/framework/sms/core/client/impl/tencent/TencentSmsClient.java
1 package cn.iocoder.yudao.framework.sms.core.client.impl.tencent; 1 package cn.iocoder.yudao.framework.sms.core.client.impl.tencent;
2 2
3 -import cn.hutool.core.bean.BeanUtil;  
4 import cn.hutool.core.lang.Assert; 3 import cn.hutool.core.lang.Assert;
5 import cn.hutool.core.util.StrUtil; 4 import cn.hutool.core.util.StrUtil;
6 import cn.iocoder.yudao.framework.common.core.KeyValue; 5 import cn.iocoder.yudao.framework.common.core.KeyValue;
@@ -14,7 +13,6 @@ import cn.iocoder.yudao.framework.sms.core.client.dto.SmsTemplateRespDTO; @@ -14,7 +13,6 @@ import cn.iocoder.yudao.framework.sms.core.client.dto.SmsTemplateRespDTO;
14 import cn.iocoder.yudao.framework.sms.core.client.impl.AbstractSmsClient; 13 import cn.iocoder.yudao.framework.sms.core.client.impl.AbstractSmsClient;
15 import cn.iocoder.yudao.framework.sms.core.enums.SmsTemplateAuditStatusEnum; 14 import cn.iocoder.yudao.framework.sms.core.enums.SmsTemplateAuditStatusEnum;
16 import cn.iocoder.yudao.framework.sms.core.property.SmsChannelProperties; 15 import cn.iocoder.yudao.framework.sms.core.property.SmsChannelProperties;
17 -import cn.iocoder.yudao.framework.sms.core.property.TencentSmsChannelProperties;  
18 import com.fasterxml.jackson.annotation.JsonFormat; 16 import com.fasterxml.jackson.annotation.JsonFormat;
19 import com.fasterxml.jackson.annotation.JsonProperty; 17 import com.fasterxml.jackson.annotation.JsonProperty;
20 import com.google.common.annotations.VisibleForTesting; 18 import com.google.common.annotations.VisibleForTesting;
yudao-framework/yudao-spring-boot-starter-biz-sms/src/main/java/cn/iocoder/yudao/framework/sms/core/client/impl/yunpian/YunpianSmsClient.java
@@ -35,7 +35,7 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.TIME_ZONE_DE @@ -35,7 +35,7 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.TIME_ZONE_DE
35 * 云片短信客户端的实现类 35 * 云片短信客户端的实现类
36 * 36 *
37 * @author zzf 37 * @author zzf
38 - * @date 9:48 2021/3/5 38 + * @since 9:48 2021/3/5
39 */ 39 */
40 @Slf4j 40 @Slf4j
41 public class YunpianSmsClient extends AbstractSmsClient { 41 public class YunpianSmsClient extends AbstractSmsClient {
yudao-framework/yudao-spring-boot-starter-biz-sms/src/main/java/cn/iocoder/yudao/framework/sms/core/enums/SmsChannelEnum.java
@@ -8,7 +8,7 @@ import lombok.Getter; @@ -8,7 +8,7 @@ import lombok.Getter;
8 * 短信渠道枚举 8 * 短信渠道枚举
9 * 9 *
10 * @author zzf 10 * @author zzf
11 - * @date 2021/1/25 10:56 11 + * @since 2021/1/25 10:56
12 */ 12 */
13 @Getter 13 @Getter
14 @AllArgsConstructor 14 @AllArgsConstructor
yudao-framework/yudao-spring-boot-starter-biz-sms/src/main/java/cn/iocoder/yudao/framework/sms/core/property/SmsChannelProperties.java
@@ -11,7 +11,7 @@ import javax.validation.constraints.NotNull; @@ -11,7 +11,7 @@ import javax.validation.constraints.NotNull;
11 * 短信渠道配置类 11 * 短信渠道配置类
12 * 12 *
13 * @author zzf 13 * @author zzf
14 - * @date 2021/1/25 17:01 14 + * @since 2021/1/25 17:01
15 */ 15 */
16 @Data 16 @Data
17 @Validated 17 @Validated
@@ -40,9 +40,9 @@ public class SmsChannelProperties { @@ -40,9 +40,9 @@ public class SmsChannelProperties {
40 @NotEmpty(message = "短信 API 的账号不能为空") 40 @NotEmpty(message = "短信 API 的账号不能为空")
41 private String apiKey; 41 private String apiKey;
42 /** 42 /**
43 - * 短信 API 的秘钥 43 + * 短信 API 的密钥
44 */ 44 */
45 - @NotEmpty(message = "短信 API 的秘钥不能为空") 45 + @NotEmpty(message = "短信 API 的密钥不能为空")
46 private String apiSecret; 46 private String apiSecret;
47 /** 47 /**
48 * 短信发送回调 URL 48 * 短信发送回调 URL
yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/config/SecurityProperties.java
@@ -37,10 +37,10 @@ public class SecurityProperties { @@ -37,10 +37,10 @@ public class SecurityProperties {
37 @NotNull(message = "mock 模式的开关不能为空") 37 @NotNull(message = "mock 模式的开关不能为空")
38 private Boolean mockEnable; 38 private Boolean mockEnable;
39 /** 39 /**
40 - * mock 模式的秘钥  
41 - * 一定要配置秘钥,保证安全性 40 + * mock 模式的密钥
  41 + * 一定要配置密钥,保证安全性
42 */ 42 */
43 - @NotEmpty(message = "mock 模式的秘钥不能为空") // 这里设置了一个默认值,因为实际上只有 mockEnable 为 true 时才需要配置。 43 + @NotEmpty(message = "mock 模式的密钥不能为空") // 这里设置了一个默认值,因为实际上只有 mockEnable 为 true 时才需要配置。
44 private String mockSecret = "yudaoyuanma"; 44 private String mockSecret = "yudaoyuanma";
45 45
46 } 46 }
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/sms/dto/send/SmsSendSingleToUserReqDTO.java
@@ -18,7 +18,6 @@ public class SmsSendSingleToUserReqDTO { @@ -18,7 +18,6 @@ public class SmsSendSingleToUserReqDTO {
18 /** 18 /**
19 * 用户编号 19 * 用户编号
20 */ 20 */
21 - @NotNull(message = "用户编号不能为空")  
22 private Long userId; 21 private Long userId;
23 /** 22 /**
24 * 手机号 23 * 手机号
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/channel/SmsChannelBaseVO.java
@@ -28,7 +28,7 @@ public class SmsChannelBaseVO { @@ -28,7 +28,7 @@ public class SmsChannelBaseVO {
28 @NotNull(message = "短信 API 的账号不能为空") 28 @NotNull(message = "短信 API 的账号不能为空")
29 private String apiKey; 29 private String apiKey;
30 30
31 - @ApiModelProperty(value = "短信 API 的秘钥", example = "yuanma") 31 + @ApiModelProperty(value = "短信 API 的密钥", example = "yuanma")
32 private String apiSecret; 32 private String apiSecret;
33 33
34 @ApiModelProperty(value = "短信发送回调 URL", example = "http://www.iocoder.cn") 34 @ApiModelProperty(value = "短信发送回调 URL", example = "http://www.iocoder.cn")
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsChannelDO.java
@@ -49,7 +49,7 @@ public class SmsChannelDO extends BaseDO { @@ -49,7 +49,7 @@ public class SmsChannelDO extends BaseDO {
49 */ 49 */
50 private String apiKey; 50 private String apiKey;
51 /** 51 /**
52 - * 短信 API 的秘钥 52 + * 短信 API 的密钥
53 */ 53 */
54 private String apiSecret; 54 private String apiSecret;
55 /** 55 /**
yudao-server/src/main/resources/admin-ui/static/js/17.js
@@ -524,7 +524,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n @@ -524,7 +524,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n
524 /***/ (function(module, exports, __webpack_require__) { 524 /***/ (function(module, exports, __webpack_require__) {
525 525
526 "use strict"; 526 "use strict";
527 -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n__webpack_require__(/*! core-js/modules/es.json.stringify.js */ \"./node_modules/core-js/modules/es.json.stringify.js\");\n\n__webpack_require__(/*! core-js/modules/es.regexp.exec.js */ \"./node_modules/core-js/modules/es.regexp.exec.js\");\n\n__webpack_require__(/*! core-js/modules/es.string.split.js */ \"./node_modules/core-js/modules/es.string.split.js\");\n\n__webpack_require__(/*! core-js/modules/es.function.name.js */ \"./node_modules/core-js/modules/es.function.name.js\");\n\nvar _dict = __webpack_require__(/*! @/utils/dict */ \"./src/utils/dict.js\");\n\nvar _channel = __webpack_require__(/*! @/api/pay/channel */ \"./src/api/pay/channel.js\");\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar defaultForm = {\n code: '',\n status: null,\n remark: '',\n feeRate: null,\n appId: '',\n merchantId: null,\n weChatConfig: {\n appId: '',\n mchId: '',\n apiVersion: '',\n mchKey: '',\n privateKeyContent: '',\n privateCertContent: '',\n apiV3Key: ''\n }\n};\nvar _default = {\n name: \"wechatChannelForm\",\n components: {},\n props: {\n // 传输的参数\n transferParam: {\n // 加载动画\n \"loading\": false,\n // 是否修改\n \"edit\": false,\n // 是否显示\n \"wechatOpen\": false,\n // 应用ID\n \"appId\": null,\n // 渠道编码\n \"payCode\": null,\n // 商户对象\n \"payMerchant\": {\n // 编号\n \"id\": null,\n // 名称\n \"name\": null\n }\n }\n },\n data: function data() {\n return {\n title: '',\n form: JSON.parse(JSON.stringify(defaultForm)),\n rules: {\n feeRate: [{\n required: true,\n message: '请输入渠道费率',\n trigger: 'blur'\n }],\n 'weChatConfig.mchId': [{\n required: true,\n message: '请传入商户号',\n trigger: 'blur'\n }],\n 'weChatConfig.appId': [{\n required: true,\n message: '请输入公众号APPID',\n trigger: 'blur'\n }],\n status: [{\n required: true,\n message: '渠道状态不能为空',\n trigger: 'blur'\n }],\n 'weChatConfig.apiVersion': [{\n required: true,\n message: 'API版本不能为空',\n trigger: 'blur'\n }],\n 'weChatConfig.mchKey': [{\n required: true,\n message: '请输入商户秘钥',\n trigger: 'blur'\n }],\n 'weChatConfig.privateKeyContent': [{\n required: true,\n message: '请上传apiclient_key.perm证书',\n trigger: 'blur'\n }],\n 'weChatConfig.privateCertContent': [{\n required: true,\n message: '请上传apiclient_cert.perm证书',\n trigger: 'blur'\n }],\n 'weChatConfig.apiV3Key': [{\n required: true,\n message: '请上传apiV3秘钥值',\n trigger: 'blur'\n }]\n },\n // 文件上传的header\n header: {\n \"Authorization\": null\n },\n fileAccept: \".pem\",\n // 渠道状态 数据字典\n statusDictDatas: (0, _dict.getDictDatas)(_dict.DICT_TYPE.COMMON_STATUS),\n versionDictDatas: (0, _dict.getDictDatas)(_dict.DICT_TYPE.PAY_CHANNEL_WECHAT_VERSION)\n };\n },\n watch: {\n transferParam: {\n deep: true,\n // 深度监听\n handler: function handler(newVal) {\n if (newVal.wechatOpen) {\n this.form.code = newVal.payCode;\n this.form.appId = newVal.appId;\n this.form.merchantId = newVal.payMerchant.id; // 只有在初次进来为编辑 并且为加载中的时候才回去请求数据\n\n if (newVal.edit && newVal.loading) {\n this.title = \"编辑支付渠道\";\n this.init();\n } else {\n this.title = \"创建支付渠道\";\n }\n }\n }\n }\n },\n methods: {\n init: function init() {\n var _this = this;\n\n (0, _channel.getChannel)(this.transferParam.payMerchant.id, this.transferParam.appId, this.transferParam.payCode).then(function (response) {\n _this.form.id = response.data.id;\n _this.form.feeRate = response.data.feeRate;\n _this.form.appId = response.data.appId;\n _this.form.status = response.data.status;\n _this.form.remark = response.data.remark;\n var config = JSON.parse(response.data.config);\n _this.form.weChatConfig.appId = config.appId;\n _this.form.weChatConfig.apiVersion = config.apiVersion;\n _this.form.weChatConfig.mchId = config.mchId;\n _this.form.weChatConfig.mchKey = config.mchKey;\n _this.form.weChatConfig.privateKeyContent = config.privateKeyContent;\n _this.form.weChatConfig.privateCertContent = config.privateCertContent;\n _this.form.weChatConfig.apiV3Key = config.apiV3Key;\n _this.transferParam.loading = false;\n });\n },\n close: function close() {\n this.transferParam.wechatOpen = false;\n this.form = JSON.parse(JSON.stringify(defaultForm));\n },\n handleConfirm: function handleConfirm() {\n var _this2 = this;\n\n this.$refs['wechatJsApiForm'].validate(function (valid) {\n if (!valid) {\n return;\n }\n\n var data = _this2.form;\n data.config = JSON.stringify(_this2.form.weChatConfig);\n\n if (_this2.transferParam.edit) {\n (0, _channel.updateChannel)(data).then(function (response) {\n if (response.code === 0) {\n _this2.$modal.msgSuccess(\"修改成功\");\n\n _this2.close();\n }\n });\n } else {\n (0, _channel.createChannel)(data).then(function (response) {\n if (response.code === 0) {\n _this2.$modal.msgSuccess(\"新增成功\");\n\n _this2.$parent.refreshTable();\n\n _this2.close();\n }\n });\n }\n });\n },\n pemFileBeforeUpload: function pemFileBeforeUpload(file) {\n var format = '.' + file.name.split(\".\")[1];\n\n if (format !== this.fileAccept) {\n this.$message.error('请上传指定格式\"' + this.fileAccept + '\"文件');\n return false;\n }\n\n var isRightSize = file.size / 1024 / 1024 < 2;\n\n if (!isRightSize) {\n this.$message.error('文件大小超过 2MB');\n }\n\n return isRightSize;\n },\n privateKeyUpload: function privateKeyUpload(event) {\n var _this3 = this;\n\n var readFile = new FileReader();\n\n readFile.onload = function (e) {\n _this3.form.weChatConfig.privateKeyContent = e.target.result;\n };\n\n readFile.readAsText(event.file);\n },\n privateCertUpload: function privateCertUpload(event) {\n var _this4 = this;\n\n var readFile = new FileReader();\n\n readFile.onload = function (e) {\n _this4.form.weChatConfig.privateCertContent = e.target.result;\n };\n\n readFile.readAsText(event.file);\n }\n }\n};\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/views/pay/app/components/wechatChannelForm.vue?./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); 527 +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n__webpack_require__(/*! core-js/modules/es.json.stringify.js */ \"./node_modules/core-js/modules/es.json.stringify.js\");\n\n__webpack_require__(/*! core-js/modules/es.regexp.exec.js */ \"./node_modules/core-js/modules/es.regexp.exec.js\");\n\n__webpack_require__(/*! core-js/modules/es.string.split.js */ \"./node_modules/core-js/modules/es.string.split.js\");\n\n__webpack_require__(/*! core-js/modules/es.function.name.js */ \"./node_modules/core-js/modules/es.function.name.js\");\n\nvar _dict = __webpack_require__(/*! @/utils/dict */ \"./src/utils/dict.js\");\n\nvar _channel = __webpack_require__(/*! @/api/pay/channel */ \"./src/api/pay/channel.js\");\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar defaultForm = {\n code: '',\n status: null,\n remark: '',\n feeRate: null,\n appId: '',\n merchantId: null,\n weChatConfig: {\n appId: '',\n mchId: '',\n apiVersion: '',\n mchKey: '',\n privateKeyContent: '',\n privateCertContent: '',\n apiV3Key: ''\n }\n};\nvar _default = {\n name: \"wechatChannelForm\",\n components: {},\n props: {\n // 传输的参数\n transferParam: {\n // 加载动画\n \"loading\": false,\n // 是否修改\n \"edit\": false,\n // 是否显示\n \"wechatOpen\": false,\n // 应用ID\n \"appId\": null,\n // 渠道编码\n \"payCode\": null,\n // 商户对象\n \"payMerchant\": {\n // 编号\n \"id\": null,\n // 名称\n \"name\": null\n }\n }\n },\n data: function data() {\n return {\n title: '',\n form: JSON.parse(JSON.stringify(defaultForm)),\n rules: {\n feeRate: [{\n required: true,\n message: '请输入渠道费率',\n trigger: 'blur'\n }],\n 'weChatConfig.mchId': [{\n required: true,\n message: '请传入商户号',\n trigger: 'blur'\n }],\n 'weChatConfig.appId': [{\n required: true,\n message: '请输入公众号APPID',\n trigger: 'blur'\n }],\n status: [{\n required: true,\n message: '渠道状态不能为空',\n trigger: 'blur'\n }],\n 'weChatConfig.apiVersion': [{\n required: true,\n message: 'API版本不能为空',\n trigger: 'blur'\n }],\n 'weChatConfig.mchKey': [{\n required: true,\n message: '请输入商户密钥',\n trigger: 'blur'\n }],\n 'weChatConfig.privateKeyContent': [{\n required: true,\n message: '请上传apiclient_key.perm证书',\n trigger: 'blur'\n }],\n 'weChatConfig.privateCertContent': [{\n required: true,\n message: '请上传apiclient_cert.perm证书',\n trigger: 'blur'\n }],\n 'weChatConfig.apiV3Key': [{\n required: true,\n message: '请上传apiV3密钥值',\n trigger: 'blur'\n }]\n },\n // 文件上传的header\n header: {\n \"Authorization\": null\n },\n fileAccept: \".pem\",\n // 渠道状态 数据字典\n statusDictDatas: (0, _dict.getDictDatas)(_dict.DICT_TYPE.COMMON_STATUS),\n versionDictDatas: (0, _dict.getDictDatas)(_dict.DICT_TYPE.PAY_CHANNEL_WECHAT_VERSION)\n };\n },\n watch: {\n transferParam: {\n deep: true,\n // 深度监听\n handler: function handler(newVal) {\n if (newVal.wechatOpen) {\n this.form.code = newVal.payCode;\n this.form.appId = newVal.appId;\n this.form.merchantId = newVal.payMerchant.id; // 只有在初次进来为编辑 并且为加载中的时候才回去请求数据\n\n if (newVal.edit && newVal.loading) {\n this.title = \"编辑支付渠道\";\n this.init();\n } else {\n this.title = \"创建支付渠道\";\n }\n }\n }\n }\n },\n methods: {\n init: function init() {\n var _this = this;\n\n (0, _channel.getChannel)(this.transferParam.payMerchant.id, this.transferParam.appId, this.transferParam.payCode).then(function (response) {\n _this.form.id = response.data.id;\n _this.form.feeRate = response.data.feeRate;\n _this.form.appId = response.data.appId;\n _this.form.status = response.data.status;\n _this.form.remark = response.data.remark;\n var config = JSON.parse(response.data.config);\n _this.form.weChatConfig.appId = config.appId;\n _this.form.weChatConfig.apiVersion = config.apiVersion;\n _this.form.weChatConfig.mchId = config.mchId;\n _this.form.weChatConfig.mchKey = config.mchKey;\n _this.form.weChatConfig.privateKeyContent = config.privateKeyContent;\n _this.form.weChatConfig.privateCertContent = config.privateCertContent;\n _this.form.weChatConfig.apiV3Key = config.apiV3Key;\n _this.transferParam.loading = false;\n });\n },\n close: function close() {\n this.transferParam.wechatOpen = false;\n this.form = JSON.parse(JSON.stringify(defaultForm));\n },\n handleConfirm: function handleConfirm() {\n var _this2 = this;\n\n this.$refs['wechatJsApiForm'].validate(function (valid) {\n if (!valid) {\n return;\n }\n\n var data = _this2.form;\n data.config = JSON.stringify(_this2.form.weChatConfig);\n\n if (_this2.transferParam.edit) {\n (0, _channel.updateChannel)(data).then(function (response) {\n if (response.code === 0) {\n _this2.$modal.msgSuccess(\"修改成功\");\n\n _this2.close();\n }\n });\n } else {\n (0, _channel.createChannel)(data).then(function (response) {\n if (response.code === 0) {\n _this2.$modal.msgSuccess(\"新增成功\");\n\n _this2.$parent.refreshTable();\n\n _this2.close();\n }\n });\n }\n });\n },\n pemFileBeforeUpload: function pemFileBeforeUpload(file) {\n var format = '.' + file.name.split(\".\")[1];\n\n if (format !== this.fileAccept) {\n this.$message.error('请上传指定格式\"' + this.fileAccept + '\"文件');\n return false;\n }\n\n var isRightSize = file.size / 1024 / 1024 < 2;\n\n if (!isRightSize) {\n this.$message.error('文件大小超过 2MB');\n }\n\n return isRightSize;\n },\n privateKeyUpload: function privateKeyUpload(event) {\n var _this3 = this;\n\n var readFile = new FileReader();\n\n readFile.onload = function (e) {\n _this3.form.weChatConfig.privateKeyContent = e.target.result;\n };\n\n readFile.readAsText(event.file);\n },\n privateCertUpload: function privateCertUpload(event) {\n var _this4 = this;\n\n var readFile = new FileReader();\n\n readFile.onload = function (e) {\n _this4.form.weChatConfig.privateCertContent = e.target.result;\n };\n\n readFile.readAsText(event.file);\n }\n }\n};\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/views/pay/app/components/wechatChannelForm.vue?./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
528 528
529 /***/ }), 529 /***/ }),
530 530
@@ -1304,7 +1304,7 @@ eval(&quot;__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * @@ -1304,7 +1304,7 @@ eval(&quot;__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
1304 /***/ (function(module, __webpack_exports__, __webpack_require__) { 1304 /***/ (function(module, __webpack_exports__, __webpack_require__) {
1305 1305
1306 "use strict"; 1306 "use strict";
1307 -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n [\n _c(\n \"el-dialog\",\n {\n attrs: {\n visible: _vm.transferParam.wechatOpen,\n title: _vm.title,\n \"append-to-body\": \"\",\n width: \"800px\",\n },\n on: {\n \"update:visible\": function ($event) {\n return _vm.$set(_vm.transferParam, \"wechatOpen\", $event)\n },\n close: _vm.close,\n },\n },\n [\n _c(\n \"el-form\",\n {\n directives: [\n {\n name: \"loading\",\n rawName: \"v-loading\",\n value: _vm.transferParam.loading,\n expression: \"transferParam.loading\",\n },\n ],\n ref: \"wechatJsApiForm\",\n attrs: {\n model: _vm.form,\n rules: _vm.rules,\n size: \"medium\",\n \"label-width\": \"100px\",\n },\n },\n [\n _c(\n \"el-form-item\",\n {\n attrs: {\n \"label-width\": \"180px\",\n label: \"渠道费率\",\n prop: \"feeRate\",\n },\n },\n [\n _c(\n \"el-input\",\n {\n style: { width: \"100%\" },\n attrs: { placeholder: \"请输入渠道费率\", clearable: \"\" },\n model: {\n value: _vm.form.feeRate,\n callback: function ($$v) {\n _vm.$set(_vm.form, \"feeRate\", $$v)\n },\n expression: \"form.feeRate\",\n },\n },\n [_c(\"template\", { slot: \"append\" }, [_vm._v(\"%\")])],\n 2\n ),\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n {\n attrs: {\n \"label-width\": \"180px\",\n label: \"公众号APPID\",\n prop: \"weChatConfig.appId\",\n },\n },\n [\n _c(\"el-input\", {\n style: { width: \"100%\" },\n attrs: { placeholder: \"请输入公众号APPID\", clearable: \"\" },\n model: {\n value: _vm.form.weChatConfig.appId,\n callback: function ($$v) {\n _vm.$set(_vm.form.weChatConfig, \"appId\", $$v)\n },\n expression: \"form.weChatConfig.appId\",\n },\n }),\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n {\n attrs: {\n \"label-width\": \"180px\",\n label: \"商户号\",\n prop: \"weChatConfig.mchId\",\n },\n },\n [\n _c(\"el-input\", {\n style: { width: \"100%\" },\n model: {\n value: _vm.form.weChatConfig.mchId,\n callback: function ($$v) {\n _vm.$set(_vm.form.weChatConfig, \"mchId\", $$v)\n },\n expression: \"form.weChatConfig.mchId\",\n },\n }),\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n {\n attrs: {\n \"label-width\": \"180px\",\n label: \"渠道状态\",\n prop: \"status\",\n },\n },\n [\n _c(\n \"el-radio-group\",\n {\n attrs: { size: \"medium\" },\n model: {\n value: _vm.form.status,\n callback: function ($$v) {\n _vm.$set(_vm.form, \"status\", $$v)\n },\n expression: \"form.status\",\n },\n },\n _vm._l(_vm.statusDictDatas, function (dict) {\n return _c(\n \"el-radio\",\n {\n key: parseInt(dict.value),\n attrs: { label: parseInt(dict.value) },\n },\n [_vm._v(\" \" + _vm._s(dict.label) + \" \")]\n )\n }),\n 1\n ),\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n {\n attrs: {\n \"label-width\": \"180px\",\n label: \"API 版本\",\n prop: \"weChatConfig.apiVersion\",\n },\n },\n [\n _c(\n \"el-radio-group\",\n {\n attrs: { size: \"medium\" },\n model: {\n value: _vm.form.weChatConfig.apiVersion,\n callback: function ($$v) {\n _vm.$set(_vm.form.weChatConfig, \"apiVersion\", $$v)\n },\n expression: \"form.weChatConfig.apiVersion\",\n },\n },\n _vm._l(_vm.versionDictDatas, function (dict) {\n return _c(\n \"el-radio\",\n { key: dict.value, attrs: { label: dict.value } },\n [_vm._v(\" \" + _vm._s(dict.label) + \" \")]\n )\n }),\n 1\n ),\n ],\n 1\n ),\n _vm.form.weChatConfig.apiVersion === \"v2\"\n ? _c(\n \"el-form-item\",\n {\n attrs: {\n \"label-width\": \"180px\",\n label: \"商户秘钥\",\n prop: \"weChatConfig.mchKey\",\n },\n },\n [\n _c(\"el-input\", {\n style: { width: \"100%\" },\n attrs: {\n placeholder: \"请输入商户秘钥\",\n clearable: \"\",\n type: \"textarea\",\n autosize: { minRows: 8, maxRows: 8 },\n },\n model: {\n value: _vm.form.weChatConfig.mchKey,\n callback: function ($$v) {\n _vm.$set(_vm.form.weChatConfig, \"mchKey\", $$v)\n },\n expression: \"form.weChatConfig.mchKey\",\n },\n }),\n ],\n 1\n )\n : _vm._e(),\n _vm.form.weChatConfig.apiVersion === \"v3\"\n ? _c(\n \"div\",\n [\n _c(\n \"el-form-item\",\n {\n attrs: {\n \"label-width\": \"180px\",\n label: \"API V3秘钥\",\n prop: \"weChatConfig.apiV3Key\",\n },\n },\n [\n _c(\"el-input\", {\n style: { width: \"100%\" },\n attrs: {\n placeholder: \"请输入API V3秘钥\",\n clearable: \"\",\n type: \"textarea\",\n autosize: { minRows: 8, maxRows: 8 },\n },\n model: {\n value: _vm.form.weChatConfig.apiV3Key,\n callback: function ($$v) {\n _vm.$set(_vm.form.weChatConfig, \"apiV3Key\", $$v)\n },\n expression: \"form.weChatConfig.apiV3Key\",\n },\n }),\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n {\n attrs: {\n \"label-width\": \"180px\",\n label: \"apiclient_key.perm证书\",\n prop: \"weChatConfig.privateKeyContent\",\n },\n },\n [\n _c(\"el-input\", {\n style: { width: \"100%\" },\n attrs: {\n type: \"textarea\",\n placeholder: \"请上传apiclient_key.perm证书\",\n readonly: \"\",\n autosize: { minRows: 8, maxRows: 8 },\n },\n model: {\n value: _vm.form.weChatConfig.privateKeyContent,\n callback: function ($$v) {\n _vm.$set(\n _vm.form.weChatConfig,\n \"privateKeyContent\",\n $$v\n )\n },\n expression: \"form.weChatConfig.privateKeyContent\",\n },\n }),\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n {\n attrs: {\n \"label-width\": \"180px\",\n label: \"\",\n prop: \"privateKeyContentFile\",\n },\n },\n [\n _c(\n \"el-upload\",\n {\n ref: \"privateKeyContentFile\",\n attrs: {\n limit: 1,\n accept: _vm.fileAccept,\n headers: _vm.header,\n action: \"\",\n \"before-upload\": _vm.pemFileBeforeUpload,\n \"http-request\": _vm.privateKeyUpload,\n },\n },\n [\n _c(\n \"el-button\",\n {\n attrs: {\n size: \"small\",\n type: \"primary\",\n icon: \"el-icon-upload\",\n },\n },\n [_vm._v(\"点击上传\")]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n {\n attrs: {\n \"label-width\": \"180px\",\n label: \"apiclient_cert.perm证书\",\n prop: \"weChatConfig.privateCertContent\",\n },\n },\n [\n _c(\"el-input\", {\n style: { width: \"100%\" },\n attrs: {\n type: \"textarea\",\n placeholder: \"请上传apiclient_cert.perm证书\",\n readonly: \"\",\n autosize: { minRows: 8, maxRows: 8 },\n },\n model: {\n value: _vm.form.weChatConfig.privateCertContent,\n callback: function ($$v) {\n _vm.$set(\n _vm.form.weChatConfig,\n \"privateCertContent\",\n $$v\n )\n },\n expression:\n \"form.weChatConfig.privateCertContent\",\n },\n }),\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n {\n attrs: {\n \"label-width\": \"180px\",\n label: \"\",\n prop: \"privateCertContentFile\",\n },\n },\n [\n _c(\n \"el-upload\",\n {\n ref: \"privateCertContentFile\",\n attrs: {\n limit: 1,\n accept: _vm.fileAccept,\n headers: _vm.header,\n action: \"\",\n \"before-upload\": _vm.pemFileBeforeUpload,\n \"http-request\": _vm.privateCertUpload,\n },\n },\n [\n _c(\n \"el-button\",\n {\n attrs: {\n size: \"small\",\n type: \"primary\",\n icon: \"el-icon-upload\",\n },\n },\n [_vm._v(\"点击上传\")]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n )\n : _vm._e(),\n _c(\n \"el-form-item\",\n {\n attrs: {\n \"label-width\": \"180px\",\n label: \"备注\",\n prop: \"remark\",\n },\n },\n [\n _c(\"el-input\", {\n style: { width: \"100%\" },\n model: {\n value: _vm.form.remark,\n callback: function ($$v) {\n _vm.$set(_vm.form, \"remark\", $$v)\n },\n expression: \"form.remark\",\n },\n }),\n ],\n 1\n ),\n ],\n 1\n ),\n _c(\n \"div\",\n {\n staticClass: \"dialog-footer\",\n attrs: { slot: \"footer\" },\n slot: \"footer\",\n },\n [\n _c(\"el-button\", { on: { click: _vm.close } }, [_vm._v(\"取消\")]),\n _c(\n \"el-button\",\n {\n attrs: { type: \"primary\" },\n on: { click: _vm.handleConfirm },\n },\n [_vm._v(\"确定\")]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/views/pay/app/components/wechatChannelForm.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%228e17e5e2-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); 1307 +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n [\n _c(\n \"el-dialog\",\n {\n attrs: {\n visible: _vm.transferParam.wechatOpen,\n title: _vm.title,\n \"append-to-body\": \"\",\n width: \"800px\",\n },\n on: {\n \"update:visible\": function ($event) {\n return _vm.$set(_vm.transferParam, \"wechatOpen\", $event)\n },\n close: _vm.close,\n },\n },\n [\n _c(\n \"el-form\",\n {\n directives: [\n {\n name: \"loading\",\n rawName: \"v-loading\",\n value: _vm.transferParam.loading,\n expression: \"transferParam.loading\",\n },\n ],\n ref: \"wechatJsApiForm\",\n attrs: {\n model: _vm.form,\n rules: _vm.rules,\n size: \"medium\",\n \"label-width\": \"100px\",\n },\n },\n [\n _c(\n \"el-form-item\",\n {\n attrs: {\n \"label-width\": \"180px\",\n label: \"渠道费率\",\n prop: \"feeRate\",\n },\n },\n [\n _c(\n \"el-input\",\n {\n style: { width: \"100%\" },\n attrs: { placeholder: \"请输入渠道费率\", clearable: \"\" },\n model: {\n value: _vm.form.feeRate,\n callback: function ($$v) {\n _vm.$set(_vm.form, \"feeRate\", $$v)\n },\n expression: \"form.feeRate\",\n },\n },\n [_c(\"template\", { slot: \"append\" }, [_vm._v(\"%\")])],\n 2\n ),\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n {\n attrs: {\n \"label-width\": \"180px\",\n label: \"公众号APPID\",\n prop: \"weChatConfig.appId\",\n },\n },\n [\n _c(\"el-input\", {\n style: { width: \"100%\" },\n attrs: { placeholder: \"请输入公众号APPID\", clearable: \"\" },\n model: {\n value: _vm.form.weChatConfig.appId,\n callback: function ($$v) {\n _vm.$set(_vm.form.weChatConfig, \"appId\", $$v)\n },\n expression: \"form.weChatConfig.appId\",\n },\n }),\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n {\n attrs: {\n \"label-width\": \"180px\",\n label: \"商户号\",\n prop: \"weChatConfig.mchId\",\n },\n },\n [\n _c(\"el-input\", {\n style: { width: \"100%\" },\n model: {\n value: _vm.form.weChatConfig.mchId,\n callback: function ($$v) {\n _vm.$set(_vm.form.weChatConfig, \"mchId\", $$v)\n },\n expression: \"form.weChatConfig.mchId\",\n },\n }),\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n {\n attrs: {\n \"label-width\": \"180px\",\n label: \"渠道状态\",\n prop: \"status\",\n },\n },\n [\n _c(\n \"el-radio-group\",\n {\n attrs: { size: \"medium\" },\n model: {\n value: _vm.form.status,\n callback: function ($$v) {\n _vm.$set(_vm.form, \"status\", $$v)\n },\n expression: \"form.status\",\n },\n },\n _vm._l(_vm.statusDictDatas, function (dict) {\n return _c(\n \"el-radio\",\n {\n key: parseInt(dict.value),\n attrs: { label: parseInt(dict.value) },\n },\n [_vm._v(\" \" + _vm._s(dict.label) + \" \")]\n )\n }),\n 1\n ),\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n {\n attrs: {\n \"label-width\": \"180px\",\n label: \"API 版本\",\n prop: \"weChatConfig.apiVersion\",\n },\n },\n [\n _c(\n \"el-radio-group\",\n {\n attrs: { size: \"medium\" },\n model: {\n value: _vm.form.weChatConfig.apiVersion,\n callback: function ($$v) {\n _vm.$set(_vm.form.weChatConfig, \"apiVersion\", $$v)\n },\n expression: \"form.weChatConfig.apiVersion\",\n },\n },\n _vm._l(_vm.versionDictDatas, function (dict) {\n return _c(\n \"el-radio\",\n { key: dict.value, attrs: { label: dict.value } },\n [_vm._v(\" \" + _vm._s(dict.label) + \" \")]\n )\n }),\n 1\n ),\n ],\n 1\n ),\n _vm.form.weChatConfig.apiVersion === \"v2\"\n ? _c(\n \"el-form-item\",\n {\n attrs: {\n \"label-width\": \"180px\",\n label: \"商户密钥\",\n prop: \"weChatConfig.mchKey\",\n },\n },\n [\n _c(\"el-input\", {\n style: { width: \"100%\" },\n attrs: {\n placeholder: \"请输入商户密钥\",\n clearable: \"\",\n type: \"textarea\",\n autosize: { minRows: 8, maxRows: 8 },\n },\n model: {\n value: _vm.form.weChatConfig.mchKey,\n callback: function ($$v) {\n _vm.$set(_vm.form.weChatConfig, \"mchKey\", $$v)\n },\n expression: \"form.weChatConfig.mchKey\",\n },\n }),\n ],\n 1\n )\n : _vm._e(),\n _vm.form.weChatConfig.apiVersion === \"v3\"\n ? _c(\n \"div\",\n [\n _c(\n \"el-form-item\",\n {\n attrs: {\n \"label-width\": \"180px\",\n label: \"API V3密钥\",\n prop: \"weChatConfig.apiV3Key\",\n },\n },\n [\n _c(\"el-input\", {\n style: { width: \"100%\" },\n attrs: {\n placeholder: \"请输入API V3密钥\",\n clearable: \"\",\n type: \"textarea\",\n autosize: { minRows: 8, maxRows: 8 },\n },\n model: {\n value: _vm.form.weChatConfig.apiV3Key,\n callback: function ($$v) {\n _vm.$set(_vm.form.weChatConfig, \"apiV3Key\", $$v)\n },\n expression: \"form.weChatConfig.apiV3Key\",\n },\n }),\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n {\n attrs: {\n \"label-width\": \"180px\",\n label: \"apiclient_key.perm证书\",\n prop: \"weChatConfig.privateKeyContent\",\n },\n },\n [\n _c(\"el-input\", {\n style: { width: \"100%\" },\n attrs: {\n type: \"textarea\",\n placeholder: \"请上传apiclient_key.perm证书\",\n readonly: \"\",\n autosize: { minRows: 8, maxRows: 8 },\n },\n model: {\n value: _vm.form.weChatConfig.privateKeyContent,\n callback: function ($$v) {\n _vm.$set(\n _vm.form.weChatConfig,\n \"privateKeyContent\",\n $$v\n )\n },\n expression: \"form.weChatConfig.privateKeyContent\",\n },\n }),\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n {\n attrs: {\n \"label-width\": \"180px\",\n label: \"\",\n prop: \"privateKeyContentFile\",\n },\n },\n [\n _c(\n \"el-upload\",\n {\n ref: \"privateKeyContentFile\",\n attrs: {\n limit: 1,\n accept: _vm.fileAccept,\n headers: _vm.header,\n action: \"\",\n \"before-upload\": _vm.pemFileBeforeUpload,\n \"http-request\": _vm.privateKeyUpload,\n },\n },\n [\n _c(\n \"el-button\",\n {\n attrs: {\n size: \"small\",\n type: \"primary\",\n icon: \"el-icon-upload\",\n },\n },\n [_vm._v(\"点击上传\")]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n {\n attrs: {\n \"label-width\": \"180px\",\n label: \"apiclient_cert.perm证书\",\n prop: \"weChatConfig.privateCertContent\",\n },\n },\n [\n _c(\"el-input\", {\n style: { width: \"100%\" },\n attrs: {\n type: \"textarea\",\n placeholder: \"请上传apiclient_cert.perm证书\",\n readonly: \"\",\n autosize: { minRows: 8, maxRows: 8 },\n },\n model: {\n value: _vm.form.weChatConfig.privateCertContent,\n callback: function ($$v) {\n _vm.$set(\n _vm.form.weChatConfig,\n \"privateCertContent\",\n $$v\n )\n },\n expression:\n \"form.weChatConfig.privateCertContent\",\n },\n }),\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n {\n attrs: {\n \"label-width\": \"180px\",\n label: \"\",\n prop: \"privateCertContentFile\",\n },\n },\n [\n _c(\n \"el-upload\",\n {\n ref: \"privateCertContentFile\",\n attrs: {\n limit: 1,\n accept: _vm.fileAccept,\n headers: _vm.header,\n action: \"\",\n \"before-upload\": _vm.pemFileBeforeUpload,\n \"http-request\": _vm.privateCertUpload,\n },\n },\n [\n _c(\n \"el-button\",\n {\n attrs: {\n size: \"small\",\n type: \"primary\",\n icon: \"el-icon-upload\",\n },\n },\n [_vm._v(\"点击上传\")]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n )\n : _vm._e(),\n _c(\n \"el-form-item\",\n {\n attrs: {\n \"label-width\": \"180px\",\n label: \"备注\",\n prop: \"remark\",\n },\n },\n [\n _c(\"el-input\", {\n style: { width: \"100%\" },\n model: {\n value: _vm.form.remark,\n callback: function ($$v) {\n _vm.$set(_vm.form, \"remark\", $$v)\n },\n expression: \"form.remark\",\n },\n }),\n ],\n 1\n ),\n ],\n 1\n ),\n _c(\n \"div\",\n {\n staticClass: \"dialog-footer\",\n attrs: { slot: \"footer\" },\n slot: \"footer\",\n },\n [\n _c(\"el-button\", { on: { click: _vm.close } }, [_vm._v(\"取消\")]),\n _c(\n \"el-button\",\n {\n attrs: { type: \"primary\" },\n on: { click: _vm.handleConfirm },\n },\n [_vm._v(\"确定\")]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/views/pay/app/components/wechatChannelForm.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%228e17e5e2-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
1308 1308
1309 /***/ }), 1309 /***/ }),
1310 1310
@@ -1484,7 +1484,7 @@ eval(&quot;__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * @@ -1484,7 +1484,7 @@ eval(&quot;__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
1484 /***/ (function(module, __webpack_exports__, __webpack_require__) { 1484 /***/ (function(module, __webpack_exports__, __webpack_require__) {
1485 1485
1486 "use strict"; 1486 "use strict";
1487 -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"app-container\" },\n [\n _c(\n \"el-form\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.showSearch,\n expression: \"showSearch\",\n },\n ],\n ref: \"queryForm\",\n attrs: {\n model: _vm.queryParams,\n size: \"small\",\n inline: true,\n \"label-width\": \"68px\",\n },\n },\n [\n _c(\n \"el-form-item\",\n { attrs: { label: \"短信签名\", prop: \"signature\" } },\n [\n _c(\"el-input\", {\n attrs: { placeholder: \"请输入短信签名\", clearable: \"\" },\n nativeOn: {\n keyup: function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")\n ) {\n return null\n }\n return _vm.handleQuery($event)\n },\n },\n model: {\n value: _vm.queryParams.signature,\n callback: function ($$v) {\n _vm.$set(_vm.queryParams, \"signature\", $$v)\n },\n expression: \"queryParams.signature\",\n },\n }),\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n { attrs: { label: \"启用状态\", prop: \"status\" } },\n [\n _c(\n \"el-select\",\n {\n attrs: { placeholder: \"请选择启用状态\", clearable: \"\" },\n model: {\n value: _vm.queryParams.status,\n callback: function ($$v) {\n _vm.$set(_vm.queryParams, \"status\", $$v)\n },\n expression: \"queryParams.status\",\n },\n },\n _vm._l(\n this.getDictDatas(_vm.DICT_TYPE.COMMON_STATUS),\n function (dict) {\n return _c(\"el-option\", {\n key: dict.value,\n attrs: { label: dict.label, value: dict.value },\n })\n }\n ),\n 1\n ),\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n { attrs: { label: \"创建时间\" } },\n [\n _c(\"el-date-picker\", {\n staticStyle: { width: \"240px\" },\n attrs: {\n \"value-format\": \"yyyy-MM-dd\",\n type: \"daterange\",\n \"range-separator\": \"-\",\n \"start-placeholder\": \"开始日期\",\n \"end-placeholder\": \"结束日期\",\n },\n model: {\n value: _vm.dateRangeCreateTime,\n callback: function ($$v) {\n _vm.dateRangeCreateTime = $$v\n },\n expression: \"dateRangeCreateTime\",\n },\n }),\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n [\n _c(\n \"el-button\",\n {\n attrs: { type: \"primary\", icon: \"el-icon-search\" },\n on: { click: _vm.handleQuery },\n },\n [_vm._v(\"搜索\")]\n ),\n _c(\n \"el-button\",\n {\n attrs: { icon: \"el-icon-refresh\" },\n on: { click: _vm.resetQuery },\n },\n [_vm._v(\"重置\")]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _c(\n \"el-row\",\n { staticClass: \"mb8\", attrs: { gutter: 10 } },\n [\n _c(\n \"el-col\",\n { attrs: { span: 1.5 } },\n [\n _c(\n \"el-button\",\n {\n directives: [\n {\n name: \"hasPermi\",\n rawName: \"v-hasPermi\",\n value: [\"system:sms-channel:create\"],\n expression: \"['system:sms-channel:create']\",\n },\n ],\n attrs: {\n type: \"primary\",\n plain: \"\",\n icon: \"el-icon-plus\",\n size: \"mini\",\n },\n on: { click: _vm.handleAdd },\n },\n [_vm._v(\"新增\")]\n ),\n ],\n 1\n ),\n _c(\"right-toolbar\", {\n attrs: { showSearch: _vm.showSearch },\n on: {\n \"update:showSearch\": function ($event) {\n _vm.showSearch = $event\n },\n \"update:show-search\": function ($event) {\n _vm.showSearch = $event\n },\n queryTable: _vm.getList,\n },\n }),\n ],\n 1\n ),\n _c(\n \"el-table\",\n {\n directives: [\n {\n name: \"loading\",\n rawName: \"v-loading\",\n value: _vm.loading,\n expression: \"loading\",\n },\n ],\n attrs: { data: _vm.list },\n },\n [\n _c(\"el-table-column\", {\n attrs: { label: \"编号\", align: \"center\", prop: \"id\" },\n }),\n _c(\"el-table-column\", {\n attrs: { label: \"短信签名\", align: \"center\", prop: \"signature\" },\n }),\n _c(\"el-table-column\", {\n attrs: { label: \"渠道编码\", align: \"center\", prop: \"code\" },\n scopedSlots: _vm._u([\n {\n key: \"default\",\n fn: function (scope) {\n return [\n _c(\"dict-tag\", {\n attrs: {\n type: _vm.DICT_TYPE.SYSTEM_SMS_CHANNEL_CODE,\n value: scope.row.code,\n },\n }),\n ]\n },\n },\n ]),\n }),\n _vm._v(\"> \"),\n _c(\"el-table-column\", {\n attrs: { label: \"启用状态\", align: \"center\", prop: \"status\" },\n scopedSlots: _vm._u([\n {\n key: \"default\",\n fn: function (scope) {\n return [\n _c(\"dict-tag\", {\n attrs: {\n type: _vm.DICT_TYPE.COMMON_STATUS,\n value: scope.row.status,\n },\n }),\n ]\n },\n },\n ]),\n }),\n _vm._v(\"> \"),\n _c(\"el-table-column\", {\n attrs: { label: \"备注\", align: \"center\", prop: \"remark\" },\n }),\n _c(\"el-table-column\", {\n attrs: {\n label: \"短信 API 的账号\",\n align: \"center\",\n prop: \"apiKey\",\n },\n }),\n _c(\"el-table-column\", {\n attrs: {\n label: \"短信 API 的秘钥\",\n align: \"center\",\n prop: \"apiSecret\",\n },\n }),\n _c(\"el-table-column\", {\n attrs: {\n label: \"短信发送回调 URL\",\n align: \"center\",\n prop: \"callbackUrl\",\n },\n }),\n _c(\"el-table-column\", {\n attrs: {\n label: \"创建时间\",\n align: \"center\",\n prop: \"createTime\",\n width: \"180\",\n },\n scopedSlots: _vm._u([\n {\n key: \"default\",\n fn: function (scope) {\n return [\n _c(\"span\", [\n _vm._v(_vm._s(_vm.parseTime(scope.row.createTime))),\n ]),\n ]\n },\n },\n ]),\n }),\n _c(\"el-table-column\", {\n attrs: {\n label: \"操作\",\n align: \"center\",\n \"class-name\": \"small-padding fixed-width\",\n },\n scopedSlots: _vm._u([\n {\n key: \"default\",\n fn: function (scope) {\n return [\n _c(\n \"el-button\",\n {\n directives: [\n {\n name: \"hasPermi\",\n rawName: \"v-hasPermi\",\n value: [\"system:sms-channel:update\"],\n expression: \"['system:sms-channel:update']\",\n },\n ],\n attrs: {\n size: \"mini\",\n type: \"text\",\n icon: \"el-icon-edit\",\n },\n on: {\n click: function ($event) {\n return _vm.handleUpdate(scope.row)\n },\n },\n },\n [_vm._v(\"修改\")]\n ),\n _c(\n \"el-button\",\n {\n directives: [\n {\n name: \"hasPermi\",\n rawName: \"v-hasPermi\",\n value: [\"system:sms-channel:delete\"],\n expression: \"['system:sms-channel:delete']\",\n },\n ],\n attrs: {\n size: \"mini\",\n type: \"text\",\n icon: \"el-icon-delete\",\n },\n on: {\n click: function ($event) {\n return _vm.handleDelete(scope.row)\n },\n },\n },\n [_vm._v(\"删除\")]\n ),\n ]\n },\n },\n ]),\n }),\n ],\n 1\n ),\n _c(\"pagination\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.total > 0,\n expression: \"total > 0\",\n },\n ],\n attrs: {\n total: _vm.total,\n page: _vm.queryParams.pageNo,\n limit: _vm.queryParams.pageSize,\n },\n on: {\n \"update:page\": function ($event) {\n return _vm.$set(_vm.queryParams, \"pageNo\", $event)\n },\n \"update:limit\": function ($event) {\n return _vm.$set(_vm.queryParams, \"pageSize\", $event)\n },\n pagination: _vm.getList,\n },\n }),\n _c(\n \"el-dialog\",\n {\n attrs: {\n title: _vm.title,\n visible: _vm.open,\n width: \"500px\",\n \"append-to-body\": \"\",\n },\n on: {\n \"update:visible\": function ($event) {\n _vm.open = $event\n },\n },\n },\n [\n _c(\n \"el-form\",\n {\n ref: \"form\",\n attrs: {\n model: _vm.form,\n rules: _vm.rules,\n \"label-width\": \"80px\",\n },\n },\n [\n _c(\n \"el-form-item\",\n { attrs: { label: \"短信签名\", prop: \"signature\" } },\n [\n _c(\"el-input\", {\n attrs: { placeholder: \"请输入短信签名\" },\n model: {\n value: _vm.form.signature,\n callback: function ($$v) {\n _vm.$set(_vm.form, \"signature\", $$v)\n },\n expression: \"form.signature\",\n },\n }),\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n { attrs: { label: \"渠道编码\", prop: \"code\" } },\n [\n _c(\"el-input\", {\n attrs: { placeholder: \"请输入渠道编码\" },\n model: {\n value: _vm.form.code,\n callback: function ($$v) {\n _vm.$set(_vm.form, \"code\", $$v)\n },\n expression: \"form.code\",\n },\n }),\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n { attrs: { label: \"启用状态\" } },\n [\n _c(\n \"el-radio-group\",\n {\n model: {\n value: _vm.form.status,\n callback: function ($$v) {\n _vm.$set(_vm.form, \"status\", $$v)\n },\n expression: \"form.status\",\n },\n },\n _vm._l(\n this.getDictDatas(_vm.DICT_TYPE.COMMON_STATUS),\n function (dict) {\n return _c(\n \"el-radio\",\n {\n key: dict.value,\n attrs: { label: parseInt(dict.value) },\n },\n [_vm._v(_vm._s(dict.label))]\n )\n }\n ),\n 1\n ),\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n { attrs: { label: \"备注\", prop: \"remark\" } },\n [\n _c(\"el-input\", {\n attrs: { placeholder: \"请输入备注\" },\n model: {\n value: _vm.form.remark,\n callback: function ($$v) {\n _vm.$set(_vm.form, \"remark\", $$v)\n },\n expression: \"form.remark\",\n },\n }),\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n { attrs: { label: \"短信 API 的账号\", prop: \"apiKey\" } },\n [\n _c(\"el-input\", {\n attrs: { placeholder: \"请输入短信 API 的账号\" },\n model: {\n value: _vm.form.apiKey,\n callback: function ($$v) {\n _vm.$set(_vm.form, \"apiKey\", $$v)\n },\n expression: \"form.apiKey\",\n },\n }),\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n { attrs: { label: \"短信 API 的秘钥\", prop: \"apiSecret\" } },\n [\n _c(\"el-input\", {\n attrs: { placeholder: \"请输入短信 API 的秘钥\" },\n model: {\n value: _vm.form.apiSecret,\n callback: function ($$v) {\n _vm.$set(_vm.form, \"apiSecret\", $$v)\n },\n expression: \"form.apiSecret\",\n },\n }),\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n { attrs: { label: \"短信发送回调 URL\", prop: \"callbackUrl\" } },\n [\n _c(\"el-input\", {\n attrs: { placeholder: \"请输入短信发送回调 URL\" },\n model: {\n value: _vm.form.callbackUrl,\n callback: function ($$v) {\n _vm.$set(_vm.form, \"callbackUrl\", $$v)\n },\n expression: \"form.callbackUrl\",\n },\n }),\n ],\n 1\n ),\n ],\n 1\n ),\n _c(\n \"div\",\n {\n staticClass: \"dialog-footer\",\n attrs: { slot: \"footer\" },\n slot: \"footer\",\n },\n [\n _c(\n \"el-button\",\n { attrs: { type: \"primary\" }, on: { click: _vm.submitForm } },\n [_vm._v(\"确 定\")]\n ),\n _c(\"el-button\", { on: { click: _vm.cancel } }, [_vm._v(\"取 消\")]),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/views/system/sms/smsChannel.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%228e17e5e2-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); 1487 +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { staticClass: \"app-container\" },\n [\n _c(\n \"el-form\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.showSearch,\n expression: \"showSearch\",\n },\n ],\n ref: \"queryForm\",\n attrs: {\n model: _vm.queryParams,\n size: \"small\",\n inline: true,\n \"label-width\": \"68px\",\n },\n },\n [\n _c(\n \"el-form-item\",\n { attrs: { label: \"短信签名\", prop: \"signature\" } },\n [\n _c(\"el-input\", {\n attrs: { placeholder: \"请输入短信签名\", clearable: \"\" },\n nativeOn: {\n keyup: function ($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")\n ) {\n return null\n }\n return _vm.handleQuery($event)\n },\n },\n model: {\n value: _vm.queryParams.signature,\n callback: function ($$v) {\n _vm.$set(_vm.queryParams, \"signature\", $$v)\n },\n expression: \"queryParams.signature\",\n },\n }),\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n { attrs: { label: \"启用状态\", prop: \"status\" } },\n [\n _c(\n \"el-select\",\n {\n attrs: { placeholder: \"请选择启用状态\", clearable: \"\" },\n model: {\n value: _vm.queryParams.status,\n callback: function ($$v) {\n _vm.$set(_vm.queryParams, \"status\", $$v)\n },\n expression: \"queryParams.status\",\n },\n },\n _vm._l(\n this.getDictDatas(_vm.DICT_TYPE.COMMON_STATUS),\n function (dict) {\n return _c(\"el-option\", {\n key: dict.value,\n attrs: { label: dict.label, value: dict.value },\n })\n }\n ),\n 1\n ),\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n { attrs: { label: \"创建时间\" } },\n [\n _c(\"el-date-picker\", {\n staticStyle: { width: \"240px\" },\n attrs: {\n \"value-format\": \"yyyy-MM-dd\",\n type: \"daterange\",\n \"range-separator\": \"-\",\n \"start-placeholder\": \"开始日期\",\n \"end-placeholder\": \"结束日期\",\n },\n model: {\n value: _vm.dateRangeCreateTime,\n callback: function ($$v) {\n _vm.dateRangeCreateTime = $$v\n },\n expression: \"dateRangeCreateTime\",\n },\n }),\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n [\n _c(\n \"el-button\",\n {\n attrs: { type: \"primary\", icon: \"el-icon-search\" },\n on: { click: _vm.handleQuery },\n },\n [_vm._v(\"搜索\")]\n ),\n _c(\n \"el-button\",\n {\n attrs: { icon: \"el-icon-refresh\" },\n on: { click: _vm.resetQuery },\n },\n [_vm._v(\"重置\")]\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _c(\n \"el-row\",\n { staticClass: \"mb8\", attrs: { gutter: 10 } },\n [\n _c(\n \"el-col\",\n { attrs: { span: 1.5 } },\n [\n _c(\n \"el-button\",\n {\n directives: [\n {\n name: \"hasPermi\",\n rawName: \"v-hasPermi\",\n value: [\"system:sms-channel:create\"],\n expression: \"['system:sms-channel:create']\",\n },\n ],\n attrs: {\n type: \"primary\",\n plain: \"\",\n icon: \"el-icon-plus\",\n size: \"mini\",\n },\n on: { click: _vm.handleAdd },\n },\n [_vm._v(\"新增\")]\n ),\n ],\n 1\n ),\n _c(\"right-toolbar\", {\n attrs: { showSearch: _vm.showSearch },\n on: {\n \"update:showSearch\": function ($event) {\n _vm.showSearch = $event\n },\n \"update:show-search\": function ($event) {\n _vm.showSearch = $event\n },\n queryTable: _vm.getList,\n },\n }),\n ],\n 1\n ),\n _c(\n \"el-table\",\n {\n directives: [\n {\n name: \"loading\",\n rawName: \"v-loading\",\n value: _vm.loading,\n expression: \"loading\",\n },\n ],\n attrs: { data: _vm.list },\n },\n [\n _c(\"el-table-column\", {\n attrs: { label: \"编号\", align: \"center\", prop: \"id\" },\n }),\n _c(\"el-table-column\", {\n attrs: { label: \"短信签名\", align: \"center\", prop: \"signature\" },\n }),\n _c(\"el-table-column\", {\n attrs: { label: \"渠道编码\", align: \"center\", prop: \"code\" },\n scopedSlots: _vm._u([\n {\n key: \"default\",\n fn: function (scope) {\n return [\n _c(\"dict-tag\", {\n attrs: {\n type: _vm.DICT_TYPE.SYSTEM_SMS_CHANNEL_CODE,\n value: scope.row.code,\n },\n }),\n ]\n },\n },\n ]),\n }),\n _vm._v(\"> \"),\n _c(\"el-table-column\", {\n attrs: { label: \"启用状态\", align: \"center\", prop: \"status\" },\n scopedSlots: _vm._u([\n {\n key: \"default\",\n fn: function (scope) {\n return [\n _c(\"dict-tag\", {\n attrs: {\n type: _vm.DICT_TYPE.COMMON_STATUS,\n value: scope.row.status,\n },\n }),\n ]\n },\n },\n ]),\n }),\n _vm._v(\"> \"),\n _c(\"el-table-column\", {\n attrs: { label: \"备注\", align: \"center\", prop: \"remark\" },\n }),\n _c(\"el-table-column\", {\n attrs: {\n label: \"短信 API 的账号\",\n align: \"center\",\n prop: \"apiKey\",\n },\n }),\n _c(\"el-table-column\", {\n attrs: {\n label: \"短信 API 的密钥\",\n align: \"center\",\n prop: \"apiSecret\",\n },\n }),\n _c(\"el-table-column\", {\n attrs: {\n label: \"短信发送回调 URL\",\n align: \"center\",\n prop: \"callbackUrl\",\n },\n }),\n _c(\"el-table-column\", {\n attrs: {\n label: \"创建时间\",\n align: \"center\",\n prop: \"createTime\",\n width: \"180\",\n },\n scopedSlots: _vm._u([\n {\n key: \"default\",\n fn: function (scope) {\n return [\n _c(\"span\", [\n _vm._v(_vm._s(_vm.parseTime(scope.row.createTime))),\n ]),\n ]\n },\n },\n ]),\n }),\n _c(\"el-table-column\", {\n attrs: {\n label: \"操作\",\n align: \"center\",\n \"class-name\": \"small-padding fixed-width\",\n },\n scopedSlots: _vm._u([\n {\n key: \"default\",\n fn: function (scope) {\n return [\n _c(\n \"el-button\",\n {\n directives: [\n {\n name: \"hasPermi\",\n rawName: \"v-hasPermi\",\n value: [\"system:sms-channel:update\"],\n expression: \"['system:sms-channel:update']\",\n },\n ],\n attrs: {\n size: \"mini\",\n type: \"text\",\n icon: \"el-icon-edit\",\n },\n on: {\n click: function ($event) {\n return _vm.handleUpdate(scope.row)\n },\n },\n },\n [_vm._v(\"修改\")]\n ),\n _c(\n \"el-button\",\n {\n directives: [\n {\n name: \"hasPermi\",\n rawName: \"v-hasPermi\",\n value: [\"system:sms-channel:delete\"],\n expression: \"['system:sms-channel:delete']\",\n },\n ],\n attrs: {\n size: \"mini\",\n type: \"text\",\n icon: \"el-icon-delete\",\n },\n on: {\n click: function ($event) {\n return _vm.handleDelete(scope.row)\n },\n },\n },\n [_vm._v(\"删除\")]\n ),\n ]\n },\n },\n ]),\n }),\n ],\n 1\n ),\n _c(\"pagination\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.total > 0,\n expression: \"total > 0\",\n },\n ],\n attrs: {\n total: _vm.total,\n page: _vm.queryParams.pageNo,\n limit: _vm.queryParams.pageSize,\n },\n on: {\n \"update:page\": function ($event) {\n return _vm.$set(_vm.queryParams, \"pageNo\", $event)\n },\n \"update:limit\": function ($event) {\n return _vm.$set(_vm.queryParams, \"pageSize\", $event)\n },\n pagination: _vm.getList,\n },\n }),\n _c(\n \"el-dialog\",\n {\n attrs: {\n title: _vm.title,\n visible: _vm.open,\n width: \"500px\",\n \"append-to-body\": \"\",\n },\n on: {\n \"update:visible\": function ($event) {\n _vm.open = $event\n },\n },\n },\n [\n _c(\n \"el-form\",\n {\n ref: \"form\",\n attrs: {\n model: _vm.form,\n rules: _vm.rules,\n \"label-width\": \"80px\",\n },\n },\n [\n _c(\n \"el-form-item\",\n { attrs: { label: \"短信签名\", prop: \"signature\" } },\n [\n _c(\"el-input\", {\n attrs: { placeholder: \"请输入短信签名\" },\n model: {\n value: _vm.form.signature,\n callback: function ($$v) {\n _vm.$set(_vm.form, \"signature\", $$v)\n },\n expression: \"form.signature\",\n },\n }),\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n { attrs: { label: \"渠道编码\", prop: \"code\" } },\n [\n _c(\"el-input\", {\n attrs: { placeholder: \"请输入渠道编码\" },\n model: {\n value: _vm.form.code,\n callback: function ($$v) {\n _vm.$set(_vm.form, \"code\", $$v)\n },\n expression: \"form.code\",\n },\n }),\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n { attrs: { label: \"启用状态\" } },\n [\n _c(\n \"el-radio-group\",\n {\n model: {\n value: _vm.form.status,\n callback: function ($$v) {\n _vm.$set(_vm.form, \"status\", $$v)\n },\n expression: \"form.status\",\n },\n },\n _vm._l(\n this.getDictDatas(_vm.DICT_TYPE.COMMON_STATUS),\n function (dict) {\n return _c(\n \"el-radio\",\n {\n key: dict.value,\n attrs: { label: parseInt(dict.value) },\n },\n [_vm._v(_vm._s(dict.label))]\n )\n }\n ),\n 1\n ),\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n { attrs: { label: \"备注\", prop: \"remark\" } },\n [\n _c(\"el-input\", {\n attrs: { placeholder: \"请输入备注\" },\n model: {\n value: _vm.form.remark,\n callback: function ($$v) {\n _vm.$set(_vm.form, \"remark\", $$v)\n },\n expression: \"form.remark\",\n },\n }),\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n { attrs: { label: \"短信 API 的账号\", prop: \"apiKey\" } },\n [\n _c(\"el-input\", {\n attrs: { placeholder: \"请输入短信 API 的账号\" },\n model: {\n value: _vm.form.apiKey,\n callback: function ($$v) {\n _vm.$set(_vm.form, \"apiKey\", $$v)\n },\n expression: \"form.apiKey\",\n },\n }),\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n { attrs: { label: \"短信 API 的密钥\", prop: \"apiSecret\" } },\n [\n _c(\"el-input\", {\n attrs: { placeholder: \"请输入短信 API 的密钥\" },\n model: {\n value: _vm.form.apiSecret,\n callback: function ($$v) {\n _vm.$set(_vm.form, \"apiSecret\", $$v)\n },\n expression: \"form.apiSecret\",\n },\n }),\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n { attrs: { label: \"短信发送回调 URL\", prop: \"callbackUrl\" } },\n [\n _c(\"el-input\", {\n attrs: { placeholder: \"请输入短信发送回调 URL\" },\n model: {\n value: _vm.form.callbackUrl,\n callback: function ($$v) {\n _vm.$set(_vm.form, \"callbackUrl\", $$v)\n },\n expression: \"form.callbackUrl\",\n },\n }),\n ],\n 1\n ),\n ],\n 1\n ),\n _c(\n \"div\",\n {\n staticClass: \"dialog-footer\",\n attrs: { slot: \"footer\" },\n slot: \"footer\",\n },\n [\n _c(\n \"el-button\",\n { attrs: { type: \"primary\" }, on: { click: _vm.submitForm } },\n [_vm._v(\"确 定\")]\n ),\n _c(\"el-button\", { on: { click: _vm.cancel } }, [_vm._v(\"取 消\")]),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/views/system/sms/smsChannel.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%228e17e5e2-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
1488 1488
1489 /***/ }), 1489 /***/ }),
1490 1490
@@ -4707,4 +4707,4 @@ eval(&quot;__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod @@ -4707,4 +4707,4 @@ eval(&quot;__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod
4707 4707
4708 /***/ }) 4708 /***/ })
4709 4709
4710 -}]);  
4711 \ No newline at end of file 4710 \ No newline at end of file
  4711 +}]);
yudao-ui-admin/src/views/pay/app/components/wechatChannelForm.vue
@@ -29,14 +29,14 @@ @@ -29,14 +29,14 @@
29 </el-radio> 29 </el-radio>
30 </el-radio-group> 30 </el-radio-group>
31 </el-form-item> 31 </el-form-item>
32 - <el-form-item label-width="180px" label="商户秘钥" prop="weChatConfig.mchKey" 32 + <el-form-item label-width="180px" label="商户密钥" prop="weChatConfig.mchKey"
33 v-if="form.weChatConfig.apiVersion === 'v2'"> 33 v-if="form.weChatConfig.apiVersion === 'v2'">
34 - <el-input v-model="form.weChatConfig.mchKey" placeholder="请输入商户秘钥" clearable 34 + <el-input v-model="form.weChatConfig.mchKey" placeholder="请输入商户密钥" clearable
35 :style="{width: '100%'}" type="textarea" :autosize="{minRows: 8, maxRows: 8}"></el-input> 35 :style="{width: '100%'}" type="textarea" :autosize="{minRows: 8, maxRows: 8}"></el-input>
36 </el-form-item> 36 </el-form-item>
37 <div v-if="form.weChatConfig.apiVersion === 'v3'"> 37 <div v-if="form.weChatConfig.apiVersion === 'v3'">
38 - <el-form-item label-width="180px" label="API V3秘钥" prop="weChatConfig.apiV3Key">  
39 - <el-input v-model="form.weChatConfig.apiV3Key" placeholder="请输入API V3秘钥" clearable 38 + <el-form-item label-width="180px" label="API V3密钥" prop="weChatConfig.apiV3Key">
  39 + <el-input v-model="form.weChatConfig.apiV3Key" placeholder="请输入API V3密钥" clearable
40 :style="{width: '100%'}" type="textarea" :autosize="{minRows: 8, maxRows: 8}"></el-input> 40 :style="{width: '100%'}" type="textarea" :autosize="{minRows: 8, maxRows: 8}"></el-input>
41 </el-form-item> 41 </el-form-item>
42 <el-form-item label-width="180px" label="apiclient_key.perm证书" prop="weChatConfig.privateKeyContent"> 42 <el-form-item label-width="180px" label="apiclient_key.perm证书" prop="weChatConfig.privateKeyContent">
@@ -164,7 +164,7 @@ export default { @@ -164,7 +164,7 @@ export default {
164 }], 164 }],
165 'weChatConfig.mchKey': [{ 165 'weChatConfig.mchKey': [{
166 required: true, 166 required: true,
167 - message: '请输入商户秘钥', 167 + message: '请输入商户密钥',
168 trigger: 'blur' 168 trigger: 'blur'
169 }], 169 }],
170 'weChatConfig.privateKeyContent': [{ 170 'weChatConfig.privateKeyContent': [{
@@ -179,7 +179,7 @@ export default { @@ -179,7 +179,7 @@ export default {
179 }], 179 }],
180 'weChatConfig.apiV3Key': [{ 180 'weChatConfig.apiV3Key': [{
181 required: true, 181 required: true,
182 - message: '请上传apiV3秘钥值', 182 + message: '请上传apiV3密钥值',
183 trigger: 'blur' 183 trigger: 'blur'
184 }], 184 }],
185 }, 185 },
yudao-ui-admin/src/views/system/sms/smsChannel.vue
@@ -39,7 +39,7 @@ @@ -39,7 +39,7 @@
39 <template slot-scope="scope"> 39 <template slot-scope="scope">
40 <dict-tag :type="DICT_TYPE.SYSTEM_SMS_CHANNEL_CODE" :value="scope.row.code"/> 40 <dict-tag :type="DICT_TYPE.SYSTEM_SMS_CHANNEL_CODE" :value="scope.row.code"/>
41 </template> 41 </template>
42 - </el-table-column>> 42 + </el-table-column>
43 <el-table-column label="启用状态" align="center" prop="status"> 43 <el-table-column label="启用状态" align="center" prop="status">
44 <template slot-scope="scope"> 44 <template slot-scope="scope">
45 <dict-tag :type="DICT_TYPE.COMMON_STATUS" :value="scope.row.status"/> 45 <dict-tag :type="DICT_TYPE.COMMON_STATUS" :value="scope.row.status"/>
@@ -47,7 +47,7 @@ @@ -47,7 +47,7 @@
47 </el-table-column>> 47 </el-table-column>>
48 <el-table-column label="备注" align="center" prop="remark" /> 48 <el-table-column label="备注" align="center" prop="remark" />
49 <el-table-column label="短信 API 的账号" align="center" prop="apiKey" /> 49 <el-table-column label="短信 API 的账号" align="center" prop="apiKey" />
50 - <el-table-column label="短信 API 的秘钥" align="center" prop="apiSecret" /> 50 + <el-table-column label="短信 API 的密钥" align="center" prop="apiSecret" />
51 <el-table-column label="短信发送回调 URL" align="center" prop="callbackUrl" /> 51 <el-table-column label="短信发送回调 URL" align="center" prop="callbackUrl" />
52 <el-table-column label="创建时间" align="center" prop="createTime" width="180"> 52 <el-table-column label="创建时间" align="center" prop="createTime" width="180">
53 <template slot-scope="scope"> 53 <template slot-scope="scope">
@@ -68,13 +68,16 @@ @@ -68,13 +68,16 @@
68 @pagination="getList"/> 68 @pagination="getList"/>
69 69
70 <!-- 对话框(添加 / 修改) --> 70 <!-- 对话框(添加 / 修改) -->
71 - <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>  
72 - <el-form ref="form" :model="form" :rules="rules" label-width="80px"> 71 + <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
  72 + <el-form ref="form" :model="form" :rules="rules" label-width="130px">
73 <el-form-item label="短信签名" prop="signature"> 73 <el-form-item label="短信签名" prop="signature">
74 <el-input v-model="form.signature" placeholder="请输入短信签名" /> 74 <el-input v-model="form.signature" placeholder="请输入短信签名" />
75 </el-form-item> 75 </el-form-item>
76 <el-form-item label="渠道编码" prop="code"> 76 <el-form-item label="渠道编码" prop="code">
77 - <el-input v-model="form.code" placeholder="请输入渠道编码" /> 77 + <el-select v-model="form.code" placeholder="请选择渠道编码" clearable>
  78 + <el-option v-for="dict in this.getDictDatas(DICT_TYPE.SYSTEM_SMS_CHANNEL_CODE)"
  79 + :key="dict.value" :label="dict.label" :value="dict.value"/>
  80 + </el-select>
78 </el-form-item> 81 </el-form-item>
79 <el-form-item label="启用状态"> 82 <el-form-item label="启用状态">
80 <el-radio-group v-model="form.status"> 83 <el-radio-group v-model="form.status">
@@ -88,8 +91,8 @@ @@ -88,8 +91,8 @@
88 <el-form-item label="短信 API 的账号" prop="apiKey"> 91 <el-form-item label="短信 API 的账号" prop="apiKey">
89 <el-input v-model="form.apiKey" placeholder="请输入短信 API 的账号" /> 92 <el-input v-model="form.apiKey" placeholder="请输入短信 API 的账号" />
90 </el-form-item> 93 </el-form-item>
91 - <el-form-item label="短信 API 的秘钥" prop="apiSecret">  
92 - <el-input v-model="form.apiSecret" placeholder="请输入短信 API 的秘钥" /> 94 + <el-form-item label="短信 API 的密钥" prop="apiSecret">
  95 + <el-input v-model="form.apiSecret" placeholder="请输入短信 API 的密钥" />
93 </el-form-item> 96 </el-form-item>
94 <el-form-item label="短信发送回调 URL" prop="callbackUrl"> 97 <el-form-item label="短信发送回调 URL" prop="callbackUrl">
95 <el-input v-model="form.callbackUrl" placeholder="请输入短信发送回调 URL" /> 98 <el-input v-model="form.callbackUrl" placeholder="请输入短信发送回调 URL" />