Handling.aspx 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384
  1. <%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage/ErpView.master" AutoEventWireup="true" CodeFile="Handling.aspx.cs" Inherits="EAfterSale_Handling" %>
  2. <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
  3. <link href="../js/ssi/ssi-uploader.css" rel="stylesheet" />
  4. <script src="../js/ssi/ssi-upload.js"></script>
  5. <script type="text/javascript" src="../js/address.js"></script>
  6. <script type="text/javascript" src="../js/afterSaleReason.js"></script>
  7. <script type="text/javascript" src="../js/supplierReason.js"></script>
  8. <script type="text/javascript" src="js/Handling.js?v=<%=SiteVer %>"></script>
  9. <style type="text/css">
  10. .marginleft20 {
  11. margin-left: 20px;
  12. }
  13. .mini-grid-cell-nowrap {
  14. overflow: hidden;
  15. /* white-space: nowrap;
  16. text-overflow: ellipsis; */
  17. word-break: break-all;
  18. word-wrap: break-word;
  19. white-space: pre-wrap;
  20. }
  21. .hz {
  22. display: flex;
  23. flex-direction: row;
  24. float: right;
  25. margin-right: 50px;
  26. font-size: 14px;
  27. height: 30px;
  28. line-height: 30px;
  29. vertical-align: middle;
  30. }
  31. .hz a {
  32. height: 30px;
  33. line-height: 30px;
  34. }
  35. </style>
  36. <script type="text/javascript">
  37. function getImgs() {
  38. var fObj = getFrame();
  39. var imgArr = fObj.getUpImg();
  40. if (imgArr != null && imgArr.length > 0) {
  41. return imgArr.join(",");
  42. }
  43. return "";
  44. }
  45. function getFrame() {
  46. return $("#upframe")[0].contentWindow;
  47. }
  48. function batchverify() {
  49. var rows = grid.getSelecteds();
  50. let list = []
  51. for (var rec of rows) {
  52. list.push(rec.ctid)
  53. }
  54. if (!confirm("批量通过售后单,确认?")) return;
  55. postAjax("aftersale_batch_audit_master", "ctids=" + list.join(","), function (data) {
  56. resultShow(data, "grid.reload();");
  57. });
  58. }
  59. function handIsBadRenderer(e) {
  60. var grid = e.sender;
  61. var record = e.record;
  62. let html = ""
  63. if (record.IsBad == 1) {
  64. html = "差评";
  65. }
  66. return html;
  67. }
  68. function handIsComplainRenderer(e) {
  69. var grid = e.sender;
  70. var record = e.record;
  71. let html = ""
  72. if (record.IsComplain == 1) {
  73. html = "投诉成立";
  74. }
  75. if (record.IsComplain == 2) {
  76. html = "投诉不成立";
  77. }
  78. return html;
  79. }
  80. </script>
  81. </asp:Content>
  82. <asp:Content ID="Content2" ContentPlaceHolderID="btn" runat="Server">
  83. <a id="btnExport" runat="server" class="mini-button mini-button-success" iconcls="icon-folder" onclick="exportFn()">导出</a>
  84. <a id="btnBatchverify" runat="server" class="mini-button mini-button-success" iconcls="icon-folder" onclick="batchverify()">批量通过</a>
  85. <div class="hz">
  86. <span id="normon">
  87. <a id="id_waitHandle" style="color: red; margin-left: 10px;" href="javascript:searchWaitFn();">(0)</a>
  88. <a id="id_Handling" style="color: red; margin-left: 10px;" href="javascript:searchHandlingFn();">(0)</a>
  89. <a id="id_back" style="color: red; margin-left: 10px;" href="javascript:searchBackFn();">(0)</a>
  90. <a id="id_reBack" style="color: red; margin-left: 10px;" href="javascript:searchReBackFn();">(0)</a>
  91. <a id="id_reviewed" style="color: red; margin-left: 10px;" href="javascript:searchReviewedFn();">(0)</a>
  92. <a id="id_documentary" style="color: red; margin-left: 10px;" href="javascript:searchDocumentaryFn();">(0)</a>
  93. </span>
  94. <span id="master">
  95. <a id="master_waitHandle" style="color: red; margin-left: 10px;" href="javascript:searchWaitFn();">(0)</a>
  96. <a id="master_Handling" style="color: red; margin-left: 10px;" href="javascript:searchHandlingFn();">(0)</a>
  97. <a id="master_documentary" style="color: red; margin-left: 10px;" href="javascript:searchDocumentaryFn();">(0)</a>
  98. <a id="id_examEd" style="color: red; margin-left: 10px;" href="javascript:searchExamEdFn();">(0)</a>
  99. <a id="id_reMBack" style="color: red; margin-left: 10px;" href="javascript:searchReBackFn();">(0)</a>
  100. <!--<a id="id_waitExam" style="color: red; margin-left: 10px;" href="javascript:searchWaitExamFn();">(0)</a>-->
  101. <a id="id_puBack" style="color: red; margin-left: 10px;" href="javascript:searchPuBackFn();">(0)</a>
  102. </span>
  103. </div>
  104. </asp:Content>
  105. <asp:Content ID="Content4" ContentPlaceHolderID="content" runat="Server">
  106. <div style="display: none">
  107. <web:HtmlHidden ID="hImg" runat="server"></web:HtmlHidden>
  108. </div>
  109. <div class="mini-fit">
  110. <div id="m_grid" class="mini-datagrid" style="width: 98%;" showemptytext="true" emptytext="暂无记录" contextmenu="#gridMenu" url="../handler/sync.ashx?t=get_erp_handlingaftersalelist">
  111. <div property="columns">
  112. <%-- <div field="Sort" width="50" align="center" headerAlign="center">排序</div>--%>
  113. <%-- <div field="ComName" width="120" align="center" headerAlign="center">公司名称</div>--%>
  114. <div type="checkcolumn" width="20"></div>
  115. <div field="tid" width="110" align="center" headeralign="center" renderer="orderIdRenderer">订单编号</div>
  116. <div field="pay_time" width="80" align="center" headeralign="center" renderer="orderPTimeRenderer">付款时间</div>
  117. <div field="seller_memo" width="150" align="center" headeralign="center" renderer="memoRenderer">备注</div>
  118. <div field="AfterSaleReason" width="50" align="center" headeralign="center">原因</div>
  119. <div field="TextResult" width="40" align="center" headeralign="center" renderer="textResultRenderer">客户售后结果</div>
  120. <div field="diffResultPrice" visible="false" align="center" headeralign="center">客户售后退差金额</div>
  121. <div field="AfterSaleMethod" width="120" align="left" headeralign="center" renderer="methodRenderer">方案</div>
  122. <div field="OrderState" width="40" align="center" headeralign="center" renderer="orderStatusRenderer">状态</div>
  123. <div field="payment" width="50" align="center" headeralign="center" renderer="payRenderer">金额</div>
  124. <div field="AfterSaleResponsible" width="40" align="center" headeralign="center">责任人</div>
  125. <div field="AfterSaleSupplierImg" width="30" align="center" headeralign="center" renderer="ImgRenderer">图片</div>
  126. <div field="AfterSaleMemo" width="60" align="center" headeralign="center">售后备注</div>
  127. <div field="DeductFee" visible="false" align="center" headeralign="center">退差金额</div>
  128. <div field="supRefundType" width="40" align="center" headeralign="center">备注类型</div>
  129. <div field="AfterSaleName" width="30" align="center" headeralign="center">处理人</div>
  130. <div field="HandleTime" width="55" align="center" headeralign="center" renderer="handTimeRenderer">处理时间</div>
  131. <div field="IsBad" runat="server" width="50" align="center" headeralign="center" renderer="handIsBadRenderer">差评</div>
  132. <div field="IsComplain" runat="server" width="50" align="center" headeralign="center" renderer="handIsComplainRenderer">投诉</div>
  133. <div field="SupplierName" width="30" align="center" headeralign="center">供应商</div>
  134. <div field="AfterSaleSupplierMemo" width="80" align="center" headeralign="center">不认可</div>
  135. <div field="AfterSaleBackImg" width="30" align="center" headeralign="center" renderer="SaleBackImgRenderer">不认可图</div>
  136. <div name="action" width="50" headeralign="center" align="center" renderer="actionRenderer" cellstyle="padding:0;">#</div>
  137. </div>
  138. </div>
  139. </div>
  140. <ul id="gridMenu" class="mini-contextmenu" onbeforeopen="onBeforeOpen">
  141. <li name="edit" iconcls="icon-copy" onclick="onCopyOrder">复制单号</li>
  142. <li name="edit" iconcls="icon-copy" onclick="onCopyBuyerNick">复制旺旺号</li>
  143. </ul>
  144. <div id="handle_win" class="mini-window" title="售后处理" style="width: 980px; height: 730px; position: relative; display: none">
  145. <fieldset style="border: solid 1px #aaa; padding: 3px; margin: 5px;">
  146. <legend style="font-size: 16px; font-weight: bold;">订单信息</legend>
  147. <div style="padding: 3px;">
  148. <table class="win_tb" border="0" cellpadding="0" cellspacing="1">
  149. <tr>
  150. <td class="td1">订单编号</td>
  151. <td class="td2" colspan="3">
  152. <div id="txtTid" style="display: flex; flex-direction: row;"></div>
  153. </td>
  154. </tr>
  155. </table>
  156. </div>
  157. </fieldset>
  158. <fieldset style="border: solid 1px #aaa; padding: 3px; margin: 5px;">
  159. <legend style="font-size: 16px; font-weight: bold;">责任方标记</legend>
  160. <div style="padding: 3px;">
  161. <table class="win_tb" border="0" cellpadding="0" cellspacing="1">
  162. <tr>
  163. <td class="td1">责任方</td>
  164. <td class="td2" colspan="1">
  165. <div id="txtResponsibleView" class="mini-combobox" popupwidth="300" popupminheight="450" popupmaxheight="450" textfield="text" valuefield="id"
  166. url="../data/aftersale_responsible.txt" value="id" multiselect="true" showclose="true" oncloseclick="onCloseClick" onvaluechanged="responsibleValueChanged">
  167. <div property="columns">
  168. <div header="责任方" field="text"></div>
  169. </div>
  170. </div>
  171. </td>
  172. <td id="id_txtResponsible1_td1" class="td1 id_txtResponsible1_td1">责任人1</td>
  173. <td id="id_txtResponsible1_td2" class="td2 id_txtResponsible1_td2">
  174. <input id="txtResponsibleUser1" class="mini-combobox" textfield="name" valuefield="id" allowinput="true" valuefromselect="true" url="" />
  175. </td>
  176. <td id="id_txtResponsible2_td1" class="td1 id_txtResponsible2_td1" style="display: none;">责任人2</td>
  177. <td id="id_txtResponsible2_td2" class="td2 id_txtResponsible2_td2" style="display: none;">
  178. <input id="txtResponsibleUser2" class="mini-combobox" textfield="name" valuefield="id" allowinput="true" valuefromselect="true" url="" />
  179. </td>
  180. <tr>
  181. <%--<td class="td1" colspan="3">
  182. <img id="preview_img" src="../images/no_photo.png" style="width:100px;height:100px;" />
  183. </td>--%>
  184. <td class="td1" colspan="8">
  185. <%--<input type="file" id="ssi-upload" />--%>
  186. <iframe id="upframe" style="width: 100%; height: 250px; border: 0px" src="../plug/ssi/ssi-uploader.html" scrolling="no" data-images=""></iframe>
  187. <div id="id_preViewImgCon"></div>
  188. </td>
  189. </tr>
  190. </table>
  191. </div>
  192. </fieldset>
  193. <fieldset style="border: solid 1px #aaa; padding: 3px; margin: 5px;">
  194. <legend style="font-size: 16px; font-weight: bold;">处理信息</legend>
  195. <div style="padding: 3px;">
  196. <table class="win_tb" border="0" cellpadding="0" cellspacing="1">
  197. <tr>
  198. <td class="td1">客户售后结果</td>
  199. <td class="td2" colspan="2">
  200. <input id="txtResult" onvaluechanged="changeResultFn" class="mini-combobox inp_middle" url="../data/aftersale_result.txt" value="" textfield="text" valuefield="id" />
  201. </td>
  202. <td class="td1 diffResult" style="display: none">退差价金额</td>
  203. <td class="td2 diffResult" style="display: none" colspan="2">
  204. <input type="text" id="diffResultPrice" />
  205. </td>
  206. </tr>
  207. <tr>
  208. <td class="td1">投诉</td>
  209. <td class="td2 " colspan="2">
  210. <select id="isComplain" onchange="changeComplain()">
  211. <option value="0">--请选择--</option>
  212. <option value="1">投诉成立</option>
  213. <option value="2">投诉不成立</option>
  214. </select>
  215. </td>
  216. <td>
  217. <input type="checkbox" id="isBad" /><span>差评单</span>
  218. </td>
  219. </tr>
  220. <tr>
  221. <td class="td1">售后原因</td>
  222. <td class="td2">
  223. <%--<input id="txtReason" class="mini-combobox" style="width: 90%;" textfield="text" valuefield="text" allowinput="false" url="../data/aftersale_reason.txt" />--%>
  224. <input id="txtReason1" class="mini-combobox" onvaluechanged="changeReason1Fn" textfield="AddName" valuefield="ID" allowinput="true" valuefromselect="true" />
  225. </td>
  226. <td class="td2" colspan="1">
  227. <input id="txtReason2" class="mini-combobox" style="width: 150px;" onvaluechanged="changeReason2Fn" textfield="AddName" valuefield="ID" allowinput="true" valuefromselect="true" />
  228. </td>
  229. <td class="td2" colspan="1">
  230. <input id="txtReason3" class="mini-combobox" style="width: 200px;" onvaluechanged="changeReason3Fn" textfield="AddName" valuefield="ID" allowinput="true" valuefromselect="true" />
  231. </td>
  232. <td class="td2" colspan="1">
  233. <input id="txtReason4" class="mini-combobox" style="width: 200px;" onvaluechanged="changeReason4Fn" textfield="AddName" valuefield="ID" allowinput="true" valuefromselect="true" />
  234. </td>
  235. <td class="td2" colspan="1">
  236. <input id="txtInputReason" type="text" style="width: 100px; display: none" />
  237. </td>
  238. <%--<td class="td1"><span style="color:sandybrown;">生成订单</span></td>
  239. <td class="td2"><input type="checkbox" id="chkState" /></td>--%>
  240. </tr>
  241. <tr style="display: none" id="isOriginalLayout">
  242. <td class="td1">设计类型</td>
  243. <td class="td2">
  244. <input type="checkbox" id="textIsOriginal" /><span>改稿</span>
  245. </td>
  246. </tr>
  247. <tr>
  248. <td class="td1">供应商退款类型</td>
  249. <td class="td2" colspan="2">
  250. <select id="txtRefundType" onchange="refundTypeSelFn()">
  251. <option value="">--请选择--</option>
  252. <option value="退差价">退差价</option>
  253. <option value="退全款">退全款</option>
  254. <option value="重印">重印</option>
  255. <option value="正常损耗">正常损耗</option>
  256. <option value="不售后">不售后</option>
  257. </select>
  258. </td>
  259. <td id="id_Deduct_td1" class="td1" style="display: none">退差价金额</td>
  260. <td id="id_Deduct_td2" class="td2" style="display: none" colspan="2">
  261. <input type="text" id="txtDeduct" />
  262. </td>
  263. <td class="td1" colspan="4" style="color: red; font-weight: bold; display: none" id="td_after"></td>
  264. </tr>
  265. <tr>
  266. <td class="td1">指派节点</td>
  267. <td class="td2">
  268. <select id="txtToState" style="width: 90%;" onchange="stateChange()">
  269. <option value="请选择">--请选择--</option>
  270. <option value="设计师">设计师</option>
  271. <option value="下单员">下单员</option>
  272. </select>
  273. </td>
  274. <td class="td1">订单金额</td>
  275. <td class="td2">
  276. <input type="text" id="txtPayment" />
  277. <input type="hidden" id="txtRefund" />
  278. </td>
  279. <td class="td1 id_txtResponsible1_td1">责任人1扣款金额</td>
  280. <td class="td2 id_txtResponsible1_td2">
  281. <input type="text" id="txtRefund1" />
  282. </td>
  283. </tr>
  284. <tr>
  285. <td class="td1 id_txtResponsible2_td1" style="display: none">责任人2扣款金额</td>
  286. <td class="td2 id_txtResponsible2_td2" style="display: none">
  287. <input type="text" id="txtRefund2" />
  288. </td>
  289. <td class="td1" colspan="4" style="color: red; font-weight: bold; display: none" id="td_watch"></td>
  290. </tr>
  291. <tr>
  292. <td class="td1">解决方案</td>
  293. <td class="td2" colspan="5">
  294. <textarea id="txtMethod" style="width: 96%; height: 50px;"></textarea>
  295. </td>
  296. </tr>
  297. <tr>
  298. <td class="td1">备注</td>
  299. <td class="td2" colspan="5">
  300. <textarea id="txtAfterMemo" style="width: 96%; height: 30px;"></textarea></td>
  301. </tr>
  302. </table>
  303. </div>
  304. </fieldset>
  305. <fieldset style="border: solid 1px #aaa; padding: 3px; margin: 5px;">
  306. <legend style="font-size: 16px; font-weight: bold;">售后单收件变更(地址变更才需要填写)</legend>
  307. <div style="padding: 3px;">
  308. <table class="win_tb" border="0" cellpadding="0" cellspacing="1">
  309. <tr>
  310. <td class="td1">收货人</td>
  311. <td class="td2">
  312. <input type="text" id="txtReceiver" /></td>
  313. <td class="td1">联系电话</td>
  314. <td class="td2">
  315. <input type="text" id="txtPhone" /></td>
  316. </tr>
  317. <tr>
  318. <td class="td1">收货地址</td>
  319. <td class="td2" colspan="3">
  320. <input id="txtAddProvince" class="mini-combobox" onvaluechanged="changeProvinceFn" textfield="AddName" valuefield="ID" allowinput="true" valuefromselect="true" />
  321. <input id="txtAddCity" class="mini-combobox" onvaluechanged="changeCityFn" textfield="AddName" valuefield="ID" allowinput="true" valuefromselect="true" />
  322. <input id="txtAddCounty" class="mini-combobox" onvaluechanged="changeCountyFn" textfield="AddName" valuefield="ID" allowinput="true" valuefromselect="true" />
  323. <input type="text" id="txtAddDetailAddress" style="width: 57%; margin-top: 10px;" />
  324. </td>
  325. </tr>
  326. <tr>
  327. <td colspan="6">
  328. <div class="win_btn" style="text-align: center;">
  329. <a class="mini-button" iconcls="icon-ok" onclick="saveHandleFn">保存</a>&nbsp;
  330. <a class="mini-button" iconcls="icon-cancel" onclick="cancelHandleFn">取消</a>
  331. </div>
  332. </td>
  333. </tr>
  334. </table>
  335. </div>
  336. </fieldset>
  337. </div>
  338. <div id="end_win" class="mini-window" title="售后终止" style="width: 550px; height: 250px; position: relative; display: none">
  339. <table class="win_tb" border="0" cellpadding="0" cellspacing="1">
  340. <tr>
  341. <td class="td1">终止原因</td>
  342. <td class="td2" colspan="3">
  343. <input type="text" id="endReason" />
  344. </td>
  345. </tr>
  346. <tr>
  347. <td colspan="4">
  348. <div class="win_btn" style="text-align: center;">
  349. <a class="mini-button" iconcls="icon-ok" onclick="saveEndFn">确定</a>&nbsp;
  350. <a class="mini-button" iconcls="icon-cancel" onclick="cancelEndFn">取消</a>
  351. </div>
  352. </td>
  353. </tr>
  354. </table>
  355. </div>
  356. <div class="image_large" onclick="hideImage(this)"></div>
  357. </asp:Content>