移动端
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

companyRegister.vue 11 KiB

před 4 roky
před 3 roky
před 4 roky
před 3 roky
před 4 roky
před 3 roky
před 2 roky
před 3 roky
před 2 roky
před 3 roky
před 2 roky
před 3 roky
před 2 roky
před 2 roky
před 2 roky
před 2 roky
před 2 roky
před 2 roky
před 2 roky
před 2 roky
před 2 roky
před 4 roky
před 2 roky
před 4 roky
před 3 roky
před 2 roky
před 4 roky
před 3 roky
před 4 roky
před 3 roky
před 2 roky
před 3 roky
před 2 roky
před 3 roky
před 2 roky
před 4 roky
před 3 roky
před 2 roky
před 3 roky
před 4 roky
před 3 roky
před 2 roky
před 2 roky
před 2 roky
před 3 roky
před 2 roky
před 2 roky
před 3 roky
před 2 roky
před 2 roky
před 2 roky
před 3 roky
před 4 roky
před 3 roky
před 4 roky
před 2 roky
před 4 roky
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338
  1. <template>
  2. <div class="app-container" :style="{height:height+'px'}">
  3. <van-nav-bar
  4. title="单位用户注册"
  5. left-arrow
  6. fixed
  7. placeholder
  8. @click-left="onClickLeft"
  9. />
  10. <van-form @submit="getSubmit">
  11. <van-popup v-model="showPicker" position="bottom">
  12. <van-picker
  13. show-toolbar
  14. :columns="columns"
  15. @confirm="onConfirm"
  16. @cancel="showPicker = false"
  17. />
  18. </van-popup>
  19. <van-field v-model="form.phone" type="tel" label="手机号" placeholder="请输入手机号,作为登录账号!" required :rules="[{ required:true }]" />
  20. <van-field v-model="form.password" type="password" label="密码" placeholder="请输入密码" required :rules="[{ required:true }]"/>
  21. <van-field v-model="confirmPassWord" type="password" label="确认密码" placeholder="请再次输入密码" required :rules="[{ required:true }]"/>
  22. <van-field readonly clickable name="picker" :value="value" label="经济类型" placeholder="点击选择经济类型" @click="showPicker = true" required :rules="[{ required:true }]"/>
  23. <van-field v-model="form.companyName" label="公司名称" placeholder="请输入公司名称" required :rules="[{ required:true }]"/>
  24. <van-field v-model="form.realname" label="负责人姓名" placeholder="请输入负责人姓名" required :rules="[{ required:true }]"/>
  25. <van-field v-model="form.idCardNum" label="身份证号" placeholder="请输入法人身份证号" required :rules="[{ required:true }]"/>
  26. <van-field v-model="form.companyCode" label="社会信用代码" placeholder="请输入公司的社会信用代码" required :rules="[{ required:true }]"/>
  27. <van-field v-model="form.companyLicense" label="营业执照号" placeholder="请输入公司的营业执照号" required :rules="[{ required:true }]"/>
  28. <van-field v-model="form.address" label="联系地址" placeholder="请输入联系地址" />
  29. <van-field name="uploader" label="开户证明" required>
  30. <template #input>
  31. <van-uploader :after-read="afterReadKHZM" :before-delete="deleteFileKHZM" v-model="fileListKHZM" multiple :max-count="1" />
  32. </template>
  33. </van-field>
  34. <van-divider>银行信息</van-divider>
  35. <van-field v-model="form.bankCardName" label="开户姓名" placeholder="请输入姓名" required :rules="[{ required:true }]"/>
  36. <van-field v-model="form.bankCardNum" label="开户账号" placeholder="请输入开户账号" required :rules="[{ required:true }]"/>
  37. <van-field
  38. v-model="accountType"
  39. is-link
  40. readonly
  41. required
  42. :rules="[{ required:true }]"
  43. label="账户类型"
  44. placeholder="请选择账户类型"
  45. @click="showAccountType = true"
  46. />
  47. <van-popup v-model:show="showAccountType" position="bottom">
  48. <van-picker
  49. show-toolbar
  50. value-key="dictLabel"
  51. :columns="accountTypeOption"
  52. @confirm="onConfirmAccountType"
  53. @cancel="showAccountType = false"
  54. />
  55. </van-popup>
  56. <van-field
  57. v-model="bankType"
  58. is-link
  59. readonly
  60. required
  61. :rules="[{ required:true }]"
  62. label="所属银行"
  63. placeholder="请选择所属银行"
  64. @click="showBankType = true"
  65. />
  66. <van-popup v-model:show="showBankType" position="bottom">
  67. <van-picker
  68. show-toolbar
  69. value-key="dictLabel"
  70. :columns="bankTypeOption"
  71. @confirm="onConfirmBankType"
  72. @cancel="showArea = false"
  73. />
  74. </van-popup>
  75. <van-field
  76. v-model="sheng"
  77. is-link
  78. readonly
  79. label="开户省市"
  80. placeholder="请选择开户省市"
  81. @click="showSheng = true"
  82. />
  83. <van-popup v-model:show="showSheng" position="bottom">
  84. <van-picker
  85. show-toolbar
  86. value-key="label"
  87. :columns="shengOption"
  88. @confirm="onConfirmSheng"
  89. @cancel="showSheng = false"
  90. />
  91. </van-popup>
  92. <van-field v-model="form.bankDeposit" label="关键词" placeholder="请输入开户行地址关键词"/>
  93. <van-field
  94. v-model="form.bankAddress"
  95. label="开户银行"
  96. placeholder="需上边设置【开户省市、关键词】后检索"
  97. required
  98. :rules="[{ required:true }]"
  99. readonly
  100. @click="showBankAddress = true"
  101. >
  102. <template #button>
  103. <van-button size="small" type="primary" native-type="button" @click="searchBankAddress">点击检索</van-button>
  104. </template>
  105. </van-field>
  106. <van-popup v-model:show="showBankAddress" position="bottom">
  107. <van-picker
  108. show-toolbar
  109. value-key="bankDeposit"
  110. :columns="bankAddressOption"
  111. @confirm="onConfirmBankAddress"
  112. @cancel="showBankAddress = false"
  113. />
  114. </van-popup>
  115. <van-field v-model="form.payeePaymentLines" label="联行号" placeholder="开户银行选定后,自动填充!" required :rules="[{ required:true }]"/>
  116. <van-field v-model="form.code" center clearable label="验证码" placeholder="图形验证码" required :rules="[{ required:true }]">
  117. <template #button>
  118. <img class="code-img" :src="codeUrl" @click="getCode" />
  119. </template>
  120. </van-field>
  121. <div class="submit">
  122. <!-- <p>我已阅读并同意<span>《农村产权交易信息服务平台会员注册协议》</span></p>-->
  123. <van-button round block type="info" color="#007E72" native-type="submit">立即注册</van-button>
  124. </div>
  125. </van-form>
  126. </div>
  127. </template>
  128. <script>
  129. import { getCodeImg } from "@/api/login";
  130. import {base64Upload, realtimeBackList, userRegister} from "@/api/register/index";
  131. import {options} from "@/api/user";
  132. export default {
  133. name: "companyRegister",
  134. data() {
  135. return {
  136. height:0,
  137. tel:'',
  138. value:'',
  139. confirmPassWord:'',
  140. showPicker: false,
  141. columns:[],
  142. fileListKHZM:[],
  143. form: {
  144. phone: "", //账号
  145. code: "", //验证码
  146. password: "", //密码
  147. realname: "", //姓名
  148. idCardNum: "", //身份证号
  149. address: "", //地址
  150. uuid:'',//图形验证码ID
  151. memberType:2,
  152. economicType:1,
  153. companyName:'',
  154. companyLicense:'',
  155. companyCode:'',
  156. bankCardName:'',
  157. bankCardNum:'',
  158. bankAddress:'',
  159. },
  160. codeUrl:'',
  161. hcAreaInfoFieldName: {
  162. text: "label",
  163. value: "value",
  164. children: "children",
  165. },
  166. bankTypeOption:[],
  167. sheng:'',
  168. shi:'',
  169. bankType:'',
  170. accountType:'',
  171. bankDeposit:'',
  172. showBankType:false,
  173. showSheng :false,
  174. shengOption:options,
  175. showShi :false,
  176. shiOption:[],
  177. showBankAddress :false,
  178. accountTypeOption:[],
  179. showAccountType :false,
  180. bankAddressOption:[],
  181. };
  182. },
  183. created() {
  184. this.getCode();
  185. this.getDicts("bank_type_all").then(response => {
  186. this.bankTypeOption = response.data;
  187. });
  188. this.getDicts("bank_account_type").then(response => {
  189. this.accountTypeOption = response.data;
  190. });
  191. this.getDicts("economic_type").then(res => {
  192. res.data.map(item => {
  193. this.columns.push(item.dictLabel);
  194. });
  195. });
  196. this.height = document.body.clientHeight
  197. },
  198. methods: {
  199. getCode() {
  200. getCodeImg().then((res) => {
  201. this.form.uuid = res.uuid;
  202. this.codeUrl = "data:image/gif;base64," + res.img;
  203. });
  204. },
  205. onConfirm(value, index) {
  206. this.value = value;
  207. this.showPicker = false;
  208. this.form.supplyDemandType = index + 1 ;
  209. },
  210. getSubmit(){
  211. console.log(this.form)
  212. if (this.form.password!= this.confirmPassWord){
  213. this.$toast({
  214. icon: 'error', // 找到自己需要的图标
  215. message: '两次密码输入不一致',
  216. duration:"2000",
  217. onClose:function(){
  218. }
  219. })
  220. return;
  221. }
  222. if (this.form.accountOpenCert == ''){
  223. this.$toast({
  224. icon: 'error', // 找到自己需要的图标
  225. message: '请上传开户证明',
  226. duration:"2000",
  227. onClose:function(){
  228. }
  229. })
  230. return;
  231. }
  232. this.form.accountType = '1';
  233. var that = this
  234. userRegister(this.form).then((res) => {
  235. this.$toast({
  236. icon: 'success', // 找到自己需要的图标
  237. message: '注册成功',
  238. duration:"2000",
  239. onClose:function(){
  240. that.$router.push({path: '/login'})
  241. }
  242. })
  243. });
  244. },
  245. afterReadKHZM(file) {
  246. this.$toast.loading({
  247. message: "上传中...",
  248. forbidClick: true,
  249. duration: 0,
  250. });
  251. // 此时可以自行将文件上传至服务器
  252. let params1 = new FormData();
  253. params1.append("file", file.content);
  254. base64Upload(params1).then((r1) => {
  255. this.form.accountOpenCert = r1.fileName;
  256. })
  257. },
  258. deleteFileKHZM(elIndex){
  259. return (file, name) => {
  260. let fileIndex = name.index
  261. this.fileListKHZM[elIndex].splice(fileIndex, 1)
  262. this.form.accountOpenCert = '';
  263. }
  264. },
  265. searchBankAddress(){
  266. let data = {
  267. sheng:this.form.sheng,
  268. shi:this.form.shi,
  269. bankType:this.form.bankType,
  270. bankDeposit:this.form.bankDeposit,
  271. }
  272. realtimeBackList(data).then(response => {
  273. console.log(response)
  274. this.bankAddressOption = response.data;
  275. });
  276. },
  277. onConfirmBankType(value){
  278. this.showBankType = false;
  279. this.form.bankAddress = '';
  280. this.form.payeePaymentLines = '';
  281. this.bankType = value.dictLabel;
  282. this.form.bankType = value.dictValue;
  283. },
  284. onConfirmSheng(value){
  285. console.log(value)
  286. this.showSheng = false;
  287. this.form.sheng = value[0];
  288. this.form.shi = value[1];
  289. this.sheng = value.join('/');
  290. },
  291. onConfirmBankAddress(value){
  292. console.log(value)
  293. this.form.bankAddress = value.bankDeposit;
  294. this.form.payeePaymentLines = value.payeePaymentLines;
  295. this.showBankAddress = false;
  296. },
  297. onConfirmAccountType(value){
  298. console.log(value)
  299. this.form.accountType = value.dictValue;
  300. this.accountType = value.dictLabel;
  301. this.showAccountType = false;
  302. },
  303. },
  304. };
  305. </script>
  306. <style scoped lang="scss">
  307. .app-container {
  308. background-color: #FFF;
  309. .code-img {
  310. width: 220px;
  311. }
  312. }
  313. .submit{
  314. width: 90%;
  315. margin: 2vh auto 0;
  316. padding-bottom: 5vh;
  317. p{
  318. text-align: center;
  319. margin-bottom: 0.2rem;
  320. span{
  321. color: #007E72;
  322. }
  323. }
  324. }
  325. </style>