go
This commit is contained in:
@@ -1,14 +1,18 @@
|
|||||||
using System;
|
using com.itextpdf.text.pdf;
|
||||||
|
using Model;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
using PagedList;
|
||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Data.Entity;
|
||||||
|
using System.Data.SqlClient;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Net.Http;
|
using System.Net.Http;
|
||||||
using System.Web.Http;
|
using System.Web.Http;
|
||||||
using PagedList;
|
|
||||||
using Newtonsoft.Json;
|
|
||||||
using System.Collections;
|
|
||||||
using static TreeView;
|
using static TreeView;
|
||||||
using System.Data.Entity;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// orderdetail 的摘要说明
|
/// orderdetail 的摘要说明
|
||||||
@@ -59,4 +63,29 @@ public class orderdetailController:ApiController
|
|||||||
if (ret.list == null) throw new HttpResponseException(HttpStatusCode.NotFound);
|
if (ret.list == null) throw new HttpResponseException(HttpStatusCode.NotFound);
|
||||||
return Ok(ret);
|
return Ok(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
[Route("api/orderdetail/GetDetailToPrint")]
|
||||||
|
public IHttpActionResult GetDetailToPrint([FromBody] dynamic data)
|
||||||
|
{
|
||||||
|
if (data.param is Newtonsoft.Json.Linq.JArray items)
|
||||||
|
{
|
||||||
|
string[] details = new string[items.Count];
|
||||||
|
int i = 0;
|
||||||
|
foreach (var item in items)
|
||||||
|
{
|
||||||
|
details[i] = item["order_no"] + item["num"].ToString();
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
string sql = @"select * from pro_order_detail where order_no+convert(varchar,num) in ({0}) ";
|
||||||
|
//var p =new SqlParameter[]{ new SqlParameter("p0", String.Join(",", details))};
|
||||||
|
var ret = _db.Database.SqlQuery<pro_order_detail>(sql, String.Join(",", details)).ToList();
|
||||||
|
if (ret == null) throw new HttpResponseException(HttpStatusCode.NotFound);
|
||||||
|
return Ok(ret);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new HttpResponseException(HttpStatusCode.NotFound);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -602,7 +602,9 @@
|
|||||||
|
|
||||||
list = this.data_table.selected
|
list = this.data_table.selected
|
||||||
.sort((a, b) => a.print_id.localeCompare(b.print_id))
|
.sort((a, b) => a.print_id.localeCompare(b.print_id))
|
||||||
.map(x => x.num);
|
.map(x => x.num);
|
||||||
|
|
||||||
|
console.log("what:",list);
|
||||||
|
|
||||||
if (list.length > 0) {
|
if (list.length > 0) {
|
||||||
// 記錄已列印
|
// 記錄已列印
|
||||||
@@ -642,11 +644,9 @@
|
|||||||
addHiddenField("item", this.thisItemSelected.val);
|
addHiddenField("item", this.thisItemSelected.val);
|
||||||
addHiddenField("file", this.thisFilesSelected.val);
|
addHiddenField("file", this.thisFilesSelected.val);
|
||||||
addHiddenField("list", JSON.stringify(list));
|
addHiddenField("list", JSON.stringify(list));
|
||||||
addHiddenField("title", `${this.thisItemSelected.text} / ${this.thisFilesSelected.text}`);
|
addHiddenField("title", `${this.thisItemSelected.text} / ${this.thisFilesSelected.text}`);
|
||||||
localStorage.setItem("item", this.thisItemSelected.val);
|
|
||||||
localStorage.setItem("file", this.thisFilesSelected.val);
|
localStorage.setItem("list", JSON.stringify(this.data_table.selected));
|
||||||
localStorage.setItem("list", JSON.stringify(list));
|
|
||||||
localStorage.setItem("title", `${this.thisItemSelected.text} / ${this.thisFilesSelected.text}`);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
var hiddenField = document.createElement("input");
|
var hiddenField = document.createElement("input");
|
||||||
|
|||||||
@@ -4,18 +4,181 @@
|
|||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
<head runat="server">
|
<head runat="server">
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
<title></title>
|
<title></title>
|
||||||
|
<link href="~/js/bootstrap5/bootstrap.min.css" rel="stylesheet" />
|
||||||
|
<%--<link href="~/js/fontawesome6/css/all.css" rel="stylesheet" />--%>
|
||||||
|
<link href="~/js/mdi-font/css/materialdesignicons.min.css" rel="stylesheet" />
|
||||||
|
<link href="~/js/vuetify_ez.css" rel="stylesheet" />
|
||||||
|
<link href="~/js/sweetalert2/sweetalert2.min.css" rel="stylesheet" />
|
||||||
|
|
||||||
|
<link href="~/admin/Templates/TBS5ADM001/css/Style.css" rel="stylesheet" />
|
||||||
|
<link href="~/admin/item/css/floating.css" rel="stylesheet" />
|
||||||
|
<link href="~/admin/item/css/tablet-design.css" rel="stylesheet" />
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<form id="form1" runat="server">
|
<form id="form1" runat="server">
|
||||||
<div>
|
<div id="printArea" style="width: 100vw; height: 100vh">
|
||||||
</div>
|
<div class="canvas-area flex-grow-1 overflow-auto d-flex flex-column align-items-center position-relative" id="canvas">
|
||||||
|
<%-- <div class="tablet-paper">
|
||||||
|
</div>--%>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</body>
|
</body>
|
||||||
<script>
|
<script src="<%=ResolveUrl("~/js/bootstrap5/js/bootstrap.bundle.min.js")%>"></script>
|
||||||
console.log(localStorage.getItem("list"));
|
<script src="<%=ResolveUrl("~/js/jquery-4.0.0.min.js")%>"></script>
|
||||||
console.log(localStorage.getItem("item"));
|
<script src="<%=ResolveUrl("~/js/vue.min.js")%>"></script>
|
||||||
console.log(localStorage.getItem("file"));
|
<script src="<%=ResolveUrl("~/js/vuetify.min.js")%>"></script>
|
||||||
</script>
|
<script src="<%=ResolveUrl("~/js/axios.min.js")%>"></script>
|
||||||
|
<script src="<%=ResolveUrl("~/js/moment.min.js")%>"></script>
|
||||||
|
<script src="<%=ResolveUrl("~/js/sweetalert2/sweetalert2.all.min.js") %>"></script>
|
||||||
|
<script src="<%=ResolveUrl("~/admin/Templates/TBS5ADM001/js/Script.js")%>"></script>
|
||||||
|
<script src="<%=ResolveUrl("~/admin/item/jquery-ui/jquery-ui.min.js")%>"></script>
|
||||||
|
<script>
|
||||||
|
const Printer = {
|
||||||
|
http_host: "",
|
||||||
|
allStyle: [],
|
||||||
|
allSize: [],
|
||||||
|
allStyleDetails:[],
|
||||||
|
printData: [],
|
||||||
|
tabletElement: [],
|
||||||
|
bg: [
|
||||||
|
{ name: "黃1", path: "../../admin/print/html/tablet-1.svg" },
|
||||||
|
{ name: "黃2", path: "../../admin/print/html/tablet-1B.svg" },
|
||||||
|
{ name: "紅1", path: "../../admin/print/html/tablet-2.svg" },
|
||||||
|
{ name: "紅2", path: "../../admin/print/html/tablet-2B.svg" }
|
||||||
|
],
|
||||||
|
async init() {
|
||||||
|
let HTTP_HOST = "<%=UrlHost()%>";
|
||||||
|
this.http_host = HTTP_HOST;
|
||||||
|
await Promise.all([
|
||||||
|
this.getPaperSize(),
|
||||||
|
this.getTabletElement(),
|
||||||
|
this.getTabletStyles(),
|
||||||
|
this.getAllStyleDetails()
|
||||||
|
]);
|
||||||
|
this.getData();
|
||||||
|
|
||||||
|
},
|
||||||
|
async getAllStyleDetails() {
|
||||||
|
await axios
|
||||||
|
.post(this.http_host + 'api/tablet/GetStyleDetailData', {})
|
||||||
|
.then(response => {
|
||||||
|
if (response.status == "200") {
|
||||||
|
let data = response.data;
|
||||||
|
if (data.result == "Y") {
|
||||||
|
let details = data.data;
|
||||||
|
this.allStyleDetails = details;
|
||||||
|
console.log(data.data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
async getPaperSize() {
|
||||||
|
let self = this
|
||||||
|
await axios
|
||||||
|
.post(this.http_host + 'api/tablet/GetPaperSize', {})
|
||||||
|
.then(response => {
|
||||||
|
//if (response.result=="Y") {
|
||||||
|
if (response.status == "200") {
|
||||||
|
let data = response.data;
|
||||||
|
this.allSize = data.data;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
},
|
||||||
|
async getTabletElement() {
|
||||||
|
await axios
|
||||||
|
.post(this.http_host + 'api/tablet/GetTabletElement', {})
|
||||||
|
.then(response => {
|
||||||
|
//if (response.result=="Y") {
|
||||||
|
if (response.status == "200") {
|
||||||
|
let data = response.data;
|
||||||
|
this.tabletElement = data.data;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
async getTabletStyles() {
|
||||||
|
await axios
|
||||||
|
.post(this.http_host + 'api/tablet/GetStyleData', {})
|
||||||
|
.then(response => {
|
||||||
|
//if (response.result=="Y") {
|
||||||
|
if (response.status == "200") {
|
||||||
|
let data = response.data;
|
||||||
|
this.allStyle = data.data;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
async getData() {
|
||||||
|
let list = localStorage.getItem("list")
|
||||||
|
let param = [];
|
||||||
|
let data = JSON.parse(list)
|
||||||
|
data.forEach(x => {
|
||||||
|
param.push({ order_no: x.order_no, num: x.num });
|
||||||
|
});
|
||||||
|
await axios
|
||||||
|
.post(this.http_host + 'api/orderdetail/GetDetailToPrint', { param: param })
|
||||||
|
.then(response => {
|
||||||
|
|
||||||
|
if (response.status == 200) {
|
||||||
|
this.printData = response.data;
|
||||||
|
|
||||||
|
this.render();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
render() {
|
||||||
|
|
||||||
|
this.printData.forEach(x => {
|
||||||
|
|
||||||
|
let style = this.allStyle.find(y => y.style == x.styleID);
|
||||||
|
let size = this.allSize.find(y => y.paperID == style.paperSize);
|
||||||
|
|
||||||
|
let tabletpaper = $(` <div class="tablet-paper">
|
||||||
|
</div>`)
|
||||||
|
|
||||||
|
tabletpaper.css({
|
||||||
|
"background-color": "white",
|
||||||
|
width: size.width + 'mm',
|
||||||
|
height:size.height + 'mm',
|
||||||
|
position: "absolute",
|
||||||
|
|
||||||
|
"background-image": 'url("../../admin/print/html/tablet-2.svg")', 'background-size': '100% 100%',
|
||||||
|
});
|
||||||
|
let tablet = JSON.parse(x.f_num_tablet);
|
||||||
|
|
||||||
|
let mid_items = tablet.mid_items;
|
||||||
|
let left_items = tablet.left_items;
|
||||||
|
|
||||||
|
let details = this.allStyleDetails.filter(y => y.styleID == x.style);
|
||||||
|
console.log("QQ:",details,x.style);
|
||||||
|
details.forEach(d => {
|
||||||
|
if (d.isActive!="hidden") {
|
||||||
|
let content = $(`<div class="tablet-element vertical-text "></div>`)
|
||||||
|
.css({
|
||||||
|
position: "absolute", left: d.x + "mm", top: d.y + "mm", fontSize: d.fontSize + 'pt', fontFamily: d.fontFamily, "z-index": 9999, visibility: d.isActive
|
||||||
|
//position: "absolute", left: el.startX + "mm", top: el.startY + "mm", fontSize: el.fontSize + 'pt', fontFamily: el.fontFamily, "z-index": 9999, visibility: el.isActive
|
||||||
|
})
|
||||||
|
.html("測試");
|
||||||
|
tabletpaper.append(content);
|
||||||
|
}
|
||||||
|
console.log("tabletDetails:",d);
|
||||||
|
})
|
||||||
|
$("#canvas").append(tabletpaper);
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$(() => Printer.init());
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
Reference in New Issue
Block a user