Browse Source

任务调整

zhangjie 1 year ago
parent
commit
d124507262

+ 1 - 1
src/api/types/order.ts

@@ -32,7 +32,7 @@ export interface TaskItemDetail {
   selfApplyEndTime: number;
   openApplyStartTime: number;
   openApplyEndTime: number;
-  time: [
+  timeList: [
     {
       id: string;
       startTime: number;

+ 1 - 1
src/components/svg-icon/index.vue

@@ -1,5 +1,5 @@
 <template>
-  <component class="svg-icon" :is="iconComponent" :fill="fill"></component>
+  <component :is="iconComponent" class="svg-icon" :fill="fill"></component>
 </template>
 
 <script setup lang="ts">

+ 1 - 1
src/main.ts

@@ -4,7 +4,7 @@ import ArcoVueIcon from '@arco-design/web-vue/es/icon';
 import globalComponents from '@/components';
 import router from './router';
 import store from './store';
-import './mock';
+// import './mock';
 import App from './App.vue';
 // Styles are imported via arco-plugin. See config/plugin/arcoStyleImport.ts in the directory for details
 // 样式通过 arco-plugin 插件导入。详见目录文件 config/plugin/arcoStyleImport.ts

+ 6 - 6
src/store/modules/app/index.ts

@@ -63,12 +63,12 @@ const useAppStore = defineStore('app', {
       this.$patch(partial);
     },
     fetchServerMenu(type: RoleType) {
-      // const userMenus = menus.filter(
-      //   (menu) => !menu.roles || menu.roles.includes(type)
-      // );
-      // 开发时不管权限
-      console.log(type);
-      const userMenus = menus;
+      const userMenus = menus.filter(
+        (menu) => !menu.roles || menu.roles.includes(type)
+      );
+      // // 开发时不管权限
+      // console.log(type);
+      // const userMenus = menus;
       const { menuList, validRoutes } = getMenu(transformMenu(userMenus));
       this.appMenus = menuList;
       this.validRoutes = validRoutes;

+ 1 - 1
src/store/modules/app/menuData.ts

@@ -16,7 +16,7 @@ export const menus = [
     parentId: '1',
     sequence: 1,
     enable: true,
-    roles: [],
+    roles: ['ADMIN'],
   },
   {
     id: '3',

+ 4 - 0
src/utils/utils.ts

@@ -427,3 +427,7 @@ export function snakeToHump(name: string): string {
     .map((item) => item[0].toLocaleUpperCase() + item.substring(1))
     .join('');
 }
+
+export function deepCopy<T>(data: T): T {
+  return JSON.parse(JSON.stringify(data));
+}

+ 17 - 4
src/views/order/task-manage/modifyTask.vue

@@ -23,8 +23,8 @@
 
     <component
       :is="formComp"
-      v-if="visible"
-      :row-data="rowData"
+      v-if="visible && taskData"
+      :row-data="taskData"
       @cancel="close"
       @modified="modifiedHandle"
     ></component>
@@ -34,7 +34,8 @@
 <script setup lang="ts">
   import { computed, ref } from 'vue';
   import useModal from '@/hooks/modal';
-  import { TaskItem } from '@/api/types/order';
+  import { TaskItem, TaskItemDetail } from '@/api/types/order';
+  import { taskDetailInfo } from '@/api/order';
 
   import ruleForm from './ruleForm.vue';
   import timeForm from './timeForm.vue';
@@ -65,13 +66,25 @@
   const compType = ref('rule');
   const formComp = computed(() => comps[compType.value]);
 
+  const taskData = ref<TaskItemDetail | null>(null);
+  async function getDetail() {
+    taskData.value = await taskDetailInfo(props.rowData.id);
+  }
+
   function modifiedHandle() {
+    getDetail();
     emit('modified');
     if (isEdit.value) return;
     close();
   }
 
-  function modalBeforeOpen() {
+  async function modalBeforeOpen() {
+    if (props.rowData.id) {
+      taskData.value = null;
+      await getDetail();
+    } else {
+      taskData.value = {};
+    }
     compType.value = 'rule';
   }
 </script>

+ 3 - 7
src/views/order/task-manage/noticeForm.vue

@@ -30,13 +30,13 @@
   import useLoading from '@/hooks/loading';
   import type { FormInstance, FieldRule } from '@arco-design/web-vue/es/form';
   import { objAssign, objModifyAssign } from '@/utils/utils';
-  import { TaskItem } from '@/api/types/order';
+  import { TaskItemDetail } from '@/api/types/order';
 
   defineOptions({
     name: 'NoticeForm',
   });
   const props = defineProps<{
-    rowData: TaskItem;
+    rowData: TaskItemDetail;
   }>();
   const emit = defineEmits(['cancel', 'modified']);
 
@@ -80,11 +80,7 @@
   }
   /* init modal */
   function initData() {
-    if (props.rowData.id) {
-      objModifyAssign(formData, props.rowData);
-    } else {
-      objModifyAssign(formData, defaultFormData);
-    }
+    objModifyAssign(formData, props.rowData);
   }
   onMounted(() => {
     initData();

+ 2 - 2
src/views/order/task-manage/ruleForm.vue

@@ -78,13 +78,13 @@
   import useLoading from '@/hooks/loading';
   import type { FormInstance, FieldRule } from '@arco-design/web-vue/es/form';
   import { objAssign, objModifyAssign } from '@/utils/utils';
-  import { TaskItem } from '@/api/types/order';
+  import { TaskItemDetail } from '@/api/types/order';
 
   defineOptions({
     name: 'RuleForm',
   });
   const props = defineProps<{
-    rowData: TaskItem;
+    rowData: TaskItemDetail;
   }>();
   const emit = defineEmits(['cancel', 'modified']);
 

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

@@ -38,15 +38,15 @@
   import { updateTaskTime } from '@/api/order';
   import useLoading from '@/hooks/loading';
   import type { FormInstance, FieldRule } from '@arco-design/web-vue/es/form';
-  import { objModifyAssign } from '@/utils/utils';
-  import { TaskItem } from '@/api/types/order';
+  import { deepCopy } from '@/utils/utils';
+  import { TaskItemDetail } from '@/api/types/order';
   import AddTimes from './addTimes.vue';
 
   defineOptions({
     name: 'TimeForm',
   });
   const props = defineProps<{
-    rowData: TaskItem;
+    rowData: TaskItemDetail;
   }>();
   const emit = defineEmits(['cancel', 'modified']);
 
@@ -104,11 +104,7 @@
   }
   /* init */
   function initData() {
-    if (props.rowData.id) {
-      objModifyAssign(formData, props.rowData);
-    } else {
-      objModifyAssign(formData, defaultFormData);
-    }
+    formData.times = deepCopy(props.rowData.timeList);
   }
   onMounted(() => {
     initData();