diff --git a/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/user/controller/SysUserController.java b/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/user/controller/SysUserController.java index 1722428..4d1078f 100644 --- a/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/user/controller/SysUserController.java +++ b/api-interface/itmk-base-parent/itmk-base-web/src/main/java/com/itmk/web/user/controller/SysUserController.java @@ -23,6 +23,13 @@ public class SysUserController { // 新增用户 @PostMapping//使用post请求 public ResultVo addUser(@RequestBody SysUser sysUser){ +// 判断用户是否重复 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().eq(SysUser::getUsername,sysUser.getUsername()).eq(SysUser::getPhone,sysUser.getPhone()); + SysUser user = sysUserService.getOne(queryWrapper); + if(user != null){ + return ResultUtils.error("用户已存在!或该手机号已被使用!"); + } if(sysUserService.save(sysUser)){ return ResultUtils.success("新增用户成功!"); } diff --git a/order-system/src/App.vue b/order-system/src/App.vue index 2cff022..6762809 100644 --- a/order-system/src/App.vue +++ b/order-system/src/App.vue @@ -1,7 +1,6 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/order-system/src/api/user/index.ts b/order-system/src/api/user/index.ts new file mode 100644 index 0000000..922aab3 --- /dev/null +++ b/order-system/src/api/user/index.ts @@ -0,0 +1,7 @@ +import http from "../../http"; +import type { UserModel } from "./userModel"; + +// 新增接口 +export const addUserApi = (parm:UserModel)=>{ + return http.post("/api/user", parm) +} \ No newline at end of file diff --git a/order-system/src/api/user/userModel.ts b/order-system/src/api/user/userModel.ts new file mode 100644 index 0000000..fdd90af --- /dev/null +++ b/order-system/src/api/user/userModel.ts @@ -0,0 +1,18 @@ +// 定义列表查询的数据类型 +export type ListUserParm = { + currentPage: number; + pageSize: number; + name: string; + phone: string; +} + +// 定义表单数据类型 +export type UserModel = { + userId: string; + username: string; + password: string; + phone: string; + email: string; + sex: string; + name: string; +} \ No newline at end of file diff --git a/order-system/src/components/SysDialog.vue b/order-system/src/components/SysDialog.vue index 10b6c2e..5de3e44 100644 --- a/order-system/src/components/SysDialog.vue +++ b/order-system/src/components/SysDialog.vue @@ -25,15 +25,14 @@ diff --git a/order-system/src/layout/MenuLogo.vue b/order-system/src/layout/MenuLogo.vue index 2fcadd2..2824f19 100644 --- a/order-system/src/layout/MenuLogo.vue +++ b/order-system/src/layout/MenuLogo.vue @@ -25,7 +25,7 @@ // 通过watch监听 watch( - ()=> store.getCollapse, + ()=> store.collapse, (collapsed: boolean) => { if (!collapsed){ setTimeout(() =>{ diff --git a/order-system/src/layout/header/BreadCrumb.vue b/order-system/src/layout/header/BreadCrumb.vue index 8558942..4111782 100644 --- a/order-system/src/layout/header/BreadCrumb.vue +++ b/order-system/src/layout/header/BreadCrumb.vue @@ -16,10 +16,12 @@ + + \ No newline at end of file diff --git a/order-system/src/views/user/Index.vue b/order-system/src/views/user/Index.vue index f059812..48e6b30 100644 --- a/order-system/src/views/user/Index.vue +++ b/order-system/src/views/user/Index.vue @@ -1,13 +1,45 @@ +import { Search, Close, Plus } from '@element-plus/icons-vue' +// 导入useUserTable,获取表格相关业务 +// 第一次导入在vite-env.d.ts中添加路径别名支持 +import useUserTable from '@/compositions/user/useUserTable'; - \ No newline at end of file + \ No newline at end of file diff --git a/order-system/src/vite-env.d.ts b/order-system/src/vite-env.d.ts index 1c31ea3..32b8c54 100644 --- a/order-system/src/vite-env.d.ts +++ b/order-system/src/vite-env.d.ts @@ -39,9 +39,7 @@ declare module '@/components/*' { declare module 'pinia'; declare module '@/store/*' { import { StoreDefinition } from 'pinia'; - // 允许导出任意具名成员 - export const useTestStore: StoreDefinition; - // 或者更通用的声明方式 + export function useTestStore(): any; // useCollapseStore导出 @@ -49,8 +47,33 @@ declare module '@/store/*' { } // 添加hooks路径别名支持 -declare module '@/hooks/useDialog' { - // 我们可以根据实际情况导出具体的类型,如果暂时不想写具体类型,可以导出any +declare module '@/hooks/*' { const content: any; export default content; +} + +// 添加compositions路径别名支持 +declare module '@/compositions/*' { + const compositions: any; + export default compositions; +} + +// 添加api路径别名支持 +declare module '@/api/user/userModel' { + export type ListUserParm = { + currentPage: number; + pageSize: number; + name: string; + phone: string; + } + + export type UserModel = { + userId: string; + username: string; + password: string; + phone: string; + email: string; + sex: string; + name: string; +} } \ No newline at end of file diff --git a/order-system/tsconfig.app.json b/order-system/tsconfig.app.json index 558de06..7edd091 100644 --- a/order-system/tsconfig.app.json +++ b/order-system/tsconfig.app.json @@ -8,7 +8,8 @@ "paths": { "@/*": [ "src/*" - ] + ], + "@/api/*": ["src/api/*"] }, // 添加必要的库支持 "lib": ["ES2015", "ES2015.Promise", "DOM", "DOM.Iterable", "ESNext"], @@ -29,6 +30,7 @@ "src/**/*.ts", "src/**/*.tsx", "src/**/*.vue", - "vite-env.d.ts" // 确保包含类型声明文件 + "vite-env.d.ts", // 确保包含类型声明文件 + "src/api/**/*.ts" ] } \ No newline at end of file diff --git a/order-system/vite.config.ts b/order-system/vite.config.ts index 67b4b64..8d1761d 100644 --- a/order-system/vite.config.ts +++ b/order-system/vite.config.ts @@ -4,11 +4,19 @@ import path from 'path' //导入nodejs核心模块path,解构提取resolce方 // https://vite.dev/config/ export default defineConfig({ plugins: [vue()], - server:{ + server: { host: '0.0.0.0',//解决控制台:Network:use--host to expose port: 8080,//配置端口号 - hmr:true,//开启热更新 - open:true//启动在浏览器打开 + hmr: true,//开启热更新 + open: true,//启动在浏览器打开 + // 跨域配置,所有api的请求都会被转接到后端接口 + proxy: { + '/api': { // 这里也匹配 /api 路径 + target: 'http://localhost:8089', + changeOrigin: true, + rewrite: (path) => path.replace(/^\/api/, '') + } + } }, // resolve: { // //为项目设置别名,简化项目路径