StepFirst.vue 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924
  1. <template>
  2. <!--填写注册信息-->
  3. <div class="section" @click="onHideBox">
  4. <div class="register">
  5. <div class="x-form-set-header">
  6. <h4>企业基本信息</h4>
  7. </div>
  8. <div class="row">
  9. <label class="col-sm-2 x-required">企业名称:</label>
  10. <div class="col-sm-5">
  11. <input :class="!validName.isValidTypeName || !validName.isValidName?'form-control error-box-border':'form-control'" type="text" @change="nameCheck(3)" @input="nameTypeCheck()" :disabled="!loginData.isSelf" v-model="data.name" name="name" required="" placeholder="填写营业执照上的企业名称">
  12. </div>
  13. <div class="x-text-help" v-show="validName.isValidTypeName && validName.isValidName && !validName.init">
  14. <i class="glyphicon glyphicon-ok x-icon-left"></i>
  15. </div>
  16. <div class="col-sm-5" v-show="!validName.isValidTypeName && !validName.init">
  17. <p>
  18. <i class="fa fa-info-circle"></i>请填写正确的企业名称,2~99个字符
  19. </p>
  20. </div>
  21. <div class="col-sm-5" v-show="!validName.isValidName && !validName.init">
  22. <p>
  23. <i class="fa fa-info-circle"></i>注册的企业名称已存在,请联系管理员
  24. </p>
  25. </div>
  26. </div>
  27. <div class="row">
  28. <label class="col-sm-2 x-required">营业执照号:</label>
  29. <div class="col-sm-5">
  30. <input type="text" :class="!validLicence.isValidLicence?'form-control error-box-border':'form-control x-input'" :disabled="!loginData.isSelf" @input="validLicence.init=false" @change="licenceCheck(3)" v-model="data.licenceId" name="name" required="" placeholder="请填写营业执照上的注册号">
  31. </div>
  32. <div class="x-text-help" v-show="validLicence.isValidLicence && !validLicence.init">
  33. <i class="glyphicon glyphicon-ok x-icon-left"></i>
  34. </div>
  35. <div class="col-sm-5" v-show="!validLicence.isValidLicence && !validLicence.init"><p><i class="fa fa-info-circle"></i>请填写营业执照上的注册号</p></div>
  36. </div>
  37. <!--<div class="row">
  38. <label class="col-sm-2 x-required">营业执照:</label>
  39. <div class="col-sm-5">
  40. <a class="x-btn-blank" v-if="loginData.isSelf" title="请上传营业执照扫描件(≤5M的图片或PDF)">
  41. <i class="fa fa-picture-o"></i>
  42. 请上传营业执照扫描件(≤5M的图片或PDF)
  43. <input type="file" @change="upload" class="form-control file-input" name="name" required="" placeholder="请上传营业执照扫描件(≤5M的图片或PDF)" accept="image/jpeg,image/jpg,image/gif,image/bmp,image/png,.pdf">
  44. </a>
  45. <img class="previewImg" v-if="data.url != ''" :src="isPdf?'/images/all/timg.png':data.url" alt="">
  46. </div>
  47. <div class="x-text-help" v-show="validUpload.isValidUpload && !validUpload.init">
  48. <i class="glyphicon glyphicon-ok x-icon-left"></i>
  49. </div>
  50. <div class="col-sm-5" v-show="!validUpload.isValidUpload && !validUpload.init"><p><i class="fa fa-info-circle"></i>请上传营业执照扫描件(≤5M的图片或PDF)</p></div>
  51. </div>
  52. <div class="row">
  53. <label class="col-sm-2 x-required">法定代表人:</label>
  54. <div class="col-sm-5">
  55. <input type="text" :disabled="!loginData.isSelf" :class="!validLawPerson.isValidLawPerson?'form-control error-box-border':'form-control'" @input="lawPersonCheck()" v-model="data.lawPerson" name="name" required="" placeholder="请填写营业执照上的法定代表人">
  56. </div>
  57. <div class="x-text-help" v-show="validLawPerson.isValidLawPerson && !validLawPerson.init">
  58. <i class="glyphicon glyphicon-ok x-icon-left"></i>
  59. </div>
  60. <div class="col-sm-5" v-show="!validLawPerson.isValidLawPerson && !validLawPerson.init"><p><i class="fa fa-info-circle"></i>请填写营业执照上的法定代表人</p></div>
  61. </div>-->
  62. <div class="row">
  63. <label class="col-sm-2 x-required">注册地址:</label>
  64. <div class="col-sm-5">
  65. <input type="text" readonly aria-haspopup="true" aria-expanded="false" @click="onShowAddress" v-model="data.address" class="form-control" name="name" required="" placeholder="填写总部所在地详细地址" style="padding-left:20px;background-color: transparent;">
  66. <span class="fa fa-map-marker"></span>
  67. <div v-show="showAddressBox"
  68. @mouseenter="isInAddressBox = true"
  69. @mouseleave="isInAddressBox = false"
  70. style="display: block; left: 14px;" class="dropdown-menu x-union-menu" aria-labelledby="address">
  71. <div class="x-union-header">
  72. <div>省份</div>
  73. <div>城市</div>
  74. <div>县区</div>
  75. <div class="x-item-ext">详细地址</div>
  76. </div>
  77. <div class="x-union-list">
  78. <ul class="list-unstyled">
  79. <li v-for="province in cityData.province"
  80. :class="province == address.currentProvince ? 'active' : ''"
  81. v-text="province"
  82. @click="getCity(province)"></li>
  83. </ul>
  84. <ul class="list-unstyled">
  85. <li v-for="city in cityData.city"
  86. :class="city == address.currentCity ? 'active' : ''"
  87. v-text="city"
  88. @click="getDistrict(city)"></li>
  89. </ul>
  90. <ul class="list-unstyled">
  91. <li v-for="district in cityData.district"
  92. v-text="district"
  93. :class="district == address.currentDistrict ? 'active' : ''"
  94. @click="chooseDistrict(district)"></li>
  95. </ul>
  96. <div class="x-item-ext">
  97. <div class="form-group">
  98. <div class="col-sm-12">
  99. <textarea id="street" name="street" rows="4" v-model="address.detail" @input="onDetailAddressInput" class="form-control x-input" placeholder="xx路xx大厦xx栋xx楼xx室"></textarea>
  100. </div>
  101. </div>
  102. <div class="text-right">
  103. <a class="register-btn btn-submit" @click="submitAddress">确定</a> <a @click="showAddressBox = false" class="register-btn btn-console">取消</a>
  104. </div>
  105. </div>
  106. </div>
  107. </div>
  108. </div>
  109. <div class="x-text-help" v-show="validAddress.isValidAddress && !validAddress.init">
  110. <i class="glyphicon glyphicon-ok x-icon-left"></i>
  111. </div>
  112. <div class="col-sm-5" v-show="!validAddress.isValidAddress && !validAddress.init"><p><i class="fa fa-info-circle"></i>填写总部所在地详细地址</p></div>
  113. </div>
  114. <!--<div class="row">
  115. <label class="col-sm-2">联系人:</label>
  116. <div class="col-sm-5">
  117. <input type="text" :disabled="!loginData.isSelf" class="form-control" title="请填写企业对外的联系人,为空则默认为管理员" v-model="data.linkman" name="name" required="" placeholder="请填写企业对外的联系人,为空则默认为管理员">
  118. </div>
  119. <div class="col-sm-5"></div>
  120. </div>
  121. <div class="row">
  122. <label class="col-sm-2">联系电话:</label>
  123. <div class="col-sm-5">
  124. <input :disabled="!loginData.isSelf" :class="!validPhone.isValidPhone?'form-control error-box-border':'form-control'" type="text" v-model="data.phone" @input="phoneCheck()" name="name" required="" placeholder="例如:13838883888">
  125. </div>
  126. <div class="col-sm-5"></div>
  127. </div>
  128. <div class="row">
  129. <label class="col-sm-2">邮箱:</label>
  130. <div class="col-sm-5">
  131. <input type="text" :disabled="!loginData.isSelf" :class="!validEmail.isValidEmail?'form-control error-box-border':'form-control'" v-model="data.email" @input="emailCheck()" required="" placeholder="例如:123123@usoft.com">
  132. </div>
  133. <div class="col-sm-5"></div>
  134. </div>
  135. <div class="row">
  136. <label class="col-sm-2">企业传真:</label>
  137. <div class="col-sm-5">
  138. <input type="text" :disabled="!loginData.isSelf" :class="!validFax.isValidFax?'form-control error-box-border':'form-control'" v-model="data.fax" @input="faxCheck()" required="" placeholder="例如:0755-268XXXXX">
  139. </div>
  140. <div class="col-sm-5"></div>
  141. </div>
  142. <div class="row">
  143. <label class="col-sm-2">企业官网:</label>
  144. <div class="col-sm-5">
  145. <input type="text" :disabled="!loginData.isSelf" class="form-control" v-model="data.website" name="name" required="" placeholder="www.usoftchina.com" style="padding-left:55px;">
  146. <span class="web">http://</span>
  147. </div>
  148. <div class="col-sm-5"></div>
  149. </div>
  150. <div class="row">
  151. <label class="col-sm-2">行业:</label>
  152. <div class="col-sm-5 select-dot">
  153. <input type="text" readonly aria-haspopup="true" aria-expanded="false" @click="onShowProfession()" :style="!loginData.isSelf?'background-color: #eee;':''" :disabled="!loginData.isSelf" v-model="data.profession" class="form-control" name="name" required="" placeholder="请选择所在行业">
  154. <div v-show="showProfessionBox"
  155. @mouseenter="isInProfessionBox = true"
  156. @mouseleave="isInProfessionBox = false"
  157. style="display: block; left: 14px; width: 473px" class="dropdown-menu x-union-menu">
  158. <div class="x-union-list">
  159. <ul class="list-unstyled auto-width">
  160. <li v-for="profession in professionData.profession"
  161. :class="profession == currentProfession.profession ? 'active' : ''"
  162. v-text="profession"
  163. @click="getProfessionDetail(profession)"></li>
  164. </ul>
  165. <ul class="list-unstyled auto-width">
  166. <li v-for="detail in professionData.detail"
  167. :class="detail == currentProfession.detail ? 'active' : ''"
  168. v-text="detail"
  169. @click="chooseProfessionDetail(detail)"></li>
  170. </ul>
  171. <ul class="list-unstyled auto-width">
  172. <li v-for="detail in professionData.thirdDetail"
  173. :class="detail == currentProfession.thirdDetail ? 'active' : ''"
  174. v-text="detail"
  175. @click="chooseProfessionThirdDetail(detail)"></li>
  176. </ul>
  177. </div>
  178. </div>
  179. </div>
  180. <div class="col-sm-5"></div>
  181. </div>-->
  182. <!--<div class="row" >
  183. <label class="col-sm-2">企业LOGO:</label>
  184. <div class="col-sm-5">
  185. <input type="file" v-if="loginData.isSelf" @change="uploadLogo" class="form-control file-input upload-area" required="" accept="image/jpeg,image/jpg,image/gif,image/bmp,image/png">
  186. <div class="logo-img-area">
  187. <img class="preview-logo-img" :src="data.logoUrl && data.logoUrl != ''?data.logoUrl:'/images/all/upload-bg.png'" alt="">
  188. </div>
  189. </div>
  190. <div class="col-sm-5"><p v-show="!validLogo.isValidLogo"><i class="fa fa-info-circle"></i>logo大小不能超过100K</p></div>
  191. <div class="logo-text">个性化展示您的企业形象,图片不超过100Kb,建议宽x高=100x60</div>
  192. &lt;!&ndash; <div class="x-text-help" v-show="validUpload.isValidUpload && !validUpload.init">
  193. <i class="glyphicon glyphicon-ok x-icon-left"></i>
  194. </div>
  195. <div class="col-sm-5" v-show="!validUpload.isValidUpload && !validUpload.init"><p><i class="fa fa-info-circle"></i>请上传营业执照扫描件(≤5M的图片或PDF)</p></div>&ndash;&gt;
  196. </div>-->
  197. <!-- <div class="row">
  198. <label class="col-sm-2">经营范围标签:</label>
  199. <div class="col-sm-8">
  200. <div class="no-tags" v-if="!data.tagsData || data.tagsData.length == 0">暂无标签</div>
  201. <div class="tags-list">
  202. <ul>
  203. <li v-for="(tag, index) in data.tagsData"><span v-text="tag"></span><i v-if="loginData.isSelf" class="glyphicon glyphicon-remove" @click="removeTag(index)"></i></li>
  204. </ul>
  205. </div>
  206. </div>
  207. <div class="col-sm-5 tags-box" v-if="loginData.isSelf">
  208. <input type="text" @input="tagCheck()" class="form-control" v-model="tag" name="name" required="">
  209. <span class="add-tag-btn" @click="addTags()" >+添加标签</span>
  210. </div>
  211. <div class="col-sm-5" v-if="loginData.isSelf">
  212. <div class="x-text-tip">
  213. <i class="glyphicon glyphicon-info-sign x-icon-left"></i>标签长度不超过10个字
  214. </div>
  215. </div>
  216. <div class="col-sm-12 tags-lists" v-if="loginData.isSelf"><em class="pull-left">例如:</em><span>企业管理咨询</span><span>电子产品开发</span><span>货运代理</span></div>
  217. </div>-->
  218. <div class="row next-btn"><button class="btn" :style="loginData.isSelf && !isValid ? 'opacity: .65;':''" @click="sectionChange(2)">下一步</button></div>
  219. </div>
  220. </div>
  221. </template>
  222. <script>
  223. export default {
  224. data () {
  225. return {
  226. data: {
  227. name: '',
  228. // lawPerson: '',
  229. // url: '',
  230. licenceId: '',
  231. address: ''
  232. // linkman: '',
  233. // phone: '',
  234. // email: '',
  235. // fax: '',
  236. // website: '',
  237. // profession: '',
  238. // logoUrl: '',
  239. // tagsData: []
  240. },
  241. validName: {
  242. isValidTypeName: true,
  243. isValidName: true,
  244. init: true
  245. },
  246. // validUpload: {
  247. // isValidUpload: true,
  248. // init: true
  249. // },
  250. validLicence: {
  251. isValidLicence: true,
  252. init: true
  253. },
  254. validAddress: {
  255. isValidAddress: true,
  256. init: true
  257. },
  258. // validLawPerson: {
  259. // isValidLawPerson: true,
  260. // init: true
  261. // },
  262. // validPhone: {
  263. // isValidPhone: true,
  264. // init: true
  265. // },
  266. // validEmail: {
  267. // isValidEmail: true,
  268. // init: true
  269. // },
  270. // validFax: {
  271. // isValidFax: true,
  272. // init: true
  273. // },
  274. // validLogo: {
  275. // isValidLogo: true,
  276. // init: true
  277. // },
  278. isValid: false,
  279. // isPdf: false,
  280. showAddressBox: false,
  281. isInAddressBox: false,
  282. // showProfessionBox: false,
  283. // isInProfessionBox: false,
  284. temCityData: {},
  285. cityData: {
  286. province: [],
  287. city: [],
  288. district: []
  289. },
  290. address: {
  291. currentProvince: '',
  292. currentCity: '',
  293. currentDistrict: '',
  294. detail: ''
  295. }
  296. // tempProfession: {},
  297. // professionData: {
  298. // profession: [],
  299. // detail: [],
  300. // thirdDetail: []
  301. // },
  302. // currentProfession: {
  303. // profession: '',
  304. // detail: '',
  305. // thirdDetail: ''
  306. // },
  307. // tag: ''
  308. }
  309. },
  310. props: ['loginData', 'enterpriseData', 'businessImgUrl'],
  311. watch: {
  312. enterpriseData: function (val, oldVal) {
  313. if (val.name) { // 个人
  314. this.initData(val)
  315. this.nameCheck(3)
  316. this.nameTypeCheck()
  317. this.licenceCheck(3)
  318. this.addressCheck()
  319. // this.imgUrlCheck()
  320. // this.lawPersonCheck()
  321. // this.phoneCheck()
  322. // this.emailCheck()
  323. // this.faxCheck()
  324. this.checkFullData()
  325. this.submitRegisterData()
  326. }
  327. if (val.uu) { // 企业
  328. this.initData(val)
  329. // this.nameCheck(3)
  330. // this.nameTypeCheck()
  331. // this.licenceCheck(3)
  332. this.enAddressCheck()
  333. // this.imgUrlCheck()
  334. // this.lawPersonCheck()
  335. // this.phoneCheck()
  336. // this.emailCheck()
  337. // this.faxCheck()
  338. // this.checkFullData()
  339. this.submitRegisterData()
  340. }
  341. }
  342. // businessImgUrl: function (val, oldVal) {
  343. // this.data.url = val
  344. // this.checkFullData()
  345. // this.submitRegisterData()
  346. // }
  347. },
  348. mounted () {
  349. this.$http.get('/data/city.json').then(response => {
  350. this.temCityData = response.data
  351. for (let province in response.data) {
  352. this.cityData.province.push(province)
  353. }
  354. })
  355. // this.$http.get('/data/profession.json').then(response => {
  356. // this.tempProfession = response.data
  357. // for (let profession in response.data) {
  358. // this.professionData.profession.push(profession)
  359. // }
  360. // })
  361. },
  362. methods: {
  363. initData: function (val) {
  364. this.data.name = val.spaceName || val.enName || val.name || ''
  365. this.data.licenceId = val.businessCode || val.licenceId || val.enBussinessCode || ''
  366. this.data.address = val.address || val.enAddress || ''
  367. },
  368. sectionChange: function (type) {
  369. if (!this.isValid) {
  370. this.$message.error('请填写正确的注册信息')
  371. } else {
  372. if (this.enterpriseData.uu) {
  373. this.enCheckFullData()
  374. } else {
  375. this.checkFullData()
  376. }
  377. let enterprise = this.data
  378. // enterprise.tagsData = enterprise.tagsData.toString()
  379. // if (typeof this.data.tagsData === 'string') {
  380. // this.data.tagsData = this.data.tagsData.split(',')
  381. // }
  382. let data = {}
  383. data.enterprise = enterprise
  384. data.isValidRegister = this.isValid
  385. // data.url = this.data.url
  386. enterprise.enIsRead = false
  387. // enterprise.enBussinessCodeImage = this.data.url
  388. // 个人用户,提交保存缓存企业信息
  389. if (this.loginData.isSelf) {
  390. this.$http.post('/basic/user/userCacheEnterprise', enterprise)
  391. this.$emit('isSelfCacheDataAction', enterprise)
  392. } else { // 企业用户,更新当前企业信息,主要是更新企业地址
  393. this.enterpriseData.enAddress = this.data.address
  394. this.$http.post('/basic/enterprise/' + this.enterpriseData.uu + '/updateInfo', this.enterpriseData)
  395. }
  396. this.$emit('registerAction', data)
  397. this.$emit('sectionEvent', type)
  398. // this.$emit('businessImgUrlAction', this.data.url)
  399. }
  400. },
  401. // upload: function (e) {
  402. // let file = e.target.files[0]
  403. // this.validUpload.init = false
  404. // if (file.size > 5 * 1024 * 1024) {
  405. // this.validUpload.isValidUpload = false
  406. // } else {
  407. // this.validUpload.isValidUpload = true
  408. // if (file.type !== 'application/pdf') {
  409. // this.isPdf = false
  410. // let param = new FormData()
  411. // param.append('file', file, file.name)
  412. // param.append('chunk', '0')
  413. // let config = {
  414. // headers: {'Content-Type': 'multipart/form-data'}
  415. // }
  416. // this.$http.post('/api/images', param, config)
  417. // .then(response => {
  418. // this.data.url = response.data[0].path
  419. // this.$emit('businessImgUrlAction', this.data.url)
  420. // }, err => {
  421. // console.log(err)
  422. // this.validUpload.isValidUpload = false
  423. // })
  424. // } else {
  425. // let param = new FormData()
  426. // param.append('file', file, file.name)
  427. // let config = {
  428. // headers: {'Content-Type': file.type}
  429. // }
  430. // this.$http.post('/file', param, config)
  431. // .then(response => {
  432. // this.isPdf = true
  433. // this.data.url = response.data[0].path
  434. // this.$emit('businessImgUrlAction', this.data.url)
  435. // }, err => {
  436. // console.log(err)
  437. // this.validUpload.isValidUpload = false
  438. // })
  439. // }
  440. // }
  441. // this.validCheck()
  442. // },
  443. // uploadLogo: function (e) {
  444. // this.validLogo.init = false
  445. // let file = e.target.files[0]
  446. // if (file.size > 100 * 1024) {
  447. // this.validLogo.isValidLogo = false
  448. // // this.$message.error('图片请勿超过100Kb')
  449. // } else {
  450. // let param = new FormData()
  451. // param.append('file', file, file.name)
  452. // let config = {
  453. // headers: {'Content-Type': file.type}
  454. // }
  455. // this.$http.post('/api/images', param, config)
  456. // .then(response => {
  457. // this.validLogo.isValidLogo = true
  458. // this.data.logoUrl = response.data[0].path
  459. // }, err => {
  460. // console.log(err)
  461. // this.$message.error('图片上传失败')
  462. // })
  463. // }
  464. // },
  465. validCheck: function () {
  466. this.isValid =
  467. // this.validUpload.isValidUpload && !this.validUpload.init &&
  468. this.validName.isValidTypeName && !this.validName.init && this.validName.isValidName &&
  469. this.validLicence.isValidLicence && !this.validLicence.init &&
  470. this.validAddress.isValidAddress && !this.validAddress.init
  471. // this.validLawPerson.isValidLawPerson && !this.validLawPerson.init &&
  472. // (this.validPhone.init || this.validPhone.isValidPhone) &&
  473. // (this.validEmail.init || this.validEmail.isValidEmail) &&
  474. // (this.validFax.init || this.validFax.isValidFax)
  475. },
  476. enValidCheck: function () {
  477. this.isValid = this.validAddress.isValidAddress && !this.validAddress.init
  478. },
  479. checkFullData: function () {
  480. this.isValid =
  481. // this.validUpload.isValidUpload &&
  482. this.validName.isValidTypeName && this.validName.isValidName &&
  483. this.validLicence.isValidLicence &&
  484. this.validAddress.isValidAddress
  485. // this.validLawPerson.isValidLawPerson
  486. },
  487. enCheckFullData: function () {
  488. this.isValid = this.validAddress.isValidAddress
  489. },
  490. // 企业名称字符验证
  491. nameTypeCheck: function () {
  492. this.validName.isValidTypeName = this.data.name !== '' && this.data.name.length >= 2 && this.data.name.length <= 99 && this.commonValid(this.data.name)
  493. this.validName.init = false
  494. },
  495. // 企业名称是否已存在验证
  496. nameCheck: function (num) {
  497. if (num > 0) {
  498. this.$http.post('/basic/enterprise/register/valid/name?name=' + this.data.name)
  499. .then(response => {
  500. if (response.data.code !== 12) {
  501. this.validName.init = false
  502. this.validName.isValidName = response.data.success
  503. this.validCheck()
  504. } else {
  505. this.nameCheck(num - 1)
  506. }
  507. })
  508. }
  509. },
  510. // imgUrlCheck: function () {
  511. // this.validUpload.init = false
  512. // this.validUpload.isValidUpload = this.data.url !== ''
  513. // },
  514. licenceCheck: function (num) {
  515. if ((/^[\S-]{1,255}$/).test(this.data.licenceId)) {
  516. if (num > 0) {
  517. this.$http.post('/basic/enterprise/register/valid/businessCode?businessCode=' + this.data.licenceId)
  518. .then(response => {
  519. if (response.data.code !== 12) {
  520. this.validLicence.init = false
  521. this.validLicence.isValidLicence = response.data.success && this.data.licenceId
  522. this.validCheck()
  523. } else {
  524. // this.validLicence.init = tmpInit
  525. this.licenceCheck(num - 1)
  526. }
  527. })
  528. }
  529. } else {
  530. this.validLicence.init = false
  531. this.validLicence.isValidLicence = false
  532. this.validCheck()
  533. }
  534. },
  535. // 个人地址校验
  536. addressCheck: function () {
  537. this.validAddress.init = false
  538. this.validAddress.isValidAddress = this.data.address !== ''
  539. this.validCheck()
  540. },
  541. // 企业地址校验
  542. enAddressCheck: function () {
  543. this.validAddress.init = false
  544. this.validAddress.isValidAddress = this.data.address !== ''
  545. this.enValidCheck()
  546. },
  547. // lawPersonCheck: function () {
  548. // this.validLawPerson.init = false
  549. // this.validLawPerson.isValidLawPerson = (/^\S{1,255}$/).test(this.data.lawPerson)
  550. // this.validCheck()
  551. // },
  552. // phoneCheck: function () {
  553. // this.validPhone.init = false
  554. // this.validPhone.isValidPhone = (/^[\d-]{8,}$/).test(this.data.phone) || this.data.phone === ''
  555. // this.validCheck()
  556. // },
  557. // emailCheck: function () {
  558. // this.validEmail.init = false
  559. // this.validEmail.isValidEmail = (/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/).test(this.data.email) || this.data.email === ''
  560. // this.validCheck()
  561. // },
  562. // faxCheck: function () {
  563. // this.validFax.init = false
  564. // this.validFax.isValidFax = (/^(([\0]\d{2,3}-)?(0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/).test(this.data.fax) || this.data.fax === ''
  565. // this.validCheck()
  566. // },
  567. commonValid: function (str) {
  568. return str.indexOf(' ') === -1
  569. },
  570. submitRegisterData: function () {
  571. let enterprise = this.data
  572. let data = {}
  573. data.enterprise = enterprise
  574. data.isValidRegister = this.isValid
  575. // data.url = this.data.url
  576. this.$emit('registerAction', data)
  577. },
  578. onHideBox: function () {
  579. this.onHideAddress()
  580. // this.onHideProfession()
  581. },
  582. onShowAddress: function () {
  583. if (this.showAddressBox) {
  584. this.onHideAddress()
  585. } else {
  586. this.showAddressBox = true
  587. this.isClickInputAddress = true
  588. }
  589. },
  590. onHideAddress: function () {
  591. if (!this.isInAddressBox && !this.isClickInputAddress) {
  592. this.showAddressBox = false
  593. }
  594. this.isClickInputAddress = false
  595. },
  596. // onShowProfession: function () {
  597. // if (this.showProfessionBox) {
  598. // this.onHideProfession()
  599. // } else {
  600. // this.showProfessionBox = true
  601. // this.isClickInputProfession = true
  602. // }
  603. // },
  604. // onHideProfession: function () {
  605. // if (!this.isInProfessionBox && !this.isClickInputProfession) {
  606. // this.showProfessionBox = false
  607. // }
  608. // this.isClickInputProfession = false
  609. // },
  610. getCity: function (province) {
  611. this.cityData.city = []
  612. this.address.currentCity = ''
  613. this.cityData.district = []
  614. this.address.currentDistrict = ''
  615. this.address.currentProvince = province
  616. for (let item in this.temCityData[province]) {
  617. this.cityData.city.push(item)
  618. }
  619. },
  620. getDistrict: function (city) {
  621. this.address.currentCity = city
  622. this.address.currentDistrict = ''
  623. this.cityData.district = this.temCityData[this.address.currentProvince][city]
  624. },
  625. chooseDistrict: function (district) {
  626. this.address.currentDistrict = district
  627. },
  628. submitAddress: function () {
  629. if (this.address.currentDistrict !== '' && this.address.currentCity !== '' && this.address.currentProvince !== '') {
  630. if (this.address.detail !== '') {
  631. this.data.address = this.address.currentProvince + this.address.currentCity + this.address.currentDistrict + this.address.detail
  632. this.showAddressBox = false
  633. if (this.enterpriseData.uu) {
  634. this.enAddressCheck()
  635. } else {
  636. this.addressCheck()
  637. }
  638. } else {
  639. this.$message.error('请输入详细地址')
  640. }
  641. } else {
  642. this.$message.error('请输入省、市、区')
  643. }
  644. },
  645. // getProfessionDetail: function (profession) {
  646. // this.currentProfession.profession = profession
  647. // this.currentProfession.detail = ''
  648. // this.professionData.detail = []
  649. // this.currentProfession.thirdDetail = ''
  650. // this.professionData.thirdDetail = []
  651. // let _this = this
  652. // _this.professionData.detail = []
  653. // for (let item in this.tempProfession[profession]) {
  654. // if (typeof this.tempProfession[profession][item] !== 'object') {
  655. // _this.professionData.detail.push(this.tempProfession[profession][item])
  656. // } else {
  657. // _this.professionData.detail.push(item)
  658. // }
  659. // }
  660. // },
  661. // chooseProfessionDetail: function (detail) {
  662. // this.currentProfession.detail = detail
  663. // this.currentProfession.thirdDetail = ''
  664. // this.professionData.thirdDetail = []
  665. // if (typeof this.tempProfession[this.currentProfession.profession][detail] !== 'object') {
  666. // this.data.profession = detail
  667. // this.showProfessionBox = false
  668. // } else {
  669. // this.professionData.thirdDetail = this.tempProfession[this.currentProfession.profession][detail]
  670. // }
  671. // },
  672. // chooseProfessionThirdDetail: function (thirdDetail) {
  673. // this.currentProfession.thirdDetail = thirdDetail
  674. // this.data.profession = thirdDetail
  675. // this.showProfessionBox = false
  676. // },
  677. // tagCheck: function () {
  678. // if (this.tag.length > 10) {
  679. // this.tag = this.tag.substring(0, 10)
  680. // }
  681. // },
  682. // addTags: function () {
  683. // let flag = true
  684. // let _this = this
  685. // if (!this.tag || this.tag === '') {
  686. // flag = false
  687. // } else {
  688. // this.data.tagsData.forEach(function (item) {
  689. // if (item === _this.tag) {
  690. // flag = false
  691. // }
  692. // })
  693. // }
  694. // if (flag) {
  695. // this.data.tagsData.push(this.tag)
  696. // this.tag = ''
  697. // } else {
  698. // this.tag = ''
  699. // }
  700. // },
  701. // removeTag: function (index) {
  702. // this.data.tagsData.splice(index, 1)
  703. // },
  704. onDetailAddressInput: function () {
  705. this.address.detail = this.address.detail.trim()
  706. }
  707. }
  708. }
  709. </script>
  710. <style scoped>
  711. .register{
  712. height: 700px;
  713. }
  714. .register input[type="file"] {
  715. display: block;
  716. }
  717. .previewImg {
  718. max-height: 200px;
  719. max-width: 200px;
  720. margin-top: 5px;
  721. }
  722. .x-union-menu {
  723. width: 600px
  724. }
  725. .x-union-header{
  726. margin-top: -40px;
  727. }
  728. .x-union-header>div{
  729. background: #f5f8fa;
  730. font-weight: 700;
  731. border-bottom: 1px solid #e4ecf3;
  732. }
  733. .x-union-header>div,.x-union-list>ul {
  734. float: left;
  735. width: 121px;
  736. border-right: 1px solid #e4ecf3;
  737. }
  738. .x-union-list>ul {
  739. height: 200px;
  740. margin: 0;
  741. overflow-y: auto;
  742. }
  743. .x-union-menu .x-item-ext {
  744. float: left;
  745. width: 235px;
  746. }
  747. .x-union-list .x-item-ext {
  748. padding: 10px
  749. }
  750. .x-union-header>div:last-child {
  751. border-right-width: 0
  752. }
  753. .x-union-header>div,.x-union-list>ul>li {
  754. padding: 2px 10px;
  755. cursor: pointer;
  756. }
  757. .x-union-list>ul>li:hover,.x-union-list>ul>li.active {
  758. background: #fee9c7;
  759. }
  760. .x-input {
  761. border-color: #ccc;
  762. border-radius: 0;
  763. box-shadow: none;
  764. }
  765. textarea.form-control {
  766. height: auto;
  767. }
  768. .text-right {
  769. text-align: right;
  770. }
  771. .register-btn {
  772. padding: 5px 10px;
  773. font-size: 12px;
  774. line-height: 1.5;
  775. }
  776. .btn-submit {
  777. background: #5078cb;
  778. color: #fff;
  779. }
  780. .btn-console {
  781. border: 1px solid #ccc;
  782. background: #fff;
  783. color: #888;
  784. margin-left: 5px;
  785. transition: all .2s ease-in-out;
  786. }
  787. .btn-console:hover {
  788. border: 1px solid #adadad;
  789. background: #e6e6e6;
  790. color: #333;
  791. }
  792. .x-text-help {
  793. color: green;
  794. }
  795. .register .row .upload-area {
  796. width: 130px;
  797. height: 130px;
  798. left: 15px;
  799. padding: 0;
  800. z-index: 100;
  801. }
  802. .error-box-border {
  803. border-color: #f4645f!important;
  804. }
  805. .x-btn-blank:hover, .x-btn-blank[disabled] {
  806. border: 1px solid #adadad;
  807. background: #e6e6e6;
  808. color: #333;
  809. }
  810. .register .row .auto-width {
  811. width: auto!important;
  812. }
  813. .select-dot input {
  814. background: url("../../../static/images/all/dot.png") no-repeat;
  815. background-position-x: 353px;
  816. background-position-y: 10px;
  817. }
  818. .register .row .logo-text {
  819. font-size: 12px;
  820. width: 180px;
  821. position: relative;
  822. top: 5px;
  823. left: 175px;
  824. text-align: center;
  825. color: #999;
  826. line-height: 20px;
  827. }
  828. .logo-img-area {
  829. width: 130px;
  830. height: 130px;
  831. }
  832. .logo-img-area .preview-logo-img {
  833. max-width: 130px;
  834. max-height: 130px;
  835. }
  836. .no-tags {
  837. float: left;
  838. padding: 2px 14px;
  839. line-height: 20px;
  840. border: #5078cb 1px solid;
  841. border-radius: 5px;
  842. font-size: 12px;
  843. margin: 0 3px;
  844. background: #5078cb;
  845. color: #fff;
  846. margin-top: 5px;
  847. }
  848. .register .row .add-tag-btn {
  849. position: absolute;
  850. right: 24px;
  851. color: #5078cb;
  852. font-size: 12px;
  853. cursor: pointer;
  854. }
  855. .register .row .tags-box {
  856. margin-top: 15px;
  857. }
  858. .register .row p {
  859. color: red;
  860. }
  861. .register .row .form-control:focus{
  862. border-color: #5078cb;
  863. box-shadow: none;
  864. }
  865. .x-input:focus, .x-input-blank:focus {
  866. border-color: #5078cb;
  867. box-shadow: none;
  868. }
  869. .register .row .fa-map-marker{
  870. position: relative;
  871. top: -34px;
  872. left: -5px;
  873. }
  874. .register .row .tags-list ul{
  875. list-style: none;
  876. }
  877. .register .row .tags-list ul li {
  878. display: inline-block;
  879. padding: 2px 14px;
  880. line-height: 20px;
  881. border: #5078cb 1px solid;
  882. border-radius: 5px;
  883. font-size: 12px;
  884. color: #5078cb;
  885. margin: 0 3px;
  886. }
  887. .register .row .tags-list ul li i{
  888. font-size: 12px;
  889. color: red;
  890. position: relative;
  891. top: -3px;
  892. right: -12px;
  893. }
  894. .register .row .tags-lists {
  895. margin-top: 10px;
  896. }
  897. .register .row .tags-lists em {
  898. font-style: inherit;
  899. margin-left: 163px;
  900. font-size: 12px;
  901. color: #999;
  902. }
  903. .register .row .tags-lists span {
  904. float: left;
  905. padding: 2px 14px;
  906. line-height: 20px;
  907. border: #5078cb 1px solid;
  908. border-radius: 5px;
  909. font-size: 12px;
  910. color: #5078cb;
  911. margin: 0 3px;
  912. }
  913. .register .row .x-text-tip {
  914. color: #777;
  915. margin-top: 15px;
  916. }
  917. .register .row .x-text-tip i {
  918. margin-right: 5px;
  919. }
  920. </style>