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 { appSendConfigPage, emailConfigPage, emailConfigRemove, emailConfigStatus, smsConfigDetail, smsConfigRemove, smsConfigStatus, wxConfigInfoPage, wxConfigInfoStatus } from "@views/music-library/api"; import PushConfigEdit from "@views/message/message-config/push/modal/push-config-edit"; import deepClone from "@/utils/deep.clone"; import WechatConfigEdit from "@views/message/message-config/wechat/modal/wechat-config-edit"; import EmailConfigEdit from "@views/message/message-config/email/modal/email-config-edit"; import {getMapValueByKey} from "@/utils/objectUtil"; import {appKey} from "@/utils/constant"; import {sysApplicationPage} from "@views/menu-manage/api"; export default defineComponent({ name: 'email-config', setup(props, ctx) { const route = useRoute() const router = useRouter() const dialog = useDialog() const message = useMessage() const state = reactive({ loading: false, appId: null as any, pagination: { page: 1, rows: 10, pageTotal: 0 }, searchForm: { keyword: null, //关键字 status: null, // 状态 appKey: null // 接入应用 }, name: null as any, dataList: [], showEdit: false, editMode: 'add', editRowData: {} as any, appData: [] as any, }) const tabsViewStore = useTabsViewStore() const gotoBack = () => { tabsViewStore.closeCurrentTab(route) router.push({ path: '/message/messageConfig' }) } onMounted(async () => { // 应用 { state.appData = [] const {data} = await sysApplicationPage({page: 1, rows: 999}) if (data && data.rows) { data.rows.forEach((item: any) => { state.appData.push({label: item.appName, value: item.appKey}) }) } } getList() }) const saveForm = ref() const onSearch = () => { saveForm.value?.submit() } const onBtnReset = () => { saveForm.value?.reset() } const onSubmit = () => { state.pagination.page = 1 getList() } const getList = async () => { try { state.loading = true const {data} = await emailConfigPage({ ...state.pagination, ...state.searchForm, }) state.pagination.pageTotal = Number(data.total) state.dataList = data.rows || [] } catch { } state.loading = false } const onChangeStatus = (row: any) => { const statusStr = row.status ? '停用' : '启用' dialog.warning({ title: '提示', content: `是否${statusStr}?`, positiveText: '确定', negativeText: '取消', onPositiveClick: async () => { try { await emailConfigStatus({ id: row.id, status: !row.status }) getList() message.success(`${statusStr}成功`) } catch { } } }) } const onRmove = (row: any): void => { dialog.warning({ title: '提示', content: `删除"${row.name}",是否继续?`, positiveText: '确定', negativeText: '取消', onPositiveClick: async () => { try { await emailConfigRemove(row.id) getList() message.success('删除成功') } catch { } } }) } const columns = (): any => { return [ { title: '编号', key: 'id' }, { title: '平台名称', key: 'name' }, { title: '接入应用', key: 'appKey', render(row: any) { return (