detail.vue 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. <template>
  2. <view class="detail">
  3. <view class="detop">
  4. <swiper class="swiper" :current="current" circular :indicator-color="incolorh" :indicator-active-color="activecolorh" :indicator-dots="indicatorDotsh" :autoplay="autoplayh" >
  5. <swiper-item v-for="(ite,idx) in bannlist" :key="idx">
  6. <image :src="banner" class="bannerimg"></image>
  7. </swiper-item>
  8. </swiper>
  9. <image :src="preimg" class="preimg imgbtn" @tap="preFn"></image>
  10. <image :src="nextimg" class="nextimg imgbtn" @tap="nextFn"></image>
  11. </view>
  12. <view class="txtbox">
  13. <view class="flex1 mb12">
  14. <view class="tit mb10">比对分析结果</view>
  15. <view class="txts flex">
  16. <view class="flex1">
  17. <view class="txtlist"><text class="tab">孩子姓名</text><text>:</text>王宇宁</view>
  18. <view class="txtlist"><text class="tab">身份证号</text><text>:</text>340824201503270246</view>
  19. <view class="txtlist"><text class="tab">学校名称</text><text>:</text>第一人民小学</view>
  20. <view class="txtlist"><text class="tab">班级名称</text><text>:</text>三年级 2 班</view>
  21. <view class="txtlist"><text class="tab">相似度</text><text>:</text><text class="cofe">92%</text></view>
  22. </view>
  23. <image :src="banner" class="headimg" @click="getPreview(0)"></image>
  24. </view>
  25. <view style="padding: 36rpx 0;">
  26. <view class="texts">目标对象首次出现在监控画面的时间为 <text class="co02">2025 年 7 月 29 日 16:40:12</text>,地点为城东公园人工湖东侧浅水区边缘(该区域为社区公示的 “夏季易溺水风险点”,周边设有 “禁止戏水” 警示牌)。​
  27. </view>
  28. <view class="texts">系统通过算法监控画面中人物的身高约 1.3 米、衣着红色条纹T恤、蓝色短裤、齐耳短发等关键信息,与家长上传的孩子资料特征匹<text class="co02">配度达 92%</text>。结合孩子行为及环境特征,判定当前存在 “水边戏水” 风险。
  29. </view>
  30. </view>
  31. </view>
  32. <view class="flex0 flexcj">
  33. <view class="btns btna">
  34. <image :src="btna"></image>不是我的孩子
  35. </view>
  36. <view class="btns btnb">
  37. <image :src="btnb"></image>是我的孩子
  38. </view>
  39. </view>
  40. </view>
  41. <loading></loading>
  42. </view>
  43. </template>
  44. <script>
  45. import {checkPermi,checkRole} from "@/utils/permission"; // 权限判断函数
  46. import {getDictionaryFn} from "@/api/mine/register.js"
  47. export default {
  48. components:{},
  49. data(){
  50. return{
  51. banner:require('@/static/images/home/banner.png'),
  52. preimg:require('@/news/images/notice/pre.png'),
  53. nextimg:require('@/news/images/notice/next.png'),
  54. btna:require('@/news/images/notice/btna.png'),
  55. btnb:require('@/news/images/notice/btnb.png'),
  56. autoplayh:false,
  57. incolorh:'#E6E6E6',
  58. activecolorh:'#A7A7A7',
  59. indicatorDotsh: false,
  60. current:0,
  61. id:'',
  62. bannlist:[{tit:'1'},{tit:'1'},{tit:'1'},]
  63. }
  64. },
  65. onShow() {
  66. },
  67. onLoad: function(e) {
  68. if(e.type==1){
  69. uni.setNavigationBarTitle({
  70. title:"系统通知"
  71. })
  72. }else{
  73. uni.setNavigationBarTitle({
  74. title:"防溺通知"
  75. })
  76. }
  77. // this.init();
  78. // this.getDataFn()
  79. },
  80. methods:{
  81. checkPermi,checkRole,
  82. preFn(){
  83. this.current = (this.current - 1 + this.bannlist.length) % this.bannlist.length;
  84. },
  85. nextFn(){
  86. this.current = (this.current + 1) % this.bannlist.length;
  87. },
  88. getPreview(idx,arr) {
  89. var newArr=[];
  90. // arr.forEach(ite=>{
  91. // var ds=this.baseUrl+ite
  92. // newArr.push(ds)
  93. // })
  94. newArr[0]=this.banner
  95. uni.previewImage({
  96. urls: newArr,
  97. current:idx,
  98. success: function(data) {},
  99. fail: function(err) {}
  100. });
  101. },
  102. init(){
  103. //工单类型
  104. getDictionaryFn('work_order_type').then(res => {
  105. if (res.code == 200) {
  106. this.gdList = res.data.map(v => {
  107. return {
  108. dictLabel: v.dictLabel,
  109. dictValue: v.dictValue
  110. }
  111. })
  112. }
  113. })
  114. },
  115. getDataFn(){
  116. getworkInfoList(this.id).then(res=>{
  117. })
  118. },
  119. }
  120. }
  121. </script>
  122. <style lang="scss" scoped>
  123. .detail{min-height: 100vh;background: #ffffff;display: flex;flex-direction: column;
  124. padding: 20rpx 24rpx 24rpx;
  125. }
  126. .detop{position: relative;width: 100%;height: 298rpx;flex: 0 0 auto;
  127. .imgbtn{width: 44rpx;height: 44rpx;position: absolute;top: 50%;margin-top: -22rpx;
  128. &.preimg{left: 24rpx;}
  129. &.nextimg{right: 24rpx;}
  130. }
  131. }
  132. .txtbox{background: #F4F6F8;margin-top: 26rpx;flex: 1;padding:24rpx 24rpx 50rpx;border-radius: 20rpx;display: flex;flex-direction: column;
  133. .tit{font-size: 30rpx;color: #000000;}
  134. .txts{padding-bottom: 24rpx;border-bottom: 2rpx dashed #C6C6C6;;
  135. .txtlist{font-weight: 500;font-size: 26rpx;color: #000000;display: flex;line-height: 46rpx;
  136. text{flex: 0 0 auto;}
  137. .tab{min-width: 108rpx;text-align-last: justify;display: inline-block;flex: 0 0 auto;}
  138. .coa{}
  139. }
  140. .headimg{width: 198rpx;height: 208rpx;flex: 0 0 auto;margin-top: 10rpx;}
  141. }
  142. .texts{text-indent: 2rem;font-weight: 500;font-size: 26rpx;color: #323232;line-height: 46rpx;}
  143. .btns{display: flex;align-items: center;justify-content: center;
  144. height: 88rpx;border-radius: 20rpx;font-weight: bold;
  145. font-size: 26rpx;color: #FFFFFF;flex: 1;
  146. &.btna{background: #FFA20A;margin-right: 26rpx;
  147. image{width: 30rpx;height: 32rpx;margin-right: 20rpx;}
  148. }
  149. &.btnb{background: #0256FD;
  150. image{width: 30rpx;height: 24rpx;margin-right: 20rpx;}
  151. }
  152. }
  153. }
  154. .swiper{
  155. width: 100%;height: 298rpx;border-radius: 10rpx;overflow: hidden;
  156. image{width: 100%;height: 298rpx;}
  157. }
  158. </style>