Merge remote-tracking branch 'origin/master'
正在显示
29 个修改的文件
包含
2128 行增加
和
186 行删除
| @@ -12751,6 +12751,11 @@ | @@ -12751,6 +12751,11 @@ | ||
| 12751 | "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.10.tgz", | 12751 | "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.10.tgz", |
| 12752 | "integrity": "sha512-ImThpeNU9HbdZL3utgMCq0oiMzAkt1mcgy3/E6zWC/G6AaQoeuFdsl9nDhTDU3X1R6FK7nsIUuRACVcjI+A2GQ==" | 12752 | "integrity": "sha512-ImThpeNU9HbdZL3utgMCq0oiMzAkt1mcgy3/E6zWC/G6AaQoeuFdsl9nDhTDU3X1R6FK7nsIUuRACVcjI+A2GQ==" |
| 12753 | }, | 12753 | }, |
| 12754 | + "vue-count-to": { | ||
| 12755 | + "version": "1.0.13", | ||
| 12756 | + "resolved": "https://registry.npmjs.org/vue-count-to/-/vue-count-to-1.0.13.tgz", | ||
| 12757 | + "integrity": "sha512-6R4OVBVNtQTlcbXu6SJ8ENR35M2/CdWt3Jmv57jOUM+1ojiFmjVGvZPH8DfHpMDSA+ITs+EW5V6qthADxeyYOQ==" | ||
| 12758 | + }, | ||
| 12754 | "vue-hot-reload-api": { | 12759 | "vue-hot-reload-api": { |
| 12755 | "version": "2.3.3", | 12760 | "version": "2.3.3", |
| 12756 | "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.3.tgz", | 12761 | "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.3.tgz", |
| @@ -26,6 +26,7 @@ | @@ -26,6 +26,7 @@ | ||
| 26 | "nprogress": "^0.2.0", | 26 | "nprogress": "^0.2.0", |
| 27 | "script-loader": "^0.7.2", | 27 | "script-loader": "^0.7.2", |
| 28 | "vue": "^2.2.2", | 28 | "vue": "^2.2.2", |
| 29 | + "vue-count-to": "^1.0.13", | ||
| 29 | "vue-i18n": "^8.14.0", | 30 | "vue-i18n": "^8.14.0", |
| 30 | "vue-router": "^2.3.0", | 31 | "vue-router": "^2.3.0", |
| 31 | "vuex": "^2.0.0-rc.6", | 32 | "vuex": "^2.0.0-rc.6", |
| @@ -23,3 +23,7 @@ export const sendDeleteMt2201 = params =>{return http.post(`${baseUrl}/sendDelet | @@ -23,3 +23,7 @@ export const sendDeleteMt2201 = params =>{return http.post(`${baseUrl}/sendDelet | ||
| 23 | export const sendUpdateMt2201 = params =>{return http.post(`${baseUrl}/sendUpdateMt2201`,params)} | 23 | export const sendUpdateMt2201 = params =>{return http.post(`${baseUrl}/sendUpdateMt2201`,params)} |
| 24 | 24 | ||
| 25 | export const sendCreateMt2201 = params =>{return http.post(`${baseUrl}/sendCreateMt2201`,params)} | 25 | export const sendCreateMt2201 = params =>{return http.post(`${baseUrl}/sendCreateMt2201`,params)} |
| 26 | + | ||
| 27 | +export const uploadFileExcel = params =>{return http.post(`${baseUrl}/uploadFileExcel`,params)} | ||
| 28 | + | ||
| 29 | + |
src/api/remote-search.js
0 → 100644
| 1 | +import request from '@/utils/request' | ||
| 2 | + | ||
| 3 | +export function searchUser(name) { | ||
| 4 | + return request({ | ||
| 5 | + url: '/vue-element-admin/search/user', | ||
| 6 | + method: 'get', | ||
| 7 | + params: { name } | ||
| 8 | + }) | ||
| 9 | +} | ||
| 10 | + | ||
| 11 | +export function transactionList(query) { | ||
| 12 | + return request({ | ||
| 13 | + url: '/vue-element-admin/transaction/list', | ||
| 14 | + method: 'get', | ||
| 15 | + params: query | ||
| 16 | + }) | ||
| 17 | +} |
src/components/GithubCorner/index.vue
0 → 100644
| 1 | +<template> | ||
| 2 | +<!-- href="https://github.com/PanJiaChen/vue-element-admin"--> | ||
| 3 | + <a target="_blank" class="github-corner" aria-label="View source on Github"> | ||
| 4 | + <svg | ||
| 5 | + width="80" | ||
| 6 | + height="80" | ||
| 7 | + viewBox="0 0 250 250" | ||
| 8 | + style="fill:#40c9c6; color:#fff;" | ||
| 9 | + aria-hidden="true" | ||
| 10 | + > | ||
| 11 | + <path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z" /> | ||
| 12 | + <path | ||
| 13 | + 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" | ||
| 14 | + fill="currentColor" | ||
| 15 | + style="transform-origin: 130px 106px;" | ||
| 16 | + class="octo-arm" | ||
| 17 | + /> | ||
| 18 | + <path | ||
| 19 | + 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" | ||
| 20 | + fill="currentColor" | ||
| 21 | + class="octo-body" | ||
| 22 | + /> | ||
| 23 | + </svg> | ||
| 24 | + </a> | ||
| 25 | +</template> | ||
| 26 | + | ||
| 27 | +<style scoped> | ||
| 28 | +.github-corner:hover .octo-arm { | ||
| 29 | + animation: octocat-wave 560ms ease-in-out | ||
| 30 | +} | ||
| 31 | + | ||
| 32 | +@keyframes octocat-wave { | ||
| 33 | + 0%, | ||
| 34 | + 100% { | ||
| 35 | + transform: rotate(0) | ||
| 36 | + } | ||
| 37 | + 20%, | ||
| 38 | + 60% { | ||
| 39 | + transform: rotate(-25deg) | ||
| 40 | + } | ||
| 41 | + 40%, | ||
| 42 | + 80% { | ||
| 43 | + transform: rotate(10deg) | ||
| 44 | + } | ||
| 45 | +} | ||
| 46 | + | ||
| 47 | +@media (max-width:500px) { | ||
| 48 | + .github-corner:hover .octo-arm { | ||
| 49 | + animation: none | ||
| 50 | + } | ||
| 51 | + .github-corner .octo-arm { | ||
| 52 | + animation: octocat-wave 560ms ease-in-out | ||
| 53 | + } | ||
| 54 | +} | ||
| 55 | +</style> |
src/components/PanThumb/index.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <div :style="{zIndex:zIndex,height:height,width:width}" class="pan-item"> | ||
| 3 | + <div class="pan-info"> | ||
| 4 | + <div class="pan-info-roles-container"> | ||
| 5 | + <slot /> | ||
| 6 | + </div> | ||
| 7 | + </div> | ||
| 8 | + <!-- eslint-disable-next-line --> | ||
| 9 | + <div :style="{backgroundImage: `url(${image})`}" class="pan-thumb"></div> | ||
| 10 | + </div> | ||
| 11 | +</template> | ||
| 12 | + | ||
| 13 | +<script> | ||
| 14 | +export default { | ||
| 15 | + name: 'PanThumb', | ||
| 16 | + props: { | ||
| 17 | + image: { | ||
| 18 | + type: String, | ||
| 19 | + required: true | ||
| 20 | + }, | ||
| 21 | + zIndex: { | ||
| 22 | + type: Number, | ||
| 23 | + default: 1 | ||
| 24 | + }, | ||
| 25 | + width: { | ||
| 26 | + type: String, | ||
| 27 | + default: '150px' | ||
| 28 | + }, | ||
| 29 | + height: { | ||
| 30 | + type: String, | ||
| 31 | + default: '150px' | ||
| 32 | + } | ||
| 33 | + } | ||
| 34 | +} | ||
| 35 | +</script> | ||
| 36 | + | ||
| 37 | +<style scoped> | ||
| 38 | +.pan-item { | ||
| 39 | + width: 200px; | ||
| 40 | + height: 200px; | ||
| 41 | + border-radius: 50%; | ||
| 42 | + display: inline-block; | ||
| 43 | + position: relative; | ||
| 44 | + cursor: default; | ||
| 45 | + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); | ||
| 46 | +} | ||
| 47 | + | ||
| 48 | +.pan-info-roles-container { | ||
| 49 | + padding: 20px; | ||
| 50 | + text-align: center; | ||
| 51 | +} | ||
| 52 | + | ||
| 53 | +.pan-thumb { | ||
| 54 | + width: 100%; | ||
| 55 | + height: 100%; | ||
| 56 | + background-position: center center; | ||
| 57 | + background-size: cover; | ||
| 58 | + border-radius: 50%; | ||
| 59 | + overflow: hidden; | ||
| 60 | + position: absolute; | ||
| 61 | + transform-origin: 95% 40%; | ||
| 62 | + transition: all 0.3s ease-in-out; | ||
| 63 | +} | ||
| 64 | + | ||
| 65 | +/* .pan-thumb:after { | ||
| 66 | + content: ''; | ||
| 67 | + width: 8px; | ||
| 68 | + height: 8px; | ||
| 69 | + position: absolute; | ||
| 70 | + border-radius: 50%; | ||
| 71 | + top: 40%; | ||
| 72 | + left: 95%; | ||
| 73 | + margin: -4px 0 0 -4px; | ||
| 74 | + background: radial-gradient(ellipse at center, rgba(14, 14, 14, 1) 0%, rgba(125, 126, 125, 1) 100%); | ||
| 75 | + box-shadow: 0 0 1px rgba(255, 255, 255, 0.9); | ||
| 76 | +} */ | ||
| 77 | + | ||
| 78 | +.pan-info { | ||
| 79 | + position: absolute; | ||
| 80 | + width: inherit; | ||
| 81 | + height: inherit; | ||
| 82 | + border-radius: 50%; | ||
| 83 | + overflow: hidden; | ||
| 84 | + box-shadow: inset 0 0 0 5px rgba(0, 0, 0, 0.05); | ||
| 85 | +} | ||
| 86 | + | ||
| 87 | +.pan-info h3 { | ||
| 88 | + color: #fff; | ||
| 89 | + text-transform: uppercase; | ||
| 90 | + position: relative; | ||
| 91 | + letter-spacing: 2px; | ||
| 92 | + font-size: 18px; | ||
| 93 | + margin: 0 60px; | ||
| 94 | + padding: 22px 0 0 0; | ||
| 95 | + height: 85px; | ||
| 96 | + font-family: 'Open Sans', Arial, sans-serif; | ||
| 97 | + text-shadow: 0 0 1px #fff, 0 1px 2px rgba(0, 0, 0, 0.3); | ||
| 98 | +} | ||
| 99 | + | ||
| 100 | +.pan-info p { | ||
| 101 | + color: #fff; | ||
| 102 | + padding: 10px 5px; | ||
| 103 | + font-style: italic; | ||
| 104 | + margin: 0 30px; | ||
| 105 | + font-size: 12px; | ||
| 106 | + border-top: 1px solid rgba(255, 255, 255, 0.5); | ||
| 107 | +} | ||
| 108 | + | ||
| 109 | +.pan-info p a { | ||
| 110 | + display: block; | ||
| 111 | + color: #333; | ||
| 112 | + width: 80px; | ||
| 113 | + height: 80px; | ||
| 114 | + background: rgba(255, 255, 255, 0.3); | ||
| 115 | + border-radius: 50%; | ||
| 116 | + color: #fff; | ||
| 117 | + font-style: normal; | ||
| 118 | + font-weight: 700; | ||
| 119 | + text-transform: uppercase; | ||
| 120 | + font-size: 9px; | ||
| 121 | + letter-spacing: 1px; | ||
| 122 | + padding-top: 24px; | ||
| 123 | + margin: 7px auto 0; | ||
| 124 | + font-family: 'Open Sans', Arial, sans-serif; | ||
| 125 | + opacity: 0; | ||
| 126 | + transition: transform 0.3s ease-in-out 0.2s, opacity 0.3s ease-in-out 0.2s, background 0.2s linear 0s; | ||
| 127 | + transform: translateX(60px) rotate(90deg); | ||
| 128 | +} | ||
| 129 | + | ||
| 130 | +.pan-info p a:hover { | ||
| 131 | + background: rgba(255, 255, 255, 0.5); | ||
| 132 | +} | ||
| 133 | + | ||
| 134 | +.pan-item:hover .pan-thumb { | ||
| 135 | + transform: rotate(-110deg); | ||
| 136 | +} | ||
| 137 | + | ||
| 138 | +.pan-item:hover .pan-info p a { | ||
| 139 | + opacity: 1; | ||
| 140 | + transform: translateX(0px) rotate(0deg); | ||
| 141 | +} | ||
| 142 | +</style> |
src/components/TextHoverEffect/Mallki.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <a :class="className" class="link--mallki" href="#"> | ||
| 3 | + {{ text }} | ||
| 4 | + <span :data-letters="text" /> | ||
| 5 | + <span :data-letters="text" /> | ||
| 6 | + </a> | ||
| 7 | +</template> | ||
| 8 | + | ||
| 9 | +<script> | ||
| 10 | +export default { | ||
| 11 | + props: { | ||
| 12 | + className: { | ||
| 13 | + type: String, | ||
| 14 | + default: '' | ||
| 15 | + }, | ||
| 16 | + text: { | ||
| 17 | + type: String, | ||
| 18 | + default: 'vue-element-admin' | ||
| 19 | + } | ||
| 20 | + } | ||
| 21 | +} | ||
| 22 | +</script> | ||
| 23 | + | ||
| 24 | +<style> | ||
| 25 | +/* Mallki */ | ||
| 26 | + | ||
| 27 | +.link--mallki { | ||
| 28 | + font-weight: 800; | ||
| 29 | + color: #4dd9d5; | ||
| 30 | + font-family: 'Dosis', sans-serif; | ||
| 31 | + -webkit-transition: color 0.5s 0.25s; | ||
| 32 | + transition: color 0.5s 0.25s; | ||
| 33 | + overflow: hidden; | ||
| 34 | + position: relative; | ||
| 35 | + display: inline-block; | ||
| 36 | + line-height: 1; | ||
| 37 | + outline: none; | ||
| 38 | + text-decoration: none; | ||
| 39 | +} | ||
| 40 | + | ||
| 41 | +.link--mallki:hover { | ||
| 42 | + -webkit-transition: none; | ||
| 43 | + transition: none; | ||
| 44 | + color: transparent; | ||
| 45 | +} | ||
| 46 | + | ||
| 47 | +.link--mallki::before { | ||
| 48 | + content: ''; | ||
| 49 | + width: 100%; | ||
| 50 | + height: 6px; | ||
| 51 | + margin: -3px 0 0 0; | ||
| 52 | + background: #3888fa; | ||
| 53 | + position: absolute; | ||
| 54 | + left: 0; | ||
| 55 | + top: 50%; | ||
| 56 | + -webkit-transform: translate3d(-100%, 0, 0); | ||
| 57 | + transform: translate3d(-100%, 0, 0); | ||
| 58 | + -webkit-transition: -webkit-transform 0.4s; | ||
| 59 | + transition: transform 0.4s; | ||
| 60 | + -webkit-transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1); | ||
| 61 | + transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1); | ||
| 62 | +} | ||
| 63 | + | ||
| 64 | +.link--mallki:hover::before { | ||
| 65 | + -webkit-transform: translate3d(100%, 0, 0); | ||
| 66 | + transform: translate3d(100%, 0, 0); | ||
| 67 | +} | ||
| 68 | + | ||
| 69 | +.link--mallki span { | ||
| 70 | + position: absolute; | ||
| 71 | + height: 50%; | ||
| 72 | + width: 100%; | ||
| 73 | + left: 0; | ||
| 74 | + top: 0; | ||
| 75 | + overflow: hidden; | ||
| 76 | +} | ||
| 77 | + | ||
| 78 | +.link--mallki span::before { | ||
| 79 | + content: attr(data-letters); | ||
| 80 | + color: red; | ||
| 81 | + position: absolute; | ||
| 82 | + left: 0; | ||
| 83 | + width: 100%; | ||
| 84 | + color: #3888fa; | ||
| 85 | + -webkit-transition: -webkit-transform 0.5s; | ||
| 86 | + transition: transform 0.5s; | ||
| 87 | +} | ||
| 88 | + | ||
| 89 | +.link--mallki span:nth-child(2) { | ||
| 90 | + top: 50%; | ||
| 91 | +} | ||
| 92 | + | ||
| 93 | +.link--mallki span:first-child::before { | ||
| 94 | + top: 0; | ||
| 95 | + -webkit-transform: translate3d(0, 100%, 0); | ||
| 96 | + transform: translate3d(0, 100%, 0); | ||
| 97 | +} | ||
| 98 | + | ||
| 99 | +.link--mallki span:nth-child(2)::before { | ||
| 100 | + bottom: 0; | ||
| 101 | + -webkit-transform: translate3d(0, -100%, 0); | ||
| 102 | + transform: translate3d(0, -100%, 0); | ||
| 103 | +} | ||
| 104 | + | ||
| 105 | +.link--mallki:hover span::before { | ||
| 106 | + -webkit-transition-delay: 0.3s; | ||
| 107 | + transition-delay: 0.3s; | ||
| 108 | + -webkit-transform: translate3d(0, 0, 0); | ||
| 109 | + transform: translate3d(0, 0, 0); | ||
| 110 | + -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); | ||
| 111 | + transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); | ||
| 112 | +} | ||
| 113 | +</style> |
| 1 | import Login from './views/Login.vue' | 1 | import Login from './views/Login.vue' |
| 2 | import NotFound from './views/404.vue' | 2 | import NotFound from './views/404.vue' |
| 3 | import Home from './views/Home.vue' | 3 | import Home from './views/Home.vue' |
| 4 | -import Main from './views/Main.vue' | 4 | +import Main from './views/dashboard/index' |
| 5 | // import Table from './views/nav1/Table.vue' | 5 | // import Table from './views/nav1/Table.vue' |
| 6 | import Role from './views/nav1/role.vue' | 6 | import Role from './views/nav1/role.vue' |
| 7 | import Perm from './views/nav1/perm.vue' | 7 | import Perm from './views/nav1/perm.vue' |
src/views/dashboard/components/BarChart.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <div :class="className" :style="{height:height,width:width}" /> | ||
| 3 | +</template> | ||
| 4 | + | ||
| 5 | +<script> | ||
| 6 | +import echarts from 'echarts' | ||
| 7 | +require('echarts/theme/macarons') // echarts theme | ||
| 8 | +import resize from './mixins/resize' | ||
| 9 | + | ||
| 10 | +const animationDuration = 6000 | ||
| 11 | + | ||
| 12 | +export default { | ||
| 13 | + mixins: [resize], | ||
| 14 | + props: { | ||
| 15 | + className: { | ||
| 16 | + type: String, | ||
| 17 | + default: 'chart' | ||
| 18 | + }, | ||
| 19 | + width: { | ||
| 20 | + type: String, | ||
| 21 | + default: '100%' | ||
| 22 | + }, | ||
| 23 | + height: { | ||
| 24 | + type: String, | ||
| 25 | + default: '300px' | ||
| 26 | + } | ||
| 27 | + }, | ||
| 28 | + data() { | ||
| 29 | + return { | ||
| 30 | + chart: null | ||
| 31 | + } | ||
| 32 | + }, | ||
| 33 | + mounted() { | ||
| 34 | + this.$nextTick(() => { | ||
| 35 | + this.initChart() | ||
| 36 | + }) | ||
| 37 | + }, | ||
| 38 | + beforeDestroy() { | ||
| 39 | + if (!this.chart) { | ||
| 40 | + return | ||
| 41 | + } | ||
| 42 | + this.chart.dispose() | ||
| 43 | + this.chart = null | ||
| 44 | + }, | ||
| 45 | + methods: { | ||
| 46 | + initChart() { | ||
| 47 | + this.chart = echarts.init(this.$el, 'macarons') | ||
| 48 | + | ||
| 49 | + this.chart.setOption({ | ||
| 50 | + tooltip: { | ||
| 51 | + trigger: 'axis', | ||
| 52 | + axisPointer: { // 坐标轴指示器,坐标轴触发有效 | ||
| 53 | + type: 'shadow' // 默认为直线,可选为:'line' | 'shadow' | ||
| 54 | + } | ||
| 55 | + }, | ||
| 56 | + grid: { | ||
| 57 | + top: 10, | ||
| 58 | + left: '2%', | ||
| 59 | + right: '2%', | ||
| 60 | + bottom: '3%', | ||
| 61 | + containLabel: true | ||
| 62 | + }, | ||
| 63 | + xAxis: [{ | ||
| 64 | + type: 'category', | ||
| 65 | + data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], | ||
| 66 | + axisTick: { | ||
| 67 | + alignWithLabel: true | ||
| 68 | + } | ||
| 69 | + }], | ||
| 70 | + yAxis: [{ | ||
| 71 | + type: 'value', | ||
| 72 | + axisTick: { | ||
| 73 | + show: false | ||
| 74 | + } | ||
| 75 | + }], | ||
| 76 | + series: [{ | ||
| 77 | + name: 'pageA', | ||
| 78 | + type: 'bar', | ||
| 79 | + stack: 'vistors', | ||
| 80 | + barWidth: '60%', | ||
| 81 | + data: [79, 52, 200, 334, 390, 330, 220], | ||
| 82 | + animationDuration | ||
| 83 | + }, { | ||
| 84 | + name: 'pageB', | ||
| 85 | + type: 'bar', | ||
| 86 | + stack: 'vistors', | ||
| 87 | + barWidth: '60%', | ||
| 88 | + data: [80, 52, 200, 334, 390, 330, 220], | ||
| 89 | + animationDuration | ||
| 90 | + }, { | ||
| 91 | + name: 'pageC', | ||
| 92 | + type: 'bar', | ||
| 93 | + stack: 'vistors', | ||
| 94 | + barWidth: '60%', | ||
| 95 | + data: [30, 52, 200, 334, 390, 330, 220], | ||
| 96 | + animationDuration | ||
| 97 | + }] | ||
| 98 | + }) | ||
| 99 | + } | ||
| 100 | + } | ||
| 101 | +} | ||
| 102 | +</script> |
src/views/dashboard/components/BoxCard.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <el-card class="box-card-component" style="margin-left:8px;"> | ||
| 3 | + <div slot="header" class="box-card-header"> | ||
| 4 | + <img src="https://wpimg.wallstcn.com/e7d23d71-cf19-4b90-a1cc-f56af8c0903d.png"> | ||
| 5 | + </div> | ||
| 6 | + <div style="position:relative;"> | ||
| 7 | + <pan-thumb :image="avatar" class="panThumb" /> | ||
| 8 | + <mallki class-name="mallki-text" text="vue-element-admin" /> | ||
| 9 | + <div style="padding-top:35px;" class="progress-item"> | ||
| 10 | + <span>Vue</span> | ||
| 11 | + <el-progress :percentage="70" /> | ||
| 12 | + </div> | ||
| 13 | + <div class="progress-item"> | ||
| 14 | + <span>JavaScript</span> | ||
| 15 | + <el-progress :percentage="18" /> | ||
| 16 | + </div> | ||
| 17 | + <div class="progress-item"> | ||
| 18 | + <span>Css</span> | ||
| 19 | + <el-progress :percentage="12" /> | ||
| 20 | + </div> | ||
| 21 | + <div class="progress-item"> | ||
| 22 | + <span>ESLint</span> | ||
| 23 | + <el-progress :percentage="100" status="success" /> | ||
| 24 | + </div> | ||
| 25 | + </div> | ||
| 26 | + </el-card> | ||
| 27 | +</template> | ||
| 28 | + | ||
| 29 | +<script> | ||
| 30 | +import { mapGetters } from 'vuex' | ||
| 31 | +import PanThumb from '../../../components/PanThumb' | ||
| 32 | +import Mallki from '../../../components/TextHoverEffect/Mallki' | ||
| 33 | + | ||
| 34 | +export default { | ||
| 35 | + components: { PanThumb, Mallki }, | ||
| 36 | + | ||
| 37 | + filters: { | ||
| 38 | + statusFilter(status) { | ||
| 39 | + const statusMap = { | ||
| 40 | + success: 'success', | ||
| 41 | + pending: 'danger' | ||
| 42 | + } | ||
| 43 | + return statusMap[status] | ||
| 44 | + } | ||
| 45 | + }, | ||
| 46 | + data() { | ||
| 47 | + return { | ||
| 48 | + statisticsData: { | ||
| 49 | + article_count: 1024, | ||
| 50 | + pageviews_count: 1024 | ||
| 51 | + } | ||
| 52 | + } | ||
| 53 | + }, | ||
| 54 | + computed: { | ||
| 55 | + ...mapGetters([ | ||
| 56 | + 'name', | ||
| 57 | + 'avatar', | ||
| 58 | + 'roles' | ||
| 59 | + ]) | ||
| 60 | + } | ||
| 61 | +} | ||
| 62 | +</script> | ||
| 63 | + | ||
| 64 | +<style lang="scss" > | ||
| 65 | +.box-card-component{ | ||
| 66 | + .el-card__header { | ||
| 67 | + padding: 0px!important; | ||
| 68 | + } | ||
| 69 | +} | ||
| 70 | +</style> | ||
| 71 | +<style lang="scss" scoped> | ||
| 72 | +.box-card-component { | ||
| 73 | + .box-card-header { | ||
| 74 | + position: relative; | ||
| 75 | + height: 220px; | ||
| 76 | + img { | ||
| 77 | + width: 100%; | ||
| 78 | + height: 100%; | ||
| 79 | + transition: all 0.2s linear; | ||
| 80 | + &:hover { | ||
| 81 | + transform: scale(1.1, 1.1); | ||
| 82 | + filter: contrast(130%); | ||
| 83 | + } | ||
| 84 | + } | ||
| 85 | + } | ||
| 86 | + .mallki-text { | ||
| 87 | + position: absolute; | ||
| 88 | + top: 0px; | ||
| 89 | + right: 0px; | ||
| 90 | + font-size: 20px; | ||
| 91 | + font-weight: bold; | ||
| 92 | + } | ||
| 93 | + .panThumb { | ||
| 94 | + z-index: 100; | ||
| 95 | + height: 70px!important; | ||
| 96 | + width: 70px!important; | ||
| 97 | + position: absolute!important; | ||
| 98 | + top: -45px; | ||
| 99 | + left: 0px; | ||
| 100 | + border: 5px solid #ffffff; | ||
| 101 | + background-color: #fff; | ||
| 102 | + margin: auto; | ||
| 103 | + box-shadow: none!important; | ||
| 104 | + /deep/ .pan-info { | ||
| 105 | + box-shadow: none!important; | ||
| 106 | + } | ||
| 107 | + } | ||
| 108 | + .progress-item { | ||
| 109 | + margin-bottom: 10px; | ||
| 110 | + font-size: 14px; | ||
| 111 | + } | ||
| 112 | + @media only screen and (max-width: 1510px){ | ||
| 113 | + .mallki-text{ | ||
| 114 | + display: none; | ||
| 115 | + } | ||
| 116 | + } | ||
| 117 | +} | ||
| 118 | +</style> |
src/views/dashboard/components/LineChart.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <div :class="className" :style="{height:height,width:width}" /> | ||
| 3 | +</template> | ||
| 4 | + | ||
| 5 | +<script> | ||
| 6 | +import echarts from 'echarts' | ||
| 7 | +require('echarts/theme/macarons') // echarts theme | ||
| 8 | +import resize from './mixins/resize' | ||
| 9 | + | ||
| 10 | +export default { | ||
| 11 | + mixins: [resize], | ||
| 12 | + props: { | ||
| 13 | + className: { | ||
| 14 | + type: String, | ||
| 15 | + default: 'chart' | ||
| 16 | + }, | ||
| 17 | + width: { | ||
| 18 | + type: String, | ||
| 19 | + default: '100%' | ||
| 20 | + }, | ||
| 21 | + height: { | ||
| 22 | + type: String, | ||
| 23 | + default: '350px' | ||
| 24 | + }, | ||
| 25 | + autoResize: { | ||
| 26 | + type: Boolean, | ||
| 27 | + default: true | ||
| 28 | + }, | ||
| 29 | + chartData: { | ||
| 30 | + type: Object, | ||
| 31 | + required: true | ||
| 32 | + } | ||
| 33 | + }, | ||
| 34 | + data() { | ||
| 35 | + return { | ||
| 36 | + chart: null | ||
| 37 | + } | ||
| 38 | + }, | ||
| 39 | + watch: { | ||
| 40 | + chartData: { | ||
| 41 | + deep: true, | ||
| 42 | + handler(val) { | ||
| 43 | + this.setOptions(val) | ||
| 44 | + } | ||
| 45 | + } | ||
| 46 | + }, | ||
| 47 | + mounted() { | ||
| 48 | + this.$nextTick(() => { | ||
| 49 | + this.initChart() | ||
| 50 | + }) | ||
| 51 | + }, | ||
| 52 | + beforeDestroy() { | ||
| 53 | + if (!this.chart) { | ||
| 54 | + return | ||
| 55 | + } | ||
| 56 | + this.chart.dispose() | ||
| 57 | + this.chart = null | ||
| 58 | + }, | ||
| 59 | + methods: { | ||
| 60 | + initChart() { | ||
| 61 | + this.chart = echarts.init(this.$el, 'macarons') | ||
| 62 | + this.setOptions(this.chartData) | ||
| 63 | + }, | ||
| 64 | + setOptions({ expectedData, actualData } = {}) { | ||
| 65 | + this.chart.setOption({ | ||
| 66 | + xAxis: { | ||
| 67 | + data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], | ||
| 68 | + boundaryGap: false, | ||
| 69 | + axisTick: { | ||
| 70 | + show: false | ||
| 71 | + } | ||
| 72 | + }, | ||
| 73 | + grid: { | ||
| 74 | + left: 10, | ||
| 75 | + right: 10, | ||
| 76 | + bottom: 20, | ||
| 77 | + top: 30, | ||
| 78 | + containLabel: true | ||
| 79 | + }, | ||
| 80 | + tooltip: { | ||
| 81 | + trigger: 'axis', | ||
| 82 | + axisPointer: { | ||
| 83 | + type: 'cross' | ||
| 84 | + }, | ||
| 85 | + padding: [5, 10] | ||
| 86 | + }, | ||
| 87 | + yAxis: { | ||
| 88 | + axisTick: { | ||
| 89 | + show: false | ||
| 90 | + } | ||
| 91 | + }, | ||
| 92 | + legend: { | ||
| 93 | + data: ['expected', 'actual'] | ||
| 94 | + }, | ||
| 95 | + series: [{ | ||
| 96 | + name: 'expected', itemStyle: { | ||
| 97 | + normal: { | ||
| 98 | + color: '#FF005A', | ||
| 99 | + lineStyle: { | ||
| 100 | + color: '#FF005A', | ||
| 101 | + width: 2 | ||
| 102 | + } | ||
| 103 | + } | ||
| 104 | + }, | ||
| 105 | + smooth: true, | ||
| 106 | + type: 'line', | ||
| 107 | + data: expectedData, | ||
| 108 | + animationDuration: 2800, | ||
| 109 | + animationEasing: 'cubicInOut' | ||
| 110 | + }, | ||
| 111 | + { | ||
| 112 | + name: 'actual', | ||
| 113 | + smooth: true, | ||
| 114 | + type: 'line', | ||
| 115 | + itemStyle: { | ||
| 116 | + normal: { | ||
| 117 | + color: '#3888fa', | ||
| 118 | + lineStyle: { | ||
| 119 | + color: '#3888fa', | ||
| 120 | + width: 2 | ||
| 121 | + }, | ||
| 122 | + areaStyle: { | ||
| 123 | + color: '#f3f8ff' | ||
| 124 | + } | ||
| 125 | + } | ||
| 126 | + }, | ||
| 127 | + data: actualData, | ||
| 128 | + animationDuration: 2800, | ||
| 129 | + animationEasing: 'quadraticOut' | ||
| 130 | + }] | ||
| 131 | + }) | ||
| 132 | + } | ||
| 133 | + } | ||
| 134 | +} | ||
| 135 | +</script> |
| 1 | +<template> | ||
| 2 | + <el-row :gutter="15" class="panel-group"> | ||
| 3 | + | ||
| 4 | + <el-col :span="5" class="card-panel-col"> | ||
| 5 | + <div class="card-panel" @click="handleSetLineChartData('newVisitis')"> | ||
| 6 | + <div class="card-panel-icon-wrapper icon-people"> | ||
| 7 | +<!-- <svg-icon icon-class="peoples" class-name="card-panel-icon" />--> | ||
| 8 | + <i class="el-icon-user-solid" style="font-size: 60px;"></i> | ||
| 9 | + </div> | ||
| 10 | + <div class="card-panel-description"> | ||
| 11 | + <div class="card-panel-text"> | ||
| 12 | + New Visits | ||
| 13 | + </div> | ||
| 14 | + <count-to :start-val="0" :end-val="102400" :duration="2600" class="card-panel-num" /> | ||
| 15 | + </div> | ||
| 16 | + </div> | ||
| 17 | + </el-col> | ||
| 18 | + | ||
| 19 | +<!-- :xs="12" :sm="12" :lg="6"--> | ||
| 20 | + <el-col :span="5" class="card-panel-col"> | ||
| 21 | + <div class="card-panel" @click="handleSetLineChartData('messages')"> | ||
| 22 | + <div class="card-panel-icon-wrapper icon-message"> | ||
| 23 | +<!-- <svg-icon icon-class="message" class-name="card-panel-icon" />--> | ||
| 24 | + <i class="el-icon-message" style="font-size: 60px;"></i> | ||
| 25 | + </div> | ||
| 26 | + <div class="card-panel-description"> | ||
| 27 | + <div class="card-panel-text"> | ||
| 28 | + Messages | ||
| 29 | + </div> | ||
| 30 | + <count-to :start-val="0" :end-val="81212" :duration="3000" class="card-panel-num" /> | ||
| 31 | + </div> | ||
| 32 | + </div> | ||
| 33 | + </el-col> | ||
| 34 | + | ||
| 35 | + <el-col :span="5" class="card-panel-col"> | ||
| 36 | + <div class="card-panel" @click="handleSetLineChartData('purchases')"> | ||
| 37 | + <div class="card-panel-icon-wrapper icon-money"> | ||
| 38 | +<!-- <svg-icon icon-class="money" class-name="card-panel-icon" />--> | ||
| 39 | + <i class="el-icon-money" style="font-size: 60px;"></i> | ||
| 40 | + </div> | ||
| 41 | + <div class="card-panel-description"> | ||
| 42 | + <div class="card-panel-text"> | ||
| 43 | + Purchases | ||
| 44 | + </div> | ||
| 45 | + <count-to :start-val="0" :end-val="9280" :duration="3200" class="card-panel-num" /> | ||
| 46 | + </div> | ||
| 47 | + </div> | ||
| 48 | + </el-col> | ||
| 49 | + <el-col :span="5" class="card-panel-col"> | ||
| 50 | + <div class="card-panel" @click="handleSetLineChartData('shoppings')"> | ||
| 51 | + <div class="card-panel-icon-wrapper icon-shopping"> | ||
| 52 | +<!-- <svg-icon icon-class="shopping" class-name="card-panel-icon" />--> | ||
| 53 | + <i class="el-icon-shopping-cart-2" style="font-size: 60px;"></i> | ||
| 54 | + </div> | ||
| 55 | + <div class="card-panel-description"> | ||
| 56 | + <div class="card-panel-text"> | ||
| 57 | + Shoppings | ||
| 58 | + </div> | ||
| 59 | + <count-to :start-val="0" :end-val="13600" :duration="3600" class="card-panel-num" /> | ||
| 60 | + </div> | ||
| 61 | + </div> | ||
| 62 | + </el-col> | ||
| 63 | + </el-row> | ||
| 64 | +</template> | ||
| 65 | + | ||
| 66 | +<script> | ||
| 67 | +import CountTo from 'vue-count-to' | ||
| 68 | +// import '../../../icons' | ||
| 69 | +export default { | ||
| 70 | + components: { | ||
| 71 | + CountTo | ||
| 72 | + }, | ||
| 73 | + methods: { | ||
| 74 | + handleSetLineChartData(type) { | ||
| 75 | + this.$emit('handleSetLineChartData', type) | ||
| 76 | + } | ||
| 77 | + } | ||
| 78 | +} | ||
| 79 | +</script> | ||
| 80 | + | ||
| 81 | +<style lang="scss" scoped> | ||
| 82 | +.panel-group { | ||
| 83 | + margin-top: 18px; | ||
| 84 | + | ||
| 85 | + .card-panel-col { | ||
| 86 | + margin-bottom: 32px; | ||
| 87 | + } | ||
| 88 | + | ||
| 89 | + .card-panel { | ||
| 90 | + height: 108px; | ||
| 91 | + cursor: pointer; | ||
| 92 | + font-size: 12px; | ||
| 93 | + position: relative; | ||
| 94 | + overflow: hidden; | ||
| 95 | + color: #666; | ||
| 96 | + background: #fff; | ||
| 97 | + box-shadow: 4px 4px 40px rgba(0, 0, 0, .05); | ||
| 98 | + border-color: rgba(0, 0, 0, .05); | ||
| 99 | + | ||
| 100 | + &:hover { | ||
| 101 | + .card-panel-icon-wrapper { | ||
| 102 | + color: #fff; | ||
| 103 | + } | ||
| 104 | + | ||
| 105 | + .icon-people { | ||
| 106 | + background: #40c9c6; | ||
| 107 | + } | ||
| 108 | + | ||
| 109 | + .icon-message { | ||
| 110 | + background: #36a3f7; | ||
| 111 | + } | ||
| 112 | + | ||
| 113 | + .icon-money { | ||
| 114 | + background: #f4516c; | ||
| 115 | + } | ||
| 116 | + | ||
| 117 | + .icon-shopping { | ||
| 118 | + background: #34bfa3 | ||
| 119 | + } | ||
| 120 | + } | ||
| 121 | + | ||
| 122 | + .icon-people { | ||
| 123 | + color: #40c9c6; | ||
| 124 | + } | ||
| 125 | + | ||
| 126 | + .icon-message { | ||
| 127 | + color: #36a3f7; | ||
| 128 | + } | ||
| 129 | + | ||
| 130 | + .icon-money { | ||
| 131 | + color: #f4516c; | ||
| 132 | + } | ||
| 133 | + | ||
| 134 | + .icon-shopping { | ||
| 135 | + color: #34bfa3 | ||
| 136 | + } | ||
| 137 | + | ||
| 138 | + .card-panel-icon-wrapper { | ||
| 139 | + float: left; | ||
| 140 | + margin: 14px 0 0 14px; | ||
| 141 | + padding: 16px; | ||
| 142 | + transition: all 0.38s ease-out; | ||
| 143 | + border-radius: 6px; | ||
| 144 | + } | ||
| 145 | + | ||
| 146 | + .card-panel-icon { | ||
| 147 | + float: left; | ||
| 148 | + font-size: 48px; | ||
| 149 | + } | ||
| 150 | + | ||
| 151 | + .card-panel-description { | ||
| 152 | + float: right; | ||
| 153 | + font-weight: bold; | ||
| 154 | + margin: 26px; | ||
| 155 | + margin-left: 0px; | ||
| 156 | + | ||
| 157 | + .card-panel-text { | ||
| 158 | + line-height: 18px; | ||
| 159 | + color: rgba(0, 0, 0, 0.45); | ||
| 160 | + font-size: 16px; | ||
| 161 | + margin-bottom: 12px; | ||
| 162 | + } | ||
| 163 | + | ||
| 164 | + .card-panel-num { | ||
| 165 | + font-size: 20px; | ||
| 166 | + } | ||
| 167 | + } | ||
| 168 | + } | ||
| 169 | +} | ||
| 170 | + | ||
| 171 | +@media (max-width:550px) { | ||
| 172 | + .card-panel-description { | ||
| 173 | + display: none; | ||
| 174 | + } | ||
| 175 | + | ||
| 176 | + .card-panel-icon-wrapper { | ||
| 177 | + float: none !important; | ||
| 178 | + width: 100%; | ||
| 179 | + height: 100%; | ||
| 180 | + margin: 0 !important; | ||
| 181 | + | ||
| 182 | + .svg-icon { | ||
| 183 | + display: block; | ||
| 184 | + margin: 14px auto !important; | ||
| 185 | + float: none !important; | ||
| 186 | + } | ||
| 187 | + } | ||
| 188 | +} | ||
| 189 | +</style> |
src/views/dashboard/components/PieChart.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <div :class="className" :style="{height:height,width:width}" /> | ||
| 3 | +</template> | ||
| 4 | + | ||
| 5 | +<script> | ||
| 6 | +import echarts from 'echarts' | ||
| 7 | +require('echarts/theme/macarons') // echarts theme | ||
| 8 | +import resize from './mixins/resize' | ||
| 9 | + | ||
| 10 | +export default { | ||
| 11 | + mixins: [resize], | ||
| 12 | + props: { | ||
| 13 | + className: { | ||
| 14 | + type: String, | ||
| 15 | + default: 'chart' | ||
| 16 | + }, | ||
| 17 | + width: { | ||
| 18 | + type: String, | ||
| 19 | + default: '100%' | ||
| 20 | + }, | ||
| 21 | + height: { | ||
| 22 | + type: String, | ||
| 23 | + default: '300px' | ||
| 24 | + } | ||
| 25 | + }, | ||
| 26 | + data() { | ||
| 27 | + return { | ||
| 28 | + chart: null | ||
| 29 | + } | ||
| 30 | + }, | ||
| 31 | + mounted() { | ||
| 32 | + this.$nextTick(() => { | ||
| 33 | + this.initChart() | ||
| 34 | + }) | ||
| 35 | + }, | ||
| 36 | + beforeDestroy() { | ||
| 37 | + if (!this.chart) { | ||
| 38 | + return | ||
| 39 | + } | ||
| 40 | + this.chart.dispose() | ||
| 41 | + this.chart = null | ||
| 42 | + }, | ||
| 43 | + methods: { | ||
| 44 | + initChart() { | ||
| 45 | + this.chart = echarts.init(this.$el, 'macarons') | ||
| 46 | + | ||
| 47 | + this.chart.setOption({ | ||
| 48 | + tooltip: { | ||
| 49 | + trigger: 'item', | ||
| 50 | + formatter: '{a} <br/>{b} : {c} ({d}%)' | ||
| 51 | + }, | ||
| 52 | + legend: { | ||
| 53 | + left: 'center', | ||
| 54 | + bottom: '10', | ||
| 55 | + data: ['Industries', 'Technology', 'Forex', 'Gold', 'Forecasts'] | ||
| 56 | + }, | ||
| 57 | + series: [ | ||
| 58 | + { | ||
| 59 | + name: 'WEEKLY WRITE ARTICLES', | ||
| 60 | + type: 'pie', | ||
| 61 | + roseType: 'radius', | ||
| 62 | + radius: [15, 95], | ||
| 63 | + center: ['50%', '38%'], | ||
| 64 | + data: [ | ||
| 65 | + { value: 320, name: 'Industries' }, | ||
| 66 | + { value: 240, name: 'Technology' }, | ||
| 67 | + { value: 149, name: 'Forex' }, | ||
| 68 | + { value: 100, name: 'Gold' }, | ||
| 69 | + { value: 59, name: 'Forecasts' } | ||
| 70 | + ], | ||
| 71 | + animationEasing: 'cubicInOut', | ||
| 72 | + animationDuration: 2600 | ||
| 73 | + } | ||
| 74 | + ] | ||
| 75 | + }) | ||
| 76 | + } | ||
| 77 | + } | ||
| 78 | +} | ||
| 79 | +</script> |
| 1 | +<template> | ||
| 2 | + <div :class="className" :style="{height:height,width:width}" /> | ||
| 3 | +</template> | ||
| 4 | + | ||
| 5 | +<script> | ||
| 6 | +import echarts from 'echarts' | ||
| 7 | +require('echarts/theme/macarons') // echarts theme | ||
| 8 | +import resize from './mixins/resize' | ||
| 9 | + | ||
| 10 | +const animationDuration = 3000 | ||
| 11 | + | ||
| 12 | +export default { | ||
| 13 | + mixins: [resize], | ||
| 14 | + props: { | ||
| 15 | + className: { | ||
| 16 | + type: String, | ||
| 17 | + default: 'chart' | ||
| 18 | + }, | ||
| 19 | + width: { | ||
| 20 | + type: String, | ||
| 21 | + default: '100%' | ||
| 22 | + }, | ||
| 23 | + height: { | ||
| 24 | + type: String, | ||
| 25 | + default: '300px' | ||
| 26 | + } | ||
| 27 | + }, | ||
| 28 | + data() { | ||
| 29 | + return { | ||
| 30 | + chart: null | ||
| 31 | + } | ||
| 32 | + }, | ||
| 33 | + mounted() { | ||
| 34 | + this.$nextTick(() => { | ||
| 35 | + this.initChart() | ||
| 36 | + }) | ||
| 37 | + }, | ||
| 38 | + beforeDestroy() { | ||
| 39 | + if (!this.chart) { | ||
| 40 | + return | ||
| 41 | + } | ||
| 42 | + this.chart.dispose() | ||
| 43 | + this.chart = null | ||
| 44 | + }, | ||
| 45 | + methods: { | ||
| 46 | + initChart() { | ||
| 47 | + this.chart = echarts.init(this.$el, 'macarons') | ||
| 48 | + | ||
| 49 | + this.chart.setOption({ | ||
| 50 | + tooltip: { | ||
| 51 | + trigger: 'axis', | ||
| 52 | + axisPointer: { // 坐标轴指示器,坐标轴触发有效 | ||
| 53 | + type: 'shadow' // 默认为直线,可选为:'line' | 'shadow' | ||
| 54 | + } | ||
| 55 | + }, | ||
| 56 | + radar: { | ||
| 57 | + radius: '66%', | ||
| 58 | + center: ['50%', '42%'], | ||
| 59 | + splitNumber: 8, | ||
| 60 | + splitArea: { | ||
| 61 | + areaStyle: { | ||
| 62 | + color: 'rgba(127,95,132,.3)', | ||
| 63 | + opacity: 1, | ||
| 64 | + shadowBlur: 45, | ||
| 65 | + shadowColor: 'rgba(0,0,0,.5)', | ||
| 66 | + shadowOffsetX: 0, | ||
| 67 | + shadowOffsetY: 15 | ||
| 68 | + } | ||
| 69 | + }, | ||
| 70 | + indicator: [ | ||
| 71 | + { name: 'Sales', max: 10000 }, | ||
| 72 | + { name: 'Administration', max: 20000 }, | ||
| 73 | + { name: 'Information Technology', max: 20000 }, | ||
| 74 | + { name: 'Customer Support', max: 20000 }, | ||
| 75 | + { name: 'Development', max: 20000 }, | ||
| 76 | + { name: 'Marketing', max: 20000 } | ||
| 77 | + ] | ||
| 78 | + }, | ||
| 79 | + legend: { | ||
| 80 | + left: 'center', | ||
| 81 | + bottom: '10', | ||
| 82 | + data: ['Allocated Budget', 'Expected Spending', 'Actual Spending'] | ||
| 83 | + }, | ||
| 84 | + series: [{ | ||
| 85 | + type: 'radar', | ||
| 86 | + symbolSize: 0, | ||
| 87 | + areaStyle: { | ||
| 88 | + normal: { | ||
| 89 | + shadowBlur: 13, | ||
| 90 | + shadowColor: 'rgba(0,0,0,.2)', | ||
| 91 | + shadowOffsetX: 0, | ||
| 92 | + shadowOffsetY: 10, | ||
| 93 | + opacity: 1 | ||
| 94 | + } | ||
| 95 | + }, | ||
| 96 | + data: [ | ||
| 97 | + { | ||
| 98 | + value: [5000, 7000, 12000, 11000, 15000, 14000], | ||
| 99 | + name: 'Allocated Budget' | ||
| 100 | + }, | ||
| 101 | + { | ||
| 102 | + value: [4000, 9000, 15000, 15000, 13000, 11000], | ||
| 103 | + name: 'Expected Spending' | ||
| 104 | + }, | ||
| 105 | + { | ||
| 106 | + value: [5500, 11000, 12000, 15000, 12000, 12000], | ||
| 107 | + name: 'Actual Spending' | ||
| 108 | + } | ||
| 109 | + ], | ||
| 110 | + animationDuration: animationDuration | ||
| 111 | + }] | ||
| 112 | + }) | ||
| 113 | + } | ||
| 114 | + } | ||
| 115 | +} | ||
| 116 | +</script> |
| 1 | +<template> | ||
| 2 | + <li :class="{ completed: todo.done, editing: editing }" class="todo"> | ||
| 3 | + <div class="view"> | ||
| 4 | + <input | ||
| 5 | + :checked="todo.done" | ||
| 6 | + class="toggle" | ||
| 7 | + type="checkbox" | ||
| 8 | + @change="toggleTodo( todo)" | ||
| 9 | + > | ||
| 10 | + <label @dblclick="editing = true" v-text="todo.text" /> | ||
| 11 | + <button class="destroy" @click="deleteTodo( todo )" /> | ||
| 12 | + </div> | ||
| 13 | + <input | ||
| 14 | + v-show="editing" | ||
| 15 | + v-focus="editing" | ||
| 16 | + :value="todo.text" | ||
| 17 | + class="edit" | ||
| 18 | + @keyup.enter="doneEdit" | ||
| 19 | + @keyup.esc="cancelEdit" | ||
| 20 | + @blur="doneEdit" | ||
| 21 | + > | ||
| 22 | + </li> | ||
| 23 | +</template> | ||
| 24 | + | ||
| 25 | +<script> | ||
| 26 | +export default { | ||
| 27 | + name: 'Todo', | ||
| 28 | + directives: { | ||
| 29 | + focus(el, { value }, { context }) { | ||
| 30 | + if (value) { | ||
| 31 | + context.$nextTick(() => { | ||
| 32 | + el.focus() | ||
| 33 | + }) | ||
| 34 | + } | ||
| 35 | + } | ||
| 36 | + }, | ||
| 37 | + props: { | ||
| 38 | + todo: { | ||
| 39 | + type: Object, | ||
| 40 | + default: function() { | ||
| 41 | + return {} | ||
| 42 | + } | ||
| 43 | + } | ||
| 44 | + }, | ||
| 45 | + data() { | ||
| 46 | + return { | ||
| 47 | + editing: false | ||
| 48 | + } | ||
| 49 | + }, | ||
| 50 | + methods: { | ||
| 51 | + deleteTodo(todo) { | ||
| 52 | + this.$emit('deleteTodo', todo) | ||
| 53 | + }, | ||
| 54 | + editTodo({ todo, value }) { | ||
| 55 | + this.$emit('editTodo', { todo, value }) | ||
| 56 | + }, | ||
| 57 | + toggleTodo(todo) { | ||
| 58 | + this.$emit('toggleTodo', todo) | ||
| 59 | + }, | ||
| 60 | + doneEdit(e) { | ||
| 61 | + const value = e.target.value.trim() | ||
| 62 | + const { todo } = this | ||
| 63 | + if (!value) { | ||
| 64 | + this.deleteTodo({ | ||
| 65 | + todo | ||
| 66 | + }) | ||
| 67 | + } else if (this.editing) { | ||
| 68 | + this.editTodo({ | ||
| 69 | + todo, | ||
| 70 | + value | ||
| 71 | + }) | ||
| 72 | + this.editing = false | ||
| 73 | + } | ||
| 74 | + }, | ||
| 75 | + cancelEdit(e) { | ||
| 76 | + e.target.value = this.todo.text | ||
| 77 | + this.editing = false | ||
| 78 | + } | ||
| 79 | + } | ||
| 80 | +} | ||
| 81 | +</script> |
| 1 | +.todoapp { | ||
| 2 | + font: 14px 'Helvetica Neue', Helvetica, Arial, sans-serif; | ||
| 3 | + line-height: 1.4em; | ||
| 4 | + color: #4d4d4d; | ||
| 5 | + min-width: 230px; | ||
| 6 | + max-width: 550px; | ||
| 7 | + margin: 0 auto ; | ||
| 8 | + -webkit-font-smoothing: antialiased; | ||
| 9 | + -moz-osx-font-smoothing: grayscale; | ||
| 10 | + font-weight: 300; | ||
| 11 | + background: #fff; | ||
| 12 | + z-index: 1; | ||
| 13 | + position: relative; | ||
| 14 | + button { | ||
| 15 | + margin: 0; | ||
| 16 | + padding: 0; | ||
| 17 | + border: 0; | ||
| 18 | + background: none; | ||
| 19 | + font-size: 100%; | ||
| 20 | + vertical-align: baseline; | ||
| 21 | + font-family: inherit; | ||
| 22 | + font-weight: inherit; | ||
| 23 | + color: inherit; | ||
| 24 | + -webkit-appearance: none; | ||
| 25 | + appearance: none; | ||
| 26 | + -webkit-font-smoothing: antialiased; | ||
| 27 | + -moz-osx-font-smoothing: grayscale; | ||
| 28 | + } | ||
| 29 | + :focus { | ||
| 30 | + outline: 0; | ||
| 31 | + } | ||
| 32 | + .hidden { | ||
| 33 | + display: none; | ||
| 34 | + } | ||
| 35 | + .todoapp { | ||
| 36 | + background: #fff; | ||
| 37 | + margin: 130px 0 40px 0; | ||
| 38 | + position: relative; | ||
| 39 | + box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.2), 0 25px 50px 0 rgba(0, 0, 0, 0.1); | ||
| 40 | + } | ||
| 41 | + .todoapp input::-webkit-input-placeholder { | ||
| 42 | + font-style: italic; | ||
| 43 | + font-weight: 300; | ||
| 44 | + color: #e6e6e6; | ||
| 45 | + } | ||
| 46 | + .todoapp input::-moz-placeholder { | ||
| 47 | + font-style: italic; | ||
| 48 | + font-weight: 300; | ||
| 49 | + color: #e6e6e6; | ||
| 50 | + } | ||
| 51 | + .todoapp input::input-placeholder { | ||
| 52 | + font-style: italic; | ||
| 53 | + font-weight: 300; | ||
| 54 | + color: #e6e6e6; | ||
| 55 | + } | ||
| 56 | + .todoapp h1 { | ||
| 57 | + position: absolute; | ||
| 58 | + top: -155px; | ||
| 59 | + width: 100%; | ||
| 60 | + font-size: 100px; | ||
| 61 | + font-weight: 100; | ||
| 62 | + text-align: center; | ||
| 63 | + color: rgba(175, 47, 47, 0.15); | ||
| 64 | + -webkit-text-rendering: optimizeLegibility; | ||
| 65 | + -moz-text-rendering: optimizeLegibility; | ||
| 66 | + text-rendering: optimizeLegibility; | ||
| 67 | + } | ||
| 68 | + .new-todo, | ||
| 69 | + .edit { | ||
| 70 | + position: relative; | ||
| 71 | + margin: 0; | ||
| 72 | + width: 100%; | ||
| 73 | + font-size: 18px; | ||
| 74 | + font-family: inherit; | ||
| 75 | + font-weight: inherit; | ||
| 76 | + line-height: 1.4em; | ||
| 77 | + border: 0; | ||
| 78 | + color: inherit; | ||
| 79 | + padding: 6px; | ||
| 80 | + border: 1px solid #999; | ||
| 81 | + box-shadow: inset 0 -1px 5px 0 rgba(0, 0, 0, 0.2); | ||
| 82 | + box-sizing: border-box; | ||
| 83 | + -webkit-font-smoothing: antialiased; | ||
| 84 | + -moz-osx-font-smoothing: grayscale; | ||
| 85 | + } | ||
| 86 | + .new-todo { | ||
| 87 | + padding: 10px 16px 16px 60px; | ||
| 88 | + border: none; | ||
| 89 | + background: rgba(0, 0, 0, 0.003); | ||
| 90 | + box-shadow: inset 0 -2px 1px rgba(0, 0, 0, 0.03); | ||
| 91 | + } | ||
| 92 | + .main { | ||
| 93 | + position: relative; | ||
| 94 | + z-index: 2; | ||
| 95 | + border-top: 1px solid #e6e6e6; | ||
| 96 | + } | ||
| 97 | + .toggle-all { | ||
| 98 | + text-align: center; | ||
| 99 | + border: none; | ||
| 100 | + /* Mobile Safari */ | ||
| 101 | + opacity: 0; | ||
| 102 | + position: absolute; | ||
| 103 | + } | ||
| 104 | + .toggle-all+label { | ||
| 105 | + width: 60px; | ||
| 106 | + height: 34px; | ||
| 107 | + font-size: 0; | ||
| 108 | + position: absolute; | ||
| 109 | + top: -52px; | ||
| 110 | + left: -13px; | ||
| 111 | + -webkit-transform: rotate(90deg); | ||
| 112 | + transform: rotate(90deg); | ||
| 113 | + } | ||
| 114 | + .toggle-all+label:before { | ||
| 115 | + content: '❯'; | ||
| 116 | + font-size: 22px; | ||
| 117 | + color: #e6e6e6; | ||
| 118 | + padding: 10px 27px 10px 27px; | ||
| 119 | + } | ||
| 120 | + .toggle-all:checked+label:before { | ||
| 121 | + color: #737373; | ||
| 122 | + } | ||
| 123 | + .todo-list { | ||
| 124 | + margin: 0; | ||
| 125 | + padding: 0; | ||
| 126 | + list-style: none; | ||
| 127 | + } | ||
| 128 | + .todo-list li { | ||
| 129 | + position: relative; | ||
| 130 | + font-size: 24px; | ||
| 131 | + border-bottom: 1px solid #ededed; | ||
| 132 | + } | ||
| 133 | + .todo-list li:last-child { | ||
| 134 | + border-bottom: none; | ||
| 135 | + } | ||
| 136 | + .todo-list li.editing { | ||
| 137 | + border-bottom: none; | ||
| 138 | + padding: 0; | ||
| 139 | + } | ||
| 140 | + .todo-list li.editing .edit { | ||
| 141 | + display: block; | ||
| 142 | + width: 506px; | ||
| 143 | + padding: 12px 16px; | ||
| 144 | + margin: 0 0 0 43px; | ||
| 145 | + } | ||
| 146 | + .todo-list li.editing .view { | ||
| 147 | + display: none; | ||
| 148 | + } | ||
| 149 | + .todo-list li .toggle { | ||
| 150 | + text-align: center; | ||
| 151 | + width: 40px; | ||
| 152 | + /* auto, since non-WebKit browsers doesn't support input styling */ | ||
| 153 | + height: auto; | ||
| 154 | + position: absolute; | ||
| 155 | + top: 0; | ||
| 156 | + bottom: 0; | ||
| 157 | + margin: auto 0; | ||
| 158 | + border: none; | ||
| 159 | + /* Mobile Safari */ | ||
| 160 | + -webkit-appearance: none; | ||
| 161 | + appearance: none; | ||
| 162 | + } | ||
| 163 | + .todo-list li .toggle { | ||
| 164 | + opacity: 0; | ||
| 165 | + } | ||
| 166 | + .todo-list li .toggle+label { | ||
| 167 | + /* | ||
| 168 | + Firefox requires `#` to be escaped - https://bugzilla.mozilla.org/show_bug.cgi?id=922433 | ||
| 169 | + 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/ | ||
| 170 | + */ | ||
| 171 | + 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'); | ||
| 172 | + background-repeat: no-repeat; | ||
| 173 | + background-position: center left; | ||
| 174 | + background-size: 36px; | ||
| 175 | + } | ||
| 176 | + .todo-list li .toggle:checked+label { | ||
| 177 | + background-size: 36px; | ||
| 178 | + 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'); | ||
| 179 | + } | ||
| 180 | + .todo-list li label { | ||
| 181 | + word-break: break-all; | ||
| 182 | + padding: 15px 15px 15px 50px; | ||
| 183 | + display: block; | ||
| 184 | + line-height: 1.0; | ||
| 185 | + font-size: 14px; | ||
| 186 | + transition: color 0.4s; | ||
| 187 | + } | ||
| 188 | + .todo-list li.completed label { | ||
| 189 | + color: #d9d9d9; | ||
| 190 | + text-decoration: line-through; | ||
| 191 | + } | ||
| 192 | + .todo-list li .destroy { | ||
| 193 | + display: none; | ||
| 194 | + position: absolute; | ||
| 195 | + top: 0; | ||
| 196 | + right: 10px; | ||
| 197 | + bottom: 0; | ||
| 198 | + width: 40px; | ||
| 199 | + height: 40px; | ||
| 200 | + margin: auto 0; | ||
| 201 | + font-size: 30px; | ||
| 202 | + color: #cc9a9a; | ||
| 203 | + transition: color 0.2s ease-out; | ||
| 204 | + cursor: pointer; | ||
| 205 | + } | ||
| 206 | + .todo-list li .destroy:hover { | ||
| 207 | + color: #af5b5e; | ||
| 208 | + } | ||
| 209 | + .todo-list li .destroy:after { | ||
| 210 | + content: '×'; | ||
| 211 | + } | ||
| 212 | + .todo-list li:hover .destroy { | ||
| 213 | + display: block; | ||
| 214 | + } | ||
| 215 | + .todo-list li .edit { | ||
| 216 | + display: none; | ||
| 217 | + } | ||
| 218 | + .todo-list li.editing:last-child { | ||
| 219 | + margin-bottom: -1px; | ||
| 220 | + } | ||
| 221 | + .footer { | ||
| 222 | + color: #777; | ||
| 223 | + position: relative; | ||
| 224 | + padding: 10px 15px; | ||
| 225 | + height: 40px; | ||
| 226 | + text-align: center; | ||
| 227 | + border-top: 1px solid #e6e6e6; | ||
| 228 | + } | ||
| 229 | + .footer:before { | ||
| 230 | + content: ''; | ||
| 231 | + position: absolute; | ||
| 232 | + right: 0; | ||
| 233 | + bottom: 0; | ||
| 234 | + left: 0; | ||
| 235 | + height: 40px; | ||
| 236 | + overflow: hidden; | ||
| 237 | + 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); | ||
| 238 | + } | ||
| 239 | + .todo-count { | ||
| 240 | + float: left; | ||
| 241 | + text-align: left; | ||
| 242 | + } | ||
| 243 | + .todo-count strong { | ||
| 244 | + font-weight: 300; | ||
| 245 | + } | ||
| 246 | + .filters { | ||
| 247 | + margin: 0; | ||
| 248 | + padding: 0; | ||
| 249 | + position: relative; | ||
| 250 | + z-index: 1; | ||
| 251 | + list-style: none; | ||
| 252 | + } | ||
| 253 | + .filters li { | ||
| 254 | + display: inline; | ||
| 255 | + } | ||
| 256 | + .filters li a { | ||
| 257 | + color: inherit; | ||
| 258 | + font-size: 12px; | ||
| 259 | + padding: 3px 7px; | ||
| 260 | + text-decoration: none; | ||
| 261 | + border: 1px solid transparent; | ||
| 262 | + border-radius: 3px; | ||
| 263 | + } | ||
| 264 | + .filters li a:hover { | ||
| 265 | + border-color: rgba(175, 47, 47, 0.1); | ||
| 266 | + } | ||
| 267 | + .filters li a.selected { | ||
| 268 | + border-color: rgba(175, 47, 47, 0.2); | ||
| 269 | + } | ||
| 270 | + .clear-completed, | ||
| 271 | + html .clear-completed:active { | ||
| 272 | + float: right; | ||
| 273 | + position: relative; | ||
| 274 | + line-height: 20px; | ||
| 275 | + text-decoration: none; | ||
| 276 | + cursor: pointer; | ||
| 277 | + } | ||
| 278 | + .clear-completed:hover { | ||
| 279 | + text-decoration: underline; | ||
| 280 | + } | ||
| 281 | + .info { | ||
| 282 | + margin: 65px auto 0; | ||
| 283 | + color: #bfbfbf; | ||
| 284 | + font-size: 10px; | ||
| 285 | + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); | ||
| 286 | + text-align: center; | ||
| 287 | + } | ||
| 288 | + .info p { | ||
| 289 | + line-height: 1; | ||
| 290 | + } | ||
| 291 | + .info a { | ||
| 292 | + color: inherit; | ||
| 293 | + text-decoration: none; | ||
| 294 | + font-weight: 400; | ||
| 295 | + } | ||
| 296 | + .info a:hover { | ||
| 297 | + text-decoration: underline; | ||
| 298 | + } | ||
| 299 | + /* | ||
| 300 | + Hack to remove background from Mobile Safari. | ||
| 301 | + Can't use it globally since it destroys checkboxes in Firefox | ||
| 302 | +*/ | ||
| 303 | + @media screen and (-webkit-min-device-pixel-ratio:0) { | ||
| 304 | + .toggle-all, | ||
| 305 | + .todo-list li .toggle { | ||
| 306 | + background: none; | ||
| 307 | + } | ||
| 308 | + .todo-list li .toggle { | ||
| 309 | + height: 40px; | ||
| 310 | + } | ||
| 311 | + } | ||
| 312 | + @media (max-width: 430px) { | ||
| 313 | + .footer { | ||
| 314 | + height: 50px; | ||
| 315 | + } | ||
| 316 | + .filters { | ||
| 317 | + bottom: 10px; | ||
| 318 | + } | ||
| 319 | + } | ||
| 320 | +} |
| 1 | +<template> | ||
| 2 | + <section class="todoapp"> | ||
| 3 | + <!-- header --> | ||
| 4 | + <header class="header"> | ||
| 5 | + <input class="new-todo" autocomplete="off" placeholder="Todo List" @keyup.enter="addTodo"> | ||
| 6 | + </header> | ||
| 7 | + <!-- main section --> | ||
| 8 | + <section v-show="todos.length" class="main"> | ||
| 9 | + <input id="toggle-all" :checked="allChecked" class="toggle-all" type="checkbox" @change="toggleAll({ done: !allChecked })"> | ||
| 10 | + <label for="toggle-all" /> | ||
| 11 | + <ul class="todo-list"> | ||
| 12 | + <todo | ||
| 13 | + v-for="(todo, index) in filteredTodos" | ||
| 14 | + :key="index" | ||
| 15 | + :todo="todo" | ||
| 16 | + @toggleTodo="toggleTodo" | ||
| 17 | + @editTodo="editTodo" | ||
| 18 | + @deleteTodo="deleteTodo" | ||
| 19 | + /> | ||
| 20 | + </ul> | ||
| 21 | + </section> | ||
| 22 | + <!-- footer --> | ||
| 23 | + <footer v-show="todos.length" class="footer"> | ||
| 24 | + <span class="todo-count"> | ||
| 25 | + <strong>{{ remaining }}</strong> | ||
| 26 | + {{ remaining | pluralize('item') }} left | ||
| 27 | + </span> | ||
| 28 | + <ul class="filters"> | ||
| 29 | + <li v-for="(val, key) in filters" :key="key"> | ||
| 30 | + <a :class="{ selected: visibility === key }" @click.prevent="visibility = key">{{ key | capitalize }}</a> | ||
| 31 | + </li> | ||
| 32 | + </ul> | ||
| 33 | + <!-- <button class="clear-completed" v-show="todos.length > remaining" @click="clearCompleted"> | ||
| 34 | + Clear completed | ||
| 35 | + </button> --> | ||
| 36 | + </footer> | ||
| 37 | + </section> | ||
| 38 | +</template> | ||
| 39 | + | ||
| 40 | +<script> | ||
| 41 | +import Todo from './Todo.vue' | ||
| 42 | + | ||
| 43 | +const STORAGE_KEY = 'todos' | ||
| 44 | +const filters = { | ||
| 45 | + all: todos => todos, | ||
| 46 | + active: todos => todos.filter(todo => !todo.done), | ||
| 47 | + completed: todos => todos.filter(todo => todo.done) | ||
| 48 | +} | ||
| 49 | +const defalutList = [ | ||
| 50 | + { text: 'star this repository', done: false }, | ||
| 51 | + { text: 'fork this repository', done: false }, | ||
| 52 | + { text: 'follow author', done: false }, | ||
| 53 | + { text: 'vue-element-admin', done: true }, | ||
| 54 | + { text: 'vue', done: true }, | ||
| 55 | + { text: 'element-ui', done: true }, | ||
| 56 | + { text: 'axios', done: true }, | ||
| 57 | + { text: 'webpack', done: true } | ||
| 58 | +] | ||
| 59 | +export default { | ||
| 60 | + components: { Todo }, | ||
| 61 | + filters: { | ||
| 62 | + pluralize: (n, w) => n === 1 ? w : w + 's', | ||
| 63 | + capitalize: s => s.charAt(0).toUpperCase() + s.slice(1) | ||
| 64 | + }, | ||
| 65 | + data() { | ||
| 66 | + return { | ||
| 67 | + visibility: 'all', | ||
| 68 | + filters, | ||
| 69 | + // todos: JSON.parse(window.localStorage.getItem(STORAGE_KEY)) || defalutList | ||
| 70 | + todos: defalutList | ||
| 71 | + } | ||
| 72 | + }, | ||
| 73 | + computed: { | ||
| 74 | + allChecked() { | ||
| 75 | + return this.todos.every(todo => todo.done) | ||
| 76 | + }, | ||
| 77 | + filteredTodos() { | ||
| 78 | + return filters[this.visibility](this.todos) | ||
| 79 | + }, | ||
| 80 | + remaining() { | ||
| 81 | + return this.todos.filter(todo => !todo.done).length | ||
| 82 | + } | ||
| 83 | + }, | ||
| 84 | + methods: { | ||
| 85 | + setLocalStorage() { | ||
| 86 | + window.localStorage.setItem(STORAGE_KEY, JSON.stringify(this.todos)) | ||
| 87 | + }, | ||
| 88 | + addTodo(e) { | ||
| 89 | + const text = e.target.value | ||
| 90 | + if (text.trim()) { | ||
| 91 | + this.todos.push({ | ||
| 92 | + text, | ||
| 93 | + done: false | ||
| 94 | + }) | ||
| 95 | + this.setLocalStorage() | ||
| 96 | + } | ||
| 97 | + e.target.value = '' | ||
| 98 | + }, | ||
| 99 | + toggleTodo(val) { | ||
| 100 | + val.done = !val.done | ||
| 101 | + this.setLocalStorage() | ||
| 102 | + }, | ||
| 103 | + deleteTodo(todo) { | ||
| 104 | + this.todos.splice(this.todos.indexOf(todo), 1) | ||
| 105 | + this.setLocalStorage() | ||
| 106 | + }, | ||
| 107 | + editTodo({ todo, value }) { | ||
| 108 | + todo.text = value | ||
| 109 | + this.setLocalStorage() | ||
| 110 | + }, | ||
| 111 | + clearCompleted() { | ||
| 112 | + this.todos = this.todos.filter(todo => !todo.done) | ||
| 113 | + this.setLocalStorage() | ||
| 114 | + }, | ||
| 115 | + toggleAll({ done }) { | ||
| 116 | + this.todos.forEach(todo => { | ||
| 117 | + todo.done = done | ||
| 118 | + this.setLocalStorage() | ||
| 119 | + }) | ||
| 120 | + } | ||
| 121 | + } | ||
| 122 | +} | ||
| 123 | +</script> | ||
| 124 | + | ||
| 125 | +<style lang="scss"> | ||
| 126 | + @import './index.scss'; | ||
| 127 | +</style> |
| 1 | +<template> | ||
| 2 | + <el-table :data="list" style="width: 100%;padding-top: 15px;"> | ||
| 3 | + <el-table-column label="Order_No" min-width="200"> | ||
| 4 | + <template slot-scope="scope"> | ||
| 5 | + {{ scope.row.order_no | orderNoFilter }} | ||
| 6 | + </template> | ||
| 7 | + </el-table-column> | ||
| 8 | + <el-table-column label="Price" width="195" align="center"> | ||
| 9 | + <template slot-scope="scope"> | ||
| 10 | + ¥{{ scope.row.price | toThousandFilter }} | ||
| 11 | + </template> | ||
| 12 | + </el-table-column> | ||
| 13 | + <el-table-column label="Status" width="100" align="center"> | ||
| 14 | + <template slot-scope="{row}"> | ||
| 15 | + <el-tag :type="row.status | statusFilter"> | ||
| 16 | + {{ row.status }} | ||
| 17 | + </el-tag> | ||
| 18 | + </template> | ||
| 19 | + </el-table-column> | ||
| 20 | + </el-table> | ||
| 21 | +</template> | ||
| 22 | + | ||
| 23 | +<script> | ||
| 24 | +import { transactionList } from '@/api/remote-search' | ||
| 25 | + | ||
| 26 | +export default { | ||
| 27 | + filters: { | ||
| 28 | + statusFilter(status) { | ||
| 29 | + const statusMap = { | ||
| 30 | + success: 'success', | ||
| 31 | + pending: 'danger' | ||
| 32 | + } | ||
| 33 | + return statusMap[status] | ||
| 34 | + }, | ||
| 35 | + orderNoFilter(str) { | ||
| 36 | + return str.substring(0, 30) | ||
| 37 | + } | ||
| 38 | + }, | ||
| 39 | + data() { | ||
| 40 | + return { | ||
| 41 | + list: null | ||
| 42 | + } | ||
| 43 | + }, | ||
| 44 | + created() { | ||
| 45 | + this.fetchData() | ||
| 46 | + }, | ||
| 47 | + methods: { | ||
| 48 | + fetchData() { | ||
| 49 | + transactionList().then(response => { | ||
| 50 | + this.list = response.data.items.slice(0, 8) | ||
| 51 | + }) | ||
| 52 | + } | ||
| 53 | + } | ||
| 54 | +} | ||
| 55 | +</script> |
| 1 | +import { debounce } from '@/utils' | ||
| 2 | + | ||
| 3 | +export default { | ||
| 4 | + data() { | ||
| 5 | + return { | ||
| 6 | + $_sidebarElm: null, | ||
| 7 | + $_resizeHandler: null | ||
| 8 | + } | ||
| 9 | + }, | ||
| 10 | + mounted() { | ||
| 11 | + this.$_resizeHandler = debounce(() => { | ||
| 12 | + if (this.chart) { | ||
| 13 | + this.chart.resize() | ||
| 14 | + } | ||
| 15 | + }, 100) | ||
| 16 | + this.$_initResizeEvent() | ||
| 17 | + this.$_initSidebarResizeEvent() | ||
| 18 | + }, | ||
| 19 | + beforeDestroy() { | ||
| 20 | + this.$_destroyResizeEvent() | ||
| 21 | + this.$_destroySidebarResizeEvent() | ||
| 22 | + }, | ||
| 23 | + // to fixed bug when cached by keep-alive | ||
| 24 | + // https://github.com/PanJiaChen/vue-element-admin/issues/2116 | ||
| 25 | + activated() { | ||
| 26 | + this.$_initResizeEvent() | ||
| 27 | + this.$_initSidebarResizeEvent() | ||
| 28 | + }, | ||
| 29 | + deactivated() { | ||
| 30 | + this.$_destroyResizeEvent() | ||
| 31 | + this.$_destroySidebarResizeEvent() | ||
| 32 | + }, | ||
| 33 | + methods: { | ||
| 34 | + // use $_ for mixins properties | ||
| 35 | + // https://vuejs.org/v2/style-guide/index.html#Private-property-names-essential | ||
| 36 | + $_initResizeEvent() { | ||
| 37 | + window.addEventListener('resize', this.$_resizeHandler) | ||
| 38 | + }, | ||
| 39 | + $_destroyResizeEvent() { | ||
| 40 | + window.removeEventListener('resize', this.$_resizeHandler) | ||
| 41 | + }, | ||
| 42 | + $_sidebarResizeHandler(e) { | ||
| 43 | + if (e.propertyName === 'width') { | ||
| 44 | + this.$_resizeHandler() | ||
| 45 | + } | ||
| 46 | + }, | ||
| 47 | + $_initSidebarResizeEvent() { | ||
| 48 | + this.$_sidebarElm = document.getElementsByClassName('sidebar-container')[0] | ||
| 49 | + this.$_sidebarElm && this.$_sidebarElm.addEventListener('transitionend', this.$_sidebarResizeHandler) | ||
| 50 | + }, | ||
| 51 | + $_destroySidebarResizeEvent() { | ||
| 52 | + this.$_sidebarElm && this.$_sidebarElm.removeEventListener('transitionend', this.$_sidebarResizeHandler) | ||
| 53 | + } | ||
| 54 | + } | ||
| 55 | +} |
src/views/dashboard/index.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <div class="dashboard-editor-container"> | ||
| 3 | + <github-corner class="github-corner" /> | ||
| 4 | + | ||
| 5 | + <panel-group @handleSetLineChartData="handleSetLineChartData" /> | ||
| 6 | + | ||
| 7 | + <el-row style="background:#fff;padding:16px 16px 0;margin-bottom:32px;"> | ||
| 8 | + <line-chart :chart-data="lineChartData" /> | ||
| 9 | + </el-row> | ||
| 10 | + | ||
| 11 | + <el-row :gutter="20"> | ||
| 12 | + <el-col :span="7"> | ||
| 13 | + <div class="chart-wrapper"> | ||
| 14 | + <raddar-chart /> | ||
| 15 | + </div> | ||
| 16 | + </el-col> | ||
| 17 | +<!-- :xs="24" :sm="24" :lg="8"--> | ||
| 18 | + <el-col :span="7"> | ||
| 19 | + <div class="chart-wrapper"> | ||
| 20 | + <pie-chart /> | ||
| 21 | + </div> | ||
| 22 | + </el-col> | ||
| 23 | + <el-col :span="7"> | ||
| 24 | + <div class="chart-wrapper"> | ||
| 25 | + <bar-chart /> | ||
| 26 | + </div> | ||
| 27 | + </el-col> | ||
| 28 | + </el-row> | ||
| 29 | + | ||
| 30 | +<!-- <el-row :gutter="8">--> | ||
| 31 | +<!-- <el-col :xs="{span: 24}" :sm="{span: 24}" :md="{span: 24}" :lg="{span: 12}" :xl="{span: 12}" style="padding-right:8px;margin-bottom:30px;">--> | ||
| 32 | +<!-- <transaction-table />--> | ||
| 33 | +<!-- </el-col>--> | ||
| 34 | +<!-- <el-col :xs="{span: 24}" :sm="{span: 12}" :md="{span: 12}" :lg="{span: 6}" :xl="{span: 6}" style="margin-bottom:30px;">--> | ||
| 35 | +<!-- <todo-list />--> | ||
| 36 | +<!-- </el-col>--> | ||
| 37 | +<!-- <el-col :xs="{span: 24}" :sm="{span: 12}" :md="{span: 12}" :lg="{span: 6}" :xl="{span: 6}" style="margin-bottom:30px;">--> | ||
| 38 | +<!-- <box-card />--> | ||
| 39 | +<!-- </el-col>--> | ||
| 40 | +<!-- </el-row>--> | ||
| 41 | + </div> | ||
| 42 | +</template> | ||
| 43 | + | ||
| 44 | +<script> | ||
| 45 | + import GithubCorner from '../../components/GithubCorner' | ||
| 46 | + import PanelGroup from './components/PanelGroup' | ||
| 47 | + import LineChart from './components/LineChart' | ||
| 48 | + import RaddarChart from './components/RaddarChart' | ||
| 49 | + import PieChart from './components/PieChart' | ||
| 50 | + import BarChart from './components/BarChart' | ||
| 51 | + import TransactionTable from './components/TransactionTable' | ||
| 52 | + import TodoList from './components/TodoList' | ||
| 53 | + import BoxCard from './components/BoxCard' | ||
| 54 | + | ||
| 55 | + const lineChartData = { | ||
| 56 | + newVisitis: { | ||
| 57 | + expectedData: [100, 120, 161, 134, 105, 160, 165], | ||
| 58 | + actualData: [120, 82, 91, 154, 162, 140, 145] | ||
| 59 | + }, | ||
| 60 | + messages: { | ||
| 61 | + expectedData: [200, 192, 120, 144, 160, 130, 140], | ||
| 62 | + actualData: [180, 160, 151, 106, 145, 150, 130] | ||
| 63 | + }, | ||
| 64 | + purchases: { | ||
| 65 | + expectedData: [80, 100, 121, 104, 105, 90, 100], | ||
| 66 | + actualData: [120, 90, 100, 138, 142, 130, 130] | ||
| 67 | + }, | ||
| 68 | + shoppings: { | ||
| 69 | + expectedData: [130, 140, 141, 142, 145, 150, 160], | ||
| 70 | + actualData: [120, 82, 91, 154, 162, 140, 130] | ||
| 71 | + } | ||
| 72 | + } | ||
| 73 | + | ||
| 74 | + export default { | ||
| 75 | + name: 'DashboardAdmin', | ||
| 76 | + components: { | ||
| 77 | + GithubCorner, | ||
| 78 | + PanelGroup, | ||
| 79 | + LineChart, | ||
| 80 | + RaddarChart, | ||
| 81 | + PieChart, | ||
| 82 | + BarChart, | ||
| 83 | + TransactionTable, | ||
| 84 | + TodoList, | ||
| 85 | + BoxCard | ||
| 86 | + }, | ||
| 87 | + data() { | ||
| 88 | + return { | ||
| 89 | + lineChartData: lineChartData.newVisitis | ||
| 90 | + } | ||
| 91 | + }, | ||
| 92 | + methods: { | ||
| 93 | + handleSetLineChartData(type) { | ||
| 94 | + this.lineChartData = lineChartData[type] | ||
| 95 | + } | ||
| 96 | + } | ||
| 97 | + } | ||
| 98 | +</script> | ||
| 99 | + | ||
| 100 | +<style lang="scss" scoped> | ||
| 101 | + .dashboard-editor-container { | ||
| 102 | + padding: 32px; | ||
| 103 | + background-color: rgb(240, 242, 245); | ||
| 104 | + position: relative; | ||
| 105 | + | ||
| 106 | + .github-corner { | ||
| 107 | + position: absolute; | ||
| 108 | + top: 0px; | ||
| 109 | + border: 0; | ||
| 110 | + right: 0; | ||
| 111 | + } | ||
| 112 | + | ||
| 113 | + .chart-wrapper { | ||
| 114 | + background: #fff; | ||
| 115 | + padding: 16px 16px 0; | ||
| 116 | + margin-bottom: 32px; | ||
| 117 | + } | ||
| 118 | + } | ||
| 119 | + | ||
| 120 | + @media (max-width:1024px) { | ||
| 121 | + .chart-wrapper { | ||
| 122 | + padding: 6px; | ||
| 123 | + } | ||
| 124 | + } | ||
| 125 | +</style> |
| @@ -316,7 +316,7 @@ | @@ -316,7 +316,7 @@ | ||
| 316 | </el-table-column> | 316 | </el-table-column> |
| 317 | <el-table-column label="操作人" width="100"> | 317 | <el-table-column label="操作人" width="100"> |
| 318 | <template slot-scope="scope"> | 318 | <template slot-scope="scope"> |
| 319 | - {{scope.row.operusername}} | 319 | + {{scope.row.opersystemname}} |
| 320 | </template> | 320 | </template> |
| 321 | </el-table-column> | 321 | </el-table-column> |
| 322 | </el-table> | 322 | </el-table> |
| @@ -460,7 +460,10 @@ | @@ -460,7 +460,10 @@ | ||
| 460 | goodsname: undefined, | 460 | goodsname: undefined, |
| 461 | customcode: undefined, | 461 | customcode: undefined, |
| 462 | arrivetime: undefined, | 462 | arrivetime: undefined, |
| 463 | - messageType: 'MT3201' | 463 | + messageType: 'MT3201', |
| 464 | + user :{ | ||
| 465 | + username : JSON.parse(sessionStorage.getItem('user')).username | ||
| 466 | + } | ||
| 464 | }, | 467 | }, |
| 465 | respModel: { | 468 | respModel: { |
| 466 | uuid: undefined, | 469 | uuid: undefined, |
| @@ -627,7 +630,10 @@ | @@ -627,7 +630,10 @@ | ||
| 627 | this.arriveModel.customcode = row.customcode | 630 | this.arriveModel.customcode = row.customcode |
| 628 | this.dialogStatus = 'create' | 631 | this.dialogStatus = 'create' |
| 629 | this.fenStatus = 'addAwbh' | 632 | this.fenStatus = 'addAwbh' |
| 630 | - this.dialogFormVisible = true | 633 | + this.dialogFormVisible = true, |
| 634 | + row.user = { | ||
| 635 | + username: JSON.parse(sessionStorage.getItem('user')).username | ||
| 636 | + } | ||
| 631 | this.$nextTick(() => { | 637 | this.$nextTick(() => { |
| 632 | this.$refs.arriveFormData.clearValidate() | 638 | this.$refs.arriveFormData.clearValidate() |
| 633 | }) | 639 | }) |
| @@ -664,6 +670,9 @@ | @@ -664,6 +670,9 @@ | ||
| 664 | goodsname: undefined, | 670 | goodsname: undefined, |
| 665 | customcode: undefined, | 671 | customcode: undefined, |
| 666 | arrivetime: undefined, | 672 | arrivetime: undefined, |
| 673 | + user: { | ||
| 674 | + username: JSON.parse(sessionStorage.getItem('user')).username | ||
| 675 | + } | ||
| 667 | } | 676 | } |
| 668 | }, | 677 | }, |
| 669 | // 编辑 | 678 | // 编辑 |
| @@ -683,7 +692,11 @@ | @@ -683,7 +692,11 @@ | ||
| 683 | }) | 692 | }) |
| 684 | }, | 693 | }, |
| 685 | updateData() { | 694 | updateData() { |
| 695 | + var _this = this | ||
| 686 | this.$refs.arriveFormData.validate(valid => { | 696 | this.$refs.arriveFormData.validate(valid => { |
| 697 | + _this.arriveModel.user= { | ||
| 698 | + username : JSON.parse(sessionStorage.getItem('user')).username | ||
| 699 | + } | ||
| 687 | if (valid) { | 700 | if (valid) { |
| 688 | updateMT3201(this.arriveModel).then(res => { | 701 | updateMT3201(this.arriveModel).then(res => { |
| 689 | if (res.data.count > 0) { | 702 | if (res.data.count > 0) { |
| @@ -710,6 +723,11 @@ | @@ -710,6 +723,11 @@ | ||
| 710 | } | 723 | } |
| 711 | delete row.parent | 724 | delete row.parent |
| 712 | delete row.children | 725 | delete row.children |
| 726 | + | ||
| 727 | + row.user = { | ||
| 728 | + username : JSON.parse(sessionStorage.getItem('user')).username | ||
| 729 | + } | ||
| 730 | + | ||
| 713 | sendCreateMt3201(row).then(res => { | 731 | sendCreateMt3201(row).then(res => { |
| 714 | if (res.data.count > 0) { | 732 | if (res.data.count > 0) { |
| 715 | Message.success(res.data.respMessage) | 733 | Message.success(res.data.respMessage) |
| @@ -735,7 +753,8 @@ | @@ -735,7 +753,8 @@ | ||
| 735 | awba: undefined, | 753 | awba: undefined, |
| 736 | customCode: undefined, | 754 | customCode: undefined, |
| 737 | flightDate: undefined, | 755 | flightDate: undefined, |
| 738 | - awbh: undefined | 756 | + awbh: undefined, |
| 757 | + username: JSON.parse(sessionStorage.getItem('user')).username, | ||
| 739 | } | 758 | } |
| 740 | this.dialogDeleteVisible = true | 759 | this.dialogDeleteVisible = true |
| 741 | this.respModel.flightNo = row.flightno | 760 | this.respModel.flightNo = row.flightno |
| @@ -77,7 +77,7 @@ | @@ -77,7 +77,7 @@ | ||
| 77 | <span>{{scope.row.loadingtime}}</span> | 77 | <span>{{scope.row.loadingtime}}</span> |
| 78 | </template> | 78 | </template> |
| 79 | </el-table-column> | 79 | </el-table-column> |
| 80 | - <el-table-column label="状态" width="100" align="center"> | 80 | + <el-table-column label="状态" width="200" align="center"> |
| 81 | <template slot-scope="scope"> | 81 | <template slot-scope="scope"> |
| 82 | <span v-if="scope.row.status ==='01'">接受申报</span> | 82 | <span v-if="scope.row.status ==='01'">接受申报</span> |
| 83 | <span v-if="scope.row.status ==='02'">待人工审核</span> | 83 | <span v-if="scope.row.status ==='02'">待人工审核</span> |
| @@ -101,7 +101,7 @@ | @@ -101,7 +101,7 @@ | ||
| 101 | <span v-if="scope.row.status ==='25'">已发送修改报</span> | 101 | <span v-if="scope.row.status ==='25'">已发送修改报</span> |
| 102 | </template> | 102 | </template> |
| 103 | </el-table-column> | 103 | </el-table-column> |
| 104 | - <el-table-column label="回执信息" width="180" align="center"> | 104 | + <el-table-column label="回执信息" width="270" align="center"> |
| 105 | <template slot-scope="scope"> | 105 | <template slot-scope="scope"> |
| 106 | <span>{{scope.row.ext5}}</span> | 106 | <span>{{scope.row.ext5}}</span> |
| 107 | </template> | 107 | </template> |
| @@ -89,22 +89,28 @@ | @@ -89,22 +89,28 @@ | ||
| 89 | <span>{{ scope.row.actime }}</span> | 89 | <span>{{ scope.row.actime }}</span> |
| 90 | </template> | 90 | </template> |
| 91 | </el-table-column> | 91 | </el-table-column> |
| 92 | - <el-table-column label="状态" width="90px" align="center"> | 92 | + <el-table-column label="状态" width="130px" align="center"> |
| 93 | <template slot-scope="scope"> | 93 | <template slot-scope="scope"> |
| 94 | - <span v-if="scope.row.status ==='01'">未发送</span> | ||
| 95 | - <span v-if="scope.row.status ==='02'">已发舱单报</span> | 94 | + <span v-if="scope.row.status ==='01'">接受申报</span> |
| 95 | + <span v-if="scope.row.status ==='02'">待人工审核</span> | ||
| 96 | + <span v-if="scope.row.status ==='03'">退单</span> | ||
| 96 | <span v-if="scope.row.status ==='05'">舱单报退单</span> | 97 | <span v-if="scope.row.status ==='05'">舱单报退单</span> |
| 97 | <span v-if="scope.row.status ==='06'">舱单转人工</span> | 98 | <span v-if="scope.row.status ==='06'">舱单转人工</span> |
| 98 | <span v-if="scope.row.status ==='07'">舱单报申报成功</span> | 99 | <span v-if="scope.row.status ==='07'">舱单报申报成功</span> |
| 99 | <span v-if="scope.row.status ==='08'">已发舱单删除报</span> | 100 | <span v-if="scope.row.status ==='08'">已发舱单删除报</span> |
| 100 | <span v-if="scope.row.status ==='09'">舱单删除报退单</span> | 101 | <span v-if="scope.row.status ==='09'">舱单删除报退单</span> |
| 101 | <span v-if="scope.row.status ==='10'">舱单删除报转人工</span> | 102 | <span v-if="scope.row.status ==='10'">舱单删除报转人工</span> |
| 102 | - <span v-if="scope.row.status ==='11'">舱单删除成功</span> | ||
| 103 | - <span v-if="scope.row.status ==='12'">已发舱单修改报</span> | ||
| 104 | - <span v-if="scope.row.status ==='13'">舱单修改报退单</span> | 103 | + <span v-if="scope.row.status ==='11'">放行</span> |
| 104 | + <span v-if="scope.row.status ==='12'">拒装</span> | ||
| 105 | + <span v-if="scope.row.status ==='13'">禁卸</span> | ||
| 105 | <span v-if="scope.row.status ==='14'">舱单修改报转人工</span> | 106 | <span v-if="scope.row.status ==='14'">舱单修改报转人工</span> |
| 106 | <span v-if="scope.row.status ==='15'">舱单修改报成功</span> | 107 | <span v-if="scope.row.status ==='15'">舱单修改报成功</span> |
| 107 | <span v-if="scope.row.status ==='16'">海关已存在</span> | 108 | <span v-if="scope.row.status ==='16'">海关已存在</span> |
| 109 | + <span v-if="scope.row.status ==='21'">可自动发送</span> | ||
| 110 | + <span v-if="scope.row.status ==='22'">未发送</span> | ||
| 111 | + <span v-if="scope.row.status ==='23'">已发送新增报</span> | ||
| 112 | + <span v-if="scope.row.status ==='24'">已发送删除报</span> | ||
| 113 | + <span v-if="scope.row.status ==='25'">已发送修改报</span> | ||
| 108 | </template> | 114 | </template> |
| 109 | </el-table-column> | 115 | </el-table-column> |
| 110 | <el-table-column label="回执内容" align="center" show-overflow-tooltip> | 116 | <el-table-column label="回执内容" align="center" show-overflow-tooltip> |
| @@ -41,6 +41,16 @@ | @@ -41,6 +41,16 @@ | ||
| 41 | size="mini" | 41 | size="mini" |
| 42 | @click="handleAddpre">新增预配舱单 | 42 | @click="handleAddpre">新增预配舱单 |
| 43 | </el-button> | 43 | </el-button> |
| 44 | + <el-upload | ||
| 45 | + style="display: inline; margin-left: 10px;margin-right: 10px;" | ||
| 46 | + action="" | ||
| 47 | + :http-request="uploadFile" | ||
| 48 | + :limit=1 | ||
| 49 | + :on-exceed="fileExceed" | ||
| 50 | + accept="application/vnd.ms-excel,application/vnd.ms-excels" | ||
| 51 | + ref="fileupload"> | ||
| 52 | + <el-button slot="trigger" size="small" type="primary">导入excel</el-button> | ||
| 53 | + </el-upload> | ||
| 44 | </div> | 54 | </div> |
| 45 | </div> | 55 | </div> |
| 46 | </el-col> | 56 | </el-col> |
| @@ -75,7 +85,7 @@ | @@ -75,7 +85,7 @@ | ||
| 75 | </el-table-column> | 85 | </el-table-column> |
| 76 | <el-table-column label="运单件数/重量" width="100" align="center"> | 86 | <el-table-column label="运单件数/重量" width="100" align="center"> |
| 77 | <template slot-scope="scope"> | 87 | <template slot-scope="scope"> |
| 78 | - {{scope.row.awbinfo.pcs}}/{{scope.row.awbinfo.weight}} | 88 | + {{scope.row.awbinfo.pcs}}/{{scope.row.awbinfo.weight}} |
| 79 | </template> | 89 | </template> |
| 80 | </el-table-column> | 90 | </el-table-column> |
| 81 | <el-table-column label="预配件数/重量" width="100" align="center"> | 91 | <el-table-column label="预配件数/重量" width="100" align="center"> |
| @@ -158,10 +168,10 @@ | @@ -158,10 +168,10 @@ | ||
| 158 | <pagination background layout="total, prev, pager, next" v-show="total>0" :total="total" :page.sync="preQuery.pageSize" :limit.sync="preQuery.limitSize" | 168 | <pagination background layout="total, prev, pager, next" v-show="total>0" :total="total" :page.sync="preQuery.pageSize" :limit.sync="preQuery.limitSize" |
| 159 | @pagination="getList"/> | 169 | @pagination="getList"/> |
| 160 | 170 | ||
| 161 | - <el-dialog :title="dialogMap[dialogStatus]" :visible.sync="dialogFormVisible" width="85%"> | ||
| 162 | - <el-form ref="preFormData" :model="preModel" :rules="preRoles" label-position="right" | ||
| 163 | - label-width="120px" class="el-dialog-div"> | ||
| 164 | - <div class="grid-content content"> | 171 | + <el-dialog top="5vh" :title="dialogMap[dialogStatus]" :visible.sync="dialogFormVisible" width="90%"> |
| 172 | + <el-form ref="preFormData" :model="preModel" :rules="preRoles" label-position="right" | ||
| 173 | + label-width="78px" size="mini" class="el-dialog-div" style="height: 90%"> | ||
| 174 | + <div class="grid-content content" style="font-size: 10px"> | ||
| 165 | 运单信息 | 175 | 运单信息 |
| 166 | </div> | 176 | </div> |
| 167 | <el-row> | 177 | <el-row> |
| @@ -176,7 +186,7 @@ | @@ -176,7 +186,7 @@ | ||
| 176 | </el-form-item> | 186 | </el-form-item> |
| 177 | </el-col> | 187 | </el-col> |
| 178 | </el-row> | 188 | </el-row> |
| 179 | - <div class="grid-content content"> | 189 | + <div class="grid-content content" style="font-size: 10px"> |
| 180 | 航班信息 | 190 | 航班信息 |
| 181 | </div> | 191 | </div> |
| 182 | <el-row> | 192 | <el-row> |
| @@ -198,9 +208,6 @@ | @@ -198,9 +208,6 @@ | ||
| 198 | type="date" placeholder="请输入航班日期" clearable/> | 208 | type="date" placeholder="请输入航班日期" clearable/> |
| 199 | </el-form-item> | 209 | </el-form-item> |
| 200 | </el-col> | 210 | </el-col> |
| 201 | - | ||
| 202 | - </el-row> | ||
| 203 | - <el-row> | ||
| 204 | <el-col :span="7.5"> | 211 | <el-col :span="7.5"> |
| 205 | <el-form-item label="起始站" prop="originstation"> | 212 | <el-form-item label="起始站" prop="originstation"> |
| 206 | <el-select | 213 | <el-select |
| @@ -234,102 +241,91 @@ | @@ -234,102 +241,91 @@ | ||
| 234 | </el-form-item> | 241 | </el-form-item> |
| 235 | </el-col> | 242 | </el-col> |
| 236 | </el-row> | 243 | </el-row> |
| 237 | - <div class="grid-content content"> | 244 | + <div class="grid-content content" style="font-size: 10px"> |
| 238 | 航程信息 | 245 | 航程信息 |
| 239 | </div> | 246 | </div> |
| 240 | <div> | 247 | <div> |
| 241 | <el-row> | 248 | <el-row> |
| 242 | - <el-col :span="7.5"> | 249 | + <el-col :span="3"> |
| 243 | <el-form-item label="承运人" prop="carrier"> | 250 | <el-form-item label="承运人" prop="carrier"> |
| 244 | <el-input v-model="carrier" disabled clearable/> | 251 | <el-input v-model="carrier" disabled clearable/> |
| 245 | </el-form-item> | 252 | </el-form-item> |
| 246 | </el-col> | 253 | </el-col> |
| 247 | - <el-col :span="7.5"> | 254 | + <el-col :span="3"> |
| 248 | <el-form-item label="到达航站" prop="destinationstation"> | 255 | <el-form-item label="到达航站" prop="destinationstation"> |
| 249 | <el-input v-model="destinationstation" disabled clearable/> | 256 | <el-input v-model="destinationstation" disabled clearable/> |
| 250 | </el-form-item> | 257 | </el-form-item> |
| 251 | </el-col> | 258 | </el-col> |
| 252 | - </el-row> | ||
| 253 | - <el-row> | ||
| 254 | - <el-col :span="7.5"> | 259 | + <el-col :span="3"> |
| 255 | <el-form-item label="承运人1"> | 260 | <el-form-item label="承运人1"> |
| 256 | <el-input v-model="by1" clearable/> | 261 | <el-input v-model="by1" clearable/> |
| 257 | </el-form-item> | 262 | </el-form-item> |
| 258 | </el-col> | 263 | </el-col> |
| 259 | - <el-col :span="7.5"> | 264 | + <el-col :span="3"> |
| 260 | <el-form-item label="到达航站1"> | 265 | <el-form-item label="到达航站1"> |
| 261 | <el-input v-model="dest1" clearable></el-input> | 266 | <el-input v-model="dest1" clearable></el-input> |
| 262 | </el-form-item> | 267 | </el-form-item> |
| 263 | </el-col> | 268 | </el-col> |
| 264 | - </el-row> | ||
| 265 | - <el-row> | ||
| 266 | - <el-col :span="7.5"> | 269 | + <el-col :span="3"> |
| 267 | <el-form-item label="承运人2"> | 270 | <el-form-item label="承运人2"> |
| 268 | <el-input v-model="by2" clearable/> | 271 | <el-input v-model="by2" clearable/> |
| 269 | </el-form-item> | 272 | </el-form-item> |
| 270 | </el-col> | 273 | </el-col> |
| 271 | - <el-col :span="7.5"> | 274 | + <el-col :span="3"> |
| 272 | <el-form-item label="到达航站2"> | 275 | <el-form-item label="到达航站2"> |
| 273 | <el-input v-model="dest2" clearable/> | 276 | <el-input v-model="dest2" clearable/> |
| 274 | </el-form-item> | 277 | </el-form-item> |
| 275 | </el-col> | 278 | </el-col> |
| 276 | - | ||
| 277 | </el-row> | 279 | </el-row> |
| 278 | </div> | 280 | </div> |
| 279 | - <div class="grid-content content"> | 281 | + <div class="grid-content content" style="font-size: 10px"> |
| 280 | 货物信息 | 282 | 货物信息 |
| 281 | </div> | 283 | </div> |
| 282 | <el-row> | 284 | <el-row> |
| 283 | - <el-col :span="7.5"> | 285 | + <el-col :span="3"> |
| 284 | <el-form-item label="运单件数" prop="awbinfo.pcs"> | 286 | <el-form-item label="运单件数" prop="awbinfo.pcs"> |
| 285 | <el-input v-model="preModel.awbinfo.pcs" clearable/> | 287 | <el-input v-model="preModel.awbinfo.pcs" clearable/> |
| 286 | </el-form-item> | 288 | </el-form-item> |
| 287 | </el-col> | 289 | </el-col> |
| 288 | - <el-col :span="7.5"> | 290 | + <el-col :span="3"> |
| 289 | <el-form-item label="运单重量" prop="awbinfo.weight"> | 291 | <el-form-item label="运单重量" prop="awbinfo.weight"> |
| 290 | <el-input v-model="preModel.awbinfo.weight" clearable/> | 292 | <el-input v-model="preModel.awbinfo.weight" clearable/> |
| 291 | </el-form-item> | 293 | </el-form-item> |
| 292 | </el-col> | 294 | </el-col> |
| 293 | - <el-col :span="7.5"> | 295 | + <el-col :span="3"> |
| 294 | <el-form-item label="货物描述" prop="goodsname"> | 296 | <el-form-item label="货物描述" prop="goodsname"> |
| 295 | <el-input v-model="goodsname" clearable/> | 297 | <el-input v-model="goodsname" clearable/> |
| 296 | </el-form-item> | 298 | </el-form-item> |
| 297 | </el-col> | 299 | </el-col> |
| 298 | - </el-row> | ||
| 299 | - <el-row> | ||
| 300 | - <el-col :span="7.5" v-if="fenStatus !=='addAwbh'"> | 300 | + <el-col :span="3" v-if="fenStatus !=='addAwbh'"> |
| 301 | <el-form-item label="预配件数" prop="piece"> | 301 | <el-form-item label="预配件数" prop="piece"> |
| 302 | <el-input v-model="preModel.piece" clearable/> | 302 | <el-input v-model="preModel.piece" clearable/> |
| 303 | </el-form-item> | 303 | </el-form-item> |
| 304 | </el-col> | 304 | </el-col> |
| 305 | - <el-col :span="8" v-if="fenStatus ==='addAwbh'"> | ||
| 306 | - <el-col :span="14"> | 305 | + <el-col :span="3" v-if="fenStatus ==='addAwbh'"> |
| 307 | <el-form-item label="预配件数" prop="piece"> | 306 | <el-form-item label="预配件数" prop="piece"> |
| 308 | <el-input v-model="preModel.piece" clearable/> | 307 | <el-input v-model="preModel.piece" clearable/> |
| 309 | </el-form-item> | 308 | </el-form-item> |
| 310 | - </el-col> | ||
| 311 | - <el-col :span="8"> | ||
| 312 | - <span>剩余件数:{{awbPiece}}</span> | ||
| 313 | - </el-col> | 309 | + </el-col> |
| 310 | + <el-col :span="1.5" v-if="fenStatus ==='addAwbh'"> | ||
| 311 | + <span>剩余件数:{{awbPiece}}</span> | ||
| 314 | </el-col> | 312 | </el-col> |
| 315 | 313 | ||
| 316 | - <el-col :span="7.5" v-if="fenStatus !=='addAwbh'"> | 314 | + <el-col :span="3" v-if="fenStatus !=='addAwbh'"> |
| 317 | <el-form-item label="预配重量" prop="weight"> | 315 | <el-form-item label="预配重量" prop="weight"> |
| 318 | <el-input v-model="preModel.weight" clearable/> | 316 | <el-input v-model="preModel.weight" clearable/> |
| 319 | </el-form-item> | 317 | </el-form-item> |
| 320 | </el-col> | 318 | </el-col> |
| 321 | - <el-col :span="8" v-if="fenStatus ==='addAwbh'"> | ||
| 322 | - <el-col :span="14"> | ||
| 323 | - <el-form-item label="预配重量" prop="weight"> | ||
| 324 | - <el-input v-model="preModel.weight" clearable/> | ||
| 325 | - </el-form-item> | ||
| 326 | - </el-col> | ||
| 327 | - <el-col :span="8"> | ||
| 328 | - <span>剩余重量:{{awbWeight}}</span> | ||
| 329 | - </el-col> | 319 | + <el-col :span="3" v-if="fenStatus ==='addAwbh'"> |
| 320 | + <el-form-item label="预配重量" prop="weight"> | ||
| 321 | + <el-input v-model="preModel.weight" clearable/> | ||
| 322 | + </el-form-item> | ||
| 323 | + </el-col> | ||
| 324 | + <el-col :span="1.5" v-if="fenStatus ==='addAwbh'"> | ||
| 325 | + <span>剩余重量:{{awbWeight}}</span> | ||
| 330 | </el-col> | 326 | </el-col> |
| 331 | 327 | ||
| 332 | - <el-col :span="7.5"> | 328 | + <el-col :span="3"> |
| 333 | <el-form-item label="预配时间" prop="actime"> | 329 | <el-form-item label="预配时间" prop="actime"> |
| 334 | <el-date-picker value-format="yyyy-MM-dd HH:mm:ss" | 330 | <el-date-picker value-format="yyyy-MM-dd HH:mm:ss" |
| 335 | v-model="preModel.actime" align="right" | 331 | v-model="preModel.actime" align="right" |
| @@ -338,9 +334,9 @@ | @@ -338,9 +334,9 @@ | ||
| 338 | </el-col> | 334 | </el-col> |
| 339 | </el-row> | 335 | </el-row> |
| 340 | <el-row> | 336 | <el-row> |
| 341 | - <el-col :span="7.5"> | ||
| 342 | - <el-form-item label="关区代码" prop="customcode"> | ||
| 343 | - <el-select v-model="preModel.customcode" placeholder="请选择关区代码" | 337 | + <el-col :span="3"> |
| 338 | + <el-form-item label="关区代码" prop="customcode"> | ||
| 339 | + <el-select v-model="preModel.customcode" placeholder="请选择关区代码" | ||
| 344 | filterable clearable :remote-method="remoteMethodCustomCode" :loading="customLoading" remote | 340 | filterable clearable :remote-method="remoteMethodCustomCode" :loading="customLoading" remote |
| 345 | :disabled="fenStatus === 'addAwbh'"> | 341 | :disabled="fenStatus === 'addAwbh'"> |
| 346 | <el-option v-for="item in customCodeList" :key="item.customcode" :label="item.customcode" | 342 | <el-option v-for="item in customCodeList" :key="item.customcode" :label="item.customcode" |
| @@ -351,7 +347,7 @@ | @@ -351,7 +347,7 @@ | ||
| 351 | </el-select> | 347 | </el-select> |
| 352 | </el-form-item> | 348 | </el-form-item> |
| 353 | </el-col> | 349 | </el-col> |
| 354 | - <el-col :span="7.5"> | 350 | + <el-col :span="3"> |
| 355 | <el-form-item label="海关状态"> | 351 | <el-form-item label="海关状态"> |
| 356 | <el-select v-model="preModel.awbinfo.awbtype" class="filter-item" placeholder="请录入货物类型"> | 352 | <el-select v-model="preModel.awbinfo.awbtype" class="filter-item" placeholder="请录入货物类型"> |
| 357 | <el-option v-for="item in customTypes" :key="item.value" :label="item.label" | 353 | <el-option v-for="item in customTypes" :key="item.value" :label="item.label" |
| @@ -359,7 +355,7 @@ | @@ -359,7 +355,7 @@ | ||
| 359 | </el-select> | 355 | </el-select> |
| 360 | </el-form-item> | 356 | </el-form-item> |
| 361 | </el-col> | 357 | </el-col> |
| 362 | - <el-col :span="7.5"> | 358 | + <el-col :span="3"> |
| 363 | <el-form-item label="付费方式" prop="awbinfo.paymodel"> | 359 | <el-form-item label="付费方式" prop="awbinfo.paymodel"> |
| 364 | <el-select v-model="preModel.awbinfo.paymodel" class="filter-item" placeholder="付费方式"> | 360 | <el-select v-model="preModel.awbinfo.paymodel" class="filter-item" placeholder="付费方式"> |
| 365 | <el-option | 361 | <el-option |
| @@ -370,67 +366,57 @@ | @@ -370,67 +366,57 @@ | ||
| 370 | </el-select> | 366 | </el-select> |
| 371 | </el-form-item> | 367 | </el-form-item> |
| 372 | </el-col> | 368 | </el-col> |
| 373 | - </el-row> | ||
| 374 | - <el-row> | ||
| 375 | - | ||
| 376 | - <el-col :span="7.5"> | 369 | + <el-col :span="3"> |
| 377 | <el-form-item label="卸货地" prop=""> | 370 | <el-form-item label="卸货地" prop=""> |
| 378 | <el-input v-model="specopeid" clearable/> | 371 | <el-input v-model="specopeid" clearable/> |
| 379 | </el-form-item> | 372 | </el-form-item> |
| 380 | </el-col> | 373 | </el-col> |
| 381 | - <el-col :span="7.5"> | ||
| 382 | - <el-form-item label="代理人代码" prop=""> | 374 | + <el-col :span="3"> |
| 375 | + <el-form-item label-width="95px" label="代理人代码" prop=""> | ||
| 383 | <el-input v-model="preModel.awbinfo.shpcustomerid" clearable/> | 376 | <el-input v-model="preModel.awbinfo.shpcustomerid" clearable/> |
| 384 | </el-form-item> | 377 | </el-form-item> |
| 385 | </el-col> | 378 | </el-col> |
| 386 | - <el-col :span="7.5"> | ||
| 387 | - <el-form-item label="代理人名称" prop=""> | 379 | + <el-col :span="3"> |
| 380 | + <el-form-item label-width="95px" label="代理人名称" prop=""> | ||
| 388 | <el-input v-model="preModel.awbinfo.shpcustomerid" clearable/> | 381 | <el-input v-model="preModel.awbinfo.shpcustomerid" clearable/> |
| 389 | </el-form-item> | 382 | </el-form-item> |
| 390 | </el-col> | 383 | </el-col> |
| 391 | </el-row> | 384 | </el-row> |
| 392 | - <el-row> | ||
| 393 | - | ||
| 394 | - </el-row> | ||
| 395 | - <div class="grid-content content"> | 385 | + <div class="grid-content content" style="font-size: 10px"> |
| 396 | 发货人信息 | 386 | 发货人信息 |
| 397 | </div> | 387 | </div> |
| 398 | <el-row> | 388 | <el-row> |
| 399 | - <el-col :span="7.5"> | ||
| 400 | - <el-form-item label="发货人名称" prop="awbinfo.shprname"> | 389 | + <el-col :span="3"> |
| 390 | + <el-form-item label-width="95px" label="发货人名称" prop="awbinfo.shprname"> | ||
| 401 | <el-input v-model="shprname" clearable/> | 391 | <el-input v-model="shprname" clearable/> |
| 402 | </el-form-item> | 392 | </el-form-item> |
| 403 | </el-col> | 393 | </el-col> |
| 404 | - <el-col :span="7.5"> | 394 | + <el-col :span="3"> |
| 405 | <el-form-item label="地址" prop="awbinfo.shpraddress"> | 395 | <el-form-item label="地址" prop="awbinfo.shpraddress"> |
| 406 | - <el-input v-model="shpraddress" clearable/> | 396 | + <el-input style="width: 100px" v-model="shpraddress" clearable/> |
| 407 | </el-form-item> | 397 | </el-form-item> |
| 408 | </el-col> | 398 | </el-col> |
| 409 | - <el-col :span="7.5"> | 399 | + <el-col :span="2"> |
| 410 | <el-form-item label="城市代码"> | 400 | <el-form-item label="城市代码"> |
| 411 | - <el-input v-model="scityid" maxlength="5" clearable/> | 401 | + <el-input style="width: 100px" v-model="scityid" maxlength="5" clearable/> |
| 412 | </el-form-item> | 402 | </el-form-item> |
| 413 | </el-col> | 403 | </el-col> |
| 414 | - </el-row> | ||
| 415 | - <el-row> | ||
| 416 | - <el-col :span="7.5"> | 404 | + <el-col :span="3"> |
| 417 | <el-form-item label="电话" prop="awbinfo.shprtel"> | 405 | <el-form-item label="电话" prop="awbinfo.shprtel"> |
| 418 | - <el-input v-model="preModel.awbinfo.shprtel" clearable/> | 406 | + <el-input style="width: 150px" v-model="preModel.awbinfo.shprtel" clearable/> |
| 419 | </el-form-item> | 407 | </el-form-item> |
| 420 | </el-col> | 408 | </el-col> |
| 421 | - <el-col :span="7.5"> | 409 | + <el-col :span="3"> |
| 422 | <el-form-item label="传真"> | 410 | <el-form-item label="传真"> |
| 423 | <el-input v-model="preModel.awbinfo.shprmobiletype" clearable/> | 411 | <el-input v-model="preModel.awbinfo.shprmobiletype" clearable/> |
| 424 | </el-form-item> | 412 | </el-form-item> |
| 425 | </el-col> | 413 | </el-col> |
| 426 | - <el-col :span="7.5"> | ||
| 427 | - <el-form-item label="发货人AEO编码" prop="awbinfo.shpaeocode"> | 414 | + <el-col :span="3"> |
| 415 | + <el-form-item label-width="115px" label="发货人AEO编码" prop="awbinfo.shpaeocode"> | ||
| 428 | <el-input v-model="shpaeocode" clearable/> | 416 | <el-input v-model="shpaeocode" clearable/> |
| 429 | </el-form-item> | 417 | </el-form-item> |
| 430 | </el-col> | 418 | </el-col> |
| 431 | - </el-row> | ||
| 432 | - <el-row> | ||
| 433 | - <el-col :span="7.5"> | 419 | + <el-col :span="3"> |
| 434 | <el-form-item label="国家代码" prop="awbinfo.shprcountyr"> | 420 | <el-form-item label="国家代码" prop="awbinfo.shprcountyr"> |
| 435 | <el-select | 421 | <el-select |
| 436 | :remote-method="remoteMethod" | 422 | :remote-method="remoteMethod" |
| @@ -471,45 +457,41 @@ | @@ -471,45 +457,41 @@ | ||
| 471 | <!--</el-form-item>--> | 457 | <!--</el-form-item>--> |
| 472 | <!--</el-col>--> | 458 | <!--</el-col>--> |
| 473 | </el-row> | 459 | </el-row> |
| 474 | - <div class="grid-content content"> | 460 | + <div class="grid-content content" style="font-size: 10px"> |
| 475 | 收货人信息 | 461 | 收货人信息 |
| 476 | </div> | 462 | </div> |
| 477 | <el-row> | 463 | <el-row> |
| 478 | - <el-col :span="7.5"> | ||
| 479 | - <el-form-item label="收货人名称" prop="awbinfo.cnsnname"> | 464 | + <el-col :span="3"> |
| 465 | + <el-form-item label-width="95px" label="收货人名称" prop="awbinfo.cnsnname"> | ||
| 480 | <el-input v-model="cnsnname" clearable/> | 466 | <el-input v-model="cnsnname" clearable/> |
| 481 | </el-form-item> | 467 | </el-form-item> |
| 482 | </el-col> | 468 | </el-col> |
| 483 | - <el-col :span="7.5"> | 469 | + <el-col :span="3"> |
| 484 | <el-form-item label="地址" prop="awbinfo.cnsnaddress"> | 470 | <el-form-item label="地址" prop="awbinfo.cnsnaddress"> |
| 485 | - <el-input v-model="cnsnaddress" clearable/> | 471 | + <el-input style="weight: 100px" v-model="cnsnaddress" clearable/> |
| 486 | </el-form-item> | 472 | </el-form-item> |
| 487 | </el-col> | 473 | </el-col> |
| 488 | - <el-col :span="7.5"> | 474 | + <el-col :span="3"> |
| 489 | <el-form-item label="城市代码"> | 475 | <el-form-item label="城市代码"> |
| 490 | - <el-input v-model="ecityid" clearable maxlength="5"/> | 476 | + <el-input style="width: 100px" v-model="ecityid" clearable maxlength="5"/> |
| 491 | </el-form-item> | 477 | </el-form-item> |
| 492 | </el-col> | 478 | </el-col> |
| 493 | - </el-row> | ||
| 494 | - <el-row> | ||
| 495 | - <el-col :span="7.5"> | 479 | + <el-col :span="3"> |
| 496 | <el-form-item label="电话" prop="awbinfo.cnsntel"> | 480 | <el-form-item label="电话" prop="awbinfo.cnsntel"> |
| 497 | - <el-input v-model="preModel.awbinfo.cnsntel" clearable/> | 481 | + <el-input style="weight: 150px" v-model="preModel.awbinfo.cnsntel" clearable/> |
| 498 | </el-form-item> | 482 | </el-form-item> |
| 499 | </el-col> | 483 | </el-col> |
| 500 | - <el-col :span="7.5"> | 484 | + <el-col :span="3"> |
| 501 | <el-form-item label="传真"> | 485 | <el-form-item label="传真"> |
| 502 | <el-input v-model="preModel.awbinfo.cnsrmobiletype" clearable/> | 486 | <el-input v-model="preModel.awbinfo.cnsrmobiletype" clearable/> |
| 503 | </el-form-item> | 487 | </el-form-item> |
| 504 | </el-col> | 488 | </el-col> |
| 505 | - <el-col :span="7.5"> | ||
| 506 | - <el-form-item label="收货人AEO编码" prop="awbinfo.cnsaeocode"> | 489 | + <el-col :span="3"> |
| 490 | + <el-form-item label-width="115px" label="收货人AEO编码" prop="awbinfo.cnsaeocode"> | ||
| 507 | <el-input v-model="cnsaeocode" clearable/> | 491 | <el-input v-model="cnsaeocode" clearable/> |
| 508 | </el-form-item> | 492 | </el-form-item> |
| 509 | </el-col> | 493 | </el-col> |
| 510 | - </el-row> | ||
| 511 | - <el-row> | ||
| 512 | - <el-col :span="7.5"> | 494 | + <el-col :span="3"> |
| 513 | <el-form-item label="国家代码" prop="awbinfo.cnscountyr"> | 495 | <el-form-item label="国家代码" prop="awbinfo.cnscountyr"> |
| 514 | <el-select | 496 | <el-select |
| 515 | :remote-method="remoteMethod" | 497 | :remote-method="remoteMethod" |
| @@ -530,13 +512,13 @@ | @@ -530,13 +512,13 @@ | ||
| 530 | </el-select> | 512 | </el-select> |
| 531 | </el-form-item> | 513 | </el-form-item> |
| 532 | </el-col> | 514 | </el-col> |
| 533 | - <el-col :span="7.5"> | ||
| 534 | - <el-form-item label="具体收货人名称" prop="awbinfo.cnsrctcname"> | 515 | + <el-col :span="3"> |
| 516 | + <el-form-item label-width="115px" label="具体收货人名称" prop="awbinfo.cnsrctcname"> | ||
| 535 | <el-input v-model="cnsrctcname" clearable/> | 517 | <el-input v-model="cnsrctcname" clearable/> |
| 536 | </el-form-item> | 518 | </el-form-item> |
| 537 | </el-col> | 519 | </el-col> |
| 538 | - <el-col :span="7.5"> | ||
| 539 | - <el-form-item label="具体收货人电话" prop="awbinfo.cnsrctctel"> | 520 | + <el-col :span="4"> |
| 521 | + <el-form-item label-width="115px" label="具体收货人电话" prop="awbinfo.cnsrctctel"> | ||
| 540 | <el-input v-model="preModel.awbinfo.cnsrctctel" clearable/> | 522 | <el-input v-model="preModel.awbinfo.cnsrctctel" clearable/> |
| 541 | </el-form-item> | 523 | </el-form-item> |
| 542 | </el-col> | 524 | </el-col> |
| @@ -630,7 +612,7 @@ | @@ -630,7 +612,7 @@ | ||
| 630 | </el-table-column> | 612 | </el-table-column> |
| 631 | <el-table-column label="操作人" width="100"> | 613 | <el-table-column label="操作人" width="100"> |
| 632 | <template slot-scope="scope"> | 614 | <template slot-scope="scope"> |
| 633 | - {{scope.row.operusername}} | 615 | + {{scope.row.opersystemname}} |
| 634 | </template> | 616 | </template> |
| 635 | </el-table-column> | 617 | </el-table-column> |
| 636 | </el-table> | 618 | </el-table> |
| @@ -672,7 +654,8 @@ | @@ -672,7 +654,8 @@ | ||
| 672 | addMt2201, | 654 | addMt2201, |
| 673 | sendCreateMt2201, | 655 | sendCreateMt2201, |
| 674 | sendDeleteMt2201, | 656 | sendDeleteMt2201, |
| 675 | - sendUpdateMt2201 | 657 | + sendUpdateMt2201, |
| 658 | + uploadFileExcel | ||
| 676 | } from '@/api/exitPre' | 659 | } from '@/api/exitPre' |
| 677 | import {Message} from "element-ui"; | 660 | import {Message} from "element-ui"; |
| 678 | import {getResponseForParam} from '@/api/responseDetail' | 661 | import {getResponseForParam} from '@/api/responseDetail' |
| @@ -853,6 +836,9 @@ | @@ -853,6 +836,9 @@ | ||
| 853 | csgcustomerid: undefined, | 836 | csgcustomerid: undefined, |
| 854 | paymodel: '0', | 837 | paymodel: '0', |
| 855 | awbtype: undefined | 838 | awbtype: undefined |
| 839 | + }, | ||
| 840 | + user: { | ||
| 841 | + username: this.username | ||
| 856 | } | 842 | } |
| 857 | }, | 843 | }, |
| 858 | respModel: { | 844 | respModel: { |
| @@ -1134,6 +1120,7 @@ | @@ -1134,6 +1120,7 @@ | ||
| 1134 | } else { | 1120 | } else { |
| 1135 | getMt2201ListForParam(this.preQuery).then(res => { | 1121 | getMt2201ListForParam(this.preQuery).then(res => { |
| 1136 | this.preData = res.data.dataList | 1122 | this.preData = res.data.dataList |
| 1123 | + | ||
| 1137 | this.total = res.data.count | 1124 | this.total = res.data.count |
| 1138 | setTimeout(() => { | 1125 | setTimeout(() => { |
| 1139 | this.listLoading = false | 1126 | this.listLoading = false |
| @@ -1199,11 +1186,16 @@ | @@ -1199,11 +1186,16 @@ | ||
| 1199 | eairportid: undefined, | 1186 | eairportid: undefined, |
| 1200 | csgcustomerid: undefined, | 1187 | csgcustomerid: undefined, |
| 1201 | paymodel: '0', | 1188 | paymodel: '0', |
| 1189 | + }, | ||
| 1190 | + user: { | ||
| 1191 | + username : JSON.parse(sessionStorage.getItem('user')).username | ||
| 1202 | } | 1192 | } |
| 1203 | } | 1193 | } |
| 1204 | }, | 1194 | }, |
| 1205 | // >>>>>>>>>>>>>>>>新增主单<<<<<<<<<<<<<<<<<< | 1195 | // >>>>>>>>>>>>>>>>新增主单<<<<<<<<<<<<<<<<<< |
| 1206 | handleAddpreInfo() { | 1196 | handleAddpreInfo() { |
| 1197 | + | ||
| 1198 | + this.fenStatus=undefined; | ||
| 1207 | this.restModel() | 1199 | this.restModel() |
| 1208 | this.preModel.carrier = this.preQuery.carrier | 1200 | this.preModel.carrier = this.preQuery.carrier |
| 1209 | this.preModel.flightno = this.preQuery.flightno | 1201 | this.preModel.flightno = this.preQuery.flightno |
| @@ -1274,6 +1266,9 @@ | @@ -1274,6 +1266,9 @@ | ||
| 1274 | if (row.awbh === null) { | 1266 | if (row.awbh === null) { |
| 1275 | row.awbh = '' | 1267 | row.awbh = '' |
| 1276 | } | 1268 | } |
| 1269 | + row.user = { | ||
| 1270 | + username : JSON.parse(sessionStorage.getItem('user')).username | ||
| 1271 | + } | ||
| 1277 | sendCreateMt2201(row).then(res => { | 1272 | sendCreateMt2201(row).then(res => { |
| 1278 | if (res.data.count > 0) { | 1273 | if (res.data.count > 0) { |
| 1279 | Message.success(res.data.respMessage) | 1274 | Message.success(res.data.respMessage) |
| @@ -1295,7 +1290,8 @@ | @@ -1295,7 +1290,8 @@ | ||
| 1295 | }, | 1290 | }, |
| 1296 | // >>>>>>>>>>>>>>>>更新运单数据<<<<<<<<<<<<<<<<<< | 1291 | // >>>>>>>>>>>>>>>>更新运单数据<<<<<<<<<<<<<<<<<< |
| 1297 | handleEdit(row) { | 1292 | handleEdit(row) { |
| 1298 | - console.log(row) | 1293 | + this.dialogStatus = undefined; |
| 1294 | + this.fenStatus = undefined; | ||
| 1299 | this.preModel = Object.assign({}, row) | 1295 | this.preModel = Object.assign({}, row) |
| 1300 | this.dialogStatus = 'update' | 1296 | this.dialogStatus = 'update' |
| 1301 | if (row.awbh !== undefined && row.awbh !== ""){ | 1297 | if (row.awbh !== undefined && row.awbh !== ""){ |
| @@ -1308,11 +1304,16 @@ | @@ -1308,11 +1304,16 @@ | ||
| 1308 | }) | 1304 | }) |
| 1309 | }, | 1305 | }, |
| 1310 | updateData() { | 1306 | updateData() { |
| 1307 | + let _this = this; | ||
| 1311 | this.$refs.preFormData.validate(valid => { | 1308 | this.$refs.preFormData.validate(valid => { |
| 1312 | if (valid) { | 1309 | if (valid) { |
| 1313 | delete this.preModel.parent | 1310 | delete this.preModel.parent |
| 1314 | delete this.preModel.children | 1311 | delete this.preModel.children |
| 1315 | - updateMT2201(this.preModel).then(res => { | 1312 | + _this.preModel.user= { |
| 1313 | + username : JSON.parse(sessionStorage.getItem('user')).username | ||
| 1314 | + } | ||
| 1315 | + | ||
| 1316 | + updateMT2201(_this.preModel).then(res => { | ||
| 1316 | if (res.data.count > 0) { | 1317 | if (res.data.count > 0) { |
| 1317 | Message.success("修改成功") | 1318 | Message.success("修改成功") |
| 1318 | this.dialogFormVisible = false | 1319 | this.dialogFormVisible = false |
| @@ -1358,6 +1359,8 @@ | @@ -1358,6 +1359,8 @@ | ||
| 1358 | const reason = this.preModel.reason | 1359 | const reason = this.preModel.reason |
| 1359 | const contactName = this.preModel.contactName | 1360 | const contactName = this.preModel.contactName |
| 1360 | const contactTel = this.preModel.contactTel | 1361 | const contactTel = this.preModel.contactTel |
| 1362 | + const username = JSON.parse(sessionStorage.getItem('user')).username | ||
| 1363 | + | ||
| 1361 | 1364 | ||
| 1362 | this.$refs.preFormData.validate(valid =>{ | 1365 | this.$refs.preFormData.validate(valid =>{ |
| 1363 | if(valid){ | 1366 | if(valid){ |
| @@ -1369,6 +1372,7 @@ | @@ -1369,6 +1372,7 @@ | ||
| 1369 | 'reason' : reason, | 1372 | 'reason' : reason, |
| 1370 | 'contactName': contactName, | 1373 | 'contactName': contactName, |
| 1371 | 'contactTel': contactTel, | 1374 | 'contactTel': contactTel, |
| 1375 | + 'username': username, | ||
| 1372 | } | 1376 | } |
| 1373 | sendUpdateMt2201(map).then(res =>{ | 1377 | sendUpdateMt2201(map).then(res =>{ |
| 1374 | if(res.data.count >0){ | 1378 | if(res.data.count >0){ |
| @@ -1396,7 +1400,8 @@ | @@ -1396,7 +1400,8 @@ | ||
| 1396 | awba: undefined, | 1400 | awba: undefined, |
| 1397 | customCode: undefined, | 1401 | customCode: undefined, |
| 1398 | flightDate: undefined, | 1402 | flightDate: undefined, |
| 1399 | - awbh: '' | 1403 | + awbh: '', |
| 1404 | + username: JSON.parse(sessionStorage.getItem('user')).username, | ||
| 1400 | } | 1405 | } |
| 1401 | this.rows = row; | 1406 | this.rows = row; |
| 1402 | this.dialogDeleteVisble = true | 1407 | this.dialogDeleteVisble = true |
| @@ -1613,6 +1618,23 @@ | @@ -1613,6 +1618,23 @@ | ||
| 1613 | handelBackStep() { | 1618 | handelBackStep() { |
| 1614 | this.preQuery.messageType = 'MT2201' | 1619 | this.preQuery.messageType = 'MT2201' |
| 1615 | this.$router.push({name: '出港航班信息', params: {scopeRow: this.preQuery}}) | 1620 | this.$router.push({name: '出港航班信息', params: {scopeRow: this.preQuery}}) |
| 1621 | + }, | ||
| 1622 | + // 导入excel | ||
| 1623 | + fileExceed(){ | ||
| 1624 | + this.$message.error('别贪心!一次只能上传一个哦~'); | ||
| 1625 | + }, | ||
| 1626 | + // 自定义上传 | ||
| 1627 | + uploadFile (item) { | ||
| 1628 | + const form = new FormData() | ||
| 1629 | + form.append('file', item.file) | ||
| 1630 | + uploadFileExcel(form).then(res =>{ | ||
| 1631 | + if(res.data.count >0){ | ||
| 1632 | + Message.success(res.data.respMessage) | ||
| 1633 | + this.getList(); | ||
| 1634 | + }else { | ||
| 1635 | + Message.error(res.data.respMessage) | ||
| 1636 | + } | ||
| 1637 | + }) | ||
| 1616 | } | 1638 | } |
| 1617 | } | 1639 | } |
| 1618 | } | 1640 | } |
| @@ -87,12 +87,13 @@ | @@ -87,12 +87,13 @@ | ||
| 87 | </el-table-column> | 87 | </el-table-column> |
| 88 | <el-table-column label="状态" width="100" align="center"> | 88 | <el-table-column label="状态" width="100" align="center"> |
| 89 | <template slot-scope="scope"> | 89 | <template slot-scope="scope"> |
| 90 | - <span v-if="scope.row.status ==='01'">未发送</span> | 90 | + <span v-if="scope.row.status ==='01'">接受申报</span> |
| 91 | <span v-if="scope.row.status ==='02'">待人工审核</span> | 91 | <span v-if="scope.row.status ==='02'">待人工审核</span> |
| 92 | <span v-if="scope.row.status ==='03'">退单</span> | 92 | <span v-if="scope.row.status ==='03'">退单</span> |
| 93 | <span v-if="scope.row.status ==='05'">舱单报退单</span> | 93 | <span v-if="scope.row.status ==='05'">舱单报退单</span> |
| 94 | <span v-if="scope.row.status ==='06'">舱单转人工</span> | 94 | <span v-if="scope.row.status ==='06'">舱单转人工</span> |
| 95 | <span v-if="scope.row.status ==='07'">舱单报申报成功</span> | 95 | <span v-if="scope.row.status ==='07'">舱单报申报成功</span> |
| 96 | + <span v-if="scope.row.status ==='08'">已发舱单删除报</span> | ||
| 96 | <span v-if="scope.row.status ==='09'">舱单删除报退单</span> | 97 | <span v-if="scope.row.status ==='09'">舱单删除报退单</span> |
| 97 | <span v-if="scope.row.status ==='10'">舱单删除报转人工</span> | 98 | <span v-if="scope.row.status ==='10'">舱单删除报转人工</span> |
| 98 | <span v-if="scope.row.status ==='11'">放行</span> | 99 | <span v-if="scope.row.status ==='11'">放行</span> |
| @@ -323,7 +324,7 @@ | @@ -323,7 +324,7 @@ | ||
| 323 | </el-table-column> | 324 | </el-table-column> |
| 324 | <el-table-column label="操作人" width="100"> | 325 | <el-table-column label="操作人" width="100"> |
| 325 | <template slot-scope="scope"> | 326 | <template slot-scope="scope"> |
| 326 | - {{scope.row.operusername}} | 327 | + {{scope.row.opersystemname}} |
| 327 | </template> | 328 | </template> |
| 328 | </el-table-column> | 329 | </el-table-column> |
| 329 | </el-table> | 330 | </el-table> |
| @@ -466,6 +467,9 @@ | @@ -466,6 +467,9 @@ | ||
| 466 | awbpiece: undefined, | 467 | awbpiece: undefined, |
| 467 | awbweight: undefined, | 468 | awbweight: undefined, |
| 468 | rcfdep: 'MT5202', | 469 | rcfdep: 'MT5202', |
| 470 | + user: { | ||
| 471 | + username : JSON.parse(sessionStorage.getItem('user')).username | ||
| 472 | + } | ||
| 469 | }, | 473 | }, |
| 470 | respModel : { | 474 | respModel : { |
| 471 | uuid: undefined, | 475 | uuid: undefined, |
| @@ -646,7 +650,9 @@ | @@ -646,7 +650,9 @@ | ||
| 646 | cancelButtonText: '取消' | 650 | cancelButtonText: '取消' |
| 647 | }).then(() => { | 651 | }).then(() => { |
| 648 | console.log(row) | 652 | console.log(row) |
| 649 | - | 653 | + row.user = { |
| 654 | + username : JSON.parse(sessionStorage.getItem('user')).username | ||
| 655 | + } | ||
| 650 | sendCreateMt5202(row).then(res => { | 656 | sendCreateMt5202(row).then(res => { |
| 651 | if (res.data.count > 0) { | 657 | if (res.data.count > 0) { |
| 652 | Message.success(res.data.respMessage) | 658 | Message.success(res.data.respMessage) |
| @@ -707,6 +713,7 @@ | @@ -707,6 +713,7 @@ | ||
| 707 | flightDate: undefined, | 713 | flightDate: undefined, |
| 708 | awbh: undefined, | 714 | awbh: undefined, |
| 709 | rcfdep: 'MT5202', | 715 | rcfdep: 'MT5202', |
| 716 | + username: JSON.parse(sessionStorage.getItem('user')).username, | ||
| 710 | } | 717 | } |
| 711 | this.dialogDeleteVisible = true | 718 | this.dialogDeleteVisible = true |
| 712 | this.respModel.carrier = row.carrier | 719 | this.respModel.carrier = row.carrier |
| @@ -824,6 +831,9 @@ | @@ -824,6 +831,9 @@ | ||
| 824 | awbpiece: undefined, | 831 | awbpiece: undefined, |
| 825 | awbweight: undefined, | 832 | awbweight: undefined, |
| 826 | rcfdep: 'MT5202', | 833 | rcfdep: 'MT5202', |
| 834 | + user: { | ||
| 835 | + username: JSON.parse(sessionStorage.getItem('user')).username | ||
| 836 | + } | ||
| 827 | } | 837 | } |
| 828 | }, | 838 | }, |
| 829 | // 新增出港理货弹框 | 839 | // 新增出港理货弹框 |
| @@ -846,6 +856,7 @@ | @@ -846,6 +856,7 @@ | ||
| 846 | // 新增出港理货请求 | 856 | // 新增出港理货请求 |
| 847 | createData() { | 857 | createData() { |
| 848 | this.$refs.tidyFormData.validate(valid => { | 858 | this.$refs.tidyFormData.validate(valid => { |
| 859 | + console.log(this.tidyModel) | ||
| 849 | if (valid) { | 860 | if (valid) { |
| 850 | addMt520X(this.tidyModel).then(res => { | 861 | addMt520X(this.tidyModel).then(res => { |
| 851 | if (res.data.count > 0) { | 862 | if (res.data.count > 0) { |
| @@ -875,10 +886,16 @@ | @@ -875,10 +886,16 @@ | ||
| 875 | }, | 886 | }, |
| 876 | // 更新出港理货请求 | 887 | // 更新出港理货请求 |
| 877 | updateData() { | 888 | updateData() { |
| 889 | + let _this = this; | ||
| 878 | this.$refs.tidyFormData.validate(valid => { | 890 | this.$refs.tidyFormData.validate(valid => { |
| 879 | if (valid) { | 891 | if (valid) { |
| 880 | delete this.tidyModel.parent | 892 | delete this.tidyModel.parent |
| 881 | delete this.tidyModel.children | 893 | delete this.tidyModel.children |
| 894 | + | ||
| 895 | + _this.tidyModel.user= { | ||
| 896 | + username : JSON.parse(sessionStorage.getItem('user')).username | ||
| 897 | + } | ||
| 898 | + | ||
| 882 | updateMt520X(this.tidyModel).then(res => { | 899 | updateMt520X(this.tidyModel).then(res => { |
| 883 | console.log(res.data) | 900 | console.log(res.data) |
| 884 | if (res.data.count > 0) { | 901 | if (res.data.count > 0) { |
| @@ -533,6 +533,7 @@ | @@ -533,6 +533,7 @@ | ||
| 533 | <script> | 533 | <script> |
| 534 | import{addResponse,selectResponseList} from "../../api/InResponse"; | 534 | import{addResponse,selectResponseList} from "../../api/InResponse"; |
| 535 | import { QueryData,ediAllocat,sendCreateMt6202,sendRemoveMt6202,sendCreateMt3202,sendRemoveMt3202 } from '../../api/Allocat' | 535 | import { QueryData,ediAllocat,sendCreateMt6202,sendRemoveMt6202,sendCreateMt3202,sendRemoveMt3202 } from '../../api/Allocat' |
| 536 | + import loginUserInfo from '@/api/base' | ||
| 536 | export default{ | 537 | export default{ |
| 537 | data(){ | 538 | data(){ |
| 538 | return{ | 539 | return{ |
| @@ -790,7 +791,7 @@ | @@ -790,7 +791,7 @@ | ||
| 790 | }, | 791 | }, |
| 791 | //发送分拨申请报 | 792 | //发送分拨申请报 |
| 792 | importSend(index,row){ | 793 | importSend(index,row){ |
| 793 | - const map = {'mt6202':row} | 794 | + const map = {'mt6202':row,'username':loginUserInfo.username} |
| 794 | sendCreateMt6202(map).then(res=>{ | 795 | sendCreateMt6202(map).then(res=>{ |
| 795 | let response=res.data; | 796 | let response=res.data; |
| 796 | //console.log(res); | 797 | //console.log(res); |
| @@ -839,7 +840,8 @@ | @@ -839,7 +840,8 @@ | ||
| 839 | 'reason' :this.Udform.operreason, | 840 | 'reason' :this.Udform.operreason, |
| 840 | 'contactName':this.Udform.operperson, | 841 | 'contactName':this.Udform.operperson, |
| 841 | 'contactTel':this.Udform.opertel, | 842 | 'contactTel':this.Udform.opertel, |
| 842 | - 'carrier':this.rows.carrier} | 843 | + 'carrier':this.rows.carrier, |
| 844 | + 'username':loginUserInfo.username} | ||
| 843 | if(this.rows.turntype=='MT6202'){ | 845 | if(this.rows.turntype=='MT6202'){ |
| 844 | sendRemoveMt6202(map).then(res=>{ | 846 | sendRemoveMt6202(map).then(res=>{ |
| 845 | let response=res.data; | 847 | let response=res.data; |
| @@ -889,7 +891,7 @@ | @@ -889,7 +891,7 @@ | ||
| 889 | //发送分拨运抵报 | 891 | //发送分拨运抵报 |
| 890 | arriveSend(index,row){ | 892 | arriveSend(index,row){ |
| 891 | 893 | ||
| 892 | - const map = {'mt3202':row} | 894 | + const map = {'mt3202':row,'username':loginUserInfo.username} |
| 893 | sendCreateMt3202(map).then(res=>{ | 895 | sendCreateMt3202(map).then(res=>{ |
| 894 | let response=res.data; | 896 | let response=res.data; |
| 895 | //console.log(res); | 897 | //console.log(res); |
| @@ -160,6 +160,7 @@ | @@ -160,6 +160,7 @@ | ||
| 160 | /*加载默认参数*/ | 160 | /*加载默认参数*/ |
| 161 | getDefaultData(){ | 161 | getDefaultData(){ |
| 162 | if(this.$route.query!=null){ | 162 | if(this.$route.query!=null){ |
| 163 | + console.log(this.$route.query) | ||
| 163 | this.ruleForm.flightno=JSON.parse(this.$route.query.flightno); | 164 | this.ruleForm.flightno=JSON.parse(this.$route.query.flightno); |
| 164 | this.ruleForm.flightdate=JSON.parse(this.$route.query.flightdate); | 165 | this.ruleForm.flightdate=JSON.parse(this.$route.query.flightdate); |
| 165 | this.ruleForm.originstation=JSON.parse(this.$route.query.originstation); | 166 | this.ruleForm.originstation=JSON.parse(this.$route.query.originstation); |
| @@ -645,7 +645,7 @@ | @@ -645,7 +645,7 @@ | ||
| 645 | <el-dialog title="回执明细列表" :visible.sync="dialogTableVisible" width="70%"> | 645 | <el-dialog title="回执明细列表" :visible.sync="dialogTableVisible" width="70%"> |
| 646 | <el-table :data="gridData"> | 646 | <el-table :data="gridData"> |
| 647 | <el-table-column property="busdate" label="时间" width="160"></el-table-column> | 647 | <el-table-column property="busdate" label="时间" width="160"></el-table-column> |
| 648 | - <el-table-column property="username" label="操作人" width="130"></el-table-column> | 648 | + <el-table-column property="operusername" label="操作人" width="130"></el-table-column> |
| 649 | <el-table-column property="buspiece" label="发送件数" width="130"></el-table-column> | 649 | <el-table-column property="buspiece" label="发送件数" width="130"></el-table-column> |
| 650 | <el-table-column property="busweight" label="发送重量" width="130"></el-table-column> | 650 | <el-table-column property="busweight" label="发送重量" width="130"></el-table-column> |
| 651 | <el-table-column property="cusrestext" label="回执内容"></el-table-column> | 651 | <el-table-column property="cusrestext" label="回执内容"></el-table-column> |
| @@ -721,7 +721,8 @@ | @@ -721,7 +721,8 @@ | ||
| 721 | import{addResponse,selectResponseList} from "../../api/InResponse"; | 721 | import{addResponse,selectResponseList} from "../../api/InResponse"; |
| 722 | import FileSaver from "file-saver"; | 722 | import FileSaver from "file-saver"; |
| 723 | import XLSX from "xlsx"; | 723 | import XLSX from "xlsx"; |
| 724 | - import htmlToPdf from "../../api/htmlToPdf" | 724 | + import htmlToPdf from "../../api/htmlToPdf"; |
| 725 | + import loginUserInfo from '@/api/base.js' | ||
| 725 | export default { | 726 | export default { |
| 726 | data() { | 727 | data() { |
| 727 | /*初始数据*/ | 728 | /*初始数据*/ |
| @@ -733,6 +734,7 @@ | @@ -733,6 +734,7 @@ | ||
| 733 | destinationstation: undefined, | 734 | destinationstation: undefined, |
| 734 | awba: undefined | 735 | awba: undefined |
| 735 | }, | 736 | }, |
| 737 | + LoginUserInfo: loginUserInfo, | ||
| 736 | FenQuery:{ | 738 | FenQuery:{ |
| 737 | flightno: undefined, | 739 | flightno: undefined, |
| 738 | flightdate: undefined, | 740 | flightdate: undefined, |
| @@ -767,6 +769,7 @@ | @@ -767,6 +769,7 @@ | ||
| 767 | weight: undefined, | 769 | weight: undefined, |
| 768 | goodsname: undefined, | 770 | goodsname: undefined, |
| 769 | splitcode: 'T', | 771 | splitcode: 'T', |
| 772 | + isDelete:0, | ||
| 770 | uldType: undefined, | 773 | uldType: undefined, |
| 771 | uldNo: undefined, | 774 | uldNo: undefined, |
| 772 | status: '22', | 775 | status: '22', |
| @@ -804,6 +807,9 @@ | @@ -804,6 +807,9 @@ | ||
| 804 | weight: undefined, | 807 | weight: undefined, |
| 805 | awbtype:'001', | 808 | awbtype:'001', |
| 806 | }, | 809 | }, |
| 810 | + userinfo: { | ||
| 811 | + username: '11111' | ||
| 812 | + }, | ||
| 807 | waybill:undefined, | 813 | waybill:undefined, |
| 808 | customText:undefined | 814 | customText:undefined |
| 809 | }, | 815 | }, |
| @@ -927,6 +933,7 @@ | @@ -927,6 +933,7 @@ | ||
| 927 | this.dialogTableVisible=true; | 933 | this.dialogTableVisible=true; |
| 928 | let response=res.data.data; | 934 | let response=res.data.data; |
| 929 | this.gridData=response; | 935 | this.gridData=response; |
| 936 | + console.log(response) | ||
| 930 | }); | 937 | }); |
| 931 | }, | 938 | }, |
| 932 | //更改状态 | 939 | //更改状态 |
| @@ -986,8 +993,8 @@ | @@ -986,8 +993,8 @@ | ||
| 986 | this.dialogStatus='update'; | 993 | this.dialogStatus='update'; |
| 987 | this.FenStatus='ediAwbh'; | 994 | this.FenStatus='ediAwbh'; |
| 988 | this.ruleForm=row; | 995 | this.ruleForm=row; |
| 989 | - this.ruleForm.originstation=row.originstation+"-"+row.destinationstation; | ||
| 990 | - this.ruleForm.flightno=row.carrier+row.flightno; | 996 | + this.ruleForm.originstation=this.defaultQuery.originstation+"-"+this.defaultQuery.destinationstation; |
| 997 | + this.ruleForm.flightno=this.defaultQuery.flightno; | ||
| 991 | this.FenQuery.awba=row.awba; | 998 | this.FenQuery.awba=row.awba; |
| 992 | this.FenQuery.flightno= row.flightno; | 999 | this.FenQuery.flightno= row.flightno; |
| 993 | this.FenQuery.flightdate=row.flightdate | 1000 | this.FenQuery.flightdate=row.flightdate |
| @@ -1012,7 +1019,7 @@ | @@ -1012,7 +1019,7 @@ | ||
| 1012 | }else{ | 1019 | }else{ |
| 1013 | row.flightno=row.flightno; | 1020 | row.flightno=row.flightno; |
| 1014 | } | 1021 | } |
| 1015 | - const map = {'mt1201':row} | 1022 | + const map = {'mt1201':row,'username':loginUserInfo.username} |
| 1016 | sendCreateMt1201(map).then(res=>{ | 1023 | sendCreateMt1201(map).then(res=>{ |
| 1017 | let response=res.data; | 1024 | let response=res.data; |
| 1018 | //console.log(res); | 1025 | //console.log(res); |
| @@ -1062,7 +1069,8 @@ | @@ -1062,7 +1069,8 @@ | ||
| 1062 | 'reason' :this.Udform.operreason, | 1069 | 'reason' :this.Udform.operreason, |
| 1063 | 'contactName':this.Udform.operperson, | 1070 | 'contactName':this.Udform.operperson, |
| 1064 | 'contactTel':this.Udform.opertel, | 1071 | 'contactTel':this.Udform.opertel, |
| 1065 | - 'carrier':this.Udform.carrier} | 1072 | + 'carrier':this.Udform.carrier, |
| 1073 | + 'username':loginUserInfo.username} | ||
| 1066 | sendRemoveMt1201(map).then(res=>{ | 1074 | sendRemoveMt1201(map).then(res=>{ |
| 1067 | let response=res.data; | 1075 | let response=res.data; |
| 1068 | //console.log(res); | 1076 | //console.log(res); |
| @@ -1116,7 +1124,8 @@ | @@ -1116,7 +1124,8 @@ | ||
| 1116 | const map = {'mt1201':this.temprows, | 1124 | const map = {'mt1201':this.temprows, |
| 1117 | 'reason' :this.Udform.operreason, | 1125 | 'reason' :this.Udform.operreason, |
| 1118 | 'contactName':this.Udform.operperson, | 1126 | 'contactName':this.Udform.operperson, |
| 1119 | - 'contactTel':this.Udform.opertel} | 1127 | + 'contactTel':this.Udform.opertel, |
| 1128 | + 'username':loginUserInfo.username} | ||
| 1120 | sendEditeMt1201(map).then(res=>{ | 1129 | sendEditeMt1201(map).then(res=>{ |
| 1121 | let response=res.data; | 1130 | let response=res.data; |
| 1122 | //console.log(res); | 1131 | //console.log(res); |
| @@ -1158,6 +1167,7 @@ | @@ -1158,6 +1167,7 @@ | ||
| 1158 | this.defaultQuery.originstation = JSON.parse(this.$route.query.originstation); | 1167 | this.defaultQuery.originstation = JSON.parse(this.$route.query.originstation); |
| 1159 | this.defaultQuery.destinationstation = JSON.parse(this.$route.query.destinationstation); | 1168 | this.defaultQuery.destinationstation = JSON.parse(this.$route.query.destinationstation); |
| 1160 | this.defaultQuery.awba=JSON.parse(this.$route.query.awba); | 1169 | this.defaultQuery.awba=JSON.parse(this.$route.query.awba); |
| 1170 | + | ||
| 1161 | }, | 1171 | }, |
| 1162 | /*获取默认数据列表*/ | 1172 | /*获取默认数据列表*/ |
| 1163 | getList(){ | 1173 | getList(){ |
| @@ -1172,7 +1182,7 @@ | @@ -1172,7 +1182,7 @@ | ||
| 1172 | if(item.awba!=null&&item.awbh==""); | 1182 | if(item.awba!=null&&item.awbh==""); |
| 1173 | this.sumNmmsCount=Number(this.sumNmmsCount)+1; | 1183 | this.sumNmmsCount=Number(this.sumNmmsCount)+1; |
| 1174 | this.sumNmmsPrice=Number(this.sumNmmsPrice)+Number(item.piece); | 1184 | this.sumNmmsPrice=Number(this.sumNmmsPrice)+Number(item.piece); |
| 1175 | - this.sumNmmsWeight=Number(this.sumNmmsWeight)+Number(item.weight); | 1185 | + this.sumNmmsWeight=Number(Number(this.sumNmmsWeight)+Number(item.weight)).toFixed(2); |
| 1176 | }) | 1186 | }) |
| 1177 | }); | 1187 | }); |
| 1178 | }, | 1188 | }, |
| @@ -1229,25 +1239,29 @@ | @@ -1229,25 +1239,29 @@ | ||
| 1229 | this.FenStatus='addAwbh'; | 1239 | this.FenStatus='addAwbh'; |
| 1230 | }, | 1240 | }, |
| 1231 | //新增原始舱单数据 | 1241 | //新增原始舱单数据 |
| 1232 | - createData(formName){ | 1242 | + createData:function(formName){ |
| 1243 | + let _this = this; | ||
| 1233 | this.$refs[formName].validate((valid) => { | 1244 | this.$refs[formName].validate((valid) => { |
| 1234 | if (valid) { | 1245 | if (valid) { |
| 1235 | - this.ruleForm.status='22' | ||
| 1236 | - addMt1201(this.ruleForm).then(res=>{ | 1246 | + _this.ruleForm.userinfo = { |
| 1247 | + username: '' | ||
| 1248 | + } | ||
| 1249 | + _this.ruleForm.userinfo.username=_this.LoginUserInfo.username; | ||
| 1250 | + _this.ruleForm.status='22'; | ||
| 1251 | + addMt1201(_this.ruleForm).then(res=>{ | ||
| 1237 | let response=res.data; | 1252 | let response=res.data; |
| 1238 | - //console.log(res); | ||
| 1239 | - this.code=response.code; | ||
| 1240 | - if(this.code=='200'){ | ||
| 1241 | - this.outerVisible = false; | ||
| 1242 | - this.$refs[formName].resetFields(); | ||
| 1243 | - this.centerDialogVisible=true; | ||
| 1244 | - this.msg=response.msg; | ||
| 1245 | - this.getList(); | 1253 | + _this.code=response.code; |
| 1254 | + if(_this.code=='200'){ | ||
| 1255 | + _this.outerVisible = false; | ||
| 1256 | + _this.$refs[formName].resetFields(); | ||
| 1257 | + _this.centerDialogVisible=true; | ||
| 1258 | + _this.msg=response.msg; | ||
| 1259 | + _this.getList(); | ||
| 1246 | }else{ | 1260 | }else{ |
| 1247 | - this.outerVisible = false; | ||
| 1248 | - this.centerDialogVisible=true; | ||
| 1249 | - this.$refs[formName].resetFields(); | ||
| 1250 | - this.msg=response.msg; | 1261 | + _this.outerVisible = false; |
| 1262 | + _this.centerDialogVisible=true; | ||
| 1263 | + _this.$refs[formName].resetFields(); | ||
| 1264 | + _this.msg=response.msg; | ||
| 1251 | } | 1265 | } |
| 1252 | }); | 1266 | }); |
| 1253 | } else { | 1267 | } else { |
| @@ -1258,22 +1272,27 @@ | @@ -1258,22 +1272,27 @@ | ||
| 1258 | 1272 | ||
| 1259 | }, | 1273 | }, |
| 1260 | //修改原始舱单数据 | 1274 | //修改原始舱单数据 |
| 1261 | - updateData(formName){ | 1275 | + updateData: function(formName){ |
| 1276 | + let _this = this; | ||
| 1262 | this.$refs[formName].validate((valid) => { | 1277 | this.$refs[formName].validate((valid) => { |
| 1263 | if (valid) { | 1278 | if (valid) { |
| 1264 | - ediMt1201(this.ruleForm).then(res=>{ | 1279 | + _this.ruleForm.userinfo = { |
| 1280 | + username: '' | ||
| 1281 | + } | ||
| 1282 | + _this.ruleForm.userinfo.username=_this.LoginUserInfo.username; | ||
| 1283 | + ediMt1201(_this.ruleForm).then(res=>{ | ||
| 1265 | let response=res.data; | 1284 | let response=res.data; |
| 1266 | //console.log(res); | 1285 | //console.log(res); |
| 1267 | - this.code=response.code; | ||
| 1268 | - if(this.code=='200'){ | ||
| 1269 | - this.outerVisible = false; | ||
| 1270 | - this.centerDialogVisible=true; | ||
| 1271 | - this.msg=response.msg; | ||
| 1272 | - this.getList(); | 1286 | + _this.code=response.code; |
| 1287 | + if(_this.code=='200'){ | ||
| 1288 | + _this.outerVisible = false; | ||
| 1289 | + _this.centerDialogVisible=true; | ||
| 1290 | + _this.msg=response.msg; | ||
| 1291 | + _this.getList(); | ||
| 1273 | }else{ | 1292 | }else{ |
| 1274 | - this.outerVisible = false; | ||
| 1275 | - this.centerDialogVisible=true; | ||
| 1276 | - this.msg=response.msg; | 1293 | + _this.outerVisible = false; |
| 1294 | + _this.centerDialogVisible=true; | ||
| 1295 | + _this.msg=response.msg; | ||
| 1277 | } | 1296 | } |
| 1278 | }); | 1297 | }); |
| 1279 | } else { | 1298 | } else { |
| @@ -1301,8 +1320,9 @@ | @@ -1301,8 +1320,9 @@ | ||
| 1301 | this.$router.push({name:'分拨运抵',params:{carrier:row.carrier,flightno:row.flightno,awba:row.awba,flightdate:row.flightdate, | 1320 | this.$router.push({name:'分拨运抵',params:{carrier:row.carrier,flightno:row.flightno,awba:row.awba,flightdate:row.flightdate, |
| 1302 | turnpiece:row.awbinfo.pcs,turnweight:row.awbinfo.weight,customcode:row.customcode,goodsname:row.goodsname}}); | 1321 | turnpiece:row.awbinfo.pcs,turnweight:row.awbinfo.weight,customcode:row.customcode,goodsname:row.goodsname}}); |
| 1303 | }, | 1322 | }, |
| 1323 | + //返回上一层 | ||
| 1304 | back(){ | 1324 | back(){ |
| 1305 | - this.$router.go(-1);//返回上一层 | 1325 | + this.$router.go(-1); |
| 1306 | }, | 1326 | }, |
| 1307 | 1327 | ||
| 1308 | }, | 1328 | }, |
| @@ -441,6 +441,7 @@ | @@ -441,6 +441,7 @@ | ||
| 441 | <script> | 441 | <script> |
| 442 | import{addResponse,selectResponseList} from "../../api/InResponse"; | 442 | import{addResponse,selectResponseList} from "../../api/InResponse"; |
| 443 | import { getMt5201List,addMt5201,ediMt5201,delMt5201,sendCreateMt520x,sendRemoveMt520x,selectCustomcode} from '../../api/mt5201' | 443 | import { getMt5201List,addMt5201,ediMt5201,delMt5201,sendCreateMt520x,sendRemoveMt520x,selectCustomcode} from '../../api/mt5201' |
| 444 | + import loginUserInfo from '@/api/base' | ||
| 444 | export default { | 445 | export default { |
| 445 | data() { | 446 | data() { |
| 446 | return { | 447 | return { |
| @@ -451,6 +452,7 @@ | @@ -451,6 +452,7 @@ | ||
| 451 | destinationstation:undefined, | 452 | destinationstation:undefined, |
| 452 | awba:undefined, | 453 | awba:undefined, |
| 453 | }, | 454 | }, |
| 455 | + LoginUserInfo: loginUserInfo, | ||
| 454 | tableData: [], | 456 | tableData: [], |
| 455 | tableData2: [], | 457 | tableData2: [], |
| 456 | multipleSelection: [], | 458 | multipleSelection: [], |
| @@ -482,7 +484,10 @@ | @@ -482,7 +484,10 @@ | ||
| 482 | isdelete:undefined, | 484 | isdelete:undefined, |
| 483 | pcs:undefined, | 485 | pcs:undefined, |
| 484 | wei:undefined, | 486 | wei:undefined, |
| 485 | - ext5:undefined | 487 | + ext5:undefined, |
| 488 | + userinfo: { | ||
| 489 | + username: '11111' | ||
| 490 | + }, | ||
| 486 | }, | 491 | }, |
| 487 | FenStatus:'', | 492 | FenStatus:'', |
| 488 | rules: { | 493 | rules: { |
| @@ -613,7 +618,7 @@ | @@ -613,7 +618,7 @@ | ||
| 613 | if(row.awbh==null){ | 618 | if(row.awbh==null){ |
| 614 | row.awbh=""; | 619 | row.awbh=""; |
| 615 | } | 620 | } |
| 616 | - const map = {'mt520x':row} | 621 | + const map = {'mt520x':row,'username':loginUserInfo.username} |
| 617 | sendCreateMt520x(map).then(res=>{ | 622 | sendCreateMt520x(map).then(res=>{ |
| 618 | let response=res.data; | 623 | let response=res.data; |
| 619 | //console.log(res); | 624 | //console.log(res); |
| @@ -667,7 +672,8 @@ | @@ -667,7 +672,8 @@ | ||
| 667 | 'contactName':this.Udform.operperson, | 672 | 'contactName':this.Udform.operperson, |
| 668 | 'contactTel':this.Udform.opertel, | 673 | 'contactTel':this.Udform.opertel, |
| 669 | 'rcfdep':this.rows.rcfdep, | 674 | 'rcfdep':this.rows.rcfdep, |
| 670 | - 'carrier':this.rows.carrier} | 675 | + 'carrier':this.rows.carrier, |
| 676 | + 'username':loginUserInfo.username} | ||
| 671 | sendRemoveMt520x(map).then(res=>{ | 677 | sendRemoveMt520x(map).then(res=>{ |
| 672 | let response=res.data; | 678 | let response=res.data; |
| 673 | //console.log(res); | 679 | //console.log(res); |
| @@ -756,25 +762,30 @@ | @@ -756,25 +762,30 @@ | ||
| 756 | this.ruleForm.destinationstation=JSON.parse(this.$route.query.destinationstation); | 762 | this.ruleForm.destinationstation=JSON.parse(this.$route.query.destinationstation); |
| 757 | }, | 763 | }, |
| 758 | //新增原始舱单数据 | 764 | //新增原始舱单数据 |
| 759 | - createData(formName){ | 765 | + createData:function(formName){ |
| 766 | + let _this = this; | ||
| 760 | this.$refs[formName].validate((valid) => { | 767 | this.$refs[formName].validate((valid) => { |
| 761 | if (valid) { | 768 | if (valid) { |
| 762 | - this.ruleForm.status='22'; | 769 | + _this.ruleForm.userinfo = { |
| 770 | + username: '' | ||
| 771 | + } | ||
| 772 | + _this.ruleForm.userinfo.username=_this.LoginUserInfo.username; | ||
| 773 | + _this.ruleForm.status='22'; | ||
| 763 | //this.ruleForm.endtime=this.ruleForm.starttime.add(Calendar.MINUTE, 15); | 774 | //this.ruleForm.endtime=this.ruleForm.starttime.add(Calendar.MINUTE, 15); |
| 764 | - addMt5201(this.ruleForm).then(res=>{ | 775 | + addMt5201(_this.ruleForm).then(res=>{ |
| 765 | let response=res.data; | 776 | let response=res.data; |
| 766 | - this.code=response.code; | ||
| 767 | - if(this.code=='200'){ | ||
| 768 | - this.outerVisible = false; | ||
| 769 | - this.$refs[formName].resetFields(); | ||
| 770 | - this.centerDialogVisible=true; | ||
| 771 | - this.msg=response.msg; | ||
| 772 | - this.getMt5201List(); | 777 | + _this.code=response.code; |
| 778 | + if(_this.code=='200'){ | ||
| 779 | + _this.outerVisible = false; | ||
| 780 | + _this.$refs[formName].resetFields(); | ||
| 781 | + _this.centerDialogVisible=true; | ||
| 782 | + _this.msg=response.msg; | ||
| 783 | + _this.getMt5201List(); | ||
| 773 | }else{ | 784 | }else{ |
| 774 | - this.outerVisible = false; | ||
| 775 | - this.centerDialogVisible=true; | ||
| 776 | - this.$refs[formName].resetFields(); | ||
| 777 | - this.msg=response.msg; | 785 | + _this.outerVisible = false; |
| 786 | + _this.centerDialogVisible=true; | ||
| 787 | + _this.$refs[formName].resetFields(); | ||
| 788 | + _this.msg=response.msg; | ||
| 778 | } | 789 | } |
| 779 | }); | 790 | }); |
| 780 | } else { | 791 | } else { |
| @@ -784,21 +795,26 @@ | @@ -784,21 +795,26 @@ | ||
| 784 | }); | 795 | }); |
| 785 | }, | 796 | }, |
| 786 | //修改进港理货数据 | 797 | //修改进港理货数据 |
| 787 | - updateData(formName){ | 798 | + updateData:function(formName){ |
| 799 | + let _this = this; | ||
| 788 | this.$refs[formName].validate((valid) => { | 800 | this.$refs[formName].validate((valid) => { |
| 789 | if (valid) { | 801 | if (valid) { |
| 790 | - ediMt5201(this.ruleForm).then(res=>{ | 802 | + _this.ruleForm.userinfo = { |
| 803 | + username: '' | ||
| 804 | + } | ||
| 805 | + _this.ruleForm.userinfo.username=_this.LoginUserInfo.username; | ||
| 806 | + ediMt5201(_this.ruleForm).then(res=>{ | ||
| 791 | let response=res.data; | 807 | let response=res.data; |
| 792 | - this.code=response.code; | ||
| 793 | - if(this.code=='200'){ | ||
| 794 | - this.outerVisible = false; | ||
| 795 | - this.centerDialogVisible=true; | ||
| 796 | - this.msg=response.msg; | ||
| 797 | - this.getMt5201List(); | 808 | + _this.code=response.code; |
| 809 | + if(_this.code=='200'){ | ||
| 810 | + _this.outerVisible = false; | ||
| 811 | + _this.centerDialogVisible=true; | ||
| 812 | + _this.msg=response.msg; | ||
| 813 | + _this.getMt5201List(); | ||
| 798 | }else{ | 814 | }else{ |
| 799 | - this.outerVisible = false; | ||
| 800 | - this.centerDialogVisible=true; | ||
| 801 | - this.msg=response.msg; | 815 | + _this.outerVisible = false; |
| 816 | + _this.centerDialogVisible=true; | ||
| 817 | + _this.msg=response.msg; | ||
| 802 | } | 818 | } |
| 803 | }); | 819 | }); |
| 804 | } else { | 820 | } else { |
-
请 注册 或 登录 后发表评论