index.vue 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956
  1. <template>
  2. <app-layout>
  3. <view class="tab-list">
  4. <view class="tab cross-center main-center">
  5. <view class="active">浏览记录</view>
  6. <view @click="redirect('/pages/foot/summary/summary')">账单总结</view>
  7. </view>
  8. <view class="tab-date dir-left-nowrap">
  9. <view @click="chooseDate(today,today)" :class="[`${start_time == today && today !='' ? 'active' : ''}`]">今日</view>
  10. <view @click="chooseDate(yesterday,yesterday)" :class="[`${start_time == yesterday && yesterday !='' ? 'active' : ''}`]">昨日</view>
  11. <view @click="chooseDate(weekday,today)" :class="[`${start_time == weekday && weekday !='' ? 'active' : ''}`]">近7日</view>
  12. <view @click="chooseDate(monthday,today)" :class="[`${start_time == monthday && monthday !='' ? 'active' : ''}`]">近30日</view>
  13. <view @click="choose" :class="[`${otherday ? 'active customize' : 'customize'}`]">{{otherday && showTime ? showTime : '自定义时间'}}</view>
  14. </view>
  15. </view>
  16. <view class="tab-placeholder"></view>
  17. <view v-if="list.length > 0">
  18. <view v-for="item in list" :key="item.date" class='list'>
  19. <view class="date-info">{{item.date}}</view>
  20. <view class="dir-left-wrap">
  21. <view class="goods" @click="toDetail(goods)" :key="goods.goods_id" v-for="(goods,index) in item.goods">
  22. <image class="goods-img" :src="goods.goodsWarehouse.cover_pic"></image>
  23. <view class="out-dialog" v-if="goods.goods_stock == 0 && appSetting.is_show_stock == '1'">
  24. <image :src="appSetting.is_use_stock == '1' ? appImg.plugins_out : appSetting.sell_out_pic"></image>
  25. </view>
  26. <view class="goods-info">
  27. <view class="t-omit-two goods-name">{{goods.goodsWarehouse.name}}</view>
  28. <view class="main-between cross-center">
  29. <view>{{goods.is_negotiable == 1 ? '价格面议' : '¥'+goods.price}}</view>
  30. <view @click.stop="toShow(goods,item,index)" class="more main-center cross-center">
  31. <image src="./../image/foot-more.png"></image>
  32. </view>
  33. </view>
  34. </view>
  35. </view>
  36. </view>
  37. </view>
  38. </view>
  39. <view class="no-list main-center cross-center dir-top-nowrap" v-else>
  40. <image src="./../image/foot.png"></image>
  41. <view>暂无浏览的足迹哦~</view>
  42. <view @click="redirect('/pages/index/index')" class="to-mall">去商城逛逛</view>
  43. </view>
  44. <view :catchtouchmove="!showMenu" v-if="showMenu" class="dialog">
  45. <view class="other-area" @click="closeMenu"></view>
  46. <view class="menu-card">
  47. <view @click="closeMenu" class="close-menu-icon">
  48. <image src="./../image/black-close.png"></image>
  49. </view>
  50. <view class="main-center menu-item">
  51. <view v-if="!detail.sign || detail.sign == 'mch' || detail.sign == 'advance' || detail.sign == 'pick' || detail.sign == 'community' || detail.sign == 'wholesale'" @click="toFavorite">
  52. <image class="menu-icon" src="./../image/to-favorite.png"></image>
  53. <view>收藏</view>
  54. </view>
  55. <view @click="beDelete=true">
  56. <image class="menu-icon" src="./../image/to-delete.png"></image>
  57. <view>删除</view>
  58. </view>
  59. </view>
  60. <view @click="closeMenu" class="close-menu">取消</view>
  61. </view>
  62. </view>
  63. <view :catchtouchmove="!beDelete" v-if="beDelete" class="tips-dialog cross-center main-center">
  64. <view class="delete-info">
  65. <view class="delete-content">是否删除该条足迹?</view>
  66. <view class="delete-btn main-between">
  67. <view @click="closeMenu" class="btn">取消</view>
  68. <view class="line"></view>
  69. <view @click="toDelete" class="btn submit-btn">确认</view>
  70. </view>
  71. </view>
  72. </view>
  73. <view v-if="showText" class="dialog-title cross-center main-center">
  74. <view>{{showText}}</view>
  75. </view>
  76. <!-- 选时间 -->
  77. <view :catchtouchmove="!chooseTime" class="time-dialog cross-center main-center" v-if="chooseTime">
  78. <view class="time-dialog-content">
  79. <view class="time-dialog-title">筛选时间</view>
  80. <view class="choose-time">
  81. <view class="time-title">起始时间</view>
  82. <view class="year-1">年</view>
  83. <view class="month-1">月</view>
  84. <view class="day-1">日</view>
  85. <view class="year-2">年</view>
  86. <view class="month-2">月</view>
  87. <view class="day-2">日</view>
  88. <picker-view :value="start" class="picker-view" @change="startChange">
  89. <picker-view-column>
  90. <view
  91. v-for="(item, index) in years"
  92. :class="{
  93. 'sure-color': chooseStart[0] === index,
  94. 'cardinal-color': chooseStart[0] === index + 1 || chooseStart[0] === index - 1,
  95. 'even-color': chooseStart[0] === index + 2 || chooseStart[0] === index - 2,
  96. }"
  97. :key="item">{{item}}
  98. </view>
  99. </picker-view-column>
  100. <picker-view-column>
  101. <view
  102. v-for="(item, index) in months"
  103. :class="{
  104. 'sure-color': chooseStart[1] === index,
  105. 'cardinal-color': chooseStart[1] === index + 1 || chooseStart[1] === index - 1,
  106. 'even-color': chooseStart[1] === index + 2 || chooseStart[1] === index - 2,
  107. }"
  108. :key="item">{{item}}
  109. </view>
  110. </picker-view-column>
  111. <picker-view-column>
  112. <view
  113. v-for="(item, index) in days"
  114. :class="{
  115. 'sure-color': chooseStart[2] === index,
  116. 'cardinal-color': chooseStart[2] === index + 1 || chooseStart[2] === index - 1,
  117. 'even-color': chooseStart[2] === index + 2 || chooseStart[2] === index - 2,
  118. }"
  119. :key="item">{{item}}
  120. </view>
  121. </picker-view-column>
  122. </picker-view>
  123. <view class="time-title">结束时间</view>
  124. <picker-view :value="end" indicator-style="height: 36px;color: #ff4544;font-size:14px;" class="picker-view" @change="endChange">
  125. <picker-view-column>
  126. <view
  127. v-for="(item, index) in years"
  128. :class="{
  129. 'sure-color': chooseEnd[0] === index,
  130. 'cardinal-color': chooseEnd[0] === index + 1 || chooseEnd[0] === index - 1,
  131. 'even-color': chooseEnd[0] === index + 2 || chooseEnd[0] === index - 2,
  132. }"
  133. :key="item">{{item}}
  134. </view>
  135. </picker-view-column>
  136. <picker-view-column>
  137. <view
  138. v-for="(item, index) in months"
  139. :class="{
  140. 'sure-color': chooseEnd[1] === index,
  141. 'cardinal-color': chooseEnd[1] === index + 1 || chooseEnd[1] === index - 1,
  142. 'even-color': chooseEnd[1] === index + 2 || chooseEnd[1] === index - 2,
  143. }"
  144. :key="item">{{item}}
  145. </view>
  146. </picker-view-column>
  147. <picker-view-column>
  148. <view
  149. v-for="(item, index) in days"
  150. :class="{
  151. 'sure-color': chooseEnd[2] === index,
  152. 'cardinal-color': chooseEnd[2] === index + 1 || chooseEnd[2] === index - 1,
  153. 'even-color': chooseEnd[2] === index + 2 || chooseEnd[2] === index - 2,
  154. }"
  155. :key="item">{{item}}
  156. </view>
  157. </picker-view-column>
  158. </picker-view>
  159. </view>
  160. <view class="main-center btn-area">
  161. <view class="submit-btn" @click='cancel'>取消</view>
  162. <view class="line"></view>
  163. <view class="submit-btn be-submit" @click='toChoose'>确认</view>
  164. </view>
  165. </view>
  166. </view>
  167. </app-layout>
  168. </template>
  169. <script>
  170. import { mapState,mapGetters } from "vuex";
  171. const date = new Date();
  172. const years = [];
  173. const months = [];
  174. const days = [];
  175. for (let i = 2017; i <= date.getFullYear(); i++) {
  176. years.push(i);
  177. }
  178. for (let i = 1; i <= 12; i++) {
  179. months.push(i);
  180. }
  181. for (let i = 1; i <= 31; i++) {
  182. days.push(i);
  183. }
  184. export default {
  185. data() {
  186. return {
  187. showMenu: false,
  188. otherday: false,
  189. beDelete: false,
  190. page: 1,
  191. detail: {},
  192. chooseTime: false,
  193. end_time: '',
  194. start_time: '',
  195. today: '',
  196. yesterday: '',
  197. showText: false,
  198. weekday: '',
  199. monthday: '',
  200. list: [],
  201. start: [],
  202. end: [],
  203. chooseStart: [],
  204. chooseEnd: [],
  205. showTime: '',
  206. years: years,
  207. months: months,
  208. days: days,
  209. selectAttr: null,
  210. loading: false,
  211. index: -1,
  212. dateList: null,
  213. buyText: '立即购买',
  214. sign: '',
  215. cartShow: 1,
  216. plugin: '',
  217. buyBool: false,
  218. previewUrl: '',
  219. submitUrl: '',
  220. attrShow: 0
  221. }
  222. },
  223. computed: {
  224. ...mapState({
  225. appSetting: state => state.mallConfig.mall.setting,
  226. appImg: state => state.mallConfig.__wxapp_img.mall,
  227. platform: function(state) {
  228. return state.gConfig.systemInfo.platform;
  229. }
  230. }),
  231. ...mapGetters('mallConfig', {
  232. getVideo: 'getVideo',
  233. getTheme: 'getTheme'
  234. })
  235. },
  236. methods: {
  237. // 路由重定向
  238. redirect(url) {
  239. uni.redirectTo({
  240. url: url
  241. });
  242. },
  243. toDetail(item) {
  244. // #ifndef MP-BAIDU
  245. if (item.goodsWarehouse.video_url && this.getVideo == 1) {
  246. // #ifdef MP
  247. uni.navigateTo({
  248. url: `/pages/goods/video?goods_id=${item.goods_id}&sign=${item.sign}`
  249. });
  250. // #endif
  251. // #ifdef H5
  252. uni.navigateTo({
  253. url: item.page_url
  254. })
  255. // #endif
  256. } else {
  257. uni.navigateTo({
  258. url: item.page_url
  259. })
  260. }
  261. // #endif
  262. // #ifdef MP-BAIDU
  263. uni.navigateTo({
  264. url: item.page_url
  265. })
  266. // #endif
  267. },
  268. startChange: function(e) {
  269. this.chooseStart = e.detail.value;
  270. },
  271. endChange: function(e) {
  272. this.chooseEnd = e.detail.value;
  273. },
  274. toChoose() {
  275. let startYear = this.years[this.chooseStart[0]];
  276. let startMonth = this.months[this.chooseStart[1]];
  277. let startDay = this.days[this.chooseStart[2]];
  278. let endYear = this.years[this.chooseEnd[0]];
  279. let endMonth = this.months[this.chooseEnd[1]];
  280. let endDay = this.days[this.chooseEnd[2]];
  281. if (+endYear == +startYear) {
  282. if (endMonth == +startMonth) {
  283. if (+endDay >= +startDay) {
  284. this.getTimeList(startYear, endYear, startMonth, endMonth, startDay, endDay);
  285. } else {
  286. uni.showToast({
  287. title: '结束时间不应早于开始时间',
  288. icon: 'none',
  289. duration: 1000
  290. })
  291. }
  292. } else if (+endMonth > +startMonth) {
  293. this.getTimeList(startYear, endYear, startMonth, endMonth, startDay, endDay);
  294. } else if (+endMonth < +startMonth) {
  295. uni.showToast({
  296. title: '结束时间不应早于开始时间',
  297. icon: 'none',
  298. duration: 1000
  299. })
  300. }
  301. } else if (+endYear > +startYear) {
  302. this.getTimeList(startYear, endYear, startMonth, endMonth, startDay, endDay);
  303. } else if (+endYear < +startYear) {
  304. uni.showToast({
  305. title: '结束时间不应早于开始时间',
  306. icon: 'none',
  307. duration: 1000
  308. });
  309. }
  310. },
  311. getTimeList(startYear, endYear, startMonth, endMonth, startDay, endDay) {
  312. this.otherday = true;
  313. if (startMonth >= 1 && startMonth <= 9) {
  314. startMonth = "0" + startMonth;
  315. }
  316. if (startDay >= 1 && startDay <= 9) {
  317. startDay = "0" + startDay;
  318. }
  319. this.start_time = startYear + '-' + startMonth + '-' + startDay;
  320. if (endMonth >= 1 && endMonth <= 9) {
  321. endMonth = "0" + endMonth;
  322. }
  323. if (endDay >= 1 && endDay <= 9) {
  324. endDay = "0" + endDay;
  325. }
  326. this.end_time = endYear + '-' + endMonth + '-' + endDay;
  327. this.chooseTime = false;
  328. this.showTime = this.start_time.substr(5).replace('-','.') + '-' + this.end_time.substr(5).replace('-','.')
  329. uni.showLoading({
  330. mask: true,
  331. title: '加载中...'
  332. });
  333. this.page = 1;
  334. this.list = [];
  335. this.getList();
  336. },
  337. choose() {
  338. let that = this;
  339. that.start = [];
  340. that.end = [];
  341. let startDay;
  342. let endDay;
  343. if (that.start_time) {
  344. startDay = that.start_time;
  345. } else {
  346. startDay = that.today;
  347. }
  348. if (that.end_time) {
  349. endDay = that.end_time;
  350. } else {
  351. endDay = that.today;
  352. }
  353. that.years.forEach(function(row, index) {
  354. if (startDay.substring(0, 4) == that.years[index]) {
  355. that.start[0] = +index
  356. }
  357. })
  358. that.months.forEach(function(row, index) {
  359. if (startDay.substring(5, 7) == that.months[index]) {
  360. that.start[1] = +index
  361. }
  362. })
  363. that.days.forEach(function(row, index) {
  364. if (startDay.substring(8, 10) == that.days[index]) {
  365. that.start[2] = +index
  366. }
  367. })
  368. that.years.forEach(function(row, index) {
  369. if (endDay.substring(0, 4) == that.years[index]) {
  370. that.end[0] = +index
  371. }
  372. })
  373. that.months.forEach(function(row, index) {
  374. if (endDay.substring(5, 7) == that.months[index]) {
  375. that.end[1] = +index
  376. }
  377. })
  378. that.days.forEach(function(row, index) {
  379. if (endDay.substring(8, 10) == that.days[index]) {
  380. that.end[2] = +index
  381. }
  382. })
  383. that.chooseStart = that.start;
  384. that.chooseEnd = that.end;
  385. that.chooseTime = !that.chooseTime;
  386. },
  387. toDelete() {
  388. this.$request({
  389. url: this.$api.foot.del,
  390. data: {
  391. id: this.detail.id
  392. }
  393. }).then(response => {
  394. uni.hideLoading();
  395. this.$hideLoading();
  396. if(response.code === 0) {
  397. this.showText = response.msg;
  398. this.closeMenu();
  399. this.dateList.goods.splice(this.index,1);
  400. setTimeout(() => {
  401. this.showText = false;
  402. },1000);
  403. }else {
  404. uni.showToast({
  405. title: response.msg,
  406. icon: 'none',
  407. duration: 1000
  408. });
  409. }
  410. }).catch(() => {
  411. uni.hideLoading();
  412. this.$hideLoading();
  413. });
  414. },
  415. toShow(goods,item,index) {
  416. this.detail = goods;
  417. this.dateList = item;
  418. this.index = index;
  419. this.showMenu = true;
  420. },
  421. closeMenu() {
  422. this.detail = {};
  423. this.beDelete = false;
  424. this.showMenu = false;
  425. },
  426. cancel() {
  427. this.chooseTime = false;
  428. this.otherday = false;
  429. this.chooseStart = [];
  430. this.chooseEnd = [];
  431. },
  432. getList() {
  433. let that = this;
  434. if(that.loading) {
  435. return false
  436. }
  437. that.loading = true;
  438. that.$request({
  439. url: that.$api.foot.index,
  440. data: {
  441. start_time: that.start_time + ' 00:00:00',
  442. end_time: that.end_time + ' 23:59:59',
  443. page: that.page
  444. }
  445. }).then(response=>{
  446. that.loading = false;
  447. uni.hideLoading();
  448. that.$hideLoading();
  449. if(response.code === 0) {
  450. if(that.list.length > 0) {
  451. if(that.list[that.list.length-1].date == response.list[0].date) {
  452. that.list[that.list.length-1].goods = that.list[that.list.length-1].goods.concat(response.list.shift().goods);
  453. }
  454. that.list = that.list.concat(response.list)
  455. }else {
  456. that.list = that.list.concat(response.list)
  457. }
  458. }else {
  459. uni.showToast({
  460. title: response.msg,
  461. icon: 'none',
  462. duration: 1000
  463. });
  464. }
  465. }).catch(() => {
  466. that.loading = false;
  467. uni.hideLoading();
  468. that.$hideLoading();
  469. that.$event.on(that.$const.EVENT_USER_LOGIN).then(()=>{
  470. that.getList();
  471. });
  472. });
  473. },
  474. toFavorite() {
  475. let that = this;
  476. that.$request({
  477. url: that.$api.user.favorite_add,
  478. data: {
  479. goods_id: that.detail.goods_id
  480. }
  481. }).then(response=>{
  482. if(response.code === 0 || response.msg === '已经收藏过啦!') {
  483. that.showText = response.msg;
  484. that.closeMenu();
  485. setTimeout(v=>{
  486. that.showText = false;
  487. },1000);
  488. }else {
  489. uni.showToast({
  490. title: response.msg,
  491. icon: 'none',
  492. duration: 1000
  493. });
  494. }
  495. })
  496. },
  497. // 获取日期
  498. getDate() {
  499. let myDate = new Date();
  500. // 今天
  501. let year = myDate.getFullYear();
  502. let month = myDate.getMonth() + 1;
  503. if (month >= 1 && month <= 9) {
  504. month = "0" + month;
  505. }
  506. let now = myDate.getDate();
  507. this.today = year + "-" + month + "-" + now;
  508. let timestamp = Date.parse(new Date());
  509. // 昨天
  510. let yesterTime = (timestamp / 1000 - 24 * 60 * 60) * 1000;
  511. let yesterDate = new Date(yesterTime)
  512. let yester_year = yesterDate.getFullYear();
  513. let yester_month = yesterDate.getMonth() + 1;
  514. if (yester_month >= 1 && yester_month <= 9) {
  515. yester_month = "0" + yester_month;
  516. }
  517. let yester_now = yesterDate.getDate();
  518. this.yesterday = yester_year + "-" + yester_month + "-" + yester_now;
  519. // 7天
  520. let weekTime = (timestamp / 1000 - 24 * 60 * 60 * 7) * 1000;
  521. let weekDate = new Date(weekTime)
  522. let week_year = weekDate.getFullYear();
  523. let week_month = weekDate.getMonth() + 1;
  524. if (week_month >= 1 && week_month <= 9) {
  525. week_month = "0" + week_month;
  526. }
  527. let week_now = weekDate.getDate();
  528. this.weekday = week_year + "-" + week_month + "-" + week_now;
  529. // 30天
  530. let monthTime = (timestamp / 1000 - 24 * 60 * 60 * 30) * 1000;
  531. let monthDate = new Date(monthTime)
  532. let month_year = monthDate.getFullYear();
  533. let month_month = monthDate.getMonth() + 1;
  534. if (month_month >= 1 && month_month <= 9) {
  535. month_month = "0" + month_month;
  536. }
  537. let month_now = monthDate.getDate();
  538. this.monthday = month_year + "-" + month_month + "-" + month_now;
  539. },
  540. chooseDate(start,end) {
  541. if(this.loading) {
  542. return false
  543. }
  544. uni.showLoading({
  545. mask: true,
  546. title: '加载中...'
  547. });
  548. this.otherday = false;
  549. this.list = [];
  550. this.page = 1;
  551. this.start_time = start;
  552. this.end_time = end;
  553. this.getList();
  554. }
  555. },
  556. onLoad() { this.$commonLoad.onload();
  557. this.$showLoading({
  558. type: 'global',
  559. text: '加载中...'
  560. });
  561. this.getDate();
  562. this.start_time = this.today;
  563. this.end_time = this.today;
  564. this.getList();
  565. },
  566. onReachBottom() {
  567. this.page++;
  568. this.getList();
  569. }
  570. }
  571. </script>
  572. <style scoped lang="scss">
  573. .out-dialog {
  574. width: #{238rpx};
  575. height: #{238rpx};
  576. position: absolute;
  577. border-top-left-radius: #{16rpx};
  578. border-top-right-radius: #{16rpx};
  579. top: 0;
  580. left: 0;
  581. background-color: rgba(0,0,0,.5);
  582. image {
  583. border-top-left-radius: #{16rpx};
  584. border-top-right-radius: #{16rpx};
  585. width: #{238rpx};
  586. height: #{238rpx};
  587. }
  588. }
  589. .no-list {
  590. font-size: #{32rpx};
  591. color: #999999;
  592. height: #{800rpx};
  593. width: 100%;
  594. image {
  595. width: #{115rpx};
  596. height: #{122rpx};
  597. margin-bottom: #{40rpx};
  598. }
  599. .to-mall {
  600. width: #{320rpx};
  601. height: #{80rpx};
  602. line-height: #{80rpx};
  603. text-align: center;
  604. border-radius: #{40rpx};
  605. background-color: #FF4544;
  606. color: #fff;
  607. margin-top: #{40rpx};
  608. }
  609. }
  610. .dialog-title {
  611. position: fixed;
  612. top: 0;
  613. left: 0;
  614. width: 100%;
  615. height: 100%;
  616. view {
  617. padding: #{22rpx} #{32rpx};
  618. background-color: rgba(0,0,0,.8);
  619. border-radius: #{8rpx};
  620. color: #fff;
  621. font-size: #{26rpx};
  622. }
  623. }
  624. .tab-list {
  625. position: fixed;
  626. top: 0;
  627. left: 0;
  628. z-index: 10;
  629. background-color: #fff;
  630. padding: #{20rpx} 0;
  631. width: 100%;
  632. .tab {
  633. width: #{600rpx};
  634. height: #{72rpx};
  635. border-radius: #{40rpx};
  636. font-size: #{28rpx};
  637. color: #ff4544;
  638. border: #{2rpx} solid #ff4544;
  639. margin: 0 auto #{20rpx};
  640. view {
  641. width: #{300rpx};
  642. height: #{72rpx};
  643. text-align: center;
  644. line-height: #{72rpx};
  645. }
  646. .active {
  647. border-radius: #{36rpx};
  648. background-color: #ff4544;
  649. color: #fff;
  650. }
  651. }
  652. .tab-date {
  653. view {
  654. padding: 0 #{24rpx};
  655. height: #{60rpx};
  656. line-height: #{60rpx};
  657. margin-left: #{24rpx};
  658. border-radius: #{40rpx};
  659. color: #353535;
  660. font-size: #{26rpx};
  661. display: inline-block;
  662. }
  663. .customize {
  664. width: #{172rpx};
  665. padding: 0;
  666. text-align: center;
  667. }
  668. .active {
  669. background-color: #ff4544;
  670. color: #fff;
  671. }
  672. }
  673. }
  674. .tab-placeholder {
  675. height: #{192rpx};
  676. }
  677. .list {
  678. padding-left: #{9rpx};
  679. .date-info {
  680. padding-left: #{21rpx};
  681. color: #999999;
  682. font-size: #{26rpx};
  683. height: #{68rpx};
  684. line-height: #{68rpx};
  685. }
  686. .goods {
  687. background-color: #fff;
  688. font-size: #{28rpx};
  689. border-radius: #{16rpx};
  690. margin-right: #{9rpx};
  691. margin-bottom: #{9rpx};
  692. color: #353535;
  693. position: relative;
  694. .goods-img {
  695. height: #{238rpx};
  696. width: #{238rpx};
  697. border-top-left-radius: #{16rpx};
  698. border-top-right-radius: #{16rpx};
  699. }
  700. .goods-info {
  701. padding: #{8rpx} #{24rpx} #{16rpx};
  702. border-bottom-left-radius: #{16rpx};
  703. border-bottom-right-radius: #{16rpx};
  704. width: #{238rpx};
  705. position: relative;
  706. color: #ff4544;
  707. .goods-name {
  708. color: #353535;
  709. margin-bottom: #{10rpx};
  710. height: #{76rpx};
  711. }
  712. .more {
  713. position: absolute;
  714. right: 0;
  715. bottom: 0;
  716. height: #{60rpx};
  717. width: #{60rpx};
  718. image {
  719. width: #{32rpx};
  720. height: #{6rpx};
  721. }
  722. }
  723. }
  724. }
  725. }
  726. .dialog {
  727. position: fixed;
  728. top: 0;
  729. left: 0;
  730. width: 100%;
  731. height: 100%;
  732. z-index: 20;
  733. background-color: rgba(0,0,0,.5);
  734. .other-area {
  735. position: absolute;
  736. top: 0;
  737. left: 0;
  738. width: 100%;
  739. height: 100%;
  740. z-index: 21;
  741. }
  742. .menu-card {
  743. padding-top: #{50rpx};
  744. position: absolute;
  745. bottom: 0;
  746. left: 0;
  747. width: 100%;
  748. height: #{312rpx};
  749. z-index: 22;
  750. border-top-left-radius: #{16rpx};
  751. border-top-right-radius: #{16rpx};
  752. background-color: rgba(255,255,255,.85);
  753. .close-menu-icon {
  754. position: absolute;
  755. top: 0;
  756. right: 0;
  757. padding: #{24rpx};
  758. image {
  759. width: #{21rpx};
  760. height: #{21rpx};
  761. display: block;
  762. }
  763. }
  764. .close-menu {
  765. position: absolute;
  766. bottom: 0;
  767. left: 0;
  768. width: 100%;
  769. height: #{100rpx};
  770. background-color: #fff;
  771. font-size: #{30rpx};
  772. color: #545454;
  773. font-weight: bold;
  774. text-align: center;
  775. line-height: #{100rpx};
  776. }
  777. .menu-item {
  778. font-size: #{23rpx};
  779. color: #545454;
  780. >view {
  781. text-align: center;
  782. width: #{96rpx};
  783. margin: 0 #{17rpx};
  784. .menu-icon {
  785. width: #{96rpx};
  786. height: #{96rpx};
  787. margin-bottom: #{4rpx};
  788. }
  789. }
  790. }
  791. }
  792. }
  793. .tips-dialog {
  794. position: fixed;
  795. top: 0;
  796. left: 0;
  797. width: 100%;
  798. height: 100%;
  799. z-index: 200;
  800. background-color: rgba(0,0,0,.5);
  801. .delete-info {
  802. width: #{620rpx};
  803. height: #{280rpx};
  804. border-radius: #{16rpx};
  805. background-color: #fff;
  806. font-size: #{36rpx};
  807. color: #353535;
  808. position: relative;
  809. .delete-content {
  810. width: #{620rpx};
  811. text-align: center;
  812. margin-top: #{76rpx};
  813. }
  814. .delete-btn {
  815. position: absolute;
  816. width: 100%;
  817. bottom: 0;
  818. left: 0;
  819. height: #{88rpx};
  820. border-top: #{1rpx} solid #e2e2e2;
  821. .line {
  822. position: absolute;
  823. left: 50%;
  824. margin-left: #{-1rpx};
  825. bottom: #{28rpx};
  826. width: #{1rpx};
  827. height: #{32rpx};
  828. background-color: #e2e2e2;
  829. }
  830. .btn {
  831. width: 50%;
  832. height: #{88rpx};
  833. line-height: #{88rpx};
  834. text-align: center;
  835. color: #666666;
  836. }
  837. .btn.submit-btn {
  838. color: #ff4544;
  839. }
  840. }
  841. }
  842. }
  843. .time-dialog {
  844. position: fixed;
  845. top: 0;
  846. left: 0;
  847. width: 100%;
  848. height: 100%;
  849. z-index: 30;
  850. background-color: rgba(0,0,0,.3);
  851. .time-dialog-content {
  852. width: #{620rpx};
  853. height: #{778rpx};
  854. background-color: #fff;
  855. border-radius: #{16rpx};
  856. font-size: #{28rpx};
  857. .time-dialog-title {
  858. width: #{620rpx};
  859. text-align: center;
  860. margin-top: #{30rpx};
  861. font-size: #{32rpx};
  862. color: #353535;
  863. }
  864. .choose-time {
  865. margin-top: #{30rpx};
  866. padding: 0 #{33rpx} #{33rpx};
  867. font-size: #{28rpx};
  868. color: #353535;
  869. position: relative;
  870. .time-title {
  871. color: #666666;
  872. }
  873. .year-1 {
  874. position: absolute;
  875. left: #{192rpx};
  876. top: #{128rpx};
  877. }
  878. .month-1 {
  879. position: absolute;
  880. left: #{380rpx};
  881. top: #{128rpx};
  882. }
  883. .day-1 {
  884. position: absolute;
  885. right: #{32rpx};
  886. top: #{128rpx};
  887. }
  888. .year-2 {
  889. position: absolute;
  890. left: #{192rpx};
  891. bottom: #{148rpx};
  892. }
  893. .month-2 {
  894. position: absolute;
  895. left: #{380rpx};
  896. bottom: #{148rpx};
  897. }
  898. .day-2 {
  899. position: absolute;
  900. right: #{32rpx};
  901. bottom: #{148rpx};
  902. }
  903. }
  904. .btn-area {
  905. height: #{88rpx};
  906. position: relative;
  907. border-top: #{2rpx} solid #f1f1f1;
  908. }
  909. .btn-area.other-btn-area {
  910. margin-top: #{10rpx};
  911. }
  912. .btn-area .line {
  913. height: #{32rpx};
  914. width: #{1rpx};
  915. background-color: #e2e2e2;
  916. position: absolute;
  917. top: #{28rpx};
  918. left: 0;
  919. right: 0;
  920. margin: 0 auto;
  921. }
  922. .submit-btn {
  923. height: #{88rpx};
  924. line-height: #{88rpx};
  925. font-size: #{32rpx};
  926. color: #666;
  927. width: #{310rpx};
  928. text-align: center;
  929. }
  930. .submit-btn.be-submit {
  931. color: #ff4544;
  932. }
  933. .picker-view {
  934. width: #{556rpx};
  935. height: #{216rpx};
  936. margin: 0 auto #{25rpx};
  937. text-align: center;
  938. .sure-color {
  939. color: #ff4544;
  940. }
  941. .cardinal-color {
  942. color: #999999;
  943. }
  944. .even-color {
  945. color: #cdcdcd;
  946. }
  947. }
  948. .picker-view view {
  949. line-height: #{72rpx};
  950. }
  951. }
  952. }
  953. </style>