快速報名增加可選哪一次法會,複製另一個牌位內容成新一張牌位

This commit is contained in:
2026-05-24 10:48:18 +08:00
parent 2724173216
commit 889e5679aa
7 changed files with 134 additions and 35 deletions
+1
View File
@@ -88,6 +88,7 @@ namespace Model.ViewModel
public string full_description { get; set; }
public string order_info { get; set; }
public string style { get; set; }
public int? change_item_num { get; set; }
public List<family_members> mid_items { get; set; }
public List<family_members> left_items { get; set; }
+1
View File
@@ -957,6 +957,7 @@ public class activityController : ApiController
{
text = x.actItem?.subject,
val = x.actItem_num,
style=x.actItem.defaultStyle
},
price = x.price ?? 0,
qty = x.qty ?? 0,
+8 -7
View File
@@ -834,6 +834,7 @@ public class orderController : ApiController
var last_order = _db.pro_order.Where(x => x.order_no == last_order_no).FirstOrDefault();
if (last_order != null)
{
new_pro_order.up_time = DateTime.Now;
new_pro_order.reg_time = DateTime.Now;
new_pro_order.phone = last_order.phone;
@@ -849,17 +850,17 @@ public class orderController : ApiController
foreach (var item1 in details)
{
{//如果item1 change_item_num 有值且不為0,表示要複製過來
var last_detail = _db.pro_order_detail.Where(x => x.num == item1.num).FirstOrDefault();
var detail = new pro_order_detail();
detail.order_no = new_pro_order.order_no;
detail.actItem_num = last_detail.actItem_num;
detail.actItem_num = (item1.change_item_num!=null&&item1.change_item_num!=0)?item1.change_item_num: last_detail.actItem_num;
detail.f_num_tablet = last_detail.f_num_tablet;
detail.from_id = last_detail.from_id;
detail.price = last_detail.price;
detail.qty = last_detail.qty;
detail.printed_files = last_detail.printed_files;
detail.style = last_detail.style;
detail.from_id = (item1.change_item_num != null && item1.change_item_num != 0) ? item.f_num: last_detail.from_id;
detail.price = (item1.change_item_num != null && item1.change_item_num != 0) ? item1.price : last_detail.price;
detail.qty = (item1.change_item_num != null && item1.change_item_num != 0) ? item1.qty : last_detail.qty;
detail.printed_files = (item1.change_item_num != null && item1.change_item_num != 0) ? item1.printed_files : last_detail.printed_files;
detail.style = (item1.change_item_num != null && item1.change_item_num != 0) ? item1.style : last_detail.style;
detail.UpdateTime = DateTime.Now;
detail.start_date = DateTime.Now;//這兩個要用活動的
detail.due_date = DateTime.Now;//
+1 -1
View File
@@ -277,7 +277,7 @@
this.$emit('custom-event', { action:'detail', item:item });
},
getDetail(clearpage = false) {
console.log("test");
//console.log("test");
const { sortBy, sortDesc, page, itemsPerPage } = this.options
const params = {
sortBy: sortBy[0], sortDesc: sortDesc[0],
+118 -19
View File
@@ -64,22 +64,44 @@
</v-row>
<hr class="hr-text" data-content="前次法會功德" v-if="follower.f_number!=undefined&&follower.f_number!=''">
<v-row v-show="tablet_show">
<v-select :items="orders"
label="選擇法會"
item-text="subject" @change="changeOrderDetail()"
item-value="order_no" v-model="order_no">
</v-select>
</v-row>
<v-row v-show="tablet_show">
<v-col cols="12" sm="12">
<v-data-iterator :items="tablet_list" :items-per-page="-1"
hide-default-footer>
<template v-slot:default="{ items }">
<v-row>
<v-col cols="3" md="3" v-for="(item, i) in items" :key="i">
<v-col cols="4" md="4" v-for="(item, i) in items" :key="i">
<v-card-title>
<v-checkbox v-model="item.actitem_num_checked"
:disabled="item.disabled" class="custom-checkbox">
<template v-slot:label>
<h5 :class="renderDisabled(item)">{{ item.actitem_num_selected.text }}</h5>
</template>
</v-checkbox>
<v-row>
<v-col col="12" md="12">
<v-checkbox v-model="item.actitem_num_checked"
:disabled="item.disabled" class="custom-checkbox">
<template v-slot:label>
<h5 :class="renderDisabled(item)">{{ item.actitem_num_selected.text }}</h5>
</template>
</v-checkbox>
</v-col>
</v-row>
<v-row>
<v-col cols="3" md="3">
<v-btn class="ms-auto" @click.prevent="copytablet(item)">複製為</v-btn>
</v-col>
<v-col cols="9" md="9">
<v-select :items="act_items"
label="選擇功德項目"
item-text="act_item_selected.text"
item-value="act_item_selected.val" v-model="item.changeActitem">
</v-select>
</v-col>
</v-row>
</v-card-title>
<v-card-text>
<div v-html="renderTabletContent(item)" style="font-size:20px;"></div>
@@ -106,7 +128,8 @@
{{ message_dialog.message }}
</v-card-title>
<v-card-text>
<v-btn @click.prevent="message_dialog.show=false">關閉</v-btn>
<v-btn @click.prevent="message_dialog.show=false" v-if="!message_dialog.show_confirm">關閉</v-btn>
<v-btn @click.prevent="success_confirm()" v-if="message_dialog.show_confirm">確認</v-btn>
</v-card-text>
</v-card>
</template>
@@ -141,7 +164,7 @@
data() {
return {
transfer_dialog: { show: false, message: "" },
message_dialog: { show: false, message: "" },
message_dialog: { show: false,show_confirm:false, message: "" },
idNo: "",
phoneNum: "",
name: "",
@@ -154,7 +177,10 @@
id_code: { type: String }, cellphone: { type: String }
},
search_options: { multiSort: false },
tablet_show: false
tablet_show: false,
activityes: [],
order_no: "",
copy_item: {}
}
},
activated() {
@@ -175,6 +201,16 @@
return "enabled-checkbox"
}
},
copytablet(item) {
let t = this.act_items.find(x => x.act_item_selected.val == item.changeActitem)
let newTablet = structuredClone(item)
newTablet.id = this.tablet_list.length+1
newTablet.actitem_num_selected.val = t.act_item_selected.val
newTablet.actitem_num_selected.text = t.act_item_selected.text
newTablet.changeActitem = ""
newTablet.disabled=false
this.tablet_list.push(newTablet)
},
getActItem() {
this.act_items.length = 0
this.search = { num: this.num }
@@ -185,6 +221,12 @@
if (response.data.list) {
this.act_items = response.data.list
//if (this.act_items && this.act_items.length > 0) {
// this.act_items = this.act_items.map(x => ({
// ...x,selected:""
// }))
//}
console.log("QOO:",this.act_items)
}
else
console.log("查無資料");
@@ -235,7 +277,9 @@
if (response.data.list && response.data.list.length > 0) {
this.orders = response.data.list
this.orders = this.orders.filter(x => x.activity_num !== this.num)
console.log("orders",this.orders)
if (this.orders && this.orders.length > 0) {
this.getOrderDetail()
}
}
@@ -244,6 +288,31 @@
})
.catch(error => console.log(error))
},
changeOrderDetail() {
this.tablet_show = true
this.tablet_list.length = 0
let params = { sortBy: 'num', sortDesc: true, page: 1, pageSize: -1 };
let search1 = { order_no: this.order_no }
axios
.post(HTTP_HOST + 'api/order/GetItemList', search1, { params: params })
.then(response => {
if (response.data.list) {
this.tablet_list = response.data.list
this.tablet_list.forEach(x => {
let act_item = this.act_items.filter(y => y.act_item_selected.val === x.actitem_num_selected.val)
if (act_item && act_item.length > 0) {
x.disabled = false
} else {
x.disabled = true
}
x["changeActitem"] = ""
})
}
else
console.log("changeOrderDetail 查無資料");
})
.catch(error => console.log(error))
},
getOrderDetail() {
this.tablet_show = true
let params = { sortBy: 'num', sortDesc: true, page: 1, pageSize: -1 };
@@ -260,6 +329,7 @@
} else {
x.disabled = true
}
x["changeActitem"]=""
})
}
else
@@ -271,24 +341,46 @@
let data = JSON.parse(item.f_num_tablet)
let left = data.left_items
let mid = data.mid_items
let mid_right = data.mid_right
let mid_left=data.mid_left
let returnVal = ""
if (left) {
returnVal = "陽上:" + left.map(x => x.fam_name).join("、")
}
if (mid) {
returnVal = returnVal + "<br>標題:" + mid.map(x => x.fam_name).join("、")
returnVal = returnVal + "<br>牌位正名:" + mid.map(x => x.fam_name).join("、")
}
return returnVal
if (mid_right) {
returnVal = returnVal + "<br>右正名:" + mid_right.map(x => x.fam_name).join("、")
}
if (mid_left) {
returnVal = returnVal + "<br>左正名:" + mid_left.map(x => x.fam_name).join("、")
}
return item.actitem_num_selected.val+":" + returnVal
},
success_confirm() {
this.message_dialog.show = false
this.message_dialog.show_confirm=false
this.follower = {}
this.tablet_list.length = 0
this.tablet_show=false
},
saveOrder() {
let detail = []
//整理資料存檔//只要抓那個活動的那幾筆功德項目代號
this.tablet_list.forEach(x => {
if (x.actitem_num_checked && x.actitem_num_checked == true) {
detail.push({ num: x.num, order_no: x.order_no })
console.log("saveOrder:", x, x.num, x.order_no)
console.log("OOQ:", x.num)
let actItem = this.act_items.find(y => y.act_item_selected.val == x.actitem_num_selected.val)
detail.push({
num: x.num, order_no: x.order_no, change_item_num: x.changeActitem,
price: actItem.price, qty: 1, style: actItem.act_item_selected.style, printed_files: actItem.files[0].num
})
// console.log("saveOrder:", x, x.num, x.order_no)
}
})
//放主檔資料,
let main = {
activity_num: this.num, f_num: this.follower.num,
@@ -299,10 +391,17 @@
.post(HTTP_HOST + 'api/order/SaveWithDetails', main)
.then(response => {
if (response.result && response.result === "Y") {
console.log();
console.log("shit");
}
console.log(response.message)
}).catch(error => console.log(error));
console.log("蝦:", response)
this.message_dialog.show_confirm = true
this.message_dialog.show = true
this.message_dialog.message = response.message
}).catch(error => {
this.message_dialog.show = true
this.message_dialog.message =error
console.log(error)
});
}
}
}
-2
View File
@@ -251,8 +251,6 @@
},
addOrderWithDetail() {
//組資料,信眾資料,報名資料,功德資料
console.log("addOrderWithDetail:",this.follower);
console.log("addOrderWithDetail:", this.tablets);
let details = []
+5 -6
View File
@@ -42,9 +42,8 @@
let VueApp = new Vue({
el: '#app',
vuetify: new Vuetify(),
activated() {
mounted() {
this.getDetail();
},
data() {
return {
@@ -87,7 +86,8 @@
hasPrice: '',
},
currentView: 'fastSignUp-component',
twoData: {}
twoData: {},
detail_table:[]
};
},
components: {
@@ -107,7 +107,6 @@
},
methods: {
changeView(item) {
console.log(item);
if (item.action === "detail") {
this.twoData = item.item.num
this.currentView = "fastSignUp2-component"
@@ -119,9 +118,9 @@
this.currentView = "fastSignUp4-component"
} else if (item.action === "signup1") {
this.twoData = item.item
this.currentView = "fastSignUp1-component"
this.currentView = "fastSignUp-component"
}
console.log("item.action:",this.twoData)
//console.log("item.action:",this.twoData)
},
getDetail() {
const { sortBy, sortDesc, page, itemsPerPage } = this.options