From 10257cc3f3e3df47e1ade18ac7b697c591804306 Mon Sep 17 00:00:00 2001 From: luosongbai <15272473386@163.com> Date: Fri, 28 May 2021 14:20:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0sql=E6=9D=A1=E4=BB=B6?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/pages/analysis.html | 2 +- web/pages/conditionquery.html | 42 +++++++++++++++++++ web/src/x.min.js | 67 ++++++++++++++++++++++++++++-- web/srczip/logic/analysis.js | 11 +++-- web/srczip/logic/conditionquery.js | 55 ++++++++++++++++++++++++ web/static/css/analysis.css | 11 +++++ 6 files changed, 179 insertions(+), 9 deletions(-) create mode 100644 web/pages/conditionquery.html create mode 100644 web/srczip/logic/conditionquery.js diff --git a/web/pages/analysis.html b/web/pages/analysis.html index 112121e..a01f38a 100644 --- a/web/pages/analysis.html +++ b/web/pages/analysis.html @@ -21,7 +21,7 @@
-
+
diff --git a/web/pages/conditionquery.html b/web/pages/conditionquery.html new file mode 100644 index 0000000..d890f32 --- /dev/null +++ b/web/pages/conditionquery.html @@ -0,0 +1,42 @@ + +
+ +
+ +
+ +
+
+
    +
  • SQL查询条件
  • +
  • API查询条件
  • +
+
+
+ +
+ +
+ +
+
+ +
+ +
+
+
+ +
+ +
+
复制代码可直接在 SQL查询 中应用
+
复制代码
+
+ + +
+ +
+ +
\ No newline at end of file diff --git a/web/src/x.min.js b/web/src/x.min.js index c1d51ad..2493256 100644 --- a/web/src/x.min.js +++ b/web/src/x.min.js @@ -1338,10 +1338,13 @@ var X = window.X || { // sql语句显示 $(document).off('click','.sqlquery').on('click','.sqlquery',function(){ // console.log(1111) - X.api('ck/event_model_sql','post',data,function(d){ - console.log(data); - console.log(d[0]['sql']); - }) + // X.api('ck/event_model_sql','post',data,function(d){ + var obj = $(this); + var offset = obj.offset(); + X.querycriteriapop(data,'conditionquery',offset.left - 410,offset.top+obj.height(),function(){ + + }) + // }) }) // 切换为指标公式 @@ -2067,6 +2070,62 @@ var X = window.X || { })(); +// srczip/logic/conditionquery.js +(function(){ + X.pageLogic['conditionquery'] = { + init : function(parms){ + var me = this; + this.parms = parms; + this.callback = parms.callback; + var data = parms.extData; + + X.api('ck/event_model_sql','post',data,function(d){ + console.log(d); + $(".conditionquery-sqldata").html(d[0]['sql']); + $(".conditionquery-apidata").html(JSON.stringify(data)); + }) + var tab = 0 + layui.element.on('tab(conditionquery)', function(data){ + tab = data['index'] + }); + + $(document).on("click",'.conditionquery-copy',function(){ + + if(tab == 0){ + selectText('conditionquery-sqldata'); + }else { + selectText('conditionquery-apidata'); + } + + document.execCommand('copy'); + layer.msg('复制成功'); + + }) + + function selectText(element) { + var text = document.getElementById(element); + //做下兼容 + if (document.body.createTextRange) { //如果支持 + var range = document.body.createTextRange(); //获取range + range.moveToElementText(text); //光标移上去 + range.select(); //选择 + } else if (window.getSelection) { + var selection = window.getSelection(); //获取selection + var range = document.createRange(); //创建range + range.selectNodeContents(text); //选择节点内容 + selection.removeAllRanges(); //移除所有range + selection.addRange(range); //添加range + /*if(selection.setBaseAndExtent){ + selection.setBaseAndExtent(text, 0, text, 1); + }*/ + } else { + alert("复制失败"); + } + } + + } + }; +})(); // srczip/logic/dashboard.js //cc (function(){ diff --git a/web/srczip/logic/analysis.js b/web/srczip/logic/analysis.js index d020cf0..50afcd0 100644 --- a/web/srczip/logic/analysis.js +++ b/web/srczip/logic/analysis.js @@ -154,10 +154,13 @@ // sql语句显示 $(document).off('click','.sqlquery').on('click','.sqlquery',function(){ // console.log(1111) - X.api('ck/event_model_sql','post',data,function(d){ - console.log(data); - console.log(d[0]['sql']); - }) + // X.api('ck/event_model_sql','post',data,function(d){ + var obj = $(this); + var offset = obj.offset(); + X.querycriteriapop(data,'conditionquery',offset.left - 410,offset.top+obj.height(),function(){ + + }) + // }) }) // 切换为指标公式 diff --git a/web/srczip/logic/conditionquery.js b/web/srczip/logic/conditionquery.js new file mode 100644 index 0000000..71747fb --- /dev/null +++ b/web/srczip/logic/conditionquery.js @@ -0,0 +1,55 @@ +(function(){ + X.pageLogic['conditionquery'] = { + init : function(parms){ + var me = this; + this.parms = parms; + this.callback = parms.callback; + var data = parms.extData; + + X.api('ck/event_model_sql','post',data,function(d){ + console.log(d); + $(".conditionquery-sqldata").html(d[0]['sql']); + $(".conditionquery-apidata").html(JSON.stringify(data)); + }) + var tab = 0 + layui.element.on('tab(conditionquery)', function(data){ + tab = data['index'] + }); + + $(document).on("click",'.conditionquery-copy',function(){ + + if(tab == 0){ + selectText('conditionquery-sqldata'); + }else { + selectText('conditionquery-apidata'); + } + + document.execCommand('copy'); + layer.msg('复制成功'); + + }) + + function selectText(element) { + var text = document.getElementById(element); + //做下兼容 + if (document.body.createTextRange) { //如果支持 + var range = document.body.createTextRange(); //获取range + range.moveToElementText(text); //光标移上去 + range.select(); //选择 + } else if (window.getSelection) { + var selection = window.getSelection(); //获取selection + var range = document.createRange(); //创建range + range.selectNodeContents(text); //选择节点内容 + selection.removeAllRanges(); //移除所有range + selection.addRange(range); //添加range + /*if(selection.setBaseAndExtent){ + selection.setBaseAndExtent(text, 0, text, 1); + }*/ + } else { + alert("复制失败"); + } + } + + } + }; +})(); \ No newline at end of file diff --git a/web/static/css/analysis.css b/web/static/css/analysis.css index ee8e201..86a509a 100644 --- a/web/static/css/analysis.css +++ b/web/static/css/analysis.css @@ -230,3 +230,14 @@ .savereport-but-qd { background-color: #3d90ff; color: #fff; } .analysis-overall { display: none; } +/* 条件查询 */ +.conditionquery-box { width: 430px; height: 362px; background-color: #fff; } +.conditionquery-pad-box { padding: 12px 16px; color: rgba(0, 0, 0, 0.85); } +.conditionquery-con-box { margin: 0 8px; } +.layui-tab-brief>.layui-tab-title .layui-this { color:#3d90ff; } +.layui-tab-brief>.layui-tab-more li.layui-this:after, .layui-tab-brief>.layui-tab-title .layui-this:after { border-bottom: 2px solid #3d90ff; } +.conditionquery-txt { padding: 8px; height: 204px; line-height: 24px; overflow-y: auto; background-color: #fafafa; color: #323234; border: 1px solid #f0f0f0; border-radius: 2px; } + +.conditionquery-but-box { display: flex; justify-content: space-between; align-items: center; margin-top: -10px; } +.conditionquery-copy { cursor: pointer; color: #fff; background-color: #3d90ff; border-radius: 2px; padding: 0 16px; font-weight: 400; font-size: 14px; height: 32px; line-height: 32px; } +.conditionquery-but-box span{ background-color: #eaecf8; color: #3d90ff; padding: 0 8px; cursor: pointer; display: inline-block; } \ No newline at end of file