zhangjie 1 жил өмнө
parent
commit
96f8c6e535

+ 4 - 0
.husky/commit-msg

@@ -0,0 +1,4 @@
+#!/bin/sh
+. "$(dirname "$0")/_/husky.sh"
+
+pnpm commitlint --edit $1

+ 4 - 0
.husky/pre-commit

@@ -0,0 +1,4 @@
+#!/bin/sh
+. "$(dirname "$0")/_/husky.sh"
+
+npm run lint-staged

+ 9 - 11
src/api/types/order.ts

@@ -32,13 +32,11 @@ export interface TaskItemDetail {
   selfApplyEndTime: number;
   openApplyStartTime: number;
   openApplyEndTime: number;
-  timeList: [
-    {
-      id: string;
-      startTime: number;
-      endTime: number;
-    }
-  ];
+  timeList: Array<{
+    id: string;
+    startTime: number;
+    endTime: number;
+  }>;
   notice: string;
 }
 
@@ -54,8 +52,8 @@ export interface TaskRuleUpdateParams {
 }
 
 export interface TaskTimeUpdateParams {
-  id: string;
-  times: string;
+  id: number;
+  timeJson: string;
 }
 
 export interface TaskNoticeUpdateParams {
@@ -70,8 +68,8 @@ export interface OrderRecordItem {
   studentCode: string;
   teachingName: string; // 教学点
   agentName: string; // 考点
-  roomName: string; //考场
-  seatNumber: string; //座位号
+  roomName: string; // 考场
+  seatNumber: string; // 座位号
   cancel: boolean; // 是否取消
   endTime: number;
   startTime: number;

+ 14 - 13
src/assets/style/arco-custom.less

@@ -109,18 +109,19 @@
       margin-left: 8px;
     }
   }
-}
-.arco-modal-simple {
-  border-radius: 8px;
-  padding: 0;
-  .arco-modal-header {
-    border: none;
-    padding-bottom: 8px;
-  }
-  .arco-modal-body {
-    padding: 0 20px 20px 48px;
-  }
-  .arco-modal-footer {
-    text-align: right;
+
+  &.arco-modal-simple {
+    border-radius: 8px;
+    padding: 0;
+    .arco-modal-header {
+      border: none;
+      padding-bottom: 8px;
+    }
+    .arco-modal-body {
+      padding: 0 20px 20px 48px;
+    }
+    .arco-modal-footer {
+      text-align: right;
+    }
   }
 }

+ 36 - 37
src/assets/style/home.less

@@ -65,52 +65,51 @@
   overflow: auto;
   font-size: 14px;
   background: var(--color-white);
-}
-
-.arco-menu-home {
-  padding: 16px 8px;
+  .arco-menu-home {
+    padding: 16px 8px;
 
-  .arco-menu-inner {
-    padding: 0;
-  }
+    .arco-menu-inner {
+      padding: 0;
+    }
 
-  .arco-menu-inline {
-    margin-bottom: 20px;
-  }
+    .arco-menu-inline {
+      margin-bottom: 20px;
+    }
 
-  .arco-menu-inline-header {
-    padding: 9px 40px !important;
-    min-height: 38px;
-    line-height: 20px;
-    font-weight: 400;
+    .arco-menu-inline-header {
+      padding: 9px 40px !important;
+      min-height: 38px;
+      line-height: 20px;
+      font-weight: 400;
 
-    .arco-menu-icon {
-      position: absolute;
-      left: 16px;
-      font-size: 16px;
-    }
+      .arco-menu-icon {
+        position: absolute;
+        left: 16px;
+        font-size: 16px;
+      }
 
-    &.arco-menu-selected {
-      &:hover {
-        background-color: var(--color-primary-light);
+      &.arco-menu-selected {
+        &:hover {
+          background-color: var(--color-primary-light);
+        }
       }
     }
-  }
 
-  .arco-menu-item {
-    height: auto;
-    min-height: 38px;
-    line-height: 20px;
-    padding: 9px 40px !important;
-    white-space: normal;
-    .arco-menu-indent-list {
-      display: none;
-    }
+    .arco-menu-item {
+      height: auto;
+      min-height: 38px;
+      line-height: 20px;
+      padding: 9px 40px !important;
+      white-space: normal;
+      .arco-menu-indent-list {
+        display: none;
+      }
 
-    &.arco-menu-selected {
-      font-weight: 500;
-      color: var(--color-primary);
-      background-color: var(--color-primary-light);
+      &.arco-menu-selected {
+        font-weight: 500;
+        color: var(--color-primary);
+        background-color: var(--color-primary-light);
+      }
     }
   }
 }

+ 1 - 1
src/layout/default-layout.vue

@@ -47,7 +47,7 @@
               <span>{{ nav.name }}</span>
             </a-menu-item>
           </a-sub-menu>
-          <a-menu-item v-else :key="submenu.url">
+          <a-menu-item v-else :key="submenu.url + 'menu'">
             <span>{{ submenu.name }}</span>
           </a-menu-item>
         </template>

+ 1 - 1
src/types/global.ts

@@ -38,4 +38,4 @@ export interface GeneralChart {
   data: Array<{ name: string; value: number[] }>;
 }
 
-export type FormRules<T> = Partial<Record<T, FieldRule[]>>;
+export type FormRules<T extends string> = Partial<Record<T, FieldRule[]>>;

+ 4 - 1
src/utils/arco.ts

@@ -1,6 +1,9 @@
 import { Modal } from '@arco-design/web-vue';
 
-export async function modalConfirm(title, content) {
+export async function modalConfirm(
+  title: string,
+  content: string
+): Promise<string> {
   return new Promise((resolve, reject) => {
     Modal.confirm({
       title,

+ 1 - 1
src/views/base/agent-manage/modifyAgent.vue

@@ -97,7 +97,7 @@
 
   const formRef = ref<FormInstance>();
   const formData = reactive<AgentUpdateParams>({ ...defaultFormData });
-  const rules: FormRules<AgentUpdateParams> = {
+  const rules: FormRules<keyof AgentUpdateParams> = {
     name: [
       {
         required: true,

+ 9 - 4
src/views/order/task-manage/timeForm.vue

@@ -50,13 +50,18 @@
   }>();
   const emit = defineEmits(['cancel', 'modified']);
 
+  interface FormDataType {
+    id: number;
+    times: TaskItemDetail.timeList;
+  }
+
   const defaultFormData = {
-    id: null,
+    id: 0,
     times: [],
   };
 
   const formRef = ref<FormInstance>();
-  const formData = reactive(defaultFormData);
+  const formData: FormDataType = reactive(defaultFormData);
 
   const rules: FieldRule[] = [
     {
@@ -69,7 +74,7 @@
     emit('cancel');
   }
 
-  const addTimesRef = ref(null);
+  const addTimesRef = ref();
   function toAdd() {
     addTimesRef.value?.open();
   }
@@ -91,7 +96,7 @@
     setLoading(true);
     const datas = {
       id: formData.id,
-      timeJson: JSON.parse(formData.times),
+      timeJson: JSON.stringify(formData.times),
     };
     let res = true;
     await updateTaskTime(datas).catch(() => {