dev
张同海 2 years ago
parent 7d05fbe1a3
commit f651fc4298

@ -101,7 +101,8 @@ router.beforeEach((to, from, next) => {
.catch(() => { .catch(() => {
console.log('=== 测试跳转页面,获取个人信息失败 ===') console.log('=== 测试跳转页面,获取个人信息失败 ===')
store.dispatch('Logout').then(() => { store.dispatch('Logout').then(() => {
next({ path: '/user/login', query: { redirect: to.fullPath } }) // next({ path: '/user/login', query: { redirect: to.fullPath } })
next({ path: '/user/login' })
}) })
}) })
store.dispatch('getNoticReceiveList').then(res => {}) store.dispatch('getNoticReceiveList').then(res => {})
@ -115,7 +116,8 @@ router.beforeEach((to, from, next) => {
// 在免登录白名单,直接进入 // 在免登录白名单,直接进入
next() next()
} else { } else {
next({ path: '/user/login', query: { redirect: to.fullPath } }) // next({ path: '/user/login', query: { redirect: to.fullPath } })
next({ path: '/user/login' })
NProgress.done() // if current page is login will not trigger afterEach hook, so manually handle it NProgress.done() // if current page is login will not trigger afterEach hook, so manually handle it
} }
} }

@ -1,30 +1,11 @@
import Vue from 'vue' import Vue from 'vue'
import { import { login, getLoginUser, logout } from '@/api/modular/system/loginManage'
login, import { sysDictTypeTree } from '@/api/modular/system/dictManage'
getLoginUser, import { sysMenuChange } from '@/api/modular/system/menuManage'
logout import { ACCESS_TOKEN, ALL_APPS_MENU, DICT_TYPE_TREE_DATA, NOTICE_RECEIVED } from '@/store/mutation-types'
} from '@/api/modular/system/loginManage' import { sysFileInfoPreview } from '@/api/modular/system/fileManage'
import { import { unReadNotice } from '@/api/modular/system/noticeReceivedManage'
sysDictTypeTree import { welcome, dateFormat } from '@/utils/util'
} from '@/api/modular/system/dictManage'
import {
sysMenuChange
} from '@/api/modular/system/menuManage'
import {
ACCESS_TOKEN,
ALL_APPS_MENU,
DICT_TYPE_TREE_DATA,
NOTICE_RECEIVED
} from '@/store/mutation-types'
import {
sysFileInfoPreview
} from '@/api/modular/system/fileManage'
import {
unReadNotice
} from '@/api/modular/system/noticeReceivedManage'
import {
welcome, dateFormat
} from '@/utils/util'
import store from '../index' import store from '../index'
import router from '../../router' import router from '../../router'
@ -47,10 +28,7 @@ const user = {
SET_TOKEN: (state, token) => { SET_TOKEN: (state, token) => {
state.token = token state.token = token
}, },
SET_NAME: (state, { SET_NAME: (state, { name, welcome }) => {
name,
welcome
}) => {
state.name = name state.name = name
state.welcome = welcome state.welcome = welcome
}, },
@ -74,21 +52,25 @@ const user = {
}, },
APPEND_NOTICE: (state, notice) => { APPEND_NOTICE: (state, notice) => {
notice.publicTime = dateFormat(notice.publicTime, 'YYYY-mm-dd HH:MM:SS') notice.publicTime = dateFormat(notice.publicTime, 'YYYY-mm-dd HH:MM:SS')
let notices = state.notices; let notices = state.notices
let temp = notices.rows.filter(m => { return m.value == notice.type })[0] let temp = notices.rows.filter(m => {
let other = notices.rows.filter(m => { return m.value != notice.type }) return m.value == notice.type
temp.noticeData.unshift(notice); })[0]
notices.totalRows++; let other = notices.rows.filter(m => {
return m.value != notice.type
})
temp.noticeData.unshift(notice)
notices.totalRows++
if (temp.noticeData.length > 6) { if (temp.noticeData.length > 6) {
temp.noticeData.pop(); temp.noticeData.pop()
} }
notices.rows = []; notices.rows = []
notices.rows.push(temp); notices.rows.push(temp)
notices.rows.push.apply(notices.rows, other); notices.rows.push.apply(notices.rows, other)
notices.rows.sort((obj1, obj2) => { notices.rows.sort((obj1, obj2) => {
return obj1.index - obj2.index return obj1.index - obj2.index
}) })
state.notices = notices; state.notices = notices
}, },
SET_BOOKINGLIST: (state, list) => { SET_BOOKINGLIST: (state, list) => {
state.bookingList = list state.bookingList = list
@ -100,11 +82,10 @@ const user = {
actions: { actions: {
// 登录 // 登录
Login({ Login({ commit }, userInfo) {
commit
}, userInfo) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
login(userInfo).then(response => { login(userInfo)
.then(response => {
if (!response.success) { if (!response.success) {
reject(response.message) reject(response.message)
return return
@ -114,7 +95,8 @@ const user = {
commit('SET_TOKEN', result) commit('SET_TOKEN', result)
resolve() resolve()
// eslint-disable-next-line handle-callback-err // eslint-disable-next-line handle-callback-err
}).catch(error => { })
.catch(error => {
// eslint-disable-next-line prefer-promise-reject-errors // eslint-disable-next-line prefer-promise-reject-errors
reject('后端未启动或代理错误') reject('后端未启动或代理错误')
}) })
@ -122,11 +104,10 @@ const user = {
}, },
// 获取用户信息 // 获取用户信息
GetInfo({ GetInfo({ commit }) {
commit
}) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
getLoginUser().then(response => { getLoginUser()
.then(response => {
if (response.success) { if (response.success) {
const data = response.data const data = response.data
commit('SET_ADMINTYPE', data.adminType) commit('SET_ADMINTYPE', data.adminType)
@ -140,9 +121,11 @@ const user = {
if (data.avatar != null) { if (data.avatar != null) {
sysFileInfoPreview({ sysFileInfoPreview({
id: data.avatar id: data.avatar
}).then((res) => { })
.then(res => {
commit('SET_AVATAR', window.URL.createObjectURL(new Blob([res]))) commit('SET_AVATAR', window.URL.createObjectURL(new Blob([res])))
}).catch((err) => { })
.catch(err => {
this.$message.error('预览错误:' + err.message) this.$message.error('预览错误:' + err.message)
}) })
// commit('SET_AVATAR', process.env.VUE_APP_API_BASE_URL + '/sysFileInfo/preview?id=' + data.avatar) // commit('SET_AVATAR', process.env.VUE_APP_API_BASE_URL + '/sysFileInfo/preview?id=' + data.avatar)
@ -152,23 +135,24 @@ const user = {
// eslint-disable-next-line no-undef // eslint-disable-next-line no-undef
reject(new Error(data.message)) reject(new Error(data.message))
} }
}).catch(error => { })
.catch(error => {
reject(error) reject(error)
}) })
}) })
}, },
// 登出 // 登出
Logout({ Logout({ commit, state }) {
commit, return new Promise(resolve => {
state logout(state.token)
}) { .then(() => {
return new Promise((resolve) => {
logout(state.token).then(() => {
resolve() resolve()
}).catch(() => { })
.catch(() => {
resolve() resolve()
}).finally(() => { })
.finally(() => {
commit('SET_TOKEN', '') commit('SET_TOKEN', '')
commit('SET_ROLES', []) commit('SET_ROLES', [])
commit('SET_BUTTONS', []) commit('SET_BUTTONS', [])
@ -184,7 +168,8 @@ const user = {
// 加载所有字典数据 // 加载所有字典数据
dictTypeData() { dictTypeData() {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
sysDictTypeTree().then((data) => { sysDictTypeTree()
.then(data => {
if (data.success) { if (data.success) {
const result = data.data const result = data.data
Vue.ls.set(DICT_TYPE_TREE_DATA, result) Vue.ls.set(DICT_TYPE_TREE_DATA, result)
@ -193,25 +178,25 @@ const user = {
// eslint-disable-next-line no-undef // eslint-disable-next-line no-undef
reject(new Error(data.message)) reject(new Error(data.message))
} }
}).catch(error => { })
.catch(error => {
reject(error) reject(error)
}) })
}) })
}, },
// 切换应用菜单 // 切换应用菜单
MenuChange({ MenuChange({ commit }, application) {
commit return new Promise(resolve => {
}, application) {
return new Promise((resolve) => {
sysMenuChange({ sysMenuChange({
application: application.code application: application.code
}).then((res) => { })
.then(res => {
const apps = { const apps = {
'code': '', code: '',
'name': '', name: '',
'active': '', active: '',
'menu': '' menu: ''
} }
apps.active = true apps.active = true
apps.menu = res.data apps.menu = res.data
@ -235,27 +220,29 @@ const user = {
Vue.ls.set(ALL_APPS_MENU, applocationR) Vue.ls.set(ALL_APPS_MENU, applocationR)
resolve(res) resolve(res)
const antDesignmenus = res.data const antDesignmenus = res.data
store.dispatch('GenerateRoutes', { store
.dispatch('GenerateRoutes', {
antDesignmenus antDesignmenus
}).then(() => { })
.then(() => {
router.addRoutes(store.getters.addRouters) router.addRoutes(store.getters.addRouters)
}) })
// 切换应用刷新整体界面,暂且取消 // 切换应用刷新整体界面,暂且取消
// window.location.reload() // window.location.reload()
}).catch(() => { })
.catch(() => {
resolve() resolve()
}) })
}) })
}, },
// 获取收到的通知 // 获取收到的通知
getNoticReceiveList({ getNoticReceiveList({ commit }) {
commit
}) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
unReadNotice({ unReadNotice({
pageSize: 6 pageSize: 6
}).then((data) => { })
.then(data => {
if (data.success) { if (data.success) {
const result = data.data const result = data.data
commit('SET_NOTICES', result) commit('SET_NOTICES', result)
@ -264,31 +251,28 @@ const user = {
// eslint-disable-next-line no-undef // eslint-disable-next-line no-undef
reject(new Error(data.message)) reject(new Error(data.message))
} }
}).catch(error => { })
.catch(error => {
reject(error) reject(error)
}) })
}) })
}, },
// 设置订舱列表 // 设置订舱列表
setBookingList({ setBookingList({ commit }, obj) {
commit return new Promise(resolve => {
}, obj) {
return new Promise((resolve) => {
commit('SET_BOOKINGLIST', obj) commit('SET_BOOKINGLIST', obj)
resolve() resolve()
}) })
}, },
// 设置需要保存页面 // 设置需要保存页面
setNeedSavePages({ setNeedSavePages({ commit }, obj) {
commit return new Promise(resolve => {
}, obj) {
return new Promise((resolve) => {
commit('SET_NEEDSAVEPAGES', obj) commit('SET_NEEDSAVEPAGES', obj)
resolve() resolve()
}) })
}, }
} }
} }

@ -19,7 +19,7 @@
@search="handleSearch" @search="handleSearch"
:default-active-first-option="false" :default-active-first-option="false"
:show-arrow="false" :show-arrow="false"
:filter-option="false" :filter-option="filterOption"
:not-found-content="null" :not-found-content="null"
> >
<a-select-option v-for="item in CodeData" :key="item.code" :value="item.code"> <a-select-option v-for="item in CodeData" :key="item.code" :value="item.code">
@ -115,6 +115,9 @@ export default {
}, },
mounted() {}, mounted() {},
methods: { methods: {
filterOption(input, option) {
return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
},
CarrierHandleSearch(data) { CarrierHandleSearch(data) {
commondbCarrierlist({ cnName: data }).then(res => { commondbCarrierlist({ cnName: data }).then(res => {
this.carrierCodeData = res.data this.carrierCodeData = res.data

@ -19,7 +19,7 @@
@search="handleSearch" @search="handleSearch"
:default-active-first-option="false" :default-active-first-option="false"
:show-arrow="false" :show-arrow="false"
:filter-option="false" :filter-option="filterOption"
:not-found-content="null" :not-found-content="null"
> >
<a-select-option v-for="item in CodeData" :key="item.code" :value="item.code"> <a-select-option v-for="item in CodeData" :key="item.code" :value="item.code">
@ -117,6 +117,9 @@ export default {
}, },
mounted() {}, mounted() {},
methods: { methods: {
filterOption(input, option) {
return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
},
CarrierHandleSearch(data) { CarrierHandleSearch(data) {
commondbCarrierlist({ cnName: data }).then(res => { commondbCarrierlist({ cnName: data }).then(res => {
this.carrierCodeData = res.data this.carrierCodeData = res.data

@ -10,51 +10,14 @@
<a-row :gutter="48"> <a-row :gutter="48">
<a-col :md="18"> <a-col :md="18">
<a-row :gutter="48"> <a-row :gutter="48">
<a-col :md="8" :sm="24" v-for="item in ColumnsQuery" :key="`${item.dataIndex}1`"> <a-col :md="8" :sm="24">
<a-form-item <a-form-item label="关键字:">
:label="item.title" <a-input v-model="queryParam.KeyWord" allow-clear placeholder="请输入关键字" />
v-if="
item.title != '备注' && item.title != '船公司' && item.title != '箱型' && item.title != '模块'
"
>
<a-input v-model="queryParam[item.dataIndex]" allow-clear :placeholder="`请输入${item.title}`" />
</a-form-item> </a-form-item>
<a-form-item :label="item.title" v-if="item.title == '箱型'"> </a-col>
<a-select <a-col :md="8" :sm="24">
allow-clear <a-form-item label="模块">
show-search <a-select allow-clear placeholder="请选择模块" v-model="queryParam.module">
placeholder="请选择箱型"
v-model="queryParam[item.dataIndex]"
:default-active-first-option="false"
:show-arrow="false"
:filter-option="false"
:not-found-content="null"
@search="handleSearch"
>
<a-select-option v-for="item in WCodeData" :key="item.code" :value="item.code">
{{ item.name }}
</a-select-option>
</a-select>
</a-form-item>
<a-form-item :label="item.title" v-if="item.title == '船公司'">
<a-select
allow-clear
show-search
placeholder="请选择船公司"
v-model="queryParam[item.dataIndex]"
:default-active-first-option="false"
:show-arrow="false"
:filter-option="false"
:not-found-content="null"
@search="handleSearch"
>
<a-select-option v-for="item in carrierCodeData" :key="item.code" :value="item.code">
{{ item.cnName }}
</a-select-option>
</a-select>
</a-form-item>
<a-form-item :label="item.title" v-if="item.title == '模块'">
<a-select allow-clear placeholder="请选择模块" v-model="queryParam[item.dataIndex]">
<a-select-option v-for="item in ModulesData" :key="item.code" :value="item.code"> <a-select-option v-for="item in ModulesData" :key="item.code" :value="item.code">
{{ item.name }} {{ item.name }}
</a-select-option> </a-select-option>
@ -189,6 +152,9 @@ export default {
this.init() this.init()
}, },
methods: { methods: {
filterOption(input, option) {
return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
},
handleSearch(data) { handleSearch(data) {
commondbCtn({ Name: data }).then(res => { commondbCtn({ Name: data }).then(res => {
this.WCodeData = res.data this.WCodeData = res.data
@ -228,7 +194,6 @@ export default {
this.advanced = !this.advanced this.advanced = !this.advanced
}, },
init() { init() {
Object.assign(this.$data, this.$options.data()) Object.assign(this.$data, this.$options.data())
this.ColumnsQuery = this.columns this.ColumnsQuery = this.columns
this.FnGetData() this.FnGetData()

@ -19,7 +19,7 @@
@search="handleSearch" @search="handleSearch"
:default-active-first-option="false" :default-active-first-option="false"
:show-arrow="false" :show-arrow="false"
:filter-option="false" :filter-option="filterOption"
:not-found-content="null" :not-found-content="null"
> >
<a-select-option v-for="item in CodeData" :key="item.code" :value="item.code"> <a-select-option v-for="item in CodeData" :key="item.code" :value="item.code">
@ -99,6 +99,9 @@ export default {
}, },
mounted() {}, mounted() {},
methods: { methods: {
filterOption(input, option) {
return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
},
handleSearch(data) { handleSearch(data) {
commondbYardlist({ name: data }).then(res => { commondbYardlist({ name: data }).then(res => {
this.CodeData = res.data this.CodeData = res.data

@ -19,7 +19,7 @@
@search="handleSearch" @search="handleSearch"
:default-active-first-option="false" :default-active-first-option="false"
:show-arrow="false" :show-arrow="false"
:filter-option="false" :filter-option="filterOption"
:not-found-content="null" :not-found-content="null"
> >
<a-select-option v-for="item in CodeData" :key="item.code" :value="item.code"> <a-select-option v-for="item in CodeData" :key="item.code" :value="item.code">
@ -101,6 +101,9 @@ export default {
}, },
mounted() {}, mounted() {},
methods: { methods: {
filterOption(input, option) {
return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
},
handleSearch(data) { handleSearch(data) {
commondbYardlist({ name: data }).then(res => { commondbYardlist({ name: data }).then(res => {
this.CodeData = res.data this.CodeData = res.data

@ -10,32 +10,14 @@
<a-row :gutter="48"> <a-row :gutter="48">
<a-col :md="18"> <a-col :md="18">
<a-row :gutter="48"> <a-row :gutter="48">
<a-col :md="8" :sm="24" v-for="item in ColumnsQuery" :key="`${item.dataIndex}1`"> <a-col :md="8" :sm="24">
<a-form-item <a-form-item label="关键字:">
:label="item.title" <a-input v-model="queryParam.KeyWord" allow-clear placeholder="请输入关键字" />
v-if="item.title != '备注' && item.title != '场站' && item.title != '模块'"
>
<a-input v-model="queryParam[item.dataIndex]" allow-clear :placeholder="`请输入${item.title}`" />
</a-form-item> </a-form-item>
<a-form-item :label="item.title" v-if="item.title == '场站'"> </a-col>
<a-select <a-col :md="8" :sm="24">
allow-clear <a-form-item label="模块">
show-search <a-select allow-clear placeholder="请选择模块" v-model="queryParam.module">
placeholder="请选择场站"
v-model="queryParam[item.dataIndex]"
:default-active-first-option="false"
:show-arrow="false"
:filter-option="false"
:not-found-content="null"
@search="handleSearch"
>
<a-select-option v-for="item in WCodeData" :key="item.code" :value="item.code">
{{ item.name }}
</a-select-option>
</a-select>
</a-form-item>
<a-form-item :label="item.title" v-if="item.title == '模块'">
<a-select allow-clear placeholder="请选择模块" v-model="queryParam[item.dataIndex]">
<a-select-option v-for="item in ModulesData" :key="item.code" :value="item.code"> <a-select-option v-for="item in ModulesData" :key="item.code" :value="item.code">
{{ item.name }} {{ item.name }}
</a-select-option> </a-select-option>

Loading…
Cancel
Save