From 051eb785a36ec3b6cd3b4305fdb65f6940415e9b Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 14 九月 2021 13:17:48 +0800
Subject: [PATCH] 2021-09-14

---
 src/utils/option.js |  624 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 602 insertions(+), 22 deletions(-)

diff --git a/src/utils/option.js b/src/utils/option.js
index 747831e..b91afd5 100644
--- a/src/utils/option.js
+++ b/src/utils/option.js
@@ -1,18 +1,30 @@
-import zhCN from '@/locales/zh-CN/share.js'
-import enUS from '@/locales/en-US/share.js'
+import zhCN from '@/locales/zh-CN/model.js'
+import enUS from '@/locales/en-US/model.js'
 import nortable from '@/assets/img/normaltable.jpg'
 import mainsubtable from '@/assets/img/mainsubtable.jpg'
+import treepage from '@/assets/img/treepage.jpg'
+import calendar from '@/assets/img/calendar.jpg'
+import customImg from '@/assets/img/custom.jpg'
+import rolemanage from '@/assets/img/rolemanage.jpg'
 
 const _dict =  sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS
 
+// 琛ㄥ崟鏍¢獙瑙勫垯
 export const formRule = {
   input: {
     max: 100,
-    message: '杈撳叆妗嗘渶澶�100涓瓧绗︺��'
+    message: '杈撳叆妗嗘渶澶�100涓瓧绗︺��',
+    formMessage: '鏈�澶欯max涓瓧绗︺��', // 鏂囨湰琛ㄥ崟鏈�澶ф彁绀�
+    numbermsg: '璇疯緭鍏ユ暟瀛楋紒',
+    lettermsg: '璇疯緭鍏ュ瓧姣嶏紒',
+    letternummsg: '璇疯緭鍏ユ暟瀛楁垨瀛楁瘝锛�',
+    quotemsg: '涓嶅彲浣跨敤鑻辨枃鐘舵�佺殑鍗曞紩鍙凤紒',
+    funcname: '璇疯緭鍏ユ暟瀛椼�佸瓧姣嶃�佹眽瀛椾互鍙奯'
   },
   field: { // 瀛楁鍚�
     max: 50,
-    pattern: /^[\u4E00-\u9FA50-9a-zA-Z,_-]*$/ig,
+    pattern: /^[\u4E00-\u9FA50-9a-zA-Z_-]*$/ig,
+    multipattern: /^[\u4E00-\u9FA50-9a-zA-Z,_-]*$/ig,
     message: '瀛楁鍚嶅彧鍏佽鍖呭惈鏁板瓧銆佸瓧姣嶃�佹眽瀛椾互鍙奯-',
     maxMessage: '瀛楁鍚嶆渶澶�50涓瓧绗︺��'
   },
@@ -36,6 +48,7 @@
   }
 }
 
+// 绯荤粺妯℃澘
 export const sysTemps = [
   {
     title: '鍩虹琛ㄦ牸',
@@ -53,39 +66,76 @@
     isSubtable: true
   },
   {
+    title: '鏍戝舰椤甸潰',
+    type: 'TreePage',
+    url: treepage,
+    baseconfig: '',
+    isSystem: true
+  },
+  {
+    title: '鏃ュ巻',
+    type: 'CalendarPage',
+    url: calendar,
+    baseconfig: '',
+    isSystem: true
+  },
+  {
+    title: '鑷畾涔�',
+    type: 'CustomPage',
+    url: customImg,
+    baseconfig: '',
+    isSystem: true
+  },
+  {
+    title: '澶栭儴椤甸潰',
+    type: 'NewPage',
+    url: customImg,
+    baseconfig: '',
+    isSystem: true
+  },
+  {
     title: '瑙掕壊鏉冮檺鍒嗛厤',
     type: 'RolePermission',
-    url: mainsubtable,
+    url: rolemanage,
     isSystem: true,
     hidden: true
   }
 ]
 
+// 鍥捐〃鑹茬郴
+export const chartColors = ['rgb(91, 143, 249)', 'rgb(90, 216, 166)', 'rgb(93, 112, 146)', 'rgb(246, 189, 22)', 'rgb(232, 100, 82)', 'rgb(109, 200, 236)', 'rgb(148, 95, 185)', 'rgb(246, 189, 22)', 'rgb(205, 221, 253)', 'rgb(248, 208, 203)']
+
+// 鏃ユ湡榛樿鍊奸�夋嫨鑼冨洿
 export const dateOptions = {
   date: [
-    {value: '', text: _dict['date.empty']},
-    {value: '0', text: '褰撳ぉ'},
-    {value: 1, text: '鍓嶄竴澶�'},
+    {value: '', text: _dict['model.empty']},
+    {value: '0', text: '浠婂ぉ'},
+    {value: 1, text: '鏄ㄥぉ'},
+    {value: 2, text: '鍓嶅ぉ'},
     {value: 3, text: '鍓嶄笁澶�'},
     {value: 7, text: '鍓嶄竷澶�'},
-    {value: 30, text: '鍓�30澶�'}
+    {value: 30, text: '鍓�30澶�'},
+    {value: -1, text: '鏄庡ぉ'},
+    {value: -2, text: '鍚庡ぉ'}
   ],
   dateweek: [
-    {value: '', text: _dict['date.empty']},
+    {value: '', text: _dict['model.empty']},
     {value: '0', text: '鏈懆'},
     {value: 1, text: '涓婂懆'},
     {value: 3, text: '鍓嶄笁鍛�'},
-    {value: 7, text: '鍓嶄竷鍛�'}
+    {value: 7, text: '鍓嶄竷鍛�'},
+    {value: -1, text: '涓嬪懆'}
   ],
   datemonth: [
-    {value: '', text: _dict['date.empty']},
+    {value: '', text: _dict['model.empty']},
     {value: '0', text: '鏈湀'},
     {value: 1, text: '涓婃湀'},
     {value: 3, text: '鍓嶄笁鏈�'},
-    {value: 7, text: '鍓嶄竷鏈�'}
+    {value: 7, text: '鍓嶄竷鏈�'},
+    {value: -1, text: '涓嬫湀'}
   ],
   daterange: [
-    {value: '', text: _dict['date.empty']},
+    {value: '', text: _dict['model.empty']},
     {value: '[0, 0]', text: '浠婂ぉ'},
     {value: '[1, 1]', text: '鏄ㄥぉ'},
     {value: '[3, 0]', text: '杩戜笁澶�'},
@@ -93,19 +143,24 @@
     {value: '[30, 0]', text: '杩�30澶�'},
     {value: '[7, -7]', text: '鍓嶅悗涓冨ぉ'},
     {value: '[30, -30]', text: '鍓嶅悗30澶�'},
-    {value: '[90, -90]', text: '鍓嶅悗90澶�'}
+    {value: '[90, -90]', text: '鍓嶅悗90澶�'},
+    {value: '[-1, -1]', text: '鏄庡ぉ'},
+    {value: '[-2, -2]', text: '鍚庡ぉ'}
   ],
   datetime: [
-    {value: '', text: _dict['date.empty']},
-    {value: '0', text: '鐜板湪'},
+    {value: '', text: _dict['model.empty']},
+    {value: '0', text: '浠婂ぉ'},
     {value: 1, text: '鏄ㄥぉ'},
     {value: 3, text: '鍓嶄笁澶�'},
     {value: 7, text: '鍓嶄竷澶�'},
-    {value: 30, text: '鍓�30澶�'}
+    {value: 30, text: '鍓�30澶�'},
+    {value: -1, text: '鏄庡ぉ'},
+    {value: -2, text: '鍚庡ぉ'}
   ]
 }
 
-export const matchReg = { // 鍖归厤瑙勫垯
+// 鍖归厤瑙勫垯
+export const matchReg = {
   text: [{
     value: 'like',
     text: 'like'
@@ -115,6 +170,13 @@
   }, {
     value: '=',
     text: '='
+  }],
+  multiselect: [{
+    value: 'like',
+    text: 'like'
+  }, {
+    value: 'not like',
+    text: 'not like'
   }],
   select: [{
     value: '=',
@@ -146,10 +208,8 @@
   }]
 }
 
+// 鎸夐挳鍥炬爣闆�
 export const btnIcons = [{
-  value: '',
-  text: 'unset'
-}, {
   value: 'plus',
   text: 'plus'
 }, {
@@ -185,8 +245,48 @@
 }, {
   value: 'step-forward',
   text: 'step-forward'
+}, {
+  value: 'logout',
+  text: 'logout'
+}, {
+  value: 'login',
+  text: 'login'
+}, {
+  value: 'play-circle',
+  text: 'play-circle'
+}, {
+  value: 'clock-circle',
+  text: 'clock-circle'
+}, {
+  value: 'pause-circle',
+  text: 'pause-circle'
+}, {
+  value: 'stop',
+  text: 'stop'
+}, {
+  value: 'lock',
+  text: 'lock'
+}, {
+  value: 'unlock',
+  text: 'unlock'
+}, {
+  value: 'right',
+  text: 'right'
+}, {
+  value: 'left',
+  text: 'left'
+}, {
+  value: 'double-right',
+  text: 'double-right'
+}, {
+  value: 'double-left',
+  text: 'double-left'
+}, {
+  value: 'search',
+  text: 'search'
 }]
 
+// 鎸夐挳棰滆壊闆�
 export const btnClasses = [{
   value: 'default',
   text: '榛樿锛堥粦杈圭櫧搴曪級'
@@ -239,3 +339,483 @@
   value: 'border-purple',
   text: '鐧藉簳绱'
 }]
+
+// 鎸夐挳棰滆壊闆�
+export const btnCustomClasses = [{
+  value: 'primary',
+  text: '钃濊壊'
+}, {
+  value: 'yellow',
+  text: '榛勮壊'
+}, {
+  value: 'orange',
+  text: '姗欒壊'
+}, {
+  value: 'danger',
+  text: '绾㈣壊'
+}, {
+  value: 'green',
+  text: '缁胯壊'
+}, {
+  value: 'dgreen',
+  text: '娣辩豢鑹�'
+}, {
+  value: 'purple',
+  text: '绱壊'
+}, {
+  value: 'cyan',
+  text: '闈掕壊'
+}, {
+  value: 'gray',
+  text: '鐏拌壊'
+}]
+
+export const calendarColors = [
+  {name: 'red', value: '#d0021b'},
+  {name: 'orange', value: '#f5a623'},
+  {name: 'yellow', value: '#f8e71c'},
+  {name: 'green', value: '#7ed321'},
+  {name: 'cyan', value: '#50e3c2'},
+  {name: 'blue', value: '#1890ff'},
+  {name: 'purple', value: '#bd10e0'},
+  {name: 'gray', value: '#9b9b9b'},
+]
+
+// 鏄剧ず鍒楁爣璁拌壊绯�
+export const colorTransform = {
+  'dust-red-1': '#fff1f0',
+  'dust-red-2': '#ffccc7',
+  'dust-red-3': '#ffa39e',
+  'dust-red-4': '#ff7875',
+  'dust-red-5': '#ff4d4f',
+  'dust-red-6': '#f5222d',
+  'dust-red-7': '#cf1322',
+  'dust-red-8': '#a8071a',
+  'dust-red-9': '#820014',
+  'dust-red-10': '#5c0011',
+  'volcano-1': '#fff2e8',
+  'volcano-2': '#ffd8bf',
+  'volcano-3': '#ffbb96',
+  'volcano-4': '#ff9c6e',
+  'volcano-5': '#ff7a45',
+  'volcano-6': '#fa541c',
+  'volcano-7': '#d4380d',
+  'volcano-8': '#ad2102',
+  'volcano-9': '#871400',
+  'volcano-10': '#610b00',
+  'orange-1': '#fff7e6',
+  'orange-2': '#ffe7ba',
+  'orange-3': '#ffd591',
+  'orange-4': '#ffc069',
+  'orange-5': '#ffa940',
+  'orange-6': '#fa8c16',
+  'orange-7': '#d46b08',
+  'orange-8': '#ad4e00',
+  'orange-9': '#873800',
+  'orange-10': '#612500',
+  'gold-1': '#fffbe6',
+  'gold-2': '#fff1b8',
+  'gold-3': '#ffe58f',
+  'gold-4': '#ffd666',
+  'gold-5': '#ffc53d',
+  'gold-6': '#faad14',
+  'gold-7': '#d48806',
+  'gold-8': '#ad6800',
+  'gold-9': '#874d00',
+  'gold-10': '#613400',
+  'yellow-1': '#feffe6',
+  'yellow-2': '#ffffb8',
+  'yellow-3': '#fffb8f',
+  'yellow-4': '#fff566',
+  'yellow-5': '#ffec3d',
+  'yellow-6': '#fadb14',
+  'yellow-7': '#d4b106',
+  'yellow-8': '#ad8b00',
+  'yellow-9': '#876800',
+  'yellow-10': '#614700',
+  'lime-1': '#fcffe6',
+  'lime-2': '#f4ffb8',
+  'lime-3': '#eaff8f',
+  'lime-4': '#d3f261',
+  'lime-5': '#bae637',
+  'lime-6': '#a0d911',
+  'lime-7': '#7cb305',
+  'lime-8': '#5b8c00',
+  'lime-9': '#3f6600',
+  'lime-10': '#254000',
+  'green-1': '#f6ffed',
+  'green-2': '#d9f7be',
+  'green-3': '#b7eb8f',
+  'green-4': '#95de64',
+  'green-5': '#73d13d',
+  'green-6': '#52c41a',
+  'green-7': '#389e0d',
+  'green-8': '#237804',
+  'green-9': '#135200',
+  'green-10': '#092b00',
+  'cyan-1': '#e6fffb',
+  'cyan-2': '#b5f5ec',
+  'cyan-3': '#87e8de',
+  'cyan-4': '#5cdbd3',
+  'cyan-5': '#36cfc9',
+  'cyan-6': '#13c2c2',
+  'cyan-7': '#08979c',
+  'cyan-8': '#006d75',
+  'cyan-9': '#00474f',
+  'cyan-10': '#002329',
+  'blue-1': '#e6f7ff',
+  'blue-2': '#bae7ff',
+  'blue-3': '#91d5ff',
+  'blue-4': '#69c0ff',
+  'blue-5': '#40a9ff',
+  'blue-6': '#1890ff',
+  'blue-7': '#096dd9',
+  'blue-8': '#0050b3',
+  'blue-9': '#003a8c',
+  'blue-10': '#002766',
+  'geekblue-1': '#f0f5ff',
+  'geekblue-2': '#d6e4ff',
+  'geekblue-3': '#adc6ff',
+  'geekblue-4': '#85a5ff',
+  'geekblue-5': '#597ef7',
+  'geekblue-6': '#2f54eb',
+  'geekblue-7': '#1d39c4',
+  'geekblue-8': '#10239e',
+  'geekblue-9': '#061178',
+  'geekblue-10': '#030852',
+  'purple-1': '#f9f0ff',
+  'purple-2': '#efdbff',
+  'purple-3': '#d3adf7',
+  'purple-4': '#b37feb',
+  'purple-5': '#9254de',
+  'purple-6': '#722ed1',
+  'purple-7': '#531dab',
+  'purple-8': '#391085',
+  'purple-9': '#22075e',
+  'purple-10': '#120338',
+  'magenta-1': '#fff0f6',
+  'magenta-2': '#ffd6e7',
+  'magenta-3': '#ffadd2',
+  'magenta-4': '#ff85c0',
+  'magenta-5': '#f759ab',
+  'magenta-6': '#eb2f96',
+  'magenta-7': '#c41d7f',
+  'magenta-8': '#9e1068',
+  'magenta-9': '#780650',
+  'magenta-10': '#520339',
+  'transparent': 'transparent',
+  'gray-1': '#f5f5f5',
+  'gray-2': '#f0f0f0',
+  'gray-3': '#d9d9d9',
+  'gray-4': '#bfbfbf',
+  'gray-5': '#8c8c8c',
+  'gray-6': '#595959',
+  'gray-7': '#434343',
+  'gray-8': '#262626',
+  'gray-9': '#1f1f1f',
+  'gray-10': '#141414',
+}
+
+export const minkeColorSystem = [
+  {
+    value: 'DustRed',
+    label: '钖勬毊',
+    children: [
+      { value: 'dust-red-2', label: 'dust-red-2' },
+      { value: 'dust-red-4', label: 'dust-red-4' },
+      { value: 'dust-red-6', label: 'dust-red-6' },
+      { value: 'dust-red-8', label: 'dust-red-8' },
+      { value: 'dust-red-10', label: 'dust-red-10' }
+    ]
+  },
+  {
+    value: 'Volcano',
+    label: '鐏北',
+    children: [
+      { value: 'volcano-2', label: 'volcano-2' },
+      { value: 'volcano-4', label: 'volcano-4' },
+      { value: 'volcano-6', label: 'volcano-6' },
+      { value: 'volcano-8', label: 'volcano-8' },
+      { value: 'volcano-10', label: 'volcano-10' }
+    ],
+  },
+  {
+    value: 'SunsetOrange',
+    label: '鏃ユ毊',
+    children: [
+      { value: 'orange-2', label: 'orange-2' },
+      { value: 'orange-4', label: 'orange-4' },
+      { value: 'orange-6', label: 'orange-6' },
+      { value: 'orange-8', label: 'orange-8' },
+      { value: 'orange-10', label: 'orange-10' }
+    ]
+  },
+  {
+    value: 'CalendulaGold',
+    label: '閲戠洀鑺�',
+    children: [
+      { value: 'gold-2', label: 'gold-2' },
+      { value: 'gold-4', label: 'gold-4' },
+      { value: 'gold-6', label: 'gold-6' },
+      { value: 'gold-8', label: 'gold-8' },
+      { value: 'gold-10', label: 'gold-10' }
+    ]
+  },
+  {
+    value: 'SunriseYellow',
+    label: '鏃ュ嚭',
+    children: [
+      { value: 'yellow-2', label: 'yellow-2' },
+      { value: 'yellow-4', label: 'yellow-4' },
+      { value: 'yellow-6', label: 'yellow-6' },
+      { value: 'yellow-8', label: 'yellow-8' },
+      { value: 'yellow-10', label: 'yellow-10' }
+    ]
+  },
+  {
+    value: 'Lime',
+    label: '闈掓煚',
+    children: [
+      { value: 'lime-2', label: 'lime-2' },
+      { value: 'lime-4', label: 'lime-4' },
+      { value: 'lime-6', label: 'lime-6' },
+      { value: 'lime-8', label: 'lime-8' },
+      { value: 'lime-10', label: 'lime-10' }
+    ]
+  },
+  {
+    value: 'PolarGreen',
+    label: '鏋佸厜缁�',
+    children: [
+      { value: 'green-2', label: 'green-2' },
+      { value: 'green-4', label: 'green-4' },
+      { value: 'green-6', label: 'green-6' },
+      { value: 'green-8', label: 'green-8' },
+      { value: 'green-10', label: 'green-10' }
+    ]
+  },
+  {
+    value: 'Cyan',
+    label: '鏄庨潚',
+    children: [
+      { value: 'cyan-2', label: 'cyan-2' },
+      { value: 'cyan-4', label: 'cyan-4' },
+      { value: 'cyan-6', label: 'cyan-6' },
+      { value: 'cyan-8', label: 'cyan-8' },
+      { value: 'cyan-10', label: 'cyan-10' }
+    ]
+  },
+  {
+    value: 'DaybreakBlue',
+    label: '鎷傛檽钃�',
+    children: [
+      { value: 'blue-2', label: 'blue-2' },
+      { value: 'blue-4', label: 'blue-4' },
+      { value: 'blue-6', label: 'blue-6' },
+      { value: 'blue-8', label: 'blue-8' },
+      { value: 'blue-10', label: 'blue-10' }
+    ]
+  },
+  {
+    value: 'GeekBlue',
+    label: '鏋佸钃�',
+    children: [
+      { value: 'geekblue-2', label: 'geekblue-2' },
+      { value: 'geekblue-4', label: 'geekblue-4' },
+      { value: 'geekblue-6', label: 'geekblue-6' },
+      { value: 'geekblue-8', label: 'geekblue-8' },
+      { value: 'geekblue-10', label: 'geekblue-10' }
+    ]
+  },
+  {
+    value: 'GoldenPurple',
+    label: '閰辩传',
+    children: [
+      { value: 'purple-2', label: 'purple-2' },
+      { value: 'purple-4', label: 'purple-4' },
+      { value: 'purple-6', label: 'purple-6' },
+      { value: 'purple-8', label: 'purple-8' },
+      { value: 'purple-10', label: 'purple-10' }
+    ]
+  },
+  {
+    value: 'Magenta',
+    label: '娉曞紡娲嬬孩',
+    children: [
+      { value: 'magenta-2', label: 'magenta-2' },
+      { value: 'magenta-4', label: 'magenta-4' },
+      { value: 'magenta-6', label: 'magenta-6' },
+      { value: 'magenta-8', label: 'magenta-8' },
+      { value: 'magenta-10', label: 'magenta-10' }
+    ]
+  },
+  {
+    value: 'Gray',
+    label: '涓�ц壊',
+    children: [
+      { value: 'transparent', label: 'transparent' },
+      { value: 'gray-2', label: 'gray-2' },
+      { value: 'gray-4', label: 'gray-4' },
+      { value: 'gray-6', label: 'gray-6' },
+      { value: 'gray-8', label: 'gray-8' },
+      { value: 'gray-10', label: 'gray-10' }
+    ]
+  }
+]
+
+export const minkeIconSystem = {
+  direction: [
+    'arrow-up',
+    'arrow-down',
+    'arrow-left',
+    'arrow-right',
+    'down',
+    'up',
+    'left',
+    'right',
+    'caret-up',
+    'caret-down',
+    'caret-left',
+    'caret-right',
+    'step-backward',
+    'step-forward',
+    'fast-backward',
+    'fast-forward',
+    'double-right',
+    'double-left',
+    'forward',
+    'backward',
+    'rollback',
+    'enter',
+    'retweet',
+    'swap',
+    'swap-left',
+    'swap-right',
+    'play-circle',
+    'login',
+    'logout',
+    'search',
+    'fullscreen',
+    'fullscreen-exit',
+    'download',
+    'upload'
+  ],
+  hint: [
+    'question',
+    'question-circle',
+    'plus',
+    'plus-circle',
+    'pause-circle',
+    'minus',
+    'minus-circle',
+    'info-circle',
+    'exclamation-circle',
+    'close',
+    'close-circle',
+    'check',
+    'check-circle',
+    'check-square',
+    'clock-circle',
+    'warning',
+    'stop'
+  ],
+  edit: [
+    'edit',
+    'form',
+    'copy',
+    'scissor',
+    'delete',
+    'snippets',
+    'highlight',
+    'redo',
+    'undo',
+    'zoom-in',
+    'zoom-out',
+    'dash',
+    'sort-ascending',
+    'sort-descending'
+  ],
+  data: [
+    'area-chart',
+    'pie-chart',
+    'bar-chart',
+    'dot-chart',
+    'line-chart',
+    'radar-chart',
+    'fall',
+    'rise',
+    'stock',
+  ],
+  trademark: [
+    'android',
+    'apple',
+    'chrome',
+    'aliwangwang',
+    'dingding',
+    'weibo',
+    'twitter',
+    'wechat',
+    'alipay-circle',
+    'taobao',
+    'qq',
+    'alipay',
+  ],
+  normal: [
+    'user',
+    'account-book',
+    'alert',
+    'api',
+    'appstore',
+    'audio',
+    'bank',
+    'bell',
+    'bug',
+    'calendar',
+    'camera',
+    'cloud',
+    'compass',
+    'credit-card',
+    'customer-service',
+    'dashboard',
+    'ellipsis',
+    'more',
+    'database',
+    'dislike',
+    'environment',
+    'eye-invisible',
+    'eye',
+    'file',
+    'filter',
+    'fire',
+    'flag',
+    'folder-add',
+    'folder',
+    'folder-open',
+    'heart',
+    'home',
+    'hourglass',
+    'idcard',
+    'like',
+    'lock',
+    'mail',
+    'message',
+    'mobile',
+    'phone',
+    'picture',
+    'red-envelope',
+    'smile',
+    'star',
+    'thunderbolt',
+    'unlock',
+    'barcode',
+    'key',
+    'man',
+    'woman',
+    'team',
+    'poweroff',
+    'shopping-cart',
+    'link',
+  ]
+}
+
+export const queryTableSql = 'select TbName,Remark from (select TbName,Remark from sDataDictb where appkey= @appkey@ and Deleted=0 union select a.TbName,Remark from (select TbName,Remark from sDataDictb where appkey= \'\' and Deleted=0 ) a left join (select TbName from sDataDictb where appkey= @appkey@ and Deleted=0 ) b on a.TbName=b.TbName where b.TbName is null ) t'

--
Gitblit v1.8.0