Merge branch 'master-dev' into feature-Beta-dev-renpy

This commit is contained in:
任珮宇 2024-02-05 18:39:48 +08:00
commit afc0d317ca
10 changed files with 334 additions and 251 deletions

View File

@ -1,12 +1,12 @@
<template> <template>
<div class="user-wrapper" :class="theme"> <div class="user-wrapper" :class="theme">
<header-notice class="action"/> <header-notice class="action" />
<a-dropdown> <a-dropdown>
<span class="action action-full ant-dropdown-link user-dropdown-menu"> <span class="action action-full ant-dropdown-link user-dropdown-menu">
<img src="@/assets/images/header/avatar.png" alt=""> <img src="@/assets/images/header/avatar.png" alt="" />
</span> </span>
<a-menu slot="overlay" class="user-dropdown-menu-wrapper"> <a-menu slot="overlay" class="user-dropdown-menu-wrapper">
<a-menu-item key="0"> <!-- <a-menu-item key="0">
<router-link :to="{ name: 'account-center' }"> <router-link :to="{ name: 'account-center' }">
<a-icon type="user"/> <a-icon type="user"/>
<span>个人中心</span> <span>个人中心</span>
@ -21,24 +21,24 @@
<a-menu-item key="3" @click="systemSetting"> <a-menu-item key="3" @click="systemSetting">
<a-icon type="tool"/> <a-icon type="tool"/>
<span>系统设置</span> <span>系统设置</span>
</a-menu-item> </a-menu-item> -->
<a-menu-item key="4" @click="updatePassword"> <a-menu-item key="4" @click="updatePassword">
<a-icon type="setting"/> <a-icon type="setting" />
<span>密码修改</span> <span>Change Password</span>
</a-menu-item> </a-menu-item>
<a-menu-item key="5" @click="updateCurrentDepart"> <!-- <a-menu-item key="5" @click="updateCurrentDepart">
<a-icon type="cluster"/> <a-icon type="cluster"/>
<span>切换部门</span> <span>切换部门</span>
</a-menu-item> </a-menu-item>
<a-menu-item key="6" @click="clearCache"> <a-menu-item key="6" @click="clearCache">
<a-icon type="sync"/> <a-icon type="sync"/>
<span>清理缓存</span> <span>清理缓存</span>
</a-menu-item> </a-menu-item> -->
</a-menu> </a-menu>
</a-dropdown> </a-dropdown>
<span class="action"> <span class="action">
<a class="logout_title" href="javascript:;" @click="handleLogout"> <a class="logout_title" href="javascript:;" @click="handleLogout">
<img src="@/assets/images/header/close.png" alt=""> <img src="@/assets/images/header/close.png" alt="" />
</a> </a>
</span> </span>
<user-password ref="userPassword"></user-password> <user-password ref="userPassword"></user-password>
@ -48,201 +48,205 @@
</template> </template>
<script> <script>
import HeaderNotice from './HeaderNotice' import HeaderNotice from './HeaderNotice'
import UserPassword from './UserPassword' import UserPassword from './UserPassword'
import SettingDrawer from "@/components/setting/SettingDrawer"; import SettingDrawer from '@/components/setting/SettingDrawer'
import DepartSelect from './DepartSelect' import DepartSelect from './DepartSelect'
import { mapActions, mapGetters,mapState } from 'vuex' import { mapActions, mapGetters, mapState } from 'vuex'
import { mixinDevice } from '@/utils/mixin.js' import { mixinDevice } from '@/utils/mixin.js'
import { getFileAccessHttpUrl,getAction } from "@/api/manage" import { getFileAccessHttpUrl, getAction } from '@/api/manage'
import Vue from 'vue' import Vue from 'vue'
import { UI_CACHE_DB_DICT_DATA } from "@/store/mutation-types" import { UI_CACHE_DB_DICT_DATA } from '@/store/mutation-types'
export default { export default {
name: "UserMenu", name: 'UserMenu',
mixins: [mixinDevice], mixins: [mixinDevice],
data(){ data() {
return{ return {
// update-begin author:sunjianlei date:20200219 for: -------------- // update-begin author:sunjianlei date:20200219 for: --------------
searchMenuOptions:[], searchMenuOptions: [],
searchMenuComp: 'span', searchMenuComp: 'span',
searchMenuVisible: false, searchMenuVisible: false,
// update-begin author:sunjianlei date:20200219 for: -------------- // update-begin author:sunjianlei date:20200219 for: --------------
} }
}, },
components: { components: {
HeaderNotice, HeaderNotice,
UserPassword, UserPassword,
DepartSelect, DepartSelect,
SettingDrawer SettingDrawer,
}, },
props: { props: {
theme: { theme: {
type: String, type: String,
required: false, required: false,
default: 'dark' default: 'dark',
},
},
/* update_begin author:zhaoxin date:20191129 for: 做头部菜单栏导航*/
created() {
let lists = []
this.searchMenus(lists, this.permissionMenuList)
this.searchMenuOptions = [...lists]
},
mounted() {
//
if (process.env.VUE_APP_SSO == 'true') {
let depart = this.userInfo().orgCode
if (!depart) {
this.updateCurrentDepart()
} }
}
},
computed: {
...mapState({
//
permissionMenuList: (state) => state.user.permissionList,
}),
},
/* update_end author:zhaoxin date:20191129 for: 做头部菜单栏导航*/
watch: {
// update-begin author:sunjianlei date:20200219 for:
device: {
immediate: true,
handler() {
this.searchMenuVisible = false
this.searchMenuComp = this.isMobile() ? 'a-modal' : 'span'
},
}, },
// update-end author:sunjianlei date:20200219 for:
},
methods: {
/* update_begin author:zhaoxin date:20191129 for: 做头部菜单栏导航*/ /* update_begin author:zhaoxin date:20191129 for: 做头部菜单栏导航*/
created() { showClick() {
let lists = [] this.searchMenuVisible = true
this.searchMenus(lists,this.permissionMenuList)
this.searchMenuOptions=[...lists]
}, },
mounted() { hiddenClick() {
// this.shows = false
if (process.env.VUE_APP_SSO == 'true') {
let depart = this.userInfo().orgCode
if (!depart) {
this.updateCurrentDepart()
}
}
},
computed: {
...mapState({
//
permissionMenuList: state => state.user.permissionList
})
}, },
/* update_end author:zhaoxin date:20191129 for: 做头部菜单栏导航*/ /* update_end author:zhaoxin date:20191129 for: 做头部菜单栏导航*/
watch: { ...mapActions(['Logout']),
// update-begin author:sunjianlei date:20200219 for: ...mapGetters(['nickname', 'avatar', 'userInfo']),
device: { getAvatar() {
immediate: true, return getFileAccessHttpUrl(this.avatar())
handler() {
this.searchMenuVisible = false
this.searchMenuComp = this.isMobile() ? 'a-modal' : 'span'
},
},
// update-end author:sunjianlei date:20200219 for:
}, },
methods: { handleLogout() {
/* update_begin author:zhaoxin date:20191129 for: 做头部菜单栏导航*/ const that = this
showClick() {
this.searchMenuVisible = true
},
hiddenClick(){
this.shows = false
},
/* update_end author:zhaoxin date:20191129 for: 做头部菜单栏导航*/
...mapActions(["Logout"]),
...mapGetters(["nickname", "avatar","userInfo"]),
getAvatar(){
return getFileAccessHttpUrl(this.avatar())
},
handleLogout() {
const that = this
this.$confirm({ this.$confirm({
title: 'Prompt', title: 'Prompt',
content: 'Ensure Log Out?', content: 'Ensure Log Out?',
cancelButtonProps: { cancelButtonProps: {
props: { props: {
type: 'warn' type: 'warn',
}
}, },
onOk() { },
return that.Logout({}).then(() => { onOk() {
return that
.Logout({})
.then(() => {
// update-begin author:scott date:20211223 for:JTC-198退 // update-begin author:scott date:20211223 for:JTC-198退
//that.$router.push({ path: '/user/login' }); //that.$router.push({ path: '/user/login' });
window.location.reload() window.location.reload()
// update-end author:scott date:20211223 for:JTC-198退 // update-end author:scott date:20211223 for:JTC-198退
}).catch(err => { })
.catch((err) => {
that.$message.error({ that.$message.error({
title: 'Error', title: 'Error',
description: err.message description: err.message,
}) })
}) })
}, },
onCancel() { onCancel() {},
}, })
}); },
}, updatePassword() {
updatePassword(){ let username = this.userInfo().username
let username = this.userInfo().username this.$refs.userPassword.show(username)
this.$refs.userPassword.show(username) },
}, updateCurrentDepart() {
updateCurrentDepart(){ this.$refs.departSelect.show()
this.$refs.departSelect.show() },
}, systemSetting() {
systemSetting(){ this.$refs.settingDrawer.showDrawer()
this.$refs.settingDrawer.showDrawer() },
}, /* update_begin author:zhaoxin date:20191129 for: 做头部菜单栏导航*/
/* update_begin author:zhaoxin date:20191129 for: 做头部菜单栏导航*/ searchMenus(arr, menus) {
searchMenus(arr,menus){ for (let i of menus) {
for(let i of menus){ if (!i.hidden && 'layouts/RouteView' !== i.component) {
if(!i.hidden && "layouts/RouteView"!==i.component){ arr.push(i)
arr.push(i)
}
if(i.children&& i.children.length>0){
this.searchMenus(arr,i.children)
}
} }
}, if (i.children && i.children.length > 0) {
filterOption(input, option) { this.searchMenus(arr, i.children)
return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
},
// update_begin author:sunjianlei date:20191230 for:
searchMethods(value) {
let route = this.searchMenuOptions.filter(item => item.id === value)[0]
//update-begin-author:sunjianlei date:20220111 for: JTC-702Token
if(route.component.includes('layouts/IframePageView')){
this.$router.push(route)
}else{
this.$router.push({ path: route.path })
} }
//update-end-author:sunjianlei date:20220111 for: JTC-702Token }
this.searchMenuVisible = false },
}, filterOption(input, option) {
// update_end author:sunjianlei date:20191230 for: return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
/*update_end author:zhaoxin date:20191129 for: 做头部菜单栏导航*/ },
/*update_begin author:liushaoqian date:20200507 for: 刷新缓存*/ // update_begin author:sunjianlei date:20191230 for:
clearCache(){ searchMethods(value) {
getAction("sys/dict/refleshCache").then((res) => { let route = this.searchMenuOptions.filter((item) => item.id === value)[0]
//update-begin-author:sunjianlei date:20220111 for: JTC-702Token
if (route.component.includes('layouts/IframePageView')) {
this.$router.push(route)
} else {
this.$router.push({ path: route.path })
}
//update-end-author:sunjianlei date:20220111 for: JTC-702Token
this.searchMenuVisible = false
},
// update_end author:sunjianlei date:20191230 for:
/*update_end author:zhaoxin date:20191129 for: 做头部菜单栏导航*/
/*update_begin author:liushaoqian date:20200507 for: 刷新缓存*/
clearCache() {
getAction('sys/dict/refleshCache')
.then((res) => {
if (res.success) { if (res.success) {
// //
getAction("sys/dict/queryAllDictItems").then((res) => { getAction('sys/dict/queryAllDictItems').then((res) => {
if (res.success) { if (res.success) {
Vue.ls.remove(UI_CACHE_DB_DICT_DATA) Vue.ls.remove(UI_CACHE_DB_DICT_DATA)
Vue.ls.set(UI_CACHE_DB_DICT_DATA, res.result, 7 * 24 * 60 * 60 * 1000) Vue.ls.set(UI_CACHE_DB_DICT_DATA, res.result, 7 * 24 * 60 * 60 * 1000)
} }
}) })
this.$message.success("刷新缓存完成!"); this.$message.success('刷新缓存完成!')
} }
}).catch(e=>{
this.$message.warn("刷新缓存失败!");
console.log("刷新失败",e)
}) })
} .catch((e) => {
/*update_end author:liushaoqian date:20200507 for: 刷新缓存*/ this.$message.warn('刷新缓存失败!')
} console.log('刷新失败', e)
} })
},
/*update_end author:liushaoqian date:20200507 for: 刷新缓存*/
},
}
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
/* update_begin author:zhaoxin date:20191129 for: 让搜索框颜色能随主题颜色变换*/ /* update_begin author:zhaoxin date:20191129 for: 让搜索框颜色能随主题颜色变换*/
/* update-begin author:sunjianlei date:20191220 for: 解决全局样式冲突问题 */ /* update-begin author:sunjianlei date:20191220 for: 解决全局样式冲突问题 */
.user-wrapper .search-input { .user-wrapper .search-input {
width: 180px; width: 180px;
color: inherit; color: inherit;
/deep/ .ant-select-selection { /deep/ .ant-select-selection {
background-color: inherit; background-color: inherit;
border: 0; border: 0;
border-bottom: 1px solid white; border-bottom: 1px solid white;
&__placeholder, &__field__placeholder { &__placeholder,
color: inherit; &__field__placeholder {
} color: inherit;
} }
} }
/* update-end author:sunjianlei date:20191220 for: 解决全局样式冲突问题 */ }
/* update_end author:zhaoxin date:20191129 for: 让搜索框颜色能随主题颜色变换*/ /* update-end author:sunjianlei date:20191220 for: 解决全局样式冲突问题 */
/* update_end author:zhaoxin date:20191129 for: 让搜索框颜色能随主题颜色变换*/
</style> </style>
<style scoped> <style scoped>
.logout_title { .logout_title {
color: inherit; color: inherit;
text-decoration: none; text-decoration: none;
} }
</style> </style>

View File

@ -11,8 +11,9 @@
:customRow="customRow" :customRow="customRow"
:rowClassName="() => (canSelect ? 'custom-table-row' : '')" :rowClassName="() => (canSelect ? 'custom-table-row' : '')"
@change="handleTableChange" @change="handleTableChange"
:scroll="{ y: 186 }" :scroll="scroll"
> >
<!-- :scroll="{ y: 186 }" -->
<!-- 处理 scopedSlots --> <!-- 处理 scopedSlots -->
<template v-for="slotName of scopedSlotsKeys" :slot="slotName" slot-scope="text, record, index"> <template v-for="slotName of scopedSlotsKeys" :slot="slotName" slot-scope="text, record, index">
<slot :name="slotName" :text="text" :record="record" :index="index"></slot> <slot :name="slotName" :text="text" :record="record" :index="index"></slot>
@ -58,6 +59,7 @@ export default {
type: Boolean, type: Boolean,
default: false, default: false,
}, },
scroll: { type: Object },
}, },
data() { data() {
return { return {

View File

@ -49,8 +49,7 @@
<script> <script>
import moment from 'moment' import moment from 'moment'
import dateFormat from '@/components/jeecg/JEasyCron/format-date' import { getAction } from '@/api/manage'
import { getAction, postAction, httpAction, deleteAction } from '@/api/manage'
export default { export default {
props: { props: {
value: { value: {
@ -76,6 +75,17 @@ export default {
mounted() { mounted() {
this.getDbList() this.getDbList()
}, },
watch: {
$route: {
handler: function (val, oldVal) {
if (val.query && val.query.id) {
this.getDbList()
}
},
deep: true,
immediate: true,
},
},
methods: { methods: {
getBeforeHours(num) { getBeforeHours(num) {
let currentTime = moment() let currentTime = moment()
@ -94,8 +104,10 @@ export default {
// urlsourceId // urlsourceId
if (sourceId) { if (sourceId) {
const find = res.result.find((item) => item.sourceId == sourceId) const find = res.result.find((item) => item.sourceId == sourceId)
if (find) { if (find && find.hostId) {
this.value.hostId = find.hostId this.value.hostId = find.hostId
} else {
this.value.hostId = `my${find.sourceId}`
} }
} }
if (!this.value.hostId) { if (!this.value.hostId) {
@ -103,7 +115,7 @@ export default {
} }
this.DbOptions = res.result.map((item, index) => { this.DbOptions = res.result.map((item, index) => {
let str = `my${index}` let str = `my${item.sourceId}`
return { return {
label: item.sourceName, label: item.sourceName,
value: item.hostId || str, value: item.hostId || str,

View File

@ -98,7 +98,7 @@
<div class="email-top-content-li-right"> <div class="email-top-content-li-right">
<div class="email-top-content-li-right-title">Used Capacity</div> <div class="email-top-content-li-right-title">Used Capacity</div>
<div class="email-top-content-li-right-val" style="color: #ade6ee; font-size: 26px; margin-top: 36px"> <div class="email-top-content-li-right-val" style="color: #ade6ee; font-size: 26px; margin-top: 36px">
{{ emailTotal.usage || 0 }}/<span style="font-size: 40px; vertical-align: middle"></span> {{ emailSpace.usage || 0 }}/<span style="font-size: 40px; vertical-align: middle"></span>
</div> </div>
</div> </div>
<div class="email-top-content-li-rect" style="background: #8351d4"></div> <div class="email-top-content-li-rect" style="background: #8351d4"></div>
@ -239,7 +239,19 @@ export default {
mounted() { mounted() {
this.getEmailList() this.getEmailList()
}, },
// activated() {
// this.getEmailList()
// },
watch: { watch: {
$route: {
handler: function (val, oldVal) {
if (val.query && val.query.emailId) {
this.getEmailList()
}
},
deep: true,
immediate: true,
},
emailId(newValue, oldValue) { emailId(newValue, oldValue) {
this.currId = newValue this.currId = newValue
this.getEmailStatus() this.getEmailStatus()

View File

@ -237,6 +237,17 @@ export default {
mounted() { mounted() {
this.getServerList() this.getServerList()
}, },
watch: {
$route: {
handler: function (val, oldVal) {
if (val.query && val.query.serverId) {
this.getServerList()
}
},
deep: true,
immediate: true,
},
},
methods: { methods: {
handleRefresh() { handleRefresh() {
if (!this.userDefined) { if (!this.userDefined) {

View File

@ -280,6 +280,7 @@
<BoxTitle title="Alarm information"></BoxTitle> <BoxTitle title="Alarm information"></BoxTitle>
<div <div
class="alarm-info-list" class="alarm-info-list"
style="margin-bottom: 15px"
v-infinite-scroll="handleInfiniteAlarmInfo" v-infinite-scroll="handleInfiniteAlarmInfo"
:infinite-scroll-disabled="busy_alarm_info" :infinite-scroll-disabled="busy_alarm_info"
:infinite-scroll-distance="10" :infinite-scroll-distance="10"
@ -451,48 +452,58 @@ export default {
}, },
} }
}, },
mounted() { watch: {
this.getSysServer((res) => { $route: {
this.loading = false handler: function (val, oldVal) {
if (res.success) { if (val.query && val.query.serverId) {
this.ipagination.total = res.result.total this.getData()
this.dataSource = res.result.records
if (this.$route.query.serverId) {
this.serverId = this.$route.query.serverId
this.currIndex = this.dataSource.findIndex((item) => item.sourceId === this.serverId)
this.currHostId = this.dataSource.find((item) => item.sourceId === this.serverId).hostId
this.currSourceId = this.dataSource.find((item) => item.sourceId === this.serverId).sourceId
this.currItemId = this.dataSource.find((item) => item.sourceId === this.serverId).cpuUsedItemId
} else {
this.currHostId = this.dataSource[0].hostId
this.currSourceId = this.dataSource[0].sourceId
this.currItemId = this.dataSource[0].cpuUsedItemId
this.currIndex = 0
} }
this.getBasiclnfo(this.currHostId) },
this.getCpuUtilizationData() deep: true,
this.getTimeLineData() immediate: true,
// this.EchartsTimeline() },
this.getDetailsAlarmInfo((res) => {
this.loading_alarm_info = false
if (res.success) {
this.ipagination_alarm_info.total = res.result.total
this.dataSource_alarm_info = res.result.records
} else {
this.$message.warning('This operation fails. Contact your system administrator')
}
})
} else {
this.$message.warning('This operation fails. Contact your system administrator')
}
})
// this.$nextTick(() => {
// setTimeout(() => {
// this.drawGuageLoads()
// }, 0)
// })
}, },
mounted() {
this.getData()
},
// activated() {},
methods: { methods: {
getData() {
this.getSysServer((res) => {
this.loading = false
if (res.success) {
this.ipagination.total = res.result.total
this.dataSource = res.result.records
if (this.$route.query.serverId) {
this.serverId = this.$route.query.serverId
this.currIndex = this.dataSource.findIndex((item) => item.sourceId === this.serverId)
this.currHostId = this.dataSource.find((item) => item.sourceId === this.serverId).hostId
this.currSourceId = this.dataSource.find((item) => item.sourceId === this.serverId).sourceId
this.currItemId = this.dataSource.find((item) => item.sourceId === this.serverId).cpuUsedItemId
} else {
this.currHostId = this.dataSource[0].hostId
this.currSourceId = this.dataSource[0].sourceId
this.currItemId = this.dataSource[0].cpuUsedItemId
this.currIndex = 0
}
this.getBasiclnfo(this.currHostId)
this.getCpuUtilizationData()
this.getTimeLineData()
// this.EchartsTimeline()
this.getDetailsAlarmInfo((res) => {
this.loading_alarm_info = false
if (res.success) {
this.ipagination_alarm_info.total = res.result.total
this.dataSource_alarm_info = res.result.records
} else {
this.$message.warning('This operation fails. Contact your system administrator')
}
})
} else {
this.$message.warning('This operation fails. Contact your system administrator')
}
})
},
moment, moment,
// Basic lnformation // Basic lnformation
getBasiclnfo(sourceId) { getBasiclnfo(sourceId) {

View File

@ -166,6 +166,17 @@ export default {
mounted() { mounted() {
this.getServerList() this.getServerList()
}, },
watch: {
$route: {
handler: function (val, oldVal) {
if (val.query && val.query.serverId) {
this.getServerList()
}
},
deep: true,
immediate: true,
},
},
methods: { methods: {
handleRefresh() { handleRefresh() {
if (!this.userDefined) { if (!this.userDefined) {

View File

@ -74,35 +74,17 @@
<div class="service-content-center"> <div class="service-content-center">
<a-row :gutter="20"> <a-row :gutter="20">
<a-col :span="12"> <a-col :span="12">
<BoxTitle title="Process CPU usage(%)"> <BoxTitle title="Process CPU usage(%)" />
<!-- <template slot="right">
<ul class="legend-list">
<li v-for="(item, index) in processCpu.legend" :key="index">
<div :style="`background:${processCpu.color[index]}`" class="li-icon"></div>
{{ item }}
</li>
</ul>
</template> -->
</BoxTitle>
<div class="service-content-center-item" id="processCpu"></div> <div class="service-content-center-item" id="processCpu"></div>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<BoxTitle title="Process memory usage(%)"> <BoxTitle title="Process memory usage(%)" />
<!-- <template slot="right">
<ul class="legend-list">
<li v-for="(item, index) in processMenbry.legend" :key="index">
<div :style="`background:${processMenbry.color[index]}`" class="li-icon"></div>
{{ item }}
</li>
</ul>
</template> -->
</BoxTitle>
<div class="service-content-center-item" id="menbry"></div> <div class="service-content-center-item" id="menbry"></div>
</a-col> </a-col>
</a-row> </a-row>
</div> </div>
<div class="service-content-table"> <div class="service-content-table">
<BoxTitle title="Service"></BoxTitle> <BoxTitle title="Service" />
<div style="padding-top: 10px"> <div style="padding-top: 10px">
<TableList <TableList
size="middle" size="middle"
@ -112,6 +94,7 @@
:loading="loading" :loading="loading"
:pagination="false" :pagination="false"
:canSelect="false" :canSelect="false"
:scroll="{ y: 186 }"
> >
</TableList> </TableList>
<!-- <a-pagination <!-- <a-pagination
@ -303,6 +286,17 @@ export default {
setTimeout(() => {}, 0) setTimeout(() => {}, 0)
}) })
}, },
watch: {
$route: {
handler: function (val, oldVal) {
if (val.query && val.query.serverId) {
this.getServerList()
}
},
deep: true,
immediate: true,
},
},
methods: { methods: {
handleRefresh() { handleRefresh() {
if (!this.userDefined) { if (!this.userDefined) {

View File

@ -17,7 +17,7 @@
</template> </template>
<!-- 标题结束 --> <!-- 标题结束 -->
<!-- 内容 --> <!-- 内容 -->
<a-spin :spinning="isGettingTreeData" style="margin-top: 80px; width: 100%; text-align: center;"> </a-spin> <a-spin :spinning="isGettingTreeData" style="margin-top: 80px; width: 100%; text-align: center"> </a-spin>
<tree-with-line <tree-with-line
v-if="treeData.length" v-if="treeData.length"
:treeData="treeData" :treeData="treeData"
@ -57,7 +57,7 @@
<!-- 日志列表结束 --> <!-- 日志列表结束 -->
<custom-modal title="Log" :width="950" v-model="visible" :footer="null"> <custom-modal title="Log" :width="950" v-model="visible" :footer="null">
<a-spin class="log-detail" :spinning="isGettingDetail"> <a-spin class="log-detail" :spinning="isGettingDetail">
<div v-for="(logItem, index) in logInfo" :key="index"> <div style="font-family: 宋体" v-for="(logItem, index) in logInfo" :key="index">
{{ logItem }} {{ logItem }}
</div> </div>
</a-spin> </a-spin>
@ -74,42 +74,42 @@ const columns = [
title: 'NAME', title: 'NAME',
align: 'center', align: 'center',
width: 320, width: 320,
dataIndex: 'fileName' dataIndex: 'fileName',
}, },
{ {
title: 'DATE', title: 'DATE',
align: 'center', align: 'center',
width: 200, width: 200,
dataIndex: 'fileDate' dataIndex: 'fileDate',
}, },
{ {
title: 'SIZE', title: 'SIZE',
align: 'center', align: 'center',
width: 220, width: 220,
dataIndex: 'fileSize' dataIndex: 'fileSize',
}, },
{ {
title: 'OPERATE', title: 'OPERATE',
align: 'center', align: 'center',
width: 200, width: 200,
scopedSlots: { scopedSlots: {
customRender: 'operate' customRender: 'operate',
} },
} },
] ]
export default { export default {
name: 'LogManage', name: 'LogManage',
mixins: [JeecgListMixin], mixins: [JeecgListMixin],
components: { components: {
TreeWithLine TreeWithLine,
}, },
data() { data() {
this.columns = columns this.columns = columns
return { return {
disableMixinCreated: true, disableMixinCreated: true,
url: { url: {
list: '/logManage/findFiles' list: '/logManage/findFiles',
}, },
isGettingTreeData: false, // isGettingTreeData: false, //
treeData: [], treeData: [],
@ -119,7 +119,7 @@ export default {
visible: false, visible: false,
isGettingDetail: false, isGettingDetail: false,
logInfo: [] logInfo: [],
} }
}, },
created() { created() {
@ -148,11 +148,11 @@ export default {
*/ */
buildTreeData(treeJson) { buildTreeData(treeJson) {
const tree = [] const tree = []
treeJson.forEach(item => { treeJson.forEach((item) => {
const treeNode = { const treeNode = {
title: item.name, title: item.name,
key: item.path, key: item.path,
children: [] children: [],
} }
if (item.children && item.children.length) { if (item.children && item.children.length) {
treeNode.children.push(...this.buildTreeData(item.children)) treeNode.children.push(...this.buildTreeData(item.children))
@ -180,7 +180,7 @@ export default {
var params = this.getQueryParams() // var params = this.getQueryParams() //
this.loading = true this.loading = true
getAction(this.url.list, params) getAction(this.url.list, params)
.then(res => { .then((res) => {
this.dataSource = res this.dataSource = res
}) })
.finally(() => { .finally(() => {
@ -216,8 +216,8 @@ export default {
formData.append('fileName', fileName) formData.append('fileName', fileName)
formData.append('localPath', filePath) formData.append('localPath', filePath)
downloadFile('/logManage/downloadFile', fileName, formData, 'post') downloadFile('/logManage/downloadFile', fileName, formData, 'post')
} },
} },
} }
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>

View File

@ -28,6 +28,10 @@
{{ index + 1 }} {{ index + 1 }}
</template> </template>
</custom-table> </custom-table>
<!-- 日志列表结束 -->
<custom-modal title="List Of File Deletion Failures" :width="950" v-model="visibleInfo" :footer="null">
<a-table :columns="columnsModal" :data-source="dataInfo" :pagination="false"> </a-table>
</custom-modal>
</div> </div>
</template> </template>
@ -163,11 +167,24 @@ const columns = [
dataIndex: 'status', dataIndex: 'status',
}, },
] ]
const columnsModal = [
{
title: 'Index',
dataIndex: 'rowCount',
align: 'center',
},
{
title: 'Information',
dataIndex: 'info',
align: 'left',
},
]
export default { export default {
mixins: [JeecgListMixin], mixins: [JeecgListMixin],
data() { data() {
this.columns = columns this.columns = columns
this.columnsModal = columnsModal
return { return {
queryParam: { queryParam: {
collectStart: this.getBeforeDate(6), collectStart: this.getBeforeDate(6),
@ -183,6 +200,8 @@ export default {
}, },
stationList: [], stationList: [],
detectorList: [], detectorList: [],
visibleInfo: false,
dataInfo: [],
} }
}, },
created() { created() {
@ -264,7 +283,7 @@ export default {
cancelText: 'Cancel', cancelText: 'Cancel',
onOk: async () => { onOk: async () => {
try { try {
const { success, message } = await deleteAction('/gardsSampleData/deleteById', { const { success, message, result } = await deleteAction('/gardsSampleData/deleteById', {
sampleId: this.selectedRowKeys[0], sampleId: this.selectedRowKeys[0],
...this.delParams, ...this.delParams,
}) })
@ -273,6 +292,13 @@ export default {
that.loadData() that.loadData()
} else { } else {
this.$message.error(message) this.$message.error(message)
this.visibleInfo = true
this.dataInfo = result.map((item, index) => {
return {
rowCount: `${index + 1}`,
info: item,
}
})
} }
} catch (error) { } catch (error) {
console.error(error) console.error(error)