Commit 1cbfb0c3 by fukai

init

parents
.PHONY: dist build
install:
@npm install
dev: install
@npm run dev
build:
@npm run build
# element-starter
> A starter kit for Element UI generated by vue-cli
*If you are familiar with [cooking](https://github.com/elemefe/cooking), [here](https://github.com/ElementUI/element-cooking-starter) is a starter generated with it*
## Environment
`Node >= 6`
## Start
- Clone or download this repository
- Enter your local directory, and install dependencies:
``` bash
yarn
```
## Develop
``` bash
# serve with hot reload at localhost:8010
npm run dev
```
## Build
``` bash
# build for production with minification
npm run build
```
{
"name": "psbc-gjjs",
"description": "gjjs project",
"author": "psbc",
"private": true,
"scripts": {
"start": "webpack-dev-server --inline --hot --env.dev",
"build": "rimraf dist && webpack -p --progress --hide-modules"
},
"dependencies": {
"axios": "^0.19.2",
"element-ui": "^2.13.2",
"es6-promise": "^4.2.8",
"vue": "^2.6.11",
"vue-router": "^3.2.0",
"vuex": "^3.4.0"
},
"engines": {
"node": ">=6"
},
"devDependencies": {
"autoprefixer": "^6.6.0",
"babel-core": "^6.24.1",
"babel-loader": "^6.4.0",
"babel-preset-vue-app": "^1.2.0",
"css-loader": "^0.27.0",
"file-loader": "^0.10.1",
"html-webpack-plugin": "^2.24.1",
"postcss-loader": "^1.3.3",
"rimraf": "^2.5.4",
"style-loader": "^0.13.2",
"url-loader": "^0.5.8",
"vue-loader": "^13.3.0",
"vue-template-compiler": "^2.6.11",
"webpack": "^2.4.1",
"webpack-dev-server": "^2.4.2"
}
}
module.exports = {
plugins: [
require('autoprefixer')()
]
}
<template>
<div id="app">
<router-view></router-view>
</div>
</template>
<script>
export default {
created:()=>{
console.log("应用程序已建立")
}
}
</script>
<style>
#app {
font-family: Helvetica, sans-serif;
display: flex;
flex-direction: column;
}
</style>
<template>
<div class="c-page-container">
<p class="title">{{title}}</p>
<div style="flex:1;padding:0.5rem">
<slot></slot>
</div>
</div>
</template>
<script>
export default {
props:['title']
}
</script>
<style scoped>
.title{
margin: 0;
padding: 0.5em;
padding-left:1em ;
font-size: 1rem;
border-bottom: 2px solid #337bde;
}
.c-page-container{
height: 100%;
display: flex;
flex-direction: column;
overflow-x: hidden;
}
</style>
\ No newline at end of file
import c_page from "./c-page.vue"
export default {
install(Vue){
Vue.component("c-page",c_page)
}
}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>国际结算系统</title>
<style>
html,body,#app{
padding: 0;
height: 100%;
width: 100%;
margin: 0;
}
</style>
</head>
<body>
<div id="app"></div>
</body>
</html>
\ No newline at end of file
import Vue from 'vue'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import 'es6-promise/auto'
import App from './App.vue'
import RootRouter from './routers'
import store from "./store"
import CustomComponent from "./components"
window.SUCCESS="00000"
Vue.use(ElementUI)
Vue.use(CustomComponent)
new Vue({
el: '#app',
store,
router:RootRouter,
render: h => h(App)
})
import Vue from 'vue'
import VueRouter from 'vue-router'
import Display from "../views/Display"
import Login from "../views/Login"
import Layout from "../views/Layout"
import BusRouter from '../views/Business/BusRouter'
Vue.use(VueRouter)
const rootRouter = new VueRouter({
routes: [
{path:"/display",component:Display,children:BusRouter},
{path:"/login",component:Login},
{path:"/business",component:Layout,children:BusRouter}
]
})
export default rootRouter
import axios from 'axios'
import { MessageBox } from 'element-ui'
export const BASE_HOST = "/reactremit/"
export const BASE_URI=BASE_HOST+"service/";
const instance = axios.create({
baseURL: BASE_URI,
timeout: 5000,
method: 'post',
});
export default class Api
{
static get(url,data)
{
}
static logout(){
console.log('asdasdasdasdasd')
window.location.href="#/login";
}
static _post(url,data,method="post")
{
let token = window.sessionStorage.token
let userId = window.sessionStorage.userId
let headers = {userId,token};
if(url!= `${BASE_URI}login` && token)
headers.token = token;
return new Promise( (resolve, reject) =>{
axios.post(url,data,{
headers,
method,
timeout: 5000,
})
.then(response=>{
const {data} = response;
if(data && data.retcod != SUCCESS)
{
console.log("错误码:"+data.retcod+" 错误信息:"+data.retmsg)
}
if(data && data.retcod == 'L0003'){
window.sessionStorage.removeItem("token")
window.sessionStorage.removeItem("userId")
MessageBox.alert({
title:'会话超时',
message:'即将退出,请重新登录',
showClose:false,
callback:()=>{
window.location.href= "/?#/"+"login"
}
})
return ;
}
resolve(data)
})
.catch(error=> {
if (error.response) {
// The request was made and the server responded with a status code
// that falls out of the range of 2xx
console.log(error.response.data);
console.log(error.response.status);
console.log(error.response.headers);
resolve({retcod:'500',retmsg:error.response.status});
} else if (error.request) {
// The request was made but no response was received
// `error.request` is an instance of XMLHttpRequest in the browser and an instance of
// http.ClientRequest in node.js
console.log(error.request);
resolve({retcod:'501'});
} else {
// Something happened in setting up the request that triggered an Error
console.log('Error', error.message);
resolve({retcod:'502',retmsg:error.message});
}
console.log(error.config);
});
});
}
static _get(url,data)
{
return this._post(url,data,"get");
}
static post(url,data)
{
return this._post(BASE_URI+url,data)
}
static get(url,data)
{
return this._get(BASE_HOST+url,data)
}
}
\ No newline at end of file
const I18N = {
state:{
lang:"cn"
},
mutations:{
setLang(state,lang){
state.lang = lang
}
}
}
export default I18N
\ No newline at end of file
const UserContext={
state:{
userName:"",
userId:"",
ptyCode:"",
menu:[],
state:"LOGOUT",
token:"",
},
mutations:{
setLoginInfo(state,info){
state.userName = info.userName
state.userId = info.userId
state.ptyCode = info.ptyCode
state.menu = info.menu
state.state = "LOGIN"
state.token = info.token
},
setLogout(state){
state.userName = ""
state.userId = ""
state.ptyCode = ""
state.menu = []
state.state = "LOGOUT"
state.token = ""
}
}
}
export default UserContext;
\ No newline at end of file
import I18NStore from "./I18NStore"
import UserContext from "./UserContext"
import Vuex from 'vuex'
import Vue from 'vue'
Vue.use(Vuex)
const store = new Vuex.Store({
modules: {
i18n: I18NStore,
userContext: UserContext
}
})
export default store;
\ No newline at end of file
import Vue from 'vue'
import ElementUI from 'element-ui'
\ No newline at end of file
import Cptopn from "./Cptopn"
import Ditame from "./Ditame"
import Ditopn from "./Ditopn"
import Office from "./Office"
import Sptsel from "./Sptsel"
import Trnrel from "./Trnrel"
import Tstopn from "./Tstopn"
const BusRouter = [
{path:'cptopn',component:Cptopn},
{path:'ditame',component:Ditame},
{path:'ditopn',component:Ditopn},
{path:'office',component:Office},
{path:'sptsel',component:Sptsel},
{path:'trnrel',component:Trnrel},
{path:'tstopn',component:Tstopn},
]
export default BusRouter
\ No newline at end of file
<template>
<div>
<!-- 报送 -->
</div>
</template>
<script>
export default {
}
</script>
<sty
\ No newline at end of file
<template>
<div>
<el-col :span="12">
<el-form-item label="业务编号">
<el-input v-model="model.cpdgrp.rec.ownref" maxlength="16" placeholder="请输入业务编号"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-button size="small" type="primary" @click="onGetref">
获取
</el-button>
</el-col>
<el-col :span="12">
<el-form-item label="业务归属机构">
<el-input v-model="model.cpdgrp.rec.ownbch" maxlength="8" placeholder="请输入业务归属机构"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-button size="small" type="primary" @click="onUsrcon">
登记
</el-button>
</el-col>
<el-col :span="12">
<el-button size="small" type="primary" @click="onSav">
提交
</el-button>
</el-col>
<el-col :span="12">
<el-form-item label="汇款方式">
<el-select v-model="model.cpdgrp.rec.paytyp" style="width:100%" placeholder="请选择汇款方式">
<el-option
v-for="item in codes.paytyp"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="客户经理">
<el-input v-model="model.cpdgrp.orc.pty.ownusr" maxlength="10" placeholder="请输入客户经理"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-button size="small" type="primary" @click="onChk">
检核
</el-button>
</el-col>
<el-col :span="12">
<el-form-item label="汇款类型">
<el-select v-model="model.cpdgrp.rec.cpdflg" style="width:100%" placeholder="请选择汇款类型">
<el-option
v-for="item in codes.custyp"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="汇款人性质">
<el-select v-model="model.cpdgrp.rec.custyp" style="width:100%" placeholder="请选择汇款人性质">
<el-option
v-for="item in codes.ptytyp"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="汇款币种金额">
<el-select v-model="model.cpdgrp.cbs.max.cur" style="width:100%" placeholder="请选择汇款币种金额">
<el-option
v-for="item in codes.curtxt"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="汇款币种金额">
<el-input v-model="model.cpdgrp.cbs.max.amt" placeholder="请输入汇款币种金额"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="起息日">
<el-date-picker type="date" v-model="model.cpdgrp.rec.valdat" style="width:100%" placeholder="请选择起息日"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="清算路径">
<el-select v-model="model.cpdgrp.rec.liqtyp" style="width:100%" placeholder="请选择清算路径">
<el-option
v-for="item in codes.liqtyp"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="报文类型">
<el-select v-model="model.cpdgrp.rec.swftyp" style="width:100%" placeholder="请选择报文类型">
<el-option
v-for="item in codes.swftyp"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="扣款币种">
<el-select v-model="model.cpdgrp.rec.curf33b" style="width:100%" placeholder="请选择扣款币种">
<el-option
v-for="item in codes.curtxt"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="扣款金额">
<el-input v-model="model.cpdgrp.rec.amtf33b" placeholder="请输入扣款金额"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="汇率">
<el-input v-model="model.cpdgrp.rec.f36" placeholder="请输入汇率"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="交易对手国别">
<el-input v-model="model.cpdgrp.rec.stacty" maxlength="3" placeholder="请输入交易对手国别"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="客户编号">
<el-input v-model="model.cpdgrp.orc.pts.extkey" maxlength="16" placeholder="请输入客户编号"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-button size="small" type="primary" icon="el-icon-search" @click="onOrcpSel">
查询
</el-button>
</el-col>
<el-col :span="12">
<el-button size="small" type="primary" @click="onCptpButton1">
按钮一
</el-button>
</el-col>
<el-col :span="12">
<el-form-item label="SWIFT地址">
<el-input type="textarea" v-model="model.cpdgrp.orc.pts.adrblk" maxlength="35" show-word-limit placeholder="请输入SWIFT地址" ></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="汇款人中文名">
<el-input v-model="model.cpdgrp.orc.pts.namcn" maxlength="100" placeholder="请输入汇款人中文名"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="汇款人账号">
<el-input v-model="model.cpdgrp.rec.orcacc" maxlength="32" placeholder="请输入汇款人账号"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="汇款人中文地址">
<el-input v-model="model.cpdgrp.orc.pts.adrcn" maxlength="100" placeholder="请输入汇款人中文地址"></el-input>
</el-form-item>
</el-col>
</div>
</template>
<script>
export default {
props:['model'],
methods:{
onGetref(){
this.$refs.modelForm.validate(async valid => {
if(!valid)
return;
let rtnmsg = await Api.post("cptopn/getref",{data:this.model})
if(rtnmsg.retcod == SUCCESS)
{
//TODO 处理数据逻辑
}
else
{
this.$notify.error({title: '错误',message: '服务请求失败!'});
}
})
},
}
}
</script>
<style scoped>
</style>
\ No newline at end of file
<template>
<div>
</div>
</template>
<script>
export default {
}
</script>
<sty
\ No newline at end of file
<template>
<div>
<!-- 境外汇款申请书 -->
</div>
</template>
<script>
export default {
}
</script>
<sty
\ No newline at end of file
<template>
<!-- 境内汇款申请书 -->
<div>
</div>
</template>
<script>
export default {
}
</script>
<sty
\ No newline at end of file
<template>
<div>
<!-- 结汇申报 -->
</div>
</template>
<script>
export default {
}
</script>
<style scoped>
</style>
\ No newline at end of file
<template>
<div>
<!-- 购汇申报 -->
</div>
</template>
<script>
export default {
}
</script>
<sty
\ No newline at end of file
<template>
<div>
<el-col :span="12">
<el-form-item label="面函码值">
<el-input v-model="model.trnmod.trndoc.doccod" maxlength="16" placeholder="请输入面函码值"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="Per Medium">
<el-input v-model="model.trnmod.trndoc.cortyp" maxlength="3" placeholder="请输入Per Medium"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-button size="small" type="primary" @click="onTrndocReldoc">
面函加载
</el-button>
</el-col>
<el-col :span="12">
<el-button size="small" type="primary" @click="onTrndocButshw">
展示
</el-button>
</el-col>
<el-col :span="12">
<el-form-item label="面函路径">
<el-input v-model="model.trnmod.trndoc.docpth" maxlength="100" placeholder="请输入面函路径"></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<div class="e-table-wrapper">
<el-table
:data="model.trnmod.trndoc.docmod.doclst"
style="width: 100%"
>
<el-table-column
prop="role"
label="角色"
sortable
width="100">
</el-table-column>
<el-table-column
prop="id"
label="码值"
sortable
width="100">
</el-table-column>
<el-table-column
prop="docnam"
label="凭证名称"
sortable
width="200">
</el-table-column>
<el-table-column
prop="cortyp"
label="凭证类型"
sortable
width="150">
</el-table-column>
<el-table-column
prop="mdtflg"
label="出具/发送"
sortable
width="100">
</el-table-column>
<el-table-column
prop="ptainr"
label=""
sortable
width="100">
</el-table-column>
</el-table>
</div>
</el-col>
</div>
</template>
<script>
export default {
props:['model']
}
</script>
<style scoped>
</style>
\ No newline at end of file
<template>
<div>
<!-- 费用 -->
<el-col :span="24">
<div class="e-table-wrapper">
<el-table
:data="model.setmod.setfeg.fegmod.feslst"
style="width: 100%"
>
<el-table-column
prop="rol"
label="角色"
sortable
width="100">
</el-table-column>
<el-table-column
prop="feecod"
label="费用代码"
sortable
width="100">
</el-table-column>
<el-table-column
prop="feetxt"
label="费用名称"
sortable
width="100">
</el-table-column>
<el-table-column
prop="cur"
label="收费币种"
sortable
width="100">
<template slot-scope="scope">
<span>{{ this.codes.curtxt.find(item=>item.value==scope.row.cur).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="basamt"
label="应收金额"
sortable
width="100">
</el-table-column>
<el-table-column
prop="amt"
label="实收金额"
sortable
width="100">
</el-table-column>
<el-table-column
prop="dsp"
label="现收/缓收"
sortable
width="100">
<template slot-scope="scope">
<span>{{ this.codes.dsp.find(item=>item.value==scope.row.dsp).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="payflg"
label="内扣/外收"
sortable
width="100">
<template slot-scope="scope">
<span>{{ this.codes.payflg.find(item=>item.value==scope.row.payflg).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="xrfcur"
label=""
sortable
width="100">
</el-table-column>
<el-table-column
prop="xrfamt"
label=""
sortable
width="100">
</el-table-column>
<el-table-column
prop="feeacc"
label=""
sortable
width="100">
</el-table-column>
<el-table-column
prop="fepinr"
label=""
sortable
width="100">
</el-table-column>
<el-table-column
prop="rolptyinr"
label=""
sortable
width="100">
</el-table-column>
</el-table>
</div>
</el-col>
<el-col :span="24">
<div class="e-table-wrapper">
<el-table
:data="model.setmod.setglg.glgmod.glslst"
style="width: 100%"
>
<el-table-column
prop="rol"
label="角色"
sortable
width="100">
</el-table-column>
<el-table-column
prop="debcdtflg"
label="借/贷"
sortable
width="100">
<template slot-scope="scope">
<span>{{ this.codes.debcdtflg.find(item=>item.value==scope.row.debcdtflg).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="cur"
label="结算币种"
sortable
width="100">
<template slot-scope="scope">
<span>{{ this.codes.curtxt.find(item=>item.value==scope.row.cur).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="amt"
label="结算金额"
sortable
width="100">
</el-table-column>
<el-table-column
prop="dsp"
label="结算方式"
sortable
width="100">
<template slot-scope="scope">
<span>{{ this.codes.dsp2.find(item=>item.value==scope.row.dsp).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="act"
label="账户"
sortable
width="100">
</el-table-column>
<el-table-column
prop="acccur"
label="原币种"
sortable
width="100">
</el-table-column>
<el-table-column
prop="accamt"
label="原金额"
sortable
width="100">
</el-table-column>
<el-table-column
prop="actflg"
label=""
sortable
width="100">
</el-table-column>
<el-table-column
prop="fmtamt"
label=""
sortable
width="100">
</el-table-column>
</el-table>
</div>
</el-col>
</div>
</template>
<script>
export default {
props:['model']
}
</script>
<style scoped>
</style>
\ No newline at end of file
<template>
<div>
</div>
</template>
<script>
export default {
}
</script>
<style scoped>
</style>
\ No newline at end of file
<template>
<div>
<!-- 会计分录 -->
<el-col :span="12">
<el-button size="small" type="primary" @click="onGlemodRebook">
分录加载
</el-button>
</el-col>
<el-col :span="24">
<div class="e-table-wrapper">
<el-table
:data="model.setmod.glemod.glelst"
style="width: 100%"
>
<el-table-column
prop="dbtcdt"
label="借/贷"
sortable
width="100">
</el-table-column>
<el-table-column
prop="act"
label="账号"
sortable
width="100">
</el-table-column>
<el-table-column
prop="cur"
label="币种"
sortable
width="100">
</el-table-column>
<el-table-column
prop="amt"
label="金额"
sortable
width="100">
</el-table-column>
<el-table-column
prop="valdat"
label="起息日"
sortable
width="100">
</el-table-column>
<el-table-column
prop="trmtyp"
label="科目号"
sortable
width="100">
</el-table-column>
<el-table-column
prop="prn"
label="PN序号"
sortable
width="100">
</el-table-column>
<el-table-column
prop="dsp"
label=""
sortable
width="100">
</el-table-column>
<el-table-column
prop="rat"
label=""
sortable
width="100">
</el-table-column>
<el-table-column
prop="fctsgn"
label=""
sortable
width="100">
</el-table-column>
</el-table>
</div>
</el-col>
</div>
</template>
<script>
export default {
props:['model'],
}
</script>
\ No newline at end of file
<template>
<div>
</div>
</template>
<script>
export default {
}
</script>
<style scoped>
</style>
\ No newline at end of file
<template>
<div>
</div>
</template>
<script>
export default {
}
</script>
<style scoped>
</style>
\ No newline at end of file
<template>
<div>
<!-- 申报 -->
</div>
</template>
<script>
export default {
props:['model']
}
</script>
<style scoped>
</style>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
<template>
<el-form-item label="业务编号">
<el-input v-model="model.val" />
</el-form-item>
</template>
<script>
export default {
props:['model']
}
</script>
\ No newline at end of file
<template>
<el-form-item label="业务编号">
<el-input v-model="model.val" />
</el-form-item>
</template>
<script>
export default {
props:['model']
}
</script>
\ No newline at end of file
<template>
<el-form-item label="业务编号">
<el-input v-model="model.val" />
</el-form-item>
</template>
<script>
export default {
data(){
return {model:{val:"C"}}
}
}
</script>
\ No newline at end of file
<template>
<div>
<el-form>
<compa v-bind:model="model.a" />
<compb v-bind:model="model.b" />
<compc ref="compc"/>
</el-form>
<p>
{{model.a.val+"||"+model.b.val}}
</p>
<el-button @click="getcompc">按钮</el-button>
</div>
</template>
<script>
import CompA from './CompA'
import CompB from './CompB'
import CompC from "./CompC"
export default {
components:{
compa:CompA,
compb:CompB,
compc:CompC
},
data(){
return {
model:{
a:{val:'a'},
b:{val:'b'}
}
}
},
methods:{
getcompc:function(){
console.log(JSON.stringify(this.$refs.compc.model))
console.log(123456);
}
}
}
</script>
\ No newline at end of file
<template>
<div id="business_container">
<router-view></router-view>
</div>
</template>
<script>
export default {
created:()=>{
console.log("进入业务交易界面")
}
}
</script>
<style>
#business_container{
height: 100%;
position: absolute;
width: 100%;
}
</style>
<template>
<div class="display">
<p>快照模式</p>
<businessContainer></businessContainer>
</div>
</template>
<script>
import businessContainer from "../Business"
export default {
components:{
businessContainer //复用业务容器
}
}
</script>
<style>
</style>
\ No newline at end of file
<template>
<div class="self-header">
<h2 class="self_header_label">新一代邮储银行国际结算系统</h2>
</div>
</template>
<script>
export default {
}
</script>
<style>
.self-header{
height: 100%;
/* background-color: #eeeeee; */
/* margin-bottom: 5px; */
background-image: url("../../assets/head_bg.png");
}
.self-header h2{
margin: 0;
padding: 0;
}
.self_header_label{
color: antiquewhite;
/* margin-top: 10px !important; */
position: relative;
top:15px;
left:2em;
}
</style>
\ No newline at end of file
<template>
<el-row>
<el-col :span="24">
<img src="../../assets/menu_bottom.png" style="position: fixed; width: 200px; bottom: 0;" />
<el-menu
default-active="2"
class="el-menu-vertical-demo"
v-bind:router="true"
@open="handleOpen"
@close="handleClose">
<el-menu-item index="/business/office">
<i class="el-icon-menu"></i>
<span slot="title">Home</span>
</el-menu-item>
<el-menu-item index="/business/tstopn">
<i class="el-icon-document"></i>
<span slot="title">测试页</span>
</el-menu-item>
<el-menu-item index="/business/cptopn">
<i class="el-icon-document"></i>
<span slot="title">汇出汇款</span>
</el-menu-item>
<el-menu-item index="/business/sptsel">
<i class="el-icon-document"></i>
<span slot="title">待办任务</span>
</el-menu-item>
<el-submenu index="1">
<template slot="title">
<span>国内证</span>
</template>
<el-menu-item index="/business/ditopn">买方信用证开立</el-menu-item>
<el-menu-item index="/business/ditame">信用证修改</el-menu-item>
</el-submenu>
<el-menu-item index="4">
<i class="el-icon-setting"></i>
<span slot="title">导航四</span>
</el-menu-item>
</el-menu>
</el-col>
</el-row>
</template>
<script>
export default {
methods: {
handleOpen(key, keyPath) {
console.log(key, keyPath);
},
handleClose(key, keyPath) {
console.log(key, keyPath);
}
}
}
</script>
<style>
</style>
\ No newline at end of file
<template>
<el-container style="background-color:#e8e8e8;margin:0;">
<el-header style="padding:0;" >
<headerCom></headerCom>
</el-header>
<div style="height:8px;"></div>
<el-container>
<el-aside width="200px" style="background-color:white;">
<sideMenu></sideMenu>
</el-aside>
<div style="width:8px;"></div>
<el-main style="padding:0;background-color:white;position:relative;">
<business></business>
</el-main>
</el-container>
</el-container>
</template>
<script>
import headerCom from "./Header"
import sideMenu from "./SideMenu"
import business from "../Business"
export default {
components:{headerCom,sideMenu,business}
}
</script>
<style>
</style>
\ No newline at end of file
<template>
<div class="loginContainer">
<div id="loginForamWrapper">
<h2>欢迎邮储银行国际结算系统</h2>
<div id="loginForm">
<p style="text-align:left;font-size:1.2em;color:#888">用户登录 / LOGIN IN</p>
<el-form :model="loginForm" status-icon :rules="rules" ref="loginForm" size="small" >
<el-form-item prop="username" >
<el-input prefix-icon="el-icon-user" placeholder="请输入登录名" v-model="loginForm.username"></el-input>
</el-form-item>
<el-form-item prop="password" >
<el-input prefix-icon="el-icon-lock" placeholder="请输入密码" type="password" v-model="loginForm.password" autocomplete="off"></el-input>
</el-form-item>
<el-form-item>
<el-button style="width:100%;margin-top:1em;" type="primary" @click="submitForm('loginForm')">登录</el-button>
</el-form-item>
</el-form>
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
loginForm: {
password: '',
username: ''
},
rules:{
username:[
{type: "string", required: true, message: "请填写用户名"}
],
password:[
{type: "string", required: true, message: "请填写密码"}
]
}
};
},
methods: {
submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
this.$router.push("/business/office");
} else {
console.log('error submit!!');
return false;
}
});
},
resetForm(formName) {
this.$refs[formName].resetFields();
}
}
}
</script>
<style>
.loginContainer{
flex: 1;
background-image: url("../../assets/login_bg.png");
background-size: cover;
display: flex;
justify-content: center;
align-items: center;
}
#loginForamWrapper{
width: 340px;
/* height:280px; */
}
#loginForm{
background-color: white;
padding:1em 2em;
border: 1px solid #d9d9d9;
box-shadow: 5px 5px 5px 0px #d9d9d9;
border-radius: 3px;
}
#loginForamWrapper h2{
color:#d9d9d9;
font-family: 宋体;
}
</style>
\ No newline at end of file
const resolve = require('path').resolve
const webpack = require('webpack')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const url = require('url')
const publicPath = ''
module.exports = (options = {}) => ({
entry: {
vendor: './src/vendor',
index: './src/main.js'
},
output: {
path: resolve(__dirname, 'dist'),
filename: options.dev ? '[name].js' : '[name].js?[chunkhash]',
chunkFilename: '[id].js?[chunkhash]',
publicPath: options.dev ? '/assets/' : publicPath
},
module: {
rules: [{
test: /\.vue$/,
use: ['vue-loader']
},
{
test: /\.js$/,
use: ['babel-loader'],
exclude: /node_modules/
},
{
test: /\.css$/,
use: ['style-loader', 'css-loader', 'postcss-loader']
},
{
test: /\.(png|jpg|jpeg|gif|eot|ttf|woff|woff2|svg|svgz)(\?.+)?$/,
use: [{
loader: 'url-loader',
options: {
limit: 10000
}
}]
}
]
},
plugins: [
new webpack.optimize.CommonsChunkPlugin({
names: ['vendor', 'manifest']
}),
new HtmlWebpackPlugin({
template: 'src/index.html'
})
],
resolve: {
alias: {
'~': resolve(__dirname, 'src')
},
extensions: ['.js', '.vue', '.json', '.css']
},
devServer: {
host: '127.0.0.1',
port: 8010,
proxy: {
'/api/': {
target: 'http://127.0.0.1:8080',
changeOrigin: true,
pathRewrite: {
'^/api': ''
}
}
},
historyApiFallback: {
index: url.parse(options.dev ? '/assets/' : publicPath).pathname
}
},
devtool: options.dev ? '#eval-source-map' : '#source-map'
})
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment