83f1fbe2 by 任超
2 parents a1831b0f 88c0d236
......@@ -11,3 +11,26 @@ export function getErrorLogList (data) {
showLoading: true
})
}
/*
系统监控 -获取操作日志列表
*/
export function getOperationLogList (data) {
return request({
url: SERVER.SERVERAPI + '/rest/xtjk/view/getOperationLogList',
method: 'post',
data,
showLoading: true
})
}
/*
系统监控 -主机监控
*/
export function getServerInfo () {
return request({
url: SERVER.SERVERAPI + '/rest/xtjk/view/getServerInfo',
method: 'get',
showLoading: true
})
}
......
......@@ -300,14 +300,14 @@ export const asyncRoutes = [
name: 'czrz',
meta: { title: '操作日志' }
},
// {
// path: 'monitor',
// id: '63',
// parentId: '6',
// component: () => import('@/views/xtjk/host/monitor.vue'),
// name: 'monitor',
// meta: { title: '主机监控' }
// },
{
path: 'zjjk',
id: '63',
parentId: '6',
component: () => import('@/views/xtjk/zjjk/zjjk.vue'),
name: 'zjjk',
meta: { title: '主机监控' }
},
]
}
]
......
<template>
<div>
<el-row :gutter="8">
<el-col :span="16">
api接口地址:
<el-input v-model="formData.item.apiUri"></el-input>
</el-col>
</el-row>
<el-row :gutter="8">
<el-col :span="24" class="margin-top-middle">
传入参数:
<el-input type="textarea" :rows="4" v-model="formData.item.crcs"></el-input>
</el-col>
</el-row>
<el-row :gutter="8">
<el-col :span="24" class="margin-top-middle">
错误内容:
<el-input type="textarea" :rows="10" v-model="formData.item.cwnr"></el-input>
</el-col>
</el-row>
<el-row :gutter="8">
<el-col :span="24" class="margin-top-middle">
错误位置:
<el-input type="textarea" :rows="10" v-model="formData.item.cwdmwz"></el-input>
</el-col>
</el-row>
</div>
</template>
<script>
export default {
data () {
return {
};
},
components: { },
props: {
formData: {
type: Object,
default: () => {}
},
},
created(){
console.log(this.formData);
},
computed: {
},
methods: {
},
};
</script>
<style scoped lang='scss'>
@import "~@/styles/public.scss";
.margin-top-middle {
margin-top:10px
}
</style>
\ No newline at end of file
......@@ -79,6 +79,26 @@ export default {
}
})
},
queryClick(){
this.fetchData();
},
viewDetail(e){
this.$popup({
title: "错误日志",
width: "50%",
btnShow: false,
editItem: "xtjk/cwrz/components/viewDialog",
height: "800px",
formData: {
item: e
},
cancel: function () { }, //取消事件的回调
confirm: function () {
that.loadBdcdylist();
}, //确认事件的回调
});
}
}
};
</script>
......
......@@ -69,7 +69,7 @@ class data extends filter {
align: 'center',
fixed: 'right',
render: (h, scope) => {
return <el-button type="text" onClick={() => { vm.del(scope.row) }}>查看</el-button>
return <el-button type="text" onClick={() => { vm.viewDetail(scope.row) }}>查看</el-button>
}
}
]
......
<template>
<div>
<el-row :gutter="8">
<el-col :span="16">
api接口地址:
<el-input v-model="formData.item.apiUri"></el-input>
</el-col>
</el-row>
<el-row :gutter="8">
<el-col :span="24" class="margin-top-middle">
操作人员:
<el-input v-model="formData.item.creater"></el-input>
</el-col>
</el-row>
<el-row :gutter="8">
<el-col :span="24" class="margin-top-middle">
错误内容:
<el-input type="textarea" :rows="10" v-model="formData.item.cznr"></el-input>
</el-col>
</el-row>
</div>
</template>
<script>
export default {
data () {
return {
};
},
components: { },
props: {
formData: {
type: Object,
default: () => {}
},
},
created(){
console.log(this.formData);
},
computed: {
},
methods: {
},
};
</script>
<style scoped lang='scss'>
@import "~@/styles/public.scss";
.margin-top-middle {
margin-top:10px
}
</style>
\ No newline at end of file
<template>
<div class="from-clues">
<!-- 表单部分 -->
<div class="from-clues-header">
<el-form :model="queryForm" ref="queryForm" @submit.native.prevent label-width="80px">
<el-row>
<el-col :span="5">
<el-form-item label="操作类型">
<el-input placeholder="请输入操作类型" v-model="queryForm.czlx" @clear="queryClick()" clearable class="width100">
</el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="接口地址">
<el-input placeholder="请输入接口地址" v-model="queryForm.apiUri" @clear="queryClick()" clearable class="width100">
</el-input>
</el-form-item>
</el-col>
<el-col :span="4" class="btnColRight">
<el-form-item>
<el-button type="primary" native-type="submit" @click="queryClick()">查询</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<div class="from-clues-content">
<lb-table :page-size="pageData.size" border :current-page.sync="pageData.currentPage"
:heightNum="300" :total="tableData.total" @size-change="handleSizeChange"
@p-current-change="handleCurrentChange" :column="tableData.columns" :data="tableData.data">
</lb-table>
</div>
</div>
</template>
<script>
import table from "@/utils/mixin/table"
import { datas, sendThis } from "./czrzdata"
import { getOperationLogList } from "@/api/xtjk.js"
export default {
name: "czrz",
components: { },
mixins: [table],
mounted () {
sendThis(this);
},
computed: {
},
data () {
return {
queryForm: {
czlx: "",
apiUrl: "",
},
pageData: {
current: 1,
size: 10,
},
tableData: {
total: 0,
columns: datas.columns(),
data: [],
},
};
},
methods: {
init (e) {
this.fetchData()
},
// 列表渲染接口
fetchData () {
getOperationLogList({ ...this.queryForm, ...this.pageData }).then(res => {
if (res.code === 200) {
let { total, records } = res.result
this.tableData.total = total;
this.tableData.data = records
}
})
},
queryClick(){
this.fetchData();
},
viewDetail(e){
this.$popup({
title: "操作日志",
width: "50%",
btnShow: false,
editItem: "xtjk/czrz/components/viewDialog",
height: "800px",
formData: {
item: e
},
cancel: function () { }, //取消事件的回调
confirm: function () {
that.loadBdcdylist();
}, //确认事件的回调
});
}
}
};
</script>
<style scoped lang="scss">
@import "~@/styles/public.scss";
</style>
......
import filter from '@/utils/filter.js'
let vm = null
const sendThis = (_this) => {
vm = _this
}
class data extends filter {
constructor() {
super()
}
columns () {
return [
{
label: '序号',
type: 'index',
width: '50',
render: (h, scope) => {
return (
<div>
{(vm.pageData.currentPage - 1) * vm.pageData.pageSize + scope.$index + 1}
</div>
)
}
},
{
prop: "czlx",
label: "操作类型",
width: '100'
},
{
prop: "apiUri",
label: "api接口",
width: '200'
},
{
prop: "creater",
label: "操作人员",
width: '100'
},
{
prop: "createtime",
label: "操作时间",
width: '150'
},
{
prop: "czfs",
label: "操作方式",
width: '100'
},
{
prop: "czywbh",
label: "操作业务编号",
width: '150'
},
{
prop: "cznr",
label: "操作内容",
render: (h, scope) => {
return <div class="item-cwnr">{scope.row.cznr}</div>
}
},
{
label: '操作',
width: '80',
align: 'center',
fixed: 'right',
render: (h, scope) => {
return <el-button type="text" onClick={() => { vm.viewDetail(scope.row) }}>查看</el-button>
}
}
]
}
}
let datas = new data()
export {
datas,
sendThis
}
<template>
<div>
<el-row :gutter="20">
<el-col :span="12">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span class="font-border">CPU</span>
</div>
<div class="flex-display">
<div class="width-50 font-border">属性</div>
<div class="font-border"></div>
</div>
<div class="flex-display">
<div class="width-50">核心数</div>
<div>{{serverData.xtjkCpu.cpuNum}}</div>
</div>
<div class="flex-display">
<div class="width-50">用户使用率</div>
<div>{{serverData.xtjkCpu.used}}%</div>
</div>
<div class="flex-display">
<div class="width-50">系统使用率</div>
<div>{{serverData.xtjkCpu.sys}}%</div>
</div>
<div class="flex-display">
<div class="width-50">当前空闲率</div>
<div>{{serverData.xtjkCpu.free}}%</div>
</div>
</el-card>
</el-col>
<el-col :span="12">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span class="font-border">内存</span>
</div>
<div class="flex-display">
<div class="width-33 font-border">属性</div>
<div class="width-33 font-border">内存</div>
<div class="font-border">JVM</div>
</div>
<div class="flex-display">
<div class="width-33">总内存</div>
<div class="width-33">{{serverData.xtjkMem.total}}G</div>
<div>{{serverData.xtjkJvm.total}}M</div>
</div>
<div class="flex-display">
<div class="width-33">已用内存</div>
<div class="width-33">{{serverData.xtjkMem.used}}G</div>
<div>{{serverData.xtjkJvm.used}}M</div>
</div>
<div class="flex-display">
<div class="width-33">剩余内存</div>
<div class="width-33">{{serverData.xtjkMem.free}}G</div>
<div>{{serverData.xtjkJvm.free}}M</div>
</div>
<div class="flex-display">
<div class="width-33">使用率</div>
<div class="width-33">{{serverData.xtjkMem.usage}}%</div>
<div>{{serverData.xtjkJvm.usage}}%</div>
</div>
</el-card>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="24">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span class=" font-border">服务器信息</span>
</div>
<div class="flex-display">
<div class="width-25 font-border">服务器名称</div>
<div class="width-25">{{serverData.xtjkSys.computerName}}</div>
<div class="width-25 font-border">操作系统</div>
<div>{{serverData.xtjkSys.osName}}</div>
</div>
<div class="flex-display">
<div class="width-25 font-border">服务器IP</div>
<div class="width-25">{{serverData.xtjkSys.computerIp}}</div>
<div class="width-25 font-border">系统架构</div>
<div>{{serverData.xtjkSys.osArch}}</div>
</div>
</el-card>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="24">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span class=" font-border">Java虚拟机信息</span>
</div>
<div class="flex-display">
<div class="width-25 font-border">Java名称</div>
<div class="width-25">{{serverData.xtjkJvm.name}}</div>
<div class="width-25 font-border">Java版本</div>
<div>{{serverData.xtjkJvm.version}}</div>
</div>
<div class="flex-display">
<div class="width-25 font-border">启动时间</div>
<div class="width-25">{{serverData.xtjkJvm.startTime}}</div>
<div class="width-25 font-border">运行时长</div>
<div>{{serverData.xtjkJvm.runTime}}</div>
</div>
<div class="flex-display">
<div class="width-25 font-border">安装路径</div>
<div>{{serverData.xtjkJvm.home}}</div>
</div>
<div class="flex-display">
<div class="width-25 font-border">项目路径</div>
<div>{{serverData.xtjkSys.userDir}}</div>
</div>
</el-card>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="24">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span class=" font-border">磁盘信息</span>
</div>
<div>
<el-table :data="serverData.sysFiles" stripe style="width: 100%">
<el-table-column prop="dirName" label="盘符路径" width="180"></el-table-column>
<el-table-column prop="sysTypeName" label="文件系统" width="180"></el-table-column>
<el-table-column prop="typeName" label="盘符类型"></el-table-column>
<el-table-column prop="total" label="总大小"></el-table-column>
<el-table-column prop="free" label="可用大小"></el-table-column>
<el-table-column prop="used" label="已用大小"></el-table-column>
<el-table-column prop="usage" label="已用百分比"></el-table-column>
</el-table>
</div>
</el-card>
</el-col>
</el-row>
</div>
</template>
<script>
import table from "@/utils/mixin/table"
import { getServerInfo } from "@/api/xtjk.js"
export default {
name: "zjjk",
components: { },
mixins: [table],
mounted () {
//sendThis(this);
},
computed: {
},
data () {
return {
serverData: {}
};
},
methods: {
init (e) {
this.fetchData()
},
// 列表渲染接口
fetchData () {
getServerInfo().then(res => {
if (res.code === 200) {
this.serverData = res.result
}
})
},
}
};
</script>
<style scoped lang="scss">
@import "~@/styles/public.scss";
.box-card{
margin: 5px 10px 10px 5px;
}
.flex-display {
display: flex;
margin-bottom: 10px;
border-bottom: 1px solid #e6ebf5;
}
.width-50 {
width: 50%;
padding-bottom: 10px;
}
.width-33 {
width: 33%;
padding-bottom: 10px;
}
.width-25 {
width: 25%;
padding-bottom: 10px;
}
.font-border {
font-weight: bolder
}
</style>
......@@ -133,7 +133,7 @@
<el-row :gutter="10">
<el-col :span="14" v-if="ruleForm.qlxx">
<el-form-item :class="flag ? 'marginBot0' : ''" label="共有方式:">
<el-radio-group :disabled="$route.query.viewtype==1" v-model="ruleForm.slywxx.gyfs">
<el-radio-group :disabled="$route.query.viewtype==1" @change="showCZInfo" v-model="ruleForm.slywxx.gyfs">
<el-radio label="1">单独所有</el-radio>
<el-radio label="2">共同共有</el-radio>
<el-radio label="3">按份所有</el-radio>
......@@ -142,7 +142,7 @@
</el-col>
<el-col :span="5" v-show="ruleForm.qlxx&&ruleForm.qlxx.gyfs == '2'">
<el-form-item :class="flag ? 'marginBot0' : ''" label="是否分别持证:">
<el-radio-group v-model="ruleForm.sffbcz">
<el-radio-group v-model="ruleForm.slywxx.sffbcz">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
......@@ -150,7 +150,7 @@
</el-col>
<el-col :span="5" v-show="ruleForm.qlxx&&ruleForm.qlxx.gyfs == '2'">
<el-form-item :class="flag ? 'marginBot0' : ''" label="持证人:">
<el-select v-model="ruleForm.czr" placeholder="持证人">
<el-select v-model="ruleForm.slywxx.czr" placeholder="持证人">
<el-option v-for="item in czrOptions" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
......@@ -222,6 +222,9 @@ export default {
upDateQlrxxList (val) {
this.ruleForm.qlrList = _.cloneDeep(val);
},
showCZInfo() {
console.log(this.ruleForm.slywxx.gyfs);
},
// 更新权利人信息
upDateYwrxxList (val) {
this.ruleForm.ywrList = _.cloneDeep(val);
......
......@@ -47,9 +47,7 @@
<div class="triangle"></div>
</div>
<el-form-item :class="flag ? 'marginBot0' : ''">
<el-button type="primary" @click="onClick">数据查看</el-button>
</el-form-item>
<el-button type="primary" style="float: right;margin-right: 20px; " @click="onClick">数据查看</el-button>
<el-row :gutter="10" v-if="ruleForm.qlxx">
<el-col :span="8">
......@@ -190,6 +188,7 @@
import InformationTable from "@/views/workflow/components/InformationTable";
import {Init, saveGZBatchData} from "@/api/fwsyqFlow.js";
import { mapGetters } from "vuex";
import SERVER from "@/api/config";
export default {
async created () {
this.propsParam = this.$attrs;
......@@ -258,7 +257,7 @@ export default {
this.$popup({
titleStyle: "left",
title: "登记簿详情", // 弹窗标题
editItem: "ywbl/fdcq2/slxxCompareDetai", // 弹窗内容
editItem: SERVER.SERVERAPI+"/rest/ywbl/fdcq2/slxxCompareDetai", // 弹窗内容
formData: {
bsmSlsq: this.propsParam.bsmSldy,
qllx: this.propsParam.qllx
......