Home.vue 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. <template id="Home">
  2. <div>
  3. <van-nav-bar title="电量查询">
  4. </van-nav-bar>
  5. <div class="fyycontent">
  6. <van-cell-group>
  7. <van-cell>
  8. <span class="iconfont color-red fyy-icon">&#xe63f;</span>
  9. 请选择园区
  10. </van-cell>
  11. <van-dropdown-menu>
  12. <van-dropdown-item v-model="selectedAreaId" :options="areaList" @change="areaChange"/>
  13. </van-dropdown-menu>
  14. </van-cell-group>
  15. <van-cell-group>
  16. <van-cell>
  17. <span class="iconfont color-red fyy-icon">&#xe642;</span>
  18. 请选择楼栋号
  19. </van-cell>
  20. <van-dropdown-menu>
  21. <van-dropdown-item v-model="selectedBuildingId" :options="buildingList" @change="buildingChange"/>
  22. </van-dropdown-menu>
  23. </van-cell-group>
  24. <van-cell-group>
  25. <van-cell>
  26. <span class="iconfont color-red fyy-icon">&#xe643;</span>
  27. 请选择房间号
  28. </van-cell>
  29. <van-dropdown-menu>
  30. <van-dropdown-item v-model="selectedRoomId" :options="roomList" @change="roomChange"/>
  31. </van-dropdown-menu>
  32. </van-cell-group>
  33. <van-cell-group>
  34. <van-switch-cell title="电表开关" v-model="powerOn" :active-color="'#13ce66'" @change="powerSwitch"/>
  35. </van-cell-group>
  36. <div class="fyy-button">
  37. <van-button type="primary" @click="queryPower(selectedRoomId)">查询</van-button>
  38. <p>
  39. 剩余电量:<span v-html="remainingPower" class="power"></span>
  40. <span v-if="remainingPower!=null">度</span>
  41. </p>
  42. </div>
  43. </div>
  44. <div class="fyyfooter">
  45. <van-button type="bigred" @click="recharge()">充值</van-button>
  46. </div>
  47. </div>
  48. </template>
  49. <script>
  50. import remoteApi from '@/api/remoteApi'
  51. import Cookies from 'js-cookie'
  52. import { Dialog } from 'vant'
  53. export default {
  54. data() {
  55. return {
  56. remainingPower: null,
  57. state:null,
  58. selectedAreaId: null,
  59. selectedBuildingId: null,
  60. selectedRoomId: null,
  61. areaList: [],
  62. buildingList: [],
  63. roomList: [],
  64. powerOn: false
  65. };
  66. },
  67. computed: {
  68. stateText (){
  69. if(this.state==null){
  70. return "未知";
  71. }
  72. else if(this.state==1){
  73. return "断电";
  74. }
  75. else if(this.state==0){
  76. return "通电";
  77. }
  78. }
  79. },
  80. mounted (){
  81. var self = this
  82. remoteApi.queryRoomList(1,null).then((resp)=>{
  83. console.log(resp);
  84. if(resp.result){
  85. self.areaList = resp.data.map((e)=>{
  86. return {
  87. value : e.id,
  88. text : e.name
  89. }
  90. });
  91. self.selectedAreaId = Cookies.get("selectedAreaId");
  92. return self.areaChange(self.selectedAreaId);
  93. }
  94. }).then((resp)=>{
  95. self.selectedBuildingId = Cookies.get("selectedBuildingId");
  96. return self.buildingChange(self.selectedBuildingId);
  97. }).then((resp)=>{
  98. self.selectedRoomId = Cookies.get("selectedRoomId");
  99. if(self.selectedRoomId!=null && self.selectedRoomId.length>0){
  100. self.queryPower(self.selectedRoomId)
  101. }
  102. });
  103. },
  104. methods: {
  105. areaChange (value) {
  106. var self = this
  107. return remoteApi.queryRoomList(2,value).then((resp)=>{
  108. console.log(resp);
  109. if(resp.result){
  110. self.buildingList = resp.data.map((e)=>{
  111. return {
  112. value : e.id,
  113. text : e.name
  114. }
  115. });
  116. }
  117. });
  118. },
  119. queryPower (roomId) {
  120. var self = this
  121. self.$toast.loading({
  122. message: '加载中...',
  123. forbidClick: true,
  124. loadingType: 'spinner',
  125. duration: 10000
  126. });
  127. Cookies.set("selectedAreaId",self.selectedAreaId,{ expires: 7 })
  128. Cookies.set("selectedBuildingId",self.selectedBuildingId,{ expires: 7 })
  129. Cookies.set("selectedRoomId",self.selectedRoomId,{ expires: 7 })
  130. remoteApi.queryPower(roomId).then((resp)=>{
  131. console.log(resp);
  132. self.$toast.clear();
  133. if(resp.result){
  134. //self.$toast.success('查询成功!')
  135. self.remainingPower = resp.data.remain
  136. self.state = resp.data.state
  137. self.powerOn = self.state==0
  138. }
  139. else {
  140. self.$toast.fail(resp.message)
  141. }
  142. });
  143. },
  144. buildingChange (value) {
  145. var self = this
  146. return remoteApi.queryRoomList(3,value).then((resp)=>{
  147. console.log(resp);
  148. if(resp.result){
  149. self.roomList = resp.data.map((e)=>{
  150. return {
  151. value : e.id,
  152. text : e.name
  153. }
  154. });
  155. }
  156. });
  157. },
  158. roomChange (roomId) {
  159. this.queryPower(roomId);
  160. },
  161. recharge (){
  162. if(this.selectedRoomId == null) {
  163. this.$toast.fail("请先选择房间!");
  164. }
  165. else{
  166. this.$router.push({
  167. path : '/Pay',
  168. query: {
  169. roomId : this.selectedRoomId
  170. }
  171. });
  172. }
  173. },
  174. powerSwitch (){
  175. remoteApi.powerSwitch(this.selectedRoomId,this.powerOn ? 1 : 0).then((resp)=>{
  176. if(resp.result) {
  177. this.$notify({ type: 'success', message: "操作成功!" });
  178. }
  179. else{
  180. this.$notify({ type: 'warning', message: resp.message });
  181. }
  182. });
  183. }
  184. }
  185. };
  186. </script>
  187. <style scoped>
  188. .power{
  189. font-size:150%;
  190. }
  191. </style>