createOrder.vue 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693
  1. <template>
  2. <view class="page" :style="{'height':(h)+'px','padding-top':mt+'px'}">
  3. <c-nav-bar :title="!dataForm.id?'新增订单':!orderStatus?'编辑订单':'办理入住'" :showIcon="true"></c-nav-bar>
  4. <view class="box box1">
  5. <view class="tit">预订信息</view>
  6. <u-cell-group :border="false" customStyle="margin:0 -30rpx">
  7. <u-cell customStyle="height:88rpx">
  8. <text>*</text>
  9. <text slot="icon" class="label">姓名</text>
  10. <view slot="title" class="title">
  11. <u--input border="none" class="input" inputAlign="right" placeholderStyle="font-size:26rpx"
  12. placeholder="请输入姓名" v-model="dataForm.guestName"></u--input>
  13. </view>
  14. </u-cell>
  15. <u-cell customStyle="height:88rpx">
  16. <text slot="icon" class="label">手机号码</text>
  17. <view slot="title" class="title">
  18. <u--input border="none" class="input" inputAlign="right" placeholderStyle="font-size:26rpx"
  19. placeholder="请输入手机号码" v-model="dataForm.guestPhone"></u--input>
  20. </view>
  21. </u-cell>
  22. <u-cell :isLink="true" @click="showLaiyuan=true">
  23. <text slot="icon" class="label">订单来源</text>
  24. <view slot="title" class="title">
  25. {{dataForm.guestSourceName||''}}
  26. </view>
  27. </u-cell>
  28. </u-cell-group>
  29. </view>
  30. <view class="box">
  31. <view class="tit tit2">入住登记<u-icon @click="goStayCheck()" name="plus-circle" label="添加入住人"
  32. labelColor="#1372FF" labelSize="24" color="1372FF" size="30"></u-icon></view>
  33. <view class="perItem" v-for="(item,index) in dataForm.detailFormList[0].checkInPersonList" :key="index">
  34. <text>{{item.checkInName}}</text>
  35. <text style="margin-left: 40px;">{{item.idCard}}</text>
  36. <u-icon name="close-circle-fill" color="#ddd" size="30" @click="delPer(index)"></u-icon>
  37. </view>
  38. </view>
  39. <view class="box box1">
  40. <view class="tit">房间信息</view>
  41. <view class="dateBetween">
  42. <view class="start" v-if="dataForm.arriveDate">
  43. <text>入住日期</text>
  44. <text class="txt">{{dataForm.arriveDate.substring(5,10)}}</text>
  45. </view>
  46. <view class="dateNum">共{{dataForm.num}}晚</view>
  47. <view class="end" v-if="dataForm.leaveDate">
  48. <text>离店日期</text>
  49. <text @click="showPick()" class="txt">{{dataForm.leaveDate.substring(5,10)}}</text>
  50. <u-datetime-picker :show="leaveDateShow" mode="date" ref="picker"
  51. @cancel="leaveDateShow=false"
  52. @confirm="credentialsConfirmtime" :defaultIndex="credentialsDefaulttime"></u-datetime-picker>
  53. </view>
  54. </view>
  55. <u-cell-group :border="false" customStyle="margin:0 -30rpx">
  56. <!-- <u-cell>
  57. <text slot="icon" class="label">入住日期</text>
  58. <view slot="title" class="title">
  59. {{dataForm.arriveDate}}
  60. </view>
  61. </u-cell>
  62. <u-cell>
  63. <text slot="icon" class="label">离店日期</text>
  64. <view slot="title" class="title">
  65. {{dataForm.leaveDate}}
  66. </view>
  67. </u-cell> -->
  68. <!-- <u-cell>
  69. <text slot="icon" class="label">共几晚</text>
  70. <view slot="title" class="title">
  71. {{dataForm.num}}
  72. </view>
  73. </u-cell> -->
  74. <u-cell isLink="true" @click="checkInTypeShow=true">
  75. <text slot="icon" class="label">入住类型</text>
  76. <view slot="title" class="title">
  77. {{dataForm.detailFormList[0].checkInTypeName}}
  78. </view>
  79. </u-cell>
  80. <u-cell>
  81. <text slot="icon" class="label">房间类型</text>
  82. <view slot="title" class="title">
  83. {{dataForm.houseBaseName}}
  84. </view>
  85. </u-cell>
  86. <u-cell>
  87. <text slot="icon" class="label">房间号</text>
  88. <view slot="title" class="title">
  89. {{dataForm.detailFormList[0].roomNumber}}
  90. </view>
  91. </u-cell>
  92. <u-cell>
  93. <text slot="icon" class="label">房价</text>
  94. <view slot="title" class="title">
  95. {{dataForm.detailFormList[0].roomAmount}}
  96. </view>
  97. </u-cell>
  98. <u-cell customStyle="height:88rpx">
  99. <text slot="icon" class="label">备注</text>
  100. <view slot="title" class="title">
  101. <u--input border="none" class="input" inputAlign="right" placeholderStyle="font-size:26rpx"
  102. type="textarea" placeholder="请输入" v-model="dataForm.remarks" height="200"></u--input>
  103. </view>
  104. </u-cell>
  105. </u-cell-group>
  106. </view>
  107. <view class="box">
  108. <view class="tit tit2"><text>消费信息</text> <u-icon @click="addBreast()" name="plus-circle" label="添加消费"
  109. labelColor="#1372FF" labelSize="24" color="1372FF" size="30"></u-icon></view>
  110. <u-swipe-action>
  111. <u-swipe-action-item :show="item.show" :index="index" class=""
  112. v-for="(item, index) in dataForm.detailFormList[0].breakfastData" :key="index" @click="click(index)"
  113. :options="options">
  114. <view class="goodsInfo item">
  115. <view class="title-wrap">
  116. <text class="title u-line-2">{{item.breakfastName}}/{{item.num}}/{{item.price}}</text>
  117. </view>
  118. </view>
  119. </u-swipe-action-item>
  120. <u-swipe-action-item :show="item.show" :index="index2" class=""
  121. v-for="(item, index2) in dataForm.detailFormList[0].otherData" :key="index2" @click="click2(index2)"
  122. :options="options">
  123. <view class="goodsInfo item">
  124. <view class="title-wrap">
  125. <text class="title u-line-2">{{item.projectName}}/{{item.num}}/{{item.defaultPrice}}</text>
  126. </view>
  127. </view>
  128. </u-swipe-action-item>
  129. </u-swipe-action>
  130. </view>
  131. <view class="box">
  132. <view class="tit tit2"><text>收款信息</text> <u-icon @click="addpay()" name="plus-circle" label="添加收款"
  133. labelColor="#1372FF" labelSize="24" color="1372FF" size="30"></u-icon></view>
  134. <u-swipe-action>
  135. <u-swipe-action-item :show="item.show" :index="index" class=""
  136. v-for="(item, index) in dataForm.flowRecord" :key="index" @click="click3(index)" :options="options">
  137. <view class="goodsInfo item">
  138. <view class="title-wrap">
  139. <text
  140. class="title u-line-2">{{item.flowTypeName}}/{{item.payTypeName}}/{{item.amount}}</text>
  141. </view>
  142. </view>
  143. </u-swipe-action-item>
  144. </u-swipe-action>
  145. </view>
  146. <view class="footer">
  147. <view class="total"><text>订单金额:</text><text>¥{{totalMOney}}</text></view>
  148. <view class="btns">
  149. <text @click="confirmOrder(2)" v-if="today==1">直接入住</text>
  150. <text @click="confirmOrder(1)" v-if="!orderStatus">保存</text>
  151. <!-- 新增和编辑时由此按钮 -->
  152. </view>
  153. </view>
  154. <u-picker :itemHeight="88" :immediateChange="true" :show="showLaiyuan" :columns="laiyuan" title="来源选择"
  155. keyName="guestSource" :defaultIndex="passengerDefault" @cancel="showLaiyuan=false;"
  156. @confirm="passengerConfirm"></u-picker>
  157. <u-picker :itemHeight="88" :immediateChange="true" :show="checkInTypeShow" :columns="checkInType" title="入住类型选择"
  158. keyName="label" :defaultIndex="passengerDefault2" @cancel="checkInTypeShow=false;"
  159. @confirm="passengerConfirm2"></u-picker>
  160. </view>
  161. </template>
  162. <script>
  163. export default {
  164. data() {
  165. return {
  166. credentialsDefaulttime:[10,1,0],
  167. titleStyle: {
  168. fontSize: '34rpx',
  169. fontWeight: "bold",
  170. },
  171. showLaiyuan: false,
  172. checkInTypeShow: false,
  173. passengerDefault: [0],
  174. passengerDefault2: [0],
  175. leaveDateShow: false,
  176. options: [{
  177. text: '删除',
  178. style: {
  179. backgroundColor: '#dd524d'
  180. }
  181. }],
  182. orderStatus: '',
  183. totalMOney: 0, //订单总金额
  184. dataForm: {
  185. arriveDate: "",
  186. detailFormList: [{
  187. breakfastAmount: 0,
  188. checkInPersonList: [],
  189. checkInType: 0,
  190. checkInTypeName: '',
  191. id:0,
  192. otherAmount: 0,
  193. roomAmount: 0,
  194. roomIds: "",
  195. breakfastData: [],
  196. otherData: [],
  197. roomNumber: "",
  198. }],
  199. flowRecord: [],
  200. guestName: "",
  201. guestPhone: "",
  202. guestSourceId: null,
  203. guestSourceName: null,
  204. homestayId: uni.getStorageSync('homestayId'),
  205. houseBaseId: 0,
  206. houseBaseName: '',
  207. leaveDate: "",
  208. num: 0,
  209. orderStatus: null,
  210. remarks: "",
  211. },
  212. checkInType: [
  213. [{
  214. label: '正常入住',
  215. val: 1
  216. }, {
  217. label: '自用房',
  218. val: 2
  219. },
  220. {
  221. label: '免费入住',
  222. val: 3
  223. }
  224. ]
  225. ],
  226. flowTypeNames:['微信','支付宝','云闪付'],
  227. roomId: '',
  228. laiyuan: [
  229. []
  230. ],
  231. currentDate: '',
  232. today: ''
  233. }
  234. },
  235. onReady() {
  236. // 微信小程序需要用此写法
  237. },
  238. onLoad(opt) {
  239. this.getLaiyuan();
  240. if (opt.roomId) {
  241. this.roomId = opt.roomId.split(',');
  242. }
  243. if (opt.id) { //编辑
  244. if (opt.orderStatus) {
  245. this.orderStatus = opt.orderStatus;
  246. }
  247. this.dataForm.id = opt.id;
  248. this.getInfo2()
  249. } else {
  250. //新增获取简单信息
  251. this.getInfo();
  252. }
  253. // 当前日期
  254. let myDate = new Date();
  255. let year = myDate.getFullYear();
  256. let mon = myDate.getMonth() + 1;
  257. let day = myDate.getDate();
  258. mon = mon > 9 ? mon : '0' + mon;
  259. day = day > 9 ? day : '0' + day;
  260. this.currentDate = year + '-' + mon + '-' + day;
  261. },
  262. methods: {
  263. showPick(){
  264. this.leaveDateShow=true;
  265. this.$refs.picker.innerValue=new Date().getTime()
  266. },
  267. //i计算天数
  268. getDaysBetween(dateString1,dateString2){
  269. var startDate =Date.parse(dateString1);
  270. var endDate =Date.parse(dateString2);
  271. if (startDate>endDate){
  272. return 0;
  273. }
  274. if (startDate==endDate){
  275. return 1;
  276. }
  277. var days=(endDate - startDate)/(1*24*60*60*1000);
  278. this.dataForm.num=days;
  279. //return days;
  280. },
  281. credentialsConfirmtime(e) {
  282. // 创建一个Date对象并传入时间戳
  283. const date = new Date(e.value);
  284. // 使用Date对象的方法获取年、月、日、小时、分钟和秒
  285. const year = date.getFullYear();
  286. const month = ('0' + (date.getMonth() + 1)).slice(-2);
  287. const day = ('0' + date.getDate()).slice(-2);
  288. // 格式化时间
  289. const formattedTime = `${year}-${month}-${day}`;
  290. this.dataForm.leaveDate = formattedTime;
  291. this.getDaysBetween(this.dataForm.arriveDate,this.dataForm.leaveDate);
  292. this.leaveDateShow = false;
  293. },
  294. compareDate(data) {
  295. let data2=data.substring(0,10);
  296. if (
  297. new Date(data2).getTime() < new Date(this.currentDate).getTime()
  298. ) {
  299. this.today = -1;
  300. }
  301. if (
  302. new Date(data2).getTime() == new Date(this.currentDate).getTime()
  303. ) {
  304. this.today = 1;
  305. }
  306. if (
  307. new Date(data2).getTime() > new Date(this.currentDate).getTime()
  308. ) {
  309. this.today = 2;
  310. }
  311. },
  312. //添加入住人
  313. goStayCheck() {
  314. let list = JSON.stringify(this.dataForm);
  315. uni.navigateTo({
  316. url: '/pages/house/stayCheck?orderInfo=' + list,
  317. events: {
  318. addSuccess: data => {
  319. this.dataForm.detailFormList[0].checkInPersonList = data.data || [];
  320. }
  321. },
  322. })
  323. },
  324. //添加早餐
  325. addBreast() {
  326. let list = JSON.stringify(this.dataForm.detailFormList[0].breakfastData);
  327. let list2 = JSON.stringify(this.dataForm.detailFormList[0].otherData)
  328. uni.navigateTo({
  329. url: '/pages/house/breast?list1=' + list + '&list2=' + list2,
  330. events: {
  331. addSuccess: data => {
  332. this.dataForm.detailFormList[0].breakfastData = data.data1.filter((item) => item
  333. .num && item
  334. .num != 0);
  335. this.dataForm.detailFormList[0].otherData = data.data2.filter((item) => item.num &&
  336. item.num !=
  337. 0);
  338. this.totalMOney = this.dataForm.detailFormList[0].roomAmount;
  339. this.dataForm.detailFormList[0].breakfastAmount = 0;
  340. this.dataForm.detailFormList[0].otherAmount = 0;
  341. for (let i = 0; i < this.dataForm.detailFormList[0].breakfastData.length; i++) {
  342. this.totalMOney += parseFloat(this.dataForm.detailFormList[0].breakfastData[i]
  343. .price) * this.dataForm.detailFormList[0].breakfastData[i].num;
  344. this.dataForm.detailFormList[0].breakfastAmount += parseFloat(this.dataForm
  345. .detailFormList[0].breakfastData[i]
  346. .price) * this.dataForm.detailFormList[0].breakfastData[i].num;
  347. }
  348. for (let i = 0; i < this.dataForm.detailFormList[0].otherData.length; i++) {
  349. this.totalMOney += parseFloat(this.dataForm.detailFormList[0].otherData[i]
  350. .defaultPrice) * this.dataForm.detailFormList[0].otherData[i].num;
  351. this.dataForm.detailFormList[0].otherAmount += parseFloat(this.dataForm
  352. .detailFormList[0].otherData[i]
  353. .defaultPrice) * this.dataForm.detailFormList[0].otherData[i].num;
  354. }
  355. }
  356. }
  357. })
  358. },
  359. //添加收款
  360. addpay() {
  361. uni.navigateTo({
  362. url: '/pages/house/payAdd?money=' + this.totalMOney + '&list=' +
  363. JSON.stringify(this.dataForm.flowRecord),
  364. events: {
  365. addSuccess: data => {
  366. if (data.data.amount != 0) {
  367. this.dataForm.flowRecord = this.dataForm.flowRecord || [];
  368. this.dataForm.flowRecord.push(data.data)
  369. // if(data.data.flowType==1){ //收款
  370. // this.totalMOney+=parseFloat(data.data.amount);
  371. // }else{
  372. // this.totalMOney=parseFloat(data.data.amount);
  373. // }
  374. }
  375. }
  376. }
  377. })
  378. },
  379. delPer(index) {
  380. this.dataForm.detailFormList[0].checkInPersonList.splice(index, 1)
  381. },
  382. confirmOrder(orderStatus) {
  383. if(!this.dataForm.guestName){
  384. this.$showToast('请输入姓名');
  385. return
  386. }
  387. if(!this.$u.test.mobile(this.dataForm.guestPhone)){
  388. this.$showToast('请输入正确手机号');
  389. return
  390. }
  391. if(!this.dataForm.guestSourceName){
  392. this.$showToast('请选择来源');
  393. return
  394. }
  395. if(!this.dataForm.detailFormList[0].checkInPersonList||this.dataForm.detailFormList[0].checkInPersonList.length==0){
  396. this.$showToast('请添加入住人');
  397. return
  398. }
  399. //orderStatus//预约入住 1,直接入住2
  400. if (orderStatus) {
  401. this.dataForm.orderStatus = orderStatus;
  402. }
  403. let url = '';
  404. if (this.dataForm.id) {
  405. url = '/merchant/hotel/order/updOrder'
  406. if (this.orderStatus) {
  407. this.dataForm.orderStatus = this.orderStatus;
  408. }
  409. } else {
  410. url = '/merchant/hotel/order/placeOrder'
  411. }
  412. this.$api.post(url, this.dataForm).then(res => {
  413. if (res.data.code == 0) {
  414. this.$showToast('操作成功');
  415. setTimeout(() => {
  416. uni.redirectTo({
  417. url: '/pagesMy/orderList/orderList'
  418. })
  419. }, 1500)
  420. }
  421. })
  422. },
  423. click(index) {
  424. this.dataForm.detailFormList[0].breakfastAmount -= this.dataForm.detailFormList[0].breakfastData[index]
  425. .price * this.dataForm.detailFormList[0].breakfastData[index].num;
  426. this.totalMOney -= this.dataForm.detailFormList[0].breakfastData[index].price * this.dataForm
  427. .detailFormList[0].breakfastData[index].num;
  428. this.dataForm.detailFormList[0].breakfastData.splice(index, 1);
  429. },
  430. click2(index) {
  431. this.dataForm.detailFormList[0].otherAmount -= this.dataForm.detailFormList[0].otherData[index]
  432. .defaultPrice * this.dataForm.detailFormList[0].otherData[index].num;
  433. this.totalMOney -= this.dataForm.detailFormList[0].otherData[index].defaultPrice * this.dataForm
  434. .detailFormList[0].otherData[index].num;
  435. this.dataForm.detailFormList[0].otherData.splice(index, 1);
  436. },
  437. click3(index) {
  438. this.dataForm.flowRecord.splice(index, 1);
  439. },
  440. getLaiyuan() {
  441. this.$api.get("/merchant/hotel/room/state/getSourceDownBox", {
  442. homestayId: this.dataForm.homestayId,
  443. })
  444. .then((res) => {
  445. if (res.data.code == 0) {
  446. this.laiyuan = [res.data.data];
  447. }
  448. });
  449. },
  450. getInfo2() { //详情信息
  451. this.$api.get('/merchant/hotel/order/getOrderDetail/' + this.dataForm.id).then(res => {
  452. if (res.data.code == 0) {
  453. this.dataForm = {
  454. ...this.dataForm,
  455. ...res.data.data,
  456. };
  457. this.compareDate(this.dataForm.arriveDate);
  458. this.dataForm.detailFormList[0].checkInType = res.data.data.detailFormList[0].checkInType;
  459. this.dataForm.detailFormList[0].checkInTypeName = this.checkInType[0].filter((item => item
  460. .val ==this.dataForm.detailFormList[0].checkInType))[0].label;
  461. this.totalMOney = this.dataForm.orderAmount;
  462. this.dataForm.flowRecord.forEach((i,index)=>{
  463. let flowTypeName=i.flowType==1?'收款':'退款';
  464. var payTypeName='微信';
  465. if(i.payType){
  466. payTypeName=this.flowTypeNames[i.payType-1];
  467. }
  468. this.$set(this.dataForm.flowRecord[index],'flowTypeName',flowTypeName)
  469. this.$set(this.dataForm.flowRecord[index],'payTypeName',payTypeName)
  470. })
  471. }
  472. })
  473. },
  474. // 房型列表
  475. getInfo() {
  476. this.$api.post('/merchant/hotel/order/getRoomInfoList', this.roomId).then(res => {
  477. if (res.data.code == 0) {
  478. this.dataForm.detailFormList[0].roomIds = res.data.data.roomIds;
  479. this.dataForm.detailFormList[0].roomNumber = res.data.data.roomNumber;
  480. this.dataForm.detailFormList[0].checkInType = res.data.data.checkInType;
  481. this.dataForm.detailFormList[0].checkInTypeName = this.checkInType[0].filter((item => item
  482. .val == res.data.data.checkInType))[0].label;
  483. this.dataForm.detailFormList[0].roomAmount = res.data.data.roomAmount;
  484. this.dataForm.arriveDate = res.data.data.arriveDate;
  485. this.compareDate(this.dataForm.arriveDate);
  486. this.dataForm.leaveDate = res.data.data.leaveDate;
  487. this.dataForm.houseBaseId = res.data.data.houseBaseId;
  488. this.dataForm.houseBaseName = res.data.data.houseBaseName;
  489. this.dataForm.num = res.data.data.num;
  490. this.totalMOney = res.data.data.roomAmount;
  491. }
  492. })
  493. },
  494. // 来源
  495. passengerConfirm(e) {
  496. this.dataForm.guestSourceId = e.value[0].id;
  497. this.dataForm.guestSourceName = e.value[0].guestSource;
  498. this.showLaiyuan = false;
  499. },
  500. //入住类型
  501. passengerConfirm2(e) {
  502. this.dataForm.detailFormList[0].checkInType = e.value[0].val;
  503. this.dataForm.detailFormList[0].checkInTypeName = e.value[0].label;
  504. this.checkInTypeShow = false;
  505. }
  506. }
  507. }
  508. </script>
  509. <style>
  510. .u-swipe-action-item__right__button__wrapper__text {
  511. font-size: 28rpx !important;
  512. }
  513. </style>
  514. <style lang="scss" scoped>
  515. .u-swipe-action-item__right__button__wrapper {
  516. height: 36px
  517. }
  518. .u-swipe-action-item__right__button__wrapper__text {
  519. font-size: 28rpx;
  520. }
  521. .footer {
  522. position: fixed;
  523. bottom: 0;
  524. width: 100%;
  525. background-color: #fff;
  526. left: 0;
  527. z-index: 99;
  528. padding: 30rpx;
  529. box-sizing: border-box;
  530. .total {
  531. text {
  532. color: #1372FF;
  533. font-size: 32rpx;
  534. &:first-child {
  535. color: #333;
  536. }
  537. }
  538. }
  539. .btns {
  540. display: flex;
  541. justify-content: space-between;
  542. margin-top: 30rpx;
  543. text {
  544. display: inline-block;
  545. width: 48%;
  546. height: 96rpx;
  547. line-height: 96rpx;
  548. text-align: center;
  549. font-size: 34rpx;
  550. border-radius: 48rpx;
  551. border: 1rpx solid #D1D1D1;
  552. color: #999;
  553. margin:0 3%;
  554. flex: 1;
  555. &:last-child {
  556. background-color: #1372FF;
  557. color: #fff;
  558. }
  559. }
  560. }
  561. }
  562. .u-cell__body {
  563. padding: 0 !important;
  564. }
  565. .page {
  566. background: #F3F4F4;
  567. padding-bottom: 260rpx;
  568. box-sizing: border-box;
  569. overflow-y: auto;
  570. overflow-x: auto;
  571. }
  572. .box {
  573. background-color: #fff;
  574. margin: 20rpx auto 0;
  575. border-radius: 10rpx;
  576. width: 96%;
  577. padding: 0 30rpx 30rpx;
  578. box-sizing: border-box;
  579. .label {
  580. color: #333;
  581. font-size: 30rpx;
  582. }
  583. &.box1 {
  584. padding: 0 30rpx;
  585. .title {
  586. text-align: right;
  587. }
  588. }
  589. .title {
  590. color: #999;
  591. }
  592. }
  593. .tit,
  594. .tit2 {
  595. font-size: 32rpx;
  596. font-weight: bold;
  597. padding-top: 30rpx;
  598. color: #333;
  599. margin-bottom: 10rpx;
  600. }
  601. .tit2 {
  602. display: flex;
  603. justify-content: space-between;
  604. align-items: center;
  605. }
  606. .goodsInfo.item {
  607. padding: 20rpx 0;
  608. text {
  609. font-size: 30rpx;
  610. }
  611. }
  612. .perItem {
  613. display: flex;
  614. align-items: center;
  615. padding: 26rpx 0;
  616. border-bottom: 1rpx solid #E1E1E1;
  617. &:last-child{
  618. border: 0;
  619. }
  620. text {
  621. font-size: 30rpx;
  622. color: #333;
  623. &:nth-of-type(2) {
  624. flex: 1;
  625. margin: 0 10rpx;
  626. }
  627. }
  628. }
  629. .dateBetween {
  630. display: flex;
  631. justify-content: space-between;
  632. align-items: center;
  633. padding: 20rpx 0 30rpx;
  634. border-bottom: 1rpx solid #E1E1E1;
  635. .start,
  636. .end {
  637. text-align: center;
  638. display: flex;
  639. flex-direction: column;
  640. justify-content: center;
  641. text {
  642. &.txt {
  643. font-size: 40rpx;
  644. font-weight: bold;
  645. margin-top: 20rpx;
  646. }
  647. }
  648. }
  649. .dateNum {
  650. text-align: center;
  651. border-radius: 30rpx;
  652. display: inline-block;
  653. width: 120rpx;
  654. height: 50rpx;
  655. line-height: 50rpx;
  656. font-size: 30rpx;
  657. color: #333;
  658. background-color: #F9FAFC;
  659. }
  660. }
  661. </style>