history-entrust.vue 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  1. <template>
  2. <view class="">
  3. <view class="lable-select-box">
  4. <view class="lable-select">
  5. <selectCondition val="全部合约" />
  6. <selectCondition val="全部类型" />
  7. </view>
  8. <text class="lable-title-icon iconfont">&#xe611;</text>
  9. </view>
  10. <view class="conceal-box">
  11. <view class="conceal-vi"></view>
  12. <text class="conceal-text">隐藏已取消订单</text>
  13. </view>
  14. <u-list class="swiper-list" :style="{'height': scrollHeight ? `${scrollHeight}px` : '' }"
  15. @scrolltolower="scrolltolower">
  16. <template v-for="item in list">
  17. <view class="content-box" :rise-fall="stocksColor">
  18. <view class="content-top">
  19. <view class="top-left">
  20. <view class="top-left-title">
  21. <text>{{ item.symbol }}</text>
  22. <text v-if="item.settled == 0">永续</text>
  23. <text v-else-if="item.settled == 9">快捷</text>
  24. </view>
  25. <view class="top-left-b">
  26. <text>{{ item.multiple }}倍杠杆</text>
  27. <text class="top-left-b-tag">{{ item.type_name }}</text>
  28. </view>
  29. </view>
  30. <view class="top-right top-right-btns">
  31. <text class="top-right-btn" @click.stop="setCloseLeverAll()">撤单</text>
  32. </view>
  33. </view>
  34. <view class="content-info">
  35. <view class="info-item">
  36. <text class="info-item-lable">委托数量(张)</text>
  37. <text class="info-item-val">{{ item.caution_money }}</text>
  38. </view>
  39. <view class="info-item">
  40. <text class="info-item-lable">委托价格(USDT)</text>
  41. <text class="info-item-val">{{ item.price }}</text>
  42. </view>
  43. <view class="info-item">
  44. <text class="info-item-lable">委托价(USDT)</text>
  45. <text class="info-item-val">{{ item.origin_price }}</text>
  46. </view>
  47. <view class="info-item">
  48. <text class="info-item-lable">止损价(USDT)</text>
  49. <text class="info-item-val"
  50. @click.stop="setRestrict(item)">{{ item.stop_loss_price || '--' }}
  51. <text class="iconfont">&#xe610;</text></text>
  52. </view>
  53. <view class="info-item">
  54. <text class="info-item-lable">预计价(USDT)</text>
  55. <text class="info-item-val"
  56. @click.stop="setRestrict(item)">{{ item.target_profit_price || '--' }} <text
  57. class="iconfont">&#xe610;</text> </text>
  58. </view>
  59. <view class="info-item">
  60. <text class="info-item-lable">创建时间(USDT)</text>
  61. <text class="info-item-val">{{ $getData_(item.create_time , false) }}</text>
  62. </view>
  63. </view>
  64. </view>
  65. <gap />
  66. </template>
  67. <view class="loadmore-box" v-show="loadStatus !== 'nomore' || list.length > 0">
  68. <u-loadmore :status="loadStatus" nomoreText="没有更多数据" :fontSize='28' :icon="false" />
  69. </view>
  70. <view class="empty-content" :style="{'height': scrollHeight ? `${scrollHeight}px` : '' }"
  71. v-if="loadStatus === 'nomore' && list.length <= 0">
  72. <empty />
  73. </view>
  74. </u-list>
  75. <restrictPopup ref="restrictRef" @setSuccess="setSuccess" />
  76. </view>
  77. </template>
  78. <script>
  79. import {
  80. mapGetters
  81. } from 'vuex'
  82. import {
  83. Api_getRegister
  84. } from "@/api/index.js"
  85. import restrictPopup from "./../modules/restrict.vue"
  86. import selectCondition from "./select-condition.vue"
  87. export default {
  88. name: 'login',
  89. props: {
  90. listHeight: {
  91. type: Number,
  92. default: 0
  93. },
  94. legal_id: {
  95. type: [Number, String],
  96. default: ''
  97. },
  98. currency_id: {
  99. type: [Number, String],
  100. default: ''
  101. },
  102. status: {
  103. type: Number,
  104. default: ''
  105. },
  106. },
  107. data() {
  108. return {
  109. scrollHeight: 0,
  110. list: [],
  111. loadStatus: '', // loading / nomore / loadmore
  112. limit: 10,
  113. page: 1,
  114. };
  115. },
  116. components: {
  117. restrictPopup,
  118. selectCondition
  119. },
  120. watch: {
  121. listHeight: {
  122. handler(newH) {
  123. if (newH) {
  124. this.scrollHeight = newH - uni.upx2px(80) - uni.upx2px(60);
  125. }
  126. },
  127. immediate: true
  128. },
  129. status: {
  130. handler(newSatus, oldStatus) {
  131. if (newSatus === 0 && newSatus !== oldStatus) {
  132. this.initData()
  133. }
  134. },
  135. immediate: true
  136. },
  137. },
  138. computed: {
  139. ...mapGetters([
  140. "stocksColor",
  141. ])
  142. },
  143. mounted() {
  144. },
  145. methods: {
  146. // 初始化
  147. initData() {
  148. this.limit = 10;
  149. this.page = 1;
  150. this.loadStatus = 'nomore';
  151. // this.getRegister()
  152. },
  153. setSuccess() {
  154. this.initData()
  155. },
  156. // 设置止盈止损
  157. setRestrict(item) {
  158. this.$nextTick(() => {
  159. this.$refs.restrictRef.open(item)
  160. })
  161. },
  162. scrolltolower() {
  163. if (this.loadStatus === 'loadmore') {
  164. this.page++;
  165. this.getRegister()
  166. }
  167. },
  168. getRegister() {
  169. if (this.loadStatus === 'loading') {
  170. return false
  171. };
  172. this.loadStatus = 'loading'
  173. Api_getRegister({
  174. status: this.status,
  175. page: this.page,
  176. limit: this.limit,
  177. }).then(res => {
  178. const data = res.message;
  179. this.list = this.list.concat(data.data)
  180. this.page = data.current_page
  181. if (this.list.length >= data.total) {
  182. this.loadStatus = 'nomore'
  183. } else {
  184. this.loadStatus = 'loadmore'
  185. }
  186. }).catch(err => {
  187. if (this.page >= 2) {
  188. this.page -= 1;
  189. this.loadStatus = 'loadmore'
  190. } else {
  191. this.loadStatus = 'nomore'
  192. }
  193. })
  194. }
  195. }
  196. }
  197. </script>
  198. <style lang="scss" scoped>
  199. @import "~../sustainability/index.scss";
  200. @import "~./index.scss";
  201. .conceal-box {
  202. width: 100%;
  203. height: 60rpx;
  204. padding: 0 $pages-padding;
  205. display: flex;
  206. align-items: center;
  207. border-bottom: 1rpx solid $border-color;
  208. font-size: 24rpx;
  209. color: $SizeColor3;
  210. .conceal-vi {
  211. width: 30rpx;
  212. height: 30rpx;
  213. border: 1rpx solid $border-color6;
  214. margin-right: 20rpx;
  215. }
  216. }
  217. // <view class="conceal-box">
  218. // <view class="conceal-vi"></view>
  219. // <text class="conceal-text">隐藏已取消订单</text>
  220. // </view>
  221. </style>