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',
setup(props, ctx) {
const route = useRoute()
const router = useRouter()
const dialog = useDialog()
const message = useMessage()
const state = reactive({
loading: false,
pagination: {
page: 1,
rows: 10,
pageTotal: 0
},
searchForm: {
keyword: null, //关键字
status: null // 状态
},
dataList: [],
showEdit: false,
editMode: 'add',
editRowData: {} as any,
appid: null as any,
wxTemplateConfigId: null as any,
})
const tabsViewStore = useTabsViewStore()
const gotoBack = () => {
tabsViewStore.closeCurrentTab(route)
router.push({
path: '/message/wxTemplateConfig',
query: state.appid
})
}
onMounted(async () => {
state.wxTemplateConfigId = route.query
if (!state.wxTemplateConfigId) {
return
}
{
const {data} = await wxTemplateConfigDetail(state.wxTemplateConfigId)
if (data) {
state.appid = data.appid
} else {
return
}
}
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.appid) {
return
}
try {
state.loading = true
const {data} = await wxTemplateMessagePage({
...state.pagination,
...state.searchForm,
appid: state.appid
})
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 wxTemplateConfigStatus({
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 wxTemplateConfigRemove(row.id)
getList()
message.success('删除成功')
} catch {
}
}
})
}
const columns = (): any => {
return [
{
title: '编号',
key: 'id'
},
{
title: '应用标志',
key: 'command'
},
{
title: '指令',
key: 'wxTemplateId'
},
{
title: '标题',
key: 'url'
},
{
title: '内容',
key: 'description'
},
{
title: '版本',
key: 'description'
},
{
title: '类型WECHAT',
key: 'description'
},
{
title: 'APP',
key: 'description'
},
{
title: '描述',
key: 'description'
},
{
title: '状态',
key: 'status',
render(row: any) {
return (