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',
setup(props, ctx) {
const dialog = useDialog()
const route = useRoute()
const message = useMessage()
const router = useRouter()
const state = reactive({
loading: false,
appId: null as any,
pagination: {
page: 1,
rows: 10,
pageTotal: 0
},
searchForm: {
keyword: null, //关键字
status: null // 状态
},
name: null as any,
smsConfigId: null as any,
dataList: [],
showEdit: false,
editMode: 'add',
editRowData: {} as any,
appData: [] as any,
appMap: new Map()
})
const tabsViewStore = useTabsViewStore()
const gotoBack = () => {
tabsViewStore.closeCurrentTab(route)
router.push({
path: '/message/messageConfig'
})
}
onMounted(async () => {
if (!route.query) {
return
}
state.smsConfigId = route.query.id
{
const { data } = await smsConfigDetail(state.smsConfigId)
if (data) {
state.name = data.name
}
}
// 应用
{
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 })
state.appMap.set(item.appKey, item.appName)
})
}
}
getList()
})
const saveForm = ref()
const onSearch = () => {
saveForm.value?.submit()
}
const onBtnReset = () => {
saveForm.value?.reset()
}
const onSubmit = () => {
state.pagination.page = 1
getList()
}
const getList = async () => {
if (!state.smsConfigId) {
return
}
try {
state.loading = true
const { data } = await smsAppConfigPage({
...state.pagination,
...state.searchForm,
sysConfigId: state.smsConfigId
})
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 smsAppConfigStatus({
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 smsAppConfigRemove(row.id)
getList()
message.success('删除成功')
} catch {}
}
})
}
const columns = (): any => {
return [
{
title: '编号',
key: 'id'
},
{
title: '应用',
key: 'appKey',
render(row: any) {
return state.appMap.get(row.appKey)
}
},
{
title: '签名',
key: 'sign'
},
{
title: '拓展参数',
key: 'extendData',
render: (row: any) => {
return