From 5c742aba6983f24fe5b9e6ec239958d5c21f6e09 Mon Sep 17 00:00:00 2001 From: tianya Date: Sun, 25 Jun 2023 23:01:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=81=94=E5=8A=A8=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E7=9A=84=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/static/ckeditor/config.js | 2 +- src/static/web/js/enums.js | 239 +++++++++++++++++++++------------- 2 files changed, 147 insertions(+), 94 deletions(-) diff --git a/src/static/ckeditor/config.js b/src/static/ckeditor/config.js index 8ae1be61..8c429e3b 100644 --- a/src/static/ckeditor/config.js +++ b/src/static/ckeditor/config.js @@ -15,7 +15,7 @@ CKEDITOR.editorConfig = function (config) { { name: 'insert', groups: ['insert'] }, ]; config.height = 360; - config.removePlugins = 'exportpdf,div'; + config.removePlugins = 'exportpdf,div,scayt'; config.extraPlugins = 'html5video,dedepagebreak,textindent'; config.removeButtons = 'Save,Styles,Font,NewPage,Print,Preview,Templates,Smiley,About,ShowBlocks,Iframe,Flash,Form,Checkbox,Radio,TextField,Textarea,Select,Button,ImageButton,HiddenField'; }; \ No newline at end of file diff --git a/src/static/web/js/enums.js b/src/static/web/js/enums.js index 124b6548..3f73aa8e 100644 --- a/src/static/web/js/enums.js +++ b/src/static/web/js/enums.js @@ -3,11 +3,11 @@ function selNext(oj, v) { var newobj = oj.options; var selv = parseInt(v); var maxv = parseInt(v) + 500; - while(newobj.length > 0) { + while (newobj.length > 0) { oj.remove(0); } clear(oj); - if (selv==0) { + if (selv == 0) { aOption = document.createElement('OPTION'); aOption.text = '具体地区'; aOption.value = '0'; @@ -20,7 +20,7 @@ function selNext(oj, v) { oj.options.add(aOption); } var str = ''; - for (i=selv+1; i < maxv; i++) { + for (i = selv + 1; i < maxv; i++) { if (!em_nativeplaces[i]) continue; aOption = document.createElement('OPTION'); aOption.text = em_nativeplaces[i]; @@ -32,23 +32,23 @@ function selNext(oj, v) { function ChangeSon() { //由于支持3级联动,所以这里需要对自己改变进行重构 var emname = this.name.replace('_son', ''); - if (document.getElementById(emname+'_sec')) { + if (document.getElementById(emname + '_sec')) { var oj = document.getElementById(emname + '_sec'); } else { - var oj = document.createElement('select'); + var oj = document.createElement('select'); oj.name = emname + '_sec'; - oj.id = emname + '_sec'; + oj.id = emname + '_sec'; oj.className = "form-control admin-input-sm mr-2"; oj.onchange = ChangeSec; } var v = this.options[this.selectedIndex].value; - document.getElementById('hidden_'+emname).value = v; + document.getElementById('hidden_' + emname).value = v; var newobj = oj.options; - var selarr = eval('em_'+emname+'s'); + var selarr = eval('em_' + emname + 's'); var selv = parseInt(v); var maxv = parseInt(v) + 0.5; i = 0; - while(newobj && newobj.length > 0) oj.remove(0); + while (newobj && newobj.length > 0) oj.remove(0); clear(oj); if (selv == 0) { aOption = document.createElement('OPTION'); @@ -63,7 +63,7 @@ function ChangeSon() { oj.options.add(aOption); } var str = ''; - var j=0; + var j = 0; for (i = selv + 0.001; i < maxv; i = FloatAdd(i, 0.001)) { if (!selarr[i]) continue; aOption = document.createElement('OPTION'); @@ -72,40 +72,47 @@ function ChangeSon() { oj.options.add(aOption); j++; } - if (j > 0) document.getElementById('span_'+emname+'_sec').appendChild(oj); - else document.getElementById('span_'+emname+'_sec').innerHTML = ""; + if (j > 0) { + document.getElementById('span_' + emname + '_sec').appendChild(oj); + document.getElementById('span_' + emname + '_sec').style.display = "initial" + } else { + document.getElementById('span_' + emname + '_sec').innerHTML = ""; + } } //改变第三级的事件 function ChangeSec() { var emname = this.name.replace('_sec', ''); - var topSelObj = document.getElementById(emname+'_top'); - if (this.options[this.selectedIndex].value==0) { - document.getElementById('hidden_'+emname).value = topSelObj.options[topSelObj.selectedIndex].value; + var topSelObj = document.getElementById(emname + '_top'); + if (this.options[this.selectedIndex].value == 0) { + document.getElementById('hidden_' + emname).value = topSelObj.options[topSelObj.selectedIndex].value; } else { - document.getElementById('hidden_'+emname).value = this.options[this.selectedIndex].value; + document.getElementById('hidden_' + emname).value = this.options[this.selectedIndex].value; } } //顶级类改变事件 function selNextSon() { var emname = this.name.replace('_top', ''); - if (document.getElementById(emname+'_son')) { + if (document.getElementById(emname + '_son')) { var oj = document.getElementById(emname + '_son'); } else { - var oj = document.createElement('select'); + var oj = document.createElement('select'); oj.name = emname + '_son'; - oj.id = emname + '_son'; + oj.id = emname + '_son'; oj.className = "form-control admin-input-sm mr-2"; oj.onchange = ChangeSon; } var v = this.options[this.selectedIndex].value; - document.getElementById('hidden_'+emname).value = v; + document.getElementById('hidden_' + emname).value = v; + if (v < 500) { + return + } var newobj = oj.options; - var selarr = eval('em_'+emname+'s'); + var selarr = eval('em_' + emname + 's'); var selv = parseInt(v); var maxv = parseInt(v) + 500; - while(newobj && newobj.length > 0) oj.remove(0); + while (newobj && newobj.length > 0) oj.remove(0); clear(oj); - if (selv==0) { + if (selv == 0) { aOption = document.createElement('OPTION'); aOption.text = '请选择..'; aOption.value = '0'; @@ -118,14 +125,22 @@ function selNextSon() { oj.options.add(aOption); } var str = ''; - for (i=selv+1; i < maxv; i++) { + var count = 0; + for (i = selv + 1; i < maxv; i++) { if (!selarr[i]) continue; aOption = document.createElement('OPTION'); aOption.text = selarr[i]; aOption.value = i; oj.options.add(aOption); + count = count + 1; } - document.getElementById('span_'+emname+'_son').appendChild(oj); + if (count > 0) { + document.getElementById('span_' + emname + '_son').style.display = "initial" + document.getElementById('span_' + emname + '_son').appendChild(oj); + } else { + document.getElementById('span_' + emname + '_son').style.display = "none" + } + } //根据数组生成多级联动菜单 function MakeTopSelect(emname, selvalue) { @@ -133,10 +148,10 @@ function MakeTopSelect(emname, selvalue) { var aOption = null; var selObj = document.createElement("select"); selObj.name = emname + '_top'; - selObj.id = emname + '_top'; + selObj.id = emname + '_top'; selObj.className = "form-control admin-input-sm mr-2"; selObj.onchange = selNextSon; - var selarr = eval('em_'+emname+'s'); + var selarr = eval('em_' + emname + 's'); var topvalue = 0; var sonvalue = 0; var secvalue = 0; @@ -144,54 +159,25 @@ function MakeTopSelect(emname, selvalue) { aOption.text = '请选择..'; aOption.value = 0; selObj.options.add(aOption); - if (selvalue % 500 == 0 ) { - topvalue = selvalue; - } - //如果是小数,则依次取出顶级数值,二级数值以及三级数值 - else if (!!(selvalue % 1)) { - secvalue = selvalue; - sonvalue = Math.floor(selvalue); - topvalue = sonvalue - (sonvalue % 500); - //alert(secvalue); - } else { - sonvalue = selvalue; - topvalue = selvalue - (selvalue % 500); - } - for (i = 500; i <= selarr.length; i += 500) { - if (!selarr[i]) continue; - aOption = document.createElement('OPTION'); - if (i == topvalue) { - aOption = document.createElement('OPTION'); - aOption.text = selarr[i]; - aOption.value = i; - selObj.options.add(aOption); - aOption.selected = true; + var fkey = Object.keys(selarr)[0]; + if (fkey >= 500) { + if (selvalue % 500 == 0) { + topvalue = selvalue; + } + //如果是小数,则依次取出顶级数值,二级数值以及三级数值 + else if (!!(selvalue % 1)) { + secvalue = selvalue; + sonvalue = Math.floor(selvalue); + topvalue = sonvalue - (sonvalue % 500); + //alert(secvalue); } else { - aOption = document.createElement('OPTION'); - aOption.text = selarr[i]; - aOption.value = i; - selObj.options.add(aOption); + sonvalue = selvalue; + topvalue = selvalue - (selvalue % 500); } - } - document.getElementById('span_'+emname).appendChild(selObj); - //如果子类存在值,创建子类 - selObj = document.createElement("select"); - selObj.name = emname + '_son'; - selObj.id = emname + '_son'; - selObj.className = "form-control admin-input-sm mr-2"; - selObj.onchange = ChangeSon; - aOption = document.createElement('OPTION'); - aOption.text = '请选择..'; - aOption.value = 0; - selObj.options.add(aOption); - //当大类有值输出子类 - if (topvalue > 0) { - var selv = topvalue; - var maxv = parseInt(topvalue) + 500; - for (i = selv + 1; i < maxv; i++) { + for (i = 500; i <= selarr.length; i += 500) { if (!selarr[i]) continue; aOption = document.createElement('OPTION'); - if (i == sonvalue) { + if (i == topvalue) { aOption = document.createElement('OPTION'); aOption.text = selarr[i]; aOption.value = i; @@ -204,26 +190,92 @@ function MakeTopSelect(emname, selvalue) { selObj.options.add(aOption); } } - } - document.getElementById('span_'+emname+'_son').appendChild(selObj); - //若存在第三级则创建 - if (secvalue > 0) { + + document.getElementById('span_' + emname).appendChild(selObj); + //如果子类存在值,创建子类 selObj = document.createElement("select"); - selObj.name = emname + '_sec'; - selObj.id = emname + '_sec'; - selObj.onchange = ChangeSec; + selObj.name = emname + '_son'; + selObj.id = emname + '_son'; + selObj.className = "form-control admin-input-sm mr-2"; + selObj.onchange = ChangeSon; aOption = document.createElement('OPTION'); aOption.text = '请选择..'; - selObj.className = "form-control admin-input-sm mr-2"; aOption.value = 0; selObj.options.add(aOption); - var selv = sonvalue; - var maxv = parseInt(sonvalue) + 0.5; - i = 0; - for (i = selv + 0.001; i < maxv; i = FloatAdd(i, 0.001)) { + //当大类有值输出子类 + if (topvalue > 0) { + var selv = topvalue; + var maxv = parseInt(topvalue) + 500; + var count = 0; + for (i = selv + 1; i < maxv; i++) { + if (!selarr[i]) continue; + aOption = document.createElement('OPTION'); + if (i == sonvalue) { + aOption = document.createElement('OPTION'); + aOption.text = selarr[i]; + aOption.value = i; + selObj.options.add(aOption); + aOption.selected = true; + } else { + aOption = document.createElement('OPTION'); + aOption.text = selarr[i]; + aOption.value = i; + selObj.options.add(aOption); + } + count = count + 1; + } + } + if (count > 0) { + document.getElementById('span_' + emname + '_son').style.display = "initial"; + document.getElementById('span_' + emname + '_son').appendChild(selObj); + } else { + document.getElementById('span_' + emname + '_son').style.display = "none"; + } + + //若存在第三级则创建 + if (secvalue > 0) { + selObj = document.createElement("select"); + selObj.name = emname + '_sec'; + selObj.id = emname + '_sec'; + selObj.onchange = ChangeSec; + aOption = document.createElement('OPTION'); + aOption.text = '请选择..'; + selObj.className = "form-control admin-input-sm mr-2"; + aOption.value = 0; + selObj.options.add(aOption); + var selv = sonvalue; + var maxv = parseInt(sonvalue) + 0.5; + i = 0; + var count = 0; + for (i = selv + 0.001; i < maxv; i = FloatAdd(i, 0.001)) { + if (!selarr[i]) continue; + aOption = document.createElement('OPTION'); + if (i == secvalue) { + aOption = document.createElement('OPTION'); + aOption.text = selarr[i]; + aOption.value = i; + selObj.options.add(aOption); + aOption.selected = true; + } else { + aOption = document.createElement('OPTION'); + aOption.text = selarr[i]; + aOption.value = i; + selObj.options.add(aOption); + } + count = count + 1; + } + } + if (count > 0) { + document.getElementById('span_' + emname + '_sec').style.display = "initial"; + document.getElementById('span_' + emname + '_sec').appendChild(selObj); + } else { + document.getElementById('span_' + emname + '_sec').style.display = "none"; + } + } else { + for (i = 0; i <= selarr.length; i += 1) { if (!selarr[i]) continue; aOption = document.createElement('OPTION'); - if (i == secvalue) { + if (i == selvalue) { aOption = document.createElement('OPTION'); aOption.text = selarr[i]; aOption.value = i; @@ -236,21 +288,22 @@ function MakeTopSelect(emname, selvalue) { selObj.options.add(aOption); } } + document.getElementById('span_' + emname).appendChild(selObj); } - document.getElementById('span_'+emname+'_sec').appendChild(selObj); + } //两个小数相加进度计算 function FloatAdd(arg1, arg2) { - var r1,r2,m; - try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0} - try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0} - m=Math.pow(10,Math.max(r1,r2)) - return (arg1*m+arg2*m)/m + var r1, r2, m; + try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 } + try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 } + m = Math.pow(10, Math.max(r1, r2)) + return (arg1 * m + arg2 * m) / m } //清除旧对象 function clear(o) { - l=o.length; - for (i = 0; i< l; i++) { - o.options[1]=null; + l = o.length; + for (i = 0; i < l; i++) { + o.options[1] = null; } } \ No newline at end of file