alarmClockList.vue 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. <template>
  2. <view>
  3. <view class="head">
  4. <view class="left-top">
  5. <p class="left-top-p">{{$t('alarmClock.title')}}</p>
  6. </view>
  7. <view class="right-top">
  8. <p class="right-top-p" @click="addAlarmClockItem()">+</p>
  9. </view>
  10. </view>
  11. <view class="body">
  12. <uni-collapse :accordion="true">
  13. <uni-list>
  14. <view v-for="(alarmClock,index) in alarmClockList" :key="index">
  15. <uni-list-item :title="alarmClock.hour+'--'+alarmClock.name" :note="alarmClock.week+'---'+alarmClock.type"
  16. :rightText="alarmClock.status" clickable @click="onClick(alarmClock.id)" />
  17. </view>
  18. </uni-list>
  19. </uni-collapse>
  20. </view>
  21. </view>
  22. </template>
  23. <script>
  24. import {
  25. mapState,
  26. mapActions,
  27. mapMutations
  28. } from 'vuex';
  29. import uniCollapse from '@/components/uni-collapse/uni-collapse.vue';
  30. import uniCollapseItem from '@/components/uni-collapse-item/uni-collapse-item.vue';
  31. import uniList from '../../uni_modules/uni-list/components/uni-list/uni-list.vue';
  32. import uniListItem from '../../uni_modules/uni-list/components/uni-list-item/uni-list-item.vue';
  33. import uniIcons from '../../uni_modules/uni-icons/components/uni-icons/uni-icons.vue';
  34. // import {
  35. // dateUtils
  36. // } from '@/common/util.js';
  37. export default {
  38. components: {
  39. uniCollapse,
  40. uniCollapseItem,
  41. uniList,
  42. uniListItem,
  43. uniIcons
  44. },
  45. data() {
  46. return {
  47. globalUser: null,
  48. alarmClockList: [],
  49. }
  50. },
  51. onShow() {
  52. var token = uni.getStorageSync("token");
  53. if (token.length > 1) {
  54. this.getAlarmClockList();
  55. } else {
  56. uni.reLaunch({
  57. url: '../../../pages/Login/Login',
  58. });
  59. }
  60. },
  61. methods: {
  62. getAlarmClockList() {
  63. var token = uni.getStorageSync("token");
  64. var adminId = uni.getStorageSync("globalUser").id;
  65. uni.request({
  66. url: this.serverurl + '/TAlarmClock/list',
  67. data: {
  68. "adminId": adminId
  69. },
  70. header: {
  71. 'token': token
  72. },
  73. method: "GET",
  74. success: (res) => {
  75. if (res.data.code) {
  76. var alarmClockList = [];
  77. var alarmClocks = res.data.data;
  78. // console.log("list");
  79. for (var i = 0; i < alarmClocks.length; i++) {
  80. var alarmClock = alarmClocks[i];
  81. var status = alarmClock.status;
  82. if (status == '0') {
  83. // 已关闭
  84. alarmClock.status = this.$t('alarmClock.status1')
  85. }
  86. if (status == '1') {
  87. // 已qiyong
  88. alarmClock.status = this.$t('alarmClock.status2')
  89. }
  90. var week = alarmClock.week;
  91. if (week != null || week != '') {
  92. var zhou = '';
  93. var w = week.split(",").sort();
  94. for (var j = 0; j < w.length; j++) {
  95. var t = w[j];
  96. switch (t) {
  97. case "1":
  98. zhou = zhou + this.$t('alarmClock.zhou')+this.$t('alarmClock.yi')+","
  99. break;
  100. case "2":
  101. zhou = zhou + this.$t('alarmClock.zhou')+this.$t('alarmClock.er')+","
  102. break;
  103. case "3":
  104. zhou = zhou + this.$t('alarmClock.zhou')+this.$t('alarmClock.san')+","
  105. break;
  106. case "4":
  107. zhou = zhou + this.$t('alarmClock.zhou')+this.$t('alarmClock.si')+","
  108. break;
  109. case "5":
  110. zhou = zhou + this.$t('alarmClock.zhou')+this.$t('alarmClock.wu')+","
  111. break;
  112. case "6":
  113. zhou = zhou + this.$t('alarmClock.zhou')+this.$t('alarmClock.liu')+","
  114. break;
  115. case "7":
  116. zhou = zhou + this.$t('alarmClock.zhou')+this.$t('alarmClock.qi')+","
  117. break;
  118. default:
  119. }
  120. }
  121. alarmClock.week = zhou;
  122. var type = alarmClock.type;
  123. switch (type) { //0:炉头开启,1:炉头关闭,2:开始休眠,3:结束休眠
  124. case "0":
  125. type = this.$t('alarmClock.kailutou')
  126. break;
  127. case "1":
  128. type = this.$t('alarmClock.guanlutou')
  129. break;
  130. case "2":
  131. type = this.$t('alarmClock.kaixiumian')
  132. break;
  133. case "3":
  134. type = this.$t('alarmClock.guanxiumian')
  135. break;
  136. default:
  137. }
  138. alarmClock.type = type;
  139. }
  140. alarmClockList.push(alarmClock);
  141. }
  142. this.alarmClockList = alarmClockList;
  143. } else {
  144. uni.showToast({
  145. title: res.data.message,
  146. duration: 2000
  147. });
  148. }
  149. },
  150. });
  151. },
  152. onClick(id) {
  153. // console.log("id==" + id);
  154. uni.setStorageSync("clock", id);
  155. uni.navigateTo({
  156. url: 'alarmClockItem'
  157. });
  158. },
  159. addAlarmClockItem() {
  160. // console.log("addAlarmClockItem");
  161. uni.setStorageSync("clock", "add");
  162. uni.navigateTo({
  163. url: 'alarmClockItem'
  164. });
  165. }
  166. }
  167. }
  168. </script>
  169. <style>
  170. .head {
  171. height: 100upx;
  172. display: flex;
  173. flex-direction: row;
  174. justify-content: flex-start;
  175. background: #F8F8F8;
  176. }
  177. .left-top {
  178. height: 100upx;
  179. width: 50%;
  180. text-align: left;
  181. }
  182. .left-top-p {
  183. height: 100upx;
  184. padding-left: 8upx;
  185. color: #363D44;
  186. font-size: 25px;
  187. font-family: "PingFang-SC-Bold";
  188. }
  189. .right-top {
  190. height: 100upx;
  191. width: 50%;
  192. text-align: right;
  193. /* 垂直居中 */
  194. /* position: relative;
  195. top: 50%; /*偏移*/
  196. /* transform: translateY(-50%); */
  197. }
  198. .right-top-p {
  199. height: 100upx;
  200. padding-right: 12upx;
  201. color: #3496FB;
  202. font-size: 35px;
  203. font-family: "PingFang-SC-Bold";
  204. /* 垂直居中 */
  205. position: relative;
  206. top: 25%;
  207. /*偏移*/
  208. transform: translateY(-50%);
  209. }
  210. .body {
  211. background: #F8F8F8;
  212. }
  213. </style>