wupengfei
15 小时以前 0565894ebaf308d03e1dbfa38b0081cdfd4b79b6
feat: 短信
1个文件已删除
6个文件已修改
189 ■■■■ 已修改文件
src/constants/apiEnum.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/SmsAppService.ts 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/enterpriseWallet.ts 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/index.ts 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/sms.ts 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/typings.d.ts 100 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/System/SmsSettingManage.vue 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/constants/apiEnum.ts
@@ -21,6 +21,8 @@
  Wxmp = 20,
  /**H5登录 */
  H5 = 30,
  /**接口 */
  Api = 40,
}
/** 编号地址场景 */
@@ -369,6 +371,8 @@
  UserServerEnterpriseEmployee = 19,
  /**电子签 */
  ElectronSignServerElectronSign = 20,
  /**电子签 */
  ToolServerSms = 21,
}
/** 资源请求方式 */
src/services/api/SmsAppService.ts
File was deleted
src/services/api/enterpriseWallet.ts
@@ -330,3 +330,15 @@
    }
  );
}
/** 测试微信支付 POST /api/user/enterpriseWallet/testWeChatPay */
export async function testWeChatPay(body: API.TestWeChatPayCommand, options?: API.RequestConfig) {
  return request<boolean>('/api/user/enterpriseWallet/testWeChatPay', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
src/services/api/index.ts
@@ -2,7 +2,6 @@
/* eslint-disable */
// API 更新时间:
// API 唯一标识:
import * as SmsAppService from './SmsAppService';
import * as enterpriseEmployee from './enterpriseEmployee';
import * as user from './user';
import * as role from './role';
@@ -10,9 +9,8 @@
import * as task from './task';
import * as enterprise from './enterprise';
import * as resource from './resource';
import * as logRecords from './logRecords';
import * as dictionary from './dictionary';
import * as enterpriseWallet from './enterpriseWallet';
import * as dictionary from './dictionary';
import * as codeUrl from './codeUrl';
import * as electronSign from './electronSign';
import * as userResume from './userResume';
@@ -20,11 +18,11 @@
import * as taskCheckReceive from './taskCheckReceive';
import * as taskUser from './taskUser';
import * as sms from './sms';
import * as logRecords from './logRecords';
import * as menu from './menu';
import * as fileUtils from './fileUtils';
import * as syncDatabase from './syncDatabase';
export default {
  SmsAppService,
  enterpriseEmployee,
  user,
  role,
@@ -32,9 +30,8 @@
  task,
  enterprise,
  resource,
  logRecords,
  dictionary,
  enterpriseWallet,
  dictionary,
  codeUrl,
  electronSign,
  userResume,
@@ -42,6 +39,7 @@
  taskCheckReceive,
  taskUser,
  sms,
  logRecords,
  menu,
  fileUtils,
  syncDatabase,
src/services/api/sms.ts
@@ -25,3 +25,33 @@
    ...(options || {}),
  });
}
/** 阿里云短信平台回传通知 POST /api/common/sms/smsAliyunNotify */
export async function smsAliyunNotify(
  body: API.SmsAliyunNotifyCommandItem[],
  options?: API.RequestConfig
) {
  return request<API.SmsAliyunNotifyCommandResult>('/api/common/sms/smsAliyunNotify', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 诚立业短信平台回传通知 POST /api/common/sms/smsChengLiYeNotify */
export async function smsChengLiYeNotify(
  body: API.SmsChengLiYeNotifyCommand,
  options?: API.RequestConfig
) {
  return request<boolean>('/api/common/sms/smsChengLiYeNotify', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json-patch+json',
    },
    data: body,
    ...(options || {}),
  });
}
src/services/api/typings.d.ts
@@ -554,6 +554,8 @@
    Wxmp = 20,
    /**H5登录 */
    H5 = 30,
    /**接口 */
    Api = 40,
  }
  enum EnumCodeUrlScene {
@@ -871,6 +873,8 @@
    UserServerEnterpriseEmployee = 19,
    /**电子签 */
    ElectronSignServerElectronSign = 20,
    /**电子签 */
    ToolServerSms = 21,
  }
  enum EnumResourceMethod {
@@ -2263,24 +2267,6 @@
    timestamp?: number;
  }
  interface FriendlyResultIActionResult {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 错误码 */
    errorCode?: string;
    data?: IActionResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    msg?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface FriendlyResultImportEnterpriseEmployeesCommandResult {
    /** 跟踪Id */
    traceId?: string;
@@ -2772,6 +2758,24 @@
    /** 错误码 */
    errorCode?: string;
    data?: RechargeEnterpriseWalletCommandResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
    msg?: any;
    /** 附加数据 */
    extras?: any;
    /** 时间戳 */
    timestamp?: number;
  }
  interface FriendlyResultSmsAliyunNotifyCommandResult {
    /** 跟踪Id */
    traceId?: string;
    /** 状态码 */
    code?: number;
    /** 错误码 */
    errorCode?: string;
    data?: SmsAliyunNotifyCommandResult;
    /** 执行成功 */
    success?: boolean;
    /** 错误信息 */
@@ -4930,6 +4934,8 @@
    isDisabled?: boolean;
    /** 排序 */
    sort?: number;
    /** 签名名称 */
    signName?: string;
  }
  interface GetTaskEnterpriseQueryResult {
@@ -5558,8 +5564,6 @@
    workExperience?: string;
  }
  type IActionResult = Record<string, any>;
  interface ImportEnterpriseEmployeesCommand {
    /** Excel地址 */
    excelUrl?: string;
@@ -6183,6 +6187,8 @@
    isDisabled?: boolean;
    /** 排序 */
    sort?: number;
    /** 签名名称 */
    signName?: string;
  }
  interface SaveTaskInfoCommand {
@@ -6448,6 +6454,58 @@
    status?: EnumUserStatus;
  }
  interface SmsAliyunNotifyCommandItem {
    /** 转发给运营商的时间。 */
    send_time?: string;
    /** 收到运营商回执的时间。 */
    report_time?: string;
    /** 是否发送成功。 */
    success?: boolean;
    /** 错误码信息描述。 */
    err_msg?: string;
    /** 错误码。 */
    err_code?: string;
    /** 短信接收号码。 */
    phone_number?: string;
    /** 短信长度。 */
    sms_size?: string;
    /** 发送回执ID,即发送流水号。 */
    biz_id?: string;
    /** 调用发送短信SendSms接口时传的outId。 */
    out_id?: string;
  }
  interface SmsAliyunNotifyCommandResult {
    /** 回调码 */
    code?: number;
    /** 消息 */
    msg?: string;
  }
  interface SmsChengLiYeNotifyCommand {
    /** 状态码 */
    resultCode?: string;
    /** 状态码 */
    msgReports?: SmsChengLiYeNotifyCommandMsgReport[];
  }
  interface SmsChengLiYeNotifyCommandMsgReport {
    /** 用户名。提交时的用户名 */
    userName?: string;
    /** 提交返回的msgid */
    msgid?: number;
    /** 提交返回的seqid */
    seqid?: string;
    /** 手机号码 */
    mobile?: string;
    /** 手机号码发送状态码 */
    status?: string;
    /** 状态码描述 */
    statusDes?: string;
    /** 报告返回时间 */
    doneTime?: string;
  }
  interface SmsLoginCommand {
    /** 手机号码 */
    phoneNumber?: string;
@@ -6602,6 +6660,8 @@
    remark?: string;
  }
  type TestWeChatPayCommand = Record<string, any>;
  interface UpdatePhoneNumberVerifyCodeCommand {
    /** 手机号码 */
    phoneNumber: string;
src/views/System/SmsSettingManage.vue
@@ -64,7 +64,7 @@
          <ProFormCol>
            <ProFormColItem :span="12">
              <ProFormItemV2 label="通道配置:" prop="accesses">
                <div class="access-list">
                <div class="access-list" v-if="!isRead">
                  <div class="access-item" v-for="(item, index) in form.accesses" :key="index">
                    <div class="access-item-label">
                      {{ EnumSmsAccessTextUseInSms[item.access] }}
@@ -83,12 +83,29 @@
                      ]"
                      :button-style="false"
                    ></ProFormRadio>
                    <ProFormText
                      style="margin-right: 10px; width: 200px"
                      v-model="item.signName"
                      placeholder="请输入签名名称"
                    ></ProFormText>
                    <ProFormInputNumber
                      :controls="false"
                      :min="0"
                      v-model="item.sort"
                      placeholder="请输入"
                    ></ProFormInputNumber>
                  </div>
                </div>
                <div class="access-list" v-else>
                  <div class="access-item" v-for="(item, index) in form.accesses" :key="index">
                    <div class="access-item-label">
                      {{ `通道:${EnumSmsAccessTextUseInSms[item.access]}` }}
                    </div>
                    <div class="access-item-label">
                      {{ `状态:${item.isDisabled ? '禁用' : '启用'}` }}
                    </div>
                    <div class="access-item-label">{{ `签名:${item.signName}` }}</div>
                    <div class="access-item-label">{{ `排序:${item.sort}` }}</div>
                  </div>
                </div>
              </ProFormItemV2>
@@ -115,6 +132,7 @@
  ProFormItemV2,
  ProFormInputNumber,
  ProFormRadio,
  ProFormText,
} from '@bole-core/components';
import { useQuery } from '@tanstack/vue-query';
import * as smsServices from '@/services/api/sms';
@@ -132,7 +150,7 @@
  minutelyMaxCount: 0,
  hourlyMaxCount: 0,
  dailyMaxCount: 0,
  accesses: [] as API.SaveSmsSettingCommandAccess[],
  accesses: [] as API.GetSmsSettingQueryResultAccess[],
});
const isRead = ref(true);