我用自己理解的领域驱动设计写了一套单体应用基础开发平台, 前端用的以是 vue-element-admin 为基础构建的,其中加入了自己研发了定制化的组件以方便开发,比如 表格组件,
代码示例:
<cdp-table :table-config="tableConfig">
<template v-slot:tableOperations="slotProps">
<el-dropdown size="small" :hide-on-click="false" trigger="click">
<el-button type="text" style="margin-left:10px" size="small">
更 多<i class="el-icon-arrow-down el-icon--right" />
</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item @click.native="resetPassword(slotProps)">重置密码</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</cdp-table>
表格配置信息
tableConfig: {
title: '账户',
url: '/api/v1/account',
columns: [
{
name: 'username',
type: 'input',
label: '账号',
formConfig: {
rules: [{ required: true, message: '账号不能为空' }]
}
},
{
name: 'name',
formConfig: {
name: 'user_id',
type: 'user-select-table',
rules: [{ required: true, message: '请选择用户' }]
},
label: '用户名'
},
{
name: 'nickname',
type: 'input',
label: '昵称'
},
{
name: 'role_name',
formConfig: {
name: 'role_ids',
type: 'select',
key: 'id',
value: 'name',
multiple: true,
url: '/api/v1/role/all'
},
searchConfig: {
hidden: true
},
label: '角色'
},
{
name: 'status',
type: 'select',
label: '状态',
align: 'center',
formConfig: {
type: 'select'
},
searchConfig: {
type: 'select'
},
data: [
{ key: 1, value: '新建', type: 'warning' },
{ key: 2, value: '进行中', type: 'info' },
{ key: 3, value: '通过', type: 'success' },
{ key: 4, value: '拒绝', type: 'danger' }
]
},
{
name: 'create_time',
type: 'date',
label: '创建时间',
width: 180,
formConfig: {
type: 'date',
hidden: true
},
searchConfig: {
type: 'date',
hidden: true
}
}
]
}
表单组件,
<template>
<div style="width:40%">
<cdp-select-icon />
</div>
</template>
<script>
import CdpSelectIcon from '@/components/cdp-ui/CdpSelectIcon'
export default {
components: {
CdpSelectIcon
},
data() {
return {}
},
methods: {}
}
</script>
后端以 spring-boot 为基础,使用了 mybatis-plus,mapstructs 等开源 jar 包 数据库以 mysql 做数据存储
后面领域模型设计结构如下:
前端界面如下:
项目地址
github:
前端: https://github.com/kushu001/cdp-web-vue
后端: https://github.com/kushu001/cdp
gitee:
前端: https://gitee.com/kushu001/cdp-web-vue
后端: https://gitee.com/kushu001/cdp
目前已经做完一版领域模型设计的改造,欢迎大家试用,有什么建议也可以跟我提,
我知道在坛子里有很多大佬,我知道我写的很垃圾(^ ^),也知道市面上有很多差不多的开源项目,我写这个一方面是市面上没有找到好一点的相关领域架构设计的框架(有一些框架我也看不懂),所以我就尝试着自己写一套。
在代码架构设计这块,我也一直处于摸索中,难免会有很多不足的地方,感谢大家能够批评指正,提供更好的建议,我一定会虚心采纳。
谢谢
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.