recordSeal.vue 52 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649
  1. <template>
  2. <div class="app-container zap-main">
  3. <el-row>
  4. <el-form
  5. ref="form"
  6. :model="form"
  7. :inline="true"
  8. :rules="rules"
  9. label-width="95px"
  10. >
  11. <div class="zap-title">申请融资信息</div>
  12. <el-row class="zap-form" style="padding-bottom: 0">
  13. <el-col :span="12">
  14. <el-form-item label="选择融信:" prop="zfrFinanceId" size="large">
  15. <el-select
  16. v-model="form.zfrFinanceId"
  17. clearable
  18. @clear="clearBoth"
  19. disabled
  20. >
  21. <el-option
  22. v-for="(item, index) in financeInfList"
  23. :key="index"
  24. :label="item.zfiNumber"
  25. :value="item.zfiId"
  26. @click.native="amount(item)"
  27. ></el-option>
  28. </el-select>
  29. </el-form-item>
  30. </el-col>
  31. <el-col :span="12">
  32. <el-form-item
  33. label="融资收款账户:"
  34. prop="zfrCollectionAccount"
  35. size="large"
  36. label-width="101px"
  37. >
  38. <el-input
  39. v-model="form.zfrCollectionAccount"
  40. clearable
  41. placeholder="请输入融资账户"
  42. maxlength="25"
  43. readonly
  44. />
  45. </el-form-item>
  46. </el-col>
  47. </el-row>
  48. <el-row class="zap-form" style="padding-bottom: 0">
  49. <el-col :span="12">
  50. <el-form-item label="融信金额:" prop="zfiAmount" size="large">
  51. <el-input
  52. v-model="form.zfiAmount"
  53. clearable
  54. placeholder="请输入融信金额"
  55. maxlength="25"
  56. readonly
  57. >
  58. <template slot="append">元</template>
  59. </el-input>
  60. </el-form-item>
  61. </el-col>
  62. <el-col :span="12">
  63. <el-form-item label="申请融资方:" prop="companyName" size="large">
  64. <el-input
  65. v-model="form.companyName"
  66. clearable
  67. placeholder="请输入申请融资方"
  68. maxlength="25"
  69. readonly
  70. />
  71. </el-form-item>
  72. </el-col>
  73. </el-row>
  74. <el-row class="zap-form" style="padding-bottom: 0">
  75. <el-col :span="12">
  76. <el-form-item label="融资金额:" prop="zfrAmount" size="large">
  77. <el-input
  78. v-model="form.zfrAmount"
  79. clearable
  80. placeholder="请输入融资金额"
  81. maxlength="25"
  82. readonly
  83. >
  84. <template slot="append">元</template>
  85. </el-input>
  86. </el-form-item>
  87. </el-col>
  88. <el-col :span="12">
  89. <el-form-item label="融资利率:" prop="zfrRate" size="large">
  90. <el-input
  91. v-model="form.zfrRate"
  92. clearable
  93. placeholder="请输入融资利率"
  94. maxlength="25"
  95. readonly
  96. >
  97. <template slot="append">%</template>
  98. </el-input>
  99. </el-form-item>
  100. </el-col>
  101. </el-row>
  102. <el-row class="zap-form" style="padding-bottom: 0">
  103. <el-col :span="12">
  104. <el-form-item
  105. label="承诺还款日期:"
  106. prop="zfrRepaymentDate"
  107. size="large"
  108. label-width="101px"
  109. >
  110. <el-input
  111. v-model="form.zfrRepaymentDate"
  112. clearable
  113. placeholder="请输入承诺还款日期"
  114. maxlength="25"
  115. readonly
  116. />
  117. </el-form-item>
  118. </el-col>
  119. <el-col :span="12">
  120. <el-form-item label="服务费率:" prop="zfpcrChargeRate" size="large">
  121. <el-input
  122. v-model="form.zfpcrChargeRate"
  123. clearable
  124. placeholder="请输入服务费率"
  125. maxlength="25"
  126. readonly
  127. >
  128. <template slot="append">%</template>
  129. </el-input>
  130. </el-form-item>
  131. </el-col>
  132. </el-row>
  133. <el-row class="zap-form" style="padding-bottom: 0">
  134. <el-col :span="12">
  135. <el-form-item
  136. label="预计融资成本:"
  137. prop="cost"
  138. size="large"
  139. label-width="101px"
  140. >
  141. <el-input
  142. v-model="form.cost"
  143. clearable
  144. placeholder="请输入预计融资成本"
  145. maxlength="25"
  146. readonly
  147. >
  148. <template slot="append">元</template>
  149. </el-input>
  150. </el-form-item>
  151. </el-col>
  152. <el-col :span="12">
  153. <el-form-item
  154. label="预计融资期限:"
  155. prop="term"
  156. size="large"
  157. label-width="101px"
  158. >
  159. <el-input
  160. v-model="form.term"
  161. clearable
  162. placeholder="请输入预计融资期限"
  163. maxlength="25"
  164. readonly
  165. >
  166. <template slot="append">天</template>
  167. </el-input>
  168. </el-form-item>
  169. </el-col>
  170. </el-row>
  171. <el-row class="zap-form" style="padding-bottom: 0">
  172. <el-col :span="12">
  173. <el-form-item
  174. label="预计净融资额:"
  175. prop="amount"
  176. size="large"
  177. label-width="101px"
  178. >
  179. <el-input
  180. v-model="form.amount"
  181. clearable
  182. placeholder="请输入预计净融资额"
  183. maxlength="25"
  184. readonly
  185. >
  186. <template slot="append">元</template>
  187. </el-input>
  188. </el-form-item>
  189. </el-col>
  190. </el-row>
  191. <div class="contain">
  192. <p>说明:</p>
  193. <p>1. 因银行结算原因,资金到账可能会在申请日期后2-5工作日;</p>
  194. <p>
  195. 2.
  196. 申请融资时,预计融资成本、预计融资期限、预计净融资额,由申请日期单日开始计算;准确数值以银行实际放款日期为准;
  197. </p>
  198. <p>
  199. 3.
  200. 因填写融资收款账户错误,或其他原因导致银行无法正常放款,款项将汇入备用收款账户,可在电子账户管理查看;
  201. </p>
  202. <p>4. 服务费缴纳与退还要求,可详细阅读《融信产品使用协议》</p>
  203. </div>
  204. <div class="zap-title">融信信息</div>
  205. <el-row class="zap-form">
  206. <el-col>
  207. <span style="font-size: 14px; color: #333333">融信凭证</span>
  208. </el-col>
  209. <table
  210. class="gridtable"
  211. style="width: 80%; text-align: center"
  212. align="center"
  213. >
  214. <tr>
  215. <td rowspan="4">开立方</td>
  216. <td>全称</td>
  217. <td>{{ openName }}</td>
  218. <td rowspan="4">接收方</td>
  219. <td>全称</td>
  220. <td>{{ receiveName }}</td>
  221. </tr>
  222. <tr>
  223. <td>社会统一码</td>
  224. <td>{{ openCode }}</td>
  225. <td>社会统一码</td>
  226. <td>{{ receiverCode }}</td>
  227. </tr>
  228. <tr>
  229. <td>开户银行</td>
  230. <td>{{ openBank }}</td>
  231. <td>开户银行</td>
  232. <td>{{ receiverBank }}</td>
  233. </tr>
  234. <tr>
  235. <td>账号</td>
  236. <td>{{ openAccount }}</td>
  237. <td>账号</td>
  238. <td>{{ receiverAccount }}</td>
  239. </tr>
  240. <tr>
  241. <td colspan="2">粮信金额</td>
  242. <td colspan="4">
  243. 人民币(大写):{{ issuedAmount }}<br />人民币(小写)¥{{
  244. form.zfiAmount
  245. }}
  246. </td>
  247. </tr>
  248. <tr>
  249. <td colspan="2">起止日期</td>
  250. <td colspan="4">{{ stopDate }}</td>
  251. </tr>
  252. </table>
  253. </el-row>
  254. <el-row class="zap-form">
  255. <el-row type="flex" align="middle" justify="end">
  256. <el-col>
  257. <span style="font-size: 14px; color: #333333">资产信息</span>
  258. </el-col>
  259. <el-col class="zap-margin-top;">
  260. <el-row type="flex" align="middle" justify="end">
  261. <el-form-item label="金额大写:" class="zap-margin-clear">
  262. <span>{{ smallToBig(allAmount()) }}</span>
  263. </el-form-item>
  264. <el-form-item label="合计金额:" class="zap-margin-clear">
  265. <span>{{ allAmount() }}</span>
  266. </el-form-item>
  267. </el-row>
  268. </el-col>
  269. </el-row>
  270. <el-row class="zap-margin-top">
  271. <el-table :data="billInfList">
  272. <el-table-column
  273. label="序号"
  274. type="index"
  275. width="50"
  276. align="center"
  277. >
  278. <template slot-scope="scope">
  279. <span>{{
  280. (queryParams.pageNum - 1) * queryParams.pageSize +
  281. scope.$index +
  282. 1
  283. }}</span>
  284. </template>
  285. </el-table-column>
  286. <el-table-column label="编号" align="center" prop="zbiNumber" />
  287. <el-table-column label="账款名称" align="center" prop="zbiName" />
  288. <el-table-column label="应收企业" align="center" prop="payee" />
  289. <el-table-column label="应付企业" align="center" prop="payer" />
  290. <el-table-column
  291. label="还款时间"
  292. align="center"
  293. prop="zbiPayDate"
  294. />
  295. <el-table-column label="金额" align="center" prop="zbiAmount" />
  296. <el-table-column
  297. label="操作"
  298. align="center"
  299. class-name="small-padding fixed-width"
  300. width="250"
  301. >
  302. <template slot-scope="scope">
  303. <el-button
  304. size="mini"
  305. type="text"
  306. icon="el-icon-view"
  307. @click="handleDetail(scope.$index, billInfList)"
  308. >详情</el-button
  309. >
  310. </template>
  311. </el-table-column>
  312. </el-table>
  313. </el-row>
  314. </el-row>
  315. </el-form>
  316. <!-- 签署合同 -->
  317. <el-row class="zap-margin-top zap-form">
  318. <div class="zap-title">签署合同</div>
  319. <el-table :data="creditSealList" style="width: 100%">
  320. <el-table-column
  321. label="文件名称"
  322. align="center"
  323. prop="pfiFileName"
  324. show-overflow-tooltip
  325. >
  326. <template slot-scope="scope">
  327. <img
  328. style="width: 30px; height: 30px"
  329. src="../../../assets/images/pdf.png"
  330. />
  331. <span>{{ scope.row.pfiFileName }} </span>
  332. </template>
  333. </el-table-column>
  334. <el-table-column
  335. label="操作"
  336. align="center"
  337. class-name="small-padding fixed-width"
  338. width="300"
  339. fixed="right"
  340. >
  341. <template slot-scope="scope">
  342. <el-button
  343. size="mini"
  344. type="text"
  345. icon="el-icon-view"
  346. @click="handleDownload(scope.row)"
  347. >下载</el-button
  348. >
  349. <el-button
  350. size="mini"
  351. type="text"
  352. icon="el-icon-view"
  353. @click="handlePreview(scope.row)"
  354. >预览</el-button
  355. >
  356. </template>
  357. </el-table-column>
  358. </el-table>
  359. </el-row>
  360. <!-- 发票附件 -->
  361. <!-- <el-row class="zap-margin-top zap-form">
  362. <div class="zap-title">发票附件</div>
  363. <el-table :data="invoiceFileList" stripe="" style="width: 100%">
  364. <el-table-column label="文件名称" align="center" prop="pfiFileName" show-overflow-tooltip />
  365. <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width='300' fixed="right">
  366. <template slot-scope="scope">
  367. <el-button size="mini" type="text" icon="el-icon-view" @click="handlePreview(scope.row)">预览</el-button>
  368. </template>
  369. </el-table-column>
  370. </el-table>
  371. </el-row> -->
  372. <!-- 合同附件 -->
  373. <!-- <el-row class="zap-margin-top zap-form">
  374. <div class="zap-title">合同附件</div>
  375. <el-table :data="contractFileList" stripe="" style="width: 100%">
  376. <el-table-column label="文件名称" align="center" prop="pfiFileName" show-overflow-tooltip />
  377. <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width='300' fixed="right">
  378. <template slot-scope="scope">
  379. <el-button size="mini" type="text" icon="el-icon-view" @click="handlePreview(scope.row)">预览</el-button>
  380. </template>
  381. </el-table-column>
  382. </el-table>
  383. </el-row> -->
  384. <!-- 其他附件 -->
  385. <!-- <el-row class="zap-margin-top zap-form">
  386. <div class="zap-title">其他附件</div>
  387. <el-table :data="otherFileList" stripe="" style="width: 100%">
  388. <el-table-column label="文件名称" align="center" prop="pfiFileName" show-overflow-tooltip />
  389. <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width='300' fixed="right">
  390. <template slot-scope="scope">
  391. <el-button size="mini" type="text" icon="el-icon-view" @click="handlePreview(scope.row)">预览</el-button>
  392. </template>
  393. </el-table-column>
  394. </el-table>
  395. </el-row> -->
  396. <el-row type="flex" align="middle" justify="center" style="height: 77px">
  397. <!-- <el-button type="success" @click="cancelFtp">作废</el-button> -->
  398. <el-button type="primary" @click="selectPayment">合同签署</el-button>
  399. <el-button type="primary" plain="" @click="cancel">取消</el-button>
  400. <!-- <el-button @click="cancel">取 消</el-button> -->
  401. </el-row>
  402. </el-row>
  403. <!-- 附件详情 -->
  404. <el-dialog
  405. title="详情"
  406. :visible.sync="openDetailBill"
  407. width="1120px"
  408. append-to-body
  409. >
  410. <detail-bill :zbiId="this.zbiId" v-if="openDetailBill"></detail-bill>
  411. </el-dialog>
  412. <!--预览-->
  413. <el-dialog :visible.sync="openFile" width="1000px" append-to-body>
  414. <img :src="wordUrl" v-if="show" width="700px" height="500px" />
  415. <iframe
  416. :src="wordUrl"
  417. width="800px"
  418. height="600px"
  419. frameborder="1"
  420. v-if="heid"
  421. />
  422. </el-dialog>
  423. <!-- 合同预览 -->
  424. <el-dialog title="合同预览" :visible.sync="pdfShowDialog" width="60%" append-to-body :show-close="pdfIsShow">
  425. <pdf-show
  426. :pdfFileList="pdfFileList"
  427. :zfiId="this.form.zfiId"
  428. :parent="parent"
  429. ></pdf-show>
  430. <span slot="footer" class="dialog-footer">
  431. <el-button type="primary" @click="selectType" v-if="pdfIsShow">签署</el-button>
  432. <el-button type="primary" plain="" @click="pdfShowDialog = false" v-if="pdfIsShow"
  433. >取消</el-button>
  434. <el-button type="primary" @click="closePDF" v-if="!pdfIsShow">确定</el-button>
  435. </span>
  436. </el-dialog>
  437. <!--选择签署意愿类型-->
  438. <el-dialog
  439. title="签署意愿"
  440. :visible.sync="confirmIsShow"
  441. width="600px"
  442. append-to-body
  443. :before-close="cancelUpdate"
  444. center
  445. >
  446. <el-form
  447. ref="updateForm"
  448. :disabled="false"
  449. :model="updateForm"
  450. v-if="confirmIsShow"
  451. label-width="150px"
  452. class="demo-form-inline"
  453. :inline="true"
  454. >
  455. <el-radio-group v-model="updateForm.radio">
  456. <el-radio label="01">人脸</el-radio>
  457. <el-radio label="02">短信</el-radio>
  458. </el-radio-group>
  459. </el-form>
  460. <div slot="footer" class="dialog-footer">
  461. <el-button type="primary" @click="confirmSelect">确 定</el-button>
  462. <el-button @click="cancelUpdate">取 消</el-button>
  463. </div>
  464. </el-dialog>
  465. <!--盖章短信-->
  466. <el-dialog
  467. title="短信验证"
  468. :visible.sync="messageIsShow"
  469. width="600px"
  470. append-to-body
  471. :before-close="cancelMessage"
  472. center
  473. >
  474. <el-form
  475. ref="messageForm"
  476. :disabled="false"
  477. :model="messageForm"
  478. v-if="messageIsShow"
  479. label-width="150px"
  480. class="demo-form-inline"
  481. :inline="true"
  482. @submit.native.prevent
  483. >
  484. <el-form-item label="验证码" prop="validCode">
  485. <el-input
  486. v-model="messageForm.validCode"
  487. style="width: 200px"
  488. maxlength="6"
  489. />
  490. </el-form-item>
  491. <el-form-item>
  492. <el-button :disabled="!showCode" type="success" @click="send">
  493. 点击获取验证码
  494. <span v-show="!showCode" class="count">{{ count }} s</span>
  495. </el-button>
  496. </el-form-item>
  497. </el-form>
  498. <div slot="footer" class="dialog-footer">
  499. <el-button type="primary" @click="checkCode">确定</el-button>
  500. <el-button @click="cancelMessage">取 消</el-button>
  501. </div>
  502. </el-dialog>
  503. <!--授权编号激活短信-->
  504. <el-dialog
  505. :visible.sync="messageIfShow"
  506. width="600px"
  507. append-to-body
  508. :before-close="cancelMessages"
  509. center
  510. >
  511. <el-divider content-position="left">cfca签章授权编号激活</el-divider>
  512. <el-form
  513. ref="messageForm"
  514. :disabled="false"
  515. :model="messagesForm"
  516. v-if="messageIfShow"
  517. label-width="150px"
  518. class="demo-form-inline"
  519. :inline="true"
  520. @submit.native.prevent
  521. >
  522. <el-form-item label="验证码" prop="validCode">
  523. <el-input
  524. v-model="messagesForm.validCode"
  525. style="width: 200px"
  526. maxlength="6"
  527. />
  528. </el-form-item>
  529. <el-form-item>
  530. <el-button :disabled="!showCodes" type="success" @click="proSend">
  531. 点击获取验证码
  532. <span v-show="!showCodes" class="count">{{ countCode }} s</span>
  533. </el-button>
  534. </el-form-item>
  535. </el-form>
  536. <div slot="footer" class="dialog-footer">
  537. <el-button type="primary" @click="checkProCode">确定</el-button>
  538. <el-button @click="cancelMessages">取 消</el-button>
  539. </div>
  540. </el-dialog>
  541. <!--人脸二维码-->
  542. <el-dialog
  543. title="人脸验证"
  544. :visible.sync="faceIsShow"
  545. width="500px"
  546. append-to-body
  547. :before-close="cancelFace"
  548. center
  549. >
  550. <img
  551. :src="'data:image/jpeg;base64,' + this.fileUrl"
  552. style="overflow: auto; width: 100%; height: 100%"
  553. />
  554. </el-dialog>
  555. </div>
  556. </template>
  557. <script>
  558. import {
  559. addRecord,
  560. listBillInf,
  561. listAccInf,
  562. getContractFile,
  563. getRecord,
  564. contractSigning,
  565. updateChargeStatus,
  566. listChargeStatus,
  567. cancelContract,
  568. listStamped
  569. } from "@/api/service/financeRecord/record";
  570. import { listFinanceInf } from "@/api/common/financeInf";
  571. import { getFile } from "@/api/service/credit/credit";
  572. import { getToken } from "@/utils/auth";
  573. import { getUserProfile } from "@/api/system/user";
  574. import { getCreditDetail } from "@/api/service/credit/credit";
  575. import { getCreditSealFile } from "@/api/service/credit/creditHandle";
  576. import DetailBill from "@/views/service/credit/billDetail";
  577. import { isOpenApproval } from "@/api/service/credit/approvalRelatedCredit";
  578. import { listCompanyHandler } from "@/api/common/companyHandler";
  579. import {
  580. sendMessage,
  581. checkCode,
  582. faceAuth,
  583. checkFaceAuth,
  584. } from "@/api/service/credit/message";
  585. import {
  586. cfcaProjectNo,
  587. projectSendMessage,
  588. checkProCode,
  589. } from "@/api/service/credit/cfcaProject";
  590. import { balance, transfer } from "@/api/bank/bankInterface";
  591. import pdfShow from "@/views/service/financeRecord/pdfShow";
  592. export default {
  593. name: "financeRecord",
  594. components: { DetailBill, pdfShow },
  595. data() {
  596. return {
  597. pdfIsShow: true,
  598. //往来账款id
  599. zbiId: "",
  600. //融资账户是够编辑
  601. onlyRead: false,
  602. // 遮罩层
  603. loading: true,
  604. // 选中数组
  605. ids: [],
  606. // 非单个禁用
  607. single: true,
  608. // 非多个禁用
  609. multiple: true,
  610. // 显示搜索条件
  611. showSearch: true,
  612. // 总条数
  613. total: 0,
  614. // 全部融资记录表格数据
  615. recordList: [],
  616. //融信编号数据
  617. financeInfList: [],
  618. //应收账款
  619. billInfList: [],
  620. //合同附件
  621. contractFileList: [],
  622. //发票附件
  623. invoiceFileList: [],
  624. //其他文件
  625. otherFileList: [],
  626. //盖章文件
  627. creditSealList: [],
  628. //开立方
  629. openName: "",
  630. //开立社会码
  631. openCode: "",
  632. //开立银行
  633. openBank: "",
  634. //开立账户
  635. openAccount: "",
  636. //接收方
  637. receiveName: "",
  638. //接收方社会统一码
  639. receiverCode: "",
  640. //接收方银行
  641. receiverBank: "",
  642. //接收方账户
  643. receiverAccount: "",
  644. //起止日期
  645. stopDate: "",
  646. //签发金额大写
  647. issuedAmount: "零元整",
  648. // 弹出层标题
  649. title: "",
  650. // 是否显示弹出层
  651. open: false,
  652. openDetailBill: false,
  653. // 查询参数
  654. queryParams: {
  655. pageNum: 1,
  656. pageSize: 10,
  657. zfrFinanceId: null,
  658. zfrNumber: null,
  659. zfrAmount: null,
  660. zfrRate: null,
  661. zfrHandler: null,
  662. zfrRepaymentDate: null,
  663. zfrApplyDate: null,
  664. zfrLoanDate: null,
  665. zfrApplyAmount: null,
  666. zfrApplyType: null,
  667. zfrStatus: null,
  668. zfrApproveStt: null,
  669. zfpcrLoanType: null,
  670. zfiProductId: null,
  671. },
  672. queryParamsDown: {
  673. pfiFileUrl: null,
  674. },
  675. // 表单参数
  676. form: {},
  677. forms: {},
  678. // 表单校验
  679. rules: {
  680. zfrFinanceId: [
  681. {
  682. required: true,
  683. message: "融信编号不能为空",
  684. trigger: "blur",
  685. },
  686. ],
  687. zfrAmount: [
  688. {
  689. required: true,
  690. message: "融资金额不能为空",
  691. trigger: "blur",
  692. },
  693. ],
  694. },
  695. openFile: false,
  696. wordUrl: "",
  697. heid: false,
  698. show: false,
  699. //盖章预览
  700. parent: this,
  701. pdfShowDialog: false,
  702. pdfFileList: [],
  703. confirmIsShow: false,
  704. messageIsShow: false,
  705. messageIfShow: false,
  706. faceIsShow: false,
  707. fileUrl: "",
  708. //意愿
  709. updateForm: {},
  710. messageForm: {},
  711. messagesForm: {},
  712. count: "",
  713. timer: null,
  714. //授权编号激活短信验证码倒计时
  715. //项目编号
  716. projectCode: "",
  717. showCode: true,
  718. showCodes: true,
  719. countCode: "",
  720. timerCode: null,
  721. zfrId: null,
  722. };
  723. },
  724. created() {
  725. this.zfrId = this.$route.params && this.$route.params.zfrId;
  726. getRecord(this.zfrId).then((response) => {
  727. this.zcFinanceInf = response.data.zcFinanceInf;
  728. this.needPay = response.data.needPay;
  729. //意愿类型
  730. this.zfpAuthType = response.data.zfpAuthType;
  731. const zfiId = response.data.zcFinanceInf.zfiId;
  732. this.$set(this.form, "zfrFinanceId", zfiId);
  733. this.$set(this.form,"zfrCollectionAccount",response.data.zfrCollectionAccount);
  734. this.getFinanceInf(zfiId);
  735. });
  736. this.getUserProfile();
  737. },
  738. methods: {
  739. /** 查询融信编号 */
  740. getFinanceInf(zfrFinanceId) {
  741. this.loading = true;
  742. listFinanceInf(zfrFinanceId).then((response) => {
  743. if (response.data) {
  744. this.financeInfList = response.data;
  745. for (let item of this.financeInfList) {
  746. if (item.zfiId == zfrFinanceId) {
  747. this.amount(item);
  748. }
  749. }
  750. this.loading = false;
  751. }
  752. });
  753. },
  754. getUserProfile() {
  755. getUserProfile().then((response) => {
  756. if (response.company) {
  757. this.$set(this.form, "companyName", response.company.scyName);
  758. }
  759. });
  760. },
  761. //获取盖章文件
  762. getCreditSealFile() {
  763. getCreditSealFile(this.forms).then((response) => {
  764. if (response.data.list) {
  765. this.creditSealList = response.data.list;
  766. }
  767. });
  768. },
  769. // 取消按钮
  770. cancel() {
  771. this.$store.dispatch("tagsView/delView", this.$route);
  772. this.$router.go(-1);
  773. },
  774. // 表单重置
  775. reset() {
  776. this.form = {
  777. zfrId: null,
  778. zfrFinanceId: null,
  779. zfrNumber: null,
  780. zfrAmount: null,
  781. zfrRate: null,
  782. zfrHandler: null,
  783. zfrRepaymentDate: null,
  784. zfrApplyDate: null,
  785. zfrLoanDate: null,
  786. zfrApplyAmount: null,
  787. zfrApplyType: null,
  788. zfrStatus: "00",
  789. zfrApproveStt: null,
  790. zfrProfitSpare1: null,
  791. zfrProfitSpare2: null,
  792. zfrProfitSpare3: null,
  793. zfrProfitSpare4: null,
  794. zfrProfitSpare5: null,
  795. zfrProfitSpare6: null,
  796. zfrProfitSpare7: null,
  797. zfrProfitSpare8: null,
  798. zfrProfitSpare9: null,
  799. createBy: null,
  800. createTime: null,
  801. updateBy: null,
  802. updateTime: null,
  803. };
  804. this.resetForm("form");
  805. },
  806. /** 全部搜索按钮操作 */
  807. handleQuery() {
  808. this.queryParams.pageNum = 1;
  809. this.getList();
  810. },
  811. /** 全部重置按钮操作 */
  812. resetQuery() {
  813. this.resetForm("queryForm");
  814. this.handleQuery();
  815. },
  816. //全部 多选框选中数据
  817. handleSelectionChange(selection) {
  818. this.ids = selection.map((item) => item.zfrId);
  819. this.single = selection.length !== 1;
  820. this.multiple = !selection.length;
  821. },
  822. /* 融信编号赋值融资金额 */
  823. amount(item) {
  824. this.$set(this.form, "zfrAmount", item.zfiAmount);
  825. this.$set(this.form, "zfiAmount", item.zfiAmount);
  826. this.$set(this.form, "zfrRepaymentDate", item.zfiExpireDate);
  827. this.$set(this.form, "zfrRate", item.zfpcrRate);
  828. this.$set(this.form, "zfpcrLoanType", item.zfpcrLoanType);
  829. this.$set(this.form, "zfiProductId", item.zfiProductId);
  830. this.$set(this.form, "zfpcrChargeRate", item.zfpcrChargeRate);
  831. this.$set(this.form, "cost", item.cost);
  832. this.$set(this.form, "term", item.term);
  833. this.$set(this.form, "amount", item.amount);
  834. if (item.zfiId) {
  835. this.loading = true;
  836. listBillInf(item.zfiId)
  837. .then((response) => {
  838. this.billInfList = response.data;
  839. this.loading = false;
  840. })
  841. .then(() => {
  842. var queryParamsFile = {};
  843. queryParamsFile.ticketList = this.billInfList;
  844. getFile(queryParamsFile).then((response) => {
  845. if (response.data) {
  846. //获取发票文件
  847. this.invoiceFileList = response.data.invoiceFileList;
  848. //获取合同文件
  849. this.contractFileList = response.data.contractFileList;
  850. //获取其他文件
  851. this.otherFileList = response.data.otherFileList;
  852. }
  853. });
  854. if (item.zfpcrLoanType == "0") {
  855. listAccInf(item.zfiProductId).then((response) => {
  856. this.$set(this.form, "zfrCollectionAccount", response.msg);
  857. this.onlyRead = true;
  858. });
  859. }
  860. });
  861. getCreditDetail(item.zfiId).then((response) => {
  862. if (response.data) {
  863. this.forms = response.data.financeInf;
  864. //签发金额大写
  865. this.issuedAmount = this.smallToBig(this.forms.zfiAmount);
  866. //给表格赋值
  867. this.openName = response.data.openName;
  868. this.openCode = response.data.openCode;
  869. this.openBank = response.data.openBank;
  870. this.openAccount = response.data.openAccount;
  871. this.receiveName = response.data.receiveName;
  872. this.receiverCode = response.data.receiverCode;
  873. this.receiverBank = response.data.receiverBank;
  874. this.receiverAccount = response.data.receiverAccount;
  875. this.stopDate = response.data.stopDate;
  876. this.zfiRate = response.data.financeInf.zfiRate;
  877. }
  878. //盖章合同
  879. this.getCreditSealFile();
  880. });
  881. }
  882. },
  883. //详情按钮
  884. handleDetail(index, rows) {
  885. this.zbiId = rows[index].zbiId;
  886. this.openDetailBill = true;
  887. },
  888. /** 提交按钮 */
  889. submitForm() {
  890. this.$refs["form"].validate((valid) => {
  891. if (valid) {
  892. const loading = this.$loading({
  893. lock: true,
  894. text: "Loading",
  895. spinner: "el-icon-loading",
  896. background: "rgba(0, 0, 0, 0.7)",
  897. });
  898. addRecord(this.form)
  899. .then((response) => {
  900. loading.close();
  901. this.zfrId = response.data.zfrId;
  902. this.isOpenApproval();
  903. // this.msgSuccess("融资申请成功");
  904. // this.$store.dispatch("tagsView/delView", this.$route);
  905. // this.$router.go(-1);
  906. })
  907. .catch((response) => {
  908. loading.close();
  909. });
  910. }
  911. });
  912. },
  913. /* 清空 */
  914. clearBoth() {
  915. this.form.zfrAmount = "";
  916. this.form, (zfrRepaymentDate = "");
  917. this.form.zfrRate = "";
  918. this.form.zfpcrLoanType = "";
  919. this.billInfList = [];
  920. this.contractFileList = [];
  921. this.invoiceFileList = [];
  922. this.otherFileList = [];
  923. },
  924. //文件下载
  925. handleDownload(row) {
  926. debugger;
  927. const pfiFileUrl = row.pfiFileUrl;
  928. if (pfiFileUrl != null && pfiFileUrl != "") {
  929. const pfiFileName = row.pfiFileName;
  930. this.queryParamsDown.pfiFileUrl = pfiFileUrl;
  931. this.download(
  932. "sc-service/creditLine/jpgAuthorization",
  933. {
  934. ...this.queryParamsDown,
  935. },
  936. pfiFileName
  937. );
  938. // window.open(pfiUrl + "/" + getToken());
  939. } else {
  940. this.$message({
  941. message: "该附件不存在!",
  942. type: "warning",
  943. });
  944. return;
  945. }
  946. },
  947. //预览
  948. handlePreview(row) {
  949. const pfiUrl = row.pfiUrl;
  950. const pfiFileName = row.pfiFileName;
  951. if (row.pfiUrl) {
  952. console.log(pfiFileName.substr(-3));
  953. if (pfiFileName.substr(-3) == "pdf") {
  954. this.wordUrl = pfiUrl + "/" + getToken();
  955. this.show = false;
  956. this.heid = true;
  957. } else if (
  958. pfiFileName.substr(-3) == "jpg" ||
  959. pfiFileName.substr(-3) == "png" ||
  960. pfiFileName.substr(-3) == "JPG" ||
  961. pfiFileName.substr(-3) == "PNG" ||
  962. pfiFileName.substr(-4) == "jpeg" ||
  963. pfiFileName.substr(-3) == "JPEG"
  964. ) {
  965. this.wordUrl = pfiUrl + "/" + getToken();
  966. this.show = true;
  967. this.heid = false;
  968. console.log("====>", this.wordUrl);
  969. } else if (
  970. pfiFileName.substr(-3) == "doc" ||
  971. pfiFileName.substr(-3) == "DOC" ||
  972. pfiFileName.substr(-4) == "docx" ||
  973. pfiFileName.substr(-3) == "DOCX"
  974. ) {
  975. this.wordUrl =
  976. "https://view.officeapps.live.com/op/view.aspx?src=" +
  977. pfiUrl +
  978. "/" +
  979. getToken() +
  980. "/" +
  981. pfiFileName;
  982. this.show = false;
  983. this.heid = true;
  984. console.log("====>", this.wordUrl);
  985. } else {
  986. this.$message({
  987. message: "暂不支持该类型文件预览",
  988. type: "warning",
  989. });
  990. return;
  991. }
  992. }
  993. this.openFile = true;
  994. },
  995. //应收账款合计
  996. allAmount() {
  997. var strarr = [0.0];
  998. for (let i in this.billInfList) {
  999. strarr.push(this.billInfList[i]["zbiAmount"]);
  1000. }
  1001. return Math.floor(eval(strarr.join("+")) * 100) / 100; //结果
  1002. },
  1003. /* // 将数字金额转换为大写金额 */
  1004. smallToBig(money) {
  1005. // 将数字金额转换为大写金额
  1006. var cnNums = new Array(
  1007. "零",
  1008. "壹",
  1009. "贰",
  1010. "叁",
  1011. "肆",
  1012. "伍",
  1013. "陆",
  1014. "柒",
  1015. "捌",
  1016. "玖"
  1017. ); //汉字的数字
  1018. var cnIntRadice = new Array("", "拾", "佰", "仟"); //基本单位
  1019. var cnIntUnits = new Array("", "万", "亿", "兆"); //对应整数部分扩展单位
  1020. var cnDecUnits = new Array("角", "分", "毫", "厘"); //对应小数部分单位
  1021. var cnInteger = "整"; //整数金额时后面跟的字符
  1022. var cnIntLast = "元"; //整数完以后的单位
  1023. //最大处理的数字
  1024. var maxNum = 999999999999999.9999;
  1025. var integerNum; //金额整数部分
  1026. var decimalNum; //金额小数部分
  1027. //输出的中文金额字符串
  1028. var chineseStr = "";
  1029. var parts; //分离金额后用的数组,预定义
  1030. if (money == "" || money == null || money == undefined) {
  1031. return "零元零角零分";
  1032. }
  1033. money = parseFloat(money);
  1034. if (money >= maxNum) {
  1035. //超出最大处理数字
  1036. return "超出最大处理数字";
  1037. }
  1038. if (money == 0) {
  1039. chineseStr = cnNums[0] + cnIntLast + cnInteger;
  1040. return chineseStr;
  1041. }
  1042. //四舍五入保留两位小数,转换为字符串
  1043. money = Math.round(money * 100).toString();
  1044. integerNum = money.substr(0, money.length - 2);
  1045. decimalNum = money.substr(money.length - 2);
  1046. //获取整型部分转换
  1047. if (parseInt(integerNum, 10) > 0) {
  1048. var zeroCount = 0;
  1049. var IntLen = integerNum.length;
  1050. for (var i = 0; i < IntLen; i++) {
  1051. var n = integerNum.substr(i, 1);
  1052. var p = IntLen - i - 1;
  1053. var q = p / 4;
  1054. var m = p % 4;
  1055. if (n == "0") {
  1056. zeroCount++;
  1057. } else {
  1058. if (zeroCount > 0) {
  1059. chineseStr += cnNums[0];
  1060. }
  1061. //归零
  1062. zeroCount = 0;
  1063. chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
  1064. }
  1065. if (m == 0 && zeroCount < 4) {
  1066. chineseStr += cnIntUnits[q];
  1067. }
  1068. }
  1069. chineseStr += cnIntLast;
  1070. }
  1071. //小数部分
  1072. if (decimalNum != "") {
  1073. var decLen = decimalNum.length;
  1074. for (var i = 0; i < decLen; i++) {
  1075. var n = decimalNum.substr(i, 1);
  1076. if (n != "0") {
  1077. chineseStr += cnNums[Number(n)] + cnDecUnits[i];
  1078. }
  1079. }
  1080. }
  1081. if (chineseStr == "") {
  1082. chineseStr += cnNums[0] + cnIntLast + cnInteger;
  1083. } else if (decimalNum == "" || /^0*$/.test(decimalNum)) {
  1084. chineseStr += cnInteger;
  1085. }
  1086. return chineseStr;
  1087. },
  1088. /** 导出按钮操作 */
  1089. handleExport() {
  1090. this.download(
  1091. "sc-service/record/export",
  1092. {
  1093. ...this.queryParams,
  1094. },
  1095. `sc-service_record.xlsx`
  1096. );
  1097. },
  1098. // 取消按钮
  1099. cancelFtp() {
  1100. let form = {};
  1101. form.zfrId = this.zfrId;
  1102. cancelContract(form).then((response) => {
  1103. this.cancel();
  1104. });
  1105. this.pdfShowDialog = false;
  1106. },
  1107. //查询有无融资内部审批
  1108. isOpenApproval() {
  1109. var confirmParam = {};
  1110. confirmParam.menuId = "1000000006";
  1111. isOpenApproval(confirmParam).then((response) => {
  1112. var result = response.data.isOpen;
  1113. //有融资内部审批
  1114. if (true == result) {
  1115. this.msgSuccess("已提交内部审批,请内部审批通过后签署融资协议");
  1116. this.cancel();
  1117. } else {
  1118. //无融资内部审批,显示融资合同预览页面
  1119. // this.zfrId = '2c83a92dc238468aabd9cd3261748ae0'
  1120. getRecord(this.zfrId).then((response) => {
  1121. this.zcFinanceInf = response.data.zcFinanceInf;
  1122. this.needPay = response.data.needPay;
  1123. //意愿类型
  1124. this.zfpAuthType = response.data.zfpAuthType;
  1125. this.selectPayment();
  1126. });
  1127. }
  1128. });
  1129. },
  1130. //取消选择意愿
  1131. cancelUpdate() {
  1132. this.confirmIsShow = false;
  1133. this.resetUpdate();
  1134. },
  1135. //关闭盖章短信
  1136. cancelMessage() {
  1137. this.messageIsShow = false;
  1138. this.resetMessage();
  1139. },
  1140. //关闭授权编号激活短信
  1141. cancelMessages() {
  1142. this.messageIfShow = false;
  1143. this.resetMessages();
  1144. },
  1145. //关闭二维码
  1146. cancelFace() {
  1147. this.faceIsShow = false;
  1148. },
  1149. closePdfShow() {
  1150. this.pdfShowDialog = false;
  1151. },
  1152. resetUpdate() {
  1153. this.updateForm = {
  1154. radio: "",
  1155. };
  1156. //意愿类型还原为全部
  1157. this.zfpAuthType = "00";
  1158. this.resetForm("updateForm");
  1159. },
  1160. resetMessage() {
  1161. this.messageForm = {
  1162. validCode: "",
  1163. };
  1164. this.resetForm("messageForm");
  1165. },
  1166. resetMessages() {
  1167. this.messagesForm = {
  1168. validCode: "",
  1169. };
  1170. this.resetForm("messagesForm");
  1171. },
  1172. //获取合同文件
  1173. getContractFile() {
  1174. const loading = this.$loading({
  1175. lock: true,
  1176. text: "Loading",
  1177. background: "rgba(0, 0, 0,0)",
  1178. });
  1179. getContractFile(this.zcFinanceInf)
  1180. .then((response) => {
  1181. loading.close();
  1182. if (response.data.list) {
  1183. this.pdfFileList = response.data.list;
  1184. }
  1185. //文件存在
  1186. if (this.pdfFileList.length > 0) {
  1187. this.pdfIsShow = true
  1188. this.pdfShowDialog = true;
  1189. } else {
  1190. this.$message({
  1191. message: "文件不存在!",
  1192. type: "warning",
  1193. });
  1194. }
  1195. })
  1196. .catch((response) => {
  1197. loading.close();
  1198. });
  1199. },
  1200. //缴费查询
  1201. selectPayment() {
  1202. listCompanyHandler().then((response) => {
  1203. var self = this;
  1204. //self.paiAccno = '3115730025233104147';
  1205. if (response.data == true) {
  1206. cfcaProjectNo().then((response) => {
  1207. if (response.data.scyCfcaAuthNumber == null) {
  1208. this.messageIfShow = true;
  1209. } else {
  1210. var zfrId = self.zfrId;
  1211. listChargeStatus(zfrId).then((response) => {
  1212. if (response.data.accInfList[0]) {
  1213. self.paiAccno = response.data.accInfList[0].paiAccno;
  1214. }
  1215. if (response.data.chargeInfList[0]) {
  1216. if (response.data.chargeInfList[0].zciStatus == "00") {
  1217. self.zciId = response.data.chargeInfList[0].zciId;
  1218. self
  1219. .$confirm("请缴纳手续费" + self.needPay + "元", "警告", {
  1220. confirmButtonText: "去缴费",
  1221. cancelButtonText: "取消",
  1222. type: "warning",
  1223. })
  1224. .then(function () {
  1225. const loading = self.$loading({
  1226. lock: true,
  1227. text: "Loading",
  1228. spinner: "el-icon-loading",
  1229. background: "rgba(0, 0, 0, 0.7)",
  1230. });
  1231. if (self.paiAccno) {
  1232. balance(self.paiAccno)
  1233. .then((response) => {
  1234. if (
  1235. eval(self.needPay) > eval(response.data.kyAmt)
  1236. ) {
  1237. self.$message({
  1238. message:
  1239. "余额为" +
  1240. response.data.kyAmt +
  1241. "不足以抵扣本次缴费费用,请及时充值",
  1242. type: "warning",
  1243. });
  1244. loading.close();
  1245. } else {
  1246. console.log();
  1247. var map = {
  1248. recvAccNo: "",
  1249. recvAccNm: "",
  1250. tranAmt: self.needPay,
  1251. businessId: self.zciId,
  1252. type: "00",
  1253. };
  1254. transfer(map)
  1255. .then((response) => {
  1256. debugger;
  1257. loading.close();
  1258. setTimeout(() => {
  1259. if (response.data.status == "1") {
  1260. self.msgSuccess("缴费成功");
  1261. updateChargeStatus(zfrId, "02").then(
  1262. (res) => {
  1263. self.getContractFile();
  1264. }
  1265. );
  1266. } else if (response.data.status == "0") {
  1267. self.message("正在缴费中,请稍后再试");
  1268. updateChargeStatus(zfrId, "01").then(
  1269. (res) => {}
  1270. );
  1271. } else if (response.data.status == "2") {
  1272. self.msgError(
  1273. "缴费失败,前去费用管理再次缴费"
  1274. );
  1275. updateChargeStatus(zfrId, "05").then(
  1276. (res) => {}
  1277. );
  1278. }
  1279. }, 1000);
  1280. })
  1281. .catch(() => {
  1282. loading.close();
  1283. });
  1284. }
  1285. })
  1286. .catch(() => {
  1287. loading.close();
  1288. });
  1289. } else {
  1290. self.$message({
  1291. message: "您还没有电子账户,请联系平台开通电子账户",
  1292. type: "warning",
  1293. });
  1294. loading.close();
  1295. }
  1296. });
  1297. } else {
  1298. self.getContractFile();
  1299. }
  1300. } else {
  1301. self.getContractFile();
  1302. }
  1303. });
  1304. }
  1305. });
  1306. } else {
  1307. this.$message({
  1308. message: "此操作需经办人权限,请确认您是否是经办人",
  1309. type: 'warning'
  1310. });
  1311. }
  1312. });
  1313. },
  1314. //缴费
  1315. selectType() {
  1316. //选择签署意愿
  1317. if (this.zfpAuthType == "00") {
  1318. this.confirmIsShow = true;
  1319. } else {
  1320. this.checking();
  1321. }
  1322. },
  1323. //确认选择
  1324. confirmSelect() {
  1325. if (!this.updateForm.radio) {
  1326. this.$message({
  1327. message: "请选择签署意愿类型",
  1328. type: "warning",
  1329. });
  1330. return;
  1331. }
  1332. this.confirmIsShow = false;
  1333. this.zfpAuthType = this.updateForm.radio;
  1334. //调用人脸识别或者短信验证
  1335. this.checking();
  1336. },
  1337. //去签署
  1338. checking() {
  1339. //人脸
  1340. if (this.zfpAuthType == "01") {
  1341. //调用人脸识别生成二维码
  1342. faceAuth().then((response) => {
  1343. if (response.data) {
  1344. //获取二维码
  1345. this.fileUrl = response.data.fileUrl;
  1346. //获取源流水号
  1347. var originalTxSN = response.data.originalTxSN;
  1348. this.faceIsShow = true;
  1349. //每5秒查证人脸识别结果
  1350. var timeInterval = window.setInterval(() => {
  1351. setTimeout(() => {
  1352. //源流水不为空并且结果为空
  1353. if (originalTxSN && !this.faceResult) {
  1354. this.authForm.originalTxSN = originalTxSN;
  1355. //调用查证方法
  1356. checkFaceAuth(this.authForm).then((res) => {
  1357. //认证结果
  1358. this.faceResult = res.data.Verification;
  1359. //成功
  1360. if (this.faceResult == "20") {
  1361. this.msgSuccess("验证成功");
  1362. //关闭验证码
  1363. this.faceIsShow = false;
  1364. //关闭定时
  1365. window.clearInterval(timeInterval);
  1366. //调用盖章
  1367. this.contractSigning();
  1368. } else if (this.faceResult == "30") {
  1369. this.$message({
  1370. message: "验证失败",
  1371. type: "warning",
  1372. });
  1373. //关闭验证码
  1374. this.faceIsShow = false;
  1375. window.clearInterval(timeInterval);
  1376. }
  1377. });
  1378. }
  1379. }, 0);
  1380. }, 10000);
  1381. }
  1382. });
  1383. } else if (this.zfpAuthType == "02") {
  1384. //短信
  1385. this.messageIsShow = true;
  1386. }
  1387. },
  1388. //发送短信验证码
  1389. send() {
  1390. //发送
  1391. sendMessage().then((response) => {
  1392. if (response.data) {
  1393. //手机号
  1394. var newIphone = response.data.newIphone;
  1395. //结果
  1396. var result = response.data.result;
  1397. //倒计时
  1398. const TIME_COUNT = 60;
  1399. if (!this.timer) {
  1400. this.count = TIME_COUNT;
  1401. this.showCode = false;
  1402. this.timer = setInterval(() => {
  1403. if (this.count > 0 && this.count <= TIME_COUNT) {
  1404. this.count--;
  1405. } else {
  1406. this.showCode = true;
  1407. clearInterval(this.timer);
  1408. this.timer = null;
  1409. }
  1410. }, 1000);
  1411. }
  1412. //成功
  1413. if ("20" == result) {
  1414. this.$message({
  1415. message:
  1416. "已向经办人手机号为" + newIphone + "发送短信验证码,请注意查收",
  1417. type: "warning",
  1418. });
  1419. } else if ("10" == result) {
  1420. //失败
  1421. this.$message({
  1422. message: "短信发送失败",
  1423. type: "warning",
  1424. });
  1425. }
  1426. }
  1427. });
  1428. },
  1429. //校验验证码是否正确
  1430. checkCode() {
  1431. if (!this.messageForm.validCode) {
  1432. this.$message({
  1433. message: "请输入验证码",
  1434. type: "warning",
  1435. });
  1436. return;
  1437. }
  1438. //校验验证码
  1439. checkCode(this.messageForm).then((response) => {
  1440. if (response.data) {
  1441. //结果
  1442. var verification = response.data.verification;
  1443. //匹配
  1444. if ("20" == verification) {
  1445. //进行下一步-- 盖章
  1446. this.contractSigning();
  1447. } else if ("30" == verification) {
  1448. //不匹配
  1449. this.$message({
  1450. message: "验证有误,请重新输入",
  1451. type: "warning",
  1452. });
  1453. }
  1454. }
  1455. });
  1456. },
  1457. //生成项目授权编号发送短信
  1458. proSend() {
  1459. //发送
  1460. projectSendMessage().then((response) => {
  1461. if (response.data) {
  1462. //手机号
  1463. var newIphone = response.data.newIphone;
  1464. //结果
  1465. var result = response.data.result;
  1466. //项目编号
  1467. this.projectCode = response.data.projectCode;
  1468. //倒计时
  1469. const TIME_COUNT = 60;
  1470. if (!this.timerCode) {
  1471. this.countCode = TIME_COUNT;
  1472. this.showCodes = false;
  1473. this.timerCode = setInterval(() => {
  1474. if (this.countCode > 0 && this.countCode <= TIME_COUNT) {
  1475. this.countCode--;
  1476. } else {
  1477. this.showCodes = true;
  1478. clearInterval(this.timerCode);
  1479. this.timerCode = null;
  1480. }
  1481. }, 1000);
  1482. }
  1483. //成功
  1484. if ("60000000" == result) {
  1485. this.$message({
  1486. message:
  1487. "已向经办人手机号为" + newIphone + "发送短信验证码,请注意查收",
  1488. type: "warning",
  1489. });
  1490. } else {
  1491. //失败
  1492. this.$message({
  1493. message: "短信发送失败",
  1494. type: "warning",
  1495. });
  1496. }
  1497. }
  1498. });
  1499. },
  1500. //校验授权编号验证码
  1501. checkProCode() {
  1502. if (!this.projectForm.code) {
  1503. this.$message({
  1504. message: "请输入验证码",
  1505. type: "warning",
  1506. });
  1507. return;
  1508. }
  1509. //项目编号
  1510. this.projectForm.projectCode = this.projectCode;
  1511. //校验验证码
  1512. checkProCode(this.projectForm).then((response) => {
  1513. if (response.data) {
  1514. //结果
  1515. var verification = response.data.verification;
  1516. //匹配
  1517. if ("60000000" == verification) {
  1518. var zfrId = this.zfrId;
  1519. listChargeStatus(zfrId).then((response) => {
  1520. if (response.data[0]) {
  1521. if (response.data[0].zciStatus == "00") {
  1522. this.$confirm("请缴纳手续费" + this.needPay + "元", "警告", {
  1523. confirmButtonText: "去缴费",
  1524. cancelButtonText: "取消",
  1525. type: "warning",
  1526. })
  1527. .then(function () {
  1528. return updateChargeStatus(zfrId);
  1529. })
  1530. .then(() => {
  1531. this.getContractFile();
  1532. });
  1533. } else {
  1534. this.getContractFile();
  1535. }
  1536. } else {
  1537. this.getContractFile();
  1538. }
  1539. });
  1540. } else {
  1541. //不匹配
  1542. this.$message({
  1543. message: "验证有误,请重新输入",
  1544. type: "warning",
  1545. });
  1546. }
  1547. }
  1548. });
  1549. },
  1550. //盖章
  1551. contractSigning() {
  1552. var self = this;
  1553. const loading = this.$loading({
  1554. lock: true,
  1555. text: "Loading",
  1556. background: "rgba(0, 0, 0,0)",
  1557. });
  1558. self.zcFinanceInf.zfrId = self.zfrId;
  1559. contractSigning(self.zcFinanceInf)
  1560. .then((response) => {
  1561. loading.close();
  1562. self.msgSuccess("盖章成功");
  1563. if (self.zfpAuthType == "02") {
  1564. //关闭短信验证
  1565. self.messageIsShow = false;
  1566. } else if (self.zfpAuthType == "01") {
  1567. //关闭人脸二维码
  1568. self.faceIsShow = false;
  1569. }
  1570. // self.cancel();
  1571. //关闭预览合同
  1572. //self.closePdfShow();
  1573. let queryStamped = {};
  1574. queryStamped.zfrId = this.zfrId
  1575. const load = self.$loading({
  1576. lock: true,
  1577. text: "Loading",
  1578. background: "rgba(0, 0, 0,0)",
  1579. });
  1580. listStamped(queryStamped).then((response) =>{
  1581. if(response.data){
  1582. this.pdfFileList = response.data.list;
  1583. }
  1584. this.pdfShowDialog = true;
  1585. this.pdfIsShow = false;
  1586. load.close()
  1587. }).catch((response) => {
  1588. load.close();
  1589. });
  1590. })
  1591. .catch((response) => {
  1592. loading.close();
  1593. });
  1594. },
  1595. closePDF(){
  1596. this.cancel();
  1597. //关闭预览合同
  1598. this.closePdfShow();
  1599. }
  1600. },
  1601. };
  1602. </script>
  1603. <style lang="scss" scoped>
  1604. .zap-title {
  1605. padding: 20px 25px;
  1606. font-size: 16px;
  1607. color: #333333;
  1608. background-color: #ffffff;
  1609. }
  1610. .zap-form {
  1611. padding: 0px 25px 8px;
  1612. background-color: #ffffff;
  1613. }
  1614. .zap-form--clear {
  1615. padding-left: 0;
  1616. padding-right: 0;
  1617. }
  1618. </style>
  1619. <style type="text/css">
  1620. table.gridtable {
  1621. font-size: 11px;
  1622. color: #333333;
  1623. border-width: 1px;
  1624. border-collapse: collapse;
  1625. }
  1626. table.gridtable th {
  1627. border-width: 1px;
  1628. padding: 8px;
  1629. border-style: solid;
  1630. background-color: #dedede;
  1631. }
  1632. table.gridtable td {
  1633. border-width: 1px;
  1634. padding: 8px;
  1635. border-style: solid;
  1636. }
  1637. </style>