yuanliang hace 1 año
padre
commit
b5db8ab532

+ 39 - 15
src/views/message/message-config/email/email-config.tsx

@@ -19,6 +19,9 @@ import PushConfigEdit from "@views/message/message-config/push/modal/push-config
 import deepClone from "@/utils/deep.clone";
 import WechatConfigEdit from "@views/message/message-config/wechat/modal/wechat-config-edit";
 import EmailConfigEdit from "@views/message/message-config/email/modal/email-config-edit";
+import {getMapValueByKey} from "@/utils/objectUtil";
+import {appKey} from "@/utils/constant";
+import {sysApplicationPage} from "@views/menu-manage/api";
 
 export default defineComponent({
   name: 'email-config',
@@ -37,13 +40,15 @@ export default defineComponent({
       },
       searchForm: {
         keyword: null, //关键字
-        status: null // 状态
+        status: null, // 状态
+        appKey: null // 接入应用
       },
       name: null as any,
       dataList: [],
       showEdit: false,
       editMode: 'add',
       editRowData: {} as any,
+      appData: [] as any,
     })
     const tabsViewStore = useTabsViewStore()
     const gotoBack = () => {
@@ -54,6 +59,19 @@ export default defineComponent({
     }
 
     onMounted(async () => {
+
+      // 应用
+      {
+        state.appData = []
+        const {data} = await sysApplicationPage({page: 1, rows: 999})
+        if (data && data.rows) {
+          data.rows.forEach((item: any) => {
+            state.appData.push({label: item.appName, value: item.appKey})
+          })
+        }
+      }
+
+
       getList()
     })
 
@@ -134,6 +152,17 @@ export default defineComponent({
           key: 'name'
         },
         {
+          title: '接入应用',
+          key: 'appKey',
+          render(row: any) {
+            return (
+                <div>
+                  {getMapValueByKey(row.appKey, new Map(Object.entries(appKey)))}
+                </div>
+            )
+          }
+        },
+        {
           title: '域名',
           key: 'hostUrl'
         },
@@ -178,19 +207,6 @@ export default defineComponent({
                       size="small"
                       text
                       onClick={() => {
-                        router.push({
-                          path: '/message/wxTemplateConfig',
-                          query: row.id
-                        })
-                      }}
-                  >
-                    查看模板
-                  </NButton>
-                  <NButton
-                      type="primary"
-                      size="small"
-                      text
-                      onClick={() => {
                         onChangeStatus(row)
                       }}
                   >
@@ -239,11 +255,19 @@ export default defineComponent({
               >
                 <NFormItem label="关键字" path="keyword">
                   <NInput
-                      placeholder="应用编号/名称"
+                      placeholder="编号/平台名称"
                       v-model:value={state.searchForm.keyword}
                       clearable
                   />
                 </NFormItem>
+                <NFormItem label="接入应用" path="appKey">
+                  <NSelect
+                      placeholder="请选择接入应用"
+                      v-model:value={state.searchForm.appKey}
+                      options={state.appData}
+                      clearable
+                  />
+                </NFormItem>
                 <NFormItem label="状态" path="status">
                   <NSelect
                       v-model:value={state.searchForm.status}

+ 10 - 8
src/views/message/message-config/email/modal/email-config-edit.tsx

@@ -1,6 +1,6 @@
 import {defineComponent, onMounted, reactive, ref} from "vue";
 import {NButton, NForm, NFormItem, NFormItemGi, NGrid, NInput, NSelect, NSpace, useMessage} from "naive-ui";
-import {musicSheetApplicationExtendUpdate, smsConfigDetail, smsConfigSave, smsConfigUpdate, wxConfigInfoSave, wxConfigInfoUpdate} from "@views/music-library/api";
+import {emailConfigSave, emailConfigUpdate, musicSheetApplicationExtendUpdate, smsConfigDetail, smsConfigSave, smsConfigUpdate, wxConfigInfoSave, wxConfigInfoUpdate} from "@views/music-library/api";
 import {sysApplicationPage} from "@views/menu-manage/api";
 
 export default defineComponent({
@@ -28,6 +28,7 @@ export default defineComponent({
       from: null, //密码
       fromName: null, //发送方名称
       appKey: null, //应用端
+      hostUrl: null, //域名
     })
     const formsRef = ref()
 
@@ -47,6 +48,7 @@ export default defineComponent({
         forms.from = state.rowData.from
         forms.fromName = state.rowData.fromName
         forms.appKey = state.rowData.appKey
+        forms.hostUrl = state.rowData.hostUrl
       }
       // 应用
       {
@@ -69,13 +71,13 @@ export default defineComponent({
         try {
           let res;
           if (props.editMode == 'add') {
-            res = await wxConfigInfoSave(
+            res = await emailConfigSave(
                 {
                   ...forms,
                 }
             ) as any;
           } else {
-            res = await wxConfigInfoUpdate(
+            res = await emailConfigUpdate(
                 {
                   ...forms,
                   id: state.rowData.id
@@ -120,18 +122,18 @@ export default defineComponent({
                   />
                 </NFormItemGi>
                 <NFormItemGi
-                    label="发送地址"
-                    path="sender"
+                    label="域名"
+                    path="hostUrl"
                     rule={[
                       {
                         required: true,
-                        message: '请输入发送地址'
+                        message: '请输入域名'
                       }
                     ]}
                 >
                   <NInput
-                      v-model:value={forms.sender}
-                      placeholder="请输入发送地址"
+                      v-model:value={forms.hostUrl}
+                      placeholder="请输入域名"
                       clearable
                   />
                 </NFormItemGi>

+ 94 - 36
src/views/message/message-config/push/modal/push-config-edit.tsx

@@ -1,7 +1,9 @@
 import {defineComponent, onMounted, reactive, ref} from "vue";
-import {NButton, NForm, NFormItem, NFormItemGi, NGrid, NInput, NSelect, NSpace, useMessage} from "naive-ui";
-import {musicSheetApplicationExtendUpdate, smsConfigSave, smsConfigUpdate} from "@views/music-library/api";
+import {NButton, NForm, NFormItem, NFormItemGi, NGrid, NInput, NInputNumber, NSelect, NSpace, useMessage} from "naive-ui";
+import {appSendConfigSave, appSendConfigUpdate, musicSheetApplicationExtendUpdate, smsConfigSave, smsConfigUpdate} from "@views/music-library/api";
 import {sysApplicationPage} from "@views/menu-manage/api";
+import {getSelectDataFromObj} from "@/utils/objectUtil";
+import {clientType} from "@/utils/constant";
 
 export default defineComponent({
   name: 'push-config-edit',
@@ -14,6 +16,10 @@ export default defineComponent({
       type: Object,
       required: false
     },
+    appData: {
+      type: [] as any,
+      required: true
+    },
   },
   emits: ['close', 'getList'],
   setup(props, {slots, attrs, emit}) {
@@ -21,42 +27,48 @@ export default defineComponent({
     const btnLoading = ref(false)
     const forms = reactive({
       name: null, // 平台名称
-      accessAPP: null, // 接入应用
-      clientId: null, // 客户
+      sender: null, // 平台标识
+      appKey: null, // 应用
       accessUrl: null, // 接入地址
-      pushEvn: null, // 推送环境
-      accessKey: null, // 接入key
-      accessSecret: null, // 接入密钥
-      extendData: null, // 拓展参数
+      clientId: null, // 客户端
+      apnsProduction: null as any, // 推送环境
+      account: null, // 接入账号
+      password: null, // 接入密码
+      timeToLive: null as any, // 离线保存时长
+      extendData: null, // 扩展参数
     })
     const formsRef = ref()
 
     const state = reactive({
       rowData: null as any,
       musicSheetCategories: [] as any,
-      appData:[] as any,
+      appData: [] as any,
     })
 
     onMounted(async () => {
       state.rowData = props.rowData
       if (props.editMode == 'edit' && props.rowData) {
-        forms.name = state.rowData.platformName
-        forms.accessAPP = state.rowData.accessAPP
+        forms.name = state.rowData.name
+        forms.sender = state.rowData.sender
+        forms.appKey = state.rowData.appKey
         forms.clientId = state.rowData.clientId
+        forms.apnsProduction = state.rowData.apnsProduction
+        forms.account = state.rowData.account
+        forms.password = state.rowData.password
+        forms.timeToLive = state.rowData.timeToLive
         forms.accessUrl = state.rowData.accessUrl
-        forms.pushEvn = state.rowData.pushEvn
-        forms.accessKey = state.rowData.accessKey
-        forms.accessSecret = state.rowData.accessSecret
         forms.extendData = state.rowData.extendData
       }
+      // 客户端
 
-      state.appData = []
-      const {data} = await sysApplicationPage({page: 1, rows: 999})
-      if (data && data.rows) {
-        data.rows.forEach((item: any) => {
-          state.appData.push({label: item.appName, value: item.id + ''})
-        })
-      }
+
+      // state.appData = []
+      // const {data} = await sysApplicationPage({page: 1, rows: 999})
+      // if (data && data.rows) {
+      //   data.rows.forEach((item: any) => {
+      //     state.appData.push({label: item.appName, value: item.id + ''})
+      //   })
+      // }
     })
 
     const onSubmit = async () => {
@@ -66,16 +78,18 @@ export default defineComponent({
         try {
           let res;
           if (props.editMode == 'add') {
-            res = await smsConfigSave(
+            res = await appSendConfigSave(
                 {
                   ...forms,
+                  timeToLive: Number.parseFloat(forms.timeToLive) * 3600
                 }
             ) as any;
           } else {
-            res = await smsConfigUpdate(
+            res = await appSendConfigUpdate(
                 {
                   ...forms,
-                  id: state.rowData.id
+                  id: state.rowData.id,
+                  timeToLive: Number.parseFloat(forms.timeToLive) * 3600
                 }
             ) as any;
           }
@@ -117,8 +131,24 @@ export default defineComponent({
                   />
                 </NFormItemGi>
                 <NFormItemGi
+                    label="平台标识"
+                    path="sender"
+                    rule={[
+                      {
+                        required: true,
+                        message: '请输入平台标识'
+                      }
+                    ]}
+                >
+                  <NInput
+                      v-model:value={forms.sender}
+                      placeholder="请输入平台标识"
+                      clearable
+                  />
+                </NFormItemGi>
+                <NFormItemGi
                     label="接入应用"
-                    path="accessAPP"
+                    path="appKey"
                     rule={[
                       {
                         required: true,
@@ -126,9 +156,10 @@ export default defineComponent({
                       }
                     ]}
                 >
-                  <NInput
-                      v-model:value={forms.accessAPP}
+                  <NSelect
+                      v-model:value={forms.appKey}
                       placeholder="请输入接入应用"
+                      options={props.appData}
                       clearable
                   />
                 </NFormItemGi>
@@ -144,7 +175,7 @@ export default defineComponent({
                 >
                   <NSelect
                       v-model:value={forms.clientId}
-                      options={state.appData}
+                      options={getSelectDataFromObj(clientType)}
                       placeholder="请选择客户端"
                       clearable
                   />
@@ -167,23 +198,34 @@ export default defineComponent({
                 </NFormItemGi>
                 <NFormItemGi
                     label="推送环境"
-                    path="pushEvn"
+                    path="apnsProduction"
                     rule={[
                       {
                         required: true,
-                        message: '请输入推送环境'
+                        message: '请输入推送环境',
+                        type: 'boolean'
                       }
                     ]}
                 >
-                  <NInput
-                      v-model:value={forms.pushEvn}
+                  <NSelect
+                      v-model:value={forms.apnsProduction}
                       placeholder="请输入推送环境"
+                      options={[
+                        {
+                          label: '线上',
+                          value: true
+                        }, {
+                          label: '开发',
+                          value: false
+                        }
+
+                      ] as any}
                       clearable
                   />
                 </NFormItemGi>
                 <NFormItemGi
                     label="接入key"
-                    path="accessKey"
+                    path="account"
                     rule={[
                       {
                         required: true,
@@ -192,14 +234,14 @@ export default defineComponent({
                     ]}
                 >
                   <NInput
-                      v-model:value={forms.accessKey}
+                      v-model:value={forms.account}
                       placeholder="请输入接入key"
                       clearable
                   />
                 </NFormItemGi>
                 <NFormItemGi
                     label="接入密钥"
-                    path="accessSecret"
+                    path="password"
                     rule={[
                       {
                         required: true,
@@ -208,12 +250,28 @@ export default defineComponent({
                     ]}
                 >
                   <NInput
-                      v-model:value={forms.accessSecret}
+                      v-model:value={forms.password}
                       placeholder="请输入接入密码"
                       clearable
                   />
                 </NFormItemGi>
                 <NFormItemGi
+                    label="离线保留时长(小时)"
+                    path="timeToLive"
+                    rule={[
+                      {
+                        required: true,
+                        message: '请输入离线保留时长(小时)'
+                      }
+                    ]}
+                >
+                  <NInputNumber
+                      v-model:value={forms.timeToLive}
+                      placeholder="请输入离线保留时长(小时)"
+                      clearable
+                  />
+                </NFormItemGi>
+                <NFormItemGi
                     label="拓展参数"
                     path="extendData"
                     rule={[

+ 157 - 56
src/views/message/message-config/push/push-config.tsx

@@ -4,8 +4,13 @@ import {useRoute, useRouter} from 'vue-router'
 import {useTabsViewStore} from '@/store/modules/tabsView'
 import SaveForm from "@components/save-form";
 import Pagination from "@components/pagination";
-import {appSendConfigPage, smsConfigDetail} from "@views/music-library/api";
+import {appSendConfigPage, appSendConfigRemove, appSendConfigStatus, smsConfigDetail, smsConfigRemove, smsConfigStatus} from "@views/music-library/api";
 import PushConfigEdit from "@views/message/message-config/push/modal/push-config-edit";
+import TheTooltip from "@components/TheTooltip";
+import {getMapValueByKey, getSelectDataFromObj} from "@/utils/objectUtil";
+import {appKey, clientType} from "@/utils/constant";
+import deepClone from "@/utils/deep.clone";
+import {sysApplicationPage} from "@views/menu-manage/api";
 
 export default defineComponent({
   name: 'push-config',
@@ -24,7 +29,9 @@ export default defineComponent({
       },
       searchForm: {
         keyword: null, //关键字
-        status: null // 状态
+        status: null, // 状态
+        appKey: null, // 应用
+        clientId: null, // 客户端
       },
       name: null as any,
       smsConfigId: null as any,
@@ -32,6 +39,7 @@ export default defineComponent({
       showEdit: false,
       editMode: 'add',
       editRowData: {} as any,
+      appData:[] as any,
     })
     const tabsViewStore = useTabsViewStore()
     const gotoBack = () => {
@@ -42,6 +50,14 @@ export default defineComponent({
     }
 
     onMounted(async () => {
+
+      state.appData = []
+      const {data} = await sysApplicationPage({page: 1, rows: 999})
+      if (data && data.rows) {
+        data.rows.forEach((item: any) => {
+          state.appData.push({label: item.appName, value: item.appKey})
+        })
+      }
       getList()
     })
 
@@ -73,6 +89,44 @@ export default defineComponent({
     }
 
 
+    const onChangeStatus = (row: any) => {
+      const statusStr = row.status ? '停用' : '启用'
+      dialog.warning({
+        title: '提示',
+        content: `是否${statusStr}?`,
+        positiveText: '确定',
+        negativeText: '取消',
+        onPositiveClick: async () => {
+          try {
+            await appSendConfigStatus({
+              id: row.id,
+              status: !row.status
+            })
+            getList()
+            message.success(`${statusStr}成功`)
+          } catch {
+          }
+        }
+      })
+    }
+
+    const onRmove = (row: any): void => {
+      dialog.warning({
+        title: '提示',
+        content: `删除"${row.name}",是否继续?`,
+        positiveText: '确定',
+        negativeText: '取消',
+        onPositiveClick: async () => {
+          try {
+            await appSendConfigRemove(row.id)
+            getList()
+            message.success('删除成功')
+          } catch {
+          }
+        }
+      })
+    }
+
     const columns = (): any => {
       return [
         {
@@ -84,36 +138,67 @@ export default defineComponent({
           key: 'name'
         },
         {
+          title: '平台标识',
+          key: 'sender'
+        },
+        {
           title: '应用',
-          key: 'name'
+          key: 'appKey',
+          render(row: any) {
+            return (
+                <div>
+                  {getMapValueByKey(row.appKey, new Map(Object.entries(appKey)))}
+                </div>
+            )
+          }
         },
         {
           title: '客户端',
-          key: 'accessUrl'
+          key: 'clientId',
+          render(row: any) {
+            return (
+                <div>
+                  {getMapValueByKey(row.clientId, new Map(Object.entries(clientType)))}
+                </div>
+            )
+          }
         },
         {
           title: '接入地址',
           key: 'accessUrl'
         },
         {
-          title: '离线保留时长',
-          key: 'accessUrl'
+          title: '离线保留时长(小时)',
+          key: 'timeToLive',
+          render(row: any) {
+            return (
+                row.timeToLive / 3600
+            )
+          }
         },
         {
           title: '推送环境',
-          key: 'accessUrl'
+          key: 'apnsProduction',
+          render(row: any) {
+            return (
+                row.apnsProduction ? '线上' : '开发'
+            )
+          }
         },
         {
           title: '接入key',
-          key: 'accessUrl'
+          key: 'account'
         },
         {
           title: '接入秘匙',
-          key: 'accessUrl'
+          key: 'password'
         },
         {
-          title: 'Android拓展参数',
-          key: 'accessUrl'
+          title: '拓展参数',
+          key: 'extendData',
+          render(row: any) {
+            return <TheTooltip content={row.extendData}/>
+          }
         },
         {
           title: '状态',
@@ -124,51 +209,50 @@ export default defineComponent({
             )
           }
         },
-        // {
-        //   title: '操作',
-        //   key: 'operation',
-        //   fixed: 'right',
-        //   render(row: any) {
-        //     return (
-        //         <NSpace>
-        //           <NButton
-        //               type="primary"
-        //               size="small"
-        //               text
-        //               onClick={() => {
-        //
-        //
-        //               }}
-        //           >
-        //             {row.status ? '停用' : '启用'}
-        //           </NButton>
-        //           <NButton
-        //               type="primary"
-        //               size="small"
-        //               text
-        //               onClick={() => {
-        //                 state.showEdit = true
-        //                 state.editRowData = deepClone(row)
-        //                 state.editMode = 'edit'
-        //               }}
-        //           >
-        //             修改
-        //           </NButton>
-        //           <NButton
-        //               type="primary"
-        //               size="small"
-        //               text
-        //               disabled={!!row.status}
-        //               onClick={() => {
-        //
-        //               }}
-        //           >
-        //             删除
-        //           </NButton>
-        //         </NSpace>
-        //     )
-        //   }
-        // }
+        {
+          title: '操作',
+          key: 'operation',
+          fixed: 'right',
+          render(row: any) {
+            return (
+                <NSpace>
+                  <NButton
+                      type="primary"
+                      size="small"
+                      text
+                      onClick={() => {
+                        onChangeStatus(row)
+                      }}
+                  >
+                    {row.status ? '停用' : '启用'}
+                  </NButton>
+                  <NButton
+                      type="primary"
+                      size="small"
+                      text
+                      onClick={() => {
+                        state.showEdit = true
+                        state.editRowData = deepClone(row)
+                        state.editMode = 'edit'
+                      }}
+                  >
+                    修改
+                  </NButton>
+                  <NButton
+                      type="primary"
+                      size="small"
+                      text
+                      disabled={!!row.status}
+                      onClick={() => {
+                        onRmove(row)
+                      }}
+                  >
+                    删除
+                  </NButton>
+                </NSpace>
+            )
+          }
+        }
       ]
     }
 
@@ -190,6 +274,22 @@ export default defineComponent({
                       clearable
                   />
                 </NFormItem>
+                <NFormItem label="应用" path="appKey">
+                  <NSelect
+                      placeholder="请选择应用"
+                      v-model:value={state.searchForm.appKey}
+                      options={state.appData}
+                      clearable
+                  />
+                </NFormItem>
+                <NFormItem label="客户端" path="clientId">
+                  <NSelect
+                      placeholder="请选择客户端"
+                      v-model:value={state.searchForm.clientId}
+                      options={getSelectDataFromObj(clientType)}
+                      clearable
+                  />
+                </NFormItem>
                 <NFormItem label="状态" path="status">
                   <NSelect
                       v-model:value={state.searchForm.status}
@@ -262,6 +362,7 @@ export default defineComponent({
                 <PushConfigEdit
                     editMode={state.editMode}
                     rowData={state.editRowData}
+                    appData={state.appData}
                     style={{width: '450'}}
                     onClose={() => (state.showEdit = false)}
                     onGetList={() => {

+ 4 - 4
src/views/message/message-config/sms/modal/sms-config-app-edit.tsx

@@ -1,6 +1,6 @@
 import {defineComponent, onMounted, reactive, ref} from "vue";
 import {NButton, NForm, NFormItem, NFormItemGi, NGrid, NInput, NSelect, NSpace, useDialog, useMessage} from "naive-ui";
-import {musicSheetApplicationExtendUpdate, smsConfigRemove, smsConfigSave, smsConfigStatus, smsConfigUpdate} from "@views/music-library/api";
+import {musicSheetApplicationExtendUpdate, smsAppConfigUpdate, smsConfigRemove, smsConfigSave, smsConfigStatus, smsConfigUpdate, ssmsAppConfigSave} from "@views/music-library/api";
 import {sysApplicationPage} from "@views/menu-manage/api";
 
 export default defineComponent({
@@ -52,14 +52,14 @@ export default defineComponent({
         try {
           let res;
           if (props.editMode == 'add') {
-            res = await smsConfigSave(
+            res = await ssmsAppConfigSave(
                 {
                   ...forms,
-                  smsConfigId:props.smsConfigId
+                  sysConfigId: props.smsConfigId
                 }
             ) as any;
           } else {
-            res = await smsConfigUpdate(
+            res = await smsAppConfigUpdate(
                 {
                   ...forms,
                   id: state.rowData.id

+ 20 - 2
src/views/message/message-config/sms/modal/sms-config-edit.tsx

@@ -25,6 +25,7 @@ export default defineComponent({
       account: null,
       password: null,
       extendData: null,
+      appId: null,
     })
     const formsRef = ref()
 
@@ -42,6 +43,7 @@ export default defineComponent({
         forms.account = state.rowData.account
         forms.password = state.rowData.password
         forms.extendData = state.rowData.extendData
+        forms.appId = state.rowData.appId
       }
     })
 
@@ -104,7 +106,7 @@ export default defineComponent({
                 </NFormItemGi>
                 <NFormItemGi
                     label="平台标识"
-                    path="name"
+                    path="sender"
                     rule={[
                       {
                         required: true,
@@ -113,7 +115,7 @@ export default defineComponent({
                     ]}
                 >
                   <NInput
-                      v-model:value={forms.name}
+                      v-model:value={forms.sender}
                       placeholder="请输入平台标识"
                       clearable
                   />
@@ -135,6 +137,22 @@ export default defineComponent({
                   />
                 </NFormItemGi>
                 <NFormItemGi
+                    label="应用ID"
+                    path="appId"
+                    rule={[
+                      {
+                        required: false,
+                        message: '请输入应用ID'
+                      }
+                    ]}
+                >
+                  <NInput
+                      v-model:value={forms.appId}
+                      placeholder="请输入应用ID"
+                      clearable
+                  />
+                </NFormItemGi>
+                <NFormItemGi
                     label="接入账号"
                     path="account"
                     rule={[

+ 1 - 1
src/views/message/message-config/sms/sms-config-app.tsx

@@ -203,7 +203,7 @@ export default defineComponent({
                       text
                       disabled={!!row.status}
                       onClick={() => {
-                        onRmove(row.id)
+                        onRmove(row)
                       }}
                   >
                     删除

+ 5 - 1
src/views/message/message-config/sms/sms-config.tsx

@@ -143,6 +143,10 @@ export default defineComponent({
           key: 'accessUrl'
         },
         {
+          title: '应用ID',
+          key: 'appId'
+        },
+        {
           title: '接入账号',
           key: 'account'
         },
@@ -234,7 +238,7 @@ export default defineComponent({
             >
               <NFormItem label="关键字" path="keyword">
                 <NInput
-                    placeholder="平台编号/名称"
+                    placeholder="编号/名称"
                     v-model:value={state.searchForm.keyword}
                     clearable
                 />

+ 92 - 1
src/views/music-library/api.ts

@@ -430,6 +430,28 @@ export const smsAppConfigPage = (params: object) => {
 }
 
 /**
+ * @description: 添加短信应用配置
+ */
+export const ssmsAppConfigSave = (params: object) => {
+  return request({
+    url: '/cbs-app/smsAppConfig/save',
+    method: 'post',
+    data: params
+  } as any)
+}
+
+/**
+ * @description: 修改短信配置
+ */
+export const smsAppConfigUpdate = (params: object) => {
+  return request({
+    url: '/cbs-app/smsAppConfig/update',
+    method: 'post',
+    data: params
+  } as any)
+}
+
+/**
  * @description: 短信应用配置表删除
  */
 export const smsAppConfigRemove = (id: object) => {
@@ -462,6 +484,50 @@ export const appSendConfigPage = (params: object) => {
 }
 
 /**
+ * @description: app推送配置表启用/停用
+ */
+export const appSendConfigStatus = (params: object) => {
+  return request({
+    url: '/cbs-app/appSendConfig/status',
+    method: 'post',
+    data: params
+  } as any)
+}
+
+/**
+ * @description: app推送配置表删除
+ */
+export const appSendConfigRemove = (id: object) => {
+  return request({
+    url: '/cbs-app/appSendConfig/remove?id=' + id,
+    method: 'post',
+  } as any)
+}
+
+/**
+ * @description: 添加短信配置
+ */
+export const appSendConfigSave = (params: object) => {
+  return request({
+    url: '/cbs-app/appSendConfig/save',
+    method: 'post',
+    data: params
+  } as any)
+}
+
+/**
+ * @description: 修改短信配置
+ */
+export const appSendConfigUpdate = (params: object) => {
+  return request({
+    url: '/cbs-app/appSendConfig/update',
+    method: 'post',
+    data: params
+  } as any)
+}
+
+
+/**
  * @description: 消息记录
  */
 export const sysMessagePage = (params: object) => {
@@ -652,4 +718,29 @@ export const emailConfigStatus = (params: object) => {
     method: 'post',
     data: params
   } as any)
-}
+}
+
+/**
+ * @description: 邮件配置表新增
+ */
+export const emailConfigSave = (params: object) => {
+  return request({
+    url: '/cbs-app/emailConfig/save',
+    method: 'post',
+    data: params
+  } as any)
+}
+
+/**
+ * @description: 邮件配置表修改
+ */
+export const emailConfigUpdate = (params: object) => {
+  return request({
+    url: '/cbs-app/emailConfig/update',
+    method: 'post',
+    data: params
+  } as any)
+}
+
+
+