# wish-web
**Repository Path**: jbqc/wish-web
## Basic Information
- **Project Name**: wish-web
- **Description**: ant-design-vue2.x typescript vue3.x vite g2plot集成的一个快速开发平台
- **Primary Language**: TypeScript
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 17
- **Forks**: 2
- **Created**: 2021-02-25
- **Last Updated**: 2023-01-10
## Categories & Tags
**Categories**: backend
**Tags**: None
## README
# wish-web
#### 介绍
ant-design-vue2.x typescript vue3.x vite 集成的一个小平台
#### 软件架构
Typescript4.x vite2.x vue3.x ant-design-vue2.x(UI框架) axios(请求) g2plot(图表库)
##### 首页展示
##### 后端代码
[wish-server](https://gitee.com/jbqc/wish-server)
##### 演示环境
[https://web.jiubanqingchen.cn/](https://web.jiubanqingchen.cn/) demo 123456
##### 功能模块
- 用户管理
- 角色管理
- 部门管理
- 菜单管理
- 数据字典管理
- 定时任务
- 国际化
- 登录日志
- 代码生成(这个功能独立出去了一个项目 [wish-code-tool-server](https://gitee.com/jbqc/wish-code-tool-server))
#### 安装教程
```bash
#直接下载项目
git clone https://gitee.com/jbqc/wish-web.git
#安装前端依赖文件 类似后端的mavne
npm install
#运行项目
npm run dev
#打包代码
npm run build
```
#### 目录说明
```
├── /src/ # 源码目录
│ ├── /_types/ # 类型定义文件
│ ├── /api/ # 请求接口文件
│ ├── /assets/ # 组件静态资源(图片)
│ ├── /components/ # 公共组件
│ ├── /framework/ # 框架配置
│ ├── /i18n/ # 国际化文件
│ ├── /kit/ # 一些工具类的存放
│ ├── /layouts/ # 文件布局
│ ├── /router/ # 路由配置
│ ├── /store/ # vuex状态管理
│ ├── /styles/ # 样式文件
│ ├── /views/ # 路由组件(页面文件)
│ ├── App.vue # 组件入口
│ └── main.js # 程序入口
├── .gitignore # git忽略文件
├── index.html # 页面入口
├── package.json # 项目依赖
├── README.md # 项目文档
├── tsconfig.json # ts配置文件
└── vite.config.ts # vite的配置文件
```
#### 项目截图
- 用户管理
- 角色管理
- 定时任务
#### 使用说明
这里和wish_server中同步 新增一个demo页面出来
- Api(请求配置文件) demo.ts文件,我在modelApi中配置了增删改查得方法 和后台是对应得
```javascript
/**
* @author light_dust_generator
* @since 2021-06-25 11:39:25
*/
import { ModelApi } from "/@/_types/api";
class DemoApi extends ModelApi {
//...这里可以重写父类方法,也可以增加新的方法
}
const demoApi = new DemoApi("/org/demo", "demoId");
export default demoApi;
```
- 国际化文件demo.ts,国际化翻译文件(后期同步到数据库中)
```javascript
/**
* @author light_dust_generator
* @since 2021-06-25 11:39:25
*/
export default {
demoTableTitle: '演示表格',
demoId:'主键',
demoName:'演示名称',
demoDesc:'演示描述',
demoDate:'演示时间',
demoPerson:'演示人',
//提示
formPlhDemoId:'请输入主键',
formPlhDemoName:'请输入演示名称',
formPlhDemoDesc:'请输入演示描述',
formPlhDemoDate:'请输入演示时间',
formPlhDemoPerson:'请输入演示人',
//校验
formRuleDemoId:'主键为必填项',
//表单头部
addDemoTitle: '新建演示',
editDemoTitle: '编辑演示'
}
```
- 配置文件indexface.ts 这个是用来配置表格字段,表格查询,表单字段、提示、必填规则等的配置文件
```typescript
/**
* @author light_dust_generator
* @since 2021-06-25 11:39:25
*/
import { t } from '/@/i18n/index'
export const demoTableColumns =[
{ title: t('org.demo.demoId'), key: "demoId", dataIndex: "demoId"},
{ title: t('org.demo.demoName'), key: "demoName", dataIndex: "demoName",slots: { customRender: "customDemoId" } },
{ title: t('org.demo.demoDesc'), key: "demoDesc", dataIndex: "demoDesc"},
{ title: t('org.demo.demoDate'), key: "demoDate", dataIndex: "demoDate"},
{ title: t('org.demo.demoPerson'), key: "demoPerson", dataIndex: "demoPerson"},
]
//查询字段
export const demoQueryColumns = [
]
//表单必填规则
export const demoFormRule = {
demoId: [{ required: true, message: t('org.demo.formRuleDemoId') }],
}
//这个对应路由
export const demoIndexPageUrl = "/org/demo/list";
export const demoAddPageUrl = "/org/demo/add";
export const demoEditUrl = "/org/demo/edit/";
```
上面是三个辅助文件 其实也可以写在页面之中 但是为了方便扩展所以分割了出来
对于页面 又做了一个拆分 建demoList demoForm单独拆分了出来作为组件 在用index 和form分别引用他们 这样做的好处是我在其他页面嵌入demoList不用将列表页面的所有元素嵌入过去 一定程度上方便的多次在不同的环境中引用,表单也是一样
```
├── /demo/ # demo文件夹
│ ├── /component/ # 类型定义文件
| |── |── demoList.vue 列表组件
| |── |── demoForm.vue 表单组件
│ ├── index.vue # 路由上的列表页
│ ├── from.vue #路由上的表单页
```
下面上代码
- demoList.vue(列表组件)
```vue
{{ t("org.demo.demoTableTitle") }}
{{ text }}
```
- demoForm.vue(你会发现表单页面没有保存按钮 是的 并没有 但是他会提供一个onSubmit方法 谁要保存谁就调用这个方法)
```vue
```
- index.vue(这个页面引用了demoList.vue组件)
```vue
/**
* @author light_dust_generator
* @since 2021-06-25 11:39:25
*/
```
- form.vue(这个页面引用了demoForm.vue 你会发现这里面有保存按钮 )
```vue
/**
* @author light_dust_generator
* @since 2021-06-25 11:39:25
*/
```
#### 参与贡献
1. Fork 本仓库
2. 新建 Feat_xxx 分支
3. 提交代码
4. 新建 Pull Request
#### 特技
1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com)
3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目
4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
这里输入代码