riku
2024-06-13 021e4bb85124931388b067c262d844bcd6f1db09
完善创建任务功能
已修改5个文件
158 ■■■■■ 文件已修改
src/components.d.ts 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/CardDialog.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/mission/MIssionCreate.vue 59 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/mission/MissionManage.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/composables/formConfirm.js 87 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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']
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
  >
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>
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() {},
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();
    }