多租户商城-商户小程序端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

832 lines
24 KiB

2 years ago
2 years ago
2 years ago
  1. <template>
  2. <view class="collection-box">
  3. <global-loading />
  4. <view class="tabsbox">
  5. <u-tabs :list="collectionTypeList" bar-width="60" :bold="false" active-color="#333333"
  6. inactive-color="#CCCCCC" :is-scroll="false" :current="collectionTypeFlag"
  7. @change="collectionTypeActive"></u-tabs>
  8. </view>
  9. <view v-if="collectionTypeFlag == 0">
  10. <view v-if="productCollect.length>0">
  11. <view class="wid function-box">
  12. <view class="finishbox" @click="finishClick" v-if="allCheckShow">完成</view>
  13. <view v-else class="flex-row-plus editicon-box flex-items fs28" @click="editClick">
  14. <image class="editicon" src="https://ceres.zkthink.com/static/images/collectionEditicon.png">
  15. </image>
  16. <text class="mar-left-10">编辑</text>
  17. </view>
  18. </view>
  19. <view class="swipe-box">
  20. <view class="actionBox" v-for="(item, index) in productCollect" :key="item.collectId"
  21. :index="index">
  22. <u-swipe-action :disabled="allCheckShow" ref="actionSwipe" :show="item.show" :autoClose="false" @open="productOpen(index)"
  23. @click="productActionClick" :options="options">
  24. <!-- :disabled="allCheckShow" -->
  25. <view class="flex-item" @click.stop="toGoodsDetails(item.productId,item.shopId,item.skuId)">
  26. <view class="item wid flex-row-plus flex-display">
  27. <view class="flex-items selctBtn" v-show="allCheckShow">
  28. <image mode="aspectFill" v-if="item.selected == 1"
  29. @click.stop="productItemSel(index,0)"
  30. src="https://ceres.zkthink.com/static/images/selectActive.png"
  31. class="cart-select-img"></image>
  32. <image mode="aspectFill" v-else @click.stop="productItemSel(index,1)"
  33. src="https://ceres.zkthink.com/static/images/selectEmpty.png"
  34. class="cart-select-img"></image>
  35. </view>
  36. <view class="infoCent flex-items">
  37. <image
  38. onerror="this.src='url(https://ceres.zkthink.com/static/root/default.png) no-repeat center';this.οnerrοr=null"
  39. class="product-img default-img" mode="aspectFill" :src="item.image" />
  40. <!-- 此层wrap在此为必写的否则可能会出现标题定位错误 -->
  41. <view class="title-wrap mar-left-20 priceBox">
  42. <text
  43. class="title u-line-2 fs28 font-color-333">{{ item.productName }}</text>
  44. <view class="flex-items">
  45. <!-- <image v-if="item.activityType" class="iconImg mar-right-10"
  46. :src="imgs[item.activityType]"></image> -->
  47. <image v-if="item.activityType===1" class="iconImg" src="https://ceres.zkthink.com/static/images/groupBuyIcon.png" alt="拼团icon"></image>
  48. <image v-if="item.activityType === 2" class="iconImg" src="https://ceres.zkthink.com/static/images/spikeIcon.png" alt="秒杀活动"></image>
  49. <image v-if="item.activityType === 3" class="iconImg discountIcon" src="https://zk-cereshop.oss-cn-shenzhen.aliyuncs.com/zkthink/2022-03-14/38184785db4b4fbca767ada611097ae9_discount.png" alt="限时折扣活动"></image>
  50. <image v-if="item.activityType === 4" class="iconImg" src="https://ceres.zkthink.com/static/images/spikeIcon.png" alt="平台秒杀"></image>
  51. <image v-if="item.activityType===5" class="iconImg" src="https://ceres.zkthink.com/static/images/discountListIcon.png" alt="平台折扣"></image>
  52. <image v-if="item.activityType===9" class="iconImg" src="https://ceres.zkthink.com/static/images/memberCenterIcon.png" alt="会员价"></image>
  53. <image v-if="item.activityType === 8" class="iconImg" src="https://zk-cereshop.oss-cn-shenzhen.aliyuncs.com/zkthink/2022-02-15/d0d8d96f28904167b271de4ae924d1a8_sceneMarketing.png" alt="场景营销"></image>
  54. <text class="fs40 font-color-C83732">¥</text>
  55. <text class="fs40 font-color-C83732 mar-right-20">{{item.price}}</text>
  56. <text
  57. class="font-color-CCC discountsPriceLine fs24">¥{{item.originalPrice}}</text>
  58. </view>
  59. </view>
  60. </view>
  61. </view>
  62. </view>
  63. </u-swipe-action>
  64. </view>
  65. </view>
  66. <view v-if="allCheckShow" class="pad-bot-140"></view>
  67. <view v-show="allCheckShow" class="allcheck-box flex-row-plus flex-sp-between flex-items">
  68. <view class="left">
  69. <image mode="aspectFill" v-if="isAllProCheck"
  70. src="https://ceres.zkthink.com/static/images/selectActive.png" class="cart-select-img"
  71. @click="allProductSel(0)"></image>
  72. <image mode="aspectFill" v-else src="https://ceres.zkthink.com/static/images/selectEmpty.png"
  73. class="cart-select-img" @click="allProductSel(1)"></image>
  74. <text>全选</text>
  75. </view>
  76. <view class="right">
  77. <view class="btn-delete" @click="showCardModalPaoductDel">删除</view>
  78. </view>
  79. </view>
  80. <view v-if="allCheckShow" class="pad-bot-140"></view>
  81. </view>
  82. <view v-if="productCollect.length==0&&proCollectShow" class="mar-top-60 empty-box">
  83. <image class="collect-empty" src="https://ceres.zkthink.com/static/images/collectEmpty.png"></image>
  84. <view class="tohome-box flex-items-plus">暂无收藏</view>
  85. </view>
  86. </view>
  87. <view v-if="collectionTypeFlag == 1">
  88. <view v-if="storeCollect.length>0">
  89. <view class="finishbox" @click="finishClick" v-if="allCheckShow">完成</view>
  90. <view v-else class="flex-row-plus editicon-box flex-items fs28" @click="editClick">
  91. <image class="editicon" src="https://ceres.zkthink.com/static/images/collectionEditicon.png">
  92. </image>
  93. <text class="mar-left-10">编辑</text>
  94. </view>
  95. <view class="swipe-box swipeBox">
  96. <view class="shopBox" v-for="(item, index) in storeCollect" :key="item.collectId" :index="index">
  97. <u-swipe-action ref="shopActionSwipe" :disabled="allCheckShow" :show="item.show" :options="options" @click="storeActionClick(index)"
  98. @open="storeOpen(index)">
  99. <view class="item wid flex-row-plus flex-display">
  100. <view v-show="allCheckShow" class="selctBtn flex-items">
  101. <image mode="aspectFill" v-if="item.selected == 1"
  102. @click.stop="storeItemSel(index,0)"
  103. src="https://ceres.zkthink.com/static/images/selectActive.png"
  104. class="cart-select-img"></image>
  105. <image mode="aspectFill" v-else @click.stop="storeItemSel(index,1)"
  106. src="https://ceres.zkthink.com/static/images/selectEmpty.png"
  107. class="cart-select-img"></image>
  108. </view>
  109. <view class="infoCent">
  110. <view class="flex-row-plus flex-sp-between flex-items-plus wid">
  111. <view class="flex-items-plus flex-row pad-topbot-10">
  112. <image class="head-img" mode="aspectFill" :src="item.shopLogo" />
  113. <!-- 此层wrap在此为必写的否则可能会出现标题定位错误 -->
  114. <view class="title-wrap mar-left-20">
  115. <text class="title u-line-2 shopName">{{ item.shopName }}</text>
  116. <text class="font-color-CCC fs24">{{item.person}}人关注</text>
  117. </view>
  118. </view>
  119. <view class="toStore flex-items-plus fs24" @click="toStoreClick(item.shopId)">
  120. 进入店铺
  121. <image src="https://ceres.zkthink.com/static/images/arrowR.png"></image>
  122. </view>
  123. </view>
  124. <view class="shopImgBox" v-if="item.productList.length>0">
  125. <view class="itemImgBox" v-for="(sItem, sIndex) of item.productList"
  126. :key="sIndex"
  127. @click.stop="goodsDateils(sItem.shopId,sItem.productId,sItem.skuId)">
  128. <image :src="sItem.image" class="pic-img default-img"
  129. onerror="this.src='url(https://ceres.zkthink.com/static/root/default.png) no-repeat center';this.οnerrοr=null"></image>
  130. </view>
  131. </view>
  132. </view>
  133. </view>
  134. </u-swipe-action>
  135. </view>
  136. </view>
  137. <view v-show="allCheckShow" class="allcheck-box flex-row-plus flex-sp-between flex-items">
  138. <view class="left">
  139. <image mode="aspectFill" v-if="isAllStoreCheck"
  140. src="https://ceres.zkthink.com/static/images/selectActive.png" class="cart-select-img"
  141. @click="allStoreSel(0)"></image>
  142. <image mode="aspectFill" v-else src="https://ceres.zkthink.com/static/images/selectEmpty.png"
  143. class="cart-select-img" @click="allStoreSel(1)"></image>
  144. <text>全选</text>
  145. </view>
  146. <view class="right">
  147. <view class="btn-delete" @click="showCardModalshopDel">删除</view>
  148. </view>
  149. </view>
  150. <view v-if="allCheckShow" class="pad-bot-140"></view>
  151. </view>
  152. <view v-if="storeCollect.length==0&&storeCollectShow" class="mar-top-60 empty-box">
  153. <image class="collect-empty" src="https://ceres.zkthink.com/static/images/collectEmpty.png"></image>
  154. <view class="tohome-box flex-items-plus">暂无收藏</view>
  155. </view>
  156. </view>
  157. <!-- 删除确认弹窗 -->
  158. <tui-modal :show="cardModal" :custom="true" :fadein="true">
  159. <view class="Put-box1">
  160. <view class="text-align fs34 fs-bold">
  161. 温馨提示
  162. </view>
  163. <view v-if="paoductDelSubmit" class="mar-top-40 text-align">
  164. 是否删除该商品
  165. </view>
  166. <view v-if="shopDelSubmit" class="mar-top-40 text-align">
  167. 是否删除该店铺
  168. </view>
  169. <view class="flex-display flex-sp-between">
  170. <view class="btn submit" v-if="paoductDelSubmit" @click="paoductDel">确定</view>
  171. <view class="btn submit" v-if="shopDelSubmit" @click="shopDel">确定</view>
  172. </view>
  173. </view>
  174. <view v-if="cardModal" @click="cardModal = false" class="cancelDel">
  175. <image src="https://ceres.zkthink.com/static/images/cancelClose.png" mode=""></image>
  176. </view>
  177. </tui-modal>
  178. </view>
  179. </template>
  180. <script>
  181. import tuiModal from "@/components/modal/modal";
  182. const NET = require('../../utils/request')
  183. const API = require('../../config/api')
  184. export default {
  185. components: {
  186. tuiModal
  187. },
  188. data() {
  189. return {
  190. imgs: [
  191. 'https://ceres.zkthink.com/static/images/groupBuyIcon.png',
  192. 'https://ceres.zkthink.com/static/images/spikeIcon.png',
  193. 'https://ceres.zkthink.com/static/images/discountListIcon.png',
  194. 'https://ceres.zkthink.com/static/images/spikeIcon.png',
  195. 'https://ceres.zkthink.com/static/images/discountListIcon.png',
  196. ],
  197. collectionTypeList: [{
  198. name: '商品'
  199. }, {
  200. name: '店铺'
  201. }],
  202. collectionTypeFlag: 0,
  203. disabled: false,
  204. btnWidth: 180,
  205. show: false,
  206. options: [{
  207. text: ' ',
  208. style: {
  209. backgroundColor: '#F15C48'
  210. }
  211. }],
  212. isAllProCheck: false,
  213. isAllStoreCheck: false,
  214. allCheckShow: false,
  215. productCollect: [],
  216. storeCollect: [],
  217. productPage: 1,
  218. productPageSize: 10,
  219. proloadingType: 0,
  220. storePage: 1,
  221. storePageSize: 10,
  222. storeloadingType: 0,
  223. storeCollectShow: false,
  224. proCollectShow: false,
  225. cardModal: false,
  226. paoductDelSubmit: false,
  227. shopDelSubmit: false,
  228. ids: null,
  229. currentIndex: null,
  230. currentType: null
  231. };
  232. },
  233. onLoad() {
  234. this.getProductCollect()
  235. },
  236. onReachBottom() {
  237. if (this.collectionTypeFlag == 0) {
  238. if (this.proloadingType == 1) {
  239. uni.stopPullDownRefresh()
  240. } else {
  241. this.productPage = this.productPage + 1
  242. this.getProductCollect()
  243. }
  244. } else if (this.collectionTypeFlag == 1) {
  245. if (this.storeloadingType == 1) {
  246. uni.stopPullDownRefresh()
  247. } else {
  248. this.storePage = this.storePage + 1
  249. this.getStoreCollect()
  250. }
  251. }
  252. },
  253. methods: {
  254. //批量删除
  255. showCardModalPaoductDel() {
  256. let isShowProoductDelSubmit = false
  257. // 商品
  258. this.productCollect.forEach((value, index) => {
  259. if (value.selected == 1) {
  260. isShowProoductDelSubmit = true
  261. }
  262. })
  263. if (isShowProoductDelSubmit === true) {
  264. this.cardModal = true
  265. this.paoductDelSubmit = true
  266. this.shopDelSubmit = false
  267. } else {
  268. this.$u.toast(`请先选择要删除的收藏宝贝!`);
  269. }
  270. },
  271. paoductDel() {
  272. if (this.currentType === 1) {
  273. this.cancelCollect(this.ids)
  274. this.productCollect.splice(this.currentIndex, 1);
  275. } else {
  276. let ids = []
  277. this.productCollect.forEach((value, index) => {
  278. if (value.selected == 1) {
  279. ids.push(value.collectId)
  280. }
  281. })
  282. NET.request(API.deleteCollect, {
  283. ids: ids
  284. }, 'POST').then(res => {
  285. this.productCollect = []
  286. this.cardModal = false
  287. this.$u.toast(`删除成功`);
  288. this.productPage = 1
  289. this.getProductCollect()
  290. }).catch(res => {
  291. this.cardModal = false
  292. this.$u.toast(`删除失败`);
  293. })
  294. }
  295. },
  296. showCardModalshopDel() {
  297. let isShowShopDelSubmit = false
  298. // 店铺
  299. this.storeCollect.forEach((value, index) => {
  300. if (value.selected == 1) {
  301. isShowShopDelSubmit = true
  302. }
  303. })
  304. if (isShowShopDelSubmit === true) {
  305. this.cardModal = true
  306. this.shopDelSubmit = true
  307. this.paoductDelSubmit = false
  308. } else {
  309. this.$u.toast(`请先选择要删除的收藏店铺!`);
  310. }
  311. },
  312. shopDel() {
  313. if (this.currentType === 2) {
  314. this.cancelCollect(this.ids)
  315. this.storeCollect.splice(this.currentIndex, 1);
  316. } else {
  317. let ids = []
  318. this.storeCollect.forEach((value, index) => {
  319. if (value.selected == 1) {
  320. ids.push(value.collectId)
  321. }
  322. })
  323. NET.request(API.deleteCollect, {
  324. ids: ids
  325. }, 'POST').then(res => {
  326. this.storeCollect = []
  327. this.cardModal = false
  328. this.$u.toast(`删除成功`);
  329. this.storePage = 1
  330. this.getStoreCollect()
  331. }).catch(res => {
  332. this.cardModal = false
  333. this.$u.toast(`删除失败`);
  334. })
  335. }
  336. },
  337. //去店铺
  338. toStoreClick(storeId) {
  339. uni.navigateTo({
  340. url: '../../pages_category_page1/store/index?storeId=' + storeId
  341. })
  342. },
  343. //去商品详情
  344. toGoodsDetails(productId, shopId, skuId) {
  345. uni.navigateTo({
  346. url: '../../pages_category_page1/goodsModule/goodsDetails?productId=' + productId +
  347. '&shopId=' + shopId + '&skuId=' + skuId
  348. })
  349. },
  350. collectionTypeActive(index) {
  351. this.collectionTypeFlag = index
  352. if (index == 0) {
  353. this.productPage = 1
  354. this.productCollect = []
  355. this.proloadingType = 0
  356. this.getProductCollect()
  357. } else if (index == 1) {
  358. this.storePage = 1
  359. this.storeCollect = []
  360. this.storeloadingType = 0
  361. this.getStoreCollect()
  362. }
  363. },
  364. storeClick(index, index1) {
  365. if (index1 == 0) {
  366. this.cardModal = true
  367. this.shopDelSubmit = true
  368. this.ids = this.storeCollect[index].collectId
  369. this.currentIndex = index
  370. this.currentType = 2
  371. }
  372. },
  373. // 如果打开一个的时候,不需要关闭其他,则无需实现本方法
  374. productOpen(index) {
  375. // 先将正在被操作的swipeAction标记为打开状态,否则由于props的特性限制,
  376. // 原本为'false',再次设置为'false'会无效
  377. this.productCollect[index].show = true;
  378. // console.log(this.productCollect,index)
  379. this.productCollect.map((val, idx) => {
  380. if (index != idx) this.productCollect[idx].show = false;
  381. })
  382. // 商品删除参数
  383. this.ids = this.productCollect[index].collectId
  384. this.currentIndex = index
  385. this.currentType = 1
  386. },
  387. // 打开删除层
  388. productActionClick() {
  389. this.cardModal = true
  390. this.paoductDelSubmit = true
  391. this.shopDelSubmit = false
  392. },
  393. storeOpen(index) {
  394. // 先将正在被操作的swipeAction标记为打开状态,否则由于props的特性限制,
  395. // 原本为'false',再次设置为'false'会无效
  396. this.storeCollect[index].show = true;
  397. this.storeCollect.map((val, idx) => {
  398. if (index != idx) this.storeCollect[idx].show = false;
  399. })
  400. // 店铺删除参数
  401. this.ids = this.storeCollect[index].collectId
  402. this.currentIndex = index
  403. this.currentType = 2
  404. },
  405. // 打开删除层
  406. storeActionClick() {
  407. this.cardModal = true
  408. this.paoductDelSubmit = false
  409. this.shopDelSubmit = true
  410. },
  411. //商品选中
  412. productItemSel(index, number) {
  413. this.productCollect[index].selected = number
  414. let proSelectNum = 0
  415. this.productCollect.forEach((value, index) => {
  416. if (this.productCollect[index].selected == 0) {
  417. this.isAllProCheck = false
  418. } else {
  419. proSelectNum++
  420. }
  421. })
  422. if (this.productCollect.length == proSelectNum) {
  423. this.isAllProCheck = true
  424. }
  425. },
  426. //店铺选中
  427. storeItemSel(index, number) {
  428. this.storeCollect[index].selected = number
  429. let storeSelectNum = 0
  430. this.storeCollect.forEach((value, index) => {
  431. if (this.storeCollect[index].selected == 0) {
  432. this.isAllStoreCheck = false
  433. } else {
  434. storeSelectNum++
  435. }
  436. })
  437. if (this.storeCollect.length == storeSelectNum) {
  438. this.isAllStoreCheck = true
  439. }
  440. },
  441. //全选
  442. allProductSel(type) {
  443. this.isAllProCheck = !this.isAllProCheck
  444. this.productCollect.forEach((value, index) => {
  445. this.productCollect[index].selected = type
  446. })
  447. },
  448. allStoreSel(type) {
  449. this.isAllStoreCheck = !this.isAllStoreCheck
  450. this.storeCollect.forEach((value, index) => {
  451. this.storeCollect[index].selected = type
  452. })
  453. },
  454. editClick() {
  455. this.allCheckShow = true
  456. let actionSwipe = this.$refs.actionSwipe;
  457. let shopActionSwipe = this.$refs.shopActionSwipe;
  458. if(actionSwipe){
  459. actionSwipe.forEach(item=>item.close())
  460. }
  461. if(shopActionSwipe){
  462. shopActionSwipe.forEach(item=>item.close())
  463. }
  464. },
  465. finishClick() {
  466. this.allCheckShow = false
  467. },
  468. //收藏商品查询
  469. getProductCollect() {
  470. // uni.showLoading({
  471. // mask: true,
  472. // title: '加载中...'
  473. // })
  474. NET.request(API.getProductCollect, {
  475. page: this.productPage,
  476. pageSize: this.productPageSize
  477. },
  478. 'GET').then(res => {
  479. uni.hideLoading()
  480. if (res.data.list.length == 0) {
  481. this.proCollectShow = true
  482. this.proloadingType = 1
  483. this.productPage = this.productPage
  484. } else {
  485. this.productCollect = this.productCollect.concat(res.data.list)
  486. this.productCollect.forEach((value, index) => {
  487. value['show'] = false
  488. value['selected'] = 0
  489. })
  490. }
  491. }).catch(res => {
  492. uni.showToast({
  493. title: '收藏商品查询失败',
  494. icon: "none"
  495. })
  496. })
  497. },
  498. //收藏店铺查询
  499. getStoreCollect() {
  500. // console.log(111)
  501. // uni.showLoading({
  502. // mask: true,
  503. // title: '加载中...'
  504. // })
  505. NET.request(API.getStoreCollect, {
  506. page: this.storePage,
  507. pageSize: this.storePageSize
  508. },
  509. 'GET').then(res => {
  510. uni.hideLoading()
  511. if (res.data.list.length == 0) {
  512. this.storeCollectShow = true
  513. this.storeloadingType = 1
  514. this.storePage = this.storePage
  515. }
  516. this.storeCollect = this.storeCollect.concat(res.data.list)
  517. this.storeCollect.forEach((value, index) => {
  518. value['show'] = false
  519. value['selected'] = 0
  520. })
  521. }).catch(res => {
  522. uni.showToast({
  523. title: '失败',
  524. icon: "none"
  525. })
  526. })
  527. },
  528. //取消收藏
  529. cancelCollect(ids) {
  530. NET.request(API.cancelCollect, {
  531. ids: [ids]
  532. }, 'POST').then(res => {
  533. this.$u.toast(`删除成功`);
  534. this.cardModal = false
  535. this.currentType = null
  536. this.currentIndex = null
  537. this.ids = null
  538. if (res.code == "200") {
  539. this.productCollect = []
  540. this.storeCollect = []
  541. this.getStoreCollect()
  542. this.getProductCollect()
  543. } else {
  544. this.$u.toast(res.message);
  545. }
  546. }).catch(res => {
  547. uni.showToast({
  548. title: '失败',
  549. icon: "none"
  550. })
  551. })
  552. },
  553. //商品详情
  554. goodsDateils(shopId, productId, skuId) {
  555. uni.navigateTo({
  556. url: '/pages_category_page1/goodsModule/goodsDetails?shopId=' + shopId + '&productId=' +
  557. productId + '&skuId=' + skuId
  558. })
  559. }
  560. }
  561. }
  562. </script>
  563. <style lang="scss" scoped>
  564. .collection-box {
  565. .empty-box {
  566. display: flex;
  567. justify-content: center;
  568. flex-direction: column;
  569. align-items: center;
  570. .tohome-box {
  571. color: #999999;
  572. margin-top: 50rpx;
  573. }
  574. .collect-empty {
  575. margin-top: 30%;
  576. width: 198rpx;
  577. height: 183rpx;
  578. }
  579. }
  580. .function-box {
  581. background-color: #F7F7F7;
  582. }
  583. .tabsbox {
  584. margin-top: 4rpx;
  585. background-color: #FFFFFF;
  586. }
  587. .editicon-box {
  588. display: flex;
  589. justify-content: flex-end;
  590. position: relative;
  591. left: -30rpx;
  592. padding: 16rpx 0;
  593. }
  594. .finishbox {
  595. display: flex;
  596. justify-content: flex-end;
  597. position: relative;
  598. left: -30rpx;
  599. padding: 16rpx 0;
  600. }
  601. .editicon {
  602. width: 50rpx;
  603. height: 50rpx;
  604. }
  605. .swipe-box {
  606. padding: 0 20rpx;
  607. .actionBox {
  608. margin-bottom: 20rpx;
  609. }
  610. .item {
  611. display: flex;
  612. .infoCent {
  613. padding: 20rpx;
  614. }
  615. .selctBtn {
  616. background: #F7F7F7;
  617. }
  618. }
  619. .shopImgBox {
  620. display: flex;
  621. justify-content: end;
  622. margin-left: 90rpx;
  623. padding-bottom: 20rpx;
  624. margin-top: 20rpx;
  625. .itemImgBox {
  626. margin-right: 15rpx;
  627. margin-left: 5rpx;
  628. image {
  629. width: 120rpx;
  630. height: 120rpx;
  631. border: 2rpx solid #F3F4F5;
  632. }
  633. }
  634. }
  635. .product-img {
  636. width: 220rpx;
  637. flex: 0 0 220rpx;
  638. height: 220rpx;
  639. }
  640. .head-img {
  641. width: 80rpx;
  642. flex: 0 0 80rpx;
  643. height: 80rpx;
  644. border-radius: 50%;
  645. }
  646. .title {
  647. text-align: left;
  648. font-size: 28rpx;
  649. color: $u-content-color;
  650. height: 165rpx;
  651. padding-right: 20rpx;
  652. }
  653. .shopName {
  654. height: auto;
  655. overflow: hidden;
  656. white-space: nowrap;
  657. text-overflow: ellipsis;
  658. width: 340rpx;
  659. }
  660. .cart-select-img {
  661. width: 40upx;
  662. height: 40upx;
  663. margin: 0upx 30upx 0upx;
  664. box-sizing: border-box;
  665. }
  666. .toStore {
  667. width: 100px;
  668. color: #FFEBC4;
  669. padding: 0rpx 20rpx;
  670. height: 52rpx;
  671. background: #333333;
  672. margin-right: 15rpx;
  673. image {
  674. width: 10rpx;
  675. height: 18rpx;
  676. margin-left: 10rpx;
  677. }
  678. }
  679. .shopBox {
  680. margin-bottom: 20rpx;
  681. }
  682. }
  683. .allcheck-box {
  684. background-color: #FFFFFF;
  685. width: 100%;
  686. position: fixed;
  687. bottom: 0upx;
  688. .left {
  689. display: flex;
  690. flex-direction: row;
  691. align-items: center;
  692. font-size: 28upx;
  693. color: #666;
  694. .cart-select-img {
  695. width: 40upx;
  696. height: 40upx;
  697. margin: 30upx;
  698. box-sizing: border-box;
  699. }
  700. }
  701. .right {
  702. display: flex;
  703. flex-direction: row;
  704. align-items: center;
  705. box-sizing: border-box;
  706. }
  707. .btn-delete {
  708. width: 232upx;
  709. height: 104upx;
  710. line-height: 104upx;
  711. text-align: center;
  712. font-size: 28upx;
  713. color: #FFFFFF;
  714. background: #C83732;
  715. }
  716. }
  717. .Put-box1 {
  718. .btn {
  719. text-align: center;
  720. margin-top: 40rpx;
  721. border: 1px solid #333333;
  722. height: 80upx;
  723. line-height: 80upx;
  724. width: 100%;
  725. color: #333333;
  726. }
  727. .submit {
  728. background-color: #333333;
  729. color: #FFEBC4;
  730. }
  731. }
  732. .cancelDel {
  733. position: absolute;
  734. bottom: -50px;
  735. left: 45%;
  736. image {
  737. width: 60upx;
  738. height: 60upx;
  739. }
  740. }
  741. }
  742. .priceBox {
  743. .iconImg {
  744. width: 58rpx;
  745. height: 36rpx;
  746. margin-right: 10rpx;
  747. }
  748. .discountIcon{
  749. width: 100rpx;
  750. }
  751. }
  752. </style>
  753. <style scoped>
  754. .tabsbox /deep/ #u-tab-item-0 {
  755. position: relative;
  756. }
  757. .tabsbox /deep/ .u-tab-bar {
  758. background-color: #c5aa7b !important;
  759. }
  760. .tabsbox /deep/ #u-tab-item-0::before {
  761. content: '';
  762. width: 2rpx;
  763. height: 30rpx;
  764. display: block;
  765. background: #CCCCCC;
  766. position: absolute;
  767. right: 0;
  768. top: 20rpx;
  769. }
  770. .swipe-box /deep/ .u-swipe-del {
  771. align-items: center;
  772. justify-content: center;
  773. width: 160rpx !important;
  774. }
  775. .swipe-box /deep/ .u-btn-text {
  776. width: 60rpx;
  777. height: 60rpx;
  778. display: block;
  779. background: url("https://ceres.zkthink.com/static/images/delIcon.png") no-repeat center center;
  780. background-size: contain;
  781. }
  782. </style>
  783. <style>
  784. page {
  785. background-color: #F7F7F7;
  786. }
  787. </style>