From 08ffcf9d7ffafaa82d8de7f9b5fcfdb49e9c3688 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期三, 05 十一月 2025 17:33:54 +0800
Subject: [PATCH] 动态溯源 1. 修复CO因子文本没有正常显示的问题;
---
src/components/mission/MissionEdit.vue | 139 +++++++++++++++++++++++++++++++++-------------
1 files changed, 99 insertions(+), 40 deletions(-)
diff --git a/src/components/mission/MissionEdit.vue b/src/components/mission/MissionEdit.vue
index c8695b7..b114951 100644
--- a/src/components/mission/MissionEdit.vue
+++ b/src/components/mission/MissionEdit.vue
@@ -1,5 +1,9 @@
<template>
- <CardDialog v-model="visible" title="鏂板缓璧拌埅浠诲姟">
+ <CardDialog
+ :title="dialogTitle"
+ :model-value="modelValue"
+ @update:modelValue="(e) => $emit('update:modelValue', e)"
+ >
<el-form
:inline="false"
:model="formObj"
@@ -43,26 +47,10 @@
</el-form-item>
</el-form>
</CardDialog>
- <el-button
- v-if="mode == 'create'"
- type="primary"
- class="el-button-custom"
- @click="visible = !visible"
- >
- 鏂板缓浠诲姟
- </el-button>
- <el-button
- v-else
- type="primary"
- size="small"
- icon="EditPen"
- class="el-button-custom"
- @click="visible = !visible"
- ></el-button>
</template>
<script setup>
import moment from 'moment';
-import { ref, reactive, computed } from 'vue';
+import { ref, onMounted, reactive, computed, watch } from 'vue';
import missionApi from '@/api/missionApi';
import thirdPartyDataApi from '@/api/thirdPartyDataApi';
import { useFormConfirm } from '@/composables/formConfirm';
@@ -74,15 +62,19 @@
mode: {
type: String,
default: 'create'
+ },
+ modelValue: Boolean,
+ mission: {
+ type: Object
}
- // visible: {
- // type: String,
- // default: 'create'
- // }
+});
+const dialogTitle = computed(() => {
+ return `${props.mode == 'create' ? '鏂板缓' : '淇敼'}璧拌埅浠诲姟`;
});
+const emits = defineEmits(['update:modelValue']);
+
const missionStore = useMissionStore();
-const visible = ref(false);
const { loading, fetchData } = useFetchData();
const rules = reactive({
location: [
@@ -122,6 +114,11 @@
});
const param = computed(() => {
return {
+ provinceCode: formObj.value.location.pCode,
+ provinceName: formObj.value.location.pName,
+ cityCode: formObj.value.location.cCode,
+ cityName: formObj.value.location.cName,
+ districtCode: formObj.value.location.dCode,
districtName: formObj.value.location.dName,
missionCode: formObj.value.missionCode,
deviceType: formObj.value.deviceType,
@@ -130,37 +127,99 @@
endTime: formObj.value.timeArray[1]
};
});
+
+function submitMission() {
+ // const newMission = { ...param.value };
+ if (props.mode == 'create') {
+ createMission();
+ } else {
+ updateMission();
+ }
+}
+
// 鍒涘缓浠诲姟
function createMission() {
fetchData((page, pageSize) => {
- return missionApi.putNewMission(param.value).then((res) => {
- visible.value = false;
- missionStore.fetchMission();
- // 閫氱煡鏈嶅姟绔惎鍔ㄤ换鍔¤寖鍥村唴鐨勭涓夋柟鏁版嵁鑾峰彇浠诲姟
- thirdPartyDataApi.fetchMissionData(param.value.missionCode);
- });
+ return missionApi
+ .putNewMission(param.value)
+ .then((res) => {
+ missionStore.fetchMission();
+ // 閫氱煡鏈嶅姟绔惎鍔ㄤ换鍔¤寖鍥村唴鐨勭涓夋柟鏁版嵁鑾峰彇浠诲姟
+ thirdPartyDataApi.fetchMissionData(param.value.missionCode);
+ })
+ .finally(() => emits('update:modelValue', false));
});
}
+
+function updateMission() {
+ fetchData((page, pageSize) => {
+ return missionApi
+ .updateMission(param.value)
+ .then((res) => {
+ missionStore.fetchMission();
+ // 閫氱煡鏈嶅姟绔惎鍔ㄤ换鍔¤寖鍥村唴鐨勭涓夋柟鏁版嵁鑾峰彇浠诲姟
+ thirdPartyDataApi.fetchMissionData(param.value.missionCode);
+ })
+ .finally(() => emits('update:modelValue', false));
+ });
+}
+
const { formObj, formRef, edit, onSubmit, onCancel } = useFormConfirm({
submit: {
- do: createMission
+ do: submitMission
},
cancel: {
do: () => {
- visible.value = false;
+ emits('update:modelValue', false);
}
}
});
-if (import.meta.env.VITE_DATA_MODE == 'jingan') {
- formObj.value.location = {
- pCode: '31',
- pName: '涓婃捣甯�',
- cCode: '3100',
- cName: '涓婃捣甯�',
- dCode: '310106',
- dName: '闈欏畨鍖�'
- };
+// 鐩戝惉浼犲叆鐨勪换鍔′俊鎭紝鍦ㄦ洿鏂版ā寮忎笅锛屽皢浠诲姟淇℃伅鏄犲皠鍒拌〃鍗曚笂
+watch(
+ () => [props.modelValue, props.mission],
+ (nV, oV) => {
+ if (nV != oV) {
+ const [v, m] = nV;
+ if (v) {
+ initFormObj();
+ }
+ if (m && props.mode == 'update') {
+ formObj.value.location = {
+ pCode: m.provinceCode,
+ pName: m.provinceName,
+ cCode: m.cityCode,
+ cName: m.cityName,
+ dCode: m.districtCode,
+ dName: m.districtName
+ };
+ formObj.value.missionCode = m.missionCode;
+ formObj.value.deviceType = m.deviceType;
+ formObj.value.deviceCode = m.deviceCode;
+ formObj.value.timeArray = [m.startTime, m.endTime];
+ }
+ }
+ },
+ { immediate: true }
+);
+
+onMounted(() => {
+ initFormObj();
+});
+
+function initFormObj() {
+ if (import.meta.env.VITE_DATA_MODE == 'jingan') {
+ formObj.value.location = {
+ pCode: '31',
+ pName: '涓婃捣甯�',
+ cCode: '3100',
+ cName: '涓婃捣甯�',
+ dCode: '310106',
+ dName: '闈欏畨鍖�'
+ };
+ } else {
+ formObj.value = {};
+ }
}
</script>
<style scoped>
--
Gitblit v1.9.3