Authored by 鲁尚清

Merge branch 'master' of http://192.168.1.136:82/monitor_v3/hg-monitor-web into …

…master-v32-lushangqing
Showing 21 changed files with 515 additions and 25 deletions
@@ -1714,6 +1714,12 @@ layui.define(['xmSelect', 'md5'], function (exports) { @@ -1714,6 +1714,12 @@ layui.define(['xmSelect', 'md5'], function (exports) {
1714 }); 1714 });
1715 }); 1715 });
1716 }; 1716 };
  1717 + //修改基本信息 joke add 20211206
  1718 + admin.events.changeInfo = function () {
  1719 + obj.openWin('baseconfig/user/userChange', '编辑', {id: sessionStorage.getItem('user_id'),type:'userChange'}, ['保存', '取消'], function f() {
  1720 + $("#user_form_save_id").trigger("click");
  1721 + },null,['60%', '45%']);
  1722 + };
1717 1723
1718 // 监听拓扑iframe事件 1724 // 监听拓扑iframe事件
1719 window.onmessage = function (messageEvent) { 1725 window.onmessage = function (messageEvent) {
@@ -52,18 +52,18 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laytpl', @@ -52,18 +52,18 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laytpl',
52 success: function (response) { 52 success: function (response) {
53 layer.closeAll('loading'); 53 layer.closeAll('loading');
54 if (response && response.success) { 54 if (response && response.success) {
55 - if(response.map){  
56 - var isMonitoringCount=response.map.isMonitoringCount?response.map.isMonitoringCount:'0';  
57 - var noMonitoringCount=response.map.noMonitoringCount?response.map.noMonitoringCount:'0';  
58 - var isPingCount=response.map.isPingCount?response.map.isPingCount:'0';  
59 - var noPingCount=response.map.noPingCount?response.map.noPingCount:'0'; 55 + if (response.map) {
  56 + var isMonitoringCount = response.map.isMonitoringCount ? response.map.isMonitoringCount : '0';
  57 + var noMonitoringCount = response.map.noMonitoringCount ? response.map.noMonitoringCount : '0';
  58 + var isPingCount = response.map.isPingCount ? response.map.isPingCount : '0';
  59 + var noPingCount = response.map.noPingCount ? response.map.noPingCount : '0';
60 $("#ip-count-isPing").text(isPingCount); 60 $("#ip-count-isPing").text(isPingCount);
61 $("#ip-count-noPing").text(noPingCount); 61 $("#ip-count-noPing").text(noPingCount);
62 $("#ip-count-isMonitoring").text(isMonitoringCount); 62 $("#ip-count-isMonitoring").text(isMonitoringCount);
63 $("#ip-count-noMonitoring").text(noMonitoringCount); 63 $("#ip-count-noMonitoring").text(noMonitoringCount);
64 } 64 }
65 //清理之前 65 //清理之前
66 - $.each($('#div-ip-card-body .ip-tab-title'),function (i,v) { 66 + $.each($('#div-ip-card-body .ip-tab-title'), function (i, v) {
67 $(this).remove(); 67 $(this).remove();
68 }); 68 });
69 $('#div-ip-card-body .ip-tab-content').empty(); 69 $('#div-ip-card-body .ip-tab-content').empty();
@@ -125,6 +125,30 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laytpl', @@ -125,6 +125,30 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laytpl',
125 } 125 }
126 }); 126 });
127 }); 127 });
  128 +
  129 + if (response.str) {//统计段数
  130 + // var $lis = $('#div-ip-card-body').find("li");
  131 + // var li = response.str.split("&&");
  132 + // $.each(li, function (i, v) {
  133 + // var name = v.split("_")[0];
  134 + // var number = v.split("_")[1];
  135 + // var sp = '<span class="layui-ip-status-item-tips" lay-tips="' + name + '域前有' + number + 'C类段">' + number + '</span>';
  136 + // var span =$lis[i];
  137 + // $(span).append(sp);
  138 + // });
  139 + var str = "";
  140 + var li = response.str.split("&&");
  141 + $.each(li, function (i, v) {
  142 + var name = v.split("_")[0];
  143 + var number = v.split("_")[1];
  144 + str += name + '有' + number + '个C类段' + ',';
  145 + });
  146 + if(str!=""){
  147 + str=str.substring(0,str.length-1);
  148 + }
  149 + $('#ipTxtTips').html(str);
  150 + $('#ipTxtTips').removeClass('hide');
  151 + }
128 } else { 152 } else {
129 layer.msg('获取ip信息失败!', {icon: 0}); 153 layer.msg('获取ip信息失败!', {icon: 0});
130 } 154 }
@@ -219,6 +219,7 @@ layui.define(['sessions', 'form', 'common'],function (exports) { @@ -219,6 +219,7 @@ layui.define(['sessions', 'form', 'common'],function (exports) {
219 }) 219 })
220 sessionStorage.setItem('permissions',data.permissions); 220 sessionStorage.setItem('permissions',data.permissions);
221 sessionStorage.setItem('roles',roles); 221 sessionStorage.setItem('roles',roles);
  222 + sessionStorage.setItem('user_id',data.id); //保存用户id joke add 20211206
222 } 223 }
223 }); 224 });
224 }); 225 });
@@ -3457,6 +3457,7 @@ grayColor{ @@ -3457,6 +3457,7 @@ grayColor{
3457 display: flex; 3457 display: flex;
3458 } 3458 }
3459 3459
  3460 +
3460 .machineroom-info .room-info-item .ip-info-title-left span{ 3461 .machineroom-info .room-info-item .ip-info-title-left span{
3461 font-size: 20px; 3462 font-size: 20px;
3462 margin-left: 10px; 3463 margin-left: 10px;
@@ -6431,10 +6432,35 @@ form.form-edit .layui-form-item .layui-input-inline { @@ -6431,10 +6432,35 @@ form.form-edit .layui-form-item .layui-input-inline {
6431 } 6432 }
6432 6433
6433 .layui-status .ip-form-item{ 6434 .layui-status .ip-form-item{
6434 - margin-right: 20%;  
6435 - width: 50%; 6435 + margin-right: 5%;
  6436 + width: 100%;
6436 font-weight: 700; 6437 font-weight: 700;
6437 } 6438 }
  6439 +.layui-ip-status-item-tips{
  6440 + height: 20px;
  6441 + /*首页告警展示数量调整*/
  6442 + width: 20px;
  6443 + line-height: 20px;
  6444 + margin: 0;
  6445 + padding: 0 2px;
  6446 + position: absolute;
  6447 + font-size: 12px;
  6448 + text-align: center;
  6449 + border-radius: 50%;
  6450 + cursor: pointer;
  6451 + display: none !important;
  6452 +}
  6453 +.layui-this .layui-ip-status-item-tips{
  6454 + background-color: #FF5722;
  6455 + color: #fff;
  6456 + display: inline-block !important;
  6457 +}
  6458 +.layui-ip-status-txt-tips{
  6459 + font-size: 15px;
  6460 + color: #666;
  6461 + float: left;
  6462 + font-weight: 550;
  6463 +}
6438 .ip-form-item .ip-form-inline{ 6464 .ip-form-item .ip-form-inline{
6439 display: flex; 6465 display: flex;
6440 justify-content: center; 6466 justify-content: center;
@@ -34,7 +34,7 @@ @@ -34,7 +34,7 @@
34 </div> 34 </div>
35 <div class="layui-inline "> 35 <div class="layui-inline ">
36 <label class="layui-form-label">性别<span style="color: red">*</span></label> 36 <label class="layui-form-label">性别<span style="color: red">*</span></label>
37 - <div class="layui-input-inline"> 37 + <div class="layui-input-inline radio-div">
38 <input type="radio" name="sex" value="1" title="男" checked lay-filter="sex"> 38 <input type="radio" name="sex" value="1" title="男" checked lay-filter="sex">
39 <input type="radio" name="sex" value="0" title="女" lay-filter="sex"> 39 <input type="radio" name="sex" value="0" title="女" lay-filter="sex">
40 </div> 40 </div>
@@ -49,7 +49,7 @@ @@ -49,7 +49,7 @@
49 </div> 49 </div>
50 <div class="layui-inline "> 50 <div class="layui-inline ">
51 <label class="layui-form-label">运营商<span style="color: red">*</span></label> 51 <label class="layui-form-label">运营商<span style="color: red">*</span></label>
52 - <div class="layui-input-inline"> 52 + <div class="layui-input-inline radio-div">
53 <input type="radio" name="operator" value="mobile" title="移动" checked lay-filter="operator"> 53 <input type="radio" name="operator" value="mobile" title="移动" checked lay-filter="operator">
54 <input type="radio" name="operator" value="unicom" title="联通" lay-filter="operator"> 54 <input type="radio" name="operator" value="unicom" title="联通" lay-filter="operator">
55 <input type="radio" name="operator" value="telecom" title="电信" lay-filter="operator"> 55 <input type="radio" name="operator" value="telecom" title="电信" lay-filter="operator">
@@ -101,7 +101,13 @@ @@ -101,7 +101,13 @@
101 <div id="user_property_html_id" style="margin-top: 30px;" class="layui-form layui-form-pane layui-form-flex hide"> 101 <div id="user_property_html_id" style="margin-top: 30px;" class="layui-form layui-form-pane layui-form-flex hide">
102 102
103 </div> 103 </div>
104 - 104 +<style>
  105 + .radio-div{
  106 + border-radius: 0 2px 2px 0;
  107 + padding: 0 10px;
  108 + border: 1px solid #e6e6e6;
  109 + }
  110 +</style>
105 <script> 111 <script>
106 layui.use('userAdd', function (fn) { 112 layui.use('userAdd', function (fn) {
107 fn({{d}}) 113 fn({{d}})
@@ -44,6 +44,9 @@ @@ -44,6 +44,9 @@
44 <span>未监控</span> 44 <span>未监控</span>
45 <span class="ip-form-span-font" style="color: #FF7E00" id="ip-count-noMonitoring">0</span> 45 <span class="ip-form-span-font" style="color: #FF7E00" id="ip-count-noMonitoring">0</span>
46 </div> 46 </div>
  47 + <div class="layui-ip-status-txt-tips hide" id="ipTxtTips">
  48 +
  49 + </div>
47 </div> 50 </div>
48 </div> 51 </div>
49 </div> 52 </div>
  1 +layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'xmSelect'], function (exports) {
  2 + var $ = layui.$;
  3 + var form = layui.form;
  4 + var layer = layui.layer;
  5 + var admin = layui.admin;
  6 + var table = layui.table;
  7 + var common = layui.common;
  8 + var session = layui.sessions;
  9 + var domainName = common.domainName;
  10 + var xmSelect = layui.xmSelect;
  11 + var orgTable;
  12 + //对外暴露的接口
  13 + exports('userChange', function (data) {
  14 + var accessToken = session.getToken()['access_token']
  15 + var roleSelect = {}
  16 + var orgSelect = {}
  17 + var listData = [];
  18 + var userOrgSel;
  19 + //属性数据
  20 + var propertyList = [];
  21 +
  22 + selectData();
  23 + // //加载表单数据
  24 + initUserProperty();
  25 + initOrgSelect()
  26 + initRolesSelect()
  27 +
  28 + form.render();
  29 + console.log('------'+data.id);
  30 + //回显数据
  31 + if (data && data.id) {
  32 + $('#addUserForm').find("input[name='username']").attr("readonly", "readonly")
  33 + $.ajax({
  34 + url: domainName + `/api-user/users/${data.id}?access_token=` + accessToken,
  35 + success: function (res) {
  36 + form.val('add-user-form', res)
  37 + if (res.orgId != null && res.orgId.length > 0) {
  38 + userOrgSel.setValue([res.orgId]);
  39 + }
  40 + if (res.roleId != null && res.roleId.length > 0) {
  41 + roleSelect.setValue(res.roleId.split(','))
  42 + }
  43 + if (res && res.userProperty && res.userProperty.length > 0) {
  44 + //回显用户属性
  45 + evaluation(res.userProperty);
  46 + //用户扩展属性展开
  47 + $("#user_property_html_id").removeClass('hide');
  48 + $("#userPropertyBelow").addClass('hide');
  49 + $("#userPropertyUP").removeClass('hide');
  50 + form.render();
  51 + }
  52 + }
  53 + })
  54 +
  55 + }
  56 +
  57 + //保存
  58 + form.on('submit(user_form_save_id)', function () {
  59 + var load = layer.load(2);
  60 + form.render();
  61 + var data = form.val('add-user-form');
  62 + data.userProperty = addUserProperty();
  63 + // data.orgId = orgSelect.getValue('valueStr')
  64 + data.roleId = roleSelect.getValue('valueStr')
  65 + delete data['select']
  66 + $.ajax({
  67 + url: domainName + '/api-user/users/saveOrUpdate?access_token=' + accessToken,
  68 + data: JSON.stringify(data),
  69 + type: 'post',
  70 + contentType: "application/json; charset=utf-8",
  71 + success: function (res) {
  72 + if (res.resp_code == 0) {
  73 + layer.msg(res.resp_msg, {
  74 + offset: '15px',
  75 + icon: 1,
  76 + time: 2000,
  77 + }, function () {
  78 + layer.closeAll()
  79 + table.reload('user_table', {});
  80 + form.render();
  81 + })
  82 + } else {
  83 + layer.msg(res.resp_msg, {
  84 + offset: '15px',
  85 + icon: 7,
  86 + time: 1000,
  87 + }, function () {
  88 + layer.close(load)
  89 + })
  90 + }
  91 + },
  92 + error: function () {
  93 + layer.close(load)
  94 + }
  95 + })
  96 + return false
  97 + })
  98 +
  99 + //初始化角色下拉列表框
  100 + function initRolesSelect() {
  101 + $.ajax({
  102 + url: domainName + '/api-user/roles?access_token=' + accessToken,
  103 + async: false,
  104 + success: function (res) {
  105 + roleSelect = xmSelect.render({
  106 + el: '.roles',
  107 + prop: {
  108 + name: 'name',
  109 + value: 'id'
  110 + },
  111 + layVerify: 'required',
  112 + layVerType: 'msg',
  113 + data: res.data,
  114 + })
  115 + var remarklist={};
  116 + //获取
  117 + $.each(res.data,function (i,v) {
  118 + remarklist[v.name]=v.remark?v.remark:'暂无描述';
  119 + });
  120 + $("#addUserForm").on('mouseover', '.roles .xm-option-content', function () {
  121 + var key = $(this).text();
  122 + layer.tips(remarklist[key], $(this), {tips: [1], time: 2000});
  123 + })
  124 + }
  125 + })
  126 + }
  127 +
  128 + //初始化部门下拉列表框
  129 + function initOrgSelect() {
  130 + $.ajax({
  131 + url: domainName + '/api-user/org/getOrgTreeByPid?access_token=' + accessToken,
  132 + async: false,
  133 + success: function (res) {
  134 + userOrgSel = xmSelect.render({
  135 + el: '#userorgId',
  136 + name:"orgId",
  137 + model: { label: { type: 'text' } },
  138 + radio: true,
  139 + clickClose: true,
  140 + filterable: true,
  141 + layVerify: 'required',
  142 + tree: {
  143 + show: true,
  144 + strict: false,
  145 + expandedKeys: [ -1 ],
  146 + },
  147 + height: 'auto',
  148 + on: function(data){
  149 + if(data.isAdd){
  150 + return data.change.slice(0, 1)
  151 + }
  152 + },
  153 + data(){
  154 + return res.data
  155 + }
  156 + })
  157 + }
  158 + })
  159 +
  160 +
  161 + // $.ajax({
  162 + // url: domainName + '/api-user/org/list/admin?access_token=' + accessToken,
  163 + // async: false,
  164 + // success: function (res) {
  165 + // orgSelect = xmSelect.render({
  166 + // el: '.org',
  167 + // radio: true,
  168 + // clickClose: true,
  169 + // prop: {
  170 + // name: 'orgName',
  171 + // value: 'orgId'
  172 + // },
  173 + // layVerify: 'required',
  174 + // layVerType: 'msg',
  175 + // data: res.data,
  176 + // })
  177 + // }
  178 + // })
  179 + }
  180 +
  181 + //添加用户扩展属性
  182 + $("#addUserProperty").on("click", function () {
  183 + var property=$("#user_property_html_id").hasClass('hide');
  184 + if(property){
  185 + $("#user_property_html_id").removeClass('hide');
  186 + $("#userPropertyBelow").addClass('hide');
  187 + $("#userPropertyUP").removeClass('hide');
  188 + }else{
  189 + $("#user_property_html_id").addClass('hide');
  190 + $("#userPropertyBelow").removeClass('hide');
  191 + $("#userPropertyUP").addClass('hide');
  192 + }
  193 + });
  194 +
  195 + //获取属性值
  196 + function addUserProperty() {
  197 + var arr = [];
  198 + var $inputs = $("#user_property_html_id").find("input");
  199 + $.each($inputs, function (i, e) {
  200 + var obj = {
  201 + id: $(e).attr("data-id"),
  202 + username: $(e).attr("data-username"),
  203 + property: $(e).attr("data-property"),
  204 + value: $(e).val(),
  205 + sort: $(e).attr("data-sort"),
  206 + remark: $(e).attr("data-remark")
  207 + };
  208 + arr.push(obj)
  209 + })
  210 + return arr;
  211 + }
  212 +
  213 + //获取用户表单属性数据
  214 + function selectData() {
  215 + admin.req({
  216 + url: common.domainName + '/api-web/manage/ddic/findSucDdics/user_property'
  217 + , method: 'POST'
  218 + , async: false
  219 + , success: function (res) {
  220 + // $.each(res.data, function (i, v) {
  221 + // var vl = {
  222 + // name: v.ddicName, value: v.ddicCode
  223 + // };
  224 + // propertyList.push(vl);
  225 + // });
  226 + propertyList = res.data
  227 + }
  228 + });
  229 + }
  230 +
  231 + //初始化表单
  232 + function initUserProperty() {
  233 + var rowHead = '<div class="layui-form-item">';
  234 + var rowTail = '</div>';
  235 + var content = '';
  236 + $.each(propertyList, function (i, v) {
  237 + var property = ' <div class="layui-inline ">' +
  238 + ' <label class="layui-form-label">' + v.ddicName + '</label>' +
  239 + ' <div class="layui-input-inline">' +
  240 + ' <input type="text" data-property="'+v.ddicCode+'" placeholder="'+v.ddicDesc+'" data-id="" data-username="" data-sort="" data-remark="" class="layui-input" name="' + v.ddicCode + '" autocomplete="off">' +
  241 + ' </div>' +
  242 + ' </div>';
  243 + if (i % 2 == 0 && i != 0) {
  244 + content += rowTail;
  245 + }
  246 + if (i % 2 == 0) {//需要添加表头
  247 + content += rowHead + property;
  248 + } else {//
  249 + content += property;
  250 + }
  251 + });
  252 + $('#user_property_html_id').append(content);
  253 + }
  254 +
  255 + //回显属性信息
  256 + function evaluation(list){
  257 + var $inputs = $("#user_property_html_id").find("input");
  258 + $.each($inputs, function (i, e) {
  259 + var $that=$(this);
  260 + $.each(list, function (index,v) {
  261 + if($that.attr('data-property')== v.property){
  262 + $that.attr("data-id",v.id);
  263 + $that.attr("data-username",v.username);
  264 + $that.val(v.value);
  265 + $that.attr("data-sort",v.sort);
  266 + $that.attr("data-remark",v.remark);
  267 + }
  268 + });
  269 + });
  270 + }
  271 + })
  272 +})
  1 +<form class="layui-form layui-form-pane layui-form-flex" id="addUserForm" lay-filter="add-user-form"
  2 + name="add-user-form" onsubmit="return false;">
  3 + <input hidden name="id" id="id">
  4 + <div class="layui-form-item">
  5 + <div class="layui-inline ">
  6 + <label class="layui-form-label">账户名<span style="color: red">*</span></label>
  7 + <div class="layui-input-inline">
  8 + <input type="text" readonly="readonly" class="layui-input" name="username" lay-verify="required" autocomplete="off">
  9 + </div>
  10 + </div>
  11 + <div class="layui-inline ">
  12 + <label class="layui-form-label">昵称<span style="color: red">*</span></label>
  13 + <div class="layui-input-inline">
  14 + <input type="text" readonly="readonly" class="layui-input" name="nickname" lay-verify="required" autocomplete="off">
  15 + </div>
  16 + </div>
  17 + </div>
  18 + <div class="layui-form-item">
  19 + <div class="layui-inline ">
  20 + <label class="layui-form-label">性别<span style="color: red">*</span></label>
  21 + <div class="layui-input-inline radio-div">
  22 + <input type="radio" name="sex" value="1" title="男" checked lay-filter="sex">
  23 + <input type="radio" name="sex" value="0" title="女" lay-filter="sex">
  24 + </div>
  25 + </div>
  26 + <div class="layui-inline ">
  27 + <label class="layui-form-label">运营商<span style="color: red">*</span></label>
  28 + <div class="layui-input-inline radio-div">
  29 + <input type="radio" name="operator" value="mobile" title="移动" checked lay-filter="operator">
  30 + <input type="radio" name="operator" value="unicom" title="联通" lay-filter="operator">
  31 + <input type="radio" name="operator" value="telecom" title="电信" lay-filter="operator">
  32 + </div>
  33 + </div>
  34 +
  35 + </div>
  36 + <div class="layui-form-item">
  37 + <div class="layui-inline ">
  38 + <label class="layui-form-label">手机号<span style="color: red">*</span></label>
  39 + <div class="layui-input-inline">
  40 + <input type="text" class="layui-input" name="phone" lay-verify="required" autocomplete="off">
  41 + </div>
  42 + </div>
  43 + <div class="layui-inline ">
  44 + <label class="layui-form-label">职务</label>
  45 + <div class="layui-input-inline">
  46 + <input type="text" class="layui-input" name="post" autocomplete="off">
  47 + </div>
  48 + </div>
  49 + </div>
  50 + <div class="layui-form-item">
  51 + <div class="layui-inline ">
  52 + <label class="layui-form-label">邮箱</label>
  53 + <div class="layui-input-inline">
  54 + <input type="text" class="layui-input" name="email" autocomplete="off">
  55 + </div>
  56 + </div>
  57 + </div>
  58 + <div class="layui-form-item hide">
  59 + <div class="layui-inline" style="padding: 0 10px">
  60 + <label class="layui-form-label">角色<span style="color: red">*</span></label>
  61 + <div class="layui-input-block roles">
  62 + </div>
  63 + </div>
  64 + <div class="layui-inline">
  65 + <label class="layui-form-label">所在部门<span style="color: red">*</span></label>
  66 + <div class="layui-input-inline">
  67 + <div id="userorgId"></div>
  68 + </div>
  69 + </div>
  70 + </div>
  71 +
  72 + <button type="submit" lay-submit class="layui-btn hide" lay-filter="user_form_save_id" id="user_form_save_id">保存
  73 + </button>
  74 +</form>
  75 +<fieldset class="layui-elem-field layui-field-title hide" style="margin-top: 10px;min-width: 200px">
  76 + <legend>
  77 + 扩展信息 &nbsp;
  78 + <a href="javascript:void(0);" class="layui-btn layui-btn-normal layui-btn-xs" id="addUserProperty"
  79 + lay-tips="扩展信息">
  80 + <i class="layui-icon" id="userPropertyBelow" >&#xe61a;</i>
  81 + <i class="layui-icon hide" id="userPropertyUP" >&#xe619;</i>
  82 + </a>
  83 + </legend>
  84 +</fieldset>
  85 +<div id="user_property_html_id" style="margin-top: 30px;" class="layui-form layui-form-pane layui-form-flex hide">
  86 +
  87 +</div>
  88 +<style>
  89 + .radio-div{
  90 + border-radius: 0 2px 2px 0;
  91 + padding: 0 10px;
  92 + border: 1px solid #e6e6e6;
  93 + }
  94 +</style>
  95 +<script>
  96 + layui.use('userChange', function (fn) {
  97 + fn({{d}})
  98 + })
  99 +</script>
@@ -46,7 +46,7 @@ @@ -46,7 +46,7 @@
46 <!--判定是否有daping角色,如果有则显示该菜单 joke add 20211203--> 46 <!--判定是否有daping角色,如果有则显示该菜单 joke add 20211203-->
47 <script type="text/html" template lay-url="{{sessionStorage.getItem('domainName')}}/api-user/users/checkHasRole?roleCode=daping"> 47 <script type="text/html" template lay-url="{{sessionStorage.getItem('domainName')}}/api-user/users/checkHasRole?roleCode=daping">
48 {{# if(d.count > 0){ }} 48 {{# if(d.count > 0){ }}
49 - <li class="layui-nav-item" lay-tips="大屏"> 49 + <li class="layui-nav-item" lay-tips="监控一体化视图">
50 <a href="javascript:;" layadmin-event="toBigScreen" ><img src="/src/style/img/icon-daping.png" style="width: 16px;height: 16px"></a> 50 <a href="javascript:;" layadmin-event="toBigScreen" ><img src="/src/style/img/icon-daping.png" style="width: 16px;height: 16px"></a>
51 </li> 51 </li>
52 {{# } }} 52 {{# } }}
@@ -152,7 +152,7 @@ @@ -152,7 +152,7 @@
152 <script type="text/html" template lay-url="{{sessionStorage.getItem('domainName')}}/api-user/users/getUserByToken" 152 <script type="text/html" template lay-url="{{sessionStorage.getItem('domainName')}}/api-user/users/getUserByToken"
153 lay-done="layui.element.render('nav', 'layadmin-layout-right');"> 153 lay-done="layui.element.render('nav', 'layadmin-layout-right');">
154 <a href="javascript:;"> 154 <a href="javascript:;">
155 - 欢迎&nbsp;&nbsp;<cite style="color: #1E9FFF">{{d.object.nickname}}</cite> 155 + 欢迎&nbsp;&nbsp;<cite style="color: #1E9FFF" layadmin-event="changeInfo" user-info>{{d.object.nickname}}</cite>
156 </a> 156 </a>
157 {{# 157 {{#
158 var roles = ''; 158 var roles = '';
@@ -163,6 +163,7 @@ @@ -163,6 +163,7 @@
163 <li><input type="hidden" id="user_roles" value="{{roles}}"></li> 163 <li><input type="hidden" id="user_roles" value="{{roles}}"></li>
164 <dl class="layui-nav-child"> 164 <dl class="layui-nav-child">
165 <dd layadmin-event="updtpswd" style="text-align: center;"><a>修改密码</a></dd> 165 <dd layadmin-event="updtpswd" style="text-align: center;"><a>修改密码</a></dd>
  166 + <dd user-info layadmin-event="changeInfo" style="text-align: center;"><a>修改信息</a></dd>
166 <dd layadmin-event="logout" style="text-align: center;"><a>退出</a></dd> 167 <dd layadmin-event="logout" style="text-align: center;"><a>退出</a></dd>
167 </dl> 168 </dl>
168 </script> 169 </script>
@@ -46,6 +46,14 @@ @@ -46,6 +46,14 @@
46 left: 1%; 46 left: 1%;
47 top: 55%; 47 top: 55%;
48 } 48 }
  49 +.screen-header .title-right{
  50 + display: flex;
  51 + align-items: center;
  52 + position:absolute;
  53 + transform: translateY(-80%);
  54 + right: 1%;
  55 + top: 55%;
  56 +}
49 .screen-header .timelog{ 57 .screen-header .timelog{
50 cursor: pointer; 58 cursor: pointer;
51 } 59 }
@@ -108,7 +108,7 @@ table td .cabinetId{ @@ -108,7 +108,7 @@ table td .cabinetId{
108 } 108 }
109 .outlinediv .xiaoshanseven-rightcabinet{ 109 .outlinediv .xiaoshanseven-rightcabinet{
110 margin-left: 5px; 110 margin-left: 5px;
111 - width: 40%; 111 + width: 49%;
112 } 112 }
113 .outlinediv .xiaoshanseven-middlecabinet{ 113 .outlinediv .xiaoshanseven-middlecabinet{
114 margin-top: 20px; 114 margin-top: 20px;
@@ -8,6 +8,9 @@ @@ -8,6 +8,9 @@
8 <img src="/vue3/src/assets/images/digitalDp/icon-time.png" :style="timelogoStyle" class="timelog"> 8 <img src="/vue3/src/assets/images/digitalDp/icon-time.png" :style="timelogoStyle" class="timelog">
9 <span :style="datetimeStyle" >{{dateTime}}</span> 9 <span :style="datetimeStyle" >{{dateTime}}</span>
10 </div> 10 </div>
  11 + <div class="title-right">
  12 + <img @click="goDP" router-link to='/daping' id="goDP" src="/vue3/src/assets/images/zjdp/icon-return.png" class="img-link" style="display:none; height:30px">
  13 + </div>
11 </header> 14 </header>
12 <div class="screen-body"> 15 <div class="screen-body">
13 <section class="screen-left" > 16 <section class="screen-left" >
@@ -48,6 +48,15 @@ export default { @@ -48,6 +48,15 @@ export default {
48 () => myImport('views/dp/components/deduction/index') 48 () => myImport('views/dp/components/deduction/index')
49 ), 49 ),
50 }, 50 },
  51 + setup(props, {attrs, slots, emit}) {
  52 + const {proxy} = Vue.getCurrentInstance();
  53 + const goDP=()=>{
  54 + proxy.$router.push({path:'/zjdaping',query: {access_token:localStorage.getItem('access_token')}})
  55 + }
  56 + return{
  57 + goDP
  58 + }
  59 + },
51 data () { 60 data () {
52 return { 61 return {
53 titleFontSize: 30, 62 titleFontSize: 30,
@@ -119,7 +128,11 @@ export default { @@ -119,7 +128,11 @@ export default {
119 },1000); 128 },1000);
120 129
121 window.addEventListener('resize', this.screenAdapter) 130 window.addEventListener('resize', this.screenAdapter)
122 - this.screenAdapter() 131 + this.screenAdapter();
  132 +
  133 + if (this.$route.query.msgKey){
  134 + document.getElementById("goDP").style.display="block"
  135 + }
123 }, 136 },
124 unmounted () { 137 unmounted () {
125 window.removeEventListener('resize', this.screenAdapter) 138 window.removeEventListener('resize', this.screenAdapter)
@@ -12,9 +12,9 @@ @@ -12,9 +12,9 @@
12 <!--<div class="circlediv"> 12 <!--<div class="circlediv">
13 <img class="rollimg" src="src/assets/images/zjdp/cycle-bg-1.png"> 13 <img class="rollimg" src="src/assets/images/zjdp/cycle-bg-1.png">
14 </div>--> 14 </div>-->
15 - <div :class="'ball_c '+ item.code"><div>{{item.name}}</div></div>  
16 - <div class="base u_p3d ypt__info">  
17 - <div v-for="(kpiItem,index) in item.kpi" :class="'ball_base u_p3d ball_'+index+1"> 15 + <div :class="'ball_c '+ item.code" style="z-index: 1000"><div @click="platformClick(index)" style="cursor:pointer;">{{item.name}}</div></div>
  16 + <div class="base u_p3d ypt__info" style="z-index: 1">
  17 + <div v-for="(kpiItem,index) in item.kpi" :class="'ball_base u_p3d ball_'+index+1" >
18 <div @mouseenter="addActive(index)" @mouseleave="closeActive" :class="['ball',{'active':isActive===index}]" v-if="kpiItem != ''"> 18 <div @mouseenter="addActive(index)" @mouseleave="closeActive" :class="['ball',{'active':isActive===index}]" v-if="kpiItem != ''">
19 <p>{{kpiItem.kpiName}}</p><b>{{kpiItem.kpiValue}}</b> 19 <p>{{kpiItem.kpiName}}</p><b>{{kpiItem.kpiValue}}</b>
20 </div> 20 </div>
@@ -14,6 +14,7 @@ export default { @@ -14,6 +14,7 @@ export default {
14 }, 14 },
15 setup(props, {attrs, slots, emit}) { 15 setup(props, {attrs, slots, emit}) {
16 const {proxy} = Vue.getCurrentInstance(); 16 const {proxy} = Vue.getCurrentInstance();
  17 + let resData = [];
17 18
18 // 挂载完 19 // 挂载完
19 Vue.onMounted(() => { 20 Vue.onMounted(() => {
@@ -21,6 +22,7 @@ export default { @@ -21,6 +22,7 @@ export default {
21 $.get(proxy.domainName +"/api-web/bigScreen/getCloudInfo"+'?access_token='+localStorage.getItem('access_token'),function(res){ 22 $.get(proxy.domainName +"/api-web/bigScreen/getCloudInfo"+'?access_token='+localStorage.getItem('access_token'),function(res){
22 const data = res.data; 23 const data = res.data;
23 if(data && data.length > 0){ 24 if(data && data.length > 0){
  25 + resData = data;
24 data.map((item,index)=>{ 26 data.map((item,index)=>{
25 27
26 if(item.kpi && item.kpi.length==0){ 28 if(item.kpi && item.kpi.length==0){
@@ -121,17 +123,29 @@ export default { @@ -121,17 +123,29 @@ export default {
121 } 123 }
122 yptRunTimer = setTimeout(run, 1000 * 5); 124 yptRunTimer = setTimeout(run, 1000 * 5);
123 } 125 }
124 -  
125 }) 126 })
  127 +
  128 + let get
  129 +
  130 +
126 const addActive=(index)=>{ 131 const addActive=(index)=>{
127 proxy.isActive=index; 132 proxy.isActive=index;
128 } 133 }
  134 + let platformClick = (index) => {
  135 + let max = resData.length - 1;
  136 + let next = index + 1;
  137 + if (next > max){
  138 + next = 0 ;
  139 + }
  140 + proxy.$refs.cloudCarousel.setActiveItem(next);
  141 + }
129 const closeActive=()=>{ 142 const closeActive=()=>{
130 proxy.isActive=''; 143 proxy.isActive='';
131 } 144 }
132 return{ 145 return{
133 addActive, 146 addActive,
134 - closeActive 147 + closeActive,
  148 + platformClick
135 } 149 }
136 } 150 }
137 } 151 }
@@ -37,6 +37,13 @@ export default { @@ -37,6 +37,13 @@ export default {
37 }, 37 },
38 setup(props, {attrs, slots, emit}) { 38 setup(props, {attrs, slots, emit}) {
39 const {proxy} = Vue.getCurrentInstance(); 39 const {proxy} = Vue.getCurrentInstance();
  40 + let declaredToday=Vue.ref(0);
  41 + let reportableToday=Vue.ref(0);
  42 + let declaredMonth=Vue.ref(0);
  43 + let reportableMonth=Vue.ref(0);
  44 +
  45 +
  46 +
40 // 挂载完 47 // 挂载完
41 Vue.onMounted(() => { 48 Vue.onMounted(() => {
42 //本月应申报及申报率 49 //本月应申报及申报率
@@ -181,8 +188,8 @@ export default { @@ -181,8 +188,8 @@ export default {
181 } 188 }
182 } 189 }
183 const goJump=()=>{ 190 const goJump=()=>{
184 - // proxy.$router.push({path:'/zj/dp',query: {access_token:localStorage.getItem('access_token')}})  
185 - window.open(window.location.origin + '/vue3/index.html#/zj/dp?access_token=' + localStorage.getItem("access_token")); 191 + proxy.$router.push({path:'/zj/dp',query: {access_token:localStorage.getItem('access_token'),msgKey: true}})
  192 + // window.open(window.location.origin + '/vue3/index.html#/zj/dp?access_token=' + localStorage.getItem("access_token"));
186 } 193 }
187 194
188 return{ 195 return{
@@ -190,7 +197,11 @@ export default { @@ -190,7 +197,11 @@ export default {
190 eleWidthNum, 197 eleWidthNum,
191 getDeclareData, 198 getDeclareData,
192 startInterval, 199 startInterval,
193 - goJump 200 + goJump,
  201 + declaredToday,
  202 + reportableToday,
  203 + declaredMonth,
  204 + reportableMonth
194 } 205 }
195 }, 206 },
196 unmounted () { 207 unmounted () {
@@ -13,6 +13,8 @@ export default { @@ -13,6 +13,8 @@ export default {
13 const {proxy} = Vue.getCurrentInstance(); 13 const {proxy} = Vue.getCurrentInstance();
14 const {numm, numLen} = Vue.toRefs(props); 14 const {numm, numLen} = Vue.toRefs(props);
15 const orderNum = Vue.ref([]); 15 const orderNum = Vue.ref([]);
  16 + let numDiff = Vue.ref(0);
  17 + let iStyle = Vue.ref('transform:translate(0,0)')
16 // 处理数字 18 // 处理数字
17 // numm: 传入的数字 numLen: 默认显示几位数 19 // numm: 传入的数字 numLen: 默认显示几位数
18 let numVal=numm.value+''; 20 let numVal=numm.value+'';
@@ -57,6 +59,8 @@ export default { @@ -57,6 +59,8 @@ export default {
57 return{ 59 return{
58 orderNum, 60 orderNum,
59 toOrderNum, 61 toOrderNum,
  62 + numDiff,
  63 + iStyle,
60 setNumberTransform 64 setNumberTransform
61 } 65 }
62 }, 66 },
@@ -18,7 +18,7 @@ export default { @@ -18,7 +18,7 @@ export default {
18 return { 18 return {
19 timer:null, 19 timer:null,
20 domainName:sessionStorage.getItem('domainName'), 20 domainName:sessionStorage.getItem('domainName'),
21 - apiUrl:'/api-web/sxview/getBizListForHzDp?access_token=', 21 + apiUrl:'/api-web/sxview/getbizListByUser?access_token=',
22 checkId:0,//当前选中的tabs 22 checkId:0,//当前选中的tabs
23 listItem:1,//轮播数-总页数 23 listItem:1,//轮播数-总页数
24 pageSize:5,//每页显示5条数据 24 pageSize:5,//每页显示5条数据
@@ -68,7 +68,6 @@ export default { @@ -68,7 +68,6 @@ export default {
68 68
69 } 69 }
70 70
71 -  
72 return { 71 return {
73 datetimeStyle, 72 datetimeStyle,
74 timeFormat, 73 timeFormat,