1.データ構造の設計
データ記憶構造を達成するためのSQL文。デリケートな部分についてということでand
、or
条件付き論理設計。
もちろん、最後の時間は、ハッハッハ、いくつかの違いがあります実現しました。
Column = {
distinct: true,
aggr_func: 'sum',
name: 'col1', # func(col) sum/count/avg/distinct # db.tb
id: 12344,
alias: 'a', # 重命名
table: Table()
}
Table = {
id: 234,
name: "table.name",
alias: 't'
}
Condition = {
op: {
name: 'eq',
value: '='
}
value: [
# type: condition,column,expr
# 如果type是condition,表示and,or类型,value内的对象都是condition类型。
{
type: 'column',
col: Column()
},
{
type: 'expr',
value: '20170291'
}
...
]
}
# 单条查询语句,支持mysql,hive语法
# union 链接多个select
json = [{
select: [Column(),..],
from: [Table(),..] # db.tb
join: [{
type: 'left join'
table: Table()
on: Condition()
}],
where: Condition(),
group_by: [Column(),..]
having:Condition(),
order_by: [{
col: Column(),
sort: 'desc'
}]
limit: 10,
}]
2.観察者に汚いからモードをチェック
- VUEのにangularjs移行プロジェクト
VUEプロジェクトは、より多くの火災、コンポーネントベースの傾向が明らかになってきています。広々としangularjs、ゆっくりと新しい技術に置き換えられて。
我々は常にプロジェクトのVUEの開発に移行したいです。パッケージVUE機能は、angularjs VUEに使用することができます。ngvue
directive
vue-component(v-props="ng" name="QueryVisualComponent")
QueryVisualComponent = Vue.component('query-visual-component', {
props: ['ng']
data: ->
return {
info: null
columns: null
}
template: '#query-visual-component-template'
})
MetronicApp.value('QueryVisualComponent', QueryVisualComponent)
- AngularJS処理、通信VUEは
、AngularJSもVUEを使用することができる注入方法で包装されている依存する$state
小道具はスタックオーバーフロー、この循環参照を生成します。
グローバル変数をしこり。使いやすいVueの$http
依存リクエストデータ。(当然也可以引入axios)
g.utils.setDependencies($state.current.controller, arguments, {ctrl: @})
@ng = g.utils.dependencies
setDependencies: (controller_name, args, extra) ->
g.utils.dependencies = extra ? {}
for i in MetronicApp._invokeQueue
if i[0] == '$controllerProvider'
if i[2][0] == controller_name
for dependency, index in i[2][1].slice(0, -1)
g.utils.dependencies[dependency] = args[index]
break
3.ページの設計と開発機能
そのため、開発の流れの承認のための基礎を、フローチャートとして設計認めました。
最後に、Navicatはを参照。
実際の開発プロセス、赤軍二十から五千長い行進のような問題の多くは、幸い今達することが延安、ハッハッハ。
- ノードのノードを生成する方法SVGに問題はありませんか?
SVGのforignObject素子の1. https://github.com/memloom-development/svg.foreignobject.js
2.vue(DOM構造要素VUEを得る)コンパイルを拡張し
、3.MacのforeignObject内部要素は、スクロールバーを持つことができないoverflow: auto
高さより後または幅、正しい位置を占めるDOMは、実際のディスプレイのオフセット。
4.nodeのドラッグは、クリックイベントがトリガさに影響します。ダブルクリック、マニュアルフォーカス。
5.vuexグローバルデータ交換。
6.右下欄ノード・ページ・サイズをドラッグ。
#vue compile extend
visual_header = Header(world, snippet, table_id)
VisualHeader = Vue.extend(visual_header)
h_comp = new VisualHeader().$mount()
@header = world.svg.foreignObject()
.addClass('visual-header-object')
.appendChild(h_comp.$el, {className: 'visual-header-box flex'})
- SELECTは、WHERE、から、注文、リミットによってグループで、参加
1.select(DISTINCT、計算、エイリアス)
2.from文の結合に参加
不一致ここより上と実際の設計データ構造(最後のコンマ3.質問を処理しますハッハッハ。)
jqueryBuilder処理4.whereand
or
条件とSQLショーを。
プロセスは、有向グラフに声明に参加することはありません。
count: 1
sql: {
'1':{
columns: [],
from: [],
join: {},
where: null,
limit: 10,
where_sql: ''
join_sql: {}
add_item: []
max_select: -1,
max_order_by: -1,
max_group_by: -1,
max_from: -1
}
}
columns_dict: {}
table_dict: {}
checkedCol: {}
}
4.データ組立
ます。https://www.jianshu.com/p/f6488a458eebで再現