You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

628 lines
25 KiB
Plaintext

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DT_OrderReturn.aspx.cs" Inherits="TradeManageNew.DingDan.DT_OrderReturn" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>二手售卖2</title>
<link rel="stylesheet" type="text/css" href="../themes/default/easyui.css" />
<link rel="stylesheet" type="text/css" href="../themes/icon.css" />
<link rel="stylesheet" type="text/css" href="../themes/card.css" />
<link rel="stylesheet" type="text/css" href="../themes/New.css?a=1" />
<link rel="stylesheet" type="text/css" href="../themes/DataGrid.css" />
<style>
img[src=""] {
visibility: hidden;
}
.product-box{
width: 100%;
display: flex;
justify-content: flex-start;
align-items: center;
}
.product-box a{
text-align: left;
padding: 0 4px;
}
.receipt {
width: 540px;
margin: 0;
padding: 10px 30px;
box-shadow: none;
font-family: "Microsoft YaHei", sans-serif;
background: #fff;
}
.receipt .product-image {
width: 200px;
margin: 0 auto 20px;
display: block;
}
.receipt .info-section {
border-top: 2px solid #f0f0f0;
padding-top: 20px;
}
.receipt .product-details, .customer-info {
margin-bottom: 20px;
line-height: 2;
}
.receipt .product-details p, .customer-info p {
color: #666;
margin: 8px 0;
font-size: 14px;
font-weight: normal;
}
.receipt .product-details span, .customer-info span {
color: #000;
font-weight: 500;
margin-left: 10px;
font-size: 16px;
}
.receipt .product-details{
position: relative;
}
.receipt .product-image{
position: absolute;
right: 0;
top: 65px;
width: 150px;
height: auto;
}
</style>
<script src="https://cdn.jsdelivr.net/npm/jsbarcode@3.11.5/dist/JsBarcode.all.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.7.1/jszip.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/file-saver@2.0.5/dist/FileSaver.min.js"></script>
<script src="../Scripts/MicrosoftAjax.js" type="text/javascript"></script>
<script src="../Scripts/jquery.min.js" type="text/javascript"></script>
<script src="../Scripts/jquery.easyui.min.js" type="text/javascript"></script>
<script src="../Scripts/DataGrid.js?a=3445" type="text/javascript"></script>
<script src="../Scripts/DataPager.js" type="text/javascript"></script>
<script src="../Scripts/jquery.bgiframe.min.js" type="text/javascript"></script>
<script src="../Scripts/Global.js" type="text/javascript"></script>
<script src="../Scripts/jquery.url.js" type="text/javascript"></script>
<script src="../Scripts/WindowLoad.js" type="text/javascript"></script>
<script src="../Scripts/qrcode.min.js" type="text/javascript"></script>
<script src="../Scripts/html2canvas.min.js" type="text/javascript"></script>
<script src="../Scripts/jquery.cookies.min.js" type="text/javascript"></script>
<script src="../Scripts/MaskedTextBox.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="../Scripts/fancybox2.1/source/jquery.fancybox.css?v=2.1.5"
media="screen" />
<script type="text/javascript" src="../Scripts/fancybox2.1/lib/jquery.mousewheel-3.0.6.pack.js"></script>
<script type="text/javascript" src="../Scripts/fancybox2.1/source/jquery.fancybox.js?v=2.1.5"></script>
<script src="../Scripts/DatePicker/WdatePicker.js" type="text/javascript"></script>
<script type="text/javascript" src="../Scripts/highcharts.js"></script>
<script src="../Scripts/kindeditor/kindeditor-min.js" type="text/javascript"></script>
<script src="../Scripts/kindeditor/lang/zh_CN.js" type="text/javascript"></script>
<script type="text/javascript">
var datagrid1 = new nblf.ui.DataGrid("DataGrid1");
var WindowLoadModel = new WindowLoad();
var showDetailModel = '';
var id = 0;
var ScanState = 0;
$(document).ready(function () {
WindowLoadModel.ApplicationPath = "../";
WindowLoadModel.ControlID = "WindowLoad";
WindowLoadModel.Isbgiframe = true;
WindowLoadModel.Load();
ajaxInit(WindowLoadModel);
CreateDataGrid();
ReadData();
$(document).keyup(function (event) {
if ($("#txt_SKU").is(":focus") == true && event.keyCode == 13) {
if ($("#txt_SKU").val() != "")
ReadData();
}
if ($("#txt_BarCode").is(":focus") == true && event.keyCode == 13) {
if ($("#txt_BarCode").val() != "")
ReadData();
}
if ($("#txt_PositionCode").is(":focus") == true && event.keyCode == 13) {
if ($("#txt_PositionCode").val() != "")
ReadData();
}
});
$("#" + datagrid1.TableID + " input[type='checkbox']").live("click", function () {
var num = $("#" + datagrid1.TableID + " input[type='checkbox']:checked").length;
if ($("#" + datagrid1.TableID + "_SelectAll").is(":checked") == true)
num = num - 1;
$("#a_select").html("已选中" + num + "条");
});
});
// 初始化DataGrid
//#region 初始化DataGrid
function CreateDataGrid() {
var col = new nblf.ui.DataGridColumn();
col.HeaderText = "SKU";
col.Width = "150px";
col.CellTemplate = `<div class="product-box"><img src='{Bind firstImg}' alt='' width='50px' height='50px'/><a style="cursor: pointer;" onclick="LinkGoods({Bind SkuId})">{Bind SkuCode}</a></diav>`;
col.SortExpression = "c.SkuCode";
Array.add(datagrid1.Columns, col);
var col = new nblf.ui.DataGridColumn();
col.HeaderText = "BarCode";
col.CellTemplate = "<span>{Bind BarCode}</span>";
col.SortExpression = "c.BarCode";
Array.add(datagrid1.Columns, col);
col = new nblf.ui.DataGridColumn();
col.HeaderText = "Photo";
col.CellTemplate = "<img src='{Bind firstImg}' alt='' width='50px' height='50px'/>";
Array.add(datagrid1.Columns, col);
var col = new nblf.ui.DataGridColumn();
col.HeaderText = "PositionCode";
col.CellTemplate = "<span>{Bind WarehousePositionCode}</span>";
col.SortExpression = "c.WarehousePositionCode";
Array.add(datagrid1.Columns, col);
col = new nblf.ui.DataGridColumn();
col.HeaderText = "CreationTime";
col.CellTemplate = "<a>{Bind CreationTime,yyyy-MM-dd HH:mm}</a>";
col.SortExpression = "CreationTime";
Array.add(datagrid1.Columns, col);
var col = new nblf.ui.DataGridColumn();
col.HeaderText = "IsPrinted";
col.CellTemplate = "<span>{Bind IsPrinted}</span>";
col.CellFormatter = function (value) {
if(value){
return 'Printed'
}else{
return 'Not Printed'
}
};
Array.add(datagrid1.Columns, col);
var col = new nblf.ui.DataGridColumn();
col.HeaderText = "Status";
col.CellTemplate = "<span>{Bind Status}</span>";
col.CellFormatter = function (value) {
switch (value) {
case 1:
return "未上架";
case 2:
return "已上架";
case 3:
return "等待客户取货";
case 4:
return "完成售卖";
default:
return "-";
}
};
Array.add(datagrid1.Columns, col);
var col = new nblf.ui.DataGridColumn();
col.HeaderText = "PublishMessage";
col.CellTemplate = "<span>{Bind PublishMessage}</span>";
col.SortExpression = "c.PublishMessage";
Array.add(datagrid1.Columns, col);
var col = new nblf.ui.DataGridColumn();
col.HeaderText = "OrderDetail";
col.CellTemplate = "<span>{Bind OrderDetail}</span>";
col.CellFormatter = function (order) {
var str = "";
if(order){
str += `<div>订单号:</div>`
str += `<div>收件人:</div>`
str += `<div>手机号:</div>`
str += `<div>地址:</div>`
}
return str;
}
Array.add(datagrid1.Columns, col);
//操作
col = new nblf.ui.DataGridColumn();
col.HeaderText = "操作";
col.Width = "100px";
col.CellTemplate = "{Bind Status}";
col.CellFormatter = function (value) {
var OptionStr = "";
switch (value) {
case 1:
OptionStr += "<input onclick='UploadGoods(this)' class='btnClass dgbtnEdit' type='button' value='上架产品'></input>";
break;
case 2:
OptionStr += "<input onclick='DownloadReceipt(this)' class='btnClass dgbtnEdit' type='button' value='下载提货单'></input>";
OptionStr += "<input onclick='DownloadTrackCode(this)' class='btnClass dgbtnEdit' type='button' value='下载快递面单'></input>";
OptionStr += "<input onclick='MarkSell(this)' class='btnClass dgbtnEdit' type='button' value='标记卖出'></input>";
}
return OptionStr;
}
Array.add(datagrid1.Columns, col);
datagrid1.SetPageSize(50);
datagrid1.SetPageIndex(1);
datagrid1.SortExpression = "Id ";
datagrid1.ViewSortDirection = "desc";
datagrid1.IsFixHeader = false;
datagrid1.ShowIndexColumn = false;
datagrid1.AllowPaging = true;
datagrid1.AllowPaging2 = true;
datagrid1.ShowIndexColumn = true;
datagrid1.Width = "100%";
datagrid1.SelectMode = nblf.ui.SelectMode.CheckBox;
datagrid1.Init();
datagrid1.Sorting(function () {
ReadData();
});
datagrid1.add_PageIndexChanged(function () { ReadData(); });
}
var PState = 0;
//#endregion
// 读取数据
//#region 读取数据
function ReadData() {
var IsPrinted = $('#select_IsPrinted').val() == "-1" ?
null : $('#select_IsPrinted').val() == "1" ?
true : false
var Status = $('#select_Status').val() == "-1" ?
null : $('#select_Status').val()
var param = {
PageIndex: datagrid1.Get_PageIndex(),
PageSize: datagrid1.Get_PageSize(),
Code: $('#txt_SKU').val() || '', //SKU编码
BarCode: $('#txt_BarCode').val() || '', //条码
WarehousePositionCode: $('#txt_PositionCode').val() || '', //库位编码
IsPrinted: IsPrinted, //是否已打印
Status: Status, //状态
};
WindowLoadModel.Show();
$.ajax({
url: "../DD_OrderServiceNew.asmx/OrderUsedSalePlatformPage",
data: Sys.Serialization.JavaScriptSerializer.serialize(param),
success: function (data) {
WindowLoadModel.Hide();
data.d.DataSource.forEach(it=>{
it.ImageUrls = JSON.parse(it.ImageUrls)
it.firstImg = it.ImageUrls && it.ImageUrls.length ? it.ImageUrls[0] : ""
})
datagrid1.Set_RowCount(data.d.RowCount);
datagrid1.DataBind(data.d.DataSource);
$("#a_select").html("");
$("a[iul]").each(function () {
var iul = $(this).attr("iul");
if (iul == "")
$(this).hide();
});
}
});
}
function GetTimediff(date1) {
// var date1= '2015/05/01 00:00:00'; //开始时间
var date2 = new Date(); //结束时间
var date3 = new Date(date1).getTime() - date2.getTime(); //时间差的毫秒数
//计算出相差天数
if (date3 <= 0)
return "0";
var days = Math.floor(date3 / (24 * 3600 * 1000))
//计算出小时数
var leave1 = date3 % (24 * 3600 * 1000) //计算天数后剩余的毫秒数
var hours = Math.floor(leave1 / (3600 * 1000))
return days + "天 " + hours + "小时";
}
//#endregion
//#region 跳转到商品详情
function LinkGoods(GoodsId) {
window.open(`https://www.kferp.net/HuoWu/HW_GoodsAddForTM.aspx?GoodsId=${GoodsId}`);
}
//#endregion
//#region 日期格式转换
function formatDate(date) {
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0');
const day = String(date.getDate()).padStart(2, '0');
return `${year}-${month}-${day}`;
}
//#endregion
//#region 日期格式转换
function formatDate(date) {
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0');
const day = String(date.getDate()).padStart(2, '0');
return `${year}-${month}-${day}`;
}
//#endregion
//#region 批量下载条码图片
function BatDownloadBarcode() {
var SelectListModels = datagrid1.GetSelectListModel();
if (SelectListModels == null || $(SelectListModels).length == 0) {
alert("Please check the data first");
return;
}
var SelectList = SelectListModels.map(it=>{
return {
...it,
date: formatDate(it.CreationTime)
}
})
var printedIds = SelectList.map(it=>it.Id)
var uploadIds = SelectList.filter(it=>it.Status == 1).map(it=>it.Id)
BatChangeIsPrinted(printedIds);
generateAndDownload(SelectList)
BatUploadGoods(uploadIds);
}
//#endregion
//#region 批量修改打印状态
function BatChangeIsPrinted(Ids) {
var param = {
Ids: Ids,
}
WindowLoadModel.Show();
$.ajax({
url: "../DD_OrderServiceNew.asmx/OrderUsedSalePlatformPrint",
data: Sys.Serialization.JavaScriptSerializer.serialize(param),
dataType: "json",
success: function (data) {
WindowLoadModel.Hide();
if(data.d.Code==1){
ReadData();
}else{
alert(data.d.Message);
}
}
});
}
//#endregion
//#region 单个上架产品
function UploadGoods(obj) {
var rowindex = $(obj).parent().parent().attr("index");
var model = datagrid1.Get_Model(rowindex);
var param = {
Ids: [model.Id],
}
$.ajax({
url: "../DD_OrderServiceNew.asmx/OrderUsedSalePlatformPublish",
data: Sys.Serialization.JavaScriptSerializer.serialize(param),
dataType: "json",
});
alert("已开始推送,需要一段时间,请稍后查看推送状态");
}
//#endregion
//#region 批量上架产品
function BatUploadGoods(Ids) {
var param = {
Ids: Ids,
}
$.ajax({
url: "../DD_OrderServiceNew.asmx/OrderUsedSalePlatformPublish",
data: Sys.Serialization.JavaScriptSerializer.serialize(param),
dataType: "json",
});
}
//#endregion
//#region 生成条码图片并下载ZIP
async function generateAndDownload(data) {
const zip = new JSZip();
for (let i = 0; i < data.length; i++) {
const canvas = await generateImage(data[i]);
const imageData = canvas.toDataURL('image/png').split(',')[1];
zip.file(`image_${i + 1}.png`, imageData, {base64: true});
// 显示预览
const container = document.createElement('div');
container.className = 'image-container';
container.appendChild(canvas);
// document.getElementById('preview').appendChild(container);
}
// 生成并下载ZIP文件
zip.generateAsync({type: 'blob'}).then(function(content) {
saveAs(content, 'images.zip');
});
}
// 生成条码图片
async function generateImage(item) {
// 创建画布
const canvas = document.createElement('canvas');
canvas.width = 900;
canvas.height = 660;
const ctx = canvas.getContext('2d');
// 填充白色背景
ctx.fillStyle = 'white';
ctx.fillRect(0, 0, canvas.width, canvas.height);
// 添加SKU
ctx.fillStyle = 'black';
ctx.font = '48px SimHei';
ctx.fillText(item.SkuCode, 30, 60);
// 添加日期,右对齐
ctx.font = '40px SimHei';
const dateWidth = ctx.measureText(item.date).width; // 测量文本宽度
ctx.fillText(item.date, canvas.width - 30 - dateWidth, 60); // 从右边缘减去文本宽度和边距
// 生成条形码
const barcodeCanvas = document.createElement('canvas');
JsBarcode(barcodeCanvas, item.BarCode, {
format: "CODE128",
width: 6,
height: 300,
displayValue: true,
fontSize: 48,
fontOptions: "bold",
textMargin: 10,
font: "SimHei"
});
// 将条形码绘制到主画布
ctx.drawImage(barcodeCanvas, 150, 120);
// 添加分割线
ctx.beginPath();
ctx.moveTo(30, 570);
ctx.lineTo(870, 570);
ctx.strokeStyle = 'black';
ctx.lineWidth = 3;
ctx.stroke();
// 添加提示文字
ctx.font = '35px Arial';
ctx.fillText('Notice: This product cannot be returned or exchanged', 30, 630);
return canvas;
}
//#endregion
//#region 下载提货单
function DownloadReceipt(obj) {
var rowindex = $(obj).parent().parent().attr("index");
var model = datagrid1.Get_Model(rowindex);
const receiptEl = document.getElementById('receipt');
$('#receipt').show();
const options = {
scale: 2,
useCORS: true,
backgroundColor: '#ffffff',
logging: true,
windowWidth: receiptEl.scrollWidth,
windowHeight: receiptEl.scrollHeight,
scrollX: 0,
scrollY: 0
};
html2canvas(receiptEl, options).then(function(canvas) {
const link = document.createElement('a');
link.download = `pickup_receipt_${model.BarCode}.png`;
link.href = canvas.toDataURL('image/png', 1.0);
link.click();
$('#receipt').hide();
});
}
//#endregion
//#region 下载快递面单
function DownloadTrackCode(obj) {
var rowindex = $(obj).parent().parent().attr("index");
var model = datagrid1.Get_Model(rowindex);
console.log(model)
}
//#endregion
//#region 标记卖出
function MarkSell(obj) {
var rowindex = $(obj).parent().parent().attr("index");
var model = datagrid1.Get_Model(rowindex);
console.log(model)
}
//#endregion
</script>
</head>
<body class="headbody">
<div class="title_ico">
二手售卖2
</div>
<table id="tb1" class="tableAll" style="width: 100%;">
<tr>
<td class="f1" style="width: 10%;">SKU</td>
<td width="22%">
<input id="txt_SKU" class="editTextbox" style="width: 120px;" type="text" />
</td>
<td class="f1" style="width: 10%;">BarCode</td>
<td width="22%">
<input id="txt_BarCode" class="editTextbox" style="width: 120px;" type="text" />
</td>
<td class="f1" style="width: 10%;">PositionCode</td>
<td width="22%">
<input id="txt_PositionCode" class="editTextbox" style="width: 120px;" type="text" />
</td>
</tr>
<tr>
<td style="width: 12%;" class="f1" align="center">IsPrinted</td>
<td width="15%">
<select id="select_IsPrinted" class="selectClass" name="IsPrinted" style="width: 120px">
<option value="-1">All</option>
<option value="1">Printed</option>
<option value="0">Not Printed</option>
</select>
</td>
<td class="f1" style="width: 10%;">Status:</td>
<td width="15%">
<select id="select_Status" class="selectClass" name="Status" style="width: 120px">
<option value="-1">All</option>
<option value="0">未上架</option>
<option value="1">已上架</option>
<option value="2">等待取货</option>
<option value="3">售卖完成</option>
</select>
</td>
<td>
<input id="btn_sch" class="btnClass btnClassFind" type="button" value="查询" onclick="ReadData();" />
</td>
</tr>
<tr class="orderType1">
<td colspan="8">
<input id="btn_BatDownloadBarcode" class="btnClass btnClassEdit" type="button" value="批量下载条码图片" onclick="BatDownloadBarcode();" />
<br />
<a id="a_select" style="color:red;font-weight:bolder"></a>
</td>
</tr>
<tr>
<td valign="top" colspan="7">
<div id="DataGrid1" class="DataGridStyle"></div>
</td>
</tr>
</table>
<!-- 提货单 -->
<div class="receipt" id="receipt" style="display: none;">
<div class="header">
<h3>Pickup Receipt ( <span id="receiptStore">West</span> )</h3>
</div>
<div class="info-section">
<div class="product-details">
<p>Product Name: <span id="receiptProductName">Power Tower Dip Station Pull Up Bar Workout Equipment, Adjustable Height 62.2" to 84.5", Holds Up to 660LBS</span></p>
<p>Product SKU: <span id="receiptProductSKU">SKU123456</span></p>
<p>Product Code: <span id="receiptProductCode">P789012</span></p>
<p>Product Price: <span id="receiptProductPrice">$399.00</span></p>
<img id="receiptProductImage" src="https://cdn.shopify.com/s/files/1/0915/6817/7474/files/KM2739_main.jpg?v=1736757843" alt="Product Image" class="product-image">
</div>
<div class="customer-info">
<p>Customer Name: <span id="receiptCustomerName">John Smith</span></p>
<p>Phone Number: <span id="receiptCustomerPhone">+1 234 567 8900</span></p>
<p>Appointment Time: <span id="receiptAppointmentTime">2024-03-20 14:30</span></p>
</div>
</div>
</div>
</body>
</html>