From 021e4bb85124931388b067c262d844bcd6f1db09 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期四, 13 六月 2024 17:29:31 +0800
Subject: [PATCH] 完善创建任务功能

---
 src/components/mission/MIssionCreate.vue |   59 +++++++++++++++----
 src/components.d.ts                      |    2 
 src/components/mission/MissionManage.vue |    7 +-
 src/components/CardDialog.vue            |    3 
 src/composables/formConfirm.js           |   87 +++++++++++++++-------------
 5 files changed, 100 insertions(+), 58 deletions(-)

diff --git a/src/components.d.ts b/src/components.d.ts
index 680395f..9885d55 100644
--- a/src/components.d.ts
+++ b/src/components.d.ts
@@ -28,6 +28,7 @@
     ElForm: typeof import('element-plus/es')['ElForm']
     ElFormItem: typeof import('element-plus/es')['ElFormItem']
     ElIcon: typeof import('element-plus/es')['ElIcon']
+    ElInput: typeof import('element-plus/es')['ElInput']
     ElOption: typeof import('element-plus/es')['ElOption']
     ElPagination: typeof import('element-plus/es')['ElPagination']
     ElPopover: typeof import('element-plus/es')['ElPopover']
@@ -49,6 +50,7 @@
     MapLocation: typeof import('./components/map/MapLocation.vue')['default']
     MapScene: typeof import('./components/map/MapScene.vue')['default']
     MapToolbox: typeof import('./components/map/MapToolbox.vue')['default']
+    MissionCreate: typeof import('./components/mission/MissionCreate.vue')['default']
     MIssionCreate: typeof import('./components/mission/MIssionCreate.vue')['default']
     MissionImport: typeof import('./components/mission/MissionImport.vue')['default']
     MissionManage: typeof import('./components/mission/MissionManage.vue')['default']
diff --git a/src/components/CardDialog.vue b/src/components/CardDialog.vue
index 26608bc..6c04562 100644
--- a/src/components/CardDialog.vue
+++ b/src/components/CardDialog.vue
@@ -1,7 +1,8 @@
 <template>
   <el-dialog
     :model-value="modelValue"
-    @update-modelvalue="handleChange"
+    @opened="handleChange(true)"
+    @closed="handleChange(false)"
     :show-close="false"
     align-center
   >
diff --git a/src/components/mission/MIssionCreate.vue b/src/components/mission/MIssionCreate.vue
index 247fe32..58565ab 100644
--- a/src/components/mission/MIssionCreate.vue
+++ b/src/components/mission/MIssionCreate.vue
@@ -13,9 +13,26 @@
       ref="formRef"
       :rules="rules"
       label-position="right"
-      label-width="150px"
+      label-width="100px"
     >
-      <slot name="form-item" :formObj="formObj"></slot>
+      <el-form-item label="浠诲姟缂栧彿" prop="missionCode">
+        <el-input
+          size="small"
+          clearable
+          v-model="formObj.missionCode"
+          placeholder="浠诲姟缂栧彿"
+        />
+      </el-form-item>
+      <OptionType v-model="formObj.deviceType"></OptionType>
+      <el-form-item label="璁惧缂栧彿" prop="acountname">
+        <el-input
+          size="small"
+          clearable
+          v-model="formObj.deviceCode"
+          placeholder="璁惧缂栧彿"
+        />
+      </el-form-item>
+      <OptionTime v-model="formObj.timeArray"></OptionTime>
       <el-form-item>
         <el-button
           :disabled="!edit"
@@ -24,13 +41,13 @@
           :loading="loading"
           >鎻愪氦</el-button
         >
-        <el-button v-if="useCancel" @click="onCancel">鍙栨秷</el-button>
+        <el-button @click="onCancel">鍙栨秷</el-button>
       </el-form-item>
     </el-form>
   </CardDialog>
 </template>
 <script setup>
-import { onActivated, onDeactivated, ref, reactive, watch } from 'vue';
+import { ref, reactive, computed } from 'vue';
 import missionApi from '@/api/missionApi';
 import { useFormConfirm } from '@/composables/formConfirm';
 import { useFetchData } from '@/composables/fetchData';
@@ -60,15 +77,31 @@
     }
   ]
 });
+const param = computed(() => {
+  return {
+    missionCode: formObj.value.missionCode,
+    deviceType: formObj.value.deviceType,
+    deviceCode: formObj.value.deviceCode,
+    startTime: formObj.value.timeArray[0],
+    endTime: formObj.value.timeArray[1]
+  };
+});
 // 鍒涘缓浠诲姟
-function createMission() {}
-const { formObj, formRef, edit, onSubmit, onCancel, onReset, clear } =
-  useFormConfirm({
-    submit: {
-      do: createMission
-    },
-    cancel: {
-      do: () => (dialogVisible.value = false)
-    }
+function createMission() {
+  fetchData((page, pageSize) => {
+    return missionApi.putNewMission(param.value).then((res) => {
+      dialogVisible.value = false;
+    });
   });
+}
+const { formObj, formRef, edit, onSubmit, onCancel } = useFormConfirm({
+  submit: {
+    do: createMission
+  },
+  cancel: {
+    do: () => {
+      dialogVisible.value = false;
+    }
+  }
+});
 </script>
diff --git a/src/components/mission/MissionManage.vue b/src/components/mission/MissionManage.vue
index ba24f8f..d7efdb4 100644
--- a/src/components/mission/MissionManage.vue
+++ b/src/components/mission/MissionManage.vue
@@ -78,9 +78,10 @@
           </el-col>
           <el-col :span="4" class="flex-col">
             <div>
-              <el-button type="primary" class="el-button-custom">
+              <!-- <el-button type="primary" class="el-button-custom">
                 鏂板缓浠诲姟
-              </el-button>
+              </el-button> -->
+              <MissionCreate></MissionCreate>
             </div>
             <div>
               <el-button type="primary" class="el-button-custom">
@@ -111,7 +112,7 @@
     };
   },
   computed: {
-    ...mapState(useMissionStore, ['missionLi1st'])
+    ...mapState(useMissionStore, ['missionList'])
   },
   methods: {
     createMission() {},
diff --git a/src/composables/formConfirm.js b/src/composables/formConfirm.js
index 430c790..1cb2b18 100644
--- a/src/composables/formConfirm.js
+++ b/src/composables/formConfirm.js
@@ -95,58 +95,63 @@
   const onSubmit = function (messageBox = true) {
     formRef.value.validate(async (valid) => {
       if (valid) {
-        if (messageBox) {
-          // useMessageBoxTip({
-          //   confirmMsg: submit.msg,
-          //   confirmTitle: submit.title,
-          //   onConfirm: async () => {
-          //     const res = await submit.do();
-          //     submited();
-          //     return res;
-          //   }
-          // });
-        } else {
-          await submit.do();
-          submited();
-        }
+        // if (messageBox) {
+        //   useMessageBoxTip({
+        //     confirmMsg: submit.msg,
+        //     confirmTitle: submit.title,
+        //     onConfirm: async () => {
+        //       const res = await submit.do();
+        //       submited();
+        //       return res;
+        //     }
+        //   });
+        // } else {
+        //   await submit.do();
+        //   submited();
+        // }
+        await submit.do();
+        submited();
       }
     });
   };
 
   // 鍙栨秷鎻愪氦
   const onCancel = function () {
-    if (edit.value) {
-      // 寮瑰嚭纭妗�
-      // useMessageBox({
-      //   confirmMsg: cancel.msg,
-      //   confirmTitle: cancel.title,
-      //   onConfirm: () => {
-      //     // clear();
-      //     return cancel.do();
-      //   }
-      // });
-    } else {
-      cancel.do();
-    }
+    // if (edit.value) {
+    //   // 寮瑰嚭纭妗�
+    //   useMessageBox({
+    //     confirmMsg: cancel.msg,
+    //     confirmTitle: cancel.title,
+    //     onConfirm: () => {
+    //       // clear();
+    //       return cancel.do();
+    //     }
+    //   });
+    // } else {
+    //   cancel.do();
+    // }
+    cancel.do();
   };
 
   // 閲嶇疆琛ㄥ崟
   const onReset = function (tips) {
     if (edit.value) {
-      if (tips) {
-        // 寮瑰嚭纭妗�
-        // useMessageBox({
-        //   confirmMsg: '鏄惁閲嶇疆琛ㄥ崟鍐呭锛�',
-        //   confirmTitle: '閲嶇疆琛ㄥ崟',
-        //   onConfirm: () => {
-        //     _reset();
-        //     return reset.do();
-        //   }
-        // });
-      } else {
-        _reset();
-        reset.do();
-      }
+      // if (tips) {
+      //   // 寮瑰嚭纭妗�
+      //   useMessageBox({
+      //     confirmMsg: '鏄惁閲嶇疆琛ㄥ崟鍐呭锛�',
+      //     confirmTitle: '閲嶇疆琛ㄥ崟',
+      //     onConfirm: () => {
+      //       _reset();
+      //       return reset.do();
+      //     }
+      //   });
+      // } else {
+      //   _reset();
+      //   reset.do();
+      // }
+      _reset();
+      reset.do();
     } else {
       reset.do();
     }

--
Gitblit v1.9.3