9.23前后端代码提交
详情见周总结
|
@ -1,5 +1,5 @@
|
|||
NODE_ENV=development
|
||||
VUE_APP_API_BASE_URL=http://localhost:8080/jeecg-boot
|
||||
VUE_APP_API_BASE_URL=http://192.168.0.7:8080/jeecg-boot
|
||||
VUE_APP_CAS_BASE_URL=http://cas.example.org:8443/cas
|
||||
VUE_APP_ONLINE_BASE_URL=http://fileview.jeecg.com/onlinePreview
|
||||
|
||||
|
|
|
@ -1,44 +1,44 @@
|
|||
<template>
|
||||
<a-config-provider :locale="locale">
|
||||
<div id="app">
|
||||
<router-view/>
|
||||
<router-view />
|
||||
</div>
|
||||
</a-config-provider>
|
||||
</template>
|
||||
<script>
|
||||
import zhCN from 'ant-design-vue/lib/locale-provider/zh_CN'
|
||||
import enquireScreen from '@/utils/device'
|
||||
import zhCN from 'ant-design-vue/lib/locale-provider/zh_CN'
|
||||
import enquireScreen from '@/utils/device'
|
||||
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
locale: zhCN,
|
||||
}
|
||||
},
|
||||
created () {
|
||||
let that = this
|
||||
enquireScreen(deviceType => {
|
||||
// tablet
|
||||
if (deviceType === 0) {
|
||||
that.$store.commit('TOGGLE_DEVICE', 'mobile')
|
||||
that.$store.dispatch('setSidebar', false)
|
||||
}
|
||||
// mobile
|
||||
else if (deviceType === 1) {
|
||||
that.$store.commit('TOGGLE_DEVICE', 'mobile')
|
||||
that.$store.dispatch('setSidebar', false)
|
||||
}
|
||||
else {
|
||||
that.$store.commit('TOGGLE_DEVICE', 'desktop')
|
||||
that.$store.dispatch('setSidebar', true)
|
||||
}
|
||||
|
||||
})
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
locale: zhCN,
|
||||
}
|
||||
},
|
||||
created() {
|
||||
let that = this
|
||||
enquireScreen(deviceType => {
|
||||
// tablet
|
||||
if (deviceType === 0) {
|
||||
that.$store.commit('TOGGLE_DEVICE', 'mobile')
|
||||
that.$store.dispatch('setSidebar', false)
|
||||
}
|
||||
// mobile
|
||||
else if (deviceType === 1) {
|
||||
that.$store.commit('TOGGLE_DEVICE', 'mobile')
|
||||
that.$store.dispatch('setSidebar', false)
|
||||
}
|
||||
else {
|
||||
that.$store.commit('TOGGLE_DEVICE', 'desktop')
|
||||
that.$store.dispatch('setSidebar', true)
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style>
|
||||
#app {
|
||||
height: 100%;
|
||||
}
|
||||
#app {
|
||||
height: 100%;
|
||||
}
|
||||
</style>
|
BIN
ant-design-vue-jeecg/src/assets/imgs/bg/background.png
Normal file
After Width: | Height: | Size: 1.0 MiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/bg/bgBottom.png
Normal file
After Width: | Height: | Size: 9.3 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/bg/bgTop.png
Normal file
After Width: | Height: | Size: 46 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/bg/lgBg.jpg
Normal file
After Width: | Height: | Size: 646 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/bg/lginputBg.png
Normal file
After Width: | Height: | Size: 3.0 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/bg/lginputBgs.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/bg/loginBg.png
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/bg/loginbtnBg.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/bg/loginbtnBgs.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/bg/menu2Bg.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/bg/menu3Bg.png
Normal file
After Width: | Height: | Size: 6.3 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/bg/menuBg.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/bg/menuBgL.png
Normal file
After Width: | Height: | Size: 5.0 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/bg/menuBgLs.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/bg/menuBgR.png
Normal file
After Width: | Height: | Size: 5.0 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/bg/menuBgs.png
Normal file
After Width: | Height: | Size: 3.2 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/bg/pwd.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/bg/usm.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/bg/viewBg.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/choose16.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/choose20.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/close.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/icon1.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/icon2.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/icon3.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/icon4.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/icon5.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/icon6.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/leftline.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/line.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/loginlogo.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/logo.png
Normal file
After Width: | Height: | Size: 6.6 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/menu1.png
Normal file
After Width: | Height: | Size: 5.1 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/menu2.png
Normal file
After Width: | Height: | Size: 4.7 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/menu2/data1.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/menu2/data2.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/menu2/data3.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/menu2/data4.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/menu2/data5.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/menu2/data6.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/menu2/data7.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/menu2/gis1.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/menu2/gis2.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/menu2/gis3.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/menu2/gis4.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/menu2/gis5.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/menu2/system1.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/menu2/system2.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/menu2/system3.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/menu2/system4.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/menu2/system5.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/menu3.png
Normal file
After Width: | Height: | Size: 4.5 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/menu4.png
Normal file
After Width: | Height: | Size: 5.3 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/menu5.png
Normal file
After Width: | Height: | Size: 4.8 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/menu6.png
Normal file
After Width: | Height: | Size: 3.4 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/mode1.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/mode2.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/mode3.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/mode4.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/mode5.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/rightline.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/unchoose16.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/unchoose20.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/usericon.png
Normal file
After Width: | Height: | Size: 2.0 KiB |
BIN
ant-design-vue-jeecg/src/assets/imgs/viewicon.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
1156
ant-design-vue-jeecg/src/assets/less/Suless.less
Normal file
239
ant-design-vue-jeecg/src/assets/less/sulesss.less
Normal file
|
@ -0,0 +1,239 @@
|
|||
.ant-calendar,
|
||||
.ant-calendar-panel,
|
||||
.ant-calendar-header,
|
||||
.ant-calendar-footer,
|
||||
.ant-calendar-input-wrap {
|
||||
background-color: #042b4f !important;
|
||||
border-color: #1673cb !important;
|
||||
}
|
||||
|
||||
.ant-calendar-column-header-inner,
|
||||
.ant-calendar-year-select,
|
||||
.ant-calendar-month-select,
|
||||
.ant-calendar-date {
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
.ant-calendar-selected-day .ant-calendar-date,
|
||||
.ant-calendar-date:hover {
|
||||
background: #1890FF !important;
|
||||
}
|
||||
|
||||
.ant-calendar-input {
|
||||
background-color: #042b4f !important;
|
||||
color: #7ba7c6 !important;
|
||||
}
|
||||
|
||||
.ant-calendar-next-month-btn:hover:before,
|
||||
.ant-calendar-next-year-btn:hover::before,
|
||||
.ant-calendar-next-year-btn:hover::after,
|
||||
.ant-calendar-prev-year-btn:hover::before,
|
||||
.ant-calendar-prev-year-btn:hover::after,
|
||||
.ant-calendar-prev-month-btn:hover::before {
|
||||
border-color: #fff !important;
|
||||
}
|
||||
|
||||
.ant-calendar-picker-icon {
|
||||
color: #1b9ee8 !important;
|
||||
}
|
||||
|
||||
//select
|
||||
.ant-select-arrow {
|
||||
color: #00b1ff !important;
|
||||
}
|
||||
|
||||
.ant-select-dropdown-menu-item {
|
||||
color: #7ba7c6 !important;
|
||||
}
|
||||
|
||||
.ant-select-dropdown-menu-item-selected,
|
||||
.ant-select-dropdown-menu-item-active {
|
||||
background-color: #1673cb !important;
|
||||
}
|
||||
//ant-tab
|
||||
.ant-tabs-bar {
|
||||
border-color: #1673cb !important;
|
||||
margin: 10px 20px 0px 20px !important;
|
||||
}
|
||||
.ant-tabs-nav-wrap
|
||||
{
|
||||
margin: 0 !important;
|
||||
}
|
||||
.ant-tabs-ink-bar
|
||||
{
|
||||
display: none !important;
|
||||
}
|
||||
.ant-tabs-nav .ant-tabs-tab {
|
||||
background-image: linear-gradient(0deg,
|
||||
#021831 0%,
|
||||
#064576 60%,
|
||||
#0971ba 100%),
|
||||
linear-gradient(#2261a6,
|
||||
#2261a6);
|
||||
background-blend-mode: normal,
|
||||
normal;
|
||||
border: solid 1px #0a7bc4;
|
||||
margin: 0 !important;
|
||||
padding: 6px 31px !important;
|
||||
color: #9acef7 !important;
|
||||
}
|
||||
|
||||
.ant-tabs-nav .ant-tabs-tab-active {
|
||||
background-image: linear-gradient(0deg,
|
||||
#042e5c 0%,
|
||||
#0262ae 60%,
|
||||
#0096ff 100%),
|
||||
linear-gradient(#2261a6,
|
||||
#2261a6);
|
||||
background-blend-mode: normal,
|
||||
normal;
|
||||
color: #ffffff !important;
|
||||
}
|
||||
|
||||
//input
|
||||
.ant-select-selection,
|
||||
.ant-select-dropdown,
|
||||
.ant-input:not(.logininput) {
|
||||
background-color: #042b4f !important;
|
||||
box-shadow: 0px 4px 6px 0px rgba(0, 0, 0, 0.44) !important;
|
||||
border: solid 1px #1673cb !important;
|
||||
border-radius: 0 !important;
|
||||
color: #7ba7c6 !important;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.ant-input:hover:not(.logininput) {
|
||||
|
||||
background-color: #042b4f !important;
|
||||
box-shadow: 0px 4px 6px 0px rgba(0, 0, 0, 0.44) !important;
|
||||
border: solid 1px #1673cb !important;
|
||||
color: #7ba7c6;
|
||||
}
|
||||
|
||||
.ant-input:focus {
|
||||
box-shadow: 0px 4px 6px 0px rgba(0, 0, 0, 0.44) !important;
|
||||
color: #7ba7c6;
|
||||
}
|
||||
|
||||
input:-webkit-autofill {
|
||||
box-shadow: none !important;
|
||||
-webkit-text-fill-color: #d32424 !important;
|
||||
}
|
||||
|
||||
.ant-btn-cannel {
|
||||
width: 60px !important;
|
||||
height: 30px !important;
|
||||
background-color: #658199 !important;
|
||||
border: none !important;
|
||||
color: #ffffff !important;
|
||||
border-radius: 0 !important;
|
||||
}
|
||||
|
||||
.ant-btn-ok {
|
||||
width: 60px !important;
|
||||
height: 30px !important;
|
||||
background-color: #1a89e7 !important;
|
||||
border: none !important;
|
||||
color: #ffffff !important;
|
||||
border-radius: 0 !important;
|
||||
}
|
||||
|
||||
.footerButton {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
.ant-btn {
|
||||
margin: 0 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.ant-table-body table {
|
||||
border-left: 1px solid #1877d0 !important;
|
||||
}
|
||||
|
||||
.ant-table-tbody tr:nth-child(odd)>th,
|
||||
.ant-table-tbody tr:nth-child(odd)>td {
|
||||
background-color: #042b4f;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.ant-table-tbody tr:nth-child(even)>th,
|
||||
.ant-table-tbody tr:nth-child(even)>td {
|
||||
background-color: #093a68;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.ant-table-tbody tr:hover>th,
|
||||
.ant-table-tbody tr:hover>td {
|
||||
background-color: #0c4377 !important;
|
||||
}
|
||||
|
||||
.ant-table-placeholder {
|
||||
background-color: #042b4f !important;
|
||||
border: 1px solid #1877d0 !important;
|
||||
border-radius: 0 !important;
|
||||
}
|
||||
|
||||
.ant-table-placeholder .ant-empty-normal {
|
||||
color: #ffffff !important;
|
||||
}
|
||||
|
||||
.ant-table-align-center,
|
||||
.ant-table-thead tr th {
|
||||
background-image: linear-gradient(0deg, #06478a 14%, #00aeff 100%), linear-gradient(#008aff, #008aff) !important;
|
||||
background-blend-mode: normal,
|
||||
normal;
|
||||
color: #ffffff !important;
|
||||
}
|
||||
|
||||
.ant-table-bordered .ant-table-thead>tr>th,
|
||||
.ant-table-bordered .ant-table-tbody>tr>td,
|
||||
.ant-table-content .ant-table-thead>tr>th,
|
||||
.ant-table-content .ant-table-tbody>tr>td {
|
||||
border-right: 1px solid #1877d0 !important;
|
||||
border-bottom: 1px solid #1877d0 !important;
|
||||
line-height: 22px;
|
||||
font-size: 14px;
|
||||
border-radius: 0 !important;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* 滚动条优化 start */
|
||||
::-webkit-scrollbar {
|
||||
width: 10px;
|
||||
height: 8px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
background: #3a3d4e;
|
||||
border-radius: 2px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: #717483;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb:hover {
|
||||
background: #717483;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-corner {
|
||||
background: #3a3d4e;
|
||||
}
|
||||
|
||||
/* 滚动条优化 end */
|
||||
.ant-col {
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
|
||||
body {
|
||||
// 打开滚动条固定显示
|
||||
overflow-y: hidden;
|
||||
|
||||
&.colorWeak {
|
||||
filter: invert(80%);
|
||||
}
|
||||
}
|
|
@ -3,7 +3,7 @@
|
|||
<!-- update-begin- author:sunjianlei --- date:20191009 --- for: 提升右键菜单的层级 -->
|
||||
<contextmenu :itemList="menuItemList" :visible.sync="menuVisible" style="z-index: 9999;" @select="onMenuSelect"/>
|
||||
<!-- update-end- author:sunjianlei --- date:20191009 --- for: 提升右键菜单的层级 -->
|
||||
<a-tabs
|
||||
<!-- <a-tabs
|
||||
@contextmenu.native="e => onContextmenu(e)"
|
||||
v-if="multipage"
|
||||
:active-key="activePage"
|
||||
|
@ -17,8 +17,8 @@
|
|||
<a-tab-pane :id="page.fullPath" :key="page.fullPath" v-for="page in pageList" :closable="!(page.meta.title=='首页')">
|
||||
<span slot="tab" :pagekey="page.fullPath">{{ page.meta.title }}</span>
|
||||
</a-tab-pane>
|
||||
</a-tabs>
|
||||
<div style="margin: 12px 12px 0;">
|
||||
</a-tabs> -->
|
||||
<div>
|
||||
<!-- update-begin-author:taoyan date:20201221 for:此处删掉transition标签 不知道为什么加上后 页面路由切换的时候即1及菜单切到2及菜单的时候 两个菜单页面会同时出现300-500秒左右 -->
|
||||
<keep-alive v-if="multipage">
|
||||
<router-view v-if="reloadFlag"/>
|
||||
|
|
|
@ -1,150 +1,35 @@
|
|||
<template>
|
||||
<div id="userLayout" :class="['user-layout-wrapper', device]">
|
||||
<div class="container">
|
||||
<div class="top">
|
||||
<div class="header">
|
||||
<a href="/">
|
||||
<img src="~@/assets/logo.svg" class="logo" alt="logo">
|
||||
<span class="title">Jeecg Boot</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="desc">
|
||||
Jeecg Boot 是中国最具影响力的 企业级 低代码平台
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<route-view></route-view>
|
||||
|
||||
<div class="footer">
|
||||
<div class="links">
|
||||
<a href="http://doc.jeecg.com" target="_blank">帮助</a>
|
||||
<a href="https://github.com/zhangdaiscott/jeecg-boot" target="_blank">隐私</a>
|
||||
<a href="https://github.com/zhangdaiscott/jeecg-boot/blob/master/LICENSE" target="_blank">条款</a>
|
||||
</div>
|
||||
<div class="copyright">
|
||||
Copyright © 2019 <a href="http://www.jeecg.com" target="_blank">JEECG开源社区</a> 出品
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import RouteView from "@/components/layouts/RouteView"
|
||||
import { mixinDevice } from '@/utils/mixin.js'
|
||||
import RouteView from "@/components/layouts/RouteView"
|
||||
import { mixinDevice } from '@/utils/mixin.js'
|
||||
|
||||
export default {
|
||||
name: "UserLayout",
|
||||
components: { RouteView },
|
||||
mixins: [mixinDevice],
|
||||
data () {
|
||||
return {}
|
||||
},
|
||||
mounted () {
|
||||
document.body.classList.add('userLayout')
|
||||
},
|
||||
beforeDestroy () {
|
||||
document.body.classList.remove('userLayout')
|
||||
},
|
||||
}
|
||||
export default {
|
||||
name: "UserLayout",
|
||||
components: { RouteView },
|
||||
mixins: [mixinDevice],
|
||||
data() {
|
||||
return {}
|
||||
},
|
||||
mounted() {
|
||||
document.body.classList.add('userLayout')
|
||||
},
|
||||
beforeDestroy() {
|
||||
document.body.classList.remove('userLayout')
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
#userLayout.user-layout-wrapper {
|
||||
height: 100%;
|
||||
|
||||
&.mobile {
|
||||
.container {
|
||||
.main {
|
||||
max-width: 368px;
|
||||
width: 98%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.container {
|
||||
width: 100%;
|
||||
min-height: 100%;
|
||||
background: #f0f2f5 url(~@/assets/background.svg) no-repeat 50%;
|
||||
background-size: 100%;
|
||||
padding: 110px 0 144px;
|
||||
position: relative;
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.top {
|
||||
text-align: center;
|
||||
|
||||
.header {
|
||||
height: 44px;
|
||||
line-height: 44px;
|
||||
|
||||
.badge {
|
||||
position: absolute;
|
||||
display: inline-block;
|
||||
line-height: 1;
|
||||
vertical-align: middle;
|
||||
margin-left: -12px;
|
||||
margin-top: -10px;
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
.logo {
|
||||
height: 44px;
|
||||
vertical-align: top;
|
||||
margin-right: 16px;
|
||||
border-style: none;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 33px;
|
||||
color: rgba(0, 0, 0, .85);
|
||||
font-family: "Chinese Quote", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||
font-weight: 600;
|
||||
position: relative;
|
||||
top: 2px;
|
||||
}
|
||||
}
|
||||
.desc {
|
||||
font-size: 14px;
|
||||
color: rgba(0, 0, 0, 0.45);
|
||||
margin-top: 12px;
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
}
|
||||
|
||||
.main {
|
||||
min-width: 260px;
|
||||
width: 368px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.footer {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
bottom: 0;
|
||||
padding: 0 16px;
|
||||
margin: 48px 0 24px;
|
||||
text-align: center;
|
||||
|
||||
.links {
|
||||
margin-bottom: 8px;
|
||||
font-size: 14px;
|
||||
a {
|
||||
color: rgba(0, 0, 0, 0.45);
|
||||
transition: all 0.3s;
|
||||
&:not(:last-child) {
|
||||
margin-right: 40px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.copyright {
|
||||
color: rgba(0, 0, 0, 0.45);
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
<style lang="less">
|
||||
@import "~@assets/less/sulesss.less";
|
||||
#userLayout {
|
||||
height: 100%;
|
||||
background-image: url(~@/assets/imgs/bg/lgBg.jpg);
|
||||
}
|
||||
</style>
|
|
@ -1,64 +1,10 @@
|
|||
<template>
|
||||
<a-layout class="layout" :class="[device]">
|
||||
|
||||
<template v-if="layoutMode === 'sidemenu'">
|
||||
<a-drawer
|
||||
v-if="device === 'mobile'"
|
||||
:wrapClassName="'drawer-sider ' + navTheme"
|
||||
placement="left"
|
||||
@close="() => this.collapsed = false"
|
||||
:closable="false"
|
||||
:visible="collapsed"
|
||||
width="200px"
|
||||
>
|
||||
<side-menu
|
||||
mode="inline"
|
||||
v-if="device === 'mobile'"
|
||||
:menus="menus"
|
||||
@menuSelect="menuSelect"
|
||||
@updateMenuTitle="handleUpdateMenuTitle"
|
||||
:theme="navTheme"
|
||||
:collapsed="false"
|
||||
:collapsible="true"></side-menu>
|
||||
</a-drawer>
|
||||
|
||||
<side-menu
|
||||
v-show="device === 'desktop'"
|
||||
mode="inline"
|
||||
:menus="menus"
|
||||
@menuSelect="myMenuSelect"
|
||||
@updateMenuTitle="handleUpdateMenuTitle"
|
||||
:theme="navTheme"
|
||||
:collapsed="collapsed"
|
||||
:collapsible="true"></side-menu>
|
||||
</template>
|
||||
<!-- 下次优化这些代码 -->
|
||||
<template v-else>
|
||||
<a-drawer
|
||||
v-if="device === 'mobile'"
|
||||
:wrapClassName="'drawer-sider ' + navTheme"
|
||||
placement="left"
|
||||
@close="() => this.collapsed = false"
|
||||
:closable="false"
|
||||
:visible="collapsed"
|
||||
width="200px"
|
||||
>
|
||||
<side-menu
|
||||
mode="inline"
|
||||
:menus="menus"
|
||||
@menuSelect="menuSelect"
|
||||
@updateMenuTitle="handleUpdateMenuTitle"
|
||||
:theme="navTheme"
|
||||
:collapsed="false"
|
||||
:collapsible="true"></side-menu>
|
||||
</a-drawer>
|
||||
</template>
|
||||
|
||||
<a-layout
|
||||
:class="[layoutMode, `content-width-${contentWidth}`]"
|
||||
:style="{ paddingLeft: fixSiderbar && isDesktop() ? `${sidebarOpened ? 200 : 80}px` : '0' }">
|
||||
<!-- layout header -->
|
||||
<global-header
|
||||
<!-- <global-header
|
||||
:mode="layoutMode"
|
||||
:menus="menus"
|
||||
:theme="navTheme"
|
||||
|
@ -66,17 +12,13 @@
|
|||
:device="device"
|
||||
@toggle="toggle"
|
||||
@updateMenuTitle="handleUpdateMenuTitle"
|
||||
/>
|
||||
/> -->
|
||||
|
||||
<!-- layout content -->
|
||||
<a-layout-content :style="{ height: '100%', paddingTop: fixedHeader ? '59px' : '0' }">
|
||||
<slot></slot>
|
||||
</a-layout-content>
|
||||
|
||||
<!-- layout footer -->
|
||||
<a-layout-footer style="padding: 0px">
|
||||
<global-footer/>
|
||||
</a-layout-footer>
|
||||
</a-layout>
|
||||
|
||||
<!-- update-start---- author:os_chengtgen -- date:20190830 -- for:issues/463 -编译主题颜色已生效,但还一直转圈,显示主题 正在编译 ---- -->
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import { mixin } from '@/utils/mixin.js'
|
||||
import { mixin } from '@/utils/mixin.js'
|
||||
|
||||
export default {
|
||||
name: 'Logo',
|
||||
|
|
|
@ -1,41 +1,384 @@
|
|||
<template>
|
||||
<div>
|
||||
<index-chart v-if="indexStyle==1"></index-chart>
|
||||
<index-bdc v-if="indexStyle==2"></index-bdc>
|
||||
<index-task v-if="indexStyle==3"></index-task>
|
||||
<div style="width: 100%;text-align: right;margin-top: 20px">
|
||||
请选择首页样式:
|
||||
<a-radio-group v-model="indexStyle">
|
||||
<a-radio :value="1">统计图表</a-radio>
|
||||
<a-radio :value="2">统计图表2</a-radio>
|
||||
<a-radio :value="3">任务表格</a-radio>
|
||||
</a-radio-group>
|
||||
<div id="homePage">
|
||||
<div class="bgTop">
|
||||
<img src="@/assets/imgs/bg/bgTop.png" />
|
||||
<div class="logo">
|
||||
<img src="@/assets/imgs/logo.png" />
|
||||
<div class="centerTitle">{{ content_word.centerTitle }}</div>
|
||||
</div>
|
||||
<div class="menuTop">
|
||||
<div @click="selectMenu('t', 1)" :class="selectMenuIdT == 1 ? 'select menuBgL clickmode' : 'menuBgL clickmode'">
|
||||
<img src="@/assets/imgs/icon1.png" /><label>{{ content_word.modalname1 }}</label>
|
||||
</div>
|
||||
<div @click="selectMenu('t', 2)" :class="selectMenuIdT == 2 ? 'select menuBgL clickmode' : 'menuBgL clickmode'">
|
||||
<img src="@/assets/imgs/icon2.png" /><label>{{ content_word.modalname2 }}</label>
|
||||
</div>
|
||||
<div @click="selectMenu('t', 3)" :class="selectMenuIdT == 3 ? 'select menuBgL clickmode' : 'menuBgL clickmode'">
|
||||
<img src="@/assets/imgs/icon3.png" /><label>{{ content_word.modalname3 }}</label>
|
||||
</div>
|
||||
<div @click="selectMenu('t', 6)" :class="selectMenuIdT == 6 ? 'select menuBgR clickmode' : 'menuBgR clickmode'">
|
||||
<img src="@/assets/imgs/icon6.png" /><label>{{ content_word.modalname6 }}</label>
|
||||
</div>
|
||||
<div @click="selectMenu('t', 5)" :class="selectMenuIdT == 5 ? 'select menuBgR clickmode' : 'menuBgR clickmode'">
|
||||
<img src="@/assets/imgs/icon5.png" /><label>{{ content_word.modalname5 }}</label>
|
||||
</div>
|
||||
<div @click="selectMenu('t', 4)" :class="selectMenuIdT == 4 ? 'select menuBgR clickmode' : 'menuBgR clickmode'">
|
||||
<img src="@/assets/imgs/icon4.png" /><label>{{ content_word.modalname4 }}</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="logout" @click="handleLogout">
|
||||
<img src="@/assets/imgs/usericon.png" /><label>退出登录</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mainBg">
|
||||
<div class="overMpdal"><overview-modal ref="overForm" class="overview"></overview-modal></div>
|
||||
<div class="bgBottom">
|
||||
<img src="@/assets/imgs/bg/bgBottom.png" />
|
||||
<div class="menuBottom">
|
||||
<div @click="selectMenu('b', 1)" :class="selectMenuIdB == 1 ? 'select clickmode' : ' clickmode'"><img
|
||||
src="@/assets/imgs/menu1.png" /></div>
|
||||
<div @click="selectMenu('b', 2)" :class="selectMenuIdB == 2 ? 'select clickmode' : ' clickmode'"><img
|
||||
src="@/assets/imgs/menu2.png" /></div>
|
||||
<div @click="selectMenu('b', 3)" :class="selectMenuIdB == 3 ? 'select clickmode' : ' clickmode'"><img
|
||||
src="@/assets/imgs/menu3.png" /></div>
|
||||
<div @click="selectMenu('b', 4)" :class="selectMenuIdB == 4 ? 'select clickmode' : ' clickmode'"><img
|
||||
src="@/assets/imgs/menu4.png" /></div>
|
||||
<div @click="selectMenu('b', 5)" :class="selectMenuIdB == 5 ? 'select clickmode' : ' clickmode'"><img
|
||||
src="@/assets/imgs/menu5.png" /></div>
|
||||
<div @click="selectMenu('b', 6)" :class="selectMenuIdB == 6 ? 'select clickmode' : ' clickmode'"><img
|
||||
src="@/assets/imgs/menu6.png" /></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bgBottom2" v-show="selectMenuIdB == 4">
|
||||
<img src="@/assets/imgs/bg/menu2Bg.png" />
|
||||
<div class="menuBottom2">
|
||||
<img class="clickmode" @click="selectMenu('b', 11)" src="@/assets/imgs/menu2/data1.png" />
|
||||
<img class="clickmode" @click="selectMenu('b', 12)" src="@/assets/imgs/menu2/data2.png" />
|
||||
<img class="clickmode" @click="selectMenu('b', 13)" src="@/assets/imgs/menu2/data3.png" />
|
||||
<img class="clickmode" @click="selectMenu('b', 14)" src="@/assets/imgs/menu2/data4.png" />
|
||||
<img class="clickmode" @click="selectMenu('b', 15)" src="@/assets/imgs/menu2/data5.png" />
|
||||
<img class="clickmode" @click="selectMenu('b', 16)" src="@/assets/imgs/menu2/data6.png" />
|
||||
<img class="clickmode" @click="selectMenu('b', 17)" src="@/assets/imgs/menu2/data7.png" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="bgBottom3" v-show="selectMenuIdB == 5">
|
||||
<img src="@/assets/imgs/bg/menu3Bg.png" />
|
||||
<div class="menuBottom2">
|
||||
<img class="clickmode" @click="selectMenu('b', 21)" src="@/assets/imgs/menu2/system1.png" />
|
||||
<img class="clickmode" @click="selectMenu('b', 22)" src="@/assets/imgs/menu2/system2.png" />
|
||||
<img class="clickmode" @click="selectMenu('b', 23)" src="@/assets/imgs/menu2/system3.png" />
|
||||
<img class="clickmode" @click="selectMenu('b', 24)" src="@/assets/imgs/menu2/system4.png" />
|
||||
<img class="clickmode" @click="selectMenu('b', 25)" src="@/assets/imgs/menu2/system5.png" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="bgBottom4" v-show="selectMenuIdB == 6">
|
||||
<img src="@/assets/imgs/bg/menu3Bg.png" />
|
||||
<div class="menuBottom2">
|
||||
<img class="clickmode" @click="selectMenu('b', 31)" src="@/assets/imgs/menu2/gis1.png" />
|
||||
<img class="clickmode" @click="selectMenu('b', 32)" src="@/assets/imgs/menu2/gis2.png" />
|
||||
<img class="clickmode" @click="selectMenu('b', 33)" src="@/assets/imgs/menu2/gis3.png" />
|
||||
<img class="clickmode" @click="selectMenu('b', 34)" src="@/assets/imgs/menu2/gis4.png" />
|
||||
<img class="clickmode" @click="selectMenu('b', 35)" src="@/assets/imgs/menu2/gis5.png" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import IndexChart from './IndexChart'
|
||||
import IndexTask from "./IndexTask"
|
||||
import IndexBdc from './IndexBdc'
|
||||
|
||||
export default {
|
||||
name: "Analysis",
|
||||
components: {
|
||||
IndexChart,
|
||||
IndexTask,
|
||||
IndexBdc
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
indexStyle:1
|
||||
import { mapActions } from 'vuex'
|
||||
import OverviewModal from './Overview'
|
||||
import { CONTENT_WORD } from './config'
|
||||
export default {
|
||||
name: 'homePage',
|
||||
components: { OverviewModal },
|
||||
data() {
|
||||
return {
|
||||
bmap: null,
|
||||
view: '',
|
||||
selectMenuIdT: 0,
|
||||
selectMenuIdB: 0,
|
||||
content_word: {},
|
||||
}
|
||||
},
|
||||
created() {
|
||||
},
|
||||
mounted() {
|
||||
this.content_word = CONTENT_WORD
|
||||
this.selectMenu('b', 1)
|
||||
},
|
||||
computed: {
|
||||
},
|
||||
watch: {
|
||||
},
|
||||
methods: {
|
||||
selectMenu(type, menuid) {
|
||||
if (type == 't') {
|
||||
this.selectMenuIdT = menuid
|
||||
}
|
||||
},
|
||||
created() {
|
||||
else if (type == 'b') {
|
||||
this.selectMenuIdB = menuid
|
||||
this.$refs.overForm.menuCilck(menuid)
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
methods: {
|
||||
...mapActions(["Logout"]),
|
||||
handleLogout() {
|
||||
const that = this
|
||||
|
||||
this.$confirm({
|
||||
title: '提示',
|
||||
content: '真的要注销登录吗 ?',
|
||||
onOk() {
|
||||
return that.Logout({}).then(() => {
|
||||
window.location.reload()
|
||||
}).catch(err => {
|
||||
that.$message.error({
|
||||
title: '错误',
|
||||
description: err.message
|
||||
})
|
||||
})
|
||||
},
|
||||
onCancel() {
|
||||
},
|
||||
});
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="less">
|
||||
#homePage {
|
||||
background-color: #052f57;
|
||||
|
||||
.bgTop {
|
||||
height: 8.24vh;
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.logo {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 35vw;
|
||||
width: 30vw;
|
||||
height: 64px;
|
||||
|
||||
img {
|
||||
width: auto;
|
||||
height: auto;
|
||||
float: left;
|
||||
margin: 12px 8px 0 36px;
|
||||
}
|
||||
|
||||
.centerTitle {
|
||||
float: left;
|
||||
font-family: MicrosoftYaHei-Bold;
|
||||
font-size: 26px;
|
||||
line-height: 52px;
|
||||
letter-spacing: 2px;
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
|
||||
.menuTop {
|
||||
position: absolute;
|
||||
top: 3vh;
|
||||
left: 8vw;
|
||||
width: 84vw;
|
||||
|
||||
label {
|
||||
font-family: FZZYJW--GB1-0;
|
||||
font-size: 21px;
|
||||
line-height: 38px;
|
||||
letter-spacing: 2px;
|
||||
color: #ffffff;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.menuBgL {
|
||||
float: left;
|
||||
width: 189px;
|
||||
height: 45px;
|
||||
margin-right: -22px;
|
||||
background-image: url('~@/assets/imgs/bg/menuBgL.png');
|
||||
|
||||
img {
|
||||
width: auto;
|
||||
height: auto;
|
||||
margin: -8px 6px 0 35px;
|
||||
}
|
||||
}
|
||||
|
||||
.menuBgL.select {
|
||||
background-image: url('~@/assets/imgs/bg/menuBgLs.png');
|
||||
}
|
||||
|
||||
.menuBgR {
|
||||
float: right;
|
||||
width: 189px;
|
||||
height: 45px;
|
||||
margin-left: -22px;
|
||||
background-image: url('~@/assets/imgs/bg/menuBgR.png');
|
||||
|
||||
img {
|
||||
width: auto;
|
||||
height: auto;
|
||||
margin: -8px 6px 0 40px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.logout {
|
||||
position: absolute;
|
||||
top: 3vh;
|
||||
left: 93vw;
|
||||
width: 7vw;
|
||||
height: 42px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
img {
|
||||
width: 26px;
|
||||
height: 26px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
label {
|
||||
font-size: 18px;
|
||||
letter-spacing: 2px;
|
||||
color: #618ebc;
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
.clickmode {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.mainBg {
|
||||
height: 91.76vh;
|
||||
background-image: url(~@/assets/imgs/bg/background.png);
|
||||
background-size: cover;
|
||||
|
||||
.overMpdal {
|
||||
height: 81vh;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.overview {
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.bgBottom {
|
||||
height: 85px;
|
||||
position: absolute;
|
||||
bottom: 1.98vh;
|
||||
|
||||
img {
|
||||
width: 98.33vw;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.menuBottom {
|
||||
position: absolute;
|
||||
top: 8px;
|
||||
left: calc(50vw - 360px);
|
||||
width: 720px;
|
||||
margin: 0 auto;
|
||||
|
||||
div {
|
||||
float: left;
|
||||
width: 68px;
|
||||
height: 68px;
|
||||
margin: 0 26px;
|
||||
background-image: url('~@/assets/imgs/bg/menuBg.png');
|
||||
background-size: 100% 100%;
|
||||
background-repeat: no-repeat;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
div.select {
|
||||
background-image: url('~@/assets/imgs/bg/menuBgs.png');
|
||||
background-size: 100% 100%;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
img {
|
||||
width: auto;
|
||||
height: auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.bgBottom2 {
|
||||
width: 440px;
|
||||
height: 50px;
|
||||
position: absolute;
|
||||
left: calc(50vw - 160px);
|
||||
bottom: calc(2vh + 100px);
|
||||
|
||||
.menuBottom2 {
|
||||
position: absolute;
|
||||
top: 13px;
|
||||
left: 66px;
|
||||
|
||||
img {
|
||||
width: auto;
|
||||
height: auto;
|
||||
margin: 0 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.bgBottom3 {
|
||||
width: 360px;
|
||||
height: 50px;
|
||||
position: absolute;
|
||||
left: 50vw;
|
||||
bottom: calc(2vh + 100px);
|
||||
|
||||
.menuBottom2 {
|
||||
position: absolute;
|
||||
top: 11px;
|
||||
left: 64px;
|
||||
|
||||
img {
|
||||
width: auto;
|
||||
height: auto;
|
||||
margin: 0 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.bgBottom4 {
|
||||
width: 360px;
|
||||
height: 50px;
|
||||
position: absolute;
|
||||
left: calc(50vw + 120px);
|
||||
bottom: calc(2vh + 100px);
|
||||
|
||||
.menuBottom2 {
|
||||
position: absolute;
|
||||
top: 12px;
|
||||
left: 70px;
|
||||
|
||||
img {
|
||||
width: auto;
|
||||
height: 26px;
|
||||
margin: 0 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,15 +0,0 @@
|
|||
<template>
|
||||
<div>
|
||||
Monitor
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "Monitor"
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
991
ant-design-vue-jeecg/src/views/dashboard/Overview.vue
Normal file
|
@ -0,0 +1,991 @@
|
|||
<template>
|
||||
<div id="overview" v-show="showModal"
|
||||
:style="{ width: this.modeWidth, height: this.modeHeight, margintop: this.margintop }">
|
||||
<div class="top">
|
||||
<div class="icon"></div>
|
||||
<div class="name">{{ title }}</div>
|
||||
<div class="close clickmode" @click="closeModal"></div>
|
||||
<div class="line"></div>
|
||||
<!-- <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
|
||||
<a-button type="primary" icon="import">导入</a-button>
|
||||
</a-upload> -->
|
||||
</div>
|
||||
<div class="main">
|
||||
<div class="form">
|
||||
<div class="modeChoose" v-if="modal == 'modeChoose'">
|
||||
<div class="lines">
|
||||
<div class="leftline"></div>
|
||||
<div class="name">{{ content_word.modeChoosename1 }}</div>
|
||||
<div class="rightline"></div>
|
||||
</div>
|
||||
<div class="modes">
|
||||
<div class="mode mode1 clickmode" @click="selectMode('t', 1)">
|
||||
<div :class="selectmodeIdT == 1 ? 'unchoose choose' : 'unchoose'">{{ content_word.modename1 }}</div>
|
||||
</div>
|
||||
<div class="mode mode2 clickmode" @click="selectMode('t', 2)">
|
||||
<div :class="selectmodeIdT == 2 ? 'unchoose choose' : 'unchoose'">{{ content_word.modename2 }}</div>
|
||||
</div>
|
||||
<div class="mode mode3 clickmode" @click="selectMode('t', 3)">
|
||||
<div :class="selectmodeIdT == 3 ? 'unchoose choose' : 'unchoose'">{{ content_word.modename3 }}</div>
|
||||
</div>
|
||||
<div class="mode mode4 clickmode" @click="selectMode('t', 4)">
|
||||
<div :class="selectmodeIdT == 4 ? 'unchoose choose' : 'unchoose'">{{ content_word.modename4 }}</div>
|
||||
</div>
|
||||
<div class="mode mode5 clickmode" @click="selectMode('t', 5)">
|
||||
<div :class="selectmodeIdT == 5 ? 'unchoose choose' : 'unchoose'">{{ content_word.modename5 }}</div>
|
||||
</div>
|
||||
<div class="mode mode6 clickmode" @click="selectMode('t', 6)">
|
||||
<div :class="selectmodeIdT == 6 ? 'unchoose choose' : 'unchoose'">{{ content_word.modename6 }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="lines">
|
||||
<div class="leftline"></div>
|
||||
<div class="name">{{ content_word.modeChoosename2 }}</div>
|
||||
<div class="rightline"></div>
|
||||
</div>
|
||||
<div class="modes2">
|
||||
<div class="mode clickmode" @click="selectMode('b', 1)">
|
||||
<div :class="selectmodeIdB == 1 ? 'unchoose choose' : 'unchoose'">{{ content_word.mode2name1 }}</div>
|
||||
</div>
|
||||
<div class="mode clickmode" @click="selectMode('b', 2)">
|
||||
<div :class="selectmodeIdB == 2 ? 'unchoose choose' : 'unchoose'">{{ content_word.mode2name2 }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="searchTable" v-if="modal == 'newproject'">
|
||||
<a-form layout="inline">
|
||||
<a-row :gutter="24">
|
||||
<a-col :col="24">
|
||||
<a-form-item label="工程名称:" :label-col="{ span: 5 }" :wrapper-col="{ span: 16 }">
|
||||
<j-input placeholder="" v-model="queryParam.proname"></j-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :col="24">
|
||||
<a-form-item label="创建人:" :label-col="{ span: 5 }" :wrapper-col="{ span: 16 }">
|
||||
<j-input placeholder="" v-model="queryParam.username"></j-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :col="24">
|
||||
<a-form-item label="创建时间:" :label-col="{ span: 5 }" :wrapper-col="{ span: 16 }">
|
||||
<j-input placeholder="" v-model="queryParam.crateTime"></j-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :col="24">
|
||||
<a-form-item label="备注:" :label-col="{ span: 5 }" :wrapper-col="{ span: 16 }">
|
||||
<a-textarea ref="textarea" :value="inputContent" style="height: 130px" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
</div>
|
||||
<div class="searchTable" v-if="modal == 'openproject'">
|
||||
<a-form layout="inline">
|
||||
<a-row :gutter="24">
|
||||
<a-col :md="6" :sm="6">
|
||||
<a-form-item label="工程名称:" :label-col="{ span: 9 }" :wrapper-col="{ span: 15 }">
|
||||
<a-input placeholder="请输入工程名称" v-model="queryParam.dataTable"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :md="6" :sm="6">
|
||||
<a-form-item label="创建时间:" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }">
|
||||
<a-date-picker placeholder="请选择创建时间" v-model="queryParam.dataId" format="YYYY-MM-DD" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :md="6" :sm="6">
|
||||
<a-button type="ok" @click="searchQuery">查询</a-button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
<a-table class="protable" ref="table" size="middle" rowKey="id" :columns="projectcolumns"
|
||||
:dataSource="tabledataSource" :pagination="false">
|
||||
<span slot="action" slot-scope="text, record">
|
||||
<a-popconfirm title="确定删除吗?" @confirm="() => dataDelete(record.id, 'projectcolumns')">
|
||||
<a>删除</a>
|
||||
</a-popconfirm>
|
||||
</span>
|
||||
</a-table>
|
||||
</div>
|
||||
<div class="searchTable" v-if="modal == 'weatherdata'">
|
||||
<a-tabs @change="wentherChangeTab">
|
||||
<a-tab-pane tab="历史数据" key="历史数据" :forceRender="true">
|
||||
<a-form layout="inline">
|
||||
<a-row :gutter="24">
|
||||
<a-col :md="6" :sm="6">
|
||||
<a-form-item label="气象名称:" :label-col="{ span: 9 }" :wrapper-col="{ span: 15 }">
|
||||
<a-input placeholder="请输入气象名称" v-model="queryParam.weatherName"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :md="6" :sm="6">
|
||||
<a-form-item label="类别" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }">
|
||||
<a-select placeholder="请选择" v-model="queryParam.weatherType">
|
||||
<a-select-option value="0">中国</a-select-option>
|
||||
<a-select-option value="1">美国</a-select-option>
|
||||
<a-select-option value="2">欧洲</a-select-option>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :md="3" :sm="3">
|
||||
<a-button type="ok" @click="searchQuery">查询</a-button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
<a-table class="protable" ref="table" size="middle" rowKey="id" :columns="wenthercolumns"
|
||||
:dataSource="tabledataSource" :pagination="false">
|
||||
<span slot="action" slot-scope="text, record">
|
||||
<a>启用</a>
|
||||
<a-divider type="vertical" />
|
||||
<a>下载</a>
|
||||
</span>
|
||||
</a-table>
|
||||
</a-tab-pane>
|
||||
<a-tab-pane tab="气象预报" key="气象预报" :forceRender="true">
|
||||
<a-form layout="inline">
|
||||
<a-row :gutter="24">
|
||||
<a-col :md="6" :sm="6">
|
||||
<a-form-item label="气象名称:" :label-col="{ span: 9 }" :wrapper-col="{ span: 15 }">
|
||||
<a-input placeholder="请输入气象名称" v-model="queryParam.weatherName"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :md="3" :sm="3">
|
||||
<a-button type="ok" @click="searchQuery">查询</a-button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
<a-table class="protable" ref="table" size="middle" rowKey="id" :columns="forecastcolumns"
|
||||
:dataSource="tabledataSource" :pagination="false">
|
||||
<span slot="action" slot-scope="text, record">
|
||||
<a>启用</a>
|
||||
<a-divider type="vertical" />
|
||||
<a>下载</a>
|
||||
</span>
|
||||
</a-table>
|
||||
</a-tab-pane>
|
||||
</a-tabs>
|
||||
</div>
|
||||
<div class="searchTable" v-if="modal == 'nuclidedata'">
|
||||
<a-form layout="inline">
|
||||
<a-row :gutter="24">
|
||||
<a-col :md="7" :sm="7">
|
||||
<a-form-item label="XX名称:" :label-col="{ span: 9 }" :wrapper-col="{ span: 15 }">
|
||||
<a-select placeholder="请选择" v-model="queryParam.nuclideName">
|
||||
<a-select-option value="0">xxx</a-select-option>
|
||||
<a-select-option value="1">xxx</a-select-option>
|
||||
<a-select-option value="2">xxx</a-select-option>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :md="7" :sm="7">
|
||||
<a-form-item label="时间:" :label-col="{ span: 6 }" :wrapper-col="{ span: 18 }">
|
||||
<a-date-picker placeholder="请选择创建时间" v-model="queryParam.dataId" format="YYYY-MM-DD" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :md="3" :sm="3">
|
||||
<a-button type="ok" @click="searchQuery">查询</a-button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
<a-table class="protable" ref="table" size="middle" rowKey="id" :columns="nuclidecolumns"
|
||||
:dataSource="tabledataSource" :pagination="false">
|
||||
<span slot="action" slot-scope="text, record">
|
||||
<a>查看</a>
|
||||
</span>
|
||||
</a-table>
|
||||
</div>
|
||||
<div class="searchTable" v-if="modal == 'weapondata'">
|
||||
<a-form layout="inline">
|
||||
<a-row :gutter="24">
|
||||
<a-col :md="7" :sm="7">
|
||||
<a-form-item label="XX名称:" :label-col="{ span: 9 }" :wrapper-col="{ span: 15 }">
|
||||
<a-select placeholder="请选择" v-model="queryParam.weaponType">
|
||||
<a-select-option value="0">xxx</a-select-option>
|
||||
<a-select-option value="1">xxx</a-select-option>
|
||||
<a-select-option value="2">xxx</a-select-option>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :md="7" :sm="7">
|
||||
<a-form-item label="时间:" :label-col="{ span: 6 }" :wrapper-col="{ span: 18 }">
|
||||
<a-date-picker placeholder="请选择创建时间" v-model="queryParam.dataId" format="YYYY-MM-DD" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :md="3" :sm="3">
|
||||
<a-button type="ok" @click="searchQuery">查询</a-button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
<a-table class="protable" ref="table" size="middle" rowKey="id" :columns="weaponcolumns"
|
||||
:dataSource="tabledataSource" :pagination="false">
|
||||
<span slot="action" slot-scope="text, record">
|
||||
<a-popconfirm title="确定删除吗?" @confirm="() => dataDelete(record.id, 'weaponcolumns')">
|
||||
<a>删除</a>
|
||||
</a-popconfirm>
|
||||
</span>
|
||||
</a-table>
|
||||
</div>
|
||||
<div class="searchTable" v-if="modal == 'topographydata'">
|
||||
<a-tabs @change="topographyChangeTab">
|
||||
<a-tab-pane tab="地理数据" key="地理数据" :forceRender="true">
|
||||
<a-form layout="inline">
|
||||
<a-row :gutter="24">
|
||||
<a-col :md="7" :sm="7">
|
||||
<a-form-item label="地形名称:" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }">
|
||||
<a-input placeholder="请输入气象名称" v-model="queryParam.topographyName"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :md="3" :sm="3">
|
||||
<a-button type="ok" @click="searchQuery">查询</a-button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
<a-table class="protable" ref="table" size="middle" rowKey="id" :columns="topographycolumns"
|
||||
:dataSource="tabledataSource" :pagination="false">
|
||||
<span slot="action" slot-scope="text, record">
|
||||
<a>下载</a>
|
||||
<a-divider type="vertical" />
|
||||
<a-popconfirm title="确定删除吗?" @confirm="() => dataDelete(record.id, 'topographycolumns')">
|
||||
<a>删除</a>
|
||||
</a-popconfirm>
|
||||
</span>
|
||||
</a-table>
|
||||
</a-tab-pane>
|
||||
<a-tab-pane tab="本构参数" key="本构参数" :forceRender="true">
|
||||
</a-tab-pane>
|
||||
</a-tabs>
|
||||
</div>
|
||||
<div class="searchTable" v-if="modal == 'citydata'">
|
||||
<a-tabs @change="cityChangeTab">
|
||||
<a-tab-pane tab="城市目标" key="城市目标" :forceRender="true">
|
||||
<a-form layout="inline">
|
||||
<a-row :gutter="24">
|
||||
<a-col :md="8" :sm="8">
|
||||
<a-form-item label="城市名称:" :label-col="{ span: 9 }" :wrapper-col="{ span: 15 }">
|
||||
<a-input placeholder="请输入城市名称" v-model="queryParam.cityName"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :md="3" :sm="3">
|
||||
<a-button type="ok" @click="searchQuery">查询</a-button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
<a-table class="protable" ref="table" size="middle" rowKey="id" :columns="citycolumns"
|
||||
:dataSource="tabledataSource" :pagination="false">
|
||||
<span slot="action" slot-scope="text, record">
|
||||
<a>查看</a>
|
||||
<a-divider type="vertical" />
|
||||
<a-popconfirm title="确定删除吗?" @confirm="() => dataDelete(record.id, 'citycolumns')">
|
||||
<a>删除</a>
|
||||
</a-popconfirm>
|
||||
</span>
|
||||
</a-table>
|
||||
</a-tab-pane>
|
||||
<a-tab-pane tab="设施目标" key="设施目标" :forceRender="true">
|
||||
<a-form layout="inline">
|
||||
<a-row :gutter="24">
|
||||
<a-col :md="8" :sm="8">
|
||||
<a-form-item label="气象名称:" :label-col="{ span: 9 }" :wrapper-col="{ span: 15 }">
|
||||
<a-input placeholder="请输入气象名称" v-model="queryParam.weatherName"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :md="3" :sm="3">
|
||||
<a-button type="ok" @click="searchQuery">查询</a-button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
<a-table class="protable" ref="table" size="middle" rowKey="id" :columns="facilitycolumns"
|
||||
:dataSource="tabledataSource" :pagination="false">
|
||||
<span slot="action" slot-scope="text, record">
|
||||
<a>查看</a>
|
||||
<a-divider type="vertical" />
|
||||
<a-popconfirm title="确定删除吗?" @confirm="() => dataDelete(record.id, 'facilitycolumns')">
|
||||
<a>删除</a>
|
||||
</a-popconfirm>
|
||||
</span>
|
||||
</a-table>
|
||||
</a-tab-pane>
|
||||
</a-tabs>
|
||||
</div>
|
||||
<div class="searchTable" v-if="modal == 'equdata'">
|
||||
<a-tabs @change="equChangeTab">
|
||||
<a-tab-pane tab="机动装备" key="机动装备" :forceRender="true">
|
||||
<a-form layout="inline">
|
||||
<a-row :gutter="24">
|
||||
<a-col :md="10" :sm="10">
|
||||
<a-form-item label="机动装备名称:" :label-col="{ span: 9 }" :wrapper-col="{ span: 15 }">
|
||||
<a-input placeholder="请输入机动装备名称" v-model="queryParam.weatherName"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :md="3" :sm="3">
|
||||
<a-button type="ok" @click="searchQuery">查询</a-button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
<a-table class="protable" ref="table" size="middle" rowKey="id" :columns="equmotcolumns"
|
||||
:dataSource="tabledataSource" :pagination="false">
|
||||
<span slot="action" slot-scope="text, record">
|
||||
<a>查看</a>
|
||||
<a-divider type="vertical" />
|
||||
<a-popconfirm title="确定删除吗?" @confirm="() => dataDelete(record.id, 'equmotcolumns')">
|
||||
<a>删除</a>
|
||||
</a-popconfirm>
|
||||
</span>
|
||||
</a-table>
|
||||
</a-tab-pane>
|
||||
<a-tab-pane tab="防护装备" key="防护装备" :forceRender="true">
|
||||
<a-form layout="inline">
|
||||
<a-row :gutter="24">
|
||||
<a-col :md="10" :sm="10">
|
||||
<a-form-item label="防护装备名称:" :label-col="{ span: 9 }" :wrapper-col="{ span: 15 }">
|
||||
<a-input placeholder="请输入防护装备名称" v-model="queryParam.weatherName"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :md="3" :sm="3">
|
||||
<a-button type="ok" @click="searchQuery">查询</a-button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
<a-table class="protable" ref="table" size="middle" rowKey="id" :columns="equprocolumns"
|
||||
:dataSource="tabledataSource" :pagination="false">
|
||||
<span slot="action" slot-scope="text, record">
|
||||
<a>查看</a>
|
||||
<a-divider type="vertical" />
|
||||
<a-popconfirm title="确定删除吗?" @confirm="() => dataDelete(record.id, 'equprocolumns')">
|
||||
<a>删除</a>
|
||||
</a-popconfirm>
|
||||
</span>
|
||||
</a-table>
|
||||
</a-tab-pane>
|
||||
</a-tabs>
|
||||
</div>
|
||||
<div class="searchTable" v-if="modal == 'sysuser'">
|
||||
<a-form layout="inline">
|
||||
<a-row :gutter="24">
|
||||
<a-col :md="7" :sm="7">
|
||||
<a-form-item label="用户名:" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }">
|
||||
<a-input placeholder="请输入用户名" v-model="queryParam.username"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :md="3" :sm="3">
|
||||
<a-button type="ok" @click="searchQuery">查询</a-button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
<a-table class="protable" ref="table" size="middle" rowKey="id" :columns="sysusercolumns"
|
||||
:dataSource="tabledataSource" :pagination="false">
|
||||
<span slot="action" slot-scope="text, record">
|
||||
<a-popconfirm title="确定删除吗?" @confirm="() => dataDelete(record.id, 'sysusercolumns')">
|
||||
<a>删除</a>
|
||||
</a-popconfirm>
|
||||
</span>
|
||||
</a-table>
|
||||
</div>
|
||||
<div class="userroles" v-if="modal == 'roleops'">
|
||||
<div v-for="(roleitem, roleindex) in userroles" :key="roleindex" class="panels">
|
||||
<div class="rolesname">{{ roleitem }}</div>
|
||||
<a-checkbox v-for="(role, rolekey) in rolesOptions" :key="rolekey" :value="role">{{ role }}</a-checkbox>
|
||||
</div>
|
||||
</div>
|
||||
<div class="userroles" v-if="modal == 'gisops'">
|
||||
<div v-for="(gisitem, gisindex) in userroles" :key="gisindex" class="panels">
|
||||
<div class="rolesname">{{ gisitem }}</div>
|
||||
<a-checkbox v-for="(gis, giskey) in gisOptions" :key="giskey" :value="gis">{{ gis }}</a-checkbox>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footerButton" v-if="hasfooterButton">
|
||||
<a-button type="cannel" @click="closeModal">取消</a-button>
|
||||
<a-button type="ok" @click="buttonOk">确定</a-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { CONTENT_WORD } from './config'
|
||||
import { getAction, postAction } from '@/api/manage'
|
||||
export default {
|
||||
name: "Overview",
|
||||
props: {
|
||||
spliter: {
|
||||
type: String,
|
||||
required: false,
|
||||
default: ','
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
title: "",
|
||||
modal: '',
|
||||
modeChoosename1: '',
|
||||
CONTENT_WORD: {},
|
||||
showModal: false,
|
||||
hasfooterButton: false,
|
||||
selectmodeIdT: 1,
|
||||
selectmodeIdB: 1,
|
||||
modeWidth: '700px',
|
||||
modeHeight: '530px',
|
||||
margintop: '230px',
|
||||
queryParam: {},
|
||||
tabaldataurl: '',
|
||||
deldataurl: '',
|
||||
editmenuid: 0,
|
||||
arrayValue: [],
|
||||
userroles: ['开发维护者', '研究使用者', '普通用户者'],
|
||||
rolesOptions: ['源项分析', '扩散分析', '剂量计算', '剂量评估', '路径优化', '报表展示', '场景选择', '新建工程', '打开工程', '数据管理', '系统管理', 'GIS工具箱'],
|
||||
gisOptions: ['地图更换', '放大', '缩小', '标注', '空间测量', '点位测量', '面积测量', '水平距离测量'],
|
||||
//打开工程表头
|
||||
projectcolumns: [
|
||||
{ title: '序号', dataIndex: '', key: 'rowIndex', width: "50", align: "center", customRender: function (t, r, index) { return parseInt(index) + 1; } },
|
||||
{ title: '工程名称', align: 'center', dataIndex: 'engineeringName' },
|
||||
{ title: '场景类型', align: 'center', dataIndex: 'sceneType' },
|
||||
{ title: '创建人', align: 'center', dataIndex: 'createBy' },
|
||||
{ title: '创建时间', align: 'center', dataIndex: 'createTime' },
|
||||
{ title: '存放位置', align: 'center', dataIndex: 'engineeringPath' },
|
||||
{ title: '备注', align: 'center', dataIndex: 'remark' },
|
||||
{ title: '操作', dataIndex: 'action', align: "center", scopedSlots: { customRender: 'action' }, },
|
||||
],
|
||||
//气象历史数据
|
||||
wenthercolumns: [
|
||||
{ title: '序号', dataIndex: '', key: 'rowIndex', width: "50", align: "center", customRender: function (t, r, index) { return parseInt(index) + 1; } },
|
||||
{ title: '气象名称', align: 'center', dataIndex: 'weatherName', },
|
||||
{ title: '类别', align: 'center', dataIndex: 'weatherType' },
|
||||
{ title: '气象时间', align: 'center', dataIndex: 'weatherTime' },
|
||||
{ title: '上传日期', align: 'center', dataIndex: 'createTime' },
|
||||
{ title: '文件路径', align: 'center', dataIndex: 'filePath' },
|
||||
{ title: '操作', dataIndex: 'action', align: "center", scopedSlots: { customRender: 'action' }, },
|
||||
],
|
||||
//气象预报数据
|
||||
forecastcolumns: [
|
||||
{ title: '序号', dataIndex: '', key: 'rowIndex', width: "50", align: "center", customRender: function (t, r, index) { return parseInt(index) + 1; } },
|
||||
{ title: '气象名称', align: 'center', dataIndex: 'forecastName', },
|
||||
{ title: '采集时间', align: 'center', dataIndex: 'gatherTime' },
|
||||
{ title: '上传日期', align: 'center', dataIndex: 'createTime' },
|
||||
{ title: '文件路径', align: 'center', dataIndex: 'forecastPath' },
|
||||
{ title: '操作', dataIndex: 'action', align: "center", scopedSlots: { customRender: 'action' }, },
|
||||
],
|
||||
//核素模块数据
|
||||
nuclidecolumns: [
|
||||
{ title: '序号', dataIndex: '', key: 'rowIndex', width: "50", align: "center", customRender: function (t, r, index) { return parseInt(index) + 1; } },
|
||||
{ title: 'xx名称', align: 'center', dataIndex: 'nuclideName', },
|
||||
{ title: 'Conc.[mBq/m^3]', align: 'center', dataIndex: 'conc' },
|
||||
{ title: 'Uncertainty', align: 'center', dataIndex: 'uncertainty' },
|
||||
{ title: 'MDC[mBq/m^3]', align: 'center', dataIndex: 'mdc' },
|
||||
{ title: '操作', dataIndex: 'action', align: "center", scopedSlots: { customRender: 'action' }, },
|
||||
],
|
||||
//WQ类型数据
|
||||
weaponcolumns: [
|
||||
{ title: '序号', dataIndex: '', key: 'rowIndex', width: "50", align: "center", customRender: function (t, r, index) { return parseInt(index) + 1; } },
|
||||
{ title: 'WQ名称', align: 'center', dataIndex: 'weaponName', },
|
||||
{ title: '裂变材料', align: 'center', dataIndex: 'fission' },
|
||||
{ title: '分凝温度', align: 'center', dataIndex: 'condensationT' },
|
||||
{ title: '分凝时间', align: 'center', dataIndex: 'condensationTime' },
|
||||
{ title: '操作', dataIndex: 'action', align: "center", scopedSlots: { customRender: 'action' }, },
|
||||
],
|
||||
//地形信息数据
|
||||
topographycolumns: [
|
||||
{ title: '序号', dataIndex: '', key: 'rowIndex', width: "50", align: "center", customRender: function (t, r, index) { return parseInt(index) + 1; } },
|
||||
{ title: '地形名称', align: 'center', dataIndex: 'topographyName', },
|
||||
{ title: '上传时间', align: 'center', dataIndex: 'createTime' },
|
||||
{ title: '文件路径', align: 'center', dataIndex: 'topographyPath' },
|
||||
{ title: '备注', align: 'center', dataIndex: 'remark' },
|
||||
{ title: '操作', dataIndex: 'action', align: "center", scopedSlots: { customRender: 'action' }, },
|
||||
],
|
||||
//城市目标数据
|
||||
citycolumns: [
|
||||
{ title: '序号', dataIndex: '', key: 'rowIndex', width: "50", align: "center", customRender: function (t, r, index) { return parseInt(index) + 1; } },
|
||||
{ title: '城市名称', align: 'center', dataIndex: 'cityName', },
|
||||
{ title: '行政区', align: 'center', dataIndex: 'district' },
|
||||
{ title: '经维度', align: 'center', dataIndex: 'cityLon', customRender: function (t, r, index) { return r.cityLon + ' , ' + r.cityLat; } },
|
||||
{ title: '备注', align: 'center', dataIndex: 'remark' },
|
||||
{ title: '操作', dataIndex: 'action', align: "center", scopedSlots: { customRender: 'action' }, },
|
||||
],
|
||||
//设施目标数据
|
||||
facilitycolumns: [
|
||||
{ title: '序号', dataIndex: '', key: 'rowIndex', width: "50", align: "center", customRender: function (t, r, index) { return parseInt(index) + 1; } },
|
||||
{ title: '设施名称', align: 'center', dataIndex: 'facilityName', },
|
||||
{ title: '设施类型', align: 'center', dataIndex: 'facilityType' },
|
||||
{ title: '国家/地区', align: 'center', dataIndex: 'facilityArea' },
|
||||
{ title: '经维度', align: 'center', dataIndex: 'cityLon', customRender: function (t, r, index) { return r.facilityLon + ' , ' + r.facilityLat; } },
|
||||
{ title: '海拔', align: 'center', dataIndex: 'elevation' },
|
||||
{ title: '操作', dataIndex: 'action', align: "center", scopedSlots: { customRender: 'action' }, },
|
||||
],
|
||||
//城市目标数据
|
||||
equmotcolumns: [
|
||||
{ title: '序号', dataIndex: '', key: 'rowIndex', width: "50", align: "center", customRender: function (t, r, index) { return parseInt(index) + 1; } },
|
||||
{ title: '机动装备名称', align: 'center', dataIndex: 'motorName', },
|
||||
{ title: '类型', align: 'center', dataIndex: 'motorType' },
|
||||
{ title: '速度', align: 'center', dataIndex: 'speed' },
|
||||
{ title: '备注', align: 'center', dataIndex: 'remark' },
|
||||
{ title: '操作', dataIndex: 'action', align: "center", scopedSlots: { customRender: 'action' }, },
|
||||
],
|
||||
//设施目标数据
|
||||
equprocolumns: [
|
||||
{ title: '序号', dataIndex: '', key: 'rowIndex', width: "50", align: "center", customRender: function (t, r, index) { return parseInt(index) + 1; } },
|
||||
{ title: '防护装备名称', align: 'center', dataIndex: 'protectionName', },
|
||||
{ title: '防护等级', align: 'center', dataIndex: 'protectionLevel' },
|
||||
{ title: '辐射屏蔽率', align: 'center', dataIndex: 'protectionRate' },
|
||||
{ title: '备注', align: 'center', dataIndex: 'remark' },
|
||||
{ title: '操作', dataIndex: 'action', align: "center", scopedSlots: { customRender: 'action' }, },
|
||||
],
|
||||
//用户管理
|
||||
sysusercolumns: [
|
||||
{ title: '序号', dataIndex: '', key: 'rowIndex', width: "50", align: "center", customRender: function (t, r, index) { return parseInt(index) + 1; } },
|
||||
{ title: '用户名', align: 'center', dataIndex: 'username', },
|
||||
{ title: '姓名', align: 'center', dataIndex: 'realname' },
|
||||
{ title: '所属角色', align: 'center', dataIndex: 'roleName' },
|
||||
{ title: '操作', dataIndex: 'action', align: "center", scopedSlots: { customRender: 'action' }, },
|
||||
],
|
||||
tabledataSource: [],
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
},
|
||||
created() {
|
||||
},
|
||||
mounted() {
|
||||
this.content_word = CONTENT_WORD
|
||||
},
|
||||
methods: {
|
||||
selectMode(type, modeid) {
|
||||
if (type == 't') this.selectmodeIdT = modeid
|
||||
else if (type == 'b') this.selectmodeIdB = modeid
|
||||
|
||||
},
|
||||
menuCilck(menuid) {
|
||||
this.hasfooterButton = false
|
||||
this.editmenuid = menuid
|
||||
if (menuid == 1) {
|
||||
this.title = '场景及模式选择'
|
||||
this.modal = 'modeChoose'
|
||||
this.resetMode('700px', '530px')
|
||||
}
|
||||
else if (menuid == 2) {
|
||||
this.hasfooterButton = true
|
||||
this.title = '新建工程'
|
||||
this.modal = 'newproject'
|
||||
this.resetMode('700px', '480px')
|
||||
}
|
||||
else if (menuid == 3) {
|
||||
this.hasfooterButton = true
|
||||
this.title = '打开工程'
|
||||
this.modal = 'openproject'
|
||||
this.tabaldataurl = '/bizEngineering/list'
|
||||
this.deldataurl = ''
|
||||
this.searchQuery(menuid)
|
||||
this.resetMode('1240px', '540px')
|
||||
}
|
||||
else if (menuid == 12) {
|
||||
this.title = this.content_word.data2name
|
||||
this.modal = 'weatherdata'
|
||||
this.tabaldataurl = '/bizWeatherHistory/bizWeatherHistory/list'
|
||||
this.deldataurl = ''
|
||||
this.searchQuery(menuid)
|
||||
this.resetMode('1200px', '480px')
|
||||
}
|
||||
else if (menuid == 13) {
|
||||
this.title = this.content_word.data3name
|
||||
this.modal = 'nuclidedata'
|
||||
this.tabaldataurl = '/bizNuclide/bizNuclide/list'
|
||||
this.deldataurl = ''
|
||||
this.searchQuery(menuid)
|
||||
this.resetMode('900px', '540px')
|
||||
}
|
||||
else if (menuid == 14) {
|
||||
this.title = this.content_word.data4name
|
||||
this.modal = 'weapondata'
|
||||
this.tabaldataurl = '/bizWeapon/bizWeapon/list'
|
||||
this.deldataurl = '/bizWeapon/bizWeapon/delete'
|
||||
this.deldataurl = ''
|
||||
this.searchQuery(menuid)
|
||||
this.resetMode('900px', '540px')
|
||||
}
|
||||
else if (menuid == 15) {
|
||||
this.title = this.content_word.data5name
|
||||
this.modal = 'topographydata'
|
||||
this.tabaldataurl = '/bizTopographyInfo/bizTopographyInfo/list'
|
||||
this.deldataurl = '/bizTopographyInfo/bizTopographyInfo/delete'
|
||||
this.deldataurl = ''
|
||||
this.searchQuery(menuid)
|
||||
this.resetMode('1100px', '540px')
|
||||
}
|
||||
else if (menuid == 16) {
|
||||
this.title = this.content_word.data6name
|
||||
this.modal = 'citydata'
|
||||
this.tabaldataurl = '/bizCityAim/bizCityAim/list'
|
||||
this.deldataurl = '/bizCityAim/bizCityAim/delete'
|
||||
this.searchQuery(menuid)
|
||||
this.resetMode('900px', '540px')
|
||||
}
|
||||
else if (menuid == 17) {
|
||||
this.title = this.content_word.data7name
|
||||
this.modal = 'equdata'
|
||||
this.tabaldataurl = '/bizEquipmentMotor/bizEquipmentMotor/list'
|
||||
this.deldataurl = '/bizEquipmentMotor/bizEquipmentMotor/delete'
|
||||
this.searchQuery(menuid)
|
||||
this.resetMode('900px', '540px')
|
||||
}
|
||||
else if (menuid == 21) {
|
||||
this.title = this.content_word.system1name
|
||||
this.modal = 'sysuser'
|
||||
this.tabaldataurl = '/sys/user/list'
|
||||
this.deldataurl = '/sys/user/delete'
|
||||
this.searchQuery(menuid)
|
||||
this.resetMode('900px', '540px')
|
||||
}
|
||||
else if (menuid == 22) {
|
||||
this.title = this.content_word.system2name
|
||||
this.modal = 'roleops'
|
||||
this.resetMode('800px', '540px')
|
||||
this.hasfooterButton = true
|
||||
// getAction('/bizRole/bizRole/list').then((res) => {
|
||||
// if (res.success) {
|
||||
// this.userrolesdata = res.result.records
|
||||
// }
|
||||
// })
|
||||
}
|
||||
else if (menuid == 23) {
|
||||
this.title = this.content_word.system3name
|
||||
this.modal = 'gisops'
|
||||
this.resetMode('800px', '540px')
|
||||
this.hasfooterButton = true
|
||||
// getAction('/bizRole/bizRole/list').then((res) => {
|
||||
// if (res.success) {
|
||||
// this.userrolesdata = res.result.records
|
||||
// }
|
||||
// })
|
||||
}
|
||||
},
|
||||
resetMode(width, height) {
|
||||
this.modeWidth = width
|
||||
this.modeHeight = height
|
||||
this.showModal = true
|
||||
},
|
||||
closeModal() {
|
||||
this.showModal = false
|
||||
},
|
||||
buttonOk() {
|
||||
this.showModal = false
|
||||
if (this.editmenuid == 22) {
|
||||
// this.userrolesdata
|
||||
|
||||
}
|
||||
else if (this.editmenuid == 23) {
|
||||
|
||||
}
|
||||
|
||||
},
|
||||
dataDelete() {
|
||||
|
||||
},
|
||||
wentherChangeTab(key) {
|
||||
if (key == '气象数据') {
|
||||
this.tabaldataurl = '/bizWeatherHistory/bizWeatherHistory/list'
|
||||
this.searchQuery()
|
||||
}
|
||||
else {
|
||||
this.tabaldataurl = '/bizWeatherForecast/bizWeatherForecast/list'
|
||||
this.searchQuery()
|
||||
}
|
||||
},
|
||||
topographyChangeTab(key) {
|
||||
if (key == '地理数据') {
|
||||
this.tabaldataurl = '/bizTopographyInfo/bizTopographyInfo/list'
|
||||
this.deldataurl = '/bizFacilityAim/bizFacilityAim/delete'
|
||||
this.searchQuery()
|
||||
}
|
||||
else {
|
||||
}
|
||||
},
|
||||
cityChangeTab(key) {
|
||||
if (key == '城市目标') {
|
||||
this.tabaldataurl = '/bizCityAim/bizCityAim/list'
|
||||
this.deldataurl = '/bizCityAim/bizCityAim/delete'
|
||||
this.searchQuery()
|
||||
}
|
||||
else {
|
||||
this.tabaldataurl = '/bizFacilityAim/bizFacilityAim/list'
|
||||
this.deldataurl = '/bizFacilityAim/bizFacilityAim/delete'
|
||||
this.searchQuery()
|
||||
}
|
||||
},
|
||||
equChangeTab(key) {
|
||||
if (key == '机动装备') {
|
||||
this.tabaldataurl = '/bizEquipmentMotor/bizEquipmentMotor/list'
|
||||
this.deldataurl = '/bizEquipmentMotor/bizEquipmentMotor/delete'
|
||||
this.searchQuery()
|
||||
}
|
||||
else {
|
||||
this.tabaldataurl = '/bizEquipmentProtection/bizEquipmentProtection/list'
|
||||
this.deldataurl = '/bizEquipmentProtection/bizEquipmentProtection/delete'
|
||||
this.searchQuery()
|
||||
}
|
||||
},
|
||||
searchQuery(menuid) {
|
||||
this.tabledataSource = []
|
||||
getAction(this.tabaldataurl).then((res) => {
|
||||
if (res.success) {
|
||||
if (menuid == 3) {
|
||||
this.tabledataSource = res.result
|
||||
}
|
||||
else {
|
||||
this.tabledataSource = res.result.records
|
||||
}
|
||||
} else {
|
||||
}
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
#overview {
|
||||
.top {
|
||||
width: 100%;
|
||||
height: 37px;
|
||||
background: url(~@/assets/imgs/bg/viewBg.png);
|
||||
position: relative;
|
||||
|
||||
.line {
|
||||
width: 100%;
|
||||
height: 3px;
|
||||
top: 36px;
|
||||
position: absolute;
|
||||
background-image: url(~@/assets/imgs/line.png);
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
.icon {
|
||||
width: 30px;
|
||||
height: 37px;
|
||||
float: left;
|
||||
background: url(~@/assets/imgs/viewicon.png) center center no-repeat;
|
||||
}
|
||||
|
||||
.name {
|
||||
width: 200px;
|
||||
height: 37px;
|
||||
float: left;
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
font-stretch: normal;
|
||||
letter-spacing: 2px;
|
||||
color: #ffffff;
|
||||
line-height: 32px;
|
||||
}
|
||||
|
||||
.close {
|
||||
width: 30px;
|
||||
height: 37px;
|
||||
float: right;
|
||||
background: url(~@/assets/imgs/close.png) center center no-repeat;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.clickmode {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.main {
|
||||
width: 100%;
|
||||
height: calc(100% - 40px);
|
||||
background-color: #083b67;
|
||||
border: solid 1px #1673cb;
|
||||
|
||||
.footerButton {
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
.form {
|
||||
width: 100%;
|
||||
height: calc(100% - 60px);
|
||||
|
||||
.userroles {
|
||||
margin: 20px;
|
||||
background-color: #073e71;
|
||||
border: solid 1px #1869b6;
|
||||
height: calc(100% - 20px);
|
||||
|
||||
.panels {
|
||||
padding: 0 20px;
|
||||
}
|
||||
|
||||
.rolesname {
|
||||
font-size: 16px;
|
||||
line-height: 50px;
|
||||
letter-spacing: 2px;
|
||||
color: #0bd4f2;
|
||||
border-bottom: solid 1px #1869b6;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.ant-checkbox-wrapper {
|
||||
font-size: 15px;
|
||||
line-height: 36px;
|
||||
letter-spacing: 2px;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.ant-checkbox-inner {
|
||||
background-color: #062d51;
|
||||
border: solid 1px #195b95;
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
.ant-checkbox-checked .ant-checkbox-inner {
|
||||
background-color: #1d79dd;
|
||||
border: solid 1px #1d79dd;
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
.ant-checkbox-wrapper {
|
||||
margin: 0 10px 0 0 !important;
|
||||
min-width: 100px;
|
||||
}
|
||||
}
|
||||
|
||||
.ant-form-item {
|
||||
display: block;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.ant-form-item label {
|
||||
font-size: 16px;
|
||||
line-height: 39px;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.ant-btn.ant-btn-ok {
|
||||
margin-top: 25px;
|
||||
}
|
||||
|
||||
.ant-divider {
|
||||
background: transparent;
|
||||
margin: 0 6px;
|
||||
}
|
||||
|
||||
.modeChoose {
|
||||
.lines {
|
||||
width: 100%;
|
||||
height: 22px;
|
||||
margin-top: 30px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
.leftline {
|
||||
width: 291px;
|
||||
height: 17px;
|
||||
background: url(~@/assets/imgs/leftline.png);
|
||||
}
|
||||
|
||||
.name {
|
||||
width: 120px;
|
||||
text-align: center;
|
||||
font-size: 22px;
|
||||
letter-spacing: 2px;
|
||||
color: #00f6ff;
|
||||
}
|
||||
|
||||
.rightline {
|
||||
width: 291px;
|
||||
height: 17px;
|
||||
background: url(~@/assets/imgs/rightline.png);
|
||||
}
|
||||
}
|
||||
|
||||
.modes {
|
||||
width: 660px;
|
||||
height: 280px;
|
||||
margin-left: calc(50% - 330px);
|
||||
|
||||
.mode {
|
||||
width: 200px;
|
||||
height: 120px;
|
||||
float: left;
|
||||
margin: 20px 10px 0;
|
||||
box-shadow: 0px 4px 6px 0px rgba(0, 0, 0, 0.44);
|
||||
|
||||
.unchoose {
|
||||
width: 180px;
|
||||
height: 24px;
|
||||
margin: 96px 10px 0;
|
||||
font-size: 16px;
|
||||
letter-spacing: 3px;
|
||||
color: #ffffff;
|
||||
text-align: center;
|
||||
background: url(~@/assets/imgs/unchoose16.png) center right no-repeat;
|
||||
}
|
||||
|
||||
.choose {
|
||||
background: url(~@/assets/imgs/choose16.png) center right no-repeat;
|
||||
}
|
||||
}
|
||||
|
||||
.mode1 {
|
||||
background: url(~@/assets/imgs/mode1.png);
|
||||
}
|
||||
|
||||
.mode2 {
|
||||
background: url(~@/assets/imgs/mode2.png);
|
||||
}
|
||||
|
||||
.mode3 {
|
||||
background: url(~@/assets/imgs/mode3.png);
|
||||
}
|
||||
|
||||
.mode4 {
|
||||
background: url(~@/assets/imgs/mode4.png);
|
||||
}
|
||||
|
||||
.mode5 {
|
||||
background: url(~@/assets/imgs/mode5.png);
|
||||
}
|
||||
|
||||
.mode6 {
|
||||
background: url(~@/assets/imgs/mode5.png);
|
||||
}
|
||||
}
|
||||
|
||||
.modes2 {
|
||||
width: 660px;
|
||||
height: 40px;
|
||||
margin-left: calc(50% - 330px);
|
||||
|
||||
.mode {
|
||||
width: 304px;
|
||||
height: 40px;
|
||||
float: left;
|
||||
margin: 20px 10px 0;
|
||||
background-color: #042b4f;
|
||||
box-shadow: 0px 4px 6px 0px rgba(0, 0, 0, 0.44);
|
||||
border: solid 1px #0892da;
|
||||
|
||||
.unchoose {
|
||||
width: 280px;
|
||||
height: 24px;
|
||||
margin: 7px 10px 0;
|
||||
font-size: 16px;
|
||||
letter-spacing: 3px;
|
||||
color: #ffffff;
|
||||
text-align: left;
|
||||
background: url(~@/assets/imgs/unchoose20.png) center right no-repeat;
|
||||
}
|
||||
|
||||
.choose {
|
||||
background: url(~@/assets/imgs/choose20.png) center right no-repeat;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.protable {
|
||||
margin: 10px 20px;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
</style>
|
36
ant-design-vue-jeecg/src/views/dashboard/config.js
Normal file
|
@ -0,0 +1,36 @@
|
|||
export const CONTENT_WORD = {
|
||||
centerTitle: '计算软件计算软件计算软件计算软件',
|
||||
modalname1: '源项分析',
|
||||
modalname2: '扩散分析',
|
||||
modalname3: '剂量计算',
|
||||
modalname4: '剂量评估',
|
||||
modalname5: '路径优化',
|
||||
modalname6: '报表展示',
|
||||
modeChoosename1: '场景选择',
|
||||
modename1: 'HXX',
|
||||
modename2: 'HXX',
|
||||
modename3: 'HXX',
|
||||
modename4: '泄露',
|
||||
modename5: '待开发',
|
||||
modename6: '待开发',
|
||||
modeChoosename2: '模式选择',
|
||||
mode2name1: '精细模拟',
|
||||
mode2name2: '快速评估',
|
||||
data1name: '模板参数配置',
|
||||
data2name: '气象数据管理',
|
||||
data3name: 'xx模块',
|
||||
data4name: 'WQ类型数据管理',
|
||||
data5name: '地形数据管理',
|
||||
data6name: '目标管理',
|
||||
data7name: '机动与防护装备管理',
|
||||
system1name: '用户管理',
|
||||
system2name: '角色管理',
|
||||
system3name: 'GIS工具箱管理',
|
||||
system4name: '服务器监控',
|
||||
system5name: '帮助文档',
|
||||
gis1name: '待开发',
|
||||
gis2name: '待开发',
|
||||
gis3name: '待开发',
|
||||
gis4name: '待开发',
|
||||
gis5name: '待开发',
|
||||
}
|
|
@ -1,214 +1,177 @@
|
|||
<template>
|
||||
<div class="main">
|
||||
<a-form-model class="user-layout-login" @keyup.enter.native="handleSubmit">
|
||||
<a-tabs :activeKey="customActiveKey" :tabBarStyle="{ textAlign: 'center', borderBottom: 'unset' }" @change="handleTabClick">
|
||||
<a-tab-pane key="tab1" tab="账号密码登录">
|
||||
<login-account ref="alogin" @validateFail="validateFail" @success="requestSuccess" @fail="requestFailed"></login-account>
|
||||
</a-tab-pane>
|
||||
|
||||
<a-tab-pane key="tab2" tab="手机号登录">
|
||||
<login-phone ref="plogin" @validateFail="validateFail" @success="requestSuccess" @fail="requestFailed"></login-phone>
|
||||
</a-tab-pane>
|
||||
</a-tabs>
|
||||
|
||||
<a-form-model-item>
|
||||
<a-checkbox @change="handleRememberMeChange" default-checked>自动登录</a-checkbox>
|
||||
<router-link :to="{ name: 'alteration'}" class="forge-password" style="float: right;">
|
||||
忘记密码
|
||||
</router-link>
|
||||
<router-link :to="{ name: 'register'}" class="forge-password" style="float: right;margin-right: 10px" >
|
||||
注册账户
|
||||
</router-link>
|
||||
</a-form-model-item>
|
||||
|
||||
<a-form-item style="margin-top:24px">
|
||||
<a-button size="large" type="primary" htmlType="submit" class="login-button" :loading="loginBtn" @click.stop.prevent="handleSubmit" :disabled="loginBtn">确定
|
||||
<a-form-item>
|
||||
<div class="loginlogo">计算软件计算软件计算软件计算软件</div>
|
||||
</a-form-item>
|
||||
<a-form-item>
|
||||
<div class="logintitle">用户登录</div>
|
||||
</a-form-item>
|
||||
<a-form-item>
|
||||
<div class="loginLabel">用户名:</div>
|
||||
<a-input class="logininput" v-model="model.username" />
|
||||
</a-form-item>
|
||||
<a-form-item>
|
||||
<div class="loginLabel">密码:</div>
|
||||
<a-input class="logininput" v-model="model.password" type="password" />
|
||||
</a-form-item>
|
||||
<a-form-item>
|
||||
<div class="loginLabel">角色选择:</div>
|
||||
<a-input class="logininput" v-model="model.inputCode" />
|
||||
</a-form-item>
|
||||
<a-form-item>
|
||||
<a-button type="primary" htmlType="submit" class="login-button clickmode" :loading="loginBtn"
|
||||
@click.stop.prevent="handleSubmit" :disabled="loginBtn">确定
|
||||
</a-button>
|
||||
</a-form-item>
|
||||
|
||||
</a-form-model>
|
||||
|
||||
<two-step-captcha v-if="requiredTwoStepCaptcha" :visible="stepCaptchaVisible" @success="stepCaptchaSuccess" @cancel="stepCaptchaCancel"></two-step-captcha>
|
||||
<login-select-tenant ref="loginSelect" @success="loginSelectOk"></login-select-tenant>
|
||||
<third-login ref="thirdLogin"></third-login>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Vue from 'vue'
|
||||
import { ACCESS_TOKEN, ENCRYPTED_STRING } from '@/store/mutation-types'
|
||||
import ThirdLogin from './third/ThirdLogin'
|
||||
import LoginSelectTenant from './LoginSelectTenant'
|
||||
import TwoStepCaptcha from '@/components/tools/TwoStepCaptcha'
|
||||
import { getEncryptedString } from '@/utils/encryption/aesEncrypt'
|
||||
import { timeFix } from '@/utils/util'
|
||||
|
||||
import LoginAccount from './LoginAccount'
|
||||
import LoginPhone from './LoginPhone'
|
||||
import { mapActions } from 'vuex'
|
||||
|
||||
export default {
|
||||
components: {
|
||||
LoginSelectTenant,
|
||||
TwoStepCaptcha,
|
||||
ThirdLogin,
|
||||
LoginAccount,
|
||||
LoginPhone
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
customActiveKey: 'tab1',
|
||||
rememberMe: true,
|
||||
loginBtn: false,
|
||||
requiredTwoStepCaptcha: false,
|
||||
stepCaptchaVisible: false,
|
||||
encryptedString:{
|
||||
key:"",
|
||||
iv:"",
|
||||
},
|
||||
}
|
||||
},
|
||||
created() {
|
||||
Vue.ls.remove(ACCESS_TOKEN)
|
||||
this.getRouterData();
|
||||
this.rememberMe = true
|
||||
},
|
||||
methods:{
|
||||
handleTabClick(key){
|
||||
this.customActiveKey = key
|
||||
components: {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
rememberMe: false,
|
||||
loginBtn: false,
|
||||
model: {
|
||||
username: 'admin',
|
||||
password: '123456',
|
||||
inputCode: '请选择'
|
||||
},
|
||||
handleRememberMeChange(e){
|
||||
this.rememberMe = e.target.checked
|
||||
},
|
||||
/**跳转到登录页面的参数-账号获取*/
|
||||
getRouterData(){
|
||||
this.$nextTick(() => {
|
||||
let temp = this.$route.params.username || this.$route.query.username || ''
|
||||
if (temp) {
|
||||
this.$refs.alogin.acceptUsername(temp)
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
//登录
|
||||
handleSubmit () {
|
||||
this.loginBtn = true;
|
||||
if (this.customActiveKey === 'tab1') {
|
||||
// 使用账户密码登录
|
||||
this.$refs.alogin.handleLogin(this.rememberMe)
|
||||
} else {
|
||||
//手机号码登录
|
||||
this.$refs.plogin.handleLogin(this.rememberMe)
|
||||
}
|
||||
},
|
||||
// 校验失败
|
||||
validateFail(){
|
||||
this.loginBtn = false;
|
||||
},
|
||||
// 登录后台成功
|
||||
requestSuccess(loginResult){
|
||||
this.$refs.loginSelect.show(loginResult)
|
||||
},
|
||||
//登录后台失败
|
||||
requestFailed (err) {
|
||||
let description = ((err.response || {}).data || {}).message || err.message || "请求出现错误,请稍后再试"
|
||||
this.$notification[ 'error' ]({
|
||||
message: '登录失败',
|
||||
description: description,
|
||||
duration: 4,
|
||||
});
|
||||
//账户密码登录错误后更新验证码
|
||||
if(this.customActiveKey === 'tab1' && description.indexOf('密码错误')>0){
|
||||
this.$refs.alogin.handleChangeCheckCode()
|
||||
}
|
||||
this.loginBtn = false;
|
||||
},
|
||||
loginSelectOk(){
|
||||
this.loginSuccess()
|
||||
},
|
||||
//登录成功
|
||||
loginSuccess () {
|
||||
this.$router.push({ path: "/dashboard/analysis" }).catch(()=>{
|
||||
console.log('登录跳转首页出错,这个错误从哪里来的')
|
||||
})
|
||||
this.$notification.success({
|
||||
message: '欢迎',
|
||||
description: `${timeFix()},欢迎回来`,
|
||||
});
|
||||
},
|
||||
|
||||
stepCaptchaSuccess () {
|
||||
this.loginSuccess()
|
||||
},
|
||||
stepCaptchaCancel () {
|
||||
this.Logout().then(() => {
|
||||
this.loginBtn = false
|
||||
this.stepCaptchaVisible = false
|
||||
})
|
||||
},
|
||||
//获取密码加密规则
|
||||
getEncrypte(){
|
||||
var encryptedString = Vue.ls.get(ENCRYPTED_STRING);
|
||||
if(encryptedString == null){
|
||||
getEncryptedString().then((data) => {
|
||||
this.encryptedString = data
|
||||
});
|
||||
}else{
|
||||
this.encryptedString = encryptedString;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
created() {
|
||||
Vue.ls.remove(ACCESS_TOKEN)
|
||||
},
|
||||
methods: {
|
||||
...mapActions(['Login']),
|
||||
//登录
|
||||
handleSubmit() {
|
||||
this.loginBtn = true;
|
||||
let loginParams = {
|
||||
username: 'admin',
|
||||
password: '123456',
|
||||
captcha: '',
|
||||
checkKey: new Date().getTime(),
|
||||
remember_me: this.rememberMe,
|
||||
}
|
||||
this.Login(loginParams).then((res) => {
|
||||
this.loginSuccess()
|
||||
}).catch((err) => {
|
||||
this.requestFailed(err)
|
||||
});
|
||||
},
|
||||
//登录后台失败
|
||||
requestFailed(err) {
|
||||
let description = ((err.response || {}).data || {}).message || err.message || "请求出现错误,请稍后再试"
|
||||
this.$notification['error']({
|
||||
message: '登录失败',
|
||||
description: description,
|
||||
duration: 4,
|
||||
});
|
||||
//账户密码登录错误后更新验证码
|
||||
if (this.customActiveKey === 'tab1' && description.indexOf('密码错误') > 0) {
|
||||
this.$refs.alogin.handleChangeCheckCode()
|
||||
}
|
||||
this.loginBtn = false;
|
||||
},
|
||||
//登录成功
|
||||
loginSuccess() {
|
||||
this.$router.push({ path: "/dashboard/analysis" }).catch(() => {
|
||||
})
|
||||
this.$notification.success({
|
||||
message: '欢迎',
|
||||
description: `${timeFix()},欢迎回来`,
|
||||
});
|
||||
},
|
||||
//获取密码加密规则
|
||||
getEncrypte() {
|
||||
var encryptedString = Vue.ls.get(ENCRYPTED_STRING);
|
||||
if (encryptedString == null) {
|
||||
getEncryptedString().then((data) => {
|
||||
this.encryptedString = data
|
||||
});
|
||||
} else {
|
||||
this.encryptedString = encryptedString;
|
||||
}
|
||||
},
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
.user-layout-login {
|
||||
label {
|
||||
font-size: 14px;
|
||||
}
|
||||
.getCaptcha {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
.forge-password {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
button.login-button {
|
||||
padding: 0 15px;
|
||||
font-size: 16px;
|
||||
height: 40px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.user-login-other {
|
||||
text-align: left;
|
||||
margin-top: 24px;
|
||||
line-height: 22px;
|
||||
|
||||
.item-icon {
|
||||
font-size: 24px;
|
||||
color: rgba(0,0,0,.2);
|
||||
margin-left: 16px;
|
||||
vertical-align: middle;
|
||||
cursor: pointer;
|
||||
transition: color .3s;
|
||||
|
||||
&:hover {
|
||||
color: #1890ff;
|
||||
}
|
||||
}
|
||||
|
||||
.register {
|
||||
float: right;
|
||||
}
|
||||
}
|
||||
.user-layout-login {
|
||||
width: 620px;
|
||||
height: 620px;
|
||||
background: url(~@/assets/imgs/bg/loginBg.png) center bottom no-repeat;
|
||||
position: absolute;
|
||||
left: calc(50vw - 310px);
|
||||
top: calc(50vh - 350px);
|
||||
.clickmode{
|
||||
cursor: pointer;
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
.valid-error .ant-select-selection__placeholder{
|
||||
color: #f5222d;
|
||||
.loginlogo {
|
||||
height: 73PX;
|
||||
background: url(~@/assets/imgs/loginlogo.png) left center no-repeat;
|
||||
font-family: 'Microsoft YaHei';
|
||||
font-size: 30px;
|
||||
letter-spacing: 2px;
|
||||
color: #ffffff;
|
||||
padding: 10px 0 0 105px;
|
||||
}
|
||||
|
||||
.logintitle {
|
||||
font-family: 'Microsoft YaHei';
|
||||
font-size: 28px;
|
||||
font-weight: bold;
|
||||
font-style: italic;
|
||||
font-stretch: normal;
|
||||
line-height: 39px;
|
||||
letter-spacing: 3px;
|
||||
color: #ffffff;
|
||||
padding-left: 130px;
|
||||
}
|
||||
|
||||
.loginLabel {
|
||||
|
||||
font-family: 'Microsoft YaHei';
|
||||
font-size: 18px;
|
||||
letter-spacing: 2px;
|
||||
color: #ffffff;
|
||||
padding-left: 130px;
|
||||
}
|
||||
|
||||
.logininput {
|
||||
background: url(~@/assets/imgs/bg/lginputBg.png) left center no-repeat;
|
||||
width: 381px;
|
||||
height: 50px;
|
||||
border: none !important;
|
||||
margin: 4px 0 -4px 120px;
|
||||
padding-left: 14px;
|
||||
color: #00deff;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
|
||||
button.login-button {
|
||||
padding: 0 15px;
|
||||
font-size: 16px;
|
||||
width: 375px;
|
||||
height: 50px;
|
||||
background: url(~@/assets/imgs/bg/loginbtnBg.png) left center no-repeat;
|
||||
margin: 20px 0 0 120px;
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -108,7 +108,7 @@ module.exports = {
|
|||
/* 注意:jeecgboot前端做了改造,此处不需要配置跨域和后台接口(只需要改.env相关配置文件即可)
|
||||
issues/3462 很多人此处做了配置,导致刷新前端404问题,请一定注意*/
|
||||
'/jeecg-boot': {
|
||||
target: 'http://localhost:8080',
|
||||
target: 'http://192.168.0.7:8080',
|
||||
ws: false,
|
||||
changeOrigin: true
|
||||
},
|
||||
|
|
|
@ -0,0 +1,102 @@
|
|||
package org.jeecg.modules.listener;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import org.apache.commons.io.filefilter.FileFilterUtils;
|
||||
import org.apache.commons.io.filefilter.HiddenFileFilter;
|
||||
import org.apache.commons.io.filefilter.IOFileFilter;
|
||||
import org.apache.commons.io.monitor.FileAlterationListenerAdaptor;
|
||||
import org.apache.commons.io.monitor.FileAlterationMonitor;
|
||||
import org.apache.commons.io.monitor.FileAlterationObserver;
|
||||
|
||||
|
||||
public class FileListener extends FileAlterationListenerAdaptor {
|
||||
/**
|
||||
* 文件创建执行
|
||||
*/
|
||||
public void onFileCreate(File file) {
|
||||
//也可以打印日志
|
||||
System.out.println("文件[新建]:" + file.getAbsolutePath());
|
||||
}
|
||||
/**
|
||||
* 文件创建修改
|
||||
*/
|
||||
public void onFileChange(File file) {
|
||||
System.out.println("文件[修改]:" + file.getAbsolutePath());
|
||||
//目标文件路径
|
||||
String str = "d:\\test\\est.txt";
|
||||
//如果被修改的是目标文件,执行自己的业务操作
|
||||
if(str.equals(file.getAbsolutePath())){
|
||||
// try {
|
||||
// readTest.readAW();
|
||||
// } catch (IOException e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 文件删除
|
||||
*/
|
||||
public void onFileDelete(File file) {
|
||||
|
||||
System.out.println("文件[删除]:" + file.getAbsolutePath());
|
||||
}
|
||||
/**
|
||||
* 目录创建
|
||||
*/
|
||||
public void onDirectoryCreate(File directory) {
|
||||
|
||||
System.out.println("[新建]:" + directory.getAbsolutePath());
|
||||
}
|
||||
/**
|
||||
* 目录修改
|
||||
*/
|
||||
public void onDirectoryChange(File directory) {
|
||||
System.out.println("[修改]:" + directory.getAbsolutePath());
|
||||
}
|
||||
/**
|
||||
* 目录删除
|
||||
*/
|
||||
public void onDirectoryDelete(File directory) {
|
||||
|
||||
System.out.println("[删除]:" + directory.getAbsolutePath());
|
||||
}
|
||||
public void onStart(FileAlterationObserver observer) {
|
||||
// TODO Auto-generated method stub
|
||||
super.onStart(observer);
|
||||
}
|
||||
public void onStop(FileAlterationObserver observer) {
|
||||
// TODO Auto-generated method stub
|
||||
super.onStop(observer);
|
||||
}
|
||||
|
||||
public static void main(String[] args) throws Exception{
|
||||
// 监控目录
|
||||
String rootDir = "D://test";
|
||||
// 轮询间隔
|
||||
long interval = TimeUnit.SECONDS.toMillis(1);
|
||||
// 创建过滤器
|
||||
IOFileFilter directories = FileFilterUtils.and(
|
||||
// 只监听文件夹、目录
|
||||
FileFilterUtils.directoryFileFilter(),
|
||||
// 此过滤器接受File隐藏的
|
||||
HiddenFileFilter.VISIBLE);
|
||||
IOFileFilter files = FileFilterUtils.and(
|
||||
// 只监听文件
|
||||
FileFilterUtils.fileFileFilter(),
|
||||
// 只监听文件后缀为txt的文件
|
||||
FileFilterUtils.suffixFileFilter(".txt"));
|
||||
IOFileFilter filter = FileFilterUtils.or(directories, files);
|
||||
// 使用过滤器
|
||||
FileAlterationObserver observer = new FileAlterationObserver(new File(rootDir), filter);
|
||||
//不使用过滤器
|
||||
//FileAlterationObserver observer = new FileAlterationObserver(new File(rootDir));
|
||||
observer.addListener(new FileListener());
|
||||
//创建文件变化监听器
|
||||
FileAlterationMonitor monitor = new FileAlterationMonitor(interval, observer);
|
||||
// 开始监控
|
||||
monitor.start();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
package org.jeecg.modules.listener;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.RandomAccessFile;
|
||||
|
||||
public class ReadTest {
|
||||
//设置变量 记录上次读取位置
|
||||
private long num = 0;
|
||||
|
||||
public void readAW() throws IOException {
|
||||
File file = new File("d://test//est.txt");
|
||||
RandomAccessFile randomAccessFile = new RandomAccessFile(file,"rw");
|
||||
//将文件定位到偏移量所指位置,在该位置发生下一个读取或写入操作
|
||||
randomAccessFile.seek(num);
|
||||
//获取按行读取的数据并落库
|
||||
String s = randomAccessFile.readLine();
|
||||
for(;s!= null;s = randomAccessFile.readLine()){
|
||||
// User user = new User();
|
||||
// user.setUserName(s);
|
||||
// userServer.insertUser(user);
|
||||
}
|
||||
//重新计算偏移量,做下一次读取时的初始偏移量
|
||||
num= randomAccessFile.length();
|
||||
}
|
||||
}
|
|
@ -50,7 +50,7 @@ public class BizCityAimController extends JeecgController<BizCityAim, IBizCityAi
|
|||
@GetMapping(value = "/list")
|
||||
public Result<IPage<BizCityAim>> queryPageList(BizCityAim bizCityAim,
|
||||
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
||||
@RequestParam(name="pageSize", defaultValue="10000") Integer pageSize,
|
||||
HttpServletRequest req) {
|
||||
QueryWrapper<BizCityAim> queryWrapper = QueryGenerator.initQueryWrapper(bizCityAim, req.getParameterMap());
|
||||
Page<BizCityAim> page = new Page<BizCityAim>(pageNo, pageSize);
|
||||
|
|
|
@ -65,7 +65,7 @@ public class BizFacilityAimController extends JeecgController<BizFacilityAim, IB
|
|||
@GetMapping(value = "/list")
|
||||
public Result<IPage<BizFacilityAim>> queryPageList(BizFacilityAim bizFacilityAim,
|
||||
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
||||
@RequestParam(name="pageSize", defaultValue="10000") Integer pageSize,
|
||||
HttpServletRequest req) {
|
||||
QueryWrapper<BizFacilityAim> queryWrapper = QueryGenerator.initQueryWrapper(bizFacilityAim, req.getParameterMap());
|
||||
Page<BizFacilityAim> page = new Page<BizFacilityAim>(pageNo, pageSize);
|
||||
|
|
|
@ -17,7 +17,7 @@ import org.springframework.web.bind.annotation.*;
|
|||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Api(tags="BizEngineering")
|
||||
@Api(tags="工程管理")
|
||||
@RestController
|
||||
@RequestMapping("/bizEngineering")
|
||||
@Slf4j
|
||||
|
@ -34,6 +34,8 @@ public class BizEngineeringController {
|
|||
*
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "工程管理-查询用户所有工程")
|
||||
@ApiOperation(value="工程管理-查询用户所有工程", notes="工程管理-查询用户所有工程")
|
||||
@GetMapping(value = "/list")
|
||||
public Result<List<BizEngineering>> list() {
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
|
@ -64,8 +66,8 @@ public class BizEngineeringController {
|
|||
* @param bizEngineering
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "BizEngineering-添加")
|
||||
@ApiOperation(value="BizEngineering-添加", notes="BizEngineering-添加")
|
||||
@AutoLog(value = "工程管理-添加")
|
||||
@ApiOperation(value="工程管理-添加", notes="工程管理-添加")
|
||||
//@RequiresPermissions("bizWrf:biz_wrf:add")
|
||||
@PostMapping(value = "/add")
|
||||
public Result<String> add(@RequestBody BizEngineering bizEngineering) {
|
||||
|
@ -82,8 +84,8 @@ public class BizEngineeringController {
|
|||
* @param bizEngineering
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "BizEngineering-编辑")
|
||||
@ApiOperation(value="BizEngineering-编辑", notes="BizEngineering-编辑")
|
||||
@AutoLog(value = "工程管理-编辑")
|
||||
@ApiOperation(value="工程管理-编辑", notes="工程管理-编辑")
|
||||
//@RequiresPermissions("bizWrf:biz_wrf:add")
|
||||
@PutMapping(value = "/edit")
|
||||
public Result<String> edit(@RequestBody BizEngineering bizEngineering) {
|
||||
|
@ -107,12 +109,14 @@ public class BizEngineeringController {
|
|||
// }
|
||||
|
||||
/**
|
||||
* 查询选中工程
|
||||
* 查询最新工程
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@GetMapping(value = "/getBizEngineeringByState")
|
||||
public Result<BizEngineering> getBizEngineeringByState() {
|
||||
return Result.ok(bizEngineeringService.getBizEngineeringByState());
|
||||
@AutoLog(value = "工程管理-查询最新工程")
|
||||
@ApiOperation(value="工程管理-查询最新工程", notes="工程管理-查询最新工程")
|
||||
@GetMapping(value = "/getBizEngineeringByTime")
|
||||
public Result<BizEngineering> getBizEngineeringByTime() {
|
||||
return Result.ok(bizEngineeringService.getBizEngineeringByTime());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,5 +4,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
|||
import org.jeecg.modules.project.baseConfig.bizEngineering.entity.BizEngineering;
|
||||
|
||||
public interface IBizEngineeringService extends IService<BizEngineering> {
|
||||
BizEngineering getBizEngineeringByState();
|
||||
BizEngineering getBizEngineeringByTime();
|
||||
}
|
||||
|
|
|
@ -20,7 +20,7 @@ public class BizEngineeringServiceImpl extends ServiceImpl<BizEngineeringMapper,
|
|||
private String baseHome;
|
||||
|
||||
@Override
|
||||
public BizEngineering getBizEngineeringByState(){
|
||||
public BizEngineering getBizEngineeringByTime(){
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
List<BizEngineering> bizEngineerings = this.baseMapper.selectList(new LambdaQueryWrapper<BizEngineering>().
|
||||
eq(BizEngineering::getCreateBy,sysUser.getUsername()).
|
||||
|
|
|
@ -50,7 +50,7 @@ public class BizNuclideController extends JeecgController<BizNuclide, IBizNuclid
|
|||
@GetMapping(value = "/list")
|
||||
public Result<IPage<BizNuclide>> queryPageList(BizNuclide bizNuclide,
|
||||
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
||||
@RequestParam(name="pageSize", defaultValue="10000") Integer pageSize,
|
||||
HttpServletRequest req) {
|
||||
QueryWrapper<BizNuclide> queryWrapper = QueryGenerator.initQueryWrapper(bizNuclide, req.getParameterMap());
|
||||
Page<BizNuclide> page = new Page<BizNuclide>(pageNo, pageSize);
|
||||
|
|
|
@ -0,0 +1,195 @@
|
|||
package org.jeecg.modules.project.baseConfig.bizRole.controller;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
import java.io.IOException;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.net.URLDecoder;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
import org.jeecg.common.system.query.QueryGenerator;
|
||||
import org.jeecg.common.util.oConvertUtils;
|
||||
import org.jeecg.modules.project.baseConfig.bizRole.entity.BizRole;
|
||||
import org.jeecg.modules.project.baseConfig.bizRole.service.IBizRoleService;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import org.jeecgframework.poi.excel.ExcelImportUtil;
|
||||
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
|
||||
import org.jeecgframework.poi.excel.entity.ExportParams;
|
||||
import org.jeecgframework.poi.excel.entity.ImportParams;
|
||||
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
|
||||
import org.jeecg.common.system.base.controller.JeecgController;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.jeecg.common.aspect.annotation.AutoLog;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
|
||||
/**
|
||||
* @Description: Gis和角色权限管理表
|
||||
* @Author: jeecg-boot
|
||||
* @Date: 2023-09-22
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Api(tags="Gis和角色权限管理表")
|
||||
@RestController
|
||||
@RequestMapping("/bizRole/bizRole")
|
||||
@Slf4j
|
||||
public class BizRoleController extends JeecgController<BizRole, IBizRoleService> {
|
||||
@Autowired
|
||||
private IBizRoleService bizRoleService;
|
||||
|
||||
/**
|
||||
* 分页列表查询
|
||||
*
|
||||
* @param bizRole
|
||||
* @param pageNo
|
||||
* @param pageSize
|
||||
* @param req
|
||||
* @return
|
||||
*/
|
||||
//@AutoLog(value = "Gis和角色权限管理表-分页列表查询")
|
||||
@ApiOperation(value="Gis和角色权限管理表-分页列表查询", notes="Gis和角色权限管理表-分页列表查询")
|
||||
@GetMapping(value = "/list")
|
||||
public Result<IPage<BizRole>> queryPageList(BizRole bizRole,
|
||||
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||
@RequestParam(name="pageSize", defaultValue="10000") Integer pageSize,
|
||||
HttpServletRequest req) {
|
||||
QueryWrapper<BizRole> queryWrapper = QueryGenerator.initQueryWrapper(bizRole, req.getParameterMap());
|
||||
Page<BizRole> page = new Page<BizRole>(pageNo, pageSize);
|
||||
IPage<BizRole> pageList = bizRoleService.page(page, queryWrapper);
|
||||
return Result.OK(pageList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加
|
||||
*
|
||||
* @param bizRole
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "Gis和角色权限管理表-添加")
|
||||
@ApiOperation(value="Gis和角色权限管理表-添加", notes="Gis和角色权限管理表-添加")
|
||||
@RequiresPermissions("bizRole:biz_role:add")
|
||||
@PostMapping(value = "/add")
|
||||
public Result<String> add(@RequestBody BizRole bizRole) {
|
||||
bizRoleService.save(bizRole);
|
||||
return Result.OK("添加成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param bizRole
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "Gis和角色权限管理表-编辑")
|
||||
@ApiOperation(value="Gis和角色权限管理表-编辑", notes="Gis和角色权限管理表-编辑")
|
||||
@RequiresPermissions("bizRole:biz_role:edit")
|
||||
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
|
||||
public Result<String> edit(@RequestBody BizRole bizRole) {
|
||||
bizRoleService.updateById(bizRole);
|
||||
return Result.OK("编辑成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量编辑
|
||||
*
|
||||
* @param bizRoles
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "Gis和角色权限管理表-批量编辑")
|
||||
@ApiOperation(value="Gis和角色权限管理表-批量编辑", notes="Gis和角色权限管理表-批量编辑")
|
||||
@RequiresPermissions("bizRole:biz_role:editBatch")
|
||||
@RequestMapping(value = "/editBatch", method = {RequestMethod.PUT,RequestMethod.POST})
|
||||
public Result<String> editBatch(@RequestBody List<BizRole> bizRoles) {
|
||||
for (BizRole bizRole : bizRoles) {
|
||||
bizRoleService.updateById(bizRole);
|
||||
}
|
||||
return Result.OK("批量编辑成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过id删除
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "Gis和角色权限管理表-通过id删除")
|
||||
@ApiOperation(value="Gis和角色权限管理表-通过id删除", notes="Gis和角色权限管理表-通过id删除")
|
||||
@RequiresPermissions("bizRole:biz_role:delete")
|
||||
@DeleteMapping(value = "/delete")
|
||||
public Result<String> delete(@RequestParam(name="id",required=true) String id) {
|
||||
bizRoleService.removeById(id);
|
||||
return Result.OK("删除成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param ids
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "Gis和角色权限管理表-批量删除")
|
||||
@ApiOperation(value="Gis和角色权限管理表-批量删除", notes="Gis和角色权限管理表-批量删除")
|
||||
@RequiresPermissions("bizRole:biz_role:deleteBatch")
|
||||
@DeleteMapping(value = "/deleteBatch")
|
||||
public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
|
||||
this.bizRoleService.removeByIds(Arrays.asList(ids.split(",")));
|
||||
return Result.OK("批量删除成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过id查询
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
//@AutoLog(value = "Gis和角色权限管理表-通过id查询")
|
||||
@ApiOperation(value="Gis和角色权限管理表-通过id查询", notes="Gis和角色权限管理表-通过id查询")
|
||||
@GetMapping(value = "/queryById")
|
||||
public Result<BizRole> queryById(@RequestParam(name="id",required=true) String id) {
|
||||
BizRole bizRole = bizRoleService.getById(id);
|
||||
if(bizRole==null) {
|
||||
return Result.error("未找到对应数据");
|
||||
}
|
||||
return Result.OK(bizRole);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出excel
|
||||
*
|
||||
* @param request
|
||||
* @param bizRole
|
||||
*/
|
||||
@RequiresPermissions("bizRole:biz_role:exportXls")
|
||||
@RequestMapping(value = "/exportXls")
|
||||
public ModelAndView exportXls(HttpServletRequest request, BizRole bizRole) {
|
||||
return super.exportXls(request, bizRole, BizRole.class, "Gis和角色权限管理表");
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过excel导入数据
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequiresPermissions("bizRole:biz_role:importExcel")
|
||||
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
|
||||
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
|
||||
return super.importExcel(request, response, BizRole.class);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,67 @@
|
|||
package org.jeecg.modules.project.baseConfig.bizRole.entity;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.util.Date;
|
||||
import java.math.BigDecimal;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||
import lombok.Data;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
import org.jeecg.common.aspect.annotation.Dict;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* @Description: Gis和角色权限管理表
|
||||
* @Author: jeecg-boot
|
||||
* @Date: 2023-09-22
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Data
|
||||
@TableName("biz_role")
|
||||
@Accessors(chain = true)
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@ApiModel(value="biz_role对象", description="Gis和角色权限管理表")
|
||||
public class BizRole implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**主键*/
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
@ApiModelProperty(value = "主键")
|
||||
private String id;
|
||||
/**创建人*/
|
||||
@ApiModelProperty(value = "创建人")
|
||||
private String createBy;
|
||||
/**创建日期*/
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
@ApiModelProperty(value = "创建日期")
|
||||
private Date createTime;
|
||||
/**更新人*/
|
||||
@ApiModelProperty(value = "更新人")
|
||||
private String updateBy;
|
||||
/**更新日期*/
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
@ApiModelProperty(value = "更新日期")
|
||||
private Date updateTime;
|
||||
/**角色名称*/
|
||||
@Excel(name = "角色名称", width = 15)
|
||||
@ApiModelProperty(value = "角色名称")
|
||||
private String roleName;
|
||||
/**角色权限*/
|
||||
@Excel(name = "角色权限", width = 15)
|
||||
@ApiModelProperty(value = "角色权限")
|
||||
private String rolePermission;
|
||||
/**gis权限*/
|
||||
@Excel(name = "gis权限", width = 15)
|
||||
@ApiModelProperty(value = "gis权限")
|
||||
private String gisPermission;
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
package org.jeecg.modules.project.baseConfig.bizRole.mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.jeecg.modules.project.baseConfig.bizRole.entity.BizRole;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* @Description: Gis和角色权限管理表
|
||||
* @Author: jeecg-boot
|
||||
* @Date: 2023-09-22
|
||||
* @Version: V1.0
|
||||
*/
|
||||
public interface BizRoleMapper extends BaseMapper<BizRole> {
|
||||
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.jeecg.modules.project.baseConfig.bizRole.mapper.BizRoleMapper">
|
||||
|
||||
</mapper>
|
|
@ -0,0 +1,14 @@
|
|||
package org.jeecg.modules.project.baseConfig.bizRole.service;
|
||||
|
||||
import org.jeecg.modules.project.baseConfig.bizRole.entity.BizRole;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
/**
|
||||
* @Description: Gis和角色权限管理表
|
||||
* @Author: jeecg-boot
|
||||
* @Date: 2023-09-22
|
||||
* @Version: V1.0
|
||||
*/
|
||||
public interface IBizRoleService extends IService<BizRole> {
|
||||
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
package org.jeecg.modules.project.baseConfig.bizRole.service.impl;
|
||||
|
||||
import org.jeecg.modules.project.baseConfig.bizRole.entity.BizRole;
|
||||
import org.jeecg.modules.project.baseConfig.bizRole.mapper.BizRoleMapper;
|
||||
import org.jeecg.modules.project.baseConfig.bizRole.service.IBizRoleService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
|
||||
/**
|
||||
* @Description: Gis和角色权限管理表
|
||||
* @Author: jeecg-boot
|
||||
* @Date: 2023-09-22
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Service
|
||||
public class BizRoleServiceImpl extends ServiceImpl<BizRoleMapper, BizRole> implements IBizRoleService {
|
||||
|
||||
}
|
|
@ -50,7 +50,7 @@ public class BizTopographyInfoController extends JeecgController<BizTopographyIn
|
|||
@GetMapping(value = "/list")
|
||||
public Result<IPage<BizTopographyInfo>> queryPageList(BizTopographyInfo bizTopographyInfo,
|
||||
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
||||
@RequestParam(name="pageSize", defaultValue="10000") Integer pageSize,
|
||||
HttpServletRequest req) {
|
||||
QueryWrapper<BizTopographyInfo> queryWrapper = QueryGenerator.initQueryWrapper(bizTopographyInfo, req.getParameterMap());
|
||||
Page<BizTopographyInfo> page = new Page<BizTopographyInfo>(pageNo, pageSize);
|
||||
|
|
|
@ -50,7 +50,7 @@ public class BizWeaponController extends JeecgController<BizWeapon, IBizWeaponSe
|
|||
@GetMapping(value = "/list")
|
||||
public Result<IPage<BizWeapon>> queryPageList(BizWeapon bizWeapon,
|
||||
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
||||
@RequestParam(name="pageSize", defaultValue="10000") Integer pageSize,
|
||||
HttpServletRequest req) {
|
||||
QueryWrapper<BizWeapon> queryWrapper = QueryGenerator.initQueryWrapper(bizWeapon, req.getParameterMap());
|
||||
Page<BizWeapon> page = new Page<BizWeapon>(pageNo, pageSize);
|
||||
|
|
|
@ -50,7 +50,7 @@ public class BizEquipmentMotorController extends JeecgController<BizEquipmentMot
|
|||
@GetMapping(value = "/list")
|
||||
public Result<IPage<BizEquipmentMotor>> queryPageList(BizEquipmentMotor bizEquipmentMotor,
|
||||
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
||||
@RequestParam(name="pageSize", defaultValue="10000") Integer pageSize,
|
||||
HttpServletRequest req) {
|
||||
QueryWrapper<BizEquipmentMotor> queryWrapper = QueryGenerator.initQueryWrapper(bizEquipmentMotor, req.getParameterMap());
|
||||
Page<BizEquipmentMotor> page = new Page<BizEquipmentMotor>(pageNo, pageSize);
|
||||
|
|
|
@ -50,7 +50,7 @@ public class BizEquipmentProtectionController extends JeecgController<BizEquipme
|
|||
@GetMapping(value = "/list")
|
||||
public Result<IPage<BizEquipmentProtection>> queryPageList(BizEquipmentProtection bizEquipmentProtection,
|
||||
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
||||
@RequestParam(name="pageSize", defaultValue="10000") Integer pageSize,
|
||||
HttpServletRequest req) {
|
||||
QueryWrapper<BizEquipmentProtection> queryWrapper = QueryGenerator.initQueryWrapper(bizEquipmentProtection, req.getParameterMap());
|
||||
Page<BizEquipmentProtection> page = new Page<BizEquipmentProtection>(pageNo, pageSize);
|
||||
|
|
|
@ -50,7 +50,7 @@ public class BizWeatherForecastController extends JeecgController<BizWeatherFore
|
|||
@GetMapping(value = "/list")
|
||||
public Result<IPage<BizWeatherForecast>> queryPageList(BizWeatherForecast bizWeatherForecast,
|
||||
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
||||
@RequestParam(name="pageSize", defaultValue="10000") Integer pageSize,
|
||||
HttpServletRequest req) {
|
||||
QueryWrapper<BizWeatherForecast> queryWrapper = QueryGenerator.initQueryWrapper(bizWeatherForecast, req.getParameterMap());
|
||||
Page<BizWeatherForecast> page = new Page<BizWeatherForecast>(pageNo, pageSize);
|
||||
|
|
|
@ -63,8 +63,4 @@ public class BizWeatherForecast implements Serializable {
|
|||
@Excel(name = "预报文件路径", width = 15)
|
||||
@ApiModelProperty(value = "预报文件路径")
|
||||
private String forecastPath;
|
||||
/**预报类别*/
|
||||
@Excel(name = "预报类别", width = 15)
|
||||
@ApiModelProperty(value = "预报类别")
|
||||
private Integer forecastType;
|
||||
}
|
||||
|
|
|
@ -50,7 +50,7 @@ public class BizWeatherHistoryController extends JeecgController<BizWeatherHisto
|
|||
@GetMapping(value = "/list")
|
||||
public Result<IPage<BizWeatherHistory>> queryPageList(BizWeatherHistory bizWeatherHistory,
|
||||
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
||||
@RequestParam(name="pageSize", defaultValue="10000") Integer pageSize,
|
||||
HttpServletRequest req) {
|
||||
QueryWrapper<BizWeatherHistory> queryWrapper = QueryGenerator.initQueryWrapper(bizWeatherHistory, req.getParameterMap());
|
||||
Page<BizWeatherHistory> page = new Page<BizWeatherHistory>(pageNo, pageSize);
|
||||
|
|