creditDetail.vue 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383
  1. <template>
  2. <div class="app-container">
  3. <el-form ref="form" :model="form" disabled :rules="rules" :inline="true" style="margin-top: 20px" label-width="auto" >
  4. <el-divider content-position="left">融信详情</el-divider>
  5. <el-row>
  6. <el-col :span="8">
  7. <el-form-item label="融信编号" prop="zfiNumber">
  8. <el-input v-model="form.zfiNumber" style="width: 200px"/>
  9. </el-form-item>
  10. </el-col>
  11. <el-col :span="8">
  12. <el-form-item label="创建时间" prop="createTime">
  13. <el-date-picker disabled size="small" style="width: 200px" v-model="form.createTime" type="datetime" value-format="yyyy-MM-dd HH:mm:ss">
  14. </el-date-picker>
  15. </el-form-item>
  16. </el-col>
  17. <el-col :span="8">
  18. <el-form-item label="创建人" prop="createName">
  19. <el-input v-model="form.createName" style="width: 200px"/>
  20. </el-form-item>
  21. </el-col>
  22. <el-col :span="8">
  23. <el-form-item label="开立方" prop="openName">
  24. <el-input v-model="form.openName" style="width: 200px"/>
  25. </el-form-item>
  26. </el-col>
  27. <el-col :span="8">
  28. <el-form-item label="接收方" prop="receiveName">
  29. <el-input v-model="form.receiveName" style="width: 200px"/>
  30. </el-form-item>
  31. </el-col>
  32. <el-col :span="8">
  33. <el-form-item label="授信额度" prop="zfpName" >
  34. <el-input v-model="form.zfpName" style="width: 200px"/>
  35. </el-form-item>
  36. </el-col>
  37. </el-row>
  38. <el-row>
  39. <el-col :span="8">
  40. <el-form-item label="签发有效期" prop="zfiEffectiveDate">
  41. <el-date-picker disabled size="small" style="width: 200px" v-model="form.zfiEffectiveDate" type="date" value-format="yyyy-MM-dd">
  42. </el-date-picker>
  43. </el-form-item>
  44. </el-col>
  45. <el-col :span="8">
  46. <el-form-item label="承诺还款日" prop="zfiExpireDate" >
  47. <el-date-picker disabled size="small" style="width: 200px" v-model="form.zfiExpireDate" type="date" value-format="yyyy-MM-dd">
  48. </el-date-picker>
  49. </el-form-item>
  50. </el-col>
  51. <!-- <el-col :span="8">
  52. <el-form-item label="收款账号" prop="zfiCollectionAccount" v-if="isShow">
  53. <el-input v-model="form.zfiCollectionAccount" style="width: 200px"/>
  54. </el-form-item>
  55. </el-col> -->
  56. </el-row>
  57. <el-divider content-position="left" >{{tableTitle}}</el-divider>
  58. <el-form-item style="margin-left: 100px">
  59. <el-form-item label="合计金额:">
  60. <span>{{checkTotalAmt}}</span>
  61. </el-form-item>
  62. <el-form-item label="金额大写:">
  63. <span>{{checkTotalBigAmt}}</span>
  64. </el-form-item>
  65. <el-table :data="payList" style="width: 1100px">
  66. <el-table-column label="账款名称" align="center" prop="zbiName" show-overflow-tooltip />
  67. <el-table-column label="应收企业" align="center" prop="receiveName"/>
  68. <el-table-column label="应付企业" align="center" prop="payName" />
  69. <el-table-column label="预计还款期" align="center" prop="zbiPayDate" show-overflow-tooltip />
  70. <el-table-column label="金额" align="center" prop="zbiAmount" />
  71. </el-table>
  72. </el-form-item>
  73. <el-row>
  74. <el-col :span="8">
  75. <el-form-item label="签发金额" prop="zfiAmount">
  76. <el-input v-model="form.zfiAmount" style="width: 200px"/>
  77. </el-form-item>
  78. </el-col>
  79. </el-row>
  80. <el-row>
  81. <el-col :span="8">
  82. <el-form-item label="金额大写" prop="issuedAmount">
  83. {{issuedAmount}}
  84. </el-form-item>
  85. </el-col>
  86. </el-row>
  87. </el-form>
  88. <!-- 发票附件 -->
  89. <el-divider content-position="left">发票附件</el-divider>
  90. <el-table :data="invoiceFileList" style="width: 100%">
  91. <el-table-column label="文件名称" align="center" prop="pfiFileName" show-overflow-tooltip />
  92. <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width='300' fixed="right" >
  93. <template slot-scope="scope">
  94. <el-button
  95. size="mini"
  96. type="text"
  97. icon="el-icon-view"
  98. @click="handleDownload(scope.row)"
  99. >下载</el-button>
  100. </template>
  101. </el-table-column>
  102. </el-table>
  103. <!-- 合同附件 -->
  104. <el-divider content-position="left">合同附件</el-divider>
  105. <el-table :data="contractFileList" style="width: 100%">
  106. <el-table-column label="文件名称" align="center" prop="pfiFileName" show-overflow-tooltip />
  107. <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width='300' fixed="right" >
  108. <template slot-scope="scope">
  109. <el-button
  110. size="mini"
  111. type="text"
  112. icon="el-icon-view"
  113. @click="handleDownload(scope.row)"
  114. >下载</el-button>
  115. </template>
  116. </el-table-column>
  117. </el-table>
  118. <!-- 其他附件 -->
  119. <el-divider content-position="left">其他附件</el-divider>
  120. <el-table :data="otherFileList" style="width: 100%">
  121. <el-table-column label="文件名称" align="center" prop="pfiFileName" show-overflow-tooltip />
  122. <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width='300' fixed="right" >
  123. <template slot-scope="scope">
  124. <el-button
  125. size="mini"
  126. type="text"
  127. icon="el-icon-view"
  128. @click="handleDownload(scope.row)"
  129. >下载</el-button>
  130. </template>
  131. </el-table-column>
  132. </el-table>
  133. <div class="footer" style="float: right;
  134. margin-bottom:2px;">
  135. <el-button @click="cancel">取 消</el-button>
  136. </div>
  137. </div>
  138. </template>
  139. <script>
  140. import {getCreditDetail,getFile} from "@/api/service/credit/credit";
  141. import {accAdd} from "@/utils/calculation";
  142. import {getToken} from "@/utils/auth";
  143. export default {
  144. name: "addCredit",
  145. components: {},
  146. data() {
  147. return {
  148. // 总条数
  149. total: 0,
  150. // 表单参数
  151. form: {
  152. },
  153. // 表单校验
  154. rules: {
  155. },
  156. // 是否显示弹出层
  157. open: false,
  158. //应付账款
  159. payList:[],
  160. //签发金额大写
  161. issuedAmount:"零元整",
  162. //合计选中的应付账款的金额
  163. checkTotalAmt:"0.00",
  164. //合计选中的应付账款的大写金额
  165. checkTotalBigAmt:"零元整",
  166. //标题
  167. tableTitle:"",
  168. //控制收款账号是否显示
  169. isShow:false,
  170. //获取类型
  171. createType:'',
  172. //合同附件
  173. contractFileList:[],
  174. //发票附件
  175. invoiceFileList:[],
  176. //其他文件
  177. otherFileList:[]
  178. };
  179. },
  180. created() {
  181. const zfiId = this.$route.params && this.$route.params.zfiId;
  182. getCreditDetail(zfiId).then((response) => {
  183. if(response.data){
  184. //融信信息
  185. this.form = response.data.financeInf;
  186. this.createType = response.data.financeInf.zfiCreateType;
  187. //核心开立
  188. if(response.data.financeInf.zfiCreateType == '1'){
  189. this.tableTitle = "应付账款";
  190. }else{
  191. this.tableTitle = "应收账款";
  192. //融资开立
  193. if(response.data.financeInf.zfiCreateType == '2'){
  194. //收款账号
  195. //非电子
  196. if(response.data.proComRel.zfpcrLoanType != '0'){
  197. this.isShow = true;
  198. }
  199. }
  200. }
  201. //接收方
  202. this.form.receiveName = response.data.receiveName;
  203. //授信额度
  204. this.form.zfpName = response.data.zfpName;
  205. //开立方
  206. this.form.openName = response.data.openName;
  207. //创建人
  208. this.form.createName = response.data.createName;
  209. //签发金额大写
  210. this.issuedAmount = this.smallToBig(this.form.zfiAmount);
  211. }
  212. if(response.data.payList){
  213. this.payList = response.data.payList.records;
  214. this.getReTotal(this.payList);
  215. //附件
  216. this.getFile(this.payList);
  217. }
  218. })
  219. },
  220. methods: {
  221. // 取消按钮
  222. cancel() {
  223. this.$store.dispatch("tagsView/delView", this.$route);
  224. this.$router.go(-1);
  225. },
  226. /* 多选框跨页 */
  227. rowkeyCustomer(row) {
  228. return row.cciId;
  229. },
  230. //重新合计
  231. getReTotal(chooseTicket){
  232. //合计
  233. this.checkTotalAmt = "0.00";
  234. for(var i = 0; i < chooseTicket.length;i++){
  235. this.checkTotalAmt = accAdd(this.checkTotalAmt,chooseTicket[i].zbiAmount,2);
  236. }
  237. this.checkTotalBigAmt = this.smallToBig(this.checkTotalAmt);
  238. this.checkTotalAmt = this.amtFormat(this.checkTotalAmt);
  239. },
  240. //获取附件信息
  241. getFile(datas){
  242. var queryParamsFile = {};
  243. queryParamsFile.ticketList = datas;
  244. getFile(queryParamsFile).then((response) => {
  245. if(response.data){
  246. //获取发票文件
  247. this.invoiceFileList = response.data.invoiceFileList;
  248. //获取合同文件
  249. this.contractFileList = response.data.contractFileList;
  250. //获取其他文件
  251. this.otherFileList = response.data.otherFileList;
  252. }
  253. });
  254. },
  255. //文件下载
  256. handleDownload(row){
  257. const pfiUrl = row.pfiUrl;
  258. if(pfiUrl != null && pfiUrl != ''){
  259. window.open(pfiUrl +"/"+ getToken());
  260. }else{
  261. this.$message({
  262. message: '该附件不存在!',
  263. type: 'warning'
  264. });
  265. return;
  266. }
  267. },
  268. //格式化金额
  269. amtFormat(cellValue) {
  270. if(cellValue == null || cellValue== undefined || cellValue == ''){
  271. cellValue = '0.00'
  272. }
  273. cellValue += '';
  274.       if (!cellValue.includes('.')) {
  275. cellValue += '.00';
  276. }
  277.       return cellValue.replace(/(\d)(?=(\d{3})+\.)/g, function ($0, $1) {
  278.         return $1 + ',';
  279.       }).replace(/\.$/, '');
  280. },
  281. /* // 将数字金额转换为大写金额 */
  282. smallToBig(money) {
  283. // 将数字金额转换为大写金额
  284. var cnNums = new Array(
  285. "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" ); //汉字的数字
  286. var cnIntRadice = new Array("", "拾", "佰", "仟"); //基本单位
  287. var cnIntUnits = new Array("", "万", "亿", "兆"); //对应整数部分扩展单位
  288. var cnDecUnits = new Array("角", "分", "毫", "厘"); //对应小数部分单位
  289. var cnInteger = "整"; //整数金额时后面跟的字符
  290. var cnIntLast = "元"; //整数完以后的单位
  291. //最大处理的数字
  292. var maxNum = 999999999999999.9999;
  293. var integerNum; //金额整数部分
  294. var decimalNum; //金额小数部分
  295. //输出的中文金额字符串
  296. var chineseStr = "";
  297. var parts; //分离金额后用的数组,预定义
  298. if (money == "" || money == null || money == undefined) {
  299. return "零元零角零分";
  300. }
  301. money = parseFloat(money);
  302. if (money >= maxNum) {
  303. //超出最大处理数字
  304. return "超出最大处理数字";
  305. }
  306. if (money == 0) {
  307. chineseStr = cnNums[0] + cnIntLast + cnInteger;
  308. return chineseStr;
  309. }
  310. //四舍五入保留两位小数,转换为字符串
  311. money = Math.round(money * 100).toString();
  312. integerNum = money.substr(0, money.length - 2);
  313. decimalNum = money.substr(money.length - 2);
  314. //获取整型部分转换
  315. if (parseInt(integerNum, 10) > 0) {
  316. var zeroCount = 0;
  317. var IntLen = integerNum.length;
  318. for (var i = 0; i < IntLen; i++) {
  319. var n = integerNum.substr(i, 1);
  320. var p = IntLen - i - 1;
  321. var q = p / 4;
  322. var m = p % 4;
  323. if (n == "0") {
  324. zeroCount++;
  325. } else {
  326. if (zeroCount > 0) {
  327. chineseStr += cnNums[0];
  328. }
  329. //归零
  330. zeroCount = 0;
  331. chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
  332. }
  333. if (m == 0 && zeroCount < 4) {
  334. chineseStr += cnIntUnits[q];
  335. }
  336. }
  337. chineseStr += cnIntLast;
  338. }
  339. //小数部分
  340. if (decimalNum != "") {
  341. var decLen = decimalNum.length;
  342. for (var i = 0; i < decLen; i++) {
  343. var n = decimalNum.substr(i, 1);
  344. if (n != "0") {
  345. chineseStr += cnNums[Number(n)] + cnDecUnits[i];
  346. }
  347. }
  348. }
  349. if (chineseStr == "") {
  350. chineseStr += cnNums[0] + cnIntLast + cnInteger;
  351. } else if (decimalNum == "" || /^0*$/.test(decimalNum)) {
  352. chineseStr += cnInteger;
  353. }
  354. return chineseStr;
  355. }
  356. }
  357. };
  358. </script>
  359. <style lang="scss">
  360. .uoloadfj .el-upload--picture-card{
  361. width:110px;
  362. height:110px;
  363. line-height:110px;
  364. }
  365. .fjUoloadSty .el-upload--picture-card{
  366. display:none;
  367. }
  368. table th.star div::before {
  369. content: '*';
  370. color: red;
  371. }
  372. </style>