Authored by 王涛

AJ配置功能优化!

@@ -68,6 +68,16 @@ const routes = [{ @@ -68,6 +68,16 @@ const routes = [{
68 name: 'cacheData', 68 name: 'cacheData',
69 component: () => myImport('views/cacheData/index') 69 component: () => myImport('views/cacheData/index')
70 }, 70 },
  71 + {
  72 + path: '/vue3/ajConfig',
  73 + name: 'ajConfig',
  74 + component: () => myImport('views/ajConfig/index')
  75 + },
  76 + {
  77 + path: '/ajConfig/view',
  78 + name: 'ajConfigView',
  79 + component: () => myImport('views/ajConfig/view/index')
  80 + },
71 ]; 81 ];
72 82
73 // hash模式: createWebHashHistory 83 // hash模式: createWebHashHistory
@@ -120,7 +120,29 @@ @@ -120,7 +120,29 @@
120 120
121 <el-form-item label="传递参数" prop="param"> 121 <el-form-item label="传递参数" prop="param">
122 <el-input :size="$global.elementSize" v-model="ajConfigFrom.param" clearable></el-input> 122 <el-input :size="$global.elementSize" v-model="ajConfigFrom.param" clearable></el-input>
123 - <div style="height: 15px;color: darkgrey">示例:&resId=#resId&access_token=#access_token</div> 123 + <div style="color: darkgrey">
  124 + <div>
  125 + <el-collapse>
  126 + <el-collapse-item name="1">
  127 + <template #title>
  128 + 示例:&resId=#resId&access_token=#access_token
  129 + </el-icon>
  130 + </template>
  131 + <div style="font-size: 12px;text-align: left">可配置字段:</div>
  132 + <el-descriptions :column="2" size="mini" border >
  133 + <el-descriptions-item v-for="item in configs">
  134 + <template #label>
  135 + <div class="cell-item">
  136 + {{ item.desc }}
  137 + </div>
  138 + </template>
  139 + {{ item.name }}
  140 + </el-descriptions-item>
  141 + </el-descriptions>
  142 + </el-collapse-item>
  143 + </el-collapse>
  144 + </div>
  145 + </div>
124 </el-form-item> 146 </el-form-item>
125 147
126 <el-form-item label="资源类型" prop="resType" v-if="ajConfigFrom.type==2" style="text-align: left"> 148 <el-form-item label="资源类型" prop="resType" v-if="ajConfigFrom.type==2" style="text-align: left">
@@ -36,6 +36,20 @@ export default { @@ -36,6 +36,20 @@ export default {
36 setup(props, {attrs, slots, emit}){ 36 setup(props, {attrs, slots, emit}){
37 const {proxy} = Vue.getCurrentInstance(); 37 const {proxy} = Vue.getCurrentInstance();
38 let height = Vue.ref(window.innerHeight - 10); 38 let height = Vue.ref(window.innerHeight - 10);
  39 +
  40 + let configs = Vue.ref([{
  41 + name:'resId',
  42 + desc:'资源ID(资源列表可用)'
  43 + },{
  44 + name:'access_token',
  45 + desc:'Token'
  46 + },{
  47 + name:'lgn',
  48 + desc:'登录账号'
  49 + },{
  50 + name:'user_id',
  51 + desc:'用户id'
  52 + }]);
39 //表格字段 53 //表格字段
40 let columns=Vue.ref([ 54 let columns=Vue.ref([
41 { 55 {
@@ -324,8 +338,8 @@ export default { @@ -324,8 +338,8 @@ export default {
324 options, 338 options,
325 menuList, 339 menuList,
326 menuOptions, 340 menuOptions,
327 - getResType  
328 - } 341 + getResType,
  342 + configs }
329 } 343 }
330 344
331 } 345 }
@@ -2,34 +2,41 @@ export default { @@ -2,34 +2,41 @@ export default {
2 name: 'ajConfigViewIndex', 2 name: 'ajConfigViewIndex',
3 template: '', 3 template: '',
4 components: {}, 4 components: {},
5 -  
6 - data() {  
7 - return {  
8 - }  
9 - },  
10 setup() { 5 setup() {
11 const {proxy} = Vue.getCurrentInstance(); 6 const {proxy} = Vue.getCurrentInstance();
12 let getSrc = Vue.ref(''); 7 let getSrc = Vue.ref('');
13 let height = Vue.ref(window.innerHeight - 10); 8 let height = Vue.ref(window.innerHeight - 10);
14 - var ajConfig = proxy.$global.getQueryVariable('ajConfig');  
15 - // let params = Vue.ref();  
16 - // let designPage = Vue.ref(); 9 + let ajConfig = proxy.$global.getQueryVariable('ajConfig');
  10 +
17 let getUrl=()=>{ 11 let getUrl=()=>{
18 let param={ 12 let param={
19 id:ajConfig 13 id:ajConfig
20 } 14 }
21 - let params='';  
22 - let designPage=''; 15 + let params = '';
  16 + let designPage = '';
23 proxy.$http.get(`/api-web/ajConfig/findOneById`, param, function (res) { 17 proxy.$http.get(`/api-web/ajConfig/findOneById`, param, function (res) {
24 - if (res && res.success == true) {  
25 - params=res.object.param;  
26 - designPage=res.object.designPage;  
27 - 18 + if (res && res.success == true && res.object) {
  19 + // 参数替换
  20 + params = replaceParams(res.object.param);
  21 + designPage = res.object.designPage;
28 } 22 }
29 getSrc.value=sessionStorage.getItem("ajWeb")+'/#/bigscreen/viewer?reportCode='+designPage+params+'&access_token=' + localStorage.getItem("access_token"); 23 getSrc.value=sessionStorage.getItem("ajWeb")+'/#/bigscreen/viewer?reportCode='+designPage+params+'&access_token=' + localStorage.getItem("access_token");
30 24
31 }) 25 })
32 } 26 }
  27 +
  28 + const replaceParams = (params) => {
  29 + return params.replace(/#lgn/g,localStorage.getItem('lgn')).replace(/#user_id/g,sessionStorage.getItem('access_token')).replace(/#access_token/g,localStorage.getItem("access_token"))
  30 + }
  31 +
  32 + const getParamValue = (code) => {
  33 + // 获取url参数
  34 + // 获取路由参数
  35 + // 获取sessionStorage
  36 + // 获取localStorage
  37 + }
  38 +
  39 +
33 // 挂载完 40 // 挂载完
34 Vue.onMounted(() => { 41 Vue.onMounted(() => {
35 getUrl(); 42 getUrl();
@@ -37,7 +44,7 @@ export default { @@ -37,7 +44,7 @@ export default {
37 44
38 return { 45 return {
39 height, 46 height,
40 - getSrc, 47 + getSrc
41 } 48 }
42 } 49 }
43 } 50 }
1 -<title>设计器配置信息</title>  
2 -<iframe src="/vue3/index.html#/vue3/ajConfig" class="layadmin-iframe" style="height: 99.5%!important;"/>  
1 -<title>设计器预览</title>  
2 -<script type="text/html" template>  
3 - {{#  
4 - var viewURL = window.location.origin + '/vue3/index.html#/ajConfig/view';  
5 - layui.use(['sessions','common','admin'], function () {  
6 - var $ = layui.$;  
7 - var common = layui.common;  
8 - var admin = layui.admin;  
9 - var arr = [];  
10 - window.location.hash.split('/').forEach(function (v, i) {  
11 - if (v.indexOf('=') != -1) {  
12 - arr.push(v);  
13 - }  
14 - });  
15 -  
16 - if (arr.length > 0) {  
17 - viewURL += "?" + arr.join("&");  
18 - }  
19 - $('#actionListIframe').attr('src',viewURL);  
20 - });  
21 - }}  
22 - <iframe id="actionListIframe" src="{{viewURL}}" frameborder="0" class="layadmin-iframe" style="height: 99.5%!important;"></iframe>  
23 -</script>  
1 -<div class="container" :style="{'height':height+'px','max-height':height+'px'}">  
2 - <div class="cm-card" :style="{'min-height':height+'px','max-height':height+'px','height':'100%'}">  
3 - <div class="search">  
4 - <div class="btns" style="justify-content: left;padding-left: 0px">  
5 - <el-form-item>  
6 - <el-button type="primary" @click="addAj()" style="margin-left: 10px">新增</el-button>  
7 - </el-form-item>  
8 - </div>  
9 - <div class="design" style="float:right;padding-left: 1410px">  
10 - <el-form-item>  
11 - <el-button type="primary" @click="handleView()" style="margin-left: 10px">设计</el-button>  
12 - </el-form-item>  
13 - </div>  
14 - </div>  
15 -  
16 - <div class="search-table">  
17 - <cm-table-page :columns="columns" :dataList="tableDataList" @loaddata="loadTableDataList"  
18 - :showIndex="true" :total="count" :showSelection="true"  
19 - :showBorder="true" :loading="false" :pageSize="pageSize"  
20 - :showPage="true" :showTools="true" :height="(height - 130)" >  
21 - <template #default="{row,prop,column}">  
22 - <div v-if="prop == 'type'">  
23 - <div v-if="row.type == 0">  
24 - <el-tag>菜单</el-tag>  
25 - </div>  
26 -  
27 - <div v-if="row.type == 1">  
28 - <el-tag>按钮</el-tag>  
29 - </div>  
30 -  
31 - <div v-if="row.type == 2">  
32 - <el-tag>详情页</el-tag>  
33 - </div>  
34 - </div>  
35 - </template>  
36 - <template #tools="{scope}">  
37 - <div class="list-handle">  
38 - <span class="icon-bg">  
39 - <i class="el-icon-delete" title="删除" @click="handleDelete(scope.row)"></i>  
40 - </span>  
41 - <span class="icon-bg">  
42 - <i class="el-icon-edit-outline" title="修改" @click="handleUpdate(scope.row)"></i>  
43 - </span>  
44 - <span class="icon-bg">  
45 - <i class="el-icon-view" title="预览" @click="preview(scope.row)"></i>  
46 - </span>  
47 - </div>  
48 - </template>  
49 - </cm-table-page>  
50 - </div>  
51 - </div>  
52 -</div>  
53 -  
54 -<!--新增编辑弹框-->  
55 -<cm-dialog :title="titleName" width="40%" :showDialogVisible="cacheVisible" @hidedialog="cancelBtn" :showFooter="false">  
56 - <template v-slot>  
57 - <el-form  
58 - label-width="120px"  
59 - ref="ruleForm"  
60 - :model="ajConfigFrom"  
61 - :rules="docRulesForm"  
62 - label-position="right"  
63 - label-width="120px">  
64 -  
65 - <el-form-item label="编号" prop="id">  
66 - <el-input :size="$global.elementSize" v-model="ajConfigFrom.id" clearable></el-input>  
67 - </el-form-item>  
68 -  
69 -  
70 - <el-form-item label="类型" prop="type">  
71 - <el-radio v-model="ajConfigFrom.type" label="0" size="large">菜单</el-radio>  
72 - <el-radio v-model="ajConfigFrom.type" label="1" size="large">按钮</el-radio>  
73 - <el-radio v-model="ajConfigFrom.type" label="2" size="large">详情页</el-radio>  
74 -<!-- <div style="height: 15px; color: darkgrey">说明:参数中间用'&'拼接</div>-->  
75 - </el-form-item>  
76 -  
77 -  
78 - <el-form-item label="父菜单" prop="menuPid" v-if="ajConfigFrom.type==0">  
79 - <el-select v-model="ajConfigFrom.menuPid"  
80 - filterable  
81 - allow-create  
82 - default-first-option  
83 - :reserve-keyword="false"  
84 - placeholder="请选择" style="width: 555px;">  
85 - <el-option  
86 - v-for="item in menuOptions"  
87 - :key="item.value"  
88 - :label="item.label"  
89 - :value="item.value"  
90 - :disabled="item.disabled">  
91 - </el-option>  
92 - </el-select>  
93 - </el-form-item>  
94 -  
95 - <el-form-item label="菜单名称" prop="menuName" v-if="ajConfigFrom.type==0">  
96 - <el-input :size="$global.elementSize" v-model="ajConfigFrom.menuName" clearable></el-input>  
97 - </el-form-item>  
98 -  
99 - <el-form-item label="菜单标题" prop="title" v-if="ajConfigFrom.type==1">  
100 - <el-input :size="$global.title" v-model="ajConfigFrom.title" clearable></el-input>  
101 - </el-form-item>  
102 -  
103 - <el-form-item label="设计页面" prop="designPage">  
104 - <el-select v-model="ajConfigFrom.designPage"  
105 - filterable  
106 - allow-create  
107 - default-first-option  
108 - :reserve-keyword="false"  
109 - placeholder="请选择" style="width: 510px;">  
110 - <el-option  
111 - v-for="item in options"  
112 - :key="item.value"  
113 - :label="item.label"  
114 - :value="item.value"  
115 - :disabled="item.disabled">  
116 - </el-option>  
117 - </el-select>  
118 - <el-tag @click="preview(ajConfigFrom.designPage)" style="padding-top:4px;height: 38px;">预览</el-tag>  
119 - </el-form-item>  
120 -  
121 - <el-form-item label="传递参数" prop="param">  
122 - <el-input :size="$global.elementSize" v-model="ajConfigFrom.param" clearable></el-input>  
123 - <div style="height: 15px;color: darkgrey">示例:&resId=#resId&access_token=#access_token</div>  
124 - </el-form-item>  
125 -  
126 - <el-form-item label="资源类型" prop="resType" v-if="ajConfigFrom.type==2" style="text-align: left">  
127 - <!--<el-input :size="$global.elementSize" v-model="ajConfigFrom.resType" clearable></el-input>-->  
128 - <el-dropdown>  
129 - <cm-res-type-tree-input multiple clearable collapseTags @callback="getResType"/>  
130 - </el-dropdown>  
131 - </el-form-item>  
132 -  
133 - <el-form-item label="厂商" prop="provider" v-if="ajConfigFrom.type==2" style="text-align: left">  
134 - <!--<el-input :size="$global.elementSize" v-model="ajConfigFrom.firm" clearable></el-input>-->  
135 - <el-select v-model="ajConfigFrom.provider" filterable clearable collapse-tags placeholder="请选择厂商" style="width: 550px">  
136 - <el-option  
137 - v-for="item in ddicProvider"  
138 - :label="item.ddicName" :value="item.ddicCode"></el-option>  
139 - </el-select>  
140 - </el-form-item>  
141 -  
142 -  
143 - <el-form-item label="操作系统" prop="os" v-if="ajConfigFrom.type==2" style="text-align: left">  
144 - <!--<el-input :size="$global.elementSize" v-model="ajConfigFrom.firm" clearable></el-input>-->  
145 - <el-select v-model="ajConfigFrom.os" filterable clearable collapse-tags placeholder="请选择操作类型" style="width: 550px">  
146 - <el-option  
147 - v-for="item in ddicOS"  
148 - :label="item.ddicName" :value="item.ddicCode"></el-option>  
149 - </el-select>  
150 - </el-form-item>  
151 -  
152 - <!--<el-form-item label="绑定资源" prop="resource" v-if="ajConfigFrom.type==2">  
153 - <el-input :size="$global.elementSize" v-model="ajConfigFrom.resource" clearable></el-input>  
154 - </el-form-item>-->  
155 -  
156 - <el-form-item label="备注" prop="remark">  
157 - <el-input :size="$global.elementSize" v-model="ajConfigFrom.remark" clearable></el-input>  
158 - </el-form-item>  
159 -  
160 - <el-form-item>  
161 - <el-button :size="$global.elementSize" type="primary" @click="addAjConfig('ruleForm')">保存</el-button>  
162 - <el-button :size="$global.elementSize" @click="cancelBtn">取消</el-button>  
163 - </el-form-item>  
164 - </el-form>  
165 - </template>  
166 -</cm-dialog>  
167 -  
1 -export default {  
2 - name: 'ajConfig',  
3 - template: '',  
4 - components: {},  
5 - props:[],  
6 - data () {  
7 - return {  
8 - radio:'0',  
9 - docRulesForm: {  
10 - id: [  
11 - {  
12 - required: true,  
13 - message: '请填写配置编号!',  
14 - trigger: 'blur',  
15 - }  
16 - ],  
17 - type:[{  
18 - required: true,  
19 - message: '请选择类型!',  
20 - trigger: 'blur',  
21 - }],  
22 - designPage:[{  
23 - required: true,  
24 - message: '请选择设计页面!',  
25 - trigger: 'blur',  
26 - }],  
27 - /*resource:[{  
28 - required: true,  
29 - message: '请填写绑定资源!',  
30 - trigger: 'blur',  
31 - }],*/  
32 - }  
33 - }  
34 -  
35 - },  
36 - setup(props, {attrs, slots, emit}){  
37 - const {proxy} = Vue.getCurrentInstance();  
38 - let height = Vue.ref(window.innerHeight - 10);  
39 - //表格字段  
40 - let columns=Vue.ref([  
41 - {  
42 - prop: 'id',  
43 - label: '编号',  
44 - sortable: true,  
45 - align: 'center',  
46 - width:'250'  
47 - },  
48 - {  
49 - prop: 'type',  
50 - label: '类型',  
51 - sortable: true,  
52 - align: 'center',  
53 - width:'250',  
54 - },  
55 - {  
56 - prop: 'resType',  
57 - label: '资源类型',  
58 - sortable: true,  
59 - align: 'center',  
60 - width:'250'  
61 - },{  
62 - prop: 'provider',  
63 - label: '品牌',  
64 - sortable: true,  
65 - align: 'center',  
66 - width:'250'  
67 - },{  
68 - prop: 'designPage',  
69 - label: '设计器编码',  
70 - sortable: true,  
71 - align: 'center',  
72 - width:'250'  
73 - },{  
74 - prop: 'param',  
75 - label: '参数',  
76 - sortable: true,  
77 - align: 'left'  
78 - }  
79 - ])  
80 - let currentPage=Vue.ref(1);  
81 - let pageSize=Vue.ref(10);  
82 - let keyword=Vue.ref();  
83 - let count=Vue.ref(0);  
84 - let tableDataList=Vue.ref([]);  
85 - let checkedId = Vue.ref(0);  
86 - let titleName=Vue.ref('新增配置信息')  
87 - let cacheVisible=Vue.ref(false);  
88 - let viewData=Vue.ref();  
89 - let addOrUpdate=Vue.ref(false)  
90 - let radio=Vue.ref(0);  
91 - //下拉框  
92 - let options=Vue.ref([]);  
93 - //菜单下拉框  
94 - let menuOptions=Vue.ref([]);  
95 - let ajConfigFrom = Vue.ref({  
96 - id:'',  
97 - type: 0,  
98 - designPage: '',  
99 - param: '&resId=#resId&access_token=#access_token',  
100 - resType: '',  
101 - remark:'',  
102 - creatTime:'',  
103 - createName:'',  
104 - state:'',  
105 - title:'',  
106 - menuPid:'',  
107 - menuName:''  
108 - });  
109 - //新增弹框  
110 - const addAj=()=>{  
111 - clearForm();  
112 - cacheVisible.value=true;  
113 - pageList();  
114 - menuList();  
115 -  
116 - }  
117 - //新增或修改aj配置信息  
118 - let addAjConfig=(ruleForm)=>{  
119 - let params={};  
120 - params= ajConfigFrom.value;  
121 - let msg = '';  
122 - if (addOrUpdate.value){  
123 - proxy.$http.post(`/api-web/ajConfig/updateAj`, params, function (res) {  
124 - if (res && res.success == true) {  
125 - msg = res.msg;  
126 - cacheVisible.value=false;  
127 - proxy.$global.showMsg(msg);  
128 - clearForm();  
129 - getDataList();  
130 - }  
131 - })  
132 - }else{  
133 - proxy.$http.post(`/api-web/ajConfig/addAj`, params, function (res) {  
134 - if (res && res.success == true) {  
135 - msg = res.msg;  
136 - cacheVisible.value=false;  
137 - proxy.$global.showMsg(msg);  
138 - if (params.type==0){  
139 - window.history.go(0);  
140 - }  
141 - clearForm();  
142 - getDataList();  
143 -  
144 - }  
145 - })  
146 - }  
147 - }  
148 - //清理表单  
149 - let clearForm=()=>{  
150 - ajConfigFrom.value={  
151 - id:'',  
152 - type: '0',  
153 - designPage: '',  
154 - param: '',  
155 - resType: '',  
156 - remark:'',  
157 - creatTime:'',  
158 - createName:'',  
159 - state:'',  
160 - title:'',  
161 - menuPid:'',  
162 - menuName:''  
163 - }  
164 - addOrUpdate.value=false;  
165 - }  
166 -  
167 - //删除  
168 - let handleDelete=(row)=>{  
169 - let param={  
170 - id:row.id  
171 - }  
172 - proxy.$http.get(`/api-web/ajConfig/deleteById`, param, function (res) {  
173 -  
174 - if (res && res.success == true) {  
175 - let msg = res.msg;  
176 - if (!msg) {  
177 - msg = "删除失败";  
178 - }  
179 - if (row.type==0){  
180 - history.go(0);  
181 - }  
182 - proxy.$global.showMsg(msg);  
183 - getDataList();  
184 - }  
185 - })  
186 - }  
187 - let handleUpdate=(row)=>{  
188 - addOrUpdate.value =true;  
189 - ajConfigFrom.value=row;  
190 - cacheVisible.value=true;  
191 - pageList();  
192 - menuList();  
193 - }  
194 -  
195 - //预览  
196 - let preview=(row)=>{  
197 - if (row!=undefined&&row!=''&&row.id==''){  
198 - proxy.$global.viewAjView(row,'80%','80%');  
199 - }else if (row.id!=''){  
200 - proxy.$global.viewAjView(row.id,'80%','80%');  
201 - }  
202 -  
203 -  
204 - }  
205 -  
206 - //aj报表管理信息  
207 - let pageList=()=>{  
208 - proxy.$http.get(`/api-web/ajConfig/pageList`, null, function (res) {  
209 - if (res && res.success == true) {  
210 - let params=res.object.data.records;  
211 - params.forEach(function(e){  
212 - let report={}  
213 - report.label=e.reportName;  
214 - report.value=e.reportCode;  
215 - options.value.push(report)  
216 - });  
217 - }  
218 - })  
219 - }  
220 -  
221 - //菜单  
222 - let menuList=()=>{  
223 - proxy.$http.get(`/api-user/menus/findAlls`, null, function (res) {  
224 - if (res && res.count>0) {  
225 - let params=res.data;  
226 - params.forEach(function(e){  
227 - let menu={}  
228 - menu.label=e.name;  
229 - menu.value=e.id;  
230 - menuOptions.value.push(menu)  
231 - });  
232 - }  
233 - })  
234 -  
235 - }  
236 - //AJ设计登录  
237 - let handleView=()=>{  
238 - window.open(sessionStorage.getItem("ajWeb") + '/#/login?access_token=' + localStorage.getItem("access_token"));  
239 - }  
240 -  
241 -  
242 - //重新加载表格数据  
243 - let loadTableDataList = ({page, limit}) => {  
244 - currentPage.value=page;  
245 - pageSize.value=limit;  
246 - getDataList()  
247 - }  
248 -  
249 - //获取aj配置信息  
250 - let getDataList=()=>{  
251 - proxy.$http.get(`/api-web/ajConfig/ajConfigList`,null, function (res) {  
252 - if (res && res.data) {  
253 - count.value = res.data.length;  
254 - tableDataList.value = res.data;  
255 - }else{  
256 - tableDataList.value='暂无数据';  
257 - }  
258 - });  
259 -  
260 - }  
261 -  
262 - //关闭弹框  
263 - let cancelBtn=()=>{  
264 - cacheVisible.value=false;  
265 - }  
266 - // 挂载完  
267 - Vue.onMounted(() => {  
268 - getDataList();  
269 -  
270 - })  
271 -  
272 -  
273 - let getResType = (arr) => {  
274 -  
275 - var types = arr.map(function (v) {  
276 - return v.id;  
277 - });  
278 - ajConfigFrom.value.resType = types[0];  
279 - }  
280 -  
281 - // 加载字典项  
282 - let ddicProvider = Vue.ref([]);  
283 - let ddicOS = Vue.ref([]);  
284 - // let ddicProvider = Vue.ref([]);  
285 -  
286 - proxy.$http.post(`/api-web/manage/ddic/findSucDdics/provider`, {}, function (res) {  
287 - if (res && res.data) {  
288 - ddicProvider.value = res.data;  
289 - }  
290 - });  
291 -  
292 - proxy.$http.post(`/api-web/manage/ddic/findSucDdics/os`, {}, function (res) {  
293 - if (res && res.data) {  
294 - ddicOS.value = res.data;  
295 - }  
296 - });  
297 -  
298 - return {  
299 - ddicProvider,  
300 - ddicOS,  
301 - height,  
302 - columns,  
303 - currentPage,  
304 - count,  
305 - pageSize,  
306 - keyword,  
307 - tableDataList,  
308 - checkedId,  
309 - addAj,  
310 - addAjConfig,  
311 - loadTableDataList,  
312 - getDataList,  
313 - cacheVisible,  
314 - titleName,  
315 - viewData,  
316 - cancelBtn,  
317 - ajConfigFrom,  
318 - handleDelete,  
319 - handleUpdate,  
320 - preview,  
321 - handleView,  
322 - pageList,  
323 - radio,  
324 - options,  
325 - menuList,  
326 - menuOptions,  
327 - getResType  
328 - }  
329 - }  
330 -  
331 -}  
1 -<div class="container" :style="{'height':height+'px','max-height':height+'px','background':'#fff'}">  
2 - <iframe :src="getSrc" width="100%" height="100%" ></iframe>  
3 -</div>  
1 -export default {  
2 - name: 'ajConfigViewIndex',  
3 - template: '',  
4 - components: {},  
5 -  
6 - data() {  
7 - return {  
8 - }  
9 - },  
10 - setup() {  
11 - const {proxy} = Vue.getCurrentInstance();  
12 - let getSrc = Vue.ref('');  
13 - let height = Vue.ref(window.innerHeight - 10);  
14 - var ajConfig = proxy.$global.getQueryVariable('ajConfig');  
15 - // let params = Vue.ref();  
16 - // let designPage = Vue.ref();  
17 - let getUrl=()=>{  
18 - let param={  
19 - id:ajConfig  
20 - }  
21 - let params='';  
22 - let designPage='';  
23 - proxy.$http.get(`/api-web/ajConfig/findOneById`, param, function (res) {  
24 - if (res && res.success == true) {  
25 - params=res.object.param;  
26 - designPage=res.object.designPage;  
27 - }  
28 - getSrc.value=sessionStorage.getItem("ajWeb")+'/#/bigscreen/viewer?reportCode='+designPage+params+'&access_token=' + localStorage.getItem("access_token");  
29 -  
30 - })  
31 - }  
32 - // 获取资源详情 //start lsq 监听跨域iframe子页面向父页面发送数据(子页面点击名称进入详情页) 2022-03-15  
33 - let getResDetail=(resId)=>{  
34 - let editFlag = false;  
35 - let provider = '';  
36 - let name = '';  
37 - let ip = '';  
38 - let resTypeName = '';  
39 - let adminName = '';  
40 - let manageIp = '';  
41 - let collProtocol = '';  
42 - let resType='';  
43 - let lyaui=window.parent.layui;  
44 - proxy.$http.get(`/api-web/v32/res/detail/${resId}`, {}, function (res) {  
45 - if (res && res.map) {  
46 - let data = res.map;  
47 - provider = data.provider;  
48 - ip = data.ip;  
49 - resTypeName = data.resTypeName;  
50 - adminName = data.adminName;  
51 - manageIp = data.manageIp;  
52 - collProtocol = data.collProtocol;  
53 - name = data.resName;  
54 - if(resType == ''){  
55 - resType = data.resType;  
56 - }  
57 - lyaui.commonCols.detailPage(resId, resType, editFlag, provider, name, ip, resTypeName, adminName, manageIp, collProtocol);  
58 - }  
59 - });  
60 - }  
61 - //end lsq 2022-03-15  
62 - // 挂载完  
63 - Vue.onMounted(() => {  
64 - getUrl();  
65 - //start lsq 监听跨域iframe子页面向父页面发送数据(子页面点击名称进入详情页) 2022-03-15  
66 - window.addEventListener('message',function(e){  
67 - if(e.data.type=='detail'){  
68 - getResDetail(e.data.data.resId);  
69 - }else{  
70 - }  
71 - })  
72 - //end lsq 2022-03-15  
73 - })  
74 -  
75 - return {  
76 - height,  
77 - getSrc,  
78 - }  
79 - }  
80 -}