Authored by xwx

Merge branch 'master' of http://113.200.75.45:82/monitor_v3/hg-monitor-web into master-v32-xwx

Showing 30 changed files with 293 additions and 322 deletions
@@ -350,16 +350,20 @@ layui.define(['xmSelect', 'md5'], function (exports) { @@ -350,16 +350,20 @@ layui.define(['xmSelect', 'md5'], function (exports) {
350 } 350 }
351 }); 351 });
352 }, 352 },
353 - menuXmSelect: function (xmSelectParams, done) { 353 + menuXmSelect: function (xmSelectParams, done, username_, roleId_) {
  354 + var username = username_ ? username_ : '';
  355 + var roleId = roleId_ ? roleId_ : '';
354 admin.req({ 356 admin.req({
355 - url: `${obj.domainName}/api-user/menus/findMenus`, 357 + url: `${obj.domainName}/api-user/menus/findMenus?username=` + username + '&roleIds=' + roleId,
356 success: function (res) { 358 success: function (res) {
357 // 菜单下拉框 359 // 菜单下拉框
358 var menuList = res.data; 360 var menuList = res.data;
359 - menuList.forEach(item => {  
360 - item.disabled = item.isLeaf !== 'Y';  
361 - }); 361 + // menuList.forEach(item => {
  362 + // item.disabled = item.isLeaf !== 'Y';
  363 + // });
362 var menuTree = obj.pidToChildren(menuList, "id", "parentId"); 364 var menuTree = obj.pidToChildren(menuList, "id", "parentId");
  365 + //XuHaoJie 2021/10/21 添加是否是父节点
  366 + addProperty(menuTree);
363 var menuSelect = xmSelect.render(Object.assign({ 367 var menuSelect = xmSelect.render(Object.assign({
364 el: '#', 368 el: '#',
365 tips: '=菜单=', 369 tips: '=菜单=',
@@ -392,6 +396,19 @@ layui.define(['xmSelect', 'md5'], function (exports) { @@ -392,6 +396,19 @@ layui.define(['xmSelect', 'md5'], function (exports) {
392 } 396 }
393 } 397 }
394 }); 398 });
  399 +
  400 + //添加是否是父节点的删除
  401 + function addProperty(list) {
  402 + list.forEach(item => {
  403 + if (item.children && item.children.length > 0) {
  404 + item['isParent'] = 1;
  405 + addProperty(item.children);
  406 + } else {
  407 + item['isParent'] = 0;
  408 + }
  409 + return item;
  410 + })
  411 + }
395 }, 412 },
396 relationTypeXmSelect: function (xmSelectParams, done) { 413 relationTypeXmSelect: function (xmSelectParams, done) {
397 admin.req({ 414 admin.req({
@@ -271,7 +271,9 @@ layui.define(['table', 'form', 'laydate', 'laytpl','common','sessions','xmSelect @@ -271,7 +271,9 @@ layui.define(['table', 'form', 'laydate', 'laytpl','common','sessions','xmSelect
271 271
272 function loadSelect(pollName,dom){ 272 function loadSelect(pollName,dom){
273 var url = domainName+'/inspection-report/dataSource/loadSelect?access_token='+accessToken; 273 var url = domainName+'/inspection-report/dataSource/loadSelect?access_token='+accessToken;
274 - $.get(url,function (res) { 274 + $.ajax({url,
  275 + async: false,
  276 + success(res) {
275 $(dom).empty(); 277 $(dom).empty();
276 if(res.success){ 278 if(res.success){
277 let html =''; 279 let html ='';
@@ -284,7 +286,7 @@ layui.define(['table', 'form', 'laydate', 'laytpl','common','sessions','xmSelect @@ -284,7 +286,7 @@ layui.define(['table', 'form', 'laydate', 'laytpl','common','sessions','xmSelect
284 } 286 }
285 form.render(); 287 form.render();
286 } 288 }
287 - }) 289 + }})
288 } 290 }
289 function loadJLSelect($dom,pid,type){ 291 function loadJLSelect($dom,pid,type){
290 $.ajax({ 292 $.ajax({
@@ -110,7 +110,7 @@ layui.define(['table', 'form', 'laydate','treeTable', 'admin', 'layer', 'laytpl' @@ -110,7 +110,7 @@ layui.define(['table', 'form', 'laydate','treeTable', 'admin', 'layer', 'laytpl'
110 ' <button role-data-menu="' + d.id + '" lay-tips="菜单授权" type="button" class="layui-btn layui-btn-xs layui-btn-normal delete-org-btn"><i class="layui-icon layui-icon-menu-fill"></i></button>' + 110 ' <button role-data-menu="' + d.id + '" lay-tips="菜单授权" type="button" class="layui-btn layui-btn-xs layui-btn-normal delete-org-btn"><i class="layui-icon layui-icon-menu-fill"></i></button>' +
111 // ' <button role-data-query-menus="'+d.id+'" role-data-name="'+d.name+'" lay-tips="角色菜单查看" type="button" class="layui-btn layui-btn-xs layui-btn-normal delete-org-btn"><i class="layui-icon layui-icon-search"></i></button>'+ 111 // ' <button role-data-query-menus="'+d.id+'" role-data-name="'+d.name+'" lay-tips="角色菜单查看" type="button" class="layui-btn layui-btn-xs layui-btn-normal delete-org-btn"><i class="layui-icon layui-icon-search"></i></button>'+
112 ' <button role-data-oneKey="' + d.id + '" lay-tips="' + tips + '" type="button" class="layui-btn layui-btn-xs layui-btn-normal delete-org-btn"><i class="layui-icon layui-icon-auz"></i></button>' + 112 ' <button role-data-oneKey="' + d.id + '" lay-tips="' + tips + '" type="button" class="layui-btn layui-btn-xs layui-btn-normal delete-org-btn"><i class="layui-icon layui-icon-auz"></i></button>' +
113 - ' <button data-code="' + d.code + '" lay-tips="配置默认首页" type="button" class="layui-btn layui-btn-xs layui-btn-normal config-default-index"><i class="layui-icon layui-icon-website"></i></button>' + 113 + ' <button data-code="' + d.code + '" data-id="'+d.id+'" lay-tips="配置默认首页" type="button" class="layui-btn layui-btn-xs layui-btn-normal config-default-index"><i class="layui-icon layui-icon-website"></i></button>' +
114 '</div>'; 114 '</div>';
115 }} 115 }}
116 ]], 116 ]],
@@ -176,6 +176,7 @@ layui.define(['table', 'form', 'laydate','treeTable', 'admin', 'layer', 'laytpl' @@ -176,6 +176,7 @@ layui.define(['table', 'form', 'laydate','treeTable', 'admin', 'layer', 'laytpl'
176 // 配置默认首页 176 // 配置默认首页
177 $('.config-default-index').unbind('click').on('click', function () { 177 $('.config-default-index').unbind('click').on('click', function () {
178 var roleCode = $(this).data('code'); 178 var roleCode = $(this).data('code');
  179 + var roleId =$(this).data('id');
179 layer.load(2); 180 layer.load(2);
180 admin.req({ 181 admin.req({
181 url: domainName + '/api-web/defaultIndex/getDefaultIndex', 182 url: domainName + '/api-web/defaultIndex/getDefaultIndex',
@@ -231,8 +232,25 @@ layui.define(['table', 'form', 'laydate','treeTable', 'admin', 'layer', 'laytpl' @@ -231,8 +232,25 @@ layui.define(['table', 'form', 'laydate','treeTable', 'admin', 'layer', 'laytpl'
231 common.menuXmSelect({ 232 common.menuXmSelect({
232 el: '#slt-menu-tree', 233 el: '#slt-menu-tree',
233 radio: true, 234 radio: true,
  235 + prop: {
  236 + name: 'name',
  237 + value: 'id',
  238 + isParent: 'isParent',
  239 + },
234 clickClose: true, 240 clickClose: true,
235 on(data) { 241 on(data) {
  242 + //XuHaoJie 2021/10/21 添加是否是父节点
  243 + //arr: 当前多选已选中的数据
  244 + var arr = data.arr;
  245 + if (arr && arr.length > 0) {
  246 + if (arr[0].isParent == 1) {
  247 + layer.msg('父节点不能选', {icon: 7});
  248 + setTimeout(function () {
  249 + xmSelect.get('#slt-menu-tree', true).setValue([]);
  250 + },1000);
  251 + return false;
  252 + }
  253 + }
236 if (data.arr.length) { 254 if (data.arr.length) {
237 switch (data.arr[0].moduleid) { 255 switch (data.arr[0].moduleid) {
238 case 'index-topo': { 256 case 'index-topo': {
@@ -285,7 +303,7 @@ layui.define(['table', 'form', 'laydate','treeTable', 'admin', 'layer', 'laytpl' @@ -285,7 +303,7 @@ layui.define(['table', 'form', 'laydate','treeTable', 'admin', 'layer', 'laytpl'
285 } 303 }
286 }, function (select) { 304 }, function (select) {
287 select.setValue([defaultIndex], null, true); 305 select.setValue([defaultIndex], null, true);
288 - }); 306 + },null,roleId);
289 307
290 308
291 function reSetForm() { 309 function reSetForm() {
@@ -341,8 +341,25 @@ layui.define(['table', 'form', 'admin', 'layer', 'upload', 'common', 'sessions', @@ -341,8 +341,25 @@ layui.define(['table', 'form', 'admin', 'layer', 'upload', 'common', 'sessions',
341 common.menuXmSelect({ 341 common.menuXmSelect({
342 el: '#slt-menu-tree', 342 el: '#slt-menu-tree',
343 radio: true, 343 radio: true,
  344 + prop: {
  345 + name: 'name',
  346 + value: 'id',
  347 + isParent: 'isParent',
  348 + },
344 clickClose: true, 349 clickClose: true,
345 on(data) { 350 on(data) {
  351 + //XuHaoJie 2021/10/21 添加是否是父节点
  352 + //arr: 当前多选已选中的数据
  353 + var arr = data.arr;
  354 + if (arr && arr.length > 0) {
  355 + if (arr[0].isParent == 1) {
  356 + layer.msg('父节点不能选', {icon: 7});
  357 + setTimeout(function () {
  358 + xmSelect.get('#slt-menu-tree', true).setValue([]);
  359 + },1000);
  360 + return false;
  361 + }
  362 + }
346 if (data.arr.length) { 363 if (data.arr.length) {
347 switch (data.arr[0].moduleid) { 364 switch (data.arr[0].moduleid) {
348 case 'index-topo': { 365 case 'index-topo': {
@@ -395,7 +412,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'upload', 'common', 'sessions', @@ -395,7 +412,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'upload', 'common', 'sessions',
395 } 412 }
396 }, function (select) { 413 }, function (select) {
397 select.setValue([defaultIndex], null, true); 414 select.setValue([defaultIndex], null, true);
398 - }); 415 + },username);
399 416
400 417
401 function reSetForm() { 418 function reSetForm() {
@@ -34,7 +34,7 @@ @@ -34,7 +34,7 @@
34 <div style="width: calc(100% - 150px);padding-left: 6px;text-align: left;"> 34 <div style="width: calc(100% - 150px);padding-left: 6px;text-align: left;">
35 <el-input v-model="keyWord" placeholder="请输入关键字" :size="$global.elementSize" 35 <el-input v-model="keyWord" placeholder="请输入关键字" :size="$global.elementSize"
36 style="width: 220px;margin-right:10px" clearable/> 36 style="width: 220px;margin-right:10px" clearable/>
37 - <el-button icon="el-icon-search" :size="$global.elementSize" @click="searchFile"> 37 + <el-button :size="$global.elementSize" @click="searchFile">
38 <i class="iconfont icon-sousuo"></i>搜索</el-button> 38 <i class="iconfont icon-sousuo"></i>搜索</el-button>
39 <el-button :size="$global.elementSize" @click="showUserDialog(true)" v-if="!isView"> 39 <el-button :size="$global.elementSize" @click="showUserDialog(true)" v-if="!isView">
40 <i class="iconfont icon-icon--quanxian"></i> 40 <i class="iconfont icon-icon--quanxian"></i>
@@ -44,7 +44,7 @@ @@ -44,7 +44,7 @@
44 <i class="iconfont icon-icon--download"></i> 44 <i class="iconfont icon-icon--download"></i>
45 下载 45 下载
46 </el-button> 46 </el-button>
47 - <el-button :size="$global.elementSize" @click="showFolder(true,true)"> 47 + <el-button :size="$global.elementSize" @click="showFolder(true,true)" v-if="!canAddFolder">
48 <i class="iconfont icon-weidaqiadewenjianjia"></i> 48 <i class="iconfont icon-weidaqiadewenjianjia"></i>
49 新增文件夹 49 新增文件夹
50 </el-button> 50 </el-button>
@@ -30,7 +30,12 @@ export default { @@ -30,7 +30,12 @@ export default {
30 fileIds: { 30 fileIds: {
31 type: Array, 31 type: Array,
32 default: [] 32 default: []
33 - } 33 + },
  34 + // 是否展示新建文件按钮
  35 + canAddFolder: {
  36 + type: Boolean,
  37 + default: true
  38 + },
34 39
35 }, 40 },
36 data() { 41 data() {
@@ -207,9 +212,6 @@ export default { @@ -207,9 +212,6 @@ export default {
207 // 获取表格树 212 // 获取表格树
208 let getPage = (id) => { 213 let getPage = (id) => {
209 let docIds = props.fileIds.length == 0 ? '' : props.fileIds.join(',') 214 let docIds = props.fileIds.length == 0 ? '' : props.fileIds.join(',')
210 - if(docIds == ''){  
211 - return;  
212 - }  
213 let params = { 215 let params = {
214 id: id, 216 id: id,
215 name: keyWord.value, 217 name: keyWord.value,
@@ -253,7 +255,6 @@ export default { @@ -253,7 +255,6 @@ export default {
253 255
254 // 刷新 256 // 刷新
255 let reload = (loadTree) => { 257 let reload = (loadTree) => {
256 - //historyNode.value = [];  
257 // 属性tree 258 // 属性tree
258 setTimeout(function () { 259 setTimeout(function () {
259 let id = currentNodeData.value.id; 260 let id = currentNodeData.value.id;
@@ -298,7 +299,9 @@ export default { @@ -298,7 +299,9 @@ export default {
298 proxy.$global.showMsg('放入回收站成功!'); 299 proxy.$global.showMsg('放入回收站成功!');
299 } 300 }
300 301
301 - reload(true); 302 + // 属性tree
  303 + let isUser = !isUserFolder.value;
  304 + reload(isUser);
302 } 305 }
303 }) 306 })
304 307
@@ -495,6 +498,24 @@ export default { @@ -495,6 +498,24 @@ export default {
495 return localStorage.getItem('lgn') == 'admin'; 498 return localStorage.getItem('lgn') == 'admin';
496 } 499 }
497 500
  501 + /**
  502 + * TODO
  503 + * @param item
  504 + * @param index
  505 + */
  506 + let clickTopNav = (item,index) =>{
  507 + let arr = historyNode.value;
  508 + // // 删除当前节点后面的路径
  509 + // arr.filter(function (v,i) {
  510 + // if(i > index){
  511 + // arr.splice(i,1);
  512 + // }
  513 + // })
  514 +
  515 + addHistoryNode(item);
  516 + getPage(item.id);
  517 + }
  518 +
498 519
499 /** 520 /**
500 * 挂载完 521 * 挂载完
@@ -557,6 +578,7 @@ export default { @@ -557,6 +578,7 @@ export default {
557 578
558 showUploadDialogVisible, 579 showUploadDialogVisible,
559 historyNode, 580 historyNode,
  581 + clickTopNav,
560 582
561 tagHandleClose, 583 tagHandleClose,
562 isAdmin 584 isAdmin
@@ -7,24 +7,6 @@ @@ -7,24 +7,6 @@
7 7
8 <el-table-column v-for="item in columns" :prop="item.prop" :label="item.label" :sortable="item.sortable == undefined ? false : item.sortable" :align="item.align == undefined ? 'center' : item.align " 8 <el-table-column v-for="item in columns" :prop="item.prop" :label="item.label" :sortable="item.sortable == undefined ? false : item.sortable" :align="item.align == undefined ? 'center' : item.align "
9 :width="item.width"> 9 :width="item.width">
10 - <!--<template #default="scope" v-if="item.prop =='resName'">  
11 - <el-link type="primary" @click="openDetailPage(scope.row)">{{scope.row.resName}}</el-link>  
12 - </template>  
13 - <template #default="scope" v-else>  
14 -  
15 - <div v-if="typeof(item.render) == 'function'" >  
16 - <div v-if="typeof(item.click) == 'function'">  
17 - <el-link :type="linkType" :underline="isLink" @click="item.click(scope.row)" v-html="item.render(scope.row)"></el-link>  
18 - </div>  
19 - <div v-else>  
20 - <el-link :type="linkType" :underline="isLink" v-html="item.render(scope.row)"></el-link>  
21 - </div>  
22 - </div>  
23 - <span v-else>  
24 - {{scope.row[item.prop]}}  
25 - </span>  
26 - </template>-->  
27 -  
28 <template #default="scope"> 10 <template #default="scope">
29 <slot :row="scope.row" :prop="item.prop" :column="item"> 11 <slot :row="scope.row" :prop="item.prop" :column="item">
30 <div v-if="typeof(item.render) == 'function'" > 12 <div v-if="typeof(item.render) == 'function'" >
@@ -33,10 +33,10 @@ export default { @@ -33,10 +33,10 @@ export default {
33 type: String, 33 type: String,
34 default: '序号' 34 default: '序号'
35 }, 35 },
36 - currentPage: { 36 + /*currentPage: {
37 type: Number, 37 type: Number,
38 default: 1 38 default: 1
39 - }, 39 + },*/
40 // 分页页码设置 40 // 分页页码设置
41 pageSizes: { 41 pageSizes: {
42 type: Array, 42 type: Array,
@@ -87,38 +87,52 @@ export default { @@ -87,38 +87,52 @@ export default {
87 return {} 87 return {}
88 }, 88 },
89 setup(props, {attrs, slots, emit}) { 89 setup(props, {attrs, slots, emit}) {
  90 + let currentPage = Vue.ref(1);
  91 + let pageSize = Vue.ref(props.pageSize);
  92 + // let sizeArr = props.pageSizes;
  93 + // if(sizeArr && sizeArr.length > 0){
  94 + // pageSize.value = sizeArr[0]
  95 + // }
  96 + // console.log('======',pageSize.value);
  97 +
90 98
91 let callback = () =>{ 99 let callback = () =>{
92 - emit('loaddata',props) 100 + let params = {
  101 + page: currentPage.value, limit: pageSize.value
  102 + }
  103 +
  104 + emit('loaddata', params)
93 } 105 }
94 106
95 // 每页展示多少条 107 // 每页展示多少条
96 let handleSizeChange = (val) => { 108 let handleSizeChange = (val) => {
97 // console.log(`每页 ${val} 条`) 109 // console.log(`每页 ${val} 条`)
98 - props.pageSize = val;  
99 - 110 + //props.pageSize = val;
  111 + pageSize.value = val;
100 callback(); 112 callback();
101 } 113 }
102 114
103 // 切换页码 115 // 切换页码
104 let handleCurrentChange = (val) => { 116 let handleCurrentChange = (val) => {
105 // console.log(`当前页: ${val}`) 117 // console.log(`当前页: ${val}`)
106 - props.currentPage = val;  
107 - 118 + //props.currentPage = val;
  119 + currentPage.value = val;
108 callback(); 120 callback();
109 } 121 }
110 122
111 // 切换页码 123 // 切换页码
112 let prePage = (val) => { 124 let prePage = (val) => {
113 // console.log(`当前页: ${val}`) 125 // console.log(`当前页: ${val}`)
114 - props.currentPage = val - 1; 126 + // props.currentPage = val - 1;
  127 + currentPage.value = val;
115 callback(); 128 callback();
116 } 129 }
117 130
118 // 切换页码 131 // 切换页码
119 let nextPage = (val) => { 132 let nextPage = (val) => {
120 // console.log(`当前页: ${val}`) 133 // console.log(`当前页: ${val}`)
121 - props.currentPage = val + 1; 134 + // props.currentPage = val + 1;
  135 + currentPage.value = val;
122 callback(); 136 callback();
123 } 137 }
124 138
@@ -133,6 +147,8 @@ export default { @@ -133,6 +147,8 @@ export default {
133 }) 147 })
134 148
135 return { 149 return {
  150 + currentPage,
  151 + pageSize,
136 handleSizeChange, 152 handleSizeChange,
137 handleCurrentChange, 153 handleCurrentChange,
138 prePage, 154 prePage,
@@ -94,10 +94,13 @@ global.confirm = (msg,okFunc,cancelFunc) =>{ @@ -94,10 +94,13 @@ global.confirm = (msg,okFunc,cancelFunc) =>{
94 */ 94 */
95 global.getQueryVariable = (variable) => { 95 global.getQueryVariable = (variable) => {
96 var query = window.location.search.substring(1); 96 var query = window.location.search.substring(1);
97 -  
98 if(query == ''){ 97 if(query == ''){
99 query = document.location.href 98 query = document.location.href
100 - let arr = query.split('?'); 99 + let args = query.split('?');
  100 + let arr = [];
  101 + if(args && args.length > 1){
  102 + arr = args[1].split('&')
  103 + }
101 for (var i = 0; i < arr.length; i++) { 104 for (var i = 0; i < arr.length; i++) {
102 var pair = arr[i].split("="); 105 var pair = arr[i].split("=");
103 if (pair[0] == variable) { 106 if (pair[0] == variable) {
@@ -3,74 +3,16 @@ import { Set_Count } from './mutation-types.js' @@ -3,74 +3,16 @@ import { Set_Count } from './mutation-types.js'
3 3
4 export default Vuex.createStore({ 4 export default Vuex.createStore({
5 state: { 5 state: {
6 - count: 0,  
7 - myObject: {  
8 - time: '现在的时间:'  
9 - },  
10 - myArray: [1,2,2,3,4] 6 +
11 }, 7 },
12 getters: { 8 getters: {
13 - getAddCount: (state) => {  
14 - return state.count + 1  
15 - },  
16 - getTime: (state) => {  
17 - return state.myObject.time + new Date()  
18 - },  
19 - filterArray: (state) => (id) => {  
20 - return state.myArray.filter((item) => item === id)  
21 - } 9 +
22 }, 10 },
23 mutations: { 11 mutations: {
24 - // 计数器  
25 - setCount(state, num = 1) {  
26 - state.count += num  
27 - },  
28 - [Set_Count](state, num = 1) {  
29 - state.count += num  
30 - },  
31 - // 设置当前时间  
32 - setTime(state) {  
33 - state.myObject.time = '现在时间:' + new Date()  
34 12
35 }, 13 },
36 - // 设置数组的值  
37 - setArray(state, val = 4) {  
38 - state.myArray[1] = val  
39 - },  
40 - reloadArray(state, arr) {  
41 - state.myArray.lenth = 0  
42 - state.myArray = [...arr]  
43 - }  
44 - },  
45 actions: { 14 actions: {
46 - // 异步获取数组  
47 - getArray(context) {  
48 - setTimeout(() => {  
49 - context.commit('setArray', new Date().valueOf())  
50 - }, 10000)  
51 - },  
52 - // 异步获取数组  
53 - getArrayPromise(context) {  
54 - return new Promise((resolve, reject) => {  
55 - setTimeout(() => {  
56 - const time = new Date().valueOf()  
57 - resolve(time)  
58 - }, 2000)  
59 - })  
60 - },  
61 - // axios  
62 - getDat2(context) {  
63 - const ajax = axios.get('demo.json')  
64 - ajax.then((response) => {  
65 - const arr = response.data.company.formItem  
66 - console.log('getData - axios - response', arr)  
67 - // context.commit('reloadArray', arr)  
68 - })  
69 - .catch((error) => {  
70 - console.log('getData - axios - error', error)  
71 - })  
72 - return ajax // 直接返回 axios 的promise的实例  
73 - } 15 +
74 }, 16 },
75 modules: { 17 modules: {
76 } 18 }
@@ -161,7 +161,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'laytpl', 'common', 'view', 'se @@ -161,7 +161,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'laytpl', 'common', 'view', 'se
161 '<button data-id="' + d.busId + '" lay-tips="删除" type="button" class="layui-btn layui-btn-xs layui-btn-normal btn-bustype-delete"><i class="layui-icon layui-icon-delete"></i></button>' + 161 '<button data-id="' + d.busId + '" lay-tips="删除" type="button" class="layui-btn layui-btn-xs layui-btn-normal btn-bustype-delete"><i class="layui-icon layui-icon-delete"></i></button>' +
162 '<button data-id="' + d.busId + '" lay-tips="资源分配" type="button" class="layui-btn layui-btn-xs layui-btn-normal btn-bustype-res-config"><i class="layui-icon layui-icon-menu-fill"></i></button>' + 162 '<button data-id="' + d.busId + '" lay-tips="资源分配" type="button" class="layui-btn layui-btn-xs layui-btn-normal btn-bustype-res-config"><i class="layui-icon layui-icon-menu-fill"></i></button>' +
163 '<button data-id="' + d.busId + '" lay-tips="授权" type="button" class="layui-btn layui-btn-xs layui-btn-normal btn-bustype-authorize"><i class="layui-icon layui-icon-auz"></i></button>' + 163 '<button data-id="' + d.busId + '" lay-tips="授权" type="button" class="layui-btn layui-btn-xs layui-btn-normal btn-bustype-authorize"><i class="layui-icon layui-icon-auz"></i></button>' +
164 - '<button data-id="' + d.busId + '" lay-tips="乙方运维配置" type="button" class="layui-btn layui-btn-xs layui-btn-normal btn-bustype-yf-config"><i class="layui-icon layui-icon-auz"></i></button>' + 164 + '<button data-id="' + d.busId + '" data-code="'+ d.busTypeCode +'" lay-tips="乙方运维配置" type="button" class="layui-btn layui-btn-xs layui-btn-normal btn-bustype-yf-config"><i class="layui-icon layui-icon-set-fill"></i></button>' +
165 '</div>' 165 '</div>'
166 } else { 166 } else {
167 return '' + 167 return '' +
@@ -293,14 +293,16 @@ layui.define(['table', 'form', 'admin', 'layer', 'laytpl', 'common', 'view', 'se @@ -293,14 +293,16 @@ layui.define(['table', 'form', 'admin', 'layer', 'laytpl', 'common', 'view', 'se
293 // 乙方运维配置 293 // 乙方运维配置
294 $('.btn-bustype-yf-config').click(function () { 294 $('.btn-bustype-yf-config').click(function () {
295 var busId = $(this).data('id'); 295 var busId = $(this).data('id');
  296 + var busTypeCode = $(this).data('code');
296 layer.open({ 297 layer.open({
297 type: 2 298 type: 2
298 ,title: "乙方运维配置" 299 ,title: "乙方运维配置"
299 - ,closeBtn: true 300 + ,closeBtn: false
300 ,area: ['50%', '70%'] 301 ,area: ['50%', '70%']
  302 + ,btn: ['关闭']
301 ,shade: 0.8 303 ,shade: 0.8
302 ,id: 'operationMaintenance-config' //设定一个id,防止重复弹出 304 ,id: 'operationMaintenance-config' //设定一个id,防止重复弹出
303 - ,content:`/vue3/index.html#/operationMaintenance/config?id=${busId}` 305 + ,content:`/vue3/index.html#/operationMaintenance/config?id=${busId}&code=${busTypeCode}`
304 , success: function (layero, index) { 306 , success: function (layero, index) {
305 } 307 }
306 ,yes: function(index, layero){ 308 ,yes: function(index, layero){
@@ -309,6 +311,11 @@ layui.define(['table', 'form', 'admin', 'layer', 'laytpl', 'common', 'view', 'se @@ -309,6 +311,11 @@ layui.define(['table', 'form', 'admin', 'layer', 'laytpl', 'common', 'view', 'se
309 } 311 }
310 }); 312 });
311 313
  314 + $(document).on("closeBusWindow", function(){
  315 + layer.closeAll();
  316 + });
  317 +
  318 +
312 }); 319 });
313 320
314 $('.btn-bustype-bind').unbind('click').on('click', function () { 321 $('.btn-bustype-bind').unbind('click').on('click', function () {
@@ -848,7 +855,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'laytpl', 'common', 'view', 'se @@ -848,7 +855,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'laytpl', 'common', 'view', 'se
848 }).done(function (response) { 855 }).done(function (response) {
849 layer.close(loading); 856 layer.close(loading);
850 if (response.success) { 857 if (response.success) {
851 - layer.msg('添加绑定成功!此次添加了' + insertCount + '个新资源' + (isExistCount > 0 ? ',有' + isExistCount + '个已经存在。' : ''), {icon: 1, time: 5000}); 858 + layer.msg('添加绑定成功!此次添加了' + insertCount + '个新资源(父资源)' + (isExistCount > 0 ? ',有' + isExistCount + '个已经存在。' : ''), {icon: 1, time: 5000});
852 layer.close(addResLayerIndex); 859 layer.close(addResLayerIndex);
853 reloadTable(resType,busId); 860 reloadTable(resType,busId);
854 } else { 861 } else {
@@ -3,5 +3,6 @@ @@ -3,5 +3,6 @@
3 :viewTypeName="docTypeName" 3 :viewTypeName="docTypeName"
4 :types="[docType]" 4 :types="[docType]"
5 :fileIds="docIds" 5 :fileIds="docIds"
  6 + :canAddFolder="canAddFolder"
6 @callback="saveOpsLog"></cm-document> 7 @callback="saveOpsLog"></cm-document>
7 8
@@ -31,6 +31,12 @@ export default { @@ -31,6 +31,12 @@ export default {
31 type: String, 31 type: String,
32 default: '' 32 default: ''
33 }, 33 },
  34 + // 是否展示新建文件按钮
  35 + canAddFolder: {
  36 + type: Boolean,
  37 + default: true
  38 + },
  39 +
34 }, 40 },
35 setup(props, {attrs, slots, emit}) { 41 setup(props, {attrs, slots, emit}) {
36 42
@@ -4,6 +4,6 @@ @@ -4,6 +4,6 @@
4 <el-divider content-position="left">项目评价汇总</el-divider> 4 <el-divider content-position="left">项目评价汇总</el-divider>
5 <cm-table-page :columns="columns" :dataList="dataList" @loaddata="getPage" :showIndex="true" 5 <cm-table-page :columns="columns" :dataList="dataList" @loaddata="getPage" :showIndex="true"
6 :showBorder="true" :currentPage="currentPage" :total="total" :loading="false" 6 :showBorder="true" :currentPage="currentPage" :total="total" :loading="false"
7 - :showPage="true" :height="height"></cm-table-page> 7 + :showPage="true" :height="height" :pageSize="pageSize"></cm-table-page>
8 </div> 8 </div>
9 </div> 9 </div>
@@ -5,7 +5,7 @@ export default { @@ -5,7 +5,7 @@ export default {
5 data() { 5 data() {
6 return {} 6 return {}
7 }, 7 },
8 - props:{ 8 + props: {
9 treeNode: { 9 treeNode: {
10 type: Object, 10 type: Object,
11 default: {} 11 default: {}
@@ -22,6 +22,10 @@ export default { @@ -22,6 +22,10 @@ export default {
22 type: Number, 22 type: Number,
23 default: 0 23 default: 0
24 }, 24 },
  25 + pageSize: {
  26 + type: Number,
  27 + default: 10
  28 + },
25 }, 29 },
26 setup(props, {attrs, slots, emit}) { 30 setup(props, {attrs, slots, emit}) {
27 const {proxy} = Vue.getCurrentInstance(); 31 const {proxy} = Vue.getCurrentInstance();
@@ -115,17 +119,17 @@ export default { @@ -115,17 +119,17 @@ export default {
115 // 获取表格数据 119 // 获取表格数据
116 let getPage = (obj) => { 120 let getPage = (obj) => {
117 121
118 - if(!props.treeNode.map || !props.treeNode.map.nodeType){ 122 + if (!props.treeNode.map || !props.treeNode.map.nodeType) {
119 return; 123 return;
120 } 124 }
121 let params = { 125 let params = {
122 - "page":1,  
123 - "limit":10, 126 + "page": 1,
  127 + "limit": props.pageSize,
124 "projectId": props.treeNode.map.nodeType.projectId 128 "projectId": props.treeNode.map.nodeType.projectId
125 } 129 }
126 - if(obj){  
127 - params.page = obj.currentPage;  
128 - params.limit = obj.pageSize; 130 + if (obj) {
  131 + params.page = obj.page;
  132 + params.limit = obj.limit;
129 } 133 }
130 proxy.$http.post("/api-web/bOpsScore/scoreCollect", params, function (res) { 134 proxy.$http.post("/api-web/bOpsScore/scoreCollect", params, function (res) {
131 if (res && res.data) { 135 if (res && res.data) {
@@ -139,7 +143,7 @@ export default { @@ -139,7 +143,7 @@ export default {
139 Vue.onMounted(() => { 143 Vue.onMounted(() => {
140 getPage(); 144 getPage();
141 145
142 - if(props.height && props.height == 0){ 146 + if (props.height && props.height == 0) {
143 props.height = window.innerHeight - 130 147 props.height = window.innerHeight - 130
144 } 148 }
145 }) 149 })
@@ -4,6 +4,6 @@ @@ -4,6 +4,6 @@
4 <el-divider content-position="left">人员信息汇总</el-divider> 4 <el-divider content-position="left">人员信息汇总</el-divider>
5 <cm-table-page :columns="columns" :dataList="dataList" @loaddata="getPage" :showIndex="true" 5 <cm-table-page :columns="columns" :dataList="dataList" @loaddata="getPage" :showIndex="true"
6 :showBorder="true" :currentPage="currentPage" :total="total" :loading="false" 6 :showBorder="true" :currentPage="currentPage" :total="total" :loading="false"
7 - :showPage="true" :height="height"></cm-table-page> 7 + :showPage="true" :height="height" :pageSize="pageSize"></cm-table-page>
8 </div> 8 </div>
9 </div> 9 </div>
@@ -3,11 +3,9 @@ export default { @@ -3,11 +3,9 @@ export default {
3 template: '', 3 template: '',
4 components: {}, 4 components: {},
5 data() { 5 data() {
6 - return {  
7 -  
8 - } 6 + return {}
9 }, 7 },
10 - props:{ 8 + props: {
11 treeNode: { 9 treeNode: {
12 type: Object, 10 type: Object,
13 default: {} 11 default: {}
@@ -24,6 +22,10 @@ export default { @@ -24,6 +22,10 @@ export default {
24 type: Number, 22 type: Number,
25 default: 0 23 default: 0
26 }, 24 },
  25 + pageSize: {
  26 + type: Number,
  27 + default: 10
  28 + },
27 }, 29 },
28 setup(props, {attrs, slots, emit}) { 30 setup(props, {attrs, slots, emit}) {
29 31
@@ -40,16 +42,16 @@ export default { @@ -40,16 +42,16 @@ export default {
40 sortable: true, 42 sortable: true,
41 render: function (row) { 43 render: function (row) {
42 let arr = []; 44 let arr = [];
43 - if(row.phone){ 45 + if (row.phone) {
44 arr.push(row.phone); 46 arr.push(row.phone);
45 } 47 }
46 48
47 - if(row.tel){ 49 + if (row.tel) {
48 arr.push(row.tel); 50 arr.push(row.tel);
49 } 51 }
50 return arr.join(' / ') 52 return arr.join(' / ')
51 } 53 }
52 - },{ 54 + }, {
53 prop: 'email', 55 prop: 'email',
54 label: '电子邮箱', 56 label: '电子邮箱',
55 sortable: true, 57 sortable: true,
@@ -59,9 +61,9 @@ export default { @@ -59,9 +61,9 @@ export default {
59 sortable: true, 61 sortable: true,
60 width: '120px', 62 width: '120px',
61 render: function (row) { 63 render: function (row) {
62 - if(row.state==1){ 64 + if (row.state == 1) {
63 return "在职"; 65 return "在职";
64 - }else{ 66 + } else {
65 return "<span style='color: red'>离职</span>"; 67 return "<span style='color: red'>离职</span>";
66 } 68 }
67 } 69 }
@@ -71,9 +73,9 @@ export default { @@ -71,9 +73,9 @@ export default {
71 sortable: true, 73 sortable: true,
72 width: '180px', 74 width: '180px',
73 render: function (row) { 75 render: function (row) {
74 - if(row.personalMessage =="YES"){ 76 + if (row.personalMessage == "YES") {
75 return `<i class="iconfont icon-icon--yes" style="font-size: 22px;margin-right: 10px;"></i><span></span>`; 77 return `<i class="iconfont icon-icon--yes" style="font-size: 22px;margin-right: 10px;"></i><span></span>`;
76 - }else{ 78 + } else {
77 return `<i class="iconfont icon-icon--shanchu" style="font-size: 22px;margin-right: 10px;color:red"></i><span></span>`; 79 return `<i class="iconfont icon-icon--shanchu" style="font-size: 22px;margin-right: 10px;color:red"></i><span></span>`;
78 } 80 }
79 } 81 }
@@ -84,9 +86,9 @@ export default { @@ -84,9 +86,9 @@ export default {
84 sortable: true, 86 sortable: true,
85 width: '180px', 87 width: '180px',
86 render: function (row) { 88 render: function (row) {
87 - if(row.personalSecrecyBook =="YES"){ 89 + if (row.personalSecrecyBook == "YES") {
88 return `<i class="iconfont icon-icon--yes" style="font-size: 22px;margin-right: 10px;"></i><span></span>`; 90 return `<i class="iconfont icon-icon--yes" style="font-size: 22px;margin-right: 10px;"></i><span></span>`;
89 - }else{ 91 + } else {
90 return `<i class="iconfont icon-icon--shanchu" style="font-size: 22px;margin-right: 10px;color:red"></i><span></span>`; 92 return `<i class="iconfont icon-icon--shanchu" style="font-size: 22px;margin-right: 10px;color:red"></i><span></span>`;
91 } 93 }
92 } 94 }
@@ -96,9 +98,9 @@ export default { @@ -96,9 +98,9 @@ export default {
96 sortable: true, 98 sortable: true,
97 width: '180px', 99 width: '180px',
98 render: function (row) { 100 render: function (row) {
99 - if(row.monthlySummary =="YES"){ 101 + if (row.monthlySummary == "YES") {
100 return `<i class="iconfont icon-icon--yes" style="font-size: 22px;margin-right: 10px;"></i><span></span>`; 102 return `<i class="iconfont icon-icon--yes" style="font-size: 22px;margin-right: 10px;"></i><span></span>`;
101 - }else{ 103 + } else {
102 return `<i class="iconfont icon-icon--shanchu" style="font-size: 22px;margin-right: 10px;color:red"></i><span></span>`; 104 return `<i class="iconfont icon-icon--shanchu" style="font-size: 22px;margin-right: 10px;color:red"></i><span></span>`;
103 105
104 } 106 }
@@ -111,18 +113,21 @@ export default { @@ -111,18 +113,21 @@ export default {
111 113
112 // 获取表格数据 114 // 获取表格数据
113 let getPage = (obj) => { 115 let getPage = (obj) => {
114 - if(!props.treeNode.map || !props.treeNode.map.nodeType){ 116 + if (!props.treeNode.map || !props.treeNode.map.nodeType) {
115 return; 117 return;
116 } 118 }
117 119
  120 + let isRootNode = props.treeNode.map.nodeType.parent == 'ONE_USER'
  121 +
118 let params = { 122 let params = {
119 - "page":1,  
120 - "limit":10,  
121 - "projectId": props.treeNode.map.nodeType.projectId 123 + "page": 1,
  124 + "limit": props.pageSize,
  125 + "projectId": props.treeNode.map.nodeType.projectId,
  126 + "nickname": !isRootNode ? '' : props.treeNode.label
122 } 127 }
123 - if(obj){  
124 - params.page = obj.currentPage;  
125 - params.limit = obj.pageSize; 128 + if (obj) {
  129 + params.page = obj.page;
  130 + params.limit = obj.limit;
126 } 131 }
127 proxy.$http.post("/api-web/bOpsPerson/personCollect", params, function (res) { 132 proxy.$http.post("/api-web/bOpsPerson/personCollect", params, function (res) {
128 if (res && res.data) { 133 if (res && res.data) {
@@ -137,9 +142,9 @@ export default { @@ -137,9 +142,9 @@ export default {
137 142
138 // 挂载完 143 // 挂载完
139 Vue.onMounted(() => { 144 Vue.onMounted(() => {
140 - //getPage(); 145 + getPage();
141 146
142 - if(props.height && props.height == 0){ 147 + if (props.height && props.height == 0) {
143 props.height = window.innerHeight - 130 148 props.height = window.innerHeight - 130
144 } 149 }
145 }) 150 })
1 <div style="padding-top: 20px;"> 1 <div style="padding-top: 20px;">
  2 + <el-divider content-position="left">个人信息</el-divider>
2 <el-form :model="ruleForm" label-width="120px" :size="$global.elementSize"> 3 <el-form :model="ruleForm" label-width="120px" :size="$global.elementSize">
3 <el-row> 4 <el-row>
4 <el-col :span="8"> 5 <el-col :span="8">
@@ -69,29 +69,24 @@ export default { @@ -69,29 +69,24 @@ export default {
69 69
70 70
71 let getFile = (param) =>{ 71 let getFile = (param) =>{
72 -  
73 let fileObj = param.file 72 let fileObj = param.file
74 73
75 - getBase64(fileObj).then(res => { 74 + proxy.$global.getBase64(fileObj).then(res => {
76 console.log(res) 75 console.log(res)
77 }); 76 });
78 77
79 imageUrl.value = URL.createObjectURL(fileObj) 78 imageUrl.value = URL.createObjectURL(fileObj)
80 79
81 } 80 }
  81 +
82 let beforeAvatarUpload = (file) =>{ 82 let beforeAvatarUpload = (file) =>{
83 const isJPG = file.type.indexOf('image/') != -1 83 const isJPG = file.type.indexOf('image/') != -1
84 -  
85 if (!isJPG) { 84 if (!isJPG) {
86 proxy.$global.showMsg('您上传的不是图片文件,请选择图片!','error'); 85 proxy.$global.showMsg('您上传的不是图片文件,请选择图片!','error');
87 } 86 }
88 -  
89 return isJPG 87 return isJPG
90 } 88 }
91 89
92 -  
93 -  
94 -  
95 // // 挂载完 90 // // 挂载完
96 Vue.onMounted(() => { 91 Vue.onMounted(() => {
97 getPage(); 92 getPage();
@@ -4,6 +4,6 @@ @@ -4,6 +4,6 @@
4 <el-divider content-position="left">项目资料汇总</el-divider> 4 <el-divider content-position="left">项目资料汇总</el-divider>
5 <cm-table-page :columns="columns" :dataList="dataList" @loaddata="getPage" :showIndex="true" 5 <cm-table-page :columns="columns" :dataList="dataList" @loaddata="getPage" :showIndex="true"
6 :showBorder="true" :currentPage="currentPage" :total="total" :loading="false" 6 :showBorder="true" :currentPage="currentPage" :total="total" :loading="false"
7 - :showPage="false" :height="height"></cm-table-page> 7 + :showPage="false" :height="height" :pageSize="pageSize"></cm-table-page>
8 </div> 8 </div>
9 </div> 9 </div>
@@ -22,6 +22,10 @@ export default { @@ -22,6 +22,10 @@ export default {
22 type: Number, 22 type: Number,
23 default: 0 23 default: 0
24 }, 24 },
  25 + pageSize: {
  26 + type: Number,
  27 + default: 10
  28 + },
25 }, 29 },
26 setup(props, {attrs, slots, emit}) { 30 setup(props, {attrs, slots, emit}) {
27 const {proxy} = Vue.getCurrentInstance(); 31 const {proxy} = Vue.getCurrentInstance();
@@ -70,7 +74,10 @@ export default { @@ -70,7 +74,10 @@ export default {
70 74
71 // 获取表格数据 75 // 获取表格数据
72 let getPage = () => { 76 let getPage = () => {
73 - let projectId = props.treeNode.map.nodeType.projectId 77 + let projectId = ''
  78 + if(props.treeNode && props.treeNode.map){
  79 + projectId = props.treeNode.map.nodeType.projectId;
  80 + }
74 if(!projectId){ 81 if(!projectId){
75 return; 82 return;
76 } 83 }
@@ -85,7 +92,9 @@ export default { @@ -85,7 +92,9 @@ export default {
85 92
86 // 挂载完 93 // 挂载完
87 Vue.onMounted(() => { 94 Vue.onMounted(() => {
88 - if(props.height && props.height == 0){ 95 + getPage();
  96 +
  97 + if (props.height && props.height == 0) {
89 props.height = window.innerHeight - 130 98 props.height = window.innerHeight - 130
90 } 99 }
91 }) 100 })
1 1
2 -import { Set_Count } from './mutation-types.js'  
3 2
4 export default Vuex.createStore({ 3 export default Vuex.createStore({
5 state: { 4 state: {
6 - count: 0,  
7 - myObject: {  
8 - time: '现在的时间:'  
9 - },  
10 - myArray: [1,2,2,3,4] 5 +
11 }, 6 },
12 getters: { 7 getters: {
13 - getAddCount: (state) => {  
14 - return state.count + 1  
15 - },  
16 - getTime: (state) => {  
17 - return state.myObject.time + new Date()  
18 - },  
19 - filterArray: (state) => (id) => {  
20 - return state.myArray.filter((item) => item === id)  
21 - } 8 +
22 }, 9 },
23 mutations: { 10 mutations: {
24 - // 计数器  
25 - setCount(state, num = 1) {  
26 - state.count += num  
27 - },  
28 - [Set_Count](state, num = 1) {  
29 - state.count += num  
30 - },  
31 - // 设置当前时间  
32 - setTime(state) {  
33 - state.myObject.time = '现在时间:' + new Date()  
34 11
35 }, 12 },
36 - // 设置数组的值  
37 - setArray(state, val = 4) {  
38 - state.myArray[1] = val  
39 - },  
40 - reloadArray(state, arr) {  
41 - state.myArray.lenth = 0  
42 - state.myArray = [...arr]  
43 - }  
44 - },  
45 actions: { 13 actions: {
46 - // 异步获取数组  
47 - getArray(context) {  
48 - setTimeout(() => {  
49 - context.commit('setArray', new Date().valueOf())  
50 - }, 10000)  
51 - },  
52 - // 异步获取数组  
53 - getArrayPromise(context) {  
54 - return new Promise((resolve, reject) => {  
55 - setTimeout(() => {  
56 - const time = new Date().valueOf()  
57 - resolve(time)  
58 - }, 2000)  
59 - })  
60 - },  
61 - // axios  
62 - getDat2(context) {  
63 - const ajax = axios.get('demo.json')  
64 - ajax.then((response) => {  
65 - const arr = response.data.company.formItem  
66 - console.log('getData - axios - response', arr)  
67 - // context.commit('reloadArray', arr)  
68 - })  
69 - .catch((error) => {  
70 - console.log('getData - axios - error', error)  
71 - })  
72 - return ajax // 直接返回 axios 的promise的实例  
73 - } 14 +
74 }, 15 },
75 modules: { 16 modules: {
76 } 17 }
1 -  
2 -const map = () => {  
3 - const store = Vuex.useStore()  
4 -  
5 - /**  
6 - * 获取count,  
7 - * 用computed实现相应  
8 - */  
9 - const getCount = () => {  
10 - return Vue.computed(() => store.state.count)  
11 - }  
12 -  
13 - /**  
14 - * 获取count,  
15 - ** 用 ref 实现相应  
16 - */  
17 - const getRefCount = () => {  
18 - return Vue.ref(store.state.count)  
19 - }  
20 -  
21 - /**  
22 - * 获取对象  
23 - */  
24 - const getObject = () => {  
25 - return store.state.myObject  
26 - }  
27 -  
28 - /**  
29 - * 获取只读对象  
30 - */  
31 - const getReadonlyObject = () => {  
32 - return Vue.readonly(store.state.myObject)  
33 - }  
34 -  
35 - /**  
36 - * 获取数组  
37 - */  
38 - const getArray = () => {  
39 - return store.state.myArray  
40 - }  
41 - /**  
42 - * 获取只读数组  
43 - */  
44 - const getReadonlyArray = () => {  
45 - return Vue.readonly(store.state.myArray)  
46 - }  
47 -  
48 - /**  
49 - * 查询数组  
50 - ** id:要查询的数据  
51 - */  
52 - const filterArray = (id) => {  
53 - return Vue.computed(() => store.getters.filterArray(id))  
54 - }  
55 -  
56 - return {  
57 - getCount,  
58 - getRefCount,  
59 - getObject,  
60 - getReadonlyObject,  
61 - getArray,  
62 - getReadonlyArray,  
63 - filterArray  
64 - }  
65 -  
66 -}  
67 -  
68 -export default map  
1 -export const Set_Count = 'set_count'  
2 -export const Set_Count_sy = Symbol('set_count')  
@@ -21,7 +21,7 @@ @@ -21,7 +21,7 @@
21 </el-form-item> 21 </el-form-item>
22 <el-form-item label="项目负责人" prop="principalName"> 22 <el-form-item label="项目负责人" prop="principalName">
23 <div style="display: flex"> 23 <div style="display: flex">
24 - <el-input v-model="form.principalName" :disabled="form.isOps == 0" clearable></el-input> 24 + <el-input v-model="form.principalName" :disabled="form.isOps == 0" readonly="true" clearable></el-input>
25 <el-button style="margin-left: 5px" @click="showUserDialog(true)" :disabled="form.isOps == 0" >选择</el-button> 25 <el-button style="margin-left: 5px" @click="showUserDialog(true)" :disabled="form.isOps == 0" >选择</el-button>
26 </div> 26 </div>
27 </el-form-item> 27 </el-form-item>
@@ -33,7 +33,7 @@ @@ -33,7 +33,7 @@
33 <el-input v-model="form.remark" type="textarea" :disabled="form.isOps == 0" clearable></el-input> 33 <el-input v-model="form.remark" type="textarea" :disabled="form.isOps == 0" clearable></el-input>
34 </el-form-item> 34 </el-form-item>
35 <el-form-item> 35 <el-form-item>
36 - <el-button type="primary" @click="onSubmit('ruleForm')">保存配置</el-button> 36 + <el-button type="primary" size="small" @click="onSubmit('ruleForm')">保存配置</el-button>
37 </el-form-item> 37 </el-form-item>
38 </el-form> 38 </el-form>
39 39
@@ -66,6 +66,8 @@ export default { @@ -66,6 +66,8 @@ export default {
66 proxy.$http.post(`/api-web/bOpsProject/saveOrUpdate`, params, function (res) { 66 proxy.$http.post(`/api-web/bOpsProject/saveOrUpdate`, params, function (res) {
67 if (res && res.code == 0) { 67 if (res && res.code == 0) {
68 proxy.$global.showMsg("配置成功!"); 68 proxy.$global.showMsg("配置成功!");
  69 +
  70 + $(parent.window.document).trigger('closeBusWindow');
69 } 71 }
70 }) 72 })
71 } else { 73 } else {
@@ -77,7 +79,7 @@ export default { @@ -77,7 +79,7 @@ export default {
77 79
78 let init = () => { 80 let init = () => {
79 let busId = proxy.$global.getQueryVariable("id") 81 let busId = proxy.$global.getQueryVariable("id")
80 - //let isOps = proxy.$global.getQueryVariable("isOps") 82 + let code = proxy.$global.getQueryVariable("code")
81 83
82 if (!busId) { 84 if (!busId) {
83 return; 85 return;
@@ -19,6 +19,7 @@ @@ -19,6 +19,7 @@
19 :docType="docType" 19 :docType="docType"
20 :docTypeName="docTypeName" 20 :docTypeName="docTypeName"
21 :height="height - 100" 21 :height="height - 100"
  22 + :pageSize="pageSize"
22 :treeNode="treeNode" :parentNode="parentNode" :projectId="projectId"></component> 23 :treeNode="treeNode" :parentNode="parentNode" :projectId="projectId"></component>
23 </div> 24 </div>
24 </el-col> 25 </el-col>
@@ -41,7 +41,7 @@ export default { @@ -41,7 +41,7 @@ export default {
41 }, 41 },
42 setup() { 42 setup() {
43 const {proxy} = Vue.getCurrentInstance() 43 const {proxy} = Vue.getCurrentInstance()
44 - let height = Vue.ref(window.innerHeight -20); 44 + let height = Vue.ref(window.innerHeight - 20);
45 let dataSource = Vue.ref([]); 45 let dataSource = Vue.ref([]);
46 let componentName = Vue.ref('COLLECT_ALL'); 46 let componentName = Vue.ref('COLLECT_ALL');
47 // 当前点击节点 47 // 当前点击节点
@@ -50,6 +50,8 @@ export default { @@ -50,6 +50,8 @@ export default {
50 let projectId = Vue.ref(''); 50 let projectId = Vue.ref('');
51 let docType = Vue.ref(''); 51 let docType = Vue.ref('');
52 let docTypeName = Vue.ref(''); 52 let docTypeName = Vue.ref('');
  53 + let pageSize = Vue.ref(10)
  54 + let canAddFolder = Vue.ref(true);
53 55
54 56
55 // 搜索 57 // 搜索
@@ -87,9 +89,25 @@ export default { @@ -87,9 +89,25 @@ export default {
87 let handleNodeClick = (data) => { 89 let handleNodeClick = (data) => {
88 90
89 let comName = data.map.nodeType.view.code; 91 let comName = data.map.nodeType.view.code;
  92 + let code = data.map.nodeType.code;
90 if (comName == 'DOCUMENT') { 93 if (comName == 'DOCUMENT') {
91 - docType.value = data.map.nodeType.code; 94 + docType.value = code
92 docTypeName.value = data.label; 95 docTypeName.value = data.label;
  96 + // 个人保密协议不展示,新建文件夹按钮
  97 + if(code == 'TWO_SPECIFIC'){
  98 + canAddFolder.value = false;
  99 + } else {
  100 + canAddFolder.value = true;
  101 + }
  102 + }
  103 +
  104 + // 设置展示页数
  105 + if (code != 'ROOT_NODE') {
  106 + // 全页展示数据条数
  107 + pageSize.value = 50;
  108 + } else {
  109 + // 根接节点展示
  110 + pageSize.value = 10;
93 } 111 }
94 getParent(dataSource.value, data.parentId); 112 getParent(dataSource.value, data.parentId);
95 projectId.value = data.map.nodeType.projectId; 113 projectId.value = data.map.nodeType.projectId;
@@ -101,6 +119,7 @@ export default { @@ -101,6 +119,7 @@ export default {
101 }) 119 })
102 // 搜索 120 // 搜索
103 return { 121 return {
  122 + pageSize,
104 height, 123 height,
105 projectId, 124 projectId,
106 treeNode, 125 treeNode,
@@ -109,7 +128,8 @@ export default { @@ -109,7 +128,8 @@ export default {
109 handleNodeClick, 128 handleNodeClick,
110 componentName, 129 componentName,
111 docType, 130 docType,
112 - docTypeName 131 + docTypeName,
  132 + canAddFolder
113 }; 133 };
114 }, 134 },
115 } 135 }
@@ -21,9 +21,12 @@ @@ -21,9 +21,12 @@
21 </el-form-item> 21 </el-form-item>
22 </el-form> 22 </el-form>
23 </div> 23 </div>
  24 + <div style="padding: 3px 6px;text-align: right">
  25 + <el-button type="primary" @click="showConfigDialog(true)">配置</el-button>
  26 + </div>
24 <cm-table-page :columns="obj.columns" :dataList="obj.maps" @loaddata="getPage" :showIndex="true" 27 <cm-table-page :columns="obj.columns" :dataList="obj.maps" @loaddata="getPage" :showIndex="true"
25 :showBorder="true" :currentPage="currentPage" :total="total" :loading="false" 28 :showBorder="true" :currentPage="currentPage" :total="total" :loading="false"
26 - :showPage="true" :height="(height - 80)"> 29 + :showPage="true" :height="(height - 130)">
27 <template #default="{row,prop,column}"> 30 <template #default="{row,prop,column}">
28 <a href="javascript:void(0)" v-if="prop == 'resPositon' || prop == 'cabinetNo'" style="border-bottom: solid 1px blue;margin-bottom: 3px;height: 30px;font-size: 15px;" @click="cellClick(row,prop,column)">{{row[prop]}}</a> 31 <a href="javascript:void(0)" v-if="prop == 'resPositon' || prop == 'cabinetNo'" style="border-bottom: solid 1px blue;margin-bottom: 3px;height: 30px;font-size: 15px;" @click="cellClick(row,prop,column)">{{row[prop]}}</a>
29 <el-link v-else :underline="false" @click="item.click(scope.row)">{{row[prop]}}</el-link> 32 <el-link v-else :underline="false" @click="item.click(scope.row)">{{row[prop]}}</el-link>
@@ -52,4 +55,10 @@ @@ -52,4 +55,10 @@
52 55
53 </template> 56 </template>
54 </cm-dialog> 57 </cm-dialog>
  58 +
  59 + <cm-dialog :title="dialogDetail.title" width="80%" :showDialogVisible="showConfig" :showFooter="false" @hidedialog="showConfigDialog" :showOkBtn="false" cancelText="关闭">
  60 + <template v-slot>
  61 +
  62 + </template>
  63 + </cm-dialog>
55 </div> 64 </div>
  1 +// 获取状态
  2 +const configPage = () => {
  3 + // 展示配置弹框
  4 + let dialogFlg = Vue.ref(false);
  5 + let dialogDetail = Vue.ref({
  6 + title: '资源属性配置',
  7 + });
  8 +
  9 + let showConfigDialog = (flg) => {
  10 + dialogFlg.value = flg;
  11 + }
  12 +
  13 + return {
  14 + showConfig: dialogFlg,
  15 + showConfigDialog,
  16 + dialogDetail
  17 +
  18 + }
  19 +}
1 export default { 20 export default {
2 name: 'resIndex', 21 name: 'resIndex',
3 template: '', 22 template: '',
@@ -8,15 +27,15 @@ export default { @@ -8,15 +27,15 @@ export default {
8 }, 27 },
9 data() { 28 data() {
10 return { 29 return {
11 - props : {  
12 - label:'label',  
13 - children:'children' 30 + props: {
  31 + label: 'label',
  32 + children: 'children'
14 } 33 }
15 } 34 }
16 }, 35 },
17 setup() { 36 setup() {
18 const {proxy} = Vue.getCurrentInstance(); 37 const {proxy} = Vue.getCurrentInstance();
19 - let height = Vue.ref(window.innerHeight -10); 38 + let height = Vue.ref(window.innerHeight - 10);
20 // 树数据 39 // 树数据
21 const treeData = Vue.ref([]); 40 const treeData = Vue.ref([]);
22 // 表格数据对象 41 // 表格数据对象
@@ -25,7 +44,7 @@ export default { @@ -25,7 +44,7 @@ export default {
25 const currentNode = Vue.ref({}); 44 const currentNode = Vue.ref({});
26 // 搜索框内容 45 // 搜索框内容
27 const searchForm = Vue.ref({ 46 const searchForm = Vue.ref({
28 - resName:'' 47 + resName: ''
29 }); 48 });
30 49
31 // 单元格点及保存的数据 50 // 单元格点及保存的数据
@@ -34,16 +53,7 @@ export default { @@ -34,16 +53,7 @@ export default {
34 // 展示U位弹框 53 // 展示U位弹框
35 let dialogFlg = Vue.ref(false); 54 let dialogFlg = Vue.ref(false);
36 55
37 - // const dialog = Vue.ref({  
38 - // title: '资源类型配置',  
39 - // activeName: ''  
40 - // });  
41 - // const dialogVisible = Vue.ref(false);  
42 - //  
43 - // // 弹框  
44 - // let showDialog = () => {  
45 - // dialogVisible.value = true;  
46 - // } 56 + let total = Vue.ref(0);
47 57
48 // 获取左侧树结构 58 // 获取左侧树结构
49 let loadTree = () => { 59 let loadTree = () => {
@@ -57,17 +67,25 @@ export default { @@ -57,17 +67,25 @@ export default {
57 }); 67 });
58 } 68 }
59 69
60 - let loadResList = () =>{  
61 - if(currentNode.value){  
62 - proxy.$http.get(`/api-web/v32/res/list/list/${currentNode.value.id}`, {}, function (res) { 70 + let loadResList = () => {
  71 + if (currentNode.value) {
  72 + // 查询参数
  73 + let params = {
  74 + page: 1,
  75 + limit: 10,
  76 + treeNodId: currentNode.value.id,
  77 + query: {}
  78 + }
  79 + proxy.$http.get(`/api-web/v32/res/list`, params, function (res) {
63 if (res && res.object) { 80 if (res && res.object) {
64 obj.value = res.object 81 obj.value = res.object
  82 + total.value = res.count;
65 } 83 }
66 }); 84 });
67 } 85 }
68 } 86 }
69 87
70 - let handleNodeClick =(data) =>{ 88 + let handleNodeClick = (data) => {
71 console.log(data) 89 console.log(data)
72 currentNode.value = data; 90 currentNode.value = data;
73 loadResList(); 91 loadResList();
@@ -75,11 +93,11 @@ export default { @@ -75,11 +93,11 @@ export default {
75 93
76 94
77 // 展示机房或者机柜信息 95 // 展示机房或者机柜信息
78 - let showDialog = (flg) =>{ 96 + let showDialog = (flg) => {
79 dialogFlg.value = flg; 97 dialogFlg.value = flg;
80 } 98 }
81 99
82 - let cellClick = (row,prop,column) =>{ 100 + let cellClick = (row, prop, column) => {
83 openCabinet(true); 101 openCabinet(true);
84 showDialog(true); 102 showDialog(true);
85 cellDetail.value['prop'] = prop; 103 cellDetail.value['prop'] = prop;
@@ -87,8 +105,8 @@ export default { @@ -87,8 +105,8 @@ export default {
87 cellDetail.value['title'] = column.label + '详情'; 105 cellDetail.value['title'] = column.label + '详情';
88 } 106 }
89 let cabinetNoSrc = Vue.ref(''); 107 let cabinetNoSrc = Vue.ref('');
90 - let openCabinet = (isInit) =>{  
91 - if(isInit){ 108 + let openCabinet = (isInit) => {
  109 + if (isInit) {
92 cabinetNoSrc.value = "/vue3/src/assets/images/res/img01.jpg" 110 cabinetNoSrc.value = "/vue3/src/assets/images/res/img01.jpg"
93 } else { 111 } else {
94 cabinetNoSrc.value = "/vue3/src/assets/images/res/img03.jpg" 112 cabinetNoSrc.value = "/vue3/src/assets/images/res/img03.jpg"
@@ -104,10 +122,9 @@ export default { @@ -104,10 +122,9 @@ export default {
104 }) 122 })
105 123
106 124
  125 + // 配置页面
  126 + const {showConfig, showConfigDialog, dialogDetail} = configPage()
107 return { 127 return {
108 - /*showDialog,  
109 - dialogVisible,  
110 - dialog*/  
111 128
112 currentNode, 129 currentNode,
113 treeData, 130 treeData,
@@ -122,7 +139,11 @@ export default { @@ -122,7 +139,11 @@ export default {
122 cellClick, 139 cellClick,
123 140
124 openCabinet, 141 openCabinet,
125 - cabinetNoSrc 142 + cabinetNoSrc,
  143 + total,
  144 +
  145 + // 配置页面
  146 + showConfig, showConfigDialog, dialogDetail,
126 } 147 }
127 } 148 }
128 } 149 }