diff --git a/Controllers/ApiController.cs b/Controllers/ApiController.cs index a5bd345..19f8f73 100644 --- a/Controllers/ApiController.cs +++ b/Controllers/ApiController.cs @@ -59,6 +59,37 @@ namespace Journeys_WantHome.Controllers this._httpContextAccessor = httpContextAccessor; } + [Route("projectKolViewList")] + public ActionResult ProjectKolViewList(IFormCollection obj) { + projectKolViewResult ret = new projectKolViewResult(); + 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"); + } + + string project_uid = obj["project_uid"].ToString(); + + project objProj = conn.QueryFirstOrDefault("select * from project where project_uid = @project_uid", new { project_uid = project_uid}); + + if (objProj != null) + { + ret.ret = "yes"; + ret.detail = new projectKolView(objProj); + } + else { + ret.ret = "no"; + ret.err_code = "00001"; + ret.message = "無此project_uid資料!"; + + } + return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8"); + } + [Route("kolProjectViewList")] public ActionResult KolProjectViewList(IFormCollection obj) { kolProjectViewResult ret = new kolProjectViewResult(); @@ -1869,6 +1900,13 @@ namespace Journeys_WantHome.Controllers } + public class projectKolViewResult + { + public string ret { get; set; } = "no"; + public string err_code { get; set; } = "0000"; + public string message { get; set; } = ""; + public projectKolView detail { get; set; } = new projectKolView(); + } public class kolProjectViewResult { public string ret { get; set; } = "no"; diff --git a/Models/projectKolView.cs b/Models/projectKolView.cs new file mode 100644 index 0000000..f267b24 --- /dev/null +++ b/Models/projectKolView.cs @@ -0,0 +1,91 @@ +using Dapper; +using Dapper.Contrib.Extensions; +using NPOI.SS.Formula.Functions; +using System.Data.SqlClient; +using static DbTableClass; +using static projectDetail; + +public class projectKolView : project +{ + DbConn dbConn = new DbConn(); + SqlConnection conn = new SqlConnection(GlobalClass.appsettings("ConnectionStrings:SQLConnectionString")); + + public List kolList = new List(); + + private project _project; + + public projectKolView() + { + _project = new project(); + } + + public projectKolView(project projectObj) + { + Type projectType = projectObj.GetType(); + + foreach (var prop in projectType.GetProperties()) + { + string propName = prop.Name; + var valueProperty = projectType.GetProperty(propName); + object propValue = valueProperty.GetValue(projectObj, null); + + this.GetType().GetProperty(propName).SetValue(this, propValue); + } + + _project = projectObj; + loadList(); + } + + public projectKolView(string project_uid) + { + _project = conn.QueryFirstOrDefault("select * from project where project_uid = @project_uid", new { project_uid = project_uid }); + + if (_project != null) + { + Type dataType = _project.GetType(); + + foreach (var prop in dataType.GetProperties()) + { + string propName = prop.Name; + var valueProperty = dataType.GetProperty(propName); + object propValue = valueProperty.GetValue(_project, null); + + this.GetType().GetProperty(propName).SetValue(this, propValue); + } + + loadList(); + } + } + + private void loadList() + { + kolList = conn.Query("select A.kol_uid, A.kol_name, A.kol_photo, A.kol_descript, B.kolProject_uid, B.kolProject_isExec, B.kolProject_noExecReason, B.kolProject_memo, B.kolProject_modifydate from kol A, kolProject B where A.kol_uid = B.kol_uid and B.project_uid = @project_uid order by B.kolProject_modifydate desc", new { project_uid = _project.project_uid }).ToList(); + + foreach (kolDataQuility objItem in kolList) { + List projectQuilitys = conn.Query("select * from kolProjectEvaluate where kolProject_uid = @kolProject_uid ", new { kolProject_uid = objItem.kolProject_uid }).ToList(); + + objItem.kolProjectEvaluates = projectQuilitys; + } + } + + public class kolDataQuility + { + public string kol_uid { get; set; } = ""; + + public string kol_name { get; set; } = ""; + + public string kol_photo { get; set; } = ""; + + public string kol_descript { get; set; } = ""; + + public string kolProject_uid { get; set; } = ""; + public string kolProject_isExec { get; set; } = "N"; + public string kolProject_noExecReason { get; set; } = ""; + public string kolProject_memo { get; set; } = ""; + + + public DateTime kolProject_modifydate { get; set; } = DateTime.Now; + + public List kolProjectEvaluates = new List(); + } +} diff --git a/Views/Home/KolList.cshtml b/Views/Home/KolList.cshtml index f10dd2f..6104de1 100644 --- a/Views/Home/KolList.cshtml +++ b/Views/Home/KolList.cshtml @@ -1089,7 +1089,7 @@ + + + + + \ No newline at end of file diff --git a/wwwroot/assets/javascript/custom/kollist.js b/wwwroot/assets/javascript/custom/kollist.js index b800434..b3a329b 100644 --- a/wwwroot/assets/javascript/custom/kollist.js +++ b/wwwroot/assets/javascript/custom/kollist.js @@ -976,7 +976,7 @@ $(document).ready(function () { render: function render(data, type, row, meta) { var ret = ''; ret += '
'; - ret += ' '; + ret += ' '; ret += '
'; return ret; //return row.gift_city + row.gift_area + row.gift_address; diff --git a/wwwroot/assets/javascript/custom/projectlist.js b/wwwroot/assets/javascript/custom/projectlist.js index d7c5389..bf0a529 100644 --- a/wwwroot/assets/javascript/custom/projectlist.js +++ b/wwwroot/assets/javascript/custom/projectlist.js @@ -490,6 +490,153 @@ $(document).ready(function () { }); +function kolProjectPreview(obj) { + var uid = obj.getAttribute('data-uid'); + alert(uid); + + var formData = { + method: "get", + kolProject_uid: uid + } + + $.ajax({ + url: "/Api/kolProjectAddEditDelGet", + type: "post", + data: formData, + success: function (data, textStatus, jqXHR) { + if (data.ret == "yes") { + var trList = $("#previewPrice_table").find("tbody").find("tr"); + $.each(trList, function (index, item) { + $(item).remove(); + }); + + var trList = $("#previewFile_table").find("tbody").find("tr"); + $.each(trList, function (index, item) { + $(item).remove(); + }); + + var trList = $("#previewLink_table").find("tbody").find("tr"); + $.each(trList, function (index, item) { + $(item).remove(); + }); + + var trList = $("#previewCut_table").find("tbody").find("tr"); + $.each(trList, function (index, item) { + $(item).remove(); + }); + + var obj = data.data; + + + $('#previewProject_name').val('(' + obj.project.project_year + '年度' + obj.project.project_month + '月) ' + obj.project.project_name); + + var cooperStr = ''; + + $.each(obj.kolCooperateTypeDetails, function () { + cooperStr += this.optionItem_name + '/'; + }); + + cooperStr = cooperStr.replace(/\/+$/, ''); + + $('#previewProject_Cooper').val(cooperStr); + + $.each(obj.kolProjectPrices, function () { + var trHtml = ""; + trHtml += ''; + trHtml += ' ' + this.optionItem_name + ' '; + trHtml += ' ' + this.mediaItem_name + ' '; + trHtml += ' ' + this.kolProjectPrice_num + ' '; + trHtml += ' ' + AppendComma(this.kolProjectPrice_cost) + ' '; + trHtml += ' ' + this.kolProjectPrice_date + ' '; + + trHtml += ''; + + $('#previewPrice_table tbody').append(trHtml); + }); + + if (obj.kolProject.kolProject_isExec == 'Y') { + $('#previewProject_isCooper').val('是'); + } else { + $('#previewProject_isCooper').val('否'); + + if (obj.kolProject.kolProject_noExecReason != '') { + $('#previewProject_isCooper').val('否,原因【' + obj.kolProject.kolProject_noExecReason + '】'); + } + } + + $.each(obj.kolProjectFiles, function () { + var ret = ''; + + ret += ' ' + this.kolProjectFile_originFileName + ''; + + + var trHtml = ""; + trHtml += ''; + trHtml += ' ' + ret + ' '; + trHtml += ''; + + $('#previewFile_table tbody').append(trHtml); + }); + + var qualityStr = ''; + + $.each(obj.kolProjectEvaluates, function (key, value) { + qualityStr += value.kolProjectEvaluate_text + "/"; + }); + + qualityStr = qualityStr.replace(/\/+$/, ''); + + $('#previewProject_Quality').val(qualityStr); + + $.each(obj.kolProjectLinks, function () { + var trHtml = ""; + trHtml += ''; + trHtml += ' ' + this.kolProjectLink_text + ''; + + trHtml += ''; + + $('#previewLink_table tbody').append(trHtml); + }); + + $.each(obj.kolProjectImages, function () { + var ret = ''; + ret += '
'; + ret += ' '; + ret += '
'; + + var trHtml = ""; + trHtml += ''; + trHtml += ' ' + ret + ' '; + + trHtml += ' ' + this.kolProjectImage_desc + ' '; + + trHtml += ''; + + $('#previewCut_table tbody').append(trHtml); + }); + + + $('#previewkolProject_memo').val(obj.kolProject.kolProject_memo); + + + + + + $('#clientCasePreviewModal').modal('toggle'); + } else { + alert(data.message); + + if (data.err_code == "9999") { + location.href = "/Home/Index"; + } + } + }, + error: function (jqXHR, textStatus, errorThrown) { + alert('網路或伺服器發生錯誤,請稍後重試!'); + } + }); +} + function buttonClick2(obj) { var type = obj.getAttribute('data-method'); var uid = obj.getAttribute('data-uid'); @@ -505,7 +652,7 @@ function buttonClick2(obj) { } $.ajax({ - url: "/Api/kolProjectViewList", + url: "/Api/projectKolViewList", type: "post", data: formData, success: function (data, textStatus, jqXHR) { @@ -515,14 +662,11 @@ function buttonClick2(obj) { $(item).remove(); }); - $.each(data.detail, function () { + $.each(data.detail.kolList, function () { var trHtml = ""; trHtml += ''; - trHtml += ' ' + this.kol_name + ' '; - trHtml += ' ' + this.optionItem_name + ' '; - trHtml += ' ' + this.mediaItem_name + ' '; - trHtml += ' ' + AppendComma(this.kolProjectPrice_cost) + ' '; - + trHtml += ' ' + this.kol_name + ' '; + var execStr = ''; if (this.kolProject_isExec == 'N') {