From d205764a3ebe073b8302e8faf9345b74ae3350df Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期一, 11 十一月 2024 17:12:35 +0800
Subject: [PATCH] 优化初始化进入界面时,默认监测因子选项为PM颗粒物等常用因子

---
 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