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

companyInformation.vue 17 KiB

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