Procházet zdrojové kódy

feat(api): order interactive part4

gemercheung před 3 roky
rodič
revize
d43dad183f

+ 1 - 0
package.json

@@ -46,6 +46,7 @@
     "dayjs": "^1.10.7",
     "echarts": "^5.2.2",
     "intro.js": "^4.3.0",
+    "js-base64": "^3.7.2",
     "lodash-es": "^4.17.21",
     "mockjs": "^1.1.0",
     "moment": "^2.29.1",

+ 6 - 0
pnpm-lock.yaml

@@ -65,6 +65,7 @@ specifiers:
   inquirer: ^8.2.0
   intro.js: ^4.3.0
   jest: ^27.4.5
+  js-base64: ^3.7.2
   less: ^4.1.2
   lint-staged: 12.1.4
   lodash-es: ^4.17.21
@@ -138,6 +139,7 @@ dependencies:
   dayjs: 1.10.7
   echarts: 5.2.2
   intro.js: 4.3.0
+  js-base64: 3.7.2
   lodash-es: 4.17.21
   mockjs: 1.1.0
   moment: 2.29.1
@@ -7768,6 +7770,10 @@ packages:
     resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==}
     dev: true
 
+  /js-base64/3.7.2:
+    resolution: {integrity: sha512-NnRs6dsyqUXejqk/yv2aiXlAvOs56sLkX6nUdeaNezI5LFFLlsZjOThmwnrcwh5ZZRwZlCMnVAY3CvhIhoVEKQ==}
+    dev: false
+
   /js-stringify/1.0.2:
     resolution: {integrity: sha1-Fzb939lyTyijaCrcYjCufk6Weds=}
     dev: true

+ 3 - 3
src/api/sys/model/userModel.ts

@@ -2,8 +2,8 @@
  * @description: Login interface parameters
  */
 export interface LoginParams {
-  username: string;
-  password: string;
+  userName: string;
+  userPassword: string;
   captcha: string;
 }
 
@@ -39,7 +39,7 @@ export interface RoleInfo {
  * @description: Login interface return value
  */
 export interface LoginResultModel {
-  userId?: string | number;
+  id?: string | number;
   token: string;
   role?: RoleInfo;
   user: RoleInfo;

+ 17 - 9
src/api/sys/user.ts

@@ -2,10 +2,12 @@ import { defHttp } from '/@/utils/http/axios';
 import { LoginParams, LoginResultModel, GetUserInfoModel } from './model/userModel';
 import { encodeStr } from '/@/utils/encodeUtil';
 import { ErrorMessageMode } from '/#/axios';
+import { ContentTypeEnum } from '/@/enums/httpEnum';
+import { encode } from 'js-base64';
 
 enum Api {
-  Login = '/basic-api/sys/login',
-  // Login = '/zfb-api/',
+  // Login = '/basic-api/sys/login',
+  Login = '/zfb-api/zfb/loginBackground',
   Logout = '/logout',
   GetUserInfo = '/basic-api/sys/user/infoAnon',
   GetPermCode = '/getPermCode',
@@ -15,17 +17,23 @@ enum Api {
  * @description: user login api
  */
 export function loginApi(params: LoginParams, mode: ErrorMessageMode = 'modal') {
-  const form = new FormData();
-  const encryptPassword: string = encodeStr(window.btoa(params.password));
-  form.append('username', params.username);
-  form.append('password', encryptPassword);
-  form.append('captcha', params.captcha);
+  // const form = new FormData();
+  // const encryptPassword: string = encodeStr(window.btoa(params.password));
+  // form.append('username', params.username);
+  // form.append('password', encryptPassword);
+  // form.append('captcha', params.captcha);
+
+  const paramData: LoginParams = {
+    ...params,
+    userPassword: encodeStr(encode(params.userPassword)),
+  };
+
   return defHttp.post<LoginResultModel>(
     {
       url: Api.Login,
       // params,
-      params: form,
-      headers: { 'Content-Type': 'multipart/form-data' },
+      params: paramData,
+      headers: { 'Content-Type': ContentTypeEnum.JSON },
     },
     {
       errorMessageMode: mode,

+ 2 - 2
src/api/system/system.ts

@@ -21,8 +21,8 @@ enum Api {
   IsAccountExist = '/basic-api/system/accountExist',
   DeptList = '/basic-api/sys/dept/list',
   setRoleStatus = '/basic-api/system/setRoleStatus',
-  MenuList = '/basic-api/sys/menu/queryAll',
-  RolePageList = '/basic-api/sys/role/list',
+  MenuList = '/zfb-api/zfb/shop/sys/menu/queryAll',
+  RolePageList = '/zfb-api/zfb/shop/sys/role/list',
   GetAllRoleList = '/basic-api/system/getAllRoleList',
 }
 

+ 9 - 9
src/router/routes/modules/system.ts

@@ -63,15 +63,15 @@ const system: AppRouteModule = {
       },
       component: () => import('/@/views/dashboard/system/dept/index.vue'),
     },
-    {
-      path: 'changePassword',
-      name: 'ChangePassword',
-      meta: {
-        title: t('routes.demo.system.password'),
-        ignoreKeepAlive: true,
-      },
-      component: () => import('/@/views/dashboard/system/password/index.vue'),
-    },
+    // {
+    //   path: 'changePassword',
+    //   name: 'ChangePassword',
+    //   meta: {
+    //     title: t('routes.demo.system.password'),
+    //     ignoreKeepAlive: true,
+    //   },
+    //   component: () => import('/@/views/dashboard/system/password/index.vue'),
+    // },
   ],
 };
 

+ 3 - 3
src/settings/componentSetting.ts

@@ -11,11 +11,11 @@ export default {
       // The field name of the current page passed to the background
       pageField: 'page',
       // The number field name of each page displayed in the background
-      sizeField: 'pageSize',
+      sizeField: 'limit',
       // Field name of the form data returned by the interface
-      listField: 'items',
+      listField: 'list',
       // Total number of tables returned by the interface field name
-      totalField: 'total',
+      totalField: 'totalCount',
     },
     // Number of pages that can be selected
     pageSizeOptions: ['10', '50', '80', '100'],

+ 3 - 3
src/store/modules/user.ts

@@ -95,10 +95,10 @@ export const useUserStore = defineStore({
       try {
         const { goHome = true, mode, ...loginParams } = params;
         const data = await loginApi(loginParams, mode);
-        const { token, user } = data;
+        const { id, token } = data;
 
-        console.log('user', user);
-        const userID: number = user.userId;
+        console.log('user', data);
+        const userID = Number(id);
 
         // save token
         this.setToken(token);

+ 9 - 2
src/views/dashboard/product/category.vue

@@ -98,10 +98,17 @@
           fixed: undefined,
         },
         afterFetch(data) {
-          console.log('11', data);
-          // return [];
+          console.log('data', data);
+          const nest = (items, id = -1, link = 'parentId') =>
+            items
+              .filter((item) => item[link] === id)
+              .map((item) => ({ ...item, children: nest(items, item.id) }));
+
+          console.log('11', nest(data));
+          return nest(data);
         },
       });
+
       function handleCreate() {}
       function handleEdit() {}
       function handleDelete() {}

+ 5 - 0
src/views/dashboard/system/menu/index.vue

@@ -68,8 +68,13 @@
           slots: { customRender: 'action' },
           fixed: undefined,
         },
+        afterFetch: handleAfterFetch,
       });
 
+      function handleAfterFetch(data) {
+        console.log('data', data);
+      }
+
       function handleCreate() {
         openDrawer(true, {
           isUpdate: false,

+ 3 - 2
src/views/dashboard/system/menu/menu.data.ts

@@ -99,6 +99,7 @@ export const formSchema: FormSchema[] = [
     label: '菜单类型',
     component: 'RadioButtonGroup',
     defaultValue: '0',
+
     componentProps: {
       options: [
         { label: '目录', value: '0' },
@@ -122,8 +123,8 @@ export const formSchema: FormSchema[] = [
     componentProps: {
       fieldNames: {
         label: 'name',
-        key: 'id',
-        value: 'id',
+        key: 'menuId',
+        value: 'menuId',
       },
       getPopupContainer: () => document.body,
     },

+ 2 - 2
src/views/dashboard/system/role/role.data.ts

@@ -12,8 +12,8 @@ export const columns: BasicColumn[] = [
     width: 200,
   },
   {
-    title: '角色值',
-    dataIndex: 'roleValue',
+    title: '所属部门',
+    dataIndex: 'deptName',
     width: 180,
   },
   {

+ 2 - 2
src/views/sys/login/LoginForm.vue

@@ -180,8 +180,8 @@
     try {
       loading.value = true;
       const userInfo = await userStore.login({
-        password: data.password,
-        username: data.account,
+        userPassword: data.password,
+        userName: data.account,
         captcha: data.captcha,
         mode: 'none', //不要默认的错误提示
       });