detail.vue 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. <template>
  2. <view class="comdetail">
  3. <view class="cdbox mb12">
  4. <image :src="replay" class="replay"></image>
  5. <view class="cdtop">
  6. <view class="tit">小区电梯老化</view>
  7. <view class="txt">2024-11-18 08:16</view>
  8. </view>
  9. <view class="cdmain">
  10. <view class="tit">小区电梯时常发生问题,请物业派维修人员进行安全检 查,若无法排除问题,建议更换小区的电梯设备,避免 后期发生人员伤害!</view>
  11. <view class="imgs">
  12. <image :src="replay"></image>
  13. </view>
  14. </view>
  15. </view>
  16. <!-- 步骤条 -->
  17. <view class="hfbox mb12">
  18. <view class="hftop">
  19. <image :src="hline"></image>
  20. <view>回复</view>
  21. </view>
  22. <!-- -->
  23. <view class="hfstep">
  24. <view class="hfslist flex">
  25. <view class="limg flexccc">
  26. <image :src="cira" class="imga"></image>
  27. </view>
  28. <view class="flex1">
  29. <view class="hfstit co01">已完成 2024-11-25 12:24</view>
  30. <view class="hfstxt co27">设备已维修,感谢您的建议!</view>
  31. </view>
  32. </view>
  33. <view class="hfslist flex">
  34. <view class="limg flexccc">
  35. <image :src="cirb" class="imgb"></image>
  36. </view>
  37. <view class="flex1">
  38. <view class="hfstit">待作业 2024-11-24 22:17</view>
  39. <view class="hfstxt">维修零件已送达,明天将会安排人员维修。</view>
  40. </view>
  41. </view>
  42. <view class="hfslist flex">
  43. <view class="limg flexccc">
  44. <image :src="cirb" class="imgb"></image>
  45. </view>
  46. <view class="flex1">
  47. <view class="hfstit">已收到 2024-11-19 09:23</view>
  48. <view class="hfstxt">收到您的建议,物业已高度重视这个问题,维修零件 正在运输中,请耐心等待!</view>
  49. </view>
  50. </view>
  51. </view>
  52. </view>
  53. <!-- <view class="cdbtns">
  54. <view class="btna">不予公开</view>
  55. <view class="btnb" @click="getReplyFn">回复</view>
  56. </view> -->
  57. <pop-up :type="type" @getClose='getClose' @getSure="getSure"></pop-up>
  58. <loading></loading>
  59. </view>
  60. </template>
  61. <script>
  62. import config from '@/config'
  63. const baseUrl = config.baseUrl
  64. import popUp from "@/work/components/popup/popup.vue"
  65. import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
  66. export default{
  67. components:{popUp},
  68. data(){
  69. return{
  70. replay:require('@/news/static/complaint/replay.png'),
  71. hline:require('@/news/static/complaint/hline.png'),
  72. cira:require('@/news/static/complaint/cira.png'),
  73. cirb:require('@/news/static/complaint/cirb.png'),
  74. baseUrl:config.baseUrl,
  75. type:'',
  76. }
  77. },
  78. onLoad: function() {
  79. },
  80. methods:{
  81. checkPermi, checkRole,
  82. getClose(){
  83. this.type='';
  84. },
  85. getSure(){
  86. this.type='';
  87. },
  88. getReplyFn(){
  89. this.type='reply'
  90. },
  91. getPreviewImage(arr,idx){
  92. var newArr=[];
  93. arr.forEach(ite=>{
  94. var ds=this.baseUrl+ite
  95. newArr.push(ds)
  96. })
  97. uni.previewImage({
  98. urls: newArr,
  99. current:idx,
  100. success: function(data) {
  101. },
  102. fail: function(err) {
  103. }
  104. });
  105. },
  106. }
  107. }
  108. </script>
  109. <style>
  110. page{background: #F3F3F0;}
  111. </style>
  112. <style lang="scss" scoped>
  113. .comdetail{padding:20rpx 18rpx 10rpx;
  114. .cdbox{background: #FFFFFF;border-radius: 20rpx;padding: 0 32rpx;box-sizing: border-box;position: relative;
  115. .replay{width: 124rpx;height: 124rpx;position: absolute;right: 0;top: 0;}
  116. .cdtop{padding: 34rpx 0rpx 24rpx;border-bottom: 2rpx solid #CDCDCD;
  117. .tit{font-weight: bold;font-size: 30rpx;color: #272727;margin-bottom: 16rpx;}
  118. .txt{font-weight: 500;font-size: 24rpx;color: #AAAAAA;}
  119. }
  120. .cdmain{padding: 24rpx 0 24rpx;
  121. .tit{font-weight: 500;font-size: 26rpx;color: #666666;line-height: 36rpx;margin-bottom: 30rpx;}
  122. .imgs{display: flex;align-items: center;flex-wrap: wrap;
  123. image{width: 142rpx;height: 142rpx;border-radius: 20rpx;margin: 0 18rpx 18rpx 0;}
  124. }
  125. }
  126. }
  127. .cdbtns{position: fixed;left: 0;right: 0;height: 98rpx;z-index: 2;display: flex;align-items: center;bottom: 0;
  128. view{flex: 1;display: flex;align-items: center;justify-content: center;font-weight: bold;font-size: 26rpx;height: 98rpx;
  129. &.btna{background: #FFFFFF;color: #0156FE;}
  130. &.btnb{background: #0156FE;color: #FFFFFF;}
  131. }
  132. }
  133. }
  134. .hfbox{background: #FFFFFF;border-radius: 20rpx;padding-top: 104rpx;position: relative;
  135. .hftop{width: 118rpx;height: 46rpx;position: absolute;left: -8rpx;top: 18rpx;
  136. image{width: 118rpx;height: 46rpx;position: absolute;left: 0;top: 0;}
  137. view{position: relative;z-index: 1;font-weight: bold;font-size: 26rpx;color: #FFFFFF;padding-top: 6rpx;text-align: center;}
  138. }
  139. }
  140. .hfstep{padding: 0 32rpx 44rpx 36rpx;
  141. .hfslist{padding-bottom: 44rpx;position: relative;
  142. &::before{content: '';position: absolute;left: 14rpx;top:14rpx;height: 100%;width: 2rpx;background: #E6E6E6;}
  143. .limg{width: 30rpx;height: 30rpx;margin-right: 22rpx;flex: 0 0 auto;margin-top:3rpx;
  144. .imga{width: 30rpx;height: 30rpx;}
  145. .imgb{width: 18rpx;height: 18rpx;}
  146. }
  147. .hfstit{font-weight: bold;font-size: 26rpx;color: #666666;line-height: 36rpx;margin-bottom: 24rpx;}
  148. .hfstxt{font-weight: 500;font-size: 26rpx;color: #666666;line-height: 36rpx;}
  149. }
  150. }
  151. </style>