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

433 lines
10 KiB

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