From c40500d288339cd9b2200f8f909e3cd5471c0c22 Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期五, 30 八月 2024 17:38:29 +0800 Subject: [PATCH] 1. 优化3D动画中风向的变化逻辑; 2. 修复折线图切换因子时,数据直接跳转至起始处的问题; 3. 折线图和表格加回风向因子; 4. 优化风向的均值计算为矢量计算,同时最大最小值不显示; 5. 新增表格数据导出功能; --- src/components/mission/MIssionCreate.vue | 119 ++++++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 97 insertions(+), 22 deletions(-) diff --git a/src/components/mission/MIssionCreate.vue b/src/components/mission/MIssionCreate.vue index 247fe32..c7d00f8 100644 --- a/src/components/mission/MIssionCreate.vue +++ b/src/components/mission/MIssionCreate.vue @@ -13,9 +13,31 @@ 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="location"> + <OptionLocation2 + :level="3" + :initValue="false" + :checkStrictly="false" + :allOption="false" + v-model="formObj.location" + ></OptionLocation2> + </el-form-item> + <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> + <OptionDevice + :type="formObj.deviceType" + v-model="formObj.deviceCode" + ></OptionDevice> + <OptionTime v-model="formObj.timeArray"></OptionTime> <el-form-item> <el-button :disabled="!edit" @@ -24,51 +46,104 @@ :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 moment from 'moment'; +import { ref, reactive, computed } from 'vue'; import missionApi from '@/api/missionApi'; +import thirdPartyDataApi from '@/api/thirdPartyDataApi'; import { useFormConfirm } from '@/composables/formConfirm'; import { useFetchData } from '@/composables/fetchData'; +import { useMissionStore } from '@/stores/mission'; +const missionStore = useMissionStore(); const dialogVisible = ref(false); const { loading, fetchData } = useFetchData(); -const baseRules = reactive({ - _usertype: [ +const rules = reactive({ + location: [ { required: true, - message: '鐢ㄦ埛绫诲瀷涓嶈兘涓虹┖', + message: '鍖哄幙涓嶈兘涓虹┖', trigger: 'change' } ], - _locations: [ + missionCode: [ { required: true, - message: '琛屾斂鍖哄垝涓嶈兘涓虹┖', - trigger: 'change' + message: '浠诲姟缂栧彿涓嶈兘涓虹┖', + trigger: 'blur' } ], - _scenetype: [ + timeArray: [ { required: true, - message: '鍦烘櫙绫诲瀷涓嶈兘涓虹┖', - trigger: 'change' + // message: '鏃堕棿涓嶈兘涓虹┖', + trigger: 'change', + validator: (rule, value, callback) => { + if (value == null) { + callback(new Error('鏃堕棿涓嶈兘涓虹┖')); + } else { + const st = moment(value[0]); + const et = moment(value[1]); + const range = et.diff(st, 'second'); + if (range > 12 * 60 * 60) { + callback(new Error('浠诲姟鏃堕暱鏈�澶氫负12灏忔椂')); + } + } + callback(); + } } ] }); +const param = computed(() => { + return { + districtName: formObj.value.location.dName, + 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; + missionStore.fetchMission(); + // 閫氱煡鏈嶅姟绔惎鍔ㄤ换鍔¤寖鍥村唴鐨勭涓夋柟鏁版嵁鑾峰彇浠诲姟 + thirdPartyDataApi.fetchMissionData(param.value.missionCode); + }); }); +} +const { formObj, formRef, edit, onSubmit, onCancel } = useFormConfirm({ + submit: { + do: createMission + }, + cancel: { + do: () => { + dialogVisible.value = false; + } + } +}); + +if (import.meta.env.VITE_DATA_MODE == 'jingan') { + formObj.value.location = { + pCode: '31', + pName: '涓婃捣甯�', + cCode: '3100', + cName: '涓婃捣甯�', + dCode: '310106', + dName: '闈欏畨鍖�' + }; +} </script> +<style scoped> +/* .el-form-item { + margin-bottom: 0px; +} */ +</style> -- Gitblit v1.9.3