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