罗广辉
2025-10-10 89d544668dbc4ff2453941839bed3eff78be5020
feat: 直播
2 files modified
1 files added
102 ■■■■ changed files
src/pages/inspectionTask/TaskDetails/TaskDetails.vue 35 ●●●●● patch | view | raw | blame | history
src/pages/inspectionTask/index.vue 61 ●●●●● patch | view | raw | blame | history
src/pages/user/index.vue 6 ●●●●● patch | view | raw | blame | history
src/pages/inspectionTask/TaskDetails/TaskDetails.vue
New file
@@ -0,0 +1,35 @@
<template>
  <view class="page-wrap">
    <web-view
      ref="sWebViewRef"
      src='http://192.168.1.15:5173/command-center-dashboard/#/appTaskDetails'
      @message="onPostMessage"
      @onPostMessage="onPostMessage"
    />
  </view>
</template>
<script setup>
import {onLoad} from "@dcloudio/uni-app";
const active = defineModel('active')
function onPostMessage(event) {
  if (event.detail.data[0].type === 'back'){
    active.value = null
  }
}
onLoad(()=>{
  window.addEventListener('message', function(e) {
    if (e.data.data.type === 'back'){
      active.value = null
    }
  });
})
</script>
<style scoped lang="scss">
</style>
src/pages/inspectionTask/index.vue
@@ -1,22 +1,16 @@
<!-- 巡检任务 -->
<template>
  <z-paging ref="pagingRef" v-model="dataList" @query="queryList">
    <view v-for="(item, index) in dataList" :key="index">
      <u-cell :title="`列表长度-${index + 1}`">
        <template #icon>
          <u-avatar
            shape="square"
            size="35"
            :src="item"
            custom-style="margin: -3px 5px -3px 0"
          />
        </template>
      </u-cell>
    </view>
  </z-paging>
  <TaskDetails v-model:active="active" v-if="active"/>
  <view v-else v-for="(item, index) in list" :key="index">
    <view @click="taskClick(item)">{{item.name}} - {{item.status}}</view>
  </view>
</template>
<script setup>
import {onShow} from "@dcloudio/uni-app";
import {getJobListApi} from "@/api/inspectionTask.js";
import TaskDetails from "@/pages/inspectionTask/TaskDetails/TaskDetails.vue";
const pagingRef = ref(null);
const dataList = ref([]);
@@ -47,17 +41,32 @@
    pagingRef.value?.complete(list);
  }, 1000);
  // this.$request
  //   .queryList({ pageNo, pageSize })
  //   .then(res => {
  //     // 请勿在网络请求回调中给dataList赋值!!只需要调用complete就可以了
  //     pagingRef.value.complete(res.data.list);
  //   })
  //   .catch(res => {
  //     // 如果请求失败写pagingRef.value.complete(false),会自动展示错误页面
  //     // 注意,每次都需要在catch中写这句话很麻烦,z-paging提供了方案可以全局统一处理
  //     // 在底层的网络请求抛出异常时,写uni.$emit('z-paging-error-emit');即可
  //     pagingRef.value.complete(false);
  //   });
}
const params = ref({
  device_sn: null,
  order_by_create_time: false,
})
const sizeParams = ref({
  current: 1,
  size: 100,
})
const list = ref([])
function getJobList() {
  getJobListApi(params.value,sizeParams.value).then(res =>{
    list.value = res.data.data.records
  })
}
const active  = ref(null)
function taskClick(row) {
  active.value = row
  // uni.redirectTo({
  //   url: '/pages/inspectionTask/taskDetails/index'
  // })
}
onShow(()=>{
  getJobList()
})
</script>
src/pages/user/index.vue
@@ -58,5 +58,11 @@
// 登录鉴权,微信小程序端点击tabbar的底层逻辑不触发uni.switchTab,需要在页面onShow生命周期中校验权限
onShow(async () => {
  getDeviceRegion()
  // window.addEventListener('message', (event) => {
  //   console.log('message')
  // })
  // setInterval(() => {
    // sWebViewRef.value.evalJs(`x_sun('${test.value}')`)
  // }, 2000)
});
</script>