金诚优选前端代码
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.

215 lines
5.3 KiB

  1. <template>
  2. <view id="invoice">
  3. <view class="header_box">
  4. <view class="item">
  5. <view class="name">
  6. 发票类型
  7. </view>
  8. <view class="name">
  9. 纸质发票
  10. </view>
  11. </view>
  12. <view class="item">
  13. <view class="name">
  14. 抬头类型
  15. </view>
  16. <view class="type">
  17. <radio-group @change="change($event)" style="display: flex;">
  18. <view class="type-item">
  19. <label class="checkbox" style="margin-right:10px;">
  20. <radio checked="true" value="personal" color="#FB5054" style="transform: scale(0.7)"/>
  21. <text>个人</text>
  22. </label>
  23. </view>
  24. <view class="type-item">
  25. <label class="checkbox">
  26. <radio value="enterprise" color="#FB5054" style="transform: scale(0.7)"/>
  27. <text>单位</text>
  28. </label>
  29. </view>
  30. </radio-group>
  31. </view>
  32. </view>
  33. <view class="item">
  34. <view class="name">发票抬头</view>
  35. <view class="input-box">
  36. <input type="text" placeholder="抬头名称" placeholder-class="input-placeholder" v-model="name" />
  37. </view>
  38. <view class="iconfont icon-jiantou">
  39. </view>
  40. </view>
  41. <view class="item">
  42. <view class="name">
  43. 是否设置默认抬头
  44. </view>
  45. <view class="switch-box">
  46. <switch checked color="#FF2741" style="transform: scale(0.7,0.7)" />
  47. </view>
  48. </view>
  49. <!-- 企业的选择 -->
  50. <view class="conpany" v-if="type == 'enterprise'">
  51. <view class="item">
  52. <view class="name">税号</view>
  53. <view class="input-box">
  54. <input type="text" placeholder="纳税人识别号" placeholder-class="input-placeholder" v-model="number" />
  55. </view>
  56. </view>
  57. <view class="item">
  58. <view class="name">开户银行</view>
  59. <view class="input-box">
  60. <input type="text" placeholder="选填" placeholder-class="input-placeholder" v-model="bank" />
  61. </view>
  62. </view>
  63. <view class="item">
  64. <view class="name">银行账号</view>
  65. <view class="input-box">
  66. <input type="text" placeholder="选填" placeholder-class="input-placeholder" v-model="bank_number" />
  67. </view>
  68. </view>
  69. <view class="item">
  70. <view class="name">企业地址</view>
  71. <view class="input-box">
  72. <input type="text" placeholder="选填" placeholder-class="input-placeholder" v-model="address" />
  73. </view>
  74. </view>
  75. <view class="item">
  76. <view class="name">企业电话</view>
  77. <view class="input-box">
  78. <input type="text" placeholder="选填" placeholder-class="input-placeholder" v-model="phone" />
  79. </view>
  80. </view>
  81. </view>
  82. </view>
  83. <view class="content">
  84. <view class="detail">
  85. <view class="name">发票明细:</view>
  86. </view>
  87. <view class="tips">
  88. 开票金额为用户实际支付金额不含礼品卡优惠券积分抵扣
  89. </view>
  90. </view>
  91. <view class="content" @click="jumpback">
  92. <view class="detail">
  93. <view class="name">本次不开具发票继续下单</view>
  94. <view class="iconfont icon--xiangyoujiantou"></view>
  95. </view>
  96. </view>
  97. <!-- 完成按钮 -->
  98. <view class="btn-box" @click="submit">完成</view>
  99. </view>
  100. </template>
  101. <script>
  102. export default {
  103. data() {
  104. return {
  105. type: 'personal', //发票;类型
  106. name: '', //发票抬头
  107. number: '', //税号
  108. bank: '', //开户银行
  109. bank_number: '', //银行账号,
  110. phone: '', //企业电话
  111. address: '', //企业地址
  112. }
  113. },
  114. onLoad() {
  115. },
  116. onShow() {
  117. },
  118. methods: {
  119. change(e) {
  120. this.type = e.detail.value;
  121. },
  122. // 点击完成时候所完成的动作
  123. submit() {
  124. var message = '';
  125. if (this.type == 'personal') {
  126. if (this.name) {
  127. var data = {
  128. type: 'personal',
  129. name: this.name
  130. }
  131. this.addInvoiceInfo(data);
  132. } else {
  133. message = "请输入抬头名称"
  134. wx.showModal({
  135. content: message,
  136. showCancel: false
  137. })
  138. return
  139. }
  140. }
  141. if (this.type == 'enterprise') {
  142. if(!this.name){
  143. message = "请输入抬头名称"
  144. wx.showModal({
  145. content: message,
  146. showCancel: false
  147. })
  148. return
  149. }
  150. var regExp = /^([1-9]{1})(\d{15}|\d{18})$/;
  151. if (!this.number) {
  152. message = "请输入纳税人识别号"
  153. wx.showModal({
  154. content: message,
  155. showCancel: false
  156. })
  157. return
  158. }
  159. if (this.bank_number) {
  160. if (!regExp.test(this.bank_number)) {
  161. message = "请输入正确的银行卡号",
  162. wx.showModal({
  163. content: message,
  164. showCancel: false
  165. })
  166. return
  167. }
  168. }
  169. var data = {
  170. type: 'enterprise',
  171. name:this.name,
  172. number: this.number,
  173. bank: this.bank,
  174. bank_number: this.bank_number,
  175. phone: this.phone,
  176. address: this.address
  177. }
  178. this.addInvoiceInfo(data);
  179. }
  180. },
  181. // 向后端发送发票信息
  182. addInvoiceInfo(info) {
  183. var data = this.$cookieStorage.get('order_form');
  184. data.invoice = info;
  185. this.$cookieStorage.set('order_form', data);
  186. wx.navigateBack();
  187. },
  188. // 返回
  189. jumpback(){
  190. var data = this.$cookieStorage.get('order_form');
  191. data.invoice = "";
  192. this.$cookieStorage.set('order_form', data);
  193. wx.navigateBack();
  194. }
  195. }
  196. }
  197. </script>
  198. <style rel="stylesheet/less" lang="less">
  199. @import "invoice";
  200. </style>