send-ad.vue 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. <template>
  2. <v-page>
  3. <v-header :title="$t('otc.a0')"></v-header>
  4. <view class="layout-main">
  5. <view class="bg-panel-3 box-shadow rounded-sm m-md p-sm">
  6. <view class="form-item m-b-sm">
  7. <view class="label">{{$t('otc.i3')}}</view>
  8. <view>
  9. <v-picker :list="types" v-model="form.side">
  10. <template #default="{ label }">
  11. <view
  12. class="p-xs rounded-xs bg-panel-1 box-shadow m-t-xs d-flex align-center"
  13. >
  14. <view class="flex-fill">
  15. {{ label || $t('otc.i4') }}
  16. </view>
  17. <van-icon name="arrow-down" />
  18. </view>
  19. </template>
  20. </v-picker>
  21. </view>
  22. </view>
  23. <view class="form-item m-b-sm">
  24. <view class="label">{{$t('otc.i5')}}</view>
  25. <view>
  26. <v-picker :list="coinList" v-model="form.virtual_coin">
  27. <template #default="{ label }">
  28. <view
  29. class="p-xs rounded-xs bg-panel-1 box-shadow m-t-xs d-flex align-center"
  30. >
  31. <view class="flex-fill"
  32. >{{ label || $t('otc.i5') }}
  33. </view>
  34. <van-icon name="arrow-down" />
  35. </view>
  36. </template>
  37. </v-picker>
  38. </view>
  39. </view>
  40. <view class="form-item m-b-sm">
  41. <view class="label">{{$t('otc.c4')}}</view>
  42. <v-input
  43. :placeholder="$t('otc.b5')"
  44. class="p-xs rounded-xs bg-panel-1 box-shadow m-t-xs"
  45. type="number"
  46. v-model="form.amount"
  47. ></v-input>
  48. </view>
  49. <view class="form-item m-b-sm">
  50. <view class="label">{{$t('otc.i6')}}</view>
  51. <v-input
  52. :placeholder="$t('otc.i7')"
  53. class="p-xs rounded-xs bg-panel-1 box-shadow m-t-xs"
  54. type="number"
  55. v-model="form.price"
  56. ></v-input>
  57. </view>
  58. <view class="form-item m-b-sm">
  59. <view class="label">{{$t('otc.j7')}}</view>
  60. <v-input
  61. :placeholder="$t('otc.j9')"
  62. class="p-xs rounded-xs bg-panel-1 box-shadow m-t-xs"
  63. type="number"
  64. v-model="form.min_num"
  65. ></v-input>
  66. </view>
  67. <view class="form-item m-b-sm">
  68. <view class="label">{{$t('otc.j8')}}</view>
  69. <v-input
  70. :placeholder="$t('otc.k0')"
  71. class="p-xs rounded-xs bg-panel-1 box-shadow m-t-xs"
  72. type="number"
  73. v-model="form.max_num"
  74. ></v-input>
  75. </view>
  76. <view class="form-item m-b-sm">
  77. <view class="label">{{$t('otc.b1')}}</view>
  78. <view class="m-t-xs d-flex flex-wrap" >
  79. <view class="item d-flex m-r-xs" @click="checkPay('alipay')" v-if="alipay">
  80. <van-icon v-if="form.pay_type.includes('alipay')" name="checked" class="color-success" />
  81. <van-icon v-else name="circle" />
  82. {{$t('otc.b7')}}
  83. </view>
  84. <view class="item d-flex m-r-xs" @click="checkPay('wechat')" v-if="wechat">
  85. <van-icon v-if="form.pay_type.includes('wechat')" name="checked" class="color-success" />
  86. <van-icon v-else name="circle" />
  87. {{$t('otc.b8')}}
  88. </view>
  89. <view class="item d-flex m-r-xs" @click="checkPay('bank_card')" v-if="bank_card">
  90. <van-icon v-if="form.pay_type.includes('bank_card')" name="checked" class="color-success" />
  91. <van-icon v-else name="circle" />
  92. {{$t('otc.b9')}}
  93. </view>
  94. </view>
  95. </view>
  96. <view class="form-item m-b-sm">
  97. <view class="label">{{$t('otc.j2')}}</view>
  98. <view>
  99. <v-input
  100. :placeholder="$t('otc.j3')"
  101. class="p-xs rounded-xs bg-panel-1 box-shadow m-t-xs"
  102. type="text"
  103. v-model="form.note"
  104. ></v-input>
  105. </view>
  106. </view>
  107. <view class="">
  108. <v-button type="green" ref="btn" block class="rounded-xs" @click="storeEntrust"> {{$t('otc.j4')}} </v-button>
  109. </view>
  110. </view>
  111. </view>
  112. </v-page>
  113. </template>
  114. <script>
  115. import Otc from "@/api/otc";
  116. export default {
  117. name: "send-ad",
  118. data() {
  119. return {
  120. coinList: [],
  121. alipay: false,
  122. bank_card: false,
  123. wechat: false,
  124. form: {
  125. virtual_coin: "",
  126. side: 1,
  127. price: "",
  128. amount: "",
  129. pay_type: [],
  130. note: "",
  131. min_num: "",
  132. max_num: "",
  133. },
  134. };
  135. },
  136. computed:{
  137. types(){
  138. return [
  139. {
  140. value: 1,
  141. label: this.$t('otc.f3'),
  142. },
  143. {
  144. value: 2,
  145. label: this.$t('otc.f2'),
  146. },
  147. ]
  148. }
  149. },
  150. created() {
  151. this.getList();
  152. this.otcTicker();
  153. },
  154. methods: {
  155. checkPay(key){
  156. let idx = this.form.pay_type.findIndex(item=>item===key);
  157. if(idx==-1){
  158. this.form.pay_type.push(key)
  159. }else{
  160. this.form.pay_type.splice(idx,1)
  161. }
  162. },
  163. getList() {
  164. Otc.userPayment().then((res) => {
  165. this.alipay = !!res.data.alipay;
  166. this.bank_card = !!res.data.bank_card;
  167. this.wechat = !!res.data.wechat;
  168. if (this.alipay) {
  169. this.form.pay_type.push("alipay");
  170. } else if (this.wechat) {
  171. this.form.pay_type.push("wechat");
  172. } else if (this.bank_card) {
  173. this.form.pay_type.push("bank_card");
  174. }
  175. });
  176. },
  177. otcTicker() {
  178. Otc.otcTicker().then((res) => {
  179. this.coinList = res.data.map((item) => {
  180. return {
  181. value: item.coin_name,
  182. label: item.coin_name,
  183. };
  184. });
  185. });
  186. },
  187. storeEntrust() {
  188. let data = {
  189. ...this.form,
  190. };
  191. data.pay_type = JSON.stringify(data.pay_type);
  192. Otc.storeEntrust(data,{btn:this.$refs.btn}).then((res) => {
  193. this.$toast(this.$t('otc.j5'));
  194. this.form.price = "";
  195. this.form.amount = "";
  196. this.form.note = "";
  197. this.form.min_num = "";
  198. this.form.max_num = "";
  199. });
  200. },
  201. },
  202. };
  203. </script>