银行系统

20240205
e 3 years ago
parent 27991ef931
commit 75438c6215
  1. 12
      src/assets/svg/fullscreen.svg
  2. 12
      src/assets/svg/shrink.svg
  3. 2
      src/components/case/index.vue
  4. 22
      src/libs/resize/index.js
  5. 391
      src/pages/counter/list/index.vue
  6. 2
      src/pages/index/list/index.vue
  7. 27
      src/pages/manage/index/index.vue
  8. 25
      src/pages/manage/list/client/consumerClient.vue
  9. 23
      src/pages/manage/list/personal/currentAccount/accountCancellation.vue
  10. 75
      src/pages/manage/list/personal/currentAccount/deposit.vue
  11. 59
      src/pages/manage/list/personal/currentAccount/index.vue
  12. 228
      src/pages/manage/list/personal/currentAccount/openAccount.vue
  13. 23
      src/pages/manage/list/personal/currentAccount/settle.vue
  14. 23
      src/pages/manage/list/personal/currentAccount/transferAccounts.vue
  15. 23
      src/pages/manage/list/personal/currentAccount/withdrawal.vue
  16. 2
      src/router/modules/counter.js
  17. 1
      src/store/modules/layout.js

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 59 (86127) - https://sketch.com -->
<title>图标 / 系统录入 / 全屏</title>
<desc>Created with Sketch.</desc>
<g id="图标-/-系统录入-/-全屏" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g>
<rect id="矩形" x="0" y="0" width="24" height="24"></rect>
<path d="M19.8232193,20.8000205 L14.9304136,20.8000205 L14.9304136,18.8464182 L18.8376182,18.8464182 L18.8376182,14.9392137 L20.8000205,14.9392137 L20.8000205,20.8000205 L19.8232193,20.8000205 Z M20.8000205,4.17680114 L20.8000205,3.2 L14.9304136,3.2 L14.9304136,5.15360227 L18.8376182,5.15360227 L18.8376182,9.06080682 L20.8000205,9.06080682 L20.8000205,4.17680114 Z M3.2,19.8232193 L3.2,20.8000205 L9.06960683,20.8000205 L9.06960683,18.8464182 L5.15360227,18.8464182 L5.15360227,14.9392137 L3.2,14.9392137 L3.2,19.8232193 L3.2,19.8232193 Z M4.17680114,3.2 L9.06960683,3.2 L9.06960683,5.15360227 L5.15360227,5.15360227 L5.15360227,9.06080682 L3.2,9.06080682 L3.2,3.2 L4.17680114,3.2 Z" id="形状" fill="#7F7F7F" fill-rule="nonzero"></path>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 59 (86127) - https://sketch.com -->
<title>图标 / 系统录入 / 缩小</title>
<desc>Created with Sketch.</desc>
<g id="图标-/-系统录入-/-缩小" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="图标-/-系统录入-/-全屏">
<rect id="矩形" x="0" y="0" width="24" height="24"></rect>
<path d="M15.9072148,14.9392137 L20.8000205,14.9392137 L20.8000205,16.8928159 L16.8928159,16.8928159 L16.8928159,20.8000205 L14.9304136,20.8000205 L14.9304136,14.9392137 L15.9072148,14.9392137 Z M14.9304136,8.08400568 L14.9304136,9.06080682 L20.8000205,9.06080682 L20.8000205,7.10720455 L16.8928159,7.10720455 L16.8928159,3.2 L14.9304136,3.2 L14.9304136,8.08400568 Z M9.06960683,15.9160148 L9.06960683,14.9392137 L3.2,14.9392137 L3.2,16.8928159 L7.11600456,16.8928159 L7.11600456,20.8000205 L9.06960683,20.8000205 L9.06960683,15.9160148 L9.06960683,15.9160148 Z M8.09280569,9.06080682 L3.2,9.06080682 L3.2,7.10720455 L7.11600456,7.10720455 L7.11600456,3.2 L9.06960683,3.2 L9.06960683,9.06080682 L8.09280569,9.06080682 Z" id="形状" fill="#7F7F7F" fill-rule="nonzero"></path>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@ -131,7 +131,7 @@ export default {
systemId: Setting.systemId,
workbench: [],
test: [],
caseVisible: true,
caseVisible: false,
grade: "00",
exampleData: "",
codeid: "",

@ -2,15 +2,15 @@
// 基准大小
const baseSize = 16
// 设置 rem 函数
function setRem () {
// 当前页面宽度相对于 1920宽的缩放比例,可根据自己需要修改。
const scale = document.documentElement.clientWidth / 1920
// 设置页面根节点字体大小(“Math.min(scale, 2)” 指最高放大比例为2,可根据实际业务需求调整)
document.documentElement.style.fontSize = baseSize * Math.min(scale, 2) + 'px'
}
// 初始化
setRem()
// function setRem () {
// // 当前页面宽度相对于 1920宽的缩放比例,可根据自己需要修改。
// const scale = document.documentElement.clientWidth / 1920
// // 设置页面根节点字体大小(“Math.min(scale, 2)” 指最高放大比例为2,可根据实际业务需求调整)
// document.documentElement.style.fontSize = baseSize * Math.min(scale, 2) + 'px'
// }
// // 初始化
// setRem()
// 改变窗口大小时重新设置 rem
window.onresize = function () {
setRem()
}
// window.onresize = function () {
// setRem()
// }

@ -1,122 +1,128 @@
<template>
<div class="wrap">
<img class="sth bg" src="@/assets/img/integrated-counter-bg.png" alt="">
<img class="sth guide" src="@/assets/img/guide.png" alt="">
<img class="sth man" src="@/assets/img/man.png" alt="">
<img class="sth counter" src="@/assets/img/counter.png" alt="">
<img class="sth glass" src="@/assets/img/glass.png" alt="">
<img class="sth bg" src="@/assets/img/integrated-counter-bg.png" alt="" />
<img class="sth guide" src="@/assets/img/guide.png" alt="" />
<img class="sth man" src="@/assets/img/man.png" alt="" />
<img class="sth counter" src="@/assets/img/counter.png" alt="" />
<img class="sth glass" src="@/assets/img/glass.png" alt="" />
<!-- 系统录入 -->
<el-tooltip placement="top" popper-class="sth-popper">
<div slot="content">
<img style="height: 145px" src="@/assets/img/tooltip/system.png" alt="">
<img style="height: 178px" src="@/assets/img/tooltip/system.png" alt="" />
</div>
<img @click="showManage" class="sth computer cp" src="@/assets/img/computer.png" alt="">
<img @click="showManage" class="sth computer cp" src="@/assets/img/computer.png" alt="" />
</el-tooltip>
<el-tooltip placement="top" popper-class="sth-popper" offset="50">
<div slot="content">
<img src="@/assets/img/tooltip/cpl.png" alt="">
<img src="@/assets/img/tooltip/cpl.png" alt="" />
</div>
<img class="sth summons cp" src="@/assets/img/summons.png" alt="">
<img class="sth summons cp" src="@/assets/img/summons.png" alt="" />
</el-tooltip>
<el-tooltip placement="top-start" popper-class="sth-popper" offset="250">
<div slot="content">
<img src="@/assets/img/tooltip/ptpzx.png" alt="">
<img src="@/assets/img/tooltip/ptpzx.png" alt="" />
</div>
<img class="sth voucher-box cp" src="@/assets/img/voucher-box.png" alt="">
<img class="sth voucher-box cp" src="@/assets/img/voucher-box.png" alt="" />
</el-tooltip>
<el-tooltip placement="top-start" popper-class="sth-popper" offset="250">
<div slot="content">
<img src="@/assets/img/tooltip/zk.png" alt="">
<img src="@/assets/img/tooltip/zk.png" alt="" />
</div>
<img class="sth important cp" src="@/assets/img/important.png" alt="">
<img class="sth important cp" src="@/assets/img/important.png" alt="" />
</el-tooltip>
<el-tooltip placement="left-start" popper-class="sth-popper">
<div slot="content">
<img src="@/assets/img/tooltip/qx.png" alt="">
<img src="@/assets/img/tooltip/qx.png" alt="" />
</div>
<img class="sth money-box cp" src="@/assets/img/money-box.png" alt="" @click="showData('钱箱')">
<img class="sth money-box cp" src="@/assets/img/money-box.png" alt="" @click="showData('钱箱')" />
</el-tooltip>
<el-tooltip placement="top" popper-class="sth-popper" offset="-100">
<div slot="content">
<img src="@/assets/img/tooltip/yzh.png" alt="">
<img src="@/assets/img/tooltip/yzh.png" alt="" />
</div>
<img class="sth seal-box cp" src="@/assets/img/seal-box.png" alt="">
<img class="sth seal-box cp" src="@/assets/img/seal-box.png" alt="" />
</el-tooltip>
<el-tooltip placement="top" popper-class="sth-popper" offset="-100">
<div slot="content">
<img src="@/assets/img/tooltip/ycj.png" alt="">
<img src="@/assets/img/tooltip/ycj.png" alt="" />
</div>
<img class="sth currency-detector cp" src="@/assets/img/currency-detector.png" alt="">
<img class="sth currency-detector cp" src="@/assets/img/currency-detector.png" alt="" />
</el-tooltip>
<el-tooltip placement="top" popper-class="sth-popper" offset="-400">
<div slot="content">
<img src="@/assets/img/tooltip/dyj.png" alt="">
<img src="@/assets/img/tooltip/dyj.png" alt="" />
</div>
<img class="sth printer cp" src="@/assets/img/printer.png" alt="">
<img class="sth printer cp" src="@/assets/img/printer.png" alt="" />
</el-tooltip>
<el-tooltip placement="top" popper-class="sth-popper" offset="50">
<div slot="content">
<img src="@/assets/img/tooltip/mmq.png" alt="">
<img src="@/assets/img/tooltip/mmq.png" alt="" />
</div>
<img class="sth cipher-machine cp" src="@/assets/img/cipher-machine.png" alt="">
<img class="sth cipher-machine cp" src="@/assets/img/cipher-machine.png" alt="" />
</el-tooltip>
<img class="sth employee" src="@/assets/img/employee.png" alt="">
<img class="sth employee" src="@/assets/img/employee.png" alt="" />
<p class="employeeText">资料</p>
<el-tooltip placement="top" popper-class="sth-popper" offset="50">
<el-tooltip placement="top" popper-class="sth-popper" offset="00">
<div slot="content">
<img src="@/assets/img/tooltip/skj.png" alt="">
<img src="@/assets/img/tooltip/skj.png" alt="" />
</div>
<img class="sth card-machine cp" src="@/assets/img/card-machine.png" alt="">
<img class="sth card-machine cp" src="@/assets/img/card-machine.png" alt="" />
</el-tooltip>
<el-tooltip placement="top" popper-class="sth-popper" offset="-100">
<div slot="content">
<img src="@/assets/img/tooltip/sfz.png" alt="">
<img src="@/assets/img/tooltip/sfz.png" alt="" />
</div>
<img class="sth idCard-scanner cp" src="@/assets/img/idCard-scanner.png" alt="">
<img class="sth idCard-scanner cp" src="@/assets/img/idCard-scanner.png" alt="" />
</el-tooltip>
<div class="goods-dia" :class="{ active: showGoods }">
<img src="@/assets/img/idCard.png" alt="">
<img src="@/assets/img/open-account.png" alt="">
<img src="@/assets/img/cash.png" alt="">
<img src="@/assets/img/idCard.png" alt="" />
<img src="@/assets/img/open-account.png" alt="" />
<img src="@/assets/img/cash.png" alt="" />
</div>
<div class="goods" :class="{ active: showGoods }" @click="toggleGoods">
<span>物品栏</span>
<img class="icon" src="@/assets/svg/arrow-right.svg" alt="">
<img class="icon" src="@/assets/svg/arrow-right.svg" alt="" />
</div>
<el-dialog :visible.sync="dataVisible" width="1280px" @close="closeData" :close-on-click-modal="false" :show-close="false" custom-class="data-dia">
<el-dialog
:visible.sync="dataVisible"
width="1280px"
@close="closeData"
:close-on-click-modal="false"
:show-close="false"
custom-class="data-dia"
>
<div slot="title" class="dia-header">
<div class="data-title">{{ dataTitle }}</div>
<img class="close" src="@/assets/svg/close.svg" alt="" @click="closeDataDia">
<img class="close" src="@/assets/svg/close.svg" alt="" @click="closeDataDia" />
</div>
<p class="tips">- 请单击选中所需材料双击可放大预览 -</p>
<ul class="list">
<li :class="{ checked: checkList.includes(1) }" @click="checkData(1)">
<img src="@/assets/img/idCard-sm.png" alt="">
<img src="@/assets/img/idCard-sm.png" alt="" />
<p>身份证</p>
</li>
<li :class="{ checked: checkList.includes(2) }" @click="checkData(2)">
<img src="@/assets/img/idCard-copy-sm.png" alt="">
<img src="@/assets/img/idCard-copy-sm.png" alt="" />
<p>身份证复印件</p>
</li>
<li :class="{ checked: checkList.includes(3) }" @click="checkData(3)">
<img style="margin-top: 0" src="@/assets/img/open-account-apply-sm.png" alt="">
<img style="margin-top: 0" src="@/assets/img/open-account-apply-sm.png" alt="" />
<p>开户申请书</p>
</li>
<li :class="{ checked: checkList.includes(4) }" @click="checkData(4)">
<img style="margin-top: 32px" src="@/assets/img/cash-sm.png" alt="">
<img style="margin-top: 32px" src="@/assets/img/cash-sm.png" alt="" />
<p>现金</p>
</li>
</ul>
@ -125,16 +131,15 @@
</div>
</el-dialog>
<!-- 商业银行系统的全屏功能实现 -->
<div :class="fullScreen?'':'system'" :style="fullScreen?'margin-top:10vh':'margin-top:-8vh'" v-if="manageVisible" :width="fullScreen?'100vw':'1280px'">
<div :class="full ? 'fullScreenSystem' : 'system'" v-if="manageVisible">
<router-view></router-view>
</div>
</div>
</template>
<script>
import { mapState } from 'vuex'
import manage from '../../manage/index'
import { mapState } from 'vuex';
import manage from '../../manage/index';
export default {
name: 'index',
components: {
@ -146,53 +151,57 @@ export default {
dataTitle: '',
dataVisible: false,
manageVisible: false, //
checkList: [],
fullScreen:true,// --
checkList: []
// fullScreen:this.$store.state.layout.fullScreen,// --
};
},
computed: {
full: function () {
console.log(this.$store.state.layout.fullScreen, '当前full');
return this.$store.state.layout.fullScreen;
}
},
watch: {
'$route.path':function(val){ //
let arr = val.split('/').slice(-2)
if(arr.pop()==="manage"||arr[0]==='manage'){
this.manageVisible = true
'$route.path': function (val) {
//
let arr = val.split('/').slice(-2);
if (arr.pop() === 'manage' || arr[0] === 'manage') {
this.manageVisible = true;
} else {
this.manageVisible = false
this.manageVisible = false;
}
}
},
created() {
let arr = this.$route.path.split('/').slice(-2)
if(arr.pop()==="manage"||arr[0]==='manage'){
this.manageVisible = true
let arr = this.$route.path.split('/').slice(-2);
if (arr.pop() === 'manage' || arr[0] === 'manage') {
this.manageVisible = true;
} else {
this.manageVisible = false
this.manageVisible = false;
}
},
mounted() {
},
mounted() {},
methods: {
toggleGoods() {
this.showGoods = !this.showGoods
this.showGoods = !this.showGoods;
},
showData(type) {
this.dataTitle = type
this.dataVisible = true
this.dataTitle = type;
this.dataVisible = true;
},
checkData(id) {
this.checkList.includes(id) ? this.checkList.splice(this.checkList.indexOf(id),1) : this.checkList.push(id)
this.checkList.includes(id) ? this.checkList.splice(this.checkList.indexOf(id), 1) : this.checkList.push(id);
},
closeDataDia() {
this.dataVisible = false
this.dataVisible = false;
},
closeData() {
this.checkList = []
this.checkList = [];
},
//
showManage() {
this.manageVisible=true
this.$router.push('/counter/list/manage/consumerClient')
this.manageVisible = true;
this.$router.push('/counter/list/manage/consumerClient');
}
}
};
@ -216,30 +225,32 @@ export default {
width: 222px;
cursor: pointer;
&:hover {
opacity: .9;
opacity: 0.9;
}
}
.bg {
top: 0;
left: 0;
width: 100%;
// width: 100%;
height: calc(100vh - 60px);
}
// 1920
@media screen and (min-width: 1920px) {
.counter {
top: 116px;
left: 357px;
width: 1555px;
}
.glass {
top: -135px;
left: 956px;
width: 50%;
top: -145px;
left: 964px;
width: 855px;
}
.employee {
top: 371px;
left: 920px;
width: 388px;
position: relative;
}
.employeeText {
position: absolute;
@ -249,7 +260,6 @@ export default {
transform: rotateZ(38deg) scale3d(1, 1, 1) skew(-19deg, -9deg);
font-size: 18px;
}
.man {
top: 82px;
right: 150px;
@ -310,7 +320,216 @@ export default {
left: 1298px;
width: 100px;
}
.el-tooltip__popper.sth-popper {
padding: 0;
// background-color: transparent;
background-color: #fff;
img {
height: 78px;
}
.popper__arrow {
display: none;
}
}
}
// 1440-1550
@media screen and (max-width: 1550px) {
.counter {
top: 35%;
left: 10%;
height: 61vh;
}
.glass {
//
top: 185px;
left: 716px;
width: 690px;
}
.employee {
//
// top: 57%;
// left: 42%;
// width: 23%;
top: 617px;
left: 610px;
width: 333px;
position: relative;
}
.employeeText {
//
position: absolute;
top: 746px;
left: 925px;
color: #000;
transform: rotateZ(38deg) scale3d(1, 1, 1) skew(-19deg, -9deg);
font-size: 18px;
}
.man {
//
top: 278px;
left: 1075px;
width: 267px;
}
.money-box {
//
top: 637px;
left: 195px;
width: 164px;
}
.important {
//
top: 621px;
left: 314px;
width: 149px;
}
.voucher-box {
//
top: 482px;
left: 434px;
width: 134px;
}
.summons {
//
top: 500px;
left: 548px;
width: 112px;
}
.computer {
top: 395px;
left: 652px;
width: 170px;
}
.card-machine {
top: 596px;
left: 800px;
width: 100px;
}
.idCard-scanner {
top: 656px;
left: 861px;
width: 100px;
}
.seal-box {
top: 680px;
left: 966px;
width: 86px;
}
.currency-detector {
top: 693px;
left: 1035px;
width: 142px;
}
.printer {
top: 758px;
left: 1162px;
width: 187px;
}
.cipher-machine {
top: 551px;
left: 977px;
width: 122px;
}
}
// 1550-1919
@media screen and (min-width: 1550px) and (max-width: 1919px) {
.counter {
top: 33%;
left: 8%;
height: 63vh;
}
.glass {
//
top: 185px;
left: 716px;
width: 690px;
}
.employee {
//
// top: 57%;
// left: 42%;
// width: 23%;
top: 617px;
left: 610px;
width: 333px;
position: relative;
}
.employeeText {
//
position: absolute;
top: 739px;
left: 925px;
color: #000;
transform: rotateZ(38deg) scale3d(1, 1, 1) skew(-19deg, -9deg);
font-size: 18px;
}
.man {
//
top: 278px;
left: 1075px;
width: 267px;
}
.money-box {
//
top: 628px;
left: 195px;
width: 164px;
}
.important {
//
top: 606px;
left: 312px;
width: 149px;
}
.voucher-box {
//
top: 474px;
left: 429px;
width: 134px;
}
.summons {
//
top: 496px;
left: 548px;
width: 112px;
}
.computer {
top: 381px;
left: 654px;
width: 170px;
}
.card-machine {
top: 583px;
left: 800px;
width: 100px;
}
.idCard-scanner {
top: 640px;
left: 867px;
width: 100px;
}
.seal-box {
top: 667px;
left: 966px;
width: 86px;
}
.currency-detector {
top: 676px;
left: 1036px;
width: 142px;
}
.printer {
top: 747px;
left: 1162px;
width: 187px;
}
.cipher-machine {
top: 551px;
left: 977px;
width: 122px;
}
}
.goods {
position: fixed;
bottom: 0;
@ -331,10 +550,10 @@ export default {
}
.icon {
width: 30px;
transition: all .5s;
transition: all 0.5s;
}
&:hover {
opacity: .9;
opacity: 0.9;
}
&.active {
.icon {
@ -351,8 +570,8 @@ export default {
align-items: center;
width: 100%;
padding: 20px 0;
transition: all .5s;
background-color: rgba(255,255,255,.7);
transition: all 0.5s;
background-color: rgba(255, 255, 255, 0.7);
&.active {
left: 0;
}
@ -442,18 +661,28 @@ export default {
border-radius: 20px;
cursor: pointer;
&:hover {
opacity: .9;
opacity: 0.9;
}
}
}
}
.system {
margin-top: -8vh;
position: absolute;
top: 12%;
left: 50%;
z-index: 9;
transform: translate(-50%, 0);
// display: flex;
width: 1280px;
}
.fullScreenSystem {
width: 100vw;
margin-top: 0;
position: absolute;
top: 0%;
left: 50%;
z-index: 9;
transform: translate(-50%, 0);
}
/deep/ .view .el-dialog__body {
padding: 0 !important;

@ -14,7 +14,6 @@
<img class="sth company-finance cp" src="@/assets/img/company-finance.png" alt="" @click="showComing">
<img class="sth personal-finance cp" src="@/assets/img/personal-finance.png" alt="" @click="showComing">
<!-- <vCase></vCase> -->
<div class="coming" :class="{active: comingVisible}">
<img src="@/assets/svg/coming.svg" alt="">
@ -77,7 +76,6 @@ export default {
margin-top: -10px;
}
}
.name{
position: absolute;
top: 43%;

@ -1,13 +1,15 @@
<template>
<div class="box" :style="fullscreen?'height:calc(100vh - 60px)':'height:80vh'">
<div class="box" :style="full?'height:calc(100vh - 60px);':'height: 80vh;'">
<div class="nav">
<div class="top">
<div class="top" :style="full?'border-radius:0':'border-top-left-radius: 20px;'">
<p style="margin:auto">商业银行系统</p>
</div>
<navbar class="body"></navbar>
</div>
<div class="manage-layout">
<div class="top">
<div class="top" :style="full?'border-radius:0':'border-top-right-radius: 20px;'">
<img v-show="!full" src="../../../assets/svg/fullscreen.svg" alt="" @click="handleFullscreen">
<img v-show="full" src="../../../assets/svg/shrink.svg" alt="" @click="shrink">
<i @click="close" class="el-icon-close"></i>
</div>
<div class="manage-content">
@ -24,19 +26,32 @@ export default {
name: 'index',
data() {
return {
fullscreen:false,// --store
fullscreen:this.$store.state.layout.fullScreen,// --store
}
},
components: {
navbar,
},
computed:{
full:function(){
return this.$store.state.layout.fullScreen
}
},
created() {
},
methods: {
close(){
this.$router.push('/counter/list/')
}
},
handleFullscreen(){
this.fullscreen = true
this.$store.commit('layout/changeFullscreen',true)
},
shrink(){
this.fullscreen = false
this.$store.commit('layout/changeFullscreen',false)
},
}
};
</script>
@ -45,7 +60,7 @@ export default {
.box{
display: flex;
min-width: 1300px;
height: 80vh;
overflow: auto;
.nav{
width: 270px;

@ -13,10 +13,10 @@
<el-form-item label="证件类型">
<el-select v-model="form.x" placeholder="请选择">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
v-for="(item,index) in papers"
:key="index"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
@ -43,10 +43,10 @@
<el-form-item label="性别" required>
<el-select v-model="form.x" placeholder="请选择">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
v-for="(item,key) in gender"
:key="key"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
@ -103,7 +103,14 @@ export default {
},
visible:false,
options:[]
papers:[
{name:'身份证',id:1}
],
options:[],
gender:[
{name:'男',id:1},
{name:'女',id:2},
],

@ -0,0 +1,23 @@
<template>
<div>
<h1>销户</h1>
</div>
</template>
<script>
export default{
name:'',
props:{},
data(){
return{
}
},
methods:{
},
}
</script>
<style lang='scss' scoped>
</style>

@ -0,0 +1,75 @@
<template>
<div class="body">
<el-row :gutter="20" style="margin: 0">
<el-form ref="form" :model="form" label-width="120px">
<el-col :span="10" :offset="2">
<el-form-item label="卡号">
<el-input v-model="form.name"></el-input>
</el-form-item>
<el-form-item label="币种" required>
<el-select v-model="form.x" placeholder="请选择">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="金额">
<el-input v-model="form.name"></el-input>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="客户姓名" required>
<el-input v-model="form.name"></el-input>
</el-form-item>
<el-form-item label="钞汇标识" required>
<el-input v-model="form.name"></el-input>
</el-form-item>
<el-form-item label="年利率" required>
<el-input v-model="form.name"></el-input>
</el-form-item>
</el-col>
<el-col :span="21" :offset="2">
<el-form-item label="摘要" required>
<el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="form.name"></el-input>
</el-form-item>
</el-col>
</el-form>
</el-row>
<el-button @click="visible = true" type="primary" class="submitBtn">提交</el-button>
</div>
</template>
<script>
export default{
name:'',
props:{},
data(){
return{
form:{}
}
}
}
</script>
<style lang='scss' scoped>
.body{
margin-top: 50px;
overflow: auto;
.idCard{
border-radius: 5px;
background: #CFDDFF;
text-align: center;
height: 68px;
line-height: 68px;
font-size: 18px;
color: #6191FF;
}
.submitBtn{
position: relative;
width: 300px;
font-size: 18px;
height: 68px;
margin-top: 50px;
border-radius: 10px;
bottom: 10px;
left: 50%;
transform: translate(-50%,-50%);
}
}
</style>

@ -16,9 +16,10 @@
<i class="el-icon-arrow-right"></i>
<p>活期业务</p>
<i class="el-icon-arrow-right"></i>
<p>开户</p>
<p>{{text}}</p>
</div>
<div class="body">
<!-- <div class="body">
<el-row :gutter="20" style="margin:0">
<el-form ref="form" :model="form" label-width="120px">
<el-col :span="10" :offset="2">
@ -93,11 +94,10 @@
</el-form-item>
</el-col>
</el-form>
<el-button type="primary" class="addBtn" circle icon="el-icon-plus"></el-button>
<el-button @click="openAccount" type="primary" class="addBtn" circle icon="el-icon-plus"></el-button>
</el-row>
</div>
<!-- 二级证件,最多三张逻辑上一张二级为填完信息不可添加第三张 v-for="(item,index) in second" :key="index" -->
<div class="add">
<div class="add" v-for="(item,index) in second" :key="index">
<el-row :gutter="20" style="margin:0;margin-top:10px">
<el-form ref="form" :model="form" label-width="120px">
<el-col :span="10" :offset="2">
@ -145,10 +145,25 @@
</el-col>
</el-form>
</el-row>
<el-button class="addBtn" circle icon="el-icon-close"></el-button>
<el-button @click="deleteSecond(index)" class="addBtn" circle icon="el-icon-close"></el-button>
</div>
<el-button @click="visible=true" type="primary" class="submitBtn">提交</el-button>
</div>
</div> -->
<!-- 开户 -->
<open-account v-if="activeIndex==='1'"></open-account>
<!-- 存款 -->
<deposit v-if="activeIndex==='2'"></deposit>
<!-- 取款 -->
<withdrawal v-if="activeIndex==='3'"></withdrawal>
<!-- 转账 -->
<transferAccounts v-if="activeIndex==='4'"></transferAccounts>
<!-- 结清 -->
<settle v-if="activeIndex==='5'"></settle>
<!-- 销户 -->
<accountCancellation v-if="activeIndex==='6'"></accountCancellation>
<el-dialog
style="margin-top:10vh"
@ -175,10 +190,34 @@
<script>
import { mapState } from 'vuex'
import openAccount from './openAccount.vue'
import deposit from './deposit.vue'
import withdrawal from './withdrawal.vue'
import transferAccounts from './transferAccounts.vue'
import settle from './settle.vue'
import accountCancellation from './settle.vue'
export default {
name: 'index',
components:{
openAccount,
deposit,
withdrawal,
transferAccounts,
settle,
accountCancellation
},
data() {
return {
text:'',/* 顶部文字 */
textObj:{
'1':'开户',
'2':'存款',
'3':'取款',
'4':'转账',
'5':'结清',
'6':'销户',
},
form:{
},
@ -198,9 +237,13 @@ export default {
},
methods: {
handleSelect(val){
console.log(val,'xuanze');
console.log(typeof(val),this.activeIndex,'xuanze');
this.text = this.textObj[val]
this.activeIndex = val
},
}
};
</script>

@ -0,0 +1,228 @@
<template>
<div class="body">
<el-row :gutter="20" style="margin: 0">
<el-form ref="form" :model="form" label-width="120px">
<el-col :span="10" :offset="2">
<el-form-item label="客户号">
<el-input v-model="form.name"></el-input>
</el-form-item>
<el-form-item label="币种" required>
<el-select v-model="form.x" placeholder="请选择">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="客户姓名" required>
<el-input v-model="form.name"></el-input>
</el-form-item>
<el-form-item label="钞汇标识" required>
<el-input v-model="form.name"></el-input>
</el-form-item>
</el-col>
</el-form>
</el-row>
<div class="add">
<el-row :gutter="20" style="margin: 0">
<el-form ref="form" :model="form" label-width="120px">
<el-col :span="10" :offset="2">
<el-form-item label="账户性质">
<el-input v-model="form.name"></el-input>
</el-form-item>
<el-form-item label="账户类型" required>
<el-select v-model="form.x" placeholder="请选择">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="支取方式" required>
<el-select v-model="form.x" placeholder="请选择">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="凭证类型" required>
<el-select v-model="form.x" placeholder="请选择">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="凭证号码" required>
<el-input v-model="form.name"></el-input>
</el-form-item>
<el-form-item label="凭证号码" required>
<el-input v-model="form.name"></el-input>
</el-form-item>
</el-col>
</el-form>
<el-button @click="openAccount" type="primary" class="addBtn" circle icon="el-icon-plus"></el-button>
</el-row>
</div>
<!-- 二级证件,最多三张逻辑上一张二级为填完信息不可添加第三张 v-for="(item,index) in second" :key="index" -->
<div class="add" v-for="(item, index) in second" :key="index">
<el-row :gutter="20" style="margin: 0; margin-top: 10px">
<el-form ref="form" :model="form" label-width="120px">
<el-col :span="10" :offset="2">
<el-form-item label="账户性质">
<el-input v-model="form.name"></el-input>
</el-form-item>
<el-form-item label="账户类型" required>
<el-select v-model="form.x" placeholder="请选择">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="支取方式" required>
<el-select v-model="form.x" placeholder="请选择">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="凭证类型" required>
<el-select v-model="form.x" placeholder="请选择">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="凭证号码" required>
<el-input v-model="form.name"></el-input>
</el-form-item>
<el-form-item label="凭证号码" required>
<el-input v-model="form.name"></el-input>
</el-form-item>
</el-col>
</el-form>
</el-row>
<el-button @click="deleteSecond(index)" class="addBtn" circle icon="el-icon-close"></el-button>
</div>
<el-button @click="visible = true" type="primary" class="submitBtn">提交</el-button>
</div>
</template>
<script>
export default {
data(){
return{
form:{
},
second:[//
],
options:[]
}
},
methods:{
detectionObjKeys(obj,keys){/* obj-传入对象,keys-传入检测的key值 */
let boolean = true
keys.map(e=>{
if(!obj[e]){
boolean = false
}
})
},
openAccount(){
if(this.second.length){/* 检测已有二级卡是否填写完整 */
return this.$message('请把已有的二级卡填写完整再执行新增操作!')
for (let i= 0; i< this.second.length; i++) {
if(!this.detectionObjKeys(e,[])){/* 写入定义的二级卡字段 */
return this.$message('请把已有的二级卡填写完整再执行新增操作!')
}
}
}
let obj = {/* 二级卡定义空属性 */
}
this.second.push(obj)``
},
deleteSecond(index){
this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.second.splice(index,1)
this.$message({
type: 'success',
message: '删除成功!'
});
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
}
}
};
</script>
<style lang="scss" scoped>
.body{
margin-top: 50px;
overflow: auto;
.idCard{
border-radius: 5px;
background: #CFDDFF;
text-align: center;
height: 68px;
line-height: 68px;
font-size: 18px;
color: #6191FF;
}
.add{
position: relative;
&::after{
content: '';
display: block;
position: absolute;
right: 3%;
top: -4%;
border: 1px dashed #CFDDFF;
width: 88%;
height: 268px;
}
.addBtn{
position: absolute;
left: 0;
top: 50%;
transform: translate(50%,-50%);
font-size: 22px;
}
}
}
.submitBtn{
position: relative;
width: 300px;
font-size: 18px;
height: 68px;
margin-top: 50px;
border-radius: 10px;
bottom: 10px;
left: 50%;
transform: translate(-50%,-50%);
}
.popBody{
min-height: 200px;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
}
.popBtns{
display: flex;
justify-content: space-between;
align-items: center;
.btn{
width: 180px;
border-radius: 10px;
font-size: 18px;
}
.close{
background: #CFDEFF;
color: #6191FF;
}
.sure{
background: #6191FF;
color: #fff;
}
}
</style>

@ -0,0 +1,23 @@
<template>
<div>
<h1>结清</h1>
</div>
</template>
<script>
export default{
name:'',
props:{},
data(){
return{
}
},
methods:{
},
}
</script>
<style lang='scss' scoped>
</style>

@ -0,0 +1,23 @@
<template>
<div>
<h1>取款</h1>
</div>
</template>
<script>
export default{
name:'',
props:{},
data(){
return{
}
},
methods:{
},
}
</script>
<style lang='scss' scoped>
</style>

@ -0,0 +1,23 @@
<template>
<div>
<h1>取款</h1>
</div>
</template>
<script>
export default{
name:'',
props:{},
data(){
return{
}
},
methods:{
},
}
</script>
<style lang='scss' scoped>
</style>

@ -42,7 +42,7 @@ export default {
{
name: `${pre}currentAccount`,
path: `currentAccount`,
component: () => import('@/pages/manage/list/personal/currentAccount.vue'),
component: () => import('@/pages/manage/list/personal/currentAccount/index.vue'),
meta: { title: '活期业务' },
},
{

@ -19,6 +19,7 @@ export default {
state.isIE = val
},
changeFullscreen:(state,val) => {
console.log(val,state,'dayin--val')
state.fullScreen = val
}
},

Loading…
Cancel
Save