master
嘉祥 詹 2024-07-29 01:26:27 +08:00
parent 5f4530f9ad
commit 5f3f787dcf
4 changed files with 550 additions and 47 deletions

View File

@ -25,6 +25,222 @@ namespace QuotationMaker.Controllers
} }
[Route("addGroupUser")]
public ActionResult AddGroupUser(IFormCollection obj) {
groupUserListResult ret = new groupUserListResult();
authToken token = new authToken(this._httpContextAccessor);
if (token.user_isLogin == false)
{
HttpContext.Response.Cookies.Delete("token_key");
ret.ret = "no";
ret.err_code = "99999";
ret.message = "非登入狀態!";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
if (token.user_perm != "system")
{
ret.ret = "no";
ret.err_code = "90001";
ret.message = "此帳號無此api使用權限!";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
string dept_uid = obj["dept_uid"].ToString();
string users_json_str = obj["users_json"].ToString();
string group_uid = obj["group_uid"].ToString();
group objGroup = conn.QueryFirstOrDefault<group>("select * from [group] where group_uid = @group_uid", new { group_uid = group_uid });
if (objGroup == null)
{
ret.ret = "no";
ret.err_code = "0003";
ret.message = "無此group_uid的群組資料!";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
dynamic usersJsonObj;
try
{
usersJsonObj = JsonConvert.DeserializeObject(users_json_str);
}
catch (Exception ex)
{
ret.ret = "no";
ret.err_code = "0003";
ret.message = "使用者列表資料錯誤 users json error," + ex.Message;
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
string nowrite_msg = "";
int userCount = 0;
foreach (dynamic item in usersJsonObj)
{
string user_uid = item.user_uid;
string user_name = item.user_name;
groupUser chk_user = conn.QueryFirstOrDefault<groupUser>("select * from groupUser where user_uid = @user_uid and dept_uid = @dept_uid", new { user_uid = user_uid, dept_uid = dept_uid });
if (chk_user == null)
{
groupUser newGU = new groupUser();
newGU.group_uid = group_uid;
newGU.user_uid = user_uid;
newGU.groupUser_uid = GlobalClass.CreateRandomCode(16);
newGU.dept_uid = dept_uid;
conn.Insert<groupUser>(newGU);
user objUser = new user();
objUser.user_uid=user_uid;
objUser.user_name=user_name;
ret.users.Add(objUser);
userCount++;
}
else
{
nowrite_msg += user_name + " 此用戶已經是其他群組的成員,故此員取消加入!\n";
}
}
ret.message = nowrite_msg;
ret.ret = "yes";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
[Route("delGroup")]
public ActionResult DelGroup(IFormCollection obj) {
signinResult ret = new signinResult();
authToken token = new authToken(this._httpContextAccessor);
if (token.user_isLogin == false)
{
HttpContext.Response.Cookies.Delete("token_key");
ret.ret = "no";
ret.err_code = "99999";
ret.message = "非登入狀態!";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
if (token.user_perm != "system")
{
ret.ret = "no";
ret.err_code = "90001";
ret.message = "此帳號無此api使用權限!";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
string group_uid = obj["group_uid"].ToString();
group objGroup = conn.QueryFirstOrDefault<group>("select * from [group] where group_uid = @group_uid", new { group_uid = group_uid });
if (objGroup == null)
{
ret.ret = "no";
ret.err_code = "0003";
ret.message = "無此group_uid的群組資料!";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
conn.Execute("delete groupUser where group_uid = @group_uid", new { group_uid = group_uid});
conn.Delete(objGroup);
ret.ret = "yes";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
[Route("editGroupName")]
public ActionResult EditGroupName(IFormCollection obj) {
signinResult ret = new signinResult();
authToken token = new authToken(this._httpContextAccessor);
if (token.user_isLogin == false)
{
HttpContext.Response.Cookies.Delete("token_key");
ret.ret = "no";
ret.err_code = "99999";
ret.message = "非登入狀態!";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
if (token.user_perm != "system")
{
ret.ret = "no";
ret.err_code = "90001";
ret.message = "此帳號無此api使用權限!";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
string group_name = obj["group_name"].ToString();
string group_uid = obj["group_uid"].ToString();
group objGroup = conn.QueryFirstOrDefault<group>("select * from [group] where group_uid = @group_uid", new { group_uid = group_uid });
if (objGroup == null) {
ret.ret = "no";
ret.err_code = "0003";
ret.message = "無此group_uid的群組資料!";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
objGroup.group_name = group_name;
conn.Update(objGroup);
ret.ret = "yes";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
[Route("delGroupUser")]
public ActionResult DelGroupUser(IFormCollection obj) {
signinResult ret = new signinResult();
authToken token = new authToken(this._httpContextAccessor);
if (token.user_isLogin == false)
{
HttpContext.Response.Cookies.Delete("token_key");
ret.ret = "no";
ret.err_code = "99999";
ret.message = "非登入狀態!";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
if (token.user_perm != "system")
{
ret.ret = "no";
ret.err_code = "90001";
ret.message = "此帳號無此api使用權限!";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
string dept_uid = obj["dept_uid"].ToString();
string user_uid = obj["user_uid"].ToString();
string group_uid = obj["group_uid"].ToString();
groupUser objUser = conn.QueryFirstOrDefault<groupUser>("select * from groupUser where dept_uid = @dept_uid and user_uid = @user_uid and group_uid = @group_uid ", new { dept_uid = dept_uid, user_uid = user_uid, group_uid = group_uid });
if (objUser == null) {
ret.ret = "no";
ret.err_code = "0002";
ret.message = "此群組無此帳號可以刪除!";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
conn.Delete(objUser);
ret.ret = "yes";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
[Route("addNewGroup")] [Route("addNewGroup")]
public ActionResult AddNewGroup(IFormCollection obj) { public ActionResult AddNewGroup(IFormCollection obj) {
groupListResult ret = new groupListResult(); groupListResult ret = new groupListResult();
@ -176,7 +392,13 @@ namespace QuotationMaker.Controllers
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8"); return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
} }
ret.depts = conn.Query<depts>("select * from depts order by dept_order ").ToList(); string sqlString = "select * from depts order by dept_order";
if (token.user_id != GlobalClass.appsettings("Admin:id")) {
sqlString = "select * from depts where dept_uid in (select dept_uid from groupUser where user_uid = '" + token.user_uid + "' ) order by dept_order ";
}
ret.depts = conn.Query<depts>(sqlString).ToList();
ret.ret = "yes"; ret.ret = "yes";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8"); return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
} }
@ -213,7 +435,7 @@ namespace QuotationMaker.Controllers
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8"); return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
} }
List<group> groupList = conn.Query<group>("select * from group where dept_uid = @dept_uid", new { dept_uid = dept_uid}).ToList(); List<group> groupList = conn.Query<group>("select * from [group] where dept_uid = @dept_uid", new { dept_uid = dept_uid}).ToList();
foreach (group objGroup in groupList) foreach (group objGroup in groupList)
{ {

View File

@ -12,7 +12,13 @@ public class resultClass
public List<depts> depts = new List<depts>(); public List<depts> depts = new List<depts>();
} }
public class groupUserListResult
{
public string ret = "no";
public string err_code = "0000";
public string message = "";
public List<user> users = new List<user>();
}
public class groupListResult public class groupListResult
{ {

View File

@ -58,36 +58,7 @@
<!-- grid row --> <!-- grid row -->
<div id="group_div" class="row"> <div id="group_div" class="row">
<!-- grid column --> <!-- grid column -->
<div class="col-lg-6">
<!-- .card -->
<div class="card card-fluid">
<!-- .nestable -->
<div class="card-header border-bottom-0 btn-group">
<div>Footer Menus</div>
<div class="dd-nodrag btn-group ml-auto">
<button class="btn btn-sm btn-secondary">Edit</button> <button class="btn btn-sm btn-secondary"><i class="far fa-trash-alt"></i></button>
</div>
</div>
<div id="nestable01" class="dd" data-toggle="sortable" data-group="1" data-max-depth="0">
<!-- .dd-list -->
<ol class="dd-list">
<li class="dd-item dd-nodrag" data-id="1">
<div class="dd-handle">
<span class="dd-nodrag drag-indicator"></span>
<div> Tracking Order </div>
<div class="dd-nodrag btn-group ml-auto">
<button class="btn btn-sm btn-secondary">Edit</button> <button class="btn btn-sm btn-secondary"><i class="far fa-trash-alt"></i></button>
</div>
</div>
</li>
</ol><!-- /.dd-list -->
</div><!-- /.nestable -->
<!-- .card-footer -->
<div class="card-footer">
<a href="#" class="card-footer-item justify-content-start"><span><i class="fa fa-plus-circle mr-1"></i> Add Menu Item</span></a>
</div><!-- /.card-footer -->
</div><!-- /.card -->
</div><!-- /grid column -->
</div><!-- / grid row --> </div><!-- / grid row -->
</div><!-- /.page-section --> </div><!-- /.page-section -->
</div><!-- /.page-inner --> </div><!-- /.page-inner -->
@ -149,7 +120,7 @@
<!-- .modal --> <!-- .modal -->
<form id="clientMemberForm" name="clientMemberForm"> <form id="clientGroupNameForm" name="clientGroupNameForm">
<div class="modal fade" id="memberModal" tabindex="-1" role="dialog" aria-labelledby="optionItemModalLabel" data-backdrop="static" <div class="modal fade" id="memberModal" tabindex="-1" role="dialog" aria-labelledby="optionItemModalLabel" data-backdrop="static"
data-keyboard="false" aria-hidden="true"> data-keyboard="false" aria-hidden="true">
<!-- .modal-dialog --> <!-- .modal-dialog -->
@ -192,3 +163,80 @@
</div><!-- /.modal-dialog --> </div><!-- /.modal-dialog -->
</div> </div>
</form><!-- /.modal --> </form><!-- /.modal -->
<!-- .modal -->
<form id="clientGroupNameEditForm" name="clientGroupNameEditForm">
<div class="modal fade" id="clientGroupNameEditModal" tabindex="-1" role="dialog" aria-labelledby="clientGroupNameEditModalLabel" data-backdrop="static"
data-keyboard="false" aria-hidden="true">
<!-- .modal-dialog -->
<div class="modal-dialog" role="document">
<!-- .modal-content -->
<div class="modal-content">
<!-- .modal-header -->
<div class="modal-header">
<h6 id="clientGroupNameEditModalLabel" class="modal-title inline-editable">
<span class="sr-only"></span> <input type="text" class="form-control form-control-lg" value="" placeholder="修改群組名稱" required="">
</h6>
</div><!-- /.modal-header -->
<!-- .modal-body -->
<div class="modal-body">
<input type="hidden" id="client_groupname_group_uid" />
<!-- .form-group -->
<div class="form-group">
<div class="form-label-group">
<input type="text" id="clientGroupName" class="form-control" value="" placeholder="群組名稱"> <label for="clientGroupName">群組名稱</label>
</div>
</div><!-- /.form-group -->
</div><!-- /.modal-body -->
<!-- .modal-footer -->
<div class="modal-footer">
<button type="button" id="groupNameEditBtn" class="btn btn-primary">儲存</button> <button type="button" class="btn btn-light" data-dismiss="modal">取消</button>
</div><!-- /.modal-footer -->
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div>
</form><!-- /.modal -->
<!-- .modal -->
<form id="clientGroupNewUserForm" name="clientGroupNewUserForm">
<div class="modal fade" id="groupNewUserModal" tabindex="-1" role="dialog" aria-labelledby="groupNewUserModalLabel" data-backdrop="static"
data-keyboard="false" aria-hidden="true">
<!-- .modal-dialog -->
<div class="modal-dialog" role="document">
<!-- .modal-content -->
<div class="modal-content">
<!-- .modal-header -->
<div class="modal-header">
<h6 id="optionItemModalLabel" class="modal-title inline-editable">
<span class="sr-only">成員列表</span> <input id="member_content" type="text" class="form-control form-control-lg" value="" placeholder="成員列表" readonly="readonly " required="">
</h6>
</div><!-- /.modal-header -->
<!-- .modal-body -->
<div class="modal-body">
<input type="hidden" id="client_group_method" />
<input type="hidden" id="client_group_group_uid" />
<input type="hidden" id="client_group_dept_uid" />
<!-- grid row -->
<div class="row">
<!-- grid column -->
<div class="col-lg-12">
<!-- .card -->
<div class="card card-fluid">
<!-- .list-group -->
<div class="list-group list-group-flush list-group-bordered" id="lastgroup_memberlist">
<div class="list-group-header"> 勾選要加入群組的成員 </div>
<label class="list-group-item custom-control custom-checkbox mb-0"><input name="listcheckbox" type="checkbox" class="custom-control-input" checked> <span class="custom-control-label">List checkbox #1</span></label>
<label class="list-group-item custom-control custom-checkbox mb-0"><input name="listcheckbox" type="checkbox" class="custom-control-input" checked> <span class="custom-control-label">List checkbox #2</span></label>
</div><!-- /.list-group -->
</div><!-- /.card -->
</div>
</div>
</div><!-- /.modal-body -->
<!-- .modal-footer -->
<div class="modal-footer">
<button type="button" id="groupMemberAddSaveBtn" class="btn btn-primary">加入</button> <button type="button" class="btn btn-light" data-dismiss="modal">Close</button>
</div><!-- /.modal-footer -->
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div>
</form><!-- /.modal -->

View File

@ -1,7 +1,7 @@
 
var tmpNestableObj; var tmpNestableObj;
var tmpNestableItem; var tmpNestableItem;
var tmpGroupNameItem;
$(document).ready(function () { $(document).ready(function () {
deptList(); deptList();
@ -101,8 +101,110 @@ $(document).ready(function () {
} }
}); });
}); });
$('#groupMemberAddSaveBtn').on('click', function () {
var userArray = [];
var dept_uid = $('#client_group_dept_uid').val();
var group_uid = $('#client_group_group_uid').val();
$.each($('input[type=checkbox][name="memberChkList2[]"]:checked'), function () {
var item = {
user_uid: $(this).val(),
user_name: $(this).parent().find('span').eq(0).text().trim()
}
userArray.push(item);
});
if (userArray.length == 0) {
alert('沒有勾選欲加入群組的成員!');
return;
}
var users_json = JSON.stringify(userArray);
var formData = {
dept_uid: dept_uid,
group_uid: group_uid,
users_json: users_json
}
$.ajax({
url: "/AuthApi/addGroupUser",
type: "post",
data: formData,
success: function (data, textStatus, jqXHR) {
if (data.ret == "yes") {
var obj = data.users;
$.each(obj, function (index, item) {
$('#' + group_uid + ' .dd-list').append(optionItemHtml(item));
});
if (data.message != '') {
alert(data.message);
}
$('#groupNewUserModal').modal('toggle');
} else {
alert(data.message);
if (data.err_code == "99999") {
location.href = "/Root/Login";
}
}
},
error: function (jqXHR, textStatus, errorThrown) {
alert('網路或伺服器發生錯誤,請稍後重試!');
}
});
});
$('#groupNameEditBtn').on('click', function () {
var group_uid = $('#client_groupname_group_uid').val();
var group_name = $('#clientGroupName').val().trim();
if (group_name == '') {
alert('群組名稱不得為空白!');
return;
}
var formData = {
group_uid: group_uid,
group_name: group_name
}
$.ajax({
url: "/AuthApi/editGroupName",
type: "post",
data: formData,
success: function (data, textStatus, jqXHR) {
if (data.ret == "yes") {
tmpGroupNameItem.text(group_name);
$('#clientGroupNameEditModal').modal('toggle');
} else {
alert(data.message);
if (data.err_code == "99999") {
location.href = "/Root/Login";
}
}
},
error: function (jqXHR, textStatus, errorThrown) {
alert('網路或伺服器發生錯誤,請稍後重試!');
}
});
});
}); });
function newMemberClick(dept_uid) { function newMemberClick(dept_uid) {
var formData = { var formData = {
dept_uid: dept_uid dept_uid: dept_uid
@ -163,16 +265,13 @@ function groupList() {
data: formData, data: formData,
success: function (data, textStatus, jqXHR) { success: function (data, textStatus, jqXHR) {
if (data.ret == "yes") { if (data.ret == "yes") {
$('#group_div').html(''); $('#group_div').children().remove();
var obj = data.groups; var obj = data.groups;
var items = ""; var items = "";
$.each(obj, function (i, item) { $.each(obj, function (i, item) {
$('#group_div').append(cardHtml(item));
$('#' + item.group_uid).nestable();
}); });
} else { } else {
alert(data.message); alert(data.message);
@ -206,6 +305,8 @@ function deptList() {
}); });
groupList();
} else { } else {
alert(data.message); alert(data.message);
@ -245,7 +346,32 @@ function delMemberBtnClick(obj) {
if (group_uid == '') { if (group_uid == '') {
delItem.remove(); delItem.remove();
} else { } else {
var formData = {
dept_uid: $('#dept_select').val(),
group_uid: group_uid,
user_uid: user_uid
}
$.ajax({
url: "/AuthApi/delGroupUser",
type: "post",
data: formData,
success: function (data, textStatus, jqXHR) {
if (data.ret == "yes") {
delItem.remove();
} else {
alert(data.message);
if (data.err_code == "99999") {
location.href = "/Root/Login";
}
}
},
error: function (jqXHR, textStatus, errorThrown) {
alert('網路或伺服器發生錯誤,請稍後重試!');
}
});
} }
} }
} }
@ -256,11 +382,11 @@ function cardHtml(groupOption) {
html += "<div class=\"col-lg-6\">"; html += "<div class=\"col-lg-6\">";
html += " <!-- .card -->"; html += " <!-- .card -->";
html += " <div class=\"card card-fluid\">"; html += " <div class=\"card card-fluid\">";
html += " <div class=\"card-header border-bottom-0 btn-group\"> " + groupOption.group_name + " <div class=\"dd-nodrag btn-group ml-auto\"><button class=\"btn btn-sm btn-secondary\" type=\"button\" onclick=\"editGroupClick(this);\">Edit</button> <button class=\"btn btn-sm btn-secondary\" type=\"button\" onclick=\"delGroupClick(this);\"><i class=\"far fa-trash-alt\"></i></button></div></div><!-- .nestable -->"; html += " <div class=\"card-header border-bottom-0 btn-group\" data-group-uid=\"" + groupOption.group_uid + "\"> " + groupOption.group_name + " <div class=\"dd-nodrag btn-group ml-auto\"><button class=\"btn btn-sm btn-secondary\" type=\"button\" onclick=\"editGroupClick(this);\"><i class=\"fas fa-pencil-alt\"></i></button> <button class=\"btn btn-sm btn-secondary\" type=\"button\" onclick=\"delGroupClick(this);\"><i class=\"far fa-trash-alt\"></i></button></div></div><!-- .nestable -->";
html += " <div id=\"" + groupOption.group_uid + "\" class=\"dd\" data-toggle=\"sortable\" data-max-depth=\"1\" data-type=\"" + groupOption.group_uid + "\">"; html += " <div id=\"" + groupOption.group_uid + "\" class=\"dd\" data-toggle=\"sortable\" data-max-depth=\"1\" data-type=\"" + groupOption.group_uid + "\">";
html += " <!-- .dd-list -->"; html += " <!-- .dd-list -->";
html += " <ol class=\"dd-list\">"; html += " <ol class=\"dd-list\">";
html += " <li></li>"; //html += " <li></li>";
$.each(groupOption.users, function (index, item) { $.each(groupOption.users, function (index, item) {
html += optionItemHtml(item); html += optionItemHtml(item);
@ -271,10 +397,111 @@ function cardHtml(groupOption) {
html += " </div><!-- /.nestable -->"; html += " </div><!-- /.nestable -->";
html += " <!-- .card-footer -->"; html += " <!-- .card-footer -->";
html += " <div class=\"card-footer\">"; html += " <div class=\"card-footer\">";
html += " <a href=\"javascript: void(0);\" onclick=\"addItem(this)\" data-type=\"" + groupOption.group_uid + "\" class=\"card-footer-item justify-content-start\"><span><i class=\"fa fa-plus-circle mr-1\"></i> 新增成員 </span></a>"; html += " <a href=\"javascript: void(0);\" onclick=\"addUserItem(this);\" data-type=\"" + groupOption.group_uid + "\" class=\"card-footer-item justify-content-start\"><span><i class=\"fa fa-plus-circle mr-1\"></i> 新增成員 </span></a>";
html += " </div><!-- /.card-footer -->"; html += " </div><!-- /.card-footer -->";
html += " </div><!-- /.card -->"; html += " </div><!-- /.card -->";
html += "</div><!-- /grid column -->"; html += "</div><!-- /grid column -->";
return html; return html;
} }
function editGroupClick(obj) {
tmpGroupNameItem = $(obj).parent().parent();
var group_name = $(obj).parent().parent().text().trim();
var grid_obj = $(obj).parent().parent().parent().parent();
var group_uid = $(obj).parent().parent().attr("data-group-uid");
$('#client_groupname_group_uid').val(group_uid);
$('#clientGroupName').val(group_name).trigger('change');
$('#clientGroupNameEditModal').modal('toggle');
}
function delGroupClick(obj) {
var group_name = $(obj).parent().parent().text().trim();
var grid_obj = $(obj).parent().parent().parent().parent();
var group_uid = $(obj).parent().parent().attr("data-group-uid");
if (confirm('請確認是否要刪除此群組?')) {
var formData = {
group_uid: group_uid
}
$.ajax({
url: "/AuthApi/delGroup",
type: "post",
data: formData,
success: function (data, textStatus, jqXHR) {
if (data.ret == "yes") {
grid_obj.remove();
} else {
alert(data.message);
if (data.err_code == "99999") {
location.href = "/Root/Login";
}
}
},
error: function (jqXHR, textStatus, errorThrown) {
alert('網路或伺服器發生錯誤,請稍後重試!');
}
});
}
}
function addUserItem(obj) {
var group_uid = $(obj).attr("data-type");
tmpNestableObj = $(obj).parent().parent().parent();
$('#client_group_group_uid').val(group_uid);
$('#client_group_dept_uid').val($('#dept_select').val());
var formData = {
dept_uid: $('#dept_select').val()
}
$.ajax({
url: "/AuthApi/noGroupUserList",
type: "post",
data: formData,
success: function (data, textStatus, jqXHR) {
if (data.ret == "yes") {
$('#lastgroup_memberlist').html('<div class="list-group-header"> 勾選要加入群組的成員 </div>');
var obj = data.userList;
var items = "";
$.each(obj, function (i, item) {
var isExist = 'N';
$.each($('#' + group_uid + ' .dd-list li'), function () {
var tmp_uid = $(this).attr('data-user-uid');
if (tmp_uid == item.user_uid) {
isExist = 'Y';
}
});
if (isExist == 'N') {
items += '<label class="list-group-item custom-control custom-checkbox mb-0"><input id="chk_' + item.user_uid + '" name="memberChkList2[]" type="checkbox" value="' + item.user_uid + '" class="custom-control-input"> <span class="custom-control-label">' + item.user_name + '</span></label>';
}
});
$('#lastgroup_memberlist').append(items);
$('#groupNewUserModal').modal('toggle');
} else {
alert(data.message);
if (data.err_code == "99999") {
location.href = "/Root/Login";
}
}
},
error: function (jqXHR, textStatus, errorThrown) {
alert('網路或伺服器發生錯誤,請稍後重試!');
}
});
}