shuishen
2025-10-20 a962e61819443fd55907a746bdc0bce70b4c078b
Merge branch 'master' of http://139.196.74.78:10010/r/drone/drone-app
7 files modified
1 files added
261 ■■■■■ changed files
src/pages.json 14 ●●●● patch | view | raw | blame | history
src/pages/inspectionTask/index.vue 6 ●●●● patch | view | raw | blame | history
src/pages/work/index.vue 20 ●●●●● patch | view | raw | blame | history
src/subPackages/inProgress/index.vue 35 ●●●●● patch | view | raw | blame | history
src/subPackages/taskDetail/execution/index.vue 22 ●●●●● patch | view | raw | blame | history
src/subPackages/workDetail/addWork/index.vue 9 ●●●● patch | view | raw | blame | history
src/subPackages/workDetail/index.vue 123 ●●●●● patch | view | raw | blame | history
src/subPackages/workDetail/photoMagnify/index.vue 32 ●●●●● patch | view | raw | blame | history
src/pages.json
@@ -32,13 +32,7 @@
        "navigationBarTitleText": "我的"
      }
    },
    {
      "path": "pages/inspectionTask/TaskDetails/TaskDetails",
      "style": {
        "navigationBarTitleText": "执行中",
        "navigationStyle": "custom"
      }
    },
    {
      "path": "pages/inspectionTask/DroneConsole/DroneConsole",
      "style": {
@@ -77,6 +71,12 @@
          }
        },
        {
          "path": "inProgress/index",
          "style": {
            "navigationBarTitleText": "执行中"
          }
        },
        {
          "path": "taskDetail/addTask/index",
          "style": {
            "navigationBarTitleText": "新建任务"
src/pages/inspectionTask/index.vue
@@ -14,11 +14,11 @@
  if (data.type === 'taskDetails'){
    if ([1,2].includes(data.rowItem.status)){
      uni.navigateTo({
        url: `/pages/inspectionTask/TaskDetails/TaskDetails?wayLineJodInfoId=${data.rowItem.id}`
        url: `/subPackages/inProgress/index?wayLineJodInfoId=${data.rowItem.id}`
      });
    }else{
    } else {
      uni.navigateTo({
        url: '/subPackages/taskDetail/execution/index'
        url: `/subPackages/taskDetail/execution/index?wayLineJodInfoId=${data.rowItem.id}`
      });
    }
  }
src/pages/work/index.vue
@@ -1,7 +1,7 @@
<template>
    <view class="flex flex-col eventTickets">
         <WebViewPlus v-if="isApp" ref="sWebViewRef" :src="`${viewUrl}`" @webMessage="onPostMessage"/>
    </view>
</template>
@@ -12,16 +12,22 @@
const sWebViewRef = ref(null);
const viewUrl = getWebViewUrl('/work', {})
function onPostMessage(data) {
  uni.navigateTo({
    url: `/subPackages/workDetail/index?eventNum=${data.eventNum}`
  });
    if(data.type==='workid'){
    uni.navigateTo({
      url: `/subPackages/workDetail/index?eventNum=${data.eventNum}`
    });
  }else if(data.type === 'bigImage'){
    uni.navigateTo({
      url: `/subPackages/workDetail/photoMagnify/index?eventNum=${data.eventNum}`
    });
  }
}
    const isApp = ref(false)
    onShow(() => {
      isApp.value = true
    });
    onHide(() => {
      isApp.value = false
    });
@@ -29,4 +35,4 @@
<style scoped lang="scss">
</style>
</style>
src/subPackages/inProgress/index.vue
New file
@@ -0,0 +1,35 @@
<template>
  <WebViewPlus :src="`${viewUrl}`" @webMessage="onPostMessage"/>
</template>
<script setup>
import WebViewPlus from "@/components/WebViewPlus.vue";
import {getWebViewUrl} from "@/utils/index.js";
import {onLoad} from "@dcloudio/uni-app";
const wayLineJodInfoId = ref(null)
const viewUrl = ref('')
function onPostMessage(data) {
  if (data.type === 'back') {
    uni.switchTab({
      url: '/pages/inspectionTask/index'
    });
  } else if (data.type === 'control') {
    uni.redirectTo({
      url: `/pages/inspectionTask/DroneConsole/DroneConsole?wayLineJodInfoId=${wayLineJodInfoId.value}`
    });
  }
}
onLoad((options) => {
  wayLineJodInfoId.value = options.wayLineJodInfoId
  viewUrl.value = getWebViewUrl('/TaskInProgress', {wayLineJodInfoId: wayLineJodInfoId.value})
})
</script>
<style scoped lang="scss">
.page-wrap {
  font-size: 20px;
}
</style>
src/subPackages/taskDetail/execution/index.vue
@@ -1,6 +1,6 @@
<!-- 已执行 -->
<template>
  <WebViewPlus v-if="isApp" :src="`${viewUrl}`"/>
  <WebViewPlus v-if="isApp" :src="`${viewUrl}`" @webMessage="onPostMessage"/>
</template>
<script setup>
@@ -8,7 +8,9 @@
import WebViewPlus from "@/components/WebViewPlus.vue";
import {getWebViewUrl} from "@/utils/index.js";
const viewUrl = ref(getWebViewUrl('/execution'))
const wayLineJodInfoId = ref(null)
const viewUrl = ref('')
// const viewUrl = ref(getWebViewUrl('/execution'))
// function onPostMessage(data) {
//   console.log(data, '9999')
@@ -19,6 +21,22 @@
//     });
//   }
// }
function onPostMessage(data) {
  if (data.type === 'back') {
    uni.switchTab({
      url: '/pages/inspectionTask/index'
    });
  } else if (data.type === 'control') {
    uni.redirectTo({
      url: `/pages/inspectionTask/execution/index?wayLineJodInfoId=${wayLineJodInfoId.value}`
    });
  }
}
onLoad((options) => {
  wayLineJodInfoId.value = options.wayLineJodInfoId
  viewUrl.value = getWebViewUrl('/execution', {wayLineJodInfoId: wayLineJodInfoId.value})
})
const isApp = ref(false)
onShow(() => {
  isApp.value = true
src/subPackages/workDetail/addWork/index.vue
@@ -1,6 +1,6 @@
<template>
    <view >
         <WebViewPlus @webMessage="onPostMessage" v-if="isApp" ref="sWebViewRef" :src="`${viewUrl}`" />
         <WebViewPlus @webMessage="onPostMessage"  ref="sWebViewRef" :src="`${viewUrl}`" />
        
    </view>
@@ -18,14 +18,7 @@
    });
  }
}
const isApp = ref(false)
onShow(() => {
  isApp.value = true
});
onHide(() => {
  isApp.value = false
});
</script>
<style scoped lang="scss">
src/subPackages/workDetail/index.vue
@@ -1,7 +1,7 @@
<!-- 工单详情 - 包含待审核、待处理、处理中、已完成 -->
<template>
    <div class="workDetailContainer">
         <WebViewPlus v-if="isApp" ref="sWebViewRef" :src="`${viewUrl}`" @webMessage="onPostMessage"/>
         <WebViewPlus ref="sWebViewRef" :src="`${viewUrl}`" @webMessage="onPostMessage"/>
    </div>
</template>
@@ -26,131 +26,14 @@
        });
      }
    }
    const isApp = ref(false)
    onShow(() => {
      isApp.value = true
    });
    onHide(() => {
      isApp.value = false
    });
</script>
<style lang="scss" scoped>
    .workDetailContainer {
        padding: 0 10px;
        .detailTop {
            .image-container {
                position: relative;
                width: 100%;
                height: 200px;
                .detailImage {
                    width: 100%;
                    height: 100%;
                    display: block;
                    object-fit: cover
                }
                .detailTitle {
                    position: absolute;
                    left: 0;
                    bottom: 0;
                    width: 100%;
                }
                .titleText {
                    display: flex;
                    width: 100%;
                    justify-content: space-between;
                    align-items: center;
                }
            }
        }
        .stepContainer {
            margin-top: 10px;
            display: flex;
            background-color: antiquewhite;
            border-radius: 5px;
            padding: 10px;
            .horizontal-step {
                display: flex;
                align-items: center;
                gap: 12px;
                .step-title {
                    min-width: 60px;
                }
                .step-desc {
                    display: flex;
                    justify-content: space-between;
                    gap: 8px;
                    // color: #666;
                    font-size: 14px;
                }
            }
        }
        .actionButton {
            display: flex;
            justify-content: space-between;
            margin-bottom: 10px;
            .btngroups {
                display: flex;
                justify-content: space-between;
                .u-button {
                    padding: 9px 20px;
                    height: 32px;
                    &:last-child {
                        margin-left: 12px;
                        margin-right: 12px;
                    }
                }
            }
            .leftBtn {
                width: 70px;
                height: 32px;
                background-color: #999;
                border-radius: 5px;
                text-align: center;
                line-height: 32px;
                color: #fff;
                cursor: pointer;
                opacity: 0.8;
            }
            .disableds {
                background: #999 !important;
                cursor: not-allowed !important;
                pointer-events: none;
                opacity: 0.3 !important;
            }
        }
        .workOrderContent {
            margin-top: 15px;
            .workOrderContainer {
                div {
                    margin-bottom: 10px;
                }
                .titketName {
                    display: flex;
                    align-items: center;
                }
            }
        }
    }
</style>
src/subPackages/workDetail/photoMagnify/index.vue
@@ -1,18 +1,26 @@
<!--
 * @Author       : yuan
 * @Date         : 2025-09-29 13:56:16
 * @LastEditors  : yuan
 * @LastEditTime : 2025-09-29 13:56:25
 * @FilePath     : \src\subPackages\workDetail\photoMagnify\index.vue
 * @Description  :
 * Copyright 2025 OBKoro1, All Rights Reserved.
 * 2025-09-29 13:56:16
-->
<!-- 照片放大 -->
<template>
  <view> 基础 </view>
  <view>
     <WebViewPlus v-if="isApp" ref="sWebViewRef" :src="`${viewUrl}`" @webMessage="onPostMessage"/></view>
</template>
<script setup></script>
<script setup>
  import {getWebViewUrl} from "@/utils/index.js";
  import { onLoad } from '@dcloudio/uni-app';
    const viewUrl = ref('')
  onLoad( (options) => {
      const eventNum= options.eventNum;
      viewUrl.value = getWebViewUrl('/photoMagnify', {eventNum:eventNum})
  });
  const isApp = ref(false)
  onShow(() => {
    isApp.value = true
  });
  onHide(() => {
    isApp.value = false
  });
</script>
<style lang="scss" scoped></style>