feat(backend): 实现多租户数据隔离与权限管理架构

refactor(backend): 重构模型基类支持租户与客户隔离
feat(backend): 添加客户模块相关模型、CRUD和参数校验
docs(backend): 新增SaaS数据隔离设计方案文档
refactor(backend): 优化日志模块并添加类型注解
fix(backend): 修正字典模块查询参数移除creator字段

style(frontend): 统一按钮组件代码格式
fix(frontend): 修复表格序号计算逻辑
chore(frontend): 更新lint脚本使用pnpm替代npm
This commit is contained in:
zhangtao
2025-11-23 18:59:43 +08:00
parent 749c97f4e3
commit 9a39a64faf
54 changed files with 5952 additions and 588 deletions
@@ -379,20 +379,10 @@
<template #footer>
<div class="dialog-footer">
<!-- 详情弹窗不需要确定按钮的提交逻辑 -->
<el-button
v-if="dialogVisible.type !== 'detail'"
type="primary"
@click="handleSubmit"
>
确定
</el-button>
<el-button
v-else
type="primary"
@click="handleCloseDialog"
>
<el-button v-if="dialogVisible.type !== 'detail'" type="primary" @click="handleSubmit">
确定
</el-button>
<el-button v-else type="primary" @click="handleCloseDialog">确定</el-button>
<el-button @click="handleCloseDialog">取消</el-button>
</div>
</template>
@@ -403,20 +403,10 @@
<div class="dialog-footer">
<!-- 详情弹窗不需要确定按钮的提交逻辑 -->
<el-button @click="handleCloseDialog">取消</el-button>
<el-button
v-if="dialogVisible.type !== 'detail'"
type="primary"
@click="handleSubmit"
>
确定
</el-button>
<el-button
v-else
type="primary"
@click="handleCloseDialog"
>
<el-button v-if="dialogVisible.type !== 'detail'" type="primary" @click="handleSubmit">
确定
</el-button>
<el-button v-else type="primary" @click="handleCloseDialog">确定</el-button>
</div>
</template>
</el-dialog>
@@ -652,20 +652,10 @@
<template #footer>
<div class="dialog-footer">
<!-- 详情弹窗不需要确定按钮的提交逻辑 -->
<el-button
v-if="dialogVisible.type !== 'detail'"
type="primary"
@click="handleSubmit"
>
确定
</el-button>
<el-button
v-else
type="primary"
@click="handleCloseDialog"
>
<el-button v-if="dialogVisible.type !== 'detail'" type="primary" @click="handleSubmit">
确定
</el-button>
<el-button v-else type="primary" @click="handleCloseDialog">确定</el-button>
<el-button @click="handleCloseDialog">取消</el-button>
</div>
</template>
@@ -435,20 +435,10 @@
<div class="dialog-footer">
<!-- 详情弹窗不需要确定按钮的提交逻辑 -->
<el-button @click="handleCloseDialog">取消</el-button>
<el-button
v-if="dialogVisible.type !== 'detail'"
type="primary"
@click="handleSubmit"
>
确定
</el-button>
<el-button
v-else
type="primary"
@click="handleCloseDialog"
>
<el-button v-if="dialogVisible.type !== 'detail'" type="primary" @click="handleSubmit">
确定
</el-button>
<el-button v-else type="primary" @click="handleCloseDialog">确定</el-button>
</div>
</template>
</el-dialog>
@@ -386,20 +386,10 @@
<div class="dialog-footer">
<!-- 详情弹窗不需要确定按钮的提交逻辑 -->
<el-button @click="handleCloseDialog">取消</el-button>
<el-button
v-if="dialogVisible.type !== 'detail'"
type="primary"
@click="handleSubmit"
>
确定
</el-button>
<el-button
v-else
type="primary"
@click="handleCloseDialog"
>
<el-button v-if="dialogVisible.type !== 'detail'" type="primary" @click="handleSubmit">
确定
</el-button>
<el-button v-else type="primary" @click="handleCloseDialog">确定</el-button>
</div>
</template>
</el-dialog>
@@ -458,9 +458,7 @@
<template #footer>
<div class="dialog-footer">
<el-button @click="handleCloseDialog">取 消</el-button>
<el-button type="primary" @click="handleSubmit">
确 定
</el-button>
<el-button type="primary" @click="handleSubmit">确 定</el-button>
</div>
</template>
</el-dialog>
@@ -393,20 +393,10 @@
<div class="dialog-footer">
<!-- 详情弹窗不需要确定按钮的提交逻辑 -->
<el-button @click="handleCloseDialog">取消</el-button>
<el-button
v-if="dialogVisible.type !== 'detail'"
type="primary"
@click="handleSubmit"
>
确定
</el-button>
<el-button
v-else
type="primary"
@click="handleCloseDialog"
>
<el-button v-if="dialogVisible.type !== 'detail'" type="primary" @click="handleSubmit">
确定
</el-button>
<el-button v-else type="primary" @click="handleCloseDialog">确定</el-button>
</div>
</template>
</el-dialog>
@@ -198,7 +198,7 @@
<el-empty :image-size="80" description="暂无数据" />
</template>
<el-table-column type="selection" min-width="55" align="center" />
<el-table-column type="index" fixed label="序号" align="center" min-width="60">
<el-table-column type="index" fixed label="序号" min-width="60">
<template #default="scope">
{{ (queryFormData.page_no - 1) * queryFormData.page_size + scope.$index + 1 }}
</template>
@@ -524,13 +524,7 @@
>
确定
</el-button>
<el-button
v-else
type="primary"
@click="handleCloseDialog"
>
确定
</el-button>
<el-button v-else type="primary" @click="handleCloseDialog">确定</el-button>
<el-button @click="handleCloseDialog">取消</el-button>
</div>
</template>