topWarn.vue 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. <!-- 顶部警告 -->
  2. <template>
  3. <view class="top-warn" v-if="pageType">
  4. <view>{{text}}</view>
  5. <view @click="buttonClick">操作</view>
  6. </view>
  7. </template>
  8. <script>
  9. import { getListStatusTwo,evacuate,closeRiskPlan } from '@/api/index.js'
  10. export default {
  11. data() {
  12. return {
  13. pageType:false,
  14. text:"",
  15. subjectId:"",
  16. subjectName:"",
  17. closePlan:false,
  18. closeId:"",
  19. }
  20. },
  21. created() {
  22. },
  23. mounted(){
  24. this.getWarn();
  25. getApp().watch(this.getWarn,'warnData');
  26. getApp().watch(this.lineDataFunction,'lineData');
  27. this.timeFuncontion();
  28. },
  29. methods: {
  30. //应急变更
  31. lineDataFunction(val){
  32. console.log("val",val);
  33. },
  34. buttonClick(){
  35. let self = this;
  36. let list = [];
  37. if(self.closePlan){
  38. list = ['执行疏散', '结束预案'];
  39. }else{
  40. list = ['执行疏散'];
  41. }
  42. uni.showActionSheet({
  43. itemList: list,
  44. success: function (res) {
  45. if(res.tapIndex == 0){
  46. self.evacuationClick();
  47. }else if(res.tapIndex == 1){
  48. self.offEvacuationClick();
  49. }
  50. console.log('res.tapIndex',res.tapIndex);
  51. console.log('选中了第' + (res.tapIndex + 1) + '个按钮');
  52. },
  53. fail: function (res) {
  54. console.log(res.errMsg);
  55. }
  56. });
  57. },
  58. //执行疏散
  59. evacuationClick(){
  60. let self = this;
  61. uni.showModal({
  62. content: '确认执行疏散?',
  63. cancelColor:"#999",
  64. confirmColor:"#0183FA",
  65. success: function (res) {
  66. if (res.confirm) {
  67. self.goPage();
  68. console.log('用户点击确定');
  69. } else if (res.cancel) {
  70. console.log('用户点击取消');
  71. }
  72. }
  73. });
  74. },
  75. offEvacuationClick(){
  76. let self = this;
  77. uni.showModal({
  78. content: '确认结束预案?',
  79. cancelColor:"#999",
  80. confirmColor:"#0183FA",
  81. success: function (res) {
  82. if (res.confirm) {
  83. self.closeRiskPlan();
  84. console.log('用户点击确定');
  85. } else if (res.cancel) {
  86. console.log('用户点击取消');
  87. }
  88. }
  89. });
  90. },
  91. async closeRiskPlan(){
  92. const {data} = await closeRiskPlan({id:this.closeId});
  93. if(data.code == 200){
  94. uni.showToast({
  95. title: '操作成功',
  96. icon:"none",
  97. mask:true,
  98. duration: 2000
  99. });
  100. this.pageType = false;
  101. }
  102. },
  103. //页面跳转
  104. goPage(){
  105. let obj = {
  106. subId:this.subjectId,
  107. text:this.subjectName,
  108. type:"1",
  109. }
  110. uni.navigateTo({
  111. url:'/pages/emergencyEvacuationBig?item='+encodeURIComponent(JSON.stringify(obj))
  112. });
  113. },
  114. //获取报警信息
  115. async getWarn(){
  116. let self = this;
  117. const {data} = await getListStatusTwo();
  118. if(data.code == 200){
  119. let num = 0;
  120. for(let i=0;i<data.data.length;i++){
  121. if(data.data[i].floorId != 7){
  122. num++;
  123. self.text = data.data[i].buildName + data.data[i].floorName + data.data[i].roomName + data.data[i].subjectName + '发生应急预案.';
  124. self.subjectId = data.data[i].subjectId;
  125. self.subjectName = data.data[i].subjectName;
  126. self.pageType = true;
  127. self.subjectId = data.data[i].subjectId;
  128. self.closePlan =data.data[i].closePlan;
  129. self.closeId = data.data[i].id;
  130. }
  131. }
  132. if(num == 0){
  133. self.pageType = false;
  134. }
  135. }
  136. },
  137. timeFuncontion(){
  138. let self = this;
  139. var t1 = setInterval(refreshCount, 300);
  140. function refreshCount() {
  141. let txt = self.text
  142. let start = txt.substring(0, 1);//取该字符串的第一个字符
  143. let end = txt.substring(1);//取该字符串的从1之后的所有字符
  144. let newText = end + start;//拼接新的字符串
  145. self.$set(self,'text',newText)
  146. }
  147. }
  148. }
  149. }
  150. </script>
  151. <style lang="stylus" scoped>
  152. .top-warn{
  153. height:80rpx;
  154. line-height:80rpx;
  155. background rgba(2550,0,0,0.2)
  156. margin:20rpx 0;
  157. display flex;
  158. overflow hidden
  159. view:nth-child(1){
  160. padding-left:20rpx;
  161. color:#FF0000;
  162. flex:1;
  163. view{
  164. padding-left:20rpx;
  165. white-space:nowrap;
  166. }
  167. }
  168. view:nth-child(2){
  169. width:140rpx;
  170. color:#0183FA;
  171. text-align center;
  172. }
  173. }
  174. </style>