項目選項維護功能完成

master
嘉祥 詹 2023-11-08 16:09:50 +08:00
parent b845ec25e7
commit 6c66b16c2e
3 changed files with 188 additions and 6 deletions

View File

@ -57,6 +57,80 @@ namespace Journeys_WantHome.Controllers
this._httpContextAccessor = httpContextAccessor;
}
[Route("optionItemOrder")]
public ActionResult OptionItemOrder(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 option_uid = obj["option_uid"].ToString();
string orderJson = obj["order_json"].ToString();
if (option_uid == "")
{
ret.ret = "no";
ret.err_code = "00001";
ret.message = "無option_uid資料!";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
if (orderJson == "") {
ret.ret = "no";
ret.err_code = "00002";
ret.message = "無order_json資料!";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
dynamic orderObj;
try {
orderObj = JsonConvert.DeserializeObject<dynamic>(orderJson);
} catch (Exception ex)
{
ret.ret = "no";
ret.err_code = "00003";
ret.message = "json文字轉成物件失敗 " + ex.Message;
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
int intOrder = 1;
foreach (dynamic tmpObj in orderObj) {
string optionItem_uid = tmpObj.id;
optionItem tmpItem = conn.QueryFirstOrDefault<optionItem>("select * from optionItem where option_uid = @option_uid and optionItem_uid = @optionItem_uid", new { option_uid = option_uid, optionItem_uid = optionItem_uid});
if (tmpItem != null)
{
tmpItem.optionItem_order = intOrder;
conn.Update<optionItem>(tmpItem);
}
intOrder++;
}
ret.ret = "yes";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
[Route("addEditDelItem")]
public ActionResult AddEditDelItem(IFormCollection obj) {
optionItemResult ret = new optionItemResult();

View File

@ -12,7 +12,7 @@
@section Script {
<script src="~/assets/vendor/sortablejs/Sortable.min.js"></script>
<script src="~/assets/vendor/nestable2/jquery.nestable.min.js"></script>
<script src="~/assets/javascript/custom/optionlist.js?v=1"></script>
<script src="~/assets/javascript/custom/optionlist.js?v=3"></script>
}
<!-- .page-inner -->
<div class="page-inner">

View File

@ -1,4 +1,5 @@
var tmpNestableObj;
var tmpNestableItem;
$(document).ready(function () {
loadKolMakeupList();
@ -50,6 +51,47 @@ $(document).ready(function () {
}
});
}
if (method == 'edit') {
if (optionItem_name == '') {
alert('請輸入項目名稱!');
return;
}
var formData = {
option_uid: option_uid,
optionItem_uid: optionItem_uid,
optionItem_name: optionItem_name,
method: method
}
$.ajax({
url: "/AuthApi/addEditDelItem",
type: "post",
data: formData,
success: function (data, textStatus, jqXHR) {
if (data.ret == "yes") {
var obj = data.optionItem;
tmpNestableItem.text(obj.optionItem_name);
$('#optionItemModal').modal('toggle');
} else {
alert(data.message);
if (data.err_code == "99999") {
location.href = "/Root/Login";
}
}
},
error: function (jqXHR, textStatus, errorThrown) {
alert('網路或伺服器發生錯誤,請稍後重試!');
}
});
}
});
});
@ -218,8 +260,37 @@ function loadKolStyleList() {
});
}
function nestableChange(obj) {
alert($(obj).attr("data-type"));
alert(window.JSON.stringify($(obj).nestable('serialize')));
//alert($(obj).attr("data-type"));
//alert(window.JSON.stringify($(obj).nestable('serialize')));
var option_uid = $(obj).attr("data-type");
var order_json = window.JSON.stringify($(obj).nestable('serialize'));
var formData = {
option_uid: option_uid,
order_json: order_json
}
$.ajax({
url: "/AuthApi/optionItemOrder",
type: "post",
data: formData,
success: function (data, textStatus, jqXHR) {
if (data.ret == "yes") {
} else {
//alert(data.message);
if (data.err_code == "99999") {
location.href = "/Root/Login";
}
}
},
error: function (jqXHR, textStatus, errorThrown) {
alert('網路或伺服器發生錯誤,請稍後重試!');
}
});
}
function loadKolMakeupList() {
var formData = {
@ -267,13 +338,13 @@ function optionItemHtml(item) {
}
function editBtnClick(obj) {
tmpNestableItem = $(obj).parent().parent().find("[data-name='option_name']");
var optionItem_name = $(obj).parent().parent().find("[data-name='option_name']").text();
var option_name = $(obj).parent().parent().parent().parent().parent().parent().find('.card-header.border-bottom-0').text();
$('#method').val('edit');
$('#option_name').val();
$('#option_uid').val($(obj).attr("data-parent-type"));
$('#option_uid').val($(obj).attr("data-parent-uid"));
$('#optionItem_uid').val($(obj).attr("data-uid"));
$('#optionItemModal').modal('toggle');
@ -285,7 +356,44 @@ function editBtnClick(obj) {
}
function delBtnClick(obj) {
alert($(obj).attr("data-parent-uid"));
if (confirm('確定刪除此筆資料? 刪掉後,網紅中有勾選此項目的此項目紀錄會消失,新增一筆相同名稱的項目也無法復原!')) {
if (confirm('再次確認要刪除此筆資料?')) {
tmpNestableItem = $(obj).parent().parent().find("[data-name='option_name']");
var optionItem_name = $(obj).parent().parent().find("[data-name='option_name']").text();
var option_name = $(obj).parent().parent().parent().parent().parent().parent().find('.card-header.border-bottom-0').text();
var option_uid = $(obj).attr("data-parent-uid");
var optionItem_uid = $(obj).attr("data-uid");
var formData = {
option_uid: option_uid,
optionItem_uid: optionItem_uid,
method: 'del'
}
$.ajax({
url: "/AuthApi/addEditDelItem",
type: "post",
data: formData,
success: function (data, textStatus, jqXHR) {
if (data.ret == "yes") {
tmpNestableItem.parent().remove();
} else {
alert(data.message);
if (data.err_code == "99999") {
location.href = "/Root/Login";
}
}
},
error: function (jqXHR, textStatus, errorThrown) {
alert('網路或伺服器發生錯誤,請稍後重試!');
}
});
}
}
}
function addItem(obj) {