9 Commits

Author SHA1 Message Date
minom 7db39117b4 批次報名移除排序功能·移除一些console.log 2026-06-23 07:56:12 +08:00
minom 5fa147f960 功能修正調整 2026-06-22 17:58:04 +08:00
minom 5f3ac3ec7f 牌位版型設計,增加刪除版型跟紙張尺寸 2026-06-16 09:44:16 +08:00
minom c249e84240 modify 2026-06-08 17:02:17 +08:00
minom 23da5f0dc0 modify 2026-06-08 13:41:33 +08:00
minom dce5d52a70 merge to main 2026-06-08 13:32:21 +08:00
minom 824077858d Merge pull request 'merge to main' (#7) from 0.2 into main
Reviewed-on: #7
2026-06-08 01:42:06 +00:00
EnChia 98af98da74 上傳檔案到「data」 2026-04-13 09:41:47 +00:00
EnChia e69fce0d02 上傳檔案到「data」 2026-04-09 09:52:34 +00:00
26 changed files with 454 additions and 471 deletions
+6
View File
@@ -0,0 +1,6 @@
FK_act_bom_actItem1 刪除規則設為 cascade
FK_pro_order_followers 刪除規則設為 cascade
FK_pro_order_activity 刪除規則設為 cascade
FK_pro_order_detail_pro_order 刪除規則設為 cascade
FK_pro_order_detail_followers 刪除規則設為 沒有動作
FK_activity_relating_activity 刪除規則設為 cascade
+80 -2
View File
@@ -1,4 +1,5 @@
using DocumentFormat.OpenXml.Office2010.Excel; using AjaxControlToolkit.HTMLEditor.Popups;
using DocumentFormat.OpenXml.Office2010.Excel;
using DocumentFormat.OpenXml.Wordprocessing; using DocumentFormat.OpenXml.Wordprocessing;
using MINOM.COM.Utility; using MINOM.COM.Utility;
using Model; using Model;
@@ -293,7 +294,7 @@ public class StyleDataAccess
new SqlParameter("@UTime",""), new SqlParameter("@UTime",""),
}; };
sb.Append("update TabletStyle set Descr=@Descr,PaperSize=@PaperSize,BackendImg=@BackendImg,PrintSize=@PrintSize,"); sb.Append("update TabletStyle set Name=@Name,Descr=@Descr,PaperSize=@PaperSize,BackendImg=@BackendImg,PrintSize=@PrintSize,");
sb.Append("PrintMode=@PrintMode,Orientation=@Orientation,PrintPageCount=@PrintPageCount,RosterLimit=@RosterLimit,"); sb.Append("PrintMode=@PrintMode,Orientation=@Orientation,PrintPageCount=@PrintPageCount,RosterLimit=@RosterLimit,");
sb.Append("CUser=@CUser,CDate=@CDate,CTime=@CTime,UUser=@UUSer,UDate=@UDate,UTime=@UTime "); sb.Append("CUser=@CUser,CDate=@CDate,CTime=@CTime,UUser=@UUSer,UDate=@UDate,UTime=@UTime ");
sb.Append("where StyleID=@StyleID "); sb.Append("where StyleID=@StyleID ");
@@ -348,4 +349,81 @@ public class StyleDataAccess
} }
return obj; return obj;
} }
public object[] DelTabletPaper(string paperID)
{
try
{
using (var context = new ezEntities())
{
StringBuilder sb = new StringBuilder();
SqlParameter[] sp = new SqlParameter[] {
new SqlParameter("@PaperID",paperID),
};
sb.Clear();
sb.Append("if not exists (select StyleID from TabletStyle where PaperSize=@paperID or PrintSize=@paperID)");
sb.Append("begin ");
sb.Append("delete TabletPaperSize where paperID=@paperID ");
sb.Append("end;");
sb.Append("select @@ROWCOUNT ;");
int i = context.Database.ExecuteSqlCommand(sb.ToString(), sp.ToArray());
if (i > 0)
{
obj[0] = "Y";
obj[1] = "刪除成功";
}
else
{
obj[0] = "N";
obj[1] = "刪除失敗,已有活動使用";
}
}
}
catch (Exception ex)
{
obj[0] = "N";
obj[1] = "刪除失敗:" + ex.Message;
}
return obj;
}
public object[] DelTabletStyle(string styleID)
{
try
{
using (var context = new ezEntities())
{
StringBuilder sb = new StringBuilder();
SqlParameter[] sp = new SqlParameter[] {
new SqlParameter("@StyleID",styleID),
};
sb.Clear();
sb.Append("if not exists (select defaultStyle from actItem where defaultStyle=@styleID)");
sb.Append("begin ");
sb.Append("delete TabletStyle where styleID=@styleID ");
sb.Append("delete TabletStyleDetail where StyleID=@StyleID ");
sb.Append("end;");
sb.Append("select @@ROWCOUNT ;");
int i = context.Database.ExecuteSqlCommand(sb.ToString(), sp.ToArray());
if (i > 0)
{
obj[0] = "Y";
obj[1] = "刪除成功";
}
else
{
obj[0] = "N";
obj[1] = "刪除失敗,已有活動使用";
}
}
}
catch (Exception ex)
{
obj[0] = "N";
obj[1] = "刪除失敗:"+ex.Message;
}
return obj;
}
} }
+1
View File
@@ -758,6 +758,7 @@ public class FollowerController : ApiController
// ===== 新增 ===== // ===== 新增 =====
autoEnroll = new Model.auto_enroll() autoEnroll = new Model.auto_enroll()
{ {
num=0,
f_num = item.f_num, f_num = item.f_num,
start_date = item.start_date, start_date = item.start_date,
end_date = item.end_date, end_date = item.end_date,
+2
View File
@@ -363,6 +363,8 @@ public class activityController : ApiController
}).ToList(), x.kind) : "", }).ToList(), x.kind) : "",
startDate_solar = x.startDate_solar, startDate_solar = x.startDate_solar,
endDate_solar = x.endDate_solar, endDate_solar = x.endDate_solar,
startDate = x.startDate_solar?.ToString("yyyy-MM-dd"),
endDate = x.endDate_solar?.ToString("yyyy-MM-dd"),
startDate_lunar = x.startDate_lunar, startDate_lunar = x.startDate_lunar,
endDate_lunar = x.endDate_lunar, endDate_lunar = x.endDate_lunar,
dueDate = x.dueDate, dueDate = x.dueDate,
+28
View File
@@ -299,4 +299,32 @@ public class designerController : ApiController
} }
} }
[HttpPost]
[Route("api/tablet/DelPaperSize")]
public IHttpActionResult DelPaperSize([FromBody] dynamic data)
{
LogUtility log = new LogUtility();
var json = data;
log.writeLogPath((string)json.paperSize);
string paperSize = (json == null || json.paperSize == null) ? "" : (string)json.paperSize;
//先檢查有沒有用過
object[] obj = new StyleDataAccess().DelTabletPaper(paperSize);
return Ok(new { result = obj[0].ToString(), message = obj[1].ToString() });
}
[HttpPost]
[Route("api/tablet/DelTabletStyle")]
public IHttpActionResult DelTabletStyle([FromBody] dynamic data)
{
LogUtility log = new LogUtility();
var json = data;
log.writeLogPath((string)json.styleID);
string StyleID = (json == null || json.styleID == null) ? "" : (string)json.styleID;
//先檢查有沒有用過
object[] obj = new StyleDataAccess().DelTabletStyle(StyleID);
return Ok(new { result = obj[0].ToString(), message = obj[1].ToString() });
}
} }
+3 -78
View File
@@ -565,6 +565,7 @@ public class orderController : ApiController
subject = x.activity_num.HasValue ? x.activity.subject : "", subject = x.activity_num.HasValue ? x.activity.subject : "",
keyin1 = x.keyin1, keyin1 = x.keyin1,
up_time = x.up_time, up_time = x.up_time,
uptime=x.up_time?.ToString("yyyy-MM-dd"),
keyin1_txt = Model.pro_order.keyin1_value_to_text(x.keyin1), keyin1_txt = Model.pro_order.keyin1_value_to_text(x.keyin1),
status = x.activity.activity_check.FirstOrDefault(a => x.activity_num == a.activity_num && x.f_num == a.f_num)?.status ?? 0, status = x.activity.activity_check.FirstOrDefault(a => x.activity_num == a.activity_num && x.f_num == a.f_num)?.status ?? 0,
}), }),
@@ -599,7 +600,7 @@ public class orderController : ApiController
//qry1 = qry1.Where(o => o.order_no == order_no); //qry1 = qry1.Where(o => o.order_no == order_no);
//var qry1 = prod.pro_order_detail.AsEnumerable(); //var qry1 = prod.pro_order_detail.AsEnumerable();
var qry1 = prod.pro_order_detail.AsQueryable().include(o=>o.pro_order.activity.activity_relating); var qry1 = prod.pro_order_detail.AsQueryable().Include(o=>o.pro_order.activity.activity_relating);
//if (!string.IsNullOrEmpty(q.subject)) //if (!string.IsNullOrEmpty(q.subject))
@@ -723,83 +724,7 @@ public class orderController : ApiController
// c, // c,
// //pay_kind = tdesc2[c.payment.HasValue && x.keyin1.Value > 0 ? x.keyin1.Value : 1], // //pay_kind = tdesc2[c.payment.HasValue && x.keyin1.Value > 0 ? x.keyin1.Value : 1],
//}), //}),
var tmpActivityRelating = x.pro_order?.activity?.activity_relating?.Where(a => a.actItem_num == x.actItem_num).FirstOrDefault();
return new
{
has_yang_limit = tmpActivityRelating?.has_yang_limit ?? false,
has_chao_limit = tmpActivityRelating?.has_chao_limit ?? false,
yang_limit_count = tmpActivityRelating?.yang_limit_count ?? 0,
chao_limit_count = tmpActivityRelating?.chao_limit_count ?? 0,
id = i++,
num = x.num,
order_no = x.order_no,
actitem_num_selected = new
{
text = x.actItem_num.HasValue ? x.actItem.subject : "",
val = x.actItem_num.HasValue ? x.actItem_num.Value : 0,
},
parent_num = x.parent_num,
f_num_selected = new
{
text = x.f_num.HasValue ? x.follower.u_name : "",
val = x.f_num.HasValue ? x.f_num.Value : 0,
},
f_num_tablet = x.f_num_tablet,
print_id = x.print_id,
address = x.address,
due_date = x.due_date,
start_date = x.start_date,
extend_date = x.extend_date,
from_id_selected = new
{
text = x.from_id.HasValue ? x.follower1.u_name : "",
val = x.from_id.HasValue ? x.from_id : 0,
},
from_id_tablet = x.from_id_tablet,
price = x.price ?? 0,
qty = x.qty ?? 0,
writeBedQty = bedDt.Where(b => b.bed_order.o_detail_id.Value == x.num && b.checkIn_date.HasValue && b.bed_kind_detail_id.HasValue).Count(), //已劃數量
notBedQty = bedDt.Where(b => b.bed_order.o_detail_id.Value == x.num && (!b.checkIn_date.HasValue || !b.bed_kind_detail_id.HasValue)).Count(), //未劃數量
//total = x.total.HasValue ? x.total.Value : 0,
category = x.actItem?.category,
//pay = x.pay ?? 0,
pay = x.pro_order_record.Select(c => c.price).Sum(),
pay_date = x.pay_date,
keyin1_selected = new
{
text = tdesc[x.keyin1.HasValue && x.keyin1.Value > 0 ? x.keyin1.Value : 1],
val = x.keyin1,
},
demo = x.demo,
files = x.actItem?.actItem_files.Select(f => new
{
num = f.file.num,
subject = f.file.subject,
word = f.file.word,
cuz_column = f.file.customize_data ?? "", //??
paperset = f.file.paperset ?? "",
}),
customize_data = x.customize_data ?? "",
customize_data_comb = new
{
from_id_cuz_data = "",
activity_cuz_data = "",
actitem_cuz_data = "",
order_cuz_data = "",
},
printed_files = x.printed_files ?? "",
isPackage = (x.actItem.act_bom
.Any(ab => ab.package_num == null && ab.item_num != null)
? 1 : 0),
bom_order = (x.actItem.act_bom
.Any(ab => ab.package_num == null && ab.item_num != null)
? x.num.ToString()
: (x.parent_num.ToString() + x.num.ToString())
),
//cash_record = x.pro_order_record.Select( c => new {
// c,
// //pay_kind = tdesc2[c.payment.HasValue && x.keyin1.Value > 0 ? x.keyin1.Value : 1],
//}),
}; };
}) })
+2 -2
View File
@@ -114,7 +114,7 @@
.catch(error => console.log(error)) .catch(error => console.log(error))
}, },
editItem(item) { editItem(item) {
console.log("edit", item);
}, },
deleteItem(item) { deleteItem(item) {
if (confirm('是否確定刪除此筆資料?')) { if (confirm('是否確定刪除此筆資料?')) {
@@ -123,7 +123,7 @@
axios axios
.delete(HTTP_HOST + 'api/accounting/' + item.num) .delete(HTTP_HOST + 'api/accounting/' + item.num)
.then(response => { .then(response => {
console.log("del", item);
this.data_table.list.splice(index, 1); this.data_table.list.splice(index, 1);
this.data_table.count = this.data_table.list.length this.data_table.count = this.data_table.list.length
}) })
+6 -7
View File
@@ -29,7 +29,7 @@
], ],
selected: {}, selected: {},
select(t) { select(t) {
console.log("select search1", t);
} }
}, search2: { }, search2: {
id: 'search2', id: 'search2',
@@ -45,7 +45,7 @@
], ],
selected: {}, selected: {},
select(t) { select(t) {
console.log("select search2", t);
} }
}, },
search3: { search3: {
@@ -64,7 +64,7 @@
], ],
selected: {}, selected: {},
select(t) { select(t) {
console.log("select search3", t);
} }
}, },
@@ -86,7 +86,6 @@
], ],
selected: {}, selected: {},
select(t) { select(t) {
console.log("select search4", t);
} }
}, },
@@ -151,7 +150,7 @@
options: { options: {
handler() { handler() {
this.search_get() this.search_get()
console.log("watch2", this.search_dialog, this.search_dialog.page);
}, },
deep: true, deep: true,
}, },
@@ -188,7 +187,7 @@
search[t.id] = t.value; search[t.id] = t.value;
}); });
console.log("search_get", api_url, search, params, this.options);
this.search_dialog.loading = true this.search_dialog.loading = true
axios.post(api_url, search, { params: params }) axios.post(api_url, search, { params: params })
.then(response => { .then(response => {
@@ -375,7 +374,7 @@
axios axios
.delete(HTTP_HOST + 'api/accounting/DeleteFilesItem/' + item.num) .delete(HTTP_HOST + 'api/accounting/DeleteFilesItem/' + item.num)
.then(response => { .then(response => {
console.log("del", item);
this.desserts.splice(index, 1) this.desserts.splice(index, 1)
this.desserts_count = this.desserts_count - 1; this.desserts_count = this.desserts_count - 1;
}) })
+2 -2
View File
@@ -99,7 +99,7 @@
.catch(error => console.log(error)) .catch(error => console.log(error))
}, },
editItem(item) { editItem(item) {
console.log("edit", item);
}, },
copyItem(item) { copyItem(item) {
@@ -132,7 +132,7 @@
axios axios
.delete(HTTP_HOST + 'api/activity/' + item.num) .delete(HTTP_HOST + 'api/activity/' + item.num)
.then(response => { .then(response => {
console.log("del", item);
this.data_table.list.splice(index, 1); this.data_table.list.splice(index, 1);
this.data_table.count = this.data_table.list.length this.data_table.count = this.data_table.list.length
}) })
+3 -3
View File
@@ -107,7 +107,7 @@
select(t, data) { select(t, data) {
data.search.kind = t.num; data.search.kind = t.num;
data.btn_search() data.btn_search()
console.log("select search1", t);
} }
} }
}, },
@@ -215,7 +215,7 @@
}, },
editItem(item) { editItem(item) {
console.log("edit", item);
}, },
deleteItem(item) { deleteItem(item) {
@@ -306,7 +306,7 @@
search[t.id] = t.value; search[t.id] = t.value;
}); });
console.log("search_get", api_url, search, params, this.options);
this.search_dialog.loading = true this.search_dialog.loading = true
axios.post(api_url, search, { params: params }) axios.post(api_url, search, { params: params })
.then(response => { .then(response => {
+4 -4
View File
@@ -46,7 +46,7 @@
], ],
selected: {}, selected: {},
select(item, t) { select(item, t) {
console.log("select search1", t);
} }
}, },
search2: { search2: {
@@ -63,7 +63,7 @@
], ],
selected: {}, selected: {},
select(item, t) { select(item, t) {
console.log("select search2", t);
item.files_num_selected.text = t.subject //=====? item.files_num_selected.text = t.subject //=====?
item.files_num_selected.val = t.num //=====? item.files_num_selected.val = t.num //=====?
@@ -85,7 +85,7 @@
], ],
selected: {}, selected: {},
select(item, t) { select(item, t) {
console.log("select search3", item, t);
//debugger; //debugger;
item.actItem.subject = t.subject item.actItem.subject = t.subject
item.actItem.num = t.num item.actItem.num = t.num
@@ -371,7 +371,7 @@
axios axios
.delete(HTTP_HOST + 'api/activity/DeleteFilesItem/' + item.num) .delete(HTTP_HOST + 'api/activity/DeleteFilesItem/' + item.num)
.then(response => { .then(response => {
console.log("del", item);
this.desserts.splice(index, 1) this.desserts.splice(index, 1)
this.desserts_count = this.desserts_count - 1; this.desserts_count = this.desserts_count - 1;
}) })
+5 -7
View File
@@ -10,7 +10,7 @@
el: '#app', el: '#app',
vuetify: new Vuetify(vuetify_options), vuetify: new Vuetify(vuetify_options),
data() { data() {
console.log("yes",<%= _this_id %>);
return { return {
this_id: '<%= _this_id %>', this_id: '<%= _this_id %>',
options: {}, options: {},
@@ -33,8 +33,6 @@
], ],
selected: {}, selected: {},
select(item,t) { select(item,t) {
console.log("select search1", t);
item.actItem_num.text = t.subject item.actItem_num.text = t.subject
item.actItem_num.val = t.num item.actItem_num.val = t.num
@@ -114,7 +112,7 @@
handler() { handler() {
//console.log("watch1", this.search_dialog, this.search_dialog.page); //console.log("watch1", this.search_dialog, this.search_dialog.page);
this.search_get() this.search_get()
console.log("watch2", this.search_dialog, this.search_dialog.page);
}, },
deep: true, deep: true,
}, },
@@ -154,7 +152,7 @@
if (this.search_dialog.current.id == 'search1') { if (this.search_dialog.current.id == 'search1') {
search['categorys'] = "1,2,4";//報名,掛單,贊助 search['categorys'] = "1,2,4";//報名,掛單,贊助
} }
console.log("search_get", api_url, search, params, this.options);
this.search_dialog.loading = true this.search_dialog.loading = true
axios.post(api_url, search, { params: params }) axios.post(api_url, search, { params: params })
.then(response => { .then(response => {
@@ -233,7 +231,7 @@
axios axios
.delete(HTTP_HOST + 'api/activity/DeleteActKindDetail/' + item.num) .delete(HTTP_HOST + 'api/activity/DeleteActKindDetail/' + item.num)
.then(response => { .then(response => {
console.log("del", item);
this.desserts.splice(index, 1) this.desserts.splice(index, 1)
this.desserts_count = this.desserts_count - 1; this.desserts_count = this.desserts_count - 1;
}) })
@@ -321,7 +319,7 @@
} }
}, customSearch(value, item) { }, customSearch(value, item) {
console.log(value, item)
}, },
searchData(event) { searchData(event) {
this.desserts = this.desserts.filter(item => item.actItem_num.text.toLowerCase().includes(event)); this.desserts = this.desserts.filter(item => item.actItem_num.text.toLowerCase().includes(event));
+10 -100
View File
@@ -24,11 +24,11 @@
if (data.isOk) { if (data.isOk) {
$(btn).parents('.row.label-sm-right').find('.lunar').text(data.cDate); $(btn).parents('.row.label-sm-right').find('.lunar').text(data.cDate);
} else { } else {
console.log(data.msg);
} }
}); });
} }
console.log(_date);
} }
let VueApp = new Vue({ let VueApp = new Vue({
@@ -58,12 +58,12 @@
], ],
selected: {}, selected: {},
select(item, t) { select(item, t) {
console.log("select search1", t);
//帶入預設日期 //帶入預設日期
axios axios
.get(HTTP_HOST + 'api/activity/GetKindDate/' + t.num) .get(HTTP_HOST + 'api/activity/GetKindDate/' + t.num)
.then(response => { .then(response => {
console.log(response.data.startDate_solar);
$('#<%= startDate_solar.ClientID%>').val(response.data.startDate_solar); $('#<%= startDate_solar.ClientID%>').val(response.data.startDate_solar);
$('#<%= endDate_solar.ClientID%>').val(response.data.endDate_solar); $('#<%= endDate_solar.ClientID%>').val(response.data.endDate_solar);
$('#<%= startDate_lunar.ClientID%>').val(response.data.startDate_lunar); $('#<%= startDate_lunar.ClientID%>').val(response.data.startDate_lunar);
@@ -91,8 +91,6 @@
], ],
selected: {}, selected: {},
select(item, t) { select(item, t) {
console.log("select search2", t);
item.act_item_selected.text = t.subject item.act_item_selected.text = t.subject
item.act_item_selected.val = t.num item.act_item_selected.val = t.num
item.price = t.price item.price = t.price
@@ -115,7 +113,6 @@
], ],
selected: {}, selected: {},
select(item, t) { select(item, t) {
console.log("select search3", t);
item.act_item_selected.text = t.subject item.act_item_selected.text = t.subject
item.act_item_selected.val = t.num item.act_item_selected.val = t.num
@@ -136,7 +133,6 @@
], ],
selected: {}, selected: {},
select(item, t) { select(item, t) {
console.log("select search4", t);
} }
}, },
@@ -197,6 +193,7 @@
has_chao_limit: false, has_chao_limit: false,
yang_limit_count: 0, yang_limit_count: 0,
chao_limit_count: 0, chao_limit_count: 0,
},
defaultItem: { defaultItem: {
id: 0, id: 0,
num: 0, num: 0,
@@ -276,18 +273,6 @@
order_dialog: { order_dialog: {
show: false, show: false,
}, },
loading: false,
search: '',
headers: [
{ text: '訂單編號', value: 'order_no' },
{ text: '信眾編號', value: 'f_number' },
{ text: '信眾姓名', value: 'u_name' },
{ text: '聯絡電話', value: 'phone' },
{ text: '建立日期', value: 'order_date' },
],
items: [
{ order_no: "D", member_name: "S", order_date:"2025-12-07"}
],
unfilled_list: { unfilled_list: {
loading: false, loading: false,
search: '', search: '',
@@ -302,6 +287,7 @@
{ order_no: "D", member_name: "S", order_date: "2025-12-07" } { order_no: "D", member_name: "S", order_date: "2025-12-07" }
], ],
}, },
} }
}, },
mounted() { mounted() {
@@ -314,7 +300,7 @@
handler() { handler() {
//console.log("watch1", this.search_dialog, this.search_dialog.page); //console.log("watch1", this.search_dialog, this.search_dialog.page);
this.search_get() this.search_get()
console.log("watch2", this.search_dialog, this.search_dialog.page);
}, },
deep: true, deep: true,
}, },
@@ -360,7 +346,7 @@
if (this.search_dialog.current.id == 'search3') { if (this.search_dialog.current.id == 'search3') {
search['category'] = "3";//備品 search['category'] = "3";//備品
} }
console.log("search_get", api_url, search, params, this.options);
this.search_dialog.loading = true this.search_dialog.loading = true
axios.post(api_url, search, { params: params }) axios.post(api_url, search, { params: params })
.then(response => { .then(response => {
@@ -452,7 +438,7 @@
axios axios
.delete(HTTP_HOST + 'api/activity/DeleteRelatingData/' + item.num) .delete(HTTP_HOST + 'api/activity/DeleteRelatingData/' + item.num)
.then(response => { .then(response => {
console.log("del", item);
this.desserts.splice(index, 1) this.desserts.splice(index, 1)
this.desserts_count = this.desserts_count - 1; this.desserts_count = this.desserts_count - 1;
}) })
@@ -752,7 +738,7 @@
}; };
// Add form fields // Add form fields
console.log(this.thisItemSelected.val, this.thisFilesSelected.val,JSON.stringify(list));
addHiddenField("item", this.thisItemSelected.val); addHiddenField("item", this.thisItemSelected.val);
addHiddenField("file", this.thisFilesSelected.val); addHiddenField("file", this.thisFilesSelected.val);
addHiddenField("list", JSON.stringify(list)); addHiddenField("list", JSON.stringify(list));
@@ -1328,83 +1314,7 @@
</div> </div>
<div class="tab-pane fade giftItems" id="sec2-page3" role="tabpanel" aria-labelledby="sec2-tab3" v-if="this_id!=''">
<v-card class="mx-auto" outlined v-if="this_id!=''">
<v-data-table
:headers="headersSpares"
:items="sparesItems"
:footer-props="footersDetail"
:search="searchSpares"
:options.sync="optionsSpares" class="elevation-1" fixed-header height="350px"
>
<v-divider inset></v-divider>
<template v-slot:top>
<v-toolbar flat color="white">
<div class="d-flex w-100">
<v-text-field v-model="searchSpares" append-icon="mdi-magnify" label="查詢" dense outlined single-line hide-details></v-text-field>
<v-btn
color="primary"
class="ml-2 white--text"
@click="addNewSp">
<v-icon dark>mdi-plus</v-icon>新增
</v-btn>
</div>
</v-toolbar>
</template>
<template v-slot:item.act="{ item }">
<div class="input-group mb-3" data-search-control="search3" @click="search_show(search_dialog.controls.search3)" v-if="item.id === modifyItem.id">
<input class="form-control search-text" type="text" readonly
placeholder="品項名稱" v-model="modifyItem.act_item_selected.text" >
<input type="hidden" v-model="modifyItem.act_item_selected.val">
<button class="btn btn-outline-secondary" type="button">
<i class="mdi mdi-view-list-outline"></i>
</button>
</div>
<span v-else>{{item.act_item_selected.text}}
<span v-if="item.num==0" class="text-danger">(預設資料,未存檔)</span>
</span>
</template>
<%-- <template v-slot:item.qty1="{ item }">
<v-text-field v-model="modifyItem.qty1" :hide-details="true" dense single-line v-if="item.id === modifyItem.id" ></v-text-field>
<span v-else>{{item.qty1}}</span>
</template>
<template v-slot:item.qty2="{ item }">
<v-text-field v-model="modifyItem.qty2" :hide-details="true" dense single-line v-if="item.id === modifyItem.id" ></v-text-field>
<span v-else>{{item.qty2}}</span>
</template>--%>
<template v-slot:item.demo="{ item }">
<v-text-field v-model="modifyItem.demo" :hide-details="true" dense single-line v-if="item.id === modifyItem.id" ></v-text-field>
<span v-else>{{item.demo}}</span>
</template>
<template v-slot:item.actions="{ item }">
<div v-if="item.id === modifyItem.id">
<v-icon color="red" class="mr-3" @click="cancelSp">
mdi-window-close
</v-icon>
<v-icon color="green" @click="saveSp">
mdi-content-save
</v-icon>
</div>
<div v-else>
<v-icon color="green" class="mr-3" @click="editItem(item,true);">
mdi-pencil
</v-icon>
<v-icon color="red" @click="deleteItemSp(item)">
mdi-delete
</v-icon>
</div>
</template>
</v-data-table>
</v-card>
</div>
<div class="tab-pane fade" id="sec2-page4" role="tabpanel" aria-labelledby="sec2-tab4" v-if="this_id!=''"> <div class="tab-pane fade" id="sec2-page4" role="tabpanel" aria-labelledby="sec2-tab4" v-if="this_id!=''">
<v-card class="mx-auto" outlined id="print-unfilled-area"> <v-card class="mx-auto" outlined id="print-unfilled-area">
+7 -84
View File
@@ -311,14 +311,14 @@ public partial class admin_activity_reg : MyWeb.config
//var printInitValue = printInit.Text.Trim(); //var printInitValue = printInit.Text.Trim();
//activity.print_init = !string.IsNullOrEmpty(printInitValue) ? printInitValue : null; //activity.print_init = !string.IsNullOrEmpty(printInitValue) ? printInitValue : null;
activity.kind = Val(kind.Value); activity.kind = Val(kind.Value);
activity.category_kind = Val(category_kind.Value); //activity.category_kind = Val(category_kind.Value);
activity.reg_time = DateTime.Now; activity.reg_time = DateTime.Now;
_db.activities.Add(activity); _db.activities.Add(activity);
_db.SaveChanges(); _db.SaveChanges();
int _id = activity.num; int t_id = activity.num;
if (_id > 0) if (t_id > 0)
{ {
RunAutoEnroll(_id); RunAutoEnroll(t_id);
Model.admin_log admin_log = new Model.admin_log(); Model.admin_log admin_log = new Model.admin_log();
admin_log.writeLog(admin.info.u_id, (int)Model.admin_log.Systems.Activity, (int)Model.admin_log.Status.Insert, subject.Text); admin_log.writeLog(admin.info.u_id, (int)Model.admin_log.Systems.Activity, (int)Model.admin_log.Status.Insert, subject.Text);
@@ -336,8 +336,8 @@ public partial class admin_activity_reg : MyWeb.config
activity.reg_time = DateTime.Now; activity.reg_time = DateTime.Now;
_db.activities.Add(activity); _db.activities.Add(activity);
_db.SaveChanges(); _db.SaveChanges();
int _id = activity.num; t_id = activity.num;
if (_id > 0) if (t_id > 0)
{ {
Model.admin_log admin_log = new Model.admin_log(); Model.admin_log admin_log = new Model.admin_log();
admin_log.writeLog(admin.info.u_id, (int)Model.admin_log.Systems.Activity, (int)Model.admin_log.Status.Insert, subject.Text); admin_log.writeLog(admin.info.u_id, (int)Model.admin_log.Systems.Activity, (int)Model.admin_log.Status.Insert, subject.Text);
@@ -421,7 +421,7 @@ public partial class admin_activity_reg : MyWeb.config
else else
{ {
//activity.category_kind = Val(category_kind.Value); //activity.category_kind = Val(category_kind.Value);
activity.category_kind = Val(category_kind.Value); //activity.category_kind = Val(category_kind.Value);
_db.SaveChanges(); _db.SaveChanges();
RunAutoEnroll(activity.num); RunAutoEnroll(activity.num);
@@ -524,84 +524,7 @@ private void RunAutoEnroll(int activityNum)
} }
} }
private void RunAutoEnroll(int activityNum)
{
var activity = _db.activities.FirstOrDefault(a => a.num == activityNum);
if (activity == null || !activity.startDate_solar.HasValue) return;
DateTime actDate = activity.startDate_solar.Value;
var validConfigs = _db.auto_enroll
.Where(ae => actDate >= ae.start_date && actDate <= ae.end_date)
.ToList();
foreach (var config in validConfigs)
{
if (_db.pro_order.Any(o => o.activity_num == activity.num && o.f_num == config.f_num))
continue;
var follower = _db.followers.FirstOrDefault(f => f.num == config.f_num);
if (follower == null) continue;
string newOrderNo = AutoOrderService.CreateAutoOrderNumber(_db);
Model.pro_order proOrder = new Model.pro_order
{
order_no = newOrderNo,
up_time = DateTime.Now,
reg_time = DateTime.Now,
keyin1 = "A01",
f_num = follower.num,
au_num = config.num,
phone = !string.IsNullOrEmpty(follower.cellphone) ? follower.cellphone : (follower.phone ?? ""),
activity_num = activity.num,
address = config.receipt_address ?? "",
receipt_title = config.receipt_title ?? "",
demo = "",
customize_data = ""
};
_db.pro_order.Add(proOrder);
CopyLatestOrderDetails(newOrderNo, config.f_num, (int)activity.kind);
}
_db.SaveChanges();
}
private void CopyLatestOrderDetails(string newOrderNo, int f_num, int activityKind)
{
var latestOrder = _db.pro_order
.Where(o => o.f_num == f_num && o.activity.kind == activityKind && _db.pro_order_detail.Any(d => d.order_no == o.order_no))
.OrderByDescending(o => o.order_no)
.FirstOrDefault();
if (latestOrder != null)
{
var prevDetails = _db.pro_order_detail.Where(d => d.order_no == latestOrder.order_no).ToList();
foreach (var detail in prevDetails)
{
Model.pro_order_detail newDetail = new Model.pro_order_detail
{
order_no = newOrderNo,
actItem_num = detail.actItem_num,
parent_num = detail.parent_num,
print_id = detail.print_id,
f_num = detail.f_num,
f_num_tablet = detail.f_num_tablet,
address = detail.address,
from_id = detail.from_id,
from_id_tablet = detail.from_id_tablet,
qty = detail.qty,
price = detail.price,
start_date = DateTime.Today,
pay = 0,
UpdateTime = DateTime.Now
};
_db.pro_order_detail.Add(newDetail);
}
}
}
#endregion #endregion
+2 -3
View File
@@ -110,7 +110,7 @@
.then(res => { .then(res => {
this.activity_statistics.items = res.data.items; this.activity_statistics.items = res.data.items;
this.activity_statistics.totalItems = res.data.count; this.activity_statistics.totalItems = res.data.count;
console.log(this.activity_statistics.options)
}) })
.catch(error => { .catch(error => {
@@ -123,8 +123,7 @@
watch: { watch: {
selected_activity: { selected_activity: {
handler(newvalue, oldvalue) { handler(newvalue, oldvalue) {
console.log('新值:', newvalue);
console.log('舊值:', oldvalue);
}, },
deep: true deep: true
}, },
@@ -400,7 +400,7 @@
async saveRegistrantMethod() { async saveRegistrantMethod() {
try { try {
const response = await axios.post(HTTP_HOST + 'api/ancestraltablet/registrant/create', this.form.createRegister); const response = await axios.post(HTTP_HOST + 'api/ancestraltablet/registrant/create', this.form.createRegister);
console.log('保存成功', response.data);
// 可選:提示用戶、關閉對話框、刷新數據等 // 可選:提示用戶、關閉對話框、刷新數據等
this.$toast?.success('登記人保存成功'); // 取決於你是否使用 toast 插件 this.$toast?.success('登記人保存成功'); // 取決於你是否使用 toast 插件
@@ -416,7 +416,7 @@
updateRegistrantMethod() { updateRegistrantMethod() {
axios.post(HTTP_HOST + 'api/ancestraltablet/registrant/update', this.form.createRegister) axios.post(HTTP_HOST + 'api/ancestraltablet/registrant/update', this.form.createRegister)
.then(response => { .then(response => {
console.log('登記人更新成功:', response.data);
this.$toast?.success?.('登記人更新成功'); // 可選:使用 toast 彈出提示 this.$toast?.success?.('登記人更新成功'); // 可選:使用 toast 彈出提示
//this.showCreatePWFlag = false; // 關閉彈出視窗 //this.showCreatePWFlag = false; // 關閉彈出視窗
// 可選:刷新列表等 // 可選:刷新列表等
+2 -2
View File
@@ -76,7 +76,7 @@
if (getArray != undefined && getArray != null ) { if (getArray != undefined && getArray != null ) {
var keys = Object.keys(getArray); var keys = Object.keys(getArray);
for (let i = 0; i < keys.length; i++) { for (let i = 0; i < keys.length; i++) {
console.log(`${keys[i]}:${getArray[keys[i]]}`); //value : text
var _tmp = { var _tmp = {
text: getArray[keys[i]], text: getArray[keys[i]],
val: parseInt(keys[i]), val: parseInt(keys[i]),
@@ -125,7 +125,7 @@
axios axios
.delete(HTTP_HOST + 'api/bed_kind/DeleteBedKindDetail/' + item.num) .delete(HTTP_HOST + 'api/bed_kind/DeleteBedKindDetail/' + item.num)
.then(response => { .then(response => {
console.log("del", item);
this.desserts.splice(index, 1) this.desserts.splice(index, 1)
this.desserts_count = this.desserts_count - 1; this.desserts_count = this.desserts_count - 1;
}) })
+3 -3
View File
@@ -528,7 +528,7 @@
if (selectedItem.price) { if (selectedItem.price) {
this.currentRow.selected_items_text += ` (NT$${Number(selectedItem.price).toLocaleString()})`; this.currentRow.selected_items_text += ` (NT$${Number(selectedItem.price).toLocaleString()})`;
} }
console.log('已選擇項目:', selectedItem.subject, '項目編號:', selectedItem.num);
} }
} }
} }
@@ -731,7 +731,7 @@
search.is_reconcile = 'Y'; search.is_reconcile = 'Y';
} }
console.log("search_get", api_url, search, params, this.options);
this.search_dialog.loading = true; this.search_dialog.loading = true;
axios.post(api_url, search, { params: params }) axios.post(api_url, search, { params: params })
@@ -770,7 +770,7 @@
curr.select(this, row); curr.select(this, row);
} }
this.search_dialog.show = false; this.search_dialog.show = false;
console.log('Selected row:', row);
}, },
showItemSelectDialog(item) { showItemSelectDialog(item) {
// //
+3 -3
View File
@@ -81,7 +81,7 @@
.catch(error => console.log(error)) .catch(error => console.log(error))
}, },
editItem(item) { editItem(item) {
console.log("edit", item);
}, },
deleteItem(item) { deleteItem(item) {
@@ -91,7 +91,7 @@
axios axios
.delete(HTTP_HOST + 'api/FilesSet/' + item.num) .delete(HTTP_HOST + 'api/FilesSet/' + item.num)
.then(response => { .then(response => {
console.log("del", item);
this.data_table.list.splice(index, 1); this.data_table.list.splice(index, 1);
this.data_table.count = this.data_table.list.length this.data_table.count = this.data_table.list.length
}) })
@@ -104,7 +104,7 @@
axios axios
.delete(HTTP_HOST + 'api/FilesSet/Delete/' + this.data_table.selected.map(x => x.num)) .delete(HTTP_HOST + 'api/FilesSet/Delete/' + this.data_table.selected.map(x => x.num))
.then(response => { .then(response => {
console.log("delAll");
for (var i = 0; i < this.data_table.selected.length; i++) { for (var i = 0; i < this.data_table.selected.length; i++) {
const index = this.data_table.list.indexOf(this.data_table.selected[i]); const index = this.data_table.list.indexOf(this.data_table.selected[i]);
+105 -8
View File
@@ -22,15 +22,43 @@
<ul class="dropdown-menu style-menu"> <ul class="dropdown-menu style-menu">
<%--<li><span class="dropdown-item" data-value="">選擇版型</span></li>--%> <%--<li><span class="dropdown-item" data-value="">選擇版型</span></li>--%>
</ul> </ul>
<input type="text" id="styleName" class="form-control" aria-label="版型名稱">
</div>
<div class="input-group mb-3">
<div class="row">
<div class="col-2">
<a class="" style="cursor:pointer;text-decoration: none;color:white;width:30px;height:30px;font-size:30px;"
title="增加版型" onclick="Designer.changeStyle('000001')">+</a></div>
<div class="col-8"> <input type="text" id="styleName" class="form-control" aria-label="版型名稱"></div>
<div class="col-2">
<a class="" style="cursor:pointer;text-decoration: none;color:white;width:30px;height:30px;font-size:30px;"
title="刪除版型" onclick="Designer.removeStyle()">-</a></div>
</div>
</div> </div>
<div class="row">
<div class="col-2">
<a class="" style="cursor:pointer;text-decoration: none;color:white;width:30px;height:30px;font-size:30px;"
title="增加尺寸" onclick="Designer.changePaper1('newsize')">+</a>
</div>
<div class="col-8">
<div class="form-floating mb-3"> <div class="form-floating mb-3">
<select class="form-select form-select-sm mb-2 " onchange="Designer.changePaper()" id="paperSize"> <select class="form-select form-select-sm mb-2 " onchange="Designer.changePaper()" id="paperSize">
<option value="">請選擇</option> <option value="">請選擇</option>
</select> </select>
<label for="paperSize" style="color: black">尺寸</label> <label for="paperSize" style="color: black">內容尺寸</label>
</div> </div>
</div>
<div class="col-2">
<a class="" style="cursor:pointer;text-decoration: none;color:white;width:30px;height:30px;font-size:30px;"
title="刪除尺寸" onclick="Designer.removePaper()">-</a>
</div>
</div>
<div id="sizeDiv" style="display: none;"> <div id="sizeDiv" style="display: none;">
<div class="form-floating mb-3"> <div class="form-floating mb-3">
<input type="text" class="form-control form-select-sm mb-2 " id="paperName" /> <input type="text" class="form-control form-select-sm mb-2 " id="paperName" />
@@ -52,9 +80,9 @@
<span class="btn btn-info" onclick="Designer.savePaperSize()">儲存</span> <span class="btn btn-info" onclick="Designer.savePaperSize()">儲存</span>
</div> </div>
</div> </div>
<div id="paperOrientation" onclick="Designer.changeOrientation()" class="mb-2"> <%-- <div id="paperOrientation" onclick="Designer.changeOrientation()" class="mb-2">
<span></span> <span></span>
</div> </div>--%>
<div> <div>
<ul class="navbar-nav"> <ul class="navbar-nav">
<li class="nav-item dropdown"> <li class="nav-item dropdown">
@@ -259,7 +287,7 @@
this.bg.forEach(x => { this.bg.forEach(x => {
$("#backendInp").append("<option value='" + x.name + "'>" + x.name + "</option>") $("#backendInp").append("<option value='" + x.name + "'>" + x.name + "</option>")
}); });
$("#paperOrientation").html("<span>直向</span>") //$("#paperOrientation").html("<span>直向</span>")
this.toast = new bootstrap.Toast($('#liveToast')); this.toast = new bootstrap.Toast($('#liveToast'));
}, },
print() { print() {
@@ -440,6 +468,9 @@
}, },
async getPaperSize() { async getPaperSize() {
let self = this let self = this
self.allSize.length = 0;
$("#paperSize").html("")
$("#printSize").html("")
await axios await axios
.post(HTTP_HOST + 'api/tablet/GetPaperSize', {}) .post(HTTP_HOST + 'api/tablet/GetPaperSize', {})
.then(response => { .then(response => {
@@ -476,6 +507,9 @@
}); });
}, },
async getStyles() { async getStyles() {
let self = this
self.allSize.length = 0
$(".style-menu").html("")
await axios await axios
.post(HTTP_HOST + 'api/tablet/GetStyleData', {}) .post(HTTP_HOST + 'api/tablet/GetStyleData', {})
.then(response => { .then(response => {
@@ -484,7 +518,7 @@
let data = response.data; let data = response.data;
if (data.result == "Y") { if (data.result == "Y") {
data.data.forEach(x => { data.data.forEach(x => {
this.allStyle.push(x); self.allStyle.push(x);
$(".style-menu").append("<li><span class='dropdown-item style-item' data-value='" + x.styleID + "'>" + x.name + "</span></li>"); $(".style-menu").append("<li><span class='dropdown-item style-item' data-value='" + x.styleID + "'>" + x.name + "</span></li>");
}); });
@@ -597,6 +631,10 @@
el.y = $("#yPosition").val(); el.y = $("#yPosition").val();
$(`.tablet-element[id="${this.activeId}"]`).css({ left: el.x + "mm", top: el.y + "mm" }); $(`.tablet-element[id="${this.activeId}"]`).css({ left: el.x + "mm", top: el.y + "mm" });
}, },
changePaper1(val) {
$("#paperSize").val(val)
this.changePaper()
},
changePaper() { changePaper() {
let paperSize = $("#paperSize").val() let paperSize = $("#paperSize").val()
let self = this; let self = this;
@@ -613,13 +651,69 @@
}); });
} }
}, },
async removePaper() {
let self = this;
let paperSize = $("#paperSize").val()
//console.log("paperSize:",paperSize);
if (paperSize == "newsize" || paperSize == "" || paperSize == null || paperSize==undefined) {
$("#toast_body").html("請選擇要刪除的尺寸")
self.toast.show();
return false
}
let ps = { paperSize: paperSize }
await axios
.post(HTTP_HOST + 'api/tablet/DelPaperSize', ps)
.then(response => {
if (response.status == "200") {
//if (response.data.result == "Y") {
$("#toast_body").html(`${response.data.message}`)
self.toast.show();
//}
if (response.data.result == "Y") {
self.getPaperSize()
$("#paperSize").val("")
this.changePaper()
}
}
});
},
async removeStyle() {
let self = this;
let sID = this.styleID
//console.log("styleID:", sID);
if (sID == "000001" || sID == null || sID == undefined) {
$("#toast_body").html("請選擇要刪除的版型")
self.toast.show();
return false
}
let ps = { styleID: sID }
await axios
.post(HTTP_HOST + 'api/tablet/DelTabletStyle', ps)
.then(response => {
if (response.status == "200") {
//if (response.data.result == "Y") {
$("#toast_body").html(`${response.data.message}`)
self.toast.show();
//}
if (response.data.result == "Y") {
self.getStyles()
}
}
});
},
async savePaperSize() { async savePaperSize() {
let ps = { let ps = {
paperName: $("#paperName").val(), paperName: $("#paperName").val(),
width: $("#paperWidth").val(), width: $("#paperWidth").val(),
height: $("#paperHeight").val() height: $("#paperHeight").val()
} }
console.log(ps); let self = this;
//console.log(ps);
await axios await axios
.post(HTTP_HOST + 'api/tablet/SavePaperSize', ps) .post(HTTP_HOST + 'api/tablet/SavePaperSize', ps)
.then(response => { .then(response => {
@@ -628,6 +722,9 @@
$("#toast_body").html(`${"ok"}`) $("#toast_body").html(`${"ok"}`)
self.toast.show(); self.toast.show();
self.getPaperSize()
$("#paperSize").val("")
self.changePaper()
} }
} }
}); });
@@ -642,7 +739,7 @@
bindEvents() { bindEvents() {
// 文字變更連動渲染 // 文字變更連動渲染
//$('#rosterLimit').on('input', (e) =>this.) //$('#rosterLimit').on('input', (e) =>this.)
console.log("OOQ"); //console.log("OOQ");
$('#inp-text').on('input', (e) => this.updateActive('text', $(e.target).val())); $('#inp-text').on('input', (e) => this.updateActive('text', $(e.target).val()));
$('#inp-size').on('input', (e) => this.updateActive('fontSize', $(e.target).val())); $('#inp-size').on('input', (e) => this.updateActive('fontSize', $(e.target).val()));
$('#width').on('input', (e) => this.updateActive('width', $(e.target).val())) $('#width').on('input', (e) => this.updateActive('width', $(e.target).val()))
+15 -9
View File
@@ -12,12 +12,12 @@
</v-text-field>--> </v-text-field>-->
<!--</v-col>--> <!--</v-col>-->
<v-col cols="2" md="2"> <v-col cols="12" md="2">
<v-text-field label="法會名稱" v-model="search.subject"> <v-text-field label="法會名稱" v-model="search.subject">
</v-text-field> </v-text-field>
</v-col> </v-col>
<v-col cols="2" md="2"> <v-col cols="12" md="2">
<!--<v-text-field label="開始日期" v-model="search.uptime1"> <!--<v-text-field label="開始日期" v-model="search.uptime1">
</v-text-field>--> </v-text-field>-->
@@ -39,7 +39,7 @@
@input="startmenu = false"></v-date-picker> @input="startmenu = false"></v-date-picker>
</v-menu> </v-menu>
</v-col> </v-col>
<v-col cols="2" md="2"> <v-col cols="12" md="2">
<v-btn @click.prevent="getDefault()">查詢</v-btn> <v-btn @click.prevent="getDefault()">查詢</v-btn>
<v-btn @click.prevent="clearSearch()">清空條件</v-btn> <v-btn @click.prevent="clearSearch()">清空條件</v-btn>
</v-col> </v-col>
@@ -59,10 +59,8 @@
hide-default-footer hide-default-footer
:page.sync="data_table.page" :page.sync="data_table.page"
:items-per-page.sync="data_table.pageSize" :items-per-page.sync="data_table.pageSize"
disable-sort
class="elevation-1"> class="elevation-1">
<template #item.up_time="{ item }">
{{ item.up_time|timeString('YYYY/MM/DD') }}
</template>
<template #item.u_name="{ item }"> <template #item.u_name="{ item }">
<a v-if="item.f_num != null && item.activity_num != null" @click="checkInMsg(item)" class="btn btn-outline-secondary btn-sm"><i class="mdi mdi-account-check"></i>報到</a> <a v-if="item.f_num != null && item.activity_num != null" @click="checkInMsg(item)" class="btn btn-outline-secondary btn-sm"><i class="mdi mdi-account-check"></i>報到</a>
{{ item.u_name }} {{ item.u_name }}
@@ -99,7 +97,6 @@
</template> </template>
<script> <script>
module.exports = { module.exports = {
props: ['formData'], props: ['formData'],
data() { data() {
@@ -121,8 +118,8 @@
header: [ header: [
{ text: '活動分類', value: 'kindsTxt' }, { text: '活動分類', value: 'kindsTxt' },
{ text: '活動名稱', value: 'subject' }, { text: '活動名稱', value: 'subject' },
{ text: '開始日期', value: 'startDate_solar' }, { text: '開始日期', value: 'startDate' },
{ text: '結束日期', value: 'endDate_solar', align: 'start' }, { text: '結束日期', value: 'endDate' },
{ text: '報名人數', value: 'orderCounts' }, { text: '報名人數', value: 'orderCounts' },
{ text: '', value: 'slot_btn', sortable: false, align: 'end' } { text: '', value: 'slot_btn', sortable: false, align: 'end' }
], ],
@@ -192,7 +189,16 @@
deep: true, deep: true,
}, },
}, },
filters: {
timestring(value) {
console.log("timeString:", value)
return "20260102";
//return (value == null || value == "") ? "" : moment(value).format('YYYY-MM-DD');
},
},
methods: { methods: {
initKindList() { initKindList() {
axios axios
//.get(HTTP_HOST + 'api/activity_kind') //.get(HTTP_HOST + 'api/activity_kind')
+17 -8
View File
@@ -8,10 +8,10 @@
<v-expansion-panel-header color="#006fc9" <v-expansion-panel-header color="#006fc9"
class="white--text"> class="white--text">
<v-row> <v-row>
<v-col cols="10" md="10"> <v-col cols="4" sm="4" md="10">
<label>查詢條件</label> <label>查詢條件</label>
</v-col> </v-col>
<v-col cols="2" md="2"> <v-col cols="8" sm="8" md="2">
<v-btn @click.prevent='fast_signup' class="ms-auto">快速報名</v-btn> <v-btn @click.prevent='fast_signup' class="ms-auto">快速報名</v-btn>
<v-btn @click.prevent="back01()" class="ms-auto">返回</v-btn> <v-btn @click.prevent="back01()" class="ms-auto">返回</v-btn>
</v-col> </v-col>
@@ -19,27 +19,27 @@
</v-expansion-panel-header> </v-expansion-panel-header>
<v-expansion-panel-content> <v-expansion-panel-content>
<v-row> <v-row>
<v-col cols="2" md="2"> <v-col cols="12" sm="12" md="2">
<v-text-field label="姓名" v-model="search.u_name"> <v-text-field label="姓名" v-model="search.u_name">
</v-text-field> </v-text-field>
</v-col> </v-col>
<v-col cols="2" md="2"> <v-col cols="12" sm="12" md="2">
<v-text-field label="電話" v-model="search.phone"> <v-text-field label="電話" v-model="search.phone">
</v-text-field> </v-text-field>
</v-col> </v-col>
<v-col cols="2" md="2"> <v-col cols="12" sm="12" md="2">
<v-text-field label="行動電話" v-model="search.cellphone"> <v-text-field label="行動電話" v-model="search.cellphone">
</v-text-field> </v-text-field>
</v-col> </v-col>
<v-col cols="2" md="2"> <v-col cols="12" sm="12" md="2">
<v-text-field label="身分證號" v-model="search.id_code"> <v-text-field label="身分證號" v-model="search.id_code">
</v-text-field> </v-text-field>
</v-col> </v-col>
<v-col cols="2" md="2"> <v-col cols="12" sm="12" md="4">
<v-btn @click.prevent="getDetail()">查詢</v-btn> <v-btn @click.prevent="getDetail()">查詢</v-btn>
<v-btn @click.prevent="clearSearch()">清空條件</v-btn> <v-btn @click.prevent="clearSearch()">清空條件</v-btn>
</v-col> </v-col>
@@ -62,7 +62,9 @@
hide-default-footer hide-default-footer
:page.sync="detail_table.page" :page.sync="detail_table.page"
:items-per-page.sync="detail_table.pageSize" :items-per-page.sync="detail_table.pageSize"
disable-sort
class="elevation-1"> class="elevation-1">
<template #item.slot_btn="{ item }"> <template #item.slot_btn="{ item }">
<!--<a :href="'reg.aspx?order_no='+item.order_no" class="btn btn-outline-secondary btn-sm"><i class="mdi mdi-pencil-box-outline"></i>修改</a> <!--<a :href="'reg.aspx?order_no='+item.order_no" class="btn btn-outline-secondary btn-sm"><i class="mdi mdi-pencil-box-outline"></i>修改</a>
<a @click="$root.currentView='step-three';$root.selected_order=item.order_no" class="btn btn-outline-secondary btn-sm">明細</a> <a @click="$root.currentView='step-three';$root.selected_order=item.order_no" class="btn btn-outline-secondary btn-sm">明細</a>
@@ -95,6 +97,7 @@
</template> </template>
<script> <script>
module.exports = { module.exports = {
props: { props: {
num: { num: {
@@ -122,7 +125,7 @@
header: [ header: [
{ text: '單號', value: 'order_no' }, { text: '單號', value: 'order_no' },
{ text: '姓名', value: 'u_name' }, { text: '姓名', value: 'u_name' },
{ text: '報名日期', value: 'up_time' }, { text: '報名日期', value: 'uptime' },
{ text: '單據狀態', value: 'keyin1_txt', align: 'start' }, { text: '單據狀態', value: 'keyin1_txt', align: 'start' },
{ text: '', value: 'slot_btn', sortable: false, align: 'end' } { text: '', value: 'slot_btn', sortable: false, align: 'end' }
], ],
@@ -148,6 +151,12 @@
}, },
}, },
filters: {
timeString(value, myFormat) {
console.log("timeString:", value, myFormat)
return value == null || value == "" ? "" : moment(value).format(myFormat || 'YYYY-MM-DD, HH:mm:ss');
},
},
methods: { methods: {
back01() { back01() {
this.$emit('custom-event', { action: 'signup1', item: this.num }); this.$emit('custom-event', { action: 'signup1', item: this.num });
+6 -1
View File
@@ -423,7 +423,12 @@
// console.log("saveOrder:", x, x.num, x.order_no) // console.log("saveOrder:", x, x.num, x.order_no)
} }
}) })
if (detail.length === 0) {
this.message_dialog.show_confirm = false
this.message_dialog.show = true
this.message_dialog.message = "沒有選擇功德項目,如果無法選擇,請使用一般報名程序"
return false
}
// //
let main = { let main = {
activity_num: this.num, f_num: this.follower.num, activity_num: this.num, f_num: this.follower.num,
+1
View File
@@ -25,6 +25,7 @@
hide-default-footer hide-default-footer
:page.sync="detail_table.page" :page.sync="detail_table.page"
:items-per-page.sync="detail_table.pageSize" :items-per-page.sync="detail_table.pageSize"
disable-sort
class="elevation-1"> class="elevation-1">
<template #item.slot_btn="{ item }"> <template #item.slot_btn="{ item }">
</template> </template>
+2 -1
View File
@@ -62,7 +62,7 @@
header: [ header: [
{ text: '單號', value: 'order_no' }, { text: '單號', value: 'order_no' },
{ text: '姓名', value: 'u_name' }, { text: '姓名', value: 'u_name' },
{ text: '報名日期', value: 'up_time' }, { text: '報名日期', value: 'uptime' },
{ text: '單據狀態', value: 'keyin1_txt', align: 'start' }, { text: '單據狀態', value: 'keyin1_txt', align: 'start' },
{ text: '', value: 'slot_btn', sortable: false, align: 'end' } { text: '', value: 'slot_btn', sortable: false, align: 'end' }
], ],
@@ -109,6 +109,7 @@
methods: { methods: {
changeView(item) { changeView(item) {
if (item.action === "detail") { if (item.action === "detail") {
console.log("change to fastSignup2")
this.twoData = item.item.num this.twoData = item.item.num
this.currentView = "fastSignUp2-component" this.currentView = "fastSignUp2-component"
} else if (item.action === "add") { } else if (item.action === "add") {
-5
View File
@@ -42,14 +42,9 @@
<add key="UseSearchKeywords" value="true" /> <add key="UseSearchKeywords" value="true" />
<!--網站的簡稱,用來區別session和cookie--> <!--網站的簡稱,用來區別session和cookie-->
<add key="SC" value="erp17168" /> <add key="SC" value="erp17168" />
<<<<<<< HEAD
<add key="LogPath" value="D:\\log\\" /> <add key="LogPath" value="D:\\log\\" />
<!--是否啟用信眾自動編號 (true=啟用, false=停用)--> <!--是否啟用信眾自動編號 (true=啟用, false=停用)-->
<add key="IsAutoNumbering" value="true" /> <add key="IsAutoNumbering" value="true" />
=======
<!--是否啟用信眾自動編號 (true=啟用, false=停用)-->
<add key="IsAutoNumbering" value="true" />
>>>>>>> 0.1
</appSettings> </appSettings>
<connectionStrings> <connectionStrings>
<!--SQL用--> <!--SQL用-->