Authored by 鲁尚清

Merge branch 'master-500-dev' of http://192.168.1.136:82/monitor_v3/hg-monitor-w…

…eb into master-500-dev-lushangqing
layui.define(['table', 'laydate', 'admin', 'view', 'common', 'sessions'], function (exports) {
var $ = layui.$;
var view = layui.view;
var table = layui.table;
var common = layui.common;
var laydate = layui.laydate;
var admin = layui.admin;
//对外暴露的接口
exports('onlineUser', function () {
var sessions = layui.sessions;
var accessToken = sessions.getToken().access_token;
var loginLog = "";
var cols = [{field: 'loginTime', title: '登录时间', align: 'center'}
, {field: 'loginIp', title: 'IP地址', align: 'center'}
, {field: 'nickname', title: '登录用户', align: 'center'}
, {field: 'orgName', title: '所属部门', align: 'center'}];
loginLogTable();
function loginLogTable() {
loginLog = table.render({
elem: '#onlineUserTable'
, height: 'full-auto'
, cellMinWidth: 0
, page: 1
, limit: 10
, url: common.domainName + '/api-log/sysLogin/findLogUser?access_token='+accessToken
, cols: [cols]
, done: function (res, curr, count) {
}
});
}
//刷新表格
function reloadTable() {
loginLog.reload({
page: {
curr: 1
}
, where: {
access_token: accessToken,
username: $("#loginAccount").val(),
startTime: $("#loginLogStartdate").val(),
endTime: $("#loginLogEnddate").val(),
mark: $("#loginLonMark").val(),
orgIds: settingOrgSelect.getValue("valueStr")
}
});
}
});
});
... ...
... ... @@ -41,11 +41,14 @@ layui.define(['table', 'laydate', 'admin', 'view', 'common', 'sessions'], functi
url = common.domainName +'/api-log/sysLogin/findLogPage?access_token='+accessToken
loginLogTable()
$("#loginUserNum").unbind("click").on('click', function () {
$("#loginLonMark").val("mark")
$("#loginAccount").val(""),
$("#loginLogStartdate").val(""),
$("#loginLogEnddate").val(""),
reloadTable();
// $("#loginLonMark").val("mark")
// $("#loginAccount").val(""),
// $("#loginLogStartdate").val(""),
// $("#loginLogEnddate").val(""),
// reloadTable();
common.openWin('setting/onlineUser', '在线用户', {}, [], function f() {
},null,['60%', '45%']);
})
} else {
$("#generalUserHeader").show();
... ... @@ -213,4 +216,4 @@ layui.define(['table', 'laydate', 'admin', 'view', 'common', 'sessions'], functi
});
}
});
});
\ No newline at end of file
});
... ...
<div class="layui-card-body">
<table id="onlineUserTable"></table>
</div>
<style>
</style>
<script>
layui.use('onlineUser', function (fn) {
fn({{d}})
})
</script>
... ...
... ... @@ -2,6 +2,7 @@
<el-row :gutter="5">
<el-col :span="layout.left">
<div style="border-radius: 3px;background-color: white"
onmouseout="$('.tree-tools').hide();"
:style="{'height':height+'px','max-height':height + 'px','overflow':'auto'}">
<div v-if="showTitle" style="text-align: left;padding-left: 10px;padding-top: 3px;font-weight: bold">
<slot name="title">
... ... @@ -9,14 +10,18 @@
</slot>
</div>
<!---->
<el-tree ref="tree" style="padding:6px;" :props="props" :data="treeData" node-key="id"
<el-tree ref="tree" style="padding:6px;width: 600px" :props="props" :data="treeData" node-key="id"
:expand-on-click-node="false" :expand-on-click-node="true" :default-expanded-keys="defaultExpandedKeys">
<template #default="{ node, data }">
<div style="display: flex;flex-direction: row;width: 100%;">
<div :style="{'width':isAdmin() ? 'calc(100% - 85px)':'100%','max-width':isAdmin() ? 'calc(100% - 85px)':'100%'}" style="overflow: hidden;text-overflow: ellipsis;text-align: left;" @click="nodeClick(node, data)" :title="node.label">
<div :style="{'width':isAdmin() ? 'calc(100% - 85px)':'100%','max-width':isAdmin() ? 'calc(100% - 85px)':'100%'}"
onmouseover="$('.tree-tools').hide();$(this).next().show()"
style="overflow: hidden;text-overflow: ellipsis;text-align: left;" @click="nodeClick(node, data)" :title="node.label">
{{node.label }}
</div>
<div v-if="isAdmin()" :style="{'width':isAdmin()?'60px':'0px'}">
<div onmouseout="$(this).hide()"
class="tree-tools"
v-if="isAdmin()" :style="{'width':isAdmin()?'80px':'0px','position': 'fixed','left': '200px','display':'none','background':'#F2F6FC'}">
<a @click="editType(data)" v-if="!data.root" style="margin-right: 10px;">
<i class="el-icon-edit"></i>
</a>
... ... @@ -184,15 +189,15 @@
<el-input :size="$global.elementSize" v-model="docForm.name" clearable ></el-input>
</el-form-item>
<!-- <div v-if="!isUserFolder">
<el-form-item label="文档编号" prop="docNo">
<el-input :size="$global.elementSize" v-model="docForm.docNo" clearable></el-input>
</el-form-item>
<!-- <div v-if="!isUserFolder">
<el-form-item label="文档编号" prop="docNo">
<el-input :size="$global.elementSize" v-model="docForm.docNo" clearable></el-input>
</el-form-item>
<el-form-item label="文档类型" prop="type">
<el-input :size="$global.elementSize" v-model="docForm.type" clearable></el-input>
</el-form-item>
</div>-->
<el-form-item label="文档类型" prop="type">
<el-input :size="$global.elementSize" v-model="docForm.type" clearable></el-input>
</el-form-item>
</div>-->
<el-form-item label="排序" prop="sort">
... ...
<div class="container" :style="{'height':height+'px','max-height':height+'px'}">
<div class="cm-card" :style="{'min-height':height+'px','max-height':height+'px','height':'100%'}">
<div class="search">
<div class="btns" style="justify-content: left;padding-left: 0px">
<div class="keyword" style="padding-left: 10px">
<el-form-item >
<el-input v-model="search.keyword" placeholder="请输入关键字,回车搜索" @keydown.enter.native="getDataList"></el-input>
</el-form-item>
</div>
<div class="selectType" style="padding-left: 10px;width: 120px;">
<el-select v-model="couponSelected" class="m-2" placeholder="请选择" size="large" @change="onChangeStripe">
<el-option
v-for="item in typeOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</div>
<div class="adds" style="">
<el-form-item>
<el-button type="primary" @click="addAj()" style="margin-left: 10px">新增</el-button>
<el-button @click="addAj()" style="margin-left: 10px">新增</el-button>
</el-form-item>
</div>
<div class="design" style="float:right;padding-left: 1410px">
<div class="design" style="float:right;padding-left: 1200px">
<el-form-item>
<el-button type="primary" @click="handleView()" style="margin-left: 10px">设计</el-button>
</el-form-item>
... ... @@ -68,9 +83,11 @@
<el-form-item label="类型" prop="type">
<div style="width: 240px">
<el-radio v-model="ajConfigFrom.type" label="0" size="large">菜单</el-radio>
<el-radio v-model="ajConfigFrom.type" label="1" size="large">按钮</el-radio>
<el-radio v-model="ajConfigFrom.type" label="2" size="large">详情页</el-radio>
</div>
<!-- <div style="height: 15px; color: darkgrey">说明:参数中间用'&'拼接</div>-->
</el-form-item>
... ... @@ -96,7 +113,7 @@
<el-input :size="$global.elementSize" v-model="ajConfigFrom.menuName" clearable></el-input>
</el-form-item>
<el-form-item label="菜单标题" prop="title" v-if="ajConfigFrom.type==1">
<el-form-item label="弹框标题" prop="title" v-if="ajConfigFrom.type==1">
<el-input :size="$global.title" v-model="ajConfigFrom.title" clearable></el-input>
</el-form-item>
... ...
... ... @@ -19,11 +19,31 @@ export default {
message: '请选择类型!',
trigger: 'blur',
}],
menuPid:[{
required: true,
message: '请选择父菜单!',
trigger: 'blur',
}],
menuName:[{
required: true,
message: '请填写菜单名称!',
trigger: 'blur',
}],
title:[{
required: true,
message: '请填写弹框标题!',
trigger: 'blur',
}],
designPage:[{
required: true,
message: '请选择设计页面!',
trigger: 'blur',
}],
resType:[{
required: true,
message: '请选择资源类型!',
trigger: 'blur',
}],
/*resource:[{
required: true,
message: '请填写绑定资源!',
... ... @@ -50,7 +70,8 @@ export default {
desc:'用户id'
}]);
//表格字段
let columns=Vue.ref([
let columns=Vue.ref([]);
let detailColumns=Vue.ref([
{
prop: 'id',
label: '编号',
... ... @@ -90,6 +111,88 @@ export default {
align: 'left'
}
])
let menuColumns=Vue.ref([
{
prop: 'id',
label: '编号',
sortable: true,
align: 'center',
width:'250'
},
{
prop: 'type',
label: '类型',
sortable: true,
align: 'center',
width:'250',
},
{
prop: 'menuName',
label: '菜单名称',
sortable: true,
align: 'center',
width:'250'
},
{
prop: 'designPage',
label: '设计器编码',
sortable: true,
align: 'center',
width:'250'
},{
prop: 'param',
label: '参数',
sortable: true,
align: 'center',
width:'300'
},{
prop: 'creatTime',
label: '创建时间',
sortable: true,
align: 'left'
}
])
let butColumns=Vue.ref([
{
prop: 'id',
label: '编号',
sortable: true,
align: 'center',
width:'250'
},
{
prop: 'type',
label: '类型',
sortable: true,
align: 'center',
width:'250',
},
{
prop: 'title',
label: '弹框标题',
sortable: true,
align: 'center',
width:'250'
},
{
prop: 'designPage',
label: '设计器编码',
sortable: true,
align: 'center',
width:'250'
},{
prop: 'param',
label: '参数',
sortable: true,
align: 'center',
width:'300'
},{
prop: 'creatTime',
label: '创建时间',
sortable: true,
align: 'left'
}
])
let currentPage=Vue.ref(1);
let pageSize=Vue.ref(10);
let keyword=Vue.ref();
... ... @@ -105,6 +208,27 @@ export default {
let options=Vue.ref([]);
//菜单下拉框
let menuOptions=Vue.ref([]);
let search = Vue.ref({
keyword:'',
type:'',
page:1,
limit:10,
});
//按钮下拉框
let typeOptions=Vue.ref([
{
value: '0',
label: '菜单',
},
{
value: '1',
label: '按钮',
},
{
value: '2',
label: '详情页',
}]);
let couponSelected = Vue.ref();
let ajConfigFrom = Vue.ref({
id:'',
type: 0,
... ... @@ -253,18 +377,39 @@ export default {
//重新加载表格数据
let loadTableDataList = ({page, limit}) => {
currentPage.value=page;
pageSize.value=limit;
search.value.page = page;
search.value.limit = limit;
getDataList()
}
let onChangeStripe = (e)=>{
if(e =='0'){
columns.value=menuColumns.value;
}
if (e =='1'){
columns.value=butColumns.value;
}
if (e =='2'){
columns.value=detailColumns.value;
}
search.value.type=e;
getDataList()
}
//获取aj配置信息
let getDataList=()=>{
proxy.$http.get(`/api-web/ajConfig/ajConfigList`,null, function (res) {
let params={
page:search.value.page,
limit:search.value.limit,
type:search.value.type,
keyword:search.value.keyword
}
proxy.$http.get(`/api-web/ajConfig/ajConfigList`,params, function (res) {
if (res && res.data) {
count.value = res.data.length;
count.value = res.count;
tableDataList.value = res.data;
}else{
count.value = 0;
tableDataList.value='暂无数据';
}
});
... ... @@ -277,8 +422,10 @@ export default {
}
// 挂载完
Vue.onMounted(() => {
couponSelected.value = typeOptions.value[0].label;
columns.value=menuColumns.value;
search.value.type=typeOptions.value[0].value;
getDataList();
})
... ... @@ -337,7 +484,13 @@ export default {
menuList,
menuOptions,
getResType,
configs
configs,
typeOptions,
onChangeStripe,
search,
butColumns,
detailColumns,
couponSelected
}
}
... ...