register-club.js 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451
  1. var registerPage = new Vue({
  2. el: "#registerPage",
  3. data: {
  4. loginLoading: false,
  5. showTabContentIndex:1,
  6. showSupplierConfirm:true,
  7. showClass:'',
  8. mobilCount:0,
  9. mobileCodeText:'获取验证码',
  10. mobilTime:null,
  11. isMobileDisabled:false,
  12. isCodeModel:false,
  13. codeImagePath:'https://dss2.bdstatic.com/8_V1bjqh_Q23odCf/pacific/1819816496.jpg',
  14. codeImageToken:'',
  15. imageCode:'',
  16. clubUser: {
  17. name:'',
  18. phone:'',
  19. code:'',
  20. password:'',
  21. password2:''
  22. },
  23. clubUpgradeUser: {
  24. userId:'',
  25. clubId:'',
  26. contractEmail:'',
  27. name:'',
  28. shortName:'',
  29. socialCreditCode:'',
  30. mainProduct:[],
  31. businessLicense:'',
  32. shopPhoto:'',
  33. medicalPracticeLicense:'',
  34. firstClubType:0,
  35. secondClubType:0,
  36. department:'',
  37. provinceId :'',
  38. cityId : '',
  39. townId : '',
  40. },
  41. userMainPros:[],
  42. formData:new FormData(),
  43. isAgreed:0,
  44. isAgree:false,
  45. isShowAgree:false,
  46. mentuzCampNullList:[
  47. {value:1,name:'整形'},
  48. {value:2,name:'轻医美'},
  49. {value:3,name:'皮肤科'},
  50. {value:4,name:'产后修复'},
  51. ],
  52. medicaCampNullList: [
  53. {name:'美容'},
  54. {name:'美体'},
  55. {name:'美发'},
  56. {name:'皮肤管理'},
  57. {name:'光电'},
  58. {name:'综合类'},
  59. {name:'中医养生'},
  60. {name:'spa'},
  61. ],
  62. mainPros: ['产品','仪器','服务','整形'],
  63. mainProEdit: '',
  64. ProvinceList:[],
  65. cityArray:[],
  66. townArray:[],
  67. addressfrom: {
  68. province: '',//省id
  69. city: '',
  70. town: ''
  71. },
  72. rule:{
  73. name: '^[a-zA-Z\\u4e00-\\u9fa5]{2,}$',
  74. phone: '^\\d{6,12}$',
  75. code: '^\\d{6}$',
  76. license: '^[a-zA-Z0-9_]{18}$',
  77. email: '^(([^<>()\\[\\]\\\\.,;:\\s@&quot;]+(\\.[^<>()\\[\\]\\\\.,;:\\s@&quot;]+)*)|(&quot;.+&quot;))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$',
  78. password: "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$"
  79. }
  80. },
  81. computed: {
  82. },
  83. methods: {
  84. handleChangeType: function(type){
  85. if(type === parseInt(this.clubUpgradeUser.firstClubType)) return;
  86. this.userMainPros = [];
  87. this.clubUpgradeUser.secondClubType = (type === 1 ? 1 : 5);
  88. },
  89. clubRegister: function(){ //机构注册提交
  90. var _self = this;
  91. var pass = verifyForm();
  92. if (_self.loginLoading) { return false; }
  93. this.$nextTick(function() {
  94. if (!pass) {return false;}
  95. if (!_self.isAgree){
  96. _self.isShowAgree = true;
  97. return;
  98. }
  99. if(_self.clubUser.password2!=_self.clubUser.password){
  100. CAIMEI.dialog('两次密码输入不一致',false,function () {});
  101. return;
  102. }
  103. var params = {
  104. source:0,
  105. userName : _self.clubUser.name,
  106. bindMobile : _self.clubUser.phone,
  107. password : _self.clubUser.password,
  108. passWordConfirm : _self.clubUser.password2,
  109. smsCode : _self.clubUser.code,
  110. isAgreed : _self.isAgreed
  111. };
  112. _self.loginLoading = true;
  113. UserApi.ClubRegister(params,function (response) {
  114. if(response.code === 0){
  115. CAIMEI.dialog('注册成功!',true,function () {
  116. _self.clubLogin();
  117. _self.showTabContentIndex = 2;
  118. _self.loginLoading = false;
  119. });
  120. } else {
  121. CAIMEI.Alert(response.msg,'确定',false);
  122. _self.loginLoading = false;
  123. }
  124. });
  125. });
  126. },
  127. getMobileImage:function() {//获取图形验证码
  128. var _self = this;
  129. var pass = verifyCheack('.massageBtn');
  130. if (_self.isMobileDisabled) { return false; }
  131. this.$nextTick(function() {
  132. if (!pass) {
  133. return false;
  134. }
  135. PublicApi.getImgVerifyCode({platformType: 0},function(response){
  136. if(response.code == 0){
  137. _self.imageCode = '';
  138. _self.codeImagePath = response.data.baseImage;
  139. _self.codeImageToken = response.data.token;
  140. _self.isCodeModel = true;
  141. }else{
  142. CAIMEI.Alert(response.msg,'确定',false);
  143. }
  144. })
  145. });
  146. },
  147. getMobileCodeFn:function(){//机构注册获取注册短信验证码
  148. var _self = this;
  149. if(_self.imageCode == ''){
  150. CAIMEI.dialog('请输入图形验证码',false,function () {});
  151. return
  152. }
  153. var params = {
  154. mobile:_self.clubUser.phone,
  155. isCheckCaptcha:0,
  156. imgCode:_self.imageCode,
  157. token:_self.codeImageToken,
  158. activateCodeType:2,
  159. platformType:0
  160. };
  161. _self.isMobileDisabled = true;
  162. UserApi.getRegisterMobileCode(params,function (response) {
  163. if(response.code == 0){
  164. _self.isCodeModel = false;
  165. CAIMEI.dialog('验证短信已发送',false,function () {});
  166. var TIME_COUNT = 60;
  167. if (!_self.mobilTime) {
  168. _self.mobilCount = TIME_COUNT;
  169. _self.isMobileDisabled = true;
  170. _self.mobilTime = setInterval(function(){
  171. if (_self.mobilCount > 1 && _self.mobilCount <= TIME_COUNT) {
  172. _self.mobilCount--;
  173. _self.mobileCodeText = _self.mobilCount +'s重新发送';
  174. } else {
  175. _self.isMobileDisabled = false;
  176. clearInterval(_self.mobilTime);
  177. _self.mobilTime = null;
  178. _self.mobileCodeText = '获取验证码';
  179. }
  180. },1000)
  181. }
  182. }else{
  183. CAIMEI.Alert(response.msg,'确定',false);
  184. _self.isMobileDisabled = false;
  185. _self.isCodeModel = false;
  186. }
  187. })
  188. },
  189. clubUpgrade:function() {//升级会员机构
  190. var _self = this;
  191. var pass = verifyForm();
  192. if (_self.loginLoading) { return false; }
  193. this.$nextTick(function() {
  194. if (!pass) {return false;}
  195. if(_self.clubUpgradeUser.cityId == ''){
  196. CAIMEI.dialog('请选择市级地区',false);
  197. return ;
  198. }
  199. if(_self.clubUpgradeUser.townId == ''){
  200. CAIMEI.dialog('请选择具体地区',false);
  201. return ;
  202. }
  203. if(!_self.clubUpgradeUser.businessLicense){
  204. $('#formbusinessLicenseImage').parent().addClass("error").find('.checked').removeClass("show");
  205. $('#formbusinessLicenseImage').siblings('.errTips').text('请上传营业执照图片').addClass("show");
  206. return false;
  207. }
  208. if(!_self.clubUpgradeUser.firstClubType){
  209. $('#firstClubType').parent().addClass("error");
  210. $('#firstClubType').siblings('.errTips').text('请选择机构类型').addClass("show");
  211. return false;
  212. }
  213. if(Number(_self.clubUpgradeUser.firstClubType) == 1){
  214. if(!_self.clubUpgradeUser.medicalPracticeLicense){
  215. $('#formmedicalPracticeLicenseImage').parent().addClass("error").find('.checked').removeClass("show");
  216. $('#formmedicalPracticeLicenseImage').siblings('.errTips').text('请上传资质证书图片').addClass("show");
  217. return false;
  218. }
  219. }
  220. _self.clubUpgradeUser.mainProduct = _self.userMainPros.join("/");
  221. _self.loginLoading = true;
  222. UserApi.ClubUpgrade(_self.clubUpgradeUser,function (response) {
  223. if(response.code === 0){
  224. CAIMEI.Alert('升级信息提交成功,审核通过后您的身份即成为会员机构并且获得500采美豆的奖励','确定',true,function () {
  225. _self.clubLoginIndex();
  226. _self.loginLoading = false;
  227. });
  228. } else {
  229. CAIMEI.Alert(response.msg,'确定',false);
  230. _self.loginLoading = false;
  231. }
  232. });
  233. });
  234. },
  235. clubLogin: function () { // 登录
  236. var _self = this;
  237. var params = {mobileOrEmail: _self.clubUser.phone,password: _self.clubUser.password};
  238. UserApi.PostLoginAccount(params,function(response){
  239. if(response.code === 0){
  240. _self.clubUpgradeUser.userId = response.data.userId;
  241. _self.clubUpgradeUser.clubId = response.data.clubId;
  242. _self.userData = {
  243. account: response.data.account,
  244. email: response.data.email,
  245. phone: response.data.bindMobile,
  246. name: response.data.name ? response.data.name : response.data.userName,
  247. userName: response.data.userName,
  248. userId: response.data.userId,
  249. spId: response.data.serviceProviderId,
  250. clubId: response.data.clubId,
  251. shopId: response.data.shopId,
  252. userIdentity: response.data.userIdentity,
  253. permission: response.data.userPermission,
  254. token: response.data.token
  255. };
  256. _self.setStorages( _self.userData);
  257. } else {// 登录失败
  258. alertInfo(response.msg);
  259. }
  260. });
  261. },
  262. ChangeFirstClubType:function(event){
  263. $('#secondShopType').parent().removeClass("error");
  264. $('#firstClubType').siblings('.errTips').removeClass("show");
  265. },
  266. refreshCodeImage:function(){
  267. this.getMobileImage()
  268. },
  269. closeCodeModel:function(){
  270. this.isCodeModel = false;
  271. },
  272. clubLoginIndex:function(){// 跳过升级直接去个人中心
  273. window.location.href = '/user/dashboard.html';
  274. },
  275. mainProAdd: function(){
  276. var _self = this;
  277. if (_self.mainProEdit.length>0) {
  278. if (_self.mainPros.indexOf(_self.mainProEdit)<0){
  279. var obj = {name:_self.mainProEdit};
  280. if(_self.clubUpgradeUser.firstClubType === '2'){
  281. if(_self.checkedArray(_self.mainProEdit,_self.mentuzCampNullList)){
  282. CAIMEI.dialog('主营内容已存在!',false);
  283. }else {
  284. _self.mentuzCampNullList.push(obj);
  285. }
  286. }else{
  287. if(_self.checkedArray(_self.mainProEdit,_self.medicaCampNullList)){
  288. CAIMEI.dialog('主营内容已存在!',false);
  289. }else {
  290. _self.medicaCampNullList.push(obj);
  291. }
  292. }
  293. }
  294. }
  295. },
  296. checkedArray:function(content,arr){//判断主营内容是否已存在
  297. for(var i in arr){
  298. if(arr[i].name == content){
  299. return true;
  300. }
  301. }
  302. return false;
  303. },
  304. showPassword: function(event) {//密码
  305. var el = event.currentTarget;
  306. var pwdEle = $(el).siblings('input');
  307. if(pwdEle.attr('type') === 'password') {
  308. $(el).addClass('on');
  309. pwdEle.attr('type','text');
  310. } else {
  311. $(el).removeClass('on');
  312. pwdEle.attr('type','password');
  313. }
  314. },
  315. blurHandle: function(event) { // 失去焦点校验
  316. var el = event.currentTarget;
  317. verifyHandle(el);
  318. },
  319. uploadBusinessLicenseImageFn: function(event){//上传营业执照
  320. var _this = this;
  321. var inputDOM = _this.$refs.businessLicenseImage;
  322. var file = inputDOM.files;
  323. _this.formData.append('file', file[0]);
  324. PublicApi.uploadimg(_this.formData,function(response){
  325. _this.clubUpgradeUser.businessLicense = response.data;
  326. $('#formbusinessLicense').parent().removeClass("error");
  327. $('#formbusinessLicenseImage').siblings('.errTips').removeClass("show");
  328. event.target.value = '';
  329. });
  330. },
  331. uploadMentuzImageFn: function(event){//上传门头照
  332. var _this = this;
  333. var inputDOM = _this.$refs.businessMentuImage;
  334. var file = inputDOM.files;
  335. _this.formData.append('file', file[0]);
  336. PublicApi.uploadimg(_this.formData,function(response){
  337. _this.clubUpgradeUser.shopPhoto = response.data;
  338. event.target.value = '';
  339. });
  340. },
  341. uploadMedicaImageFn: function(event){//上传资质证书
  342. var _this = this;
  343. var inputDOM = _this.$refs.businessMedicaImage;
  344. var file = inputDOM.files;
  345. _this.formData.append('file', file[0]);
  346. PublicApi.uploadimg(_this.formData,function(response){
  347. _this.clubUpgradeUser.medicalPracticeLicense = response.data;
  348. event.target.value = '';
  349. });
  350. },
  351. deleteBusinessImage:function(){//清楚营业执照图片
  352. this.clubUpgradeUser.businessLicense = '';
  353. },
  354. deleteMentuzImage:function(){//清楚门头照图片
  355. this.clubUpgradeUser.shopPhoto = '';
  356. },
  357. deleteMedicalImage:function(){//清楚资质照图片
  358. this.clubUpgradeUser.medicalPracticeLicense = '';
  359. },
  360. setStorages:function(data){//存储本地数据
  361. localStorage.setItem('userInfo',JSON.stringify(data));
  362. },
  363. showVadvisory:function(){
  364. var _self = this;
  365. _self.showClass = 'active';
  366. },
  367. closeVadvisory:function () {
  368. var _self = this;
  369. _self.showClass = '';
  370. },
  371. checkedIsAgreeFn:function () {
  372. var _self = this;
  373. _self.isAgree = !_self.isAgree;
  374. if (_self.isAgree){
  375. _self.isShowAgree = false;
  376. _self.isAgreed = 1;
  377. }else{
  378. _self.isShowAgree = true;
  379. _self.isAgreed = 0;
  380. }
  381. },
  382. GetProvinceFn: function(){//获取全部省份
  383. var _this = this;
  384. PublicApi.GetProvince({},function(response){
  385. if(response.code == 0){
  386. _this.ProvinceList =response.data;
  387. }else{
  388. CAIMEI.Alert(response.msg,'确定',false);
  389. }
  390. })
  391. },
  392. ChangeProvince:function () {//选择省份
  393. var _this = this;
  394. _this.addressfrom.province = event.target.value;
  395. _this.clubUpgradeUser.provinceId = event.target.value;
  396. if(_this.addressfrom.province==''){//省为请选择时市区初始化
  397. _this.cityArray=[];
  398. _this.townArray=[];
  399. _this.clubUpgradeUser.townId=''
  400. }else {
  401. _this.ChangeGetcity();
  402. }
  403. },
  404. ChangeGetcity:function(event){//加载市
  405. var _this = this;
  406. PublicApi.GetCity({ provinceId: _this.addressfrom.province },function(response){
  407. if(response.code == 0 ){
  408. _this.cityArray = response.data;
  409. _this.addressfrom.city = event.target.value;
  410. _this.clubUpgradeUser.cityId = event.target.value;
  411. if(_this.addressfrom.city==''){
  412. _this.townArray=[];
  413. }else {
  414. _this.ChangeGetcTown();
  415. }
  416. }else{
  417. CAIMEI.Alert(response.msg,'确定',false);
  418. }
  419. })
  420. },
  421. ChangeGetcTown:function(event){//选择地区
  422. var _this = this;
  423. PublicApi.GetTown({ cityId: _this.addressfrom.city },function(response){
  424. if(response.code == 0 ){
  425. _this.townArray = response.data;
  426. _this.clubUpgradeUser.townId = event.target.value;
  427. console.log(_this.clubUpgradeUser.townId)
  428. }else{
  429. CAIMEI.Alert(response.msg,'确定',false);
  430. }
  431. })
  432. },
  433. showViewerImageFn:function(){//预览营业执照图片
  434. var viewer = new Viewer(document.getElementById('businessLicenseImage'));
  435. },
  436. showViewerImageFn1:function(){//预览门头照图片
  437. var viewer = new Viewer(document.getElementById('uploadMentuzImage'));
  438. },
  439. showViewerImageFn2:function(){//预览资质图片
  440. var viewer = new Viewer(document.getElementById('medicalPracticeLicenseImg'));
  441. },
  442. },
  443. created: function () {
  444. },
  445. mounted: function () {
  446. var _self = this;
  447. _self.GetProvinceFn();
  448. }
  449. });