图片文件提交

20240205
e 3 years ago
parent 75438c6215
commit 7fc5f377e8
  1. 6
      package-lock.json
  2. 1
      package.json
  3. 0
      src/assets/img/goods/cash-sm.png
  4. BIN
      src/assets/img/goods/ckpt.png
  5. BIN
      src/assets/img/goods/idcard.png
  6. BIN
      src/assets/img/goods/khsqs.png
  7. BIN
      src/assets/img/goods/lxqd.png
  8. BIN
      src/assets/img/goods/ptkbpz.png
  9. BIN
      src/assets/img/goods/qkpt.png
  10. BIN
      src/assets/img/goods/xd-zzzp.png
  11. BIN
      src/assets/img/goods/xjzp.png
  12. BIN
      src/assets/img/goods/ywsfpz.png
  13. BIN
      src/assets/img/goods/zzpt.png
  14. BIN
      src/assets/img/goods/凭证-06.png
  15. BIN
      src/assets/img/goods/凭证-07.png
  16. BIN
      src/assets/img/goods/凭证-08.png
  17. BIN
      src/assets/img/goods/凭证-09.png
  18. BIN
      src/assets/img/goods/凭证-10.png
  19. BIN
      src/assets/img/goods/凭证-11.png
  20. BIN
      src/assets/img/goods/凭证-15.png
  21. BIN
      src/assets/img/goods/凭证-16.png
  22. BIN
      src/assets/img/goods/开户许可证.png
  23. BIN
      src/assets/img/goods/营业执照.png
  24. BIN
      src/assets/img/goods/身份证背.png
  25. BIN
      src/assets/img/seal/Transfer.png
  26. BIN
      src/assets/img/seal/accessory.png
  27. BIN
      src/assets/img/seal/business.png
  28. BIN
      src/assets/img/seal/closing.png
  29. BIN
      src/assets/img/seal/paid.png
  30. BIN
      src/assets/img/seal/personal.png
  31. BIN
      src/assets/img/seal/receipt.png
  32. BIN
      src/assets/img/seal/sealed.png
  33. BIN
      src/assets/img/tooltip/data.png
  34. 4
      src/components/case/index.vue
  35. 22
      src/main.js
  36. 654
      src/pages/counter/list/index.vue
  37. 6
      src/pages/lobbyManager/list/index.vue
  38. 8
      src/pages/manage/index/index.vue
  39. 46
      src/pages/manage/list/client/consumerClient.vue
  40. 12
      src/pages/manage/list/personal/currentAccount/deposit.vue
  41. 36
      src/pages/manage/list/personal/currentAccount/openAccount.vue
  42. 5
      src/store/modules/layout.js
  43. 57
      src/store/modules/system.js

6
package-lock.json generated

@ -11394,9 +11394,9 @@
}
},
"sortablejs": {
"version": "1.10.1",
"resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.10.1.tgz",
"integrity": "sha512-N6r7GrVmO8RW1rn0cTdvK3JR0BcqecAJ0PmYMCL3ZuqTH3pY+9QyqkmJSkkLyyDvd+AJnwaxTP22Ybr/83V9hQ=="
"version": "1.14.0",
"resolved": "https://registry.nlark.com/sortablejs/download/sortablejs-1.14.0.tgz",
"integrity": "sha1-bS4XzL2yX0ZHNN9iHU811Ks1s9g="
},
"source-list-map": {
"version": "2.0.1",

@ -17,6 +17,7 @@
"mavon-editor": "^2.6.17",
"postcss-px2rem": "^0.3.0",
"px2rem-loader": "^0.1.9",
"sortablejs": "^1.14.0",
"vue": "^2.6.10",
"vue-cropperjs": "^3.0.0",
"vue-i18n": "^8.10.0",

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 673 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 399 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 880 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

@ -150,7 +150,9 @@ export default {
createTime: "", //
actEndTime: "", //
projectId: "", //
value: [],
value: [
{projectName:'项目1',projectId:1}
],
experimentalGoal: "", //
caseDescription: "", //
experimentSuggests: "", //

@ -18,6 +18,27 @@ import permission from '@/router/permission';
import plugins from '@/plugins';
import filters from '@/plugins/filters'
Vue.directive('focus', {/* 聚焦事件 */
inserted: function (el, binding) {
if (el.parentNode.querySelector('input').disabled === false) {
el.parentNode.querySelector('input').focus()
}
}
})
Vue.directive('throttle', {/* 节流 */
inserted: function (el, binding) {
el.addEventListener('click', () => {
if (!el.disabled) {
el.disabled = true
setTimeout(() => {
el.disabled = false
}, binding.value || 3000)
}
})
}
});
Vue.use(plugins);
Object.keys(filters).forEach(item => Vue.filter(item,filters[item]))
@ -43,3 +64,4 @@ new Vue({
store,
render: h => h(App)
}).$mount('#app');

@ -1,7 +1,7 @@
<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 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="" />
@ -9,7 +9,7 @@
<!-- 系统录入 -->
<el-tooltip placement="top" popper-class="sth-popper">
<div slot="content">
<img style="height: 178px" src="@/assets/img/tooltip/system.png" alt="" />
<img style="height: 178px;position:relative;top:-450px;right:20px" src="@/assets/img/tooltip/system.png" alt="" />
</div>
<img @click="showManage" class="sth computer cp" src="@/assets/img/computer.png" alt="" />
</el-tooltip>
@ -18,21 +18,21 @@
<div slot="content">
<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="" @click="showData('传票箱')" />
</el-tooltip>
<el-tooltip placement="top-start" popper-class="sth-popper" offset="250">
<div slot="content">
<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="" @click="showData('普通凭证箱')" />
</el-tooltip>
<el-tooltip placement="top-start" popper-class="sth-popper" offset="250">
<div slot="content">
<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="" @click="showData('重要空白凭证箱')" />
</el-tooltip>
<el-tooltip placement="left-start" popper-class="sth-popper">
@ -46,99 +46,153 @@
<div slot="content">
<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" @click="showData('印章盒')" alt="" />
</el-tooltip>
<el-tooltip placement="top" popper-class="sth-popper" offset="-100">
<div slot="content">
<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" @click="showData('验钞机')" alt="" />
</el-tooltip>
<el-tooltip placement="top" popper-class="sth-popper" offset="-400">
<div slot="content">
<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="" @click="showData('打印机')" />
</el-tooltip>
<el-tooltip placement="top" popper-class="sth-popper" offset="50">
<div slot="content">
<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" @click="showData('密码器')" alt="" />
</el-tooltip>
<img class="sth employee" src="@/assets/img/employee.png" alt="" />
<p class="employeeText">资料</p>
<el-tooltip placement="top" popper-class="sth-popper" offset="-50">
<div slot="content">
<img src="@/assets/img/tooltip/data.png" alt="" />
</div>
<p class="employeeText" @click="showData('资料')">资料</p>
</el-tooltip>
<el-tooltip placement="top" popper-class="sth-popper" offset="00">
<div slot="content">
<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="" @click="showData('刷卡器')" />
</el-tooltip>
<el-tooltip placement="top" popper-class="sth-popper" offset="-100">
<div slot="content">
<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" @click="showData('身份证扫描仪')" 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="" />
<!-- 物品栏 -->
<div ref="goods" class="goods-dia" :class="{ active: showGoods }">
<div :id="item.name" v-for="(item, index) in goods" :key="index" :class="{ checked: checkList.includes(item.id),file:true }" @click="dblClickFn(item,'goods')">
<img :style="item.name==='开户申请书'?'margin-top:10px;':''" :src="item.src" alt="" />
<p>{{item.name}}</p>
</div>
</div>
<div class="goods" :class="{ active: showGoods }" @click="toggleGoods">
<span>物品栏</span>
<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"
>
<div slot="title" class="dia-header">
<div class="data-title">{{ dataTitle }}</div>
<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="" />
<p>身份证</p>
</li>
<li :class="{ checked: checkList.includes(2) }" @click="checkData(2)">
<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="" />
<p>开户申请书</p>
</li>
<li :class="{ checked: checkList.includes(4) }" @click="checkData(4)">
<img style="margin-top: 32px" src="@/assets/img/cash-sm.png" alt="" />
<p>现金</p>
</li>
</ul>
<!-- 硬件交互--弹框 -->
<div v-show="showPop" width="1280px" class="data-dia">
<div class="dia-header">
<div class="data-title">{{ popText }}</div>
<img class="close" src="@/assets/svg/close.svg" alt="" @click="closePop" />
</div>
<p v-if="popText=='密码器'" class="tips"></p>
<p v-else-if="popText=='重要空白凭证箱'||popText=='普通凭证箱'" class="tips">- 请从以下物品中选取所需材料 -</p>
<p v-else class="tips">- 请从物品栏选中或拖拽所需材料 -</p>
<div v-if="popText==='密码器'" style="min-height:204;width:800px;padding-right:150px;padding-top:50px">
<el-form :model="passwordForm" :rules="passwordRules" ref="form" label-width="180px">
<el-form-item label="密码" prop="password">
<el-input v-focus v-model="passwordForm.password" maxlength="6" onkeyup="this.value=this.value.replace(/[^19]/g,'')}else{this.value=this.value.replace(/\D/g,'')}" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="确认密码" prop="passwordAgain">
<el-input :disabled="!passwordForm.password||passwordForm.password.length!=6" v-model="passwordForm.passwordAgain" maxlength="6" onkeyup="this.value=this.value.replace(/[^19]/g,'')}else{this.value=this.value.replace(/\D/g,'')}" autocomplete="off"></el-input>
</el-form-item>
</el-form>
</div>
<div v-else-if="popText==='印章盒'" class="seal" style="width:1200px;">
<div class="left">
<div v-for="(item, index) in sealArr" :key="index" :class="{ checked: sealChecked.includes(item.id),file:true }" @click="dblClickFn(item)">
<img :src="item.src" alt="" />
<p>{{item.name}}</p>
</div>
</div>
<div class="box right" ref="goods">
<div v-for="(item, index) in goods" :key="index" :class="{ checked: checkList.includes(item.id),file:true }" @click="dblClickFn(item)">
<img :src="item.src" alt="" />
<p>{{item.name}}</p>
</div>
</div>
</div>
<div v-else-if="popText==='重要空白凭证箱'" class="seal" style="width:1200px;">
<div class="left else">
<div v-for="(item, index) in importanceArr" :key="index" :class="{ checked: importantChecked.includes(item.id),file:true }" @click="dblClickFn(item)">
<img :src="item.src" alt="" />
<p>{{item.name}}</p>
</div>
</div>
</div>
<div v-else-if="popText==='普通凭证箱'" class="seal" style="width:1200px;">
<div class="left else">
<div v-for="(item, index) in commonArr" :key="index" :class="{ checked: commonChecked.includes(item.id),file:true }" @click="dblClickFn(item)">
<img :src="item.src" alt="" />
<p>{{item.name}}</p>
</div>
</div>
</div>
<!-- 暂时未确定是否公共使用一个弹框 -->
<div v-else class="list" ref="popUp"><!-- 钱箱 / 传票栏 ... 一系列可存物品弹框 -->
<div class="img-wrap" :class="{ checked: commonChecked.includes(item.id),'img-wrap':true }" v-for="(item, index) in popArr" :key="index" v-if="checkList.includes(item.id)" >
<img :src="item.src" class="file" alt="" />
<p class="text">{{item.name}}</p>
</div>
</div>
<div class="dia-footer">
<button type="button">确定</button>
<button v-throttle @click="popSure" type="button">确定</button>
</div>
</el-dialog>
</div>
<!-- 蒙版 -->
<div v-show="showPop" class="masking"></div>
<!-- 商业银行系统的全屏功能实现 -->
<div :class="full ? 'fullScreenSystem' : 'system'" v-if="manageVisible">
<router-view></router-view>
</div>
<el-dialog
custom-class="data-dia"
:visible.sync="showImg"
width="45%"
>
<img :src="imgSrc" class="imgPop" alt="">
</el-dialog>
</div>
</template>
<script>
import { mapState } from 'vuex';
import Sortable from 'sortablejs'
import manage from '../../manage/index';
export default {
name: 'index',
@ -146,19 +200,116 @@ export default {
manage: manage
},
data() {
var validatePass = (rule, value, callback) => {
if (value === '') {
callback(new Error('请输入密码'));
} else {
if (this.passwordForm.password&&/^[0-9]*$/.test(this.passwordForm.password)&&this.passwordForm.password.length===6) {
this.$refs.passwordForm.validateField('password');
callback();
}else{
callback(new Error('请注意密码格式以及密码长度'))
}
}
};
var validatePass2 = (rule, value, callback) => {
if (value === '') {
callback(new Error('请再次输入密码'));
} else if (value !== this.passwordForm.password) {
callback(new Error('两次输入密码不一致!'));
} else {
callback();
}
};
return {
showGoods: false,
dataTitle: '',
dataVisible: false,
manageVisible: false, //
checkList: []
// fullScreen:this.$store.state.layout.fullScreen,// --
checkList: [],//
elseBoxCheck:[],/* 所有其他可从物品栏拖拽物品进入的弹框 */
// goods:[/* */
// ],
popArr:[/* 弹窗展示的物品 */
{name:'银行卡',src:require('@/assets/img/seal/paid.png'),id:'银行卡'},
{name:'定期存单',src:require('@/assets/img/seal/paid.png'),id:'定期存单'},
{name:'预留印签卡',src:require('@/assets/img/seal/paid.png'),id:'预留印签卡'},
{name:'转账支票',src:require('@/assets/img/goods/xd-zzzp.png'),id:'转账支票'},
{name:'银行承兑汇票',src:require('@/assets/img/seal/paid.png'),id:'银行承兑汇票'},
{name:'现金支票',src:require('@/assets/img/goods/xjzp.png'),id:'现金支票'},
// {name:'',src:require('@/assets/img/seal/paid.png'),id:''},
{name:'取款凭条',src:require('@/assets/img/goods/qkpt.png'),id:'取款凭条'},
{name:'转账凭条',src:require('@/assets/img/goods/zzpt.png'),id:'转账凭条'},
{name:'业务收费凭证',src:require('@/assets/img/goods/ywsfpz.png'),id:'业务收费凭证'},
{name:'利息清单',src:require('@/assets/img/goods/lxqd.png'),id:'利息清单'},
{name:'普通空白凭证',src:require('@/assets/img/goods/ptkbpz.png'),id:'普通空白凭证'},
{name:'身份证',src:require('@/assets/img/goods/idcard.png'),id:'身份证'},
{name:'身份证复印件',src:require('@/assets/img/idCard-copy-sm.png'),id:'身份证复印件'},
{name:'开户申请书',src:require('@/assets/img/goods/khsqs.png'),id:'开户申请书'},
{name:'现金',src:require('@/assets/img/goods/cash-sm.png'),id:'现金'},
{name:'存款凭条',src:require('@/assets/img/goods/ckpt.png'),id:'存款凭条'},
],
sealArr:[/* 印章盒物品 */
{name:'收讫章',src:require('@/assets/img/seal/paid.png'),id:'收讫章'},
{name:'销户章',src:require('@/assets/img/seal/closing.png'),id:'销户章'},
{name:'私章',src:require('@/assets/img/seal/personal.png'),id:'私章'},
{name:'附件章',src:require('@/assets/img/seal/accessory.png'),id:'附件章'},
{name:'付讫章',src:require('@/assets/img/seal/paid.png'),id:'付讫章'},
{name:'业务专用章',src:require('@/assets/img/seal/business.png'),id:'业务专用章'},
{name:'转讫章',src:require('@/assets/img/seal/Transfer.png'),id:'转讫章'},
],
importanceArr:[/* 重要空白凭证 */
{name:'银行卡',src:require('@/assets/img/seal/paid.png'),id:'银行卡'},
{name:'定期存单',src:require('@/assets/img/seal/paid.png'),id:'定期存单'},
{name:'预留印签卡',src:require('@/assets/img/seal/paid.png'),id:'预留印签卡'},
{name:'转账支票',src:require('@/assets/img/goods/xd-zzzp.png'),id:'转账支票'},
{name:'银行承兑汇票',src:require('@/assets/img/seal/paid.png'),id:'银行承兑汇票'},
{name:'现金支票',src:require('@/assets/img/goods/xjzp.png'),id:'现金支票'},
],
commonArr:[/* 普通凭证箱 */
{name:'存款凭条',src:require('@/assets/img/seal/paid.png'),id:'存款凭条'},
{name:'取款凭条',src:require('@/assets/img/goods/qkpt.png'),id:'取款凭条'},
{name:'转账凭条',src:require('@/assets/img/goods/zzpt.png'),id:'转账凭条'},
{name:'业务收费凭证',src:require('@/assets/img/goods/ywsfpz.png'),id:'业务收费凭证'},
{name:'利息清单',src:require('@/assets/img/goods/lxqd.png'),id:'利息清单'},
{name:'普通空白凭证',src:require('@/assets/img/goods/ptkbpz.png'),id:'普通空白凭证'},
],
sealChecked:[],/* 印章盒选中 */
importantChecked:[],//
commonChecked:[],//
passwordForm:{
password:'',
},
passwordRules:{
password:[
{ validator: validatePass, trigger: 'blur' },
],
passwordAgain:[
{ validator: validatePass2, trigger: 'blur' },
]
},
clickNum:0,
showImg:false,
imgSrc:'',
};
},
computed: {
full: function () {
console.log(this.$store.state.layout.fullScreen, '当前full');
return this.$store.state.layout.fullScreen;
full: function () {//
return this.$store.state.system.fullScreen;
},
showPop:function(){/* 展示弹框 */
if(!this.showGoods) this.showGoods = this.$store.state.system.showPop
if(!this.showGoods) this.checkList = []
return this.$store.state.system.showPop;
},
popText:function(){/* 文字 */
return this.$store.state.system.popText;
},
goods:function () {/* 物品栏的物品 */
return this.$store.state.system.goods
}
},
watch: {
@ -173,6 +324,9 @@ export default {
}
},
created() {
console.log(/^[0-9]*$/.test('1234'),'/^[0-9]*$/');
console.log(/^\/d{6}$/.test('124056'),'/^[0-9]*$/');
let arr = this.$route.path.split('/').slice(-2);
if (arr.pop() === 'manage' || arr[0] === 'manage') {
this.manageVisible = true;
@ -180,28 +334,196 @@ export default {
this.manageVisible = false;
}
},
mounted() {},
mounted(){
// Promise.resolve(2).then(value => {
//     console.log(111, value)
//     return value
//     })
//     .then(value => {
//     console.log(222, value)
//     return Promise.resolve(value)
//     })
//     .then(value => {
//     console.log(333, value)
//     })
//     .then(value => {
//     console.log(444, value)
//     return Promise.reject(value)
//     })
//     .then(value => {
//     console.log(555, value)
//     }).catch(err => {
//         console.log(666, err)
//     })
let that = this
// -
new Sortable(this.$refs.goods, {
animation: 150,
group: {
name:'shared',
pull:'clone',//
put:false//
},
sort: false,//
onEnd: function (/**Event*/evt) { //
//
if(!that.$refs.popUp) return that.$message.warning('非可拖拽的交互!')
let targetDom = that.$refs.popUp.getBoundingClientRect()
if(evt.originalEvent.pageX<targetDom.right&&evt.originalEvent.pageX>targetDom.left){
if(evt.originalEvent.pageY<targetDom.bottom&&evt.originalEvent.pageY>targetDom.top){
/* oldindex识别是拖拽了哪个文件 */
console.log(that.goods[evt.oldIndex].name,'执行拖拽2');
that.checkList.push(that.goods[evt.oldIndex].name)
alert('拉入到物品栏')
}
}
},
});
// -
new Sortable(this.$refs.popUp, {
animation: 150,
group: {
name:'shared',
pull:'clone',//
put:false
},
sort: false,//
//
onEnd: function (/**Event*/evt) {
// console.log(refParamBox,'dom',refParamBox.getBoundingClientRect());
//
let targetDom = that.$refs.goods.getBoundingClientRect()
if(evt.originalEvent.pageX<targetDom.right&&evt.originalEvent.pageX>targetDom.left){
if(evt.originalEvent.pageY<targetDom.bottom&&evt.originalEvent.pageY>targetDom.top){
alert('拉入到弹框')
}
}
},
});
},
methods: {
toggleGoods() {
this.showGoods = !this.showGoods;
},
showData(type) {
this.dataTitle = type;
this.dataVisible = true;
showData(type) {/* 展示弹窗-type为弹窗标题文字 */
this.$store.commit('system/changePop',{show:true,text:type})
},
checkData(item) {/* 选中物品 */
let _this = this
_this.clickNum++;
if (_this.clickNum === 2) {
_this.clickNum = 0;
// ...
_this.showImg = true
_this.imgSrc = item.src
}
setTimeout(function () {
if (_this.clickNum === 1) {
_this.clickNum = 0;
// ...
console.log('单击事件');
_this.checkList.includes(item.id) ? _this.checkList.splice(_this.checkList.indexOf(item.id), 1) : _this.checkList.push(item.id);
}
}, 200)
},
dblClickFn(item,val){/* 选中/预览 单/双击函数 */
let that = this
this.clickNum++
if (this.clickNum === 2) { //
this.clickNum = 0;
this.showImg = true
this.imgSrc = item.src
}
setTimeout(function () {
let arr
switch (that.popText) {
case '普通凭证箱': arr = that.commonChecked
break;
case '印章盒':arr = that.sealChecked
break;
case '重要空白凭证箱':arr = that.importantChecked
break;
default:
break;
}
if(val==='goods') arr = that.checkList
if (that.clickNum === 1) {//
that.clickNum = 0;
if(that.popText==='印章盒'){
arr.splice(0,1,item.id)
}else if(val==='goods'&&that.popText==='印章盒'){
that.checkList.length=0
that.checkList.push(item.id)
}else{
arr.includes(item.id) ? arr.splice(arr.indexOf(item.id), 1) : arr.push(item.id);
}
}
}, 200)
},
checkSeal(id) {/* 选中印章 */
this.sealChecked.includes(id) ? this.sealChecked.splice(this.sealChecked.indexOf(id), 1) : this.sealChecked.push(id);
},
checkData(id) {
this.checkList.includes(id) ? this.checkList.splice(this.checkList.indexOf(id), 1) : this.checkList.push(id);
checkImportant(id){/* 选中重空凭证 */
this.importantChecked.includes(id) ? this.importantChecked.splice(this.importantChecked.indexOf(id), 1) : this.importantChecked.push(id);
},
closeDataDia() {
this.dataVisible = false;
checkCommon(item){/* 选中普通凭证 */
this.commonChecked.includes(id) ? this.commonChecked.splice(this.commonChecked.indexOf(id), 1) : this.commonChecked.push(id);
},
closePop() {//
this.$store.commit('system/changePop',{show:false,text:''})
},
closeData() {
this.checkList = [];
},
//
showManage() {
showManage() {//
this.manageVisible = true;
this.$router.push('/counter/list/manage/consumerClient');
},
popSure(){/* 弹框-确定 */
/*
添加文件处理选中的文件commit到stor里提示
印章添加一个字段判断已盖章的图表
其他直接展示已处理或已完成且添加处理过的文件到物品栏
*/
let arr = []
if(this.popText==='重要空白凭证箱'||this.popText==='普通凭证箱'){
let goods,clickList
this.popText==='重要空白凭证箱'?(goods=this.importanceArr,clickList=this.importantChecked):(goods=this.commonArr ,clickList = this.commonChecked)
if(clickList.length===0) return this.$message.warning(`请选择物品后再确定!`)
//
goods.map(e=>{
clickList.map(el=>{
if(el===e.id){
arr.push(e)
}
})
})
this.$store.commit('system/changeGoods',{push:arr})
clickList.length = 0
}else{
switch (this.popText) {/* 其他物品交互逻辑: */
case'':
break;
case'':
break;
default:
break;
}
}
this.$message.success(`${this.popText}操作成功!`)
setTimeout(()=>{
this.$store.commit('system/changePop',{show:false,text:''})
},800)
}
}
};
@ -254,11 +576,16 @@ export default {
}
.employeeText {
position: absolute;
top: 541px;
left: 1263px;
top: 503px;
left: 1229px;
color: #000;
transform: rotateZ(38deg) scale3d(1, 1, 1) skew(-19deg, -9deg);
font-size: 18px;
width: 100px;
height: 100px;
text-align: center;
line-height: 100px;
cursor: pointer;
}
.man {
top: 82px;
@ -364,6 +691,9 @@ export default {
color: #000;
transform: rotateZ(38deg) scale3d(1, 1, 1) skew(-19deg, -9deg);
font-size: 18px;
width: 100px;
height: 100px;
cursor: pointer
}
.man {
//
@ -463,6 +793,13 @@ export default {
color: #000;
transform: rotateZ(38deg) scale3d(1, 1, 1) skew(-19deg, -9deg);
font-size: 18px;
width: 100px;
text-align: center;
height: 100px;
line-height: 100px;
cursor: pointer
}
.man {
//
@ -540,6 +877,7 @@ export default {
width: 94px;
height: 200px;
cursor: pointer;
z-index: 9999;
background: url(../../../assets/img/sth-bg.png) 0 0 / cover no-repeat;
span {
width: 30px;
@ -563,35 +901,89 @@ export default {
}
.goods-dia {
display: flex;
justify-content: center;
width: 100%;
white-space: nowrap;
overflow-x: auto;
position: fixed;
bottom: 0;
left: -100%;
justify-content: center;
align-items: center;
width: 100%;
padding: 20px 0;
padding: 20px 300px 20px 300px;
transition: all 0.5s;
background-color: rgba(255, 255, 255, 0.7);
.file {
position: relative;
min-width: 160px;
height: 160px;
text-align: center;
background: url(../../../assets/img/data-frame.png) 0 0 / cover no-repeat;
cursor: pointer;
margin: 0 10px;
img {
margin-top: 40px;
width: 99px;
max-height: 105px;
}
p {
position: absolute;
bottom: 0;
width: 100%;
line-height: 54px;
text-align: center;
font-size: 18px;
color: #000;
}
&.checked {
background: url(../../../assets/img/data-frame-checked.png) 0 0 / cover no-repeat,
url(../../../assets/svg/checked.svg) 165px 7% / auto no-repeat;
p {
color: #fff;
}
}
}
&.active {
left: 0;
z-index: 9999;
}
img {
margin-right: 50px;
cursor: pointer;
&:last-child {
margin-right: 0;
}
}
}
}
/deep/.data-dia {
.imgPop{
width: 100%;
}
.masking{
position: fixed;
top: 0;
left: 0;
bottom: 0;
right: 0;
opacity: .5;
background: #e6e6e6;
z-index: 99;
}
.data-dia {
border-radius: 16px;
margin-top: 11vh !important;
.el-dialog__header {
padding: 0;
border-bottom: 0;
margin-top: 4vh !important;
background: #fff;
position: fixed;
top: 0%;
left: 50%;
transform: translate(-50%, 0);
padding: 0 15px 15px;
z-index: 999;
border: 1px solid #e6e6e6;
max-height: 830px;
overflow: auto;
.dia-header {
position: relative;
.data-title {
height:70px;
width: 300px;
margin: 0 auto;
line-height: 72px;
@ -607,26 +999,35 @@ export default {
cursor: pointer;
}
}
}
.tips {
margin: 20px 0 100px;
margin: 20px 0 50px;
text-align: center;
font-size: 20px;
color: #000;
}
.list {
width: 940px;
min-height: 204px;
max-height: 360px;
overflow: auto;
margin: 0 auto;
display: flex;
justify-content: space-between;
align-items: center;
li {
position: relative;
width: 204px;
height: 204px;
text-align: center;
.img-wrap{
background: url(../../../assets/img/data-frame.png) 0 0 / cover no-repeat;
width: 200px;
height: 200px;
display: flex;
justify-content: center;
margin: 5px 10px;
position: relative;
cursor: pointer;
.file {
position: relative;
max-width: 180px;
max-height: 140px;
text-align: center;
margin: 10px 10px ;
img {
margin-top: 45px;
}
@ -639,6 +1040,15 @@ export default {
font-size: 18px;
color: #000;
}
}
.text{
font-size: 18px;
white-space:nowrap;
position: absolute;
bottom: 15px;
left: 50%;
transform: translate(-50%,0);
}
&.checked {
background: url(../../../assets/img/data-frame-checked.png) 0 0 / cover no-repeat,
url(../../../assets/svg/checked.svg) 165px 7% / auto no-repeat;
@ -648,6 +1058,78 @@ export default {
}
}
}
.seal{
width: 1100px;
padding: 0 5%;
display: flex;
justify-content: space-between;
.box{
border: 2px solid #e6e6e6;
width: 45%;
min-height: 300px;
border-radius: 10px;
padding: 10px;
}
.left{
display: flex;
width: 50%;
flex-wrap: wrap;
.file {
position: relative;
width: 164px;
height: 164px;
text-align: center;
background: url(../../../assets/img/data-frame.png) 0 0 / cover no-repeat;
cursor: pointer;
margin: 5px 7px;
&:last-child {
margin-right: 0;
}
&:nth-child(n>1){
margin-top: 0;
}
img {
width: 130px;
max-height: 108px;
margin-top: 10px;
z-index: 9;
}
p {
position: absolute;
bottom: 0;
width: 100%;
line-height: 54px;
text-align: center;
font-size: 18px;
color: #000;
}
&.checked {
background: url(../../../assets/img/data-frame-checked.png) 0 0 / cover no-repeat,
url(../../../assets/svg/checked.svg) 163px 7% / auto no-repeat;
p {
color: #fff;
}
}
}
&.active {
left: 0;
z-index: 9999;
}
img {
cursor: pointer;
&:last-child {
margin-right: 0;
}
}
}
.right{
margin-left: 5%;
}
.else{
width: 100%;
}
}
.dia-footer {
margin-top: 140px;
text-align: center;

@ -73,7 +73,7 @@
<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/goods/cash-sm.png" alt="">
<p style="font-size: 12px">开立单位银行结算账户申请书</p>
</li>
<li :class="{checked: checkList.includes(1)}" @click="checkData(5)">
@ -89,7 +89,7 @@
<p>现金支票</p>
</li>
<li :class="{checked: checkList.includes(4)}" @click="checkData(8)">
<img style="margin-top: 32px" src="@/assets/img/cash-sm.png" alt="">
<img style="margin-top: 32px" src="@/assets/img/goods/cash-sm.png" alt="">
<p>转账支票</p>
</li>
<li :class="{checked: checkList.includes(2)}" @click="checkData(6)">
@ -101,7 +101,7 @@
<p>现金缴款单</p>
</li>
<li :class="{checked: checkList.includes(4)}" @click="checkData(8)">
<img style="margin-top: 32px" src="@/assets/img/cash-sm.png" alt="">
<img style="margin-top: 32px" src="@/assets/img/goods/cash-sm.png" alt="">
<p>境外汇款申请书</p>
</li>
</ul>

@ -26,7 +26,7 @@ export default {
name: 'index',
data() {
return {
fullscreen:this.$store.state.layout.fullScreen,// --store
fullscreen:this.$store.state.system.fullScreen,// --store
}
},
components: {
@ -34,7 +34,7 @@ export default {
},
computed:{
full:function(){
return this.$store.state.layout.fullScreen
return this.$store.state.system.fullScreen
}
},
created() {
@ -46,11 +46,11 @@ export default {
},
handleFullscreen(){
this.fullscreen = true
this.$store.commit('layout/changeFullscreen',true)
this.$store.commit('system/changeFullscreen',true)
},
shrink(){
this.fullscreen = false
this.$store.commit('layout/changeFullscreen',false)
this.$store.commit('system/changeFullscreen',false)
},
}
};

@ -36,7 +36,7 @@
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="证件号码" required>
<div class="idCard">
<div class="idCard" @click="popUp">
<p>请刷身份证</p>
</div>
</el-form-item>
@ -53,10 +53,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 in nations"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
@ -82,12 +82,25 @@
<div slot="title" class="dia-header">
<div class="data-title">提交</div>
</div>
<div class="popBody">
<div class="popBody" v-if="!authorization&&!success">
<h2>本业务需要授权</h2>
</div>
<div class="popBody" v-if="authorization&&!success">
<el-form ref="form" :model="disForm" label-width="80px">
<el-form-item label="授权柜员">
<el-input disabled v-model="disForm.name"></el-input>
</el-form-item>
<el-form-item label="授权柜员">
<el-input type="password" disabled v-model="disForm.pass"></el-input>
</el-form-item>
</el-form>
</div>
<div class="popBody" v-if="success">
<h2>完成表单form</h2>
</div>
<div class="popBtns">
<el-button class="close btn" @click="visible = false"> </el-button>
<el-button class="sure btn" type="primary" @click="visible = false"> </el-button>
<el-button class="close btn" @click="[visible = false,authorization=false,success=false]"> </el-button>
<el-button class="sure btn" type="primary" @click="popSure"> </el-button>
</div>
</el-dialog>
</div>
@ -102,7 +115,10 @@ export default {
form:{
},
visible:false,
disForm:{name:'002009' ,pass:'123456'},
visible:false,//
authorization:false,//
success:false,//
papers:[
{name:'身份证',id:1}
],
@ -111,15 +127,24 @@ export default {
{name:'男',id:1},
{name:'女',id:2},
],
nations : [{name:"汉族",id:0}, {name:"蒙古族",id:1}, {name:"回族",id:2}, {name:"藏族",id:3}, {name:"维吾尔族",id:4}, {name:"苗族",id:5}, {name:"彝族",id:6}, {name:"壮族",id:7}, {name:"布依族",id:8}, {name:"朝鲜族",id:9}, {name:"满族",id:10}, {name:"侗族",id:11}, {name:"瑶族",id:12}, {name:"白族",id:13}, {name:"土家族",id:14},{name:"哈尼族",id:15}, {name:"哈萨克族",id:16}, {name:"傣族",id:17}, {name:"黎族",id:18}, {name:"傈僳族",id:19}, {name:"佤族",id:20}, {name:"畲族",id:21}, {name:"高山族",id:22}, {name:"拉祜族",id:23}, {name:"水族",id:24}, {name:"东乡族",id:25}, {name:"纳西族",id:26}, {name:"景颇族",id:27}, {name:"柯尔克孜族",id:28},{name:"土族",id:29}, {name:"达斡尔族",id:0}, {name:"仫佬族",id:31}, {name:"羌族",id:32}, {name:"布朗族",id:33}, {name:"撒拉族",id:34}, {name:"毛南族",id:35}, {name:"仡佬族",id:36}, {name:"锡伯族",id:37}, {name:"阿昌族",id:38}, {name:"普米族",id:39}, {name:"塔吉克族",id:40}, {name:"怒族",id:41}, {name:"乌孜别克族",id:42},{name:"俄罗斯族",id:43}, {name:"鄂温克族",id:44}, {name:"德昂族",id:45}, {name:"保安族",id:46}, {name:"裕固族",id:47}, {name:"京族",id:48}, {name:"塔塔尔族",id:49}, {name:"独龙族",id:50}, {name:"鄂伦春族",id:51}, {name:"赫哲族",id:52}, {name:"门巴族",id:53}, {name:"珞巴族",id:54}, {name:"基诺族",id:55}],
}
},
mounted() {
},
methods: {
popUp(){//
this.$store.commit('system/changePop',{show:true,text:'身份证扫描仪'})
},
popSure(){
this.success&&(this.visible = false)
this.authorization&&(this.success=true)
this.authorization = true
}
}
};
@ -141,6 +166,7 @@ export default {
.body{
margin-top: 50px;
.idCard{
cursor: pointer;
border-radius: 5px;
background: #CFDDFF;
text-align: center;

@ -1,14 +1,17 @@
/* 存款 */
<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>
<div class="idCard" @click="popUp('刷卡器')">
<p>请刷卡</p>
</div>
</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-option label="CNY人民币" value="CNY人民币"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="金额">
@ -20,7 +23,9 @@
<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-select v-model="form.identification" placeholder="请选择">
<el-option label="钞户" value="钞户"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="年利率" required>
<el-input v-model="form.name"></el-input>
@ -59,6 +64,7 @@ export default{
line-height: 68px;
font-size: 18px;
color: #6191FF;
cursor: pointer;
}
.submitBtn{
position: relative;

@ -4,11 +4,11 @@
<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-input v-model="form.num"></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 v-model="form.currency" placeholder="请选择">
<el-option label="CNY人民币" value="CNY人民币"> </el-option>
</el-select>
</el-form-item>
</el-col>
@ -17,40 +17,49 @@
<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-select v-model="form.identification" placeholder="请选择">
<el-option label="钞户" value="钞户"> </el-option>
</el-select>
</el-form-item>
</el-col>
</el-form>
</el-row>
<div class="add">
<el-row :gutter="20" style="margin: 0">
<el-row :gutter="20" style="margin: 0;z-index:9">
<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-select v-model="form.nature" placeholder="请选择">
<el-option label="个人结算户" 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-option label="一类户" value="一类户"> </el-option>
<el-option label="二类户" 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-option label="密码" 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-option label="IC卡" value="IC卡"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="凭证号码" required>
<el-input v-model="form.name"></el-input>
<div class="idCard" @click="popUp('刷卡器')">
<p>请刷卡</p>
</div>
</el-form-item>
<el-form-item label="凭证号码" required>
<el-input v-model="form.name"></el-input>
<el-form-item label="支取密码" required>
<div class="idCard" @click="popUp('密码器')">
<p>请输入密码</p>
</div>
</el-form-item>
</el-col>
</el-form>
@ -135,7 +144,7 @@ export default {
this.second.push(obj)``
},
deleteSecond(index){
this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
this.$confirm('此操作将删除该账户类型, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
@ -167,6 +176,7 @@ export default {
line-height: 68px;
font-size: 18px;
color: #6191FF;
cursor: pointer;
}
.add{
position: relative;

@ -12,16 +12,11 @@ export default {
namespaced: true,
state: {
isIE: isIE(),
fullScreen:false,// 银行系统是否全屏
},
mutations: {
SET_IE: (state, val) => {
state.isIE = val
},
changeFullscreen:(state,val) => {
console.log(val,state,'dayin--val')
state.fullScreen = val
}
},
actions: {

@ -0,0 +1,57 @@
/* 银行系统 */
export default {
namespaced: true,
state: {/* 管理柜台状态 */
showPop: false,// 弹框
popText:'钱箱',
fullScreen:false,// 银行系统是否全屏
goods:[// 物品栏的物品
{
name:'身份证',
src:require('@/assets/img/goods/idcard.png'),
id:'a'
},
{
name:'身份证复印件',
src:require('@/assets/img/idCard-copy-sm.png'),
id:'b'
},
{
name:'开户申请书',
src:require('@/assets/img/goods/khsqs.png'),
id:'c'
},
{
name:'现金',
src:require('@/assets/img/goods/cash-sm.png'),
id:'d'
},
{
name:'存款凭条',
src:require('@/assets/img/goods/ckpt.png'),
id:'e'
},
],
},
mutations: {
changeFullscreen:(state,val) => {
state.fullScreen = val
},
changePop:(state,val)=>{
state.showPop = val.show
state.popText = val.text
},
changeGoods:(state,obj)=>{/* 赋值/push/删除 */
if(obj.goods&&obj.goods.length>0){
state.goods = obj.goods
}else if(obj.push&&obj.push.length>0){
state.goods.push(...obj.push)
}else if(typeof(obj.splice)===Number ){
state.goods.splice(obj.splice,1)
}
}
},
actions: {
}
}
Loading…
Cancel
Save