|
@@ -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>
|
|
|
)
|
|
|
}
|
|
|
})
|