封装axios和接取项目选择与项目详情开始计时等,个人业务活期开户业务提交,个人客户信息建立提交功能

20240205
e 3 years ago
parent e032f0a6c0
commit dc6f9b1563
  1. 15
      package-lock.json
  2. 2
      package.json
  3. 87
      src/api/api.js
  4. 14
      src/api/http.js
  5. 331
      src/components/case/index.vue
  6. 2
      src/main.js
  7. 12
      src/pages/counter/list/index.vue
  8. 4
      src/pages/index/list/index.vue
  9. 79
      src/pages/manage/list/client/consumerClient.vue
  10. 174
      src/pages/manage/list/personal/currentAccount/openAccount.vue
  11. 2
      src/pages/manage/navbar/index.vue
  12. 22
      vue.config.js

15
package-lock.json generated

@ -2366,8 +2366,8 @@
}, },
"axios": { "axios": {
"version": "0.18.1", "version": "0.18.1",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.18.1.tgz", "resolved": "https://registry.npmmirror.com/axios/download/axios-0.18.1.tgz?cache=0&sync_timestamp=1634053173003&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Faxios%2Fdownload%2Faxios-0.18.1.tgz",
"integrity": "sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g==", "integrity": "sha1-/z8N4ue10YDnV62YAA8Qgbh7zqM=",
"requires": { "requires": {
"follow-redirects": "1.5.10", "follow-redirects": "1.5.10",
"is-buffer": "^2.0.2" "is-buffer": "^2.0.2"
@ -7621,9 +7621,9 @@
} }
}, },
"is-buffer": { "is-buffer": {
"version": "2.0.4", "version": "2.0.5",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-2.0.5.tgz?cache=0&sync_timestamp=1604429452232&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-buffer%2Fdownload%2Fis-buffer-2.0.5.tgz",
"integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==" "integrity": "sha1-68JS5ADSL/jXf6CYiIIaJKZYwZE="
}, },
"is-callable": { "is-callable": {
"version": "1.1.4", "version": "1.1.4",
@ -13754,11 +13754,6 @@
"integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==", "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==",
"dev": true "dev": true
}, },
"vue-i18n": {
"version": "8.15.1",
"resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.15.1.tgz",
"integrity": "sha512-GBbz8qYCu0U2LNu4IcuFLZiuyninG4k26knvhL7GZG5Ncp4RR2VKDEH6g8gQ6I+UUBCvH2MBQVPSdxWe4DBkPw=="
},
"vue-loader": { "vue-loader": {
"version": "15.7.2", "version": "15.7.2",
"resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.7.2.tgz", "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.7.2.tgz",

@ -10,7 +10,7 @@
"dependencies": { "dependencies": {
"@tailwindcss/postcss7-compat": "^2.2.7", "@tailwindcss/postcss7-compat": "^2.2.7",
"autoprefixer": "^9.8.6", "autoprefixer": "^9.8.6",
"axios": "^0.18.0", "axios": "^0.18.1",
"babel-polyfill": "^6.26.0", "babel-polyfill": "^6.26.0",
"echarts": "^4.8.0", "echarts": "^4.8.0",
"element-theme": "^2.0.1", "element-theme": "^2.0.1",

@ -0,0 +1,87 @@
import axios from 'axios';
import router from '../router';
// 创建axios实例
const service = axios.create({
baseURL: 'http://192.168.31.125:9000',
timeout: 30000 // 请求超时时间
})
// 添加request拦截器
service.interceptors.request.use(config => {
return config
}, error => {
Promise.reject(error)
})
// 添加respone拦截器
service.interceptors.response.use(
response => {
let res={};
res.status=response.status
res.data=response.data;
return res;
},
error => {
if(error.response && error.response.status == 404){
router.push('/blank.vue')
}
return Promise.reject(error.response)
}
)
export function get(url, params = {}) {
// params.t = new Date().getTime(); //get方法加一个时间参数,解决ie下可能缓存问题.
return service({
url: url,
method: 'get',
headers: {
token:'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1c2VyIiwiaWF0IjoxNjM1MjEyMTYyLCJleHAiOjE2MzUyNTUzNjIsImFjY291bnRJZCI6IjIifQ.KjuoWp27gQwILUl0KsfxiyOwO45lADTS6ODO-x2KdJI'
},
params
})
}
//封装post请求
export function post(url, data = {}) {
//默认配置
let sendObject={
url: url,
method: 'post',
headers: {
'Content-Type':'application/json;charset=UTF-8',
token:'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1c2VyIiwiaWF0IjoxNjM1MjEyMTYyLCJleHAiOjE2MzUyNTUzNjIsImFjY291bnRJZCI6IjIifQ.KjuoWp27gQwILUl0KsfxiyOwO45lADTS6ODO-x2KdJI'
},
data:data
};
sendObject.data=JSON.stringify(data);
return service(sendObject)
}
//封装put方法 (resfulAPI常用)
export function put(url,data = {}){
return service({
url: url,
method: 'put',
headers: {
'Content-Type':'application/json;charset=UTF-8',
token:'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1c2VyIiwiaWF0IjoxNjM1MjEyMTYyLCJleHAiOjE2MzUyNTUzNjIsImFjY291bnRJZCI6IjIifQ.KjuoWp27gQwILUl0KsfxiyOwO45lADTS6ODO-x2KdJI'
},
data:JSON.stringify(data)
})
}
//删除方法(resfulAPI常用)
export function deletes(url){
return service({
url: url,
method: 'delete',
headers: {
token:'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1c2VyIiwiaWF0IjoxNjM1MjEyMTYyLCJleHAiOjE2MzUyNTUzNjIsImFjY291bnRJZCI6IjIifQ.KjuoWp27gQwILUl0KsfxiyOwO45lADTS6ODO-x2KdJI'
}
})
}
//不要忘记export
export {
service
}

@ -0,0 +1,14 @@
// 引入封装好的axios
// ps:如果没有封装,正常引入axios即可
import {get, post,deletes,put} from './api.js'
// import axios from "./";
// /api为配置跨域的路径变量
export const getProjectBySystemId= (params) => {
return get( '/occupationlab/projectManage/getProjectBySystemId',params)
}
export const getProjectDetail= (params) => {
return get( '/occupationlab/projectManage/getProjectDetail',params)
}
export const submit= (params) => {
return post( '/bank/bank/submit',params)
}

@ -7,7 +7,7 @@
<p>实训项目</p> <p>实训项目</p>
<el-select v-model="projectId" placeholder="请选择" class="select" :disabled="projectPermissions != 0" @change="selectProject"> <el-select v-model="projectId" placeholder="请选择" class="select" :disabled="projectPermissions != 0" @change="selectProject">
<el-option <el-option
v-for="item in value" v-for="item in topicList"
:key="item.projectId" :key="item.projectId"
:label="item.projectName" :label="item.projectName"
:value="item.projectId" :value="item.projectId"
@ -50,7 +50,8 @@
</div> </div>
<div class="font_css"> <div class="font_css">
<div class="experimentalGoal"> <div class="experimentalGoal">
<div class="break-all" v-html="experimentalGoal"></div> <div class="break-all" v-html="projectManage.experimentTarget">
</div>
</div> </div>
</div> </div>
</div> </div>
@ -63,9 +64,10 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-card shadow="hover"> <el-card shadow="hover">
<el-table :data="tableData" :stripe="true" height="405"> <el-table :data="requires" stripe height="405">
<el-table-column type="index"></el-table-column> <el-table-column type="index"></el-table-column>
<el-table-column prop="judgmentPointsName" label="判分标准" align="center"></el-table-column> <el-table-column prop="name" label="判分标准" align="center" width="180">
</el-table-column>
<el-table-column prop="right" label="完成结果" align="center"> <el-table-column prop="right" label="完成结果" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<i <i
@ -91,21 +93,19 @@
<el-main> <el-main>
<el-tabs v-model="activeName" type="card"> <el-tabs v-model="activeName" type="card">
<el-tab-pane label="案例" name="first"> <el-tab-pane label="案例" name="first">
<div class="break-all" v-html="caseDescription"></div> <div class="break-all" v-html="projectManage.experimentDescription"></div>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="实验要求" name="second"> <el-tab-pane label="实验要求" name="second">
<el-collapse v-model="activeNames"> <el-collapse v-model="activeNames" accordion>
<el-collapse-item v-for="(loop, index) in points" :key="index"> <div v-for="(item,index) in requires">
<template slot="title"> <el-collapse-item :title="item.name" :name="item.id">
<i class="el-icon-s-ticket"></i> <div class="break-all" v-html="item.experimentalRequirements"></div>
<span style="font-size:16px">{{loop.judgmentPointsName}}</span>
</template>
<div class="break-all" v-html="loop.experimentalRequirements"></div>
</el-collapse-item> </el-collapse-item>
</div>
</el-collapse> </el-collapse>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="实验提示" name="fifth" v-if="isstartexperimentSuggests"> <el-tab-pane label="实验提示" name="fifth" v-if="isstartexperimentSuggests">
<div class="break-all" v-html="experimentSuggests"></div> <div class="break-all" v-html="projectManage.experimentHint"></div>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
</el-main> </el-main>
@ -125,6 +125,10 @@
<script> <script>
import util from '@/libs/util' import util from '@/libs/util'
import Setting from '@/setting' import Setting from '@/setting'
//
import {getProjectBySystemId} from "@/api/http.js";
import {getProjectDetail} from "@/api/http.js";
import {submit} from "@/api/http.js";
export default { export default {
data() { data() {
return { return {
@ -143,10 +147,10 @@ export default {
millisecond: 0, millisecond: 0,
countVal: this.defaultVal, // countVal: this.defaultVal, //
pauseTime: 0, pauseTime: 0,
day: 0, day: '00',
seconds: 0, seconds: '00',
minutes: 0, minutes: '00',
hour: 0, hour: '00',
createTime: "", // createTime: "", //
actEndTime: "", // actEndTime: "", //
projectId: "", // projectId: "", //
@ -164,7 +168,7 @@ export default {
schoolId: '', schoolId: '',
studentId: "", studentId: "",
courseId: "", courseId: "",
projectId: "", // projectId: "",
assessmentId: "", assessmentId: "",
projectPermissions: 0, //(0 1 2) projectPermissions: 0, //(0 1 2)
isSubmit: false, isSubmit: false,
@ -173,8 +177,11 @@ export default {
stopTime: '', stopTime: '',
isSelected: false, isSelected: false,
userId: '', userId: '',
isstartexperimentSuggests: 1 isstartexperimentSuggests: 1,
}; topicList:[],
projectManage:{},
requires:[]
}
}, },
watch: { watch: {
countVal: { countVal: {
@ -235,108 +242,186 @@ export default {
} }
this.assessmentId && this.projectId && this.checkVer() this.assessmentId && this.projectId && this.checkVer()
this.codeId && this.codeIds.push(this.codeId) this.codeId && this.codeIds.push(this.codeId)
this.getData()
}, },
methods: { methods: {
checkVer() { //
let data = { getData(){
userId: this.userId, let params = {
id: this.assessmentId systemId:'11',
} }
this.$get(this.api.qualifications,data).then(res => { getProjectBySystemId(params).then((data)=>{
if(res.message == 'false'){ if(data.status == 200){
this.isSubmit = true; this.topicList = data.data.projects
// newmain.$emit("isSubmit", this.isSubmit);
} }
}); }).catch((error)=>{
})
}, },
// //
reload() { selectProject(){
this.$post(this.api.DeleteCodes, this.codeIds).then(res => { let params = {
this.getClearTime() projectId:this.projectId,
this.grade = '00' }
this.codeIds = [] getProjectDetail(params).then((data)=>{
this.isSubmit = false if(data.status == 200){
this.startCountFn() this.projectManage = data.data.projectManage;
}); this.requires = data.data.projectJudgmentVos;
}
}).catch((error)=>{
})
//
let startTime = new Date().getTime();
sessionStorage.setItem('startTime', startTime)
this.day = '00';
this.hour = '00';
this.minutes = '00';
this.seconds = '00';
this.getClearTime();
this.startCountFn();
}, },
//
Submit() { Submit() {
if(!this.codeIds.length) return this.$message.error('请先完成实验') // if(!this.codeIds.length) return this.$message.error('')
this.$confirm("此操作将视为结束考试, 是否继续?", "提示", { this.$confirm("此操作将视为结束考试, 是否继续?", "提示", {
confirmButtonText: "确定", confirmButtonText: "确定",
cancelButtonText: "取消", cancelButtonText: "取消",
type: "warning", type: "warning",
center: true center: true
}) }).then(() => {
.then(() => { this.actEndTime = new Date().getTime();
this.actEndTime = new Date().getTime(); console.log(this.actEndTime)
this.getClearTime(); let ruleReqs = sessionStorage.getItem('ruleReqs')
// let startTime = sessionStorage.getItem('startTime')
this.$post(this.api.Submit, { let ruleReqsList = JSON.parse(ruleReqs);
// projectPermissions: 0, let lcld = []
createTime: this.startTime, for (var i=0;i<this.requires.length;i++){
endTime: this.stopTime, lcld.push(this.requires[i].judgmentId)
projectId: this.projectId, }
projectPermissions: this.projectPermissions, let params = {
// assessmentId: 1, "accountId": 0,
assessmentId: this.assessmentId ? this.assessmentId : '', "assessmentId": 0,
codeIds: this.codeIds, "classId": 0,
judgmentPointsIds: this.judgmentPointsIds, "endTime": this.actEndTime,
// studentId: 54, "lcId": lcld,
studentId: this.studentId, "projectId": 0,
record: { "ruleReqs": ruleReqsList,
courseId: 1, "startTime": +startTime,
// courseId: this.courseId, "submitTime": this.actEndTime,
projectId: this.projectId, "systemId": 11,
createTime: this.startTime, "timeSum": 0
endTime: this.stopTime, }
startTime: this.entryTime submit(params).then((data)=>{
} if(data.status == 200){
}) this.topicList = data.data.projects
.then(res => { }
this.isSubmit = true }).catch((error)=>{
// newmain.$emit("isSubmit", this.isSubmit);
this.tableData = res.message
//
var s = 0;
this.tableData.forEach(element => {
this.test = element.score;
s += this.test;
this.grade = s;
});
})
.catch(err => {});
}) })
.catch(() => { this.getClearTime();
this.$message({
type: "info", //
message: "已取消提交" // this.$post(this.api.Submit, {
}); // // projectPermissions: 0,
// createTime: this.startTime,
// endTime: this.stopTime,
// projectId: this.projectId,
// projectPermissions: this.projectPermissions,
// // assessmentId: 1,
// assessmentId: this.assessmentId ? this.assessmentId : '',
// codeIds: this.codeIds,
// judgmentPointsIds: this.judgmentPointsIds,
// // studentId: 54,
// studentId: this.studentId,
// record: {
// courseId: 1,
// // courseId: this.courseId,
// projectId: this.projectId,
// createTime: this.startTime,
// endTime: this.stopTime,
// startTime: this.entryTime
// }
// }).then(res => {
// this.isSubmit = true
// // newmain.$emit("isSubmit", this.isSubmit);
// this.tableData = res.message
// //
// var s = 0;
// this.tableData.forEach(element => {
// this.test = element.score;
// s += this.test;
// this.grade = s;
// });
// })
// .catch(err => {});
}).catch(() => {
this.$message({
type: "info",
message: "已取消提交"
}); });
});
}, },
//
// startCountFn() {
timeFormat(param) { if (!this.isStart) {
return param < 10 ? "0" + param : param; this.countVal = this.countVal ? this.countVal : 0;
let timer = setInterval(() => {
this.counterFn(this.countVal++);
}, 1000);
this.globalTimer = timer;
this.isStart = true;
}
}, },
toggleCase() { counterFn(counterTime) {
this.caseVisible = !this.caseVisible let leave1 = counterTime % (24 * 3600 * 1); //
let leave2 = leave1 % (3600 * 1); //
let leave3 = leave2 % (60 * 1); //
let day = Math.floor(counterTime / (24 * 3600 * 1)); //
let hour = Math.floor(leave1 / (3600 * 1)); //
let minutes = Math.floor(leave2 / (60 * 1)); //
let seconds = Math.round(leave3 / 1); //
day = day >= 10 ? day : "0" + day;
hour = hour >= 10 ? hour : "0" + hour;
minutes = minutes >= 10 ? minutes : "0" + minutes;
seconds = seconds >= 10 ? seconds : "0" + seconds;
this.day = day;
this.hour = hour;
this.minutes = minutes;
this.seconds = seconds;
},
//
reload() {
this.getClearTime()
}, },
// //
getClearTime() { getClearTime() {
// clearInterval(this.globalTimer);
clearInterval(this.countVal); clearInterval(this.countVal);
this.globalTimer = ""; this.globalTimer = "";
// if(this.projectPermissions != 0){ this.countVal = "";
this.countVal = ""; this.day = "00";
this.day = "00"; this.seconds = "00";
this.seconds = "00"; this.minutes = "00";
this.minutes = "00"; this.hour = "00";
this.hour = "00"; },
// }else{ checkVer() {
// this.text = '' let data = {
// } userId: this.userId,
id: this.assessmentId
}
this.$get(this.api.qualifications,data).then(res => {
if(res.message == 'false'){
this.isSubmit = true;
// newmain.$emit("isSubmit", this.isSubmit);
}
});
}, },
//
timeFormat(param) {
return param < 10 ? "0" + param : param;
},
toggleCase() {
this.caseVisible = !this.caseVisible
},
handleData(project,type){ handleData(project,type){
if(!this.isSelected){ if(!this.isSelected){
this.value = project; this.value = project;
@ -428,43 +513,8 @@ export default {
// this.handleData(res.message,2) // this.handleData(res.message,2)
// }).catch(res => {}); // }).catch(res => {});
}, },
selectProject(){ collapse(){
this.isSelected = true
this.assessmentId = ''
this.judgmentPointsIds = []
this.codeIds = []
this.getQueryProject(this.projectId)
this.isSubmit = false
this.countVal = 0
// newmain.$emit("isSubmit", this.isSubmit)
},
counterFn(counterTime) {
let leave1 = counterTime % (24 * 3600 * 1); //
let leave2 = leave1 % (3600 * 1); //
let leave3 = leave2 % (60 * 1); //
let day = Math.floor(counterTime / (24 * 3600 * 1)); //
let hour = Math.floor(leave1 / (3600 * 1)); //
let minutes = Math.floor(leave2 / (60 * 1)); //
let seconds = Math.round(leave3 / 1); //
day = day >= 10 ? day : "0" + day;
hour = hour >= 10 ? hour : "0" + hour;
minutes = minutes >= 10 ? minutes : "0" + minutes;
seconds = seconds >= 10 ? seconds : "0" + seconds;
this.day = day;
this.hour = hour;
this.minutes = minutes;
this.seconds = seconds;
},
startCountFn() {
if (!this.isStart) {
this.countVal = this.countVal ? this.countVal : 0;
let timer = setInterval(() => {
this.counterFn(this.countVal++);
}, 1000);
this.globalTimer = timer;
this.isStart = true;
}
}, },
passToParent(data) { passToParent(data) {
this.$emit("getDataFromChild", data); this.$emit("getDataFromChild", data);
@ -494,7 +544,8 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
/deep/.el-container { /deep/.el-container {
height: 80%; height: 80%;
&.is-vertical{
&.is-vertical {
position: fixed; position: fixed;
top: 200px; top: 200px;
bottom: 20px; bottom: 20px;
@ -502,10 +553,13 @@ export default {
width: 85%; width: 85%;
height: 70%; height: 70%;
background-color: #f5f5f5; background-color: #f5f5f5;
z-index: 999;
} }
.el-header{
.el-header {
color: #333; color: #333;
padding: 0 12px 0 20px; padding: 0 12px 0 20px;
.el-button { .el-button {
background-color: $main-color; background-color: $main-color;
color: #fff; color: #fff;
@ -513,7 +567,8 @@ export default {
margin: 5px 0px 5px 5px; margin: 5px 0px 5px 5px;
font-size: 16px; font-size: 16px;
} }
.submit-btn{
.submit-btn {
padding-left: 30px; padding-left: 30px;
padding-right: 30px; padding-right: 30px;
background: $main-color url(../../assets/img/case/btn.png) 0 0/100% 100% no-repeat; background: $main-color url(../../assets/img/case/btn.png) 0 0/100% 100% no-repeat;

@ -16,6 +16,8 @@ import "tailwindcss/tailwind.css"
// 插件 // 插件
import plugins from '@/plugins'; import plugins from '@/plugins';
import filters from '@/plugins/filters' import filters from '@/plugins/filters'
import axios from 'axios'
Vue.prototype.$axios = axios
Vue.directive('focus', {/* 聚焦事件 */ Vue.directive('focus', {/* 聚焦事件 */
inserted: function (el, binding) { inserted: function (el, binding) {

@ -115,13 +115,13 @@
<p v-else-if="popText=='重要空白凭证箱'||popText=='普通凭证箱'" class="tips">- 请从以下物品中选取所需材料 -</p> <p v-else-if="popText=='重要空白凭证箱'||popText=='普通凭证箱'" class="tips">- 请从以下物品中选取所需材料 -</p>
<p v-else 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"> <div v-if="popText==='密码器'" style="width:800px;padding-right:150px;padding-top:80px">
<el-form :model="passwordForm" :rules="passwordRules" ref="form" label-width="180px"> <el-form :model="passwordForm" :rules="passwordRules" ref="form" label-width="180px">
<el-form-item label="密码" prop="password"> <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-input v-focus show-password v-model="passwordForm.password" maxlength="6" onkeyup="{this.value=this.value.replace(/\D/g,'')}" autocomplete="off"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="确认密码" prop="passwordAgain"> <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-input show-password :disabled="!passwordForm.password||passwordForm.password.length!=6" v-model="passwordForm.passwordAgain" maxlength="6" onkeyup="this.value=this.value.replace(/\D/g,'')" autocomplete="off"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
@ -877,7 +877,7 @@ export default {
width: 94px; width: 94px;
height: 200px; height: 200px;
cursor: pointer; cursor: pointer;
z-index: 9999; z-index: 998;
background: url(../../../assets/img/sth-bg.png) 0 0 / cover no-repeat; background: url(../../../assets/img/sth-bg.png) 0 0 / cover no-repeat;
span { span {
width: 30px; width: 30px;
@ -944,7 +944,7 @@ export default {
} }
&.active { &.active {
left: 0; left: 0;
z-index: 9999; z-index: 998;
} }
img { img {
cursor: pointer; cursor: pointer;
@ -973,7 +973,7 @@ export default {
margin-top: 4vh !important; margin-top: 4vh !important;
background: #fff; background: #fff;
position: fixed; position: fixed;
top: 0%; top: 7%;
left: 50%; left: 50%;
transform: translate(-50%, 0); transform: translate(-50%, 0);
padding: 0 15px 15px; padding: 0 15px 15px;

@ -16,7 +16,9 @@
<div class="coming" :class="{active: comingVisible}"> <div class="coming" :class="{active: comingVisible}">
<img src="@/assets/svg/coming.svg" alt=""> <div style="width: 20%;margin: auto">
<img style="width: 100%" src="@/assets/svg/coming.svg" alt="">
</div>
<p class="text">敬请期待</p> <p class="text">敬请期待</p>
</div> </div>
</div> </div>

@ -1,7 +1,7 @@
// //
<template> <template>
<div class="wrap"> <div class="wrap">
<div class="flex mt-4 ml-12 text-xl"> <div class="flex mt-8 ml-12 text-xl">
<p>客户信息</p> <p>客户信息</p>
<i class="el-icon-arrow-right text-xl"></i> <i class="el-icon-arrow-right text-xl"></i>
<p>个人客户信息建立</p> <p>个人客户信息建立</p>
@ -11,7 +11,7 @@
<el-form ref="form" :model="form" label-width="140px"> <el-form ref="form" :model="form" label-width="140px">
<el-col :span="10" :offset="1"> <el-col :span="10" :offset="1">
<el-form-item label="证件类型"> <el-form-item label="证件类型">
<el-select v-model="form.x" placeholder="请选择"> <el-select v-model="form.idType" disabled placeholder="请选择">
<el-option <el-option
v-for="(item,index) in papers" v-for="(item,index) in papers"
:key="index" :key="index"
@ -21,17 +21,17 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="客户姓名" required> <el-form-item label="客户姓名" required>
<el-input v-model="form.name"></el-input> <el-input v-model="form.userName"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="出生日期" required> <el-form-item label="出生日期" required>
<el-date-picker <el-date-picker
v-model="form.value1" v-model="form.birthday"
type="date" type="date"
placeholder="选择日期"> placeholder="选择日期">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="通讯地址"> <el-form-item label="通讯地址">
<el-input v-model="form.name"></el-input> <el-input v-model="form.mailbox"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="10" :offset="1"> <el-col :span="10" :offset="1">
@ -41,7 +41,7 @@
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="性别" required> <el-form-item label="性别" required>
<el-select v-model="form.x" placeholder="请选择"> <el-select v-model="form.sex" placeholder="请选择">
<el-option <el-option
v-for="(item,key) in gender" v-for="(item,key) in gender"
:key="key" :key="key"
@ -51,7 +51,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="民族"> <el-form-item label="民族">
<el-select v-model="form.x" placeholder="请选择"> <el-select v-model="form.nationality" placeholder="请选择">
<el-option <el-option
v-for="(item,index) in nations" v-for="(item,index) in nations"
:key="index" :key="index"
@ -61,14 +61,14 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="联系电话" required> <el-form-item label="联系电话" required>
<el-input v-model="form.name"></el-input> <el-input v-model="form.phone"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-form> </el-form>
</el-row> </el-row>
</div> </div>
<el-button @click="visible=true" type="primary" class="submitBtn">提交</el-button> <el-button @click="submitForm" type="primary" class="submitBtn">提交</el-button>
<el-dialog <el-dialog
style="margin-top:10vh" style="margin-top:10vh"
@ -113,7 +113,14 @@ export default {
data() { data() {
return { return {
form:{ form:{
idType:1,//
idNumber:'',//
userName:'',//
sex:'',//
birthday:'',//
nationality:'',//
mailbox:'',//
phone:'',//
}, },
disForm:{name:'002009' ,pass:'123456'}, disForm:{name:'002009' ,pass:'123456'},
visible:false,// visible:false,//
@ -140,6 +147,58 @@ export default {
popUp(){// popUp(){//
this.$store.commit('system/changePop',{show:true,text:'身份证扫描仪'}) this.$store.commit('system/changePop',{show:true,text:'身份证扫描仪'})
}, },
//
submitForm(){
if(this.form.idNumber && this.form.idNumber.userName && this.form.idNumber.sex && this.form.idNumber.birthday && this.form.idNumber.phone) {
this.visible = true;
let formList = [];
if(this.form.nationality){
formList.push({
"emptyOne": "",
"emptyTwo": "",
"operationIds": "5,25,33,45",
"type": ""
})
}
if(this.form.mailbox){
formList.push({
"emptyOne": "",
"emptyTwo": "",
"operationIds": "5,25,33,46",
"type": ""
})
}
formList.push({
"emptyOne": "",
"emptyTwo": "",
"operationIds": "5,25,33,40",
"type": ""
}, {
"emptyOne": "",
"emptyTwo": "",
"operationIds": "5,25,33,41,13",
"type": ""
}, {
"emptyOne": "",
"emptyTwo": "",
"operationIds": "5,25,33,42",
"type": ""
}, {
"emptyOne": "",
"emptyTwo": "",
"operationIds": "5,25,33,44",
"type": ""
}, {
"emptyOne": "",
"emptyTwo": "",
"operationIds": "5,25,33,47",
"type": ""
});
sessionStorage.setItem('ruleReqs', JSON.stringify(formList))
}else{
this.$message.error('有必填项为填哦~');
}
},
popSure(){ popSure(){
this.success&&(this.visible = false) this.success&&(this.visible = false)
this.authorization&&(this.success=true) this.authorization&&(this.success=true)

@ -5,7 +5,7 @@
<el-form ref="form" :model="form" label-width="120px"> <el-form ref="form" :model="form" label-width="120px">
<el-col :span="10" :offset="2"> <el-col :span="10" :offset="2">
<el-form-item label="客户号"> <el-form-item label="客户号">
<el-input v-model="form.num"></el-input> <el-input v-model="form.userNumber"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="币种" required> <el-form-item label="币种" required>
<el-select v-model="form.currency" placeholder="请选择"> <el-select v-model="form.currency" placeholder="请选择">
@ -15,10 +15,10 @@
</el-col> </el-col>
<el-col :span="10" :offset="1"> <el-col :span="10" :offset="1">
<el-form-item label="客户姓名" required> <el-form-item label="客户姓名" required>
<el-input v-model="form.name"></el-input> <el-input v-model="form.userName"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="钞汇标识" required> <el-form-item label="钞汇标识" required>
<el-select v-model="form.identification" placeholder="请选择"> <el-select v-model="form.goldLogo" placeholder="请选择">
<el-option label="钞户" value="钞户"> </el-option> <el-option label="钞户" value="钞户"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -30,25 +30,25 @@
<el-form ref="form" :model="form" label-width="120px"> <el-form ref="form" :model="form" label-width="120px">
<el-col :span="10" :offset="2"> <el-col :span="10" :offset="2">
<el-form-item label="账户性质"> <el-form-item label="账户性质">
<el-select v-model="form.nature" placeholder="请选择"> <el-select v-model="form.accountQuality" placeholder="请选择">
<el-option label="个人结算户" value="个人结算户"> </el-option> <el-option label="个人结算户" value="个人结算户"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="账户类型" required> <el-form-item label="账户类型" required>
<el-select v-model="form.x" placeholder="请选择"> <el-select v-model="form.accountType" placeholder="请选择">
<el-option label="一类户" value="一类户"> </el-option> <el-option label="一类户" value="一类户"> </el-option>
<el-option label="二类户" value="二类户"> </el-option> <el-option label="二类户" value="二类户"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="支取方式" required> <el-form-item label="支取方式" required>
<el-select v-model="form.x" placeholder="请选择"> <el-select v-model="form.drawWay" placeholder="请选择">
<el-option label="密码" value="密码"> </el-option> <el-option label="密码" value="密码"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="10" :offset="1"> <el-col :span="10" :offset="1">
<el-form-item label="凭证类型" required> <el-form-item label="凭证类型" required>
<el-select v-model="form.x" placeholder="请选择"> <el-select v-model="form.voucherType" placeholder="请选择">
<el-option label="IC卡" value="IC卡"> </el-option> <el-option label="IC卡" value="IC卡"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -58,7 +58,7 @@
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="支取密码" required> <el-form-item label="支取密码" required>
<div class="idCard" @click="popUp('密码器')"> <div class="idCard" @click="popUps('密码器')">
<p>请输入密码</p> <p>请输入密码</p>
</div> </div>
</el-form-item> </el-form-item>
@ -68,56 +68,93 @@
</el-row> </el-row>
</div> </div>
<!-- 二级证件,最多三张逻辑上一张二级为填完信息不可添加第三张 v-for="(item,index) in second" :key="index" --> <!-- 二级证件,最多三张逻辑上一张二级为填完信息不可添加第三张 v-for="(item,index) in second" :key="index" -->
<div class="add" v-for="(item, index) in second" :key="index"> <div class="add" v-if="formto">
<el-row :gutter="20" style="margin: 0; margin-top: 10px"> <el-row :gutter="20" style="margin: 0;z-index:9">
<el-form ref="form" :model="form" label-width="120px"> <el-form ref="form" :model="form" label-width="120px">
<el-col :span="10" :offset="2"> <el-col :span="10" :offset="2">
<el-form-item label="账户性质"> <el-form-item label="账户性质">
<el-input v-model="form.name"></el-input> <el-select v-model="form.accountQualitys" placeholder="请选择">
</el-form-item> <el-option label="个人结算户" value="个人结算户"> </el-option>
<el-form-item label="账户类型" required> </el-select>
<el-select v-model="form.x" placeholder="请选择"> </el-form-item>
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option> <el-form-item label="账户类型" required>
</el-select> <el-select v-model="form.accountTypes" placeholder="请选择">
</el-form-item> <el-option label="一类户" value="一类户"> </el-option>
<el-form-item label="支取方式" required> <el-option label="二类户" value="二类户"> </el-option>
<el-select v-model="form.x" placeholder="请选择"> </el-select>
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-form-item>
</el-select> <el-form-item label="支取方式" required>
</el-form-item> <el-select v-model="form.drawWays" placeholder="请选择">
</el-col> <el-option label="密码" value="密码"> </el-option>
<el-col :span="10" :offset="1"> </el-select>
<el-form-item label="凭证类型" required> </el-form-item>
<el-select v-model="form.x" placeholder="请选择"> </el-col>
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option> <el-col :span="10" :offset="1">
</el-select> <el-form-item label="凭证类型" required>
</el-form-item> <el-select v-model="form.voucherTypes" placeholder="请选择">
<el-form-item label="凭证号码" required> <el-option label="IC卡" value="IC卡"> </el-option>
<el-input v-model="form.name"></el-input> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="凭证号码" required> <el-form-item label="凭证号码" required>
<el-input v-model="form.name"></el-input> <div class="idCard" @click="popUp('刷卡器')">
</el-form-item> <p>请刷卡</p>
</el-col> </div>
</el-form> </el-form-item>
</el-row> <el-form-item label="支取密码" required>
<el-button @click="deleteSecond(index)" class="addBtn" circle icon="el-icon-close"></el-button> <div class="idCard" @click="popUps('密码器')">
<p>请输入密码</p>
</div>
</el-form-item>
</el-col>
</el-form>
<el-button @click="deleteSecond(index)" class="addBtn" circle icon="el-icon-close"></el-button>
</el-row>
</div>
<el-button @click="formSubmit" type="primary" class="submitBtn">提交</el-button>
<el-dialog
style="margin-top:10vh"
:visible.sync="visible"
:modal="false"
width="40%"
:close-on-click-modal="false"
:show-close="false"
custom-class="data-dia"
>
<div slot="title" class="dia-header">
<div class="data-title">提交</div>
</div>
<div class="popBody">
<h2>提交后将不可更改您确认提交吗</h2>
</div> </div>
<el-button @click="visible = true" type="primary" class="submitBtn">提交</el-button> <div class="popBtns">
<el-button class="close btn" @click="visible = false"> </el-button>
<el-button class="sure btn" type="primary" @click="popSure"> </el-button>
</div>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
export default { export default {
data(){ data(){
return{ return{
form:{ form:{
userNumber:'',
}, },
second:[// second:[],//
options:[],
], visible:false,
options:[] currency: '',
userName: '',
goldLogo: '',
accountQuality: '',
accountType: '',
drawWay: '',
voucherType: '',
accountQualitys: '',
accountTypes: '',
drawWays: '',
voucherTypes: '',
formto:false,
} }
}, },
methods:{ methods:{
@ -132,25 +169,44 @@ export default {
openAccount(){ openAccount(){
if(this.second.length){/* 检测已有二级卡是否填写完整 */ if(this.second.length){/* 检测已有二级卡是否填写完整 */
return this.$message('请把已有的二级卡填写完整再执行新增操作!') return this.$message('请把已有的二级卡填写完整再执行新增操作!')
for (let i= 0; i< this.second.length; i++) { for (let i= 0; i< this.second.length; i++) {
if(!this.detectionObjKeys(e,[])){/* 写入定义的二级卡字段 */ if(!this.detectionObjKeys(e,[])){/* 写入定义的二级卡字段 */
return this.$message('请把已有的二级卡填写完整再执行新增操作!') return this.$message('请把已有的二级卡填写完整再执行新增操作!')
} }
} }
} }
let obj = {/* 二级卡定义空属性 */ this.formto = true
// let obj = {}/* */
} // this.second.push(obj)``
this.second.push(obj)``
}, },
//
formSubmit(){
this.visible = true
},
//
popSure(){
this.visible = false
let formList = [];
if(this.form.userNumber){
formList.push({
"emptyOne": "6",
"emptyTwo": this.form.userNumber,
"operationIds": "26,57,62,68",
"type": "3"
})
sessionStorage.setItem('ruleReqs', JSON.stringify(formList))
}else{
this.$message.error('有必填项为填哦~');
}
},
deleteSecond(index){ deleteSecond(index){
this.$confirm('此操作将删除该账户类型, 是否继续?', '提示', { this.$confirm('此操作将删除该账户类型, 是否继续?', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
this.second.splice(index,1) this.formto = false
// this.second.splice(index,1)
this.$message({ this.$message({
type: 'success', type: 'success',
message: '删除成功!' message: '删除成功!'
@ -161,7 +217,13 @@ export default {
message: '已取消删除' message: '已取消删除'
}); });
}); });
} },
popUp(){
this.$store.commit('system/changePop',{show:true,text:'凭证号码'})
},
popUps(){
this.$store.commit('system/changePop',{show:true,text:'密码器'})
},
} }
}; };
</script> </script>

@ -133,7 +133,7 @@ export default {
title: '重空现金', title: '重空现金',
children:[ children:[
{ {
index:"/counter/list/manage/dayEnd-tellerCash", index:"/counter/list/manage/importantCash-cashRecipients",
title:'柜员现金扎帐' title:'柜员现金扎帐'
}, },
{ {

@ -2,7 +2,27 @@ const Setting = require('./src/setting.env')
// 引入等比适配插件 // 引入等比适配插件
const px2rem = require('postcss-px2rem') const px2rem = require('postcss-px2rem')
module.exports = {
publicPath: './',
//配置跨域请求
devServer: {
open: true, //是否自动打开浏览器
https: false, //是否开启https
hotOnly: false,
proxy: { // 配置跨域
'/api': {
target: 'http://192.168.31.125:9000', //请求接口域名
ws: true,
secure: false,
changOrigin: true, //是否允许跨越
pathRewrite: {
'^/api': ''
}
}
},
before: app => { }
}
}
// 配置基本大小 // 配置基本大小
const postcss = px2rem({ const postcss = px2rem({
// 基准大小 baseSize,需要和rem.js中相同 // 基准大小 baseSize,需要和rem.js中相同

Loading…
Cancel
Save