showStampedPdf.vue 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440
  1. <template>
  2. <div>
  3. <!-- <el-button type="text" @click="dialogVisible = true">点击打开 Dialog</el-button> -->
  4. <!-- <el-dialog :visible.sync="dialogVisible" width="80%" height="1080px;" :before-close="handleClose" append-to-body > -->
  5. <el-tabs v-model="activeName" type="card">
  6. <el-tab-pane v-for="item in pdfFileLists" :key="item.value" label="合同信息" name="first" style="height:500px;">
  7. <embed :src="'data:application/pdf;base64,' + item.base64" type="application/pdf" title="Embedded PDF" style="overflow: auto; width: 100%; height: 100%;"/>
  8. </el-tab-pane>
  9. <!-- <el-tab-pane label="申请协议" name="first" style="height:780px;">
  10. 招采融信申请协议
  11. 编号:ZCRXKL-20210712001
  12. 本《供应链金融服务平台融信转让协议》(以下简称为“本协议”、“《融信转让
  13. 协议》”)由融信转让人、融信受让人于本协议约定的时间在北京市东城区签署:
  14. 融信转让人:B 供应商 2_TSCF 培训专用
  15. 住所:成都市高新区新园南二路一号
  16. 法定代表人:张健
  17. 融信受让人:B 供应商 1_TSCF 培训专用
  18. 住所:成都市高新区新园南二路一号
  19. 法定代表人:张健 鉴于:
  20. (A) 融信反向保理平台由中粮资本科技有限责任公司建设并运营,向用户提供
  21. 应收账款管理、转让、融资等服务。
  22. (B) 融信转让人与融信受让人(以下简称为“双方”)均为融信反向保理平台的
  23. 用户。
  24. (C) 融信转让人现持有融信,享有融信项下的应收账款债权。
  25. (D) 双方均同意使用融信反向保理平台的服务,现融信转让人拟将融信项下应
  26. 收账款债权全部或部分通过融信反向保理平台转让给融信受让人,融信受
  27. 因此,经双方协商一致,签订本协议,约定如下:
  28. </el-tab-pane>
  29. <el-tab-pane label="配置管理" name="second" style="height:780px;">
  30. 住所:成都市高新区新园南二路一号
  31. 法定代表人:张健
  32. 融信受让人:B 供应商 1_TSCF 培训专用
  33. 住所:成都市高新区新园南二路一号
  34. 法定代表人:张健 鉴于:
  35. (A) 融信反向保理平台由中粮资本科技有限责任公司建设并运营,向用户提供
  36. 应收账款管理、转让、融资等服务。
  37. (B) 融信转让人与融信受让人(以下简称为“双方”)均为融信反向保理平台的
  38. 用户。
  39. (C) 融信转让人现持有融信,享有融信项下的应收账款债权。
  40. (D) 双方均同意使用融信反向保理平台的服务,现融信转让人拟将融信项下应
  41. 收账款债权全部或部分通过融信反向保理平台转让给融信受让人,融信受
  42. 因此,经双方协商一致,签订本协议,约定如下:</el-tab-pane> -->
  43. </el-tabs>
  44. <span slot="footer" class="dialog-footer" style="float: right;">
  45. <!-- <el-button type="primary" @click="selectType" size="mini">签署</el-button> -->
  46. <!-- <el-button @click="closePdfShow" size="mini">取 消</el-button> -->
  47. <el-button @click="submit" size="mini">确 定</el-button>
  48. </span>
  49. <!-- <span slot="footer" class="dialog-footer">
  50. <el-button @click="dialogVisible = false">取 消</el-button>
  51. </span> -->
  52. <!-- </el-dialog> -->
  53. <div>
  54. <!--选择签署意愿类型-->
  55. <!-- <el-dialog :visible.sync="confirmIsShow" width="600px" append-to-body :before-close = "cancelUpdate" center>
  56. <el-form ref="updateForm" :disabled="false" :model="updateForm" v-if="confirmIsShow" label-width="150px" class="demo-form-inline" :inline="true">
  57. <el-radio-group v-model="updateForm.radio">
  58. <el-radio label="01">人脸</el-radio>
  59. <el-radio label="02">短信</el-radio>
  60. </el-radio-group>
  61. </el-form>
  62. <div slot="footer" class="dialog-footer">
  63. <el-button type="primary" @click="confirmSelect">确 定</el-button>
  64. <el-button @click="cancelUpdate">取 消</el-button>
  65. </div>
  66. </el-dialog> -->
  67. <!--短信-->
  68. <!-- <el-dialog :visible.sync="messageIsShow" width="800px" append-to-body :before-close = "cancelMessage" center>
  69. <el-form ref="messageForm" :disabled="false" :model="messageForm" v-if="messageIsShow" label-width="150px" class="demo-form-inline" :inline="true" @submit.native.prevent>
  70. <el-form-item label="验证码" prop="validCode">
  71. <el-input v-model="messageForm.validCode" style="width: 200px" maxlength="6" oninput="value=value.replace(/[^\d]/g,'')"/>
  72. </el-form-item>
  73. <el-form-item>
  74. <el-button v-show="messShow" type="success" @click="send">点击获取验证码</el-button>
  75. <el-button v-show="!messShow" type="success" disabled><span>{{timer}}</span>秒后重新获取</el-button>
  76. </el-form-item>
  77. </el-form>
  78. <div slot="footer" class="dialog-footer">
  79. <el-button type="primary" @click="checkCode">确定</el-button>
  80. <el-button @click="cancelMessage">取 消</el-button>
  81. </div>
  82. </el-dialog> -->
  83. <!--授权编号的短信框-->
  84. <!-- <el-dialog title="授权短信验证" :visible.sync="projectIsShow" width="800px" append-to-body :before-close = "cancelProject" center>
  85. <el-form ref="projectForm" :disabled="false" :model="projectForm" v-if="projectIsShow" label-width="150px" class="demo-form-inline" :inline="true">
  86. <el-form-item label="验证码" prop="code">
  87. <el-input v-model="projectForm.code" style="width: 200px" maxlength="6" oninput="value=value.replace(/[^\d]/g,'')"/>
  88. </el-form-item>
  89. <el-form-item>
  90. <el-button v-show="proShow" type="success" @click="proSend">点击获取验证码</el-button>
  91. <el-button v-show="!proShow" type="success" disabled><span>{{proTimer}}</span>秒后重新获取</el-button>
  92. </el-form-item>
  93. </el-form>
  94. <div slot="footer" class="dialog-footer">
  95. <el-button type="primary" @click="checkProCode">确定</el-button>
  96. <el-button @click="cancelProject">取 消</el-button>
  97. </div>
  98. </el-dialog> -->
  99. <!--人脸二维码-->
  100. <!-- <el-dialog :visible.sync="faceIsShow" width="500px" append-to-body :before-close = "cancelFace" center>
  101. <img :src="'data:image/jpeg;base64,' + this.fileUrl" style="overflow: auto; width: 100%; height: 100%;"/>
  102. </el-dialog> -->
  103. <!--去融资-->
  104. <el-dialog :visible.sync="goShow" width="300px" append-to-body :before-close = "cancelGo" center>
  105. <!-- <p>恭喜您成功签收一笔融信</p> -->
  106. <p>签收融信成功,融信信息:</p>
  107. <el-form ref="financeSignForm" :model="financeSignForm" label-width="auto" :inline="true">
  108. <el-row>
  109. <el-form-item label="融信编号:">{{financeSignForm.zfiNumber}}</el-form-item>
  110. <el-form-item label="融信金额:">{{handleInput(financeSignForm.zfiAmount) + "元"}}</el-form-item>
  111. <el-form-item label="大写:">{{smallToBig(financeSignForm.zfiAmount)}}</el-form-item>
  112. </el-row>
  113. <el-row>
  114. <el-form-item label="融信利率:">{{financeSignForm.zfiRate + "%"}}</el-form-item>
  115. <el-form-item label="最长融信期限:">{{financeSignForm.intervalTime + "天"}}</el-form-item>
  116. <el-form-item label="融信有效期:">{{financeSignForm.validity}}</el-form-item>
  117. </el-row>
  118. </el-form>
  119. <div slot="footer" class="dialog-footer">
  120. <el-button type="primary" @click="goFinance">去融资</el-button>
  121. <el-button @click="cancelGo">取 消</el-button>
  122. </div>
  123. </el-dialog>
  124. </div>
  125. </div>
  126. </template>
  127. <script>
  128. import {sendMessage,checkCode,faceAuth,checkFaceAuth,contractSigning,listStamped} from "@/api/service/credit/message";
  129. import {cfcaProjectNo,projectSendMessage,checkProCode} from "@/api/service/credit/cfcaProject";
  130. import {getCreditDetail,getFinanceSign} from "@/api/service/credit/credit";
  131. import { amtformat } from "@/utils/amtCommon";
  132. import Cookies from 'js-cookie';
  133. export default {
  134. props : ['pdfFileLists','zfiId', 'parents'],
  135. data() {
  136. return {
  137. activeName: "first",
  138. dialogVisible: false,
  139. dialogTableVisible: false,
  140. dialogFormVisible: false,
  141. form: {
  142. name: "",
  143. region: "",
  144. date1: "",
  145. date2: "",
  146. delivery: false,
  147. type: [],
  148. resource: "",
  149. desc: "",
  150. },
  151. formLabelWidth: "120px",
  152. //展示选择意愿
  153. confirmIsShow:false,
  154. //意愿
  155. updateForm:{},
  156. //意愿类型
  157. zfpAuthTypeInit:'',
  158. zfpAuthType:'',
  159. //短信展示
  160. messageIsShow:false,
  161. //短信
  162. messageForm:{validCode:""},
  163. //人脸二维码
  164. fileUrl:"",
  165. //控制人脸二维码是否展示
  166. faceIsShow:false,
  167. //人脸验证结果
  168. faceResult:"",
  169. //人脸识别结果传参
  170. authForm:{},
  171. financeSignForm:{},
  172. //控制短信验证码倒计时是否展示
  173. messShow:true,
  174. timer:60,
  175. openFile:false,
  176. wordUrl: "",
  177. show:false,
  178. heid:false,
  179. auth_timer : null,
  180. //融资方审批状态
  181. zfiSupplierStatus:'',
  182. //核心审批状态
  183. zfiCoreStatus:'',
  184. //平台审批状态
  185. zfiPlatformStatus:'',
  186. //融信状态
  187. zfiStatus:'',
  188. //盖章文件
  189. creditSealList:[],
  190. //生成授权编号的短信框
  191. projectIsShow:false,
  192. //短信
  193. projectForm:{code:""},
  194. //控制倒计时是否展示
  195. proShow:true,
  196. //时间
  197. proTimer:60,
  198. //项目编号
  199. projectCode:"",
  200. //融信信息
  201. financeData:{},
  202. //接收方
  203. receiveName:"",
  204. //开立方
  205. openName:"",
  206. //显示去融资框
  207. goShow:false,
  208. //融信类型
  209. zfiCreateType:"",
  210. };
  211. },
  212. created() {
  213. getCreditDetail(this.zfiId).then((response) => {
  214. if(response.data){
  215. //融信状态
  216. this.zfiStatus = response.data.financeInf.zfiStatus;
  217. //融资方审批状态
  218. this.zfiSupplierStatus = response.data.financeInf.zfiSupplierStatus;
  219. //平台审批状态
  220. this.zfiPlatformStatus = response.data.financeInf.zfiPlatformStatus;
  221. //核心审批状态
  222. this.zfiCoreStatus = response.data.financeInf.zfiCoreStatus;
  223. //意愿类型
  224. this.zfpAuthType = response.data.zfpAuthType;
  225. this.zfpAuthTypeInit = response.data.zfpAuthType;
  226. //融信信息
  227. this.financeData = response.data.financeInf;
  228. //接收方
  229. this.receiveName = response.data.receiveName;
  230. //开立方
  231. this.openName = response.data.openName;
  232. //融信类型
  233. this.zfiCreateType = response.data.financeInf.zfiCreateType;
  234. }
  235. })
  236. this.dialogVisible = true;
  237. for(var i = 0 ; i < this.pdfFileLists.length; i++){
  238. var base64 = this.pdfFileLists[i].base64;
  239. <embed src="data:application/pdf;base64," type="application/pdf" title="Embedded PDF" style="overflow: auto; width: 100%; height: 100%;"/>
  240. }
  241. },
  242. methods: {
  243. handleClose(done) {
  244. this.$confirm("确认关闭?")
  245. .then((_) => {
  246. done();
  247. })
  248. .catch((_) => {});
  249. },
  250. selectChildType(){
  251. this.$parent.selectType();
  252. },
  253. //回到父页
  254. cancelGo(){
  255. this.goShow = false;
  256. this.closePdfShows();
  257. this.goParent();
  258. },
  259. closePdfShows(){
  260. this.parents.closePdfShows();
  261. },
  262. //返回到列表页
  263. goParent(){
  264. this.parents.goParent();
  265. },
  266. //去融资
  267. goFinance(){
  268. //关闭弹框
  269. this.goShow = false;
  270. this.closePdfShows();
  271. this.goParent();
  272. Cookies.set("/credit/goFinance/"+this.zfiId + "/", this.$route.fullPath)
  273. this.$router.push({ path: "/credit/goFinance/"+this.zfiId + "/" });
  274. },
  275. submit(){
  276. //状态判断为盖完章之后的
  277. debugger
  278. if(this.zfiStatus == '01' && this.zfiCreateType == '0'){
  279. //供应商申请
  280. this.msgSuccess("确权成功,融信已提交,"+this.receiveName+"签收");
  281. this.closePdfShows();
  282. this.goParent();
  283. }
  284. else if(this.zfiStatus == '02' && this.zfiCreateType == '2'){//供应商开立
  285. this.msgSuccess("确权成功,融信已生效");
  286. this.closePdfShows();
  287. this.goParent();
  288. }else if(this.zfiStatus == '02' && this.zfiCreateType == '0'){//签收
  289. getFinanceSign(this.zfiId).then((response) => {
  290. //融信编号
  291. this.financeSignForm.zfiNumber = response.data.zfiNumber;
  292. //融信金额
  293. if(response.data.zfiAmount){
  294. this.financeSignForm.zfiAmount = response.data.zfiAmount;
  295. }else{
  296. this.financeSignForm.zfiAmount = "0.00";
  297. }
  298. //利率
  299. if(response.data.zfiRate){
  300. this.financeSignForm.zfiRate = response.data.zfiRate;
  301. }else{
  302. this.financeSignForm.zfiRate = "0";
  303. }
  304. //最长融信期限
  305. this.financeSignForm.intervalTime = response.data.intervalTime;
  306. //融信有效期
  307. if(response.data.validity){
  308. this.financeSignForm.validity = response.data.validity;
  309. }
  310. this.goShow = true;
  311. this.closePdfShows();
  312. });
  313. }else if(this.zfiCreateType == '1' && this.zfiCoreStatus == '01' && this.zfiStatus=='01'){//核心开立
  314. this.msgSuccess("开立成功,融信已提交"+this.receiveName+"签收");
  315. this.closePdfShows();
  316. this.goParent();
  317. }else if(this.zfiCreateType == '2' && this.zfiPlatformStatus == '01' && this.zfiSupplierStatus == '01' && this.zfiStatus=='00'){
  318. //融资开立盖章
  319. this.msgSuccess("开立成功,待:"+this.openName+"确权;确权结果请留意待办事项与站内消息");
  320. this.closePdfShows();
  321. this.goParent();
  322. }else if(this.zfiCreateType == '1' && this.zfiSupplierStatus == '01' && this.zfiPlatformStatus == '01'){//补充资料
  323. getFinanceSign(this.zfiId).then((response) => {
  324. //融信编号
  325. this.financeSignForm.zfiNumber = response.data.zfiNumber;
  326. //融信金额
  327. if(response.data.zfiAmount){
  328. this.financeSignForm.zfiAmount = response.data.zfiAmount;
  329. }else{
  330. this.financeSignForm.zfiAmount = "0.00";
  331. }
  332. //利率
  333. if(response.data.zfiRate){
  334. this.financeSignForm.zfiRate = response.data.zfiRate;
  335. }else{
  336. this.financeSignForm.zfiRate = "0";
  337. }
  338. //最长融信期限
  339. this.financeSignForm.intervalTime = response.data.intervalTime;
  340. //融信有效期
  341. if(response.data.validity){
  342. this.financeSignForm.validity = response.data.validity;
  343. }
  344. this.goShow = true;
  345. this.closePdfShows();
  346. });
  347. }
  348. },
  349. /* 金额展示 */
  350. handleInput(str) {
  351. return amtformat(str, 2, ".", ",");
  352. },
  353. /* // 将数字金额转换为大写金额 */
  354. smallToBig(money) {
  355. // 将数字金额转换为大写金额
  356. var cnNums = new Array(
  357. "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" ); //汉字的数字
  358. var cnIntRadice = new Array("", "拾", "佰", "仟"); //基本单位
  359. var cnIntUnits = new Array("", "万", "亿", "兆"); //对应整数部分扩展单位
  360. var cnDecUnits = new Array("角", "分", "毫", "厘"); //对应小数部分单位
  361. var cnInteger = "整"; //整数金额时后面跟的字符
  362. var cnIntLast = "元"; //整数完以后的单位
  363. //最大处理的数字
  364. var maxNum = 999999999999999.9999;
  365. var integerNum; //金额整数部分
  366. var decimalNum; //金额小数部分
  367. //输出的中文金额字符串
  368. var chineseStr = "";
  369. var parts; //分离金额后用的数组,预定义
  370. if (money == "" || money == null || money == undefined) {
  371. return "零元零角零分";
  372. }
  373. money = parseFloat(money);
  374. if (money >= maxNum) {
  375. //超出最大处理数字
  376. return "超出最大处理数字";
  377. }
  378. if (money == 0) {
  379. chineseStr = cnNums[0] + cnIntLast + cnInteger;
  380. return chineseStr;
  381. }
  382. //四舍五入保留两位小数,转换为字符串
  383. money = Math.round(money * 100).toString();
  384. integerNum = money.substr(0, money.length - 2);
  385. decimalNum = money.substr(money.length - 2);
  386. //获取整型部分转换
  387. if (parseInt(integerNum, 10) > 0) {
  388. var zeroCount = 0;
  389. var IntLen = integerNum.length;
  390. for (var i = 0; i < IntLen; i++) {
  391. var n = integerNum.substr(i, 1);
  392. var p = IntLen - i - 1;
  393. var q = p / 4;
  394. var m = p % 4;
  395. if (n == "0") {
  396. zeroCount++;
  397. } else {
  398. if (zeroCount > 0) {
  399. chineseStr += cnNums[0];
  400. }
  401. //归零
  402. zeroCount = 0;
  403. chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
  404. }
  405. if (m == 0 && zeroCount < 4) {
  406. chineseStr += cnIntUnits[q];
  407. }
  408. }
  409. chineseStr += cnIntLast;
  410. }
  411. //小数部分
  412. if (decimalNum != "") {
  413. var decLen = decimalNum.length;
  414. for (var i = 0; i < decLen; i++) {
  415. var n = decimalNum.substr(i, 1);
  416. if (n != "0") {
  417. chineseStr += cnNums[Number(n)] + cnDecUnits[i];
  418. }
  419. }
  420. }
  421. if (chineseStr == "") {
  422. chineseStr += cnNums[0] + cnIntLast + cnInteger;
  423. } else if (decimalNum == "" || /^0*$/.test(decimalNum)) {
  424. chineseStr += cnInteger;
  425. }
  426. return chineseStr;
  427. },
  428. },
  429. };
  430. </script>