history.vue 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269
  1. <template>
  2. <view class="history-container">
  3. <view class="item-list">
  4. <view class="item" v-for="(item,index) in items" :key="index">
  5. <view class="time">{{formatTime(item.expectedFinishDate)}}</view>
  6. <div class="item-cont" @click="linkTo(item)">
  7. <view class="center">
  8. <view class="sportType">
  9. <text>{{item.taskTitle}}</text>
  10. </view>
  11. </view>
  12. <!-- <view class="rt">
  13. <text class="name">{{item.taskContent}}</text>
  14. </view> -->
  15. </div>
  16. </view>
  17. </view>
  18. <template>
  19. <view class="pagination-box" v-if="total>0">
  20. <uni-pagination @change="changePageNumber"
  21. :pageSize="limit" :current="page"
  22. :total="total"></uni-pagination>
  23. </view>
  24. <template v-else>
  25. <view class="isEmpty" >
  26. <p class="word">没有数据 ^_^ </p>
  27. </view>
  28. </template>
  29. </template>
  30. </view>
  31. </template>
  32. <script>
  33. import config from "@/config/index.js"
  34. const baseUrl = process.env.NODE_ENV === 'development' ? config.base.dev : config.base.pro;
  35. import {getMemorylistByPage,getDataById} from '@/api/user.js'
  36. import getPhone from '@/components/getPhone.vue'
  37. export default {
  38. data() {
  39. return {
  40. time:new Date(),
  41. note:"18743733582",
  42. page:1,
  43. limit:15,
  44. total:0,
  45. items:[],
  46. sportVedioPath:"",
  47. isLogin:true
  48. }
  49. },
  50. components:{
  51. getPhone
  52. },
  53. onShow() {
  54. this.getData()
  55. this.init()
  56. },
  57. methods: {
  58. initPhoneModal(){
  59. const accountName=uni.getStorageSync('phone')
  60. if(!accountName){
  61. this.isLogin=false
  62. this.$nextTick(()=>{
  63. this.$refs['getPhone'].isAuthorize=false
  64. })
  65. }else{
  66. this.isLogin=true
  67. }
  68. },
  69. getData(){
  70. let page=this.page;
  71. let limit=this.limit;
  72. let accountId=uni.getStorageSync('accountId')
  73. getMemorylistByPage({
  74. accountId,
  75. page, limit
  76. }).then((res)=>{
  77. console.log({res})
  78. this.items=res.data.list
  79. this.total=res.data.totalCount;
  80. })
  81. },
  82. init(){
  83. this.items=[]
  84. this.total=0
  85. this.limit=15
  86. this.page=1
  87. },
  88. onClick(item){
  89. let gradeId=item.gradeId
  90. let sportVedioPath=item.sportVedioPath;
  91. this.sportVedioPath=sportVedioPath
  92. }
  93. ,formatTime(date) {
  94. if (!date) return null
  95. if(typeof(date)==="string"){date = new Date(date)}
  96. var y = date.getFullYear()
  97. var M = date.getMonth() + 1
  98. var d = date.getDate()
  99. var H = date.getHours()
  100. var m = date.getMinutes()
  101. var s = date.getSeconds()
  102. M = M > 9 ? M : '0' + M; d = d > 9 ? d : '0' + d; H = H > 9 ? H : '0' + H
  103. m = m > 9 ? m : '0' + m; s = s > 9 ? s : '0' + s
  104. return `${y}-${M}-${d} ${H}:${m}:${s}`
  105. },
  106. formatImage(path){
  107. if(!path) return
  108. let fileName=path.substring(0,path.lastIndexOf('.'))
  109. return `${fileName}.jpg`;
  110. },
  111. formatSportType(val){
  112. if(this.isEmpty(val)) return '--';
  113. var enums={
  114. '0000':"引体向上",
  115. '0001':"仰卧起坐",
  116. '0002':"跳远",
  117. '0003':"坐位体前屈",
  118. '0004':"健身动作",
  119. '0005':"高抬腿",
  120. '0006':"排球垫球",
  121. '0007':"足球垫球",
  122. }
  123. return enums[val];
  124. },
  125. changePageNumber({type,current}){
  126. this.page=current
  127. this.getData()
  128. },
  129. linkTo(item){
  130. uni.setStorageSync('detail-info',item)
  131. uni.navigateTo({
  132. url:'/pages/history/detail/detail'
  133. })
  134. },
  135. isEmpty(val){
  136. if(val!=="undefined"&&val!==undefined&&val!==""&&val!==null){
  137. return false
  138. }
  139. return true
  140. }
  141. }
  142. }
  143. </script>
  144. <style lang="scss" scoped>
  145. .history-container{
  146. background:#E4F0FB;
  147. }
  148. .pagination-box{
  149. margin: 40rpx 0;
  150. background-color: #fff;
  151. }
  152. .isEmpty{
  153. width: 100%;
  154. height: 100vh;
  155. background-image: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNzkgODYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgeDE9IjM4Ljg1JSIgeTE9IjAlIiB4Mj0iNjEuMTUlIiB5Mj0iMTAwJSI+PHN0b3Agc3RvcC1jb2xvcj0iI0ZDRkNGRCIgb2Zmc2V0PSIwJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNFRUVGRjMiIG9mZnNldD0iMTAwJSIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJiIiB4MT0iMCUiIHkxPSI5LjUlIiB5Mj0iOTAuNSUiPjxzdG9wIHN0b3AtY29sb3I9IiNGQ0ZDRkQiIG9mZnNldD0iMCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRTlFQkVGIiBvZmZzZXQ9IjEwMCUiLz48L2xpbmVhckdyYWRpZW50PjxwYXRoIGlkPSJjIiBkPSJNMCAwaDE3djM2SDB6Ii8+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHBhdGggZD0iTTM5LjUgODZDNjEuMzE1IDg2IDc5IDgzLjkxIDc5IDgxLjMzM1M1Ny4zMTUgNzggMzUuNSA3OCAwIDc4Ljc1NiAwIDgxLjMzM0MwIDgzLjkxMSAxNy42ODUgODYgMzkuNSA4NnoiIGZpbGw9IiNGN0Y4RkMiLz48cGF0aCBmaWxsPSIjRTVFN0U5IiBkPSJNMTMgNDVoNDBMNDIgNThIMnpNNjUuNTUxIDI5Ljk4bC0xNi4zMTMtNy42MDctMi44NDEtNS43MzggMTYuMzEzIDcuNjA3eiIvPjxwYXRoIGZpbGw9IiNFREVFRjIiIGQ9Ik02NS41NTEgMjkuOThsLTM0LjQ0LTE2LjA1OS0xNS4yMTQgMzIuNjI3IDM0LjQ0IDE2LjA2eiIvPjxwYXRoIGZpbGw9InVybCgjYSkiIHRyYW5zZm9ybT0icm90YXRlKDI1IDI3LjQ0NiAtNDMuNDE2KSIgZD0iTTM4IDdoMTd2MzZIMzh6Ii8+PHBhdGggZmlsbD0iI0Y4RjlGQiIgZD0iTTE1LjcwNSA2LjczN2wxNS40MDcgNy4xODQgMTUuNjQ2LS40MjctMTUuNDA3LTcuMTg1eiIvPjxwYXRoIGZpbGw9InVybCgjYikiIGQ9Ik0xMyA0NWg0MHYzNkgxM3oiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1MyA0NSkiPjxtYXNrIGlkPSJkIiBmaWxsPSIjZmZmIj48dXNlIHhsaW5rOmhyZWY9IiNjIi8+PC9tYXNrPjx1c2UgZmlsbD0iI0UwRTNFOSIgdHJhbnNmb3JtPSJtYXRyaXgoLTEgMCAwIDEgMTcgMCkiIHhsaW5rOmhyZWY9IiNjIi8+PHBhdGggZmlsbD0iI0Q1RDdERSIgbWFzaz0idXJsKCNkKSIgdHJhbnNmb3JtPSJtYXRyaXgoLTEgMCAwIDEgMjQgMCkiIGQ9Ik03IDBoMTdsLTQgMTgtMjAtMnoiLz48L2c+PHBhdGggZmlsbD0iI0Y4RjlGQiIgZD0iTTcwIDQ1SDUzbDkgMTNoMTd6Ii8+PC9nPjwvc3ZnPg==);
  156. background-size: contain;
  157. background-repeat: no-repeat;
  158. position: relative;
  159. background-color: #fff;
  160. /* #ifndef MP-WEIXIN */
  161. height: calc( 100vh - 100px);
  162. /* #endif */
  163. .word{
  164. width: 100%;
  165. text-align: center;
  166. position: absolute;
  167. top: 80vh;
  168. left: 0;
  169. color: #999;
  170. font-size: 28rpx;
  171. letter-spacing: 2rpx;
  172. }
  173. }
  174. #video{
  175. display: block;
  176. width: 720rpx;
  177. margin: 20rpx auto;
  178. }
  179. .item-list{
  180. .item{
  181. &{
  182. padding: 0 20rpx;
  183. }
  184. .time{
  185. font-size: 24rpx;
  186. font-family: PingFang SC;
  187. font-weight: 400;
  188. line-height: 28rpx;
  189. color: #666666;
  190. padding: 24rpx 0;
  191. }
  192. .item-cont{
  193. &{
  194. display: flex;
  195. justify-content: space-between;
  196. align-items: center;
  197. padding: 20rpx 16rpx;
  198. background-color: #fff;
  199. border-radius: 20rpx;
  200. }
  201. .logo{
  202. width: 80rpx;
  203. height: 80rpx;
  204. border-radius: 8px;
  205. display: flex;
  206. justify-content:center;
  207. align-items: center;
  208. background-color: #e2e2e2;
  209. img{
  210. display: block;
  211. width: 80rpx;
  212. height: 80rpx;
  213. border-radius: 8px;
  214. }
  215. }
  216. .center{
  217. color: #999;
  218. font-size: 12px;
  219. flex: 1;
  220. padding-left: 20rpx;
  221. .sportType{
  222. &{
  223. font-size: 28rpx;
  224. font-family: PingFang SC;
  225. font-weight: bold;
  226. line-height: 1;
  227. display: flex;
  228. justify-content: flex-start;
  229. align-items: center;
  230. color: #333333;
  231. }
  232. .camera-box{
  233. padding-left: 26rpx;
  234. .camera{
  235. display: block;
  236. width: 36rpx;
  237. height: 36rpx;
  238. }
  239. }
  240. }
  241. }
  242. .rt{
  243. font-size: 32rpx;
  244. display: flex;
  245. justify-content:space-between;
  246. align-items: center;
  247. .name{
  248. font-size: 28rpx;
  249. font-family: PingFang SC;
  250. font-weight: bold;
  251. color: #F97743;
  252. line-height: 1;
  253. }
  254. .score{
  255. font-weight: 900;
  256. padding-right: 10rpx;
  257. font-size: 40rpx;
  258. font-family: PingFang SC;
  259. font-weight: bold;
  260. color: #FF4600;
  261. line-height: 1;
  262. }
  263. }
  264. }
  265. }
  266. }
  267. </style>