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

2 months ago
<%@ 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" />
2 months ago
<style>
img[src=""] {
visibility: hidden;
}
2 months ago
.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;
}
2 months ago
</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>
2 months ago
<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) {
2 months ago
if ($("#txt_SKU").is(":focus") == true && event.keyCode == 13) {
if ($("#txt_SKU").val() != "")
2 months ago
ReadData();
}
2 months ago
if ($("#txt_BarCode").is(":focus") == true && event.keyCode == 13) {
if ($("#txt_BarCode").val() != "")
ReadData();
2 months ago
}
2 months ago
if ($("#txt_PositionCode").is(":focus") == true && event.keyCode == 13) {
if ($("#txt_PositionCode").val() != "")
ReadData();
2 months ago
}
});
2 months ago
$("#" + 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 + "条");
2 months ago
});
2 months ago
});
2 months ago
// 初始化DataGrid
//#region 初始化DataGrid
function CreateDataGrid() {
2 months ago
var col = new nblf.ui.DataGridColumn();
2 months ago
col.HeaderText = "SKU";
2 months ago
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>`;
2 months ago
col.SortExpression = "c.SkuCode";
2 months ago
Array.add(datagrid1.Columns, col);
2 months ago
var col = new nblf.ui.DataGridColumn();
col.HeaderText = "BarCode";
col.CellTemplate = "<span>{Bind BarCode}</span>";
col.SortExpression = "c.BarCode";
2 months ago
Array.add(datagrid1.Columns, col);
2 months ago
col = new nblf.ui.DataGridColumn();
col.HeaderText = "Photo";
col.CellTemplate = "<img src='{Bind firstImg}' alt='' width='50px' height='50px'/>";
Array.add(datagrid1.Columns, col);
2 months ago
var col = new nblf.ui.DataGridColumn();
col.HeaderText = "PositionCode";
col.CellTemplate = "<span>{Bind WarehousePositionCode}</span>";
col.SortExpression = "c.WarehousePositionCode";
2 months ago
Array.add(datagrid1.Columns, col);
col = new nblf.ui.DataGridColumn();
2 months ago
col.HeaderText = "CreationTime";
col.CellTemplate = "<a>{Bind CreationTime,yyyy-MM-dd HH:mm}</a>";
col.SortExpression = "CreationTime";
2 months ago
Array.add(datagrid1.Columns, col);
2 months ago
var col = new nblf.ui.DataGridColumn();
col.HeaderText = "IsPrinted";
col.CellTemplate = "<span>{Bind IsPrinted}</span>";
2 months ago
col.CellFormatter = function (value) {
2 months ago
if(value){
return 'Printed'
}else{
return 'Not Printed'
2 months ago
}
};
Array.add(datagrid1.Columns, col);
2 months ago
var col = new nblf.ui.DataGridColumn();
col.HeaderText = "Status";
col.CellTemplate = "<span>{Bind Status}</span>";
2 months ago
col.CellFormatter = function (value) {
switch (value) {
case 1:
2 months ago
return "未上架";
2 months ago
case 2:
2 months ago
return "已上架";
case 3:
2 months ago
return "等待客户取货";
2 months ago
case 4:
return "完成售卖";
2 months ago
default:
2 months ago
return "-";
2 months ago
}
};
Array.add(datagrid1.Columns, col);
2 months ago
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);
2 months ago
//操作
col = new nblf.ui.DataGridColumn();
col.HeaderText = "操作";
2 months ago
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;
}
2 months ago
Array.add(datagrid1.Columns, col);
2 months ago
2 months ago
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%";
2 months ago
datagrid1.SelectMode = nblf.ui.SelectMode.CheckBox;
2 months ago
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 = {
2 months ago
PageIndex: datagrid1.Get_PageIndex(),
PageSize: datagrid1.Get_PageSize(),
2 months ago
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();
2 months ago
data.d.DataSource.forEach(it=>{
it.ImageUrls = JSON.parse(it.ImageUrls)
it.firstImg = it.ImageUrls && it.ImageUrls.length ? it.ImageUrls[0] : ""
})
2 months ago
datagrid1.Set_RowCount(data.d.RowCount);
datagrid1.DataBind(data.d.DataSource);
2 months ago
$("#a_select").html("");
2 months ago
$("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 + "小时";
}
2 months ago
//#endregion
//#region 跳转到商品详情
function LinkGoods(GoodsId) {
window.open(`https://www.kferp.net/HuoWu/HW_GoodsAddForTM.aspx?GoodsId=${GoodsId}`);
}
//#endregion
2 months ago
2 months ago
//#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');
2 months ago
2 months ago
return `${year}-${month}-${day}`;
2 months ago
}
//#endregion
2 months ago
//#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');
2 months ago
2 months ago
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,
}
2 months ago
WindowLoadModel.Show();
$.ajax({
2 months ago
url: "../DD_OrderServiceNew.asmx/OrderUsedSalePlatformPrint",
2 months ago
data: Sys.Serialization.JavaScriptSerializer.serialize(param),
2 months ago
dataType: "json",
2 months ago
success: function (data) {
WindowLoadModel.Hide();
2 months ago
if(data.d.Code==1){
2 months ago
ReadData();
}else{
2 months ago
alert(data.d.Message);
2 months ago
}
2 months ago
}
});
}
//#endregion
2 months ago
2 months ago
//#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
2 months ago
//#region 批量上架产品
function BatUploadGoods(Ids) {
var param = {
Ids: Ids,
}
$.ajax({
url: "../DD_OrderServiceNew.asmx/OrderUsedSalePlatformPublish",
data: Sys.Serialization.JavaScriptSerializer.serialize(param),
dataType: "json",
});
}
//#endregion
2 months ago
2 months ago
//#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');
2 months ago
});
}
2 months ago
// 生成条码图片
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;
}
2 months ago
//#endregion
2 months ago
//#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
2 months ago
</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>
2 months ago
<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>
2 months ago
<tr>
<td valign="top" colspan="7">
<div id="DataGrid1" class="DataGridStyle"></div>
</td>
</tr>
</table>
2 months ago
<!-- 提货单 -->
<div class="receipt" id="receipt" style="display: none;">
<div class="header">
<h3>Pickup Receipt ( <span id="receiptStore">West</span> )</h3>
2 months ago
</div>
2 months ago
<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>
2 months ago
</div>
</div>
</body>
</html>