index.vue 53 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465
  1. <template>
  2. <div class="order-wrapper">
  3. <div class="order-nav">
  4. <div :class="activeType === '' ? 'active': ''" @click="ChangeList('')"><span>全部</span></div>
  5. <div :class="activeType === 'tobeconfirmed' ? 'active' : ''" @click="ChangeList('tobeconfirmed')"><span>待付款</span></div>
  6. <div :class="activeType === 'comfirmed' ? 'active' : ''" @click="ChangeList('comfirmed')"><span>待发货</span></div>
  7. <div :class="activeType === 'inbound' ? 'active' : ''" @click="ChangeList('inbound')"><span>待收货</span></div>
  8. </div>
  9. <div class="search-content search-content2" v-if="vendorType !== 'buyer'" >
  10. <input type="text" placeholder="订单号/产品信息/买家名字" v-model="keyword" @keyup.13="searchOrderlist">
  11. <span @click="searchOrderlist" >
  12. <i class="iconfont icon-sousuo"></i>
  13. </span>
  14. </div>
  15. <div class="search-content search-content2" v-else >
  16. <input type="text" placeholder="订单号/产品信息/卖家名称" v-model="keyword" @keyup.13="searchOrderlist">
  17. <span @click="searchOrderlist" >
  18. <i class="iconfont icon-sousuo"></i>
  19. </span>
  20. </div>
  21. <ul class="order-list-wrap" id="order-wrapper" v-show="orderList.length > 0">
  22. <li class="clearfix" v-for="item in orderList">
  23. <div class="orderNumber clearfix">
  24. <div class="pull-left">订单号:<span>{{item.orderid}}</span></div>
  25. <div class="pull-right">{{item.createtime || item.creattime | time}}</div>
  26. </div>
  27. <div class="list-wrap-title clearfix">
  28. <div class="pull-left" v-if="vendorType !== 'buyer'" @click="toShopdetails(item)">
  29. <span>买家:</span>
  30. <!--<span class="labelInfo_ForItem" v-if="item.storeid === '33069557578d44e69bd91ad12d28a8d4'">寄售</span>-->
  31. <template v-if="item.buyentername === item.buyername">
  32. <span>{{item.buyentername || '(个人账户)'}}</span>
  33. </template>
  34. <template v-else>
  35. <span>{{item.buyentername}}</span><span>&nbsp;|&nbsp;{{item.buyername}}</span>
  36. </template>
  37. </div>
  38. <div class="pull-left" v-else @click="toShopdetails(item)">卖家:
  39. <!--<span class="labelInfo_ForItem" v-if="item.storeid === '33069557578d44e69bd91ad12d28a8d4'">寄售</span>-->
  40. {{item.sellername}}<img src="/images/mobile/user/icon-right.png"/></div>
  41. <div class="pull-right">
  42. <template v-if="vendorType === 'buyer'">
  43. <span class="red" v-if="item.status === 505 || item.status === 406 || item.status === 407 || item.status === 403 || item.status === 408">待卖家发货</span>
  44. <span class="red" v-else-if="item.status === 501 || item.status === 502 || item.status === 503 || item.status === 524">待付款</span>
  45. <span class="red" v-else-if="item.status === 404">待收货</span>
  46. <span class="red" v-else-if="item.status === 602 || item.status === 603 || item.status === 315 || item.status === 604 || item.status === 605 || item.status === 606">已取消</span>
  47. <span class="red" v-else-if="item.status === 504">付款确认中</span>
  48. <span class="red" v-else-if="item.status === 520 || item.status === 405">交易已完成</span>
  49. <span class="red" v-else-if="item.status === 525">卖家请求取消</span>
  50. </template>
  51. <template v-else>
  52. <span class="red" v-if="item.status === 502 || item.status === 406">买家已付款</span>
  53. <!--<span class="red">待发货</span>-->
  54. <span class="red" v-else-if="item.status === 602 || item.status === 603 || item.status === 315 || item.status === 604 || item.status === 605 || item.status === 606">订单已取消</span>
  55. <span class="red" v-else-if="item.status === 501 || item.status === 524">待买家付款</span>
  56. <span class="red" v-else-if="item.status === 404">待买家收货</span>
  57. <span class="red" v-else-if="item.status === 405 || item.status === 514 || item.status === 503 || item.status === 506">待商城付款</span>
  58. <span class="red" v-else-if="item.status === 606">交易关闭</span>
  59. <span class="red" v-else-if="item.status === 520">交易完成</span>
  60. <span class="red" v-else-if="item.status === 525">卖家发起取消,待确认</span>
  61. <span class="red" v-else-if="item.status === 504">付款确认中</span>
  62. </template>
  63. </div>
  64. </div>
  65. <div class="list-wrap-content" @click="toproductdetails(details)" v-for="(details, index) in item.purchaseDetails" v-if="index < item.showItem">
  66. <div class="list-item clearfix">
  67. <div class="list-wrap-content-brand clearfix pull-left">
  68. <div class="name pull-left">品牌:</div>
  69. <div class="pull-left spec">{{details.brName || '-'}}</div>
  70. </div>
  71. <div class="pull-left list-wrap-content-brand clearfix">
  72. <div class="name pull-left">交期(天):</div>
  73. <div class="pull-left spec noMargin" style="width: 1.5rem" v-if="details.b2cMinDelivery !== details.b2cMaxDelivery">{{details.b2cMinDelivery}}-{{details.b2cMaxDelivery}}</div>
  74. <div class="pull-left spec noMargin" style="width: 1.5rem" v-else>{{details.b2cMinDelivery}}</div>
  75. </div>
  76. </div>
  77. <div class="list-item clearfix">
  78. <div class="list-wrap-content-brand clearfix pull-left">
  79. <div class="name pull-left">物料名称(类目):</div>
  80. <div class="pull-left spec" style="width: 1.79rem;">{{details.kiName || '-'}}</div>
  81. </div>
  82. <div class="pull-left list-wrap-content-brand clearfix">
  83. <div class="name pull-left">单价:</div>
  84. <div class="pull-left spec noMargin">
  85. <span v-if="item.currency === 'RMB'">¥</span><span v-else>$</span>{{details.taxUnitprice || details.taxUnitPrice}}</div>
  86. </div>
  87. </div>
  88. <div class="list-item clearfix">
  89. <div class="list-wrap-content-brand clearfix pull-left">
  90. <div class="name pull-left">型号:</div>
  91. <div class="pull-left spec">{{details.cmpCode || '-'}}</div>
  92. </div>
  93. <div class="pull-left list-wrap-content-brand clearfix">
  94. <div class="name pull-left">数量(PCS):</div>
  95. <div class="pull-left spec noMargin" style="width: 1.2rem"><span></span>{{details.number}}</div>
  96. </div>
  97. </div>
  98. <div class="list-item clearfix">
  99. <div class="list-wrap-content-brand clearfix pull-left">
  100. <div class="name pull-left">规格:</div>
  101. <div class="pull-left spec">{{details.spec || '-'}}</div>
  102. </div>
  103. <div class="pull-left pri clearfix">
  104. <div class="name pull-left">小计:</div>
  105. <span v-if="item.currency === 'RMB'">¥</span><span v-else>$</span>{{details.ensurePrice}}
  106. </div>
  107. </div>
  108. </div>
  109. <div class="lookMorePro" @click="item.showItem = item.purchaseDetails.length" v-if="item.showItem === 3 && item.purchaseDetails && item.purchaseDetails.length > 3">查看更多<img src="/images/mobile/user/icon-right.png"/></div>
  110. <div class="list-all-info clearfix">
  111. <!--共<span>{{item.batchQty}}</span>件商品&nbsp;&nbsp;-->
  112. <div>合计:<span class="pri"><a v-if="item.currency === 'RMB'" class="red">¥</a><a v-else class="red">$</a>{{item.ensurePrice }}</span>
  113. <span class="lab">(含运费:<a v-if="item.currency === 'RMB'" class="red">¥</a><a v-else class="red">$</a><a class="red">{{item.fare | priceFiter}}</a>)</span></div>
  114. </div>
  115. <div class="list-btn clearfix">
  116. <template v-if="vendorType === 'buyer'">
  117. <div class="pull-right sendGoods" v-if="item.status === 404" @click="buyerGetGoods(item)">确认收货</div>
  118. <div class="pull-right sendGoods" v-if="!item.installmentId && (item.status === 503 || item.status === 501)" @click="gotoPay(item)">立即付款</div>
  119. <div class="pull-right" @click="lookOrderDetail(item)">订单详情</div>
  120. <div class="pull-right sendGoods" @click="onMind('此订单为分期付款,请前往【PC】端进行相关操作')" v-if="item.installmentId && (item.status === 503 || item.status === 504 || item.status === 524 ) && item.installment.status !== 505 && !item.againUpload">立即付款</div>
  121. <div class="pull-right" @click="onMind('此订单为分期付款,请前往【PC】端进行相关操作')" v-if="item.installmentId && (item.status === 503 || item.status === 504 || item.status === 524 ) && item.installment.status !== 505 && item.againUpload">重新上传</div>
  122. <div class="pull-right" @click="cancelOrder(item)" v-if="item.status === 503 || item.status === 501 || item.status === 502">取消订单</div>
  123. <div class="pull-right" @click="deleteOrder(item)" v-if="item.status === 602 || item.status === 603 || item.status === 315 || item.status === 604 || item.status === 605 || item.status === 606">
  124. 删除订单</div>
  125. <div @click="paidTime(item)" class="pull-right" v-if="_getHoursFromNow(item.paytime) > sellsendGoodsTime - 1 && item.status !== 404 && item.status !== 524 && item.status !== 520 && item.status !== 405 && item.status !== 521">提醒发货</div>
  126. <div @click="lookLogisticsInfo(item)" class="pull-right" v-if="item.status === 404 || item.status === 520 || item.status === 405 || item.status === 521">查看物流</div>
  127. <div class="pull-right cancat" @click="cancatAlert(item)">
  128. <i class="iconfont icon-kefu1"></i>联系卖家
  129. </div>
  130. </template>
  131. <template v-else>
  132. <div class="pull-right sendGoods" v-if="(item.status === 502 || item.status === 406) && !item.uasPurcid" @click="sendGoods(item)">点击发货</div>
  133. <div @click="changelogistics(item)" class="pull-right sendGoods" v-if="item.status === 404 && !item.uasPurcid">修改物流</div>
  134. <div @click="lookOrderDetail(item)" class="pull-right">订单详情</div>
  135. <div @click="deleteOrder(item)" class="pull-right" v-if="item.status === 602 || item.status === 603 || item.status === 315 || item.status === 604 || item.status === 605 || item.status === 606">
  136. 删除订单</div>
  137. <div @click="lookLogisticsInfo(item)" class="pull-right" v-if="item.status === 404 || item.status === 520 || item.status === 405 || item.status === 503 || item.status === 514">查看物流</div>
  138. <div @click="onMind('此订单为分期付款,请前往【PC】端进行相关操作')" class="pull-right" v-if="item.installmentId && ((item.installment.status === 503 && item.Overtime) || item.installment.status === 504) && item.status !== 606 && item.status !== 525">
  139. 取消订单
  140. </div>
  141. <div @click="onMind('此订单为分期付款,请前往【PC】端进行相关操作')" class="pull-right" v-if="installmentDetailPaid(item) && item.status !== 525 && item.status !== 606">
  142. 确认收款
  143. </div>
  144. <div class="pull-right cancat" @click="cancatAlert(item)">
  145. <i class="iconfont icon-kefu1"></i>联系买家
  146. </div>
  147. </template>
  148. </div>
  149. </li>
  150. </ul>
  151. <div v-if="orderList.length === 0" class="com-none-state">
  152. <img src="/images/mobile/@2x/search-empty.png">
  153. <p>抱歉,暂无订单消息</p>
  154. <nuxt-link to="/">返回首页</nuxt-link>
  155. </div>
  156. <div v-if="getOrderList && false"></div>
  157. <!-- 发货弹窗 -->
  158. <div class="mobile-modal" v-if="showSend" @touchmove="preventTouchMove($event)">
  159. <div class="sendGoods_Alert">
  160. <div class="sendGoods_title">发货信息<span><i class="iconfont icon-guanbi1" @click="showSend = false"></i></span></div>
  161. <div class="sendGoods_buyer">
  162. <div class="sendGoods_buyer_top">
  163. <span class="name">{{sendGoodsInfo.area.name}}</span>
  164. <span class="tel">{{sendGoodsInfo.area.tel}}</span>
  165. </div>
  166. <div class="sendGoods_buyer_bottom">
  167. <img src="/images/order/address_icon.png"/>
  168. <span>{{sendGoodsInfo.area.area}}{{sendGoodsInfo.area.detailAddress}}</span>
  169. </div>
  170. </div>
  171. <div class="sendGoods_list clearfix">
  172. <div class="ti pull-left">配送方式</div>
  173. <div class="pull-right">
  174. {{sendGoodsInfo.sendType === 1301 ? '第三方配送' : (sendGoodsInfo.sendType === 1302 ? '卖家配送': '上门自提')}}
  175. </div>
  176. </div>
  177. <div class="sendGoods_list clearfix" @click="choosePeisong()">
  178. <div class="ti pull-left">配送商</div>
  179. <div class="pull-right">{{peisongShowName ? peisongShowName : '请选择'}}<img src="/images/mobile/user/icon-right.png"/></div>
  180. </div>
  181. <div class="sendGoods_list clearfix">
  182. <div class="ti pull-left">运单号</div>
  183. <div class="pull-right"><input type="number" placeholder="请输入运单号" v-model="sendGoodsInfo.kuaidinumber"/></div>
  184. </div>
  185. <div class="sendGoods_Btn" @click="saveSendGoods()">
  186. 确定
  187. </div>
  188. </div>
  189. </div>
  190. <!-- /end 发货弹窗 -->
  191. <!-- 选择配送商 -->
  192. <div class="mobile-modal" v-if="peisongShow">
  193. <div class="peisong_Alert">
  194. <div class="com-mobile-header" >
  195. <a @click="peisongShow = false"><i class="iconfont icon-fanhui"></i></a>
  196. <p>选择配送商
  197. </p>
  198. </div>
  199. <div class="search-content">
  200. <input type="text" v-model="seekKeyword" placeholder="请输入您要查找的配送商" @keyup.13="searchSeek" ref="searchSeekInput" @focus="inputGetFocus()" @blur="blur()">
  201. <span @click="searchSeek" >
  202. <i class="iconfont icon-sousuo"></i>
  203. </span>
  204. </div>
  205. <ul>
  206. <li class="clearfix" v-for="(item, index) in peisongList" @click="selectPeisong(index, item)">
  207. <div class="name pull-left">{{item.companyName}}</div>
  208. <div class="pull-right target" :class="peisongChooseIndex === index ? 'active' : ''"></div>
  209. </li>
  210. </ul>
  211. <div @click="savePeisongChoose()" class="sendGoods_Btn">保存</div>
  212. </div>
  213. </div>
  214. <!-- /end 选择配送商 -->
  215. <!-- 删除订单 -->
  216. <!-- 删除提示框 -->
  217. <div class="deleteKuang" v-if="showDeleteAlert" @touchmove="preventTouchMove($event)">
  218. <div class="kuangContent">
  219. <div class="title">删除信息</div>
  220. <div class="titleinfo">是否删除此订单</div>
  221. <!--<div class="info" v-show="isUploadpro">*存在已上架信息</div>-->
  222. <div class="K_btn">
  223. <div class="cancelBtn" @click="showDeleteAlert = false">取消</div>
  224. <div class="answerBtn" @click="deleteFn()">确定</div>
  225. </div>
  226. </div>
  227. </div>
  228. <!-- /end 删除订单 -->
  229. <!-- 取消订单原因弹窗 -->
  230. <div class="mobile-modal" v-if="showBuyerAlert" @touchmove="preventTouchMove($event)">
  231. <div class="cancelOrder">
  232. <div class="sendGoods_title">取消订单<span><i class="iconfont icon-guanbi1" @click="showBuyerAlert = false"></i></span></div>
  233. <div class="cancelOrder_title">请选择取消订单的原因(必选):</div>
  234. <ul>
  235. <li v-for="(item, index) in cancelList" class="clearfix" @click="ChooseOrderCancel(item, index)">
  236. <div class="target pull-left" :class="index === OrderCancelIndex ? 'active' : ''"></div>
  237. <div class="name pull-left">{{item}}</div>
  238. </li>
  239. </ul>
  240. <div @click="cancenFn()" class="sendGoods_Btn">确定</div>
  241. </div>
  242. </div>
  243. <!-- /end 取消订单原因弹窗 -->
  244. <!-- 联系卖买家 -->
  245. <div class="mobile-modal" v-if="showStoreInfo" @touchmove="preventTouchMove($event)">
  246. <div class="mobile-modal-box mobile-link-en">
  247. <div class="mobile-modal-header">联系方式<i @click="showStoreInfo = false" class="icon-guanbi iconfont"></i></div>
  248. <div class="mobile-modal-content">
  249. <div v-if="vendorType === 'buyer'">
  250. <div v-if="checkInfo(cancatInfo.enterprise.enTel)" class="clearfix"><span class="pull-left">电话:</span><a :href="'tel:' + cancatInfo.enterprise.enTel" target="_blank" class="content-line link-url pull-left">{{cancatInfo.enterprise.enTel}}</a></div>
  251. <div v-if="checkInfo(cancatInfo.enterprise.enPhone)" class="clearfix"><span class="pull-left">手机:</span><a :href="'tel:' + cancatInfo.enterprise.enPhone" target="_blank" class="content-line link-url pull-left">{{cancatInfo.enterprise.enPhone}}</a></div>
  252. <div v-if="checkInfo(cancatInfo.enterprise.enWeixin)" class="clearfix"><span class="pull-left">微信:</span><span class="content-line pull-left">{{cancatInfo.enterprise.enWeixin}}</span></div>
  253. <div v-if="checkInfo(cancatInfo.enterprise.enQQ)" class="clearfix"><span class="pull-left">Q&nbsp;Q:</span><span class="content-line pull-left">{{cancatInfo.enterprise.enQQ}}</span></div>
  254. <div v-if="!empty">暂无联系方式</div>
  255. </div>
  256. <div v-else>
  257. <div class="clearfix"><span class="pull-left"></span>抱歉,暂时无法与买家在线沟通!</div>
  258. <div v-if="checkInfo(cancatInfo.entel)" class="clearfix"><span class="pull-left">电话:</span><a :href="'tel:' + cancatInfo.entel" target="_blank" class="content-line link-url pull-left">{{cancatInfo.entel}}</a></div>
  259. </div>
  260. </div>
  261. </div>
  262. </div>
  263. <!-- /联系买卖家 -->
  264. <remind-box :title="collectResult" :timeoutCount="timeoutCount"></remind-box>
  265. <pull-up :fixId="'order-wrapper'"
  266. :searchMore="isSearchSearchingMore"
  267. :allPage="allPage"
  268. :page="page"
  269. @pullUpAction="getMoreSearch"></pull-up>
  270. </div>
  271. </template>
  272. <script>
  273. import { EncryptionFilter } from '~utils/tools.js'
  274. import { RemindBox, PullUp } from '~components/mobile/common'
  275. import axios from '~plugins/axios'
  276. export default {
  277. name: 'order',
  278. layout: 'mobile',
  279. middleware: 'authenticated',
  280. fetch({store, route}) {
  281. return route.query.type === 'buyer' ? Promise.all([
  282. store.dispatch('order/getBuyerOrderList', {
  283. count: 5,
  284. page: 1,
  285. isRate: false,
  286. currentPage: 1,
  287. sorting: { creattime: 'DESC' },
  288. status: '503-504-524-525-505-406-407-403-408-404-405-520-523-522-602-603-315-604-605-606'}
  289. )
  290. ]) : Promise.all([
  291. store.dispatch('order/getSellOrderList', {
  292. count: 5,
  293. page: 1,
  294. sorting: { createtime: 'DESC' },
  295. status: '',
  296. storeType: 'other'}
  297. )
  298. ])
  299. },
  300. data() {
  301. return {
  302. showStoreInfo: false,
  303. isSearchSearchingMore: false,
  304. page: 1,
  305. cancatInfo: {
  306. enterprise: {}
  307. }, // 联系信息
  308. collectResult: '',
  309. timeoutCount: 0,
  310. activeType: '', // 选择类型
  311. orderList: [], // 订单列表
  312. $status: '', // 传参状态
  313. showSend: false, // 是否显示发货弹窗
  314. sendGoodsInfo: { // 发货弹窗对象
  315. area: {}
  316. },
  317. peisongShow: false, // 是否显示配送商选择弹窗
  318. seekKeyword: '',
  319. peisongChooseIndex: 0, // 配送商选择下标
  320. peisongList: [], // 配送商数组
  321. peisongShowName: '', // 选择完后的配送
  322. showDeleteAlert: false, // 是否显示删除订单
  323. sellsendGoodsTime: '', // 卖家发货时间
  324. showBuyerAlert: false, // 买家取消订单原因
  325. cancelList: ['我不想买了', '信息填写有误,重新购买', '先看看样品再下单', '付款遇到问题(如余额不足、超出限额等)', '买错了', '其他原因'], // 取消订单原因数组
  326. $CancenOrderId: '', // 取消订单id
  327. $Orderreason: '', // 取消订单原因
  328. OrderCancelIndex: '', // 取消订单原因下标
  329. keyword: ''
  330. }
  331. },
  332. computed: {
  333. allPage() {
  334. return this.$store.state.order.order.orderList.data.totalPages
  335. },
  336. vendorType() {
  337. return this.$route.query.type
  338. },
  339. getOrderList() {
  340. this.orderList = []
  341. this.orderList = this._initSetParams(this.$store.state.order.order.orderList.data.content)
  342. return this.$store.state.order.order.orderList
  343. },
  344. shopuuid() {
  345. return this.$store.state.option.storeStatus.data
  346. },
  347. empty () {
  348. return this.checkInfo(this.cancatInfo.enterprise.enTel) || this.checkInfo(this.cancatInfo.enterprise.enPhone) || this.checkInfo(this.cancatInfo.enterprise.enWeixin) || this.checkInfo(this.cancatInfo.enterprise.enQQ)
  349. }
  350. },
  351. async asyncData({route}) {
  352. if (route.query.type === 'buyer') {
  353. let { data } = await axios.get(`/trade/tradebasicproperties/get/1054`)
  354. return {
  355. sellsendGoodsTime: parseInt(data.info)
  356. }
  357. }
  358. },
  359. methods: {
  360. // 搜索
  361. searchOrderlist() {
  362. this.page = 1
  363. if (this.$route.query.type !== 'buyer') {
  364. // 卖家中心
  365. this.sellOrderList(this.activeType)
  366. } else {
  367. // 买家中心
  368. this.buyerOrderList(this.activeType)
  369. }
  370. },
  371. // 确认付款
  372. gotoPay(item) {
  373. let id = EncryptionFilter(item.orderid)
  374. this.$router.push(`/mobile/center/user/doPay/${id}`)
  375. },
  376. // 店铺详情页
  377. toShopdetails(item) {
  378. this.$router.push(`/mobile/shop/${item.storeid}`)
  379. },
  380. // 产品详情页
  381. toproductdetails(item) {
  382. this.$router.push(`/mobile/product/${item.batchCode}`)
  383. },
  384. checkInfo: function (str) {
  385. return str && str.trim() !== ''
  386. },
  387. // 联系买卖家
  388. cancatAlert(item) {
  389. this.showStoreInfo = true
  390. if (this.vendorType === 'buyer') {
  391. this.$http.get(`/api/store-service/stores?uuid=${item.storeid}&condition=store_uuid`).then(res => {
  392. this.cancatInfo = res.data
  393. })
  394. } else {
  395. this.$http.get(`/basic/enterprise/${item.buyerenuu}/tels`).then(res => {
  396. this.cancatInfo = res.data.data
  397. })
  398. }
  399. },
  400. getMoreSearch() {
  401. this.page++
  402. this.isSearchSearchingMore = true
  403. let params = {
  404. count: 5,
  405. page: this.page,
  406. sorting: {createtime: 'DESC'},
  407. status: this.$status,
  408. storeType: 'other',
  409. isRate: false,
  410. currentPage: this.page,
  411. keyword: this.keyword
  412. }
  413. if (this.vendorType === 'buyer') {
  414. params.sorting = { creattime: 'DESC' }
  415. }
  416. let url = this.vendorType !== 'buyer' ? '/trade/purchase/status/createtime' : '/trade/order/individual'
  417. this.$http.get(url, {params}).then(res => {
  418. this.isSearchSearchingMore = false
  419. res.data.content = this._initSetParams(res.data.content)
  420. this.orderList = [...this.orderList, ...res.data.content]
  421. })
  422. },
  423. ChangeList(_tp) {
  424. this.keyword = ''
  425. this.activeType = _tp
  426. this.page = 1
  427. if (this.$route.query.type !== 'buyer') {
  428. // 卖家中心
  429. this.sellOrderList(_tp)
  430. } else {
  431. // 买家中心
  432. this.buyerOrderList(_tp)
  433. }
  434. },
  435. // 买家中心订单列表加载数据
  436. buyerOrderList(_tp) {
  437. let status = '503-504-524-525-505-406-407-403-408-404-405-520-523-522-602-603-315-604-605-606'
  438. if (_tp === 'tobeconfirmed') {
  439. status = '503-504-524-525'
  440. } else if (_tp === 'comfirmed') {
  441. status = '505-406-407-403-408'
  442. } else if (_tp === 'inbound') {
  443. status = '404'
  444. }
  445. this.$status = status
  446. this.orderList = []
  447. this.$store.dispatch('order/getBuyerOrderList', {
  448. count: 5,
  449. page: 1,
  450. isRate: false,
  451. currentPage: 1,
  452. sorting: { creattime: 'DESC' },
  453. status: status,
  454. keyword: this.keyword
  455. })
  456. },
  457. // 卖家中心订单列表加载数据
  458. sellOrderList(_tp) {
  459. let status = ''
  460. if (_tp === 'tobeconfirmed') {
  461. status = '501-504-524-525'
  462. } else if (_tp === 'comfirmed') {
  463. status = '502-406'
  464. } else if (_tp === 'inbound') {
  465. status = '404-511'
  466. }
  467. this.peisongShowName = ''
  468. this.sendGoodsInfo.kuaidinumber = ''
  469. this.$status = status
  470. this.orderList = []
  471. this.$store.dispatch('order/getSellOrderList', {
  472. count: 5,
  473. page: 1,
  474. sorting: {createtime: 'DESC'},
  475. status: status,
  476. storeType: 'other',
  477. keyword: this.keyword
  478. })
  479. },
  480. // 是否为分期付款
  481. installmentDetailPaid(item) {
  482. if (!item.installment) return false
  483. let _flag = false
  484. item.installment.installmentDetails.forEach(list => {
  485. if (list.detno === item.installment.currentNo && list.status === 504) {
  486. _flag = true
  487. }
  488. })
  489. return _flag
  490. },
  491. // 发货
  492. sendGoods(item) {
  493. if (!(this.user.data.pwdEnable && this.user.data.haveUserQuestion && this.user.data.emailValidCode === 2)) {
  494. // 等级不够
  495. this.onMind('您的账户安全等级较低,请先在pc端进行信息完善')
  496. return
  497. }
  498. this.$http.get(`/trade/bankInfo/vender/enterprise?status=104&type=sup`).then(res => {
  499. if (res.data && res.data[0]) {
  500. this.$http.get(`/trade/address/enterprise?ship=false`).then(res => {
  501. // 选择发货地址
  502. if (res.data[0]) {
  503. this.sendGoodstype = 'add'
  504. if (item.inid) {
  505. this._id = EncryptionFilter(item.inid)
  506. this.$http.get(`/trade/inFpu/tobeshipped/${this._id}`).then(res => {
  507. this.sendGoodsInfo = res.data[0]
  508. this.sendGoodsInfo.area = JSON.parse(res.data[0].jsonSpAddress)
  509. this.showSend = true
  510. })
  511. } else {
  512. this.$http.get(`/trade/purchase/vendor/tobeshiped/${item.id}`).then(res => {
  513. this._id = EncryptionFilter(res.data.inId)
  514. this.$http.get(`/trade/inFpu/tobeshipped/${this._id}`).then(res => {
  515. this.sendGoodsInfo = res.data[0]
  516. this.sendGoodsInfo.area = JSON.parse(res.data[0].jsonSpAddress)
  517. this.showSend = true
  518. })
  519. }, err => {
  520. this.onMind('转出货单失败' + err.response.data)
  521. })
  522. }
  523. } else {
  524. this.onMind('您还未填写设置发货地址 ,请进行完善')
  525. }
  526. })
  527. } else {
  528. this.onMind('您还未填写收款账户信息 ,请进行完善')
  529. }
  530. })
  531. },
  532. // 选择配送商
  533. choosePeisong() {
  534. this.seekKeyword = ''
  535. if (this.peisongList.length > 0) {
  536. this.peisongList = this.AllpeisongList.slice()
  537. this.peisongShow = true
  538. return
  539. }
  540. this.$http.get('/trade/distributor/selected').then(res => {
  541. this.AllpeisongList = res.data
  542. this.peisongList = res.data
  543. this.peisongList.splice(0, 0, {
  544. companyName: '请选择配送商'
  545. })
  546. this.peisongShow = true
  547. })
  548. },
  549. // 配送商列表选择
  550. selectPeisong(index, item) {
  551. this.peisongChooseIndex = index
  552. this.peisongChooseItem = item
  553. },
  554. // 确定选择当前配送商
  555. savePeisongChoose() {
  556. this.peisongShow = false
  557. this.peisongShowName = this.peisongChooseItem.companyName === '请选择配送商' ? '' : this.peisongChooseItem.companyName
  558. },
  559. // 发货最终步骤
  560. saveSendGoods() {
  561. // 发货
  562. if (this.sendGoodstype === 'add') {
  563. let patt = new RegExp('^[A-Za-z0-9]+$')
  564. if (this.peisongShowName === '') {
  565. this.onMind('请选择配送商')
  566. } else if (!this.sendGoodsInfo.kuaidinumber) {
  567. this.onMind('请填写物流单号')
  568. } else if (!patt.test(this.sendGoodsInfo.kuaidinumber)) {
  569. this.onMind('请输入正确的物流单号')
  570. } else {
  571. let sendInfo = this.getLogisticsInfo()
  572. this.$http.post(`/trade/inFpu/save?id=${this.sendGoodsInfo.id}`, sendInfo).then(res => {
  573. if (res.data.success) {
  574. this.onMind('发货成功')
  575. setTimeout(() => {
  576. this.ChangeList(this.activeType)
  577. this.showSend = false
  578. this.peisongChooseIndex = 0
  579. this.peisongChooseItem = {companyName: '请选择配送商'}
  580. }, 1500)
  581. }
  582. })
  583. }
  584. } else if (this.sendGoodstype === 'change') {
  585. // 修改物流
  586. let sendInfo = this.getLogisticsInfo('change')
  587. let patt = new RegExp('^[A-Za-z0-9]+$')
  588. if (!this.sendGoodsInfo.lgtId) {
  589. // 如果快递公司 以及 快递编号为空
  590. if (!this.peisongShowName && !this.sendGoodsInfo.kuaidinumber) {
  591. this.showSend = false
  592. return
  593. }
  594. // 如果快递公司为空
  595. if (!this.peisongShowName && this.sendGoodsInfo.kuaidinumber) {
  596. this.onMind('请选择配送商')
  597. return
  598. } else if (!this.sendGoodsInfo.kuaidinumber) {
  599. this.onMind('请填写物流单号')
  600. return
  601. } else if (!patt.test(this.sendGoodsInfo.kuaidinumber)) {
  602. this.onMind('请输入正确的物流单号')
  603. return
  604. }
  605. // 没有物流信息则添加物流信息
  606. this.$http.post(`/trade/logistics/add?inid=${this.sendGoodsInfo.inid}`, sendInfo).then(res => {
  607. if (res.data.success) {
  608. this.onMind('物流信息保存成功')
  609. setTimeout(() => {
  610. this.ChangeList(this.activeType)
  611. this.peisongChooseIndex = 0
  612. this.peisongChooseItem = {companyName: '请选择配送商'}
  613. this.showSend = false
  614. }, 1500)
  615. }
  616. })
  617. } else {
  618. if (this.ChangeInfoObj.number === this.sendGoodsInfo.kuaidinumber && this.peisongShowName === this.ChangeInfoObj.peisongShowName) {
  619. this.showSend = false
  620. return
  621. }
  622. if (this.peisongShowName !== '' || this.sendGoodsInfo.kuaidinumber !== '') {
  623. // 如果用户未做任何信息修改
  624. if (!this.peisongShowName) {
  625. this.onMind('请选择配送商')
  626. return
  627. } else if (!this.sendGoodsInfo.kuaidinumber) {
  628. this.onMind('请填写物流单号')
  629. return
  630. } else if (!patt.test(this.sendGoodsInfo.kuaidinumber)) {
  631. this.onMind('请输入正确的物流单号')
  632. return
  633. }
  634. this.$http.post(`/trade/logistics/${this.sendGoodsInfo.lgtId}?invoiceFuid=${this.sendGoodsInfo.inid}`, sendInfo).then(res => {
  635. if (res.data.success) {
  636. this.onMind('修改物流信息成功')
  637. setTimeout(() => {
  638. this.ChangeList(this.activeType)
  639. this.peisongChooseIndex = 0
  640. this.peisongChooseItem = {companyName: '请选择配送商'}
  641. this.showSend = false
  642. }, 1500)
  643. }
  644. })
  645. } else {
  646. if (this.sendGoodsInfo.sendType !== 1301) {
  647. // 如果清空了物流信息
  648. this.$http.put(`/trade/logistics/clear?inid=${this.sendGoodsInfo.inid}`).then(res => {
  649. if (res.data.success) {
  650. this.onMind('修改物流信息成功')
  651. setTimeout(() => {
  652. this.ChangeList(this.activeType)
  653. this.peisongChooseIndex = 0
  654. this.peisongChooseItem = {companyName: '请选择配送商'}
  655. this.showSend = false
  656. }, 1500)
  657. }
  658. })
  659. }
  660. }
  661. }
  662. }
  663. },
  664. // 买家取消订单
  665. cancelOrder(item) {
  666. this.$CancenOrderId = item.orderid
  667. this.showBuyerAlert = true
  668. },
  669. // 买家取消订单原因选择
  670. ChooseOrderCancel(item, index) {
  671. this.OrderCancelIndex = index
  672. this.$Orderreason = item
  673. },
  674. // 买家提醒卖家发货
  675. paidTime(item) {
  676. item = this.baseUtils.deepCopy(item)
  677. if (this._getHoursFromNow(item.paytime) < this.sellsendGoodsTime) {
  678. this.onMind('距离付款的时间还不到' + this.sellsendGoodsTime + '小时,不能提醒发货')
  679. return
  680. }
  681. if (this._getHoursFromNow(item.lastNotifyDeliveryTime) < this.sellsendGoodsTime && this._getHoursFromNow(item.lastNotifyDeliveryTime) !== 0) {
  682. this.onMind('距离上次付款的时间还不到' + this.sellsendGoodsTime + '小时,不能提醒发货')
  683. return
  684. }
  685. this.$http.post(`/trade/message/order/${item.id}`).then(res => {
  686. let returnResult = res.data
  687. if (returnResult.status === 505 || returnResult.status === 406 || returnResult.status === 407 || returnResult.status === 403 || returnResult.status === 408) {
  688. this.onMind('提醒成功')
  689. this.ChangeList(this.activeType)
  690. } else {
  691. this.onMind('提醒发货失败:' + returnResult.message)
  692. }
  693. })
  694. },
  695. // 取消订单确认事件
  696. cancenFn() {
  697. if (!this.$Orderreason || this.$Orderreason === '') {
  698. this.onMind('请选择取消订单的原因')
  699. } else {
  700. let reason = {
  701. reason: this.$Orderreason
  702. }
  703. this.$http.put(`/trade/order/simpleinfo/ones/${this.$CancenOrderId}/release`, reason).then(res => {
  704. this.onMind('取消订单成功,等待买家确认')
  705. this.$Orderreason = '我不想买了'
  706. this.OrderCancelIndex = 0
  707. this.ChangeList(this.activeType)
  708. this.showBuyerAlert = false
  709. })
  710. }
  711. },
  712. // 删除订单弹窗
  713. deleteOrder(item) {
  714. this.sendGoodsInfo = this.baseUtils.deepCopy(item)
  715. this.showDeleteAlert = true
  716. },
  717. // 删除订单确定按钮
  718. deleteFn() {
  719. if (this.$route.query.type !== 'buyer') {
  720. this.$http.post(`/trade/purchase/used/${this.sendGoodsInfo.purchaseid}`).then(res => {
  721. this.ChangeList(this.activeType)
  722. this.showDeleteAlert = false
  723. this.onMind('删除成功')
  724. })
  725. } else {
  726. this.$http.post(`/trade/order/used/${this.sendGoodsInfo.orderid}`).then(res => {
  727. this.ChangeList(this.activeType)
  728. this.showDeleteAlert = false
  729. this.onMind('删除成功')
  730. })
  731. }
  732. },
  733. // 修改物流
  734. changelogistics(item) {
  735. this.sendGoodstype = 'change'
  736. this.peisongShowName = ''
  737. this.sendGoodsInfo.kuaidinumber = ''
  738. let _obj = this.baseUtils.deepCopy(item)
  739. if (!item.lgtId) {
  740. // 如果没有订单编号
  741. this.sendGoodsInfo = _obj
  742. this.sendGoodsInfo.area = JSON.parse(_obj.jsonSdAddress)
  743. this.showSend = true
  744. this.ChangeInfoObj = {
  745. number: '',
  746. peisongShowName: ''
  747. }
  748. } else {
  749. this.$http.get(`/trade/logistics/${_obj.lgtId}`).then(res => {
  750. this.sendGoodsInfo = _obj
  751. this.sendGoodsInfo.area = JSON.parse(_obj.jsonSdAddress)
  752. this.sendGoodsInfo.kuaidinumber = res.data.number
  753. this.peisongShowName = res.data.companyName
  754. this.ChangeInfoObj = {
  755. number: res.data.number,
  756. peisongShowName: res.data.companyName
  757. }
  758. this.showSend = true
  759. })
  760. }
  761. },
  762. // 搜索
  763. searchSeek() {
  764. let _arr = this.AllpeisongList.slice()
  765. let addrPatt = /^[\u4e00-\u9fa5]+$/
  766. if (addrPatt.test(this.seekKeyword) && this.seekKeyword.length > 0) {
  767. this.peisongList = []
  768. this.peisongList = _arr.filter((data) => {
  769. if (data.companyName.indexOf(this.seekKeyword) >= 0) {
  770. return data
  771. }
  772. })
  773. this.peisongList.splice(0, 0, {
  774. companyName: '请选择配送商'
  775. })
  776. } else if (this.seekKeyword === '' || !this.seekKeyword) {
  777. this.peisongList = _arr
  778. }
  779. this.peisongChooseIndex = 0
  780. this.peisongChooseItem = {companyName: '请选择配送商'}
  781. },
  782. // 获取物流提交信息
  783. getLogisticsInfo(_type) {
  784. let sendInfo = {}
  785. sendInfo.sendType = this.sendGoodsInfo.sendType
  786. sendInfo.jsonSdAddress = this.sendGoodsInfo.jsonSpAddress
  787. sendInfo.logisticsInfo = {}
  788. if (this.peisongShowName) {
  789. sendInfo.logisticsInfo.companyName = this.peisongShowName
  790. }
  791. if (this.sendGoodsInfo.kuaidinumber) {
  792. sendInfo.logisticsInfo.number = this.sendGoodsInfo.kuaidinumber
  793. }
  794. return _type ? sendInfo.logisticsInfo : sendInfo
  795. },
  796. // 查看物流信息
  797. lookLogisticsInfo(item) {
  798. let id = item.purchaseid || item.orderid
  799. this.$router.push(`/mobile/order/logistics?uuid=${EncryptionFilter(id)}&type=${this.vendorType}`)
  800. },
  801. // 查看订单详情
  802. lookOrderDetail(item) {
  803. let id = EncryptionFilter(item.purchaseid)
  804. if (this.vendorType === 'buyer') {
  805. id = EncryptionFilter(item.orderid)
  806. }
  807. console.log(`/mobile/order/details?uuid=${id}&type=${this.vendorType}&paytype=${item.paytype}`)
  808. this.$router.push(`/mobile/order/details?uuid=${id}&type=${this.vendorType}&paytype=${item.paytype}`)
  809. },
  810. // 买家确认收货
  811. buyerGetGoods(item) {
  812. this.$http.put(`/trade/order/simpleinfo/ones/${item.id}?_status=ensureaccept`).then(res => {
  813. this.onMind('确认收货成功')
  814. this.ChangeList(this.activeType)
  815. })
  816. },
  817. // 买卖家中心字段同步化
  818. _initSetParams(_obj) {
  819. _obj = this.baseUtils.deepCopy(_obj)
  820. for (let i = 0; i < _obj.length; i++) {
  821. if (!_obj[i].purchaseDetails) {
  822. _obj[i].purchaseDetails = _obj[i].orderDetails
  823. }
  824. if (_obj[i].status === 505 || _obj[i].status === 406 || _obj[i].status === 407 || _obj[i].status === 403 || _obj[i].status === 408) {
  825. // _obj[i].paidTimeFromNow = this._getHoursFromNow(_obj[i].paytime)
  826. // _obj[i].lastNotiDelivery = this._getHoursFromNow(_obj[i].lastNotifyDeliveryTime)
  827. }
  828. _obj[i].showItem = _obj[i].purchaseDetails.length > 3 ? 3 : _obj[i].purchaseDetails.length
  829. }
  830. return _obj
  831. },
  832. // 传入时间,计算距离现在的时间是多少小时了
  833. _getHoursFromNow(time) {
  834. if (!time) {
  835. return 0
  836. }
  837. let newTime = new Date()
  838. let msec = newTime.getTime() - time
  839. let hours = parseInt(parseInt(msec) / (1000 * 60 * 60))
  840. console.log(hours)
  841. return hours
  842. },
  843. onMind(str) {
  844. this.collectResult = str
  845. this.timeoutCount++
  846. },
  847. blur: function() {
  848. setTimeout(() => {
  849. this.$store.dispatch('mobile/SetInputGetFocus', false)
  850. }, 300)
  851. },
  852. inputGetFocus: function() {
  853. setTimeout(() => {
  854. this.$store.dispatch('mobile/SetInputGetFocus', true)
  855. }, 300)
  856. }
  857. },
  858. filters: {
  859. priceFiter(val) {
  860. if (!val) return '0.00'
  861. return val.toFixed(2)
  862. },
  863. time: function (time) {
  864. if (typeof time === 'number') {
  865. if (!time) {
  866. return '无'
  867. } else {
  868. let d = new Date(time)
  869. let year = d.getFullYear()
  870. let month = d.getMonth() + 1
  871. let day = d.getDate() < 10 ? '0' + d.getDate() : '' + d.getDate()
  872. return year + '-' + month + '-' + day
  873. }
  874. }
  875. }
  876. },
  877. components: {
  878. RemindBox,
  879. PullUp
  880. }
  881. }
  882. </script>
  883. <style scoped lang="scss">
  884. @mixin overFlowHidden {
  885. overflow: hidden;
  886. text-overflow: ellipsis;
  887. white-space: nowrap;
  888. }
  889. @mixin lineHeight($value) {
  890. height: $value;
  891. line-height: $value;
  892. }
  893. .order-wrapper {
  894. background: #f1f3f6;
  895. margin: 1.26rem 0 0.98rem 0;
  896. height: calc(100vh - 1.26rem - 0.98rem);
  897. /*padding-bottom: 0.96rem;*/
  898. .order-nav {
  899. background: #fff;
  900. div {
  901. height: 0.82rem;
  902. line-height: 0.82rem;
  903. display: inline-block;
  904. width: 25%;
  905. text-align: center;
  906. font-size: .28rem;
  907. color: #666;
  908. &.active span{
  909. color: #3f84f6;
  910. border-bottom: 0.04rem solid #3f84f6;
  911. padding-bottom: 0.2rem;
  912. }
  913. }
  914. }
  915. .search-content2 {
  916. text-align: center;
  917. padding: .25rem 0 0 0;
  918. margin-top: 0 !important;
  919. input {
  920. width: 7.1rem;
  921. border: 1px solid #376ff3;
  922. }
  923. span {
  924. height: .46rem;
  925. line-height: .46rem;
  926. }
  927. }
  928. .order-list-wrap {
  929. height: calc(100vh - 1.26rem - 0.96rem - 0.84rem - 1rem);
  930. overflow-y: scroll;
  931. li {
  932. margin-bottom: 0.2rem;
  933. }
  934. .list-wrap-title{
  935. padding: 0 0.2rem;
  936. background: #fff;
  937. @include lineHeight(0.67rem);
  938. font-size: 0.28rem;
  939. color: #333;
  940. border-bottom: 1px solid #e4e4e4;
  941. .pull-left {
  942. width: 5rem;
  943. @include overFlowHidden();
  944. span {
  945. max-width: 3rem;
  946. @include overFlowHidden();
  947. display: inline-block;
  948. }
  949. img {
  950. width: 0.18rem;
  951. height: 0.32rem;
  952. vertical-align: top;
  953. margin-top: 0.18rem;
  954. margin-left: 0.1rem;
  955. }
  956. }
  957. .pull-right {
  958. .red {
  959. color: #f21c1c;
  960. }
  961. }
  962. }
  963. .list-wrap-content {
  964. background: #f9f9f8;
  965. padding: 0.3rem 0.2rem;
  966. padding-right: 0.32rem;
  967. border-bottom: 1px solid #e4e4e4;
  968. .list-item {
  969. font-size: 0.28rem;
  970. color: #333;
  971. /*line-height: 0.5rem;*/
  972. margin-top: 0.22rem;
  973. &:nth-child(1) {
  974. margin-top: 0px;
  975. }
  976. .list-wrap-content-brand {
  977. @include overFlowHidden();
  978. .spec {
  979. width: 3.1rem;
  980. @include overFlowHidden();
  981. margin-right: 0.2rem;
  982. &.noMargin {
  983. margin-right: 0;
  984. width: 1.5rem;
  985. }
  986. }
  987. }
  988. .name {
  989. color: #666;
  990. }
  991. .lab {
  992. color: #999;
  993. font-size: 0.24rem;
  994. max-width: 2.1rem;
  995. @include overFlowHidden();
  996. span {
  997. font-size: 0.16rem;
  998. }
  999. }
  1000. .pri {
  1001. font-size: 0.28rem;
  1002. color: #f43938;
  1003. @include overFlowHidden();
  1004. width: 2.4rem;
  1005. }
  1006. }
  1007. }
  1008. .orderNumber {
  1009. font-size: 0.27rem;
  1010. color: #666;
  1011. border-bottom: 1px solid #e4e4e4;
  1012. @include lineHeight(0.88rem);
  1013. background: #fff;
  1014. padding: 0 0.2rem;
  1015. .pull-left {
  1016. width: 5rem;
  1017. @include overFlowHidden();
  1018. span {
  1019. color: #3f84f6
  1020. }
  1021. }
  1022. }
  1023. .list-all-info{
  1024. text-align: right;
  1025. background: #fff;
  1026. padding: 0 0.2rem;
  1027. @include overFlowHidden();
  1028. line-height: 0.66rem;
  1029. font-size: 0.26rem;
  1030. color: #333;
  1031. border-bottom: 1px solid #e4e4e4;
  1032. .pri {
  1033. font-size: 0.32rem;
  1034. color: #f43938;
  1035. }
  1036. .red {
  1037. color: #f43938;
  1038. font-size: 0.24rem;
  1039. }
  1040. .lab {
  1041. color: #999;
  1042. font-size: 0.24rem;
  1043. }
  1044. }
  1045. .list-btn {
  1046. background: #fff;
  1047. @include lineHeight(0.8rem);
  1048. padding: 0 0.2rem;
  1049. div {
  1050. display: inline-block;
  1051. width: 1.5rem;
  1052. @include lineHeight(0.56rem);
  1053. border: 1px solid #333;
  1054. font-size: 0.26rem;
  1055. color: #333;
  1056. text-align: center;
  1057. margin-top: 0.11rem;
  1058. margin-left: 0.2rem;
  1059. border-radius: 3px;
  1060. &.sendGoods {
  1061. color: #f43938;
  1062. border: 1px solid #f43938;
  1063. }
  1064. &.cancat {
  1065. height: 0.56rem;
  1066. line-height: 0.56rem;
  1067. border: 1px solid #3f84f6;
  1068. color: #3f84f6;
  1069. font-size: 0.26rem;
  1070. text-align: center;
  1071. border-radius: 3px;
  1072. padding: 0 0.1rem;
  1073. overflow: hidden;
  1074. width: auto;
  1075. i {
  1076. font-size: 0.26rem;
  1077. }
  1078. }
  1079. }
  1080. }
  1081. .lookMorePro {
  1082. background: #fff;
  1083. font-size: 0.28rem;
  1084. color: #999;
  1085. text-align: center;
  1086. border-bottom: 1px solid #e4e4e4;
  1087. @include lineHeight(0.67rem);
  1088. img {
  1089. transform: rotate(90deg);
  1090. width: 0.16rem;
  1091. height: 0.26rem;
  1092. vertical-align: top;
  1093. margin-top: 0.23rem;
  1094. margin-left: 0.1rem;
  1095. }
  1096. }
  1097. }
  1098. .sendGoods_Alert {
  1099. background: #fff;
  1100. position: fixed;
  1101. bottom: 0.98rem;
  1102. left: 0;
  1103. width: 100%;
  1104. border-top-left-radius: 5px;
  1105. border-top-right-radius: 5px;
  1106. overflow: hidden;
  1107. .sendGoods_title {
  1108. color: #333;
  1109. font-size: 0.42rem;
  1110. text-align: center;
  1111. line-height: 1rem;
  1112. font-weight: 600;
  1113. position: relative;
  1114. i {
  1115. position: absolute;
  1116. font-size: 16px;
  1117. right: 0.2rem;
  1118. }
  1119. }
  1120. .sendGoods_buyer {
  1121. padding: 0.3rem 0.2rem;
  1122. border-bottom: 1px solid #d9d9d9;
  1123. border-top: 1px solid #d9d9d9;
  1124. .sendGoods_buyer_top {
  1125. color: #333;
  1126. font-size: 0.3rem;
  1127. font-weight: bold;
  1128. .name {
  1129. margin-right: 0.3rem;
  1130. margin-left: 0.32rem;
  1131. }
  1132. }
  1133. .sendGoods_buyer_bottom {
  1134. color: #333;
  1135. font-size: 0.26rem;
  1136. margin-top: 0.2rem;
  1137. img {
  1138. width: 0.22rem;
  1139. height: 0.29rem;
  1140. margin-right: 0.1rem;
  1141. margin-top: -0.1rem;
  1142. }
  1143. }
  1144. }
  1145. .sendGoods_list {
  1146. padding: 0 0.2rem;
  1147. @include lineHeight(0.8rem);
  1148. border-bottom: 1px solid #d9d9d9;
  1149. font-size: 0.32rem;
  1150. color: #333;
  1151. /*.ti {*/
  1152. /*font-weight: bold;*/
  1153. /*}*/
  1154. .pull-right {
  1155. font-size: 0.28rem;
  1156. color: #999;
  1157. img {
  1158. width: 0.14rem;
  1159. height: 0.24rem;
  1160. vertical-align: middle;
  1161. margin-top: -0.02rem;
  1162. margin-left: 0.1rem;
  1163. }
  1164. }
  1165. input {
  1166. width: 4rem;
  1167. text-align: right;
  1168. color: #333;
  1169. }
  1170. }
  1171. .sendGoods_Btn {
  1172. @include lineHeight(1rem);
  1173. text-align: center;
  1174. color: #fff;
  1175. font-size: 0.36rem;
  1176. background: #3f84f6;
  1177. }
  1178. }
  1179. .search-content {
  1180. margin-top: 0.88rem;
  1181. margin-bottom: 0.2rem;
  1182. text-align: center;
  1183. padding: .25rem 0 0 0;
  1184. input {
  1185. border: 1px solid #376ff3;
  1186. }
  1187. span {
  1188. height: .46rem;
  1189. line-height: .46rem;
  1190. }
  1191. }
  1192. .peisong_Alert {
  1193. background: #f1f3f6;
  1194. position: fixed;
  1195. bottom: 0.98rem;
  1196. left: 0;
  1197. right: 0;
  1198. top: 0;
  1199. z-index: 11111;
  1200. ul {
  1201. height: calc(100vh - 1.2rem - 1.7rem - 1rem);
  1202. overflow-y: scroll;
  1203. li {
  1204. line-height: 1rem;
  1205. background: #fff;
  1206. padding: 0 0.2rem;
  1207. font-size: 0.28rem;
  1208. color: #333;
  1209. border-bottom: 1px solid #e0e1e2;
  1210. div.name {
  1211. @include overFlowHidden();
  1212. }
  1213. div.target {
  1214. width: 0.36rem;
  1215. height: 0.36rem;
  1216. border-radius: 50%;
  1217. overflow: hidden;
  1218. border: 1px solid #a4a4a4;
  1219. margin-top: 0.3rem;
  1220. &.active {
  1221. background-image: url('/images/order/getChoose_icon.png');
  1222. background-size: 100% 100%;
  1223. border: 0px;
  1224. }
  1225. }
  1226. }
  1227. }
  1228. .sendGoods_Btn {
  1229. @include lineHeight(1rem);
  1230. text-align: center;
  1231. color: #fff;
  1232. font-size: 0.36rem;
  1233. background: #3f84f6;
  1234. }
  1235. }
  1236. .deleteKuang {
  1237. position: fixed;
  1238. background: rgba(0,0,0,0.5);
  1239. top: 0;
  1240. left: 0;
  1241. right: 0;
  1242. bottom: 0;
  1243. z-index: 9999;
  1244. .kuangContent {
  1245. border-radius: 5px;
  1246. background: #fff;
  1247. width: 5rem;
  1248. position: absolute;
  1249. left: 50%;
  1250. top: 50%;
  1251. transform: translate3d(-50%, -50%, 0);
  1252. overflow: hidden;
  1253. .titleinfo {
  1254. font-size: .3rem;
  1255. color: #666;
  1256. text-align: center;
  1257. margin-top: 0.5rem;
  1258. margin-bottom: 0.1rem;
  1259. }
  1260. .title {
  1261. background: #5078cb;
  1262. height: .7rem;
  1263. line-height: .7rem;
  1264. font-size: .3rem;
  1265. color: #fff;
  1266. text-align: center;
  1267. }
  1268. .info {
  1269. color: #f00;
  1270. text-align: center;
  1271. }
  1272. .K_btn {
  1273. margin-top: 0.4rem;
  1274. line-height: 0.7rem;
  1275. height: 0.7rem;
  1276. &::after{
  1277. clear: both;
  1278. display: block;
  1279. content: ' ';
  1280. visibility: hidden;
  1281. zoom: 1;
  1282. }
  1283. div {
  1284. float: left;
  1285. width: 50%;
  1286. font-size: 0.3rem;
  1287. text-align: center;
  1288. &.cancelBtn {
  1289. background: #b4b5b9;
  1290. color: #333;
  1291. }
  1292. &.answerBtn {
  1293. background: #5078cb;
  1294. color: #fff;
  1295. }
  1296. }
  1297. }
  1298. }
  1299. i {
  1300. font-size: .6rem;
  1301. position: absolute;
  1302. right: -0.3rem;
  1303. top: -0.35rem;
  1304. color: #fff;
  1305. &::after{
  1306. position: absolute;
  1307. top: -0.1rem;
  1308. left: -0.1rem;
  1309. right: -0.1rem;
  1310. bottom: -0.1rem;
  1311. content: ' '
  1312. }
  1313. }
  1314. .title {
  1315. background: #3f84f6;
  1316. height: 0.7rem;
  1317. line-height: 0.7rem;
  1318. color: #fff;
  1319. text-align: center;
  1320. font-size: 0.3rem;
  1321. position: relative;
  1322. }
  1323. .Kuang {
  1324. max-height: 10rem;
  1325. width: 6.7rem;
  1326. position: absolute;
  1327. left: 50%;
  1328. top: 50%;
  1329. transform: translate3d(-50%, -50%, 0);
  1330. background: #ececec;
  1331. border-radius: 5px;
  1332. }
  1333. .content {
  1334. overflow-y: scroll;
  1335. max-height: 9.3rem;
  1336. .infob {
  1337. background: #e3edfd;
  1338. padding: 0.2rem;
  1339. .info {
  1340. color: #333;
  1341. font-size: 0.3rem;
  1342. overflow: hidden;
  1343. text-overflow: ellipsis;
  1344. white-space: nowrap;
  1345. margin-bottom: 0.18rem;
  1346. .name {
  1347. color: #666;
  1348. }
  1349. div {
  1350. display: inline-block;
  1351. }
  1352. }
  1353. }
  1354. .content_sq {
  1355. width: 6.4rem;
  1356. margin: 0.1rem auto;
  1357. background: #fff;
  1358. padding: 0.2rem 0rem;
  1359. .list {
  1360. margin-bottom: 0.18rem;
  1361. }
  1362. .fl {
  1363. width: 3.2rem;
  1364. }
  1365. .table {
  1366. width: 4.2rem;
  1367. margin-top: -0.1rem;
  1368. }
  1369. .labelinfo {
  1370. background-image: url('/images/mobile/@2x/labelTop.png');
  1371. background-repeat: no-repeat;
  1372. width: 6.29rem;
  1373. height: 0.64rem;
  1374. line-height: 0.64rem;
  1375. background-size: 100%;
  1376. margin-top: 0rem;
  1377. margin-right: 0rem;
  1378. background-color: rgba(0, 0, 0, 0);
  1379. color: #666;
  1380. }
  1381. }
  1382. }
  1383. }
  1384. .cancelOrder {
  1385. background: #fff;
  1386. position: absolute;
  1387. bottom: 0.98rem;
  1388. left: 0;
  1389. width: 100%;
  1390. border-top-left-radius: 5px;
  1391. border-top-right-radius: 5px;
  1392. overflow: hidden;
  1393. .sendGoods_title {
  1394. color: #333;
  1395. font-size: 0.42rem;
  1396. text-align: center;
  1397. line-height: 1rem;
  1398. font-weight: 600;
  1399. position: relative;
  1400. i {
  1401. position: absolute;
  1402. font-size: 16px;
  1403. right: 0.2rem;
  1404. }
  1405. }
  1406. .cancelOrder_title {
  1407. font-size: 0.36rem;
  1408. color: #333;
  1409. border-bottom: 1px solid #d9d9d9;
  1410. font-weight: bold;
  1411. padding: 0 0.2rem;
  1412. line-height: 0.6rem;
  1413. }
  1414. ul {
  1415. li {
  1416. line-height: 1rem;
  1417. background: #fff;
  1418. padding: 0 0.2rem;
  1419. font-size: 0.32rem;
  1420. color: #333;
  1421. border-bottom: 1px solid #d9d9d9;
  1422. div.name {
  1423. @include overFlowHidden();
  1424. }
  1425. div.target {
  1426. margin-right: 0.2rem;
  1427. width: 0.36rem;
  1428. height: 0.36rem;
  1429. border-radius: 50%;
  1430. overflow: hidden;
  1431. border: 1px solid #a4a4a4;
  1432. margin-top: 0.3rem;
  1433. &.active {
  1434. background-image: url('/images/order/getChoose_icon.png');
  1435. background-size: 100% 100%;
  1436. border: 0px;
  1437. }
  1438. }
  1439. }
  1440. }
  1441. .sendGoods_Btn {
  1442. @include lineHeight(1rem);
  1443. text-align: center;
  1444. color: #fff;
  1445. font-size: 0.36rem;
  1446. background: #3f84f6;
  1447. }
  1448. }
  1449. .labelInfo_ForItem {
  1450. color: #fff;
  1451. font-size: 0.24rem;
  1452. padding: 0.05rem 0.1rem;
  1453. background: #15b262;
  1454. margin-right: 0.1rem;
  1455. border-radius: 3px;
  1456. }
  1457. .com-none-state{
  1458. background: #f1f3f6
  1459. }
  1460. }
  1461. </style>