Browse Source

修复联动编辑的错误

tags/6.2.10
tianya 10 months ago
parent
commit
5c742aba69
2 changed files with 147 additions and 94 deletions
  1. +1
    -1
      src/static/ckeditor/config.js
  2. +146
    -93
      src/static/web/js/enums.js

+ 1
- 1
src/static/ckeditor/config.js View File

@@ -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';
};

+ 146
- 93
src/static/web/js/enums.js View File

@@ -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;
}
}

Loading…
Cancel
Save