移动端
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.
 
 

541 line
18 KiB

  1. <template>
  2. <div class="app-container">
  3. <navBar title="资料修改" background="0" positionType="fixed"></navBar>
  4. <van-form @submit="submitForm">
  5. <div class="block_box">
  6. <van-divider :style="{ borderColor: '#0CBEA6', padding: '0 16px' }">用户信息</van-divider>
  7. <van-field v-model="tel" readonly type="tel" label="手机号" placeholder="请输入手机号" required :rules="[{ required:true }]" >
  8. <!-- <template #extra >-->
  9. <!-- <p style="color: #007e72" onclick="window.location='phoneInformation'">修改手机号</p>-->
  10. <!-- </template>-->
  11. </van-field>
  12. <!-- <van-field value="15314031621" label="密码" placeholder="请输入密码" required :rules="[{ required:true }]"/>-->
  13. <van-field v-model="userForm.companyName" label="公司名称" placeholder="请输入公司名称" required :rules="[{ required:true }]"/>
  14. <van-field v-model="userForm.companyCode" label="社会信用代码" placeholder="请输入公司的社会信用代码"/>
  15. <van-field
  16. readonly
  17. clickable
  18. label="企业性质"
  19. :value="companyNameValue"
  20. placeholder="选择企业性质"
  21. @click="showPickerPiker = true"
  22. />
  23. <van-popup v-model="showPickerPiker" round position="bottom">
  24. <van-picker
  25. show-toolbar
  26. :columns="companyNameList"
  27. @cancel="showPickerPiker = false"
  28. @confirm="onConfirmCompany"
  29. />
  30. </van-popup>
  31. <!-- <van-field v-model="userForm.companyNature" label="企业性质" placeholder="请输入企业性质" required :rules="[{ required:true }]" />-->
  32. <van-field v-model="userForm.companyScope" label="经营范围" placeholder="请输入经营范围" />
  33. <van-field v-model="userForm.companyTimeLimit" label="经营期限" placeholder="请输入经营期限" />
  34. <van-field
  35. readonly
  36. clickable
  37. label="成立时间"
  38. :value="userForm.companySetupTime"
  39. placeholder="选择成立时间"
  40. @click="showPicker = true"
  41. />
  42. <van-popup v-model="showPicker" round position="bottom">
  43. <van-datetime-picker
  44. v-model="currentDate"
  45. type="date"
  46. title="选择年月日"
  47. :min-date="minDate"
  48. :max-date="maxDate"
  49. @cancel="showPicker = false"
  50. @confirm="onConfirm"
  51. />
  52. </van-popup>
  53. <!--<van-field v-model="userForm.companySetupTime" label="成立时间" placeholder="请输入成立时间" required :rules="[{ required:true }]" />-->
  54. <van-field v-model="userForm.companyCapital" label="注册资金" placeholder="请输入注册资金" />
  55. <van-field v-model="userForm.address" label="联系地址" placeholder="请输入联系地址" />
  56. <van-field v-model="userForm.realname" label="法人姓名" placeholder="请输入法人姓名" required :rules="[{ required:true }]"/>
  57. <van-field v-model="userForm.idCardNum" label="身份证号" placeholder="请输入法人身份证号" required :rules="[{ required:true }]"/>
  58. <van-field name="uploader" label="法人证件照" required>
  59. <template #input>
  60. <van-uploader :after-read="afterReadFRZJZ" :before-delete="deleteFileFRZJZ" v-model="fileListFRZJZ" multiple :max-count="1" />
  61. </template>
  62. </van-field>
  63. <van-field name="uploader" label="营业执照" required>
  64. <template #input>
  65. <van-uploader :after-read="afterReadYYZZ" :before-delete="deleteFileYYZZ" v-model="fileListYYZZ" multiple :max-count="1" />
  66. </template>
  67. </van-field>
  68. <van-field name="uploader" label="开户证明" required>
  69. <template #input>
  70. <van-uploader :after-read="afterReadKHZM" :before-delete="deleteFileKHZM" v-model="fileListKHZM" multiple :max-count="1" />
  71. </template>
  72. </van-field>
  73. <van-field v-model="userForm.bankCardName" label="开户姓名" placeholder="请输入姓名" required :rules="[{ required:true }]"/>
  74. <van-field v-model="userForm.bankCardNum" label="开户账号" placeholder="请输入开户账号" required :rules="[{ required:true }]"/>
  75. <van-field
  76. v-model="accountType"
  77. is-link
  78. readonly
  79. required
  80. :rules="[{ required:true }]"
  81. label="账户类型"
  82. placeholder="请选择账户类型"
  83. @click="showAccountType = true"
  84. />
  85. <van-popup v-model:show="showAccountType" position="bottom">
  86. <van-picker
  87. show-toolbar
  88. value-key="dictLabel"
  89. :columns="accountTypeOption"
  90. @confirm="onConfirmAccountType"
  91. @cancel="showAccountType = false"
  92. />
  93. </van-popup>
  94. </div>
  95. <div class="block_box">
  96. <van-divider :style="{ borderColor: '#0CBEA6', padding: '0 16px' }">银行信息</van-divider>
  97. <van-field
  98. v-model="bankType"
  99. is-link
  100. readonly
  101. required
  102. :rules="[{ required:true }]"
  103. label="所属银行"
  104. placeholder="请选择所属银行"
  105. @click="showBankType = true"
  106. />
  107. <van-popup v-model:show="showBankType" position="bottom">
  108. <van-picker
  109. show-toolbar
  110. value-key="dictLabel"
  111. :columns="bankTypeOption"
  112. @confirm="onConfirmBankType"
  113. @cancel="showArea = false"
  114. />
  115. </van-popup>
  116. <van-field
  117. v-model="sheng"
  118. is-link
  119. readonly
  120. label="开户省市"
  121. placeholder="请选择开户省市"
  122. @click="showSheng = true"
  123. />
  124. <van-popup v-model:show="showSheng" position="bottom">
  125. <van-picker
  126. show-toolbar
  127. value-key="label"
  128. :columns="shengOption"
  129. @confirm="onConfirmSheng"
  130. @cancel="showSheng = false"
  131. />
  132. </van-popup>
  133. <van-field v-model="userForm.bankDeposit" label="关键词" placeholder="请输入开户行地址关键词"/>
  134. <van-field
  135. v-model="userForm.bankAddress"
  136. label="开户银行"
  137. placeholder="请输入开户银行"
  138. required
  139. :rules="[{ required:true }]"
  140. readonly
  141. @click="showBankAddress = true"
  142. >
  143. <template #button>
  144. <van-button size="small" type="primary" color="#FD683F" native-type="button" @click="searchBankAddress">检索</van-button>
  145. </template>
  146. </van-field>
  147. <van-popup v-model:show="showBankAddress" position="bottom">
  148. <van-picker
  149. show-toolbar
  150. value-key="bankDeposit"
  151. :columns="bankAddressOption"
  152. @confirm="onConfirmBankAddress"
  153. @cancel="showBankAddress = false"
  154. />
  155. </van-popup>
  156. <van-field v-model="userForm.payeePaymentLines" label="联行号" placeholder="请输入开户银行" required :rules="[{ required:true }]"/>
  157. </div>
  158. <div class="submit" v-if="activitiStatus != '1'">
  159. <van-button round block type="info" color="#0DBCAA" native-type="submit" style="width: 90%;margin: 0 auto;">保存</van-button>
  160. </div>
  161. </van-form>
  162. </div>
  163. </template>
  164. <script>
  165. import { getInfo } from "@/api/login/index";
  166. import {getMember, base64Attach, userUpdate, showUserImg, deleteUserImg, options} from "@/api/user/index";
  167. import {Dialog} from "vant";
  168. import {base64Upload, depositList, realtimeBackList} from "@/api/register";
  169. import navBar from "@/components/common/nav_bar.vue";
  170. export default {
  171. name: "companyInformation",
  172. components: { navBar },
  173. data() {
  174. return {
  175. activitiStatus:0,
  176. height:0,
  177. tel:'',
  178. showPicker: false,
  179. showPickerPiker: false,
  180. minDate: new Date(1900, 0, 1),
  181. maxDate: new Date(),
  182. currentDate: new Date(),
  183. value:'',
  184. companyNameValue:'',
  185. fileList:[],
  186. companyNameList:[],
  187. fileListKHZM:[],
  188. fileListFRZJZ:[],
  189. fileListYYZZ:[],
  190. form: {
  191. files:[],
  192. fileType:'',
  193. bizPath:'transaction',
  194. tableName:'t_transaction_member',
  195. tableId:''
  196. },
  197. userForm:{
  198. companyName:'',
  199. idCardNum:'',
  200. realname:'',
  201. companyCode:'',
  202. companyNature:'',
  203. companyScope:'',
  204. companyTimeLimit:'',
  205. companySetupTime:'',
  206. companyCapital:'',
  207. companyLicense:'',
  208. address:'',
  209. accountOpenCert:'',
  210. },
  211. userInfo:[],
  212. upLoadList:[],
  213. bankTypeOption:[],
  214. sheng:'',
  215. shi:'',
  216. bankType:'',
  217. accountType:'',
  218. bankDeposit:'',
  219. showBankType:false,
  220. showSheng :false,
  221. shengOption:options,
  222. showShi :false,
  223. shiOption:[],
  224. showBankAddress :false,
  225. accountTypeOption:[],
  226. showAccountType :false,
  227. bankAddressOption:[],
  228. };
  229. },
  230. created() {
  231. this.height = document.body.clientHeight
  232. this.getDicts("bank_type_all").then(response => {
  233. this.bankTypeOption = response.data;
  234. });
  235. this.getDicts("bank_account_type").then(response => {
  236. this.accountTypeOption = response.data;
  237. });
  238. this.getInfo()
  239. this.getDicts("company_nature").then(res => {
  240. console.log(res);
  241. for (var i = 0 ; i < res.data.length ; i++ ){
  242. this.companyNameList.push(res.data[i].dictLabel)
  243. }
  244. //this.value = this.selectDictLabel(res.data,response.data.supplyDemandType);
  245. });
  246. },
  247. methods: {
  248. searchBankAddress(){
  249. let data = {
  250. sheng:this.userForm.sheng,
  251. shi:this.userForm.shi,
  252. bankType:this.userForm.bankType,
  253. bankDeposit:this.userForm.bankDeposit,
  254. }
  255. depositList(data).then(response => {
  256. if (response.rows.length<1){
  257. if (this.userForm.sheng==''||this.userForm.shi==''){
  258. this.$toast({
  259. icon: 'fail', // 找到自己需要的图标
  260. message: '请选择省市',
  261. duration:"1000",
  262. })
  263. return;
  264. }
  265. if (this.userForm.bankDeposit==''){
  266. this.$toast({
  267. icon: 'fail', // 找到自己需要的图标
  268. message: '请输入关键词',
  269. duration:"1000",
  270. })
  271. return;
  272. }
  273. realtimeBackList(data).then(response2 => {
  274. console.log(response2)
  275. this.bankAddressOption = response2.data;
  276. });
  277. }else{
  278. this.bankAddressOption = response.rows;
  279. }
  280. });
  281. },
  282. onConfirmCompany(value,index){
  283. console.log(value)
  284. this.companyNameValue = value;
  285. this.showPickerPiker = false;
  286. this.userForm.companyNature = index+1
  287. console.log(this.userForm.companyName)
  288. },
  289. onConfirm(value) {
  290. this.userForm.companySetupTime = this.getNowFormatDate(value).substr(0,10);
  291. console.log(new Date())
  292. this.showPicker = false;
  293. },
  294. getInfo(){
  295. getInfo().then(response => {
  296. getMember(response.user.userId).then(response => {
  297. console.log(response)
  298. // this.userForm.companyName = response.data.companyName;
  299. // this.userForm.idCardNum = response.data.idCardNum;
  300. // this.userForm.realname = response.data.realname;
  301. // this.userForm.companyCode = response.data.companyCode;
  302. // this.userForm.companyName = response.data.companyName;
  303. // this.userForm.companyNature = response.data.companyNature;
  304. // this.userForm.companyScope = response.data.companyScope;
  305. // this.userForm.companyTimeLimit = response.data.companyTimeLimit;
  306. // this.userForm.companySetupTime = response.data.companySetupTime;
  307. // this.userForm.companyCapital = response.data.companyCapital;
  308. // // this.userForm.companyLicense = response.data.companyLicense;
  309. // this.userForm.address = response.data.address;
  310. this.userForm = response.data;
  311. this.bankType = this.selectDictLabel(this.bankTypeOption,response.data.bankType);
  312. this.accountType = this.selectDictLabel(this.accountTypeOption,response.data.accountType);
  313. this.userForm.bankCardName = response.data.bankCardName;
  314. this.userForm.bankCardNum = response.data.bankCardNum;
  315. this.userForm.bankAddress = response.data.bankAddress;
  316. this.userForm.id = response.data.id;
  317. this.activitiStatus = response.data.activitiStatus;
  318. if (response.data.accountOpenCert!=''){
  319. this.fileListKHZM = [{
  320. url:'/api'+response.data.accountOpenCert,
  321. isImage: true
  322. }];
  323. }
  324. if (response.data.idCardPic!=''){
  325. this.fileListFRZJZ = [{
  326. url:'/api'+response.data.idCardPic,
  327. isImage: true
  328. }];
  329. }
  330. if (response.data.companyLicense!=''){
  331. this.fileListYYZZ = [{
  332. url:'/api'+response.data.companyLicense,
  333. isImage: true
  334. }];
  335. }
  336. this.tel = response.data.phone
  337. this.getDicts("company_nature").then(res => {
  338. console.log(res);
  339. this.companyNameValue = this.selectDictLabel(res.data,response.data.companyNature);
  340. });
  341. this.userForm.id = response.data.id;
  342. this.form.tableId = response.data.id;
  343. // showUserImg(response.data.id).then(responseSecond => {
  344. // console.log(responseSecond)
  345. // this.form.files = responseSecond.data
  346. // for (var i = 0 ; i < responseSecond.data.length ; i++){
  347. // this.fileList.push({url:this.global.severApi+responseSecond.data[i].fileUrl,id:responseSecond.data[i].id})
  348. // }
  349. // });
  350. });
  351. });
  352. },
  353. afterReadFRZJZ(file) {
  354. // 此时可以自行将文件上传至服务器
  355. this.$toast.loading({
  356. message: "上传中...",
  357. forbidClick: true,
  358. duration: 0,
  359. });
  360. let params1 = {
  361. file:file.content
  362. }
  363. base64Upload(params1).then((r1) => {
  364. this.userForm.idCardPic = r1.fileName;
  365. })
  366. },
  367. deleteFileFRZJZ(elIndex){
  368. return (file, name) => {
  369. let fileIndex = name.index
  370. this.fileListFRZJZ[elIndex].splice(fileIndex, 1)
  371. this.userForm.idCardPic = '';
  372. }
  373. },
  374. afterReadKHZM(file) {
  375. // 此时可以自行将文件上传至服务器
  376. let params1 = {
  377. file:file.content
  378. }
  379. base64Upload(params1).then((r1) => {
  380. this.userForm.accountOpenCert = r1.fileName;
  381. })
  382. },
  383. deleteFileKHZM(elIndex){
  384. return (file, name) => {
  385. let fileIndex = name.index
  386. this.fileListKHZM[elIndex].splice(fileIndex, 1)
  387. this.userForm.accountOpenCert = '';
  388. }
  389. },
  390. afterReadYYZZ(file) {
  391. this.$toast.loading({
  392. message: "上传中...",
  393. forbidClick: true,
  394. duration: 0,
  395. });
  396. // 此时可以自行将文件上传至服务器
  397. let params1 = {
  398. file:file.content
  399. }
  400. base64Upload(params1).then((r1) => {
  401. this.userForm.companyLicense = r1.fileName;
  402. })
  403. },
  404. deleteFileYYZZ(elIndex){
  405. return (file, name) => {
  406. let fileIndex = name.index
  407. this.fileListYYZZ[elIndex].splice(fileIndex, 1)
  408. this.userForm.companyLicense = '';
  409. }
  410. },
  411. submitForm(){
  412. if (this.userForm.accountOpenCert == ''){
  413. this.$toast({
  414. icon: 'error', // 找到自己需要的图标
  415. message: '请上传开户证明',
  416. duration:"2000",
  417. onClose:function(){
  418. }
  419. })
  420. return;
  421. }
  422. if (this.userForm.companyLicense == ''){
  423. this.$toast({
  424. icon: 'error', // 找到自己需要的图标
  425. message: '请上传营业执照',
  426. duration:"2000",
  427. onClose:function(){
  428. }
  429. })
  430. return;
  431. }
  432. userUpdate(this.userForm).then(response => {
  433. if(response.code == 200) {
  434. Dialog.confirm({
  435. title: '系统提示',
  436. message: '修改成功',
  437. confirmButtonText: '确定',
  438. })
  439. .then(() => {
  440. this.onClickLeft()
  441. })
  442. }
  443. });
  444. },
  445. onConfirmBankType(value){
  446. this.showBankType = false;
  447. this.userForm.bankAddress = '';
  448. this.userForm.payeePaymentLines = '';
  449. this.bankType = value.dictLabel;
  450. this.userForm.bankType = value.dictValue;
  451. },
  452. onConfirmSheng(value){
  453. console.log(value)
  454. this.showSheng = false;
  455. this.userForm.sheng = value[0];
  456. this.userForm.shi = value[1];
  457. this.sheng = value.join('/');
  458. },
  459. onConfirmBankAddress(value){
  460. console.log(value)
  461. this.userForm.bankAddress = value.bankDeposit;
  462. this.userForm.payeePaymentLines = value.payeePaymentLines;
  463. this.showBankAddress = false;
  464. },
  465. onConfirmAccountType(value){
  466. console.log(value)
  467. this.userForm.accountType = value.dictValue;
  468. this.accountType = value.dictLabel;
  469. this.showAccountType = false;
  470. },
  471. },
  472. };
  473. </script>
  474. <style scoped lang="scss">
  475. .app-container {
  476. background-color: #F4F8FB;
  477. height: calc(100vh - 0Px);
  478. overflow-y: scroll;
  479. }
  480. .block_box{
  481. width: 94%;
  482. margin: 3vw auto;
  483. background: #ffffff;
  484. padding: 3vw 0;
  485. border-radius: 15Px;
  486. overflow: hidden;
  487. .block_tt{
  488. font-size: 16Px;
  489. display: flex;
  490. align-items: center;
  491. padding: 0 3vw;
  492. line-height: 1;
  493. i{
  494. display: block;
  495. width: 3Px;
  496. height: 14Px;
  497. background: #0CBEA6;
  498. margin-right: 5PX;
  499. border-radius: 5PX;
  500. }
  501. /*border-left: 3Px solid #0CBEA6;*/
  502. }
  503. }
  504. .submit{
  505. width: 100%;
  506. padding: 5% 0;
  507. p{
  508. text-align: center;
  509. margin-bottom: 0.2rem;
  510. span{
  511. color: #007E72;
  512. }
  513. }
  514. }
  515. </style>