快速報名,功德內容設定調整:只要選擇預設版型

This commit is contained in:
2026-05-25 17:41:32 +08:00
parent 889e5679aa
commit a58e6ac7ac
7 changed files with 291 additions and 149 deletions
+48 -7
View File
@@ -12,19 +12,54 @@
</v-text-field>
</v-col>
<v-col cols="2" md="2">
<v-text-field label="法會名稱">
<v-text-field label="法會名稱" v-model="search.subject">
</v-text-field>
</v-col>
<v-col cols="2" md="2">
<v-text-field label="開始日期">
<!--<v-text-field label="開始日期" v-model="search.uptime1">
</v-text-field>
</v-text-field>-->
<v-menu v-model="startmenu"
:close-on-content-click="false"
:nudge-right="40"
transition="scale-transition"
offset-y
min-width="auto">
<template v-slot:activator="{ on, attrs }">
<v-text-field v-model="search.up_time1"
label="法會日期"
prepend-icon="mdi-calendar"
readonly
v-bind="attrs"
v-on="on"></v-text-field>
</template>
<v-date-picker v-model="search.up_time1"
@input="startmenu = false"></v-date-picker>
</v-menu>
</v-col>
<!--<v-col cols="2" md="2">
<v-menu v-model="endmenu"
:close-on-content-click="false"
:nudge-right="40"
transition="scale-transition"
offset-y
min-width="auto">
<template v-slot:activator="{ on, attrs }">
<v-text-field v-model="search.up_time2"
label="結束日期"
prepend-icon="mdi-calendar"
readonly
v-bind="attrs"
v-on="on"></v-text-field>
</template>
<v-date-picker v-model="search.up_time2"
@input="endmenu = false"></v-date-picker>
</v-menu>
</v-col>-->
<v-col cols="2" md="2">
<v-text-field label="結束日期">
</v-text-field>
<v-btn @click.prevent="getDefault()">查詢</v-btn>
<v-btn @click.prevent="clearSearch()">清空條件</v-btn>
</v-col>
</v-row>
</v-expansion-panel-content>
@@ -91,6 +126,8 @@
this_act:'',
options: { multiSort: false },
search_options: { multiSort: false },
startmenu: false,
endmenu: false,
data_table: {
loading: true,
list: [],
@@ -270,6 +307,10 @@
},
},
methods: {
clearSearch() {
this.search.subject = ""
this.search.up_time1=""
},
gotoSignup(item) {
this.$emit('custom-event', { action: 'add', item: item });
},
@@ -305,7 +346,7 @@
sessionStorage.setItem('orderpage', clearpage ? '1' : page);
axios
//.post(HTTP_HOST + 'api/order/GetList', this.search, { params: params })
.post(HTTP_HOST + 'api/activity/GetList', this.search, { params: params })
.post(HTTP_HOST + 'api/activity/GetListNew', this.search, { params: params })
.then(response => {
this.data_table.list = response.data.list
this.data_table.count = response.data.count;
+54 -47
View File
@@ -1,51 +1,55 @@
<template>
<div class="container-fluid">
<template>
<v-btn @click.prevent='fast_signup'>快速報名</v-btn>
</template>
<v-data-table v-model="detail_table.selected"
:items="detail_table.list"
:search-props="search"
item-key="order_no"
:options.sync="options"
:headers="detail_table.header"
:footer-props="detail_table.footer"
:server-items-length="detail_table.count"
:loading="detail_table.loading"
:single-select="detail_table.singleSelect"
show-select
hide-default-footer
:page.sync="detail_table.page"
:items-per-page.sync="detail_table.pageSize"
class="elevation-1">
<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 @click="$root.currentView='step-three';$root.selected_order=item.order_no" class="btn btn-outline-secondary btn-sm">明細</a>
<a @click="deleteItem(item)" class="btn btn-outline-secondary btn-sm"><i class="mdi mdi-trash-can"></i>刪除</a>
</template>
</v-data-table>
<v-container>
<v-row class="align-baseline" wrap>
<v-col cols="12" md="9">
<v-pagination v-model="detail_table.page"
:length="pageCount">
</v-pagination>
</v-col>
<v-col class="text-truncate text-right" cols="12" md="2">
{{ detail_table.count }} , 頁數:
</v-col>
<v-col cols="6" md="1">
<v-text-field v-model="detail_table.page"
type="number"
hide-details
dense
min="1"
:max="pageCount"
@input="detail_table.page = parseInt($event, 10)"></v-text-field>
</v-col>
</v-row>
</v-container>
</div>
<v-card>
<v-card-title class="bg-primary white--text text-center">
<v-btn @click.prevent='fast_signup'>快速報名</v-btn>
<v-btn @click.prevent="back01()" class="ms-auto">返回</v-btn>
</v-card-title>
<v-card-text>
<v-data-table v-model="detail_table.selected"
:items="detail_table.list"
:search-props="search"
item-key="order_no"
:options.sync="options"
:headers="detail_table.header"
:footer-props="detail_table.footer"
:server-items-length="detail_table.count"
:loading="detail_table.loading"
:single-select="detail_table.singleSelect"
show-select
hide-default-footer
:page.sync="detail_table.page"
:items-per-page.sync="detail_table.pageSize"
class="elevation-1">
<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 @click="$root.currentView='step-three';$root.selected_order=item.order_no" class="btn btn-outline-secondary btn-sm">明細</a>
<a @click="deleteItem(item)" class="btn btn-outline-secondary btn-sm"><i class="mdi mdi-trash-can"></i>刪除</a>-->
</template>
</v-data-table>
<v-container>
<v-row class="align-baseline" wrap>
<v-col cols="12" md="9">
<v-pagination v-model="detail_table.page"
:length="pageCount">
</v-pagination>
</v-col>
<v-col class="text-truncate text-right" cols="12" md="2">
{{ detail_table.count }} , 頁數:
</v-col>
<v-col cols="6" md="1">
<v-text-field v-model="detail_table.page"
type="number"
hide-details
dense
min="1"
:max="pageCount"
@input="detail_table.page = parseInt($event, 10)"></v-text-field>
</v-col>
</v-row>
</v-container>
</v-card-text>
</div>
</template>
<script>
@@ -113,8 +117,11 @@
},
methods: {
back01() {
this.$emit('custom-event', { action: 'signup1', item: this.num });
},
fast_signup() {
this.$emit('custom-event', { action: 'add', item: null });
this.$emit('custom-event', { action: 'add', item: this.num });
},
getDetail() {
const { sortBy, sortDesc, page, itemsPerPage } = this.options
+24 -13
View File
@@ -136,7 +136,7 @@
</v-dialog>
<v-dialog v-model="transfer_dialog.show" style="width: 300px !important; height: 300px !important;">
<v-dialog v-model="transfer_dialog.show" width="300px" style="width: 300px !important; height: 300px !important;">
<template>
<v-card>
<v-card-title>
@@ -204,10 +204,12 @@
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.id = this.tablet_list.length + 1
//console.log("copytablet:",newTablet.nu, newTablet.actitem_num_selected, item.changeActitem);
newTablet.actitem_num_selected.val = t.act_item_selected.val
newTablet.actitem_num_selected.text = t.act_item_selected.text
newTablet.changeActitem = ""
newTablet.changeActitem = item.changeActitem
newTablet.disabled=false
this.tablet_list.push(newTablet)
},
@@ -226,7 +228,7 @@
// ...x,selected:""
// }))
//}
console.log("QOO:",this.act_items)
//console.log("QOO:",this.act_items)
}
else
console.log("查無資料");
@@ -243,7 +245,7 @@
.post(HTTP_HOST + 'api/follower/GetFollowerNew', this.search)
.then(response => {
if (response.data.list) {
console.log(response.data.list)
//console.log(response.data.list)
if (response.data.list.length > 1) {
//alert("相同條件不只一人")
this.message_dialog.show = true
@@ -276,8 +278,15 @@
.then(response => {
if (response.data.list && response.data.list.length > 0) {
this.orders = response.data.list
//先確定是否有報名過
let o = this.orders.find(x => x.activity_num === this.num)
if (o != null && o != undefined) {
this.message_dialog.show = true
this.message_dialog.message="此人已有報名資料,請勿重複報名"
return
}
this.orders = this.orders.filter(x => x.activity_num !== this.num)
console.log("orders",this.orders)
//console.log("orders",this.orders)
if (this.orders && this.orders.length > 0) {
this.getOrderDetail()
@@ -356,7 +365,7 @@
if (mid_left) {
returnVal = returnVal + "<br>左正名:" + mid_left.map(x => x.fam_name).join("、")
}
return item.actitem_num_selected.val+":" + returnVal
return returnVal //item.actitem_num_selected.val+":" +
},
success_confirm() {
this.message_dialog.show = false
@@ -371,7 +380,7 @@
this.tablet_list.forEach(x => {
if (x.actitem_num_checked && x.actitem_num_checked == true) {
console.log("OOQ:", x.num)
//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,
@@ -386,18 +395,20 @@
activity_num: this.num, f_num: this.follower.num,
details: detail
}
//console.log("saveOrderDetail:",detail);
axios
.post(HTTP_HOST + 'api/order/SaveWithDetails', main)
.then(response => {
if (response.result && response.result === "Y") {
console.log("shit");
//console.log("哪尼:",response)
if (response.data.result && response.data.result === "Y") {
//console.log("shit");
}
console.log("蝦:", response)
//console.log("蝦:", response)
this.message_dialog.show_confirm = true
this.message_dialog.show = true
this.message_dialog.message = response.message
this.message_dialog.message = response.data.message
}).catch(error => {
this.message_dialog.show_confirm = false
this.message_dialog.show = true
this.message_dialog.message =error
console.log(error)