registerFirst.vue 46 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109
  1. <template>
  2. <div class="app-container">
  3. <div class="content">
  4. <el-form ref="form" :model="form" :rules="registerRules" label-width="200px">
  5. <template v-if="tokenVisile">
  6. <table class="table_register media">
  7. <tr>
  8. <th rowspan="6" style="width: 10%;">企业信息</th>
  9. <th><span style="color: red;">*</span>企业名称</th>
  10. <td>
  11. <el-form-item label-width="0" prop="entName">
  12. <el-input v-model="form.entName" type="text" auto-complete="off" placeholder="请输入企业名称">
  13. </el-input>
  14. </el-form-item>
  15. </td>
  16. <th><span style="color: red;">*</span>统一社会信用代码</th>
  17. <td>
  18. <el-form-item label-width="0" prop="license">
  19. <el-input type="text" @change="validLicense"
  20. v-model="form.license"
  21. placeholder="请输入统一社会信用代码">
  22. </el-input>
  23. </el-form-item>
  24. </td>
  25. </tr>
  26. <tr>
  27. <th><span style="color: red;">*</span>注册资金</th>
  28. <td>
  29. <el-form-item label-width="0" prop="regCapital">
  30. <el-input type="text"
  31. v-model="form.regCapital"
  32. placeholder="请输入注册资金">
  33. <template slot="append">万元</template>
  34. </el-input>
  35. </el-form-item>
  36. </td>
  37. <th><span style="color: red;">*</span>工商注册时间</th>
  38. <td>
  39. <el-form-item label-width="0" prop="regDate">
  40. <el-date-picker v-model="form.regDate" type="date" placeholder="选择日期" value-format="yyyy-MM-dd"></el-date-picker>
  41. </el-form-item>
  42. </td>
  43. </tr>
  44. <tr>
  45. <th><span style="color: red;">*</span>工商注册类型</th>
  46. <td>
  47. <el-form-item label-width="0" prop="regType">
  48. <el-select v-model="form.regType" filterable>
  49. <el-option v-for="item in regTypeOptions" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue"></el-option>
  50. </el-select>
  51. </el-form-item>
  52. </td>
  53. <th><span style="color: red;">*</span>主营产品(服务)所属技术领域</th>
  54. <td>
  55. <el-form-item label-width="0" prop="mainProducts">
  56. <el-select v-model="form.mainProducts" style="width: 220px;" filterable>
  57. <el-option v-for="(item,index) in mainProductsOptions" :label="item.dictLabel" :key="index" :value="item.dictValue">{{item.dictLabel}}</el-option>
  58. </el-select>
  59. </el-form-item>
  60. </td>
  61. </tr>
  62. <tr>
  63. <th><span style="color: red;">*</span>通信地址</th>
  64. <td>
  65. <el-form-item label-width="0" prop="address">
  66. <el-input v-model="form.address" type="text" auto-complete="off" placeholder="请输入通信地址">
  67. </el-input>
  68. </el-form-item>
  69. </td>
  70. <th><span style="color: red;">*</span>邮政编码</th>
  71. <td>
  72. <el-form-item label-width="0" prop="zipCode">
  73. <el-input v-model="form.zipCode" type="text" auto-complete="off" placeholder="请输入邮政编码">
  74. </el-input>
  75. </el-form-item>
  76. </td>
  77. </tr>
  78. <tr>
  79. <th><span style="color: red;">*</span>企业所属行政区域</th>
  80. <td colspan="3">
  81. <el-col :span="8">
  82. <el-form-item label-width="0" prop="provinceId">
  83. <el-select v-model="form.provinceId" placeholder="省" @change="getCityData" style="width: 220px;" filterable>
  84. <el-option v-for="(item,index) in provinceDataList" :key="index" :label="item.name" :value="item.id"></el-option>
  85. </el-select>
  86. </el-form-item>
  87. </el-col>
  88. <el-col :span="8">
  89. <el-form-item prop="cityId" label-width="0px">
  90. <el-select v-model="form.cityId" placeholder="市" @change="getDistrictData" style="width: 220px;" filterable>
  91. <el-option v-for="(item, index) in cityDataList" :key="index" :label="item.name" :value="item.id"></el-option>
  92. </el-select>
  93. </el-form-item>
  94. </el-col>
  95. <el-col :span="8">
  96. <el-form-item label-width="0px" prop="districtId">
  97. <el-select v-model="form.districtId" placeholder="区" style="width: 220px;" filterable>
  98. <el-option v-for="(item, index) in districtDataList" :key="index" :label="item.name" :value="item.id"></el-option>
  99. </el-select>
  100. </el-form-item>
  101. </el-col>
  102. </td>
  103. </tr>
  104. <tr>
  105. <th><span style="color: red;">*</span>企业所得税主管税务机关</th>
  106. <td colspan="3">
  107. <el-form-item label-width="0" prop="taxOffice">
  108. <el-input v-model="form.taxOffice" type="text" auto-complete="off" placeholder="请输入企业所得税主管税务机关" disabled>
  109. </el-input>
  110. </el-form-item>
  111. </td>
  112. </tr>
  113. <tr>
  114. <th rowspan="3">法人信息</th>
  115. <th><span style="color: red;">*</span>姓名</th>
  116. <td>
  117. <el-form-item label-width="0" prop="legalName">
  118. <el-input v-model="form.legalName" type="text" auto-complete="off" placeholder="请输入法人姓名">
  119. </el-input>
  120. </el-form-item>
  121. </td>
  122. <th><span style="color: red;">*</span>身份证号码</th>
  123. <td>
  124. <el-form-item label-width="0" prop="legalIdCard">
  125. <el-input v-model="form.legalIdCard" type="text" auto-complete="off" placeholder="请输入法人身份证号码">
  126. </el-input>
  127. </el-form-item>
  128. </td>
  129. </tr>
  130. <tr>
  131. <th><span style="color: red;">*</span>手机号码</th>
  132. <td>
  133. <el-form-item label-width="0" prop="legalMobile">
  134. <el-input v-model="form.legalMobile" type="text" auto-complete="off" placeholder="手机号码">
  135. </el-input>
  136. </el-form-item>
  137. </td>
  138. <th>固定电话</th>
  139. <td>
  140. <el-form-item label-width="0" prop="legalPhone">
  141. <el-input v-model="form.legalPhone" type="text" auto-complete="off" placeholder="请输入固定电话">
  142. </el-input>
  143. </el-form-item>
  144. </td>
  145. </tr>
  146. <tr>
  147. <th>传真</th>
  148. <td>
  149. <el-form-item label-width="0" prop="legalFax">
  150. <el-input v-model="form.legalFax" type="text" auto-complete="off" placeholder="请输入法人传真">
  151. </el-input>
  152. </el-form-item>
  153. </td>
  154. <th>E-mail</th>
  155. <td>
  156. <el-form-item label-width="0" prop="legalEmail">
  157. <el-input v-model="form.legalEmail" type="text" auto-complete="off" placeholder="请输入法人邮箱">
  158. </el-input>
  159. </el-form-item>
  160. </td>
  161. </tr>
  162. <tr>
  163. <th rowspan="3">联系人信息</th>
  164. <th><span style="color: red;">*</span>姓名</th>
  165. <td>
  166. <el-form-item label-width="0" prop="linkName">
  167. <el-input v-model="form.linkName" type="text" auto-complete="off" placeholder="请输入联系人姓名">
  168. </el-input>
  169. </el-form-item>
  170. </td>
  171. <th><span style="color: red;">*</span>身份证号码</th>
  172. <td>
  173. <el-form-item label-width="0" prop="linkIdCard">
  174. <el-input v-model="form.linkIdCard" type="text" auto-complete="off" placeholder="请输入联系人身份证号码">
  175. </el-input>
  176. </el-form-item>
  177. </td>
  178. </tr>
  179. <tr>
  180. <th><span style="color: red;">*</span>手机号码</th>
  181. <td>
  182. <el-form-item label-width="0" prop="linkMobile">
  183. <el-input v-model="form.linkMobile" type="text" auto-complete="off" placeholder="请填入手机号码">
  184. </el-input>
  185. </el-form-item>
  186. </td>
  187. <th>固定电话</th>
  188. <td>
  189. <el-form-item label-width="0" prop="linkPhone">
  190. <el-input v-model="form.linkPhone" type="text" auto-complete="off" placeholder="请输入联系人固定电话">
  191. </el-input>
  192. </el-form-item>
  193. </td>
  194. </tr>
  195. <tr>
  196. <th>传真</th>
  197. <td>
  198. <el-form-item label-width="0" prop="linkFax">
  199. <el-input v-model="form.linkFax" type="text" auto-complete="off" placeholder="请输入联系人传真">
  200. </el-input>
  201. </el-form-item>
  202. </td>
  203. <th>E-mail</th>
  204. <td>
  205. <el-form-item label-width="0" prop="linkEmail">
  206. <el-input v-model="form.linkEmail" type="text" auto-complete="off" placeholder="请输入联系人邮箱">
  207. </el-input>
  208. </el-form-item>
  209. </td>
  210. </tr>
  211. <tr>
  212. <th>企业上市信息</th>
  213. <th><span style="color: red;">*</span>企业是否上市</th>
  214. <td>
  215. <el-form-item label-width="0" prop="listedFlag">
  216. <el-radio-group v-model="form.listedFlag">
  217. <el-radio v-for="(item, index) in yesOrNoOptions" :key="index" :label="item.dictValue">{{item.dictLabel}}</el-radio>
  218. </el-radio-group>
  219. </el-form-item>
  220. </td>
  221. <template v-if="form.listedFlag == 1">
  222. <th><span style="color: red;">*</span>企业上市代码</th>
  223. <td>
  224. <el-form-item label-width="0" prop="listingCode">
  225. <el-input v-model="form.listingCode" type="text" auto-complete="off" placeholder="请输入企业上市代码">
  226. </el-input>
  227. </el-form-item>
  228. </td>
  229. </template>
  230. </tr>
  231. <tr>
  232. <th>风险投资信息</th>
  233. <th><span style="color: red;">*</span>是否引入风险投资</th>
  234. <td>
  235. <el-form-item label-width="0" prop="investFlag">
  236. <el-radio-group v-model="form.investFlag">
  237. <el-radio v-for="(item, index) in yesOrNoOptions" :key="index" :label="item.dictValue">{{item.dictLabel}}</el-radio>
  238. </el-radio-group>
  239. </el-form-item>
  240. </td>
  241. <template v-if="form.investFlag == 1">
  242. <th><span style="color: red;">*</span>风险投资金额</th>
  243. <td>
  244. <el-form-item label-width="0" prop="investCapital">
  245. <el-input v-model="form.investCapital" type="text" auto-complete="off" placeholder="请输入风险投资金额">
  246. <template slot="append">万元</template>
  247. </el-input>
  248. </el-form-item>
  249. </td>
  250. </template>
  251. </tr>
  252. <tr>
  253. <th>高新企业</th>
  254. <th><span style="color: red;">*</span>是否为高新企业</th>
  255. <td>
  256. <el-form-item label-width="0" prop="techFlag">
  257. <el-radio-group v-model="form.techFlag">
  258. <el-radio v-for="(item, index) in yesOrNoOptions" :key="index" :label="item.dictValue">{{item.dictLabel}}</el-radio>
  259. </el-radio-group>
  260. </el-form-item>
  261. </td>
  262. <template v-if="form.techFlag == 1">
  263. <th><span style="color: red;">*</span>高新企业编号</th>
  264. <td>
  265. <el-form-item label-width="0" prop="techCode">
  266. <el-input v-model="form.techCode" type="text" auto-complete="off" placeholder="请输入高新企业编号">
  267. </el-input>
  268. </el-form-item>
  269. </td>
  270. </template>
  271. </tr>
  272. <tr>
  273. <th>上年度是否做加计扣除</th>
  274. <th><span style="color: red;">*</span>上年度是否做加计扣除</th>
  275. <td>
  276. <el-form-item label-width="0" prop="deductionFlag">
  277. <el-radio-group v-model="form.deductionFlag">
  278. <el-radio v-for="(item, index) in yesOrNoOptions" :key="index" :label="item.dictValue">{{item.dictLabel}}</el-radio>
  279. </el-radio-group>
  280. </el-form-item>
  281. </td>
  282. </tr>
  283. <tr>
  284. <th rowspan="2">附件</th>
  285. <th><span style="color: red;">*</span>企业营业执照</th>
  286. <td colspan="3">
  287. <el-form-item label-width="3" prop="licensePath" ref="licenseUpload">
  288. <ImageUpload @input="handleLicenseSuccess" :params="params" :limit="limit" :value="form.licensePath" :fileSize="fileSize"></ImageUpload>
  289. <!-- <FileUpload :file="{url: form.licensePath, name: form.fileName}" @input="handleSuccess">上传材料</FileUpload> -->
  290. </el-form-item>
  291. </td>
  292. </tr>
  293. <tr>
  294. <th>其他附件</th>
  295. <td colspan="3">
  296. <el-form-item label-width="0" prop="attachIds">
  297. <FileUpload :files="form.fileList" @input="handleSaleSuccess" :multiple="true" :params="params">上传材料</FileUpload>
  298. </el-form-item>
  299. </td>
  300. </tr>
  301. <tr>
  302. <th>文件水印</th>
  303. <th>文件水印</th>
  304. <td colspan="3">
  305. <el-form-item label-width="0" prop="logo" ref="logoUpload">
  306. <ImageUpload @input="handleLogoSuccess" :params="params" :limit="limit" :value="form.logo" :fileSize="fileSize"></ImageUpload>
  307. <!-- <ImageUpload @input="handleLogoSuccess"></ImageUpload> -->
  308. </el-form-item>
  309. </td>
  310. </tr>
  311. </table>
  312. </template>
  313. <template v-if="tokenVisile">
  314. <table class="table_register media-short">
  315. <tr>
  316. <th rowspan="10" style="width: 10%;">企业信息</th>
  317. <th><span style="color: red;">*</span>企业名称</th>
  318. <td colspan="3">
  319. <el-form-item label-width="0" prop="entName">
  320. <el-input v-model="form.entName" type="text" auto-complete="off" placeholder="请输入企业名称" style="width: 220px;">
  321. </el-input>
  322. </el-form-item>
  323. </td>
  324. </tr>
  325. <tr>
  326. <th><span style="color: red;">*</span>统一社会信用代码</th>
  327. <td colspan="3">
  328. <el-form-item label-width="0" prop="license">
  329. <el-input type="text" @change="validLicense" style="width: 220px;"
  330. v-model="form.license"
  331. placeholder="请输入统一社会信用代码">
  332. </el-input>
  333. </el-form-item>
  334. </td>
  335. </tr>
  336. <tr>
  337. <th><span style="color: red;">*</span>注册资金</th>
  338. <td colspan="3">
  339. <el-form-item label-width="0" prop="regCapital">
  340. <el-input type="text" style="width: 220px;"
  341. v-model="form.regCapital"
  342. placeholder="请输入注册资金">
  343. <template slot="append">万元</template>
  344. </el-input>
  345. </el-form-item>
  346. </td>
  347. </tr>
  348. <tr>
  349. <th><span style="color: red;">*</span>工商注册时间</th>
  350. <td colspan="3">
  351. <el-form-item label-width="0" prop="regDate">
  352. <el-date-picker v-model="form.regDate" type="date" placeholder="选择日期" value-format="yyyy-MM-dd" style="width: 220px;"></el-date-picker>
  353. </el-form-item>
  354. </td>
  355. </tr>
  356. <tr>
  357. <th><span style="color: red;">*</span>工商注册类型</th>
  358. <td colspan="3">
  359. <el-form-item label-width="0" prop="regType">
  360. <el-select v-model="form.regType" filterable style="width: 220px;">
  361. <el-option v-for="item in regTypeOptions" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue"></el-option>
  362. </el-select>
  363. </el-form-item>
  364. </td>
  365. </tr>
  366. <tr>
  367. <th><span style="color: red;">*</span>主营产品(服务)所属技术领域</th>
  368. <td colspan="3">
  369. <el-form-item label-width="0" prop="mainProducts">
  370. <el-select v-model="form.mainProducts" style="width: 220px;" filterable>
  371. <el-option v-for="(item,index) in mainProductsOptions" :label="item.dictLabel" :key="index" :value="item.dictValue">{{item.dictLabel}}</el-option>
  372. </el-select>
  373. </el-form-item>
  374. </td>
  375. </tr>
  376. <tr>
  377. <th><span style="color: red;">*</span>通信地址</th>
  378. <td colspan="3">
  379. <el-form-item label-width="0" prop="address">
  380. <el-input v-model="form.address" type="text" auto-complete="off" placeholder="请输入通信地址" style="width: 220px;">
  381. </el-input>
  382. </el-form-item>
  383. </td>
  384. </tr>
  385. <tr>
  386. <th><span style="color: red;">*</span>邮政编码</th>
  387. <td colspan="3">
  388. <el-form-item label-width="0" prop="zipCode">
  389. <el-input v-model="form.zipCode" type="text" auto-complete="off" placeholder="请输入邮政编码" style="width: 220px;">
  390. </el-input>
  391. </el-form-item>
  392. </td>
  393. </tr>
  394. <tr>
  395. <th><span style="color: red;">*</span>企业所属行政区域</th>
  396. <td colspan="3">
  397. <el-col :span="24">
  398. <el-form-item label-width="0" prop="provinceId">
  399. <el-select v-model="form.provinceId" placeholder="省" @change="getCityData" style="width: 220px;" filterable>
  400. <el-option v-for="(item,index) in provinceDataList" :key="index" :label="item.name" :value="item.id"></el-option>
  401. </el-select>
  402. </el-form-item>
  403. </el-col>
  404. <el-col :span="24">
  405. <el-form-item prop="cityId" label-width="0px">
  406. <el-select v-model="form.cityId" placeholder="市" @change="getDistrictData" style="width: 220px;" filterable>
  407. <el-option v-for="(item, index) in cityDataList" :key="index" :label="item.name" :value="item.id"></el-option>
  408. </el-select>
  409. </el-form-item>
  410. </el-col>
  411. <el-col :span="24">
  412. <el-form-item label-width="0px" prop="districtId">
  413. <el-select v-model="form.districtId" placeholder="区" style="width: 220px;" filterable>
  414. <el-option v-for="(item, index) in districtDataList" :key="index" :label="item.name" :value="item.id"></el-option>
  415. </el-select>
  416. </el-form-item>
  417. </el-col>
  418. </td>
  419. </tr>
  420. <tr>
  421. <th><span style="color: red;">*</span>企业所得税主管税务机关</th>
  422. <td colspan="3">
  423. <el-form-item label-width="0" prop="taxOffice">
  424. <el-input v-model="form.taxOffice" type="text" auto-complete="off" placeholder="请输入企业所得税主管税务机关" disabled style="width: 220px;">
  425. </el-input>
  426. </el-form-item>
  427. </td>
  428. </tr>
  429. <tr>
  430. <th rowspan="6">法人信息</th>
  431. <th><span style="color: red;">*</span>姓名</th>
  432. <td colspan="3">
  433. <el-form-item label-width="0" prop="legalName">
  434. <el-input v-model="form.legalName" type="text" auto-complete="off" placeholder="请输入法人姓名" style="width: 220px;">
  435. </el-input>
  436. </el-form-item>
  437. </td>
  438. </tr>
  439. <tr>
  440. <th><span style="color: red;">*</span>身份证号码</th>
  441. <td colspan="3">
  442. <el-form-item label-width="0" prop="legalIdCard">
  443. <el-input v-model="form.legalIdCard" type="text" auto-complete="off" placeholder="请输入法人身份证号码" style="width: 220px;">
  444. </el-input>
  445. </el-form-item>
  446. </td>
  447. </tr>
  448. <tr>
  449. <th><span style="color: red;">*</span>手机号码</th>
  450. <td colspan="3">
  451. <el-form-item label-width="0" prop="legalMobile">
  452. <el-input v-model="form.legalMobile" type="text" auto-complete="off" placeholder="手机号码" style="width: 220px;">
  453. </el-input>
  454. </el-form-item>
  455. </td>
  456. </tr>
  457. <tr>
  458. <th>传真</th>
  459. <td colspan="3">
  460. <el-form-item label-width="0" prop="legalFax">
  461. <el-input v-model="form.legalFax" type="text" auto-complete="off" placeholder="请输入法人传真" style="width: 220px;">
  462. </el-input>
  463. </el-form-item>
  464. </td>
  465. </tr>
  466. <tr>
  467. <th>固定电话</th>
  468. <td colspan="3">
  469. <el-form-item label-width="0" prop="legalPhone">
  470. <el-input v-model="form.legalPhone" type="text" auto-complete="off" placeholder="请输入固定电话" style="width: 220px;">
  471. </el-input>
  472. </el-form-item>
  473. </td>
  474. </tr>
  475. <tr>
  476. <th>E-mail</th>
  477. <td colspan="3">
  478. <el-form-item label-width="0" prop="legalEmail">
  479. <el-input v-model="form.legalEmail" type="text" auto-complete="off" placeholder="请输入法人邮箱" style="width: 220px;">
  480. </el-input>
  481. </el-form-item>
  482. </td>
  483. </tr>
  484. <tr>
  485. <th rowspan="6">联系人信息</th>
  486. <th><span style="color: red;">*</span>姓名</th>
  487. <td colspan="3">
  488. <el-form-item label-width="0" prop="linkName">
  489. <el-input v-model="form.linkName" type="text" auto-complete="off" placeholder="请输入联系人姓名" style="width: 220px;">
  490. </el-input>
  491. </el-form-item>
  492. </td>
  493. </tr>
  494. <tr>
  495. <th><span style="color: red;">*</span>身份证号码</th>
  496. <td colspan="3">
  497. <el-form-item label-width="0" prop="linkIdCard">
  498. <el-input v-model="form.linkIdCard" type="text" auto-complete="off" placeholder="请输入联系人身份证号码" style="width: 220px;">
  499. </el-input>
  500. </el-form-item>
  501. </td>
  502. </tr>
  503. <tr>
  504. <th>固定电话</th>
  505. <td colspan="3">
  506. <el-form-item label-width="0" prop="linkPhone">
  507. <el-input v-model="form.linkPhone" type="text" auto-complete="off" placeholder="请输入联系人固定电话" style="width: 220px;">
  508. </el-input>
  509. </el-form-item>
  510. </td>
  511. </tr>
  512. <tr>
  513. <th><span style="color: red;">*</span>手机号码</th>
  514. <td colspan="3">
  515. <el-form-item label-width="0" prop="linkMobile">
  516. <el-input v-model="form.linkMobile" type="text" auto-complete="off" placeholder="请填入手机号码" style="width: 220px;">
  517. </el-input>
  518. </el-form-item>
  519. </td>
  520. </tr>
  521. <tr>
  522. <th>E-mail</th>
  523. <td colspan="3">
  524. <el-form-item label-width="0" prop="linkEmail">
  525. <el-input v-model="form.linkEmail" type="text" auto-complete="off" placeholder="请输入联系人邮箱" style="width: 220px;">
  526. </el-input>
  527. </el-form-item>
  528. </td>
  529. </tr>
  530. <tr>
  531. <th>传真</th>
  532. <td colspan="3">
  533. <el-form-item label-width="0" prop="linkFax">
  534. <el-input v-model="form.linkFax" type="text" auto-complete="off" placeholder="请输入联系人传真" style="width: 220px;">
  535. </el-input>
  536. </el-form-item>
  537. </td>
  538. </tr>
  539. <tr>
  540. <th :rowspan="form.listedFlag == 1 ? '2' : '1'">企业上市信息</th>
  541. <th><span style="color: red;">*</span>企业是否上市</th>
  542. <td colspan="3">
  543. <el-form-item label-width="0" prop="listedFlag">
  544. <el-radio-group v-model="form.listedFlag" style="width: 220px;">
  545. <el-radio v-for="(item, index) in yesOrNoOptions" :key="index" :label="item.dictValue">{{item.dictLabel}}</el-radio>
  546. </el-radio-group>
  547. </el-form-item>
  548. </td>
  549. </tr>
  550. <tr>
  551. <template v-if="form.listedFlag == 1">
  552. <th><span style="color: red;">*</span>企业上市代码</th>
  553. <td colspan="3">
  554. <el-form-item label-width="0" prop="listingCode">
  555. <el-input v-model="form.listingCode" type="text" auto-complete="off" placeholder="请输入企业上市代码" style="width: 220px;">
  556. </el-input>
  557. </el-form-item>
  558. </td>
  559. </template>
  560. </tr>
  561. <tr>
  562. <th :rowspan="form.investFlag == 1 ? '2' : '1'">风险投资信息</th>
  563. <th><span style="color: red;">*</span>是否引入风险投资</th>
  564. <td colspan="3">
  565. <el-form-item label-width="0" prop="investFlag">
  566. <el-radio-group v-model="form.investFlag" style="width: 220px;">
  567. <el-radio v-for="(item, index) in yesOrNoOptions" :key="index" :label="item.dictValue">{{item.dictLabel}}</el-radio>
  568. </el-radio-group>
  569. </el-form-item>
  570. </td>
  571. </tr>
  572. <tr v-if="form.investFlag == 1">
  573. <!-- <template v-if="form.investFlag == 1"> -->
  574. <th><span style="color: red;">*</span>风险投资金额</th>
  575. <td colspan="3">
  576. <el-form-item label-width="0" prop="investCapital">
  577. <el-input v-model="form.investCapital" type="text" auto-complete="off" placeholder="请输入风险投资金额" style="width: 220px;">
  578. <template slot="append">万元</template>
  579. </el-input>
  580. </el-form-item>
  581. </td>
  582. <!-- </template> -->
  583. </tr>
  584. <tr>
  585. <th :rowspan="form.techFlag == 1 ? '2' : '1'">高新企业</th>
  586. <th><span style="color: red;">*</span>是否为高新企业</th>
  587. <td colspan="3">
  588. <el-form-item label-width="0" prop="techFlag">
  589. <el-radio-group v-model="form.techFlag" style="width: 220px;">
  590. <el-radio v-for="(item, index) in yesOrNoOptions" :key="index" :label="item.dictValue">{{item.dictLabel}}</el-radio>
  591. </el-radio-group>
  592. </el-form-item>
  593. </td>
  594. </tr>
  595. <tr>
  596. <template v-if="form.techFlag == 1">
  597. <th><span style="color: red;">*</span>高新企业编号</th>
  598. <td colspan="3">
  599. <el-form-item label-width="0" prop="techCode">
  600. <el-input v-model="form.techCode" type="text" auto-complete="off" placeholder="请输入高新企业编号" style="width: 220px;">
  601. </el-input>
  602. </el-form-item>
  603. </td>
  604. </template>
  605. </tr>
  606. <tr>
  607. <th>上年度是否做加计扣除</th>
  608. <th><span style="color: red;">*</span>上年度是否做加计扣除</th>
  609. <td colspan="3">
  610. <el-form-item label-width="0" prop="deductionFlag">
  611. <el-radio-group v-model="form.deductionFlag" style="width: 220px;">
  612. <el-radio v-for="(item, index) in yesOrNoOptions" :key="index" :label="item.dictValue">{{item.dictLabel}}</el-radio>
  613. </el-radio-group>
  614. </el-form-item>
  615. </td>
  616. </tr>
  617. <tr>
  618. <th rowspan="2">附件</th>
  619. <th><span style="color: red;">*</span>企业营业执照</th>
  620. <td colspan="3">
  621. <el-form-item label-width="3" prop="licensePath" ref="licenseUpload">
  622. <ImageUpload @input="handleLicenseSuccess" :params="params" :limit="limit" :value="form.licensePath" :fileSize="fileSize"></ImageUpload>
  623. </el-form-item>
  624. </td>
  625. </tr>
  626. <tr>
  627. <th>其他附件</th>
  628. <td colspan="3">
  629. <el-form-item label-width="0" prop="attachIds">
  630. <FileUpload :files="form.fileList" @input="handleSaleSuccess" :multiple="true" :params="params">上传材料</FileUpload>
  631. </el-form-item>
  632. </td>
  633. </tr>
  634. <tr>
  635. <th>文件水印</th>
  636. <th>文件水印</th>
  637. <td colspan="3">
  638. <el-form-item label-width="0" prop="logo" ref="logoUpload">
  639. <ImageUpload @input="handleLogoSuccess" :params="params" :limit="limit" :value="form.logo" :fileSize="fileSize"></ImageUpload>
  640. </el-form-item>
  641. </td>
  642. </tr>
  643. </table>
  644. </template>
  645. <el-row :gutter="40" style="margin-top: 20px;">
  646. <el-col :span="24">
  647. <el-form-item style="width:100%;text-align: center;" label-width="0px">
  648. <el-button
  649. :loading="loading"
  650. size="medium"
  651. type="primary"
  652. @click.native.prevent="handleRegister" style="width: 100px;">
  653. <span v-if="!loading">注册</span>
  654. <span v-else>注 册 中...</span>
  655. </el-button>
  656. <el-button size="medium" type="primary" style="width: 100px;" @click="cancel">取消</el-button>
  657. </el-form-item>
  658. </el-col>
  659. </el-row>
  660. </el-form>
  661. </div>
  662. <!-- 底部 -->
  663. <!-- <div class="el-register-footer">
  664. <span>Copyright © 2022 All Rights Reserved.</span>
  665. </div> -->
  666. <el-dialog
  667. :visible.sync="dialogVisible"
  668. title="预览"
  669. width="800"
  670. append-to-body>
  671. <img
  672. :src="dialogImageUrl"
  673. style="display: block; max-width: 100%; margin: 0 auto"/>
  674. </el-dialog>
  675. </div>
  676. </template>
  677. <script>
  678. import { getCodeImg, registerEntApi,getEntUserById,entUserAudit,enterUserNoToken,getEnclosureApi,deleteEnclosureApi } from "@/api/login";
  679. import {getProvinceDataApi,getRegionChildrenApi,validLicenseApi} from "@/api/common/common"
  680. import { regTypeOptions,mainProductsOptions,yesOrNoOptions } from "@/utils/dataFormat"
  681. import FileUpload from '@/components/FileUpload'
  682. import ImageUpload from '@/components/ImageUpload'
  683. import { validIDcard,validAmount} from '@/utils/validate'
  684. import { validNumber,validZh } from '@/utils/validate'
  685. export default {
  686. name: "First",
  687. components: {
  688. FileUpload,
  689. ImageUpload
  690. },
  691. data() {
  692. return {
  693. tokenVisile: false,
  694. limit: 1, //长传图片数量
  695. fileSize: 1,
  696. params: {
  697. attachType: 'ENT',
  698. dataId: ''
  699. },
  700. dialogVisible: false,
  701. dialogImageUrl: "",
  702. provinceName: '',
  703. attachType: 'ENT',
  704. dataId: '',
  705. list: [],
  706. token: '',
  707. cityName: '',
  708. districtName: '',
  709. codeUrl: "",
  710. regTypeOptions: regTypeOptions,
  711. mainProductsOptions: mainProductsOptions,
  712. yesOrNoOptions: yesOrNoOptions,
  713. provinceDataList: [],
  714. cityDataList: [],
  715. districtDataList: [],
  716. form: {
  717. startDate: '',
  718. endDate: '',
  719. attachIds: [],
  720. provinceId: '',
  721. cityId: '',
  722. districtId: '',
  723. mainProducts: '',
  724. userName: "",
  725. techFlag: 1,
  726. listedFlag: 1,
  727. investFlag: 1,
  728. deductionFlag: 1
  729. },
  730. registerRules: {
  731. userName: [
  732. { required: true, trigger: "blur", message: "请输入您的账号" },
  733. { min: 2, max: 20, message: '用户账号长度必须介于 2 和 20 之间', trigger: 'blur' }
  734. ],
  735. email: [
  736. { required: true, trigger: ["blur", "change"], message: "请输入邮箱",type: "email", },
  737. ],
  738. entName: [
  739. { required: true, trigger: "blur", message: "请输入企业名称" },
  740. { validator: validZh, trigger: 'blur' }
  741. ],
  742. license: [
  743. { required: true, trigger: "blur", message: "请输入统一社会信用代码" },
  744. {min: 18,max: 18, message: '请输入正确的统一社会信用代码格式', trigger: 'blur' }
  745. ],
  746. regCapital: [
  747. { required: true, trigger: "blur", message: "请输入注册资金" },
  748. { validator: validAmount, trigger: 'blur'}
  749. ],
  750. regDate: [
  751. { required: true, trigger: "change", message: "请选择工商注册时间" },
  752. ],
  753. regType: [
  754. { required: true, trigger: "change", message: "请选择工商注册类型" },
  755. ],
  756. mainProducts: [
  757. { required: true, message: '请至少选择一个主营产品(服务)所属技术领域', trigger: 'change' }
  758. ],
  759. address: [
  760. { required: true, trigger: "blur", message: "请输入通信地址" },
  761. {max: 50, message: '最多输入50个字符', trigger: 'blur' }
  762. ],
  763. zipCode: [
  764. { required: true, trigger: "blur", message: "请输入邮政编码" },
  765. { validator: validNumber, trigger: 'blur'},
  766. {max: 6, message: '最多输入6位数字', trigger: 'blur' }
  767. ],
  768. provinceId: [
  769. { required: true, trigger: "change", message: "请选择省份" },
  770. ],
  771. cityId: [
  772. { required: true, trigger: "change", message: "请选择市" },
  773. ],
  774. districtId: [
  775. { required: true, trigger: "change", message: "请选择区" },
  776. ],
  777. taxOffice: [
  778. { required: true, trigger: "blur", message: "企业所得税主管税务机关" },
  779. {max: 30, message: '最多输入30个字符', trigger: 'blur' }
  780. ],
  781. legalName: [
  782. { required: true, trigger: "blur", message: "请输入姓名" },
  783. {max: 30, message: '最多输入30个字符', trigger: 'blur' }
  784. ],
  785. legalIdCard: [
  786. { required: true, trigger: "blur", message: "请输入身份证号码" },
  787. { validator: validIDcard, trigger: 'blur'}
  788. ],
  789. legalMobile: [
  790. { required: true, trigger: "blur", message: "请输入手机号码" },
  791. {
  792. pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
  793. message: "请输入正确的手机号码",
  794. trigger: "blur"
  795. }
  796. ],
  797. linkName: [
  798. { required: true, trigger: "blur", message: "请输入姓名" },
  799. {max: 30, message: '最多输入30个字符', trigger: 'blur' }
  800. ],
  801. linkIdCard: [
  802. { required: true, trigger: "blur", message: "请输入身份证号码" },
  803. { validator: validIDcard, trigger: 'blur'}
  804. ],
  805. linkMobile: [
  806. { required: true, trigger: "blur", message: "请输入手机号码" },
  807. {
  808. pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
  809. message: "请输入正确的手机号码",
  810. trigger: "blur"
  811. }
  812. ],
  813. listedFlag: [
  814. { required: true, trigger: "change", message: "请选择企业是否上市" },
  815. ],
  816. listingCode: [
  817. { required: true, trigger: "blur", message: "请输入企业上市代码" },
  818. {max: 30, message: '最多输入30个字符', trigger: 'blur' }
  819. ],
  820. investFlag: [
  821. { required: true, trigger: "change", message: "请选择是否引入风险投资" },
  822. ],
  823. investCapital: [
  824. { required: true, trigger: "blur", message: "请输入风险投资金额" },
  825. { validator: validAmount, trigger: 'blur'}
  826. ],
  827. techFlag: [
  828. { required: true, trigger: "change", message: "请选择是否为高新企业" },
  829. ],
  830. techCode: [
  831. { required: true, trigger: "blur", message: "请输入高新企业编号" },
  832. {max: 30, message: '最多输入30个字符', trigger: 'blur' }
  833. ],
  834. deductionFlag: [
  835. { required: true, trigger: "change", message: "请选择是否做加计扣除" },
  836. ],
  837. licensePath: [
  838. { required: true, trigger: "change", message: "请上传营业执照附件" },
  839. ],
  840. // logo: [
  841. // { required: true, trigger: "change", message: "请上传文件水印" },
  842. // ]
  843. },
  844. loading: false,
  845. captchaOnOff: true
  846. };
  847. },
  848. created() {
  849. this.getCode();
  850. this.getProvinceData()
  851. this.token = this.$route.params.token || ''
  852. if(this.token) {
  853. this.getData()
  854. this.tokenVisile = false
  855. this.activeName = '3'
  856. }else {
  857. this.tokenVisile = true
  858. this.activeName = '1'
  859. }
  860. },
  861. methods: {
  862. validLicense(val) {
  863. validLicenseApi(val).then(res => {
  864. // true存在
  865. if(res.data) {
  866. this.$message.error('统一社会信用代码已经存在,不可以重复注册');
  867. }
  868. })
  869. },
  870. getEnclosureData() {
  871. getEnclosureApi(this.token,this.attachType, this.dataId).then(res => {
  872. this.list = res.data.records
  873. })
  874. },
  875. getData() {
  876. this.loading = true
  877. getEntUserById(this.token).then(res => {
  878. this.loading = false
  879. this.form = res.data || {}
  880. this.dataId = res.data.id || {}
  881. if(this.dataId) {
  882. this.getEnclosureData()
  883. }
  884. // let mainProductArray = this.form.mainProducts.split(',') || ['电子信息'];
  885. // this.$set(this.form, 'mainProductArray', mainProductArray);
  886. this.form.provinceId = res.data.provinceId
  887. if(this.form.provinceId) {
  888. getRegionChildrenApi(this.form.provinceId).then(res => {
  889. if(res.code == 200) {
  890. this.cityDataList = res.data
  891. }
  892. })
  893. }
  894. if(this.form.cityId) {
  895. getRegionChildrenApi(this.form.cityId).then(res => {
  896. if(res.code == 200) {
  897. this.districtDataList = res.data
  898. }
  899. })
  900. }
  901. })
  902. },
  903. handleSuccess(file) {
  904. this.form.licensePath = file.url;
  905. this.form.fileName = file.name;
  906. },
  907. // handleSaleSuccess(files) {
  908. // files.forEach(item => {
  909. // this.form.attachIds.push(item.response.data.id)
  910. // });
  911. // },
  912. handleSaleSuccess(files) {
  913. this.form.fileList = files
  914. this.form.attachIds = []
  915. files.forEach(item => {
  916. this.form.attachIds.push(item.response.data.id)
  917. });
  918. },
  919. handleLogoSuccess(file) {
  920. this.form.logo = file
  921. },
  922. handleLicenseSuccess(file) {
  923. this.form.licensePath = file
  924. this.$refs.licenseUpload.clearValidate()
  925. },
  926. handleView(row) {
  927. // 获取文件路径
  928. const fileUrl = row.url
  929. // 获取最后一个.的位置
  930. const index = fileUrl.lastIndexOf(".")
  931. // 获取后缀
  932. const ext = fileUrl.substr(index+1)
  933. if(ext == 'jpg' || ext == 'png' || ext == 'jpeg') {
  934. this.dialogVisible = true
  935. this.dialogImageUrl = fileUrl
  936. }else {
  937. window.open(fileUrl)
  938. }
  939. },
  940. handleDelete(row) {
  941. const id = row.id;
  942. this.$confirm('是否确认删除该数据?', "警告", {
  943. confirmButtonText: "确定",
  944. cancelButtonText: "取消",
  945. type: "warning"
  946. }).then(function() {
  947. return deleteEnclosureApi(this.token,id);
  948. }).then(() => {
  949. this.getEnclosureData()
  950. this.$modal.msgSuccess("删除成功");
  951. })
  952. },
  953. //选择省份
  954. getCityData() {
  955. this.form.cityId = ''
  956. this.form.districtId = ''
  957. getRegionChildrenApi(this.form.provinceId).then(res => {
  958. if(res.code == 200) {
  959. this.cityDataList = res.data
  960. let obj = this.provinceDataList.find(item => {
  961. return item.id == this.form.provinceId
  962. })
  963. this.provinceName = obj.name
  964. this.form.taxOffice = '国家税务总局'+this.provinceName+'税务局'
  965. }
  966. })
  967. },
  968. //选择市
  969. getDistrictData() {
  970. this.form.districtId = ''
  971. getRegionChildrenApi(this.form.cityId).then(res => {
  972. if(res.code == 200) {
  973. this.districtDataList = res.data
  974. let obj = this.cityDataList.find(item => {
  975. return item.id == this.form.cityId
  976. })
  977. this.cityName = obj.name
  978. this.form.taxOffice = '国家税务总局'+this.cityName+'税务局'
  979. }
  980. })
  981. },
  982. changeDistrict() {
  983. let obj = this.districtDataList.find(item => {
  984. return item.id == this.form.districtId
  985. })
  986. this.districtName = obj.name
  987. this.form.taxOffice = '国家税务总局'+this.districtName+'税务局'
  988. },
  989. getProvinceData() {
  990. getProvinceDataApi().then(res => {
  991. if(res.code == 200) {
  992. this.provinceDataList = res.data
  993. this.form.provinceId = '1481196860266852481'
  994. getRegionChildrenApi(this.form.provinceId).then(res => {
  995. if(res.code == 200) {
  996. this.cityDataList = res.data
  997. this.form.cityId = '1481196860266852482'
  998. getRegionChildrenApi(this.form.cityId).then(res => {
  999. if(res.code == 200) {
  1000. this.districtDataList = res.data
  1001. }
  1002. })
  1003. }
  1004. })
  1005. }
  1006. })
  1007. this.form.taxOffice = '国家税务总局长沙市税务局'
  1008. },
  1009. getCode() {
  1010. getCodeImg().then(res => {
  1011. this.captchaOnOff = res.captchaOnOff === undefined ? true : res.captchaOnOff;
  1012. if (this.captchaOnOff) {
  1013. this.codeUrl = "data:image/gif;base64," + res.img;
  1014. this.form.uuid = res.uuid;
  1015. }
  1016. });
  1017. },
  1018. cancel() {
  1019. this.$router.go(-1);
  1020. },
  1021. handleRegister() {
  1022. validLicenseApi(this.form.license).then(res => {
  1023. if(res.data) {
  1024. this.$message.error('统一社会信用代码已经存在,不可以重复注册');
  1025. return
  1026. }
  1027. })
  1028. this.$refs.form.validate((valid,obj) => {
  1029. if (valid) {
  1030. this.loading = true;
  1031. if(this.token) {
  1032. entUserAudit(this.token, this.form).then(res => {
  1033. this.$alert("注册信息修改成功", '系统提示', {
  1034. dangerouslyUseHTMLString: true,
  1035. type: 'success'
  1036. }).then(() => {
  1037. this.$store.dispatch('LogOut').then(() => {
  1038. this.$router.push("/login");
  1039. })
  1040. }).catch(() => {});
  1041. }).catch(() => {
  1042. this.loading = false;
  1043. })
  1044. }else {
  1045. registerEntApi(this.form).then(res => {
  1046. const userName = this.form.userName;
  1047. this.$alert("<font color='red'>您已注册成功,账户为统一信用代码,密码为默认123456。请等待审核通过后登录平台进行操作。</font>", '系统提示', {
  1048. dangerouslyUseHTMLString: true,
  1049. type: 'success'
  1050. }).then(() => {
  1051. this.$router.push("/login");
  1052. }).catch(() => {});
  1053. }).catch(() => {
  1054. this.loading = false;
  1055. })
  1056. }
  1057. }else {
  1058. const a = []
  1059. for (let key in obj) {
  1060. a.push(obj[key][0].message)
  1061. }
  1062. this.$message({
  1063. message: a[0],
  1064. type: "warning"
  1065. })
  1066. return false
  1067. }
  1068. });
  1069. }
  1070. }
  1071. };
  1072. </script>
  1073. <style lang="scss" scoped>
  1074. .register {
  1075. display: flex;
  1076. justify-content: center;
  1077. align-items: center;
  1078. height: 900px;
  1079. overflow-y: auto;
  1080. scroll-behavior: auto;
  1081. background-image: url("../../assets/images/login-background.jpg");
  1082. background-size: cover;
  1083. }
  1084. .title {
  1085. margin: 0px auto 30px auto;
  1086. text-align: center;
  1087. color: #FFFFFF;
  1088. }
  1089. @media ( max-width : 850px) {
  1090. .media {
  1091. display: none !important;
  1092. }
  1093. }
  1094. @media ( min-width: 850px ) {
  1095. .media-short {
  1096. display: none !important;
  1097. }
  1098. }
  1099. </style>