companyInformation.vue 49 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965
  1. <template>
  2. <div class="app-container zap-main">
  3. <div class="zap-content" style="min-height: calc(100vh - 200px)">
  4. <el-tabs v-model="activeName" style="margin:2px">
  5. <!--———————————————————————————————————— 附件信息 ————————————————————————————————————————————————-->
  6. <el-tab-pane v-if="companyType != '03'" label="附件信息" name="first">
  7. <el-row class="zap-business">
  8. <div v-if="licenShow" class="zap-business__item">
  9. <div class="zap-business__title">营业执照:</div>
  10. <div class="zap-business__picture">
  11. <el-upload v-if="licenShow" ref="licenImg" action=""
  12. multiple list-type="picture-card"
  13. :file-list="licenseFileList"
  14. :class="{ uoloadSty: showBtnImg, disUoloadSty: noBtnImg }"
  15. :auto-upload="false">
  16. <i slot="default" class="el-icon-plus"></i>
  17. <div slot="file" slot-scope="{file}">
  18. <img class="el-upload-list__item-thumbnail" :src="file.url" alt="">
  19. <span class="el-upload-list__item-actions">
  20. <span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)">
  21. <i class="el-icon-zoom-in"></i>
  22. </span>
  23. <span class="el-upload-list__item-delete" @click="handleImgDownload(file)">
  24. <i class="el-icon-download"></i>
  25. </span>
  26. </span>
  27. </div>
  28. </el-upload>
  29. </div>
  30. </div>
  31. <div v-if="authorizationShow" class="zap-business__item">
  32. <div class="zap-buisness__title">法人授权书:</div>
  33. <div class="zap-business__picture">
  34. <el-upload v-if="authorizationShow" ref="authorizationImg" action=""
  35. multiple list-type="picture-card"
  36. :file-list="authorizationFileList"
  37. :class="{ uoloadSty: showBtnImg, disUoloadSty: noBtnImg }"
  38. :auto-upload="false">
  39. <i slot="default" class="el-icon-plus"></i>
  40. <div slot="file" slot-scope="{file}">
  41. <img class="el-upload-list__item-thumbnail" :src="file.url" alt="">
  42. <span class="el-upload-list__item-actions">
  43. <span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)">
  44. <i class="el-icon-zoom-in"></i>
  45. </span>
  46. <span class="el-upload-list__item-delete" @click="handleImgDownload(file)">
  47. <i class="el-icon-download"></i>
  48. </span>
  49. </span>
  50. </div>
  51. </el-upload>
  52. </div>
  53. </div>
  54. </el-row>
  55. <el-row class="zap-business">
  56. <div v-if="handlerPositiveShow || handlerNegativeShow" class="zap-business__item">
  57. <div class="zap-business__title">经办人信息:</div>
  58. <div class="zap-business__picture">
  59. <el-upload v-if="handlerPositiveShow" ref="handlerPositiveImg" action="" multiple :class="{ uoloadSty: showBtnImg, disUoloadSty: noBtnImg }" list-type="picture-card" :file-list="handlerPositiveList" :auto-upload="false">
  60. <i slot="default" class="el-icon-plus"></i>
  61. <div slot="file" slot-scope="{file}">
  62. <img class="el-upload-list__item-thumbnail" :src="file.url" alt="">
  63. <span class="el-upload-list__item-actions">
  64. <span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)">
  65. <i class="el-icon-zoom-in"></i>
  66. </span>
  67. <span class="el-upload-list__item-delete" @click="handleImgDownload(file)">
  68. <i class="el-icon-download"></i>
  69. </span>
  70. </span>
  71. </div>
  72. </el-upload>
  73. </div>
  74. <div class="zap-business__picture">
  75. <el-upload v-if="handlerNegativeShow" ref="handlerNegativeImg" action="" multiple :class="{ uoloadSty: showBtnImg, disUoloadSty: noBtnImg }" list-type="picture-card" :file-list="handlerNegativeList" :auto-upload="false">
  76. <i slot="default" class="el-icon-plus"></i>
  77. <div slot="file" slot-scope="{file}">
  78. <img class="el-upload-list__item-thumbnail" :src="file.url" alt="">
  79. <span class="el-upload-list__item-actions" >
  80. <span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)" >
  81. <i class="el-icon-zoom-in"></i>
  82. </span>
  83. <span class="el-upload-list__item-delete" @click="handleImgDownload(file)">
  84. <i class="el-icon-download"></i>
  85. </span>
  86. </span>
  87. </div>
  88. </el-upload>
  89. </div>
  90. </div>
  91. <div v-if="commitmentShow" class="zap-business__item">
  92. <div class="zap-business__title">数字证书授权与承诺书:</div>
  93. <div class="zap-business__picture">
  94. <el-upload v-if="commitmentShow" ref="commitmentImg" action=""
  95. multiple list-type="picture-card"
  96. :file-list="commitmentFileList"
  97. :class="{ uoloadSty: showBtnImg, disUoloadSty: noBtnImg }"
  98. :auto-upload="false">
  99. <i slot="default" class="el-icon-plus"></i>
  100. <div slot="file" slot-scope="{file}">
  101. <img class="el-upload-list__item-thumbnail" :src="file.url" alt="">
  102. <span class="el-upload-list__item-actions">
  103. <span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)">
  104. <i class="el-icon-zoom-in"></i>
  105. </span>
  106. <span class="el-upload-list__item-delete" @click="handleImgDownload(file)">
  107. <i class="el-icon-download"></i>
  108. </span>
  109. </span>
  110. </div>
  111. </el-upload>
  112. </div>
  113. </div>
  114. </el-row>
  115. <el-row class="zap-business">
  116. <div v-if="legalShow || legalBackShow">
  117. <div class="zap-business__title">法人证件:</div>
  118. <el-row type="flex" align="middle">
  119. <div class="zap-business__picture">
  120. <el-upload ref="legalImg" v-if="legalShow" class="Img-demo" action="" multiple :class="{ uoloadSty: showBtnImg, disUoloadSty: noBtnImg }" list-type="picture-card" :file-list="legalFileList" :auto-upload="false" >
  121. <i slot="default" class="el-icon-plus"></i>
  122. <div slot="file" slot-scope="{file}" >
  123. <img class="el-upload-list__item-thumbnail" :src="file.url" alt="" >
  124. <span class="el-upload-list__item-actions">
  125. <span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)">
  126. <i class="el-icon-zoom-in"></i>
  127. </span>
  128. <span class="el-upload-list__item-delete" @click="handleImgDownload(file)">
  129. <i class="el-icon-download"></i>
  130. </span>
  131. </span>
  132. </div>
  133. </el-upload>
  134. </div>
  135. <div class="zap-business__picture">
  136. <el-upload ref="legalBackImg" v-if="legalBackShow" class="Img-demo" action="" multiple :class="{ uoloadSty: showBtnImg, disUoloadSty: noBtnImg }" list-type="picture-card" :file-list="legalBackFileList" :auto-upload="false">
  137. <i slot="default" class="el-icon-plus"></i>
  138. <div slot="file" slot-scope="{file}">
  139. <img class="el-upload-list__item-thumbnail" :src="file.url" alt="">
  140. <span class="el-upload-list__item-actions">
  141. <span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)">
  142. <i class="el-icon-zoom-in"></i>
  143. </span>
  144. <span class="el-upload-list__item-delete" @click="handleImgDownload(file)">
  145. <i class="el-icon-download"></i>
  146. </span>
  147. </span>
  148. </div>
  149. </el-upload>
  150. </div>
  151. </el-row>
  152. </div>
  153. </el-row>
  154. <el-row>
  155. <div v-if="scyCfcaUserId" class="zap-business__text">
  156. CFCA企业认证证书:<span>{{scyCfcaUserId}}</span>
  157. </div>
  158. <div class="zap-business__text">
  159. CFCA授权编号:<span v-if="scyCfcaAuthNumber">{{scyCfcaAuthNumber}}</span>
  160. <label v-else text="abcdef" id="lab1" style="color:blue" @click="openWindows">激活</label>
  161. </div>
  162. <!-- <el-upload v-if="commitmentShow" ref="upload" class="upload-demo" action=""
  163. :on-preview="handleFilePreview" multiple :file-list="commitmentFileList" :auto-upload="false">
  164. </el-upload> -->
  165. </el-row>
  166. </el-tab-pane>
  167. <!--——————————————————————————————————————————基本信息————————————————————————————————————————————————————-->
  168. <el-tab-pane v-if="form.scyType !='03'" label="基本信息" name="fourth">
  169. <el-row>
  170. <el-col :span="8">
  171. <div class="zap-form-text">
  172. <span class="zap-form-text__label">企业类型</span>
  173. <div class="zap-form-text__file">{{scyTypeFormat(form.scyType)}}</div>
  174. </div>
  175. </el-col>
  176. <el-col :span="8">
  177. <div class="zap-form-text">
  178. <span class="zap-form-text__label">机构名称</span>
  179. <div class="zap-form-text__file">{{form.scyName}}</div>
  180. </div>
  181. </el-col>
  182. <el-col :span="8">
  183. <div class="zap-form-text">
  184. <span class="zap-form-text__label">机构代码</span>
  185. <div class="zap-form-text__file">{{form.scySocialCode}}</div>
  186. </div>
  187. </el-col>
  188. </el-row>
  189. <el-row>
  190. <el-col :span="8">
  191. <div class="zap-form-text">
  192. <span class="zap-form-text__label">证件注册日</span>
  193. <div class="zap-form-text__file">{{form.scyStartTime}}</div>
  194. </div>
  195. </el-col>
  196. <el-col :span="8">
  197. <div class="zap-form-text">
  198. <span class="zap-form-text__label">注册地址</span>
  199. <div class="zap-form-text__file">{{form.scyAddress}}</div>
  200. </div>
  201. </el-col>
  202. <el-col :span="8">
  203. <div class="zap-form-text">
  204. <span class="zap-form-text__label">证件到期日</span>
  205. <div class="zap-form-text__file">{{form.scyEndTime}}</div>
  206. </div>
  207. </el-col>
  208. </el-row>
  209. <el-row>
  210. <el-col :span="8">
  211. <div class="zap-form-text">
  212. <span class="zap-form-text__label">注册资本</span>
  213. <div class="zap-form-text__file">{{form.scyRegisteredCapital}}</div>
  214. </div>
  215. </el-col>
  216. <el-col :span="8">
  217. <div class="zap-form-text">
  218. <span class="zap-form-text__label">法人姓名</span>
  219. <div class="zap-form-text__file">{{form.scyLegal}}</div>
  220. </div>
  221. </el-col>
  222. <el-col :span="8">
  223. <div class="zap-form-text">
  224. <span class="zap-form-text__label">证件类型</span>
  225. <div class="zap-form-text__file">身份证</div>
  226. </div>
  227. </el-col>
  228. </el-row>
  229. <el-row>
  230. <el-col :span="8">
  231. <div class="zap-form-text">
  232. <span class="zap-form-text__label">联系方式</span>
  233. <div class="zap-form-text__file">{{form.scyPhone}}</div>
  234. </div>
  235. </el-col>
  236. <el-col :span="8">
  237. <div class="zap-form-text">
  238. <span class="zap-form-text__label">证件号码</span>
  239. <div class="zap-form-text__file">{{form.scyLegalId}}</div>
  240. </div>
  241. </el-col>
  242. </el-row>
  243. </el-tab-pane>
  244. <el-tab-pane v-if="companyType =='03'" label="基本信息" name="first">
  245. <el-form ref="form" :model="form" label-width="130px" :inline="true">
  246. <!-- <el-form-item label="所属行业" prop="scyIndustry">
  247. <el-input v-model="form.scyIndustry" placeholder="请输入所属行业" maxlength="20" show-word-limit disabled />
  248. </el-form-item>
  249. <el-form-item label="企业规模" prop="scyScale">
  250. <el-select v-model="form.scyScale" placeholder="企业规模" clearable size="small" disabled>
  251. <el-option v-for="dict in scyScaleOptions" :key="dict.dictValue" :label="dict.dictLabel" :value="dict.dictValue"></el-option>
  252. </el-select>
  253. </el-form-item>
  254. <el-form-item label="机构性质" prop="scyOrganization">
  255. <el-select v-model="form.scyOrganization" placeholder="机构性质" clearable size="small" disabled>
  256. <el-option v-for="dict in scyOrganizationOptions" :key="dict.dictValue" :label="dict.dictLabel" :value="dict.dictValue"></el-option>
  257. </el-select>
  258. </el-form-item> -->
  259. <el-form-item label="企业类型" prop="scyType">
  260. <el-input :value= scyTypeFormat(form.scyType) disabled></el-input>
  261. </el-form-item>
  262. <!-- <el-form-item label="客户经理" prop="scyManager">
  263. <el-input v-model="form.scyManager" placeholder="请输入客户经理" maxlength="20" show-word-limit />
  264. </el-form-item> -->
  265. <el-form-item label="机构名称" prop="scyName">
  266. <el-input v-model="form.scyName" disabled />
  267. </el-form-item>
  268. <el-form-item label="机构代码" prop="scySocialCode">
  269. <el-input v-model="form.scySocialCode" disabled />
  270. </el-form-item>
  271. <el-form-item label="证件注册日" prop="scyStartTime">
  272. <el-input v-model="form.scyStartTime" disabled />
  273. </el-form-item>
  274. <el-form-item label="注册地址" prop="scyAddress">
  275. <el-input v-model="form.scyAddress" disabled />
  276. </el-form-item>
  277. <el-form-item label="证件到期日" prop="scyEndTime">
  278. <el-input v-model="form.scyEndTime" disabled />
  279. </el-form-item>
  280. <el-form-item label="注册资本" prop="scyRegisteredCapital">
  281. <el-input v-model="form.scyRegisteredCapital" disabled />
  282. </el-form-item>
  283. <el-form-item label="法人姓名" prop="scyLegal">
  284. <el-input v-model="form.scyLegal" disabled />
  285. </el-form-item>
  286. <el-form-item label="证件类型" prop="scyLegal">
  287. <el-input value="身份证" disabled />
  288. </el-form-item>
  289. <el-form-item label="联系方式" prop="scyPhone">
  290. <el-input v-model="form.scyPhone" disabled />
  291. </el-form-item>
  292. <el-form-item label="证件号码" prop="scyLegalId">
  293. <el-input v-model="form.scyLegalId" disabled />
  294. </el-form-item>
  295. <!-- <el-button type="primary" @click="submitForm">确 定</el-button>
  296. <el-button @click="cancel">取 消</el-button> -->
  297. </el-form>
  298. </el-tab-pane>
  299. <!--————————————————————————————————————联系人信息————————————————————————————————————————————————-->
  300. <el-tab-pane label="联系人信息" name="second">
  301. <el-row>
  302. <el-col :span="8">
  303. <div class="zap-form-text">
  304. <span class="zap-form-text__label">姓名</span>
  305. <div class="zap-form-text__file">{{contactsForm.nickName}}</div>
  306. </div>
  307. </el-col>
  308. <el-col :span="8">
  309. <div class="zap-form-text">
  310. <span class="zap-form-text__label">移动电话</span>
  311. <div class="zap-form-text__file">{{contactsForm.userName}}</div>
  312. </div>
  313. </el-col>
  314. <el-col :span="8">
  315. <div class="zap-form-text">
  316. <span class="zap-form-text__label">邮箱</span>
  317. <div class="zap-form-text__file">{{contactsForm.email}}</div>
  318. </div>
  319. </el-col>
  320. </el-row>
  321. </el-tab-pane>
  322. <!--———————————————————————————————————— 发票信息 ————————————————————————————————————————————————-->
  323. <el-tab-pane v-if="companyType != '03'" label="发票信息" name="third">
  324. <el-row>
  325. <el-col :span="8">
  326. <div class="zap-form-text">
  327. <span class="zap-form-text__label">单位名称</span>
  328. <div class="zap-form-text__file">{{invoiceForm.scyName}}</div>
  329. </div>
  330. </el-col>
  331. <el-col :span="8">
  332. <div class="zap-form-text">
  333. <span class="zap-form-text__label">税号</span>
  334. <div class="zap-form-text__file">{{invoiceForm.scySocialCode}}</div>
  335. </div>
  336. </el-col>
  337. <el-col :span="8">
  338. <div class="zap-form-text">
  339. <span class="zap-form-text__label">单位地址</span>
  340. <div class="zap-form-text__file">{{invoiceForm.ziaAddress}}</div>
  341. </div>
  342. </el-col>
  343. </el-row>
  344. <el-row>
  345. <el-col :span="8">
  346. <div class="zap-form-text">
  347. <span class="zap-form-text__label">电话号码</span>
  348. <div class="zap-form-text__file">{{invoiceForm.ziaContactsPhone}}</div>
  349. </div>
  350. </el-col>
  351. <el-col :span="8">
  352. <div class="zap-form-text">
  353. <span class="zap-form-text__label">开户银行</span>
  354. <div class="zap-form-text__file">{{invoiceForm.pbaiBankName}}</div>
  355. </div>
  356. </el-col>
  357. <el-col :span="8">
  358. <div class="zap-form-text">
  359. <span class="zap-form-text__label">开户账号</span>
  360. <div class="zap-form-text__file">{{invoiceForm.pbaiBankaccountId}}</div>
  361. </div>
  362. </el-col>
  363. </el-row>
  364. </el-tab-pane>
  365. <!--———————————————————————————————————— 链属关系 ————————————————————————————————————————————————-->
  366. <el-tab-pane v-if="companyType != '03'" label="链属关系" name="Section">
  367. <search-bar :hiddenSetting="true" @query="handleQuery" @reset="resetQuery" style="padding-left: 0;padding-right: 0;">
  368. <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="150px">
  369. <el-form-item label="企业类型" prop="scrType">
  370. <el-select v-model="queryParams.scrType" placeholder="企业类型" clearable size="small" style="width: 215px">
  371. <el-option v-for="dict in scrTypeOptions" :key="dict.dictValue" :label="dict.dictLabel" :value="dict.dictValue"></el-option>
  372. </el-select>
  373. </el-form-item>
  374. </el-form>
  375. </search-bar>
  376. <el-table v-loading="loading" :data="relList" stripe>
  377. <el-table-column label="序号" type="index" width="55" align="center" />
  378. <el-table-column label="社会统一代码" align="center" prop="companyCode" show-overflow-tooltip>
  379. <template slot-scope="scope">
  380. <span v-if="scope.row.launch">{{scope.row.receiveScySocialCode}}</span>
  381. <span v-else>{{scope.row.launchScySocialCode}}</span>
  382. </template>
  383. </el-table-column>
  384. <el-table-column label="企业名称" align="center" prop="companyName" show-overflow-tooltip>
  385. <template slot-scope="scope">
  386. <span v-if="scope.row.launch">{{scope.row.receiveScyName}}</span>
  387. <span v-else>{{scope.row.launchScyName}}</span>
  388. </template>
  389. </el-table-column>
  390. <el-table-column label="企业类型" align="center" prop="companyType">
  391. <template slot-scope="scope">
  392. <span v-if="scope.row.launch">{{companyTypeFormat(scope.row.launchScrReceiveType)}}</span>
  393. <span v-else>{{companyTypeFormat(scope.row.launchScrLaunchType)}}</span>
  394. </template>
  395. </el-table-column>
  396. <el-table-column label="联系人" align="center" prop="launchScrContarct">
  397. </el-table-column>
  398. <el-table-column label="联系电话" align="center" prop="launchScrContarctPhone">
  399. </el-table-column>
  400. <el-table-column label="邮箱" align="center" prop="launchScrContarctEmail" show-overflow-tooltip>
  401. </el-table-column>
  402. <el-table-column label="状态" align="center" prop="launchScrStatus" :formatter="launchScrStatusFormat">
  403. </el-table-column>
  404. </el-table>
  405. <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getRelList" />
  406. </el-tab-pane>
  407. <el-dialog :visible.sync="dialogVisible">
  408. <img width="100%" :src="dialogImageUrl" alt="">
  409. </el-dialog>
  410. <!--短信-->
  411. <el-dialog :visible.sync="messageIsShow" width="800px" append-to-body :before-close = "cancelMessage" center>
  412. <el-form ref="messageForm" :disabled="false" :model="messageForm" v-if="messageIsShow" label-width="150px" class="demo-form-inline" :inline="true" @submit.native.prevent>
  413. <el-form-item label="验证码" prop="validCode">
  414. <el-input v-model="messageForm.validCode" style="width: 200px" maxlength="6" oninput="value=value.replace(/[^\d]/g,'')"/>
  415. </el-form-item>
  416. <el-form-item>
  417. <el-button v-show="messShow" type="success" @click="send">点击获取验证码</el-button>
  418. <el-button v-show="!messShow" type="success" disabled><span>{{timer}}</span>秒后重新获取</el-button>
  419. </el-form-item>
  420. </el-form>
  421. <div slot="footer" class="dialog-footer">
  422. <el-button type="primary" @click="checkCode">确定</el-button>
  423. <el-button @click="cancelMessage">取 消</el-button>
  424. </div>
  425. </el-dialog>
  426. </el-tabs>
  427. </div>
  428. </div>
  429. </template>
  430. <script>
  431. import {
  432. companyQuery,listRel,sendMessage,checkCode
  433. } from "@/api/service/companyInformation/companyInformation";
  434. import { getToken } from "@/utils/auth";
  435. import {getNowUser } from "@/api/system/user";
  436. import SearchBar from '@/components/SearchBar/index.vue'
  437. export default {
  438. name: "companyInformation",
  439. components: {SearchBar},
  440. data() {
  441. return {
  442. scyCfcaUserId:null,
  443. scyCfcaAuthNumber:null,
  444. dialogImageUrl: "",
  445. dialogVisible: false,
  446. companyType:null,
  447. //短信展示
  448. messageIsShow:false,
  449. //短信
  450. messageForm:{validCode:""},
  451. //控制短信验证码倒计时是否展示
  452. messShow:true,
  453. timer:60,
  454. cfcaNumber:null,
  455. // 遮罩层
  456. loading: true,
  457. form: {
  458. scyType: null,
  459. },
  460. noBtnImg: true,
  461. licenShow: false,
  462. showBtnImg: false,
  463. authorizationShow: false,
  464. commitmentShow: false,
  465. legalShow: false,
  466. legalBackShow: false,
  467. appendixShow: false,
  468. handlerNegativeShow: false,
  469. handlerPositiveShow: false,
  470. queryParams: {
  471. pageNum: 1,
  472. pageSize: 10,
  473. scyId: null,
  474. companyName: null,
  475. scySocialCode: null,
  476. scrStatus: null,
  477. scrType: null,
  478. },
  479. total: 0,
  480. licenseFileList: [],
  481. legalFileList: [],
  482. legalBackFileList: [],
  483. authorizationFileList: [],
  484. commitmentFileList: [],
  485. handlerPositiveList: [],
  486. handlerNegativeList: [],
  487. relList: [],
  488. scyScaleOptions: [],
  489. scyOrganizationOptions: [],
  490. scyTypeOptions: [],
  491. scrStatusOptions: [],
  492. scrTypeOptions: [],
  493. contactsForm: {},
  494. invoiceForm: {},
  495. fileForm: {},
  496. activeName: "first",
  497. };
  498. },
  499. created() {
  500. this.getList();
  501. this.getRelList();
  502. this.getNowUser();
  503. this.getDicts("ser_scy_scale").then((response) => {
  504. this.scyScaleOptions = response.data;
  505. });
  506. this.getDicts("ser_scy_organization").then((response) => {
  507. this.scyOrganizationOptions = response.data;
  508. });
  509. this.getDicts("ser_scy_type").then((response) => {
  510. this.scyTypeOptions = response.data;
  511. });
  512. this.getDicts("sys_scr_type").then((response) => {
  513. this.scrTypeOptions = response.data;
  514. });
  515. this.getDicts("sys_scr_status").then((response) => {
  516. this.scrStatusOptions = response.data;
  517. });
  518. },
  519. mounted() {},
  520. methods: {
  521. /** 提交按钮 */
  522. // submitForm() {
  523. // var self = this;
  524. // this.$refs["form"].validate((valid) => {
  525. // let fd = new FormData();
  526. // for (var key in self.form) {
  527. // fd.append(key, self.form[key]);
  528. // }
  529. // if (valid) {
  530. // if (this.form.scyId != null) {
  531. // const loading = this.$loading({
  532. // lock: true,
  533. // text: "Loading",
  534. // spinner: "el-icon-loading",
  535. // background: "rgba(0, 0, 0, 0.9)",
  536. // });
  537. // updateCompanyInfor(self.form).then((response) => {
  538. // this.msgSuccess("修改成功");
  539. // this.created();
  540. // });
  541. // loading.close();
  542. // }
  543. // }
  544. // });
  545. // },
  546. //取消按钮
  547. cancel() {
  548. (this.form.scyIndustry = null),
  549. (this.form.scyScale = null),
  550. (this.form.scyOrganization = null),
  551. (this.form.scyManager = null);
  552. this.$store.dispatch("tagsView/delView", this.$route);
  553. this.$router.go(-1);
  554. },
  555. /* 下载 */
  556. handleFilePreview(fileUrl) {
  557. this.$confirm('是否确认下载"' + fileUrl.name + '"附件?', "警告", {
  558. confirmButtonText: "确定",
  559. cancelButtonText: "取消",
  560. type: "warning",
  561. }).then(function () {
  562. if (fileUrl.name.substr(-3) == "pdf") {
  563. if (fileUrl.url.indexOf("getPdf") != -1) {
  564. fileUrl.url = fileUrl.url.replace("getPdf", "getBytes");
  565. }
  566. window.open(fileUrl.url + "/" + getToken());
  567. } else {
  568. var a = document.createElement("a");
  569. var event = new MouseEvent("click");
  570. a.download = fileUrl.name;
  571. a.href = fileUrl.url + "/" + getToken();
  572. a.dispatchEvent(event);
  573. }
  574. });
  575. },
  576. handlePictureCardPreview(file) {
  577. this.dialogImageUrl = file.url + "/" + getToken();
  578. this.dialogVisible = true;
  579. },
  580. handleImgDownload(file) {
  581. var a = document.createElement('a');
  582. var event = new MouseEvent('click');
  583. a.download = file.name;
  584. a.href = file.url+'/'+getToken();
  585. a.dispatchEvent(event);
  586. console.log(file)
  587. },
  588. /** 搜索按钮操作 */
  589. handleQuery() {
  590. this.queryParams.pageNum = 1;
  591. this.getRelList();
  592. },
  593. /** 重置按钮操作 */
  594. resetQuery() {
  595. this.resetForm("queryForm");
  596. this.handleQuery();
  597. },
  598. // 菜单状态字典翻译
  599. companyTypeFormat(companyType) {
  600. return this.selectDictLabel(this.scrTypeOptions, companyType);
  601. },
  602. scyTypeFormat(scyType) {
  603. return this.selectDictLabel(this.scyTypeOptions, scyType);
  604. },
  605. launchScrStatusFormat(row, column) {
  606. return this.selectDictLabel(
  607. this.scrStatusOptions,
  608. row.launchScrStatus
  609. );
  610. },
  611. openWindows(){
  612. this.messageIsShow = true;
  613. },
  614. //发送短信验证码
  615. send(){
  616. //发送
  617. sendMessage().then((response) => {
  618. debugger
  619. if(response.data){
  620. //手机号
  621. var newIphone = response.data.newIphone;
  622. //结果
  623. var result = response.data.result;
  624. this.cfcaNumber = response.data.cfcaNumber;
  625. this.messShow = false;
  626. this.auth_timer = window.setInterval(() => {
  627. this.messShow = false;
  628. setTimeout(() => {
  629. this.timer--;
  630. if(this.timer <= 0 ){
  631. this.messShow = true;
  632. clearInterval(this.auth_timer);
  633. }
  634. }, 0)
  635. },1000)
  636. //成功
  637. if("60000000" == result){
  638. this.$message({
  639. message: "已向经办人手机号为"+newIphone+"发送短信验证码,请注意查收",
  640. type: 'warning'
  641. });
  642. }else{//失败
  643. this.$message({
  644. message: "短信发送失败",
  645. type: 'warning'
  646. });
  647. }
  648. }
  649. });
  650. },
  651. //校验验证码是否正确
  652. checkCode(){
  653. if(!this.messageForm.validCode){
  654. this.$message({
  655. message: "请输入验证码",
  656. type: 'warning'
  657. });
  658. return;
  659. }
  660. this.messageForm.cfcaNumber = this.cfcaNumber;
  661. //校验验证码
  662. checkCode(this.messageForm).then((response) => {
  663. if(response.data){
  664. //结果
  665. var verification = response.data.verification;
  666. //匹配
  667. if("60000000" == verification){
  668. this.messageIsShow = false;
  669. //激活成功
  670. this.getList()
  671. // this.contractSigning();
  672. }else{//不匹配
  673. this.$message({
  674. message: "验证有误,请重新输入",
  675. type: 'warning'
  676. });
  677. }
  678. }
  679. });
  680. },
  681. //关闭短信
  682. cancelMessage(){
  683. this.messageIsShow = false;
  684. this.resetMessage();
  685. },
  686. resetUpdate() {
  687. this.messShow = true;
  688. clearInterval(this.auth_timer);
  689. this.timer = 60;
  690. },
  691. resetMessage() {
  692. this.messageForm = {
  693. validCode:""
  694. };
  695. this.resetForm("messageForm");
  696. },
  697. //获取当前用户信息
  698. getNowUser() {
  699. getNowUser().then((response) => {
  700. this.companyType = response.data.companyType;
  701. console.log(response.data,"!!!!!!")
  702. });
  703. },
  704. getList() {
  705. this.loading = true;
  706. companyQuery().then((response) => {
  707. //基本信息
  708. if (response.data.basicList.length > 0) {
  709. this.form = response.data.basicList[0];
  710. this.scyCfcaUserId = this.form.scyCfcaUserId;
  711. if(response.data.basicList[0].scyCfcaAuthNumber){
  712. this.scyCfcaAuthNumber = this.form.scyCfcaAuthNumber;
  713. }
  714. }
  715. //经办人信息
  716. if (response.data.contactsList) {
  717. if (response.data.contactsList.length > 0) {
  718. this.contactsForm = response.data.contactsList[0];
  719. }
  720. }
  721. //发票信息
  722. if (response.data.invoiceList.length > 0) {
  723. this.invoiceForm = response.data.invoiceList[0];
  724. }
  725. //营业执照信息
  726. if (response.data.licenseList) {
  727. this.licenseFileList=[];
  728. const licenseImg = response.data.licenseList[0].pfiUrl;
  729. const licenseImgId = response.data.licenseList[0].pfiFileId;
  730. if (licenseImg != "" && licenseImgId != "") {
  731. this.licenShow = true;
  732. let imgUrl = (licenseImg).split(",");
  733. let imgUrlId = (licenseImgId).split(",");
  734. for (let i = 0; i < imgUrl.length; i++) {
  735. this.licenseFileList.push({url: imgUrl[i] + "/" + getToken(),uid: imgUrlId[i]});
  736. }
  737. } else {
  738. this.licenShow = false;
  739. }
  740. }
  741. //法人正面信息
  742. if (response.data.legalList) {
  743. this.legalFileList = [];
  744. const legalImg = response.data.legalList[0].pfiUrl;
  745. const legalImgId = response.data.legalList[0].pfiFileId;
  746. if (legalImg != "" && legalImgId != "") {
  747. this.legalShow = true;
  748. let imgUrl = (legalImg).split(",");
  749. let imgUrlId = (legalImgId).split(",");
  750. for (let i = 0; i < imgUrl.length; i++) {
  751. this.legalFileList.push({
  752. url: imgUrl[i] + "/" + getToken(),
  753. uid: imgUrlId[i]
  754. });
  755. }
  756. console.log(this.legalFileList,"营业执照")
  757. } else {
  758. this.legalShow = false;
  759. }
  760. }
  761. //法人反面信息
  762. if (response.data.legalBackList) {
  763. this.legalBackFileList = [];
  764. const legalBackImg = response.data.legalBackList[0].pfiUrl;
  765. const legalBackImgId =
  766. response.data.legalBackList[0].pfiFileId;
  767. if (legalBackImg != "" && legalBackImgId != "") {
  768. this.legalBackShow = true;
  769. let imgUrl = (legalBackImg).split(",");
  770. let imgUrlId = (legalBackImgId).split(",");
  771. for (let i = 0; i < imgUrl.length; i++) {
  772. this.legalBackFileList.push({
  773. url: imgUrl[i] + "/" + getToken(),
  774. uid: imgUrlId[i]
  775. });
  776. }
  777. } else {
  778. this.legalBackShow = false;
  779. }
  780. }
  781. //经办人正面信息
  782. if (response.data.handlerPositiveList) {
  783. this.handlerPositiveList = [];
  784. const handlerPositiveImg =
  785. response.data.handlerPositiveList[0].pfiUrl;
  786. const handlerPositiveImgId =
  787. response.data.handlerPositiveList[0].pfiFileId;
  788. if (handlerPositiveImg != "" && handlerPositiveId != "") {
  789. this.handlerPositiveShow = true;
  790. let imgUrl = (handlerPositiveImg).split(",");
  791. let imgUrlId = (handlerPositiveImgId).split(",");
  792. for (let i = 0; i < imgUrl.length; i++) {
  793. this.handlerPositiveList.push({
  794. url: imgUrl[i] + "/" + getToken(),
  795. uid: imgUrlId[i]
  796. });
  797. }
  798. } else {
  799. this.handlerPositiveShow = false;
  800. }
  801. }
  802. //经办人反面信息
  803. if (response.data.handlerNegativeList) {
  804. this.handlerNegativeList = [];
  805. const handlerNegativeImg =
  806. response.data.handlerNegativeList[0].pfiUrl;
  807. const handlerNegativeImgId =
  808. response.data.handlerNegativeList[0].pfiFileId;
  809. if (
  810. handlerNegativeImg != "" &&
  811. handlerNegativeImgId != ""
  812. ) {
  813. this.handlerNegativeShow = true;
  814. let imgUrl = (handlerNegativeImg).split(",");
  815. let imgUrlId = (handlerNegativeImgId).split(",");
  816. for (let i = 0; i < imgUrl.length; i++) {
  817. this.handlerNegativeList.push({
  818. url: imgUrl[i] + "/" + getToken(),
  819. uid: imgUrlId[i]
  820. });
  821. }
  822. } else {
  823. this.handlerNegativeShow = false;
  824. }
  825. }
  826. //法人授权书信息
  827. if (response.data.authorizationList) {
  828. this.authorizationFileList = [];
  829. const authorizationFileName =
  830. response.data.authorizationList[0].pfiFileName;
  831. const authorizationFile =
  832. response.data.authorizationList[0].pfiUrl;
  833. const authorizationFileId =
  834. response.data.authorizationList[0].pfiFileId;
  835. if (authorizationFile != "" && authorizationFileId != "") {
  836. this.authorizationShow = true;
  837. let fileName = (authorizationFileName).split(",");
  838. let fileUrl = (authorizationFile).split(",");
  839. let fileUrlId = (authorizationFileId).split(",");
  840. for (let i = 0; i < fileUrl.length; i++) {
  841. this.authorizationFileList.push({
  842. url: fileUrl[i] + "/" + getToken(),
  843. uid: fileUrlId[i]
  844. });
  845. }
  846. } else {
  847. this.authorizationShow = false;
  848. }
  849. }
  850. //数字证书授权与承诺书信息
  851. if (response.data.commitmentList) {
  852. this.commitmentFileList = [];
  853. const commitmentFileName =
  854. response.data.commitmentList[0].pfiFileName;
  855. const commitmentFile =
  856. response.data.commitmentList[0].pfiUrl;
  857. const commitmentFileId =
  858. response.data.commitmentList[0].pfiFileId;
  859. if (commitmentFile != "" && commitmentFileId != "") {
  860. this.commitmentShow = true;
  861. let fileName = (commitmentFileName).split(",");
  862. let fileUrl = (commitmentFile).split(",");
  863. let fileUrlId = (commitmentFileId).split(",");
  864. for (let i = 0; i < fileUrl.length; i++) {
  865. this.commitmentFileList.push({
  866. url: fileUrl[i] + "/" + getToken(),
  867. uid: fileUrlId[i]
  868. });
  869. }
  870. } else {
  871. this.commitmentShow = false;
  872. }
  873. }
  874. //其他附件
  875. // if(response.data.appendixList){
  876. // const appendixFileName = response.data.appendixList[0].pfiFileName;
  877. // const appendixFile = response.data.appendixList[0].pfiUrl;
  878. // const appendixFileId = response.data.appendixList[0].pfiFileId;
  879. // if(appendixFile != '' && appendixFileId != ''){
  880. // this.appendixShow = true;
  881. // let fileName = (appendixFileName).split(",")
  882. // let fileUrl =(appendixFile).split(",")
  883. // let fileUrlId =(appendixFileId).split(",")
  884. // for(let i = 0;i< fileUrl.length;i++){
  885. // this.appendixFileList.push({name:fileName[i], url: fileUrl[i] + '/' + getToken(), uid: fileUrlId[i] });
  886. // }
  887. // }else{
  888. // this.appendixShow = false;
  889. // }
  890. // }
  891. this.loading = false;
  892. });
  893. },
  894. getRelList() {
  895. listRel(this.queryParams).then((response) => {
  896. let list = response.data.records;
  897. this.loginId = response.msg;
  898. for (let i = 0; i < list.length; i++) {
  899. if (list[i].launchCompanyId == this.loginId) {
  900. list[i].receive = false;
  901. list[i].launch = true;
  902. } else if (list[i].launchReceiveScrCompanyId == this.loginId) {
  903. list[i].launch = false;
  904. list[i].receive = true;
  905. }
  906. }
  907. this.relList = list;
  908. this.total = response.data.total;
  909. });
  910. },
  911. },
  912. };
  913. </script>
  914. <style lang="scss">
  915. .uoloadSty .el-upload--picture-card {
  916. width: 110px;
  917. height: 110px;
  918. line-height: 110px;
  919. }
  920. .disUoloadSty .el-upload--picture-card {
  921. display: none;
  922. }
  923. .zap-business{
  924. display: flex;
  925. padding-bottom: 10px;
  926. }
  927. .zap-business__item{
  928. flex: 0 0 180px;
  929. }
  930. .zap-business__title{
  931. padding-top: 30px;
  932. padding-bottom: 16px;
  933. font-size: 14px;
  934. color: #333333;
  935. }
  936. .zap-business__picture{
  937. width: 182px;
  938. height: 182px;
  939. margin-right: 64px;
  940. border-radius: 4px;
  941. background-color: #F7F7F7;
  942. .el-upload-list--picture-card .el-upload-list__item{
  943. width: 182px;
  944. height: 182px;
  945. border: 1px solid #EBEBEB;
  946. }
  947. }
  948. .zap-business__text{
  949. margin-top: 40px;
  950. line-height: 20px;
  951. font-size: 14px;
  952. color: #333333;
  953. &:nth-of-type(1){
  954. margin-top: 30px;
  955. }
  956. &:nth-of-type(2){
  957. padding-bottom: 74px;
  958. }
  959. }
  960. </style>