Kaynağa Gözat

collapsible

root 2 yıl önce
ebeveyn
işleme
7c6419140b
2 değiştirilmiş dosya ile 110 ekleme ve 116 silme
  1. 30 15
      chem/index.html
  2. 80 101
      js/chem.js

+ 30 - 15
chem/index.html

@@ -90,7 +90,7 @@
             background-color: rgba(159, 186, 200, 0.1);
         }
 
-        .glyphicon-share-alt {
+        .glyphicon-share-alt:not(.normal) {
             transform: rotateX(180deg);
         }
 
@@ -176,6 +176,10 @@
         .label-ion {
             background-color: #4f95b3;
         }
+
+        .type {
+            border-radius: 0;
+        }
     </style>
     <script id="MathJax-script" src="https://cdn.bootcss.com/mathjax/3.2.0/es5/tex-chtml.js"></script>
     <script src="/js/chem.js"></script>
@@ -205,13 +209,15 @@
                         <input type="radio"> 相对质量
                     </label>
                 </div>
-                <button type="button" class="btn btn-default" style="display: none;" data-toggle="button" onclick="$(this).toggleClass('btn-info');precise=!precise;input()" id="precise"><span class="glyphicon glyphicon-cog"></span> 高精度</button>
-                <a class="btn btn-default tools" href="/chemist">
-                    <span class="glyphicon glyphicon-link"></span> 配平接口
-                </a>
-                <button class="btn btn-default btn-xs pull-right tools" onclick="$('.tools').toggle(300);">
-                    <span class="glyphicon glyphicon-chevron-left"></span> 折叠
-                </button>
+                <span class="tools">
+                    <button type="button" class="btn btn-default" style="display: none;" data-toggle="button" onclick="$(this).toggleClass('btn-info');precise=!precise;input()" id="precise"><span class="glyphicon glyphicon-cog"></span> 高精度</button>
+                    <a class="btn btn-default" href="/chemist">
+                        <span class="glyphicon glyphicon-link"></span> 配平接口
+                    </a>
+                    <button class="btn btn-default btn-xs pull-right" onclick="$('.tools').toggle(300);">
+                        <span class="glyphicon glyphicon-chevron-left"></span> 折叠
+                    </button>
+                </span>
             </h2>
             <div class="input-group tools">
                 <input id="balInput" type="text" class="form-control" oninput="input()" autocomplete="off">
@@ -219,10 +225,11 @@
                     <button type="button" class="btn btn-default" onclick="balance()" id="balBtn">配平</button>
                 </span>
             </div>
-            <hr class="tools">
-            <div class="well frame tools">
+            <div class="tools">
+                <hr>
+                <div class="well frame"></div>
+                <hr>
             </div>
-            <hr class="tools">
             <h2>数据库
                 <div class="btn-group" data-toggle="buttons">
                     <label class="btn btn-default active" onclick="modeq='query';setQry()"><input type="radio">查询</label>
@@ -236,7 +243,7 @@
                     <label class="btn btn-default" onclick="nameq='el';setQry()"><input type="radio">元素</label>
                 </div>
                 <button type="button" class="btn btn-default op op-query-eq" style="display: none;" data-toggle="button" onclick="$(this).toggleClass('btn-info');strict=!strict;toggl('查询 <span class=\'glyphicon glyphicon-search\'></span>', strict);input()" id="strict"><span class="glyphicon glyphicon-cog"></span> 限制等号左右</button>
-                <button type="button" class="btn btn-default op op-query-eq" style="display: none;" data-toggle="button" onclick="$(this).toggleClass('btn-info');qryToggleMatch()" id="qryMatch"><span class="glyphicon glyphicon-cog"></span> 匹配分子</button>
+                <button type="button" class="btn btn-default op op-query-eq" style="display: none;" data-toggle="button" onclick="$(this).toggleClass('btn-info');qryToggleMatch()" id="qryMatch"><span class="glyphicon glyphicon-cog"></span> 匹配元素</button>
                 <button type="button" class="btn btn-default op op-query-mo" style="display: none;" data-toggle="button" onclick="$(this).toggleClass('btn-info');qryToggleMatch()" id="qryIon"><span class="glyphicon glyphicon-cog"></span> 查找离子</button>
             </h2>
             <div class="input-group">
@@ -261,6 +268,7 @@
                 </span>
                 <span class="input-group add add-mo add-io">
                     <span class="input-group-addon">化合价</span>
+                    <span class="input-group-btn add add-mo"><button style="border-radius: 0;margin-right:-1px" class="btn btn-default" onclick="autoClass()" title="根据离子确定化合价"><span class="glyphicon glyphicon-share-alt normal"></span></button></span>
                     <span class="form-control" id="pclass" style="color:#999">...</span>
                     <span class="input-group" id="class">
                     </span>
@@ -268,11 +276,14 @@
                 <span class="input-group add add-mo">
                     <span class="input-group-addon">离子</span>
                     <span class="form-control ionList" style="color:#999">...</span>
-                    <span class="input-group-btn"><button class="btn btn-default" onclick="getIons();if($('.ionList').text()=='...')$('.ionList').text('查看下方‘离子’页!');$(this).children('span').addClass('glyphicon-chevron-down')"><span class="glyphicon glyphicon-plus"></span></button></span>
+                    <span class="input-group-btn"><button class="btn btn-default" onclick="getIons();if($('.ionList').text()=='...')$('.ionList').text('查看下方‘离子’页!');$(this).children('span').addClass('glyphicon-chevron-down');$('.frame.active').parent().show();"><span class="glyphicon glyphicon-plus"></span></button></span>
                 </span>
                 <span class="input-group add add-mo" style="background-color: white;border-right: 1px solid #ccc;">
                     <span class="input-group-addon">类型</span>
                     <div class="btn-group" data-toggle="buttons">
+                        <label class="btn btn-default type type-单质" onclick="type=$(this).text().replace(/[ \n]/g,'')">
+                            <input type="radio"> 单质
+                        </label>
                         <label class="btn btn-default type type-酸 active" onclick="type=$(this).text().replace(/[ \n]/g,'')">
                             <input type="radio"> 酸
                         </label>
@@ -285,8 +296,8 @@
                         <label class="btn btn-default type type-氧化物" onclick="type=$(this).text().replace(/[ \n]/g,'')">
                             <input type="radio"> 氧化物
                         </label>
-                        <label class="btn btn-default type type-单质" onclick="type=$(this).text().replace(/[ \n]/g,'')">
-                            <input type="radio"> 单质
+                        <label class="btn btn-default type type-氢化物" onclick="type=$(this).text().replace(/[ \n]/g,'')">
+                            <input type="radio"> 氢化物
                         </label>
                     </div>
                 </span>
@@ -297,6 +308,10 @@
             </div>
             <pre class="ok op op-query-eq op-query-mo op-query-io op-query-el" style="font-family: Chalkduster,Consolas;top: -1px;position: relative;border-top-left-radius: 0;border-top-right-radius: 0;"></pre>
             <hr>
+            <button class="btn btn-default btn-xs pull-right" onclick="collapse=!collapse;setQry();$(this).children().toggle(300)">
+                <span><span class="glyphicon glyphicon-chevron-left"></span> 隐藏无关项</span>
+                <span style="display: none;"><span class="glyphicon glyphicon-chevron-right"></span> 显示</span>
+            </button>
             <div class="has">
                 <span onclick="nameq='eq';setQry()">化学式</span>
                 <div class="well frame active">

+ 80 - 101
js/chem.js

@@ -26,7 +26,7 @@ var weighList2 = {
     Fr: 223, Ra: 226.0, Ac: 227.0, Th: 232.0, Pa: 231.0, U: 238.0, Np: 237.0, Pu: 244, Am: 243, Cm: 247, Bk: 247, Cf: 251, Es: 252, Fm: 257, Md: 258, No: 259, Lr: 260, Rf: 261, Db: 262, Sg: 263, Bh: 262, Hs: 265, Mt: 266, Ds: 269, Rg: 272, Cn: 285, Nh: 284, Fl: 289, Mc: 288, Lv: 293, Ts: 291, Og: 294
 }
 
-var bracket = {}, preview = 1, precise = 0
+var bracket = {}, preview = 1, precise = 0, collapse = 0
 
 function getco(str) {
     var n = str.length, ret = 0
@@ -42,7 +42,7 @@ function getco(str) {
 
 function workMolecule(str, st) {
     // console.log(str, st)
-    var n = str.length, co = 1, ans = {};
+    var n = str.length, ans = {};
     for (let i = 0; i < n; i++) {
         var ch = str.charAt(i)
         var f = {}
@@ -279,7 +279,7 @@ var modeq = 'query', nameq = 'eq', strict = false, matchMode = 'mole', namels =
 function toggl(str, is = 0) {
     $('#qryBtn').html(str)
     $('.op').hide()
-    $('.op-' + modeq + '-' + nameq).show(300)
+    $('.op-' + modeq + '-' + nameq).show()
     if (modeq == 'add' || modeq == 'upd') {
         $('.add:not(.add-' + nameq + ',#addId)').hide()
         $('.add-' + nameq).show(500)
@@ -290,76 +290,52 @@ function toggl(str, is = 0) {
     else $('.qryInputHidable').hide()
 }
 function setQry() {
+    $('.qry-group>label').removeClass('active')
+    $('.frame').removeClass('active')
+    $('.frame')[0].classList.add('active')
+    if (modeq == 'query') toggl('查询 <span class="glyphicon glyphicon-search"></span>', nameq == 'eq' && strict)
+    else if (modeq == 'add') toggl('上传 <span class="glyphicon glyphicon-plus"></span>')
+    else toggl('修改 <span class="glyphicon glyphicon-pencil"></span>')
     if (nameq == 'eq') {
-        $('.frame').removeClass('active')
-        $('.frame')[0].classList.add('active')
         $('.frame')[1].classList.add('active')
-        $('.qry-group>label').removeClass('active')
         $('.qry-group>label')[0].classList.add('active')
-        if (modeq == 'query') {
-            toggl('查询 <span class="glyphicon glyphicon-search"></span>', strict)
-            $('#qryInput').attr('placeholder', 'O2=H2O' + '(输入化学式查询数据库,也可输入 id)')
-            input2();
-        }
-        else if (modeq == 'add') {
-            toggl('上传 <span class="glyphicon glyphicon-plus"></span>')
-            $('#qryInput').attr('placeholder', 'H2+O2=H2O' + '(输入化学式上传至数据库)')
-        } else {
-            toggl('修改 <span class="glyphicon glyphicon-pencil"></span>')
-            $('#qryInput').attr('placeholder', '(修改已有化学式)')
-        }
+        if (modeq == 'query') $('#qryInput').attr('placeholder', 'O2=H2O' + '(查询数据库中的化学式,也可输入 id)')
+        else if (modeq == 'add') $('#qryInput').attr('placeholder', 'H2+O2=H2O' + '(将化学式上传至数据库)')
+        else $('#qryInput').attr('placeholder', '(修改已有化学式)')
     } else if (nameq == 'mo') {
-        $('.qry-group>label').removeClass('active')
         $('.qry-group>label')[1].classList.add('active')
-        $('.frame').removeClass('active')
-        $('.frame')[0].classList.add('active')
         $('.frame')[2].classList.add('active')
         if (modeq == 'query') {
-            toggl('查询 <span class="glyphicon glyphicon-search"></span>')
-            $('#qryMatch').html('<span class="glyphicon glyphicon-cog"></span> 匹配分子')
-            matchMode = 'mole'
-            $('#qryInput').attr('placeholder', 'Fe' + '(输入分子查询数据库,也可输入 id)')
-            input2();
+            $('#qryInput').attr('placeholder', 'Fe' + '(查询数据库中的分子,也可输入 id)')
         }
         else if (modeq == 'add') {
-            toggl('上传 <span class="glyphicon glyphicon-plus"></span>')
-            $('#qryInput').attr('placeholder', 'Fe3O4' + '(输入分子上传至数据库)')
+            $('#qryInput').attr('placeholder', 'Fe3O4' + '(将分子上传至数据库)')
             $('#addTitle').attr('placeholder', '四氧化三铁')
         } else {
-            toggl('修改 <span class="glyphicon glyphicon-pencil"></span>')
             $('#qryInput').attr('placeholder', '(修改已有分子)')
             $('#addTitle').attr('placeholder', '四氧化三铁')
         }
     } else if (nameq == 'io') {
-        $('.qry-group>label').removeClass('active')
         $('.qry-group>label')[2].classList.add('active')
-        $('.frame').removeClass('active')
-        $('.frame')[0].classList.add('active')
         $('.frame')[3].classList.add('active')
         if (modeq == 'query') {
-            toggl('查询 <span class="glyphicon glyphicon-search"></span>')
-            $('#qryMatch').html('<span class="glyphicon glyphicon-cog"></span> 匹配离子')
-            matchMode = 'mole'
-            $('#qryInput').attr('placeholder', 'Fe' + '(输入离子查询数据库,也可输入 id)')
-            input2();
+            $('#qryInput').attr('placeholder', 'Fe' + '(查询数据库中的离子,也可输入 id)')
         }
         else if (modeq == 'add') {
-            toggl('上传 <span class="glyphicon glyphicon-plus"></span>')
-            $('#qryInput').attr('placeholder', 'Fe<3e+>' + '(输入离子上传至数据库)')
+            $('#qryInput').attr('placeholder', 'Fe<3e+>' + '(将离子上传至数据库)')
             $('#addTitle').attr('placeholder', '三价铁')
         } else {
-            toggl('修改 <span class="glyphicon glyphicon-pencil"></span>')
             $('#qryInput').attr('placeholder', '(修改已有离子)')
             $('#addTitle').attr('placeholder', '三价铁')
         }
     } else {
-        $('.qry-group>label').removeClass('active')
         $('.qry-group>label')[3].classList.add('active')
-        $('.frame').removeClass('active')
-        $('.frame')[0].classList.add('active')
         $('.frame')[4].classList.add('active')
     }
     input2()
+    if (modeq == 'upd') inputId()
+    if (collapse) $('.frame:not(.active)').parent().hide(300), $('.frame.active').parent().show(200);
+    else $('.frame').parent().show(300)
 }
 function replaceRegex(s) {
     return s.replace(/([\+\=\.;])+/g, '$1').replace(/([\(\)])/g, '\\\\$1').replace(/(<\d*)e\+/g, '$1%')
@@ -411,11 +387,22 @@ function getRegex() {
             ret += '.*'
         }
         return ret.replace(/%/g, 'e+')
-    } else return $('#qryInput').val() ? $('#qryInput').val() : $('#qryInput').attr('placeholder').split('(')[0]
+    } else return replaceRegex($('#qryInput').val() ? $('#qryInput').val() : $('#qryInput').attr('placeholder').split('(')[0])
 }
 
-var ggg
-
+function procClass(e) {
+    e[0].class = JSON.parse(e[0].class)
+    let c = e[0].class
+    for (let j = 0; j < c.length; j++) {
+        let t = JSON.stringify(c[j]).split(':')[0].split('"')[1]
+        let str = ''
+        c.filter(e => {
+            if (JSON.stringify(e).split(':')[0].split('"')[1] == t) str += ',' + JSON.stringify(e).split(':')[1].split('}')[0].replace(/"/g, '')
+        })
+        curClass[t] = str.slice(1)
+    }
+    getClass(1)
+}
 function renderResult(bd, e, isId, replace, insAfter) {
     let qin = $('#qryInput').val()
     if (e[0] == '!') {
@@ -471,7 +458,7 @@ function renderResult(bd, e, isId, replace, insAfter) {
         var str = ''
         for (let i = 0; i < e.length; i++) {
             str += `<div class="result">${renderEquation(e[i].content)}<br><span class="label label-default" onclick="doQuery(JSON.stringify({content:'${e[i].id}'}),'id',2,-2)">${e[i].id}</span> `;
-            str += `${e[i].title} ${e[i].descriptions}<span class="pull-right">${e[i].type}</span><br>`
+            str += `${e[i].title}${e[i].descriptions ? ' - ' + e[i].descriptions : ''}<span class="pull-right">${e[i].type}</span><br>`
             let ions = JSON.parse(e[i].ions)
             for (let j = 0; j < ions.length; j++) {
                 str += `<span class="ion">${renderEquation(ions[j].c + '~' + ions[j].v)}</span>`
@@ -483,24 +470,12 @@ function renderResult(bd, e, isId, replace, insAfter) {
                 $('#addTitle').val(e[0].title)
                 $('#addIdText').val(JSON.parse(bd).content)
                 $('#addDescription').val(e[0].descriptions)
-                e[0].class = JSON.parse(e[0].class)
-                let c = e[0].class
-                console.log(ggg = c)
-                for (let j = 0; j < c.length; j++) {
-                    let t = JSON.stringify(c[j]).split(':')[0].split('"')[1]
-                    let str = ''
-                    c.filter(e => {
-                        if (JSON.stringify(e).split(':')[0].split('"')[1] == t) str += ',' + JSON.stringify(e).split(':')[1].split('}')[0].replace(/"/g, '')
-                    })
-                    curClass[t] = str.slice(1)
-                }
-                console.log(curClass, e[0].class, e[0].ions)
-                ionList = JSON.parse(e[0].ions)
+                procClass(e)
                 type = e[0].type
                 $('.type').removeClass('active')
                 $('.type-' + type).addClass('active')
+                ionList = JSON.parse(e[0].ions)
                 updateIon()
-                getClass(1)
             }
             if (qin.match('!') || replace == 2) $('#qryInput').val(e[0].content)
             str += '</div>'
@@ -515,25 +490,16 @@ function renderResult(bd, e, isId, replace, insAfter) {
         for (let i = 0; i < e.length; i++) {
             str += `<div class="result"><span class="count-ion-${e[i].id}"></span>${renderEquation(e[i].content)}<br><span class="label label-ion" onclick="addIon(${e[i].id},'${e[i].content}')">${e[i].id}</span> `;
             str += e[i].title + '<br>';
+            ionClass[e[i].id] = e[i].class
             if (isId) {
                 if (replace) $('#qryInput').val(e[0].content)
                 $('#addTitle').val(e[0].title)
                 $('#addIdText').val(JSON.parse(bd).content)
                 $('#addDescription').val(e[0].descriptions)
-                e[0].class = JSON.parse(e[0].class)
-                let c = e[0].class
-                for (let j = 0; j < c.length; j++) {
-                    let t = JSON.stringify(c[j]).split(':')[0].split('"')[1]
-                    let str = ''
-                    c.filter(e => {
-                        if (JSON.stringify(e).split(':')[0].split('"')[1] == t) str += ',' + JSON.stringify(e).split(':')[1].split('}')[0].replace(/"/g, '')
-                    })
-                    curClass[t] = str.slice(1)
-                }
+                procClass(e)
                 type = e[0].type
                 $('.type').removeClass('active')
                 $('.type-' + type).addClass('active')
-                getClass(1)
             }
             if (qin.match('!') || replace == 2) $('#qryInput').val(e[0].content)
             str += '</div>'
@@ -543,18 +509,18 @@ function renderResult(bd, e, isId, replace, insAfter) {
     MathJax.typeset()
     return e.length
 }
-
-function doQuery(bd, isId = '', replace = 1, insAfter = -1) {
-    return fetch('/chem/query/' + nameq + isId, {
+async function doQuery(bd, isId = '', replace = 1, insAfter = -1) {
+    const res = await fetch('/chem/query/' + nameq + isId, {
         method: 'POST',
         headers: {
             'Content-type': 'application/json',
         },
         body: bd
-    }).then(res => res.text()).then(e => renderResult(bd, e, isId, replace, insAfter));
+    })
+    const e = await res.text()
+    return renderResult(bd, e, isId, replace, insAfter)
 }
-
-function queryFetch(bd) {
+function doUpload(bd) {
     fetch('/chem/' + modeq + '/' + nameq, {
         method: 'POST',
         headers: {
@@ -569,8 +535,7 @@ function queryFetch(bd) {
         }))
     })
 }
-
-function upload(res) {
+async function upload(res) {
     var bd = {}
     if (nameq == 'eq') {
         $('#balInput').val($('#qryInput').val() ? $('#qryInput').val() : $('#qryInput').attr('placeholder').split('(')[0])
@@ -578,9 +543,8 @@ function upload(res) {
         balance().then(e => {
             if (e[0] == '!') return;
             input();
-            if (!$('#addDescription').val()) return alert('无描述')
-            var resp = confirm(e + (res ? '有相似项,' : '') + '确认上传?')
-            if (!resp) return
+            if (!$('#addDescription').val()) return alert('无描述!')
+            if (!confirm(e + (res ? '有相似项,' : '') + '确认上传?')) return
             $('#qryInput').val(e)
             bd = {
                 content: $('#qryInput').val(),
@@ -591,9 +555,11 @@ function upload(res) {
     } else if (nameq == 'mo') {
         getClass()
         if (!$('#addTitle').val()) return alert('无中文名!')
-        if (!checkIon() && !confirm('电荷总数不为零,确认继续?')) return
-        var resp = confirm((res ? '有相似项,' : '') + '确认上传?')
-        if (!resp) return;
+        if (!checkIon()) {
+            await autoClass()
+            if (!checkIon() && !confirm('电荷总数不为零,确认继续?')) return
+        }
+        if (!confirm((res ? '有相似项,' : '') + '确认上传?')) return;
         bd = {
             content: $('#qryInput').val(),
             title: $('#addTitle').val(),
@@ -606,8 +572,7 @@ function upload(res) {
         getClass()
         if (!$('#addTitle').val()) return alert('无中文名!')
         if (!checkIon(1) && !confirm('电荷总数不符,确认继续?')) return
-        var resp = confirm((res ? '有相似项,' : '') + '确认上传?')
-        if (!resp) return;
+        if (!confirm((res ? '有相似项,' : '') + '确认上传?')) return;
         bd = {
             content: $('#qryInput').val(),
             class: JSON.stringify(filClass()),
@@ -615,9 +580,8 @@ function upload(res) {
         }
     }
     if (modeq == 'upd') bd['id'] = $('#addIdText').val()
-    if (bd.content) queryFetch(JSON.stringify(bd))
+    if (bd.content) doUpload(JSON.stringify(bd))
 }
-
 function query() {
     if (modeq == 'query' || modeq == 'add') {
         var cont = getRegex();
@@ -663,7 +627,7 @@ function getClass(force = 0) {
 }
 function filClass() {
     let fil = []
-    for (j in curClass) {
+    for (j in curCount) {
         if (curClass[j].match(',')) {
             let sp = curClass[j].split(',')
             for (k = 0; k < sp.length; k++) {
@@ -677,10 +641,24 @@ function filClass() {
     }
     return fil
 }
+async function autoClass() {
+    await getIons()
+    for (i in curClass) curClass[i] = ''
+    for (let i = 0; i < ionList.length; i++) {
+        let e = JSON.parse(ionClass[ionList[i].id])
+        for (let j = 0; j < e.length; j++) {
+            for (k in e[j]) {
+                if (curClass[k]) curClass[k] += ',' + e[j][k]
+                else curClass[k] = e[j][k]
+            }
+        }
+    }
+    getClass(1)
+}
 
-var ionList = []
+var ionList = [], ionClass = {}
 
-function getIons() {
+async function getIons() {
     $('.frame')[3].classList.add('active')
     $('.qry-group>label')[2].classList.add('active')
     getClass()
@@ -688,12 +666,11 @@ function getIons() {
     for (let i in curCount) {
         str += '|' + i
     }
-    bd = JSON.stringify({ content: '^(' + str.slice(1) + ')(<|)' })
+    bd = JSON.stringify({ content: '^(' + str.slice(1) + ')+(<|[^a-z])' })
     nameq = 'io'
-    doQuery(bd, '').then(() => {
-        nameq = 'mo'
-        $('#qryInputRender-io').append(' - 点击标签以添加')
-    })
+    await doQuery(bd, '')
+    nameq = 'mo'
+    $('#qryInputRender-io').append(' - 点击标签以添加')
 }
 function updateIon() {
     let str = ''
@@ -702,10 +679,14 @@ function updateIon() {
     for (let i = 0; i < ionList.length; i++) {
         str += `<span class="ion"><span class="label label-ion" onclick="removeIon(${ionList[i].id})">${ionList[i].id}</span> ${renderEquation(ionList[i].v)} x${ionList[i].c}</span>/`
     }
-    str += ' 点击标签以减少'
+    str += ' 点击标签以减少 / <span style="cursor:pointer" class="glyphicon glyphicon-trash" onclick="clearIon()"></span>'
     $('.ionList').append(str)
     if (preview) MathJax.typeset()
 }
+function clearIon() {
+    ionList = []
+    updateIon()
+}
 function addIon(id, v) {
     console.log(ionList)
     if (!ionList.filter(e => {
@@ -781,10 +762,8 @@ function inputId() {
 
 function qryToggleMatch() {
     if (matchMode == 'mole') {
-        $('#qryMatch').html('<span class="glyphicon glyphicon-cog"></span> 匹配元素')
         matchMode = 'elem'
     } else {
-        $('#qryMatch').html('<span class="glyphicon glyphicon-cog"></span> 匹配分子')
         matchMode = 'mole'
     }
 }