投屏pc端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

722 lines
27 KiB

6 years ago
  1. <template>
  2. <div class="global-width">
  3. <div class="container">
  4. <!--当前位置-->
  5. <div class="hc-breadcrumb">
  6. <span class="hc-color4">{{$t('法币订单管理')}}</span>
  7. <i class="hc-breadcrumb-icon"></i>
  8. <span class="margin0" v-if="orderDetails.dealType == 'E_I_D_T_BUY'">{{$t('购买')}} {{orderDetails.inCoin}}</span>
  9. <span class="margin0" v-if="orderDetails.dealType == 'E_I_D_T_SELL'">{{$t('出售')}} {{orderDetails.outCoin}}</span>
  10. </div>
  11. <div class="hc-breadcrumb trade-center-top">
  12. <span>{{$t('订单详情')}}</span>
  13. </div>
  14. <div class="trade-detail-warp purchase-warp">
  15. <div class="trade-detail-left">
  16. <router-link to="/" class="trade-detail-left-div1">
  17. <div class="trade-detail-left-top">
  18. <img src="../../assets/images/user-head-img.png" class="trade-detail-left-headimg">
  19. </div>
  20. <div class="trade-detail-left-top">
  21. <div class="trade-detail-left-nickname">{{orderDetails.dealUserIdentity}}</div>
  22. <div class="merchants-tag">
  23. <img src="../../assets/images/trade/icon-authentication.png">
  24. <span class="hc-color">{{($t('认证商家'))}}</span>
  25. </div>
  26. </div>
  27. </router-link>
  28. <div class="trade-detail-left-div2">
  29. <div class="trade-detail-left-div3">
  30. <div class="hc-color">{{$t('交易次数')}}</div>
  31. <div class="div2-d1">{{dealerInfo.sumOfFinishedFlow || 0}}</div>
  32. </div>
  33. <div class="trade-detail-left-div4">
  34. <div class="hc-color">{{$t('完成率')}}</div>
  35. <div class="div2-d1">{{dealerInfo.finishedRate || 0}}%</div>
  36. </div>
  37. <div class="trade-detail-left-div5">
  38. <div class="hc-color">{{$t('平均放行')}}</div>
  39. <div class="div2-d1">{{dealerInfo.avgReleaseMinus || 0}}分钟</div>
  40. </div>
  41. </div>
  42. <div class="trade-detail-explain">
  43. <h3>{{$t('广告说明')}}:</h3>
  44. <p class="hc-color">{{$t('1.订单有效期为15分钟,请您及时在有效期内付款并点击「标记付款已完成」按钮,我才可以释放数字币给您。')}}</p>
  45. <p class="hc-color">{{$t('2.开始交易后数字币由系统锁定托管,请安心下单。')}}</p>
  46. </div>
  47. <div class="trade-detail-explain">
  48. <h3>{{$t('交易备注')}}:</h3>
  49. <p class="hc-color">{{$t('请勿在汇款备注内填写比特币、BTC、OTC等任何数字币有关字眼,防止您的汇款被银行拦截。')}}</p>
  50. <p class="hc-color">{{$t('银行帐号:')}}xxxx xxxx xxxx xxxx</p>
  51. <p class="hc-color">{{$t('支付宝帐号:')}}xxxxxxx</p>
  52. <p class="hc-color">{{$t('单后可以直接加我微信跟我联系,我会尽快回复。')}}</p>
  53. </div>
  54. </div>
  55. <div class="trade-detail-right">
  56. <div class="top-price">
  57. <span class="hc-color2" v-if="orderDetails.dealType == 'E_I_D_T_BUY'">{{$t('购买')}} {{orderDetails.inCoin}}</span>
  58. <span class="hc-color1" v-if="orderDetails.dealType == 'E_I_D_T_SELL'">{{$t('出售')}} {{orderDetails.outCoin}}</span>
  59. <div class="top-price-r">{{$t('订单编号')}}{{id}}</div>
  60. <div class="top-price-r top-price-rm">{{$t('时间')}} {{orderDetails.createDatetime | dateFormat('YYYY-MM-DD HH:mm:ss')}}</div>
  61. </div>
  62. <ul class="ul-information">
  63. <li class="li-1">
  64. <div class="div1-d1">{{$t('价格')}}</div>
  65. <p v-if="orderDetails.dealType == 'E_I_D_T_BUY'">¥{{orderDetails.amount}}/{{orderDetails.outCoin}}</p>
  66. <p v-if="orderDetails.dealType == 'E_I_D_T_SELL'">¥{{orderDetails.amount}}/{{orderDetails.inCoin}}</p>
  67. </li>
  68. <li class="li-2">
  69. <div class="div1-d1">{{$t('数量')}}</div>
  70. <p v-if="orderDetails.dealType == 'E_I_D_T_BUY'">{{orderDetails.inAmount}}{{orderDetails.inCoin}}</p>
  71. <p v-if="orderDetails.dealType == 'E_I_D_T_SELL'">{{orderDetails.outAmount}}{{orderDetails.outCoin}}</p>
  72. </li>
  73. <li class="li-3">
  74. <div class="div1-d1">{{$t('交易金额')}}</div>
  75. <p v-if="orderDetails.dealType == 'E_I_D_T_BUY'">¥{{orderDetails.outAmount}}</p>
  76. <p v-if="orderDetails.dealType == 'E_I_D_T_SELL'">¥{{orderDetails.inAmount}}</p>
  77. </li>
  78. <!-- <li class="li-4">
  79. <div class="div1-d1">{{$t('交易方式')}}</div>
  80. <p>
  81. <img src="../../theme/images/trade/icon-alipay.png" />
  82. </p>
  83. </li> -->
  84. <li class="li-5">
  85. <div class="div1-d1">{{$t('付款期限')}}</div>
  86. <p>15分钟</p>
  87. </li>
  88. <li class="li-6">
  89. <div class="div1-d1">{{$t('状态')}}</div>
  90. <p v-if="orderDetails.statusStr == '待付款'">{{$t('请付款')}}</p>
  91. <p v-else-if="orderDetails.status == 'M_O_F_S_CANCEL'">{{$t('已取消')}}</p>
  92. <p v-else-if="orderDetails.statusStr == '完成'">{{$t('已完成')}}</p>
  93. <p v-else-if="orderDetails.appeal">{{$t('申诉中')}}</p>
  94. <p v-else>{{orderDetails.statusStr}}</p>
  95. </li>
  96. </ul>
  97. <div class="order-list-total">
  98. <div class="order-list-notice-one">
  99. <span class="list-notice-title">{{$t('手续费')}}:</span><span>2</span>
  100. <div class="question-box">
  101. <img class="fa-question" src="../../assets/images/icon-question.png" />
  102. <div class="free-explanation">
  103. <h3>{{$t('手续费说明')}}:</h3>
  104. <p>{{$t('交易手续费扣除百分之零点一')}}</p>
  105. </div>
  106. </div>
  107. </div>
  108. <div class="order-list-notice-two">
  109. <p>
  110. <span class="list-notice-title">{{$t('总额:')}}</span>
  111. <span class="list-notice-detail" v-if="orderDetails.dealType == 'E_I_D_T_BUY'">¥{{orderDetails.outAmount}}</span>
  112. <span class="list-notice-detail" v-if="orderDetails.dealType == 'E_I_D_T_SELL'">¥{{orderDetails.inAmount}}</span>
  113. </p>
  114. <p>
  115. <span class="list-notice-title">{{$t('兑换:')}}</span>
  116. <span v-if="orderDetails.dealType == 'E_I_D_T_BUY'">{{orderDetails.inAmount}}{{orderDetails.inCoin}}</span>
  117. <span v-if="orderDetails.dealType == 'E_I_D_T_SELL'">{{orderDetails.outAmount}}{{orderDetails.outCoin}}</span>
  118. </p>
  119. </div>
  120. </div>
  121. <div class="order-person-info">
  122. <div class="person-info-left">
  123. <!-- 买家 待付款 -->
  124. <div class="info-left-one" v-if="orderDetails.dealType == 'E_I_D_T_BUY' && orderDetails.status == 'M_O_F_S_WAIT_PAY' && !orderDetails.appeal">
  125. <div class="one-title">{{$t('商家收款账号')}}</div>
  126. <div class="one-body">
  127. <button type="button" class="el-popover_reference" @click="showPaymentInfo(item)" v-for="item of memberPayWayList" :key="item.paymentType">
  128. <span>
  129. <img src="../../assets/images/trade/icon-wechat2.png" v-if="item.paymentType == 1">
  130. <img src="../../assets/images/trade/icon-alipay2.png" v-if="item.paymentType == 2">
  131. <img src="../../assets/images/trade/icon-bankpayicon2.png" v-if="item.paymentType == 3">
  132. <span class="one-body-bank">{{item.paymentTypeStr}}</span>
  133. </span>
  134. </button>
  135. <!--收款信息-->
  136. <div class="collection-information" v-if="showPayment">
  137. <!--银行卡-->
  138. <div class="bank-card">
  139. <div class="account_info">
  140. <span class="account_info_span">{{$t('姓名')}}</span>
  141. <span>{{paymentInfo.realName}}</span>
  142. <div class="account-copy" v-clipboard:copy="paymentInfo.realName" v-clipboard:success="copySuccess">{{$t('复制')}}</div>
  143. </div>
  144. <div class="account_info" v-if="paymentInfo.paymentType == 3">
  145. <span class="account_info_span">{{$t('开户行')}}</span>
  146. <span>{{paymentInfo.remark}}</span>
  147. <div class="account-copy" v-clipboard:copy="paymentInfo.remark" v-clipboard:success="copySuccess">{{$t('复制')}}</div>
  148. </div>
  149. <div class="account_info" v-if="paymentInfo.paymentType == 3">
  150. <span class="account_info_span">{{$t('银行卡号')}}</span>
  151. <span>{{paymentInfo.account}}</span>
  152. <div class="account-copy" v-clipboard:copy="paymentInfo.account" v-clipboard:success="copySuccess">{{$t('复制')}}</div>
  153. </div>
  154. <div class="account_info" v-if="paymentInfo.paymentType != 3">
  155. <span class="account_info_span">{{$t('账号')}}</span>
  156. <span>{{paymentInfo.account}}</span>
  157. <div class="account-copy" v-clipboard:copy="paymentInfo.account" v-clipboard:success="copySuccess">{{$t('复制')}}</div>
  158. </div>
  159. <div class="account_info" v-if="paymentInfo.paymentType != 3">
  160. <span class="account_info_span">{{$t('付款二维码')}}</span>
  161. <span><img :src="paymentInfo.img" style="width: 100%;"></span>
  162. <a :href="paymentInfo.img" target="_blank" class="account-copy">{{$t('看大图')}}</a>
  163. </div>
  164. </div>
  165. </div>
  166. <div class="one-body-notice"> {{$t('使用微信、支付宝、银行卡转账时,请不要添加任何备注内容! 否则可能会被支付系统拦截')}}</div>
  167. </div>
  168. </div>
  169. <div class="info-left-one" v-if="orderDetails.dealType == 'E_I_D_T_SELL' && orderDetails.status == 'M_O_F_S_WAIT_PASS' && !orderDetails.appeal">
  170. <div class="chat-title">
  171. <span class="chat-m">{{$t('买家')}}</span>
  172. <img class="chat-title-headimg" src="../../assets/images/user-head-img.png">
  173. <span class="chat-title-nickname co-nickname">{{orderDetails.dealUserIdentity}}</span>
  174. <div class="merchants-tag">
  175. <img src="../../assets/images/trade/icon-authentication.png"> <span class="hc-color">{{($t('认证商家'))}}</span>
  176. </div>
  177. </div>
  178. <div class="confirm-price">
  179. <div class="confirm-price-t">
  180. <span>{{$t('查收买家付款')}}</span>
  181. <h1 class="hc-color1">¥{{orderDetails.inAmount}}</h1>
  182. </div>
  183. <div class="confirm-price-t">
  184. <div class="confirm-price-text">
  185. <ul>
  186. <li>
  187. <span>{{$t('付款留言:')}}</span>{{payMessage ? payMessage : '无'}}
  188. </li>
  189. </ul>
  190. </div>
  191. </div>
  192. <div class="one-body-notice"> 请务必登录收款账户确认到账明细避免因错误点击放行造成财产损失</div>
  193. </div>
  194. </div>
  195. <div class="info-left-two">
  196. <div class="two-title">
  197. <div class="order-title-seven order-title" v-if="!orderDetails.appeal">
  198. <!-- 已取消 -->
  199. <p class="is-center" v-if="orderDetails.dealType == 'E_I_D_T_BUY' && orderDetails.status == 'M_O_F_S_CANCEL'">{{$t('该订单已经取消请勿再执行任何转帐行为')}}</p>
  200. <p class="is-center" v-if="orderDetails.dealType == 'E_I_D_T_SELL' && orderDetails.status == 'M_O_F_S_CANCEL'">{{$t('该订单已经取消')}}</p>
  201. <!-- 买家 待付款 -->
  202. <p v-if="orderDetails.dealType == 'E_I_D_T_BUY' && orderDetails.status == 'M_O_F_S_WAIT_PAY'">
  203. {{$t('付款时间剩余')}}<span>{{countDown | countDown}}</span>{{$t(',逾期订单将自动取消,请及时付款并点击标记付款')}}
  204. </p>
  205. <!-- 卖家 待付款 -->
  206. <p v-if="orderDetails.dealType == 'E_I_D_T_SELL' && orderDetails.status == 'M_O_F_S_WAIT_PAY'">
  207. {{$t('付款时间剩余')}}<span>{{countDown | countDown}}</span>{{$t(',逾期订单将自动取消,等待买家付款')}}
  208. </p>
  209. <!-- 买家 待放行 -->
  210. <p class="is-center" v-if="orderDetails.dealType == 'E_I_D_T_BUY' && orderDetails.status == 'M_O_F_S_WAIT_PASS'">
  211. {{orderDetails.inCoin}} {{$t('将持续由系统锁定托管')}}<br>{{$t('待放行剩余时间')}}<span>{{countDown | countDown}}</span>
  212. </p>
  213. <!-- 卖家 待放行 -->
  214. <p class="is-center" v-if="orderDetails.dealType == 'E_I_D_T_SELL' && orderDetails.status == 'M_O_F_S_WAIT_PASS'">
  215. {{$t('请务必查收到账账户再确认收款')}}<br>{{$t('待放行剩余时间')}}<span>{{countDown | countDown}}</span>
  216. </p>
  217. <!-- 已完成 -->
  218. <p class="is-center" v-if="orderDetails.status == 'M_O_F_S_FINISH'">{{$t('已完成交易')}}</p>
  219. </div>
  220. <div class="order-title-seven order-title" v-if="orderDetails.appeal">
  221. <p class="is-center">{{$t('此订单已经入申诉状态,请耐心等待客服介入处理')}}</p>
  222. </div>
  223. </div>
  224. <div class="tips two-body">
  225. <div class="tips-seven" v-if="!orderDetails.appeal">
  226. <!-- 已取消 -->
  227. <div class="tips-body" v-if="orderDetails.status == 'M_O_F_S_CANCEL'">
  228. <button class="el-button el-button3 cursor-no">
  229. <span>{{$t('订单已取消')}}</span>
  230. </button>
  231. </div>
  232. <!-- 买家 待付款 -->
  233. <div class="tips-body" v-if="orderDetails.dealType == 'E_I_D_T_BUY' && orderDetails.status == 'M_O_F_S_WAIT_PAY'">
  234. <button type="button" class="el-button el-button2" @click="confirmPay">
  235. <span>{{$t('标记付款已完成')}}</span>
  236. </button>
  237. <button type="button" class="el-button complete" @click="cancleOrder">
  238. <span>{{$t('取消交易')}}</span>
  239. </button>
  240. </div>
  241. <!-- 卖家 待付款 -->
  242. <div class="tips-body" v-if="orderDetails.dealType == 'E_I_D_T_SELL' && orderDetails.status == 'M_O_F_S_WAIT_PAY'">
  243. <button type="button" class="el-button el-button2 cursor-no">
  244. <span>{{$t('等待买家付款')}}</span>
  245. </button>
  246. <button type="button" class="el-button complete" @click="cancleOrder">
  247. <span>{{$t('取消交易')}}</span>
  248. </button>
  249. </div>
  250. <!-- 买家 待放行 -->
  251. <div class="tips-body" v-if="orderDetails.dealType == 'E_I_D_T_BUY' && orderDetails.status == 'M_O_F_S_WAIT_PASS'">
  252. <button type="button" class="el-button el-button3 cursor-no">
  253. <span>{{$t('已标记付款,请等待卖家核实后释放数字币')}}</span>
  254. </button>
  255. <button type="button" class="el-button complete" @click="openAppeal">
  256. <span>{{$t('我要申诉')}}</span>
  257. </button>
  258. </div>
  259. <!-- 卖家 待放行 -->
  260. <div class="tips-body" v-if="orderDetails.dealType == 'E_I_D_T_SELL' && orderDetails.status == 'M_O_F_S_WAIT_PASS'">
  261. <button type="button" @click="confirmPass" class="el-button el-button3 hc-color4">
  262. <span>{{$t('确认收款并放行')}}</span>
  263. </button>
  264. <button type="button" class="el-button complete" @click="openAppeal">
  265. <span>{{$t('我要申诉')}}</span>
  266. </button>
  267. </div>
  268. <!-- 买家 已完成 -->
  269. <div class="tips-body" v-if="orderDetails.dealType == 'E_I_D_T_BUY' && orderDetails.status == 'M_O_F_S_FINISH'">
  270. <button type="button" class="el-button el-button3 cursor-no">
  271. <span>{{$t('数字货币已转到你的账户')}}</span>
  272. </button>
  273. <button type="button" class="el-button complete">
  274. <span>{{$t('查看账户')}}</span>
  275. </button>
  276. </div>
  277. <!-- 买家 已完成 -->
  278. <div class="tips-body" v-if="orderDetails.dealType == 'E_I_D_T_SELL' && orderDetails.status == 'M_O_F_S_FINISH'">
  279. <button type="button" class="el-button el-button3 cursor-no">
  280. <span>{{$t('数字货币已转到买家的账户')}}</span>
  281. </button>
  282. <button type="button" class="el-button complete">
  283. <span>{{$t('查看账户')}}</span>
  284. </button>
  285. </div>
  286. </div>
  287. <div class="tips-text" v-if="orderDetails.appeal">
  288. <h3 class="apeal-text">{{$t('申诉订单处理中')}}...</h3>
  289. </div>
  290. </div>
  291. </div>
  292. </div>
  293. <!-- 买家 待付款 -->
  294. <div class="person-info-right" v-if="orderDetails.dealType == 'E_I_D_T_BUY' && orderDetails.status == 'M_O_F_S_WAIT_PAY' && !orderDetails.appeal">
  295. <div class="chat">
  296. <div class="chat-title">
  297. <span class="chat-title-nickname co-nickname">{{$t('上传付款截图')}}</span>
  298. </div>
  299. <div class="chat-body-div">
  300. <div class="title-tips">{{$t('选择付款方式')}}</div>
  301. <div class="address-form-input choose-payment">
  302. <el-select v-model="payTypeText" @change="choosePayment">
  303. <el-option v-for="(item, index) in paymentList" :key="index" :label="item.label" :value="item.value">
  304. </el-option>
  305. </el-select>
  306. </div>
  307. <div class="title-tips">{{$t('备注')}}</div>
  308. <div class="address-form-input">
  309. <el-input :placeholder="$t('请输入备注')" v-model="payRemark" type="text" clearable autocomplete="off" @keyup.enter.native="submitPay">
  310. </el-input>
  311. </div>
  312. <div class="title-tips">{{$t('请上传付款凭证')}}</div>
  313. <div class="upload-photo" :class="{'hide': payImage}">
  314. <el-upload
  315. :action="this.common.baseURL+'/user/api/file/image'"
  316. :headers="{'Authorization': 'Bearer '+this.common.getItem(common.tokenKey)}"
  317. list-type="picture-card"
  318. accept="image/jpeg,image/gif,image/png"
  319. :file-list="fileList"
  320. :on-success="uploadSuccess"
  321. :on-error="uploadError"
  322. :on-remove="uploadDelete"
  323. >
  324. <i class="el-icon-plus"></i>
  325. </el-upload>
  326. </div>
  327. <div class="pay-submit">
  328. <el-button type="primary" :loading="true" v-if="upload">{{$t('提交中...')}}</el-button>
  329. <el-button type="primary" @click="submitPay" v-else>{{$t('提交')}}</el-button>
  330. </div>
  331. </div>
  332. </div>
  333. </div>
  334. <!-- 买家 待放行 -->
  335. <div class="person-info-right" v-if="orderDetails.dealType == 'E_I_D_T_SELL' && orderDetails.status == 'M_O_F_S_WAIT_PASS' && !orderDetails.appeal">
  336. <div class="chat">
  337. <div class="chat-title">
  338. <span class="chat-title-nickname co-nickname">买家付款截图</span>
  339. </div>
  340. <div class="chat-body-div">
  341. <a :href="payVoucher" target="_blank">
  342. <img :src="payVoucher" style="max-width: 100%;">
  343. </a>
  344. </div>
  345. </div>
  346. </div>
  347. </div>
  348. </div>
  349. </div>
  350. </div>
  351. <!-- 申诉的弹窗 -->
  352. <el-dialog class="user-dialog" :title="$t('订单申诉')" :visible.sync="showAppeal" :before-close="closeAppeal">
  353. <div class="title-tips">{{$t('申诉理由')}}</div>
  354. <div class="address-form-input choose-payment">
  355. <el-select v-model="reasonCodeText" @change="chooseReason">
  356. <el-option v-for="(item, index) in reasonList" :key="index" :label="item.label" :value="item.value">
  357. </el-option>
  358. </el-select>
  359. </div>
  360. <div class="title-tips">{{$t('申诉内容')}}</div>
  361. <div class="address-form-input">
  362. <el-input :placeholder="$t('请输入申诉内容')" v-model="appealContent" type="text" clearable autocomplete="off" @keyup.enter.native="submitAppeal">
  363. </el-input>
  364. </div>
  365. <div class="title-tips">{{$t('上传问题截图')}}</div>
  366. <div class="upload-photo">
  367. <el-upload
  368. :action="this.common.baseURL+'/user/api/file/image'"
  369. :headers="{'Authorization': 'Bearer '+this.common.getItem(common.tokenKey)}"
  370. list-type="picture-card"
  371. accept="image/jpeg,image/gif,image/png"
  372. :file-list="fileList"
  373. :on-success="uploadSuccess2"
  374. :on-error="uploadError"
  375. :on-remove="uploadDelete2"
  376. >
  377. <i class="el-icon-plus"></i>
  378. </el-upload>
  379. </div>
  380. <span slot="footer" class="dialog-footer">
  381. <el-button type="primary" :loading="true" v-if="appealLoading">{{$t('提交中...')}}</el-button>
  382. <el-button type="primary" @click="submitAppeal" v-else>{{$t('确定')}}</el-button>
  383. </span>
  384. </el-dialog>
  385. </div>
  386. </template>
  387. <script>
  388. let count; //全局定义倒计时
  389. export default {
  390. name: 'currencyOrderDetails',
  391. data() {
  392. return {
  393. id: '', //订单id
  394. orderDetails: {}, //订单详情
  395. dealerInfo: {}, //交易方信息
  396. memberPayWayList: [], //支付方式
  397. showPayment: false,
  398. paymentInfo: {},
  399. payVoucher: '', //付款凭证
  400. payMessage: '', //付款留言
  401. fileList: [], //上传插件 上传图片列表
  402. payTypeText: '选择付款方式', //付款方式
  403. payType: '', //付款方式
  404. payImage: '', //付款截图
  405. payRemark: '', //付款留言
  406. upload: false, //上传按钮
  407. showAppeal: false, //申诉弹窗
  408. reasonList: [], //申诉理由列表
  409. reasonCodeText: '请选择理由',
  410. reasonCode: '', //申诉选择的理由
  411. appealContent: '', //申诉内容
  412. fileIds: [], //上传图片列表
  413. appealLoading: '', //提交申诉按钮
  414. countDown: 0, //倒计时时间
  415. }
  416. },
  417. computed: {
  418. paymentList() {
  419. let list = [];
  420. this.memberPayWayList.forEach(item => {
  421. list.push({
  422. value: item.paymentType,
  423. label: item.paymentTypeStr
  424. })
  425. });
  426. return list;
  427. }
  428. },
  429. methods: {
  430. getDetails() { //获取订单详情
  431. this.getAxios('/api/market/order/flow/detail/' + this.id)
  432. .then(data => {
  433. if (data.data.cancel) { //取消
  434. this.orderDetails = data.data.cancel.flowBaseInfo;
  435. }
  436. if (data.data.obligation) { //待付款
  437. this.orderDetails = data.data.obligation.flowBaseInfo;
  438. this.timer(data.data.obligation.seconds);
  439. let list = data.data.obligation.userPaymentVoList;
  440. this.memberPayWayList = list;
  441. }
  442. if (data.data.release) { //待放行
  443. this.orderDetails = data.data.release.flowBaseInfo;
  444. if (data.data.release.paymentVoucherImg) {
  445. this.payVoucher = data.data.release.paymentVoucherImg;
  446. }
  447. this.payMessage = data.data.release.remark;
  448. this.timer(data.data.release.seconds);
  449. }
  450. if (data.data.complaining) { //申诉中
  451. this.orderDetails = data.data.complaining.flowBaseInfo;
  452. }
  453. if (data.data.finish) { //已完成
  454. this.orderDetails = data.data.finish.flowBaseInfo;
  455. }
  456. setTimeout(() => {
  457. this.getDealerInfo(this.orderDetails.dealUserId);
  458. }, 300)
  459. })
  460. },
  461. getDealerInfo(id) { //获取交易对象的信息
  462. this.postAxios('/api/market/order/business/info/' + id)
  463. .then(data => {
  464. this.dealerInfo = data.data;
  465. })
  466. },
  467. getReasonList() { //获取申诉理由
  468. this.getAxios('/api/user/appeal/reason/list')
  469. .then(data => {
  470. let list = data.data;
  471. list.forEach(item => {
  472. this.reasonList.push({
  473. value: item.reasonCode,
  474. label: item.reasonStr
  475. })
  476. });
  477. })
  478. },
  479. timer(seconds) { //倒计时
  480. //剩余时间(秒)
  481. this.countDown = seconds; //倒计时时间
  482. count = setInterval(() => { //开始倒计时
  483. this.countDown--;
  484. if (this.countDown == 0) {
  485. clearInterval(count);
  486. setTimeout(() => {
  487. this.getDetails();
  488. }, 1000);
  489. }
  490. }, 1000);
  491. },
  492. showPaymentInfo(item) { //查看支付方式
  493. this.showPayment = !this.showPayment;
  494. console.log(this.showPayment)
  495. this.paymentInfo = item;
  496. },
  497. copySuccess() {
  498. this.$message.success(this.$t('复制成功!'));
  499. },
  500. choosePayment(value) { //选择付款方式
  501. this.payType = value;
  502. },
  503. chooseReason(value) { //选择申诉理由
  504. this.reasonCode = value;
  505. },
  506. //图片组件
  507. uploadSuccess(res) {
  508. this.payImage = res.data
  509. },
  510. uploadSuccess2(res) {
  511. this.fileIds.push(res.data);
  512. },
  513. uploadDelete() {
  514. this.payImage = '';
  515. },
  516. uploadDelete2() {
  517. },
  518. uploadError(err) { //上传失败
  519. console.log(JSON.stringify(err))
  520. },
  521. //订单操作
  522. submitPay() { //上传付款凭证
  523. if(this.upload) {
  524. return;
  525. }
  526. if(!this.payType) {
  527. this.$message.error(this.$t('请选择付款方式!'));
  528. return;
  529. }
  530. if(!this.payImage) {
  531. this.$message.error(this.$t('请上传付款凭证!'));
  532. return;
  533. }
  534. this.upload = true;
  535. let params = {
  536. flowId: this.id,
  537. paymentType: this.payType,
  538. fileImg: this.payImage,
  539. remark: this.payRemark
  540. }
  541. this.postAxios('/api/market/order/upload/payment', params)
  542. .then(() => {
  543. this.$message.success(this.$t('支付凭证上传成功,请点击确认付款按钮完成支付!'));
  544. this.upload = false;
  545. })
  546. .catch(() => {
  547. this.upload = false;
  548. })
  549. },
  550. confirmPay() { //标记为已支付
  551. this.$confirm(this.$t('恶意点击将冻结帐户!您确定要标记为已支付吗?'), this.$t('提示'), {
  552. cancelButtonText: this.$t('取消'),
  553. confirmButtonText: this.$t('确定'),
  554. type: 'warning'
  555. })
  556. .then(() => {
  557. this.putAxios('/api/market/order/confirm/play/' + this.id)
  558. .then(() => {
  559. this.$message.success('成功标记订单为已支付!');
  560. setTimeout(() => {
  561. this.getDetails();
  562. }, 800);
  563. })
  564. })
  565. },
  566. confirmPass() { //确认放行
  567. this.$confirm(this.$t('请务必登录收款账户确认到账明细,避免因错误点击放行造成财产损失。'), this.$t('提示'), {
  568. cancelButtonText: this.$t('取消'),
  569. confirmButtonText: this.$t('确定放行'),
  570. type: 'warning'
  571. })
  572. .then(() => {
  573. this.putAxios('/api/market/order/confirm/release/' + this.id)
  574. .then(() => {
  575. this.$message.success('放行成功!');
  576. setTimeout(() => {
  577. this.getDetails();
  578. }, 800);
  579. })
  580. })
  581. },
  582. cancleOrder() { //取消订单
  583. this.$confirm(this.$t('您是否确定取消订单?取消的订单无法恢复!'), this.$t('提示'), {
  584. cancelButtonText: this.$t('取消'),
  585. confirmButtonText: this.$t('确定'),
  586. type: 'warning'
  587. })
  588. .then(() => {
  589. this.putAxios('/api/market/order/cancel/' + this.id)
  590. .then(() => {
  591. this.$message.success('订单取消成功!');
  592. setTimeout(() => {
  593. this.getDetails();
  594. }, 800);
  595. })
  596. })
  597. },
  598. openAppeal() { //打开申诉
  599. this.getReasonList();
  600. this.showAppeal = true;
  601. },
  602. submitAppeal() { //提交申诉
  603. if(this.appealLoading) {
  604. return;
  605. }
  606. if(!this.reasonCode) {
  607. this.$message.error(this.$t('请选择申诉理由!'));
  608. return;
  609. }
  610. if(!this.appealContent) {
  611. this.$message.error(this.$t('请输入申诉内容!'));
  612. return;
  613. }
  614. this.appealLoading = true;
  615. let params = {
  616. flowId: this.id,
  617. reasonCode: this.reasonCode,
  618. content: this.appealContent,
  619. fileIds: this.fileIds
  620. }
  621. this.postAxios('/api/user/appeal/submit', params)
  622. .then(() => {
  623. this.$message.success('申诉成功,请耐心等待申诉结果!');
  624. setTimeout(() => {
  625. this.closeAppeal();
  626. this.getDetails();
  627. }, 800)
  628. })
  629. .catch(() => {
  630. this.loading = false;
  631. })
  632. },
  633. closeAppeal() { //关闭申诉
  634. this.showAppeal = false;
  635. //清除数据
  636. this.appealContent = '';
  637. this.reasonCode = '';
  638. this.fileIds = [];
  639. this.fileList = [];
  640. },
  641. },
  642. created() {
  643. this.id = this.$route.params.id;
  644. this.getDetails();
  645. }
  646. }
  647. </script>
  648. <style scoped>
  649. .pay-submit{
  650. width: 100%;
  651. clear: both;
  652. padding-top: 20px;
  653. }
  654. .apeal-text {
  655. font-size: 14px;
  656. color: #8488f5;
  657. text-align: center;
  658. padding: 30px 0;
  659. }
  660. </style>