master
嘉祥 詹 2024-03-18 00:11:54 +08:00
parent 661bb705ae
commit 47d88278d3
5 changed files with 389 additions and 8 deletions

View File

@ -56,6 +56,34 @@ namespace Journeys_WantHome.Controllers
this._httpContextAccessor = httpContextAccessor; this._httpContextAccessor = httpContextAccessor;
} }
[Route("kolProjectList")]
public ActionResult KolProjectList(IFormCollection obj) {
kolProjectListResult ret = new kolProjectListResult();
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 kol_uid = obj["kol_uid"].ToString();
List<kolProject> kolProjects = conn.Query<kolProject>("select * from kolProject where kol_uid = @kol_uid order by kolProject_modifydate desc", new { kol_uid = kol_uid }).ToList();
foreach (kolProject item in kolProjects)
{
kolProjectDetail objItem = new kolProjectDetail(item.kolProject_uid);
ret.datas.Add(objItem);
}
ret.ret = "yes";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
[Route("kolProjectAddEditDelGet")] [Route("kolProjectAddEditDelGet")]
public ActionResult KolProjectAddEditDelGet(IFormCollection obj) { public ActionResult KolProjectAddEditDelGet(IFormCollection obj) {
kolProjectResult ret = new kolProjectResult(); kolProjectResult ret = new kolProjectResult();
@ -82,6 +110,24 @@ namespace Journeys_WantHome.Controllers
string kolProjectImageArrayJson = obj["kolProjectImageArrayJson"].ToString().TrimEnd(','); string kolProjectImageArrayJson = obj["kolProjectImageArrayJson"].ToString().TrimEnd(',');
string kolProject_memo = obj["kolProject_memo"].ToString(); string kolProject_memo = obj["kolProject_memo"].ToString();
if (method == "get") {
kolProject kp = conn.QueryFirstOrDefault<kolProject>("select * from kolProject where kolProject_uid = @kolProject_uid", new { kolProject_uid = kolProject_uid });
if (kp == null) {
ret.ret = "no";
ret.err_code = "10009";
ret.message = "無此kolProject_uid資料!";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
ret.data = new kolProjectDetail(kp.kolProject_uid);
ret.ret = "yes";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
if (method == "add") { if (method == "add") {
kolProject_uid = "kp_" + GlobalClass.CreateRandomCode(16); kolProject_uid = "kp_" + GlobalClass.CreateRandomCode(16);
@ -223,9 +269,11 @@ namespace Journeys_WantHome.Controllers
conn.Insert(kolProjectLinks); conn.Insert(kolProjectLinks);
conn.Insert(kolProjectImages); conn.Insert(kolProjectImages);
ret.data.kolProject = kp; ret.data.kolProject = kp;
ret.data.kolProjectEvaluates = kolProjectEvaluates; ret.data.kolProjectEvaluates = kolProjectEvaluates;
ret.data.kolProjectPrices = kolProjectPrices; ret.data.kolProjectPrices = conn.Query<kolProjectPriceDetail>("select * from kolProjectPriceDetail where kolProject_uid = @kolProject_uid", new { kolProject_uid = kolProject_uid }).ToList();
ret.data.kolProjectLinks = kolProjectLinks; ret.data.kolProjectLinks = kolProjectLinks;
ret.data.kolProjectImages = kolProjectImages; ret.data.kolProjectImages = kolProjectImages;
ret.data.kolCooperateTypes = kolCooperateTypes; ret.data.kolCooperateTypes = kolCooperateTypes;
@ -1204,6 +1252,14 @@ namespace Journeys_WantHome.Controllers
} }
public class kolProjectListResult
{
public string ret { get; set; } = "no";
public string err_code { get; set; } = "0000";
public string message { get; set; } = "";
public List<kolProjectDetail> datas { get; set; } = new List<kolProjectDetail>();
}
public class kolProjectResult public class kolProjectResult
{ {
public string ret { get; set; } = "no"; public string ret { get; set; } = "no";

View File

@ -20,6 +20,25 @@ public class DbTableClass
public string kolProjectEvaluate_text { get; set; } = ""; public string kolProjectEvaluate_text { get; set; } = "";
} }
[Table("kolProjectPriceDetail")]
public class kolProjectPriceDetail
{
[JsonIgnore]
[Key]
public int kolProjectPrice_sn { get; set; }
public string kolProjectPrice_uid { get; set; } = "";
public string kolProject_uid { get; set; } = "";
public string optionItem_uid { get; set; } = "";
public string mediaItem_uid { get; set; } = "";
public string kolProjectPrice_other { get; set; } = "";
public string kolProjectPrice_num { get; set; } = "";
public int kolProjectPrice_cost { get; set; } = 0;
public string kolProjectPrice_date { get; set; } = "";
public DateTime kolProjectPrice_createdate { get; set; } = DateTime.Now;
public DateTime kolProjectPrice_modifydate { get; set; } = DateTime.Now;
public string optionItem_name { get; set; } = "";
public string mediaItem_name { get; set; } = "";
}
[Table("kolProjectPrice")] [Table("kolProjectPrice")]
public class kolProjectPrice public class kolProjectPrice

View File

@ -12,7 +12,7 @@ public class kolProjectDetail
public kolProject kolProject = new kolProject(); public kolProject kolProject = new kolProject();
public List<kolProjectImage> kolProjectImages = new List<kolProjectImage>(); public List<kolProjectImage> kolProjectImages = new List<kolProjectImage>();
public List<kolProjectLink> kolProjectLinks = new List<kolProjectLink>(); public List<kolProjectLink> kolProjectLinks = new List<kolProjectLink>();
public List<kolProjectPrice> kolProjectPrices = new List<kolProjectPrice>(); public List<kolProjectPriceDetail> kolProjectPrices = new List<kolProjectPriceDetail>();
public List<kolProjectEvaluate> kolProjectEvaluates = new List<kolProjectEvaluate>(); public List<kolProjectEvaluate> kolProjectEvaluates = new List<kolProjectEvaluate>();
public List<kolCooperateType> kolCooperateTypes = new List<kolCooperateType>(); public List<kolCooperateType> kolCooperateTypes = new List<kolCooperateType>();
public project project = new project(); public project project = new project();
@ -23,11 +23,11 @@ public class kolProjectDetail
} }
public kolProjectDetail(string kolProject_uid) { public kolProjectDetail(string kolProject_uid) {
kolProject = conn.QueryFirst("select * from kolProject where kolProject_uid = @kolProject_uid", new { kolProject_uid = kolProject_uid }); kolProject = conn.QueryFirstOrDefault<kolProject>("select * from kolProject where kolProject_uid = @kolProject_uid", new { kolProject_uid = kolProject_uid });
kolProjectImages = conn.Query<kolProjectImage>("select * from kolProjectImages where kolProject_uid = @kolProject_uid", new { kolProject_uid = kolProject_uid }).ToList(); kolProjectImages = conn.Query<kolProjectImage>("select * from kolProjectImage where kolProject_uid = @kolProject_uid", new { kolProject_uid = kolProject_uid }).ToList();
kolProjectLinks = conn.Query<kolProjectLink>("select * from kolProjectLink where kolProject_uid = @kolProject_uid", new { kolProject_uid = kolProject_uid }).ToList(); kolProjectLinks = conn.Query<kolProjectLink>("select * from kolProjectLink where kolProject_uid = @kolProject_uid", new { kolProject_uid = kolProject_uid }).ToList();
kolProjectPrices = conn.Query<kolProjectPrice>("select * from kolProjectPrice where kolProject_uid = @kolProject_uid", new { kolProject_uid = kolProject_uid }).ToList(); kolProjectPrices = conn.Query<kolProjectPriceDetail>("select * from kolProjectPriceDetail where kolProject_uid = @kolProject_uid", new { kolProject_uid = kolProject_uid }).ToList();
kolProjectEvaluates = conn.Query<kolProjectEvaluate>("select * from kolProjectEvaluate where kolProject_uid = @kolProject_uid", new { kolProject_uid = kolProject_uid }).ToList(); kolProjectEvaluates = conn.Query<kolProjectEvaluate>("select * from kolProjectEvaluate where kolProject_uid = @kolProject_uid", new { kolProject_uid = kolProject_uid }).ToList();
kolCooperateTypes = conn.Query<kolCooperateType>("select * from kolCooperateType where kolProject_uid = @kolProject_uid", new { kolProject_uid = kolProject_uid }).ToList(); kolCooperateTypes = conn.Query<kolCooperateType>("select * from kolCooperateType where kolProject_uid = @kolProject_uid", new { kolProject_uid = kolProject_uid }).ToList();

View File

@ -24,6 +24,7 @@ $(document).ready(function () {
loadprojectList(); loadprojectList();
clearKolProjectTable(); clearKolProjectTable();
initSubPhotoUpload(); initSubPhotoUpload();
loadSubDataTable();
$('#kolSaveBtn').on('click', function () { $('#kolSaveBtn').on('click', function () {
var method = $('#method').val(); var method = $('#method').val();
@ -384,7 +385,7 @@ $(document).ready(function () {
type: "post", type: "post",
data: formData, data: formData,
success: function (data, textStatus, jqXHR) { success: function (data, textStatus, jqXHR) {
var obj = data.kol; var obj = data.data;
if (data.ret == "yes") { if (data.ret == "yes") {
if (method == "add") { if (method == "add") {
@ -392,7 +393,7 @@ $(document).ready(function () {
} }
if (method == "edit") { if (method == "edit") {
kolProjectTable.fnUpdate(obj, mainPos); kolProjectTable.fnUpdate(obj, kolProjectPos);
} }
$('#clientNewKolProjectModal').modal('toggle'); $('#clientNewKolProjectModal').modal('toggle');
@ -834,6 +835,158 @@ $(document).ready(function () {
dataTables.init(); dataTables.init();
} }
function loadSubDataTable() {
var dataTablesKolProject = {
init: function init() {
this.bindUIActions();
},
bindUIActions: function bindUIActions() {
// event handlers
this.table = this.handleDataTables();
// add buttons
//this.table.buttons().container().appendTo('#dt-buttons').unwrap();
},
handleDataTables: function handleDataTables() {
//$('#myTable').append("<tfoot><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></tfoot>");
return $('#dt-responsive-kolProject').DataTable({
dom: '<\'text-muted\'Bif>\n <\'table-responsive\'trl>\n <\'mt-4\'p>',
lengthChange: false,
lengthMenu: [[25, 50, 100, -1], [25, 50, 100, "All"]],
pageLength: 25,
paging: false,
buttons: [
],
language: {
paginate: {
previous: '<i class="fa fa-lg fa-angle-left"></i>',
next: '<i class="fa fa-lg fa-angle-right"></i>'
},
buttons: {
copyTitle: 'Data copied',
copyKeys: 'Use your keyboard or menu to select the copy command'
}
},
autoWidth: false,
rowId: 'kolProject.kolProject_uid',
deferRender: true,
initComplete: function () {
$('#dt-responsive-kolProject').on('click', 'button', function () {
kolProjectTableButtonClick(this);
});
},
order: [[4, 'desc']],
info: false,
search: "搜尋:",
searching: false,
columnDefs: [
{
targets: 0,
className: 'align-middle text-left',
orderable: false,
searchable: true,
render: function render(data, type, row, meta) {
return row.project.project_name;
}
},
{
targets: 1,
className: 'align-middle text-left',
orderable: false,
searchable: false,
render: function render(data, type, row, meta) {
if (row.kolProject.kolProject_isExec == 'Y') {
return '合作執行';
}
if (row.kolProject.kolProject_isExec == 'N') {
if (row.kolProject.kolProject_noExecReason == '') {
return '未合作';
} else {
return '未合作 (' + row.kolProject.kolProject_noExecReason + ')';
}
}
return '';
}
}, {
targets: 2,
orderable: false,
searchable: true,
render: function render(data, type, row, meta) {
var retTxt = '';
$.each(row.kolProjectEvaluates, function () {
retTxt = retTxt + this.kolProjectEvaluate_text + ", ";
});
retTxt = retTxt.replace(/,\s*$/, "");
return retTxt;
}
}, {
targets: 3,
orderable: false,
searchable: true,
render: function render(data, type, row, meta) {
return row.kolProject.user_name;
}
}, {
targets: 4,
orderable: false,
searchable: true,
render: function render(data, type, row, meta) {
return (new Date(row.kolProject.kolProject_modifydate)).format("yyyy/MM/dd hh:mm:ss");
}
}, {
targets: 5,
orderable: false,
searchable: false,
render: function render(data, type, row, meta) {
var ret = '';
ret += '<button type="button" data-uid="' + row.kolProject.kolProject_uid + '" data-method="edit" class="btn btn-sm btn-icon btn-secondary" ><i class="fa fa-pencil-alt"></i> <span class="sr-only">Edit</span></button>';
ret += '<button type="button" data-uid="' + row.kolProject.kolProject_uid + '" data-method="del" class="btn btn-sm btn-icon btn-secondary"><i class="far fa-trash-alt"></i> <span class="sr-only">Remove</span></button>';
return ret;
}
}
],
});
},
handleSearchRecords: function handleSearchRecords() {
var self = this;
$('#table-search, #filterBy').on('keyup change focus', function (e) {
var filterBy = $('#filterBy').val();
var hasFilter = filterBy !== '';
var value = $('#table-search').val();
self.table.search('').columns().search('').draw();
if (hasFilter) {
self.table.columns(filterBy).search(value).draw();
} else {
self.table.search(value).draw();
}
});
}
}
dataTablesKolProject.init();
}
var url = "/Api/KolPhotoUpload"; var url = "/Api/KolPhotoUpload";
@ -987,6 +1140,126 @@ function loadCooperateItem() {
}); });
} }
function kolProjectTableButtonClick(obj) {
var type = obj.getAttribute('data-method');
var uid = obj.getAttribute('data-uid');
kolProjectTable = $('#dt-responsive-kolProject').dataTable();
kolProjectRowID = $('#' + uid);
kolProjectPos = kolProjectTable.fnGetPosition($('#' + uid)[0]);
if (type == "edit") {
$('#kolProject_method').val('edit');
$('#kolProject_uid').val(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") {
clearKolProjectTable();
var obj = data.data;
$('#kolProject_method').val('edit');
$('#kolProject_uid').val(uid);
$('#project_year').val(obj.project.project_year).trigger('change');
$('#project_month').val(obj.project.project_month).trigger('change');
setTimeout(function () { $('#project_select').val(obj.project.project_uid).trigger('change'); }, 500);
$.each(obj.kolCooperateTypes, function () {
$("input:checkbox[value='" + this.optionItem_uid + "']").prop('checked', true);
});
$.each(obj.kolProjectPrices, function () {
var trHtml = "";
trHtml += '<tr>';
trHtml += ' <td class="align-middle"> ' + this.optionItem_name + ' </td>';
trHtml += ' <td class="align-middle"> ' + this.mediaItem_name + ' </td>';
trHtml += ' <td class="align-middle" style="text-align: right;"> ' + this.kolProjectPrice_num + ' </td>';
trHtml += ' <td class="align-middle" style="text-align: right;"> ' + AppendComma(this.kolProjectPrice_cost) + ' </td>';
trHtml += ' <td class="align-middle"> ' + this.kolProjectPrice_date + ' </td>';
trHtml += ' <td class="align-middle" style="display: none;"> ' + this.kolProjectPrice_other + ' </td>';
trHtml += ' <td class="align-middle" style="display: none;"> ' + this.optionItem_uid + ' </td>';
trHtml += ' <td class="align-middle" style="display: none;"> ' + this.mediaItem_uid + ' </td>';
trHtml += ' <td class="align-middle text-right">';
trHtml += ' <input type="hidden" data-name="other" style="display: none;" other-value="' + this.kolProjectPrice_other + '">';
trHtml += ' <button type="button" data-uid="" media-uid="' + this.optionItem_uid + '" mediaItem-uid="' + this.mediaItem_uid + '" data-method="edit" onclick="specButtonClick(this);" class="btn btn-sm btn-icon btn-secondary" data-toggle="modal" data-target="#clientContactEditModal"><i class="fa fa-pencil-alt"></i> <span class="sr-only">Edit</span></button>';
trHtml += ' <button type="button" data-uid="" media-uid="' + this.optionItem_uid + '" mediaItem-uid="' + this.mediaItem_uid + '" data-method="del" onclick="specButtonClick(this);" class="btn btn-sm btn-icon btn-secondary"><i class="far fa-trash-alt"></i> <span class="sr-only">Remove</span></button>';
trHtml += ' </td>';
trHtml += '</tr>';
$('#price_table tbody').append(trHtml);
});
$("input[name=kolProject_isExec][value=" + obj.kolProject.kolProject_isExec + "]").prop('checked', true).trigger('change');
$('#kolProject_noExecReason').val(obj.kolProject.kolProject_noExecReason);
$.each(obj.kolProjectEvaluates, function (key, value) {
$("input:checkbox[value='" + value.kolProjectEvaluate_text + "']").prop('checked', true);
});
$.each(obj.kolProjectLinks, function () {
var trHtml = "";
trHtml += '<tr>';
trHtml += ' <td class="align-middle"> <a href="' + this.kolProjectLink_url + '" target="_blank" class="link">' + this.kolProjectLink_text + '</a></td>';
trHtml += ' <td class="align-middle" style="display: none;"> ' + this.kolProjectLink_url + ' </td>';
trHtml += ' <td class="align-middle" style="display: none;"> ' + this.kolProjectLink_text + ' </td>';
trHtml += ' <td class="align-middle text-right">';
trHtml += ' <button type="button" data-uid="" media-uid="" data-method="edit" onclick="linkEditClick(this);" class="btn btn-sm btn-icon btn-secondary" data-toggle="modal" data-target="#clientContactEditModal"><i class="fa fa-pencil-alt"></i> <span class="sr-only">Edit</span></button>';
trHtml += ' <button type="button" data-uid="" media-uid="" data-method="del" onclick="linkEditClick(this);" class="btn btn-sm btn-icon btn-secondary"><i class="far fa-trash-alt"></i> <span class="sr-only">Remove</span></button>';
trHtml += ' </td>';
trHtml += '</tr>';
$('#link_table tbody').append(trHtml);
});
$.each(obj.kolProjectImages, function () {
var ret = '';
ret += '<div class="user-avatar user-avatar-xxl">';
ret += ' <a href="' + this.kolProjectImage_photo + '" target="_blank"><img style="border: 0;" src="' + this.kolProjectImage_photo + '" alt=""></a>';
ret += '</div>';
var trHtml = "";
trHtml += '<tr>';
trHtml += ' <td class="align-middle"> ' + ret + ' </td>';
trHtml += ' <td class="align-middle"> ' + this.kolProjectImage_desc + ' </td>';
trHtml += ' <td class="align-middle text-right">';
trHtml += ' <button type="button" data-uid="" media-uid="' + this.kolProjectImage_uid + '" data-method="edit" onclick="buttonPhotoClick(this);" class="btn btn-sm btn-icon btn-secondary" data-toggle="modal" data-target="#clientContactEditModal"><i class="fa fa-pencil-alt"></i> <span class="sr-only">Edit</span></button>';
trHtml += ' <button type="button" data-uid="" media-uid="' + this.kolProjectImage_uid + '" data-method="del" onclick="buttonPhotoClick(this);" class="btn btn-sm btn-icon btn-secondary"><i class="far fa-trash-alt"></i> <span class="sr-only">Remove</span></button>';
trHtml += ' </td>';
trHtml += '</tr>';
$('#cut_table tbody').append(trHtml);
});
$('#kolProject_memo').val(obj.kolProject.kolProject_memo);
$('#clientNewKolProjectModal').modal('toggle');
} else {
alert(data.message);
if (data.err_code == "9999") {
location.href = "/Home/Index";
}
}
},
error: function (jqXHR, textStatus, errorThrown) {
alert('網路或伺服器發生錯誤,請稍後重試!');
}
});
}
}
function buttonPhotoClick(obj) { function buttonPhotoClick(obj) {
photoTr = $(obj).closest('tr'); photoTr = $(obj).closest('tr');
@ -1091,8 +1364,39 @@ function buttonClick2(obj) {
if (type == "case") { if (type == "case") {
$('#kolProject_kol_uid').val(uid); $('#kolProject_kol_uid').val(uid);
var formData = {
kol_uid: uid
}
$.ajax({
url: "/Api/kolProjectList",
type: "post",
data: formData,
success: function (data, textStatus, jqXHR) {
if (data.ret == "yes") {
$('#dt-responsive-kolProject').dataTable().fnClearTable();
if (data.datas.length > 0) {
$('#dt-responsive-kolProject').dataTable().fnAddData(data.datas);
kolProjectTable = $('#dt-responsive-kolProject').dataTable();
$('#clientProjectModal').modal('toggle'); $('#clientProjectModal').modal('toggle');
} }
} else {
alert(data.message);
if (data.err_code == "9999") {
location.href = "/Home/Index";
}
}
},
error: function (jqXHR, textStatus, errorThrown) {
alert('網路或伺服器發生錯誤,請稍後重試!');
}
});
}
if (type == "del") { if (type == "del") {
if (confirm('確定刪除此筆資料? 刪除後將無任何方法回復!')) { if (confirm('確定刪除此筆資料? 刪除後將無任何方法回復!')) {

View File

@ -342,6 +342,8 @@ $(document).ready(function () {
dataTables.init(); dataTables.init();
} }
}); });
function buttonClick2(obj) { function buttonClick2(obj) {