payrecord.vue 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089
  1. <template>
  2. <view class="center">
  3. <view class="transaction">
  4. <view style='padding-top:10px;' class="c-row">
  5. <view class="title">业务编号</view>
  6. <view class="con-list">
  7. <input v-model='purchaseOrder.businessNumber' placeholder="请输入业务编号"
  8. placeholder-style="font-size: 12px;" disabled name="input"></input>
  9. </view>
  10. </view>
  11. <view class="c-row">
  12. <view class="title">货名</view>
  13. <view class="con-list">
  14. <input v-model='purchaseOrder.goodsName' placeholder="请输入货名,如玉米"
  15. placeholder-style="font-size: 12px;" disabled name="input"></input>
  16. </view>
  17. </view>
  18. <view class="c-row">
  19. <view class="title">收货方</view>
  20. <view class="con-list">
  21. <input v-model='purchaseOrder.consignee' disabled placeholder="请输入收货方名称" placeholder-style="font-size: 12px;"
  22. name="input"></input>
  23. </view>
  24. </view>
  25. <view class="c-row">
  26. <view class="title">货物单价(元/吨)</view>
  27. <view class="con-list">
  28. <input v-model='purchaseOrder.goodsPrice' disabled placeholder="请输入货物单价" placeholder-style="font-size: 12px;"
  29. name="input"></input>
  30. </view>
  31. </view>
  32. <view class="c-row">
  33. <view class="title">运费单价(元/吨)</view>
  34. <view class="con-list">
  35. <input v-model='purchaseOrder.freightUnitPrice' disabled placeholder="请输入运费单价"
  36. placeholder-style="font-size: 12px;" name="input"></input>
  37. </view>
  38. </view>
  39. <view class="c-row">
  40. <view class="title">累计收发</view>
  41. <view class="con-list cumulative-style">
  42. <!-- <input v-model='purchaseOrder.transactionsNumber' disabled name="text"></input> -->
  43. <view>
  44. <text>{{ radTotal.receipt}}</text>
  45. <text class='type send'>发</text>
  46. </view>
  47. <view>
  48. <text>{{ radTotal.delivery}}</text>
  49. <text class='type send'>收</text>
  50. </view>
  51. </view>
  52. </view>
  53. <view class="c-row">
  54. <view class="title">收货地址</view>
  55. <view class="con-list">
  56. <input v-model='purchaseOrder.receivingAddress' disabled placeholder="请输入收货人账号"
  57. placeholder-style="font-size: 12px;" name="input"></input>
  58. </view>
  59. </view>
  60. </view>
  61. <view class="transaction" v-for="(item,index) in purchaseOrder.freightReceivingDispatchingCars">
  62. <view style='padding-top:10px;' class="c-row b-b justify-between">
  63. <view class="title">{{item.carNo}}</view>
  64. <view style='align-items: center;' class="flex">
  65. <text style='color:#878C9C;'>{{item.dispatchingDate}}</text>
  66. <text class='type send' v-if="item.statusFlag==1">发</text>
  67. <text class='type send' v-if="item.statusFlag==2">收</text>
  68. </view>
  69. </view>
  70. <view class="c-row justify-between">
  71. <view style='flex:1;' class="title-black">净重</view>
  72. <view style='align-items: center;flex:2;' class="flex">
  73. <view style='flex:1;text-align:right;'>
  74. <text>{{item.reciveNetWeight}}</text>
  75. <text class='type send'>发</text>
  76. <view class='weightnotes'>查看磅单</view>
  77. </view>
  78. <view style='flex:1;text-align:right;'>
  79. <text>{{item.dispatchNetWeight}}</text>
  80. <text class='type send'>发</text>
  81. <view class='weightnotes'>查看磅单</view>
  82. </view>
  83. </view>
  84. </view>
  85. <view class="c-row">
  86. <view class="title-black">应付贷款</view>
  87. <view class="con-list">
  88. ¥{{item.goodsIngPayable}}
  89. </view>
  90. </view>
  91. <view class="c-row">
  92. <view class="title">已付贷款</view>
  93. <view style='color:#22C572;' class="con-list">
  94. ¥{{item.goodsEdPayable}}
  95. </view>
  96. </view>
  97. <view class="c-row">
  98. <view class="title">贷款扣款</view>
  99. <view class="con-list">
  100. ¥{{item.goodsDeductionAmount}}
  101. </view>
  102. </view>
  103. <view class="c-row">
  104. <view class="title-black">应付运费</view>
  105. <view class="con-list">
  106. ¥{{item.freightIngPayable}}
  107. </view>
  108. </view>
  109. <view class="c-row">
  110. <view class="title">已付运费</view>
  111. <view style='color:#22C572;' class="con-list">
  112. ¥{{item.freightEdPayable}}
  113. </view>
  114. </view>
  115. <view class="c-row">
  116. <view class="title">运费扣款</view>
  117. <view class="con-list">
  118. ¥{{item.freightDeductionAmount}}
  119. </view>
  120. </view>
  121. <view class="c-row flex justify-end">
  122. <view style='flex:1;' class='deductfreight' v-if="!purchaseOrder.freightPayer=='发货方承担'"
  123. @click="freightDeduction(item)">扣运费</view>
  124. <view class="freightAlert-model">
  125. <u-modal v-model="freightAlert" cancel-color="#AFB3BF" confirm-color="#22C572" :show-title="false"
  126. show-cancel-button=true @confirm="confirmFreight(0,item)">
  127. <view class="freightAlert-warp">
  128. <view class="freightAlert-row">
  129. <view class="title">扣运费</view>
  130. <u-icon name="close" class="close" size="20" @click="closeModel"></u-icon>
  131. </view>
  132. <!-- <u-cell-item :arrow="false" title="运输损耗"></u-cell-item> -->
  133. <view class="freightAlert-row2 row">
  134. <view>运输损耗</view>
  135. <view>{{item.reciveNetWeight-item.dispatchNetWeight}}</view>
  136. </view>
  137. <view class="freightAlert-row3 row">
  138. 扣款金额
  139. </view>
  140. <view class="freightAlert-row4">
  141. <u-input v-model="freightDeductionAmount" :type="type" :border="border"
  142. placeholder="请输入扣款金额" class="uview-border" @input="inputWatch" />
  143. <view class="text">
  144. </view>
  145. </view>
  146. <view class="red-tip" v-show="isShowFreightTip">
  147. 扣款金额输入错误/扣款金额不能为空
  148. </view>
  149. </view>
  150. </u-modal>
  151. </view>
  152. <view class='payfreight' style='flex:1;' v-if="!purchaseOrder.freightPayer=='发货方承担'"
  153. @click="payDeduction()">付运费</view>
  154. <view class="freightAlert-model">
  155. <u-modal v-model="payAlert" cancel-color="#AFB3BF" confirm-color="#22C572" :show-title="false"
  156. show-cancel-button=true @confirm="confirmFreight(1,item)">
  157. <view class="freightAlert-warp payAlert">
  158. <view class="freightAlert-row">
  159. <view class="title">付运费</view>
  160. <u-icon name="close" class="close" size="20" @click="closeModel"></u-icon>
  161. </view>
  162. <view class="freightAlert-row3 row">
  163. 应付
  164. </view>
  165. <view class="freightAlert-row4">
  166. <u-input v-model="item.freightIngPayable" :type="type" :border="border"
  167. placeholder="请输入付款金额" class="uview-border" @input="paidInputWatch" />
  168. <view class="text">
  169. </view>
  170. </view>
  171. <view class="red-tip paid-tip" v-show="isShowPaidTip">
  172. 应付金额不能为空/应付运费不能小于已付运费
  173. </view>
  174. <view class="paid">
  175. <view class="">
  176. 已付
  177. </view>
  178. <view>
  179. {{item.freightEdPayable}}元
  180. </view>
  181. </view>
  182. <view class="unpaid">
  183. <view class="">
  184. 未付
  185. </view>
  186. <view>
  187. {{item.freightIngPayable-item.freightEdPayable}}元
  188. </view>
  189. </view>
  190. <view class="freightAlert-row3 row">
  191. 付款金额
  192. </view>
  193. <view class="freightAlert-row4">
  194. <u-input v-model="money" :type="type" :border="border" placeholder="请输入扣款金额"
  195. class="uview-border" @input="payInputWatch($event,item)" />
  196. <view class="text">
  197. </view>
  198. </view>
  199. <view class="red-tip pay-tip" v-show="isShowPayTip">
  200. 付款金额输入错误/付款金额不能超过未付金额/付款金额不能为空
  201. </view>
  202. </view>
  203. </u-modal>
  204. </view>
  205. <view style='flex:1;' class='deductfreight' @click="deductPayment()" v-if="!payfreightCli">扣货款</view>
  206. <view class="freightAlert-model">
  207. <u-modal v-model="deductPaymentAlert" cancel-color="#AFB3BF" confirm-color="#22C572"
  208. :show-title="false" show-cancel-button=true @confirm="confirmeductPayment(item)">
  209. <view class="freightAlert-warp payAlert">
  210. <view class="freightAlert-row">
  211. <view class="title">扣货款</view>
  212. <u-icon name="close" class="close" size="20" @click="closeModel"></u-icon>
  213. </view>
  214. <view class="freightAlert-row3 row">
  215. 扣款金额
  216. </view>
  217. <view class="freightAlert-row4">
  218. <u-input v-model="ductPayment" :type="type" :border="border" placeholder="请输入扣款金额"
  219. class="uview-border" @input="deductPaymentInputWatch($event,item)" />
  220. <view class="text">
  221. </view>
  222. </view>
  223. <view class="red-tip pay-tip" v-show="isShowFreightTip">
  224. 付款金额输入错误/付款金额不能为空
  225. </view>
  226. </view>
  227. </u-modal>
  228. </view>
  229. <view style='flex:1;' class='payfreight' @click="Payment()" v-if="!payfreightCli">付货款</view>
  230. <view class="freightAlert-model">
  231. <u-modal v-model="paymentAlert" cancel-color="#AFB3BF" confirm-color="#22C572" :show-title="false"
  232. show-cancel-button=true @confirm="confirmPayPayment(item)">
  233. <view class="freightAlert-warp payAlert">
  234. <view class="freightAlert-row">
  235. <view class="title">付货款</view>
  236. <u-icon name="close" class="close" size="20" @click="closeModel"></u-icon>
  237. </view>
  238. <view class="freightAlert-row3 row">
  239. 应付
  240. </view>
  241. <view class="freightAlert-row4">
  242. <u-input v-model="item.goodsIngPayable" :type="type" :border="border" disabled
  243. placeholder="请输入付款金额" class="uview-border" @input="paymentInputWatch" />
  244. <view class="text">
  245. </view>
  246. </view>
  247. <view class="red-tip paid-tip" v-show="isShowPaymenMoneyTip">
  248. 应付金额不能为空/应付货款不能小于已付货款
  249. </view>
  250. <view class="paid">
  251. <view class="">
  252. 已付
  253. </view>
  254. <view>
  255. {{item.goodsEdPayable}}元
  256. </view>
  257. </view>
  258. <view class="unpaid">
  259. <view class="">
  260. 未付
  261. </view>
  262. <view>
  263. {{item.goodsIngPayable-item.goodsEdPayable}}元
  264. </view>
  265. </view>
  266. <view class="freightAlert-row3 row">
  267. 付款金额
  268. </view>
  269. <view class="freightAlert-row4">
  270. <u-input v-model="paymenMoney" :type="type" :border="border" placeholder="请输入货款金额"
  271. class="uview-border" @input="payInputWatch($event,item)" />
  272. <view class="text">
  273. </view>
  274. </view>
  275. <view class="red-tip pay-tip" v-show="isShowPayTip">
  276. 付款金额输入错误/付款金额不能超过未付金额/付款金额不能为空
  277. </view>
  278. </view>
  279. </u-modal>
  280. </view>
  281. <view @click='confirmpaygoods(item)' style='flex:2;' class='payfreight' v-if="payfreightCli">确认收货</view>
  282. </view>
  283. </view>
  284. <view class='footer'>
  285. <button class="btn" @click="commit()">添加收货人</button>
  286. </view>
  287. </view>
  288. </template>
  289. <script>
  290. import {
  291. getDetail
  292. } from "./index";
  293. export default {
  294. name: "business",
  295. data() {
  296. return {
  297. freightDeductionAmount: 0,
  298. money: 0,
  299. ductPayment: 0,
  300. paymenMoney: 0,
  301. purchaseOrder: {},
  302. carInfo: [],
  303. radTotal: {
  304. delivery: 0,
  305. receipt: 0
  306. },
  307. type: 'text',
  308. border: false,
  309. payValue: '',
  310. copePayValue: '',
  311. paidValue: '',
  312. freightAlert: false,
  313. payAlert: false,
  314. deductPaymentAlert: false,
  315. paymentAlert: false,
  316. isShowFreightTip: false,
  317. isShowPaidTip: false,
  318. isShowPayTip: false,
  319. isShowPaymenMoneyTip: false,
  320. id: "",
  321. payfreightCli: true
  322. }
  323. },
  324. onShow() {
  325. },
  326. onLoad(options) {
  327. getDetail(options.id, this)
  328. this.id = options.id
  329. this.payfreightCli = this.$store.state.isConfigfreightTransport
  330. },
  331. onPageScroll(e) {
  332. },
  333. //下拉刷新
  334. onPullDownRefresh() {},
  335. onReachBottom() { //上拉触底函数
  336. },
  337. methods: {
  338. confirmpaygoods(item) {debugger
  339. uni.navigateTo({
  340. url: '/pageA/freightTransport/confirmpaygoods?toINfo=' + JSON.stringify(item)
  341. })
  342. },
  343. commit() {
  344. console.log(1111)
  345. uni.navigateTo({
  346. url: '/pageA/freightTransport/addpaygoods?id=' + this.id
  347. })
  348. },
  349. // 清空输入子对象数据
  350. cleanVal(val, val1) {
  351. for (let key in val) {
  352. console.log(key + '---' + val[key])
  353. if (val[key] == val1) {
  354. val[key] == ""
  355. }
  356. }
  357. },
  358. confirmFreight(flag, val) {
  359. if (flag == 1) {
  360. val.money = parseInt(this.money);
  361. }
  362. val.freightDeductionAmount = this.freightDeductionAmount
  363. val.freightIngPayable = parseInt(val.freightIngPayable);
  364. val.flag = flag
  365. this.$api.doRequest('post', 'freightReceivingDispatching/api/paymentAndDeductionfreight', val).then(
  366. res => {
  367. if (res.data.code == 200) {
  368. location.reload()
  369. }
  370. }).catch(res => {
  371. })
  372. },
  373. inputWatch(e) {
  374. let _val = this.checkVal(e, "freight");
  375. if (_val) {
  376. this.isShowFreightTip = true
  377. } else {
  378. this.isShowFreightTip = false
  379. }
  380. },
  381. paidInputWatch(e) {
  382. let _val = this.checkVal(e, "paid");
  383. if (_val) {
  384. this.isShowPaidTip = true
  385. } else {
  386. this.isShowPaidTip = false
  387. }
  388. },
  389. payInputWatch(e, item) {
  390. let _val = this.checkVal(e, "pay", item);
  391. if (_val) {
  392. this.isShowPayTip = true
  393. this.isShowPaymenMoneyTip = true
  394. } else {
  395. this.isShowPayTip = false
  396. this.isShowPaymenMoneyTip = false
  397. }
  398. },
  399. //扣货款输入监听
  400. deductPaymentInputWatch(e, item) {
  401. let _val = this.checkVal(e, "deductPayment", item);
  402. if (_val) {
  403. this.isShowFreightTip = true
  404. } else {
  405. this.isShowFreightTip = false
  406. }
  407. },
  408. // 扣运费
  409. freightDeduction(item) {
  410. this.freightAlert = true;
  411. this.freightDeductionAmount = 0
  412. // this.cleanVal(item,"freightDeductionAmount")
  413. console.log("扣运费")
  414. },
  415. // 付运费
  416. payDeduction() {
  417. console.log("付运费")
  418. this.payAlert = true
  419. },
  420. deductPayment() {
  421. console.log("扣货款")
  422. this.deductPaymentAlert = true
  423. },
  424. Payment() {
  425. console.log("付货款")
  426. this.paymentAlert = true
  427. },
  428. confirmPayPayment() {
  429. console.log("付货款提交")
  430. },
  431. //判断输入值
  432. checkVal(e, state, item) {
  433. console.log(e)
  434. let _val;
  435. let _val1 = this.utils.isEmpty(e)
  436. let _val2 = this.utils.isTwoPoint(e)
  437. let _val3 = !this.utils.isNumber(e)
  438. _val = _val1 || _val2 || _val3
  439. switch (state) {
  440. //扣运费
  441. case "freight":
  442. break;
  443. // 应付
  444. case "paid":
  445. break;
  446. case "deductPayment":
  447. break;
  448. // 付款金额
  449. case "pay":
  450. if (parseInt(e) > item.freightIngPayable - item.freightEdPayable) {
  451. _val = true
  452. }
  453. break;
  454. }
  455. return _val
  456. },
  457. closeModel() {
  458. this.freightAlert = false;
  459. this.payAlert = false;
  460. this.ductPaymentAlert = false;
  461. this.paymentAlert = false;
  462. },
  463. confirmeductPayment(val) {
  464. console.log(val)
  465. val.goodsDeductionAmount = parseInt(this.ductPayment);
  466. this.$api.doRequest('post', 'freightReceivingDispatching/api/PaymentDeduction', val).then(
  467. res => {
  468. if (res.data.code == 200) {
  469. uni.showToast({
  470. title: "扣款成功!",
  471. icon: 'none',
  472. duration: 2000
  473. })
  474. location.reload()
  475. } else {
  476. uni.showToast({
  477. title: "扣款失败!",
  478. icon: 'none',
  479. duration: 2000
  480. })
  481. this.ductPayment = 0
  482. }
  483. }).catch(res => {
  484. })
  485. }
  486. }
  487. }
  488. </script>
  489. <style lang='scss'>
  490. page,
  491. .content {
  492. background: #F5F6FA;
  493. }
  494. .c-row {
  495. display: -webkit-box;
  496. display: -webkit-flex;
  497. display: flex;
  498. -webkit-box-align: center;
  499. -webkit-align-items: center;
  500. align-items: center;
  501. padding: 10rpx 30rpx;
  502. position: relative;
  503. .title {
  504. color: #9698A2;
  505. }
  506. .title-black {
  507. color: #333;
  508. }
  509. }
  510. .con-list {
  511. -webkit-box-flex: 1;
  512. -webkit-flex: 1;
  513. flex: 1;
  514. display: -webkit-box;
  515. display: -webkit-flex;
  516. display: flex;
  517. -webkit-box-orient: vertical;
  518. -webkit-box-direction: normal;
  519. -webkit-flex-direction: column;
  520. flex-direction: column;
  521. color: #303133;
  522. line-height: 40rpx;
  523. text-align: right;
  524. padding-right: 20rpx;
  525. font-size: 12px;
  526. }
  527. .transaction {
  528. background-color: #FFFFFF;
  529. margin: 10px;
  530. padding-bottom: 10px;
  531. border-radius: 20px;
  532. .type {
  533. display: inline-block;
  534. font-size: 10px;
  535. padding: 1px 3px;
  536. border-radius: 50%;
  537. width: 19px;
  538. height: 19px;
  539. line-height: 19px;
  540. }
  541. .type.send {
  542. color: #22C572;
  543. background: #E9F8F0;
  544. }
  545. .type.put {
  546. color: #22C572;
  547. background: #E9F8F0;
  548. }
  549. .weightnotes {
  550. display: inline-block;
  551. border: 1px solid #CDCDCD;
  552. padding: 5px;
  553. font-size: 10px;
  554. margin-left: 3px;
  555. }
  556. .deductfreight,
  557. .payfreight {
  558. width: 75px;
  559. height: 33px;
  560. line-height: 33px;
  561. font-size: 14px;
  562. background: #fff;
  563. border: 1px solid #CDCDCD;
  564. border-radius: 30px;
  565. text-align: center;
  566. margin: 0 5px;
  567. }
  568. .payfreight {
  569. margin-right: 0;
  570. }
  571. }
  572. .line {
  573. display: inline-block;
  574. padding: 5px;
  575. position: relative;
  576. font-size: 17px;
  577. }
  578. .line.active {
  579. font-size: 19px;
  580. font-weight: 900;
  581. }
  582. .line.active:after {
  583. content: '';
  584. display: block;
  585. position: absolute;
  586. width: 38px;
  587. left: 50%;
  588. transform: translateX(-50%);
  589. bottom: 0;
  590. border-bottom: 1px solid #22C572;
  591. }
  592. .cu-tag.badge {
  593. right: 26rpx;
  594. }
  595. .cu-item {
  596. height: 80rpx;
  597. display: inline-block;
  598. line-height: 80rpx;
  599. }
  600. .search-form {
  601. background: #F5F6F9;
  602. padding-left: 20rpx;
  603. }
  604. .title-tip {
  605. color: #E63113;
  606. text-align: right;
  607. }
  608. .tag1 {
  609. background: #F5F6F9;
  610. padding: 5px;
  611. color: #333333;
  612. display: inline-flex;
  613. font-size: 22rpx;
  614. border-radius: 3px;
  615. margin: 3px;
  616. }
  617. .tag {
  618. background: #F5F6F9;
  619. padding: 7px 12px;
  620. color: #333333;
  621. display: inline-flex;
  622. font-size: 22rpx;
  623. border-radius: 15px;
  624. margin: 3px;
  625. }
  626. .tag-bule {
  627. background: #EBEEFA;
  628. color: #5C76DF;
  629. }
  630. .tag-green {
  631. background: #C6F7BC;
  632. color: #065112;
  633. }
  634. .tag-yellow {
  635. background: #F9F2EA;
  636. color: #BE9C69;
  637. }
  638. .tag-red {
  639. background: #FEECE6;
  640. color: #FE6430;
  641. }
  642. .text-white {
  643. color: #fff;
  644. }
  645. .text-white text {
  646. position: relative;
  647. z-index: 2;
  648. background: linear-gradient(45deg, #3DC146, #B2D612);
  649. padding: 5px 10px;
  650. border-radius: 38rpx;
  651. }
  652. .center {
  653. margin-bottom: 100px;
  654. }
  655. .guess-section {
  656. padding-bottom: 100upx;
  657. display: flex;
  658. flex-wrap: wrap;
  659. padding: 30upx;
  660. background: #fff;
  661. margin: 10px;
  662. border-radius: 6px;
  663. .type {
  664. border-radius: 10px;
  665. padding: 5px;
  666. wdith: 22px;
  667. height: 22px;
  668. line-height: 14px;
  669. font-size: 12px;
  670. }
  671. .type.send {
  672. background: #22C572;
  673. color: #fff;
  674. }
  675. .type.put {
  676. background: #FD714F;
  677. color: #fff;
  678. }
  679. .businessnumber {
  680. font-size: 16px;
  681. font-weight: 600;
  682. }
  683. .consigner {
  684. font-size: 12px;
  685. }
  686. .time {
  687. color: #878C9C;
  688. }
  689. .goods {
  690. font-size: 12px;
  691. }
  692. .goodsstatus {
  693. background: #F9F9FA;
  694. color: #9698A2;
  695. padding: 10px 0;
  696. padding-left: 47px;
  697. margin: 10px 0;
  698. }
  699. .del {
  700. width: 60px;
  701. height: 33px;
  702. line-height: 33px;
  703. font-size: 14px;
  704. background: #fff;
  705. border: 1px solid #CDCDCD;
  706. border-radius: 30px;
  707. text-align: center;
  708. }
  709. }
  710. .navbar {
  711. position: fixed;
  712. left: 0;
  713. top: var(--window-top);
  714. display: flex;
  715. width: 100%;
  716. height: 80upx;
  717. background: #fff;
  718. box-shadow: 0 2upx 10upx rgba(0, 0, 0, .06);
  719. z-index: 10;
  720. .nav-item {
  721. flex: 1;
  722. display: flex;
  723. justify-content: center;
  724. align-items: center;
  725. height: 100%;
  726. font-size: 30upx;
  727. color: $font-color-dark;
  728. position: relative;
  729. &.current {
  730. color: $base-color;
  731. &:after {
  732. content: '';
  733. position: absolute;
  734. left: 50%;
  735. bottom: 0;
  736. transform: translateX(-50%);
  737. width: 120upx;
  738. height: 0;
  739. border-bottom: 4upx solid $base-color;
  740. }
  741. }
  742. }
  743. .p-box {
  744. display: flex;
  745. flex-direction: column;
  746. .yticon {
  747. display: flex;
  748. align-items: center;
  749. justify-content: center;
  750. width: 30upx;
  751. height: 14upx;
  752. line-height: 1;
  753. margin-left: 4upx;
  754. font-size: 26upx;
  755. color: #888;
  756. &.active {
  757. color: $base-color;
  758. }
  759. }
  760. .xia {
  761. transform: scaleY(-1);
  762. }
  763. }
  764. .cate-item {
  765. display: flex;
  766. justify-content: center;
  767. align-items: center;
  768. height: 100%;
  769. width: 80upx;
  770. position: relative;
  771. font-size: 44upx;
  772. &:after {
  773. content: '';
  774. position: absolute;
  775. left: 0;
  776. top: 50%;
  777. transform: translateY(-50%);
  778. border-left: 1px solid #ddd;
  779. width: 0;
  780. height: 36upx;
  781. }
  782. }
  783. }
  784. /* 分类 */
  785. .cate-mask {
  786. position: fixed;
  787. left: 0;
  788. top: var(--window-top);
  789. bottom: 0;
  790. width: 100%;
  791. background: rgba(0, 0, 0, 0);
  792. z-index: 95;
  793. transition: .3s;
  794. .cate-content {
  795. width: 630upx;
  796. height: 100%;
  797. background: #fff;
  798. float: right;
  799. transform: translateX(100%);
  800. transition: .3s;
  801. }
  802. &.none {
  803. display: none;
  804. }
  805. &.show {
  806. background: rgba(0, 0, 0, .4);
  807. .cate-content {
  808. transform: translateX(0);
  809. }
  810. }
  811. }
  812. .cate-list {
  813. display: flex;
  814. flex-direction: column;
  815. height: 100%;
  816. .cate-item {
  817. display: flex;
  818. align-items: center;
  819. height: 90upx;
  820. padding-left: 30upx;
  821. font-size: 28upx;
  822. color: #555;
  823. position: relative;
  824. }
  825. .two {
  826. height: 64upx;
  827. color: #303133;
  828. font-size: 30upx;
  829. background: #f8f8f8;
  830. }
  831. .active {
  832. color: $base-color;
  833. }
  834. }
  835. .introduce-section .title {
  836. font-size: 17px;
  837. font-weight: bold;
  838. height: 40px;
  839. line-height: 40px;
  840. flex: 2.5;
  841. border-bottom: 1px solid #EEEEEE;
  842. }
  843. .introduce-section .address {
  844. color: #878C9C;
  845. font-size: 12px;
  846. padding: 10px 0 10px;
  847. }
  848. .introduce-section .price {
  849. padding: 10px 0 10px;
  850. color: #FD714F;
  851. font-size: 19px;
  852. font-weight: 700;
  853. }
  854. .introduce-section .guess-item {
  855. border-radius: 10px;
  856. background: #fff;
  857. padding: 0upx 30upx 20upx;
  858. margin: 8px;
  859. border-bottom: 1px solid #ccc;
  860. }
  861. /* 销售信息 */
  862. .introduce-section {
  863. .title-tip {
  864. flex: 1;
  865. }
  866. .price-box {
  867. display: flex;
  868. align-items: baseline;
  869. font-size: 26upx;
  870. }
  871. .price {
  872. font-size: $font-lg + 2upx;
  873. }
  874. .m-price {
  875. margin: 0 12upx;
  876. color: $font-color-light;
  877. text-decoration: line-through;
  878. }
  879. .coupon-tip {
  880. align-items: center;
  881. padding: 4upx 10upx;
  882. background: $uni-color-primary;
  883. font-size: $font-sm;
  884. color: #fff;
  885. border-radius: 6upx;
  886. line-height: 1;
  887. transform: translateY(-4upx);
  888. }
  889. .bot-row {
  890. display: flex;
  891. align-items: center;
  892. height: 50upx;
  893. font-size: $font-sm;
  894. color: $font-color-light;
  895. view {
  896. flex: 1;
  897. }
  898. }
  899. }
  900. .footer {
  901. position: fixed;
  902. bottom: 0;
  903. width: 100%;
  904. padding: 20px 0;
  905. }
  906. .btn {
  907. width: 90%;
  908. background: #22C572;
  909. color: #fff;
  910. border-radius: 30px;
  911. }
  912. .btn:after {
  913. border: none;
  914. }
  915. .cumulative-style {
  916. justify-content: flex-end;
  917. align-items: center;
  918. display: flex;
  919. flex-direction: row;
  920. }
  921. .freightAlert-warp {
  922. padding: 0 60rpx 80rpx 60rpx;
  923. font-size: 26rpx;
  924. /* height: 400rpx; */
  925. }
  926. .row {
  927. margin: 26rpx 0;
  928. }
  929. .uview-border {
  930. border-bottom: 1px solid #E8E9ED;
  931. }
  932. .freightAlert-model {
  933. .freightAlert-row {
  934. display: flex;
  935. justify-content: center;
  936. position: relative;
  937. .close {
  938. position: absolute;
  939. right: 20rpx;
  940. top: 0;
  941. bottom: 0;
  942. margin: auto;
  943. }
  944. .title {
  945. font-size: 34rpx;
  946. font-weight: 500;
  947. color: #333333;
  948. line-height: 48px;
  949. }
  950. }
  951. .red-tip {
  952. color: red;
  953. margin-top: 20rpx;
  954. }
  955. .freightAlert-row2,
  956. .freightAlert-row4 {
  957. display: flex;
  958. justify-content: space-between;
  959. .text {
  960. display: flex;
  961. align-items: center;
  962. }
  963. }
  964. }
  965. .payAlert {
  966. /* height: 800rpx; */
  967. }
  968. .unpaid,
  969. .paid {
  970. display: flex;
  971. justify-content: space-between;
  972. margin: 20rpx 0;
  973. }
  974. .cumulative-style {
  975. justify-content: flex-end;
  976. align-items: center;
  977. display: flex;
  978. flex-direction: row;
  979. }
  980. </style>