Commit 4dcbd491 by liuxin
parents 1b56d318 78317b48
...@@ -39,7 +39,7 @@ export default { ...@@ -39,7 +39,7 @@ export default {
{pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" } {pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" }
], ],
"cptp.uetr":[ "cptp.uetr":[
{type: "string", required: false, message: "必输项"}, {type: "string", required: true, message: "必输项"},
{max: 40,message:"长度不能超过40"} {max: 40,message:"长度不能超过40"}
], ],
......
...@@ -196,6 +196,7 @@ export default class Cptadv{ ...@@ -196,6 +196,7 @@ export default class Cptadv{
spayeename:"", // 收款人名称 .cnybop.spayeename spayeename:"", // 收款人名称 .cnybop.spayeename
spayername:"", // 付款人名称 .cnybop.spayername spayername:"", // 付款人名称 .cnybop.spayername
saddword:"", // 交易附言 .cnybop.saddword saddword:"", // 交易附言 .cnybop.saddword
saddwordtra:"",
sbankname:"", // 银行机构名称 .cnybop.sbankname sbankname:"", // 银行机构名称 .cnybop.sbankname
incscale:"", // INCSCALE .cnybop.incscale incscale:"", // INCSCALE .cnybop.incscale
}, },
......
import Api from "~/service/Api"
import Pts from "../Common/Pts"
export default class ExamRule{
constructor () {
this.data = {
ruleDesc: "", // ctx的key
ruleInfo:"",
opndatfrom:"",
opndatto:"",
opndat:"",
ruleCreater:"",
edit:{
index:"",
ruleDesc: "", // ctx的key
ruleInfo:"",
opndat:"",
ruleCreater:"",
mod:"",
field:"",
},
rows:[],
}
}
}
\ No newline at end of file
...@@ -7,6 +7,10 @@ const Status = { ...@@ -7,6 +7,10 @@ const Status = {
mode: 'normal', mode: 'normal',
highlights: [], highlights: [],
highlightChanges: [], highlightChanges: [],
checkRuleData:[
"1\t此证不允许保兑\t{dedgrp.rec.bdflg}==Y\t2022-02-21\tzl",
"2\t单据必须自货物装运日后15日内提交,但不能晚于信用证有效期\t{doc.crtdate} - {didgrp.rec.shpdat} <=15 && {doc.crtdate} <= {didgrp.rec.expdate}\t2022-02-20\tmbf"
],
remark: '', //复核意见 remark: '', //复核意见
homeStatus: { // 任务列表页状态 homeStatus: { // 任务列表页状态
listConfig: undefined, listConfig: undefined,
...@@ -40,6 +44,9 @@ const Status = { ...@@ -40,6 +44,9 @@ const Status = {
setHighlights(state, value) { setHighlights(state, value) {
state.highlights = value state.highlights = value
}, },
setCheckRuleData(state, value) {
state.checkRuleData = value
},
setHighlightChanges (state, value) { setHighlightChanges (state, value) {
state.highlightChanges = value state.highlightChanges = value
}, },
......
...@@ -111,6 +111,7 @@ import Bftset from "./Bftset" ...@@ -111,6 +111,7 @@ import Bftset from "./Bftset"
import Detdrv from "./Detdrv" import Detdrv from "./Detdrv"
import Bftacc from "./Bftacc" import Bftacc from "./Bftacc"
import Bftdcr from "./Bftdcr" import Bftdcr from "./Bftdcr"
import ExamRule from "./ExamRule";
/** /**
* 带有name的才会被添加进顶部的标签页里 * 带有name的才会被添加进顶部的标签页里
*/ */
...@@ -233,5 +234,6 @@ const BusRouter = [ ...@@ -233,5 +234,6 @@ const BusRouter = [
{ path: 'detdrv', component: Detdrv, name: 'Detdrv', meta: { title: '卖方信用证收单' } }, { path: 'detdrv', component: Detdrv, name: 'Detdrv', meta: { title: '卖方信用证收单' } },
{ path: 'bftacc', component: Bftacc, name: 'Bftacc', meta: { title: '卖方信用证单据承兑' } }, { path: 'bftacc', component: Bftacc, name: 'Bftacc', meta: { title: '卖方信用证单据承兑' } },
{ path: 'bftdcr', component: Bftdcr, name: 'Bftdcr', meta: { title: '卖方信用证单据电提不符点/开证行拒付' } }, { path: 'bftdcr', component: Bftdcr, name: 'Bftdcr', meta: { title: '卖方信用证单据电提不符点/开证行拒付' } },
{ path: 'examRule', component: ExamRule, name: 'ExamRule', meta: { title: '智能审单规则设置' } },
] ]
export default BusRouter export default BusRouter
...@@ -139,6 +139,7 @@ ...@@ -139,6 +139,7 @@
v-model="model.cpdgrp.orc.pts.adrblk" v-model="model.cpdgrp.orc.pts.adrblk"
show-word-limit show-word-limit
placeholder="请输入Address Block" placeholder="请输入Address Block"
disabled
></c-input> ></c-input>
</el-form-item> </el-form-item>
</c-col> </c-col>
......
...@@ -27,7 +27,20 @@ ...@@ -27,7 +27,20 @@
></c-input> ></c-input>
</el-form-item> </el-form-item>
</c-col> </c-col>
<c-col :span="24">
<el-form-item label="备注">
<c-input
type="textarea"
:rows="5"
maxlength="80"
v-model="model.cnybop.saddwordtra"
show-word-limit
placeholder="请输入备注"
></c-input>
</el-form-item>
</c-col>
</c-col> </c-col>
<!-- ========================右边======================= --> <!-- ========================右边======================= -->
<c-col :span="11" :offset="1" style="margin-top: 10px"> <c-col :span="11" :offset="1" style="margin-top: 10px">
......
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
</c-col> </c-col>
<c-col :span="11" :offset="1"> <c-col :span="11" :offset="1">
<el-form-item label="Name" prop="cpdgrp.rec.nam"> <el-form-item label="摘要" prop="cpdgrp.rec.nam">
<c-input <c-input
v-model="model.cpdgrp.rec.nam" v-model="model.cpdgrp.rec.nam"
maxlength="40" maxlength="40"
...@@ -132,7 +132,7 @@ ...@@ -132,7 +132,7 @@
</el-form-item> </el-form-item>
</c-col> </c-col>
<c-col :span="24"> <c-col :span="24">
<el-form-item label="付款人常驻国家/地区代码" prop="cptp.draweecountcode"> <el-form-item label="付款人常驻国家/地区" prop="cptp.draweecountcode">
<c-fullbox> <c-fullbox>
<c-input <c-input
v-model="model.cptp.draweecountcode" v-model="model.cptp.draweecountcode"
......
...@@ -43,10 +43,7 @@ ...@@ -43,10 +43,7 @@
<!--PD000000 --> <!--PD000000 -->
<m-coninfp :model="model" :codes="codes" /> <m-coninfp :model="model" :codes="codes" />
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="报文及面函" name="docpan">
<!--PD000000 -->
<m-docpan :model="model" :codes="codes" />
</el-tab-pane>
<el-tab-pane label="附件" name="doctre"> <el-tab-pane label="附件" name="doctre">
<!--PD000529 --> <!--PD000529 -->
<m-doctre :model="model" :codes="codes" /> <m-doctre :model="model" :codes="codes" />
...@@ -64,6 +61,10 @@ ...@@ -64,6 +61,10 @@
<m-incp :model="model" :codes="codes"></m-incp> <m-incp :model="model" :codes="codes"></m-incp>
</c-content> </c-content>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="报文及面函" name="docpan">
<!--PD000000 -->
<m-docpan :model="model" :codes="codes" />
</el-tab-pane>
</c-tabs> </c-tabs>
</el-form> </el-form>
</div> </div>
......
<template>
<!-- OCR 单据智能识别 -->
<el-dialog
custom-class="ocr-invoices-dialog"
:visible.sync="show"
:show-close="false"
width="80%"
top="10vh"
>
<div slot="title" class="ocr-title">
<span style="font-weight: bold;">OCR智能识别</span>
<div>
<c-button type="primary" @click="save">保存</c-button>
<c-button type="primary" @click="close">关闭</c-button>
</div>
</div>
<div class="invoices-recognition">
<div class="invoices-area">
<div class="file-name">{{ fileName }}</div>
<iframe class="pdf-file" :src="fileUrl" type="application/pdf" />
</div>
<div class="recognition-area">
<el-form
v-model="invoicesData"
label-width="100px"
label-position="right"
>
<el-col :span="24">
<el-form-item label="">
<c-select v-model="invoicesData.type">
<el-option v-for="(item, idx) in invoicesTypeOptions" :key="idx" :label="item.label" :value="item.value"></el-option>
</c-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="发票日期">
<c-input type="textarea" v-model="invoicesData.date"></c-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="发票金额">
<c-input type="textarea" v-model="invoicesData.amount"></c-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="是否正本">
<c-select v-model="invoicesData.original" style="width: 100%;">
<el-option v-for="(item, idx) in invoicesOriginalOptions" :key="idx" :label="item.label" :value="item.value"></el-option>
</c-select>
</el-form-item>
</el-col>
</el-form>
</div>
</div>
</el-dialog>
</template>
<script>
// import invoicePdf from "~/assets/invoice.pdf";
export default {
name: "OcrInvoicesRecognition",
data() {
return {
show: false,
fileName: "KZ3500220597AA-001.pdf",
// fileUrl: "/invoice.pdf",
fileUrl: "assets/invoice.pdf",
invoicesTypeOptions: [
{ label: "商业发票", value: "SYFP" },
{ label: "个人发票", value: "GRFP" },
],
invoicesOriginalOptions: [
{ label: "是", value: 1 },
{ label: "否", value: 0 },
],
invoicesData: {
type: "SYFP",
date: "5 DEC 2021",
amount: "USD 223000.00",
original: 1
}
}
},
methods: {
save() {
this.close();
},
close() {
this.show = false
}
}
}
</script>
<style>
.ocr-invoices-dialog {
height: 85%;
display: flex;
flex-direction: column;
margin-bottom: unset;
}
.ocr-invoices-dialog .el-dialog__header, .ocr-invoices-dialog .el-dialog__body {
padding: 0;
}
.ocr-invoices-dialog .el-dialog__body {
flex: 1;
}
</style>
<style scoped>
.ocr-title {
display: flex;
justify-content: space-between;
padding: 5px 10px 5px 20px;
border-bottom: 1px solid #dadbdd;
}
.invoices-recognition {
height: 100%;
display: flex;
background-color: #f6fbff;
padding: 20px;
box-sizing: border-box;
}
.invoices-area {
width: 50%;
border-right: 1px solid #babec1;
box-sizing: border-box;
display: flex;
flex-direction: column;
padding: 0 10px;
}
.recognition-area {
width: 50%;
border-left: 1px solid #babec1;
box-sizing: border-box;
}
.invoices-area .file-name {
padding-bottom: 10px;
text-align: center;
}
.invoices-area .pdf-file {
flex: 1;
}
</style>
\ No newline at end of file
<template>
<div>
<c-button @click="click">KO</c-button>
<OcrInvoicesRecognition ref="ocrInvoices"></OcrInvoicesRecognition>
</div>
</template>
<script>
import OcrInvoicesRecognition from "./OcrInvoicesRecognition.vue";
export default {
components: { OcrInvoicesRecognition },
methods: {
click() {
this.$refs.ocrInvoices.show = true
}
}
}
</script>
<style>
</style>
\ No newline at end of file
...@@ -80,6 +80,9 @@ ...@@ -80,6 +80,9 @@
<el-tab-pane label="授信额度" name="limitbody"> <el-tab-pane label="授信额度" name="limitbody">
<m-limitbody :model="model" :codes="codes" /> <m-limitbody :model="model" :codes="codes" />
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="Test" name="Test">
<Test/>
</el-tab-pane>
</c-tabs> </c-tabs>
</el-form> </el-form>
<c-grid-ety-prompt-dialog <c-grid-ety-prompt-dialog
...@@ -106,6 +109,7 @@ import Ovwp from "./Ovwp"; ...@@ -106,6 +109,7 @@ import Ovwp from "./Ovwp";
import Docpre from "./Docpre"; import Docpre from "./Docpre";
import Shpdet from "./Shpdet"; import Shpdet from "./Shpdet";
// import Limitbody from "./Limitbody"; // import Limitbody from "./Limitbody";
import Test from "./Test.vue";
import Glepan from "~/views/Public/Glepan"; import Glepan from "~/views/Public/Glepan";
import Setpan from "~/views/Public/Setpan"; import Setpan from "~/views/Public/Setpan";
...@@ -129,6 +133,7 @@ export default { ...@@ -129,6 +133,7 @@ export default {
"m-limitbody": Limitbody, "m-limitbody": Limitbody,
"m-coninfp": Coninfp, "m-coninfp": Coninfp,
"m-ccvpan": Ccvpan, "m-ccvpan": Ccvpan,
Test
}, },
provide() { provide() {
return { return {
......
<template>
<div class="eContainer">
<el-form
:model="model"
ref="modelForm"
label-width="150px"
label-position="right"
size="small"
>
<m-infsea :model="model" />
</el-form>
</div>
</template>
<script>
import Utils from "~/utils/index";
import Api from "~/service/Api";
import CommonProcess from "~/mixin/CommonProcess";
import ExamRule from "~/model/ExamRule"
import Infsea from "./Infsea"
export default {
name: "exaRule",
components: {
"m-infsea": Infsea,
},
provide() {
return {
root: this,
};
},
mixins: [CommonProcess], // 里面包含了Default、Check等的公共处理
data() {
return {
model: new ExamRule().data,
};
},
methods: {},
created: async function () {
// console.log("进入ditsel交易");
// let rtnmsg = await Api.post("ditsel/init", { params: {} });
// if (rtnmsg.respCode == SUCCESS) {
// //TODO 处理数据逻辑
// Utils.copyValueFromVO(this.model, rtnmsg.data);
// } else {
// this.$notify.error({ title: "错误", message: "服务请求失败!" });
// }
},
};
</script>
<style>
.infcpdTab .el-tabs__content {
padding: 10px 0 10px 0;
}
.infcpdTab .infrow {
padding: 0 10px 0 10px;
}
.m-table-search-form {
position: flex;
flex-direction: row;
}
.m-table-search-form .el-form-item__content {
width: calc(100% - 110px);
}
</style>
...@@ -120,6 +120,8 @@ export default { ...@@ -120,6 +120,8 @@ export default {
{ inifrm: "detopn", ininam: "信用证开立", pntmiu: "11" }, { inifrm: "detopn", ininam: "信用证开立", pntmiu: "11" },
{ inifrm: "detame", ininam: "信用证修改", pntmiu: "11" }, { inifrm: "detame", ininam: "信用证修改", pntmiu: "11" },
{ inifrm: "detsel", ininam: "信用证查询", pntmiu: "11" }, { inifrm: "detsel", ininam: "信用证查询", pntmiu: "11" },
{ inifrm: "12",ininam: "智能审单", pntmiu: "" },
{ inifrm: "examRule", ininam: "智能审单规则配置", pntmiu: "12" },
], ],
menus: [], menus: [],
menusHeight: 0 menusHeight: 0
......
...@@ -126,7 +126,6 @@ ...@@ -126,7 +126,6 @@
import Api from "~/service/Api" import Api from "~/service/Api"
import CommonProcess from "~/mixin/CommonProcess"; import CommonProcess from "~/mixin/CommonProcess";
import CodeTable from "~/config/CodeTable" import CodeTable from "~/config/CodeTable"
import Event from "~/model/Ditopn/Event"
export default { export default {
inject: ['root'], inject: ['root'],
...@@ -137,7 +136,18 @@ export default { ...@@ -137,7 +136,18 @@ export default {
} }
}, },
methods:{...Event}, methods:{
async onLiaallButmisamt() {
let rtnmsg = await this.executeRule("liaall_butmisamt")
if (rtnmsg.respCode == SUCCESS) {
//TODO 处理数据逻辑
}
else {
this.$notify.error({ title: '错误', message: '服务请求失败!' });
}
},
},
created:function(){ created:function(){
} }
......
...@@ -9,7 +9,6 @@ ...@@ -9,7 +9,6 @@
import Api from "~/service/Api" import Api from "~/service/Api"
import CommonProcess from "~/mixin/CommonProcess"; import CommonProcess from "~/mixin/CommonProcess";
import CodeTable from "~/config/CodeTable" import CodeTable from "~/config/CodeTable"
import Event from "~/model/Ditopn/Event"
export default { export default {
inject: ['root'], inject: ['root'],
...@@ -43,7 +42,9 @@ export default { ...@@ -43,7 +42,9 @@ export default {
immediate: true immediate: true
} }
}, },
methods:{...Event}, methods:{
},
created:function(){ created:function(){
} }
......
...@@ -285,7 +285,7 @@ ...@@ -285,7 +285,7 @@
import Api from "~/service/Api"; import Api from "~/service/Api";
import CommonProcess from "~/mixin/CommonProcess"; import CommonProcess from "~/mixin/CommonProcess";
import CodeTable from "~/config/CodeTable"; import CodeTable from "~/config/CodeTable";
import Event from "~/model/Ditopn/Event"; // import Event from "~/model/Ditopn/Event";
export default { export default {
inject: ['root'], inject: ['root'],
...@@ -296,7 +296,29 @@ export default { ...@@ -296,7 +296,29 @@ export default {
tableData: {}, tableData: {},
}; };
}, },
methods: { ...Event , methods: {
onSeainf() {
},
async onPreperButtxmsel() {
let rtnmsg = await this.executeRule("preper_buttxmsel")
if (rtnmsg.respCode == SUCCESS) {
//TODO 处理数据逻辑
}
else {
this.$notify.error({ title: '错误', message: '服务请求失败!' });
}
},
async onLimptsGet1() {
let rtnmsg = await this.executeRule("limpts_get1")
if (rtnmsg.respCode == SUCCESS) {
//TODO 处理数据逻辑
}
else {
this.$notify.error({ title: '错误', message: '服务请求失败!' });
}
},
nonrevflg1Change(){ nonrevflg1Change(){
if (this.model.liaall.limmod.limpts.nonrevflg1 == '1'){ if (this.model.liaall.limmod.limpts.nonrevflg1 == '1'){
this.model.liaall.limmod.limpts.pfcod1 = ""; this.model.liaall.limmod.limpts.pfcod1 = "";
......
...@@ -1026,7 +1026,7 @@ ...@@ -1026,7 +1026,7 @@
</c-row> </c-row>
</template> </template>
<script> <script>
import Event from "~/model/Ditopn/Event"; // import Event from "~/model/Ditopn/Event";
import CommonProcess from "~/mixin/CommonProcess"; import CommonProcess from "~/mixin/CommonProcess";
import SetpanDialog from "./SetpanDialog.vue"; import SetpanDialog from "./SetpanDialog.vue";
import Api from "~/service/Api" import Api from "~/service/Api"
...@@ -1075,7 +1075,6 @@ export default { ...@@ -1075,7 +1075,6 @@ export default {
}; };
}, },
methods: { methods: {
...Event,
//第一个表格 //第一个表格
addRow() { addRow() {
let newRow = { ...dialog }; let newRow = { ...dialog };
...@@ -1161,7 +1160,17 @@ export default { ...@@ -1161,7 +1160,17 @@ export default {
}, },
onSetgllDetget(){ onSetgllDetget(){
} },
async onSetmodDet() {
let rtnmsg = await this.executeRule("setmod.det")
if (rtnmsg.respCode == SUCCESS) {
//TODO 处理数据逻辑
}
else {
this.$notify.error({ title: '错误', message: '服务请求失败!' });
}
},
}, },
created: function () {}, created: function () {},
}; };
......
...@@ -37,6 +37,10 @@ module.exports = (options = {}) => ({ ...@@ -37,6 +37,10 @@ module.exports = (options = {}) => ({
limit: 10000 limit: 10000
} }
}] }]
},
{
test: /\.pdf$/,
loader: 'file-loader?mimetype=application/pdf&name=[name].pdf'
} }
] ]
}, },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment