作者 朱兆平

Merge remote-tracking branch 'origin/master'

... ... @@ -12751,6 +12751,11 @@
"resolved": "https://registry.npmjs.org/vue/-/vue-2.6.10.tgz",
"integrity": "sha512-ImThpeNU9HbdZL3utgMCq0oiMzAkt1mcgy3/E6zWC/G6AaQoeuFdsl9nDhTDU3X1R6FK7nsIUuRACVcjI+A2GQ=="
},
"vue-count-to": {
"version": "1.0.13",
"resolved": "https://registry.npmjs.org/vue-count-to/-/vue-count-to-1.0.13.tgz",
"integrity": "sha512-6R4OVBVNtQTlcbXu6SJ8ENR35M2/CdWt3Jmv57jOUM+1ojiFmjVGvZPH8DfHpMDSA+ITs+EW5V6qthADxeyYOQ=="
},
"vue-hot-reload-api": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.3.tgz",
... ...
... ... @@ -26,6 +26,7 @@
"nprogress": "^0.2.0",
"script-loader": "^0.7.2",
"vue": "^2.2.2",
"vue-count-to": "^1.0.13",
"vue-i18n": "^8.14.0",
"vue-router": "^2.3.0",
"vuex": "^2.0.0-rc.6",
... ...
... ... @@ -23,3 +23,7 @@ export const sendDeleteMt2201 = params =>{return http.post(`${baseUrl}/sendDelet
export const sendUpdateMt2201 = params =>{return http.post(`${baseUrl}/sendUpdateMt2201`,params)}
export const sendCreateMt2201 = params =>{return http.post(`${baseUrl}/sendCreateMt2201`,params)}
export const uploadFileExcel = params =>{return http.post(`${baseUrl}/uploadFileExcel`,params)}
... ...
import request from '@/utils/request'
export function searchUser(name) {
return request({
url: '/vue-element-admin/search/user',
method: 'get',
params: { name }
})
}
export function transactionList(query) {
return request({
url: '/vue-element-admin/transaction/list',
method: 'get',
params: query
})
}
... ...
<template>
<!-- href="https://github.com/PanJiaChen/vue-element-admin"-->
<a target="_blank" class="github-corner" aria-label="View source on Github">
<svg
width="80"
height="80"
viewBox="0 0 250 250"
style="fill:#40c9c6; color:#fff;"
aria-hidden="true"
>
<path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z" />
<path
d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2"
fill="currentColor"
style="transform-origin: 130px 106px;"
class="octo-arm"
/>
<path
d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z"
fill="currentColor"
class="octo-body"
/>
</svg>
</a>
</template>
<style scoped>
.github-corner:hover .octo-arm {
animation: octocat-wave 560ms ease-in-out
}
@keyframes octocat-wave {
0%,
100% {
transform: rotate(0)
}
20%,
60% {
transform: rotate(-25deg)
}
40%,
80% {
transform: rotate(10deg)
}
}
@media (max-width:500px) {
.github-corner:hover .octo-arm {
animation: none
}
.github-corner .octo-arm {
animation: octocat-wave 560ms ease-in-out
}
}
</style>
... ...
<template>
<div :style="{zIndex:zIndex,height:height,width:width}" class="pan-item">
<div class="pan-info">
<div class="pan-info-roles-container">
<slot />
</div>
</div>
<!-- eslint-disable-next-line -->
<div :style="{backgroundImage: `url(${image})`}" class="pan-thumb"></div>
</div>
</template>
<script>
export default {
name: 'PanThumb',
props: {
image: {
type: String,
required: true
},
zIndex: {
type: Number,
default: 1
},
width: {
type: String,
default: '150px'
},
height: {
type: String,
default: '150px'
}
}
}
</script>
<style scoped>
.pan-item {
width: 200px;
height: 200px;
border-radius: 50%;
display: inline-block;
position: relative;
cursor: default;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}
.pan-info-roles-container {
padding: 20px;
text-align: center;
}
.pan-thumb {
width: 100%;
height: 100%;
background-position: center center;
background-size: cover;
border-radius: 50%;
overflow: hidden;
position: absolute;
transform-origin: 95% 40%;
transition: all 0.3s ease-in-out;
}
/* .pan-thumb:after {
content: '';
width: 8px;
height: 8px;
position: absolute;
border-radius: 50%;
top: 40%;
left: 95%;
margin: -4px 0 0 -4px;
background: radial-gradient(ellipse at center, rgba(14, 14, 14, 1) 0%, rgba(125, 126, 125, 1) 100%);
box-shadow: 0 0 1px rgba(255, 255, 255, 0.9);
} */
.pan-info {
position: absolute;
width: inherit;
height: inherit;
border-radius: 50%;
overflow: hidden;
box-shadow: inset 0 0 0 5px rgba(0, 0, 0, 0.05);
}
.pan-info h3 {
color: #fff;
text-transform: uppercase;
position: relative;
letter-spacing: 2px;
font-size: 18px;
margin: 0 60px;
padding: 22px 0 0 0;
height: 85px;
font-family: 'Open Sans', Arial, sans-serif;
text-shadow: 0 0 1px #fff, 0 1px 2px rgba(0, 0, 0, 0.3);
}
.pan-info p {
color: #fff;
padding: 10px 5px;
font-style: italic;
margin: 0 30px;
font-size: 12px;
border-top: 1px solid rgba(255, 255, 255, 0.5);
}
.pan-info p a {
display: block;
color: #333;
width: 80px;
height: 80px;
background: rgba(255, 255, 255, 0.3);
border-radius: 50%;
color: #fff;
font-style: normal;
font-weight: 700;
text-transform: uppercase;
font-size: 9px;
letter-spacing: 1px;
padding-top: 24px;
margin: 7px auto 0;
font-family: 'Open Sans', Arial, sans-serif;
opacity: 0;
transition: transform 0.3s ease-in-out 0.2s, opacity 0.3s ease-in-out 0.2s, background 0.2s linear 0s;
transform: translateX(60px) rotate(90deg);
}
.pan-info p a:hover {
background: rgba(255, 255, 255, 0.5);
}
.pan-item:hover .pan-thumb {
transform: rotate(-110deg);
}
.pan-item:hover .pan-info p a {
opacity: 1;
transform: translateX(0px) rotate(0deg);
}
</style>
... ...
<template>
<a :class="className" class="link--mallki" href="#">
{{ text }}
<span :data-letters="text" />
<span :data-letters="text" />
</a>
</template>
<script>
export default {
props: {
className: {
type: String,
default: ''
},
text: {
type: String,
default: 'vue-element-admin'
}
}
}
</script>
<style>
/* Mallki */
.link--mallki {
font-weight: 800;
color: #4dd9d5;
font-family: 'Dosis', sans-serif;
-webkit-transition: color 0.5s 0.25s;
transition: color 0.5s 0.25s;
overflow: hidden;
position: relative;
display: inline-block;
line-height: 1;
outline: none;
text-decoration: none;
}
.link--mallki:hover {
-webkit-transition: none;
transition: none;
color: transparent;
}
.link--mallki::before {
content: '';
width: 100%;
height: 6px;
margin: -3px 0 0 0;
background: #3888fa;
position: absolute;
left: 0;
top: 50%;
-webkit-transform: translate3d(-100%, 0, 0);
transform: translate3d(-100%, 0, 0);
-webkit-transition: -webkit-transform 0.4s;
transition: transform 0.4s;
-webkit-transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1);
transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1);
}
.link--mallki:hover::before {
-webkit-transform: translate3d(100%, 0, 0);
transform: translate3d(100%, 0, 0);
}
.link--mallki span {
position: absolute;
height: 50%;
width: 100%;
left: 0;
top: 0;
overflow: hidden;
}
.link--mallki span::before {
content: attr(data-letters);
color: red;
position: absolute;
left: 0;
width: 100%;
color: #3888fa;
-webkit-transition: -webkit-transform 0.5s;
transition: transform 0.5s;
}
.link--mallki span:nth-child(2) {
top: 50%;
}
.link--mallki span:first-child::before {
top: 0;
-webkit-transform: translate3d(0, 100%, 0);
transform: translate3d(0, 100%, 0);
}
.link--mallki span:nth-child(2)::before {
bottom: 0;
-webkit-transform: translate3d(0, -100%, 0);
transform: translate3d(0, -100%, 0);
}
.link--mallki:hover span::before {
-webkit-transition-delay: 0.3s;
transition-delay: 0.3s;
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
-webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
}
</style>
... ...
import Login from './views/Login.vue'
import NotFound from './views/404.vue'
import Home from './views/Home.vue'
import Main from './views/Main.vue'
import Main from './views/dashboard/index'
// import Table from './views/nav1/Table.vue'
import Role from './views/nav1/role.vue'
import Perm from './views/nav1/perm.vue'
... ...
<template>
<div :class="className" :style="{height:height,width:width}" />
</template>
<script>
import echarts from 'echarts'
require('echarts/theme/macarons') // echarts theme
import resize from './mixins/resize'
const animationDuration = 6000
export default {
mixins: [resize],
props: {
className: {
type: String,
default: 'chart'
},
width: {
type: String,
default: '100%'
},
height: {
type: String,
default: '300px'
}
},
data() {
return {
chart: null
}
},
mounted() {
this.$nextTick(() => {
this.initChart()
})
},
beforeDestroy() {
if (!this.chart) {
return
}
this.chart.dispose()
this.chart = null
},
methods: {
initChart() {
this.chart = echarts.init(this.$el, 'macarons')
this.chart.setOption({
tooltip: {
trigger: 'axis',
axisPointer: { // 坐标轴指示器,坐标轴触发有效
type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
}
},
grid: {
top: 10,
left: '2%',
right: '2%',
bottom: '3%',
containLabel: true
},
xAxis: [{
type: 'category',
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
axisTick: {
alignWithLabel: true
}
}],
yAxis: [{
type: 'value',
axisTick: {
show: false
}
}],
series: [{
name: 'pageA',
type: 'bar',
stack: 'vistors',
barWidth: '60%',
data: [79, 52, 200, 334, 390, 330, 220],
animationDuration
}, {
name: 'pageB',
type: 'bar',
stack: 'vistors',
barWidth: '60%',
data: [80, 52, 200, 334, 390, 330, 220],
animationDuration
}, {
name: 'pageC',
type: 'bar',
stack: 'vistors',
barWidth: '60%',
data: [30, 52, 200, 334, 390, 330, 220],
animationDuration
}]
})
}
}
}
</script>
... ...
<template>
<el-card class="box-card-component" style="margin-left:8px;">
<div slot="header" class="box-card-header">
<img src="https://wpimg.wallstcn.com/e7d23d71-cf19-4b90-a1cc-f56af8c0903d.png">
</div>
<div style="position:relative;">
<pan-thumb :image="avatar" class="panThumb" />
<mallki class-name="mallki-text" text="vue-element-admin" />
<div style="padding-top:35px;" class="progress-item">
<span>Vue</span>
<el-progress :percentage="70" />
</div>
<div class="progress-item">
<span>JavaScript</span>
<el-progress :percentage="18" />
</div>
<div class="progress-item">
<span>Css</span>
<el-progress :percentage="12" />
</div>
<div class="progress-item">
<span>ESLint</span>
<el-progress :percentage="100" status="success" />
</div>
</div>
</el-card>
</template>
<script>
import { mapGetters } from 'vuex'
import PanThumb from '../../../components/PanThumb'
import Mallki from '../../../components/TextHoverEffect/Mallki'
export default {
components: { PanThumb, Mallki },
filters: {
statusFilter(status) {
const statusMap = {
success: 'success',
pending: 'danger'
}
return statusMap[status]
}
},
data() {
return {
statisticsData: {
article_count: 1024,
pageviews_count: 1024
}
}
},
computed: {
...mapGetters([
'name',
'avatar',
'roles'
])
}
}
</script>
<style lang="scss" >
.box-card-component{
.el-card__header {
padding: 0px!important;
}
}
</style>
<style lang="scss" scoped>
.box-card-component {
.box-card-header {
position: relative;
height: 220px;
img {
width: 100%;
height: 100%;
transition: all 0.2s linear;
&:hover {
transform: scale(1.1, 1.1);
filter: contrast(130%);
}
}
}
.mallki-text {
position: absolute;
top: 0px;
right: 0px;
font-size: 20px;
font-weight: bold;
}
.panThumb {
z-index: 100;
height: 70px!important;
width: 70px!important;
position: absolute!important;
top: -45px;
left: 0px;
border: 5px solid #ffffff;
background-color: #fff;
margin: auto;
box-shadow: none!important;
/deep/ .pan-info {
box-shadow: none!important;
}
}
.progress-item {
margin-bottom: 10px;
font-size: 14px;
}
@media only screen and (max-width: 1510px){
.mallki-text{
display: none;
}
}
}
</style>
... ...
<template>
<div :class="className" :style="{height:height,width:width}" />
</template>
<script>
import echarts from 'echarts'
require('echarts/theme/macarons') // echarts theme
import resize from './mixins/resize'
export default {
mixins: [resize],
props: {
className: {
type: String,
default: 'chart'
},
width: {
type: String,
default: '100%'
},
height: {
type: String,
default: '350px'
},
autoResize: {
type: Boolean,
default: true
},
chartData: {
type: Object,
required: true
}
},
data() {
return {
chart: null
}
},
watch: {
chartData: {
deep: true,
handler(val) {
this.setOptions(val)
}
}
},
mounted() {
this.$nextTick(() => {
this.initChart()
})
},
beforeDestroy() {
if (!this.chart) {
return
}
this.chart.dispose()
this.chart = null
},
methods: {
initChart() {
this.chart = echarts.init(this.$el, 'macarons')
this.setOptions(this.chartData)
},
setOptions({ expectedData, actualData } = {}) {
this.chart.setOption({
xAxis: {
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
boundaryGap: false,
axisTick: {
show: false
}
},
grid: {
left: 10,
right: 10,
bottom: 20,
top: 30,
containLabel: true
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross'
},
padding: [5, 10]
},
yAxis: {
axisTick: {
show: false
}
},
legend: {
data: ['expected', 'actual']
},
series: [{
name: 'expected', itemStyle: {
normal: {
color: '#FF005A',
lineStyle: {
color: '#FF005A',
width: 2
}
}
},
smooth: true,
type: 'line',
data: expectedData,
animationDuration: 2800,
animationEasing: 'cubicInOut'
},
{
name: 'actual',
smooth: true,
type: 'line',
itemStyle: {
normal: {
color: '#3888fa',
lineStyle: {
color: '#3888fa',
width: 2
},
areaStyle: {
color: '#f3f8ff'
}
}
},
data: actualData,
animationDuration: 2800,
animationEasing: 'quadraticOut'
}]
})
}
}
}
</script>
... ...
<template>
<el-row :gutter="15" class="panel-group">
<el-col :span="5" class="card-panel-col">
<div class="card-panel" @click="handleSetLineChartData('newVisitis')">
<div class="card-panel-icon-wrapper icon-people">
<!-- <svg-icon icon-class="peoples" class-name="card-panel-icon" />-->
<i class="el-icon-user-solid" style="font-size: 60px;"></i>
</div>
<div class="card-panel-description">
<div class="card-panel-text">
New Visits
</div>
<count-to :start-val="0" :end-val="102400" :duration="2600" class="card-panel-num" />
</div>
</div>
</el-col>
<!-- :xs="12" :sm="12" :lg="6"-->
<el-col :span="5" class="card-panel-col">
<div class="card-panel" @click="handleSetLineChartData('messages')">
<div class="card-panel-icon-wrapper icon-message">
<!-- <svg-icon icon-class="message" class-name="card-panel-icon" />-->
<i class="el-icon-message" style="font-size: 60px;"></i>
</div>
<div class="card-panel-description">
<div class="card-panel-text">
Messages
</div>
<count-to :start-val="0" :end-val="81212" :duration="3000" class="card-panel-num" />
</div>
</div>
</el-col>
<el-col :span="5" class="card-panel-col">
<div class="card-panel" @click="handleSetLineChartData('purchases')">
<div class="card-panel-icon-wrapper icon-money">
<!-- <svg-icon icon-class="money" class-name="card-panel-icon" />-->
<i class="el-icon-money" style="font-size: 60px;"></i>
</div>
<div class="card-panel-description">
<div class="card-panel-text">
Purchases
</div>
<count-to :start-val="0" :end-val="9280" :duration="3200" class="card-panel-num" />
</div>
</div>
</el-col>
<el-col :span="5" class="card-panel-col">
<div class="card-panel" @click="handleSetLineChartData('shoppings')">
<div class="card-panel-icon-wrapper icon-shopping">
<!-- <svg-icon icon-class="shopping" class-name="card-panel-icon" />-->
<i class="el-icon-shopping-cart-2" style="font-size: 60px;"></i>
</div>
<div class="card-panel-description">
<div class="card-panel-text">
Shoppings
</div>
<count-to :start-val="0" :end-val="13600" :duration="3600" class="card-panel-num" />
</div>
</div>
</el-col>
</el-row>
</template>
<script>
import CountTo from 'vue-count-to'
// import '../../../icons'
export default {
components: {
CountTo
},
methods: {
handleSetLineChartData(type) {
this.$emit('handleSetLineChartData', type)
}
}
}
</script>
<style lang="scss" scoped>
.panel-group {
margin-top: 18px;
.card-panel-col {
margin-bottom: 32px;
}
.card-panel {
height: 108px;
cursor: pointer;
font-size: 12px;
position: relative;
overflow: hidden;
color: #666;
background: #fff;
box-shadow: 4px 4px 40px rgba(0, 0, 0, .05);
border-color: rgba(0, 0, 0, .05);
&:hover {
.card-panel-icon-wrapper {
color: #fff;
}
.icon-people {
background: #40c9c6;
}
.icon-message {
background: #36a3f7;
}
.icon-money {
background: #f4516c;
}
.icon-shopping {
background: #34bfa3
}
}
.icon-people {
color: #40c9c6;
}
.icon-message {
color: #36a3f7;
}
.icon-money {
color: #f4516c;
}
.icon-shopping {
color: #34bfa3
}
.card-panel-icon-wrapper {
float: left;
margin: 14px 0 0 14px;
padding: 16px;
transition: all 0.38s ease-out;
border-radius: 6px;
}
.card-panel-icon {
float: left;
font-size: 48px;
}
.card-panel-description {
float: right;
font-weight: bold;
margin: 26px;
margin-left: 0px;
.card-panel-text {
line-height: 18px;
color: rgba(0, 0, 0, 0.45);
font-size: 16px;
margin-bottom: 12px;
}
.card-panel-num {
font-size: 20px;
}
}
}
}
@media (max-width:550px) {
.card-panel-description {
display: none;
}
.card-panel-icon-wrapper {
float: none !important;
width: 100%;
height: 100%;
margin: 0 !important;
.svg-icon {
display: block;
margin: 14px auto !important;
float: none !important;
}
}
}
</style>
... ...
<template>
<div :class="className" :style="{height:height,width:width}" />
</template>
<script>
import echarts from 'echarts'
require('echarts/theme/macarons') // echarts theme
import resize from './mixins/resize'
export default {
mixins: [resize],
props: {
className: {
type: String,
default: 'chart'
},
width: {
type: String,
default: '100%'
},
height: {
type: String,
default: '300px'
}
},
data() {
return {
chart: null
}
},
mounted() {
this.$nextTick(() => {
this.initChart()
})
},
beforeDestroy() {
if (!this.chart) {
return
}
this.chart.dispose()
this.chart = null
},
methods: {
initChart() {
this.chart = echarts.init(this.$el, 'macarons')
this.chart.setOption({
tooltip: {
trigger: 'item',
formatter: '{a} <br/>{b} : {c} ({d}%)'
},
legend: {
left: 'center',
bottom: '10',
data: ['Industries', 'Technology', 'Forex', 'Gold', 'Forecasts']
},
series: [
{
name: 'WEEKLY WRITE ARTICLES',
type: 'pie',
roseType: 'radius',
radius: [15, 95],
center: ['50%', '38%'],
data: [
{ value: 320, name: 'Industries' },
{ value: 240, name: 'Technology' },
{ value: 149, name: 'Forex' },
{ value: 100, name: 'Gold' },
{ value: 59, name: 'Forecasts' }
],
animationEasing: 'cubicInOut',
animationDuration: 2600
}
]
})
}
}
}
</script>
... ...
<template>
<div :class="className" :style="{height:height,width:width}" />
</template>
<script>
import echarts from 'echarts'
require('echarts/theme/macarons') // echarts theme
import resize from './mixins/resize'
const animationDuration = 3000
export default {
mixins: [resize],
props: {
className: {
type: String,
default: 'chart'
},
width: {
type: String,
default: '100%'
},
height: {
type: String,
default: '300px'
}
},
data() {
return {
chart: null
}
},
mounted() {
this.$nextTick(() => {
this.initChart()
})
},
beforeDestroy() {
if (!this.chart) {
return
}
this.chart.dispose()
this.chart = null
},
methods: {
initChart() {
this.chart = echarts.init(this.$el, 'macarons')
this.chart.setOption({
tooltip: {
trigger: 'axis',
axisPointer: { // 坐标轴指示器,坐标轴触发有效
type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
}
},
radar: {
radius: '66%',
center: ['50%', '42%'],
splitNumber: 8,
splitArea: {
areaStyle: {
color: 'rgba(127,95,132,.3)',
opacity: 1,
shadowBlur: 45,
shadowColor: 'rgba(0,0,0,.5)',
shadowOffsetX: 0,
shadowOffsetY: 15
}
},
indicator: [
{ name: 'Sales', max: 10000 },
{ name: 'Administration', max: 20000 },
{ name: 'Information Technology', max: 20000 },
{ name: 'Customer Support', max: 20000 },
{ name: 'Development', max: 20000 },
{ name: 'Marketing', max: 20000 }
]
},
legend: {
left: 'center',
bottom: '10',
data: ['Allocated Budget', 'Expected Spending', 'Actual Spending']
},
series: [{
type: 'radar',
symbolSize: 0,
areaStyle: {
normal: {
shadowBlur: 13,
shadowColor: 'rgba(0,0,0,.2)',
shadowOffsetX: 0,
shadowOffsetY: 10,
opacity: 1
}
},
data: [
{
value: [5000, 7000, 12000, 11000, 15000, 14000],
name: 'Allocated Budget'
},
{
value: [4000, 9000, 15000, 15000, 13000, 11000],
name: 'Expected Spending'
},
{
value: [5500, 11000, 12000, 15000, 12000, 12000],
name: 'Actual Spending'
}
],
animationDuration: animationDuration
}]
})
}
}
}
</script>
... ...
<template>
<li :class="{ completed: todo.done, editing: editing }" class="todo">
<div class="view">
<input
:checked="todo.done"
class="toggle"
type="checkbox"
@change="toggleTodo( todo)"
>
<label @dblclick="editing = true" v-text="todo.text" />
<button class="destroy" @click="deleteTodo( todo )" />
</div>
<input
v-show="editing"
v-focus="editing"
:value="todo.text"
class="edit"
@keyup.enter="doneEdit"
@keyup.esc="cancelEdit"
@blur="doneEdit"
>
</li>
</template>
<script>
export default {
name: 'Todo',
directives: {
focus(el, { value }, { context }) {
if (value) {
context.$nextTick(() => {
el.focus()
})
}
}
},
props: {
todo: {
type: Object,
default: function() {
return {}
}
}
},
data() {
return {
editing: false
}
},
methods: {
deleteTodo(todo) {
this.$emit('deleteTodo', todo)
},
editTodo({ todo, value }) {
this.$emit('editTodo', { todo, value })
},
toggleTodo(todo) {
this.$emit('toggleTodo', todo)
},
doneEdit(e) {
const value = e.target.value.trim()
const { todo } = this
if (!value) {
this.deleteTodo({
todo
})
} else if (this.editing) {
this.editTodo({
todo,
value
})
this.editing = false
}
},
cancelEdit(e) {
e.target.value = this.todo.text
this.editing = false
}
}
}
</script>
... ...
.todoapp {
font: 14px 'Helvetica Neue', Helvetica, Arial, sans-serif;
line-height: 1.4em;
color: #4d4d4d;
min-width: 230px;
max-width: 550px;
margin: 0 auto ;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-weight: 300;
background: #fff;
z-index: 1;
position: relative;
button {
margin: 0;
padding: 0;
border: 0;
background: none;
font-size: 100%;
vertical-align: baseline;
font-family: inherit;
font-weight: inherit;
color: inherit;
-webkit-appearance: none;
appearance: none;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
:focus {
outline: 0;
}
.hidden {
display: none;
}
.todoapp {
background: #fff;
margin: 130px 0 40px 0;
position: relative;
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.2), 0 25px 50px 0 rgba(0, 0, 0, 0.1);
}
.todoapp input::-webkit-input-placeholder {
font-style: italic;
font-weight: 300;
color: #e6e6e6;
}
.todoapp input::-moz-placeholder {
font-style: italic;
font-weight: 300;
color: #e6e6e6;
}
.todoapp input::input-placeholder {
font-style: italic;
font-weight: 300;
color: #e6e6e6;
}
.todoapp h1 {
position: absolute;
top: -155px;
width: 100%;
font-size: 100px;
font-weight: 100;
text-align: center;
color: rgba(175, 47, 47, 0.15);
-webkit-text-rendering: optimizeLegibility;
-moz-text-rendering: optimizeLegibility;
text-rendering: optimizeLegibility;
}
.new-todo,
.edit {
position: relative;
margin: 0;
width: 100%;
font-size: 18px;
font-family: inherit;
font-weight: inherit;
line-height: 1.4em;
border: 0;
color: inherit;
padding: 6px;
border: 1px solid #999;
box-shadow: inset 0 -1px 5px 0 rgba(0, 0, 0, 0.2);
box-sizing: border-box;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.new-todo {
padding: 10px 16px 16px 60px;
border: none;
background: rgba(0, 0, 0, 0.003);
box-shadow: inset 0 -2px 1px rgba(0, 0, 0, 0.03);
}
.main {
position: relative;
z-index: 2;
border-top: 1px solid #e6e6e6;
}
.toggle-all {
text-align: center;
border: none;
/* Mobile Safari */
opacity: 0;
position: absolute;
}
.toggle-all+label {
width: 60px;
height: 34px;
font-size: 0;
position: absolute;
top: -52px;
left: -13px;
-webkit-transform: rotate(90deg);
transform: rotate(90deg);
}
.toggle-all+label:before {
content: '❯';
font-size: 22px;
color: #e6e6e6;
padding: 10px 27px 10px 27px;
}
.toggle-all:checked+label:before {
color: #737373;
}
.todo-list {
margin: 0;
padding: 0;
list-style: none;
}
.todo-list li {
position: relative;
font-size: 24px;
border-bottom: 1px solid #ededed;
}
.todo-list li:last-child {
border-bottom: none;
}
.todo-list li.editing {
border-bottom: none;
padding: 0;
}
.todo-list li.editing .edit {
display: block;
width: 506px;
padding: 12px 16px;
margin: 0 0 0 43px;
}
.todo-list li.editing .view {
display: none;
}
.todo-list li .toggle {
text-align: center;
width: 40px;
/* auto, since non-WebKit browsers doesn't support input styling */
height: auto;
position: absolute;
top: 0;
bottom: 0;
margin: auto 0;
border: none;
/* Mobile Safari */
-webkit-appearance: none;
appearance: none;
}
.todo-list li .toggle {
opacity: 0;
}
.todo-list li .toggle+label {
/*
Firefox requires `#` to be escaped - https://bugzilla.mozilla.org/show_bug.cgi?id=922433
IE and Edge requires *everything* to be escaped to render, so we do that instead of just the `#` - https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/7157459/
*/
background-image: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2240%22%20height%3D%2240%22%20viewBox%3D%22-10%20-18%20100%20135%22%3E%3Ccircle%20cx%3D%2250%22%20cy%3D%2250%22%20r%3D%2250%22%20fill%3D%22none%22%20stroke%3D%22%23ededed%22%20stroke-width%3D%223%22/%3E%3C/svg%3E');
background-repeat: no-repeat;
background-position: center left;
background-size: 36px;
}
.todo-list li .toggle:checked+label {
background-size: 36px;
background-image: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2240%22%20height%3D%2240%22%20viewBox%3D%22-10%20-18%20100%20135%22%3E%3Ccircle%20cx%3D%2250%22%20cy%3D%2250%22%20r%3D%2250%22%20fill%3D%22none%22%20stroke%3D%22%23bddad5%22%20stroke-width%3D%223%22/%3E%3Cpath%20fill%3D%22%235dc2af%22%20d%3D%22M72%2025L42%2071%2027%2056l-4%204%2020%2020%2034-52z%22/%3E%3C/svg%3E');
}
.todo-list li label {
word-break: break-all;
padding: 15px 15px 15px 50px;
display: block;
line-height: 1.0;
font-size: 14px;
transition: color 0.4s;
}
.todo-list li.completed label {
color: #d9d9d9;
text-decoration: line-through;
}
.todo-list li .destroy {
display: none;
position: absolute;
top: 0;
right: 10px;
bottom: 0;
width: 40px;
height: 40px;
margin: auto 0;
font-size: 30px;
color: #cc9a9a;
transition: color 0.2s ease-out;
cursor: pointer;
}
.todo-list li .destroy:hover {
color: #af5b5e;
}
.todo-list li .destroy:after {
content: '×';
}
.todo-list li:hover .destroy {
display: block;
}
.todo-list li .edit {
display: none;
}
.todo-list li.editing:last-child {
margin-bottom: -1px;
}
.footer {
color: #777;
position: relative;
padding: 10px 15px;
height: 40px;
text-align: center;
border-top: 1px solid #e6e6e6;
}
.footer:before {
content: '';
position: absolute;
right: 0;
bottom: 0;
left: 0;
height: 40px;
overflow: hidden;
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2), 0 8px 0 -3px #f6f6f6, 0 9px 1px -3px rgba(0, 0, 0, 0.2), 0 16px 0 -6px #f6f6f6, 0 17px 2px -6px rgba(0, 0, 0, 0.2);
}
.todo-count {
float: left;
text-align: left;
}
.todo-count strong {
font-weight: 300;
}
.filters {
margin: 0;
padding: 0;
position: relative;
z-index: 1;
list-style: none;
}
.filters li {
display: inline;
}
.filters li a {
color: inherit;
font-size: 12px;
padding: 3px 7px;
text-decoration: none;
border: 1px solid transparent;
border-radius: 3px;
}
.filters li a:hover {
border-color: rgba(175, 47, 47, 0.1);
}
.filters li a.selected {
border-color: rgba(175, 47, 47, 0.2);
}
.clear-completed,
html .clear-completed:active {
float: right;
position: relative;
line-height: 20px;
text-decoration: none;
cursor: pointer;
}
.clear-completed:hover {
text-decoration: underline;
}
.info {
margin: 65px auto 0;
color: #bfbfbf;
font-size: 10px;
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
text-align: center;
}
.info p {
line-height: 1;
}
.info a {
color: inherit;
text-decoration: none;
font-weight: 400;
}
.info a:hover {
text-decoration: underline;
}
/*
Hack to remove background from Mobile Safari.
Can't use it globally since it destroys checkboxes in Firefox
*/
@media screen and (-webkit-min-device-pixel-ratio:0) {
.toggle-all,
.todo-list li .toggle {
background: none;
}
.todo-list li .toggle {
height: 40px;
}
}
@media (max-width: 430px) {
.footer {
height: 50px;
}
.filters {
bottom: 10px;
}
}
}
... ...
<template>
<section class="todoapp">
<!-- header -->
<header class="header">
<input class="new-todo" autocomplete="off" placeholder="Todo List" @keyup.enter="addTodo">
</header>
<!-- main section -->
<section v-show="todos.length" class="main">
<input id="toggle-all" :checked="allChecked" class="toggle-all" type="checkbox" @change="toggleAll({ done: !allChecked })">
<label for="toggle-all" />
<ul class="todo-list">
<todo
v-for="(todo, index) in filteredTodos"
:key="index"
:todo="todo"
@toggleTodo="toggleTodo"
@editTodo="editTodo"
@deleteTodo="deleteTodo"
/>
</ul>
</section>
<!-- footer -->
<footer v-show="todos.length" class="footer">
<span class="todo-count">
<strong>{{ remaining }}</strong>
{{ remaining | pluralize('item') }} left
</span>
<ul class="filters">
<li v-for="(val, key) in filters" :key="key">
<a :class="{ selected: visibility === key }" @click.prevent="visibility = key">{{ key | capitalize }}</a>
</li>
</ul>
<!-- <button class="clear-completed" v-show="todos.length > remaining" @click="clearCompleted">
Clear completed
</button> -->
</footer>
</section>
</template>
<script>
import Todo from './Todo.vue'
const STORAGE_KEY = 'todos'
const filters = {
all: todos => todos,
active: todos => todos.filter(todo => !todo.done),
completed: todos => todos.filter(todo => todo.done)
}
const defalutList = [
{ text: 'star this repository', done: false },
{ text: 'fork this repository', done: false },
{ text: 'follow author', done: false },
{ text: 'vue-element-admin', done: true },
{ text: 'vue', done: true },
{ text: 'element-ui', done: true },
{ text: 'axios', done: true },
{ text: 'webpack', done: true }
]
export default {
components: { Todo },
filters: {
pluralize: (n, w) => n === 1 ? w : w + 's',
capitalize: s => s.charAt(0).toUpperCase() + s.slice(1)
},
data() {
return {
visibility: 'all',
filters,
// todos: JSON.parse(window.localStorage.getItem(STORAGE_KEY)) || defalutList
todos: defalutList
}
},
computed: {
allChecked() {
return this.todos.every(todo => todo.done)
},
filteredTodos() {
return filters[this.visibility](this.todos)
},
remaining() {
return this.todos.filter(todo => !todo.done).length
}
},
methods: {
setLocalStorage() {
window.localStorage.setItem(STORAGE_KEY, JSON.stringify(this.todos))
},
addTodo(e) {
const text = e.target.value
if (text.trim()) {
this.todos.push({
text,
done: false
})
this.setLocalStorage()
}
e.target.value = ''
},
toggleTodo(val) {
val.done = !val.done
this.setLocalStorage()
},
deleteTodo(todo) {
this.todos.splice(this.todos.indexOf(todo), 1)
this.setLocalStorage()
},
editTodo({ todo, value }) {
todo.text = value
this.setLocalStorage()
},
clearCompleted() {
this.todos = this.todos.filter(todo => !todo.done)
this.setLocalStorage()
},
toggleAll({ done }) {
this.todos.forEach(todo => {
todo.done = done
this.setLocalStorage()
})
}
}
}
</script>
<style lang="scss">
@import './index.scss';
</style>
... ...
<template>
<el-table :data="list" style="width: 100%;padding-top: 15px;">
<el-table-column label="Order_No" min-width="200">
<template slot-scope="scope">
{{ scope.row.order_no | orderNoFilter }}
</template>
</el-table-column>
<el-table-column label="Price" width="195" align="center">
<template slot-scope="scope">
¥{{ scope.row.price | toThousandFilter }}
</template>
</el-table-column>
<el-table-column label="Status" width="100" align="center">
<template slot-scope="{row}">
<el-tag :type="row.status | statusFilter">
{{ row.status }}
</el-tag>
</template>
</el-table-column>
</el-table>
</template>
<script>
import { transactionList } from '@/api/remote-search'
export default {
filters: {
statusFilter(status) {
const statusMap = {
success: 'success',
pending: 'danger'
}
return statusMap[status]
},
orderNoFilter(str) {
return str.substring(0, 30)
}
},
data() {
return {
list: null
}
},
created() {
this.fetchData()
},
methods: {
fetchData() {
transactionList().then(response => {
this.list = response.data.items.slice(0, 8)
})
}
}
}
</script>
... ...
import { debounce } from '@/utils'
export default {
data() {
return {
$_sidebarElm: null,
$_resizeHandler: null
}
},
mounted() {
this.$_resizeHandler = debounce(() => {
if (this.chart) {
this.chart.resize()
}
}, 100)
this.$_initResizeEvent()
this.$_initSidebarResizeEvent()
},
beforeDestroy() {
this.$_destroyResizeEvent()
this.$_destroySidebarResizeEvent()
},
// to fixed bug when cached by keep-alive
// https://github.com/PanJiaChen/vue-element-admin/issues/2116
activated() {
this.$_initResizeEvent()
this.$_initSidebarResizeEvent()
},
deactivated() {
this.$_destroyResizeEvent()
this.$_destroySidebarResizeEvent()
},
methods: {
// use $_ for mixins properties
// https://vuejs.org/v2/style-guide/index.html#Private-property-names-essential
$_initResizeEvent() {
window.addEventListener('resize', this.$_resizeHandler)
},
$_destroyResizeEvent() {
window.removeEventListener('resize', this.$_resizeHandler)
},
$_sidebarResizeHandler(e) {
if (e.propertyName === 'width') {
this.$_resizeHandler()
}
},
$_initSidebarResizeEvent() {
this.$_sidebarElm = document.getElementsByClassName('sidebar-container')[0]
this.$_sidebarElm && this.$_sidebarElm.addEventListener('transitionend', this.$_sidebarResizeHandler)
},
$_destroySidebarResizeEvent() {
this.$_sidebarElm && this.$_sidebarElm.removeEventListener('transitionend', this.$_sidebarResizeHandler)
}
}
}
... ...
<template>
<div class="dashboard-editor-container">
<github-corner class="github-corner" />
<panel-group @handleSetLineChartData="handleSetLineChartData" />
<el-row style="background:#fff;padding:16px 16px 0;margin-bottom:32px;">
<line-chart :chart-data="lineChartData" />
</el-row>
<el-row :gutter="20">
<el-col :span="7">
<div class="chart-wrapper">
<raddar-chart />
</div>
</el-col>
<!-- :xs="24" :sm="24" :lg="8"-->
<el-col :span="7">
<div class="chart-wrapper">
<pie-chart />
</div>
</el-col>
<el-col :span="7">
<div class="chart-wrapper">
<bar-chart />
</div>
</el-col>
</el-row>
<!-- <el-row :gutter="8">-->
<!-- <el-col :xs="{span: 24}" :sm="{span: 24}" :md="{span: 24}" :lg="{span: 12}" :xl="{span: 12}" style="padding-right:8px;margin-bottom:30px;">-->
<!-- <transaction-table />-->
<!-- </el-col>-->
<!-- <el-col :xs="{span: 24}" :sm="{span: 12}" :md="{span: 12}" :lg="{span: 6}" :xl="{span: 6}" style="margin-bottom:30px;">-->
<!-- <todo-list />-->
<!-- </el-col>-->
<!-- <el-col :xs="{span: 24}" :sm="{span: 12}" :md="{span: 12}" :lg="{span: 6}" :xl="{span: 6}" style="margin-bottom:30px;">-->
<!-- <box-card />-->
<!-- </el-col>-->
<!-- </el-row>-->
</div>
</template>
<script>
import GithubCorner from '../../components/GithubCorner'
import PanelGroup from './components/PanelGroup'
import LineChart from './components/LineChart'
import RaddarChart from './components/RaddarChart'
import PieChart from './components/PieChart'
import BarChart from './components/BarChart'
import TransactionTable from './components/TransactionTable'
import TodoList from './components/TodoList'
import BoxCard from './components/BoxCard'
const lineChartData = {
newVisitis: {
expectedData: [100, 120, 161, 134, 105, 160, 165],
actualData: [120, 82, 91, 154, 162, 140, 145]
},
messages: {
expectedData: [200, 192, 120, 144, 160, 130, 140],
actualData: [180, 160, 151, 106, 145, 150, 130]
},
purchases: {
expectedData: [80, 100, 121, 104, 105, 90, 100],
actualData: [120, 90, 100, 138, 142, 130, 130]
},
shoppings: {
expectedData: [130, 140, 141, 142, 145, 150, 160],
actualData: [120, 82, 91, 154, 162, 140, 130]
}
}
export default {
name: 'DashboardAdmin',
components: {
GithubCorner,
PanelGroup,
LineChart,
RaddarChart,
PieChart,
BarChart,
TransactionTable,
TodoList,
BoxCard
},
data() {
return {
lineChartData: lineChartData.newVisitis
}
},
methods: {
handleSetLineChartData(type) {
this.lineChartData = lineChartData[type]
}
}
}
</script>
<style lang="scss" scoped>
.dashboard-editor-container {
padding: 32px;
background-color: rgb(240, 242, 245);
position: relative;
.github-corner {
position: absolute;
top: 0px;
border: 0;
right: 0;
}
.chart-wrapper {
background: #fff;
padding: 16px 16px 0;
margin-bottom: 32px;
}
}
@media (max-width:1024px) {
.chart-wrapper {
padding: 6px;
}
}
</style>
... ...
... ... @@ -316,7 +316,7 @@
</el-table-column>
<el-table-column label="操作人" width="100">
<template slot-scope="scope">
{{scope.row.operusername}}
{{scope.row.opersystemname}}
</template>
</el-table-column>
</el-table>
... ... @@ -460,7 +460,10 @@
goodsname: undefined,
customcode: undefined,
arrivetime: undefined,
messageType: 'MT3201'
messageType: 'MT3201',
user :{
username : JSON.parse(sessionStorage.getItem('user')).username
}
},
respModel: {
uuid: undefined,
... ... @@ -627,7 +630,10 @@
this.arriveModel.customcode = row.customcode
this.dialogStatus = 'create'
this.fenStatus = 'addAwbh'
this.dialogFormVisible = true
this.dialogFormVisible = true,
row.user = {
username: JSON.parse(sessionStorage.getItem('user')).username
}
this.$nextTick(() => {
this.$refs.arriveFormData.clearValidate()
})
... ... @@ -664,6 +670,9 @@
goodsname: undefined,
customcode: undefined,
arrivetime: undefined,
user: {
username: JSON.parse(sessionStorage.getItem('user')).username
}
}
},
// 编辑
... ... @@ -683,7 +692,11 @@
})
},
updateData() {
var _this = this
this.$refs.arriveFormData.validate(valid => {
_this.arriveModel.user= {
username : JSON.parse(sessionStorage.getItem('user')).username
}
if (valid) {
updateMT3201(this.arriveModel).then(res => {
if (res.data.count > 0) {
... ... @@ -710,6 +723,11 @@
}
delete row.parent
delete row.children
row.user = {
username : JSON.parse(sessionStorage.getItem('user')).username
}
sendCreateMt3201(row).then(res => {
if (res.data.count > 0) {
Message.success(res.data.respMessage)
... ... @@ -735,7 +753,8 @@
awba: undefined,
customCode: undefined,
flightDate: undefined,
awbh: undefined
awbh: undefined,
username: JSON.parse(sessionStorage.getItem('user')).username,
}
this.dialogDeleteVisible = true
this.respModel.flightNo = row.flightno
... ...
... ... @@ -77,7 +77,7 @@
<span>{{scope.row.loadingtime}}</span>
</template>
</el-table-column>
<el-table-column label="状态" width="100" align="center">
<el-table-column label="状态" width="200" align="center">
<template slot-scope="scope">
<span v-if="scope.row.status ==='01'">接受申报</span>
<span v-if="scope.row.status ==='02'">待人工审核</span>
... ... @@ -101,7 +101,7 @@
<span v-if="scope.row.status ==='25'">已发送修改报</span>
</template>
</el-table-column>
<el-table-column label="回执信息" width="180" align="center">
<el-table-column label="回执信息" width="270" align="center">
<template slot-scope="scope">
<span>{{scope.row.ext5}}</span>
</template>
... ...
... ... @@ -89,22 +89,28 @@
<span>{{ scope.row.actime }}</span>
</template>
</el-table-column>
<el-table-column label="状态" width="90px" align="center">
<el-table-column label="状态" width="130px" align="center">
<template slot-scope="scope">
<span v-if="scope.row.status ==='01'">未发送</span>
<span v-if="scope.row.status ==='02'">已发舱单报</span>
<span v-if="scope.row.status ==='01'">接受申报</span>
<span v-if="scope.row.status ==='02'">待人工审核</span>
<span v-if="scope.row.status ==='03'">退单</span>
<span v-if="scope.row.status ==='05'">舱单报退单</span>
<span v-if="scope.row.status ==='06'">舱单转人工</span>
<span v-if="scope.row.status ==='07'">舱单报申报成功</span>
<span v-if="scope.row.status ==='08'">已发舱单删除报</span>
<span v-if="scope.row.status ==='09'">舱单删除报退单</span>
<span v-if="scope.row.status ==='10'">舱单删除报转人工</span>
<span v-if="scope.row.status ==='11'">舱单删除成功</span>
<span v-if="scope.row.status ==='12'">已发舱单修改报</span>
<span v-if="scope.row.status ==='13'">舱单修改报退单</span>
<span v-if="scope.row.status ==='11'">放行</span>
<span v-if="scope.row.status ==='12'">拒装</span>
<span v-if="scope.row.status ==='13'">禁卸</span>
<span v-if="scope.row.status ==='14'">舱单修改报转人工</span>
<span v-if="scope.row.status ==='15'">舱单修改报成功</span>
<span v-if="scope.row.status ==='16'">海关已存在</span>
<span v-if="scope.row.status ==='21'">可自动发送</span>
<span v-if="scope.row.status ==='22'">未发送</span>
<span v-if="scope.row.status ==='23'">已发送新增报</span>
<span v-if="scope.row.status ==='24'">已发送删除报</span>
<span v-if="scope.row.status ==='25'">已发送修改报</span>
</template>
</el-table-column>
<el-table-column label="回执内容" align="center" show-overflow-tooltip>
... ...
... ... @@ -41,6 +41,16 @@
size="mini"
@click="handleAddpre">新增预配舱单
</el-button>
<el-upload
style="display: inline; margin-left: 10px;margin-right: 10px;"
action=""
:http-request="uploadFile"
:limit=1
:on-exceed="fileExceed"
accept="application/vnd.ms-excel,application/vnd.ms-excels"
ref="fileupload">
<el-button slot="trigger" size="small" type="primary">导入excel</el-button>
</el-upload>
</div>
</div>
</el-col>
... ... @@ -158,10 +168,10 @@
<pagination background layout="total, prev, pager, next" v-show="total>0" :total="total" :page.sync="preQuery.pageSize" :limit.sync="preQuery.limitSize"
@pagination="getList"/>
<el-dialog :title="dialogMap[dialogStatus]" :visible.sync="dialogFormVisible" width="85%">
<el-dialog top="5vh" :title="dialogMap[dialogStatus]" :visible.sync="dialogFormVisible" width="90%">
<el-form ref="preFormData" :model="preModel" :rules="preRoles" label-position="right"
label-width="120px" class="el-dialog-div">
<div class="grid-content content">
label-width="78px" size="mini" class="el-dialog-div" style="height: 90%">
<div class="grid-content content" style="font-size: 10px">
运单信息
</div>
<el-row>
... ... @@ -176,7 +186,7 @@
</el-form-item>
</el-col>
</el-row>
<div class="grid-content content">
<div class="grid-content content" style="font-size: 10px">
航班信息
</div>
<el-row>
... ... @@ -198,9 +208,6 @@
type="date" placeholder="请输入航班日期" clearable/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="7.5">
<el-form-item label="起始站" prop="originstation">
<el-select
... ... @@ -234,102 +241,91 @@
</el-form-item>
</el-col>
</el-row>
<div class="grid-content content">
<div class="grid-content content" style="font-size: 10px">
航程信息
</div>
<div>
<el-row>
<el-col :span="7.5">
<el-col :span="3">
<el-form-item label="承运人" prop="carrier">
<el-input v-model="carrier" disabled clearable/>
</el-form-item>
</el-col>
<el-col :span="7.5">
<el-col :span="3">
<el-form-item label="到达航站" prop="destinationstation">
<el-input v-model="destinationstation" disabled clearable/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="7.5">
<el-col :span="3">
<el-form-item label="承运人1">
<el-input v-model="by1" clearable/>
</el-form-item>
</el-col>
<el-col :span="7.5">
<el-col :span="3">
<el-form-item label="到达航站1">
<el-input v-model="dest1" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="7.5">
<el-col :span="3">
<el-form-item label="承运人2">
<el-input v-model="by2" clearable/>
</el-form-item>
</el-col>
<el-col :span="7.5">
<el-col :span="3">
<el-form-item label="到达航站2">
<el-input v-model="dest2" clearable/>
</el-form-item>
</el-col>
</el-row>
</div>
<div class="grid-content content">
<div class="grid-content content" style="font-size: 10px">
货物信息
</div>
<el-row>
<el-col :span="7.5">
<el-col :span="3">
<el-form-item label="运单件数" prop="awbinfo.pcs">
<el-input v-model="preModel.awbinfo.pcs" clearable/>
</el-form-item>
</el-col>
<el-col :span="7.5">
<el-col :span="3">
<el-form-item label="运单重量" prop="awbinfo.weight">
<el-input v-model="preModel.awbinfo.weight" clearable/>
</el-form-item>
</el-col>
<el-col :span="7.5">
<el-col :span="3">
<el-form-item label="货物描述" prop="goodsname">
<el-input v-model="goodsname" clearable/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="7.5" v-if="fenStatus !=='addAwbh'">
<el-col :span="3" v-if="fenStatus !=='addAwbh'">
<el-form-item label="预配件数" prop="piece">
<el-input v-model="preModel.piece" clearable/>
</el-form-item>
</el-col>
<el-col :span="8" v-if="fenStatus ==='addAwbh'">
<el-col :span="14">
<el-col :span="3" v-if="fenStatus ==='addAwbh'">
<el-form-item label="预配件数" prop="piece">
<el-input v-model="preModel.piece" clearable/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="1.5" v-if="fenStatus ==='addAwbh'">
<span>剩余件数:{{awbPiece}}</span>
</el-col>
</el-col>
<el-col :span="7.5" v-if="fenStatus !=='addAwbh'">
<el-col :span="3" v-if="fenStatus !=='addAwbh'">
<el-form-item label="预配重量" prop="weight">
<el-input v-model="preModel.weight" clearable/>
</el-form-item>
</el-col>
<el-col :span="8" v-if="fenStatus ==='addAwbh'">
<el-col :span="14">
<el-col :span="3" v-if="fenStatus ==='addAwbh'">
<el-form-item label="预配重量" prop="weight">
<el-input v-model="preModel.weight" clearable/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="1.5" v-if="fenStatus ==='addAwbh'">
<span>剩余重量:{{awbWeight}}</span>
</el-col>
</el-col>
<el-col :span="7.5">
<el-col :span="3">
<el-form-item label="预配时间" prop="actime">
<el-date-picker value-format="yyyy-MM-dd HH:mm:ss"
v-model="preModel.actime" align="right"
... ... @@ -338,7 +334,7 @@
</el-col>
</el-row>
<el-row>
<el-col :span="7.5">
<el-col :span="3">
<el-form-item label="关区代码" prop="customcode">
<el-select v-model="preModel.customcode" placeholder="请选择关区代码"
filterable clearable :remote-method="remoteMethodCustomCode" :loading="customLoading" remote
... ... @@ -351,7 +347,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="7.5">
<el-col :span="3">
<el-form-item label="海关状态">
<el-select v-model="preModel.awbinfo.awbtype" class="filter-item" placeholder="请录入货物类型">
<el-option v-for="item in customTypes" :key="item.value" :label="item.label"
... ... @@ -359,7 +355,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="7.5">
<el-col :span="3">
<el-form-item label="付费方式" prop="awbinfo.paymodel">
<el-select v-model="preModel.awbinfo.paymodel" class="filter-item" placeholder="付费方式">
<el-option
... ... @@ -370,67 +366,57 @@
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="7.5">
<el-col :span="3">
<el-form-item label="卸货地" prop="">
<el-input v-model="specopeid" clearable/>
</el-form-item>
</el-col>
<el-col :span="7.5">
<el-form-item label="代理人代码" prop="">
<el-col :span="3">
<el-form-item label-width="95px" label="代理人代码" prop="">
<el-input v-model="preModel.awbinfo.shpcustomerid" clearable/>
</el-form-item>
</el-col>
<el-col :span="7.5">
<el-form-item label="代理人名称" prop="">
<el-col :span="3">
<el-form-item label-width="95px" label="代理人名称" prop="">
<el-input v-model="preModel.awbinfo.shpcustomerid" clearable/>
</el-form-item>
</el-col>
</el-row>
<el-row>
</el-row>
<div class="grid-content content">
<div class="grid-content content" style="font-size: 10px">
发货人信息
</div>
<el-row>
<el-col :span="7.5">
<el-form-item label="发货人名称" prop="awbinfo.shprname">
<el-col :span="3">
<el-form-item label-width="95px" label="发货人名称" prop="awbinfo.shprname">
<el-input v-model="shprname" clearable/>
</el-form-item>
</el-col>
<el-col :span="7.5">
<el-col :span="3">
<el-form-item label="地址" prop="awbinfo.shpraddress">
<el-input v-model="shpraddress" clearable/>
<el-input style="width: 100px" v-model="shpraddress" clearable/>
</el-form-item>
</el-col>
<el-col :span="7.5">
<el-col :span="2">
<el-form-item label="城市代码">
<el-input v-model="scityid" maxlength="5" clearable/>
<el-input style="width: 100px" v-model="scityid" maxlength="5" clearable/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="7.5">
<el-col :span="3">
<el-form-item label="电话" prop="awbinfo.shprtel">
<el-input v-model="preModel.awbinfo.shprtel" clearable/>
<el-input style="width: 150px" v-model="preModel.awbinfo.shprtel" clearable/>
</el-form-item>
</el-col>
<el-col :span="7.5">
<el-col :span="3">
<el-form-item label="传真">
<el-input v-model="preModel.awbinfo.shprmobiletype" clearable/>
</el-form-item>
</el-col>
<el-col :span="7.5">
<el-form-item label="发货人AEO编码" prop="awbinfo.shpaeocode">
<el-col :span="3">
<el-form-item label-width="115px" label="发货人AEO编码" prop="awbinfo.shpaeocode">
<el-input v-model="shpaeocode" clearable/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="7.5">
<el-col :span="3">
<el-form-item label="国家代码" prop="awbinfo.shprcountyr">
<el-select
:remote-method="remoteMethod"
... ... @@ -471,45 +457,41 @@
<!--</el-form-item>-->
<!--</el-col>-->
</el-row>
<div class="grid-content content">
<div class="grid-content content" style="font-size: 10px">
收货人信息
</div>
<el-row>
<el-col :span="7.5">
<el-form-item label="收货人名称" prop="awbinfo.cnsnname">
<el-col :span="3">
<el-form-item label-width="95px" label="收货人名称" prop="awbinfo.cnsnname">
<el-input v-model="cnsnname" clearable/>
</el-form-item>
</el-col>
<el-col :span="7.5">
<el-col :span="3">
<el-form-item label="地址" prop="awbinfo.cnsnaddress">
<el-input v-model="cnsnaddress" clearable/>
<el-input style="weight: 100px" v-model="cnsnaddress" clearable/>
</el-form-item>
</el-col>
<el-col :span="7.5">
<el-col :span="3">
<el-form-item label="城市代码">
<el-input v-model="ecityid" clearable maxlength="5"/>
<el-input style="width: 100px" v-model="ecityid" clearable maxlength="5"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="7.5">
<el-col :span="3">
<el-form-item label="电话" prop="awbinfo.cnsntel">
<el-input v-model="preModel.awbinfo.cnsntel" clearable/>
<el-input style="weight: 150px" v-model="preModel.awbinfo.cnsntel" clearable/>
</el-form-item>
</el-col>
<el-col :span="7.5">
<el-col :span="3">
<el-form-item label="传真">
<el-input v-model="preModel.awbinfo.cnsrmobiletype" clearable/>
</el-form-item>
</el-col>
<el-col :span="7.5">
<el-form-item label="收货人AEO编码" prop="awbinfo.cnsaeocode">
<el-col :span="3">
<el-form-item label-width="115px" label="收货人AEO编码" prop="awbinfo.cnsaeocode">
<el-input v-model="cnsaeocode" clearable/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="7.5">
<el-col :span="3">
<el-form-item label="国家代码" prop="awbinfo.cnscountyr">
<el-select
:remote-method="remoteMethod"
... ... @@ -530,13 +512,13 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="7.5">
<el-form-item label="具体收货人名称" prop="awbinfo.cnsrctcname">
<el-col :span="3">
<el-form-item label-width="115px" label="具体收货人名称" prop="awbinfo.cnsrctcname">
<el-input v-model="cnsrctcname" clearable/>
</el-form-item>
</el-col>
<el-col :span="7.5">
<el-form-item label="具体收货人电话" prop="awbinfo.cnsrctctel">
<el-col :span="4">
<el-form-item label-width="115px" label="具体收货人电话" prop="awbinfo.cnsrctctel">
<el-input v-model="preModel.awbinfo.cnsrctctel" clearable/>
</el-form-item>
</el-col>
... ... @@ -630,7 +612,7 @@
</el-table-column>
<el-table-column label="操作人" width="100">
<template slot-scope="scope">
{{scope.row.operusername}}
{{scope.row.opersystemname}}
</template>
</el-table-column>
</el-table>
... ... @@ -672,7 +654,8 @@
addMt2201,
sendCreateMt2201,
sendDeleteMt2201,
sendUpdateMt2201
sendUpdateMt2201,
uploadFileExcel
} from '@/api/exitPre'
import {Message} from "element-ui";
import {getResponseForParam} from '@/api/responseDetail'
... ... @@ -853,6 +836,9 @@
csgcustomerid: undefined,
paymodel: '0',
awbtype: undefined
},
user: {
username: this.username
}
},
respModel: {
... ... @@ -1134,6 +1120,7 @@
} else {
getMt2201ListForParam(this.preQuery).then(res => {
this.preData = res.data.dataList
this.total = res.data.count
setTimeout(() => {
this.listLoading = false
... ... @@ -1199,11 +1186,16 @@
eairportid: undefined,
csgcustomerid: undefined,
paymodel: '0',
},
user: {
username : JSON.parse(sessionStorage.getItem('user')).username
}
}
},
// >>>>>>>>>>>>>>>>新增主单<<<<<<<<<<<<<<<<<<
handleAddpreInfo() {
this.fenStatus=undefined;
this.restModel()
this.preModel.carrier = this.preQuery.carrier
this.preModel.flightno = this.preQuery.flightno
... ... @@ -1274,6 +1266,9 @@
if (row.awbh === null) {
row.awbh = ''
}
row.user = {
username : JSON.parse(sessionStorage.getItem('user')).username
}
sendCreateMt2201(row).then(res => {
if (res.data.count > 0) {
Message.success(res.data.respMessage)
... ... @@ -1295,7 +1290,8 @@
},
// >>>>>>>>>>>>>>>>更新运单数据<<<<<<<<<<<<<<<<<<
handleEdit(row) {
console.log(row)
this.dialogStatus = undefined;
this.fenStatus = undefined;
this.preModel = Object.assign({}, row)
this.dialogStatus = 'update'
if (row.awbh !== undefined && row.awbh !== ""){
... ... @@ -1308,11 +1304,16 @@
})
},
updateData() {
let _this = this;
this.$refs.preFormData.validate(valid => {
if (valid) {
delete this.preModel.parent
delete this.preModel.children
updateMT2201(this.preModel).then(res => {
_this.preModel.user= {
username : JSON.parse(sessionStorage.getItem('user')).username
}
updateMT2201(_this.preModel).then(res => {
if (res.data.count > 0) {
Message.success("修改成功")
this.dialogFormVisible = false
... ... @@ -1358,6 +1359,8 @@
const reason = this.preModel.reason
const contactName = this.preModel.contactName
const contactTel = this.preModel.contactTel
const username = JSON.parse(sessionStorage.getItem('user')).username
this.$refs.preFormData.validate(valid =>{
if(valid){
... ... @@ -1369,6 +1372,7 @@
'reason' : reason,
'contactName': contactName,
'contactTel': contactTel,
'username': username,
}
sendUpdateMt2201(map).then(res =>{
if(res.data.count >0){
... ... @@ -1396,7 +1400,8 @@
awba: undefined,
customCode: undefined,
flightDate: undefined,
awbh: ''
awbh: '',
username: JSON.parse(sessionStorage.getItem('user')).username,
}
this.rows = row;
this.dialogDeleteVisble = true
... ... @@ -1613,6 +1618,23 @@
handelBackStep() {
this.preQuery.messageType = 'MT2201'
this.$router.push({name: '出港航班信息', params: {scopeRow: this.preQuery}})
},
// 导入excel
fileExceed(){
this.$message.error('别贪心!一次只能上传一个哦~');
},
// 自定义上传
uploadFile (item) {
const form = new FormData()
form.append('file', item.file)
uploadFileExcel(form).then(res =>{
if(res.data.count >0){
Message.success(res.data.respMessage)
this.getList();
}else {
Message.error(res.data.respMessage)
}
})
}
}
}
... ...
... ... @@ -87,12 +87,13 @@
</el-table-column>
<el-table-column label="状态" width="100" align="center">
<template slot-scope="scope">
<span v-if="scope.row.status ==='01'">未发送</span>
<span v-if="scope.row.status ==='01'">接受申报</span>
<span v-if="scope.row.status ==='02'">待人工审核</span>
<span v-if="scope.row.status ==='03'">退单</span>
<span v-if="scope.row.status ==='05'">舱单报退单</span>
<span v-if="scope.row.status ==='06'">舱单转人工</span>
<span v-if="scope.row.status ==='07'">舱单报申报成功</span>
<span v-if="scope.row.status ==='08'">已发舱单删除报</span>
<span v-if="scope.row.status ==='09'">舱单删除报退单</span>
<span v-if="scope.row.status ==='10'">舱单删除报转人工</span>
<span v-if="scope.row.status ==='11'">放行</span>
... ... @@ -323,7 +324,7 @@
</el-table-column>
<el-table-column label="操作人" width="100">
<template slot-scope="scope">
{{scope.row.operusername}}
{{scope.row.opersystemname}}
</template>
</el-table-column>
</el-table>
... ... @@ -466,6 +467,9 @@
awbpiece: undefined,
awbweight: undefined,
rcfdep: 'MT5202',
user: {
username : JSON.parse(sessionStorage.getItem('user')).username
}
},
respModel : {
uuid: undefined,
... ... @@ -646,7 +650,9 @@
cancelButtonText: '取消'
}).then(() => {
console.log(row)
row.user = {
username : JSON.parse(sessionStorage.getItem('user')).username
}
sendCreateMt5202(row).then(res => {
if (res.data.count > 0) {
Message.success(res.data.respMessage)
... ... @@ -707,6 +713,7 @@
flightDate: undefined,
awbh: undefined,
rcfdep: 'MT5202',
username: JSON.parse(sessionStorage.getItem('user')).username,
}
this.dialogDeleteVisible = true
this.respModel.carrier = row.carrier
... ... @@ -824,6 +831,9 @@
awbpiece: undefined,
awbweight: undefined,
rcfdep: 'MT5202',
user: {
username: JSON.parse(sessionStorage.getItem('user')).username
}
}
},
// 新增出港理货弹框
... ... @@ -846,6 +856,7 @@
// 新增出港理货请求
createData() {
this.$refs.tidyFormData.validate(valid => {
console.log(this.tidyModel)
if (valid) {
addMt520X(this.tidyModel).then(res => {
if (res.data.count > 0) {
... ... @@ -875,10 +886,16 @@
},
// 更新出港理货请求
updateData() {
let _this = this;
this.$refs.tidyFormData.validate(valid => {
if (valid) {
delete this.tidyModel.parent
delete this.tidyModel.children
_this.tidyModel.user= {
username : JSON.parse(sessionStorage.getItem('user')).username
}
updateMt520X(this.tidyModel).then(res => {
console.log(res.data)
if (res.data.count > 0) {
... ...
... ... @@ -533,6 +533,7 @@
<script>
import{addResponse,selectResponseList} from "../../api/InResponse";
import { QueryData,ediAllocat,sendCreateMt6202,sendRemoveMt6202,sendCreateMt3202,sendRemoveMt3202 } from '../../api/Allocat'
import loginUserInfo from '@/api/base'
export default{
data(){
return{
... ... @@ -790,7 +791,7 @@
},
//发送分拨申请报
importSend(index,row){
const map = {'mt6202':row}
const map = {'mt6202':row,'username':loginUserInfo.username}
sendCreateMt6202(map).then(res=>{
let response=res.data;
//console.log(res);
... ... @@ -839,7 +840,8 @@
'reason' :this.Udform.operreason,
'contactName':this.Udform.operperson,
'contactTel':this.Udform.opertel,
'carrier':this.rows.carrier}
'carrier':this.rows.carrier,
'username':loginUserInfo.username}
if(this.rows.turntype=='MT6202'){
sendRemoveMt6202(map).then(res=>{
let response=res.data;
... ... @@ -889,7 +891,7 @@
//发送分拨运抵报
arriveSend(index,row){
const map = {'mt3202':row}
const map = {'mt3202':row,'username':loginUserInfo.username}
sendCreateMt3202(map).then(res=>{
let response=res.data;
//console.log(res);
... ...
... ... @@ -160,6 +160,7 @@
/*加载默认参数*/
getDefaultData(){
if(this.$route.query!=null){
console.log(this.$route.query)
this.ruleForm.flightno=JSON.parse(this.$route.query.flightno);
this.ruleForm.flightdate=JSON.parse(this.$route.query.flightdate);
this.ruleForm.originstation=JSON.parse(this.$route.query.originstation);
... ...
... ... @@ -645,7 +645,7 @@
<el-dialog title="回执明细列表" :visible.sync="dialogTableVisible" width="70%">
<el-table :data="gridData">
<el-table-column property="busdate" label="时间" width="160"></el-table-column>
<el-table-column property="username" label="操作人" width="130"></el-table-column>
<el-table-column property="operusername" label="操作人" width="130"></el-table-column>
<el-table-column property="buspiece" label="发送件数" width="130"></el-table-column>
<el-table-column property="busweight" label="发送重量" width="130"></el-table-column>
<el-table-column property="cusrestext" label="回执内容"></el-table-column>
... ... @@ -721,7 +721,8 @@
import{addResponse,selectResponseList} from "../../api/InResponse";
import FileSaver from "file-saver";
import XLSX from "xlsx";
import htmlToPdf from "../../api/htmlToPdf"
import htmlToPdf from "../../api/htmlToPdf";
import loginUserInfo from '@/api/base.js'
export default {
data() {
/*初始数据*/
... ... @@ -733,6 +734,7 @@
destinationstation: undefined,
awba: undefined
},
LoginUserInfo: loginUserInfo,
FenQuery:{
flightno: undefined,
flightdate: undefined,
... ... @@ -767,6 +769,7 @@
weight: undefined,
goodsname: undefined,
splitcode: 'T',
isDelete:0,
uldType: undefined,
uldNo: undefined,
status: '22',
... ... @@ -804,6 +807,9 @@
weight: undefined,
awbtype:'001',
},
userinfo: {
username: '11111'
},
waybill:undefined,
customText:undefined
},
... ... @@ -927,6 +933,7 @@
this.dialogTableVisible=true;
let response=res.data.data;
this.gridData=response;
console.log(response)
});
},
//更改状态
... ... @@ -986,8 +993,8 @@
this.dialogStatus='update';
this.FenStatus='ediAwbh';
this.ruleForm=row;
this.ruleForm.originstation=row.originstation+"-"+row.destinationstation;
this.ruleForm.flightno=row.carrier+row.flightno;
this.ruleForm.originstation=this.defaultQuery.originstation+"-"+this.defaultQuery.destinationstation;
this.ruleForm.flightno=this.defaultQuery.flightno;
this.FenQuery.awba=row.awba;
this.FenQuery.flightno= row.flightno;
this.FenQuery.flightdate=row.flightdate
... ... @@ -1012,7 +1019,7 @@
}else{
row.flightno=row.flightno;
}
const map = {'mt1201':row}
const map = {'mt1201':row,'username':loginUserInfo.username}
sendCreateMt1201(map).then(res=>{
let response=res.data;
//console.log(res);
... ... @@ -1062,7 +1069,8 @@
'reason' :this.Udform.operreason,
'contactName':this.Udform.operperson,
'contactTel':this.Udform.opertel,
'carrier':this.Udform.carrier}
'carrier':this.Udform.carrier,
'username':loginUserInfo.username}
sendRemoveMt1201(map).then(res=>{
let response=res.data;
//console.log(res);
... ... @@ -1116,7 +1124,8 @@
const map = {'mt1201':this.temprows,
'reason' :this.Udform.operreason,
'contactName':this.Udform.operperson,
'contactTel':this.Udform.opertel}
'contactTel':this.Udform.opertel,
'username':loginUserInfo.username}
sendEditeMt1201(map).then(res=>{
let response=res.data;
//console.log(res);
... ... @@ -1158,6 +1167,7 @@
this.defaultQuery.originstation = JSON.parse(this.$route.query.originstation);
this.defaultQuery.destinationstation = JSON.parse(this.$route.query.destinationstation);
this.defaultQuery.awba=JSON.parse(this.$route.query.awba);
},
/*获取默认数据列表*/
getList(){
... ... @@ -1172,7 +1182,7 @@
if(item.awba!=null&&item.awbh=="");
this.sumNmmsCount=Number(this.sumNmmsCount)+1;
this.sumNmmsPrice=Number(this.sumNmmsPrice)+Number(item.piece);
this.sumNmmsWeight=Number(this.sumNmmsWeight)+Number(item.weight);
this.sumNmmsWeight=Number(Number(this.sumNmmsWeight)+Number(item.weight)).toFixed(2);
})
});
},
... ... @@ -1229,25 +1239,29 @@
this.FenStatus='addAwbh';
},
//新增原始舱单数据
createData(formName){
createData:function(formName){
let _this = this;
this.$refs[formName].validate((valid) => {
if (valid) {
this.ruleForm.status='22'
addMt1201(this.ruleForm).then(res=>{
_this.ruleForm.userinfo = {
username: ''
}
_this.ruleForm.userinfo.username=_this.LoginUserInfo.username;
_this.ruleForm.status='22';
addMt1201(_this.ruleForm).then(res=>{
let response=res.data;
//console.log(res);
this.code=response.code;
if(this.code=='200'){
this.outerVisible = false;
this.$refs[formName].resetFields();
this.centerDialogVisible=true;
this.msg=response.msg;
this.getList();
_this.code=response.code;
if(_this.code=='200'){
_this.outerVisible = false;
_this.$refs[formName].resetFields();
_this.centerDialogVisible=true;
_this.msg=response.msg;
_this.getList();
}else{
this.outerVisible = false;
this.centerDialogVisible=true;
this.$refs[formName].resetFields();
this.msg=response.msg;
_this.outerVisible = false;
_this.centerDialogVisible=true;
_this.$refs[formName].resetFields();
_this.msg=response.msg;
}
});
} else {
... ... @@ -1258,22 +1272,27 @@
},
//修改原始舱单数据
updateData(formName){
updateData: function(formName){
let _this = this;
this.$refs[formName].validate((valid) => {
if (valid) {
ediMt1201(this.ruleForm).then(res=>{
_this.ruleForm.userinfo = {
username: ''
}
_this.ruleForm.userinfo.username=_this.LoginUserInfo.username;
ediMt1201(_this.ruleForm).then(res=>{
let response=res.data;
//console.log(res);
this.code=response.code;
if(this.code=='200'){
this.outerVisible = false;
this.centerDialogVisible=true;
this.msg=response.msg;
this.getList();
_this.code=response.code;
if(_this.code=='200'){
_this.outerVisible = false;
_this.centerDialogVisible=true;
_this.msg=response.msg;
_this.getList();
}else{
this.outerVisible = false;
this.centerDialogVisible=true;
this.msg=response.msg;
_this.outerVisible = false;
_this.centerDialogVisible=true;
_this.msg=response.msg;
}
});
} else {
... ... @@ -1301,8 +1320,9 @@
this.$router.push({name:'分拨运抵',params:{carrier:row.carrier,flightno:row.flightno,awba:row.awba,flightdate:row.flightdate,
turnpiece:row.awbinfo.pcs,turnweight:row.awbinfo.weight,customcode:row.customcode,goodsname:row.goodsname}});
},
//返回上一层
back(){
this.$router.go(-1);//返回上一层
this.$router.go(-1);
},
},
... ...
... ... @@ -441,6 +441,7 @@
<script>
import{addResponse,selectResponseList} from "../../api/InResponse";
import { getMt5201List,addMt5201,ediMt5201,delMt5201,sendCreateMt520x,sendRemoveMt520x,selectCustomcode} from '../../api/mt5201'
import loginUserInfo from '@/api/base'
export default {
data() {
return {
... ... @@ -451,6 +452,7 @@
destinationstation:undefined,
awba:undefined,
},
LoginUserInfo: loginUserInfo,
tableData: [],
tableData2: [],
multipleSelection: [],
... ... @@ -482,7 +484,10 @@
isdelete:undefined,
pcs:undefined,
wei:undefined,
ext5:undefined
ext5:undefined,
userinfo: {
username: '11111'
},
},
FenStatus:'',
rules: {
... ... @@ -613,7 +618,7 @@
if(row.awbh==null){
row.awbh="";
}
const map = {'mt520x':row}
const map = {'mt520x':row,'username':loginUserInfo.username}
sendCreateMt520x(map).then(res=>{
let response=res.data;
//console.log(res);
... ... @@ -667,7 +672,8 @@
'contactName':this.Udform.operperson,
'contactTel':this.Udform.opertel,
'rcfdep':this.rows.rcfdep,
'carrier':this.rows.carrier}
'carrier':this.rows.carrier,
'username':loginUserInfo.username}
sendRemoveMt520x(map).then(res=>{
let response=res.data;
//console.log(res);
... ... @@ -756,25 +762,30 @@
this.ruleForm.destinationstation=JSON.parse(this.$route.query.destinationstation);
},
//新增原始舱单数据
createData(formName){
createData:function(formName){
let _this = this;
this.$refs[formName].validate((valid) => {
if (valid) {
this.ruleForm.status='22';
_this.ruleForm.userinfo = {
username: ''
}
_this.ruleForm.userinfo.username=_this.LoginUserInfo.username;
_this.ruleForm.status='22';
//this.ruleForm.endtime=this.ruleForm.starttime.add(Calendar.MINUTE, 15);
addMt5201(this.ruleForm).then(res=>{
addMt5201(_this.ruleForm).then(res=>{
let response=res.data;
this.code=response.code;
if(this.code=='200'){
this.outerVisible = false;
this.$refs[formName].resetFields();
this.centerDialogVisible=true;
this.msg=response.msg;
this.getMt5201List();
_this.code=response.code;
if(_this.code=='200'){
_this.outerVisible = false;
_this.$refs[formName].resetFields();
_this.centerDialogVisible=true;
_this.msg=response.msg;
_this.getMt5201List();
}else{
this.outerVisible = false;
this.centerDialogVisible=true;
this.$refs[formName].resetFields();
this.msg=response.msg;
_this.outerVisible = false;
_this.centerDialogVisible=true;
_this.$refs[formName].resetFields();
_this.msg=response.msg;
}
});
} else {
... ... @@ -784,21 +795,26 @@
});
},
//修改进港理货数据
updateData(formName){
updateData:function(formName){
let _this = this;
this.$refs[formName].validate((valid) => {
if (valid) {
ediMt5201(this.ruleForm).then(res=>{
_this.ruleForm.userinfo = {
username: ''
}
_this.ruleForm.userinfo.username=_this.LoginUserInfo.username;
ediMt5201(_this.ruleForm).then(res=>{
let response=res.data;
this.code=response.code;
if(this.code=='200'){
this.outerVisible = false;
this.centerDialogVisible=true;
this.msg=response.msg;
this.getMt5201List();
_this.code=response.code;
if(_this.code=='200'){
_this.outerVisible = false;
_this.centerDialogVisible=true;
_this.msg=response.msg;
_this.getMt5201List();
}else{
this.outerVisible = false;
this.centerDialogVisible=true;
this.msg=response.msg;
_this.outerVisible = false;
_this.centerDialogVisible=true;
_this.msg=response.msg;
}
});
} else {
... ...