Pārlūkot izejas kodu

Merge branch 'master' of http://www.sysuimars.cn:3000/feiniao/feiniao-farm-h5

刘秀芳 1 dienu atpakaļ
vecāks
revīzija
bd03645fc4

BIN
src/assets/img/home/sd-bg.png


BIN
src/assets/img/home/sd.png


BIN
src/assets/img/home/zj-1.png


BIN
src/assets/img/home/zj-2.png


BIN
src/assets/img/home/zj-3.png


+ 10 - 6
src/components/detailDialog.vue

@@ -70,7 +70,7 @@
 
             <div class="bottom-btn" v-if="showBtn">
                 <div class="btn-item secondary-btn" @click="toPage">{{ btnText }}</div>
-                <div class="btn-item primary-btn" @click="triggerClick">触发农事</div>
+                <div class="btn-item primary-btn" @click="triggerClick">{{ curRole == 0 ? "触发农事" : "下发农事" }}</div>
             </div>
         </div>
         <template #footer>
@@ -88,10 +88,10 @@
             <img class="right-img" src="@/assets/img/home/right.png" alt="" />
         </div>
         <div class="no-popup-title">
-            <span>好的,感谢您的配合</span>
-            <div class="no-popup-title-sub">请您耐心等待 专家确认农事</div>
+            <span>{{ curRole == 0 ? "好的,感谢您的配合" : "农事下发成功" }}</span>
+            <div class="no-popup-title-sub" v-if="curRole == 0">请您耐心等待 专家确认农事</div>
         </div>
-        <div class="no-popup-btn" @click="noShow = false">我知道了</div>
+        <div class="no-popup-btn" @click="noShow = false">{{ curRole == 0 ? "我知道了" : "转发给客户" }}</div>
     </Popup>
 </template>
 <script setup>
@@ -107,6 +107,8 @@ const props = defineProps({
     },
 });
 
+const curRole = localStorage.getItem("SET_USER_CUR_ROLE");
+
 const winDialogVisible = ref(false);
 const noShow = ref(false);
 const btnText = ref('');
@@ -120,7 +122,8 @@ const triggerClick = () => {
 
     // 如果只显示成功弹窗(来自 album_recognize 页面)
     if (props.showSuccessOnly) {
-        eventBus.emit("activeUpload:success");
+        noShow.value = true;
+        // eventBus.emit("activeUpload:success");
     } else {
         emit("triggerFarmWork");
     }
@@ -227,7 +230,8 @@ function toPage() {
 }
 .congratulation-box {
     border-radius: 12px;
-    background: url("@/assets/img/home/box-top.png") no-repeat top center / contain;
+    background: url("@/assets/img/home/sd-bg.png") no-repeat top center / contain;
+    // background: url("@/assets/img/home/box-top.png") no-repeat top center / contain;
     .el-message-box__message {
         padding: 12px 0 24px 0;
     }

+ 47 - 11
src/components/taskItem.vue

@@ -120,9 +120,8 @@
             
             <slot name="footer"></slot>
 
-            
             <div class="item-footer" v-if="status === 1">
-                <div class="footer-l farm-name-text">
+                <div class="footer-l farm-name-text van-ellipsis" :style="{ width: detailItem?.reviewImage?.length ? 'calc(100% - 85px)' : 'calc(100% - 180px)' }">
                     来自<span class="name-text">{{ itemData.farmName || '未知农场' }}</span>
                 </div>
                 <div class="footer-r">
@@ -133,9 +132,9 @@
                         <div class="btn secondary-text" @click="remindUser">
                             提醒用户拍照
                         </div>
-                        <!-- <div class="btn secondary-text" @click="remindUser">
-                            提醒用户拍照
-                        </div> -->
+                        <div class="btn photo-text" @click="handleUploadPhoto">
+                            上传照片
+                        </div>
                     </template>
                 </div>
             </div>
@@ -149,6 +148,9 @@
     <review-popup ref="reviewPopupRef" />
 
     <upload-execute ref="uploadExecuteRef" :onlyShare="true" />
+
+     <!-- 上传照片弹窗 -->
+     <review-upload-popup v-model="showUpload" :record-id="sectionId" @success="handleUploadSuccess" />
 </template>
 
 <script setup>
@@ -158,6 +160,7 @@ import { base_img_url2 } from "@/api/config";
 import detailDialog from "@/components/detailDialog.vue";
 import uploadExecute from "@/views/old_mini/task_condition/components/uploadExecute.vue";
 import reviewPopup from "@/views/old_mini/task_condition/components/reviewPopup.vue";
+import reviewUploadPopup from "@/components/popup/reviewUploadPopup.vue";
 
 const props = defineProps({
     status: {
@@ -195,6 +198,36 @@ const remindUser = () => {
     uploadExecuteRef.value.showPopup({...props.itemData, type: 'remindUser'});
 }
 
+const showUpload = ref(false);
+const sectionId = ref(null);
+const handleUploadPhoto = () => {
+    showUpload.value = true;
+    sectionId.value = props.itemData.id;
+}
+
+const emit = defineEmits(["handleUploadSuccess"]);
+
+const triggerImg = ref([]);
+const detailItem = ref({});
+const getTriggerImg = async () => {
+    if (!detailItem.value?.id) return;
+    const { data } = await VE_API.z_farm_work_record.getTriggerImg({ farmWorkRecordId: detailItem.value.id });
+    triggerImg.value = data || [];
+}
+
+// 更新触发图片(上传成功后调用)
+const updateTriggerImg = async () => {
+    if (props.status === 1 && props.itemData?.id) {
+        // 重新获取详情和图片
+        await getItemDetail(props.itemData.id);
+        await getTriggerImg();
+    }
+}
+
+const handleUploadSuccess = async () => { 
+    emit("handleUploadSuccess");
+}
+
 onMounted(async () => {
     // 若已带处方列表,直接生成;否则在需要时拉取详情后生成
     if (props.itemData && Array.isArray(props.itemData.prescriptionList)) {
@@ -209,12 +242,10 @@ onMounted(async () => {
     }
 })
 
-const triggerImg = ref([]);
-const getTriggerImg = async () => {
-    const { data } = await VE_API.z_farm_work_record.getTriggerImg({ farmWorkRecordId: detailItem.value.id });
-    triggerImg.value = data || [];
-}
-const detailItem = ref({});
+// 将所有需要暴露的方法放在 defineExpose 中
+defineExpose({
+    updateTriggerImg
+})
 const prescriptionText = ref('');
 function buildPrescriptionText(list) {
     try {
@@ -348,6 +379,7 @@ const toDetail = (status, id, farmWorkId) => {
             &.farm-name-text {
                 font-size: 14px;
                 color: #6F7274;
+                width: calc(100% - 180px);
                 .name-text {
                     padding-left: 4px;
                 }
@@ -386,6 +418,10 @@ const toDetail = (status, id, farmWorkId) => {
                     color: #2199F8;
                     border: 1px solid #2199F8;
                 }
+                &.photo-text{
+                    background: #2199F8;
+                    color: #fff;
+                }
             }
             .btn + .btn {
                 margin-left: 8px;

+ 5 - 3
src/views/old_mini/home/components/problemReminder.vue

@@ -10,9 +10,11 @@
                 <img class="header-icon" src="@/assets/img/home/file-icon.png" alt="" />
             </div>
             <div class="question-section-wrapper">
-                <span class="question-text">{{ questPopupData.quest }}</span>
+                <!-- <span class="question-text">{{ questPopupData.quest }}</span> -->
+                <span class="question-text">请问 <span style="color: #2199f8;">水稻园</span> 的水稻是否进入分蘖期?</span>
                 <div class="img">
-                    <img :src="questPopupData.backgroundImage" alt="" />
+                    <!-- <img :src="questPopupData.backgroundImage" alt="" /> -->
+                    <img src="@/assets/img/home/sd.png" alt="" />
                 </div>
                 <div class="options-section">
                     <span class="options-label">您可以选择</span>
@@ -195,7 +197,7 @@ const images = ref([]);
 function handleUploadSuccess(params) {
     images.value = params.images;
     saveQuestPopup();
-    detailDialogRef.value.showDialog("708734452137725952", "咨询专家");
+    detailDialogRef.value.showDialog("2220003", curRole == 0 ? "咨询专家" : "转发");
 }
 </script>
 <style lang="scss" scoped>

+ 3 - 1
src/views/old_mini/home/index.vue

@@ -52,7 +52,7 @@
         </div>
     </popup>
     <!-- 问题提醒 -->
-    <problem-reminder :farmId="gardenId"></problem-reminder>
+    <problem-reminder :farmId="gardenId1"></problem-reminder>
 </template>
 
 <script setup>
@@ -76,10 +76,12 @@ const showFarmPopup = ref(false);
 const farmPopupType = ref("create");
 
 const gardenId = ref(null);
+const gardenId1 = ref(null);
 
 const isGarden = ref(false);
 const changeGarden = ({id}) => {
     gardenId.value = id;
+    gardenId1.value = 766;
     getExpertByFarmId();
     isGarden.value = true;
     localStorage.setItem('isGarden', true);

+ 158 - 95
src/views/old_mini/home/subPages/expertList.vue

@@ -1,54 +1,44 @@
 <template>
     <div class="prescription-list">
-        <custom-header :name="isToSelect ? '选择专家' : '咨询专家'"></custom-header>
+        <custom-header v-if="!isShowHeader" :name="isToSelect ? '选择专家' : '咨询专家'"></custom-header>
         <div class="prescription-filter">
             <div class="filter-search">
-                <el-input
-                    v-model="keyword"
-                    style="width: 100%"
-                    placeholder="搜索位置"
-                    :prefix-icon="Search"
-                    />
+                <el-input v-model="keyword" style="width: 100%" placeholder="搜索位置" :prefix-icon="Search" />
             </div>
             <div class="select-box">
                 <div class="select-item width-30">
                     <el-select v-model="typeVal" placeholder="品种" @change="getList">
-                            <el-option
-                                v-for="item in typeOptions"
-                                :key="item.id"
-                                :label="item.name"
-                                :value="item.id"
-                            />
+                        <el-option v-for="item in typeOptions" :key="item.id" :label="item.name" :value="item.id" />
                     </el-select>
                 </div>
                 <div class="select-item width-20">
                     <el-select v-model="regionVal" placeholder="城市">
-                            <el-option
-                                v-for="item in regionOptions"
-                                :key="item.value"
-                                :label="item.label"
-                                :value="item.value"
-                            />
+                        <el-option
+                            v-for="item in regionOptions"
+                            :key="item.value"
+                            :label="item.label"
+                            :value="item.value"
+                        />
                     </el-select>
                 </div>
                 <div class="select-item width-30">
                     <el-select v-model="levelVal" placeholder="专家擅长">
-                            <el-option
-                                v-for="item in levelOptions"
-                                :key="item.value"
-                                :label="item.label"
-                                :value="item.value"
-                            />
+                        <el-option
+                            v-for="item in levelOptions"
+                            :key="item.value"
+                            :label="item.label"
+                            :value="item.value"
+                        />
                     </el-select>
                 </div>
                 <div class="select-item width-20">
                     <el-select v-model="levelVal" placeholder="筛选">
-                            <el-option
-                                v-for="item in levelOptions"
-                                :key="item.value"
-                                :label="item.label"
-                                :value="item.value"
-                            />
+                        <el-option
+                            v-for="item in levelOptions"
+                            :key="item.value"
+                            :label="item.label"
+                            :value="item.value"
+                        />
                     </el-select>
                 </div>
             </div>
@@ -58,7 +48,10 @@
                 <div class="list-item" v-for="(item, index) in list" :key="index">
                     <div class="list-top">
                         <div class="user">
-                            <img :src="item.pic" alt="" />
+                            <!-- <img :src="item.pic" alt="" /> -->
+                            <img v-show="index === 0" :src="require(`@/assets/img/home/zj-1.png`)" alt="" />
+                            <img v-show="index === 1" :src="require(`@/assets/img/home/zj-2.png`)" alt="" />
+                            <img v-show="index === 2" :src="require(`@/assets/img/home/zj-3.png`)" alt="" />
                             <!-- <div class="checkbox" @click.stop="handleCheck(item)">
                                 <el-icon class="icon" v-if="item.isDefault"><Select /></el-icon>
                                 <el-icon class="icon rotate" v-else><CloseBold /></el-icon>
@@ -72,11 +65,7 @@
                                         <img class="expert-img" src="@/assets/img/home/expert-icon.png" alt="">
                                         专家
                                     </span> -->
-                                    <div
-                                        class="fruit-tag"
-                                        v-for="(ele, eleIndex) in item.tagList"
-                                        :key="eleIndex"
-                                    >
+                                    <div class="fruit-tag" v-for="(ele, eleIndex) in item.tagList" :key="eleIndex">
                                         {{ ele.name }}
                                     </div>
                                 </div>
@@ -85,7 +74,7 @@
                                 </div>
                             </div>
                             <div class="van-multi-ellipsis--l2 ellipsis">擅长:{{ item.strongPoint }}</div>
-                            
+
                             <div class="list-btn">
                                 <div class="btn-primary" @click.stop="toPage(item)">
                                     <span>免费咨询</span>
@@ -108,85 +97,156 @@
 
 <script setup>
 import customHeader from "@/components/customHeader.vue";
-import { Empty} from "vant";
+import { Empty } from "vant";
 import { onActivated, onMounted, ref } from "vue";
-import { useRouter,useRoute } from "vue-router";
+import { useRouter, useRoute } from "vue-router";
 import { useStore } from "vuex";
 import { ElMessage } from "element-plus";
-import { Search } from '@element-plus/icons-vue'
+import { Search } from "@element-plus/icons-vue";
 const store = useStore();
 const router = useRouter();
 const route = useRoute();
 
-const isToSelect = route.query.isToSelect ? true : false
+const props = defineProps({
+    isShowHeader: {
+        type: Boolean,
+        default: false,
+    },
+});
+
+const isToSelect = route.query.isToSelect ? true : false;
 
-const handlePage = ({isDefault,userId}) =>{
-    if(isDefault==null){
-        console.log('isDefault',isDefault);
+const handlePage = ({ isDefault, userId }) => {
+    if (isDefault == null) {
+        console.log("isDefault", isDefault);
         // router.push(`/expert_prescription?userId=${userId}&disabled=true`)
-    }else{
-        router.push('/expert_prescription')
+    } else {
+        router.push("/expert_prescription");
     }
-}
+};
 
 const typeOptions = ref([]);
 
 function getSpecieList() {
     VE_API.farm.fetchSpecieList().then(({ data }) => {
         typeOptions.value = data;
-        
-        getList(data[0].id);
+
+        // getList(data[0].id);
     });
 }
 
-
-const list = ref([]);
+const list = ref([
+    {
+        containerId: "9",
+        expertId: "739294587868155904",
+        name: "冼继东",
+        strongPoint: "擅长:长期从事农业昆虫与害虫防治教学与研究工作。取得成果和奖励10项,发表学术论文50余篇。多年来一直致力于果树、蔬菜以及水稻主要病虫害非化学防控技术的推广工作,为有机荔枝龙眼、稻米、蔬菜以及多种水果的高效、安全生产提供技术指导。",
+        tagList: [
+            {
+                id: 825,
+                name: "荔枝",
+                remark: "花穗生长速度过慢",
+            },
+            {
+                id: 829,
+                name: "病虫害",
+                remark: "防止落果",
+            },
+        ],
+        userId: 81881,
+    },
+    {
+        containerId: "9",
+        expertId: "739294587868155904",
+        name: "韦帮稳",
+        pic: "https://birdseye-img-ali-cdn.sysuimars.com//expert/1757473957076.png",
+        strongPoint: "擅长:深耕果树栽培领域达30年,在荔枝、龙眼、柑橘、番茄、木瓜等多个品类果树具有非常丰富的种植栽培经验;自管荔枝果园超2000亩,每年指导海南、湛江、茂名、广州、汕尾、惠州、广西等多地的种植户超百户,面积超1万亩!",
+        tagList: [
+            {
+                id: 825,
+                name: "荔枝",
+                remark: "花穗生长速度过慢",
+            },
+            {
+                id: 829,
+                name: "龙眼",
+                remark: "防止落果",
+            },
+        ],
+        userId: 81881,
+    },
+    {
+        containerId: "9",
+        expertId: "739294587868155904",
+        name: "黄旭明",
+        pic: "https://birdseye-img-ali-cdn.sysuimars.com//expert/1757473957076.png",
+        strongPoint: "擅长:长期从事南方果树生理学研究,研究领域包括常绿果树枝梢生长节奏及调控、具假种皮果实果皮发育、细胞壁代谢和钙营养与生理病害发生关系、果实膨大生长与水分关系等。研究方向为果树生态生理学。1998年获华南农业大学植物生理学博士学位,现任南方果树研究室主任。",
+        tagList: [
+            {
+                id: 825,
+                name: "荔枝",
+                remark: "花穗生长速度过慢",
+            },
+            {
+                id: 829,
+                name: "龙眼",
+                remark: "防止落果",
+            },
+        ],
+        userId: 81881,
+    },
+]);
 
 const getList = (speciesId) => {
-    VE_API.home.fetchExpertList({speciesId}).then(({data}) => {
+    VE_API.home.fetchExpertList({ speciesId }).then(({ data }) => {
         list.value = data || [];
     });
 };
 
 onMounted(() => {
-    getSpecieList()
+    getSpecieList();
 });
 
-function toPage({containerId,userId,name}) {
+function toPage({ containerId, userId, name }) {
     if (isToSelect) {
-        router.push(`/expert_homepage?containerId=${containerId}`)
+        router.push(`/expert_homepage?containerId=${containerId}`);
         // router.replace(`/expert_homepage?containerId=${containerId}`)
     } else {
-        router.push(`/chat_frame?userId=${userId}&name=${name}`)
+        router.push(`/chat_frame?userId=${userId}&name=${name}`);
     }
 }
 
 // 搜索
-const keyword = ref(null)
-const typeVal = ref(null)
-const regionVal = ref(null)
-const levelVal = ref(null)
+const keyword = ref(null);
+const typeVal = ref(null);
+const regionVal = ref(null);
+const levelVal = ref(null);
 
-const regionOptions = ref([{
-    label: "全部",
-    value: "all"
-}, {
-    label: "区域1",
-    value: "1"
-}, {
-    label: "区域2",
-    value: "2"
-}, {
-    label: "区域3",
-    value: "3"
-}])
+const regionOptions = ref([
+    {
+        label: "全部",
+        value: "all",
+    },
+    {
+        label: "区域1",
+        value: "1",
+    },
+    {
+        label: "区域2",
+        value: "2",
+    },
+    {
+        label: "区域3",
+        value: "3",
+    },
+]);
 
 const levelOptions = ref([
     { label: "全部", value: "all" },
     { label: "荔枝", value: "1" },
     { label: "龙眼", value: "2" },
     { label: "枇杷", value: "3" },
-])
+]);
 </script>
 
 <style lang="scss" scoped>
@@ -265,53 +325,57 @@ const levelOptions = ref([
                     height: 68px;
                     margin-right: 12px;
                     position: relative;
-                    img{
+                    img {
                         width: 100%;
                         height: 100%;
                         border-radius: 8px;
                         object-fit: scale-down;
                     }
-                    .checkbox{
+                    .checkbox {
                         position: absolute;
                         bottom: -2px;
                         right: -1px;
                         width: 25px;
                         height: 25px;
-                        background: #2199F8;
+                        background: #2199f8;
                         border-radius: 50%;
                         display: flex;
                         align-items: center;
                         justify-content: center;
-                        .icon{
+                        .icon {
                             color: #fff;
                             font-size: 16px;
                         }
-                        .rotate{
+                        .rotate {
                             transform: rotate(45deg);
                         }
                     }
                 }
                 .list-top {
                     display: flex;
+                    img{
+                        border-radius: 50%;
+                        object-fit: cover;
+                    }
                 }
                 .list-btn {
                     display: flex;
                     // justify-content: center;
                     font-size: 12px;
                     margin-top: 8px;
-                    .btn-primary{
+                    .btn-primary {
                         background: rgba(33, 153, 248, 0.12);
                         padding: 0 12px;
-                        color: #2199F8;
+                        color: #2199f8;
                         border-radius: 20px;
                         height: 32px;
                         line-height: 32px;
                         display: flex;
-                        span{
+                        span {
                             margin-left: 3px;
                         }
                     }
-                    .btn-plain{
+                    .btn-plain {
                         background: rgba(162, 162, 162, 0.12);
                         color: rgba(0, 0, 0, 0.5);
                         padding: 0px 12px;
@@ -333,7 +397,7 @@ const levelOptions = ref([
                         color: #666666;
                         align-items: center;
                         justify-content: space-between;
-                        .info-flex{
+                        .info-flex {
                             display: flex;
                             align-items: center;
                         }
@@ -341,7 +405,7 @@ const levelOptions = ref([
                             width: 26px;
                             height: 26px;
                             border-radius: 50%;
-                            background: #2199F8;
+                            background: #2199f8;
                             text-align: center;
                             display: flex;
                             align-items: center;
@@ -358,8 +422,8 @@ const levelOptions = ref([
                             display: flex;
                             align-items: center;
                             justify-content: center;
-                            color: #C77D05;
-                            background: #FFECAD;
+                            color: #c77d05;
+                            background: #ffecad;
                             border-radius: 4px;
                             font-size: 12px;
                             margin-left: 8px;
@@ -369,16 +433,16 @@ const levelOptions = ref([
                                 padding-right: 2px;
                             }
                         }
-                        .btn-text{
+                        .btn-text {
                             font-size: 12px;
-                            color: #A8A8A8;
+                            color: #a8a8a8;
                             padding: 2px 12px;
                             border-radius: 20px;
-                            border: 1px solid #A8A8A8;
+                            border: 1px solid #a8a8a8;
                             background: rgba(220, 220, 220, 0.1);
-                            &.actice{
-                                color: #F3C11D;
-                                border-color: #F3C11D;
+                            &.actice {
+                                color: #f3c11d;
+                                border-color: #f3c11d;
                                 background: rgba(243, 193, 29, 0.1);
                             }
                         }
@@ -397,7 +461,6 @@ const levelOptions = ref([
                         //     color: #ac4dff;
                         // }
                         &:nth-child(3) {
-                            
                             background: #eedaff;
                             color: #ac4dff;
                         }

+ 1 - 3
src/views/old_mini/modify_work/reviewWork.vue

@@ -139,9 +139,7 @@
                                             <img
                                                 class="img-icon"
                                                 :src="
-                                                    require(`@/assets/img/gallery/img-icon${
-                                                        curRole === '0' ? '-act' : ''
-                                                    }.png`)
+                                                    require(`@/assets/img/gallery/img-icon-act.png`)
                                                 "
                                                 alt=""
                                             />

+ 37 - 11
src/views/old_mini/plan/index.vue

@@ -1,17 +1,24 @@
 <template>
     <div class="farm-card-page">
         <custom-header name="农事方案"></custom-header>
-        <div class="farm-card-content">
-            <tab-list
-                v-if="curRole == 2"
-                type="light"
-                v-model="active"
-                :tabs="tabs"
-                @change="handleTabChange"
-                class="tabs-list"
-            />
-            <plan-list :farm-id="route.query.farmId" :schemeId="active" isEdit> </plan-list>
-        </div>
+        <Tabs v-model:active="activeTab" class="tabs-wrap">
+            <Tab title="专家方案">
+                <expert-list :isShowHeader="true"></expert-list>
+            </Tab>
+            <Tab title="我的方案">
+                <div class="farm-card-content">
+                    <tab-list
+                        v-if="curRole == 2"
+                        type="light"
+                        v-model="active"
+                        :tabs="tabs"
+                        @change="handleTabChange"
+                        class="tabs-list"
+                    />
+                    <plan-list :farm-id="route.query.farmId" :schemeId="active" isEdit> </plan-list>
+                </div>
+            </Tab>
+        </Tabs>
     </div>
 </template>
 
@@ -19,9 +26,13 @@
 import customHeader from "@/components/customHeader.vue";
 import { onMounted, ref } from "vue";
 import { useRoute } from "vue-router";
+import { Tab, Tabs } from "vant";
+import expertList from "@/views/old_mini/home/subPages/expertList.vue";
 import tabList from "@/components/pageComponents/TabList.vue";
 import PlanList from "@/components/pageComponents/PlanList.vue";
 
+const activeTab = ref(1);
+
 const route = useRoute();
 const curRole = localStorage.getItem("SET_USER_CUR_ROLE");
 
@@ -62,6 +73,21 @@ const getSchemes = () => {
     width: 100%;
     height: 100vh;
     background: #f5f7fb;
+    .tabs-wrap {
+        ::v-deep {
+            .van-tabs__line {
+                width: 24px;
+                height: 4px;
+            }
+            .van-tab {
+                width: 100px;
+                flex: none;
+            }
+            .van-tabs__nav {
+                justify-content: center;
+            }
+        }
+    }
     .farm-card-content {
         width: 100%;
         height: calc(100vh - 40px);

+ 7 - 1
src/views/old_mini/task_condition/components/task.vue

@@ -36,7 +36,7 @@
             </div> -->
             <div class="task-content" v-loading="loading">
                 <div class="task-item" v-for="item in taskList" :key="item.id || item.workRecordId">
-                    <task-item :status="activeIndex === 3 ? 1 : 0" :item-data="item">
+                    <task-item :status="activeIndex === 3 ? 1 : 0" :item-data="item" @handleUploadSuccess="handleUploadSuccess" ref="taskItemRef">
                         <template #footer>
                             <div class="item-footer" v-if="activeIndex === 0 || activeIndex === 2">
                                 <div class="footer-l" @click="toDetail(item)">
@@ -175,6 +175,12 @@ function getTaskCount(flowStatus, index) {
     });
 }
 
+const taskItemRef = ref(null);
+const handleUploadSuccess = () =>{
+    getSimpleList();
+    taskItemRef.value.updateTriggerImg();
+}
+
 // 初始化时获取所有状态的任务数量
 function initTaskCounts() {
     const location = store.state.home.miniUserLocationPoint;