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

422 lines
10 KiB

4 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
4 months ago
3 months ago
3 months ago
1 day ago
3 months ago
1 day ago
3 months ago
3 months ago
3 months ago
4 months ago
3 months ago
3 months ago
3 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. onLoad() {
  168. this.myCustoms()
  169. },
  170. methods: {
  171. myCustoms(){
  172. this.$api('myCustoms', res => {
  173. if(res.code == 200 && res.result){
  174. this.form = res.result
  175. delete this.form.id
  176. this.jbhxxfileList = this.form.basicAccount ? this.form.basicAccount.split(',').map(url => {
  177. return {
  178. url
  179. }
  180. }) : []
  181. this.skyhfileList = this.form.bankInfo ? this.form.bankInfo.split(',').map(url => {
  182. return {
  183. url
  184. }
  185. }) : []
  186. this.yyzzfileList = this.form.businessLicense ? this.form.businessLicense.split(',').map(url => {
  187. return {
  188. url
  189. }
  190. }) : []
  191. }
  192. })
  193. },
  194. // 申请审核
  195. applyReview() {
  196. this.form.basicAccount = this.jbhxxfileList.map((item) => item.url).join(",") //基本户信息照片上传
  197. this.form.bankInfo = this.skyhfileList.map((item) => item.url).join(",") //收款银行照片上传
  198. this.form.businessLicense = this.yyzzfileList.map((item) => item.url).join(",") //营业执照上传
  199. if(this.$utils.verificationAll(this.form, {
  200. "userName": this.$t('components.enterUserName'),
  201. "password": this.$t('components.enterYourPassword'),
  202. "companyName": this.$t('other.enterCompanyName'),
  203. "taxCode": this.$t('other.enterTaxCode'),
  204. "address": this.$t('other.enterCompanyAddress'),
  205. "phone": this.$t('components.plePhoneNumber'),
  206. "bankAccount": this.$t('other.enterCompanyAccount'),
  207. "bankNama": this.$t('components.enterBankName'),
  208. "businessLicense": '请上传营业执照',
  209. "basicAccount": '请上传基本户信息照片',
  210. "bankInfo": '请上传收款银行照片',
  211. })){
  212. return
  213. }
  214. this.$api('addCustoms', this.form, res => {
  215. if (res.code == 200) {
  216. uni.redirectTo({
  217. url: '/pages/index/clearanceService'
  218. })
  219. }
  220. })
  221. },
  222. // 上传图片
  223. afterRead(type, e) {
  224. let self = this
  225. e.file.forEach(file => {
  226. self.$Oss.ossUpload(file.url).then(url => {
  227. if (type == 0) {
  228. self.yyzzfileList.push({
  229. url
  230. })
  231. } else if (type == 1) {
  232. self.jbhxxfileList.push({
  233. url
  234. })
  235. } else if (type == 2) {
  236. self.skyhfileList.push({
  237. url
  238. })
  239. }
  240. })
  241. })
  242. },
  243. // 删除图片
  244. deleteImage(type, e) {
  245. console.log(e, type, "===========")
  246. if (type == 0) {
  247. this.yyzzfileList.splice(e.index, 1)
  248. } else if (type == 1) {
  249. this.jbhxxfileList.splice(e.index, 1)
  250. } else if (type == 2) {
  251. this.skyhfileList.splice(e.index, 1)
  252. }
  253. },
  254. }
  255. }
  256. </script>
  257. <style scoped lang="scss">
  258. .registerShop {
  259. .frame {
  260. height: 79vh;
  261. overflow: auto;
  262. .basicInfo {
  263. display: flex;
  264. flex-direction: column;
  265. gap: 5rpx;
  266. background-color: #FFF;
  267. margin-top: 20rpx;
  268. padding: 20rpx;
  269. .item {
  270. display: flex;
  271. align-items: center;
  272. background-color: #FFF;
  273. height: 80rpx;
  274. // margin: 10rpx 0 0 0;
  275. padding: 10rpx 0 0 20rpx;
  276. >view:nth-of-type(1) {
  277. width: 30%;
  278. // font-weight: 700;
  279. }
  280. >view:nth-of-type(2) {
  281. width: 70%;
  282. border-radius: 10rpx;
  283. overflow: hidden;
  284. input {
  285. background-color: #f5f5f5;
  286. font-size: 28rpx;
  287. padding: 16rpx 8rpx 16rpx 15rpx;
  288. }
  289. }
  290. }
  291. }
  292. .certificateInfo {
  293. display: flex;
  294. flex-direction: column;
  295. gap: 20rpx;
  296. background-color: #FFF;
  297. margin-top: 20rpx;
  298. padding: 20rpx;
  299. .certificateInfoItem {
  300. .title {
  301. display: flex;
  302. // padding-top: 40rpx;
  303. font-size: 30rpx;
  304. font-weight: 700;
  305. padding: 0 0 0 20rpx;
  306. >span:nth-of-type(1) {
  307. margin: 4rpx 0 0 8rpx;
  308. background-color: #FFF;
  309. }
  310. >span:nth-of-type(2) {
  311. margin: 0 0 0 8rpx;
  312. background-color: #FFF;
  313. }
  314. }
  315. .upload {
  316. margin: 5rpx 0 0 40rpx;
  317. }
  318. }
  319. }
  320. }
  321. .bottom {
  322. position: fixed;
  323. bottom: 10rpx;
  324. left: 0;
  325. right: 0;
  326. background-color: #FFF;
  327. .btns {
  328. display: flex;
  329. justify-content: center;
  330. align-items: center;
  331. gap: 40rpx;
  332. .sqsh {
  333. display: flex;
  334. align-items: center;
  335. justify-content: center;
  336. width: 40%;
  337. height: 70rpx;
  338. border-radius: 40rpx;
  339. color: white;
  340. font-size: 28rpx;
  341. margin: 20rpx 10rpx 0 0;
  342. background: #293143;
  343. //margin-top: 20rpx;
  344. border-radius: 40rpx;
  345. }
  346. .lxwm {
  347. display: flex;
  348. align-items: center;
  349. justify-content: center;
  350. width: 40%;
  351. height: 70rpx;
  352. border-radius: 40rpx;
  353. color: #000000;
  354. font-size: 28rpx;
  355. margin: 20rpx 10rpx 0 0;
  356. background: #f2f2f2;
  357. //margin-top: 20rpx;
  358. border-radius: 40rpx;
  359. }
  360. }
  361. .others {
  362. margin: 20rpx 0;
  363. display: flex;
  364. justify-content: center;
  365. align-items: center;
  366. gap: 200rpx;
  367. color: #707070;
  368. font-size: 24rpx;
  369. .zcxz {
  370. text-decoration: underline;
  371. }
  372. .kjhtyl {
  373. text-decoration: underline;
  374. }
  375. }
  376. }
  377. }
  378. </style>