Commit 02e7b64d by LiuSheng

Bopcod交易的前端界面和逻辑。

parent 867cd8d2
......@@ -7680,7 +7680,25 @@ const CodeTable = {
{ label: "对方是境外联署机构,即双方有共同母公司,但相互持有表决权<10%或相互不持有表决权", value: "3" },
{ label: "对方与本机构/被代理居民机构/委托人吴关联关系、关系未知,或两机构均处于中国境内", value: "4" },
],
coddir: [
{ label: "I 收入", value: "I" },
{ label: "O 支出", value: "O" },
{ label: "W 行业属性", value: "W" },
{ label: "F 经济类型", value: "F" },
{ label: "Z 行政区码", value: "Z" }
],
codtyp: [
{ label: "T 贸易", value: "T" },
{ label: "N 非贸易", value: "N" },
{ label: "C 资本", value: "C" },
{ label: "F 经济类型", value: "F" },
{ label: "W 行业属性", value: "W" },
{ label: "Z 行政区码", value: "Z" }
],
codsta: [
{ label: "A 正常", value: "A"},
{ label: "D 删除", value: "D"}
]
}
export default CodeTable;
import Api from "~/service/Api"
export function queryByPage(data) {
return Api.post("/manager/bopcod/queryByPage", data)
}
export function queryDetailById(data) {
return Api.post("/manager/bopcod/queryById", data)
}
export function add(data) {
return Api.post("/manager/bopcod/add", data)
}
export function edit(data) {
return Api.post("/manager/bopcod/edit", data)
}
export function deleteById(data) {
return Api.post("/manager/bopcod/deleteById", data)
}
......@@ -200,6 +200,7 @@ export default {
{ inifrm: "infpty", ininam: "客户信息查询", pntmiu: "10" },
{ inifrm: "inftrl", ininam: "交易权限查询", pntmiu: "10" },
{ inifrm: "infusr", ininam: "柜员信息查询", pntmiu: "10" },
{ inifrm: "infcod", ininam: "收支申报码表查询", pntmiu: "10"},
// { inifrm: "gitset", ininam: "进口保函赔付", pntmiu: "13" },
// { inifrm: "gitcrq", ininam: "进口保函索赔登记", pntmiu: "13" },
{ inifrm: "14", ininam: "服务管理", pntmiu: "" },
......
<template>
<m-cod title="dbacod" type="add"></m-cod>
</template>
<script>
import Dbicod from "~/views/Statics/Dbicod";
export default {
name: "StaticsDbacod",
components: {
"m-cod": Dbicod
},
data() {
return {};
},
mounted() {
}
};
</script>
<style>
</style>
\ No newline at end of file
<template>
<m-cod title="dbdcod" type="delete"></m-cod>
</template>
<script>
import Dbicod from "~/views/Statics/Dbicod";
export default {
name: "StaticsDbdcod",
components: {
"m-cod": Dbicod
},
data() {
return {};
},
};
</script>
<style>
</style>
\ No newline at end of file
<template>
<m-cod title="dbecod" type="edit"></m-cod>
</template>
<script>
import Dbicod from "~/views/Statics/Dbicod";
export default {
name: "StaticsDbecod",
components: {
"m-cod": Dbicod
},
data() {
return {};
},
};
</script>
<style>
</style>
\ No newline at end of file
export default class Cod {
constructor() {
this.data = {
inr:"",
ver:"",
cod:"",
dir:"",
typ:"",
txt:"",
sta:""
}
}
}
export const Pattern = {
"inr": [
{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
{ "max": 8, "message": "最大长度8个字符", "trigger": "blur" }
],
"ver": [
{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
{ "max": 4, "message": "最大长度4个字符", "trigger": "blur" }
],
"cod": [
{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
{ "max": 6, "message": "最大长度6个字符", "trigger": "blur" }
],
"dir": [
{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
{ "max": 1, "message": "最大长度1个字符", "trigger": "blur" }
],
"typ": [
{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
{ "max": 1, "message": "最大长度1个字符", "trigger": "blur" }
],
"txt": [
{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
{ "max": 100, "message": "最大长度100个字符", "trigger": "blur" }
],
"sta": [
{ "required": true, "message": "必输项", "type": "string", "trigger": "blur" },
{ "max": 1, "message": "最大长度1个字符", "trigger": "blur" }
]
}
\ No newline at end of file
<template>
<div class="eibs-tab">
<!-- =============================================左边=========================================== -->
<c-col :span="12" class="col-left">
<!-- <c-col :span="24">
<el-form-item label="inr" prop="inr">
<c-input
v-model="model.inr"
placeholder="请输入inr"
>
</c-input>
</el-form-item>
</c-col> -->
<!-- <c-col :span="24">
<el-form-item label="INR" prop="inr">
<c-input v-model="model.inr" placeholder=""> </c-input>
</el-form-item>
</c-col> -->
<!-- <c-col :span="24">
<el-form-item label="版本" prop="ver">
<c-input v-model="model.ver" placeholder=""> </c-input>
</el-form-item>
</c-col> -->
<c-col :span="24">
<el-form-item label="交易编码" prop="cod">
<c-input v-model="model.cod" placeholder=""></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="名称" prop="txt">
<c-input v-model="model.txt" placeholder="交易名称" > </c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="交易状态" prop="sta">
<c-select v-model="model.sta" style="width: 100%" placeholder="请选择交易状态" :code="getCodesByKey('codsta')"> </c-select>
</el-form-item>
</c-col>
</c-col>
<!-- =============================================右边=========================================== -->
<c-col :span="12" class="col-right">
<c-col :span="24">
<el-form-item label="交易方向" prop="dir">
<c-select v-model="model.dir" style="width: 100%" placeholder="请选择交易方向" :code="getCodesByKey('coddir')"> </c-select>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="交易类型" prop="typ">
<c-select v-model="model.typ" style="width: 100%" placeholder="请选择交易类型" :code="getCodesByKey('codtyp')"> </c-select>
</el-form-item>
</c-col>
</c-col>
</div>
</template>
<script>
import codes from "~/config/CodeTable";
export default {
name: '',
props: ['model'],
data() {
return {
cortyp: [
],
dirflg: [
],
}
},
mounted() {},
methods: {
getCodesByKey(key) {
return codes[key] ?? [];
},
},
}
</script>
<style></style>
<template>
<div class="eContainer">
<c-page :title="title">
<el-form
ref="modelForm"
label-width="150px"
size="small"
label-position="right"
:model="model"
:rules="rules"
:validate-on-rule-change="false"
:disabled="isDisabled"
>
<c-tabs v-model="tabVal" ref="elment" type="card">
<el-tab-pane label="基本信息" name="cod">
<c-content>
<m-cod-info :model="model" />
</c-content>
</el-tab-pane>
</c-tabs>
</el-form>
<div style="text-align: center">
<c-button
type="primary"
style="margin-right: 10px"
@click="commitAdd"
v-if="type === 'add'"
>提 交</c-button
>
<c-button
type="primary"
style="margin-right: 10px"
@click="commitEdit"
v-if="type === 'edit'"
>提 交</c-button
>
<c-button
type="primary"
style="margin-right: 10px"
@click="commitDelete"
v-if="type === 'delete'"
>删 除</c-button
>
<c-button type="primary" @click="goBack">返 回</c-button>
</div>
</c-page>
</div>
</template>
<script>
import Utils from "~/utils";
import Cod, { Pattern } from "./Cod.js";
import CodInfo from "./CodInfo.vue";
import { queryDetailById, add, edit, deleteById } from "~/service/test/cod.js";
export default {
name: "StaticsDbicod",
components: {
"m-cod-info": CodInfo,
},
provide() {
return {
root: this,
};
},
props: {
type: {
type: String,
default: "info"
},
title: {
type: String,
default: "dbicod"
}
},
data() {
return {
model: new Cod().data,
tabVal: "cod",
rules: Pattern,
};
},
computed: {
isDisabled() {
return this.type === "info" || this.type === "delete";
},
},
created() {
if (this.type !== "add") {
const params = this.$route.params;
queryDetailById(params).then((res) => {
if (res.inr) {
this.model = res;
} else {
this.$message.error("码表记录不存在")
}
});
}
},
methods: {
commitAdd() {
this.$refs.modelForm.validate((validated) => {
if (validated) {
add(this.model)
.then((res) => {
this.$message.success("保存成功!");
this.goBack(true)
})
.catch((err) => {
this.$message.error("保存失败!");
});
} else {
Utils.formValidateTips(this.$refs.modelForm.fields)
}
});
},
commitEdit() {
this.$refs.modelForm.validate((validated) => {
if (validated) {
edit(this.model)
.then((res) => {
this.$message.success("保存成功!");
this.goBack(true)
})
.catch((err) => {
this.$message.error("保存失败!");
});
} else {
Utils.formValidateTips(this.$refs.modelForm.fields)
}
});
},
commitDelete() {
this.$confirm("是否确认删除?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
const params = this.$route.params;
deleteById(params)
.then((res) => {
this.$message.success("删除成功!");
this.goBack(true)
})
.catch((err) => {
this.$message.error("删除失败!");
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消删除",
});
});
},
/**
* update 是否更新infcod的查询列表
*/
goBack(update) {
this.$store.dispatch("TagsView/delView", this.$route);
this.$router.push({ name: "StaticsInfcod", params: { update } });
},
},
};
</script>
<style>
</style>
\ No newline at end of file
<template>
<div class="eibs-tab">
<!-- 参照TD上infxxx,如infpty/infact交易的search panel面板,对应布局查询条件字段 -->
<!-- ----------左 ---------->
<c-col :span="12" class="col-left">
<c-col :span="24">
<!-- Account No. -->
<el-form-item label="交易编码" prop="cod">
<c-input
v-model="model.cod"
placeholder="请输入交易编码"
>
</c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<!-- Holding Party -->
<el-form-item label="名称" prop="txt">
<c-input
v-model="model.txt"
placeholder="请输入名称"
>
</c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<!-- Holding Party -->
<c-col :span="24">
<el-form-item label="状态" prop="sta">
<c-select
v-model="model.sta"
placeholder="请选择交易状态"
style="width: 100%"
:code="getCodesByKey('codsta')"
></c-select>
</el-form-item>
</c-col>
</c-col>
</c-col>
<!-- =========================------------- 右 ----------======================= -->
<c-col :span="12" class="col-right">
<c-col :span="24">
<el-form-item label="方向" prop="dir">
<c-select
v-model="model.dir"
placeholder="请选择交易方向"
style="width: 100%"
:code="getCodesByKey('coddir')"
></c-select>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="类型" prop="typ">
<c-select
v-model="model.typ"
style="width: 100%"
placeholder="请选择交易类型"
:code="getCodesByKey('codtyp')"
>
</c-select>
</el-form-item>
</c-col>
</c-col>
<c-col :span="24">
<c-col :span="12" style="text-align: left">
<el-button type="primary" size="small" @click="codAdd">新增</el-button>
</c-col>
<c-col :span="12" style="text-align: right">
<el-button size="small" @click="handleReset">重置</el-button>
<el-button
type="primary"
icon="el-icon-search"
size="small"
@click="onSearch()"
>查询
</el-button>
</c-col>
</c-col>
<c-col :span="24">
<c-paging-table
:data="codData"
:columns="codColumns"
:pageNumber="model.pageNum"
:pageSize="model.pageSize"
:total="model.total"
v-on:queryFunc="queryFunc"
:border="true"
>
<c-table-column fixed="right" prop="op" label="操作" width="240px">
<template slot-scope="{ scope }">
<c-button
style="margin-left: 0"
size="small"
@click="codInfo(scope.$index, scope.row)"
>详情</c-button
>
<c-button
style="margin-left: 5px"
size="small"
type="primary"
@click="codEdit(scope.$index, scope.row)"
>修改</c-button
>
<c-button
size="small"
style="margin-left: 5px"
@click="codDelete(scope.$index, scope.row)"
>删除</c-button
>
<el-popover placement="top-start" width="50" trigger="click">
<ul class="table-button-item-list">
<li>
<c-button size="small" style="margin-left: 0">指派</c-button>
</li>
<li>
<c-button size="small" style="margin-left: 0">删除</c-button>
</li>
</ul>
<a
slot="reference"
href="javascript:void(0)"
style="margin-left: 5px"
>
<i class="el-icon-more"></i>
</a>
</el-popover>
</template>
</c-table-column>
</c-paging-table>
</c-col>
</div>
</template>
<script>
import codes from "~/config/CodeTable";
import { queryByPage } from "~/service/test/cod.js";
export default {
name: "",
props: ["model"],
inject: ["root"],
data() {
return {
codData: [],
codColumns: [
{ label: '交易编码', prop: 'cod', width: '200' },
{ label: '方向', prop: 'dir', width: '100' },
{ label: '类型', prop: 'typ', width: '100' },
{ label: '名称', prop: 'txt', width: '200' },
{ label: '状态', prop: 'sta', width: '100' }
],
};
},
computed: {
},
activated() {
const { update } = this.$route.params
console.log('1234'+update)
if (update) {
console.log('abcd')
this.onInfcodSearch()
}
},
methods: {
handleReset() {
this.root.$refs.modelForm.resetFields();
},
onSearch(){
this.model.pageNum = 1;
this.model.pageSize = 5;
this.onInfcodSearch();
},
onInfcodSearch() {
queryByPage(this.model).then(res => {
/**
* pageNumber: 0
* pageSize: 0
* total: 69
* totalPage: 0
*/
const list = res.list
Object.keys(list).forEach((item) => {
let obj = list[item]
let dirArr = codes['coddir'].filter((i) => {
return i.value == obj.dir
})
obj.dir = dirArr[0].label
let typArr = codes['codtyp'].filter((i) => {
return i.value == obj.typ
})
obj.typ = typArr[0].label
let staArr = codes['codsta'].filter((i) => {
return i.value == obj.sta
})
obj.sta = staArr[0].label
})
this.codData = list
this.model.pageNum = res.pageNumber
this.model.pageSize = res.pageSize
this.model.total = res.total
})
},
queryFunc(pageNumber, pageSize) {
this.model.pageNum = pageNumber
this.model.pageSize = pageSize
this.onInfcodSearch()
},
getCodesByKey(key) {
return codes[key] ?? [];
},
codAdd() {
this.$router.push(`/statics/dbacod`)
},
codInfo(index, row) {
this.$router.push(`/statics/dbicod/${row.inr}`)
},
codEdit(index, row) {
this.$router.push(`/statics/dbecod/${row.inr}`)
},
codDelete(index, row) {
this.$router.push(`/statics/dbdcod/${row.inr}`)
},
},
};
</script>
<style scoped>
.table-button-item-list {
padding: 0;
margin: 0;
}
.table-button-item-list li {
list-style: none;
padding: 5px 0;
text-align: center;
color: #606266;
cursor: pointer;
}</style>
\ No newline at end of file
<template>
<div class="eContainer">
<c-page title="收支申报码表查询">
<el-form
:model="model"
ref="modelForm"
label-width="120px"
label-position="right"
size="small"
>
<c-tabs v-model="tabVal" ref="elment" type="card">
<!--PD000039 -->
<el-tab-pane label="收支申报码表查询" name="infsea">
<c-content>
<m-infsea :model="model" ref="infsea" />
</c-content>
</el-tab-pane>
</c-tabs>
</el-form>
</c-page>
</div>
</template>
<script>
import Infsea from "./Infsea";
export default {
name: "StaticsInfcod",
components: {
"m-infsea": Infsea,
},
provide() {
return {
root: this,
};
},
data() {
return {
tabVal: "infsea",
model: {
// bopcod,查询条件的字段
cod: "",
dir: "",
typ: "",
sta: "",
pageNum: 1,
pageSize: 5,
total: 0
},
};
},
};
</script>
<style></style>
\ No newline at end of file
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