This commit is contained in:
zjl 2024-12-12 11:01:54 +08:00
commit 0a9e6a9b4d
10 changed files with 98 additions and 75 deletions

View File

@ -7,6 +7,7 @@
:row-key="(row) => row.id" :row-key="(row) => row.id"
ref="tableRef" ref="tableRef"
@update:checked-row-keys="onSelectionChange" @update:checked-row-keys="onSelectionChange"
:autoScrollX="true"
> >
<template #tableTitle> <template #tableTitle>
<n-space> <n-space>

View File

@ -1,6 +1,6 @@
<template> <template>
<PageWrapper> <PageWrapper>
<n-grid x-gap="12" cols="4"> <n-grid x-gap="12" cols="1 s:1 m:1 l:3 xl:3 2xl:3" responsive="screen">
<n-grid-item span="1"> <n-grid-item span="1">
<n-card shadow="hover" class="border-0"> <n-card shadow="hover" class="border-0">
<template #header> <template #header>
@ -79,7 +79,7 @@
</template> </template>
</n-card> </n-card>
</n-grid-item> </n-grid-item>
<n-grid-item span="3"> <n-grid-item span="2">
<n-card shadow="hover" class="mb-4 border-0 proCard"> <n-card shadow="hover" class="mb-4 border-0 proCard">
<configItem :configId="configId" v-if="configItemShow" /> <configItem :configId="configId" v-if="configItemShow" />
</n-card> </n-card>

View File

@ -7,6 +7,7 @@
:row-key="(row) => row.id" :row-key="(row) => row.id"
ref="tableRef" ref="tableRef"
@update:checked-row-keys="onSelectionChange" @update:checked-row-keys="onSelectionChange"
:autoScrollX="true"
> >
<template #tableTitle> <template #tableTitle>
<n-space> <n-space>

View File

@ -1,6 +1,6 @@
<template> <template>
<PageWrapper> <PageWrapper>
<n-grid x-gap="12" cols="4"> <n-grid x-gap="12" cols="1 s:1 m:1 l:3 xl:3 2xl:3" responsive="screen">
<n-grid-item span="1"> <n-grid-item span="1">
<n-card shadow="hover" class="border-0"> <n-card shadow="hover" class="border-0">
<template #header> <template #header>
@ -13,7 +13,7 @@
clearable clearable
/> />
</n-gi> </n-gi>
<n-gi span="6" style="text-align: right"> <n-gi span="6" style="text-align: right; margin-left: 5px">
<n-button <n-button
type="primary" type="primary"
@click=" @click="
@ -79,7 +79,7 @@
</template> </template>
</n-card> </n-card>
</n-grid-item> </n-grid-item>
<n-grid-item span="3"> <n-grid-item span="2">
<n-card shadow="hover" class="mb-4 border-0 proCard"> <n-card shadow="hover" class="mb-4 border-0 proCard">
<dictItem :dictId="dictId" v-if="dictItemShow" /> <dictItem :dictId="dictId" v-if="dictItemShow" />
</n-card> </n-card>

View File

@ -25,7 +25,7 @@ export const columns = [
return h( return h(
NTag, NTag,
{ {
type: record.type == 1 ? 'processing' : 'success', type: record.type == 1 ? 'info' : 'success',
}, },
{ {
default: () => (record.type == 1 ? '通知' : '公告'), default: () => (record.type == 1 ? '通知' : '公告'),

View File

@ -1,11 +1,6 @@
<template> <template>
<basicModal <n-drawer v-model:show="props.visible" @after-leave="handleClose" :width="size">
@register="modalRegister" <n-drawer-content :title="props.noticeId ? '编辑公告' : '新增公告'">
ref="modalRef"
class="basicModal basicFormModal"
@on-ok="handleSubmit"
@on-close="handleClose"
>
<template #default> <template #default>
<n-form <n-form
class="ls-form" class="ls-form"
@ -26,6 +21,21 @@
clearable clearable
/> />
</n-form-item> </n-form-item>
<n-form-item
label="通知封面"
path="cover"
:rules="{ required: true, message: '请上传通知封面', trigger: 'change' }"
>
<UploadImg
@changeFileName="(name) => (formData.imageImgName = name)"
:fileType="['image/jpeg', 'image/png', 'image/jpg', 'image/gif']"
name="notice"
:fileSize="20"
v-model:image-url="formData.cover"
>
<template #tip>支持扩展名: jpg png jpeg;文件大小不超过20M</template>
</UploadImg>
</n-form-item>
<n-form-item label="通知类型"> <n-form-item label="通知类型">
<n-select <n-select
v-model:value="formData.type" v-model:value="formData.type"
@ -51,14 +61,22 @@
</div> </div>
</n-form> </n-form>
</template> </template>
</basicModal> <template #footer>
<span class="dialog-footer">
<n-button @click="handleClose">取消</n-button>
<n-button :loading="subLoading" type="primary" @click="submit"> 确定 </n-button>
</span>
</template>
</n-drawer-content>
</n-drawer>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { getNoticeDetail, noticeAdd, noticeUpdate } from '@/api/data/notice'; import { getNoticeDetail, noticeAdd, noticeUpdate } from '@/api/data/notice';
import { onMounted, reactive, ref } from 'vue'; import { onMounted, reactive, ref } from 'vue';
import { useMessage } from 'naive-ui'; import { useMessage } from 'naive-ui';
import UploadImg from '@/components/Upload/Image.vue';
import Editor from '@/components/Editor/tinymce.vue'; import Editor from '@/components/Editor/tinymce.vue';
import { useModal } from '@/components/Modal'; import { useLockFn } from '@/utils/useLockFn';
const emit = defineEmits(['success', 'update:visible']); const emit = defineEmits(['success', 'update:visible']);
const formRef = ref(); const formRef = ref();
@ -67,6 +85,7 @@
* 定义表单参数 * 定义表单参数
*/ */
const message = useMessage(); const message = useMessage();
const size = document.body.clientWidth - 500;
/** /**
* 定义表单参数 * 定义表单参数
@ -106,15 +125,6 @@
{ label: '公告', value: 2 }, { label: '公告', value: 2 },
]; ];
/**
* 定义模态
*/
const [modalRegister, { openModal, setSubLoading }] = useModal({
title: props.noticeId ? '编辑公告' : '添加公告',
subBtuText: '确定',
width: document.body.clientWidth - 500,
});
/** /**
* 执行提交 * 执行提交
*/ */
@ -142,6 +152,8 @@
emit('update:visible', false); emit('update:visible', false);
}; };
const { isLock: subLoading, lockFn: submit } = useLockFn(handleSubmit);
/** /**
* 设置表单数据 * 设置表单数据
*/ */

View File

@ -36,7 +36,7 @@ export const columns = [
return h( return h(
NTag, NTag,
{ {
type: record.type == 0 ? 'processing' : 'warning', type: record.type == 0 ? 'info' : 'warning',
}, },
{ {
default: () => (record.type == 0 ? '系统' : '业务'), default: () => (record.type == 0 ? '系统' : '业务'),

View File

@ -24,7 +24,7 @@
<n-form-item <n-form-item
label="参数类型" label="参数类型"
path="type" path="type"
:rule="{ required: true, message: '请选择参数类型', trigger: 'change' }" :rule="{ type: 'number', required: true, message: '请选择参数类型', trigger: 'change' }"
> >
<n-select <n-select
v-model:value="formData.type" v-model:value="formData.type"
@ -83,7 +83,7 @@
const formData = reactive({ const formData = reactive({
id: '', id: '',
name: '', name: '',
type: 0, type: undefined,
code: '', code: '',
value: '', value: '',
status: 1, status: 1,

View File

@ -117,6 +117,13 @@
onClick: handleDelete.bind(null, record), onClick: handleDelete.bind(null, record),
auth: ['sys:tenant:delete'], auth: ['sys:tenant:delete'],
}, },
{
label: '创建账号',
icon: renderIcon(PlusOutlined),
type: 'info',
onClick: handleAddAccount.bind(null, record),
auth: ['sys:tenant:account'],
},
], ],
}); });
}, },
@ -204,7 +211,14 @@
await nextTick(); await nextTick();
createModalRef.value.openModal(); createModalRef.value.openModal();
} }
/**
* 执行添加账号
* @param recored 参数
*/
const handleAddAccount = async (recored: Recordable) => {
await tenantAccount({ tenantId: recored.id });
message.success('创建成功');
};
/** /**
* 执行删除 * 执行删除
* @param id 参数 * @param id 参数

View File

@ -204,12 +204,7 @@
path="address" path="address"
:rule="{ required: true, message: '请输入详细地址', trigger: 'blur' }" :rule="{ required: true, message: '请输入详细地址', trigger: 'blur' }"
> >
<n-input <n-input v-model:value="formData.address" placeholder="请输入详细地址" clearable />
v-model:value="formData.address"
type="textarea"
placeholder="请输入详细地址"
clearable
/>
</n-form-item> </n-form-item>
</div> </div>
<div class="flex"> <div class="flex">