Jelajahi Sumber

fix: 提醒拍照

lxf 2 hari lalu
induk
melakukan
acbb6bcd25

+ 4 - 1
src/components/popup/priceSheetPopup.vue

@@ -142,7 +142,6 @@ const quotationData = ref({});
 const priceData = ref({});
 
 onActivated(() => {
-    console.log('onActivated', quotationData.value);
     fetchPriceData()
 })
 
@@ -241,6 +240,10 @@ const handleShare = () => {
 
 const handleWechat = () => {
     console.log("handleWechat");
+    if (!priceData.value.itemsList || priceData.value.itemsList.length === 0) {
+        ElMessage.warning('暂无报价数据,无法分享')
+        return;
+    }
     // router.push({
     //     path: "/completed_work",
     //     query: { id: quotationData.value.id, farmWorkOrderId: quotationData.value.orderId, isAssign: true },

+ 9 - 5
src/components/taskItem.vue

@@ -128,9 +128,9 @@
                     <div class="btn warning" @click="shareResult">
                         分享成果
                     </div>
-                    <!-- <div class="btn secondary-text">
+                    <div class="btn secondary-text" @click="remindUser">
                         提醒用户拍照
-                    </div> -->
+                    </div>
                 </div>
             </div>
         </div>
@@ -141,6 +141,8 @@
 
     <!-- 分享农事成效弹窗 -->
     <review-popup ref="reviewPopupRef" />
+
+    <upload-execute ref="uploadExecuteRef" :onlyShare="true" />
 </template>
 
 <script setup>
@@ -167,7 +169,7 @@ const props = defineProps({
 })
 
 const expiredDay = ref(0) // 过期天数
-
+const uploadExecuteRef = ref(null);
 const router = useRouter();
 const detailDialogRef = ref(null);
 const reviewPopupRef = ref(null);
@@ -183,6 +185,10 @@ const shareResult = () => {
     }
 }
 
+const remindUser = () => {
+    uploadExecuteRef.value.showPopup(props.itemData, 'remindUser');
+}
+
 onMounted(async () => {
     // 若已带处方列表,直接生成;否则在需要时拉取详情后生成
     if (props.itemData && Array.isArray(props.itemData.prescriptionList)) {
@@ -199,9 +205,7 @@ onMounted(async () => {
 
 const triggerImg = ref([]);
 const getTriggerImg = async () => {
-    console.log('detailItem', detailItem.value)
     const { data } = await VE_API.z_farm_work_record.getTriggerImg({ farmWorkRecordId: detailItem.value.id });
-    console.log('triggerImg', data)
     triggerImg.value = data || [];
 }
 const detailItem = ref({});

+ 1 - 0
src/router/globalRoutes.js

@@ -104,6 +104,7 @@ export default [
     {
         path: "/modify_work",
         name: "ModifyWork",
+        meta: { keepAlive: true },
         component: () => import("@/views/old_mini/modify_work/index.vue"),
     },
     // 待执行completedWork.vue

+ 7 - 3
src/views/old_mini/farm_manage/components/demandHall.vue

@@ -86,7 +86,7 @@
 
 <script setup>
 import { FloatingPanel } from "vant";
-import { computed, nextTick, onMounted, ref } from "vue";
+import { computed, nextTick, onActivated, onMounted, ref } from "vue";
 import { useStore } from "vuex";
 import IndexMap from "../map/index";
 import taskItem from "@/components/taskItem.vue";
@@ -112,19 +112,23 @@ const height = ref(anchors.value[0]);
 const indexMap = new IndexMap();
 const mapContainer = ref(null);
 
-onMounted(() => {
+onActivated(() => {
     getSimpleList()
+});
+
+onMounted(() => {
     const point = store.state.home.miniUserLocationPoint;
     nextTick(() => {
         indexMap.initMap(point, mapContainer.value, props.isCapital);
     });
-});
+})
 
 const taskList = ref([]);
 function getSimpleList() {
     const location = store.state.home.miniUserLocationPoint;
     VE_API.z_farm_work_record.getSimpleList({ role: 2, location, flowStatus: '2,3' }).then(({data}) => {
         // 假设返回的数据结构是 { list: [], total: 0 } 或者直接是数组
+        console.log('dataaaaaaa', data)
         if (Array.isArray(data) && data.length > 0) {
             taskList.value = data;
             indexMap.initData(taskList.value)

+ 52 - 7
src/views/old_mini/modify_work/index.vue

@@ -398,7 +398,7 @@
 </template>
 
 <script setup>
-import { onActivated, ref, reactive, onDeactivated, computed, onMounted } from "vue";
+import { onActivated, ref, reactive, onDeactivated, onBeforeUnmount, computed, onMounted } from "vue";
 import { useRouter, useRoute } from "vue-router";
 import { ElMessage ,ElMessageBox} from "element-plus";
 import customHeader from "@/components/customHeader.vue";
@@ -425,7 +425,7 @@ const taskPopupType = ref('warning');
 const isEdit = ref(false)
 isAdd.value = route.query.isAdd ? true : false
 isEdit.value = route.query.isEdit ? true : false
-onMounted(() => {
+onActivated(() => {
     const id = route.query.id;
     if (id) {
         getDetail(id);
@@ -465,11 +465,6 @@ onMounted(() => {
     getWarningMsg();
 });
 
-onDeactivated(() => {
-    // areaRef.value && newFarmMap.destroyMap();
-    resetForm(formRef.value);
-});
-
 const detailData = ref({});
 const getDetail = (id) => {
     VE_API.z_farm_work_record.getDetail({ id }).then(({ data }) => {
@@ -514,6 +509,56 @@ const resetForm = (formEl) => {
     regionId.value = null;
 };
 
+// 清空所有数据
+const clearData = () => {
+    // 清空表单
+    resetForm(formRef.value);
+    
+    // 清空详情数据
+    detailData.value = {};
+    
+    // 清空表单数据
+    dynamicValidateForm.farmWorkName = "";
+    dynamicValidateForm.conditionRate = "";
+    dynamicValidateForm.purpose = "";
+    dynamicValidateForm.executeDate = dayjs().format("YYYY-MM-DD");
+    dynamicValidateForm.checkDay = "";
+    dynamicValidateForm.usageMode = "";
+    dynamicValidateForm.prescriptionList = [{
+        name: "",
+        pesticideFertilizerList: [{
+            key: 1,
+            typeName: "",
+            muUsage: "",
+            muUsage2: "",
+            ratio: "",
+            ratio2: "",
+            remark: "",
+        }],
+    }];
+    
+    // 清空其他数据
+    serveArea.value = null;
+    regionId.value = null;
+    areaList.value = [];
+    farmProgress.value = 0;
+    situationDescription.value = '';
+    checkedArea.value = false;
+    actionType.value = [];
+    gardenId.value = null;
+    showTaskPopup.value = false;
+    taskPopupType.value = 'warning';
+};
+
+onDeactivated(() => {
+    // areaRef.value && newFarmMap.destroyMap();
+    clearData();
+});
+
+onBeforeUnmount(() => {
+    clearData();
+});
+
 const cancelEdit = () => {
     ElMessageBox.confirm("确认要取消编辑吗?", "提示", {
         confirmButtonText: "确认",

+ 2 - 2
src/views/old_mini/task_condition/components/reviewPopup.vue

@@ -135,8 +135,8 @@ const handleWechat = () => {
     // });
 
     wx.miniProgram.navigateTo({
-            url: `/pages/subPages/share_page/index?pageParams=${JSON.stringify({ shareText: "向您分享了农事执行成果", id: recordId.value })}&type=reviewWork`,
-        });
+        url: `/pages/subPages/share_page/index?pageParams=${JSON.stringify({ shareText: "向您分享了农事执行成果", id: recordId.value, postImg: resImg.value })}&type=reviewWork`,
+    });
 };
 
 const handleSaveImage = async () => {

+ 15 - 2
src/views/old_mini/task_condition/components/uploadExecute.vue

@@ -75,7 +75,7 @@ function handleConfirm() {
 }
 
 const showShare = ref(false);
-const onSelect = ({type}) => {
+const onSelect = async ({type}) => {
     if(type === 'birdseye') {
         if(farmData.value.farmMiniUserId){
             router.push(`/chat_frame?userId=${farmData.value.farmMiniUserId}&name=${farmData.value.farmMiniUserName}&farmId=${farmData.value.farmId}&pageParams=${JSON.stringify(farmData.value)}`);
@@ -89,7 +89,14 @@ const onSelect = ({type}) => {
                 url: `/pages/subPages/share_page/index?pageParams=${JSON.stringify(query)}&type=priceSheet`,
             });
         } else if (farmData.value.type === 'remindExecute') {
-            const query = { askInfo: {title: "提醒执行", content: "是否分享该提示给好友"}, shareText: " 请您尽快执行" + farmData.value.farmWorkName + "农事", id: farmData.value.id, farmWorkOrderId: farmData.value.orderId }
+            await getTriggerImg();
+            const query = { askInfo: {title: "提醒执行", content: "是否分享该提示给好友"}, shareText: " 请您尽快执行" + farmData.value.farmWorkName + "农事", id: farmData.value.id, farmWorkOrderId: farmData.value.orderId, postImg: triggerImg.value.length ? base_img_url2 + triggerImg.value[triggerImg.value.length - 1].cloudFilename : '' }
+            wx.miniProgram.navigateTo({
+                url: `/pages/subPages/share_page/index?pageParams=${JSON.stringify(query)}&type=priceSheet`,
+            });
+        } else if (farmData.value.type === 'remindUser') {
+            await getTriggerImg();
+            const query = { askInfo: {title: "提醒拍照", content: "是否分享该提示给好友"}, shareText: " 请您尽快执行" + farmData.value.farmWorkName + "农事", id: farmData.value.id, farmWorkOrderId: farmData.value.orderId, postImg: triggerImg.value.length ? base_img_url2 + triggerImg.value[triggerImg.value.length - 1].cloudFilename : '' }
             wx.miniProgram.navigateTo({
                 url: `/pages/subPages/share_page/index?pageParams=${JSON.stringify(query)}&type=priceSheet`,
             });
@@ -104,6 +111,12 @@ const onSelect = ({type}) => {
     }
 };
 
+const triggerImg = ref([]);
+const getTriggerImg = async () => {
+    const { data } = await VE_API.z_farm_work_record.getTriggerImg({ farmWorkRecordId: farmData.value.id });
+    triggerImg.value = data || [];
+}
+
 defineExpose({
     showPopup,
 });