Pārlūkot izejas kodu

给消息里面添加权限

lex 10 mēneši atpakaļ
vecāks
revīzija
c4adf1a1bd

+ 172 - 167
src/views/message/message-config/email/email-config.tsx

@@ -1,15 +1,26 @@
-import {NButton, NDataTable, NFormItem, NInput, NModal, NSelect, NSpace, NTag, useDialog, useMessage} from 'naive-ui'
-import {defineComponent, onMounted, reactive, ref} from 'vue'
-import {useRoute, useRouter} from 'vue-router'
-import {useTabsViewStore} from '@/store/modules/tabsView'
-import SaveForm from "@components/save-form";
-import Pagination from "@components/pagination";
-import deepClone from "@/utils/deep.clone";
-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";
-import {emailConfigPage, emailConfigRemove, emailConfigStatus} from "@views/message/api";
+import {
+  NButton,
+  NDataTable,
+  NFormItem,
+  NInput,
+  NModal,
+  NSelect,
+  NSpace,
+  NTag,
+  useDialog,
+  useMessage
+} from 'naive-ui'
+import { defineComponent, onMounted, reactive, ref } from 'vue'
+import { useRoute, useRouter } from 'vue-router'
+import { useTabsViewStore } from '@/store/modules/tabsView'
+import SaveForm from '@components/save-form'
+import Pagination from '@components/pagination'
+import deepClone from '@/utils/deep.clone'
+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'
+import { emailConfigPage, emailConfigRemove, emailConfigStatus } from '@views/message/api'
 
 export default defineComponent({
   name: 'email-config',
@@ -36,7 +47,7 @@ export default defineComponent({
       showEdit: false,
       editMode: 'add',
       editRowData: {} as any,
-      appData: [] as any,
+      appData: [] as any
     })
     const tabsViewStore = useTabsViewStore()
     const gotoBack = () => {
@@ -47,19 +58,17 @@ export default defineComponent({
     }
 
     onMounted(async () => {
-
       // 应用
       {
         state.appData = []
-        const {data} = await sysApplicationPage({page: 1, rows: 999})
+        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})
+            state.appData.push({ label: item.appName, value: item.appKey })
           })
         }
       }
 
-
       getList()
     })
 
@@ -79,14 +88,13 @@ export default defineComponent({
     const getList = async () => {
       try {
         state.loading = true
-        const {data} = await emailConfigPage({
+        const { data } = await emailConfigPage({
           ...state.pagination,
-          ...state.searchForm,
+          ...state.searchForm
         })
         state.pagination.pageTotal = Number(data.total)
         state.dataList = data.rows || []
-      } catch {
-      }
+      } catch {}
       state.loading = false
     }
 
@@ -105,8 +113,7 @@ export default defineComponent({
             })
             getList()
             message.success(`${statusStr}成功`)
-          } catch {
-          }
+          } catch {}
         }
       })
     }
@@ -122,13 +129,11 @@ export default defineComponent({
             await emailConfigRemove(row.id)
             getList()
             message.success('删除成功')
-          } catch {
-          }
+          } catch {}
         }
       })
     }
 
-
     const columns = (): any => {
       return [
         {
@@ -143,11 +148,7 @@ export default defineComponent({
           title: '接入应用',
           key: 'appKey',
           render(row: any) {
-            return (
-                <div>
-                  {getMapValueByKey(row.appKey, new Map(Object.entries(appKey)))}
-                </div>
-            )
+            return <div>{getMapValueByKey(row.appKey, new Map(Object.entries(appKey)))}</div>
           }
         },
         {
@@ -179,7 +180,7 @@ export default defineComponent({
           key: 'status',
           render(row: any) {
             return (
-                <NTag type={row.status ? 'primary' : 'default'}>{row.status ? '启用' : '停用'}</NTag>
+              <NTag type={row.status ? 'primary' : 'default'}>{row.status ? '启用' : '停用'}</NTag>
             )
           }
         },
@@ -189,41 +190,44 @@ export default defineComponent({
           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>
+              <NSpace>
+                <NButton
+                  type="primary"
+                  size="small"
+                  text
+                  v-auth="emailConfig/status1790935300606857218"
+                  onClick={() => {
+                    onChangeStatus(row)
+                  }}
+                >
+                  {row.status ? '停用' : '启用'}
+                </NButton>
+                <NButton
+                  type="primary"
+                  size="small"
+                  text
+                  v-auth="emailConfig/update1790935437341167617"
+                  onClick={() => {
+                    state.showEdit = true
+                    state.editRowData = deepClone(row)
+                    state.editMode = 'edit'
+                  }}
+                >
+                  修改
+                </NButton>
+                <NButton
+                  type="primary"
+                  size="small"
+                  text
+                  v-auth="emailConfig/remove1790935226178932738"
+                  disabled={!!row.status}
+                  onClick={() => {
+                    onRmove(row)
+                  }}
+                >
+                  删除
+                </NButton>
+              </NSpace>
             )
           }
         }
@@ -231,113 +235,114 @@ export default defineComponent({
     }
 
     return () => (
-        <div class="system-menu-container">
-          <div class={['section-container']}>
-            <div class="system-menu-container">
-              <SaveForm
-                  ref={saveForm}
-                  model={state.searchForm}
-                  onSubmit={onSubmit}
-                  saveKey="email-config"
-                  onSetModel={(val: any) => (state.searchForm = val)}
-              >
-                <NFormItem label="关键字" path="keyword">
-                  <NInput
-                      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}
-                      clearable
-                      options={
-                        [
-                          {
-                            label: '启用',
-                            value: 1
-                          },
-                          {
-                            label: '停用',
-                            value: 0
-                          }
-                        ] as any
+      <div class="system-menu-container">
+        <div class={['section-container']}>
+          <div class="system-menu-container">
+            <SaveForm
+              ref={saveForm}
+              model={state.searchForm}
+              onSubmit={onSubmit}
+              saveKey="email-config"
+              onSetModel={(val: any) => (state.searchForm = val)}
+            >
+              <NFormItem label="关键字" path="keyword">
+                <NInput
+                  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}
+                  clearable
+                  options={
+                    [
+                      {
+                        label: '启用',
+                        value: 1
+                      },
+                      {
+                        label: '停用',
+                        value: 0
                       }
-                      placeholder="全部状态"
-                  />
-                </NFormItem>
-                <NFormItem>
-                  <NSpace>
-                    <NButton type="primary" onClick={onSearch}>
-                      搜索
-                    </NButton>
-                    <NButton type="default" onClick={onBtnReset}>
-                      重置
-                    </NButton>
-                  </NSpace>
-                </NFormItem>
-              </SaveForm>
+                    ] as any
+                  }
+                  placeholder="全部状态"
+                />
+              </NFormItem>
+              <NFormItem>
+                <NSpace>
+                  <NButton type="primary" onClick={onSearch}>
+                    搜索
+                  </NButton>
+                  <NButton type="default" onClick={onBtnReset}>
+                    重置
+                  </NButton>
+                </NSpace>
+              </NFormItem>
+            </SaveForm>
 
-              <NSpace style={{paddingBottom: '12px'}}>
-                <NButton
-                    type="primary"
-                    onClick={() => {
-                      state.showEdit = true
-                      state.editMode = 'add'
-                    }}
-                >
-                  新增邮件配置
-                </NButton>
-              </NSpace>
+            <NSpace style={{ paddingBottom: '12px' }}>
+              <NButton
+                type="primary"
+                v-auth="emailConfig/save1790935373034098690"
+                onClick={() => {
+                  state.showEdit = true
+                  state.editMode = 'add'
+                }}
+              >
+                新增邮件配置
+              </NButton>
+            </NSpace>
 
-              <div class={['section-container']}>
-                <NDataTable
-                    loading={state.loading}
-                    columns={columns()}
-                    data={state.dataList}
-                    rowKey={(row: any) => row.id}
-                    scrollX={'1400'}
-                ></NDataTable>
+            <div class={['section-container']}>
+              <NDataTable
+                loading={state.loading}
+                columns={columns()}
+                data={state.dataList}
+                rowKey={(row: any) => row.id}
+                scrollX={'1400'}
+              ></NDataTable>
 
-                <Pagination
-                    v-model:page={state.pagination.page}
-                    v-model:pageSize={state.pagination.rows}
-                    v-model:pageTotal={state.pagination.pageTotal}
-                    onList={getList}
-                    sync
-                    saveKey="email-config"
-                ></Pagination>
-              </div>
-              <NModal
-                  blockScroll={true}
-                  v-model:show={state.showEdit}
-                  preset="dialog"
-                  showIcon={false}
-                  title={(state.editMode == 'add' ? '新增' : '编辑') + '邮件配置'}
-                  style={{width: '700px'}}
-              >
-                <EmailConfigEdit
-                    editMode={state.editMode}
-                    rowData={state.editRowData}
-                    onClose={() => (state.showEdit = false)}
-                    onGetList={() => {
-                      state.pagination.page = 1
-                      getList()
-                    }}
-                />
-              </NModal>
+              <Pagination
+                v-model:page={state.pagination.page}
+                v-model:pageSize={state.pagination.rows}
+                v-model:pageTotal={state.pagination.pageTotal}
+                onList={getList}
+                sync
+                saveKey="email-config"
+              ></Pagination>
             </div>
+            <NModal
+              blockScroll={true}
+              v-model:show={state.showEdit}
+              preset="dialog"
+              showIcon={false}
+              title={(state.editMode == 'add' ? '新增' : '编辑') + '邮件配置'}
+              style={{ width: '700px' }}
+            >
+              <EmailConfigEdit
+                editMode={state.editMode}
+                rowData={state.editRowData}
+                onClose={() => (state.showEdit = false)}
+                onGetList={() => {
+                  state.pagination.page = 1
+                  getList()
+                }}
+              />
+            </NModal>
           </div>
         </div>
+      </div>
     )
   }
 })

+ 32 - 24
src/views/message/message-config/index.tsx

@@ -1,17 +1,17 @@
-import {NTabPane, NTabs} from 'naive-ui'
-import {defineComponent, nextTick, onMounted, reactive, ref} from 'vue'
-import {useRoute} from 'vue-router'
-import {getTabsCache, setTabsCaches} from '@/hooks/use-async'
-import SmsConfig from "@views/message/message-config/sms/sms-config";
-import PushConfig from "@views/message/message-config/push/push-config";
-import WechatConfig from "@views/message/message-config/wechat/wechat-config";
-import EmailConfig from "@views/message/message-config/email/email-config";
+import { NTabPane, NTabs } from 'naive-ui'
+import { defineComponent, nextTick, onMounted, reactive, ref } from 'vue'
+import { useRoute } from 'vue-router'
+import { getTabsCache, setTabsCaches } from '@/hooks/use-async'
+import SmsConfig from '@views/message/message-config/sms/sms-config'
+import PushConfig from '@views/message/message-config/push/push-config'
+import WechatConfig from '@views/message/message-config/wechat/wechat-config'
+import EmailConfig from '@views/message/message-config/email/email-config'
 
 export default defineComponent({
   name: 'message-config-index',
   setup() {
     const state = reactive({
-      tabName: 'SMS' as 'SMS' | 'PUSH' | 'EMAIL' | 'WECHAT',
+      tabName: 'SMS' as 'SMS' | 'PUSH' | 'EMAIL' | 'WECHAT'
     })
     const tabsInstRef = ref()
     getTabsCache((val: any) => {
@@ -31,22 +31,30 @@ export default defineComponent({
 
     return () => {
       return (
-          <div class="system-menu-container">
-            <div class={['section-container']} style="padding-top: 0">
-              <NTabs
-                  ref={tabsInstRef}
-                  type="line"
-                  size="large"
-                  v-model:value={state.tabName}
-                  onUpdate:value={(val: any) => setTabs(val)}
-              >
-                <NTabPane name='SMS' tab='短信'><SmsConfig/></NTabPane>
-                <NTabPane name='PUSH' tab="推送"><PushConfig/></NTabPane>
-                <NTabPane name='WECHAT' tab="公众号"><WechatConfig/></NTabPane>
-                <NTabPane name='EMAIL' tab="邮件"><EmailConfig/></NTabPane>
-              </NTabs>
-            </div>
+        <div class="system-menu-container">
+          <div class={['section-container']} style="padding-top: 0">
+            <NTabs
+              ref={tabsInstRef}
+              type="line"
+              size="large"
+              v-model:value={state.tabName}
+              onUpdate:value={(val: any) => setTabs(val)}
+            >
+              <NTabPane name="SMS" tab="短信" v-auth="smsConfig/page1790929887618469889">
+                <SmsConfig />
+              </NTabPane>
+              <NTabPane name="PUSH" tab="推送" v-auth="appSendConfig/page1790933531566870529">
+                <PushConfig />
+              </NTabPane>
+              <NTabPane name="WECHAT" tab="公众号" v-auth="wxConfigInfo/page1790934372273164290">
+                <WechatConfig />
+              </NTabPane>
+              <NTabPane name="EMAIL" tab="邮件" v-auth="emailConfig/page1790935157727891457">
+                <EmailConfig />
+              </NTabPane>
+            </NTabs>
           </div>
+        </div>
       )
     }
   }

+ 190 - 194
src/views/message/message-config/push/push-config.tsx

@@ -1,16 +1,27 @@
-import {NButton, NDataTable, NFormItem, NInput, NModal, NSelect, NSpace, NTag, useDialog, useMessage} from 'naive-ui'
-import {defineComponent, onMounted, reactive, ref} from 'vue'
-import {useRoute, useRouter} from 'vue-router'
-import {useTabsViewStore} from '@/store/modules/tabsView'
-import SaveForm from "@components/save-form";
-import Pagination from "@components/pagination";
-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, deviceType} from "@/utils/constant";
-import deepClone from "@/utils/deep.clone";
-import {sysApplicationPage} from "@views/menu-manage/api";
-import {appSendConfigPage, appSendConfigRemove, appSendConfigStatus} from "@views/message/api";
+import {
+  NButton,
+  NDataTable,
+  NFormItem,
+  NInput,
+  NModal,
+  NSelect,
+  NSpace,
+  NTag,
+  useDialog,
+  useMessage
+} from 'naive-ui'
+import { defineComponent, onMounted, reactive, ref } from 'vue'
+import { useRoute, useRouter } from 'vue-router'
+import { useTabsViewStore } from '@/store/modules/tabsView'
+import SaveForm from '@components/save-form'
+import Pagination from '@components/pagination'
+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, deviceType } from '@/utils/constant'
+import deepClone from '@/utils/deep.clone'
+import { sysApplicationPage } from '@views/menu-manage/api'
+import { appSendConfigPage, appSendConfigRemove, appSendConfigStatus } from '@views/message/api'
 
 export default defineComponent({
   name: 'push-config',
@@ -31,7 +42,7 @@ export default defineComponent({
         keyword: null, //关键字
         status: null, // 状态
         appKey: null, // 应用
-        clientId: null, // 客户端
+        clientId: null // 客户端
       },
       name: null as any,
       smsConfigId: null as any,
@@ -39,7 +50,7 @@ export default defineComponent({
       showEdit: false,
       editMode: 'add',
       editRowData: {} as any,
-      appData:[] as any,
+      appData: [] as any
     })
     const tabsViewStore = useTabsViewStore()
     const gotoBack = () => {
@@ -50,12 +61,11 @@ export default defineComponent({
     }
 
     onMounted(async () => {
-
       state.appData = []
-      const {data} = await sysApplicationPage({page: 1, rows: 999})
+      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})
+          state.appData.push({ label: item.appName, value: item.appKey })
         })
       }
       getList()
@@ -77,18 +87,16 @@ export default defineComponent({
     const getList = async () => {
       state.loading = true
       try {
-        const {data} = await appSendConfigPage({
+        const { data } = await appSendConfigPage({
           ...state.pagination,
-          ...state.searchForm,
+          ...state.searchForm
         })
         state.pagination.pageTotal = Number(data.total)
         state.dataList = data.rows || []
-      } catch {
-      }
+      } catch {}
       state.loading = false
     }
 
-
     const onChangeStatus = (row: any) => {
       const statusStr = row.status ? '停用' : '启用'
       dialog.warning({
@@ -104,8 +112,7 @@ export default defineComponent({
             })
             getList()
             message.success(`${statusStr}成功`)
-          } catch {
-          }
+          } catch {}
         }
       })
     }
@@ -121,8 +128,7 @@ export default defineComponent({
             await appSendConfigRemove(row.id)
             getList()
             message.success('删除成功')
-          } catch {
-          }
+          } catch {}
         }
       })
     }
@@ -145,22 +151,14 @@ export default defineComponent({
           title: '应用',
           key: 'appKey',
           render(row: any) {
-            return (
-                <div>
-                  {getMapValueByKey(row.appKey, new Map(Object.entries(appKey)))}
-                </div>
-            )
+            return <div>{getMapValueByKey(row.appKey, new Map(Object.entries(appKey)))}</div>
           }
         },
         {
           title: '客户端',
           key: 'clientId',
           render(row: any) {
-            return (
-                <div>
-                  {getMapValueByKey(row.clientId, new Map(Object.entries(clientType)))}
-                </div>
-            )
+            return <div>{getMapValueByKey(row.clientId, new Map(Object.entries(clientType)))}</div>
           }
         },
         {
@@ -168,9 +166,7 @@ export default defineComponent({
           key: 'deviceType',
           render(row: any) {
             return (
-                <div>
-                  {getMapValueByKey(row.deviceType, new Map(Object.entries(deviceType)))}
-                </div>
+              <div>{getMapValueByKey(row.deviceType, new Map(Object.entries(deviceType)))}</div>
             )
           }
         },
@@ -182,18 +178,14 @@ export default defineComponent({
           title: '离线保留时长(小时)',
           key: 'timeToLive',
           render(row: any) {
-            return (
-                row.timeToLive / 3600
-            )
+            return row.timeToLive / 3600
           }
         },
         {
           title: '推送环境',
           key: 'apnsProduction',
           render(row: any) {
-            return (
-                row.apnsProduction ? '线上' : '开发'
-            )
+            return row.apnsProduction ? '线上' : '开发'
           }
         },
         {
@@ -208,7 +200,7 @@ export default defineComponent({
           title: '拓展参数',
           key: 'extendData',
           render(row: any) {
-            return <TheTooltip content={row.extendData}/>
+            return <TheTooltip content={row.extendData} />
           }
         },
         {
@@ -216,7 +208,7 @@ export default defineComponent({
           key: 'status',
           render(row: any) {
             return (
-                <NTag type={row.status ? 'primary' : 'default'}>{row.status ? '启用' : '停用'}</NTag>
+              <NTag type={row.status ? 'primary' : 'default'}>{row.status ? '启用' : '停用'}</NTag>
             )
           }
         },
@@ -224,44 +216,47 @@ export default defineComponent({
           title: '操作',
           key: 'operation',
           fixed: 'right',
-          minWidth:'180px',
+          minWidth: '180px',
           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>
+              <NSpace>
+                <NButton
+                  type="primary"
+                  size="small"
+                  text
+                  v-auth="appSendConfig/status1790933632397938690"
+                  onClick={() => {
+                    onChangeStatus(row)
+                  }}
+                >
+                  {row.status ? '停用' : '启用'}
+                </NButton>
+                <NButton
+                  type="primary"
+                  size="small"
+                  text
+                  v-auth="appSendConfig/update1790933865680932866"
+                  onClick={() => {
+                    state.showEdit = true
+                    state.editRowData = deepClone(row)
+                    state.editMode = 'edit'
+                  }}
+                >
+                  修改
+                </NButton>
+                <NButton
+                  type="primary"
+                  size="small"
+                  text
+                  v-auth="appSendConfig/remove1790933707882827777"
+                  disabled={!!row.status}
+                  onClick={() => {
+                    onRmove(row)
+                  }}
+                >
+                  删除
+                </NButton>
+              </NSpace>
             )
           }
         }
@@ -269,123 +264,124 @@ export default defineComponent({
     }
 
     return () => (
-        <div class="system-menu-container">
-          <div class={['section-container']}>
-            <div class="system-menu-container">
-              <SaveForm
-                  ref={saveForm}
-                  model={state.searchForm}
-                  onSubmit={onSubmit}
-                  saveKey="push-config-app"
-                  onSetModel={(val: any) => (state.searchForm = val)}
-              >
-                <NFormItem label="关键字" path="keyword">
-                  <NInput
-                      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="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}
-                      clearable
-                      options={
-                        [
-                          {
-                            label: '启用',
-                            value: 1
-                          },
-                          {
-                            label: '停用',
-                            value: 0
-                          }
-                        ] as any
+      <div class="system-menu-container">
+        <div class={['section-container']}>
+          <div class="system-menu-container">
+            <SaveForm
+              ref={saveForm}
+              model={state.searchForm}
+              onSubmit={onSubmit}
+              saveKey="push-config-app"
+              onSetModel={(val: any) => (state.searchForm = val)}
+            >
+              <NFormItem label="关键字" path="keyword">
+                <NInput
+                  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="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}
+                  clearable
+                  options={
+                    [
+                      {
+                        label: '启用',
+                        value: 1
+                      },
+                      {
+                        label: '停用',
+                        value: 0
                       }
-                      placeholder="全部状态"
-                  />
-                </NFormItem>
-                <NFormItem>
-                  <NSpace>
-                    <NButton type="primary" onClick={onSearch}>
-                      搜索
-                    </NButton>
-                    <NButton type="default" onClick={onBtnReset}>
-                      重置
-                    </NButton>
-                  </NSpace>
-                </NFormItem>
-              </SaveForm>
+                    ] as any
+                  }
+                  placeholder="全部状态"
+                />
+              </NFormItem>
+              <NFormItem>
+                <NSpace>
+                  <NButton type="primary" onClick={onSearch}>
+                    搜索
+                  </NButton>
+                  <NButton type="default" onClick={onBtnReset}>
+                    重置
+                  </NButton>
+                </NSpace>
+              </NFormItem>
+            </SaveForm>
 
-              <NSpace style={{paddingBottom: '12px'}}>
-                <NButton
-                    type="primary"
-                    onClick={() => {
-                      state.showEdit = true
-                      state.editMode = 'add'
-                    }}
-                >
-                  新增推送平台
-                </NButton>
-              </NSpace>
+            <NSpace style={{ paddingBottom: '12px' }}>
+              <NButton
+                type="primary"
+                v-auth="appSendConfig/save1790933794033831937"
+                onClick={() => {
+                  state.showEdit = true
+                  state.editMode = 'add'
+                }}
+              >
+                新增推送平台
+              </NButton>
+            </NSpace>
 
-              <div class={['section-container']}>
-                <NDataTable
-                    loading={state.loading}
-                    columns={columns()}
-                    data={state.dataList}
-                    rowKey={(row: any) => row.id}
-                    scrollX={'1400'}
-                ></NDataTable>
+            <div class={['section-container']}>
+              <NDataTable
+                loading={state.loading}
+                columns={columns()}
+                data={state.dataList}
+                rowKey={(row: any) => row.id}
+                scrollX={'1400'}
+              ></NDataTable>
 
-                <Pagination
-                    v-model:page={state.pagination.page}
-                    v-model:pageSize={state.pagination.rows}
-                    v-model:pageTotal={state.pagination.pageTotal}
-                    onList={getList}
-                    sync
-                    saveKey="push-config-app"
-                ></Pagination>
-              </div>
-              <NModal
-                  blockScroll={true}
-                  v-model:show={state.showEdit}
-                  preset="dialog"
-                  showIcon={false}
-                  title={(state.editMode == 'add' ? '新增' : '编辑') + '推送平台'}
-                  // style={{width: 'auto'}}
-                  style={{width: '700px'}}
-              >
-                <PushConfigEdit
-                    editMode={state.editMode}
-                    rowData={state.editRowData}
-                    appData={state.appData}
-                    onClose={() => (state.showEdit = false)}
-                    onGetList={() => {
-                      state.pagination.page = 1
-                      getList()
-                    }}
-                />
-              </NModal>
+              <Pagination
+                v-model:page={state.pagination.page}
+                v-model:pageSize={state.pagination.rows}
+                v-model:pageTotal={state.pagination.pageTotal}
+                onList={getList}
+                sync
+                saveKey="push-config-app"
+              ></Pagination>
             </div>
+            <NModal
+              blockScroll={true}
+              v-model:show={state.showEdit}
+              preset="dialog"
+              showIcon={false}
+              title={(state.editMode == 'add' ? '新增' : '编辑') + '推送平台'}
+              // style={{width: 'auto'}}
+              style={{ width: '700px' }}
+            >
+              <PushConfigEdit
+                editMode={state.editMode}
+                rowData={state.editRowData}
+                appData={state.appData}
+                onClose={() => (state.showEdit = false)}
+                onGetList={() => {
+                  state.pagination.page = 1
+                  getList()
+                }}
+              />
+            </NModal>
           </div>
         </div>
+      </div>
     )
   }
 })

+ 175 - 162
src/views/message/message-config/sms/sms-config-app.tsx

@@ -1,14 +1,31 @@
-import {NButton, NDataTable, NFormItem, NInput, NModal, NPageHeader, NSelect, NSpace, NTag, useDialog, useMessage} from 'naive-ui'
-import {defineComponent, onMounted, reactive, ref} from 'vue'
-import {useRoute, useRouter} from 'vue-router'
-import {useTabsViewStore} from '@/store/modules/tabsView'
-import SaveForm from "@components/save-form";
-import Pagination from "@components/pagination";
-import deepClone from "@/utils/deep.clone";
-import SmsConfigAppEdit from "@views/message/message-config/sms/modal/sms-config-app-edit";
-import {sysApplicationPage} from "@views/menu-manage/api";
-import TheTooltip from "@components/TheTooltip";
-import {smsAppConfigPage, smsAppConfigRemove, smsAppConfigStatus, smsConfigDetail} from "@views/message/api";
+import {
+  NButton,
+  NDataTable,
+  NFormItem,
+  NInput,
+  NModal,
+  NPageHeader,
+  NSelect,
+  NSpace,
+  NTag,
+  useDialog,
+  useMessage
+} from 'naive-ui'
+import { defineComponent, onMounted, reactive, ref } from 'vue'
+import { useRoute, useRouter } from 'vue-router'
+import { useTabsViewStore } from '@/store/modules/tabsView'
+import SaveForm from '@components/save-form'
+import Pagination from '@components/pagination'
+import deepClone from '@/utils/deep.clone'
+import SmsConfigAppEdit from '@views/message/message-config/sms/modal/sms-config-app-edit'
+import { sysApplicationPage } from '@views/menu-manage/api'
+import TheTooltip from '@components/TheTooltip'
+import {
+  smsAppConfigPage,
+  smsAppConfigRemove,
+  smsAppConfigStatus,
+  smsConfigDetail
+} from '@views/message/api'
 
 export default defineComponent({
   name: 'sms-config-app',
@@ -36,7 +53,7 @@ export default defineComponent({
       editMode: 'add',
       editRowData: {} as any,
       appData: [] as any,
-      appMap: new Map(),
+      appMap: new Map()
     })
     const tabsViewStore = useTabsViewStore()
     const gotoBack = () => {
@@ -50,9 +67,9 @@ export default defineComponent({
       if (!route.query) {
         return
       }
-      state.smsConfigId = route.query.id;
+      state.smsConfigId = route.query.id
       {
-        const {data} = await smsConfigDetail(state.smsConfigId)
+        const { data } = await smsConfigDetail(state.smsConfigId)
         if (data) {
           state.name = data.name
         }
@@ -61,11 +78,11 @@ export default defineComponent({
       // 应用
       {
         state.appData = []
-        const {data} = await sysApplicationPage({page: 1, rows: 999})
+        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})
-            state.appMap.set(item.appKey, item.appName);
+            state.appData.push({ label: item.appName, value: item.appKey })
+            state.appMap.set(item.appKey, item.appName)
           })
         }
       }
@@ -91,19 +108,17 @@ export default defineComponent({
       }
       try {
         state.loading = true
-        const {data} = await smsAppConfigPage({
+        const { data } = await smsAppConfigPage({
           ...state.pagination,
           ...state.searchForm,
           sysConfigId: state.smsConfigId
         })
         state.pagination.pageTotal = Number(data.total)
         state.dataList = data.rows || []
-      } catch {
-      }
+      } catch {}
       state.loading = false
     }
 
-
     const onChangeStatus = (row: any) => {
       const statusStr = row.status ? '停用' : '启用'
       dialog.warning({
@@ -119,8 +134,7 @@ export default defineComponent({
             })
             getList()
             message.success(`${statusStr}成功`)
-          } catch {
-          }
+          } catch {}
         }
       })
     }
@@ -136,8 +150,7 @@ export default defineComponent({
             await smsAppConfigRemove(row.id)
             getList()
             message.success('删除成功')
-          } catch {
-          }
+          } catch {}
         }
       })
     }
@@ -152,8 +165,7 @@ export default defineComponent({
           title: '应用',
           key: 'appKey',
           render(row: any) {
-            return (state.appMap.get(row.appKey)
-            )
+            return state.appMap.get(row.appKey)
           }
         },
         {
@@ -164,7 +176,7 @@ export default defineComponent({
           title: '拓展参数',
           key: 'extendData',
           render: (row: any) => {
-            return <TheTooltip content={row.extendData}/>
+            return <TheTooltip content={row.extendData} />
           }
         },
         {
@@ -172,7 +184,7 @@ export default defineComponent({
           key: 'status',
           render(row: any) {
             return (
-                <NTag type={row.status ? 'primary' : 'default'}>{row.status ? '启用' : '停用'}</NTag>
+              <NTag type={row.status ? 'primary' : 'default'}>{row.status ? '启用' : '停用'}</NTag>
             )
           }
         },
@@ -182,41 +194,44 @@ export default defineComponent({
           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>
+              <NSpace>
+                <NButton
+                  type="primary"
+                  size="small"
+                  text
+                  v-auth="smsAppConfig/status1790942026752135170"
+                  onClick={() => {
+                    onChangeStatus(row)
+                  }}
+                >
+                  {row.status ? '停用' : '启用'}
+                </NButton>
+                <NButton
+                  type="primary"
+                  size="small"
+                  text
+                  v-auth="smsAppConfig/update1790942447902199809"
+                  onClick={() => {
+                    state.showEdit = true
+                    state.editRowData = deepClone(row)
+                    state.editMode = 'edit'
+                  }}
+                >
+                  修改
+                </NButton>
+                <NButton
+                  type="primary"
+                  size="small"
+                  text
+                  v-auth="smsAppConfig/remove1790942087347245058"
+                  disabled={!!row.status}
+                  onClick={() => {
+                    onRmove(row)
+                  }}
+                >
+                  删除
+                </NButton>
+              </NSpace>
             )
           }
         }
@@ -224,111 +239,109 @@ export default defineComponent({
     }
 
     return () => (
-        <div class="system-menu-container">
-          <NPageHeader
-              on-back={() => gotoBack()}
-              title={state.name}
-          ></NPageHeader>
-          <div class={['section-container']}>
-            <div class="system-menu-container">
-              <SaveForm
-                  ref={saveForm}
-                  model={state.searchForm}
-                  onSubmit={onSubmit}
-                  saveKey="sms-config-app"
-                  onSetModel={(val: any) => (state.searchForm = val)}
-              >
-                <NFormItem label="关键字" path="keyword">
-                  <NInput
-                      placeholder="应用编号/名称"
-                      v-model:value={state.searchForm.keyword}
-                      clearable
-                  />
-                </NFormItem>
-                <NFormItem label="状态" path="status">
-                  <NSelect
-                      v-model:value={state.searchForm.status}
-                      clearable
-                      options={
-                        [
-                          {
-                            label: '启用',
-                            value: 1
-                          },
-                          {
-                            label: '停用',
-                            value: 0
-                          }
-                        ] as any
+      <div class="system-menu-container">
+        <NPageHeader on-back={() => gotoBack()} title={state.name}></NPageHeader>
+        <div class={['section-container']}>
+          <div class="system-menu-container">
+            <SaveForm
+              ref={saveForm}
+              model={state.searchForm}
+              onSubmit={onSubmit}
+              saveKey="sms-config-app"
+              onSetModel={(val: any) => (state.searchForm = val)}
+            >
+              <NFormItem label="关键字" path="keyword">
+                <NInput
+                  placeholder="应用编号/名称"
+                  v-model:value={state.searchForm.keyword}
+                  clearable
+                />
+              </NFormItem>
+              <NFormItem label="状态" path="status">
+                <NSelect
+                  v-model:value={state.searchForm.status}
+                  clearable
+                  options={
+                    [
+                      {
+                        label: '启用',
+                        value: 1
+                      },
+                      {
+                        label: '停用',
+                        value: 0
                       }
-                      placeholder="全部状态"
-                  />
-                </NFormItem>
-                <NFormItem>
-                  <NSpace>
-                    <NButton type="primary" onClick={onSearch}>
-                      搜索
-                    </NButton>
-                    <NButton type="default" onClick={onBtnReset}>
-                      重置
-                    </NButton>
-                  </NSpace>
-                </NFormItem>
-              </SaveForm>
+                    ] as any
+                  }
+                  placeholder="全部状态"
+                />
+              </NFormItem>
+              <NFormItem>
+                <NSpace>
+                  <NButton type="primary" onClick={onSearch}>
+                    搜索
+                  </NButton>
+                  <NButton type="default" onClick={onBtnReset}>
+                    重置
+                  </NButton>
+                </NSpace>
+              </NFormItem>
+            </SaveForm>
 
-              <NSpace style={{paddingBottom: '12px'}}>
-                <NButton
-                    type="primary"
-                    onClick={() => {
-                      state.showEdit = true
-                      state.editMode = 'add'
-                    }}
-                >
-                  新增应用
-                </NButton>
-              </NSpace>
+            <NSpace style={{ paddingBottom: '12px' }}>
+              <NButton
+                type="primary"
+                v-auth="smsAppConfig/save1790942383565770753"
+                onClick={() => {
+                  state.showEdit = true
+                  state.editMode = 'add'
+                }}
+              >
+                新增应用
+              </NButton>
+            </NSpace>
 
-              <div class={['section-container']}>
-                <NDataTable
-                    loading={state.loading}
-                    columns={columns()}
-                    data={state.dataList}
-                    rowKey={(row: any) => row.id}
-                    scrollX={'1400'}
-                ></NDataTable>
+            <div class={['section-container']}>
+              <NDataTable
+                loading={state.loading}
+                columns={columns()}
+                data={state.dataList}
+                rowKey={(row: any) => row.id}
+                scrollX={'1400'}
+              ></NDataTable>
 
-                <Pagination
-                    v-model:page={state.pagination.page}
-                    v-model:pageSize={state.pagination.rows}
-                    v-model:pageTotal={state.pagination.pageTotal}
-                    onList={getList}
-                    sync
-                    saveKey="sms-config-app"
-                ></Pagination>
-              </div>
-              <NModal
-                  blockScroll={true}
-                  v-model:show={state.showEdit}
-                  preset="dialog"
-                  showIcon={false}
-                  title={(state.editMode == 'add' ? '新增' : '编辑') + '应用'}
-                  style={{width: '700px'}}
-              >
-                <SmsConfigAppEdit
-                    editMode={state.editMode}
-                    rowData={state.editRowData}
-                    appData={state.appData}
-                    smsConfigId={state.smsConfigId}
-                    onClose={() => (state.showEdit = false)}
-                    onGetList={() => {
-                      state.pagination.page = 1
-                      getList()
-                    }}
-                />
-              </NModal>
+              <Pagination
+                v-model:page={state.pagination.page}
+                v-model:pageSize={state.pagination.rows}
+                v-model:pageTotal={state.pagination.pageTotal}
+                onList={getList}
+                sync
+                saveKey="sms-config-app"
+              ></Pagination>
             </div>
+            <NModal
+              blockScroll={true}
+              v-model:show={state.showEdit}
+              preset="dialog"
+              showIcon={false}
+              title={(state.editMode == 'add' ? '新增' : '编辑') + '应用'}
+              style={{ width: '700px' }}
+            >
+              <SmsConfigAppEdit
+                editMode={state.editMode}
+                rowData={state.editRowData}
+                appData={state.appData}
+                smsConfigId={state.smsConfigId}
+                onClose={() => (state.showEdit = false)}
+                onGetList={() => {
+                  state.pagination.page = 1
+                  getList()
+                }}
+              />
+            </NModal>
           </div>
         </div>
+      </div>
     )
   }
 })

+ 166 - 157
src/views/message/message-config/sms/sms-config.tsx

@@ -1,12 +1,24 @@
-import {defineComponent, onMounted, reactive, ref} from 'vue'
+import { defineComponent, onMounted, reactive, ref } from 'vue'
 import SaveForm from '@components/save-form'
-import {DataTableRowKey, NButton, NDataTable, NFormItem, NInput, NModal, NSelect, NSpace, NTag, useDialog, useMessage} from 'naive-ui'
+import {
+  DataTableRowKey,
+  NButton,
+  NDataTable,
+  NFormItem,
+  NInput,
+  NModal,
+  NSelect,
+  NSpace,
+  NTag,
+  useDialog,
+  useMessage
+} from 'naive-ui'
 import Pagination from '@components/pagination'
-import SmsConfigEdit from "@views/message/message-config/sms/modal/sms-config-edit";
-import deepClone from "@/utils/deep.clone";
-import {useRouter} from "vue-router";
-import TheTooltip from "@components/TheTooltip";
-import {smsConfigPage, smsConfigRemove, smsConfigStatus} from "@views/message/api";
+import SmsConfigEdit from '@views/message/message-config/sms/modal/sms-config-edit'
+import deepClone from '@/utils/deep.clone'
+import { useRouter } from 'vue-router'
+import TheTooltip from '@components/TheTooltip'
+import { smsConfigPage, smsConfigRemove, smsConfigStatus } from '@views/message/api'
 
 export default defineComponent({
   name: 'sms-config',
@@ -30,14 +42,13 @@ export default defineComponent({
       dataList: [],
       showEdit: false,
       editMode: 'add',
-      editRowData: {} as any,
+      editRowData: {} as any
     })
 
     onMounted(async () => {
       getList()
     })
 
-
     const saveForm = ref()
 
     const onSearch = () => {
@@ -60,15 +71,14 @@ export default defineComponent({
     const getList = async () => {
       try {
         state.loading = true
-        const {data} = await smsConfigPage({
+        const { data } = await smsConfigPage({
           ...state.pagination,
-          ...state.searchForm,
+          ...state.searchForm
         })
         state.pagination.pageTotal = Number(data.total)
         state.dataList = data.rows || []
         // state.dataList = []
-      } catch {
-      }
+      } catch {}
       state.loading = false
     }
 
@@ -87,8 +97,7 @@ export default defineComponent({
             })
             getList()
             message.success(`${statusStr}成功`)
-          } catch {
-          }
+          } catch {}
         }
       })
     }
@@ -104,8 +113,7 @@ export default defineComponent({
             await smsConfigRemove(row.id)
             getList()
             message.success('删除成功')
-          } catch {
-          }
+          } catch {}
         }
       })
     }
@@ -114,7 +122,7 @@ export default defineComponent({
       return [
         {
           title: '编号',
-          key: 'id',
+          key: 'id'
         },
         {
           title: '平台名称',
@@ -144,7 +152,7 @@ export default defineComponent({
           title: '拓展参数',
           key: 'extendData',
           render: (row: any) => {
-            return <TheTooltip content={row.extendData}/>
+            return <TheTooltip content={row.extendData} />
           }
         },
         {
@@ -152,7 +160,7 @@ export default defineComponent({
           key: 'status',
           render(row: any) {
             return (
-                <NTag type={row.status ? 'primary' : 'default'}>{row.status ? '启用' : '停用'}</NTag>
+              <NTag type={row.status ? 'primary' : 'default'}>{row.status ? '启用' : '停用'}</NTag>
             )
           }
         },
@@ -162,52 +170,56 @@ export default defineComponent({
           fixed: 'right',
           render(row: any) {
             return (
-                <NSpace>
-                  <NButton
-                      type="primary"
-                      size="small"
-                      text
-                      onClick={() => {
-                        router.push({
-                          path: '/message/messageConfigApp',
-                          query: {
-                            id: row.id
-                          }
-                        })
-                      }}
-                  >
-                    应用详情
-                  </NButton>
-                  <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>
+              <NSpace>
+                <NButton
+                  type="primary"
+                  size="small"
+                  text
+                  v-auth="message/messageConfigApp1788130264099217409"
+                  onClick={() => {
+                    router.push({
+                      path: '/message/messageConfigApp',
+                      query: {
+                        id: row.id
+                      }
+                    })
+                  }}
+                >
+                  应用详情
+                </NButton>
+                <NButton
+                  type="primary"
+                  size="small"
+                  v-auth="smsConfig/status1790932263540690945"
+                  text
+                  onClick={() => onChangeStatus(row)}
+                >
+                  {row.status ? '停用' : '启用'}
+                </NButton>
+                <NButton
+                  type="primary"
+                  size="small"
+                  text
+                  v-auth="smsConfig/update1790932998848319490"
+                  onClick={() => {
+                    state.showEdit = true
+                    state.editRowData = deepClone(row)
+                    state.editMode = 'edit'
+                  }}
+                >
+                  修改
+                </NButton>
+                <NButton
+                  type="primary"
+                  size="small"
+                  text
+                  v-auth="smsConfig/remove1790932360940818433"
+                  disabled={!!row.status}
+                  onClick={() => onRmove(row)}
+                >
+                  删除
+                </NButton>
+              </NSpace>
             )
           }
         }
@@ -216,102 +228,99 @@ export default defineComponent({
 
     return () => {
       return (
-          <div class="system-menu-container">
-            <SaveForm
-                ref={saveForm}
-                model={state.searchForm}
-                onSubmit={onSubmit}
-                saveKey="sms-config"
-                onSetModel={(val: any) => (state.searchForm = val)}
-            >
-              <NFormItem label="关键字" path="keyword">
-                <NInput
-                    placeholder="编号/名称"
-                    v-model:value={state.searchForm.keyword}
-                    clearable
-                />
-              </NFormItem>
-              <NFormItem label="状态" path="status">
-                <NSelect
-                    v-model:value={state.searchForm.status}
-                    clearable
-                    options={
-                      [
-                        {
-                          label: '启用',
-                          value: 1
-                        },
-                        {
-                          label: '停用',
-                          value: 0
-                        }
-                      ] as any
+        <div class="system-menu-container">
+          <SaveForm
+            ref={saveForm}
+            model={state.searchForm}
+            onSubmit={onSubmit}
+            saveKey="sms-config"
+            onSetModel={(val: any) => (state.searchForm = val)}
+          >
+            <NFormItem label="关键字" path="keyword">
+              <NInput placeholder="编号/名称" v-model:value={state.searchForm.keyword} clearable />
+            </NFormItem>
+            <NFormItem label="状态" path="status">
+              <NSelect
+                v-model:value={state.searchForm.status}
+                clearable
+                options={
+                  [
+                    {
+                      label: '启用',
+                      value: 1
+                    },
+                    {
+                      label: '停用',
+                      value: 0
                     }
-                    placeholder="全部状态"
-                />
-              </NFormItem>
-              <NFormItem>
-                <NSpace>
-                  <NButton type="primary" onClick={onSearch}>
-                    搜索
-                  </NButton>
-                  <NButton type="default" onClick={onBtnReset}>
-                    重置
-                  </NButton>
-                </NSpace>
-              </NFormItem>
-            </SaveForm>
+                  ] as any
+                }
+                placeholder="全部状态"
+              />
+            </NFormItem>
+            <NFormItem>
+              <NSpace>
+                <NButton type="primary" onClick={onSearch}>
+                  搜索
+                </NButton>
+                <NButton type="default" onClick={onBtnReset}>
+                  重置
+                </NButton>
+              </NSpace>
+            </NFormItem>
+          </SaveForm>
 
-            <NSpace style={{paddingBottom: '12px'}}>
-              <NButton
-                  type="primary"
-                  onClick={() => {
-                    state.showEdit = true
-                    state.editMode = 'add'
-                  }}
-              >
-                新增短信平台
-              </NButton>
-            </NSpace>
+          <NSpace style={{ paddingBottom: '12px' }}>
+            <NButton
+              type="primary"
+              v-auth="smsConfig/save1790932891084066817"
+              onClick={() => {
+                state.showEdit = true
+                state.editMode = 'add'
+              }}
+            >
+              新增短信平台
+            </NButton>
+          </NSpace>
 
-            <div class={['section-container']}>
-              <NDataTable
-                  loading={state.loading}
-                  columns={columns()}
-                  data={state.dataList}
-                  rowKey={(row: any) => row.id}
-                  scrollX={'1400'}
-              ></NDataTable>
+          <div class={['section-container']}>
+            <NDataTable
+              loading={state.loading}
+              columns={columns()}
+              data={state.dataList}
+              rowKey={(row: any) => row.id}
+              scrollX={'1400'}
+            ></NDataTable>
 
-              <Pagination
-                  v-model:page={state.pagination.page}
-                  v-model:pageSize={state.pagination.rows}
-                  v-model:pageTotal={state.pagination.pageTotal}
-                  onList={getList}
-                  sync
-                  saveKey="sms-config"
-              ></Pagination>
-            </div>
-            <NModal
-                blockScroll={true}
-                v-model:show={state.showEdit}
-                preset="dialog"
-                showIcon={false}
-                title={(state.editMode == 'add' ? '新增' : '编辑') + '短信平台'}
-                // style={{width: 'auto'}}
-                style={{width: '700px'}}
-            >
-              <SmsConfigEdit
-                  editMode={state.editMode}
-                  rowData={state.editRowData}
-                  onClose={() => (state.showEdit = false)}
-                  onGetList={() => {
-                    state.pagination.page = 1
-                    getList()
-                  }}
-              />
-            </NModal>
+            <Pagination
+              v-model:page={state.pagination.page}
+              v-model:pageSize={state.pagination.rows}
+              v-model:pageTotal={state.pagination.pageTotal}
+              onList={getList}
+              sync
+              saveKey="sms-config"
+            ></Pagination>
           </div>
+          <NModal
+            blockScroll={true}
+            v-model:show={state.showEdit}
+            preset="dialog"
+            showIcon={false}
+            title={(state.editMode == 'add' ? '新增' : '编辑') + '短信平台'}
+            // style={{width: 'auto'}}
+            style={{ width: '700px' }}
+          >
+            <SmsConfigEdit
+              editMode={state.editMode}
+              rowData={state.editRowData}
+              onClose={() => (state.showEdit = false)}
+              onGetList={() => {
+                state.pagination.page = 1
+                getList()
+              }}
+            />
+          </NModal>
+        </div>
       )
     }
   }

+ 162 - 152
src/views/message/message-config/wechat/wechat-config-template-message.tsx

@@ -1,12 +1,29 @@
-import {NButton, NDataTable, NFormItem, NInput, NModal, NPageHeader, NSelect, NSpace, NTag, useDialog, useMessage} from 'naive-ui'
-import {defineComponent, onMounted, reactive, ref} from 'vue'
-import {useRoute, useRouter} from 'vue-router'
-import {useTabsViewStore} from '@/store/modules/tabsView'
-import SaveForm from "@components/save-form";
-import Pagination from "@components/pagination";
-import deepClone from "@/utils/deep.clone";
-import WechatConfigTemplateEdit from "@views/message/message-config/wechat/modal/wechat-config-template-edit";
-import {wxTemplateConfigDetail, wxTemplateConfigRemove, wxTemplateConfigStatus, wxTemplateMessagePage} from "@views/message/api";
+import {
+  NButton,
+  NDataTable,
+  NFormItem,
+  NInput,
+  NModal,
+  NPageHeader,
+  NSelect,
+  NSpace,
+  NTag,
+  useDialog,
+  useMessage
+} from 'naive-ui'
+import { defineComponent, onMounted, reactive, ref } from 'vue'
+import { useRoute, useRouter } from 'vue-router'
+import { useTabsViewStore } from '@/store/modules/tabsView'
+import SaveForm from '@components/save-form'
+import Pagination from '@components/pagination'
+import deepClone from '@/utils/deep.clone'
+import WechatConfigTemplateEdit from '@views/message/message-config/wechat/modal/wechat-config-template-edit'
+import {
+  wxTemplateConfigDetail,
+  wxTemplateConfigRemove,
+  wxTemplateConfigStatus,
+  wxTemplateMessagePage
+} from '@views/message/api'
 
 export default defineComponent({
   name: 'wechat-config-template',
@@ -31,7 +48,7 @@ export default defineComponent({
       editMode: 'add',
       editRowData: {} as any,
       appid: null as any,
-      wxTemplateConfigId: null as any,
+      wxTemplateConfigId: null as any
     })
     const tabsViewStore = useTabsViewStore()
     const gotoBack = () => {
@@ -48,7 +65,7 @@ export default defineComponent({
         return
       }
       {
-        const {data} = await wxTemplateConfigDetail(state.wxTemplateConfigId)
+        const { data } = await wxTemplateConfigDetail(state.wxTemplateConfigId)
         if (data) {
           state.appid = data.appid
         } else {
@@ -77,15 +94,14 @@ export default defineComponent({
       }
       try {
         state.loading = true
-        const {data} = await wxTemplateMessagePage({
+        const { data } = await wxTemplateMessagePage({
           ...state.pagination,
           ...state.searchForm,
           appid: state.appid
         })
         state.pagination.pageTotal = Number(data.total)
         state.dataList = data.rows || []
-      } catch {
-      }
+      } catch {}
       state.loading = false
     }
 
@@ -104,8 +120,7 @@ export default defineComponent({
             })
             getList()
             message.success(`${statusStr}成功`)
-          } catch {
-          }
+          } catch {}
         }
       })
     }
@@ -121,13 +136,11 @@ export default defineComponent({
             await wxTemplateConfigRemove(row.id)
             getList()
             message.success('删除成功')
-          } catch {
-          }
+          } catch {}
         }
       })
     }
 
-
     const columns = (): any => {
       return [
         {
@@ -171,7 +184,7 @@ export default defineComponent({
           key: 'status',
           render(row: any) {
             return (
-                <NTag type={row.status ? 'primary' : 'default'}>{row.status ? '启用' : '停用'}</NTag>
+              <NTag type={row.status ? 'primary' : 'default'}>{row.status ? '启用' : '停用'}</NTag>
             )
           }
         },
@@ -181,41 +194,41 @@ export default defineComponent({
           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>
+              <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>
             )
           }
         }
@@ -223,110 +236,107 @@ export default defineComponent({
     }
 
     return () => (
-        <div class="system-menu-container">
-          <NPageHeader
-              on-back={() => gotoBack()}
-              title={state.wxTemplateConfigId}
-          ></NPageHeader>
-          <div class={['section-container']}>
-            <div class="system-menu-container">
-              <SaveForm
-                  ref={saveForm}
-                  model={state.searchForm}
-                  onSubmit={onSubmit}
-                  saveKey="wechat-config-template"
-                  onSetModel={(val: any) => (state.searchForm = val)}
-              >
-                <NFormItem label="关键字" path="keyword">
-                  <NInput
-                      placeholder="平台编号/名称"
-                      v-model:value={state.searchForm.keyword}
-                      clearable
-                  />
-                </NFormItem>
-                <NFormItem label="状态" path="status">
-                  <NSelect
-                      v-model:value={state.searchForm.status}
-                      clearable
-                      options={
-                        [
-                          {
-                            label: '启用',
-                            value: 1
-                          },
-                          {
-                            label: '停用',
-                            value: 0
-                          }
-                        ] as any
+      <div class="system-menu-container">
+        <NPageHeader on-back={() => gotoBack()} title={state.wxTemplateConfigId}></NPageHeader>
+        <div class={['section-container']}>
+          <div class="system-menu-container">
+            <SaveForm
+              ref={saveForm}
+              model={state.searchForm}
+              onSubmit={onSubmit}
+              saveKey="wechat-config-template"
+              onSetModel={(val: any) => (state.searchForm = val)}
+            >
+              <NFormItem label="关键字" path="keyword">
+                <NInput
+                  placeholder="平台编号/名称"
+                  v-model:value={state.searchForm.keyword}
+                  clearable
+                />
+              </NFormItem>
+              <NFormItem label="状态" path="status">
+                <NSelect
+                  v-model:value={state.searchForm.status}
+                  clearable
+                  options={
+                    [
+                      {
+                        label: '启用',
+                        value: 1
+                      },
+                      {
+                        label: '停用',
+                        value: 0
                       }
-                      placeholder="全部状态"
-                  />
-                </NFormItem>
-                <NFormItem>
-                  <NSpace>
-                    <NButton type="primary" onClick={onSearch}>
-                      搜索
-                    </NButton>
-                    <NButton type="default" onClick={onBtnReset}>
-                      重置
-                    </NButton>
-                  </NSpace>
-                </NFormItem>
-              </SaveForm>
+                    ] as any
+                  }
+                  placeholder="全部状态"
+                />
+              </NFormItem>
+              <NFormItem>
+                <NSpace>
+                  <NButton type="primary" onClick={onSearch}>
+                    搜索
+                  </NButton>
+                  <NButton type="default" onClick={onBtnReset}>
+                    重置
+                  </NButton>
+                </NSpace>
+              </NFormItem>
+            </SaveForm>
 
-              <NSpace style={{paddingBottom: '12px'}}>
-                <NButton
-                    type="primary"
-                    onClick={() => {
-                      state.showEdit = true
-                      state.editMode = 'add'
-                    }}
-                >
-                  新增消息内容
-                </NButton>
-              </NSpace>
+            <NSpace style={{ paddingBottom: '12px' }}>
+              <NButton
+                type="primary"
+                onClick={() => {
+                  state.showEdit = true
+                  state.editMode = 'add'
+                }}
+              >
+                新增消息内容
+              </NButton>
+            </NSpace>
 
-              <div class={['section-container']}>
-                <NDataTable
-                    loading={state.loading}
-                    columns={columns()}
-                    data={state.dataList}
-                    rowKey={(row: any) => row.id}
-                    scrollX={'1400'}
-                ></NDataTable>
+            <div class={['section-container']}>
+              <NDataTable
+                loading={state.loading}
+                columns={columns()}
+                data={state.dataList}
+                rowKey={(row: any) => row.id}
+                scrollX={'1400'}
+              ></NDataTable>
 
-                <Pagination
-                    v-model:page={state.pagination.page}
-                    v-model:pageSize={state.pagination.rows}
-                    v-model:pageTotal={state.pagination.pageTotal}
-                    onList={getList}
-                    sync
-                    saveKey="wechat-config-template"
-                ></Pagination>
-              </div>
-              <NModal
-                  blockScroll={true}
-                  v-model:show={state.showEdit}
-                  preset="dialog"
-                  showIcon={false}
-                  title={(state.editMode == 'add' ? '新增' : '编辑') + '模板'}
-                  style={{width: 'auto'}}
-              >
-                <WechatConfigTemplateEdit
-                    editMode={state.editMode}
-                    rowData={state.editRowData}
-                    style={{width: '450'}}
-                    onClose={() => (state.showEdit = false)}
-                    onGetList={() => {
-                      state.pagination.page = 1
-                      getList()
-                    }}
-                />
-              </NModal>
+              <Pagination
+                v-model:page={state.pagination.page}
+                v-model:pageSize={state.pagination.rows}
+                v-model:pageTotal={state.pagination.pageTotal}
+                onList={getList}
+                sync
+                saveKey="wechat-config-template"
+              ></Pagination>
             </div>
+            <NModal
+              blockScroll={true}
+              v-model:show={state.showEdit}
+              preset="dialog"
+              showIcon={false}
+              title={(state.editMode == 'add' ? '新增' : '编辑') + '模板'}
+              style={{ width: 'auto' }}
+            >
+              <WechatConfigTemplateEdit
+                editMode={state.editMode}
+                rowData={state.editRowData}
+                style={{ width: '450' }}
+                onClose={() => (state.showEdit = false)}
+                onGetList={() => {
+                  state.pagination.page = 1
+                  getList()
+                }}
+              />
+            </NModal>
           </div>
         </div>
+      </div>
     )
   }
 })

+ 178 - 168
src/views/message/message-config/wechat/wechat-config-template.tsx

@@ -1,13 +1,30 @@
-import {NButton, NDataTable, NFormItem, NInput, NModal, NPageHeader, NSelect, NSpace, NTag, useDialog, useMessage} from 'naive-ui'
-import {defineComponent, onMounted, reactive, ref} from 'vue'
-import {useRoute, useRouter} from 'vue-router'
-import {useTabsViewStore} from '@/store/modules/tabsView'
-import SaveForm from "@components/save-form";
-import Pagination from "@components/pagination";
-import deepClone from "@/utils/deep.clone";
-import WechatConfigTemplateEdit from "@views/message/message-config/wechat/modal/wechat-config-template-edit";
-import TheTooltip from "@components/TheTooltip";
-import {wxConfigInfoDetail, wxTemplateConfigPage, wxTemplateConfigRemove, wxTemplateConfigStatus} from "@views/message/api";
+import {
+  NButton,
+  NDataTable,
+  NFormItem,
+  NInput,
+  NModal,
+  NPageHeader,
+  NSelect,
+  NSpace,
+  NTag,
+  useDialog,
+  useMessage
+} from 'naive-ui'
+import { defineComponent, onMounted, reactive, ref } from 'vue'
+import { useRoute, useRouter } from 'vue-router'
+import { useTabsViewStore } from '@/store/modules/tabsView'
+import SaveForm from '@components/save-form'
+import Pagination from '@components/pagination'
+import deepClone from '@/utils/deep.clone'
+import WechatConfigTemplateEdit from '@views/message/message-config/wechat/modal/wechat-config-template-edit'
+import TheTooltip from '@components/TheTooltip'
+import {
+  wxConfigInfoDetail,
+  wxTemplateConfigPage,
+  wxTemplateConfigRemove,
+  wxTemplateConfigStatus
+} from '@views/message/api'
 
 export default defineComponent({
   name: 'wechat-config-template',
@@ -33,7 +50,7 @@ export default defineComponent({
       editMode: 'add',
       editRowData: {} as any,
       wxConfigAppId: null as any,
-      appid: null as any,
+      appid: null as any
     })
     const tabsViewStore = useTabsViewStore()
     const gotoBack = () => {
@@ -47,9 +64,9 @@ export default defineComponent({
       if (!route.query) {
         return
       }
-      state.wxConfigAppId = route.query.id;
+      state.wxConfigAppId = route.query.id
       {
-        const {data} = await wxConfigInfoDetail(state.wxConfigAppId)
+        const { data } = await wxConfigInfoDetail(state.wxConfigAppId)
         if (data) {
           state.appid = data.appid
           state.mpName = data.mpName
@@ -81,15 +98,14 @@ export default defineComponent({
       }
       try {
         state.loading = true
-        const {data} = await wxTemplateConfigPage({
+        const { data } = await wxTemplateConfigPage({
           ...state.pagination,
           ...state.searchForm,
           appid: state.wxConfigAppId
         })
         state.pagination.pageTotal = Number(data.total)
         state.dataList = data.rows || []
-      } catch {
-      }
+      } catch {}
       state.loading = false
     }
 
@@ -108,8 +124,7 @@ export default defineComponent({
             })
             getList()
             message.success(`${statusStr}成功`)
-          } catch {
-          }
+          } catch {}
         }
       })
     }
@@ -125,13 +140,11 @@ export default defineComponent({
             await wxTemplateConfigRemove(row.id)
             getList()
             message.success('删除成功')
-          } catch {
-          }
+          } catch {}
         }
       })
     }
 
-
     const columns = (): any => {
       return [
         {
@@ -158,7 +171,7 @@ export default defineComponent({
           title: '内容',
           key: 'content.content',
           render(row: any) {
-            return <TheTooltip content={row.content.content}/>
+            return <TheTooltip content={row.content.content} />
           }
         },
         {
@@ -166,7 +179,7 @@ export default defineComponent({
           key: 'status',
           render(row: any) {
             return (
-                <NTag type={row.status ? 'primary' : 'default'}>{row.status ? '启用' : '停用'}</NTag>
+              <NTag type={row.status ? 'primary' : 'default'}>{row.status ? '启用' : '停用'}</NTag>
             )
           }
         },
@@ -176,54 +189,57 @@ export default defineComponent({
           fixed: 'right',
           render(row: any) {
             return (
-                <NSpace>
-                  {/*<NButton*/}
-                  {/*    type="primary"*/}
-                  {/*    size="small"*/}
-                  {/*    text*/}
-                  {/*    onClick={() => {*/}
-                  {/*      router.push({*/}
-                  {/*        path: '/message/wxTemplateMessage',*/}
-                  {/*        query: row.id*/}
-                  {/*      })*/}
-                  {/*    }}*/}
-                  {/*>*/}
-                  {/*  消息内容配置*/}
-                  {/*</NButton>*/}
-                  <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>
+              <NSpace>
+                {/*<NButton*/}
+                {/*    type="primary"*/}
+                {/*    size="small"*/}
+                {/*    text*/}
+                {/*    onClick={() => {*/}
+                {/*      router.push({*/}
+                {/*        path: '/message/wxTemplateMessage',*/}
+                {/*        query: row.id*/}
+                {/*      })*/}
+                {/*    }}*/}
+                {/*>*/}
+                {/*  消息内容配置*/}
+                {/*</NButton>*/}
+                <NButton
+                  type="primary"
+                  size="small"
+                  text
+                  v-auth="wxTemplateConfig/status1790945458334535681"
+                  onClick={() => {
+                    onChangeStatus(row)
+                  }}
+                >
+                  {row.status ? '停用' : '启用'}
+                </NButton>
+                <NButton
+                  type="primary"
+                  size="small"
+                  text
+                  v-auth="wxTemplateConfig/update1790945691365871618"
+                  onClick={() => {
+                    state.showEdit = true
+                    state.editRowData = deepClone(row)
+                    state.editMode = 'edit'
+                  }}
+                >
+                  修改
+                </NButton>
+                <NButton
+                  type="primary"
+                  size="small"
+                  text
+                  v-auth="wxTemplateConfig/remove1790945187923562498"
+                  disabled={!!row.status}
+                  onClick={() => {
+                    onRmove(row)
+                  }}
+                >
+                  删除
+                </NButton>
+              </NSpace>
             )
           }
         }
@@ -231,110 +247,104 @@ export default defineComponent({
     }
 
     return () => (
-        <div class="system-menu-container">
-          <NPageHeader
-              on-back={() => gotoBack()}
-              title={state.mpName}
-          ></NPageHeader>
-          <div class={['section-container']}>
-            <div class="system-menu-container">
-              <SaveForm
-                  ref={saveForm}
-                  model={state.searchForm}
-                  onSubmit={onSubmit}
-                  saveKey="wechat-config-template"
-                  onSetModel={(val: any) => (state.searchForm = val)}
-              >
-                <NFormItem label="关键字" path="keyword">
-                  <NInput
-                      placeholder="编号"
-                      v-model:value={state.searchForm.keyword}
-                      clearable
-                  />
-                </NFormItem>
-                <NFormItem label="状态" path="status">
-                  <NSelect
-                      v-model:value={state.searchForm.status}
-                      clearable
-                      options={
-                        [
-                          {
-                            label: '启用',
-                            value: 1
-                          },
-                          {
-                            label: '停用',
-                            value: 0
-                          }
-                        ] as any
+      <div class="system-menu-container">
+        <NPageHeader on-back={() => gotoBack()} title={state.mpName}></NPageHeader>
+        <div class={['section-container']}>
+          <div class="system-menu-container">
+            <SaveForm
+              ref={saveForm}
+              model={state.searchForm}
+              onSubmit={onSubmit}
+              saveKey="wechat-config-template"
+              onSetModel={(val: any) => (state.searchForm = val)}
+            >
+              <NFormItem label="关键字" path="keyword">
+                <NInput placeholder="编号" v-model:value={state.searchForm.keyword} clearable />
+              </NFormItem>
+              <NFormItem label="状态" path="status">
+                <NSelect
+                  v-model:value={state.searchForm.status}
+                  clearable
+                  options={
+                    [
+                      {
+                        label: '启用',
+                        value: 1
+                      },
+                      {
+                        label: '停用',
+                        value: 0
                       }
-                      placeholder="全部状态"
-                  />
-                </NFormItem>
-                <NFormItem>
-                  <NSpace>
-                    <NButton type="primary" onClick={onSearch}>
-                      搜索
-                    </NButton>
-                    <NButton type="default" onClick={onBtnReset}>
-                      重置
-                    </NButton>
-                  </NSpace>
-                </NFormItem>
-              </SaveForm>
+                    ] as any
+                  }
+                  placeholder="全部状态"
+                />
+              </NFormItem>
+              <NFormItem>
+                <NSpace>
+                  <NButton type="primary" onClick={onSearch}>
+                    搜索
+                  </NButton>
+                  <NButton type="default" onClick={onBtnReset}>
+                    重置
+                  </NButton>
+                </NSpace>
+              </NFormItem>
+            </SaveForm>
 
-              <NSpace style={{paddingBottom: '12px'}}>
-                <NButton
-                    type="primary"
-                    onClick={() => {
-                      state.showEdit = true
-                      state.editMode = 'add'
-                    }}
-                >
-                  新增模板
-                </NButton>
-              </NSpace>
+            <NSpace style={{ paddingBottom: '12px' }}>
+              <NButton
+                type="primary"
+                v-auth="wxTemplateConfig/save1790945603360985090"
+                onClick={() => {
+                  state.showEdit = true
+                  state.editMode = 'add'
+                }}
+              >
+                新增模板
+              </NButton>
+            </NSpace>
 
-              <div class={['section-container']}>
-                <NDataTable
-                    loading={state.loading}
-                    columns={columns()}
-                    data={state.dataList}
-                    rowKey={(row: any) => row.id}
-                    scrollX={'1400'}
-                ></NDataTable>
+            <div class={['section-container']}>
+              <NDataTable
+                loading={state.loading}
+                columns={columns()}
+                data={state.dataList}
+                rowKey={(row: any) => row.id}
+                scrollX={'1400'}
+              ></NDataTable>
 
-                <Pagination
-                    v-model:page={state.pagination.page}
-                    v-model:pageSize={state.pagination.rows}
-                    v-model:pageTotal={state.pagination.pageTotal}
-                    onList={getList}
-                    sync
-                    saveKey="wechat-config-template"
-                ></Pagination>
-              </div>
-              <NModal
-                  blockScroll={true}
-                  v-model:show={state.showEdit}
-                  preset="dialog"
-                  showIcon={false}
-                  title={(state.editMode == 'add' ? '新增' : '编辑') + '模板'}
-                  style={{width: '700px'}}
-              >
-                <WechatConfigTemplateEdit
-                    appid={state.appid}
-                    editMode={state.editMode}
-                    rowData={state.editRowData}
-                    onClose={() => (state.showEdit = false)}
-                    onGetList={() => {
-                      state.pagination.page = 1
-                      getList()
-                    }}
-                />
-              </NModal>
+              <Pagination
+                v-model:page={state.pagination.page}
+                v-model:pageSize={state.pagination.rows}
+                v-model:pageTotal={state.pagination.pageTotal}
+                onList={getList}
+                sync
+                saveKey="wechat-config-template"
+              ></Pagination>
             </div>
+            <NModal
+              blockScroll={true}
+              v-model:show={state.showEdit}
+              preset="dialog"
+              showIcon={false}
+              title={(state.editMode == 'add' ? '新增' : '编辑') + '模板'}
+              style={{ width: '700px' }}
+            >
+              <WechatConfigTemplateEdit
+                appid={state.appid}
+                editMode={state.editMode}
+                rowData={state.editRowData}
+                onClose={() => (state.showEdit = false)}
+                onGetList={() => {
+                  state.pagination.page = 1
+                  getList()
+                }}
+              />
+            </NModal>
           </div>
         </div>
+      </div>
     )
   }
 })

+ 190 - 183
src/views/message/message-config/wechat/wechat-config.tsx

@@ -1,15 +1,26 @@
-import {NButton, NDataTable, NFormItem, NInput, NModal, NSelect, NSpace, NTag, useDialog, useMessage} from 'naive-ui'
-import {defineComponent, onMounted, reactive, ref} from 'vue'
-import {useRoute, useRouter} from 'vue-router'
-import {useTabsViewStore} from '@/store/modules/tabsView'
-import SaveForm from "@components/save-form";
-import Pagination from "@components/pagination";
-import deepClone from "@/utils/deep.clone";
-import WechatConfigEdit from "@views/message/message-config/wechat/modal/wechat-config-edit";
-import {sysApplicationPage} from "@views/menu-manage/api";
-import {getMapValueByKey} from "@/utils/objectUtil";
-import {appKey} from "@/utils/constant";
-import {wxConfigInfoPage, wxConfigInfoRemove, wxConfigInfoStatus} from "@views/message/api";
+import {
+  NButton,
+  NDataTable,
+  NFormItem,
+  NInput,
+  NModal,
+  NSelect,
+  NSpace,
+  NTag,
+  useDialog,
+  useMessage
+} from 'naive-ui'
+import { defineComponent, onMounted, reactive, ref } from 'vue'
+import { useRoute, useRouter } from 'vue-router'
+import { useTabsViewStore } from '@/store/modules/tabsView'
+import SaveForm from '@components/save-form'
+import Pagination from '@components/pagination'
+import deepClone from '@/utils/deep.clone'
+import WechatConfigEdit from '@views/message/message-config/wechat/modal/wechat-config-edit'
+import { sysApplicationPage } from '@views/menu-manage/api'
+import { getMapValueByKey } from '@/utils/objectUtil'
+import { appKey } from '@/utils/constant'
+import { wxConfigInfoPage, wxConfigInfoRemove, wxConfigInfoStatus } from '@views/message/api'
 
 export default defineComponent({
   name: 'wechat-config',
@@ -36,7 +47,7 @@ export default defineComponent({
       showEdit: false,
       editMode: 'add',
       editRowData: {} as any,
-      appData: [] as any,
+      appData: [] as any
     })
     const tabsViewStore = useTabsViewStore()
     const gotoBack = () => {
@@ -47,12 +58,11 @@ export default defineComponent({
     }
 
     onMounted(async () => {
-
       state.appData = []
-      const {data} = await sysApplicationPage({page: 1, rows: 999})
+      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})
+          state.appData.push({ label: item.appName, value: item.appKey })
         })
       }
 
@@ -75,14 +85,13 @@ export default defineComponent({
     const getList = async () => {
       try {
         state.loading = true
-        const {data} = await wxConfigInfoPage({
+        const { data } = await wxConfigInfoPage({
           ...state.pagination,
-          ...state.searchForm,
+          ...state.searchForm
         })
         state.pagination.pageTotal = Number(data.total)
         state.dataList = data.rows || []
-      } catch {
-      }
+      } catch {}
       state.loading = false
     }
 
@@ -101,8 +110,7 @@ export default defineComponent({
             })
             getList()
             message.success(`${statusStr}成功`)
-          } catch {
-          }
+          } catch {}
         }
       })
     }
@@ -118,13 +126,11 @@ export default defineComponent({
             await wxConfigInfoRemove(row.id)
             getList()
             message.success('删除成功')
-          } catch {
-          }
+          } catch {}
         }
       })
     }
 
-
     const columns = (): any => {
       return [
         {
@@ -135,11 +141,7 @@ export default defineComponent({
           title: '应用',
           key: 'appKey',
           render(row: any) {
-            return (
-                <div>
-                  {getMapValueByKey(row.appKey, new Map(Object.entries(appKey)))}
-                </div>
-            )
+            return <div>{getMapValueByKey(row.appKey, new Map(Object.entries(appKey)))}</div>
           }
         },
         {
@@ -167,7 +169,7 @@ export default defineComponent({
           key: 'status',
           render(row: any) {
             return (
-                <NTag type={row.status ? 'primary' : 'default'}>{row.status ? '启用' : '停用'}</NTag>
+              <NTag type={row.status ? 'primary' : 'default'}>{row.status ? '启用' : '停用'}</NTag>
             )
           }
         },
@@ -177,56 +179,60 @@ export default defineComponent({
           fixed: 'right',
           render(row: any) {
             return (
-                <NSpace>
-                  <NButton
-                      type="primary"
-                      size="small"
-                      text
-                      onClick={() => {
-                        router.push({
-                          path: '/message/wxTemplateConfig',
-                          query: {
-                            id: row.id
-                          }
-                        })
-                      }}
-                  >
-                    查看模板
-                  </NButton>
-                  <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>
+              <NSpace>
+                <NButton
+                  type="primary"
+                  size="small"
+                  text
+                  v-auth="message/wxTemplateConfig1788457824507092993"
+                  onClick={() => {
+                    router.push({
+                      path: '/message/wxTemplateConfig',
+                      query: {
+                        id: row.id
+                      }
+                    })
+                  }}
+                >
+                  查看模板
+                </NButton>
+                <NButton
+                  type="primary"
+                  size="small"
+                  text
+                  v-auth="wxConfigInfo/status1790934722325581825"
+                  onClick={() => {
+                    onChangeStatus(row)
+                  }}
+                >
+                  {row.status ? '停用' : '启用'}
+                </NButton>
+                <NButton
+                  type="primary"
+                  size="small"
+                  text
+                  v-auth="wxConfigInfo/update1790934555132235777"
+                  onClick={() => {
+                    state.showEdit = true
+                    state.editRowData = deepClone(row)
+                    state.editMode = 'edit'
+                  }}
+                >
+                  修改
+                </NButton>
+                <NButton
+                  type="primary"
+                  size="small"
+                  text
+                  v-auth="wxConfigInfo/remove1790934636120051714"
+                  disabled={!!row.status}
+                  onClick={() => {
+                    onRmove(row)
+                  }}
+                >
+                  删除
+                </NButton>
+              </NSpace>
             )
           }
         }
@@ -234,115 +240,116 @@ export default defineComponent({
     }
 
     return () => (
-        <div class="system-menu-container">
-          <div class={['section-container']}>
-            <div class="system-menu-container">
-              <SaveForm
-                  ref={saveForm}
-                  model={state.searchForm}
-                  onSubmit={onSubmit}
-                  saveKey="wechat-config"
-                  onSetModel={(val: any) => (state.searchForm = val)}
-              >
-                <NFormItem label="关键字" path="keyword">
-                  <NInput
-                      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}
-                      clearable
-                      options={
-                        [
-                          {
-                            label: '启用',
-                            value: 1
-                          },
-                          {
-                            label: '停用',
-                            value: 0
-                          }
-                        ] as any
+      <div class="system-menu-container">
+        <div class={['section-container']}>
+          <div class="system-menu-container">
+            <SaveForm
+              ref={saveForm}
+              model={state.searchForm}
+              onSubmit={onSubmit}
+              saveKey="wechat-config"
+              onSetModel={(val: any) => (state.searchForm = val)}
+            >
+              <NFormItem label="关键字" path="keyword">
+                <NInput
+                  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}
+                  clearable
+                  options={
+                    [
+                      {
+                        label: '启用',
+                        value: 1
+                      },
+                      {
+                        label: '停用',
+                        value: 0
                       }
-                      placeholder="全部状态"
-                  />
-                </NFormItem>
-                <NFormItem>
-                  <NSpace>
-                    <NButton type="primary" onClick={onSearch}>
-                      搜索
-                    </NButton>
-                    <NButton type="default" onClick={onBtnReset}>
-                      重置
-                    </NButton>
-                  </NSpace>
-                </NFormItem>
-              </SaveForm>
+                    ] as any
+                  }
+                  placeholder="全部状态"
+                />
+              </NFormItem>
+              <NFormItem>
+                <NSpace>
+                  <NButton type="primary" onClick={onSearch}>
+                    搜索
+                  </NButton>
+                  <NButton type="default" onClick={onBtnReset}>
+                    重置
+                  </NButton>
+                </NSpace>
+              </NFormItem>
+            </SaveForm>
 
-              <NSpace style={{paddingBottom: '12px'}}>
-                <NButton
-                    type="primary"
-                    onClick={() => {
-                      state.showEdit = true
-                      state.editMode = 'add'
-                    }}
-                >
-                  新增公众号配置
-                </NButton>
-              </NSpace>
+            <NSpace style={{ paddingBottom: '12px' }}>
+              <NButton
+                type="primary"
+                v-auth="wxConfigInfo/save1790934473301364738"
+                onClick={() => {
+                  state.showEdit = true
+                  state.editMode = 'add'
+                }}
+              >
+                新增公众号配置
+              </NButton>
+            </NSpace>
 
-              <div class={['section-container']}>
-                <NDataTable
-                    loading={state.loading}
-                    columns={columns()}
-                    data={state.dataList}
-                    rowKey={(row: any) => row.id}
-                    scrollX={'1400'}
-                ></NDataTable>
+            <div class={['section-container']}>
+              <NDataTable
+                loading={state.loading}
+                columns={columns()}
+                data={state.dataList}
+                rowKey={(row: any) => row.id}
+                scrollX={'1400'}
+              ></NDataTable>
 
-                <Pagination
-                    v-model:page={state.pagination.page}
-                    v-model:pageSize={state.pagination.rows}
-                    v-model:pageTotal={state.pagination.pageTotal}
-                    onList={getList}
-                    sync
-                    saveKey="wechat-config"
-                ></Pagination>
-              </div>
-              <NModal
-                  blockScroll={true}
-                  v-model:show={state.showEdit}
-                  preset="dialog"
-                  showIcon={false}
-                  title={(state.editMode == 'add' ? '新增' : '编辑') + '短信平台'}
-                  // style={{width: 'auto'}}
-                  style={{width: '700px'}}
-              >
-                <WechatConfigEdit
-                    editMode={state.editMode}
-                    rowData={state.editRowData}
-                    appData={state.appData}
-                    onClose={() => (state.showEdit = false)}
-                    onGetList={() => {
-                      state.pagination.page = 1
-                      getList()
-                    }}
-                />
-              </NModal>
+              <Pagination
+                v-model:page={state.pagination.page}
+                v-model:pageSize={state.pagination.rows}
+                v-model:pageTotal={state.pagination.pageTotal}
+                onList={getList}
+                sync
+                saveKey="wechat-config"
+              ></Pagination>
             </div>
+            <NModal
+              blockScroll={true}
+              v-model:show={state.showEdit}
+              preset="dialog"
+              showIcon={false}
+              title={(state.editMode == 'add' ? '新增' : '编辑') + '短信平台'}
+              // style={{width: 'auto'}}
+              style={{ width: '700px' }}
+            >
+              <WechatConfigEdit
+                editMode={state.editMode}
+                rowData={state.editRowData}
+                appData={state.appData}
+                onClose={() => (state.showEdit = false)}
+                onGetList={() => {
+                  state.pagination.page = 1
+                  getList()
+                }}
+              />
+            </NModal>
           </div>
         </div>
+      </div>
     )
   }
 })

+ 39 - 63
src/views/message/message-record/index.tsx

@@ -1,13 +1,13 @@
-import {NTabPane, NTabs} from 'naive-ui'
-import {defineComponent, nextTick, onMounted, reactive, ref} from 'vue'
-import {useRoute} from 'vue-router'
-import {getTabsCache, setTabsCaches} from '@/hooks/use-async'
-import {appKey} from '@/utils/constant'
-import {sysApplicationPage} from '@views/menu-manage/api'
-import SmsRecord from "@views/message/message-record/sms-record";
-import PushRecord from "@views/message/message-record/push-record";
-import WechatRecord from "@views/message/message-record/wechat-record";
-import EmailRecord from "@views/message/message-record/email-record";
+import { NTabPane, NTabs } from 'naive-ui'
+import { defineComponent, nextTick, onMounted, reactive, ref } from 'vue'
+import { useRoute } from 'vue-router'
+import { getTabsCache, setTabsCaches } from '@/hooks/use-async'
+import { appKey } from '@/utils/constant'
+import { sysApplicationPage } from '@views/menu-manage/api'
+import SmsRecord from '@views/message/message-record/sms-record'
+import PushRecord from '@views/message/message-record/push-record'
+import WechatRecord from '@views/message/message-record/wechat-record'
+import EmailRecord from '@views/message/message-record/email-record'
 
 export default defineComponent({
   name: 'message-template-index',
@@ -33,7 +33,7 @@ export default defineComponent({
     onMounted(async () => {
       // 获取应用APP信息
       // const appKeys = Object.keys(appKey)
-      const {data} = await sysApplicationPage({page: 1, rows: 99, parentId: 0})
+      const { data } = await sysApplicationPage({ page: 1, rows: 99, parentId: 0 })
       const tempList = data.rows || []
       tempList.forEach((next: any) => {
         // if (appKeys.includes(next.appKey)) {
@@ -46,60 +46,36 @@ export default defineComponent({
 
     return () => {
       return (
-          <div class="system-menu-container">
-            <div class={['section-container']} style="padding-top: 0">
-              <NTabs
-                  ref={tabsInstRef}
-                  type="line"
-                  size="large"
-                  v-model:value={state.tabName}
-                  onUpdate:value={(val: any) => setTabs(val)}
-              >
-                {state.appKeyList.map((app: any, index: number) => (
-                    <NTabPane name={app} tab={state.appNameList[index]}>
-                      <NTabs
-                          type="line"
-                          size="large"
-                          v-model:value={state.messageSendMode}
-                      >
-                        <NTabPane
-                            name={'SMS'}
-                            tab={"短信"}
-                        >
-                          <SmsRecord
-                              appKey={app}
-                          />
-                        </NTabPane>
-                        <NTabPane
-                            name={'PUSH'}
-                            tab={"推送"}
-                        >
-                          <PushRecord
-                              appKey={app}
-                          />
-                        </NTabPane>
-                        <NTabPane
-                            name={'WECHAT'}
-                            tab={"公众号"}
-                        >
-                          <WechatRecord
-                              appKey={app}
-                          />
-                        </NTabPane>
-                        <NTabPane
-                            name={'EMAIL'}
-                            tab={"邮件"}
-                        >
-                          <EmailRecord
-                              appKey={app}
-                          />
-                        </NTabPane>
-                      </NTabs>
+        <div class="system-menu-container">
+          <div class={['section-container']} style="padding-top: 0">
+            <NTabs
+              ref={tabsInstRef}
+              type="line"
+              size="large"
+              v-model:value={state.tabName}
+              onUpdate:value={(val: any) => setTabs(val)}
+            >
+              {state.appKeyList.map((app: any, index: number) => (
+                <NTabPane name={app} tab={state.appNameList[index]}>
+                  <NTabs type="card" size="small" v-model:value={state.messageSendMode}>
+                    <NTabPane name={'SMS'} tab={'短信'}>
+                      <SmsRecord appKey={app} />
                     </NTabPane>
-                ))}
-              </NTabs>
-            </div>
+                    <NTabPane name={'PUSH'} tab={'推送'}>
+                      <PushRecord appKey={app} />
+                    </NTabPane>
+                    <NTabPane name={'WECHAT'} tab={'公众号'}>
+                      <WechatRecord appKey={app} />
+                    </NTabPane>
+                    <NTabPane name={'EMAIL'} tab={'邮件'}>
+                      <EmailRecord appKey={app} />
+                    </NTabPane>
+                  </NTabs>
+                </NTabPane>
+              ))}
+            </NTabs>
           </div>
+        </div>
       )
     }
   }

+ 112 - 121
src/views/message/message-record/sms-record.tsx

@@ -1,12 +1,23 @@
-import {defineComponent, onMounted, reactive, ref} from 'vue'
+import { defineComponent, onMounted, reactive, ref } from 'vue'
 import SaveForm from '@components/save-form'
-import {DataTableRowKey, NButton, NDataTable, NDatePicker, NFormItem, NInput, NSelect, NSpace, useDialog, useMessage} from 'naive-ui'
+import {
+  DataTableRowKey,
+  NButton,
+  NDataTable,
+  NDatePicker,
+  NFormItem,
+  NInput,
+  NSelect,
+  NSpace,
+  useDialog,
+  useMessage
+} from 'naive-ui'
 import Pagination from '@components/pagination'
-import {getMapValueByKey, getSelectDataFromObj} from '@/utils/objectUtil'
-import {clientType, messageSenderFunctionModule, messageSendStatus} from '@/utils/constant'
-import {getTimes} from "@/utils/dateUtil";
-import {sysMessagePage} from "@views/message/api";
-import TheTooltip from "@components/TheTooltip";
+import { getMapValueByKey, getSelectDataFromObj } from '@/utils/objectUtil'
+import { clientType, messageSenderFunctionModule, messageSendStatus } from '@/utils/constant'
+import { getTimes } from '@/utils/dateUtil'
+import { sysMessagePage } from '@views/message/api'
+import TheTooltip from '@components/TheTooltip'
 
 export default defineComponent({
   name: 'sms-record',
@@ -34,7 +45,7 @@ export default defineComponent({
         group: null, // 功能模块
         sendTime: null, // 发送时间
         status: null, // 发送状态
-        receiver: null, // 接收人手机号
+        receiver: null // 接收人手机号
       },
       dataList: []
     })
@@ -43,7 +54,6 @@ export default defineComponent({
       getList()
     })
 
-
     const saveForm = ref()
 
     const onSearch = () => {
@@ -66,17 +76,16 @@ export default defineComponent({
     const getList = async () => {
       try {
         state.loading = true
-        const {data} = await sysMessagePage({
+        const { data } = await sysMessagePage({
           ...state.pagination,
           ...state.searchForm,
           appKey: props.appKey,
           sendMode: 'SMS',
-          ...getTimes(state.searchForm.sendTime, ['sendTimeStart', 'sendTimeEnd']),
+          ...getTimes(state.searchForm.sendTime, ['sendTimeStart', 'sendTimeEnd'])
         })
         state.pagination.pageTotal = Number(data.total)
         state.dataList = data.rows || []
-      } catch {
-      }
+      } catch {}
       state.loading = false
     }
 
@@ -90,9 +99,7 @@ export default defineComponent({
           title: '消息内容',
           key: 'content',
           render: (row: any) => {
-            return (
-                <TheTooltip showContentWidth={400} content={row.content}/>
-            )
+            return <TheTooltip showContentWidth={400} content={row.content} />
           }
         },
         {
@@ -103,11 +110,7 @@ export default defineComponent({
           title: '发送对象',
           key: 'clientId',
           render: (row: any) => {
-            return (
-                <div>
-                  {getMapValueByKey(row.clientId, new Map(Object.entries(clientType)))}
-                </div>
-            )
+            return <div>{getMapValueByKey(row.clientId, new Map(Object.entries(clientType)))}</div>
           }
         },
         {
@@ -127,9 +130,7 @@ export default defineComponent({
           key: 'status',
           render: (row: any) => {
             return (
-                <div>
-                  {getMapValueByKey(row.status, new Map(Object.entries(messageSendStatus)))}
-                </div>
+              <div>{getMapValueByKey(row.status, new Map(Object.entries(messageSendStatus)))}</div>
             )
           }
         },
@@ -137,11 +138,7 @@ export default defineComponent({
           title: '读取状态',
           key: 'readStatus',
           render: (row: any) => {
-            return (
-                <div>
-                  {row.readStatus ? '已读' : '未读'}
-                </div>
-            )
+            return <div>{row.readStatus ? '已读' : '未读'}</div>
           }
         },
         {
@@ -149,9 +146,9 @@ export default defineComponent({
           key: 'group',
           render: (row: any) => {
             return (
-                <div>
-                  {getMapValueByKey(row.group, new Map(Object.entries(messageSenderFunctionModule)))}
-                </div>
+              <div>
+                {getMapValueByKey(row.group, new Map(Object.entries(messageSenderFunctionModule)))}
+              </div>
             )
           }
         },
@@ -163,105 +160,99 @@ export default defineComponent({
           title: '错误信息',
           key: 'errorMsg',
           render: (row: any) => {
-            return (
-                <TheTooltip content={row.errorMsg}/>
-            )
+            return <TheTooltip content={row.errorMsg} />
           }
-        },
+        }
       ]
     }
 
     return () => {
       return (
-          <div class="system-menu-container">
-            <SaveForm
-                ref={saveForm}
-                model={state.searchForm}
-                onSubmit={onSubmit}
-                saveKey="sms-record"
-                onSetModel={(val: any) => (state.searchForm = val)}
-            >
-              <NFormItem label="标题" path="title">
-                <NInput
-                    placeholder="请输入标题"
-                    v-model:value={state.searchForm.title}
-                    clearable
-                />
-              </NFormItem>
-              <NFormItem label="接收人手机号" path="receiver">
-                <NInput
-                    placeholder="请输入接收人手机号"
-                    v-model:value={state.searchForm.receiver}
-                    clearable
-                />
-              </NFormItem>
-              <NFormItem label="发送对象" path="clientId">
-                <NSelect
-                    placeholder="全部发送对象"
-                    v-model:value={state.searchForm.clientId}
-                    options={getSelectDataFromObj(clientType)}
-                    clearable
-                />
-              </NFormItem>
-              <NFormItem label="发送状态" path="status">
-                <NSelect
-                    placeholder="全部发送对象"
-                    v-model:value={state.searchForm.status}
-                    options={getSelectDataFromObj(messageSendStatus)}
-                    clearable
-                />
-              </NFormItem>
-              <NFormItem label="功能模块" path="group">
-                <NSelect
-                    filterable
-                    placeholder="全部功能模块"
-                    v-model:value={state.searchForm.group}
-                    options={getSelectDataFromObj(messageSenderFunctionModule)}
-                    clearable
-                ></NSelect>
-              </NFormItem>
-              <NFormItem label="发送时间" path="sendTime">
-                <NDatePicker
-                    v-model:value={state.searchForm.sendTime}
-                    type="daterange"
-                    clearable
-                    value-format="yyyy.MM.dd"
-                    startPlaceholder="开始时间"
-                    endPlaceholder="结束时间"
-                />
-              </NFormItem>
+        <div class="system-menu-container">
+          <SaveForm
+            ref={saveForm}
+            model={state.searchForm}
+            onSubmit={onSubmit}
+            saveKey="sms-record"
+            onSetModel={(val: any) => (state.searchForm = val)}
+          >
+            <NFormItem label="标题" path="title">
+              <NInput placeholder="请输入标题" v-model:value={state.searchForm.title} clearable />
+            </NFormItem>
+            <NFormItem label="接收人手机号" path="receiver">
+              <NInput
+                placeholder="请输入接收人手机号"
+                v-model:value={state.searchForm.receiver}
+                clearable
+              />
+            </NFormItem>
+            <NFormItem label="发送对象" path="clientId">
+              <NSelect
+                placeholder="全部发送对象"
+                v-model:value={state.searchForm.clientId}
+                options={getSelectDataFromObj(clientType)}
+                clearable
+              />
+            </NFormItem>
+            <NFormItem label="发送状态" path="status">
+              <NSelect
+                placeholder="全部发送对象"
+                v-model:value={state.searchForm.status}
+                options={getSelectDataFromObj(messageSendStatus)}
+                clearable
+              />
+            </NFormItem>
+            <NFormItem label="功能模块" path="group">
+              <NSelect
+                filterable
+                placeholder="全部功能模块"
+                v-model:value={state.searchForm.group}
+                options={getSelectDataFromObj(messageSenderFunctionModule)}
+                clearable
+              ></NSelect>
+            </NFormItem>
+            <NFormItem label="发送时间" path="sendTime">
+              <NDatePicker
+                v-model:value={state.searchForm.sendTime}
+                type="daterange"
+                clearable
+                value-format="yyyy.MM.dd"
+                startPlaceholder="开始时间"
+                endPlaceholder="结束时间"
+              />
+            </NFormItem>
 
-              <NFormItem>
-                <NSpace>
-                  <NButton type="primary" onClick={onSearch}>
-                    搜索
-                  </NButton>
-                  <NButton type="default" onClick={onBtnReset}>
-                    重置
-                  </NButton>
-                </NSpace>
-              </NFormItem>
-            </SaveForm>
+            <NFormItem>
+              <NSpace>
+                <NButton type="primary" onClick={onSearch}>
+                  搜索
+                </NButton>
+                <NButton type="default" onClick={onBtnReset}>
+                  重置
+                </NButton>
+              </NSpace>
+            </NFormItem>
+          </SaveForm>
 
-            <div class={['section-container']}>
-              <NDataTable
-                  loading={state.loading}
-                  columns={columns()}
-                  data={state.dataList}
-                  rowKey={(row: any) => row.id}
-                  scrollX={'1400'}
-              ></NDataTable>
+          <div class={['section-container']}>
+            <NDataTable
+              loading={state.loading}
+              columns={columns()}
+              data={state.dataList}
+              rowKey={(row: any) => row.id}
+              scrollX={'1400'}
+            ></NDataTable>
 
-              <Pagination
-                  v-model:page={state.pagination.page}
-                  v-model:pageSize={state.pagination.rows}
-                  v-model:pageTotal={state.pagination.pageTotal}
-                  onList={getList}
-                  sync
-                  saveKey="sms-record"
-              ></Pagination>
-            </div>
+            <Pagination
+              v-model:page={state.pagination.page}
+              v-model:pageSize={state.pagination.rows}
+              v-model:pageTotal={state.pagination.pageTotal}
+              onList={getList}
+              sync
+              saveKey="sms-record"
+            ></Pagination>
           </div>
+        </div>
       )
     }
   }

+ 9 - 9
src/views/message/message-template/index.tsx

@@ -4,7 +4,7 @@ import { useRoute } from 'vue-router'
 import { getTabsCache, setTabsCaches } from '@/hooks/use-async'
 import { appKey } from '@/utils/constant'
 import { sysApplicationPage } from '@views/menu-manage/api'
-import MessageTemplateList from "@views/message/message-template/message-template-list";
+import MessageTemplateList from '@views/message/message-template/message-template-list'
 
 export default defineComponent({
   name: 'message-template-index',
@@ -33,8 +33,8 @@ export default defineComponent({
       const tempList = data.rows || []
       tempList.forEach((next: any) => {
         // if (appKeys.includes(next.appKey)) {
-          state.appKeyList.push(next.appKey)
-          state.appNameList.push(next.appName)
+        state.appKeyList.push(next.appKey)
+        state.appNameList.push(next.appName)
         // }
       })
       nextTick(() => tabsInstRef.value?.syncBarPosition())
@@ -52,12 +52,12 @@ export default defineComponent({
               onUpdate:value={(val: any) => setTabs(val)}
             >
               {state.appKeyList.map((app: any, index: number) => (
-                  <NTabPane name={app} tab={state.appNameList[index]}>
-                    <MessageTemplateList
-                        // v-auth="musicSheet/pageByApplication1751225386909302786"
-                        appKey={app}
-                    />
-                  </NTabPane>
+                <NTabPane name={app} tab={state.appNameList[index]}>
+                  <MessageTemplateList
+                    // v-auth="musicSheet/pageByApplication1751225386909302786"
+                    appKey={app}
+                  />
+                </NTabPane>
               ))}
             </NTabs>
           </div>

+ 164 - 162
src/views/message/message-template/message-template-list.tsx

@@ -1,14 +1,25 @@
-import {defineComponent, onMounted, reactive, ref} from 'vue'
+import { defineComponent, onMounted, reactive, ref } from 'vue'
 import SaveForm from '@components/save-form'
-import {DataTableRowKey, NButton, NDataTable, NFormItem, NInput, NModal, NSelect, NSpace, NTag, useDialog, useMessage} from 'naive-ui'
+import {
+  DataTableRowKey,
+  NButton,
+  NDataTable,
+  NFormItem,
+  NInput,
+  NModal,
+  NSelect,
+  NSpace,
+  NTag,
+  useDialog,
+  useMessage
+} from 'naive-ui'
 import Pagination from '@components/pagination'
 import TheTooltip from '@components/TheTooltip'
-import {getMapValueByKey, getSelectDataFromObj} from '@/utils/objectUtil'
-import {clientType, messageSenderFunctionModule, messageSenderMode} from '@/utils/constant'
-import {sysMessageConfigPage, sysMessageConfigStatus} from "@views/message/api";
-import deepClone from "@/utils/deep.clone";
-import MessageTemplateEdit from '@views/message/message-template/modal/message-template-edit';
-
+import { getMapValueByKey, getSelectDataFromObj } from '@/utils/objectUtil'
+import { clientType, messageSenderFunctionModule, messageSenderMode } from '@/utils/constant'
+import { sysMessageConfigPage, sysMessageConfigStatus } from '@views/message/api'
+import deepClone from '@/utils/deep.clone'
+import MessageTemplateEdit from '@views/message/message-template/modal/message-template-edit'
 
 export default defineComponent({
   name: 'message-template-list',
@@ -40,7 +51,7 @@ export default defineComponent({
       dataList: [] as any[],
       showEdit: false,
       editMode: 'add',
-      editRowData: {} as any,
+      editRowData: {} as any
     })
 
     onMounted(async () => {
@@ -48,7 +59,6 @@ export default defineComponent({
       getList()
     })
 
-
     const saveForm = ref()
 
     const onSearch = () => {
@@ -71,15 +81,14 @@ export default defineComponent({
     const getList = async () => {
       try {
         state.loading = true
-        const {data} = await sysMessageConfigPage({
+        const { data } = await sysMessageConfigPage({
           ...state.pagination,
           ...state.searchForm,
-          appKey: props.appKey,
+          appKey: props.appKey
         })
         state.pagination.pageTotal = Number(data.total)
         state.dataList = data.rows || []
-      } catch {
-      }
+      } catch {}
       state.loading = false
     }
 
@@ -98,8 +107,7 @@ export default defineComponent({
             })
             getList()
             message.success(`${statusStr}成功`)
-          } catch {
-          }
+          } catch {}
         }
       })
     }
@@ -119,9 +127,9 @@ export default defineComponent({
           key: 'sendMode',
           render: (row: any) => {
             return (
-                <div>
-                  {getMapValueByKey(row.sendMode, new Map(Object.entries(messageSenderMode)))}
-                </div>
+              <div>
+                {getMapValueByKey(row.sendMode, new Map(Object.entries(messageSenderMode)))}
+              </div>
             )
           }
         },
@@ -129,11 +137,7 @@ export default defineComponent({
           title: '客户端',
           key: 'clientId',
           render: (row: any) => {
-            return (
-                <div>
-                  {getMapValueByKey(row.clientId, new Map(Object.entries(clientType)))}
-                </div>
-            )
+            return <div>{getMapValueByKey(row.clientId, new Map(Object.entries(clientType)))}</div>
           }
         },
         {
@@ -145,9 +149,9 @@ export default defineComponent({
           key: 'group',
           render: (row: any) => {
             return (
-                <div>
-                  {getMapValueByKey(row.group, new Map(Object.entries(messageSenderFunctionModule)))}
-                </div>
+              <div>
+                {getMapValueByKey(row.group, new Map(Object.entries(messageSenderFunctionModule)))}
+              </div>
             )
           }
         },
@@ -164,18 +168,14 @@ export default defineComponent({
           key: 'content',
           minWidth: '200px',
           render(row: any) {
-            return (
-                <TheTooltip showContentWidth={300} content={row.content}/>
-            )
+            return <TheTooltip showContentWidth={300} content={row.content} />
           }
         },
         {
           title: '示例',
           key: 'contentExample',
           render(row: any) {
-            return (
-                <TheTooltip showContentWidth={300} content={row.contentExample}/>
-            )
+            return <TheTooltip showContentWidth={300} content={row.contentExample} />
           }
         },
         {
@@ -191,7 +191,9 @@ export default defineComponent({
           key: 'sendFlag',
           render(row: any) {
             return (
-                <NTag type={row.sendFlag ? 'primary' : 'default'}>{row.sendFlag ? '启用' : '停用'}</NTag>
+              <NTag type={row.sendFlag ? 'primary' : 'default'}>
+                {row.sendFlag ? '启用' : '停用'}
+              </NTag>
             )
           }
         },
@@ -201,29 +203,29 @@ export default defineComponent({
           fixed: 'right',
           render(row: any) {
             return (
-                <NSpace>
-                  <NButton
-                      type="primary"
-                      size="small"
-                      text
-                      // v-auth="musicSheetApplicationExtend/status1751235150422736897"
-                      onClick={() => onChangeStatus(row)}
-                  >
-                    {row.sendFlag ? '停用' : '启用'}
-                  </NButton>
-                  {/*<NButton*/}
-                  {/*    type="primary"*/}
-                  {/*    size="small"*/}
-                  {/*    text*/}
-                  {/*    onClick={() => {*/}
-                  {/*      state.showEdit = true*/}
-                  {/*      state.editRowData = deepClone(row)*/}
-                  {/*      state.editMode = 'edit'*/}
-                  {/*    }}*/}
-                  {/*>*/}
-                  {/*  修改*/}
-                  {/*</NButton>*/}
-                </NSpace>
+              <NSpace>
+                <NButton
+                  type="primary"
+                  size="small"
+                  text
+                  v-auth="sysMessageConfig/status1790940236048568322"
+                  onClick={() => onChangeStatus(row)}
+                >
+                  {row.sendFlag ? '停用' : '启用'}
+                </NButton>
+                {/*<NButton*/}
+                {/*    type="primary"*/}
+                {/*    size="small"*/}
+                {/*    text*/}
+                {/*    onClick={() => {*/}
+                {/*      state.showEdit = true*/}
+                {/*      state.editRowData = deepClone(row)*/}
+                {/*      state.editMode = 'edit'*/}
+                {/*    }}*/}
+                {/*>*/}
+                {/*  修改*/}
+                {/*</NButton>*/}
+              </NSpace>
             )
           }
         }
@@ -232,115 +234,115 @@ export default defineComponent({
 
     return () => {
       return (
-          <div class="system-menu-container">
-            <SaveForm
-                ref={saveForm}
-                model={state.searchForm}
-                onSubmit={onSubmit}
-                saveKey="message-template"
-                onSetModel={(val: any) => (state.searchForm = val)}
-            >
-              <NFormItem label="消息名称" path="description">
-                <NInput
-                    placeholder="请输入消息名称"
-                    v-model:value={state.searchForm.description}
-                    clearable
-                />
-              </NFormItem>
-              <NFormItem label="消息类型" path="sendMode">
-                <NSelect
-                    placeholder="全部类型"
-                    v-model:value={state.searchForm.sendMode}
-                    options={getSelectDataFromObj(messageSenderMode)}
-                    clearable
-                />
-              </NFormItem>
-              <NFormItem label="客户端" path="clientId">
-                <NSelect
-                    placeholder="请选择所属项目"
-                    v-model:value={state.searchForm.clientId}
-                    options={getSelectDataFromObj(clientType)}
-                    clearable
-                />
-              </NFormItem>
-              <NFormItem label="功能模块" path="model">
-                <NSelect
-                    filterable
-                    placeholder="全部功能模块"
-                    options={getSelectDataFromObj(messageSenderFunctionModule)}
-                    clearable
-                ></NSelect>
-              </NFormItem>
-              <NFormItem label="状态" path="status">
-                <NSelect
-                    v-model:value={state.searchForm.sendFlag}
-                    placeholder="请选择状态"
-                    options={
-                      [
-                        {
-                          label: '启用',
-                          value: 1
-                        },
-                        {
-                          label: '停用',
-                          value: 0
-                        }
-                      ] as any
+        <div class="system-menu-container">
+          <SaveForm
+            ref={saveForm}
+            model={state.searchForm}
+            onSubmit={onSubmit}
+            saveKey="message-template"
+            onSetModel={(val: any) => (state.searchForm = val)}
+          >
+            <NFormItem label="消息名称" path="description">
+              <NInput
+                placeholder="请输入消息名称"
+                v-model:value={state.searchForm.description}
+                clearable
+              />
+            </NFormItem>
+            <NFormItem label="消息类型" path="sendMode">
+              <NSelect
+                placeholder="全部类型"
+                v-model:value={state.searchForm.sendMode}
+                options={getSelectDataFromObj(messageSenderMode)}
+                clearable
+              />
+            </NFormItem>
+            <NFormItem label="客户端" path="clientId">
+              <NSelect
+                placeholder="请选择所属项目"
+                v-model:value={state.searchForm.clientId}
+                options={getSelectDataFromObj(clientType)}
+                clearable
+              />
+            </NFormItem>
+            <NFormItem label="功能模块" path="model">
+              <NSelect
+                filterable
+                placeholder="全部功能模块"
+                options={getSelectDataFromObj(messageSenderFunctionModule)}
+                clearable
+              ></NSelect>
+            </NFormItem>
+            <NFormItem label="状态" path="status">
+              <NSelect
+                v-model:value={state.searchForm.sendFlag}
+                placeholder="请选择状态"
+                options={
+                  [
+                    {
+                      label: '启用',
+                      value: 1
+                    },
+                    {
+                      label: '停用',
+                      value: 0
                     }
-                    clearable
-                />
-              </NFormItem>
-              <NFormItem>
-                <NSpace>
-                  <NButton type="primary" onClick={onSearch}>
-                    搜索
-                  </NButton>
-                  <NButton type="default" onClick={onBtnReset}>
-                    重置
-                  </NButton>
-                </NSpace>
-              </NFormItem>
-            </SaveForm>
+                  ] as any
+                }
+                clearable
+              />
+            </NFormItem>
+            <NFormItem>
+              <NSpace>
+                <NButton type="primary" onClick={onSearch}>
+                  搜索
+                </NButton>
+                <NButton type="default" onClick={onBtnReset}>
+                  重置
+                </NButton>
+              </NSpace>
+            </NFormItem>
+          </SaveForm>
 
-            <div class={['section-container']}>
-              <NDataTable
-                  loading={state.loading}
-                  columns={columns()}
-                  data={state.dataList}
-                  rowKey={(row: any) => row.applicationExtendId}
-                  // onUpdateCheckedRowKeys={handleCheck}
-                  scrollX={'1400'}
-              ></NDataTable>
+          <div class={['section-container']}>
+            <NDataTable
+              loading={state.loading}
+              columns={columns()}
+              data={state.dataList}
+              rowKey={(row: any) => row.applicationExtendId}
+              // onUpdateCheckedRowKeys={handleCheck}
+              scrollX={'1400'}
+            ></NDataTable>
 
-              <Pagination
-                  v-model:page={state.pagination.page}
-                  v-model:pageSize={state.pagination.rows}
-                  v-model:pageTotal={state.pagination.pageTotal}
-                  onList={getList}
-                  sync
-                  saveKey="message-template"
-              ></Pagination>
-            </div>
-            <NModal
-                blockScroll={true}
-                v-model:show={state.showEdit}
-                preset="dialog"
-                showIcon={false}
-                title={(state.editMode == 'add' ? '新增' : '编辑') + '消息模板'}
-                // style={{width: 'auto'}}
-                style={{width: '700px'}}
-            >
-              <MessageTemplateEdit
-                  editMode={state.editMode}
-                  rowData={state.editRowData}
-                  onClose={() => (state.showEdit = false)}
-                  onGetList={() => {
-                    state.pagination.page = 1
-                    getList()
-                  }}
-              />
-            </NModal>
+            <Pagination
+              v-model:page={state.pagination.page}
+              v-model:pageSize={state.pagination.rows}
+              v-model:pageTotal={state.pagination.pageTotal}
+              onList={getList}
+              sync
+              saveKey="message-template"
+            ></Pagination>
           </div>
+          <NModal
+            blockScroll={true}
+            v-model:show={state.showEdit}
+            preset="dialog"
+            showIcon={false}
+            title={(state.editMode == 'add' ? '新增' : '编辑') + '消息模板'}
+            // style={{width: 'auto'}}
+            style={{ width: '700px' }}
+          >
+            <MessageTemplateEdit
+              editMode={state.editMode}
+              rowData={state.editRowData}
+              onClose={() => (state.showEdit = false)}
+              onGetList={() => {
+                state.pagination.page = 1
+                getList()
+              }}
+            />
+          </NModal>
+        </div>
       )
     }
   }