Browse Source

修改上传地址,现在文件名。

zhuyiyi 5 months ago
parent
commit
90a7e4abf9

+ 1 - 1
SiteCore/Handler/sync.order.cs

@@ -77,7 +77,7 @@ namespace SiteCore.Handler
 
             //commonHelper.loginGetOrder(2152);
 
-            //string res = apiHelper.API_GetWaybill("SF-CAINIAO-LYZSJF", "C1_4386726036959480136");
+            //string res = apiHelper.API_GetWaybill("YTO-PDD-CYT", "250703-469248284251412");
         
             List<string> lw = new List<string>();
             string tid = GetPostString("ctid");

+ 9 - 9
SiteCore/taobao/tmcHelper.cs

@@ -1508,7 +1508,7 @@ namespace SiteCore
                         }
                     }
                 }
-                if (father.receiver_state.Contains("台湾") && string.IsNullOrEmpty(father.receiver_zip))
+                if ((father.receiver_state.Contains("台湾") && string.IsNullOrEmpty(father.receiver_zip)) || entity.seller_memo.IndexOf("不要切单个") > -1)
                 {
                     entity.OrderState = -1;
                 }
@@ -1572,7 +1572,7 @@ namespace SiteCore
                     entity.IsSample = 1;
                     entity.SupplierId = Convert.ToInt32(webConfig.SampleOrderSupplier);
                     entity.IsOldCustomer = 0;
-                    if (father.receiver_state.Contains("台湾") && string.IsNullOrEmpty(father.receiver_zip))
+                    if ((father.receiver_state.Contains("台湾") && string.IsNullOrEmpty(father.receiver_zip)) || entity.seller_memo.IndexOf("不要切单个") > -1)
                     {
                         entity.OrderState = -1;
                     }
@@ -1583,7 +1583,7 @@ namespace SiteCore
                 }
                 else
                 {
-                    if (father.receiver_state.Contains("台湾") && string.IsNullOrEmpty(father.receiver_zip))
+                    if ((father.receiver_state.Contains("台湾") && string.IsNullOrEmpty(father.receiver_zip)) || entity.seller_memo.IndexOf("不要切单个") > -1)
                     {
                         entity.OrderState = -1;
                     }
@@ -2021,7 +2021,7 @@ namespace SiteCore
 
                 }
             }
-            if (father.receiver_state.Contains("台湾") && string.IsNullOrEmpty(father.receiver_zip))
+            if ((father.receiver_state.Contains("台湾") && string.IsNullOrEmpty(father.receiver_zip)) || entity.seller_memo.IndexOf("不要切单个") > -1)
             {
                 entity.OrderState = -1;
             }
@@ -2194,7 +2194,7 @@ namespace SiteCore
                 }
 
             }
-            if (father.receiver_state.Contains("台湾") && string.IsNullOrEmpty(father.receiver_zip))
+            if ((father.receiver_state.Contains("台湾") && string.IsNullOrEmpty(father.receiver_zip)) || entity.seller_memo.IndexOf("不要切单个") > -1)
             {
                 entity.OrderState = -1;
             }
@@ -2380,7 +2380,7 @@ namespace SiteCore
                     entity.IsOldCustomerMore = 1;
                 }
             }
-            if (father.receiver_state.Contains("台湾") && string.IsNullOrEmpty(father.receiver_zip))
+            if ((father.receiver_state.Contains("台湾") && string.IsNullOrEmpty(father.receiver_zip)) || entity.seller_memo.IndexOf("不要切单个") > -1)
             {
                 entity.OrderState = -1;
             }
@@ -2555,7 +2555,7 @@ namespace SiteCore
             entity.seller_memo = newmemo;
             entity.OtherMemo = newOtherMemo;
             entity.pay_time = father.pay_time;
-            if (father.receiver_state.Contains("台湾") && string.IsNullOrEmpty(father.receiver_zip))
+            if ((father.receiver_state.Contains("台湾") && string.IsNullOrEmpty(father.receiver_zip)) || entity.seller_memo.IndexOf("不要切单个") > -1)
             {
                 entity.OrderState = -1;
             }
@@ -2939,7 +2939,7 @@ namespace SiteCore
                 entity.FinishPlaceTime = DateTime.Now;
                 entity.SupplierId = 5;//-福广
             }
-            if (father.receiver_state.Contains("台湾") && string.IsNullOrEmpty(father.receiver_zip))
+            if ((father.receiver_state.Contains("台湾") && string.IsNullOrEmpty(father.receiver_zip)) || entity.seller_memo.IndexOf("不要切单个") > -1)
             {
                 entity.OrderState = -1;
             }
@@ -3360,7 +3360,7 @@ namespace SiteCore
                 entity.SupplierId = 5;//-福广
             }
             //台湾省要审核
-            if (father.receiver_state.Contains("台湾") && string.IsNullOrEmpty(father.receiver_zip))
+            if ((father.receiver_state.Contains("台湾") && string.IsNullOrEmpty(father.receiver_zip)) || entity.seller_memo.IndexOf("不要切单个") > -1)
             {
                 entity.OrderState = -1;
             }

+ 13 - 8
Web/EDelivery/js/SupplierOrder.js

@@ -89,18 +89,23 @@ function supplierBackFn(ctid) {
                     parms.ctid = ctid;
                     parms.returnreason = value;
                     postAjax("upd_erp_supplierback", parms, function (data) {
-                        resultShow(data, "grid.reload();");
-                    });
-                } else {
+                        if (data != "操作成功!") {
+                            mini.confirm(data, "确定?",
+                                function (action) { }
+                        }
+                        );
+                    resultShow(data, "grid.reload();");
+                });
+    } else {
 
-                }
-            },
-            true
+    }
+},
+true
         );
     }
     else {
-        mini.alert("请选中一行记录!");
-    }
+    mini.alert("请选中一行记录!");
+}
 }
 
 function verifyFn(ctid) {

+ 178 - 23
Web/EOrder/OrderList.aspx

@@ -67,6 +67,13 @@
                 max-width: 100%;
                 height: auto;
             }
+
+        .address-input {
+            width: 150px;
+            height: 25px;
+            border: 1px solid #e1e1e1;
+            border-radius: 5px;
+        }
     </style>
 </asp:Content>
 <asp:Content ID="Content2" ContentPlaceHolderID="btn" runat="Server">
@@ -708,22 +715,55 @@
             </tr>
         </table>
     </div>
-    <div id="uploaderAddress_win" class="mini-window" title="上传文件地址" style="width: 600px; height: 270px; position: relative; display: none">
+    <div id="uploaderAddress_win" class="mini-window" title="上传文件地址" style="width: 1300px; height: 300px; position: relative; display: none">
         <table class="win_tb" border="0" cellpadding="0" cellspacing="1">
             <tr>
-                <td class="td1"></td>
-                <td class="td2">
-                    <input type="file" id="address_file" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel " />
+                <td class="td1">文件地址</td>
+                <td class="td2" colspan="5">
+                    <div id="uploader_url"></div>
+                </td>
+                <td class="td2" colspan="5">
+                    <a class="mini-button" iconcls="icon-add" onclick="addAddressRow">新增一行</a>
                 </td>
             </tr>
             <tr>
-                <td class="td1">文件地址</td>
-                <td class="td2">
-                    <div id="uploader_url"></div>
+                <td class="td1">订单号</td>
+                <td class="td1">文件名</td>
+                <td class="td1">数量</td>
+                <td class="td1">备注</td>
+                <td class="td1">省</td>
+                <td class="td1">市</td>
+                <td class="td1">区</td>
+                <td class="td1">地址</td>
+            </tr>
+            <tr id="addressBase">
+                <td class="td1">
+                    <input class="address-input" data-name="tid" />
+                </td>
+                <td class="td1">
+                    <input class="address-input" data-name="seller_memo" />
+                </td>
+                <td class="td1">
+                    <input class="address-input" data-name="number" />
+                </td>
+                <td class="td1">
+                    <input class="address-input" data-name="memo" />
+                </td>
+                <td class="td1">
+                    <input class="address-input" data-name="province" />
+                </td>
+                <td class="td1">
+                    <input class="address-input" data-name="city" />
+                </td>
+                <td class="td1">
+                    <input class="address-input" data-name="area" />
+                </td>
+                <td class="td1">
+                    <input class="address-input" data-name="address" />
                 </td>
             </tr>
             <tr>
-                <td colspan="4">
+                <td colspan="8">
                     <div class="win_btn" style="text-align: center;">
                         <a class="mini-button" iconcls="icon-ok" onclick="saveUploaderAddressFn">确定</a>&nbsp;
                         <a class="mini-button" iconcls="icon-cancel" onclick="cancelUploaderAddressFn">取消</a>
@@ -905,7 +945,7 @@
         async function putObject(file) {
             try {
                 let fileDir = dateFtt("yyyyMMdd", new Date())
-                let name = "addressDoc/" + fileDir + "/" + guid() + getSuff(file.name);
+                let name = "addressDoc/" + fileDir + "/" + guid() + ".xlsx";
                 // 填写Object完整路径。Object完整路径中不能包含Bucket名称。
                 // 您可以通过自定义文件名(例如exampleobject.txt)或文件完整路径(例如exampledir/exampleobject.txt)的形式实现将数据上传到当前Bucket或Bucket中的指定目录。
                 // data对象可以自定义为file对象、Blob数据或者OSS Buffer。
@@ -913,15 +953,15 @@
                     headers: { "Content-Type": "text/plain" },
                 };
                 const result = await client.put(name, file, options);
-                $("#uploader_url").text(result.url);
+                return result.url;
             } catch (e) {
                 console.log(e);
             }
         }
-        document.getElementById('address_file').addEventListener('change', function (e) {
+        /*document.getElementById('address_file').addEventListener('change', function (e) {
             const file = e.target?.files[0];
             const reader = new FileReader();
-            /*reader.onload = function (option) {
+            reader.onload = function (option) {
                 const data = new Uint8Array(option.target.result);
                 const workbook = XLSX.read(data, { type: 'array' });
                 const sheetName = workbook.SheetNames[0]; // 获取第一个工作表的名称
@@ -944,31 +984,112 @@
                     resultShow("请上传正确的文件");
                 }
             };
-            reader.readAsArrayBuffer(file);*/
+            reader.readAsArrayBuffer(file);
             putObject(file);
-        });
-
+        });*/
+        let tagIds = [];
+        let tagId = 0;
         let uploaderAddressTid = "";
         function uploaderAddress(tid) {
             uploaderAddressTid = tid;
-            document.getElementById('address_file').value = "";
+            //document.getElementById('address_file').value = "";
             $("#uploader_url").text("");
-
+            tagIds.forEach((item) => {
+                $("#" + item).remove();
+            })
+            tagIds = [];
+            tagId = 0;
             postAjax("get_tid_attachments", { tid }, function (data) {
                 maskHide();
                 mini.get("uploaderAddress_win").show();
+                $("#uploaderAddress_win input").val("");
                 if (!!data.url) {
                     $("#uploader_url").text(data.url);
                 }
             })
 
         }
-        function saveUploaderAddressFn() {
-            let params = { tid: uploaderAddressTid, atta: $("#uploader_url").text() };
-            postAjax("set_tid_attachments", params, function (data) {
-                resultShow(data, "grid.reload();");
-                mini.get("uploaderAddress_win").hide();
-            });
+        async function saveUploaderAddressFn() {
+            const trs = document.getElementById("uploaderAddress_win").querySelectorAll("tr");
+            let list = [];
+            let data_list = [["订单号", "文件名", "数量", "省", "市", "区", "地址", "备注"]];
+            trs.forEach(tr => {
+                let rows = {};
+                let inputs = tr.querySelectorAll("td input");
+                if (inputs.length > 0) {
+                    inputs.forEach(item => {
+                        let name = item.dataset.name;
+                        let value = item.value;
+                        rows[name] = value;
+                    })
+                    list.push(rows);
+                }
+
+            })
+
+            let isAll = true;
+            for (let i = 0; i < list.length; i++) {
+                let data_row = list[i];
+                let { tid, seller_memo, number, memo, province, city, area, address } = list[i];
+                if (Object.keys(data_row).filter(value => { return data_row[value] == "" }).length == data_row.length) {
+                    continue;
+                }
+                if (!tid || !seller_memo || !number || !province || !city || !area || !address) {
+                    isAll = false;
+                    break;
+                }
+                data_list.push([tid, seller_memo, number, memo, province, city, area, address]);
+            }
+
+            if (data_list.length == 1) {
+                 isAll = false;
+             }
+             if (!isAll) {
+                 return mini.showTips({
+                     content: "请填写完整信息!",
+                     state: "danger",
+                     x: "Center",
+                     y: "Center",
+                     timeout: 1000
+                 });
+             }
+              let result = await createXlsx(data_list);
+             if (!result) {
+                 return mini.showTips({
+                     content: "上传文件失败!",
+                     state: "danger",
+                     x: "Center",
+                     y: "Center",
+                     timeout: 1000
+                 });
+             }
+             let params = { tid: uploaderAddressTid, atta: result };
+             postAjax("set_tid_attachments", params, function (data) {
+                 resultShow(data, "grid.reload();");
+                 mini.get("uploaderAddress_win").hide();
+             });
+        }
+        async function createXlsx(data) {
+            const wb = XLSX.utils.book_new();
+
+            // 将数据转换为工作表对象
+            const ws = XLSX.utils.aoa_to_sheet(data);
+
+            // 将工作表添加到工作簿中
+            XLSX.utils.book_append_sheet(wb, ws, "Sheet1");
+
+            const wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'binary' });
+
+            // 创建一个 Blob 对象并创建一个 URL
+            function s2ab(s) {
+                const buffer = new ArrayBuffer(s.length);
+                const view = new Uint8Array(buffer);
+                for (let i = 0; i < s.length; i++) view[i] = s.charCodeAt(i) & 0xFF;
+                return buffer;
+            }
+            const blob = new Blob([s2ab(wbout)], { type: "application/octet-stream" });
+            let result = await putObject(blob)
+            return result;
         }
 
         function cancelUploaderAddressFn() {
@@ -1007,6 +1128,40 @@
             });
         }
 
+        function addAddressRow() {
+            let trId = `baseAddress_${tagId}`
+            let html = `            <tr id="${trId}">
+                <td class="td1">
+                    <input class="address-input" data-name="tid" />
+                </td>
+                <td class="td1">
+                    <input class="address-input" data-name="seller_memo" />
+                </td>
+                <td class="td1">
+                    <input class="address-input" data-name="number" />
+                </td>
+                <td class="td1">
+                    <input class="address-input" data-name="memo" />
+                </td>
+                <td class="td1">
+                    <input class="address-input" data-name="province" />
+                </td>
+                <td class="td1">
+                    <input class="address-input" data-name="city" />
+                </td>
+                <td class="td1">
+                    <input class="address-input" data-name="area" />
+                </td>
+                <td class="td1">
+                    <input class="address-input" data-name="address" />
+                </td>
+            </tr>`
+            let addressBase = document.getElementById("addressBase");
+            addressBase.insertAdjacentHTML('afterend', html);
+            tagId++;
+            tagIds.push(trId);
+        }
+
     </script>
 
     <div class="image_large" onclick="hideImage(this)"></div>