index.vue 7.0 KB

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