Commit c5c497b6 authored by 周远喜's avatar 周远喜

系统管理

parent 574e518d
This diff is collapsed.
<template>
<Form ref="form" :model="entity" :rules="rules" :label-width="90">
<Row>
<Col :span="12"><FormItem :label="l('creationTime')" prop="creationTime"> <DatePicker type="date" v-model="entity.creationTime"></DatePicker>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('creatorUserId')" prop="creatorUserId"> <InputNumber v-model="entity.creatorUserId"></InputNumber>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('lastModificationTime')" prop="lastModificationTime"> <DatePicker type="date" v-model="entity.lastModificationTime"></DatePicker>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('lastModifierUserId')" prop="lastModifierUserId"> <InputNumber v-model="entity.lastModifierUserId"></InputNumber>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('isDeleted')" prop="isDeleted"> <InputNumber v-model="entity.isDeleted"></InputNumber>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('deletionTime')" prop="deletionTime"> <DatePicker type="date" v-model="entity.deletionTime"></DatePicker>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('deleterUserId')" prop="deleterUserId"> <InputNumber v-model="entity.deleterUserId"></InputNumber>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('timestamp')" prop="timestamp"> <DatePicker type="date" v-model="entity.timestamp"></DatePicker>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('level')" prop="level"> <Input v-model="entity.level"> </Input>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('messageTemplate')" prop="messageTemplate"> <Input v-model="entity.messageTemplate"> </Input>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('renderedMessage')" prop="renderedMessage"> <Input v-model="entity.renderedMessage"> </Input>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('clientIpAddress')" prop="clientIpAddress"> <Input v-model="entity.clientIpAddress"> </Input>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('loginName')" prop="loginName"> <Input v-model="entity.loginName"> </Input>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('tanentCode')" prop="tanentCode"> <Input v-model="entity.tanentCode"> </Input>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('host')" prop="host"> <Input v-model="entity.host"> </Input>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('status')" prop="status"> <Input v-model="entity.status"> </Input>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('requestUrl')" prop="requestUrl"> <InputFile v-model="entity.requestUrl"></InputFile>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('requestParam')" prop="requestParam"> <Input v-model="entity.requestParam"> </Input>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('exception')" prop="exception"> <Input v-model="entity.exception"> </Input>
</FormItem></Col>
</Row>
<FormItem>
<Button type="primary" @click="handleSubmit" :disabled="disabled">保存</Button>
<Button @click="handleClose" class="ml20">取消</Button>
</FormItem>
</Form>
</template>
<script>
import Api from './api'
export default {
name: 'Add',
data() {
return {
disabled: false,
entity: {creationTime: null,
creatorUserId: null,
lastModificationTime: null,
lastModifierUserId: null,
isDeleted: null,
deletionTime: null,
deleterUserId: null,
timestamp: null,
level: "",
messageTemplate: "",
renderedMessage: "",
clientIpAddress: "",
loginName: "",
tanentCode: "",
host: "",
status: "",
requestUrl: "",
requestParam: "",
exception: ""},
rules: {
name: [{ required: true, message: '必填', trigger: 'blur' }]
}
}
},
props: {
v: Object,
eid: Number
},
mounted() {
if (this.eid > 0) {
this.load(this.eid);
}
},
methods: {
handleSubmit() {
this.$refs.form.validate((v) => {
if (v) {
this.disabled = true;
Api.create(this.entity).then((r) => {
this.disabled = false;
if (r.success) {
this.$Message.success('保存成功')
this.$emit('on-ok')
} else {
this.$Message.error('保存失败')
}
}).catch(err => {
this.disabled = false;
this.$Message.error('保存失败')
console.warn(err)
})
}
})
},
handleClose() {
this.$emit('on-close')
},
load(v) {
Api.get({ id: v }).then(r => {
this.entity = r.result;
this.entity.id = 0;
});
},
l(key) {
key = "run_log" + "." + key;
return this.$t(key)
}
},
watch: {
v() {
this.entity = this.$u.clone(this.v)
},
eid(v) {
if (v > 0) {
this.load(v);
}
}
}
}
</script>
\ No newline at end of file
import Api from '@/plugins/request'
export default {
index:`${systemUrl}runlog/paged`,
paged(params){
return Api.post(`${systemUrl}/runlog/paged`,params);
},
get(params){
return Api.get(`${systemUrl}/runlog/get`,params);
},
create(params){
return Api.post(`${systemUrl}/runlog/create`,params);
},
update(params){
return Api.post(`${systemUrl}/runlog/update`,params);
},
delete(id) {
return Api.delete(`${systemUrl}/runlog/delete`,{params:{id:id}});
},
deletes(params) {
return Api.post(`${systemUrl}/runlog/batchdelete`,params);
}
}
\ No newline at end of file
<template>
<div class="detail">
<Row>
<Filed :span="12" :name="l('creationTime')">{{entity.creationTime}}</Filed>
<Filed :span="12" :name="l('creatorUserId')">{{entity.creatorUserId}}</Filed>
<Filed :span="12" :name="l('lastModificationTime')">{{entity.lastModificationTime}}</Filed>
<Filed :span="12" :name="l('lastModifierUserId')">{{entity.lastModifierUserId}}</Filed>
<Filed :span="12" :name="l('isDeleted')">{{entity.isDeleted}}</Filed>
<Filed :span="12" :name="l('deletionTime')">{{entity.deletionTime}}</Filed>
<Filed :span="12" :name="l('deleterUserId')">{{entity.deleterUserId}}</Filed>
<Filed :span="12" :name="l('timestamp')">{{entity.timestamp}}</Filed>
<Filed :span="12" :name="l('level')">{{entity.level}}</Filed>
<Filed :span="12" :name="l('messageTemplate')">{{entity.messageTemplate}}</Filed>
<Filed :span="12" :name="l('renderedMessage')">{{entity.renderedMessage}}</Filed>
<Filed :span="12" :name="l('clientIpAddress')">{{entity.clientIpAddress}}</Filed>
<Filed :span="12" :name="l('loginName')">{{entity.loginName}}</Filed>
<Filed :span="12" :name="l('tanentCode')">{{entity.tanentCode}}</Filed>
<Filed :span="12" :name="l('host')">{{entity.host}}</Filed>
<Filed :span="12" :name="l('status')">{{entity.status}}</Filed>
<Filed :span="12" :name="l('requestUrl')">{{entity.requestUrl}}</Filed>
<Filed :span="12" :name="l('requestParam')">{{entity.requestParam}}</Filed>
<Filed :span="12" :name="l('exception')">{{entity.exception}}</Filed>
</Row>
</div>
</template>
<script>
import Api from './api'
export default {
name: 'Add',
data() {
return {
entity: {},
rules: {
name: [{ required: true, message: '必填', trigger: 'blur' }],
code: [{ required: true, message: '必填', trigger: 'blur' }]
}
}
},
props: {
eid: Number
},
mounted() {
if (this.eid > 0) {
this.load(this.eid);
}
},
methods: {
load(v) {
Api.get({ id: v }).then(r => {
this.entity = r.result;
this.$emit('on-load')
})
},
handleClose() {
this.$emit('on-close')
},
l(key) {
key = "run_log" + "." + key;
return this.$t(key)
}
},
watch: {
eid(v) {
if (v > 0) {
this.load(v);
}
}
}
}
</script>
\ No newline at end of file
<template>
<Form ref="form" :model="entity" :rules="rules" :label-width="90">
<Row>
<Col :span="12"><FormItem :label="l('creationTime')" prop="creationTime"> <DatePicker type="date" v-model="entity.creationTime"></DatePicker>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('creatorUserId')" prop="creatorUserId"> <InputNumber v-model="entity.creatorUserId"></InputNumber>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('lastModificationTime')" prop="lastModificationTime"> <DatePicker type="date" v-model="entity.lastModificationTime"></DatePicker>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('lastModifierUserId')" prop="lastModifierUserId"> <InputNumber v-model="entity.lastModifierUserId"></InputNumber>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('isDeleted')" prop="isDeleted"> <InputNumber v-model="entity.isDeleted"></InputNumber>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('deletionTime')" prop="deletionTime"> <DatePicker type="date" v-model="entity.deletionTime"></DatePicker>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('deleterUserId')" prop="deleterUserId"> <InputNumber v-model="entity.deleterUserId"></InputNumber>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('timestamp')" prop="timestamp"> <DatePicker type="date" v-model="entity.timestamp"></DatePicker>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('level')" prop="level"> <Input v-model="entity.level"> </Input>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('messageTemplate')" prop="messageTemplate"> <Input v-model="entity.messageTemplate"> </Input>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('renderedMessage')" prop="renderedMessage"> <Input v-model="entity.renderedMessage"> </Input>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('clientIpAddress')" prop="clientIpAddress"> <Input v-model="entity.clientIpAddress"> </Input>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('loginName')" prop="loginName"> <Input v-model="entity.loginName"> </Input>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('tanentCode')" prop="tanentCode"> <Input v-model="entity.tanentCode"> </Input>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('host')" prop="host"> <Input v-model="entity.host"> </Input>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('status')" prop="status"> <Input v-model="entity.status"> </Input>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('requestUrl')" prop="requestUrl"> <InputFile v-model="entity.requestUrl"></InputFile>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('requestParam')" prop="requestParam"> <Input v-model="entity.requestParam"> </Input>
</FormItem></Col>
<Col :span="12"><FormItem :label="l('exception')" prop="exception"> <Input v-model="entity.exception"> </Input>
</FormItem></Col>
</Row>
<FormItem>
<Button type="primary" @click="handleSubmit" :disabled="disabled">保存</Button>
<Button @click="handleClose" class="ml20">取消</Button>
</FormItem>
</Form>
</template>
<script>
import Api from './api'
export default {
name: 'Edit',
data() {
return {
disabled: false,
entity: {
},
rules: {
name: [{ required: true, message: '必填', trigger: 'blur' }]
}
}
},
props: {
eid: Number
},
mounted() {
if (this.eid > 0) {
this.load(this.eid);
}
},
methods: {
load(v) {
Api.get({ id: v }).then(r => {
this.entity = r.result;
})
},
handleSubmit() {
this.$refs.form.validate((v) => {
if (v) {
this.disabled = true;
Api.update(this.entity).then((r) => {
this.disabled = false;
if (r.success) {
this.$Message.success('保存成功')
this.$emit('on-ok')
} else {
this.$Message.error('保存失败')
}
}).catch(err => {
this.disabled = false;
this.$Message.error('保存失败')
console.warn(err)
})
}
})
},
handleClose() {
this.$emit('on-close')
},
l(key) {
key = "run_log" + "." + key;
return this.$t(key)
}
},
watch: {
eid(v) {
if (v != 0) {
this.load(v);
}
}
}
}
</script>
\ No newline at end of file
<template>
<div>
<DataGrid :columns="columns" ref="grid" :action="action">
<template slot="easySearch">
<Form ref="formInline" :model="easySearch" inline>
<FormItem prop="keys">
<Input placeholder="请输入关键字登录账号/租户编号" v-width="260" v-model="easySearch.keys.value" />
</FormItem>
<FormItem>
<Button type="primary" @click="search">查询</Button>
</FormItem>
</Form>
</template>
<template slot="searchForm">
<Search />
</template>
<template slot="buttons">
<!-- <Button type="primary" @click="add">新增</Button> -->
</template>
</DataGrid>
<Modal v-model="modal" :title="title" width="1200" footer-hide>
<component :is="detail" :eid="curId" @on-close="cancel" @on-ok="ok" />
</Modal>
</div>
</template>
<script>
import Api from "./api";
import Search from "./search";
export default {
name: "list",
components: {
Search
},
head: {
title: "系统异常日志",
author: "henq",
description: "run_log 7/15/2020 11:01:01 AM"
},
data() {
return {
action: Api.index,
easySearch: {
keys: { op: "loginName,tanentCode", value: null }
},
modal: false,
title: "新增",
detail: null,
curId: 0,
columns: [
{
key: "id",
title: this.$t("id"),
hide: true,
align: "left",
high: true
},
// { key:"creationTime",title:this.l("creationTime") ,align:"left" ,high:true },
// { key:"creatorUserId",title:this.l("creatorUserId") ,align:"left" ,high:true },
// { key:"lastModificationTime",title:this.l("lastModificationTime") ,align:"left" ,high:true },
// { key:"lastModifierUserId",title:this.l("lastModifierUserId") ,align:"left" ,high:true },
// { key:"isDeleted",title:this.l("isDeleted") ,align:"left" ,high:true },
// { key:"deletionTime",title:this.l("deletionTime") ,align:"left" ,high:true },
// { key:"deleterUserId",title:this.l("deleterUserId") ,align:"left" ,high:true },
{
key: "timestamp",
title: this.l("timestamp"),
align: "left",
high: true
},
{ key: "level", title: this.l("level"), align: "left", high: true },
{
key: "messageTemplate",
title: this.l("messageTemplate"),
align: "left",
high: true
},
{
key: "renderedMessage",
title: this.l("renderedMessage"),
align: "left",
high: true
},
{
key: "clientIpAddress",
title: this.l("clientIpAddress"),
hide: true,
align: "left",
high: true
},
{
key: "loginName",
title: this.l("loginName"),
align: "left",
easy: true,
high: true
},
{
key: "tanentCode",
title: this.l("tanentCode"),
align: "left",
easy: true,
high: true
},
{ key: "host", title: this.l("host"), align: "left", high: true },
{ key: "status", title: this.l("status"), align: "left", high: true },
{
key: "requestUrl",
title: this.l("requestUrl"),
align: "left",
high: true
},
{
key: "requestParam",
title: this.l("requestParam"),
align: "left",
high: true
},
{
key: "exception",
title: this.l("exception"),
align: "left",
high: true
},
{
title: "操作",
key: "action",
width: 140,
align: "center",
render: (h, params) => {
return h("div", { class: "action" }, [
h(
"op",
{
attrs: { oprate: "detail" },
on: { click: () => this.view(params.row.id) }
},
"查看"
),
//h('op', { attrs: { oprate: 'copy' }, on: { click: () => this.copy(params.row.id) } }, '克隆'),
// h('op', { attrs: { oprate: 'edit'}, on: { click: () => this.edit(params.row.id) } }, '编辑'),
h(
"op",
{
attrs: { oprate: "delete" },
on: { click: () => this.remove(params.row.id) }
},
"删除"
)
]);
}
}
]
};
},
mounted() {
console.log(this);
},
async fetch({ store, params }) {
await store.dispatch("loadDictionary"); // 加载数据字典
},
methods: {
ok() {
this.$refs.grid.load();
this.modal = false;
this.curId = 0;
},
search() {
this.$refs.grid.reload(this.easySearch);
},
add() {
this.curId = 0;
this.title = "新增";
this.detail = () => import("./add");
this.modal = true;
},
copy(id) {
this.curId = id;
this.title = "克隆";
this.detail = () => import("./add");
this.modal = true;
},
view(id) {
this.curId = id;
this.title = "详情";
this.detail = () => import("./detail");
this.modal = true;
},
edit(id) {
this.curId = id;
this.title = "编辑";
this.detail = () => import("./edit");
this.modal = true;
},
remove(id) {
Api.delete(id).then(r => {
if (r.success) {
this.$refs.grid.load();
this.$Message.success("删除成功");
}
});
},
cancel() {
this.curId = 0;
this.modal = false;
},
l(key) {
/*
*/
let vkey = "run_log" + "." + key;
return this.$t(vkey) || key;
}
}
};
</script>
<style lang="less">
</style>
\ No newline at end of file
<template>
<Form ref="form" :model="condition" :label-width="90">
<Row>
<Col :span="12" :v-if="condition.id.show"><FormItem :label="$t('id')" prop="id"> <Input v-model="condition.id.value"> </Input>
</FormItem></Col>
<Col :span="12" :v-if="condition.creationTime.show"><FormItem :label="l('creationTime')" prop="creationTime"> <DatePicker type="daterange" v-model="condition.creationTime.value"></DatePicker>
</FormItem></Col>
<Col :span="12" :v-if="condition.creatorUserId.show"><FormItem :label="l('creatorUserId')" prop="creatorUserId"> <Input v-model="condition.creatorUserId.value"> </Input>
</FormItem></Col>
<Col :span="12" :v-if="condition.lastModificationTime.show"><FormItem :label="l('lastModificationTime')" prop="lastModificationTime"> <DatePicker type="daterange" v-model="condition.lastModificationTime.value"></DatePicker>
</FormItem></Col>
<Col :span="12" :v-if="condition.lastModifierUserId.show"><FormItem :label="l('lastModifierUserId')" prop="lastModifierUserId"> <Input v-model="condition.lastModifierUserId.value"> </Input>
</FormItem></Col>
<Col :span="12" :v-if="condition.deletionTime.show"><FormItem :label="l('deletionTime')" prop="deletionTime"> <DatePicker type="daterange" v-model="condition.deletionTime.value"></DatePicker>
</FormItem></Col>
<Col :span="12" :v-if="condition.timestamp.show"><FormItem :label="l('timestamp')" prop="timestamp"> <DatePicker type="daterange" v-model="condition.timestamp.value"></DatePicker>
</FormItem></Col>
<Col :span="12" :v-if="condition.level.show"><FormItem :label="l('level')" prop="level"> <Input v-model="condition.level.value"> </Input>
</FormItem></Col>
<Col :span="12" :v-if="condition.messageTemplate.show"><FormItem :label="l('messageTemplate')" prop="messageTemplate"> <Input v-model="condition.messageTemplate.value"> </Input>
</FormItem></Col>
<Col :span="12" :v-if="condition.renderedMessage.show"><FormItem :label="l('renderedMessage')" prop="renderedMessage"> <Input v-model="condition.renderedMessage.value"> </Input>
</FormItem></Col>
<Col :span="12" :v-if="condition.clientIpAddress.show"><FormItem :label="l('clientIpAddress')" prop="clientIpAddress"> <Input v-model="condition.clientIpAddress.value"> </Input>
</FormItem></Col>
<Col :span="12" :v-if="condition.loginName.show"><FormItem :label="l('loginName')" prop="loginName"> <Input v-model="condition.loginName.value"> </Input>
</FormItem></Col>
<Col :span="12" :v-if="condition.tanentCode.show"><FormItem :label="l('tanentCode')" prop="tanentCode"> <Input v-model="condition.tanentCode.value"> </Input>
</FormItem></Col>
<Col :span="12" :v-if="condition.host.show"><FormItem :label="l('host')" prop="host"> <Input v-model="condition.host.value"> </Input>
</FormItem></Col>
<Col :span="12" :v-if="condition.status.show"><FormItem :label="l('status')" prop="status"> <Input v-model="condition.status.value"> </Input>
</FormItem></Col>
<Col :span="12" :v-if="condition.requestUrl.show"><FormItem :label="l('requestUrl')" prop="requestUrl"> <Input v-model="condition.requestUrl.value"> </Input>
</FormItem></Col>
<Col :span="12" :v-if="condition.requestParam.show"><FormItem :label="l('requestParam')" prop="requestParam"> <Input v-model="condition.requestParam.value"> </Input>
</FormItem></Col>
<Col :span="12" :v-if="condition.exception.show"><FormItem :label="l('exception')" prop="exception"> <Input v-model="condition.exception.value"> </Input>
</FormItem></Col>
</Row>
</Form>
</template>
<script>
import Api from './api'
export default {
name: 'Add',
data() {
return {
condition: {
id:{op:"Equal",value:null,show:true},
creationTime:{op:"Range",value:null,show:true},
creatorUserId:{op:"Equal",value:null,show:true},
lastModificationTime:{op:"Range",value:null,show:true},
lastModifierUserId:{op:"Equal",value:null,show:true},
deletionTime:{op:"Range",value:null,show:true},
timestamp:{op:"Range",value:null,show:true},
level:{op:"Equal",value:null,show:true},
messageTemplate:{op:"Equal",value:null,show:true},
renderedMessage:{op:"Equal",value:null,show:true},
clientIpAddress:{op:"Equal",value:null,show:true},
loginName:{op:"Equal",value:null,show:true},
tanentCode:{op:"Equal",value:null,show:true},
host:{op:"Equal",value:null,show:true},
status:{op:"Equal",value:null,show:true},
requestUrl:{op:"Equal",value:null,show:true},
requestParam:{op:"Equal",value:null,show:true},
exception:{op:"Equal",value:null,show:true},
},
}
},
methods: {
handleClose() {
this.$emit('on-close')
},
l(key) {
key = "run_log" + "." + key;
return this.$t(key)
}
}
}
</script>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment