客堂登記報名
This commit is contained in:
@@ -0,0 +1,31 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Web;
|
||||||
|
namespace Model.ViewModel
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// preOrder 的摘要描述
|
||||||
|
/// </summary>
|
||||||
|
public class preOrder
|
||||||
|
{
|
||||||
|
public preOrder()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// TODO: 在這裡新增建構函式邏輯
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
public int? num { get; set; }
|
||||||
|
public Nullable<int> f_num { get; set; }
|
||||||
|
public string order_no { get; set; }
|
||||||
|
public Nullable<int> item_count { get; set; }
|
||||||
|
public Nullable<int> total_amt { get; set; }
|
||||||
|
public Nullable<int> act_num { get; set; }
|
||||||
|
public Nullable<int> admin_num { get; set; }
|
||||||
|
public Nullable<System.DateTime> reg_time { get; set; }
|
||||||
|
public Nullable<int> receipt_num { get; set; }
|
||||||
|
public string f_name { get; set; }
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,7 +5,8 @@ using System.Linq;
|
|||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Web;
|
using System.Web;
|
||||||
using System.Web.Http;
|
using System.Web.Http;
|
||||||
|
using MyWeb;
|
||||||
|
using MINOM.COM.Utility;
|
||||||
// api/pre_order
|
// api/pre_order
|
||||||
//[ezAuthorize(Roles = "admin")]//群組:*
|
//[ezAuthorize(Roles = "admin")]//群組:*
|
||||||
//[ezAuthorize]
|
//[ezAuthorize]
|
||||||
@@ -30,7 +31,8 @@ public class preOrderController: ApiController
|
|||||||
{
|
{
|
||||||
qry = qry.Where(x => _db.followers.Where(y => y.u_name == pre.f_name).Select(y => y.num).ToList().Contains((int)x.f_num));
|
qry = qry.Where(x => _db.followers.Where(y => y.u_name == pre.f_name).Select(y => y.num).ToList().Contains((int)x.f_num));
|
||||||
}
|
}
|
||||||
sortBy = sortBy ?? string.Empty;
|
//sortBy = sortBy ?? string.Empty;
|
||||||
|
qry=qry.OrderByDescending(x => x.num);
|
||||||
var count = qry.Count(); //pageSize = count;//一次取回??
|
var count = qry.Count(); //pageSize = count;//一次取回??
|
||||||
if (pageSize == -1)
|
if (pageSize == -1)
|
||||||
{
|
{
|
||||||
@@ -52,4 +54,99 @@ public class preOrderController: ApiController
|
|||||||
return Ok(ret);
|
return Ok(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
[Route("api/preOrder/SavePreOrder")]
|
||||||
|
public IHttpActionResult SavePreOrder([FromBody] Model.ViewModel.preOrder pre)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
//要檢查有無報過名
|
||||||
|
var qry1 = _db.pro_order.AsQueryable();
|
||||||
|
qry1 = qry1.Where(y=>y.f_num==pre.f_num&&y.activity_num==pre.act_num);
|
||||||
|
var o=qry1.FirstOrDefault();
|
||||||
|
if (o != null && !string.IsNullOrEmpty(o.order_no))
|
||||||
|
{
|
||||||
|
throw new Exception("已經報過名,請勿重複報名");
|
||||||
|
}
|
||||||
|
|
||||||
|
var qry = _db.followers.AsQueryable();
|
||||||
|
qry = qry.Where(x => x.num == pre.f_num);
|
||||||
|
var f = qry.FirstOrDefault();
|
||||||
|
//寫入pre_order,同時寫入pro_order
|
||||||
|
pre.order_no = new MyWeb.autoNum().createOrderNumber();
|
||||||
|
Model.pre_order preO = new Model.pre_order();
|
||||||
|
Model.pro_order proO = new Model.pro_order();
|
||||||
|
preO.order_no = pre.order_no;
|
||||||
|
preO.act_num = pre.act_num;
|
||||||
|
preO.f_num = pre.f_num;
|
||||||
|
preO.item_count = pre.item_count;
|
||||||
|
|
||||||
|
preO.total_amt = pre.total_amt;
|
||||||
|
preO.reg_time = DateTime.Now;
|
||||||
|
|
||||||
|
proO.up_time= DateTime.Now;
|
||||||
|
proO.reg_time = DateTime.Now;
|
||||||
|
proO.order_no = preO.order_no;
|
||||||
|
proO.activity_num = pre.act_num;
|
||||||
|
proO.f_num = pre.f_num;
|
||||||
|
proO.keyin1 = "A01";
|
||||||
|
proO.phone = f.phone;
|
||||||
|
proO.address = f.address??"";
|
||||||
|
proO.demo = "";
|
||||||
|
|
||||||
|
_db.pre_order.Add(preO);
|
||||||
|
_db.pro_order.Add(proO);
|
||||||
|
_db.SaveChanges();
|
||||||
|
return Ok(new {result="Y",message="新增成功"});
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
LogUtility log = new LogUtility();
|
||||||
|
log.writeErrorPath(ex.Message+ex.StackTrace);
|
||||||
|
return Ok(new { result = "N", message = $"新增失敗 {ex.Message}" });
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
[Route("api/preOrder/GetPreOrderByNum")]
|
||||||
|
|
||||||
|
public IHttpActionResult GetPreOrderByNum([FromBody] Model.ViewModel.preOrder pre)
|
||||||
|
{
|
||||||
|
var qry = _db.pre_order.AsQueryable();
|
||||||
|
|
||||||
|
qry = qry.Where(x => x.order_no==pre.order_no);
|
||||||
|
//sortBy = sortBy ?? string.Empty;
|
||||||
|
qry = qry.OrderByDescending(x => x.num);
|
||||||
|
|
||||||
|
var ret = new
|
||||||
|
{
|
||||||
|
data=qry.Select(x => new
|
||||||
|
{
|
||||||
|
x.num,
|
||||||
|
x.f_num,
|
||||||
|
x.admin_num,
|
||||||
|
x.order_no,
|
||||||
|
x.item_count,
|
||||||
|
x.total_amt,
|
||||||
|
x.reg_time,
|
||||||
|
x.receipt_num,
|
||||||
|
x.act_num,
|
||||||
|
f_name = _db.followers.Where(z => z.num == x.f_num).Select(z => z.u_name).FirstOrDefault(),
|
||||||
|
act_name = _db.activities.Where(w => w.num == x.act_num).Select(w => w.subject).FirstOrDefault(),
|
||||||
|
}).FirstOrDefault()
|
||||||
|
};
|
||||||
|
if (ret.data == null) {
|
||||||
|
return Ok(new {result="N",message=""});
|
||||||
|
}
|
||||||
|
;
|
||||||
|
return Ok(new
|
||||||
|
{
|
||||||
|
result = "Y",
|
||||||
|
ret
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Web;
|
||||||
|
|
||||||
|
namespace MyWeb
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// autoNum 的摘要描述
|
||||||
|
/// </summary>
|
||||||
|
public class autoNum
|
||||||
|
{
|
||||||
|
private Model.ezEntities _db = new Model.ezEntities();
|
||||||
|
public autoNum()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// TODO: 在這裡新增建構函式邏輯
|
||||||
|
//
|
||||||
|
}
|
||||||
|
public string createOrderNumber()
|
||||||
|
{
|
||||||
|
//Application.Lock();
|
||||||
|
string order_no = "AA" + DateTime.Now.ToString("yyMMdd");
|
||||||
|
|
||||||
|
var qry = _db.companies.AsQueryable();
|
||||||
|
//var prod = qry.Where(q => q.last_order_no.Contains(order_no)).FirstOrDefault();
|
||||||
|
var prod = qry.Where(q => q.num == 1).FirstOrDefault();
|
||||||
|
if (prod != null)
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrEmpty(prod.last_order_no) && prod.last_order_no.Contains(order_no))
|
||||||
|
{
|
||||||
|
int tmp = Convert.ToInt32(prod.last_order_no.Replace(order_no, "")) + 1;
|
||||||
|
order_no = order_no + tmp.ToString("0000");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
order_no = order_no + "0001";
|
||||||
|
}
|
||||||
|
|
||||||
|
prod.last_order_no = order_no;
|
||||||
|
_db.SaveChanges();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
order_no = "";
|
||||||
|
|
||||||
|
//Application.UnLock();
|
||||||
|
|
||||||
|
return order_no;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -10,13 +10,13 @@
|
|||||||
:server-items-length="data_table.count"
|
:server-items-length="data_table.count"
|
||||||
:loading="data_table.loading"
|
:loading="data_table.loading"
|
||||||
:single-select="data_table.singleSelect"
|
:single-select="data_table.singleSelect"
|
||||||
show-select
|
|
||||||
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"
|
||||||
class="elevation-1">
|
class="elevation-1">
|
||||||
|
|
||||||
<template #item.slot_btn="{ item }">
|
<template #item.slot_btn="{ item }">
|
||||||
|
<a @click.prevent="openReceipt" class="btn btn-outline-secondary btn-sm"><i class="mdi mdi-receipt-text"></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 :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="deleteItem(item)" class="btn btn-outline-secondary btn-sm"><i class="mdi mdi-trash-can"></i>刪除</a>-->
|
<a @click="deleteItem(item)" class="btn btn-outline-secondary btn-sm"><i class="mdi mdi-trash-can"></i>刪除</a>-->
|
||||||
</template>
|
</template>
|
||||||
@@ -42,16 +42,42 @@
|
|||||||
</v-col>
|
</v-col>
|
||||||
</v-row>
|
</v-row>
|
||||||
</v-container>
|
</v-container>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div v-if="isModalOpen" class="modal-backdrop" @click.self="closeModal">
|
||||||
|
|
||||||
|
<!-- Modal Window Box -->
|
||||||
|
<div class="modal-window">
|
||||||
|
<header class="modal-header">
|
||||||
|
<!--<h2>Modal Title</h2>-->
|
||||||
|
<button @click="closeModal" class="close-btn">×</button>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main class="modal-body" style="overflow-y:auto;">
|
||||||
|
<!-- Async component loaded dynamically via v-if -->
|
||||||
|
<receipt-component :form-data="formData" @close-dialog="closeModal" />
|
||||||
|
</main>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
module.exports = {
|
module.exports = {
|
||||||
props: ['formData'],
|
props: ['formData'],
|
||||||
|
name:"ParentComponent",
|
||||||
|
components: {
|
||||||
|
// Add .then(m => m.default || m) to safely handle module.exports
|
||||||
|
'ReceiptComponent': httpVueLoader('../receipt/receipt.vue'),
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
options: { multiSort: false },
|
options: { multiSort: false },
|
||||||
search_options: { multiSort: false },
|
search_options: { multiSort: false },
|
||||||
|
isModalOpen: false,
|
||||||
search: {},
|
search: {},
|
||||||
data_table: {
|
data_table: {
|
||||||
loading: true,
|
loading: true,
|
||||||
@@ -62,10 +88,10 @@
|
|||||||
page: 1,
|
page: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
header: [
|
header: [
|
||||||
{ text: '信眾', value: 'f_num' },
|
{ text: '信眾', value: 'f_name' },
|
||||||
{ text: '報名單號', value: 'order_no' },
|
{ text: '報名單號', value: 'order_no' },
|
||||||
{ text: '收據號碼', value: 'receipt_num' },
|
{ text: '收據號碼', value: 'receipt_num' },
|
||||||
{ text: '活動', value: 'act_num'},
|
{ text: '活動', value: 'act_name'},
|
||||||
{ text: '功德項目數量', value: 'item_count' },
|
{ text: '功德項目數量', value: 'item_count' },
|
||||||
{ text: '總金額', value: 'total_amt' },
|
{ text: '總金額', value: 'total_amt' },
|
||||||
{ text: '登錄人員', value: 'admin_num' },
|
{ text: '登錄人員', value: 'admin_num' },
|
||||||
@@ -83,6 +109,18 @@
|
|||||||
this.loadData()
|
this.loadData()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
openModal() {
|
||||||
|
this.isModalOpen = true;
|
||||||
|
},
|
||||||
|
closeModal(param="") {
|
||||||
|
this.isModalOpen = false;
|
||||||
|
if (param=="reload") {
|
||||||
|
this.loadData()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
openReceipt() {///開收據
|
||||||
|
this.openModal();
|
||||||
|
},
|
||||||
gotoAdd() {
|
gotoAdd() {
|
||||||
this.$emit('custom-event', { action: 'add' });
|
this.$emit('custom-event', { action: 'add' });
|
||||||
},
|
},
|
||||||
@@ -91,7 +129,7 @@
|
|||||||
//page = this.data_table.page;
|
//page = this.data_table.page;
|
||||||
let search = {}
|
let search = {}
|
||||||
const params = {
|
const params = {
|
||||||
sortBy: sortBy[0], sortDesc: sortDesc[0],
|
sortBy: "", sortDesc: false,
|
||||||
page: clearpage ? '1' : page, pageSize: itemsPerPage
|
page: clearpage ? '1' : page, pageSize: itemsPerPage
|
||||||
};
|
};
|
||||||
this.data_table.loading = true
|
this.data_table.loading = true
|
||||||
@@ -124,4 +162,41 @@
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
/* Basic Modal Styles */
|
||||||
|
.modal-backdrop {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100vw;
|
||||||
|
height: 100vh;
|
||||||
|
background: rgba(0, 0, 0, 0.5);
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
z-index: 10001;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal-window {
|
||||||
|
background: white;
|
||||||
|
padding: 20px;
|
||||||
|
border-radius: 8px;
|
||||||
|
min-width: 300px;
|
||||||
|
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal-header {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.close-btn {
|
||||||
|
background: none;
|
||||||
|
border: none;
|
||||||
|
font-size: 1.5rem;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
<v-card>
|
<v-card>
|
||||||
<v-card-title class="bg-primary white--text text-center">
|
<v-card-title class="bg-primary white--text text-center">
|
||||||
<h5 class="mb-0">客堂報名</h5>
|
<h5 class="mb-0">客堂登錄</h5>
|
||||||
<div class="ms-auto">
|
<div class="ms-auto">
|
||||||
<v-btn @click.prevent="savePreOrder()">儲存</v-btn>
|
<v-btn @click.prevent="savePreOrder()">儲存</v-btn>
|
||||||
<v-btn @click.prevent="back01()">返回</v-btn>
|
<v-btn @click.prevent="back01()">返回</v-btn>
|
||||||
@@ -49,34 +49,78 @@
|
|||||||
</v-row>
|
</v-row>
|
||||||
</v-card-text>
|
</v-card-text>
|
||||||
</v-card>
|
</v-card>
|
||||||
|
|
||||||
|
<v-dialog v-model="picker.show" class="container-fluid">
|
||||||
|
<template>
|
||||||
|
<v-card>
|
||||||
|
<v-card-title>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12">
|
||||||
|
<v-data-table v-model="picker.data_table.selected"
|
||||||
|
:items="picker.data_table.list"
|
||||||
|
:options.sync="options"
|
||||||
|
:headers="picker.data_table.header"
|
||||||
|
:footer-props="picker.data_table.footer"
|
||||||
|
:server-items-length="picker.data_table.count"
|
||||||
|
:loading="picker.data_table.loading"
|
||||||
|
:single-select="picker.data_table.singleSelect"
|
||||||
|
hide-default-footer
|
||||||
|
:page.sync="picker.data_table.page"
|
||||||
|
:items-per-page.sync="picker.data_table.pageSize"
|
||||||
|
class="elevation-1"
|
||||||
|
@click:row="handleRowClick">
|
||||||
|
</v-data-table>
|
||||||
|
</div>
|
||||||
|
<div class="col-12">
|
||||||
|
<v-container>
|
||||||
|
<v-row class="align-baseline">
|
||||||
|
<v-col cols="12" md="9">
|
||||||
|
<v-pagination v-model="picker.data_table.page"
|
||||||
|
:length="pageCount">
|
||||||
|
</v-pagination>
|
||||||
|
</v-col>
|
||||||
|
<v-col class="text-truncate text-right" cols="12" md="2">
|
||||||
|
共 {{ picker.data_table.count }} 筆, 頁數:
|
||||||
|
</v-col>
|
||||||
|
<v-col cols="6" md="1">
|
||||||
|
<v-text-field v-model="picker.data_table.page"
|
||||||
|
type="number"
|
||||||
|
hide-details
|
||||||
|
dense
|
||||||
|
min="1"
|
||||||
|
:max="pageCount"
|
||||||
|
@input="data_table.page = parseInt($event, 10)"></v-text-field>
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
|
</v-container>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</v-card-title>
|
||||||
|
<v-card-text>
|
||||||
|
<v-btn @click.prevent="picker.show=false">關閉</v-btn>
|
||||||
|
<v-btn @click.prevent="picker_confirm()">確認</v-btn>
|
||||||
|
</v-card-text>
|
||||||
|
</v-card>
|
||||||
|
</template>
|
||||||
|
</v-dialog>
|
||||||
|
|
||||||
|
|
||||||
|
<v-snackbar v-model="snackbar.show">
|
||||||
|
{{ snackbar.text }}
|
||||||
|
|
||||||
|
<template v-slot:action="{ attrs }">
|
||||||
|
<v-btn color="pink"
|
||||||
|
text
|
||||||
|
v-bind="attrs"
|
||||||
|
@click="snackbar.show = false">
|
||||||
|
Close
|
||||||
|
</v-btn>
|
||||||
|
</template>
|
||||||
|
</v-snackbar>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<v-dialog v-model="picker.show" class="dialog_width">
|
|
||||||
<template>
|
|
||||||
<v-card>
|
|
||||||
<v-card-title>
|
|
||||||
<v-data-table v-model="picker.data_table.selected"
|
|
||||||
:items="picker.data_table.list"
|
|
||||||
:options.sync="options"
|
|
||||||
:headers="picker.data_table.header"
|
|
||||||
:footer-props="picker.data_table.footer"
|
|
||||||
:server-items-length="picker.data_table.count"
|
|
||||||
:loading="picker.data_table.loading"
|
|
||||||
:single-select="picker.data_table.singleSelect"
|
|
||||||
show-select
|
|
||||||
hide-default-footer
|
|
||||||
:page.sync="picker.data_table.page"
|
|
||||||
:items-per-page.sync="picker.data_table.pageSize"
|
|
||||||
class="elevation-1">
|
|
||||||
</v-data-table>
|
|
||||||
</v-card-title>
|
|
||||||
<v-card-text>
|
|
||||||
<v-btn @click.prevent="picker.show=false" >關閉</v-btn>
|
|
||||||
<v-btn @click.prevent="picker_confirm()" >確認</v-btn>
|
|
||||||
</v-card-text>
|
|
||||||
</v-card>
|
|
||||||
</template>
|
|
||||||
</v-dialog>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
@@ -104,7 +148,7 @@
|
|||||||
show: false,
|
show: false,
|
||||||
target: "",
|
target: "",
|
||||||
data_table: {
|
data_table: {
|
||||||
loading: true,
|
loading: false,
|
||||||
list: [],
|
list: [],
|
||||||
selected: [],
|
selected: [],
|
||||||
singleSelect: false,
|
singleSelect: false,
|
||||||
@@ -119,28 +163,108 @@
|
|||||||
itemsPerPageOptions: [5, 10, 20, 30],
|
itemsPerPageOptions: [5, 10, 20, 30],
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
snackbar: {
|
||||||
|
show: false,
|
||||||
|
text: "",
|
||||||
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
watch: {
|
||||||
savePreOrder() {
|
options: {
|
||||||
|
handler() {
|
||||||
|
if (this.picker.target === "follower") {
|
||||||
|
this.getFollowers()
|
||||||
|
} else if (this.picker.target === "act") {
|
||||||
|
this.getActivity()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
deep: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
handleRowClick(item, row) {
|
||||||
|
if (this.picker.target === "follower") {
|
||||||
|
this.formData.f_num = item.num;
|
||||||
|
this.formData.f_name = item.u_name;
|
||||||
|
} else if (this.picker.target === "act") {
|
||||||
|
this.formData.act_num = item.num;
|
||||||
|
this.formData.act_name = item.subject;
|
||||||
|
}
|
||||||
|
this.picker.show = false;
|
||||||
|
},
|
||||||
|
savePreOrder() {
|
||||||
|
axios
|
||||||
|
.post(HTTP_HOST + 'api/preOrder/SavePreOrder', this.formData)
|
||||||
|
.then(response => {
|
||||||
|
this.snackbar.text = response.data.message;
|
||||||
|
this.snackbar.show = true;
|
||||||
|
if (response.data.result=="Y") {
|
||||||
|
this.$emit('custom-event', { action: 'list' });
|
||||||
|
}
|
||||||
|
}).catch(error => console.log(error));
|
||||||
},
|
},
|
||||||
back01() {
|
back01() {
|
||||||
this.$emit('custom-event', { action: 'list' });
|
this.$emit('custom-event', { action: 'list' });
|
||||||
},
|
},
|
||||||
|
getFollowers(clearPage=false) {
|
||||||
|
const { sortBy, sortDesc, page, itemsPerPage } = this.options
|
||||||
|
const params = {
|
||||||
|
sortBy: "num", sortDesc: false,
|
||||||
|
page: page, pageSize: itemsPerPage
|
||||||
|
};
|
||||||
|
this.picker.data_table.loading = true;
|
||||||
|
let search = {}
|
||||||
|
axios
|
||||||
|
.post(HTTP_HOST + 'api/follower/GetList', search, { params: params })
|
||||||
|
.then(response => {
|
||||||
|
console.log(response)
|
||||||
|
this.picker.data_table.list = response.data.list
|
||||||
|
this.picker.data_table.count = response.data.count;
|
||||||
|
this.picker.data_table.loading = false
|
||||||
|
|
||||||
|
const dataToStore = JSON.stringify(this.data_table);
|
||||||
|
//sessionStorage.setItem("order_list_cache", dataToStore);
|
||||||
|
})
|
||||||
|
.catch(error => console.log(error))
|
||||||
|
},
|
||||||
|
getActivity(clearPage=false) {
|
||||||
|
const { sortBy, sortDesc, page, itemsPerPage } = this.options
|
||||||
|
const params = {
|
||||||
|
sortBy: "num", sortDesc: false,
|
||||||
|
page: page, pageSize: itemsPerPage
|
||||||
|
};
|
||||||
|
this.picker.data_table.loading = true;
|
||||||
|
let search = {}
|
||||||
|
axios
|
||||||
|
.post(HTTP_HOST + 'api/activity/GetListNew', search, { params: params })
|
||||||
|
.then(response => {
|
||||||
|
console.log(response)
|
||||||
|
this.picker.data_table.list = response.data.list
|
||||||
|
this.picker.data_table.count = response.data.count;
|
||||||
|
this.picker.data_table.loading = false
|
||||||
|
|
||||||
|
const dataToStore = JSON.stringify(this.data_table);
|
||||||
|
//sessionStorage.setItem("order_list_cache", dataToStore);
|
||||||
|
})
|
||||||
|
.catch(error => console.log(error))
|
||||||
|
},
|
||||||
pickFollower() {
|
pickFollower() {
|
||||||
|
this.picker.data_table.list.length = 0;
|
||||||
this.picker.show = true;
|
this.picker.show = true;
|
||||||
this.picker.target = "follower";
|
this.picker.target = "follower";
|
||||||
this.picker.data_table.header = [
|
this.picker.data_table.header = [
|
||||||
{ text: '信眾編號', value: 'num' },
|
{ text: '信眾編號', value: 'num' },
|
||||||
{ text: '姓名', value: 'u_name' },
|
{ text: '姓名', value: 'u_name' },
|
||||||
{ text: '電話', value: 'phone' },
|
{ text: '電話', value: 'phoneDes' },
|
||||||
{ text: '行動電話', value: 'cellphone' },
|
{ text: '行動電話', value: 'cellphoneDes' },
|
||||||
{ text: '', value: 'slot_btn', sortable: false, align: 'end' }
|
{ text: '', value: 'slot_btn', sortable: false, align: 'end' }
|
||||||
]
|
]
|
||||||
|
this.getFollowers(false);
|
||||||
},
|
},
|
||||||
pickAct() {
|
pickAct() {
|
||||||
|
this.picker.data_table.list.length = 0;
|
||||||
this.picker.show = true;
|
this.picker.show = true;
|
||||||
this.picker.target = "act";
|
this.picker.target = "act";
|
||||||
this.picker.data_table.header = [
|
this.picker.data_table.header = [
|
||||||
@@ -149,10 +273,16 @@
|
|||||||
{ text: '報名截止日', value: 'dueDate' },
|
{ text: '報名截止日', value: 'dueDate' },
|
||||||
{ text: '', value: 'slot_btn', sortable: false, align: 'end' }
|
{ text: '', value: 'slot_btn', sortable: false, align: 'end' }
|
||||||
]
|
]
|
||||||
|
this.getActivity(false);
|
||||||
},
|
},
|
||||||
picker_confirm() {
|
picker_confirm() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
pageCount() {
|
||||||
|
return Math.ceil(this.picker.data_table.count / this.picker.data_table.pageSize)
|
||||||
|
},
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
@@ -229,6 +229,7 @@
|
|||||||
select(item, t) {
|
select(item, t) {
|
||||||
}
|
}
|
||||||
}, search8: {
|
}, search8: {
|
||||||
|
id: 'search8',
|
||||||
id: 'search8',
|
id: 'search8',
|
||||||
title: '牌位標題:陽上',
|
title: '牌位標題:陽上',
|
||||||
text_prop: 'title',
|
text_prop: 'title',
|
||||||
@@ -394,6 +395,11 @@
|
|||||||
customize_data_comb: [],
|
customize_data_comb: [],
|
||||||
printed_files: '',
|
printed_files: '',
|
||||||
},
|
},
|
||||||
|
preOrder: {
|
||||||
|
order_no: "",
|
||||||
|
item_count: 0,
|
||||||
|
total_amt: 0
|
||||||
|
},
|
||||||
keyin1_items: [{ //報名狀態
|
keyin1_items: [{ //報名狀態
|
||||||
text: "請選擇",
|
text: "請選擇",
|
||||||
val: 0
|
val: 0
|
||||||
@@ -601,6 +607,10 @@
|
|||||||
this.tablet_edit_new.initialized = true;
|
this.tablet_edit_new.initialized = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.order_no != "" ) {
|
||||||
|
this.getPreOrder();
|
||||||
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
options: {
|
options: {
|
||||||
@@ -666,6 +676,20 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
||||||
|
getPreOrder() {
|
||||||
|
let search = { order_no: this.order_no }
|
||||||
|
axios
|
||||||
|
.post(HTTP_HOST + 'api/preOrder/GetPreOrderByNum', search)
|
||||||
|
.then(response => {
|
||||||
|
console.log(response)
|
||||||
|
if (response.data.result === "Y") {
|
||||||
|
this.preOrder.order_no = response.data.ret.data.order_no;
|
||||||
|
this.preOrder.item_count = response.data.ret.data.item_count;
|
||||||
|
this.preOrder.total_amt = response.data.ret.data.total_amt;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
dataDialogClose() {
|
dataDialogClose() {
|
||||||
|
|
||||||
},
|
},
|
||||||
@@ -892,7 +916,7 @@
|
|||||||
form.appendChild(hiddenField);
|
form.appendChild(hiddenField);
|
||||||
};
|
};
|
||||||
// Add form fields
|
// Add form fields
|
||||||
console.log(item.actitem_num_selected, item.num, JSON.stringify(list));
|
//console.log(item.actitem_num_selected, item.num, JSON.stringify(list));
|
||||||
addHiddenField("item", item.actitem_num_selected.val);
|
addHiddenField("item", item.actitem_num_selected.val);
|
||||||
addHiddenField("file", item.num);
|
addHiddenField("file", item.num);
|
||||||
addHiddenField("list", JSON.stringify(list));
|
addHiddenField("list", JSON.stringify(list));
|
||||||
@@ -913,7 +937,7 @@
|
|||||||
this.editedItem = $.extend(true, {}, item);
|
this.editedItem = $.extend(true, {}, item);
|
||||||
//console.log("editTabletNew:",this.editedItem,item)
|
//console.log("editTabletNew:",this.editedItem,item)
|
||||||
try {
|
try {
|
||||||
console.log("editTabletNew:",this.editItem)
|
//console.log("editTabletNew:",this.editItem)
|
||||||
//document.getElementById("tablet_edit_new_iframe").contentWindow.location.reload();
|
//document.getElementById("tablet_edit_new_iframe").contentWindow.location.reload();
|
||||||
// 如果是新項目,先保存
|
// 如果是新項目,先保存
|
||||||
if (this.editedItem.num <= 0 || this.editedItem.num === null || this.editedItem.num === undefined) {
|
if (this.editedItem.num <= 0 || this.editedItem.num === null || this.editedItem.num === undefined) {
|
||||||
@@ -2051,6 +2075,19 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="tab-pane fade label-sm-right" id="sec2-page2" role="tabpanel" aria-labelledby="sec2-tab2">
|
<div class="tab-pane fade label-sm-right" id="sec2-page2" role="tabpanel" aria-labelledby="sec2-tab2">
|
||||||
|
|
||||||
|
<div class="d-flex w-100">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12 col-md-6 ">
|
||||||
|
客堂登記功德項目數:{{ preOrder.item_count }}
|
||||||
|
</div>
|
||||||
|
<div class="col-12 col-md-6 ">
|
||||||
|
客堂登記總金額:{{ preOrder.total_amt }}
|
||||||
|
</div>
|
||||||
|
<div class="col-12 col-md-6 "></div>
|
||||||
|
<div class="col-12 col-md-6 "></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<v-card class="mx-auto" outlined v-if="order_no!=''">
|
<v-card class="mx-auto" outlined v-if="order_no!=''">
|
||||||
<v-data-table
|
<v-data-table
|
||||||
:headers="headersDetail"
|
:headers="headersDetail"
|
||||||
@@ -2062,6 +2099,7 @@
|
|||||||
<%-- :server-items-length="desserts_count"--%>
|
<%-- :server-items-length="desserts_count"--%>
|
||||||
>
|
>
|
||||||
<v-divider inset></v-divider>
|
<v-divider inset></v-divider>
|
||||||
|
|
||||||
<template v-slot:top>
|
<template v-slot:top>
|
||||||
<v-toolbar flat color="white">
|
<v-toolbar flat color="white">
|
||||||
<div class="d-flex w-100">
|
<div class="d-flex w-100">
|
||||||
|
|||||||
Reference in New Issue
Block a user