1.報名牌位 2.牌位列印
This commit is contained in:
@@ -11,9 +11,9 @@
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
</style>
|
||||
|
||||
</asp:Content>
|
||||
<asp:Content ID="Content4" ContentPlaceHolderID="footer_script" runat="Server">
|
||||
|
||||
<script>
|
||||
Vue.filter('timeString', function (value, myFormat) {
|
||||
return value == null || value == "" ? "" : moment(value).format(myFormat || 'YYYY-MM-DD, HH:mm:ss');
|
||||
@@ -552,11 +552,38 @@
|
||||
|
||||
// 關閉編輯對話框
|
||||
this.tablet_edit.show = false;
|
||||
thiw.tablet_edit_new.show = false;
|
||||
this.tablet_edit_new.show = false;
|
||||
|
||||
// 顯示成功訊息
|
||||
this.snackbar.text = '牌位資料已更新';
|
||||
this.snackbar.show = true;
|
||||
} else if (event.data.source === 'editorNew.btn.click') {
|
||||
|
||||
const receivedData = event.data.data;
|
||||
|
||||
// 更新編輯中的項目
|
||||
//if (receivedData.tabletItem && this.editedIndex > -1) {
|
||||
if (receivedData.tabletItem) {
|
||||
// 將 tablet_data 轉換為 JSON 字串
|
||||
//this.editedItem.f_num_tablet = JSON.stringify(receivedData.tablet_data);
|
||||
|
||||
// 確保其他必要欄位保持不變
|
||||
const currentItem = this.desserts[this.editedIndex];
|
||||
//currentItem.f_num_tablet = JSON.stringify(receivedData.tablet_data);
|
||||
this.editedItem = {
|
||||
...currentItem,
|
||||
f_num_tablet: JSON.stringify(receivedData.tablet_data),
|
||||
style: receivedData.style
|
||||
};
|
||||
// 呼叫 save 方法
|
||||
await this.save();
|
||||
}
|
||||
this.tablet_edit_new.show = false;
|
||||
|
||||
// 顯示成功訊息
|
||||
this.snackbar.text = '牌位資料已更新';
|
||||
this.snackbar.show = true;
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
@@ -585,6 +612,7 @@
|
||||
'tablet_edit.show': {
|
||||
handler(newVal) {
|
||||
if (!newVal && this._savedEditedItem) {
|
||||
// console.log("三小");
|
||||
this.editedItem = $.extend(true, {}, this._savedEditedItem);
|
||||
this._savedEditedItem = null;
|
||||
}
|
||||
@@ -593,6 +621,8 @@
|
||||
'tablet_edit_new.show': {
|
||||
handler(newVal) {
|
||||
if (!newVal && this._savedEditedItem) {
|
||||
//console.log("不合理");
|
||||
//$("#tablet_edit_new_iframe").src = $("#tablet_edit_new_iframe").src;
|
||||
this.editedItem = $.extend(true, {}, this._savedEditedItem);
|
||||
this._savedEditedItem = null;
|
||||
}
|
||||
@@ -845,6 +875,9 @@
|
||||
this.editedItem = $.extend(true, {}, item);
|
||||
|
||||
try {
|
||||
console.log("衝啥");
|
||||
|
||||
//document.getElementById("tablet_edit_new_iframe").contentWindow.location.reload();
|
||||
// 如果是新項目,先保存
|
||||
if (this.editedItem.num <= 0 || this.editedItem.num === null || this.editedItem.num === undefined) {
|
||||
this.editedItem.qty = 1;
|
||||
@@ -859,6 +892,7 @@
|
||||
// 保存當前的 editedItem 數據
|
||||
const currentData = $.extend(true, {}, this.editedItem);
|
||||
// 顯示對話框
|
||||
|
||||
this.tablet_edit_new.show = true;
|
||||
// 立即恢復數據
|
||||
this.editedItem = $.extend(true, {}, currentData);
|
||||
|
||||
@@ -534,7 +534,7 @@
|
||||
}
|
||||
|
||||
.sub-text {
|
||||
font-size: ${ancestorFontSize}px ;/*0.8em;*/ /* 縮小字體 */
|
||||
/*font-size: ${ancestorFontSize}px ;*//*0.8em;*/ /* 縮小字體 */
|
||||
line-height: 1.2;
|
||||
margin-top: 4px; /* 與上方林張的間距 */
|
||||
white-space: normal; /* 避免自動換行 */
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Document</title>
|
||||
<link href="../../../js/bootstrap5/bootstrap.min.css" />
|
||||
<link href="../../../js/fontawesome6/css/all.min.css" />
|
||||
<link href="../../item/jquery-ui/jquery-ui.min.css" />
|
||||
<link href="../../../js/bootstrap5/bootstrap.min.css" rel="stylesheet" />
|
||||
<link href="../../../js/fontawesome6/css/all.min.css" rel="stylesheet" />
|
||||
<link href="../../item/jquery-ui/jquery-ui.min.css" rel="stylesheet" />
|
||||
<link href="../../../js/vuetify.css" rel="stylesheet" />
|
||||
<link href="../../../js/mdi-font/css/materialdesignicons.min.css" rel="stylesheet" />
|
||||
<script src="../../../js/vue.min.js"></script>
|
||||
@@ -15,6 +15,7 @@
|
||||
<script src="../../../js/bootstrap5/js/bootstrap.bundle.min.js"></script>
|
||||
<script src="../../../js/jquery-4.0.0.min.js"></script>
|
||||
<script src="../../item/jquery-ui/jquery-ui.min.js"></script>
|
||||
|
||||
<style>
|
||||
.div_border {
|
||||
border: 1px solid black;
|
||||
@@ -54,16 +55,30 @@
|
||||
<div class="row work_space">
|
||||
<div class="col-8 div_border printArea"></div>
|
||||
<div class="col-4 div_border" style="font-size:12px;">
|
||||
<div class="row" style="height: 50%; width: 100%; overflow: auto;">
|
||||
<div class="row" style="height: 50%; overflow: auto;">
|
||||
<div style="display:inline-block;width:100%;height:30px;background-color:darkgray;">
|
||||
<h1>已選</h1>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<h3>已選</h3>
|
||||
</div>
|
||||
<div class="col-10">
|
||||
<div class="form-floating mb-3">
|
||||
<input class="form-control" type="text" id="custom_txt" placeholder="請輸入名稱" />
|
||||
<label for="custom_txt">請輸入名稱</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<button type="button" class="custom_add" onclick="designer.addNewItem()" style="width:20px;height:20px;font-size:25px">+</button>
|
||||
</div>
|
||||
</div>
|
||||
<ul class="selectedItem" style="margin-left:1rem;margin-right:1rem;">
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="row" style="height: 50%; width: 100%; overflow: auto;">
|
||||
<div class="row" style="height: 50%; overflow: auto;">
|
||||
<div style="display:inline-block;width:100%;height:30px;background-color:darkgray;">
|
||||
<h1>可選</h1>
|
||||
<h3>可選</h3>
|
||||
<ul class="canselectItem" style="margin-left: 1rem;margin-right:1rem;">
|
||||
</ul>
|
||||
</div>
|
||||
@@ -73,7 +88,6 @@
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
const designer = {
|
||||
code: {
|
||||
@@ -114,6 +128,8 @@
|
||||
rightProperTitle: [],//右正名
|
||||
address: "",//地址
|
||||
alive: [],//陽上
|
||||
tabletType: "A",
|
||||
//toast:null,
|
||||
bg: [
|
||||
{ name: "黃1", path: "../../../admin/print/html/tablet-1_new.svg" },
|
||||
{ name: "黃2", path: "../../../admin/print/html/tablet-1B_new.svg" },
|
||||
@@ -126,6 +142,8 @@
|
||||
.then(res => res.json())
|
||||
.then(data => { this.phrases = data; })
|
||||
.catch(err => console.error('載入 phrases.json 失敗:', err));
|
||||
//this.toast = new bootstrap.Toast(document.querySelector(".toast"));
|
||||
//this.toast.hide();
|
||||
},
|
||||
async getActItem() {
|
||||
axios
|
||||
@@ -136,6 +154,7 @@
|
||||
this.pageSize = response.data.data.pageSize;
|
||||
this.defaultStyle = response.data.data.defaultStyle;
|
||||
this.selected.style = response.data.data.defaultStyle;
|
||||
this.selectStyle.style = response.data.data.defaultStyle;
|
||||
$("#styleSel").val(this.defaultStyle);
|
||||
|
||||
//this.getStyle();
|
||||
@@ -145,6 +164,7 @@
|
||||
|
||||
},
|
||||
async getAllStyleDetails() {
|
||||
this.allStyleDetails.length = 0;
|
||||
await axios
|
||||
.post('/api/tablet/GetStyleDetailData', {})
|
||||
.then(response => {
|
||||
@@ -160,6 +180,7 @@
|
||||
);
|
||||
},
|
||||
async getPaperSize() {
|
||||
this.allSize.length = 0;
|
||||
let self = this
|
||||
await axios
|
||||
.post('/api/tablet/GetPaperSize', {})
|
||||
@@ -181,6 +202,7 @@
|
||||
)
|
||||
},
|
||||
async getTabletElement() {
|
||||
this.tabletElement.length = 0;
|
||||
await axios
|
||||
.post('/api/tablet/GetTabletElement', {})
|
||||
.then(response => {
|
||||
@@ -192,6 +214,7 @@
|
||||
});
|
||||
},
|
||||
async getTabletStyles() {
|
||||
this.allStyle.length = 0;
|
||||
await axios
|
||||
.post('/api/tablet/GetStyleData', {})
|
||||
.then(response => {
|
||||
@@ -209,7 +232,7 @@
|
||||
});
|
||||
},
|
||||
async getData() {
|
||||
console.log("getData:", this.tabletItem)
|
||||
//console.log("getData:", this.tabletItem)
|
||||
this.printData.length = 0;
|
||||
this.properTitle.length = 0
|
||||
this.alive.length = 0;
|
||||
@@ -224,41 +247,63 @@
|
||||
if (response.status == 200) {
|
||||
self.printData = response.data;
|
||||
self.printData.forEach(x => {
|
||||
self.selectStyle = x;
|
||||
if (x.style != null && x.style != undefined)
|
||||
self.selectStyle.style = x.styleID;
|
||||
if (x.f_num_tablet != "") {
|
||||
let tablet = JSON.parse(x.f_num_tablet);
|
||||
|
||||
let mid_items = tablet.mid_items;
|
||||
let left_items = tablet.left_items;
|
||||
self.family_deceased_Y_selected.length = 0;
|
||||
self.family_deceased_N_selected.length = 0;
|
||||
Object.assign(self.family_deceased_N_selected, mid_items);
|
||||
Object.assign(self.family_deceased_Y_selected, left_items);
|
||||
//let mid = [];
|
||||
//family_deceased_Y_selected family_deceased_N_selected
|
||||
mid_items.forEach(y => {
|
||||
self.properTitle.push(y.fam_name);
|
||||
|
||||
});
|
||||
|
||||
//let left = []
|
||||
if (left_items) {
|
||||
left_items.forEach(y => {
|
||||
self.alive.push(y.fam_name);
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
this.render();
|
||||
}
|
||||
});
|
||||
},
|
||||
async render() {
|
||||
$("#printArea").empty();
|
||||
|
||||
$(".printArea").empty();
|
||||
$(".selectedItem").empty();
|
||||
$(".canselectItem").empty();
|
||||
let self = this;
|
||||
self.tabletType = "A";
|
||||
let canvas = $(` <div class="canvas-area flex-grow-1 overflow-auto d-flex flex-row align-items-center position-relative" ></div>`)
|
||||
let nowPageWidth = 0;
|
||||
let tabletpaper;
|
||||
//列印紙張的尺寸
|
||||
;
|
||||
|
||||
let mid = [];
|
||||
Object.assign(mid, self.properTitle);
|
||||
let left = []
|
||||
Object.assign(left, self.alive);
|
||||
//this.printData.forEach(x => {
|
||||
let x = self.selectStyle;
|
||||
let style = self.allStyle.find(y => y.styleID == x.style);
|
||||
let style = self.allStyle.find(y => y.styleID == (x.style ? x.style : $("#styleSel").val()));
|
||||
//console.log("style:",style)
|
||||
if (x.style) {
|
||||
|
||||
} else {
|
||||
self.selectStyle.style = style.styleID;
|
||||
self.selected.style = style.styleID;
|
||||
}
|
||||
|
||||
//用來印內容的尺寸
|
||||
let size = self.allSize.find(y => y.paperID == style.paperSize);
|
||||
let pageSize = self.allSize.find(y => y.paperID == style.printSize);
|
||||
@@ -267,78 +312,44 @@
|
||||
|
||||
tabletpaper = $(` <div class="tablet-paper"></div>`)
|
||||
let img = self.bg.find(y => y.name == style.backendImg);
|
||||
let details = this.allStyleDetails.filter(y => y.styleID == x.style);
|
||||
console.log("details:", details);
|
||||
let details = this.allStyleDetails.filter(y => y.styleID == style.styleID);
|
||||
let ancestorFontSize = 16;
|
||||
|
||||
details.forEach(d => {
|
||||
if (d.isActive != "hidden") {
|
||||
let element = self.tabletElement.find(y => y.elementID == d.elementID);
|
||||
//let newFontSize = self.scaleFontSize(d.sampleContent, d.fontSize, d.width);
|
||||
|
||||
let newFontSize = 16;
|
||||
newFontSize=self.scaleFontSize(mid, d.fontSize, d.textWidth);
|
||||
let html = "";
|
||||
let alive = "";
|
||||
let yang = "";
|
||||
let bi = "";
|
||||
|
||||
if (d.elementID === 'title1') {
|
||||
/* let $namelist = $(`<div class='nameList'></div>`).css({
|
||||
"writing-mode": "vertical rl",
|
||||
display: "flex",
|
||||
"flex-direction": "row",
|
||||
"flex-wrap": "wrap",
|
||||
margin: "auto",
|
||||
width: `${d.width}px`,
|
||||
height: `${d.height}px`,
|
||||
border: "0px solid #ccc",
|
||||
padding: "1px",
|
||||
"font-family": style.fontFamily,
|
||||
"letter-spacing": "0.1em",
|
||||
"column-gap": "1px",
|
||||
"row-gap": "1px",
|
||||
"align-items": "center",
|
||||
"justify-content": "space-between",
|
||||
});
|
||||
|
||||
mid.forEach(z => {
|
||||
let info = self.getTextInfo(z, newFontSize);
|
||||
let spanWidth = mid.length > 1 ? newFontSize : d.width
|
||||
let height = d.textHeight;
|
||||
if (info.width >= d.textHeight) {
|
||||
height = d.height;
|
||||
if (mid.length == 0) {
|
||||
mid.push("請選擇")
|
||||
}
|
||||
let $span = $(`<span class="nameSpan">${z}</span>`).css({
|
||||
display: "block",
|
||||
"min-height": `${height}px`,
|
||||
"max-height": `${d.height}px`,
|
||||
"max-width": `${spanWidth}px`,
|
||||
//width: `${newFontSize}px`,
|
||||
"text-align": "justify",
|
||||
"text-align-last": "justify",
|
||||
"margin-bottom": "20px",
|
||||
"margin-left": "5px",
|
||||
"text-justify": "inter-character",
|
||||
"white-space": "pre-line",
|
||||
//"justify-content":"center"
|
||||
});
|
||||
$namelist.append($span);
|
||||
});
|
||||
|
||||
html = $namelist;*/
|
||||
html = self.renderNameList(mid, d, newFontSize,style);
|
||||
html = self.renderNameList(mid, d, newFontSize, style);
|
||||
} else if (d.elementID === "alive") {
|
||||
self.tabletType = "B";
|
||||
if (left.length == 0) {
|
||||
left.push("請選擇");
|
||||
}
|
||||
html = self.renderLiveList(left, d);
|
||||
|
||||
newFontSize = d.fontSize;
|
||||
} else if (d.elementID === "titletriangle") {
|
||||
if (mid.length == 0) {
|
||||
mid.push("請選擇")
|
||||
}
|
||||
html = self.renderRoster(mid, d)
|
||||
} else if (d.elementID === "combined") {
|
||||
} else if (d.elementID === "combined" || d.elementID === "tricombined") {
|
||||
ancestorFontSize = d.fontSize;
|
||||
newFontSize = d.fontSize;
|
||||
const parts = mid.join("\n").split('\n');
|
||||
html = `<div class="ancestor-wrapper" style="width:${d.width}px !important;height:${d.height}px !important;" >
|
||||
<span class="main-name" >${parts[0] || ''}</span>
|
||||
<span class="sub-text">${parts[1] || ''}</span>
|
||||
</div>`;
|
||||
if (mid.length == 0) {
|
||||
mid.push("請選擇")
|
||||
}
|
||||
html = self.renderCombined(mid, d);
|
||||
|
||||
}
|
||||
if (newFontSize < 10) {
|
||||
newFontSize = 10;
|
||||
@@ -384,7 +395,7 @@
|
||||
size:${pageSize.width}mm ${pageSize.height}mm !important;
|
||||
margin:0;
|
||||
}
|
||||
html, body, form, .full-home, #printArea, .canvas-area {
|
||||
html, body, form, .full-home, .printArea, .canvas-area {
|
||||
height: auto !important;
|
||||
width: auto !important;
|
||||
overflow: visible !important; /*必須為 visible */
|
||||
@@ -535,7 +546,6 @@
|
||||
$("head").append(self.pageStyle);
|
||||
$(canvas).append(tabletpaper);
|
||||
$(".printArea").append(canvas);
|
||||
//});
|
||||
|
||||
$(".tablet-element").on("click", function (e) {
|
||||
e.preventDefault();
|
||||
@@ -548,7 +558,7 @@
|
||||
let self = this;
|
||||
$(".selectedItem").empty();
|
||||
$(".canselectItem").empty();
|
||||
console.log(element);
|
||||
|
||||
if (element.hasClass("liveList")) {//陽上
|
||||
//抓未往生的人出來
|
||||
//self.familyMembers;
|
||||
@@ -575,9 +585,14 @@
|
||||
|
||||
if (element.hasClass("ancestor-wrapper")) {//多姓氏合併,只允許用打的
|
||||
self.properTitle.forEach(y => {
|
||||
$(".selectedItem").append(`<li>${y}</li>`)
|
||||
$(".selectedItem").append(`<li><span style="opacity:0.5">卍</span>
|
||||
<span class="selected">${y}</span>
|
||||
<span class="itemRemove" style="float:right ;margin-left:2rem;cursor:pointer;" >−</span>
|
||||
<span class="itemUp" style="float:right ;margin-left:2rem;cursor:pointer;">↑</span>
|
||||
<span class="itemDown" style="float:right ;margin-left:2rem;cursor:pointer;">↓</span></li>`);
|
||||
});
|
||||
} else if (element.hasClass("nameList")) {//
|
||||
} else if (element.hasClass("nameList") || element.hasClass("rosterList")) {//
|
||||
|
||||
self.properTitle.forEach(y => {
|
||||
$(".selectedItem").append(`<li><span style="opacity:0.5">卍</span>
|
||||
<span class="selected">${y}</span>
|
||||
@@ -587,8 +602,11 @@
|
||||
})
|
||||
let items = []
|
||||
self.familyMembers.forEach(x => {
|
||||
if (x.deceased == false)
|
||||
if (self.tabletType == "A" && x.deceased == false) {
|
||||
items.push(x.fam_name);
|
||||
} else if (self.tabletType == "B" && x.deceased == true) {
|
||||
items.push(x.fam_name);
|
||||
}
|
||||
});
|
||||
let finalItem = items.filter(y => !self.properTitle.includes(y))
|
||||
finalItem.forEach(yy => {
|
||||
@@ -599,18 +617,70 @@
|
||||
|
||||
self.bindEvent();
|
||||
},
|
||||
async addNewItem() {
|
||||
let self = this;
|
||||
let target = $(self.selectedElement).children().first();
|
||||
//let fam = self.familyMembers.find(x => x.fam_name == target.text());
|
||||
if (target.hasClass("liveList")) {
|
||||
self.alive.push($("#custom_txt").val());
|
||||
let obj = {
|
||||
IsShuWen: false,
|
||||
deceased: false,
|
||||
fam_gender: "",
|
||||
fam_name: $("#custom_txt").val(),
|
||||
fam_file: "",
|
||||
nospace: true,
|
||||
num: 0,
|
||||
option_break: false
|
||||
}
|
||||
self.family_deceased_Y_selected.push(obj);
|
||||
} else if (target.hasClass("nameList") || target.hasClass("rosterList")) {
|
||||
self.properTitle.push($("#custom_txt").val());
|
||||
let obj = {
|
||||
IsShuWen: false,
|
||||
deceased: false,
|
||||
fam_gender: "",
|
||||
fam_name: $("#custom_txt").val(),
|
||||
fam_file: "",
|
||||
nospace: true,
|
||||
num: 0,
|
||||
option_break: false
|
||||
}
|
||||
self.family_deceased_N_selected.push(obj);
|
||||
} else if (target.hasClass("ancestor-wrapper")) {
|
||||
if (self.properTitle.length >= 2) {
|
||||
alert("多姓氏合併必須第一個名稱為姓,第二個名稱為氏歷代祖先之類,且最多兩個名稱");
|
||||
} else {
|
||||
self.properTitle.push($("#custom_txt").val());
|
||||
let obj = {
|
||||
IsShuWen: false,
|
||||
deceased: false,
|
||||
fam_gender: "",
|
||||
fam_name: $("#custom_txt").val(),
|
||||
fam_file: "",
|
||||
nospace: true,
|
||||
num: 0,
|
||||
option_break: false
|
||||
}
|
||||
self.family_deceased_N_selected.push(obj);
|
||||
}
|
||||
}
|
||||
$("#custom_txt").val("");
|
||||
self.renderItem($(self.selectedElement).children().first());
|
||||
self.rerenderPart();
|
||||
},
|
||||
async bindEvent() {
|
||||
let self = this;
|
||||
$(".itemAppend").off("click");
|
||||
$(".itemRemove").off("click");
|
||||
$(".itemUp").off("click");
|
||||
$(".itemDown").off("click");
|
||||
$(".itemAppend").on("click", function (e) {
|
||||
|
||||
let curr = $(e.currentTarget.parentElement).find(".unselect").first();
|
||||
let target = self.familyMembers.find(x => x.fam_name == curr.text());
|
||||
if (target) {
|
||||
if ($(self.selectedElement).children().first().hasClass("liveList")) {
|
||||
self.alive.push(target.fam_name);
|
||||
|
||||
let obj = {
|
||||
IsShuWen: false,
|
||||
deceased: false,
|
||||
@@ -622,7 +692,8 @@
|
||||
option_break: false
|
||||
}
|
||||
self.family_deceased_Y_selected.push(obj);
|
||||
} else if ($(self.selectedElement).children().first().hasClass("nameList")) {
|
||||
} else if ($(self.selectedElement).children().first().hasClass("nameList") ||
|
||||
$(self.selectedElement).children().first().hasClass("rosterList")) {
|
||||
self.properTitle.push(target.fam_name);
|
||||
|
||||
let obj = {
|
||||
@@ -635,7 +706,7 @@
|
||||
num: target.num,
|
||||
option_break: false
|
||||
}
|
||||
self.family_deceased_Y_selected.push(obj);
|
||||
self.family_deceased_N_selected.push(obj);
|
||||
}
|
||||
}
|
||||
self.renderItem($(self.selectedElement).children().first())
|
||||
@@ -644,13 +715,16 @@
|
||||
|
||||
$(".itemRemove").on("click", function (e) {
|
||||
let curr = $(e.currentTarget.parentElement).find(".selected").first();
|
||||
//let target = self.alive.find(x => x == curr.text());
|
||||
if ($(self.selectedElement).children().first().hasClass("liveList")) {
|
||||
self.alive = self.alive.filter(x => x !== curr.text());
|
||||
self.family_deceased_Y_selected.filter(x => x.fam_name != curr.text());
|
||||
} else if ($(self.selectedElement).children().first().hasClass("nameList")) {
|
||||
self.family_deceased_Y_selected=self.family_deceased_Y_selected.filter(x => x.fam_name != curr.text());
|
||||
} else if ($(self.selectedElement).children().first().hasClass("nameList") ||
|
||||
$(self.selectedElement).children().first().hasClass("rosterList")) {
|
||||
self.properTitle = self.properTitle.filter(x => x !== curr.text());
|
||||
self.family_deceased_Y_selected.filter(x => x.fam_name != curr.text());
|
||||
self.family_deceased_N_selected=self.family_deceased_N_selected.filter(x => x.fam_name != curr.text());
|
||||
} else if ($(self.selectedElement).children().first().hasClass("ancestor-wrapper")) {//
|
||||
self.properTitle = self.properTitle.filter(x => x !== curr.text());
|
||||
self.family_deceased_N_selected=self.family_deceased_N_selected.filter(x => x.fam_name != curr.text());
|
||||
}
|
||||
self.renderItem($(self.selectedElement).children().first());
|
||||
self.rerenderPart();
|
||||
@@ -667,14 +741,24 @@
|
||||
[self.family_deceased_Y_selected[index - 1], self.family_deceased_Y_selected[index]] =
|
||||
[self.family_deceased_Y_selected[index], self.family_deceased_Y_selected[index - 1]];
|
||||
}
|
||||
} else if ($(self.selectedElement).children().first().hasClass("nameList")) {
|
||||
} else if ($(self.selectedElement).children().first().hasClass("nameList") ||
|
||||
$(self.selectedElement).children().first().hasClass("rosterList")) {
|
||||
let index = self.properTitle.indexOf(curr.text());
|
||||
if (index == 0) {
|
||||
|
||||
} else {
|
||||
[self.properTitle[index - 1], self.properTitle[index]] = [self.properTitle[index], self.alive[index - 1]];
|
||||
[self.family_deceased_Y_selected[index - 1], self.family_deceased_Y_selected[index]] =
|
||||
[self.family_deceased_Y_selected[index], self.family_deceased_Y_selected[index - 1]];
|
||||
[self.properTitle[index - 1], self.properTitle[index]] = [self.properTitle[index], self.properTitle[index - 1]];
|
||||
[self.family_deceased_N_selected[index - 1], self.family_deceased_N_selected[index]] =
|
||||
[self.family_deceased_N_selected[index], self.family_deceased_N_selected[index - 1]];
|
||||
}
|
||||
} else if ($(self.selectedElement).children().first().hasClass("ancestor-wrapper") ) {
|
||||
let index = self.properTitle.indexOf(curr.text());
|
||||
if (index == 0) {
|
||||
|
||||
} else {
|
||||
[self.properTitle[index - 1], self.properTitle[index]] = [self.properTitle[index], self.properTitle[index - 1]];
|
||||
[self.family_deceased_N_selected[index - 1], self.family_deceased_N_selected[index]] =
|
||||
[self.family_deceased_N_selected[index], self.family_deceased_N_selected[index - 1]];
|
||||
}
|
||||
}
|
||||
self.renderItem($(self.selectedElement).children().first());
|
||||
@@ -684,21 +768,31 @@
|
||||
let curr = $(e.currentTarget.parentElement).find(".selected").first();
|
||||
if ($(self.selectedElement).children().first().hasClass("liveList")) {
|
||||
let index = self.alive.indexOf(curr.text());
|
||||
if (index == self.alive.length) {
|
||||
if (index == self.alive.length-1) {
|
||||
|
||||
} else {
|
||||
[self.alive[index], self.alive[index + 1]] = [self.alive[index + 1], self.alive[index]];
|
||||
[self.family_deceased_Y_selected[index], self.family_deceased_Y_selected[index + 1]] =
|
||||
[self.family_deceased_Y_selected[index + 1], self.family_deceased_Y_selected[index]];
|
||||
}
|
||||
} else if ($(self.selectedElement).children().first().hasClass("nameList")) {
|
||||
} else if ($(self.selectedElement).children().first().hasClass("nameList") ||
|
||||
$(self.selectedElement).children().first().hasClass("rosterList")) {
|
||||
let index = self.properTitle.indexOf(curr.text());
|
||||
if (index == self.properTitle.length) {
|
||||
if (index == self.properTitle.length-1) {
|
||||
|
||||
} else {
|
||||
[self.properTitle[index], self.properTitle[index + 1]] = [self.properTitle[index + 1], self.properTitle[index]];
|
||||
[self.family_deceased_Y_selected[index], self.family_deceased_Y_selected[index + 1]] =
|
||||
[self.family_deceased_Y_selected[index + 1], self.family_deceased_Y_selected[index]];
|
||||
[self.family_deceased_N_selected[index], self.family_deceased_N_selected[index + 1]] =
|
||||
[self.family_deceased_N_selected[index + 1], self.family_deceased_N_selected[index]];
|
||||
}
|
||||
} else if ($(self.selectedElement).children().first().hasClass("ancestor-wrapper")) {
|
||||
let index = self.properTitle.indexOf(curr.text());
|
||||
if (index == self.properTitle.length-1) {
|
||||
|
||||
} else {
|
||||
[self.properTitle[index], self.properTitle[index + 1]] = [self.properTitle[index + 1], self.properTitle[index]];
|
||||
[self.family_deceased_N_selected[index], self.family_deceased_N_selected[index + 1]] =
|
||||
[self.family_deceased_N_selected[index + 1], self.family_deceased_N_selected[index]];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -708,41 +802,61 @@
|
||||
},
|
||||
async rerenderPart() {
|
||||
let self = this;
|
||||
let x = self.selectStyle;
|
||||
let style = self.allStyle.find(y => y.styleID == x.style);
|
||||
//用來印內容的尺寸
|
||||
let size = self.allSize.find(y => y.paperID == style.paperSize);
|
||||
let pageSize = self.allSize.find(y => y.paperID == style.printSize);
|
||||
//包含空白用來折的尺寸
|
||||
let printSize = self.allSize.find(y => y.paperID == style.printSize);
|
||||
let details = self.allStyleDetails.filter(y => y.styleID == x.style);
|
||||
if ($(self.selectedElement).children().first().hasClass("liveList")) {
|
||||
$(self.selectedElement).empty();
|
||||
//要重新render陽上
|
||||
let left = []
|
||||
Object.assign(left, self.alive);
|
||||
//this.printData.forEach(x => {
|
||||
let x = self.selectStyle;
|
||||
let style = self.allStyle.find(y => y.styleID == x.style);
|
||||
//用來印內容的尺寸
|
||||
let size = self.allSize.find(y => y.paperID == style.paperSize);
|
||||
let pageSize = self.allSize.find(y => y.paperID == style.printSize);
|
||||
//包含空白用來折的尺寸
|
||||
let printSize = self.allSize.find(y => y.paperID == style.printSize);
|
||||
let details = self.allStyleDetails.filter(y => y.styleID == x.style);
|
||||
|
||||
let d = details.find(y => y.elementID == "alive");
|
||||
let html = self.renderLiveList(left, d);
|
||||
$(self.selectedElement).append(html);
|
||||
} else {
|
||||
if ($(self.selectedElement).children().first().hasClass("nameList")) {
|
||||
$(self.selectedElement).empty();
|
||||
//要重新render陽上
|
||||
|
||||
let mid = []
|
||||
Object.assign(mid, self.properTitle);
|
||||
//this.printData.forEach(x => {
|
||||
let x = self.selectStyle;
|
||||
let style = self.allStyle.find(y => y.styleID == x.style);
|
||||
//用來印內容的尺寸
|
||||
let size = self.allSize.find(y => y.paperID == style.paperSize);
|
||||
let pageSize = self.allSize.find(y => y.paperID == style.printSize);
|
||||
//包含空白用來折的尺寸
|
||||
let printSize = self.allSize.find(y => y.paperID == style.printSize);
|
||||
let details = self.allStyleDetails.filter(y => y.styleID == x.style);
|
||||
//要重新render陽上
|
||||
|
||||
|
||||
if ($(self.selectedElement).children().first().hasClass("nameList")) {
|
||||
$(self.selectedElement).empty();
|
||||
let d = details.find(y => y.elementID == "title1");
|
||||
let newfontSize = self.scaleFontSize(mid, d.fontSize, d.textWidth)
|
||||
if (newfontSize < 10) {
|
||||
newfontSize = 10;
|
||||
}
|
||||
$(self.selectedElement).css("font-size", newfontSize);
|
||||
let html = self.renderNameList(mid, d, style.fontSize, style);
|
||||
$(self.selectedElement).append(html);
|
||||
} else if ($(self.selectedElement).children().first().hasClass("rosterList")) {
|
||||
$(self.selectedElement).empty();
|
||||
let d = details.find(y => y.elementID == "titletriangle");
|
||||
let newfontSize = self.scaleFontSize(mid, d.fontSize, d.textWidth)
|
||||
if (newfontSize < 10) {
|
||||
newfontSize = 10;
|
||||
}
|
||||
$(self.selectedElement).css("font-size", newfontSize);
|
||||
let html = self.renderRoster(mid, d);
|
||||
$(self.selectedElement).append(html);
|
||||
} else if ($(self.selectedElement).children().first().hasClass("ancestor-wrapper")) {
|
||||
$(self.selectedElement).empty();
|
||||
let d = details.find(y => y.elementID == "combined");
|
||||
let newfontSize = self.scaleFontSize(mid, d.fontSize, d.textWidth)
|
||||
if (newfontSize < 10) {
|
||||
newfontSize = 10;
|
||||
}
|
||||
$(self.selectedElement).css("font-size", newfontSize);
|
||||
let html = self.renderCombined(mid, d);
|
||||
$(self.selectedElement).append(html);
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -757,12 +871,16 @@
|
||||
|
||||
//},
|
||||
changeStyle() {
|
||||
|
||||
let self = this;
|
||||
this.selected.style = $("#styleSel").val();
|
||||
this.selectStyle.style = $("#styleSel").val();
|
||||
//console.log("changeStyle:",this.selectStyle);
|
||||
this.render();
|
||||
},
|
||||
fix2(val) {
|
||||
return Number.parseFloat(val).toFixed(2);
|
||||
},
|
||||
renderNameList(mid,d,newFontSize,style) {
|
||||
renderNameList(mid, d, newFontSize, style) {
|
||||
let self = this;
|
||||
let $namelist = $(`<div class='nameList'></div>`).css({
|
||||
"writing-mode": "vertical rl",
|
||||
@@ -866,6 +984,16 @@
|
||||
if (bot.length) h.append(this.renderNameGroups(bot, el));
|
||||
return h
|
||||
},
|
||||
renderCombined(mid,d) {
|
||||
ancestorFontSize = d.fontSize;
|
||||
newFontSize = d.fontSize;
|
||||
const parts = mid.join("\n").split('\n');
|
||||
html = `<div class="ancestor-wrapper" style="width:${d.width}px !important;height:${d.height}px !important;" >
|
||||
<span class="main-name" >${parts[0] || ''}</span>
|
||||
<span class="sub-text">${parts[1] || ''}</span>
|
||||
</div>`;
|
||||
return html
|
||||
},
|
||||
renderNameGroups(items, el) {
|
||||
let g = $(`<div class="rosterspan"></div>`).css({
|
||||
"display": "flex",
|
||||
@@ -891,7 +1019,7 @@
|
||||
//if (dStyle.elementID === 'title1') {//表示是一般正名,也就是牌位正中間的一般格式,排法是上下上下
|
||||
if ((Math.ceil(txtContent.length / 2) * font.width) * 2 > parseFloat(elementWidth)) {
|
||||
let newfontSize = parseInt(fontSize) - 1;
|
||||
if (newfontSize <= 8) {
|
||||
if (newfontSize <= 10) {
|
||||
return newfontSize;
|
||||
}
|
||||
//console.log("newfontSize:",newfontSize)
|
||||
@@ -933,22 +1061,22 @@
|
||||
//console.log("tabletItem:", designer.tabletItem);
|
||||
//拚牌位的內容
|
||||
let self = this;
|
||||
let target = self.familyMembers.filter(x => self.alive.includes(x.fam_name));
|
||||
designer.family_deceased_Y_selected.length = 0;
|
||||
self.alive.forEach(x => {
|
||||
let t = target.find(y => y.fam_name == x);
|
||||
let obj = {
|
||||
IsShuWen: false,
|
||||
deceased: false,
|
||||
fam_gender: "",
|
||||
fam_name: t.fam_name,
|
||||
fam_file: "",
|
||||
nospace: true,
|
||||
num: t.num,
|
||||
option_break: false
|
||||
}
|
||||
designer.family_deceased_Y_selected.push(obj);
|
||||
});
|
||||
//let target = self.familyMembers.filter(x => self.alive.includes(x.fam_name));
|
||||
//designer.family_deceased_Y_selected.length = 0;
|
||||
//self.alive.forEach(x => {
|
||||
// let t = target.find(y => y.fam_name == x);
|
||||
// let obj = {
|
||||
// IsShuWen: false,
|
||||
// deceased: false,
|
||||
// fam_gender: "",
|
||||
// fam_name: t.fam_name,
|
||||
// fam_file: "",
|
||||
// nospace: true,
|
||||
// num: t.num,
|
||||
// option_break: false
|
||||
// }
|
||||
// designer.family_deceased_Y_selected.push(obj);
|
||||
//});
|
||||
//console.log(designer.family_deceased_Y_selected, designer.family_deceased_N_selected);
|
||||
|
||||
let tablet = { mid_items: designer.family_deceased_N_selected, left_items: designer.family_deceased_Y_selected, style: designer.selectStyle.style }
|
||||
@@ -981,14 +1109,38 @@
|
||||
await axios
|
||||
.post('/api/order/SaveDetailData', pro_order_detail)
|
||||
.then(response => {
|
||||
console.log(response);
|
||||
|
||||
let tablet_data = {
|
||||
mid_items: self.family_deceased_N_selected,
|
||||
left_items: self.family_deceased_Y_selected,
|
||||
style: self.selectStyle.style
|
||||
}
|
||||
const ret = {
|
||||
source: 'editorNew.btn.click',
|
||||
data: {
|
||||
tabletItem: this.tabletItem,
|
||||
tablet_data: tablet_data,
|
||||
style: self.selectStyle.style
|
||||
}
|
||||
};
|
||||
window.parent.postMessage(ret, '/');
|
||||
//$.toast({
|
||||
// heading: 'Success',
|
||||
// text: 'Your action was completed successfully!',
|
||||
// showHideTransition: 'slide', // fade, slide, plain
|
||||
// icon: 'success', // info, warning, error, success
|
||||
// position: 'top-left',
|
||||
// loaderBg: '#4CAF50', // loader background color
|
||||
// hideAfter: 3000 // auto close after 3 seconds
|
||||
//});
|
||||
//$(".toast-body").empty();
|
||||
//$(".toast-body").html("ok");
|
||||
//this.toast.show();
|
||||
});
|
||||
|
||||
//console.log("pro_order_detail:",pro_order_detail);
|
||||
},
|
||||
reset() {
|
||||
|
||||
|
||||
designer.code = { style: [] };
|
||||
designer.selected = {
|
||||
style: ""
|
||||
@@ -1025,13 +1177,21 @@
|
||||
designer.rightProperTitle = [];//右正名
|
||||
designer.address = "";//地址
|
||||
designer.alive = [];//陽上
|
||||
|
||||
designer.tabletType= "A";
|
||||
$(".printArea").empty();
|
||||
$(".selectItem").empty();
|
||||
$(".canselectItem").empty();
|
||||
},
|
||||
async resetScreen() {
|
||||
$(".printArea").empty();
|
||||
$(".selectItem").empty();
|
||||
$(".canselectItem").empty();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$(() => $(window).on("message", function (event) {
|
||||
|
||||
//designer.reset();
|
||||
let e = event.originalEvent;
|
||||
if (e.origin === window.parent.location.origin) {
|
||||
//console.log('editor.html - origin check passed');
|
||||
@@ -1051,20 +1211,20 @@
|
||||
designer.tabletItem = receivedData.tabletItem;
|
||||
}
|
||||
//console.log("actitem:", receivedData.tabletItem.actitem_num_selected.val);
|
||||
console.log("receivedData::", receivedData);
|
||||
|
||||
if (receivedData.tabletItem.style) {
|
||||
designer.selected.style = receivedData.tabletItem.style;
|
||||
} else {
|
||||
designer.selected.style = "";
|
||||
}
|
||||
console.log("actitem:", receivedData.tabletItem.actitem_num_selected.val);
|
||||
|
||||
designer.actitem = receivedData.tabletItem.actitem_num_selected.val;
|
||||
//console.log("actitem:",receivedData.tabletItem.actitem_num_selected.val);
|
||||
// 處理 f_num_tablet 資料
|
||||
if (designer.tabletItem.f_num_tablet) {
|
||||
try {
|
||||
const data = JSON.parse(designer.tabletItem.f_num_tablet);
|
||||
|
||||
console.log("阿巫醫ㄟ喔:", data)
|
||||
if (designer.item_type === 'B') {
|
||||
// B類型:超渡、超薦等
|
||||
designer.family_deceased_Y_selected = data.mid_items || [];
|
||||
@@ -1103,15 +1263,18 @@
|
||||
console.error('解析牌位資料時發生錯誤:', e);
|
||||
}
|
||||
}
|
||||
designer.resetScreen();
|
||||
designer.getActItem().then(() => delay(300)).then(() => designer.getData());
|
||||
|
||||
|
||||
designer.getActItem();
|
||||
designer.getData();
|
||||
}
|
||||
}
|
||||
console.log(e.origin, window.parent.location.origin)
|
||||
})
|
||||
)
|
||||
|
||||
);
|
||||
function delay(ms) {
|
||||
return new Promise(resolve => setTimeout(resolve, ms));
|
||||
}
|
||||
$(() => designer.init().then(() => designer.getTabletElement().
|
||||
then(() => designer.getPaperSize().
|
||||
then(() => designer.getTabletStyles().
|
||||
|
||||
+2
-2
@@ -46,8 +46,8 @@
|
||||
</appSettings>
|
||||
<connectionStrings>
|
||||
<!--SQL用-->
|
||||
<add name="shopConn" providerName="System.Data.SqlClient" connectionString="Data Source=192.168.5.27;Initial Catalog=17168erp_c;User ID=sa;Password=linux@mssql1234;Encrypt=False;TrustServerCertificate=True;Provider=SQLOLEDB;Connection Timeout=10;" />
|
||||
<add name="ezEntities" providerName="System.Data.EntityClient" connectionString="metadata=res://*/App_Code.Model.Model.csdl|res://*/App_Code.Model.Model.ssdl|res://*/App_Code.Model.Model.msl;provider=System.Data.SqlClient;provider connection string="Data Source=192.168.5.27;Initial Catalog=17168erp_c;User ID=sa;Password=linux@mssql1234;Encrypt=False;TrustServerCertificate=True;Connection Timeout=10;"" />
|
||||
<add name="shopConn" providerName="System.Data.SqlClient" connectionString="Data Source=192.168.5.20;Initial Catalog=17168erp_c;User ID=sa;Password=linux@mssql1234;Encrypt=False;TrustServerCertificate=True;Provider=SQLOLEDB;Connection Timeout=10;" />
|
||||
<add name="ezEntities" providerName="System.Data.EntityClient" connectionString="metadata=res://*/App_Code.Model.Model.csdl|res://*/App_Code.Model.Model.ssdl|res://*/App_Code.Model.Model.msl;provider=System.Data.SqlClient;provider connection string="Data Source=192.168.5.20;Initial Catalog=17168erp_c;User ID=sa;Password=linux@mssql1234;Encrypt=False;TrustServerCertificate=True;Connection Timeout=10;"" />
|
||||
<!--
|
||||
-->
|
||||
<!--SQL用-->
|
||||
|
||||
Reference in New Issue
Block a user