index.blade.php 61 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059
  1. @extends('layouts.app')
  2. @section('title')问题件-查询@endsection
  3. @section('content')
  4. @component("order.issue.menu")@endcomponent
  5. <div class="container-fluid" id="issue_div">
  6. <div style="min-width: 3000px;" >
  7. <div id="list" class="d-none container-fluid">
  8. <div id="form_div" style="min-width: 2250px;"></div>
  9. <div class="form-inline mt-1 ">
  10. <span class="dropdown">
  11. <button type="button"
  12. class="btn btn-outline-dark btn-sm form-control-sm dropdown-toggle tooltipTarget"
  13. :class="[checkData.length>0?'btn-dark text-light':'']"
  14. data-toggle="dropdown" title="导出所有页将会以搜索条件得到的筛选结果,将其全部记录(每一页)导出">导出Excel
  15. </button>
  16. <div class="dropdown-menu">
  17. <a class="dropdown-item" @click="orderIssueExport(false)" href="javascript:">导出勾选内容</a>
  18. <a class="dropdown-item" @click="orderIssueExport(true)" href="javascript:">导出所有页</a>
  19. </div>
  20. </span>
  21. @cannot('客户不可见')
  22. <span class="ml-1">
  23. <button type="button" class="btn btn-outline-dark btn-sm form-control-sm to ltipTarget"
  24. @click="endOrderIssue"
  25. :class="[checkData.length>0?'btn-dark text-light':'']">完结</button>
  26. </span>
  27. @endcannot
  28. <span class="ml-1">
  29. <button type="button" class="btn btn-outline-dark btn-sm form-control-sm tooltipTarget"
  30. @click="copyOrderNo">复制快递单号</button>
  31. </span>
  32. </div>
  33. <table class="table table-sm table-bordered table-hover card-body table-responsive-sm p-0 m-0 "
  34. style="background: #fff;min-width: 3000px;">
  35. <tr class="tr-yellow" align="center">
  36. <th class=" font-weight-bolder " @cannot('客户不可见') colspan="7" @else colspan="4" @endcannot></th>
  37. <th class="td-yellow font-weight-bolder original-class table-head-warning "
  38. @cannot('客户不可见') :colspan="(isShowOrderInfo ? '16':'8' )" @else :colspan="(isShowOrderInfo ? '15':'7' )" @endcannot>
  39. <span>原始运单号</span>
  40. <button class="btn btn-sm btn-outline-secondary float-right" v-if="isShowOrderInfo" @click="hideOrderInfo">
  41. 隐藏运单列
  42. </button>
  43. </th>
  44. <th class=" font-weight-bolder"
  45. @cannot('客户不可见')
  46. :colspan="11 + (isShowRejectedBill ? 5:1) + (isShowSecondOrderInfo ? 6: 1 )"
  47. @else
  48. colspan="8"
  49. @endcannot>
  50. @cannot('客户不可见')
  51. <button class="btn btn-sm btn-outline-secondary float-left" v-if="isShowRejectedBill" @click="hideRejectedBill">
  52. 隐藏退单列
  53. </button>
  54. @endcannot
  55. 情况说明
  56. @cannot('客户不可见')
  57. <button class="btn btn-sm btn-outline-secondary" v-if="isShowSecondOrderInfo" @click="hideSecondOrder">
  58. 隐藏运单列
  59. </button>
  60. @endcannot
  61. </th>
  62. @cannot('客户不可见')
  63. <th></th>
  64. @endcannot
  65. </tr>
  66. <tr class="tr-yellow" align="center">
  67. <th rowspan="2" class="align-middle">
  68. <label for="all">
  69. <input id="all" type="checkbox" @click="checkAll($event)"/>
  70. </label>
  71. </th>
  72. <th class=" align-middle" rowspan="2" style=" min-width: 50px;">序号</th>
  73. <th class=" align-middle" rowspan="2" style=" min-width: 25px;">ID</th>
  74. @cannot('客户不可见')
  75. <th class=" align-middle" rowspan="2" style=" min-width: 75px;">退件</th>
  76. @can("订单管理-问题件-置顶")
  77. <th class=" align-middle" rowspan="2" style=" min-width: 75px;">置顶</th>
  78. @endcan
  79. <th class=" align-middle" rowspan="2" style=" min-width: 100px;">退单状态</th>
  80. @endcannot
  81. <th class=" align-middle" rowspan="2" style="min-width: 120px">最终状态</th>
  82. @cannot('客户不可见')
  83. <th class=" align-middle td-yellow" rowspan="2" style="min-width: 165px;">登记日期</th>
  84. @endcannot
  85. <th class=" align-middle td-yellow" rowspan="2" style="min-width: 165px;">订单日期</th>
  86. <th class=" align-middle td-yellow" rowspan="2" style="min-width: 100px;">客户</th>
  87. <th class=" align-middle td-yellow" rowspan="2" style="min-width: 200px;">店铺</th>
  88. <th class=" align-middle td-yellow" rowspan="2" style="min-width: 200px;">客户订单号</th>
  89. <th class=" align-middle td-yellow" rowspan="2" style="min-width: 100px;">原始承运商</th>
  90. <th class=" align-middle td-yellow" rowspan="2" style="min-width: 150px;">原始运单号</th>
  91. {{--原始商品明细 开始--}}
  92. <th class=" align-middle td-yellow" v-if="!isShowOrderInfo" rowspan="2" style="min-width:50px">展开</th>
  93. <th class=" align-middle td-yellow" v-if="isShowOrderInfo" rowspan="2" style="min-width: 90px">收货人名称</th>
  94. <th class=" align-middle td-yellow" v-if="isShowOrderInfo" rowspan="2" style="min-width: 120px;">收货人电话</th>
  95. <th class=" align-middle td-yellow" v-if="isShowOrderInfo" rowspan="2" style="min-width: 70px">省</th>
  96. <th class=" align-middle td-yellow" v-if="isShowOrderInfo" rowspan="2" style="min-width: 70px">市</th>
  97. <th class=" align-middle td-yellow" v-if="isShowOrderInfo" rowspan="2" style="min-width: 70px">区</th>
  98. <th class=" align-middle td-yellow" v-if="isShowOrderInfo" rowspan="2" style="min-width:300px">收货人地址</th>
  99. <th class=" align-middle td-yellow" v-if="isShowOrderInfo" colspan="3" style="min-width:300px">原始商品明细</th>
  100. <th class=" align-middle" rowspan="2" >退回单号</th>
  101. @cannot('客户不可见')
  102. <th class=" align-middle" rowspan="2" v-if="!isShowRejectedBill" style="min-width:50px">展开</th>
  103. <th class=" align-middle" colspan="5" v-if="isShowRejectedBill" style="min-width: 450px">返回商品明细</th>
  104. @endcannot
  105. <th class="bg-whit align-middle" rowspan="2" style="min-width: 115px">情况说明</th>
  106. <th class=" align-middle" rowspan="2" style="min-width: 115px">问题类别</th>
  107. <th class=" align-middle" colspan="3" style="min-width: 115px">处理结果</th>
  108. @cannot('客户不可见')
  109. <th class=" align-middle" rowspan="2" v-if="!isShowSecondOrderInfo" style="width:50px">展开</th>
  110. <th class=" align-middle" rowspan="2" v-if="isShowSecondOrderInfo" style=" min-width: 120px;">二次客户订单号</th>
  111. <th class=" align-middle" rowspan="2" v-if="isShowSecondOrderInfo" style=" min-width: 100px;">二次承运商</th>
  112. <th class=" align-middle" rowspan="2" v-if="isShowSecondOrderInfo" style=" min-width: 200px;">二次运单号</th>
  113. <th colspan="3" style="min-width: 300px" v-if="isShowSecondOrderInfo" style=" min-width: 350px;">二次商品明细</th>
  114. @endcannot
  115. <th class=" align-middle" rowspan="2" style="min-width: 120px">承运商赔偿金额</th>
  116. <th class=" align-middle" rowspan="2" style="min-width: 120px">承运商快递减免</th>
  117. @cannot('客户不可见')
  118. <th class=" align-middle" rowspan="2" style="min-width: 120px">宝时赔偿金额</th>
  119. <th class=" align-middle" rowspan="2" style="min-width: 120px">宝时快递减免</th>
  120. <th class=" align-middle" rowspan="2" style="min-width: 120px">事故责任方</th>
  121. <th class=" align-middle" rowspan="2" style="min-width: 120px">操作</th>
  122. @endcannot
  123. </tr>
  124. <tr class="tr-yellow" align="center">
  125. <th class="td-yellow" v-if="isShowOrderInfo" style="min-width: 120px">条码</th>
  126. <th class="td-yellow" v-if="isShowOrderInfo" style="min-width: 150px">商品名</th>
  127. <th class="td-yellow" v-if="isShowOrderInfo" style="min-width: 75px">数量</th>
  128. @cannot('客户不可见')
  129. <th v-if="isShowRejectedBill" style="min-width: 75px">条码</th>
  130. <th v-if="isShowRejectedBill" style="min-width: 100px">商品名</th>
  131. <th v-if="isShowRejectedBill" style="min-width: 50px">数量</th>
  132. <th v-if="isShowRejectedBill" style="min-width: 50px">是否正品</th>
  133. <th v-if="isShowRejectedBill" style="min-width: 100px">备注</th>
  134. @endcannot
  135. <th style="min-width: 75px">操作类型</th>
  136. <th style="min-width: 120px">说明</th>
  137. <th style="min-width: 100px">操作者</th>
  138. @cannot('客户不可见')
  139. <th v-if="isShowSecondOrderInfo" style="min-width: 100px">条码</th>
  140. <th v-if="isShowSecondOrderInfo" style="min-width: 100px">商品名</th>
  141. <th v-if="isShowSecondOrderInfo" style="min-width: 75px">数量</th>
  142. @endcannot
  143. </tr>
  144. <tr class="tr-yellow text-center" v-if="orderIssues" v-for="(orderIssue,index) in orderIssues"
  145. @click="selectedColor(orderIssue.id)" :class="orderIssue.remark ? 'tr_top':''" v-on:mouseover="hidetop($event)" v-on:mouseleave="showtop($event)"
  146. :style="[{'font-weight': orderIssue.id===selectedStyle?'bold':''}]">
  147. <td>
  148. <div class="m-0 p-0 " :style="[{'min-height':orderIssue.remark ?'72px':'45px'}]">
  149. <input class="checkItem" type="checkbox" :value="orderIssue.id" v-model="checkData">
  150. </div>
  151. </td>
  152. <td >@{{index+1}}</td>
  153. <td >@{{ orderIssue.id }}</td>
  154. @cannot('客户不可见')
  155. <td >
  156. @can('订单管理-问题件-编辑')
  157. <button type="button" class="btn btn-sm btn-outline-secondary"
  158. @click="disposeOrderIssue($event)" :data-value="orderIssue.id"
  159. v-if="orderIssue.is_new_rejecting === '有'">有
  160. </button>
  161. <span v-else>@{{ orderIssue.is_new_rejecting }}</span>
  162. @else
  163. <span v-if="orderIssue.is_new_rejecting">@{{ orderIssue.is_new_rejecting }}</span>
  164. @endcan
  165. </td>
  166. @can("订单管理-问题件-置顶")
  167. <td class="text-muted">
  168. <button type="button" class="btn btn-sm btn-outline-danger " @click="cancelOnTop($event)" :data-value="orderIssue.top.id" style="opacity: 0.75" v-if="orderIssue.top">
  169. 取消
  170. </button>
  171. <button type="button" class="btn btn-sm btn-outline-secondary" @click="OrderIssueOnTop($event)" :data-value="orderIssue.id" style="opacity: 0.75" v-else>
  172. 置顶
  173. </button>
  174. </td>
  175. <td >@{{ orderIssue.rejecting_status }}</td>{{--退件状态--}}
  176. @endcan
  177. @endcannot
  178. <td >@{{ orderIssue.final_status }}</td>{{--最终状态--}}
  179. @cannot('客户不可见') {{--登记日期--}}
  180. <td class="toptd td-yellow ">
  181. <div v-if="orderIssue.remark" class="bg-light-yellow text-danger top text-left" data-toggle="tooltip" style="opacity: 0.1;position: absolute;z-index: 1">
  182. 置顶备注:@{{ orderIssue.remark }}
  183. </div>
  184. @{{ orderIssue.created_at }}
  185. </td>
  186. @endcannot
  187. <td class="td-yellow">
  188. @cannot('客户不可见')
  189. @else
  190. <div v-if="orderIssue.remark" class="bg-light-yellow text-danger top text-left" data-toggle="tooltip" style="opacity: 0.1;position: absolute;z-index: 1">
  191. 置顶备注:@{{ orderIssue.remark }}
  192. </div>
  193. @endcannot
  194. @{{ orderIssue.order.created_at }}
  195. </td>
  196. <td class="td-yellow">
  197. <span v-if='orderIssue.order.owner'>@{{ orderIssue.order.owner.name }}</span>
  198. </td>
  199. <td class="td-yellow">
  200. <template v-if="orderIssue.order.shop">@{{ orderIssue.order.shop.name }}</template>
  201. </td>
  202. <td class="td-yellow">
  203. <template v-if="orderIssue.order"> @{{ orderIssue.order.client_code }}</template>
  204. <td class="td-yellow">
  205. <span v-if='orderIssue.order.logistic'>@{{ orderIssue.order.logistic.name }}</span>
  206. </td>
  207. <td class=" hide-content p-0 td-yellow " valign="middle" align="center">
  208. <div :id="'logisticNumbers'+orderIssue.id" :class="orderIssue.order.logisticNumbers.length > 1 ?'collapse ':''">
  209. <p v-for="logisticNumber in orderIssue.order.logisticNumbers" class="m-0 p-0 text-muted ">@{{ logisticNumber }}</p>
  210. </div>
  211. <button v-if="orderIssue.order.logisticNumbers.length > 1" type="button" class="btn btn-sm btn-outline-primary align-middle mt-1"
  212. :id="'logisticNumbersBtn'+orderIssue.id" data-toggle="collapse" :data-target="'#logisticNumbers'+orderIssue.id"
  213. @click="toggleLogisticNumbers(orderIssue.id,orderIssue.order.logisticNumbers.length)">
  214. 分箱@{{ orderIssue.order.logisticNumbers.length }}件,点击展开
  215. </button>
  216. </td>
  217. {{--商品明细 开始--}}
  218. <td class="td-yellow p-0 m-0" v-if="!isShowOrderInfo && index===0" style="width:50px" :rowspan="orderIssues.length">
  219. <span class="btn btn-outline-secondary " @click="showOrderInfo" :style="orderIssues.length>4 ?'{height: 200px;line-height: 100px':''" >展开运单列</span>
  220. </td>
  221. <td class="td-yellow " v-if="isShowOrderInfo">@{{ orderIssue.order.consignee_name }}</td>
  222. <td class="td-yellow " v-if="isShowOrderInfo">@{{ orderIssue.order.consignee_phone }}</td>
  223. <td class="td-yellow " v-if="isShowOrderInfo">@{{ orderIssue.order.province }}</td>
  224. <td class="td-yellow " v-if="isShowOrderInfo">@{{ orderIssue.order.city }}</td>
  225. <td class="td-yellow " v-if="isShowOrderInfo">@{{ orderIssue.order.district }}</td>
  226. <td class="td-yellow " style="width: 400px" v-if="isShowOrderInfo">
  227. <span class="text-wrap m-0 p-0 " style="width: 400px">@{{ orderIssue.order.address }}</span>
  228. </td>
  229. <td class="td-yellow p-0" :id="orderIssue.id+'items'" colspan="3"
  230. v-if="isShowOrderInfo">
  231. <div v-if="orderIssue.order">
  232. <table class="table table-sm m-0" v-if="orderIssue.order.packages"
  233. :class="orderIssue.orderPackagecount > 1 ? 'collapse' : ''" :id="'order'+orderIssue.id"
  234. :data-value="orderIssue.orderCount = 0" :data-count="orderIssue.orderPackagecount = 0">
  235. <template v-for="packages in orderIssue.order.packages">
  236. <tr v-for="item in packages.commodities" class="text-center" :data-value="orderIssue.orderCount += 1" align="center">
  237. <td >@{{ item.commodity.sku }}</td>
  238. <td >@{{ item.commodity.name }}</td>
  239. <td :data-value="orderIssue.orderPackagecount += item.amount ">@{{ item.amount }}</td>
  240. </tr>
  241. </template>
  242. </table>
  243. <button v-if="orderIssue.orderCount > 1 " type="button" class="btn btn-sm btn-outline-primary mt-1"
  244. :id="'orderBtn'+orderIssue.id" @click="toggleOrder(orderIssue.id,orderIssue.orderPackagecount)"
  245. data-toggle="collapse" :data-target="'#order'+orderIssue.id">
  246. 商品@{{ orderIssue.orderPackagecount}}件,点击展开
  247. </button>
  248. </div>
  249. </td>
  250. {{--商品明细 结束--}}
  251. {{--退单商品明细 开始--}}
  252. <td class="text-muted">
  253. <template v-if="orderIssue.rejected_bill">
  254. @{{ orderIssue.rejected_bill.logistic_number_return }}
  255. </template>
  256. </td>
  257. @cannot('客户不可见')
  258. <td class="p-0 m-0" v-if="!isShowRejectedBill && index === 0 " style="width:50px;" :rowspan="orderIssues.length" >
  259. <span class="btn btn-outline-secondary " @click="showRejectedBill" :style="orderIssues.length>4 ?'{height: 200px;line-height: 100px':''" >展开退单列</span>
  260. </td>
  261. <td class="p-0" :id="orderIssue.id+'rejectedBill'" valign="middle" align="center" colspan="5"
  262. v-if="isShowRejectedBill">
  263. <div v-if="orderIssue.rejected_bill" class="m-0 p-0">
  264. <table v-if="orderIssue.rejected_bill.items" class="table table-sm m-0" :class="orderIssue.rejected_bill.items.length > 1 ? 'collapse' : '' " :id="'rejectedBill'+orderIssue.id"
  265. :data-value="orderIssue.rejectedCount = 0">
  266. <tr v-for="item in orderIssue.rejected_bill.items"
  267. :data-value="orderIssue.rejected_bill.sum += item.amount" align="center">
  268. <td style="min-width: 75px" >@{{ item.barcode_goods }}</td>
  269. <td style="min-width: 100px" >@{{ item.name_goods }}</td>
  270. <td style="min-width: 50px" :data-value="orderIssue.rejectedCount += item.amount">@{{ item.amount }}</td>
  271. <td style="min-width: 50px" >@{{ item.quality_label }}</td>
  272. <td style="min-width: 100px" >@{{ item.remark }}</td>
  273. </tr>
  274. </table>
  275. <button v-if="orderIssue.rejected_bill.items.length > 1" type="button" class="btn btn-sm btn-outline-primary align-middle mt-1" :id="'rejectedBillBtn'+orderIssue.id"
  276. data-toggle="collapse" :data-target="'#rejectedBill'+orderIssue.id" @click="toggleRejectedBill(orderIssue.id,orderIssue.rejectedCount)">
  277. 商品@{{ orderIssue.rejectedCount }}件,点击展开
  278. </button>
  279. </div>
  280. </td>
  281. @endcannot
  282. {{--退单商品明细 结束--}}
  283. <td >@{{ orderIssue.result_explain}}</td>
  284. <td ><span v-if="orderIssue.issue_type">@{{ orderIssue.issue_type.name}}</span></td>
  285. {{--处理结果--}}
  286. <td class=" m-0 p-0 log-td " valign="middle" align="center" v-on:mouseover="showAddBtn($event)" v-on:mouseleave="hideAddBtn($event)" colspan="3">
  287. <div class="addLogD v row m-0 p-0" :id="'AddLog_'+orderIssue.id" style="display: none">
  288. <input type="hidden" name="id" :value="orderIssue.id">
  289. <div class="form-group m-2">
  290. <input type="text" name="content" class="form-control" required>
  291. </div>
  292. <button type="button" class="btn btn-primary m-2 "
  293. @click="addOrderIssueLog('AddLog_'+orderIssue.id)">添加
  294. </button>
  295. </div>
  296. <div style="position: absolute;display: none;margin-top: -35px" class="add-btn" :id="'AddBtn'+orderIssue.id">
  297. <button type="button" class="btn btn-primary "
  298. @click="showAddDiv('AddLog_'+orderIssue.id)">新
  299. </button>
  300. </div>
  301. <template v-if="orderIssue.logs" class="p-0 m-0 ">
  302. <table class="table table-sm p-0 m-0 " :id="'logs'+orderIssue.id" :data-value="orderIssue.logShow == null ? orderIssue.logShow=false:''">
  303. <tr style="position:static" align="center" v-for="(log,index) in orderIssue.logs" :class="(orderIssue.logs.length <= 2 ? '' : ((index === 0 || orderIssue.logShow ) ? '' : 'd-none' )) "
  304. v-on:mouseover="showDelBtn($event)" v-on:mouseleave="hideDelBtn($event)" >
  305. <td style="min-width: 75px">@{{ log.type }}</td>
  306. <td style="min-width: 200px">@{{ log.content }}</td>
  307. <td style="min-width: 120px">@{{ log.user.name }}</td>
  308. <td style="" class="m-0 p-0 border-0">
  309. <button type="button" class="btn btn-sm btn-outline-danger m-0 del-btn invisible"
  310. @click="deleteOrderIssueLog(log.id,orderIssue.id)">删</button>
  311. </td>
  312. </tr>
  313. </table>
  314. <button type="button" class="btn btn-sm btn-outline-primary align-middle mt-1" v-if="orderIssue.logs.length > 2"
  315. @click="toggleLogs(orderIssue,$event)" :data-value="orderIssue.logs.length" :data-count="orderIssue.logShow" >
  316. 记录共@{{ orderIssue.logs.length }}条,点击展开
  317. </button>
  318. </template>
  319. </td>
  320. @cannot('客户不可见')
  321. <td class="p-0 m-0 h-100" v-if="!isShowSecondOrderInfo && index === 0" style="width:50px;" :rowspan="orderIssues.length" >
  322. <span class="btn btn-outline-secondary " @click="showSecondeOrder" :style="orderIssues.length>4 ?'{height: 200px;line-height: 100px':''">展开运单列</span>
  323. </td>
  324. <td v-if="isShowSecondOrderInfo">
  325. <span v-if="orderIssue.second_order" class="p-0"> @{{ orderIssue.second_order.client_code }}</span>
  326. </td>
  327. <td v-if="isShowSecondOrderInfo">
  328. <span v-if="orderIssue.second_order" class="p-0"> @{{ orderIssue.second_order.logistic.name }}</span>
  329. </td>
  330. <td class=" p-0" valign="middle" align="center" v-if="isShowSecondOrderInfo">
  331. <template v-if="orderIssue.second_order">
  332. <div class=" m-0" :id="'secondOrderNumbers'+orderIssue.id"
  333. :class="orderIssue.seconderCount > 1 ? 'collapse':''"
  334. :data-value="orderIssue.seconderCount = 0">
  335. <p class="m-0 p-0 text-muted " v-for="logisticNumber in orderIssue.second_order.logisticNumbers"
  336. :data-value="orderIssue.seconderCount +=1">@{{ logisticNumber }}</p>
  337. </div>
  338. <button v-if="orderIssue.seconderCount > 1" type="button"
  339. class="btn btn-sm btn-outline-primary align-middle mt-1"
  340. data-toggle="collapse"
  341. :id="'secondOrderNumbersBtn'+orderIssue.id"
  342. :data-target="'#secondOrderNumbers'+orderIssue.id"
  343. @click="toggleseCondOrderNumbers(orderIssue.id,orderIssue.second_order.logisticNumbers.length)">
  344. 分箱@{{ orderIssue.second_order.logisticNumbers.length }}件,点击展开
  345. </button>
  346. </template>
  347. </td>
  348. <td class=" p-0" colspan="3"v-if="isShowSecondOrderInfo">
  349. <template v-if="orderIssue.second_order" class=" p-0">
  350. <div class="m-0 p-0" :class="orderIssue.secondeOrderCount > 1 ? 'collapse':''"
  351. :id="'secondOrder'+orderIssue.id">
  352. <table class="table table-sm m-0 "
  353. :data-count="orderIssue.secondeOrderCount = 0"
  354. :data-value="orderIssue.secondeOrderItems = 0">
  355. <template v-for="packages in orderIssue.second_order.packages">
  356. <tr v-for="item in packages.commodities" :data-value="orderIssue.secondeOrderCount += 1">
  357. <td >@{{ item.commodity.sku }}</td>
  358. <td >@{{ item.commodity.name }}</td>
  359. <td :data-value="orderIssue.secondeOrderItems+=item.amount">@{{ item.amount }}</td>
  360. </tr>
  361. </template>
  362. </table>
  363. </div>
  364. <button type="button" class="btn btn-sm btn-outline-primary align-middle mt-1" data-toggle="collapse"
  365. v-if="orderIssue.secondeOrderCount > 0"
  366. :id="'secondOrderBtn'+orderIssue.id"
  367. :data-target="'#secondOrder'+orderIssue.id"
  368. @click="toggleSecond(orderIssue.id,orderIssue.secondeOrderItems)">商品@{{ orderIssue.secondeOrderItems }}件,点击展开
  369. </button>
  370. </template>
  371. </td>
  372. @endcannot
  373. <td >@{{ orderIssue.logistic_indemnity_money }}</td>
  374. <td >@{{ orderIssue.logistic_express_remission }}</td>
  375. @cannot('客户不可见')
  376. <td >@{{ orderIssue.baoshi_indemnity_money }}</td>
  377. <td >@{{ orderIssue.baoshi_express_remission }}</td>
  378. <td><span
  379. v-if="orderIssue.user_work_group">@{{ orderIssue.user_work_group.name }}</span>
  380. </td>
  381. <td>
  382. <button type="button" class="btn btn-sm btn-outline-primary"
  383. @click="editOrderIssue($event)" :data-value="orderIssue.id">改
  384. </button>
  385. <button type="button" class="btn btn-sm btn-outline-danger"
  386. @click="deleteOrderIssue($event)" :data-value="orderIssue.id">删
  387. </button>
  388. </td>
  389. @endcannot
  390. </tr>
  391. </table>
  392. <button class="btn btn-sm" :class="page.curPage === 1 ?'':'btn-outline-primary'"
  393. @click="goPage(page.curPage-1)"
  394. :disabled="page.curPage === 1">上一页</button>
  395. <button class="btn btn-sm" :class="page.curPage === page.lastPage ?'':'btn-outline-primary'"
  396. @click="goPage(page.curPage+1)"
  397. :disabled="page.curPage === page.lastPage">下一页</button>
  398. <input @keyup.enter="pageTurning($event)" class="form-control-sm ml-3 tooltipTarget"
  399. :placeholder="'当前页数:'+page.curPage+'/'+page.lastPage" title="去往指定页">
  400. <span class="text-muted m-1">共 @{{page.total}} 条 </span>
  401. </div>
  402. </div>
  403. {{--deleteOrderIssue--}}
  404. <div class="modal fade" id="alertModal" tabindex="-1" role="dialog" aria-labelledby="alertModalLabel"
  405. aria-hidden="true">
  406. <div class="modal-dialog modal-dialog-centered">
  407. <div class="modal-content">
  408. <div class="modal-header">
  409. <h5 class="modal-title" id="exampleModalLabel">提示</h5>
  410. <button type="button" class="close" data-dismiss="modal" aria-label="Close"
  411. @click="changeDeleteId">
  412. <span aria-hidden="true">&times;</span>
  413. </button>
  414. </div>
  415. <div class="modal-body">
  416. <p>是否删除当前订单问题件?</p>
  417. <input type="hidden" id="deleteId" class="form-control"/>
  418. </div>
  419. <div class="modal-footer">
  420. <button type="button" class="btn btn-secondary" data-dismiss="modal" @click="changeDeleteId">
  421. 取消
  422. </button>
  423. <button type="button" class="btn btn-primary" data-dismiss="modal"
  424. @click="deleteOrderIssueById">确认
  425. </button>
  426. </div>
  427. </div>
  428. </div>
  429. </div>
  430. {{--OrderIssue On Top--}}
  431. <div class="modal fade " id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"
  432. aria-hidden="true">
  433. <div class="modal-dialog modal-dialog-centered">
  434. <div class="modal-content">
  435. <div class="modal-header">
  436. <h5 class="modal-title" id="exampleModalLabel">请输入置顶备注</h5>
  437. <button type="button" class="close" data-dismiss="modal" aria-label="Close"
  438. @click="changeRemark">
  439. <span aria-hidden="true">&times;</span>
  440. </button>
  441. </div>
  442. <div class="modal-body">
  443. <input type="hidden" class="form-control" id="onTopId">
  444. <textarea type="text" class="form-control" required id="remark"
  445. @change="changeRemark"></textarea>
  446. <div class="invalid-feedback">
  447. 备注信息不能为空
  448. </div>
  449. </div>
  450. <div class="modal-footer">
  451. <button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal"
  452. @click="changeRemark">关闭
  453. </button>
  454. <button type="button" class="btn btn-sm btn-primary" @click="submitOnTop">提交</button>
  455. </div>
  456. </div>
  457. </div>
  458. </div>
  459. </div>
  460. @endsection
  461. @section('lastScript')
  462. <style type="text/css">
  463. @keyframes anima {
  464. from {
  465. opacity: 0.1;
  466. }
  467. to {
  468. opacity: 1;
  469. }
  470. }
  471. @-webkit-keyframes anima {
  472. from {
  473. opacity: 0.75;
  474. }
  475. to {
  476. opacity: 0.1;
  477. }
  478. }
  479. .tr_top {
  480. min-height: 75px;
  481. }
  482. .bg-light-yellow {
  483. background: #fffff8;
  484. }
  485. .top {
  486. padding-top: 0px;
  487. padding-left: 10px;
  488. margin-top: -4px;
  489. margin-left: -5px;
  490. line-height: 75px;
  491. position: absolute;
  492. animation: anima;
  493. animation-duration: 3s;
  494. animation-timing-function: cubic-bezier(0, 0, 1, 1);
  495. animation-direction: alternate;
  496. animation-play-state: running;
  497. -webkit-animation-name: anima;
  498. -webkit-animation-duration: 3s;
  499. -webkit-animation-timing-function: cubic-bezier(0, 0, 1, 1);
  500. -webkit-animation-iteration-count: infinite;
  501. -webkit-animation-direction: alternate;
  502. -webkit-animation-play-state: running;
  503. }
  504. </style>
  505. <script type="text/javascript" src="{{asset('js/queryForm/queryForm200901.js')}}"></script>
  506. <script type="text/javascript" src="{{asset('js/queryForm/export200818a.js')}}"></script>
  507. <script>
  508. let listVue = new Vue({
  509. el: '#issue_div ',
  510. data: {
  511. orderIssues: {!! $orderIssues->toJson() !!}['data'],
  512. owners: [@foreach($owners as $owner){name: '{{ $owner->id }}', value: '{{ $owner->name}}'},@endforeach],
  513. orderIssueType: [
  514. @foreach($orderIssueType as $type)
  515. {name: '{{$type->id}}', value: '{{$type->name}}' },
  516. @endforeach],
  517. qualityLabel: [
  518. @foreach($qualityLabel as $type)
  519. {name: '{{$type->id}}', value: '{{$type->name}}' },
  520. @endforeach],
  521. checkData: [],
  522. from: '',
  523. finalStatus: [{name: '0', value: '已解决'}, {name: '1', value: '待退回'}, {name: '2', value: '退回中'}],
  524. selectedStyle: '',
  525. deleteId: '',
  526. page: {
  527. lastPage: {!! $orderIssues->toJson() !!}['last_page'],
  528. curPage: {!! $orderIssues->toJson() !!}['current_page'],
  529. total: {!! $orderIssues->toJson() !!}['total'],
  530. nextPageUrl: {!! $orderIssues->toJson() !!}['next_page_url'],
  531. prevPageUrl: {!! $orderIssues->toJson() !!}['prev_page_url'],
  532. lastPageUrl: {!! $orderIssues->toJson() !!}['last_page_url'],
  533. },
  534. isShowOrderInfo:false,
  535. isShowRejectedBill: false,
  536. isShowSecondOrderInfo: false,
  537. },
  538. mounted: function () {
  539. $('.tooltipTarget').tooltip({'trigger': 'hover'});
  540. $('#list').removeClass("d-none");
  541. console.log(this.orderIssues);
  542. let _this = this;
  543. let final_status = [{name: '已解决', value: '已解决'}, {name: '待退回', value: '待退回'}, {
  544. name: '退回中',
  545. value: '退回中'
  546. }];
  547. let data = [[
  548. {name: 'created_at_start', type: 'dateTime', tip: '订单开始日期'},
  549. {
  550. name: 'owner_id',
  551. type: 'select_multiple_select',
  552. tip: ['输入关键词快速定位下拉列表,回车确定', '选择要显示的客户'],
  553. placeholder: ['货主', '定位或多选货主'],
  554. data: _this.owners
  555. },
  556. {name: 'client_code', type: 'input', tip: '原始订单号:前或后加百分号为单个模糊搜索,否则为多条件精确搜索', placeholder: '原始订单号'},
  557. {name: 'logistic_number', type: 'input', tip: ['输入原始运单号:前或后加百分号为单个模糊搜索,否则为多条件精确搜索'], placeholder: '原始运单号'},
  558. {name: 'logistic_number_return', type: 'input', tip: '退回单号:前或后加百分号为单个模糊搜索,否则为多条件精确搜索', placeholder: '退回单号'},
  559. {name: 'send_client_code', type: 'input', tip: '二次订单号:前或后加百分号为单个模糊搜索,否则为多条件精确搜索', placeholder: '二次订单号'},
  560. ], [
  561. {name: 'created_at_end', type: 'dateTime', tip: '订单结束日期'},
  562. {name: 'consignee_name', type: 'input', tip: '收货人名称:前或后加百分号为单个模糊搜索,否则为多条件精确搜索', placeholder: '收货人名称'},
  563. {name: 'consignee_phone', type: 'input', tip: '收货人电话:前或后加百分号为单个模糊搜索,否则为多条件精确搜索', placeholder: '收货人电话'},
  564. {name: 'good_barcode', type: 'input', tip: '条码:前或后加百分号为单个模糊搜索,否则为多条件精确搜索', placeholder: '条码'},
  565. {name: 'good_name', type: 'input', tip: '商品名', placeholder: '商品名'},
  566. {
  567. name: 'id_quality_label',
  568. type: 'select',
  569. tip: '是否正品',
  570. placeholder: '是否正品',
  571. data: this.qualityLabel
  572. },
  573. ],[
  574. {name: 'logistic_indemnity_money', type: 'input', tip: '承运商赔偿金额', placeholder: '承运商赔偿金额'},
  575. @cannot('客户不可见')
  576. {
  577. name: 'baoshi_indemnity_money', type: 'input', tip: '宝时赔偿金额', placeholder: '宝时赔偿金额'
  578. },
  579. {name: 'final_status', type: 'select', tip: '问题件的最终状态', placeholder: '最终状态', data: final_status},
  580. {
  581. name: 'order_issue_type_id',
  582. type: 'select',
  583. tip: '问题类别',
  584. placeholder: '问题类别',
  585. data: this.orderIssueType
  586. },
  587. {name: 'is_handle', type: 'checkbox', tip: '是否已处理', data: [{name: 'ture', value: '已解决'}]},
  588. @endcan
  589. ]];
  590. this.form = new query({
  591. el: '#form_div',
  592. condition: data,
  593. })
  594. this.form.init();
  595. let order = $('.table-head-warning')[0];
  596. $('.top').css('min-width', $(order).outerWidth(true));
  597. },
  598. watch: {
  599. checkData: {
  600. handler() {
  601. if (this.checkData.length === this.orderIssues.length) {
  602. document.querySelector('#all').checked = true;
  603. } else {
  604. document.querySelector('#all').checked = false;
  605. }
  606. },
  607. deep: true
  608. },
  609. },
  610. methods: {
  611. selectedColor(orderno) {
  612. if (orderno === this.selectedStyle) {
  613. this.selectedStyle = '';
  614. return;
  615. }
  616. this.selectedStyle = orderno;
  617. },
  618. editOrderIssue($event) {
  619. let id = $($event.target).attr('data-value');
  620. window.location.href = "{{url('order/issue/edit')}}" + '/' + id;
  621. },
  622. deleteOrderIssue($event) {
  623. let id = $($event.target).attr('data-value');
  624. $('#deleteId').val(id);
  625. $('#alertModal').modal('show');
  626. },
  627. deleteOrderIssueById() {
  628. let _this = this;
  629. tempTip.setDuration(99999)
  630. tempTip.waitingTip('删除中,请稍候')
  631. let id = $('#deleteId').val();
  632. let data = {id: id};
  633. axios.post('{{url('apiLocal/order/issue/destroy')}}', data).then(function (res) {
  634. tempTip.setDuration(5000)
  635. tempTip.cancelWaitingTip();
  636. if (res.data.success) {
  637. for (let i = 0; i < _this.orderIssues.length; i++) {
  638. let data = _this.orderIssues[i];
  639. if (data.id == id) {
  640. _this.orderIssues.splice(i, 1);
  641. _this.deleteId = 0;
  642. break;
  643. }
  644. }
  645. tempTip.setDuration(2000);
  646. tempTip.showSuccess('问题件删除成功');
  647. } else {
  648. tempTip.setDuration(2500);
  649. tempTip.show('标记勾选内容删除失败,错误:' + res.data.fail_info);
  650. }
  651. }).catch(function (err) {
  652. tempTip.setDuration(4000);
  653. tempTip.cancelWaitingTip();
  654. tempTip.show('网络错误:' + err);
  655. });
  656. },
  657. changeDeleteId() {
  658. $('#deleteId').val('');
  659. },
  660. cancelOnTop(event) {
  661. let id = $(event.target).attr('data-value')
  662. let data = {id: id};
  663. if (data === '' || data === null) {
  664. return;
  665. }
  666. axios.post('{{url('apiLocal/order/issue/onTop/cancelTop')}}', data).then(function (res) {
  667. if (res.data.success) {
  668. tempTip.setDuration(2000);
  669. tempTip.showSuccess('订单问题件取消置顶成功!');
  670. window.location.reload();
  671. } else {
  672. tempTip.setDuration(2500);
  673. tempTip.show(res.data.fail_info);
  674. }
  675. }).catch(function (err) {
  676. tempTip.setDuration(4000);
  677. tempTip.show('网络错误:' + err);
  678. });
  679. },
  680. changeRemark() {
  681. $('#remark').removeClass('is-invalid');
  682. },
  683. OrderIssueOnTop(event) {
  684. let id = $(event.target).attr('data-value');
  685. $("#onTopId").val(id);
  686. $("#exampleModal").modal('show');
  687. },
  688. submitOnTop() {
  689. let _this = this;
  690. let remark = $("#remark").val();
  691. let id = $("#onTopId").val();
  692. if (remark === '' || remark == null) {
  693. $("#remark").focus();
  694. $('#remark').addClass('is-invalid');
  695. } else {
  696. let data = {id: id, remark: remark};
  697. axios.post('{{url('apiLocal/order/issue/onTop/store')}}', data).then(function (res) {
  698. $("#exampleModal").modal('hide');
  699. if (res.data.success) {
  700. _this.orderIssues.forEach(function (orderIssue) {
  701. if (orderIssue.id == id) {
  702. if (orderIssue.top == null) {
  703. orderIssue.top = {};
  704. }
  705. orderIssue.top.remark = 'remark';
  706. }
  707. })
  708. tempTip.setDuration(2500);
  709. tempTip.showSuccess('置顶成功');
  710. window.location.href = window.location.href;
  711. } else {
  712. tempTip.setDuration(2500);
  713. tempTip.show(res.data.fail_info);
  714. }
  715. }).catch(function (err) {
  716. $("#exampleModal").modal('hide');
  717. tempTip.setDuration(4000);
  718. tempTip.show('网络错误:' + err);
  719. });
  720. }
  721. },
  722. orderIssueExport(sign) {
  723. let url = '{{url('order/issue/export')}}';
  724. let token = '{{ csrf_token() }}';
  725. if (sign) {
  726. excelExport(true, this.checkData, url, this.page.total, token);
  727. } else {
  728. excelExport(false, this.checkData, url, null, token);
  729. }
  730. },
  731. copyOrderNo() {
  732. try{
  733. let _this = this;
  734. if (this.checkData.length === 0) {
  735. tempTip.show('没有勾选订单');
  736. } else {
  737. let orderNos = [];
  738. this.orderIssues.forEach(function (item) {
  739. if (_this.checkData.includes(item.id)) {
  740. let logisticNumbers = item.order.logisticNumbers;
  741. if (logisticNumbers.length > 0) {
  742. orderNos = orderNos.concat(logisticNumbers);
  743. }
  744. }
  745. })
  746. if (orderNos.length === 0) {
  747. tempTip.setDuration(2200);
  748. tempTip.show('勾选的问题件没有对应的快递单号');
  749. return;
  750. }
  751. let p = $('<textarea id="copy" />'+orderNos.join('\n')+'</textarea>');
  752. p.attr('opacity', 0);
  753. $('body').append(p);
  754. let p_ele = document.getElementById('copy');
  755. p_ele.select();
  756. document.execCommand("Copy");
  757. p.remove();
  758. tempTip.setDuration(1200);
  759. tempTip.showSuccess('复制快递单号成功');
  760. }
  761. }catch(err){
  762. tempTip.setDuration(2000);
  763. tempTip.show('复制快递单号失败'+err);
  764. }
  765. },
  766. checkAll(e) {
  767. if (e.target.checked) {
  768. this.orderIssues.forEach((el, i) => {
  769. if (this.checkData.indexOf(el.id) == '-1') {
  770. this.checkData.push(el.id);
  771. }
  772. });
  773. } else {
  774. this.checkData = [];
  775. }
  776. },
  777. endOrderIssue() {
  778. if (this.checkData.length === 0) {
  779. tempTip.show('没有勾选订单');
  780. return;
  781. }
  782. let _this = this;
  783. let ids = _this.checkData;
  784. let data = {ids: ids};
  785. axios.post('{{url('apiLocal/order/issue/endOrderIssue')}}', data).then(function (res) {
  786. if (res.data.success) {
  787. tempTip.setDuration(2000);
  788. tempTip.showSuccess('勾选订单已变为已完结');
  789. _this.orderIssues.forEach(function (item,index) {
  790. if (ids.includes(item.id)) {
  791. item.final_status = '已解决';
  792. // _this.orderIssues.splice(index,1);
  793. }
  794. });
  795. _this.checkData = [];
  796. } else {
  797. tempTip.setDuration(3000);
  798. tempTip.show(res.data.fail_info);
  799. }
  800. }).catch(function (err) {
  801. tempTip.setDuration(4000);
  802. tempTip.show('网络异常:' + err);
  803. })
  804. },
  805. disposeOrderIssue(e) {
  806. let _this = this;
  807. let id = $(e.target).attr('data-value');
  808. let data = {id: id};
  809. axios.post('{{url('apiLocal/order/issue/disposeOrderIssue')}}', data).then(function (res) {
  810. if (res.data.success) {
  811. _this.orderIssues.forEach(function (orderIssue) {
  812. if (orderIssue.id == data.id) {
  813. orderIssue.is_new_rejecting = '已处理';
  814. orderIssue.logs.unshift(res.data.data);
  815. }
  816. })
  817. tempTip.setDuration(3000);
  818. tempTip.showSuccess('订单已处理');
  819. } else {
  820. tempTip.setDuration(3000);
  821. tempTip.show(res.data.fail_info);
  822. }
  823. }).catch(function (err) {
  824. tempTip.setDuration(4000);
  825. tempTip.show('网路链接异常' + err);
  826. });
  827. },
  828. addOrderIssueLog(id) {
  829. let idInput = $('#' + id + ' :input[name="id"]');
  830. let contentInput = $('#' + id + ' :input[name="content"]');
  831. if (!contentInput.val()) {
  832. contentInput.addClass('is-invalid').focus();
  833. return;
  834. }
  835. contentInput.removeClass('is-invalid')
  836. let _this = this;
  837. let data = {id: idInput.val(), content: contentInput.val()};
  838. axios.post('{{url('apiLocal/order/issue/log/store')}}', data).then(function (res) {
  839. if (res.data.success) {
  840. _this.orderIssues.forEach(function (orderIssue) {
  841. if (orderIssue.id == data.id) {
  842. orderIssue.logs.unshift(res.data.data);
  843. contentInput.val('');
  844. $('#' + id).hide();
  845. }
  846. })
  847. tempTip.setDuration(2000);
  848. tempTip.showSuccess('添加成功');
  849. } else {
  850. tempTip.setDuration(3000);
  851. tempTip.show(res.data.fail_info);
  852. }
  853. }).catch(function (err) {
  854. tempTip.setDuration(4000);
  855. tempTip.show('网络异常:' + err);
  856. });
  857. },
  858. deleteOrderIssueLog(id, OrderIssueId) {
  859. let _this = this;
  860. axios.post("{{url('apiLocal/order/issue/log/destroy')}}", {id: id}).then(function (res) {
  861. if (res.data.success) {
  862. _this.orderIssues.forEach(function (orderIssue) {
  863. if (orderIssue.id == OrderIssueId) {
  864. let logs = orderIssue.logs;
  865. logs.forEach(function (item, index) {
  866. if (item.id == id) {
  867. logs.splice(index, 1);
  868. }
  869. });
  870. }
  871. })
  872. tempTip.setDuration(2000);
  873. tempTip.showSuccess('删除成功');
  874. } else {
  875. tempTip.setDuration(2000);
  876. tempTip.show('删除失败:' + res.data.fail_info);
  877. }
  878. }).catch(function (err) {
  879. tempTip.setDuration(4000);
  880. tempTip.show('网络异常:' + err);
  881. });
  882. },
  883. hidetop: function (e) {
  884. let target = $(e.target);
  885. let top = target.parent().find('.top');
  886. let tip = target.parent().find('.toptd');
  887. top.hide();
  888. tip.tooltip('show');
  889. },
  890. showtop: function (e) {
  891. let target = $(e.target);
  892. let top = target.parent().find('.top');
  893. let tip = target.parent().find('.toptd');
  894. top.show();
  895. tip.tooltip('hide');
  896. },
  897. showDelBtn(e) {
  898. let domObj = $(e.target).parent();
  899. domObj.find('.del-btn').addClass('visible').removeClass('invisible');
  900. },
  901. hideDelBtn(e) {
  902. let domObj = $(e.target);
  903. domObj.find('.del-btn').addClass('invisible').removeClass('visible');
  904. },
  905. showAddBtn(e) {
  906. let domObj = $(e.target).parents('.log-td');
  907. if (domObj.hasClass('log-td')) {
  908. domObj.find('.add-btn').show();
  909. }
  910. },
  911. hideAddBtn(e) {
  912. let domObj = $(e.target);
  913. if (domObj.hasClass('log-td')) {
  914. domObj.find('.add-btn').hide();
  915. }
  916. },
  917. showAddDiv(id) {
  918. let div = $('#' + id);
  919. if (div.is(":hidden")) {
  920. div.show();
  921. } else {
  922. div.hide();
  923. }
  924. },
  925. toggleLogisticNumbers(id, length) {
  926. let collapse = $('#logisticNumbers' + id);
  927. let button = $("#logisticNumbersBtn" + id);
  928. let isShow = button.attr('aria-expanded');
  929. if (isShow === 'false') {
  930. button.text('点击收起');
  931. } else {
  932. button.text("分箱" + length + "件,点击展开");
  933. }
  934. },
  935. toggleLogs(orderIssue, e) {
  936. if ( orderIssue.logShow === false) {
  937. $(e.target).text('点击收起');
  938. } else {
  939. $(e.target).text("记录共" + $(e.target).attr('data-value') + "条,点击展开");
  940. }
  941. orderIssue.logShow = !orderIssue.logShow;
  942. },
  943. toggleOrder(id, length) {
  944. let button = $("#orderBtn" + id);
  945. let isShow = button.attr('aria-expanded');
  946. if (isShow === 'false') {
  947. button.text('点击收起');
  948. } else {
  949. button.text("商品" + length + "件,点击展开");
  950. }
  951. },
  952. toggleSecond(id, length) {
  953. let button = $("#secondOrderBtn" + id);
  954. let isShow = button.attr('aria-expanded');
  955. if (isShow === 'false') {
  956. button.text('点击收起');
  957. } else {
  958. button.text("商品" + length + "件,点击展开");
  959. }
  960. },
  961. toggleRejectedBill(id, length) {
  962. let button = $("#rejectedBillBtn" + id);
  963. let isShow = button.attr('aria-expanded');
  964. if (isShow === 'false') {
  965. button.text('点击收起');
  966. } else {
  967. button.text("商品" + length + "件,点击展开");
  968. }
  969. },
  970. toggleseCondOrderNumbers(id, length) {
  971. let button = $("#secondOrderNumbersBtn" + id);
  972. let isShow = button.attr('aria-expanded');
  973. if (isShow === 'false') {
  974. button.text('点击收起');
  975. } else {
  976. button.text("分箱" + length + "件,点击展开");
  977. }
  978. },
  979. hideOrderInfo() {
  980. this.isShowOrderInfo = false;
  981. },
  982. hideRejectedBill() {
  983. this.isShowRejectedBill = false;
  984. },
  985. hideSecondOrder() {
  986. this.isShowSecondOrderInfo = false;
  987. },
  988. showOrderInfo() {
  989. this.isShowOrderInfo = true;
  990. },
  991. showRejectedBill() {
  992. this.isShowRejectedBill = true;
  993. },
  994. showSecondeOrder() {
  995. this.isShowSecondOrderInfo = true;
  996. },
  997. pageTurning(e){
  998. let page = $(e.target).val();
  999. if (page > this.page.lastPage) {
  1000. return;
  1001. }
  1002. this.goPage(page);
  1003. },
  1004. goPage(page){
  1005. let href = window.location.href;
  1006. if(href.indexOf('?')===-1){
  1007. href+='?'
  1008. }
  1009. if(href.indexOf('page=')!==-1){
  1010. href = href.replace('page='+this.page.curPage,'page='+page);
  1011. }else{
  1012. href+='&page='+page;
  1013. }
  1014. window.location = href;
  1015. }
  1016. }
  1017. })
  1018. // modal 隐藏时修改 input 为空
  1019. $("#exampleModal").on('hide.bs.modal', function (e) {
  1020. $('#remark').val('');
  1021. });
  1022. </script>
  1023. @endsection