铝交易,微信公众号
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.

394 lines
9.7 KiB

10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
  1. <template>
  2. <view class="registerShop">
  3. <navbar :title="$t('other.domesticCustomsClearanceApplication')" leftClick @leftClick="$utils.navigateBack" />
  4. <view class="frame">
  5. <!--基本信息-->
  6. <view class="basicInfo">
  7. <!--用户名-->
  8. <view class="item">
  9. <view>{{ $t('components.username') }}</view>
  10. <view>
  11. <input v-model="form.userName" :placeholder="$t('components.enterUserName')" clearable></input>
  12. </view>
  13. </view>
  14. <!--密码-->
  15. <view class="item">
  16. <view>{{ $t('components.password') }}</view>
  17. <view>
  18. <input v-model="form.password" password clearable
  19. :placeholder="$t('components.enterYourPassword')" clearable></input>
  20. </view>
  21. </view>
  22. <!--公司名称-->
  23. <view class="item">
  24. <view>{{ $t('other.companyName') }}</view>
  25. <view>
  26. <input v-model="form.companyName" :placeholder="$t('other.enterCompanyName')"
  27. clearable></input>
  28. </view>
  29. </view>
  30. <!--税收编码-->
  31. <view class="item">
  32. <view>{{ $t('other.taxCode') }}</view>
  33. <view>
  34. <input v-model="form.taxCode" :placeholder="$t('other.enterTaxCode')" clearable></input>
  35. </view>
  36. </view>
  37. <!--公司地址-->
  38. <view class="item">
  39. <view>{{ $t('other.companyAddress') }}</view>
  40. <view>
  41. <input v-model="form.address" :placeholder="$t('other.enterCompanyAddress')" clearable></input>
  42. </view>
  43. </view>
  44. <!--dian-->
  45. <view class="item">
  46. <view>{{ $t('components.lxPhone') }}</view>
  47. <view>
  48. <input v-model="form.phone" :placeholder="$t('components.plePhoneNumber')" clearable></input>
  49. </view>
  50. </view>
  51. <view class="item">
  52. <view>{{ $t('other.companyAccount') }}</view>
  53. <view>
  54. <input v-model="form.bankAccount" :placeholder="$t('other.enterCompanyAccount')"
  55. clearable></input>
  56. </view>
  57. </view>
  58. <view class="item">
  59. <view>{{ $t('components.bankName') }}</view>
  60. <view>
  61. <input v-model="form.bankNama" :placeholder="$t('components.enterBankName')" clearable></input>
  62. </view>
  63. </view>
  64. </view>
  65. <!--证件信息-->
  66. <view class="certificateInfo">
  67. <!--营业执照-->
  68. <view class="certificateInfoItem">
  69. <view class="title">
  70. <span
  71. style="width: 10rpx;height: 40rpx;background-color: #f78142;border-radius: 10rpx;overflow: hidden;"></span>
  72. <span>{{ $t('components.businessLicense') }}</span>
  73. </view>
  74. <view class="upload">
  75. <uv-upload :fileList="yyzzfileList" :maxCount="4" multiple width="150rpx" height="150rpx"
  76. @delete="(file) => deleteImage(0, file)" @afterRead="(file) => afterRead(0, file)"
  77. :previewFullImage="true"></uv-upload>
  78. </view>
  79. </view>
  80. <!--基本户信息-->
  81. <view class="certificateInfoItem">
  82. <view class="title">
  83. <span
  84. style="width: 10rpx;height: 40rpx;background-color: #f78142;border-radius: 10rpx;overflow: hidden;"></span>
  85. <span>{{ $t('components.basicAccountInfo') }}</span>
  86. </view>
  87. <view class="upload">
  88. <uv-upload :fileList="jbhxxfileList" :maxCount="4" multiple width="150rpx" height="150rpx"
  89. @delete="(file) => deleteImage(1, file)" @afterRead="(file) => afterRead(1, file)"
  90. :previewFullImage="true"></uv-upload>
  91. </view>
  92. </view>
  93. <!--收款银行-->
  94. <view class="certificateInfoItem">
  95. <view class="title">
  96. <span
  97. style="width: 10rpx;height: 40rpx;background-color: #f78142;border-radius: 10rpx;overflow: hidden;"></span>
  98. <span>{{ $t('components.receivingBank') }}</span>
  99. </view>
  100. <view class="upload">
  101. <uv-upload :fileList="skyhfileList" :maxCount="4" multiple width="150rpx" height="150rpx"
  102. @delete="(file) => deleteImage(2, file)" @afterRead="(file) => afterRead(2, file)"
  103. :previewFullImage="true"></uv-upload>
  104. </view>
  105. </view>
  106. </view>
  107. </view>
  108. <view class="bottom">
  109. <view class="btns">
  110. <span @click="applyReview" class="sqsh">
  111. {{ $t('components.submitReview') }}
  112. </span>
  113. <span @click="$refs.customerServicePopup.open()" class="lxwm">
  114. {{ $t('components.contactUs') }}
  115. </span>
  116. </view>
  117. <view class="others">
  118. <span @click="$refs.popup.open('zcxz')" class="zcxz">
  119. {{ $t('components.registrationNotice') }}
  120. </span>
  121. <span @click="$refs.popup.open('kjht')" class="kjhtyl">
  122. {{ $t('other.frameworkContractPreview') }}
  123. </span>
  124. </view>
  125. </view>
  126. <!-- 联系客服弹框 -->
  127. <customerServicePopup ref="customerServicePopup" />
  128. <configPopup ref="popup"></configPopup>
  129. </view>
  130. </template>
  131. <script>
  132. import customerServicePopup from "@/components/config/customerServicePopup.vue";
  133. export default {
  134. components: {customerServicePopup},
  135. // onLoad(option) {
  136. // this.titleIndex = option.identity
  137. // },
  138. data() {
  139. return {
  140. // titleIndex: 0,
  141. // titleList: [
  142. // // 采购商注册 供应商注册 国内清关申请
  143. // this.$t('other.buyerRegistration'),
  144. // this.$t('other.supplierRegistration'),
  145. // this.$t('other.domesticCustomsClearanceApplication')
  146. // ],
  147. form: {
  148. "address": "",
  149. "bankAccount": "",
  150. "bankInfo": "",
  151. "bankNama": "",
  152. "basicAccount": "",
  153. "businessLicense": "",
  154. "companyName": "",
  155. "id": "",
  156. "password": "",
  157. "phone": "",
  158. "role": 0,
  159. "taxCode": "",
  160. "userName": ""
  161. },
  162. yyzzfileList: [],
  163. jbhxxfileList: [],
  164. skyhfileList: [],
  165. }
  166. },
  167. methods: {
  168. // 申请审核
  169. applyReview() {
  170. this.form.basicAccount = this.jbhxxfileList.map((item) => item.url).join(",") //基本户信息照片上传
  171. this.form.bankInfo = this.skyhfileList.map((item) => item.url).join(",") //收款银行照片上传
  172. this.form.businessLicense = this.yyzzfileList.map((item) => item.url).join(",") //营业执照上传
  173. if(this.$utils.verificationAll(this.form, {
  174. "userName": this.$t('components.enterUserName'),
  175. "password": this.$t('components.enterYourPassword'),
  176. "companyName": this.$t('other.enterCompanyName'),
  177. "taxCode": this.$t('other.enterTaxCode'),
  178. "address": this.$t('other.enterCompanyAddress'),
  179. "phone": this.$t('components.plePhoneNumber'),
  180. "bankAccount": this.$t('other.enterCompanyAccount'),
  181. "bankNama": this.$t('components.enterBankName'),
  182. "businessLicense": '请上传营业执照',
  183. "basicAccount": '请上传基本户信息照片',
  184. "bankInfo": '请上传收款银行照片',
  185. })){
  186. return
  187. }
  188. this.$api('addCustoms', this.form, res => {
  189. if (res.code == 200) {
  190. uni.redirectTo({
  191. url: '/pages/index/clearanceService'
  192. })
  193. }
  194. })
  195. },
  196. // 上传图片
  197. afterRead(type, e) {
  198. let self = this
  199. e.file.forEach(file => {
  200. self.$Oss.ossUpload(file.url).then(url => {
  201. if (type == 0) {
  202. self.yyzzfileList.push({
  203. url
  204. })
  205. } else if (type == 1) {
  206. self.jbhxxfileList.push({
  207. url
  208. })
  209. } else if (type == 2) {
  210. self.skyhfileList.push({
  211. url
  212. })
  213. }
  214. })
  215. })
  216. },
  217. // 删除图片
  218. deleteImage(type, e) {
  219. console.log(e, type, "===========")
  220. if (type == 0) {
  221. this.yyzzfileList.splice(e.index, 1)
  222. } else if (type == 1) {
  223. this.jbhxxfileList.splice(e.index, 1)
  224. } else if (type == 2) {
  225. this.skyhfileList.splice(e.index, 1)
  226. }
  227. },
  228. }
  229. }
  230. </script>
  231. <style scoped lang="scss">
  232. .registerShop {
  233. .frame {
  234. height: 79vh;
  235. overflow: auto;
  236. .basicInfo {
  237. display: flex;
  238. flex-direction: column;
  239. gap: 5rpx;
  240. background-color: #FFF;
  241. margin-top: 20rpx;
  242. padding: 20rpx;
  243. .item {
  244. display: flex;
  245. align-items: center;
  246. background-color: #FFF;
  247. height: 80rpx;
  248. // margin: 10rpx 0 0 0;
  249. padding: 10rpx 0 0 20rpx;
  250. >view:nth-of-type(1) {
  251. width: 30%;
  252. // font-weight: 700;
  253. }
  254. >view:nth-of-type(2) {
  255. width: 70%;
  256. border-radius: 10rpx;
  257. overflow: hidden;
  258. input {
  259. background-color: #f5f5f5;
  260. font-size: 28rpx;
  261. padding: 16rpx 8rpx 16rpx 15rpx;
  262. }
  263. }
  264. }
  265. }
  266. .certificateInfo {
  267. display: flex;
  268. flex-direction: column;
  269. gap: 20rpx;
  270. background-color: #FFF;
  271. margin-top: 20rpx;
  272. padding: 20rpx;
  273. .certificateInfoItem {
  274. .title {
  275. display: flex;
  276. // padding-top: 40rpx;
  277. font-size: 30rpx;
  278. font-weight: 700;
  279. padding: 0 0 0 20rpx;
  280. >span:nth-of-type(1) {
  281. margin: 4rpx 0 0 8rpx;
  282. background-color: #FFF;
  283. }
  284. >span:nth-of-type(2) {
  285. margin: 0 0 0 8rpx;
  286. background-color: #FFF;
  287. }
  288. }
  289. .upload {
  290. margin: 5rpx 0 0 40rpx;
  291. }
  292. }
  293. }
  294. }
  295. .bottom {
  296. position: fixed;
  297. bottom: 10rpx;
  298. left: 0;
  299. right: 0;
  300. background-color: #FFF;
  301. .btns {
  302. display: flex;
  303. justify-content: center;
  304. align-items: center;
  305. gap: 40rpx;
  306. .sqsh {
  307. display: flex;
  308. align-items: center;
  309. justify-content: center;
  310. width: 40%;
  311. height: 70rpx;
  312. border-radius: 40rpx;
  313. color: white;
  314. font-size: 28rpx;
  315. margin: 20rpx 10rpx 0 0;
  316. background: #293143;
  317. //margin-top: 20rpx;
  318. border-radius: 40rpx;
  319. }
  320. .lxwm {
  321. display: flex;
  322. align-items: center;
  323. justify-content: center;
  324. width: 40%;
  325. height: 70rpx;
  326. border-radius: 40rpx;
  327. color: #000000;
  328. font-size: 28rpx;
  329. margin: 20rpx 10rpx 0 0;
  330. background: #f2f2f2;
  331. //margin-top: 20rpx;
  332. border-radius: 40rpx;
  333. }
  334. }
  335. .others {
  336. margin: 20rpx 0;
  337. display: flex;
  338. justify-content: center;
  339. align-items: center;
  340. gap: 200rpx;
  341. color: #707070;
  342. font-size: 24rpx;
  343. .zcxz {
  344. text-decoration: underline;
  345. }
  346. .kjhtyl {
  347. text-decoration: underline;
  348. }
  349. }
  350. }
  351. }
  352. </style>