123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646 |
- <template>
- <div class="app-container">
- <el-form ref="form" :model="form" disabled :rules="rules" :inline="true" style="margin-top: 20px" label-width="auto" >
- <el-row>
- <el-col :span="8">
- <el-form-item label="融信编号" prop="zfiNumber">
- <el-input v-model="form.zfiNumber" style="width: 200px"/>
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="创建时间" prop="createTime">
- <el-date-picker disabled size="small" style="width: 200px" v-model="form.createTime" type="datetime" value-format="yyyy-MM-dd HH:mm:ss">
- </el-date-picker>
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="创建人" prop="createName">
- <el-input v-model="form.createName" style="width: 200px"/>
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="开立方" prop="openName">
- <el-input v-model="form.openName" style="width: 200px"/>
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="接收方" prop="receiveName">
- <el-input v-model="form.receiveName" style="width: 200px"/>
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="授信额度" prop="zfpName" >
- <el-input v-model="form.zfpName" style="width: 200px"/>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="8">
- <el-form-item label="签发有效期" prop="zfiEffectiveDate">
- <el-date-picker disabled size="small" style="width: 200px" v-model="form.zfiEffectiveDate" type="date" value-format="yyyy-MM-dd">
- </el-date-picker>
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="承诺还款日" prop="zfiExpireDate" >
- <el-date-picker disabled size="small" style="width: 200px" v-model="form.zfiExpireDate" type="date" value-format="yyyy-MM-dd">
- </el-date-picker>
- </el-form-item>
- </el-col>
- <!-- <el-col :span="8">
- <el-form-item label="收款账号" prop="zfiCollectionAccount" v-if="isShow">
- <el-input v-model="form.zfiCollectionAccount" style="width: 200px"/>
- </el-form-item>
- </el-col> -->
- </el-row>
- <el-divider content-position="left" >{{tableTitle}}</el-divider>
- <el-form-item style="margin-left: 100px">
- <el-form-item label="合计金额:">
- <span>{{checkTotalAmt}}</span>
- </el-form-item>
- <el-form-item label="金额大写:">
- <span>{{checkTotalBigAmt}}</span>
- </el-form-item>
-
- <el-table :data="payList" style="width: 1100px">
- <el-table-column label="账款名称" align="center" prop="zbiName" show-overflow-tooltip />
- <el-table-column label="应收企业" align="center" prop="receiveName"/>
- <el-table-column label="应付企业" align="center" prop="payName" />
- <el-table-column label="预计还款期" align="center" prop="zbiPayDate" show-overflow-tooltip />
- <el-table-column label="金额" align="center" prop="zbiAmount" />
- </el-table>
- </el-form-item>
- <el-row>
- <el-col :span="8">
- <el-form-item label="签发金额" prop="zfiAmount">
- <el-input v-model="form.zfiAmount" style="width: 200px"/>
- </el-form-item>
- </el-col>
-
- </el-row>
- <el-row>
- <el-col :span="8">
- <el-form-item label="金额大写" prop="issuedAmount">
- {{issuedAmount}}
- </el-form-item>
- </el-col>
- </el-row>
- </el-form>
- <!-- 发票附件 -->
- <el-divider content-position="left">发票附件</el-divider>
- <el-table :data="invoiceFileList" style="width: 100%">
- <el-table-column label="文件名称" align="center" prop="pfiFileName" show-overflow-tooltip />
- <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width='300' fixed="right" >
- <template slot-scope="scope">
- <el-button
- size="mini"
- type="text"
- icon="el-icon-view"
- @click="handleDetail(scope.row)"
- >下载</el-button>
- </template>
- </el-table-column>
- </el-table>
- <!-- 合同附件 -->
- <el-divider content-position="left">合同附件</el-divider>
- <el-table :data="contractFileList" style="width: 100%">
- <el-table-column label="文件名称" align="center" prop="pfiFileName" show-overflow-tooltip />
- <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width='300' fixed="right" >
- <template slot-scope="scope">
- <el-button
- size="mini"
- type="text"
- icon="el-icon-view"
- @click="handleDetail(scope.row)"
- >下载</el-button>
- </template>
- </el-table-column>
- </el-table>
- <!-- 其他附件 -->
- <el-divider content-position="left">其他附件</el-divider>
- <el-table :data="otherFileList" style="width: 100%">
- <el-table-column label="文件名称" align="center" prop="pfiFileName" show-overflow-tooltip />
- <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width='300' fixed="right" >
- <template slot-scope="scope">
- <el-button
- size="mini"
- type="text"
- icon="el-icon-view"
- @click="handleDetail(scope.row)"
- >下载</el-button>
- </template>
- </el-table-column>
- </el-table>
- <div class="footer" style="float: right;
- margin-bottom:2px;">
- <el-button type="success" @click="getContractFile">预览文件</el-button>
- <el-button type="primary" @click="selectType">确定</el-button>
- <el-button @click="cancel">取消</el-button>
- </div>
- <el-dialog
- title="预览"
- :visible.sync="pdfShowDialog"
- width="30%">
- <pdf-show :pdfFileList="pdfFileList">
- </pdf-show>
- </el-dialog>
- <!--选择签署意愿类型-->
- <el-dialog :visible.sync="confirmIsShow" width="600px" append-to-body :before-close = "cancelUpdate" center>
- <el-form ref="updateForm" :disabled="false" :model="updateForm" v-if="confirmIsShow" label-width="150px" class="demo-form-inline" :inline="true">
- <el-radio-group v-model="updateForm.radio">
- <el-radio label="01">人脸</el-radio>
- <el-radio label="02">短信</el-radio>
- </el-radio-group>
- </el-form>
-
- <div slot="footer" class="dialog-footer">
- <el-button type="primary" @click="confirmSelect">确 定</el-button>
- <el-button @click="cancelUpdate">取 消</el-button>
- </div>
- </el-dialog>
- <!--短信-->
- <el-dialog :visible.sync="messageIsShow" width="600px" append-to-body :before-close = "cancelMessage" center>
- <el-form ref="messageForm" :disabled="false" :model="messageForm" v-if="messageIsShow" label-width="150px" class="demo-form-inline" :inline="true">
- <el-form-item label="验证码" prop="validCode">
- <el-input v-model="messageForm.validCode" style="width: 200px" maxlength="6"/>
- </el-form-item>
- <el-form-item>
- <el-button type="success" @click="send">发送验证码</el-button>
- </el-form-item>
-
- </el-form>
-
- <div slot="footer" class="dialog-footer">
- <el-button type="primary" @click="checkCode">确定</el-button>
- <el-button @click="cancelMessage">取 消</el-button>
- </div>
- </el-dialog>
- <!--人脸二维码-->
- <el-dialog :visible.sync="faceIsShow" width="500px" append-to-body :before-close = "cancelFace" center>
- <img :src="'data:image/jpeg;base64,' + this.fileUrl" style="overflow: auto; width: 100%; height: 100%;"/>
- </el-dialog>
- </div>
- </template>
- <script>
- import {getCreditDetail,getFile} from "@/api/service/credit/credit";
- import {accAdd} from "@/utils/calculation";
- import {getContractFile} from "@/api/service/credit/creditHandle";
- import {sendMessage,checkCode,faceAuth,checkFaceAuth,contractSigning} from "@/api/service/credit/message";
- import pdfShow from "./pdfShow";
- export default {
- name: "addCredit",
- components: {pdfShow},
- data() {
- return {
- // 总条数
- total: 0,
- // 表单参数
- form: {
- },
- // 表单校验
- rules: {
- },
- // 是否显示弹出层
- open: false,
- //应付账款
- payList:[],
- //签发金额大写
- issuedAmount:"零元整",
- //合计选中的应付账款的金额
- checkTotalAmt:"0.00",
- //合计选中的应付账款的大写金额
- checkTotalBigAmt:"零元整",
- //标题
- tableTitle:"",
- //控制收款账号是否显示
- isShow:false,
- //获取类型
- createType:'',
- //获取融信的类型
- zfiStatus:'',
- //融资方审批状态
- zfiSupplierStatus:'',
- //合同附件
- contractFileList:[],
- //发票附件
- invoiceFileList:[],
- //其他文件
- otherFileList:[],
- pdfShowDialog : false,
- pdfFileList : [],
- //展示选择意愿
- confirmIsShow:false,
- //意愿
- updateForm:{},
- //意愿类型
- zfpAuthType:'',
- //短信展示
- messageIsShow:false,
- //短信
- messageForm:{validCode:""},
- //人脸二维码
- fileUrl:"",
- //控制人脸二维码是否展示
- faceIsShow:false,
- //人脸验证结果
- faceResult:"",
- //人脸识别结果传参
- authForm:{}
- };
- },
- created() {
- const zfiId = this.$route.params && this.$route.params.zfiId;
- getCreditDetail(zfiId).then((response) => {
- if(response.data){
- //融信信息
- this.form = response.data.financeInf;
- //类型
- this.createType = response.data.financeInf.zfiCreateType;
- //融信状态
- this.zfiStatus = response.data.financeInf.zfiStatus;
- //融资方审批状态
- this.zfiSupplierStatus = response.data.financeInf.zfiSupplierStatus;
- //意愿类型
- this.zfpAuthType = response.data.zfpAuthType;
- //核心开立
- if(response.data.financeInf.zfiCreateType == '1'){
- this.tableTitle = "应付账款";
- }else{
- this.tableTitle = "应收账款";
- //融资开立
- if(response.data.financeInf.zfiCreateType == '2'){
- //收款账号
- //非电子
- if(response.data.proComRel.zfpcrLoanType != '0'){
- this.isShow = true;
- }
- }
- }
-
- //接收方
- this.form.receiveName = response.data.receiveName;
- //授信额度
- this.form.zfpName = response.data.zfpName;
- //开立方
- this.form.openName = response.data.openName;
- //创建人
- this.form.createName = response.data.createName;
- //签发金额大写
- this.issuedAmount = this.smallToBig(this.form.zfiAmount);
- }
- if(response.data.payList){
- this.payList = response.data.payList.records;
- this.getReTotal(this.payList);
- //附件
- this.getFile(this.payList);
- }
-
- })
- },
- methods: {
- // 取消按钮
- cancel() {
- this.$store.dispatch("tagsView/delView", this.$route);
- this.$router.go(-1);
- },
- /* 多选框跨页 */
- rowkeyCustomer(row) {
- return row.cciId;
- },
- //重新合计
- getReTotal(chooseTicket){
- //合计
- this.checkTotalAmt = "0.00";
- for(var i = 0; i < chooseTicket.length;i++){
- this.checkTotalAmt = accAdd(this.checkTotalAmt,chooseTicket[i].zbiAmount,2);
- }
- this.checkTotalBigAmt = this.smallToBig(this.checkTotalAmt);
- this.checkTotalAmt = this.amtFormat(this.checkTotalAmt);
- },
- //获取附件信息
- getFile(datas){
- var queryParamsFile = {};
- queryParamsFile.ticketList = datas;
- getFile(queryParamsFile).then((response) => {
- if(response.data){
- //获取发票文件
- this.invoiceFileList = response.data.invoiceFileList;
- //获取合同文件
- this.contractFileList = response.data.contractFileList;
- //获取其他文件
- this.otherFileList = response.data.otherFileList;
- }
- });
- },
- //格式化金额
- amtFormat(cellValue) {
- if(cellValue == null || cellValue== undefined || cellValue == ''){
- cellValue = '0.00'
- }
- cellValue += '';
- if (!cellValue.includes('.')) {
- cellValue += '.00';
- }
- return cellValue.replace(/(\d)(?=(\d{3})+\.)/g, function ($0, $1) {
- return $1 + ',';
- }).replace(/\.$/, '');
- },
- /* // 将数字金额转换为大写金额 */
- smallToBig(money) {
- // 将数字金额转换为大写金额
- var cnNums = new Array(
- "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" ); //汉字的数字
- var cnIntRadice = new Array("", "拾", "佰", "仟"); //基本单位
- var cnIntUnits = new Array("", "万", "亿", "兆"); //对应整数部分扩展单位
- var cnDecUnits = new Array("角", "分", "毫", "厘"); //对应小数部分单位
- var cnInteger = "整"; //整数金额时后面跟的字符
- var cnIntLast = "元"; //整数完以后的单位
- //最大处理的数字
- var maxNum = 999999999999999.9999;
- var integerNum; //金额整数部分
- var decimalNum; //金额小数部分
- //输出的中文金额字符串
- var chineseStr = "";
- var parts; //分离金额后用的数组,预定义
- if (money == "" || money == null || money == undefined) {
- return "零元零角零分";
- }
- money = parseFloat(money);
- if (money >= maxNum) {
- //超出最大处理数字
- return "超出最大处理数字";
- }
- if (money == 0) {
- chineseStr = cnNums[0] + cnIntLast + cnInteger;
- return chineseStr;
- }
- //四舍五入保留两位小数,转换为字符串
- money = Math.round(money * 100).toString();
- integerNum = money.substr(0, money.length - 2);
- decimalNum = money.substr(money.length - 2);
- //获取整型部分转换
- if (parseInt(integerNum, 10) > 0) {
- var zeroCount = 0;
- var IntLen = integerNum.length;
- for (var i = 0; i < IntLen; i++) {
- var n = integerNum.substr(i, 1);
- var p = IntLen - i - 1;
- var q = p / 4;
- var m = p % 4;
- if (n == "0") {
- zeroCount++;
- } else {
- if (zeroCount > 0) {
- chineseStr += cnNums[0];
- }
- //归零
- zeroCount = 0;
- chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
- }
- if (m == 0 && zeroCount < 4) {
- chineseStr += cnIntUnits[q];
- }
- }
- chineseStr += cnIntLast;
- }
- //小数部分
- if (decimalNum != "") {
- var decLen = decimalNum.length;
- for (var i = 0; i < decLen; i++) {
- var n = decimalNum.substr(i, 1);
- if (n != "0") {
- chineseStr += cnNums[Number(n)] + cnDecUnits[i];
- }
- }
- }
- if (chineseStr == "") {
- chineseStr += cnNums[0] + cnIntLast + cnInteger;
- } else if (decimalNum == "" || /^0*$/.test(decimalNum)) {
- chineseStr += cnInteger;
- }
- return chineseStr;
- },
- //取消选择意愿
- cancelUpdate(){
- this.confirmIsShow = false;
- this.resetUpdate();
- },
- //关闭短信
- cancelMessage(){
- this.messageIsShow = false;
- this.resetMessage();
- },
- //关闭二维码
- cancelFace(){
- this.faceIsShow = false;
- },
- resetUpdate() {
- this.updateForm = {
- radio:""
- };
- //意愿类型还原为全部
- this.zfpAuthType ="00";
- this.resetForm("updateForm");
- },
- resetMessage() {
- this.messageForm = {
- validCode:""
- };
- this.resetForm("messageForm");
- },
- //获取合同文件
- getContractFile(){
- getContractFile(this.form).then((response) => {
- if(response.data.list){
- this.pdfFileList = response.data.list;
- }
- });
- //文件存在
- if(this.pdfFileList.length > 0 ){
- this.pdfShowDialog = true;
-
- }
- },
- //选择类型
- selectType(){
- //可以直接盖章的
- if( (this.zfiCreateType =='0' && this.zfiStatus =='01' && this.zfiSupplierStatus =='01')
- || (this.zfiCreateType =='1' && this.zfiStatus =='01' && this.zfiSupplierStatus =='01')){
- //直接盖章
- this.contractSigning();
- }else{
- //选择签署意愿
- if(this.zfpAuthType == "00"){
- this.confirmIsShow = true;
- }else{
- this.checking();
- }
- }
- },
- //确认选择
- confirmSelect(){
- if(!this.updateForm.radio){
- this.$message({
- message: '请选择签署意愿类型',
- type: 'warning'
- });
- return;
- }
- this.confirmIsShow = false;
- this.zfpAuthType = this.updateForm.radio;
- //调用人脸识别或者短信验证
- this.checking();
- },
- //去签署
- checking(){
- //人脸
- if(this.zfpAuthType == '01'){
- //调用人脸识别生成二维码
- faceAuth().then((response) => {
- if(response.data){
- //获取二维码
- this.fileUrl = response.data.fileUrl;
- //获取源流水号
- var originalTxSN = response.data.originalTxSN;
- this.faceIsShow = true;
- //每5秒查证人脸识别结果
- var timeInterval = window.setInterval(() => {
- setTimeout(() => {
- //源流水不为空并且结果为空
- if(originalTxSN && !this.faceResult){
- this.authForm.originalTxSN = originalTxSN;
- //调用查证方法
- checkFaceAuth(this.authForm).then((res) => {
- //认证结果
- this.faceResult = res.data.Verification;
- //成功
- if(this.faceResult == '20'){
- this.msgSuccess("验证成功");
- //关闭验证码
- this.faceIsShow = false;
- //关闭定时
- window.clearInterval(timeInterval);
- //调用盖章
- this.contractSigning();
- }else if(this.faceResult == '30'){
- this.$message({
- message: "验证失败",
- type: 'warning'
- });
- //关闭验证码
- this.faceIsShow = false;
- window.clearInterval(timeInterval);
- }
- });
- }
- }, 0)
- },10000)
- }
- });
- }else if(this.zfpAuthType == '02'){//短信
- this.messageIsShow = true;
- }
-
- },
- //发送短信验证码
- send(){
- //发送
- sendMessage().then((response) => {
- if(response.data){
- //手机号
- var newIphone = response.data.newIphone;
- //结果
- var result = response.data.result;
- //成功
- if("20" == result){
- this.$message({
- message: "已向经办人手机号为"+newIphone+"发送短信验证码,请注意查收",
- type: 'warning'
- });
- }else if("10" == result){//失败
- this.$message({
- message: "短信发送失败",
- type: 'warning'
- });
- }
- }
- });
- },
- //校验验证码是否正确
- checkCode(){
- if(!this.messageForm.validCode){
- this.$message({
- message: "请输入验证码",
- type: 'warning'
- });
- return;
- }
- //校验验证码
- checkCode(this.messageForm).then((response) => {
- if(response.data){
- //结果
- var verification = response.data.verification;
- //匹配
- if("20" == verification){
- //进行下一步-- 盖章
- this.contractSigning();
- }else if("30" == verification){//不匹配
- this.$message({
- message: "验证有误,请重新输入",
- type: 'warning'
- });
- }
- }
- });
- },
- //盖章
- contractSigning(){
- contractSigning(this.form).then((response) => {
- this.msgSuccess("盖章成功");
- if(this.zfpAuthType == '02'){
- //关闭短信验证
- this.messageIsShow = false;
- }else if(this.zfpAuthType == '01'){
- //关闭人脸二维码
- this.faceIsShow = false;
- }
- this.$store.dispatch(
- "tagsView/delView",
- this.$route
- );
- this.$router.go(-1);
- }).catch((response) => {
- });
- }
-
-
- }
- };
- </script>
- <style lang="scss">
- .uoloadfj .el-upload--picture-card{
- width:110px;
- height:110px;
- line-height:110px;
- }
- .fjUoloadSty .el-upload--picture-card{
- display:none;
- }
- table th.star div::before {
- content: '*';
- color: red;
- }
- </style>
|