refactor: use Dialog

pull/2/head
xingyu4j 2022-11-14 09:15:11 +08:00
parent e2dba57d8f
commit 6171dead14
8 changed files with 222 additions and 240 deletions

View File

@ -113,8 +113,7 @@
</Table>
</div>
</el-card>
<XModal id="dictModel" v-model="dialogVisible" :title="dialogTitle">
<template #default>
<Dialog id="dictModel" v-model="dialogVisible" :title="dialogTitle">
<Form
v-if="['typeCreate', 'typeUpdate'].includes(actionType)"
:schema="DictTypeSchemas.allSchemas.formSchema"
@ -127,7 +126,6 @@
:rules="DictDataSchemas.dictDataRules"
ref="dataFormRef"
/>
</template>
<!-- 操作按钮 -->
<template #footer>
<XButton
@ -146,7 +144,7 @@
/>
<XButton :title="t('dialog.close')" @click="dialogVisible = false" />
</template>
</XModal>
</Dialog>
</div>
</template>
<script setup lang="ts">

View File

@ -38,8 +38,7 @@
</vxe-grid>
</ContentWrap>
<!-- 弹窗 -->
<XModal id="errorCodeModel" v-model="dialogVisible" :title="dialogTitle">
<template #default>
<Dialog id="errorCodeModel" v-model="dialogVisible" :title="dialogTitle">
<!-- 对话框(添加 / 修改) -->
<Form
v-if="['create', 'update'].includes(actionType)"
@ -53,7 +52,6 @@
:schema="allSchemas.detailSchema"
:data="detailRef"
/>
</template>
<template #footer>
<!-- 按钮保存 -->
<XButton
@ -66,7 +64,7 @@
<!-- 按钮关闭 -->
<XButton :loading="actionLoading" :title="t('dialog.close')" @click="dialogVisible = false" />
</template>
</XModal>
</Dialog>
</template>
<script setup lang="ts">

View File

@ -17,21 +17,20 @@
</vxe-grid>
</ContentWrap>
<!-- 弹窗 -->
<XModal id="postModel" v-model="dialogVisible" :title="dialogTitle">
<template #default>
<Dialog id="postModel" v-model="dialogVisible" :title="dialogTitle">
<!-- 表单详情 -->
<Descriptions :schema="allSchemas.detailSchema" :data="detailRef" />
</template>
<template #footer>
<!-- 按钮关闭 -->
<XButton :title="t('dialog.close')" @click="dialogVisible = false" />
</template>
</XModal>
</Dialog>
</template>
<script setup lang="ts">
// import
import { ref } from 'vue'
import { useI18n } from '@/hooks/web/useI18n'
import { useMessage } from '@/hooks/web/useMessage'
import { useVxeGrid } from '@/hooks/web/useVxeGrid'
import { VxeGridInstance } from 'vxe-table'
// import
@ -40,6 +39,7 @@ import { getLoginLogPageApi, exportLoginLogApi, LoginLogVO } from '@/api/system/
import download from '@/utils/download'
const { t } = useI18n() //
const message = useMessage() //
//
const xGrid = ref<VxeGridInstance>() // Grid Ref
const { gridOptions } = useVxeGrid<LoginLogVO>({
@ -59,13 +59,14 @@ const handleDetail = async (row: LoginLogVO) => {
}
//
// TODO @
const handleExport = async () => {
message.exportConfirm().then(async () => {
const queryParams = Object.assign(
{},
JSON.parse(JSON.stringify(xGrid.value?.getRefMaps().refForm.value.data)) // TODO @ util
)
const res = await exportLoginLogApi(queryParams)
download.excel(res, '登录列表.xls')
})
}
</script>

View File

@ -97,8 +97,7 @@
</vxe-table>
</ContentWrap>
<!-- 添加或修改菜单对话框 -->
<XModal v-model="dialogVisible" id="menuModel" :title="dialogTitle">
<template #default>
<Dialog v-model="dialogVisible" id="menuModel" :title="dialogTitle">
<!-- 对话框(添加 / 修改) -->
<el-form
ref="formRef"
@ -179,12 +178,7 @@
</template>
<el-col :span="12">
<el-form-item label="显示排序" prop="sort">
<el-input-number
v-model="menuForm.sort"
controls-position="right"
:min="0"
clearable
/>
<el-input-number v-model="menuForm.sort" controls-position="right" :min="0" clearable />
</el-form-item>
</el-col>
<el-col :span="12">
@ -234,7 +228,6 @@
</template>
</el-row>
</el-form>
</template>
<template #footer>
<!-- 按钮保存 -->
<XButton
@ -247,7 +240,7 @@
<!-- 按钮关闭 -->
<XButton :loading="actionLoading" @click="dialogVisible = false" :title="t('dialog.close')" />
</template>
</XModal>
</Dialog>
</template>
<script setup lang="ts">
// import

View File

@ -38,8 +38,7 @@
</vxe-grid>
</ContentWrap>
<!-- 弹窗 -->
<XModal id="noticeModel" v-model="dialogVisible" :title="dialogTitle">
<template #default>
<Dialog id="noticeModel" v-model="dialogVisible" :title="dialogTitle">
<!-- 对话框(添加 / 修改) -->
<Form
ref="formRef"
@ -53,7 +52,6 @@
:schema="allSchemas.detailSchema"
:data="detailRef"
/>
</template>
<template #footer>
<!-- 按钮保存 -->
<XButton
@ -66,7 +64,7 @@
<!-- 按钮关闭 -->
<XButton :loading="actionLoading" :title="t('dialog.close')" @click="dialogVisible = false" />
</template>
</XModal>
</Dialog>
</template>
<script setup lang="ts">
// import

View File

@ -48,8 +48,7 @@
</vxe-grid>
</ContentWrap>
<!-- 弹窗 -->
<XModal id="postModel" v-model="dialogVisible" :title="dialogTitle">
<template #default>
<Dialog id="postModel" v-model="dialogVisible" :title="dialogTitle">
<!-- 表单添加/修改 -->
<Form
ref="formRef"
@ -64,7 +63,6 @@
:schema="allSchemas.detailSchema"
:data="detailRef"
/>
</template>
<template #footer>
<!-- 按钮保存 -->
<XButton
@ -77,7 +75,7 @@
<!-- 按钮关闭 -->
<XButton :loading="actionLoading" :title="t('dialog.close')" @click="dialogVisible = false" />
</template>
</XModal>
</Dialog>
</template>
<script setup lang="ts">
// import

View File

@ -25,8 +25,7 @@
</vxe-grid>
</ContentWrap>
<!-- 弹窗 -->
<XModal id="postModel" v-model="dialogVisible" :title="dialogTitle">
<template #default>
<Dialog id="postModel" v-model="dialogVisible" :title="dialogTitle">
<!-- 对话框(详情) -->
<Descriptions :schema="allSchemas.detailSchema" :data="detailRef">
<template #resultCode="{ row }">
@ -36,12 +35,11 @@
<span>{{ row.duration + 'ms' }}</span>
</template>
</Descriptions>
</template>
<template #footer>
<!-- 按钮关闭 -->
<XButton :loading="actionLoading" :title="t('dialog.close')" @click="dialogVisible = false" />
</template>
</XModal>
</Dialog>
</template>
<script setup lang="ts">
// import

View File

@ -45,8 +45,7 @@
</vxe-grid>
</ContentWrap>
<!-- 弹窗 -->
<XModal id="postModel" v-model="dialogVisible" :title="dialogTitle">
<template #default>
<Dialog id="postModel" v-model="dialogVisible" :title="dialogTitle">
<!-- 表单添加/修改 -->
<Form
ref="formRef"
@ -60,7 +59,6 @@
:schema="allSchemas.detailSchema"
:data="detailRef"
/>
</template>
<template #footer>
<!-- 按钮保存 -->
<XButton
@ -73,7 +71,7 @@
<!-- 按钮关闭 -->
<XButton :loading="actionLoading" :title="t('dialog.close')" @click="dialogVisible = false" />
</template>
</XModal>
</Dialog>
</template>
<script setup lang="ts">
// import