217 lines
7.5 KiB
Plaintext
217 lines
7.5 KiB
Plaintext
|
|
let form, layer, util, tag, active = null;
|
|||
|
|
function setParams(teamLabelIds, teamLabelNames) {
|
|||
|
|
layui.config({
|
|||
|
|
base: "../../../js/layui-v2.9.2/layui/modules/", //此处路径请自行处理, 可以使用绝对路径
|
|||
|
|
}).extend({
|
|||
|
|
tag: 'tag'
|
|||
|
|
}).use(['layer', 'form', 'util', 'tag'], function () {
|
|||
|
|
layer = layui.layer;
|
|||
|
|
form = layui.form;
|
|||
|
|
forutilm = layui.util;
|
|||
|
|
tag = layui.tag;
|
|||
|
|
form.render();
|
|||
|
|
// 加载班组标签数据
|
|||
|
|
loadTeamLabelData();
|
|||
|
|
// 加载班组标签缓存数据
|
|||
|
|
loadHcTeamLabelData(teamLabelIds, teamLabelNames);
|
|||
|
|
//全局设置
|
|||
|
|
tag.set({
|
|||
|
|
skin: 'layui-btn layui-btn-primary layui-btn-sm layui-btn-radius',//标签样式
|
|||
|
|
tagText: '添加标签' //标签添加按钮提示文本
|
|||
|
|
});
|
|||
|
|
// 触发事件
|
|||
|
|
active = {
|
|||
|
|
// 新增demo2标签
|
|||
|
|
tagAdd: function (nameValue, index) {
|
|||
|
|
tag.add('demo2', {
|
|||
|
|
text: nameValue,
|
|||
|
|
id: index
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
// 删除demo2标签
|
|||
|
|
tagDelete: function (index) {
|
|||
|
|
tag.delete('demo2', index);
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
// 添加demo标签
|
|||
|
|
tag.on('add(demo)', function (data) {
|
|||
|
|
let valueName = data.valueName;
|
|||
|
|
let rex = /^[\u4e00-\u9fa5]{0,}$/;
|
|||
|
|
if (!rex.test(valueName) && valueName.length < 50) {
|
|||
|
|
layer.msg('标签只能输入中文且少于50字符', { icon: 7 });
|
|||
|
|
return false;
|
|||
|
|
} else {
|
|||
|
|
return addTeamLabelData({
|
|||
|
|
'labelName': valueName
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
// 删除demo标签后删除demo2标签
|
|||
|
|
tag.on('delete(demo)', function (data) {
|
|||
|
|
let innerText = data.elem[0].innerText;
|
|||
|
|
if (innerText) {
|
|||
|
|
innerText = innerText.replace('ဆ添加标签', '');
|
|||
|
|
let innerTextArr = innerText.split('ဆ');
|
|||
|
|
let nameValue = innerTextArr[data.index];
|
|||
|
|
let flag = false, layId = null;
|
|||
|
|
$('#demo2 button').each(function () {
|
|||
|
|
if (replaceChinese($(this).html()) === nameValue) {
|
|||
|
|
flag = true;
|
|||
|
|
layId = $(this).attr('lay-id');
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
let result = delTeamLabelData({ 'labelName': nameValue });
|
|||
|
|
if (!result) {
|
|||
|
|
return result;
|
|||
|
|
} else if (result && flag) {
|
|||
|
|
active.tagDelete(layId);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
// 点击demo标签添加demo2标签
|
|||
|
|
tag.on('click(demo)', function () {
|
|||
|
|
let name = replaceChinese($(this).html());
|
|||
|
|
let index = $(this).attr('lay-id');
|
|||
|
|
let flag = false;
|
|||
|
|
$('#demo2 button').each(function () {
|
|||
|
|
if (replaceChinese($(this).html()) === name) {
|
|||
|
|
flag = true
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
if (flag) {
|
|||
|
|
return layer.msg('选中标签已存在', { icon: 7 });
|
|||
|
|
} else {
|
|||
|
|
active.tagAdd(name, index);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 保留中文汉字
|
|||
|
|
function replaceChinese(value) {
|
|||
|
|
let str = value.match(/[\u4e00-\u9fa5]/g).join("");
|
|||
|
|
return str;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 保存标签
|
|||
|
|
function addTeamLabelData(params) {
|
|||
|
|
let loadingMsg = layer.msg('数据上传中,请稍候...', { icon: 16, scrollbar: false, time: 0 });
|
|||
|
|
let flag = false;
|
|||
|
|
let url = dataUrl + 'proteam/pot/team/addTeamLabel';
|
|||
|
|
ajaxRequest(url, "POST", params, false, function () {
|
|||
|
|
}, function (result) {
|
|||
|
|
layer.close(loadingMsg); // 关闭提示层
|
|||
|
|
if (result.code === 200) {
|
|||
|
|
layer.msg(result.msg, { icon: 1 });
|
|||
|
|
flag = true;
|
|||
|
|
} else if (result.code === 500) {
|
|||
|
|
layer.alert(result.msg, { icon: 2, move: false })
|
|||
|
|
} else if (result.code === 401) {
|
|||
|
|
logout(1);
|
|||
|
|
}
|
|||
|
|
}, function (xhr) {
|
|||
|
|
layer.close(loadingMsg); // 关闭提示层
|
|||
|
|
});
|
|||
|
|
return flag;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 获取班组评价标签
|
|||
|
|
function loadTeamLabelData() {
|
|||
|
|
function setTeamLabel(list) {
|
|||
|
|
if (list && list.length > 0) {
|
|||
|
|
let html = '';
|
|||
|
|
$.each(list, function (index, item) {
|
|||
|
|
html += '<button lay-id="' + item.id + '" type="button" class="tag-item">' + item.labelName + '</button>'
|
|||
|
|
})
|
|||
|
|
$('#demo').empty().append(html);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
let loadingMsg = layer.msg('数据加载中,请稍候...', { icon: 16, scrollbar: false, time: 0 });
|
|||
|
|
let url = dataUrl + 'proteam/pot/team/getTeamLabel';
|
|||
|
|
ajaxRequest(url, "POST", null, false, function () {
|
|||
|
|
}, function (result) {
|
|||
|
|
layer.close(loadingMsg); // 关闭提示层
|
|||
|
|
if (result.code === 200) {
|
|||
|
|
setTeamLabel(result.data);
|
|||
|
|
} else if (result.code === 500) {
|
|||
|
|
} else if (result.code === 401) {
|
|||
|
|
logout(1);
|
|||
|
|
}
|
|||
|
|
}, function (xhr) {
|
|||
|
|
layer.close(loadingMsg); // 关闭提示层
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 加载班组标签缓存数据
|
|||
|
|
function loadHcTeamLabelData(teamLabelIds, teamLabelNames) {
|
|||
|
|
if (teamLabelIds && teamLabelNames) {
|
|||
|
|
let teamLabelIdsArr = teamLabelIds.split(',');
|
|||
|
|
let teamLabelNamesArr = teamLabelNames.split(',');
|
|||
|
|
let html = '';
|
|||
|
|
for (let i = 0; i < teamLabelIdsArr.length; i++) {
|
|||
|
|
html += '<button lay-id="' + teamLabelIdsArr[i] + '" type="button" class="tag-item">' + teamLabelNamesArr[i] + '</button>'
|
|||
|
|
}
|
|||
|
|
$('#demo2').empty().append(html);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 删除标签
|
|||
|
|
function delTeamLabelData(params) {
|
|||
|
|
let flag = false;
|
|||
|
|
let loadingMsg = layer.msg('数据删除中,请稍候...', { icon: 16, scrollbar: false, time: 0 });
|
|||
|
|
let url = dataUrl + 'proteam/pot/team/delTeamLabel';
|
|||
|
|
ajaxRequest(url, "POST", params, false, function () {
|
|||
|
|
}, function (result) {
|
|||
|
|
layer.close(loadingMsg); // 关闭提示层
|
|||
|
|
if (result.code === 200) {
|
|||
|
|
layer.msg(result.msg, { icon: 1 });
|
|||
|
|
flag = true;
|
|||
|
|
} else if (result.code === 500) {
|
|||
|
|
layer.alert(result.msg, { icon: 2, move: false })
|
|||
|
|
} else if (result.code === 401) {
|
|||
|
|
logout(1);
|
|||
|
|
}
|
|||
|
|
}, function (xhr) {
|
|||
|
|
layer.close(loadingMsg); // 关闭提示层
|
|||
|
|
});
|
|||
|
|
return flag;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 暂存标签数据,并返回上一页面
|
|||
|
|
function saveLabelData() {
|
|||
|
|
let labelNameArr = [];
|
|||
|
|
$('#demo2 button').each(function () {
|
|||
|
|
labelNameArr.push(replaceChinese($(this).html()))
|
|||
|
|
})
|
|||
|
|
let teamLabelNames = '', teamLabelIds = '';
|
|||
|
|
// 保存后,查询班组标签真实ID
|
|||
|
|
function getTeamLabelIds() {
|
|||
|
|
let params = { 'labelName': labelNameArr.toString() };
|
|||
|
|
let url = dataUrl + 'proteam/pot/team/getTeamLabelIds';
|
|||
|
|
ajaxRequest(url, "POST", params, false, function () {
|
|||
|
|
}, function (result) {
|
|||
|
|
if (result.code === 200) {
|
|||
|
|
if (result.data.nameList && result.data.valueList) {
|
|||
|
|
teamLabelNames = result.data.nameList.toString();
|
|||
|
|
teamLabelIds = result.data.valueList.toString();
|
|||
|
|
}
|
|||
|
|
} else if (result.code === 500) {
|
|||
|
|
} else if (result.code === 401) {
|
|||
|
|
logout(1);
|
|||
|
|
}
|
|||
|
|
}, function (xhr) {
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
getTeamLabelIds();
|
|||
|
|
parent.setTeamLabelData(teamLabelIds, teamLabelNames);
|
|||
|
|
closePage();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
function closePage() {
|
|||
|
|
let index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
|
|||
|
|
parent.layer.close(index); //再执行关闭
|
|||
|
|
}
|