extraItem.vue 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678
  1. <template>
  2. <view class="extra-item">
  3. <z-slide-card class="extra-item_card" :title="title" :visible.sync="isvisible" @beforeClose="beforeClose"
  4. rightBtnText="确定" @rightClick="submit">
  5. <z-tabs v-if="!isWedding" class="shadow-2" :tabs="['额外项目','点餐项目']" v-model="stateTab" @change="changeTabs" bgcolor="white"
  6. textselectedcolor="#333333"></z-tabs>
  7. <!-- 婚庆套餐只有额外项目 -->
  8. <view :class="isWedding?'extra-item-content_2':'extra-item-content'" class="flex-n " v-if="stateTab==0">
  9. <scroll-view class="extra-item_left" scroll-y>
  10. <view class="extra-item_left_item" :class="extraIndex==index?'extra-item_left_item_choose':''" @click="extraIndex=index"
  11. v-for="(item,index) in itemsExTree" :key="item.itemTypeCode">{{item.itemTypeName}}</view>
  12. <view class="item_zw_1"></view>
  13. </scroll-view>
  14. <scroll-view class="extra-item_right" scroll-y v-if="itemsExTree&&itemsExTree.length&&itemsExTree[extraIndex]&&itemsExTree[extraIndex].itemsExs.length">
  15. <view class="add_item" style="border-bottom: 1px solid #f1f1f1;" v-for="(item,index) in itemsExTree[extraIndex].itemsExs" :key="index">
  16. <view class="flex-n fac fjb" style="width: 400rpx;">
  17. <view class="add_item_name line-1">{{item.itemName}}</view>
  18. <view class="add_item_price nowarp">单价:{{item.itemPrice}}</view>
  19. </view>
  20. <view class="flex-n fje">
  21. <z-number class="mt-20" v-model="item.itemCount" @change="addChange(0)"></z-number>
  22. </view>
  23. </view>
  24. <view class="item_zw_2"></view>
  25. </scroll-view>
  26. </view>
  27. <view class="package-content flex-n " v-else>
  28. <scroll-view class="extra-item_left" scroll-y>
  29. <view class="extra-item_left_item" :class="packageIndex==index?'extra-item_left_item_choose':''" @click="packageIndex=index"
  30. v-for="(item,index) in itemsFoodTree" :key="index">{{item.foodTypeName}}</view>
  31. <view class="item_zw_1"></view>
  32. </scroll-view>
  33. <scroll-view class="extra-item_right" scroll-y>
  34. <view class="add_item" style="border-bottom: 1px solid #f1f1f1;" v-if="itemsFoodTree&&itemsFoodTree.length&&itemsFoodTree[packageIndex]&&itemsFoodTree[packageIndex].itemsFoods.length"
  35. v-for="(item,index) in itemsFoodTree[packageIndex].itemsFoods" :key="index">
  36. <view class="flex-n fac fjb" style="width: 400rpx;">
  37. <view class="add_item_name line-1">{{item.foodName}}</view>
  38. <view class="add_item_price nowarp" style="margin-right: 0px!important;">单价:{{item.foodPrice}}</view>
  39. </view>
  40. <view class="flex-n fje">
  41. <z-number class="mt-20" v-model="item.foodCount" @change="addChange(0)"></z-number>
  42. </view>
  43. <!-- <z-number class="mt-10" v-model="item.foodCount" @change="addChange(0)"></z-number> -->
  44. </view>
  45. <view class="item_zw_2"></view>
  46. </scroll-view>
  47. </view>
  48. <view class="shop_cart flex-n fac fjb shadow-2">
  49. <view class="shop_cart_btn iconfont icongouwuche4" @click="lookDetail"></view>
  50. <!-- <view class="shop_cart_text flex-1" style="margin-left: 174rpx;">
  51. 应收价格:10000000
  52. </view> -->
  53. <view style="margin-left: 174rpx;"></view>
  54. <view class="shop_cart_text flex-n fac mr-30" v-if="!hideReal">
  55. 实收金额:
  56. <z-input class="shop_cart_input" type="number" v-model="realMoney"></z-input>
  57. </view>
  58. </view>
  59. <!-- 划出菜单 -->
  60. <view class="mask" v-if="showAddList" @click.self="lookDetail">
  61. <view class="cart_menu_list shadow-2" :class="[{'cart_menu_list_show':showAddList,'cart_menu_list_hide':hideAddList}]">
  62. <view class="cart_menu_list_top">
  63. <view class="cart_menu_list_total">应收价格:{{totalprice}}</view>
  64. </view>
  65. <view class="line"></view>
  66. <!-- <view class="cart_menu_list_empty mt-20">购物车是空的</view> -->
  67. <scroll-view scroll-y class="cart_menu_list_content">
  68. <view class="cart_menu_list_label plr-40 flex-n fac fje">
  69. <view class="text mr-20">额外项目</view>
  70. <view class="cart_menu_list_edit iconfont iconbianji" @click="addItem"></view>
  71. </view>
  72. <view class="plr-40 pt-20">
  73. <view class="flex-n fac fjb add_item2" v-for="(item,index) in selectedItemsExTree" :key="index">
  74. <template v-if="!item.isManual&&item">
  75. <view class="flex-n fac fjb" style="width: 460rpx;">
  76. <view class="add_item_name line-1" :style="{'color':item.isChange=='1'?'#cf9236!important':''}">{{item.itemName}}</view>
  77. <view class="add_item_price nowarp flex-n fac">¥<z-input class="add-input ml-10" type="number" v-model="item.itemPrice"></z-input>
  78. </view>
  79. </view>
  80. <z-number v-model="item.itemCount" @change="addChange(1)"></z-number>
  81. </template>
  82. <template v-else>
  83. <view class="flex-n fac fjb" style="width: 460rpx;">
  84. <view class="add_item_name line-1">
  85. <z-input placeholder="点击填写" class="add-input-name" v-model="item.itemName"></z-input>
  86. </view>
  87. <view class="add_item_price nowarp flex-n fac" v-if="item">¥<z-input type="number" class="add-input ml-10"
  88. v-model="item.itemPrice"></z-input>
  89. </view>
  90. </view>
  91. <z-number v-model="item.itemCount" @change="addChange(1)"></z-number>
  92. <view class="add_item_del iconfont iconshanchu-copy-copy" @click="selectedItemsExTree.splice(index,1)"></view>
  93. </template>
  94. </view>
  95. </view>
  96. <view class="cart_menu_list_label plr-40 flex-n fac fje mt-20">
  97. <view class="text mr-20">点餐项目</view>
  98. <view class="cart_menu_list_edit iconfont iconbianji" @click="addPackage"></view>
  99. </view>
  100. <view class=" plr-40 pt-20">
  101. <view class="flex-n fac fjb add_item2" v-for="(item,index) in selectedItemsFoodTree" :key="index">
  102. <template v-if="!item.isManual">
  103. <view class="flex-n fac fjb" style="width: 460rpx;">
  104. <view class="add_item_name line-1" :style="{'color':item.isChange=='1'?'#cf9236!important':''}">{{item.foodName}}</view>
  105. <view class="add_item_price nowarp flex-n fac">¥<z-input type="number" class="add-input ml-10" v-model="item.foodPrice"></z-input>
  106. </view>
  107. </view>
  108. <z-number v-model="item.foodCount" @change="addChange(1)"></z-number>
  109. </template>
  110. <template v-else>
  111. <view class="flex-n fac fjb" style="width: 460rpx;">
  112. <view class="add_item_name line-1">
  113. <z-input placeholder="点击填写" class="add-input-name" v-model="item.foodName"></z-input>
  114. </view>
  115. <view class="add_item_price nowarp flex-n fac">¥<z-input type="number" class="add-input ml-10" v-model="item.foodPrice"></z-input>
  116. </view>
  117. </view>
  118. <z-number v-model="item.foodCount" @change="addChange(1)"></z-number>
  119. <view class="add_item_del iconfont iconshanchu-copy-copy" @click="selectedItemsFoodTree.splice(index,1)"></view>
  120. </template>
  121. </view>
  122. </view>
  123. <view style="height: 80rpx;"></view>
  124. </scroll-view>
  125. </view>
  126. </view>
  127. </z-slide-card>
  128. </view>
  129. </template>
  130. <script>
  131. const app = getApp({
  132. allowDefault: true
  133. });
  134. export default {
  135. props: {
  136. visible: Boolean,
  137. title: String,
  138. type: {
  139. type: String,
  140. default: ''
  141. },
  142. value: String | Array | Object,
  143. packageId: String,
  144. isWedding: Boolean,
  145. hideReal: Boolean
  146. },
  147. model: {
  148. prop: 'value',
  149. },
  150. data() {
  151. return {
  152. isvisible: false,
  153. stateTab: 0,
  154. extraIndex: 0,
  155. packageIndex: 0,
  156. num: 0,
  157. showAddList: false,
  158. hideAddList: false,
  159. itemsExTree: [],
  160. itemsFoodTree: [],
  161. oldItemsExTree: [],
  162. oldItemsFoodTree: [],
  163. selectedItemsExTree: [],
  164. selectedItemsFoodTree: [],
  165. realMoney: 0, //实收金额
  166. }
  167. },
  168. onBackPress() {
  169. if(this.visible) {
  170. this.visible = false;
  171. return true;
  172. }
  173. },
  174. watch: {
  175. value(newval, oldval) {
  176. console.log('zz',newval);
  177. if (newval) {
  178. console.log(newval)
  179. if (this.isWedding) {
  180. this.oldItemsExTree = this.value;
  181. this.selectedItemsExTree = this.value;
  182. } else {
  183. this.oldItemsExTree = this.value.itemsExTree;
  184. this.oldItemsFoodTree = this.value.itemsFoodTree;
  185. this.selectedItemsExTree = this.value.itemsExTree;
  186. this.selectedItemsFoodTree = this.value.itemsFoodTree;
  187. }
  188. }
  189. },
  190. visible(newval) {
  191. this.isvisible = newval;
  192. if (newval) {
  193. if (this.isWedding) {
  194. this.getitemsExTree();
  195. } else {
  196. this.getitemsExTree();
  197. this.getitemsFoodTree();
  198. }
  199. }
  200. },
  201. totalprice(newval, oldval) {
  202. if (newval) {
  203. this.realMoney = newval;
  204. }
  205. }
  206. },
  207. computed: {
  208. totalprice() {
  209. var money = 0,
  210. itemsFoodTree = this.selectedItemsFoodTree,
  211. itemsExTree = this.selectedItemsExTree;
  212. for (var i in itemsExTree) {
  213. money += itemsExTree[i].itemPrice * itemsExTree[i].itemCount;
  214. }
  215. for (var i in itemsFoodTree) {
  216. money += itemsFoodTree[i].foodPrice * itemsFoodTree[i].foodCount;
  217. }
  218. return money.toFixed(2);
  219. }
  220. },
  221. methods: {
  222. //获取额外项目树
  223. getitemsExTree() {
  224. console.log(this.value)
  225. var itemsExs = this.value.itemsExs || [];
  226. this.$axios.post('app/itemsEx/itemsExTreeByStoreId', {
  227. "storeId": uni.getStorageSync('storeId')
  228. }).then(res => {
  229. console.log('额外项目树', res)
  230. var itemsExTree = res.data.itemsExTree;
  231. for (var i in itemsExTree) {
  232. for (var j in itemsExTree[i].itemsExs) {
  233. itemsExTree[i].itemsExs[j].itemCount = 0;
  234. itemsExTree[i].itemsExs[j].isManual = 0;
  235. if (this.title == '修改套餐')
  236. itemsExTree[i].itemsExs[j].isChange = '1';
  237. else
  238. itemsExTree[i].itemsExs[j].isChange == '0';
  239. }
  240. }
  241. for (var i in this.selectedItemsExTree) {
  242. for (var j in itemsExTree) {
  243. for (var k in itemsExTree[j].itemsExs) {
  244. if (this.selectedItemsExTree[i].id == itemsExTree[j].itemsExs[k].id) {
  245. itemsExTree[j].itemsExs[k].isChange = this.selectedItemsExTree[i].isChange;
  246. break;
  247. }
  248. }
  249. }
  250. }
  251. this.itemsExTree = itemsExTree;
  252. this.addChange(1);
  253. }).catch(err => {
  254. console.log(err.msg);
  255. })
  256. },
  257. getitemsFoodTree() {
  258. var itemsFoods = this.value.itemsFoods || [];
  259. this.$axios.post('app/itemsFood/itemsFoodTreeByStoreId', {
  260. "storeId": uni.getStorageSync('storeId')
  261. }).then(res => {
  262. console.log('套餐项目树', res)
  263. var itemsFoodTree = res.data.itemsFoodTree;
  264. for (var i in itemsFoodTree) {
  265. for (var j in itemsFoodTree[i].itemsFoods) {
  266. itemsFoodTree[i].itemsFoods[j].foodCount = 0;
  267. itemsFoodTree[i].itemsFoods[j].isManual = 0;
  268. if (this.title == '修改套餐'){
  269. itemsFoodTree[i].itemsFoods[j].isChange = '1';
  270. }
  271. else
  272. itemsFoodTree[i].itemsFoods[j].isChange = '0';
  273. }
  274. }
  275. for (var i in this.selectedItemsFoodTree) {
  276. for (var j in itemsFoodTree) {
  277. for (var k in itemsFoodTree[j].itemsFoods) {
  278. if (this.selectedItemsFoodTree[i].id == itemsFoodTree[j].itemsFoods[k].id) {
  279. itemsFoodTree[j].itemsFoods[k].isChange = this.selectedItemsFoodTree[i].isChange;
  280. break;
  281. }
  282. }
  283. }
  284. }
  285. this.itemsFoodTree = itemsFoodTree;
  286. this.addChange(1);
  287. }).catch(err => {
  288. console.log(err.msg);
  289. })
  290. },
  291. changeTabs(data) {
  292. console.log(data)
  293. },
  294. lookDetail() {
  295. if (this.showAddList) {
  296. this.hideAddList = true;
  297. setTimeout(() => {
  298. this.showAddList = false;
  299. }, 300)
  300. } else {
  301. this.hideAddList = false;
  302. this.showAddList = true;
  303. }
  304. },
  305. addChange(state) {
  306. if (state == 0) { //普通列表改变
  307. if (this.isWedding) {
  308. this.compareLSvEW();
  309. } else {
  310. this.compareLSvEW();
  311. this.compareLSvTC();
  312. }
  313. } else { //购物车列表改变
  314. if (this.isWedding) {
  315. this.compareEWvLS();
  316. } else {
  317. this.compareEWvLS();
  318. this.compareTCvLS();
  319. }
  320. }
  321. },
  322. compareLSvEW() {
  323. let itemsExTree = this.itemsExTree,
  324. selectedItemsExTree = [],
  325. oldselectedItemsExTree = this.selectedItemsExTree.filter((item) => item.isManual == 1); //过滤自定义添加
  326. for (var i = 0, len = itemsExTree.length; i < len; i++) {
  327. for (var j = 0; j < itemsExTree[i].itemsExs.length; j++) {
  328. if (itemsExTree[i].itemsExs[j].itemCount > 0) {
  329. //深拷贝
  330. selectedItemsExTree.push(JSON.parse(JSON.stringify(itemsExTree[i].itemsExs[j])));
  331. }
  332. }
  333. }
  334. this.selectedItemsExTree = selectedItemsExTree.concat(oldselectedItemsExTree).filter((item) => item.itemCount > 0);
  335. },
  336. compareEWvLS() {
  337. let itemsExTree = this.itemsExTree;
  338. for (var i = 0, len = itemsExTree.length; i < len; i++) {
  339. for (var j = 0; j < itemsExTree[i].itemsExs.length; j++) {
  340. for (var k = 0; k < this.selectedItemsExTree.length; k++) {
  341. if (itemsExTree[i].itemsExs[j].id == this.selectedItemsExTree[k].id) {
  342. itemsExTree[i].itemsExs[j].itemCount = this.selectedItemsExTree[k].itemCount;
  343. break;
  344. }
  345. }
  346. }
  347. }
  348. this.selectedItemsExTree = this.selectedItemsExTree.filter((item) => item.itemCount > 0);
  349. this.itemsExTree = itemsExTree;
  350. },
  351. compareLSvTC() {
  352. let itemsFoodTree = this.itemsFoodTree,
  353. selectedItemsFoodTree = [],
  354. oldselectedItemsFoodTree = this.selectedItemsFoodTree.filter((item) => item.isManual == 1); //过滤自定义添加
  355. for (var i = 0, len = itemsFoodTree.length; i < len; i++) {
  356. for (var j = 0; j < itemsFoodTree[i].itemsFoods.length; j++) {
  357. if (itemsFoodTree[i].itemsFoods[j].foodCount > 0) {
  358. //深拷贝
  359. selectedItemsFoodTree.push(JSON.parse(JSON.stringify(itemsFoodTree[i].itemsFoods[j])));
  360. }
  361. }
  362. }
  363. this.selectedItemsFoodTree = selectedItemsFoodTree.concat(oldselectedItemsFoodTree).filter((item) => item.foodCount >
  364. 0);
  365. },
  366. compareTCvLS() {
  367. let itemsFoodTree = this.itemsFoodTree;
  368. for (var i = 0, len = itemsFoodTree.length; i < len; i++) {
  369. for (var j = 0; j < itemsFoodTree[i].itemsFoods.length; j++) {
  370. for (var k = 0; k < this.selectedItemsFoodTree.length; k++) {
  371. if (itemsFoodTree[i].itemsFoods[j].id == this.selectedItemsFoodTree[k].id) {
  372. itemsFoodTree[i].itemsFoods[j].foodCount = this.selectedItemsFoodTree[k].foodCount;
  373. break;
  374. }
  375. }
  376. }
  377. }
  378. this.selectedItemsFoodTree = this.selectedItemsFoodTree.filter((item) => item.foodCount > 0)
  379. this.itemsFoodTree = itemsFoodTree;
  380. console.log(this.itemsFoodTree)
  381. },
  382. //增加项目
  383. addItem() {
  384. this.selectedItemsExTree.push({
  385. isManual: 1,
  386. itemName: '',
  387. itemPrice: '',
  388. itemCount: 1
  389. });
  390. this.addChange(1);
  391. },
  392. addPackage() {
  393. this.selectedItemsFoodTree.push({
  394. isManual: 1,
  395. foodName: '',
  396. foodPrice: '',
  397. foodCount: 1
  398. })
  399. this.addChange(1);
  400. },
  401. beforeClose() {
  402. if (this.isWedding) {
  403. this.$emit('input', this.oldItemsExTree)
  404. } else {
  405. this.$emit('input', {
  406. itemsExTree: this.oldItemsExTree,
  407. itemsFoodTree: this.oldItemsFoodTree
  408. });
  409. }
  410. this.$emit('update:visible', false)
  411. },
  412. submit() {
  413. //婚庆只有额外项目没有套餐
  414. if (this.isWedding) {
  415. this.$emit('input', this.selectedItemsExTree)
  416. } else {
  417. this.$emit('input', {
  418. itemsExTree: this.selectedItemsExTree,
  419. itemsFoodTree: this.selectedItemsFoodTree
  420. });
  421. }
  422. this.$emit('getTotal', {
  423. 'totalprice': this.totalprice,
  424. 'realMoney': this.realMoney
  425. });
  426. this.$emit('update:visible', false);
  427. }
  428. }
  429. }
  430. </script>
  431. <style scoped lang="scss">
  432. .mask {
  433. position: fixed;
  434. top: 0;
  435. left: 0;
  436. background: rgba(0, 0, 0, 0.3);
  437. width: 100%;
  438. height: 100%;
  439. z-index: 530;
  440. }
  441. .shop_cart {
  442. width: 100%;
  443. height: 110rpx;
  444. background: white;
  445. position: absolute;
  446. bottom: 0;
  447. left: 0;
  448. z-index: 555;
  449. .shop_cart_btn {
  450. position: absolute;
  451. width: 94rpx;
  452. height: 94rpx;
  453. bottom: 40rpx;
  454. font-size: 94rpx;
  455. border-radius: 50%;
  456. box-shadow: 10rpx 10rpx 20rpx #8fc0ff;
  457. left: 46rpx;
  458. color: #007AFF;
  459. z-index: 600;
  460. }
  461. .shop_cart_text {
  462. color: #333333;
  463. font-size: 28rpx;
  464. white-space: nowrap;
  465. .shop_cart_input {
  466. width: 185rpx;
  467. padding: 10rpx;
  468. border: 1px solid #0075FF;
  469. border-radius: 4rpx;
  470. }
  471. }
  472. }
  473. .extra-item-content{
  474. height: calc(100vh - 196rpx);
  475. }
  476. .package-content {
  477. height: calc(100vh - 196rpx);
  478. }
  479. .extra-item-content_2 {
  480. height: calc(100vh - 84rpx);
  481. }
  482. .extra-item_card {
  483. position: relative;
  484. }
  485. .extra-item_left {
  486. height: 100%;
  487. width: 200rpx;
  488. background: #FAFAFA;
  489. .extra-item_left_item {
  490. width: 200rpx;
  491. color: #888888;
  492. font-size: 28rpx;
  493. padding: 30rpx 0;
  494. text-align: center;
  495. }
  496. .extra-item_left_item_choose {
  497. background: white;
  498. color: #333333;
  499. }
  500. }
  501. .item_zw_1 {
  502. height: 139rpx;
  503. }
  504. .item_zw_2 {
  505. height: 100rpx;
  506. }
  507. .extra-item_right {
  508. height: 100%;
  509. width: calc(100% - 200rpx);
  510. }
  511. .add_item2 {
  512. padding: 7rpx 0rpx !important;
  513. position: relative;
  514. .add_item_del {
  515. position: absolute;
  516. width: 24rpx;
  517. font-size: 24rpx;
  518. height: 28rpx;
  519. right: -20rpx;
  520. color: red;
  521. }
  522. }
  523. .add_item,
  524. .add_item2 {
  525. padding: 35rpx 20rpx;
  526. line-height: 30rpx;
  527. position: relative;
  528. .add-input-name {
  529. width: 180rpx;
  530. padding: 5rpx 0;
  531. border: 1px solid #0075FF;
  532. border-radius: 4rpx;
  533. }
  534. .add_item_name {
  535. color: #333333;
  536. font-size: 28rpx !important;
  537. margin-right: 20rpx;
  538. }
  539. .add_item_price {
  540. color: #777777;
  541. font-size: 28rpx !important;
  542. margin-right: 40rpx;
  543. .add-input {
  544. width: 100rpx;
  545. padding: 5rpx 0;
  546. border: 1px solid #0075FF;
  547. border-radius: 4rpx;
  548. text-align: center;
  549. }
  550. }
  551. }
  552. @keyframes show {
  553. 0% {
  554. bottom: -500rpx;
  555. }
  556. 100% {
  557. bottom: 90rpx;
  558. }
  559. }
  560. @keyframes hide {
  561. 0% {
  562. bottom: 90rpx;
  563. }
  564. 100% {
  565. bottom: -500rpx;
  566. }
  567. }
  568. .cart_menu_list_show {
  569. animation: show .5s;
  570. animation-fill-mode: forwards;
  571. }
  572. .cart_menu_list_hide {
  573. animation: hide .5s;
  574. animation-fill-mode: forwards;
  575. }
  576. .cart_menu_list {
  577. width: 100%;
  578. background: white;
  579. border-radius: 8rpx 8rpx 0px 0px;
  580. position: absolute;
  581. bottom: 90rpx;
  582. left: 0;
  583. z-index: 540;
  584. .cart_menu_list_content {
  585. max-height: 330rpx;
  586. min-height: 200rpx;
  587. .cart_menu_list_label {
  588. font-size: 32rpx;
  589. line-height: 80rpx;
  590. border: 1px solid #eee;
  591. .cart_menu_list_edit {
  592. font-size: 34rpx;
  593. color: #2481EE;
  594. }
  595. }
  596. }
  597. .cart_menu_list_top {
  598. line-height: 87rpx;
  599. padding: 0 30rpx;
  600. .cart_menu_list_total {
  601. color: #333333;
  602. font-size: 28rpx;
  603. }
  604. .cart_menu_list_edit {
  605. font-size: 34rpx;
  606. color: #2481EE;
  607. }
  608. }
  609. .cart_menu_list_empty {
  610. color: #333333;
  611. font-size: 28rpx;
  612. text-align: center;
  613. }
  614. }
  615. </style>