修正很多東西
This commit is contained in:
@@ -1,15 +1,16 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Data;
|
||||
using System.Configuration;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
//using System.Data.OleDb;
|
||||
//using System.Data.SqlClient;
|
||||
using System.Collections;
|
||||
using Newtonsoft.Json;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Configuration;
|
||||
using System.Data;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Web;
|
||||
|
||||
namespace Model.ViewModel
|
||||
{
|
||||
@@ -96,5 +97,7 @@ namespace Model.ViewModel
|
||||
public List<family_members> mid_items { get; set; }
|
||||
public List<family_members> left_items { get; set; }
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -17,6 +17,7 @@ using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Web.Helpers;
|
||||
using System.Web.Http;
|
||||
using static TreeView;
|
||||
@@ -224,6 +225,7 @@ public class orderController : ApiController
|
||||
|
||||
var act=_db.activities.Where(x=>x.num==po.activity_num).FirstOrDefault();
|
||||
var hasList = _db.pro_order.AsNoTracking().Where(x => x.activity_num == po.activity_num).AsNoTracking().ToList();
|
||||
var actItemList=_db.activity_relating.AsNoTracking().Where(x=>x.activity_num==po.activity_num).AsNoTracking().ToList();
|
||||
List<int> rp=new List<int>();
|
||||
//要檢查是否已經報名
|
||||
foreach (var item in list)
|
||||
@@ -257,6 +259,13 @@ public class orderController : ApiController
|
||||
orders.Add(item);
|
||||
foreach (var detail in item.pro_order_detail)
|
||||
{
|
||||
//要檢查功德項目在這次的法會有沒有
|
||||
var actItem = actItemList.Where(y => y.actItem_num == detail.actItem_num).FirstOrDefault();
|
||||
if (actItem==null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
//Model.pro_order_detail order_detail = new Model.pro_order_detail();
|
||||
//order_detail.order_no = order.order_no;
|
||||
//order_detail.actItem_num = detail.actItem_num;
|
||||
@@ -276,6 +285,9 @@ public class orderController : ApiController
|
||||
detail.UpdateTime= DateTime.Now;
|
||||
detail.start_date= act.startDate_solar;
|
||||
detail.due_date= act.endDate_solar;
|
||||
detail.printed_files = "";
|
||||
detail.print_id= GenerateSequentialId(detail, item);
|
||||
|
||||
_db.pro_order_detail.Add(detail);
|
||||
}
|
||||
|
||||
@@ -988,11 +1000,12 @@ public class orderController : ApiController
|
||||
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.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;//
|
||||
detail.print_id= GenerateSequentialId(detail, new_pro_order);
|
||||
_db.pro_order_detail.Add(detail);
|
||||
}
|
||||
_db.SaveChanges();
|
||||
@@ -1021,6 +1034,132 @@ public class orderController : ApiController
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public string GenerateSequentialId(pro_order_detail detail,pro_order order)
|
||||
{
|
||||
Model.ezEntities _db = new Model.ezEntities();
|
||||
string r = detail.print_id;
|
||||
try
|
||||
{
|
||||
bool chk = true;
|
||||
actItem actitem = null;
|
||||
int? actitem_id = null;
|
||||
|
||||
// 處理子項目的ID生成
|
||||
if (!(detail.parent_num == null || detail.parent_num == 0))
|
||||
{
|
||||
// 1. 查找父項目的資料
|
||||
var parent_order_item = _db.pro_order_detail.Where(
|
||||
q => q.num == detail.parent_num).FirstOrDefault();
|
||||
|
||||
// 2. 確認父項目存在且當前項目還沒有 print_id
|
||||
if (parent_order_item != null && string.IsNullOrEmpty(detail.print_id))
|
||||
{
|
||||
actitem_id = parent_order_item.actItem_num;
|
||||
string parent_print_id = parent_order_item.print_id;
|
||||
|
||||
// 1. 獲取當前子項目的品項前綴
|
||||
var currentActItem = _db.actItems
|
||||
.Where(q => q.num == detail.actItem_num)
|
||||
.FirstOrDefault();
|
||||
|
||||
if (currentActItem != null && !string.IsNullOrEmpty(currentActItem.print_init))
|
||||
{
|
||||
var itemPrefix = currentActItem.print_init.Trim();
|
||||
|
||||
// 2. 獲取同父項目且同品項的子項目編號
|
||||
var siblings = _db.pro_order_detail
|
||||
.Where(q => q.parent_num == detail.parent_num) // 找出同一個父項目的子項目
|
||||
.Where(q => q.actItem_num == detail.actItem_num) // 同品項
|
||||
.Where(q => q.print_id != null) // Ensure print_id is not null
|
||||
.Select(q => q.print_id) // Just select the print_id
|
||||
.AsEnumerable() // ✅ 合理使用:EF 無法轉換 StartsWith/Contains/Replace 到 SQL
|
||||
.Where(q => q.StartsWith(parent_print_id)) // Now do string operations in memory
|
||||
.Where(q => q.Contains(itemPrefix))
|
||||
.Select(q => q.Trim().Replace("\t", ""))
|
||||
.Select(q => q.Replace($"{parent_print_id}-{itemPrefix}", ""))
|
||||
.ToList();
|
||||
|
||||
// 3. 將所有序號轉換為數字陣列並過濾無效值
|
||||
int[] intArray = siblings
|
||||
.Select(s =>
|
||||
{
|
||||
int result;
|
||||
return int.TryParse(s, out result) ? (int?)result : null;
|
||||
})
|
||||
.Where(i => i.HasValue && i.Value != 0)
|
||||
.Select(i => i.Value)
|
||||
.ToArray();
|
||||
|
||||
// 4. 生成新的序號(最大序號+1,並格式化為兩位數)
|
||||
int maxNum = 1 + (intArray.Any() ? intArray.Max() : 0);
|
||||
string formattedNum = maxNum < 10 ? "0" + maxNum : maxNum.ToString();
|
||||
|
||||
// 5. 組合新的 print_id(父項目ID-品項前綴序號)
|
||||
r = $"{parent_print_id}-{itemPrefix}{formattedNum}";
|
||||
}
|
||||
}
|
||||
}
|
||||
// 處理主項目的ID生成
|
||||
else
|
||||
{
|
||||
actitem_id = detail.actItem_num;
|
||||
actitem = _db.actItems
|
||||
.Where(q => q.num == actitem_id).FirstOrDefault();
|
||||
//var proorder = _db.pro_order.Where(q => q.order_no == detail.order_no).FirstOrDefault();
|
||||
|
||||
// 檢查是否需要生成新的 print_id
|
||||
chk = String.IsNullOrEmpty(r) &&
|
||||
//actitem != null &&
|
||||
//proorder != null &&
|
||||
!string.IsNullOrEmpty(actitem.print_init);
|
||||
if (chk)
|
||||
{
|
||||
// 1. 組合活動和品項的前綴
|
||||
var print_init = string.IsNullOrEmpty(order?.activity?.print_init) ? "" : order?.activity?.print_init.Trim();
|
||||
var actitem_print_init = actitem.print_init.Trim();
|
||||
var combinedPrintInit = print_init + actitem_print_init;
|
||||
|
||||
// 2. 查找相同活動和品項的已存在編號
|
||||
var actitems = _db.pro_order_detail
|
||||
.Where(q => q.pro_order.activity_num == order.activity_num)
|
||||
.Where(q => q.actItem_num == detail.actItem_num)
|
||||
.Where(q => !string.IsNullOrEmpty(q.print_id))
|
||||
.Where(q => q.print_id.StartsWith(combinedPrintInit))
|
||||
.Where(q => q.parent_num == 0 || q.parent_num == null)
|
||||
.Select(q => q.print_id)
|
||||
.ToList();
|
||||
|
||||
// 3. 獲取最大序號
|
||||
var maxNum = actitems
|
||||
.Select(item =>
|
||||
{
|
||||
var match = Regex.Match(item, @"\d+");
|
||||
return match.Success ? (int?)int.Parse(match.Value.TrimStart('0')) : null;
|
||||
})
|
||||
.Where(num => num.HasValue)
|
||||
.DefaultIfEmpty(0)
|
||||
.Max() ?? 0;
|
||||
|
||||
// 4. 生成新的序號(四位數格式)
|
||||
int newNum = maxNum + 1;
|
||||
string formattedNum = newNum.ToString().PadLeft(4, '0');
|
||||
|
||||
// 5. 組合最終的 print_id
|
||||
r = $"{combinedPrintInit}{formattedNum}";
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
// 異常處理:記錄錯誤並返回原始 print_id
|
||||
Console.WriteLine($"Error generating sequential ID: {ex.Message} {ex.StackTrace}");
|
||||
r = detail.print_id;
|
||||
}
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
protected string createOrderNumber()
|
||||
{
|
||||
//Application.Lock();
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
</asp:ContentPlaceHolder>
|
||||
</head>
|
||||
<body id="PageBody" class="" runat="server">
|
||||
<form id="form1" runat="server">
|
||||
<form id="form1" runat="server" >
|
||||
<%-- ScriptManager 必需移除 --%>
|
||||
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
|
||||
<div id="app">
|
||||
|
||||
@@ -8,6 +8,7 @@ window.addEventListener('DOMContentLoaded', event => {
|
||||
// document.body.classList.toggle('sb-sidenav-toggled');
|
||||
//}
|
||||
sidebarToggle.addEventListener('click', event => {
|
||||
console.log("QQ");
|
||||
event.preventDefault();
|
||||
document.body.classList.toggle('sb-sidenav-toggled');
|
||||
localStorage.setItem('sb|sidebar-toggle', document.body.classList.contains('sb-sidenav-toggled'));
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="nav.ascx.cs" Inherits="admin_Templates_TBS5ADM001_uc_nav" %>
|
||||
<nav class="sb-topnav navbar navbar-expand navbar-dark bg-dark ps-1 ps-md-2">
|
||||
<!-- Sidebar Toggle-->
|
||||
<button class="btn btn-link btn-sm order-0 me-0 bg-white bg-opacity-10 rounded-circle" id="sidebarToggle" href="#!">
|
||||
<button type="button" class="btn btn-link btn-sm order-0 me-0 bg-white bg-opacity-10 rounded-circle" id="sidebarToggle" href="#!">
|
||||
<i class="mdi mdi-menu"></i>
|
||||
</button>
|
||||
<!-- Navbar Brand-->
|
||||
|
||||
@@ -233,7 +233,7 @@
|
||||
checkStatusOptions: [
|
||||
{ text: '', value: '' },
|
||||
{ text: '未核對', value: '1' },
|
||||
{ text: '核對', value: '2' },
|
||||
{ text: '已核對', value: '2' },
|
||||
{ text: '金額不符', value: '3' },
|
||||
{ text: '其他問題', value: '4' },
|
||||
{ text: '作廢', value: '5' }
|
||||
|
||||
@@ -151,7 +151,8 @@
|
||||
<v-btn icon @click="followerDialog.show = false"><v-icon>mdi-close</v-icon></v-btn>
|
||||
</v-card-title>
|
||||
<v-card-text class="mt-4">
|
||||
<v-text-field v-model="followerDialog.search" label="搜尋信眾" dense outlined @keyup.enter="searchFollower"></v-text-field>
|
||||
<v-text-field v-model="followerDialog.search" label="搜尋信眾" dense outlined
|
||||
@keydown.enter.prevent="searchFollower"></v-text-field>
|
||||
<v-data-table :headers="followerDialog.headers"
|
||||
:items="followerDialog.items"
|
||||
:loading="followerDialog.loading"
|
||||
@@ -336,11 +337,12 @@
|
||||
},
|
||||
showFollowerDialog() {
|
||||
this.followerDialog.show = true;
|
||||
this.searchFollower();
|
||||
//this.searchFollower();
|
||||
},
|
||||
searchFollower() {
|
||||
//event.preventDefault();
|
||||
this.followerDialog.loading = true;
|
||||
axios.post('../..../..../../api/follower/GetList', { u_name: this.followerDialog.search }, { params: { page: 1, pageSize: 10 } })
|
||||
axios.post('/api/follower/GetList', { u_name: this.followerDialog.search }, { params: { page: 1, pageSize: 10 } })
|
||||
.then(res => { this.followerDialog.items = res.data.list; })
|
||||
.catch(() => { this.followerDialog.items = []; })
|
||||
.finally(() => { this.followerDialog.loading = false; });
|
||||
|
||||
@@ -381,6 +381,10 @@
|
||||
.catch(error => console.log(error))
|
||||
},
|
||||
renderTabletContent(item) {
|
||||
//console.log("renderTabletContent:", item, item.f_num_tablet)
|
||||
if (item.f_num_tablet==="") {
|
||||
return "";
|
||||
}
|
||||
let data = JSON.parse(item.f_num_tablet)
|
||||
let left = data.left_items
|
||||
let mid = data.mid_items
|
||||
@@ -414,11 +418,12 @@
|
||||
this.tablet_list.forEach(x => {
|
||||
|
||||
if (x.actitem_num_checked && x.actitem_num_checked == true) {
|
||||
console.log("OOQ:", x)
|
||||
//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
|
||||
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)
|
||||
}
|
||||
@@ -429,9 +434,10 @@
|
||||
this.message_dialog.message = "沒有選擇功德項目,如果無法選擇,請使用一般報名程序"
|
||||
return false
|
||||
}
|
||||
|
||||
//放主檔資料,
|
||||
let main = {
|
||||
activity_num: this.num, f_num: this.follower.num,
|
||||
activity_num: this.num, f_num: this.follower?.num,
|
||||
details: detail
|
||||
}
|
||||
//console.log("saveOrderDetail:",detail);
|
||||
|
||||
+13
-10
@@ -270,14 +270,15 @@
|
||||
|
||||
},
|
||||
watch: {
|
||||
|
||||
options: {
|
||||
handler() {
|
||||
if (this.isSearched) {
|
||||
//if (this.isSearched) {
|
||||
this.getDefault()
|
||||
}
|
||||
else {
|
||||
this.data_table.loading = false;
|
||||
}
|
||||
//}
|
||||
//else {
|
||||
// this.data_table.loading = false;
|
||||
//}
|
||||
},
|
||||
deep: true,
|
||||
},
|
||||
@@ -413,12 +414,14 @@
|
||||
},
|
||||
getDefault(clearpage = false) {
|
||||
const { sortBy, sortDesc, page, itemsPerPage } = this.options
|
||||
//page = this.data_table.page;
|
||||
|
||||
const params = {
|
||||
sortBy: sortBy[0], sortDesc: sortDesc[0],
|
||||
page: clearpage ? '1' : page, pageSize: itemsPerPage
|
||||
};
|
||||
this.data_table.loading = true
|
||||
sessionStorage.setItem('orderpage', clearpage ? '1' : page);
|
||||
//sessionStorage.setItem('orderpage', clearpage ? '1' : page);
|
||||
axios
|
||||
.post(HTTP_HOST + 'api/order/GetList', this.search, { params: params })
|
||||
.then(response => {
|
||||
@@ -427,7 +430,7 @@
|
||||
this.data_table.loading = false
|
||||
|
||||
const dataToStore = JSON.stringify(this.data_table);
|
||||
sessionStorage.setItem("order_list_cache", dataToStore);
|
||||
//sessionStorage.setItem("order_list_cache", dataToStore);
|
||||
})
|
||||
.catch(error => console.log(error))
|
||||
},
|
||||
@@ -884,11 +887,11 @@
|
||||
v-model="print_search.chk_noact"
|
||||
:label="`非活動報名`"
|
||||
></v-checkbox> --%>
|
||||
<v-checkbox
|
||||
<%-- <v-checkbox
|
||||
v-model="print_search.chk_hasact"
|
||||
:label="`活動報名`"
|
||||
@change="chk_hasact_change"
|
||||
></v-checkbox>
|
||||
></v-checkbox>--%>
|
||||
<%-- <v-row densee class="pt-3" >
|
||||
<v-col :cols="10" class="pt-5" > --%>
|
||||
<div class="input-group mb-3 single-line d-none" data-search-control="search2" @click="print_search.chk_hasact && search_show(search_dialog.controls.search2)" :disabled="!print_search.chk_hasact">
|
||||
@@ -957,7 +960,7 @@
|
||||
<v-card-text >
|
||||
<v-row>
|
||||
<v-col v-for="item in search_dialog.current.keys"
|
||||
:cols="search_dialog.current.keys.length>1?6:12" >
|
||||
:cols="search_dialog.current.keys.length>1?6:12" v-bind:key="item.value">
|
||||
<v-text-field v-model="item.value" :label="item.title" v-if="item.visible===undefined || item.visible==true "></v-text-field>
|
||||
</v-col>
|
||||
<v-col cols="12" class="text-end">
|
||||
|
||||
@@ -900,6 +900,7 @@
|
||||
//console.log("底家:",this.data_table.selected);
|
||||
localStorage.setItem("item", item.actitem_num_selected.val);
|
||||
localStorage.setItem("list", JSON.stringify(list));
|
||||
localStorage.setItem("mode","preview");
|
||||
|
||||
document.body.appendChild(form); // Not entirely sure if this is necessary
|
||||
form.submit();
|
||||
@@ -910,7 +911,7 @@
|
||||
async editTabletNew(item) {
|
||||
this.editedIndex = this.desserts.indexOf(item);
|
||||
this.editedItem = $.extend(true, {}, item);
|
||||
|
||||
console.log("editTabletNew:",this.editedItem,item)
|
||||
try {
|
||||
//document.getElementById("tablet_edit_new_iframe").contentWindow.location.reload();
|
||||
// 如果是新項目,先保存
|
||||
@@ -920,6 +921,7 @@
|
||||
if (savedItem) {
|
||||
this.$set(this.desserts, this.editedIndex, savedItem);
|
||||
this.editedItem = $.extend(true, {}, savedItem);
|
||||
console.log("savedItem:", this.editedItem)
|
||||
}
|
||||
}
|
||||
// 先發送消息
|
||||
@@ -1129,7 +1131,8 @@
|
||||
async save(shouldClose = true) {
|
||||
if (this.editedIndex > -1) {
|
||||
if (this.order_no != '') {
|
||||
console.log("ok:",this.editedItem);
|
||||
this.editedItem.order_no=this.order_no
|
||||
//console.log("ok:",this.editedItem);
|
||||
//chcck necessary params
|
||||
if (this.editedItem.actitem_num_selected.val != 0 &&
|
||||
this.editedItem.keyin1_selected.val !=0 &&
|
||||
@@ -1137,11 +1140,11 @@
|
||||
/* (this.editedItem.category=="1"? this.editedItem.from_id_selected.val != 0 : true) &&*/
|
||||
this.requireData(this.editedItem.qty, (this.editedItem.num == 0 ? false : true)) ) /* qty為0視為不需要此項目,不儲存此筆資料*/
|
||||
{
|
||||
console.log(this.editedItem);
|
||||
//console.log(this.editedItem);
|
||||
//check price
|
||||
if (this.editedItem.pay <= this.editedItem.price * this.editedItem.qty) {
|
||||
console.log(this.editedItem.f_num_selected.val);
|
||||
console.log(this.editedItem.from_id_selected.val);
|
||||
//console.log(this.editedItem.f_num_selected.val);
|
||||
//console.log(this.editedItem.from_id_selected.val);
|
||||
//check qty
|
||||
//數量不可小於掛單明細的數量
|
||||
if (this.editedItem.qty >= this.editedItem.writeBedQty + this.editedItem.notBedQty) {
|
||||
@@ -2176,9 +2179,9 @@
|
||||
<v-icon title="刪除" color="red" class="mr-2" @click="deleteItem(item)">
|
||||
mdi-delete
|
||||
</v-icon>
|
||||
<%--<v-icon title="編輯牌位" color="blue" class="mr-2" @click="editTablet(item);">
|
||||
<v-icon title="編輯牌位" color="blue" class="mr-2" @click="editTablet(item);">
|
||||
mdi-file-document-edit-outline
|
||||
</v-icon> --%>
|
||||
</v-icon>
|
||||
<v-icon title="編輯牌位New" color="blue" class="mr-2" @click="editTabletNew(item);">
|
||||
mdi-file-document-edit-outline
|
||||
</v-icon>
|
||||
|
||||
@@ -246,7 +246,7 @@
|
||||
if (this.search_dialog.current.id == 'search7' || this.search_dialog.current.id == 'search8') {
|
||||
search['num'] = this.follower_id;
|
||||
}
|
||||
console.log("search_get", api_url, search, params, this.options);
|
||||
//console.log("search_get", api_url, search, params, this.options);
|
||||
this.search_dialog.loading = true
|
||||
axios.post(api_url, search, { params: params })
|
||||
.then(response => {
|
||||
@@ -337,7 +337,7 @@
|
||||
},
|
||||
multiPrintNew() {
|
||||
let list = []
|
||||
console.log("print_data.selected:",this.print_data.item);
|
||||
//console.log("print_data.selected:",this.print_data.item);
|
||||
this.print_data.selected.forEach(item => {
|
||||
list.push({
|
||||
num: item.num, print_id: item.print_id, order_no: item.order_no, from_id: item.from_id,
|
||||
@@ -406,6 +406,7 @@
|
||||
addHiddenField("title", `${item.act_item_selected} / ${item.subject}`);
|
||||
localStorage.setItem("item", item.act_item_selected?.val);
|
||||
localStorage.setItem("list", JSON.stringify(list));
|
||||
localStorage.setItem("mode","print");
|
||||
|
||||
document.body.appendChild(form); // Not entirely sure if this is necessary
|
||||
form.submit();
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<span class="btn btn-primary no-print" onclick="Printer.print()">列印</span>
|
||||
<span class="btn btn-primary no-print" id="printBtn" onclick="Printer.print()">列印</span>
|
||||
<select id="paperSizeSel" onchange="Printer.render()">
|
||||
<!-- onchange="Printer.render()"-->
|
||||
<option value="">紙張尺寸</option>
|
||||
@@ -128,6 +128,7 @@
|
||||
observer: null,
|
||||
isInit: true,
|
||||
toast: null,
|
||||
mode:"",
|
||||
bg: [
|
||||
{ name: "超薦1", path: "../../../admin/print/html/tablet-1_new.svg" },
|
||||
{ name: "超薦2", path: "../../../admin/print/html/tablet-1B_new.svg" },
|
||||
@@ -138,6 +139,7 @@
|
||||
this.toast = new bootstrap.Toast($('#liveToast'));
|
||||
let HTTP_HOST = "<%=UrlHost()%>";
|
||||
this.http_host = HTTP_HOST;
|
||||
|
||||
//
|
||||
Promise.all([
|
||||
this.getActItem(),
|
||||
@@ -283,6 +285,7 @@
|
||||
this.printData.forEach(x => {
|
||||
let style = self.allStyle.find(y => y.styleID == x.style);
|
||||
//用來印內容的尺寸
|
||||
console.log("style.paperSize:", style.paperSize)
|
||||
let size = self.allSize.find(y => y.paperID == style.paperSize);
|
||||
//包含空白用來折的尺寸
|
||||
let printSize = self.allSize.find(y => y.paperID == style.printSize);
|
||||
@@ -384,7 +387,7 @@
|
||||
"column-gap": "1px",
|
||||
"row-gap": "1px",
|
||||
"align-items": "center",
|
||||
"justify-content": "space-between",
|
||||
"justify-content": "start",
|
||||
});
|
||||
|
||||
mid.forEach(z => {
|
||||
@@ -1192,10 +1195,16 @@
|
||||
}, 1200);
|
||||
},
|
||||
}
|
||||
$(document).click(function (e) {
|
||||
$(document).ready(function (e) {
|
||||
//if (!$("#customMenu").is(e.target) && $("#customMenu").has(e.target).length === 0) {
|
||||
// $("#customMenu").hide();
|
||||
//}
|
||||
console.log(localStorage.getItem("mode"))
|
||||
if (localStorage.getItem("mode") && localStorage.getItem("mode") == "preview") {
|
||||
//this.mode = "preview"
|
||||
$("#printBtn").attr("style", "display:none")
|
||||
$("#customMenu").attr("style","display:none")
|
||||
}
|
||||
});
|
||||
$(() => Printer.init());
|
||||
</script>
|
||||
|
||||
@@ -1249,7 +1249,7 @@
|
||||
} else if ($(self.selectedElement).children().first().hasClass("lefttitle") ||
|
||||
$(self.selectedElement).children().first().hasClass("righttitle") ||
|
||||
$(self.selectedElement).children().first().hasClass("address")) {
|
||||
//要重新render陽上
|
||||
|
||||
let data = []
|
||||
if ($(self.selectedElement).children().first().hasClass("lefttitle")) {
|
||||
$(self.selectedElement).empty();
|
||||
@@ -1340,7 +1340,7 @@
|
||||
"align-items": "flex-start",
|
||||
"justify-content": "start",
|
||||
});
|
||||
console.log("吼優:",mid);
|
||||
//console.log("吼優:",mid);
|
||||
mid.forEach(x => {
|
||||
let dd = $(`<div>${x}</div>`).css({
|
||||
"margin-bottom": "10px",
|
||||
@@ -1378,7 +1378,7 @@
|
||||
"column-gap": "1px",
|
||||
"row-gap": "1px",
|
||||
"align-items": "center",
|
||||
"justify-content": "space-between",
|
||||
"justify-content": "start",
|
||||
});
|
||||
|
||||
mid.forEach(z => {
|
||||
@@ -1594,6 +1594,9 @@
|
||||
self.renderItem(element);
|
||||
}
|
||||
$("#toast_body").html(`${"新增成功"}`)
|
||||
$("#family_txt").val("");
|
||||
$("#title_txt").val("");
|
||||
$("#deceased_sel").val("False")
|
||||
self.toast.show();
|
||||
} else {
|
||||
|
||||
@@ -1604,6 +1607,7 @@
|
||||
event.preventDefault()
|
||||
//console.log("tabletItem:", designer.tabletItem);
|
||||
//拚牌位的內容
|
||||
console.log("AA")
|
||||
let self = this;
|
||||
let tablet = {
|
||||
mid_items: designer.family_deceased_N_selected,
|
||||
@@ -1613,7 +1617,7 @@
|
||||
mid_right: designer.family_right_title,
|
||||
addr_items: designer.family_address
|
||||
}
|
||||
//console.log(JSON.stringify(tablet));
|
||||
console.log("BB")
|
||||
var pro_order_detail =
|
||||
{
|
||||
num: designer.tabletItem.num <= 0 ? null : designer.tabletItem.num,
|
||||
@@ -1639,7 +1643,7 @@
|
||||
customize_data: designer.tabletItem.customize_data,
|
||||
style: designer.selectStyle.style
|
||||
}
|
||||
|
||||
console.log("CC")
|
||||
await axios
|
||||
.post('/api/order/SaveDetailData', pro_order_detail)
|
||||
.then(response => {
|
||||
@@ -1734,6 +1738,7 @@
|
||||
//designer.toast.show();
|
||||
//designer.reset();
|
||||
let e = event.originalEvent;
|
||||
console.log("QOO");
|
||||
if (e.origin === window.parent.location.origin) {
|
||||
//console.log('editor.html - origin check passed');
|
||||
//console.log('editor.html - received data:', event.data);
|
||||
@@ -1744,7 +1749,7 @@
|
||||
designer.family_right_title = [];
|
||||
designer.http_host = receivedData.host;
|
||||
designer.follower_id = receivedData.follower_id;
|
||||
|
||||
console.log("三小:", receivedData.tabletItem)
|
||||
if (receivedData.tabletItem) {
|
||||
//console.log('editor.html - updating tabletItem:', receivedData.tabletItem);
|
||||
designer.tabletItem = receivedData.tabletItem;
|
||||
@@ -1752,9 +1757,9 @@
|
||||
designer.familyMembers = receivedData.familyMembers; // 更新 familyMembers
|
||||
//console.log("app mounted, window message: ", this.familyMembers, receivedData);
|
||||
}
|
||||
if (receivedData.tabletItem) {
|
||||
designer.tabletItem = receivedData.tabletItem;
|
||||
}
|
||||
//if (receivedData.tabletItem) {
|
||||
// designer.tabletItem = receivedData.tabletItem;
|
||||
//}
|
||||
//console.log("actitem:", receivedData.tabletItem.actitem_num_selected.val);
|
||||
|
||||
if (receivedData.tabletItem.style) {
|
||||
|
||||
@@ -175,7 +175,7 @@
|
||||
class="checkbox-narrow d-inline-flex align-center" />
|
||||
</v-list-item-action>
|
||||
<v-list-item-content>
|
||||
<v-list-item-title>
|
||||
<v-list-item-title :title="member.fam_name">
|
||||
<span class="badge-zero" v-if="member.num==0">0</span>
|
||||
<span class="badge-deceased" v-if="member.deceased">{{ member.deceased ? '卍' : '' }}</span>
|
||||
{{ member.fam_name }}
|
||||
@@ -215,7 +215,7 @@
|
||||
<v-list-item-group>
|
||||
<v-list-item v-for="member in family_deceased_Y_unselected" :key="member.fam_name">
|
||||
<v-list-item-content>
|
||||
<v-list-item-title>
|
||||
<v-list-item-title :title="member.fam_name">
|
||||
<span class="badge-deceased" v-if="member.deceased">{{ member.deceased ? '卍' : '' }}</span>
|
||||
{{ member.fam_name }}
|
||||
<v-chip v-if="member.fam_title" small>
|
||||
@@ -265,9 +265,9 @@
|
||||
class="checkbox-narrow d-inline-flex align-center" />
|
||||
</v-list-item-action>
|
||||
<v-list-item-content>
|
||||
<v-list-item-title>
|
||||
<v-list-item-title :title="member.fam_name">
|
||||
<span class="badge-zero" v-if="member.num==0">0</span>
|
||||
<span class="badge-deceased" v-if="member.deceased">{{ member.deceased ? '卍' : '' }}</span>
|
||||
<span class="badge-deceased" v-if="member.deceased" >{{ member.deceased ? '卍' : '' }}</span>
|
||||
{{ member.fam_name }}
|
||||
<v-chip v-if="member.fam_title" small>
|
||||
{{ member.fam_title }}
|
||||
@@ -305,8 +305,8 @@
|
||||
<v-list-item-group>
|
||||
<v-list-item v-for="member in family_deceased_N_unselected" :key="member.fam_name">
|
||||
<v-list-item-content>
|
||||
<v-list-item-title>
|
||||
<span class="badge-deceased" v-if="member.deceased">{{ member.deceased ? '卍' : '' }}</span>
|
||||
<v-list-item-title :title="member.fam_name">
|
||||
<span class="badge-deceased" v-if="member.deceased" >{{ member.deceased ? '卍' : '' }}</span>
|
||||
{{ member.fam_name }}
|
||||
<v-chip v-if="member.fam_title" small>
|
||||
{{ member.fam_title }}
|
||||
|
||||
@@ -37,6 +37,18 @@ public partial class admin_printpw_index : MyWeb.function
|
||||
Repeater1.DataSource = oderList;
|
||||
Repeater1.DataBind();
|
||||
}
|
||||
else if (!String.IsNullOrEmpty(Request["orders"]))
|
||||
{
|
||||
var orders = Request["orders"];
|
||||
var oderList = _db.pro_order_detail
|
||||
.Where(u =>orders.Contains( u.order_no))
|
||||
.Where(u => (u.parent_num != null)
|
||||
|| u.actItem.subject.Contains("牌")
|
||||
|| !string.IsNullOrEmpty(u.f_num_tablet))
|
||||
.Select(u => new { detail_num = u.num, actItem_num = u.actItem_num }).ToArray();
|
||||
Repeater1.DataSource = oderList;
|
||||
Repeater1.DataBind();
|
||||
}
|
||||
else
|
||||
{
|
||||
Response.Clear();
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
.catch(error => console.log(error))
|
||||
},
|
||||
yulan_print() {
|
||||
_url = HTTP_HOST + '/admin/printpw/index.aspx';
|
||||
_url = HTTP_HOST + 'admin/printpw/index.aspx';
|
||||
var form = document.createElement("form");
|
||||
form.method = "POST";
|
||||
form.action = _url;
|
||||
@@ -86,7 +86,14 @@
|
||||
hiddenField.value = value;
|
||||
form.appendChild(hiddenField);
|
||||
};
|
||||
addHiddenField("activity_num", this.selected_activity);
|
||||
let orders=[]
|
||||
this.order_data.selected.forEach(x => {
|
||||
orders.push(x.order_no)
|
||||
})
|
||||
if (orders.length==0) {
|
||||
return false;
|
||||
}
|
||||
addHiddenField("orders", orders);
|
||||
document.body.appendChild(form); // Not entirely sure if this is necessary
|
||||
form.submit();
|
||||
document.body.removeChild(form);
|
||||
@@ -143,9 +150,9 @@
|
||||
v-model="order_data.selected"
|
||||
:items="order_data.list"
|
||||
item-key="order_no"
|
||||
show-select
|
||||
:headers="order_data.header"
|
||||
:loading="order_data.loading"
|
||||
show-select
|
||||
class="elevation-1">
|
||||
<template #item.detail ="{item}">
|
||||
{{item.detail.count}}
|
||||
|
||||
Reference in New Issue
Block a user