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
... ... @@ -4,11 +4,13 @@
<div class="condition">
<div class="keyword" style="padding-left: 10px">
<el-input v-model="search.keyword" :size="$global.elementConfig.size.input" placeholder="请输入关键字,回车搜索" @keydown.enter.native="getDataList"></el-input>
<el-input v-model="search.keyword" :size="$global.elementConfig.size.input"
placeholder="请输入关键字(回车搜索)" @keydown.enter.native="getDataList"></el-input>
</div>
<div class="selectType" style="padding-left: 10px;width: 120px;">
<el-select v-model="couponSelected" class="m-2" placeholder="请选择" :size="$global.elementConfig.size.input" @change="onChangeStripe">
<el-select v-model="couponSelected" class="m-2" placeholder="请选择"
:size="$global.elementConfig.size.input" @change="onChangeStripe">
<el-option
v-for="item in typeOptions"
:key="item.value"
... ... @@ -23,7 +25,9 @@
<div class="btns">
<el-form-item>
<el-button type="primary" @click="handleView()" :size="$global.elementConfig.size.button" style="margin-left: 10px">设计</el-button>
<el-button type="primary" @click="handleView()" :size="$global.elementConfig.size.button"
style="margin-left: 10px">设计
</el-button>
</el-form-item>
</div>
</div>
... ... @@ -32,7 +36,7 @@
<cm-table-page :columns="columns" :dataList="tableDataList" @loaddata="loadTableDataList"
:showIndex="true" :total="count" :showSelection="true"
:showBorder="true" :loading="false" :pageSize="pageSize"
:showPage="true" :showTools="true" :height="(height - 130)" >
:showPage="true" :showTools="true" :height="(height - 130)">
<template #default="{row,prop,column}">
<div v-if="prop == 'type'">
<div v-if="row.type == 0">
... ... @@ -50,15 +54,15 @@
</template>
<template #tools="{scope}">
<div class="list-handle">
<span class="icon-bg">
<i class="el-icon-delete" title="删除" @click="handleDelete(scope.row)"></i>
</span>
<span class="icon-bg">
<i class="el-icon-edit-outline" title="修改" @click="handleUpdate(scope.row)"></i>
</span>
<i class="el-icon-delete" title="删除" @click="handleDelete(scope.row)"></i>
</span>
<span class="icon-bg">
<i class="el-icon-view" title="预览" @click="preview(scope.row)"></i>
</span>
<i class="el-icon-edit-outline" title="修改" @click="handleUpdate(scope.row)"></i>
</span>
<span class="icon-bg">
<i class="el-icon-view" title="预览" @click="preview(scope.row)"></i>
</span>
</div>
</template>
</cm-table-page>
... ... @@ -67,10 +71,11 @@
</div>
<!--新增编辑弹框-->
<cm-dialog :title="titleName" width="40%" :showDialogVisible="cacheVisible" @hidedialog="cancelBtn" :showFooter="false">
<cm-dialog :title="titleName" width="700px" :showDialogVisible="cacheVisible" @hidedialog="cancelBtn"
:showFooter="false">
<template v-slot>
<el-form
label-width="120px"
label-width="100px"
ref="ruleForm"
:model="ajConfigFrom"
:rules="docRulesForm"
... ... @@ -78,17 +83,19 @@
label-width="120px">
<el-form-item label="编号" prop="id">
<el-input :size="$global.elementSize" v-model="ajConfigFrom.id" clearable></el-input>
<el-input :size="$global.elementConfig.size.input" v-model="ajConfigFrom.id" clearable></el-input>
</el-form-item>
<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>
<el-radio v-model="ajConfigFrom.type" label="0" :size="$global.elementConfig.size.input">菜单
</el-radio>
<el-radio v-model="ajConfigFrom.type" label="1" :size="$global.elementConfig.size.input">按钮
</el-radio>
<el-radio v-model="ajConfigFrom.type" label="2" :size="$global.elementConfig.size.input">详情页
</el-radio>
</div>
<!-- <div style="height: 15px; color: darkgrey">说明:参数中间用'&'拼接</div>-->
</el-form-item>
... ... @@ -97,6 +104,7 @@
filterable
allow-create
default-first-option
:size="$global.elementConfig.size.input"
:reserve-keyword="false"
placeholder="请选择" style="width: 100%;">
<el-option
... ... @@ -110,43 +118,48 @@
</el-form-item>
<el-form-item label="菜单名称" prop="menuName" v-if="ajConfigFrom.type==0">
<el-input :size="$global.elementSize" v-model="ajConfigFrom.menuName" clearable></el-input>
<el-input v-model="ajConfigFrom.menuName" clearable
:size="$global.elementConfig.size.input"></el-input>
</el-form-item>
<el-form-item label="弹框标题" prop="title" v-if="ajConfigFrom.type==1">
<el-input :size="$global.title" v-model="ajConfigFrom.title" clearable></el-input>
<el-input v-model="ajConfigFrom.title" clearable
:size="$global.elementConfig.size.input"></el-input>
</el-form-item>
<el-form-item label="设计页面" prop="designPage">
<el-select v-model="ajConfigFrom.designPage"
filterable
allow-create
default-first-option
:reserve-keyword="false"
placeholder="请选择" style="width: 91.73%;">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
:disabled="item.disabled">
</el-option>
</el-select>
<el-tag @click="preview(ajConfigFrom.designPage)" style="padding-top:4px;height: 38px; cursor:pointer">预览</el-tag>
<div style="width: 100%;display: flex;">
<el-select v-model="ajConfigFrom.designPage"
filterable
allow-create
default-first-option
:reserve-keyword="false"
:size="$global.elementConfig.size.input"
placeholder="请选择" style="width: 91.73%;">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
:disabled="item.disabled">
</el-option>
</el-select>
<el-button :size="$global.elementConfig.size.input" style="margin-left: 10px" @click="preview(ajConfigFrom.designPage)">预览</el-button>
</div>
</el-form-item>
<el-form-item label="传递参数" prop="param">
<el-input :size="$global.elementSize" v-model="ajConfigFrom.param" clearable></el-input>
<el-input :size="$global.elementConfig.size.input" v-model="ajConfigFrom.param" clearable></el-input>
<div style="color: darkgrey">
<div>
<el-collapse>
<el-collapse-item name="1">
<el-collapse-item name="1">
<template #title>
示例:&resId=#resId&access_token=#access_token
</el-icon>
</template>
<div style="font-size: 12px;text-align: left">可配置字段:</div>
<el-descriptions :column="2" size="mini" border >
<el-descriptions :column="2" size="mini" border>
<el-descriptions-item v-for="item in configs">
<template #label>
<div class="cell-item">
... ... @@ -163,15 +176,15 @@
</el-form-item>
<el-form-item label="资源类型" prop="resType" v-if="ajConfigFrom.type==2" style="text-align: left">
<!--<el-input :size="$global.elementSize" v-model="ajConfigFrom.resType" clearable></el-input>-->
<el-dropdown>
<cm-res-type-tree-input multiple clearable collapseTags @callback="getResType"/>
</el-dropdown>
</el-form-item>
<el-form-item label="厂商" prop="provider" v-if="ajConfigFrom.type==2" style="text-align: left">
<!--<el-input :size="$global.elementSize" v-model="ajConfigFrom.firm" clearable></el-input>-->
<el-select v-model="ajConfigFrom.provider" filterable clearable collapse-tags placeholder="请选择厂商" style="width: 100%">
<el-select v-model="ajConfigFrom.provider" filterable clearable collapse-tags placeholder="请选择厂商"
:size="$global.elementConfig.size.input"
style="width: 100%">
<el-option
v-for="item in ddicProvider"
:label="item.ddicName" :value="item.ddicCode"></el-option>
... ... @@ -180,8 +193,8 @@
<el-form-item label="操作系统" prop="os" v-if="ajConfigFrom.type==2" style="text-align: left">
<!--<el-input :size="$global.elementSize" v-model="ajConfigFrom.firm" clearable></el-input>-->
<el-select v-model="ajConfigFrom.os" filterable clearable collapse-tags placeholder="请选择操作类型" style="width: 100%">
<el-select v-model="ajConfigFrom.os" filterable clearable collapse-tags placeholder="请选择操作类型"
style="width: 100%">
<el-option
v-for="item in ddicOS"
:label="item.ddicName" :value="item.ddicCode"></el-option>
... ... @@ -193,12 +206,12 @@
</el-form-item>-->
<el-form-item label="备注" prop="remark">
<el-input :size="$global.elementSize" v-model="ajConfigFrom.remark" clearable></el-input>
<el-input :size="$global.elementConfig.size.input" v-model="ajConfigFrom.remark" clearable></el-input>
</el-form-item>
<el-form-item>
<el-button :size="$global.elementSize" type="primary" @click="addAjConfig('ruleForm')">保存</el-button>
<el-button :size="$global.elementSize" @click="cancelBtn">取消</el-button>
<el-button :size="$global.elementConfig.size.input" type="primary" @click="addAjConfig('ruleForm')">保存</el-button>
<el-button :size="$global.elementConfig.size.input" @click="cancelBtn">取消</el-button>
</el-form-item>
</el-form>
</template>
... ...
... ... @@ -2,10 +2,10 @@ export default {
name: 'ajConfig',
template: '',
components: {},
props:[],
data () {
props: [],
data() {
return {
radio:'0',
radio: '0',
docRulesForm: {
id: [
{
... ... @@ -14,32 +14,32 @@ export default {
trigger: 'blur',
}
],
type:[{
type: [{
required: true,
message: '请选择类型!',
trigger: 'blur',
}],
menuPid:[{
menuPid: [{
required: true,
message: '请选择父菜单!',
trigger: 'blur',
}],
menuName:[{
menuName: [{
required: true,
message: '请填写菜单名称!',
trigger: 'blur',
}],
title:[{
title: [{
required: true,
message: '请填写弹框标题!',
trigger: 'blur',
}],
designPage:[{
designPage: [{
required: true,
message: '请选择设计页面!',
trigger: 'blur',
}],
resType:[{
resType: [{
required: true,
message: '请选择资源类型!',
trigger: 'blur',
... ... @@ -53,169 +53,169 @@ export default {
}
},
setup(props, {attrs, slots, emit}){
setup(props, {attrs, slots, emit}) {
const {proxy} = Vue.getCurrentInstance();
let height = Vue.ref(window.innerHeight - 10);
let configs = Vue.ref([{
name:'resId',
desc:'资源ID(资源列表可用)'
},{
name:'access_token',
desc:'Token'
},{
name:'lgn',
desc:'登录账号'
},{
name:'user_id',
desc:'用户id'
name: 'resId',
desc: '资源ID(资源列表可用)'
}, {
name: 'access_token',
desc: 'Token'
}, {
name: 'lgn',
desc: '登录账号'
}, {
name: 'user_id',
desc: '用户id'
}]);
//表格字段
let columns=Vue.ref([]);
let detailColumns=Vue.ref([
let columns = Vue.ref([]);
let detailColumns = Vue.ref([
{
prop: 'id',
label: '编号',
sortable: true,
align: 'center',
width:'250'
width: '250'
},
{
prop: 'type',
label: '类型',
sortable: true,
align: 'center',
width:'250',
width: '100',
},
{
prop: 'resType',
label: '资源类型',
sortable: true,
align: 'center',
width:'250'
},{
width: '180'
}, {
prop: 'provider',
label: '品牌',
sortable: true,
align: 'center',
width:'250'
},{
width: '180'
}, {
prop: 'designPage',
label: '设计器编码',
sortable: true,
align: 'center',
width:'250'
},{
width: '250'
}, {
prop: 'param',
label: '参数',
sortable: true,
align: 'left'
}
])
let menuColumns=Vue.ref([
let menuColumns = Vue.ref([
{
prop: 'id',
label: '编号',
sortable: true,
align: 'center',
width:'250'
width: '250'
},
{
prop: 'type',
label: '类型',
sortable: true,
align: 'center',
width:'250',
width: '100',
},
{
prop: 'menuName',
label: '菜单名称',
sortable: true,
align: 'center',
width:'250'
width: '200'
},
{
prop: 'designPage',
label: '设计器编码',
sortable: true,
align: 'center',
width:'250'
},{
width: '120'
}, {
prop: 'param',
label: '参数',
sortable: true,
align: 'center',
width:'300'
},{
align: 'center'
}, {
prop: 'creatTime',
label: '创建时间',
sortable: true,
align: 'center'
align: 'center',
width: '170'
}
])
let butColumns=Vue.ref([
let butColumns = Vue.ref([
{
prop: 'id',
label: '编号',
sortable: true,
align: 'center',
width:'250'
width: '250'
},
{
prop: 'type',
label: '类型',
sortable: true,
align: 'center',
width:'250',
width: '120',
},
{
prop: 'title',
label: '弹框标题',
sortable: true,
align: 'center',
width:'250'
width: '150'
},
{
prop: 'designPage',
label: '设计器编码',
sortable: true,
align: 'center',
width:'250'
},{
width: '300'
}, {
prop: 'param',
label: '参数',
sortable: true,
align: 'center',
width:'300'
},{
align: 'center'
}, {
prop: 'creatTime',
label: '创建时间',
sortable: true,
align: '创建时间'
align: 'center',
width: '200'
}
])
let currentPage=Vue.ref(1);
let pageSize=Vue.ref(10);
let keyword=Vue.ref();
let count=Vue.ref(0);
let tableDataList=Vue.ref([]);
let currentPage = Vue.ref(1);
let pageSize = Vue.ref(10);
let keyword = Vue.ref();
let count = Vue.ref(0);
let tableDataList = Vue.ref([]);
let checkedId = Vue.ref(0);
let titleName=Vue.ref('新增配置信息')
let cacheVisible=Vue.ref(false);
let viewData=Vue.ref();
let addOrUpdate=Vue.ref(false)
let radio=Vue.ref(0);
let titleName = Vue.ref('新增配置信息')
let cacheVisible = Vue.ref(false);
let viewData = Vue.ref();
let addOrUpdate = Vue.ref(false)
let radio = Vue.ref(0);
//下拉框
let options=Vue.ref([]);
let options = Vue.ref([]);
//菜单下拉框
let menuOptions=Vue.ref([]);
let menuOptions = Vue.ref([]);
let search = Vue.ref({
keyword:'',
type:'',
page:1,
limit:10,
keyword: '',
type: '',
page: 1,
limit: 10,
});
//按钮下拉框
let typeOptions=Vue.ref([
let typeOptions = Vue.ref([
{
value: '0',
label: '菜单',
... ... @@ -230,49 +230,49 @@ export default {
}]);
let couponSelected = Vue.ref();
let ajConfigFrom = Vue.ref({
id:'',
id: '',
type: 0,
designPage: '',
param: '&resId=#resId&access_token=#access_token',
resType: '',
remark:'',
creatTime:'',
createName:'',
state:'',
title:'',
menuPid:'',
menuName:''
remark: '',
creatTime: '',
createName: '',
state: '',
title: '',
menuPid: '',
menuName: ''
});
//新增弹框
const addAj=()=>{
const addAj = () => {
clearForm();
cacheVisible.value=true;
cacheVisible.value = true;
pageList();
menuList();
}
//新增或修改aj配置信息
let addAjConfig=(ruleForm)=>{
let params={};
params= ajConfigFrom.value;
let addAjConfig = (ruleForm) => {
let params = {};
params = ajConfigFrom.value;
let msg = '';
if (addOrUpdate.value){
if (addOrUpdate.value) {
proxy.$http.post(`/api-web/ajConfig/updateAj`, params, function (res) {
if (res && res.success == true) {
msg = res.msg;
cacheVisible.value=false;
cacheVisible.value = false;
proxy.$global.showMsg(msg);
clearForm();
getDataList();
}
})
}else{
} else {
proxy.$http.post(`/api-web/ajConfig/addAj`, params, function (res) {
if (res && res.success == true) {
msg = res.msg;
cacheVisible.value=false;
cacheVisible.value = false;
proxy.$global.showMsg(msg);
if (params.type==0){
if (params.type == 0) {
window.history.go(0);
}
clearForm();
... ... @@ -283,28 +283,28 @@ export default {
}
}
//清理表单
let clearForm=()=>{
ajConfigFrom.value={
id:'',
let clearForm = () => {
ajConfigFrom.value = {
id: '',
type: '0',
designPage: '',
param: '',
resType: '',
remark:'',
creatTime:'',
createName:'',
state:'',
title:'',
menuPid:'',
menuName:''
remark: '',
creatTime: '',
createName: '',
state: '',
title: '',
menuPid: '',
menuName: ''
}
addOrUpdate.value=false;
addOrUpdate.value = false;
}
//删除
let handleDelete=(row)=>{
let param={
id:row.id
let handleDelete = (row) => {
let param = {
id: row.id
}
proxy.$http.get(`/api-web/ajConfig/deleteById`, param, function (res) {
... ... @@ -313,7 +313,7 @@ export default {
if (!msg) {
msg = "删除失败";
}
if (row.type==0){
if (row.type == 0) {
history.go(0);
}
proxy.$global.showMsg(msg);
... ... @@ -321,33 +321,33 @@ export default {
}
})
}
let handleUpdate=(row)=>{
addOrUpdate.value =true;
ajConfigFrom.value=row;
cacheVisible.value=true;
let handleUpdate = (row) => {
addOrUpdate.value = true;
ajConfigFrom.value = row;
cacheVisible.value = true;
pageList();
menuList();
}
//预览
let preview=(row)=>{
if (row instanceof Object){
proxy.$global.viewAjView(row.id,'80%','80%');
}else if (row){
proxy.$global.viewAjView(row,'80%','80%');
let preview = (row) => {
if (row instanceof Object) {
proxy.$global.viewAjView(row.id, '80%', '80%');
} else if (row) {
proxy.$global.viewAjView(row, '80%', '80%');
}
}
//aj报表管理信息
let pageList=()=>{
let pageList = () => {
proxy.$http.get(`/api-web/ajConfig/pageList`, null, function (res) {
if (res && res.success == true) {
let params=res.object.data.records;
params.forEach(function(e){
let report={}
report.label=e.reportName;
report.value=e.reportCode;
let params = res.object.data.records;
params.forEach(function (e) {
let report = {}
report.label = e.reportName;
report.value = e.reportCode;
options.value.push(report)
});
}
... ... @@ -355,14 +355,14 @@ export default {
}
//菜单
let menuList=()=>{
let menuList = () => {
proxy.$http.get(`/api-user/menus/findAlls`, null, function (res) {
if (res && res.count>0) {
let params=res.data;
params.forEach(function(e){
let menu={}
menu.label=e.name;
menu.value=e.id;
if (res && res.count > 0) {
let params = res.data;
params.forEach(function (e) {
let menu = {}
menu.label = e.name;
menu.value = e.id;
menuOptions.value.push(menu)
});
}
... ... @@ -370,7 +370,7 @@ export default {
}
//AJ设计登录
let handleView=()=>{
let handleView = () => {
window.open(sessionStorage.getItem("ajWeb") + '/#/login?access_token=' + localStorage.getItem("access_token"));
}
... ... @@ -382,49 +382,49 @@ export default {
getDataList()
}
let onChangeStripe = (e)=>{
if(e =='0'){
columns.value=menuColumns.value;
let onChangeStripe = (e) => {
if (e == '0') {
columns.value = menuColumns.value;
}
if (e =='1'){
columns.value=butColumns.value;
if (e == '1') {
columns.value = butColumns.value;
}
if (e =='2'){
columns.value=detailColumns.value;
if (e == '2') {
columns.value = detailColumns.value;
}
search.value.type=e;
search.value.type = e;
getDataList()
}
//获取aj配置信息
let getDataList=()=>{
let params={
page:search.value.page,
limit:search.value.limit,
type:search.value.type,
keyword:search.value.keyword
let getDataList = () => {
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) {
proxy.$http.get(`/api-web/ajConfig/ajConfigList`, params, function (res) {
if (res && res.data) {
count.value = res.count;
tableDataList.value = res.data;
}else{
} else {
count.value = 0;
tableDataList.value='暂无数据';
tableDataList.value = '暂无数据';
}
});
}
//关闭弹框
let cancelBtn=()=>{
cacheVisible.value=false;
let cancelBtn = () => {
cacheVisible.value = false;
}
// 挂载完
Vue.onMounted(() => {
couponSelected.value = typeOptions.value[0].label;
columns.value=menuColumns.value;
search.value.type=typeOptions.value[0].value;
columns.value = menuColumns.value;
search.value.type = typeOptions.value[0].value;
getDataList();
})
... ...