my-product.vue 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991
  1. <template>
  2. <view class="container product clearfix">
  3. <view class="superv-header">
  4. <view class="superv-header-click" v-if="!isSuperv">
  5. <view class="oltext" @click="supervClickFn">管理</view>
  6. <view class="ortext" @click="searchClickFn">筛选</view>
  7. </view>
  8. <view class="superv-header-checked" v-else>
  9. <view class="oltext">
  10. <view class="checkbox iconfont" :class="[isChecked ?'icon-yixuanze':'icon-weixuanze']" @click="isCheckedAll"></view>
  11. <view class="text">全选</view>
  12. </view>
  13. <view class="ortext" @click="closeSupervFn">完成</view>
  14. </view>
  15. </view>
  16. <view class="product-content">
  17. <view :class="{'tui-order-list':scrollTop >= 0}" class="clearfix">
  18. <!-- 空白页 -->
  19. <empty v-if="isEmpty" :typeIndex="currentTabs" :navbarHeight="navbarHeight"></empty>
  20. <!-- 列表 -->
  21. <checkbox-group @change="buyChange" class="tui-group">
  22. <view class="tui-cart-cell tui-mtop" v-for="(item,index) in organizeProducts" :key="index">
  23. <tui-swipe-actions :actions="actions" @click="handlerButton($event,item)" :params="item">
  24. <template v-slot:content>
  25. <view class="tui-goods-item">
  26. <view class="tui-goods-checkBox" v-if="isSuperv">
  27. <view class="checkbox iconfont" :class="[isChecked ?'icon-yixuanze':'icon-weixuanze']" @click="isCheckedAll"></view>
  28. </view>
  29. <view class="tui-goods-image">
  30. <image :src="item.mainImage" class="tui-goods-img"/>
  31. </view>
  32. <view class="tui-goods-info">
  33. <view class="tui-goods-title">{{item.name}}</view>
  34. <view class="tui-price-box">
  35. <view class="tui-goods-price">¥{{item.price | NumFormat}}</view>
  36. </view>
  37. <view class="tui-goods-pip">市场价:¥{{item.price | NumFormat}}</view>
  38. <view class="tui-goods-pip">分类:耗材配件-配件-探头</view>
  39. </view>
  40. <view class="tui-goods-status">
  41. <view class="status-text">{{ item.verifyStatus | verifyStatusFilter }}</view>
  42. </view>
  43. </view>
  44. </template>
  45. </tui-swipe-actions>
  46. </view>
  47. </checkbox-group>
  48. <!--加载loadding-->
  49. <tui-loadmore :visible="loadding" :index="3" type="black"></tui-loadmore>
  50. <tui-nomore :visible="!pullUpOn" bgcolor="#F7F7F7" :text='nomoreText'></tui-nomore>
  51. <!--加载loadding-->
  52. </view>
  53. </view>
  54. <tui-modal :show="modal" @click="handleClick" @cancel="hideMobel" :content="contentModalText" color="#333" :size="32" shape="circle" :maskClosable="false"></tui-modal>
  55. <!--右抽屉-->
  56. <tui-drawer mode="right" :visible="rightDrawer" @close="closeDrawer">
  57. <view class="d-container clearfix" :style="{paddingTop:CustomBar+10+'px'}">
  58. <view class="d-label">商品货号:</view>
  59. <view class="d-input">
  60. <input class="input" type="text" value="" v-model="listQuery.keyword" placeholder="输入商品名称"/>
  61. </view>
  62. <view class="d-label">商品货号:</view>
  63. <view class="d-input">
  64. <input class="input" type="text" value="" v-model="listQuery.productSn" placeholder="输入商品货号"/>
  65. </view>
  66. <view class="d-label">状态:</view>
  67. <view class="d-input">
  68. <picker @change="bindPickerChange(3,$event)" :value="index" :range="Array2" range-key="name">
  69. <input class="input" type="text" disabled="false" v-model="listQuery.publishStatus" value="" placeholder="请选择审核状态"/>
  70. <text class="iconfont icon-xiangyou"></text>
  71. </picker>
  72. </view>
  73. <view class="d-label">主推商品:</view>
  74. <view class="d-input">
  75. <picker @change="bindPickerChange(2,$event)" :value="index" :range="brandOptions" range-key="name">
  76. <input class="input" type="text" disabled="false" v-model="listQuery.brandId" value="" placeholder="请选择商品品牌"/>
  77. <text class="iconfont icon-xiangyou"></text>
  78. </picker>
  79. </view>
  80. <view class="d-label">分类:</view>
  81. <view class="d-input">
  82. <picker @change="bindPickerChange(1,$event)" :value="index" :range="Array" range-key="name">
  83. <input class="input" type="text" disabled="false" v-model="listQuery.productCategoryId" value="" placeholder="请选择分类"/>
  84. <text class="iconfont icon-xiangyou"></text>
  85. </picker>
  86. </view>
  87. <view class="d-input">
  88. <picker @change="bindPickerChange(1,$event)" :value="index" :range="Array" range-key="name">
  89. <input class="input" type="text" disabled="false" v-model="listQuery.productCategoryId" value="" placeholder="请选择二级分类"/>
  90. <text class="iconfont icon-xiangyou"></text>
  91. </picker>
  92. </view>
  93. <view class="d-input">
  94. <picker @change="bindPickerChange(1,$event)" :value="index" :range="Array" range-key="name">
  95. <input class="input" type="text" disabled="false" v-model="listQuery.productCategoryId" value="" placeholder="请选择三级分类"/>
  96. <text class="iconfont icon-xiangyou"></text>
  97. </picker>
  98. </view>
  99. <view class="d-input btn">
  100. <view class="d-btn comfrim" @click="handSearchList">确定</view>
  101. <view class="d-btn clear" @click="handSearchClear">重置</view>
  102. </view>
  103. </view>
  104. </tui-drawer>
  105. <!-- 批量操作 -->
  106. <tui-bottom-popup :radius="false" :mask="false" :show="isSuperv" @close="closeSupervFn()">
  107. <view class="tui-popup-box clearfix">
  108. <view class="tui-right-flex tui-popup-btn" :style="{ paddingBottom :isIphoneX ? '68rpx' : '0rpx' }">
  109. <view class="tui-flex-1">
  110. <view class="tui-button" :class="isChecked ? 'active' : ''" @click="closeSupervFn()">批量下架</view>
  111. </view>
  112. </view>
  113. </view>
  114. </tui-bottom-popup>
  115. </view>
  116. </template>
  117. <script>
  118. import tuiLoadmore from "@/components/tui-components/loadmore/loadmore"
  119. import tuiNomore from "@/components/tui-components/nomore/nomore"
  120. import modalLayer from "@/components/modal-layer"
  121. import empty from "@/components/empty";
  122. import { mapState,mapMutations } from 'vuex'
  123. const defaultListQuery = {
  124. keyword: '',
  125. pageNum: 1,
  126. pageSize: 10,
  127. publishStatus: '',
  128. verifyStatus: '',
  129. productSn: '',
  130. productCategoryId: '',
  131. brandId: '',
  132. merchantId:''
  133. };
  134. export default{
  135. components: {
  136. tuiLoadmore,
  137. tuiNomore,
  138. empty
  139. },
  140. data() {
  141. return{
  142. isSuperv:false,
  143. isChecked:false,
  144. mapStateArr:[
  145. {label:'isQuery',val:[4,5,12,13,33,22,23,32,77],status: true},
  146. {label:'isDelete',val:[6],status: true},
  147. {label:'isCancel',val:[0,111],status: true},
  148. {label:'isConfirm',val:[33],status: true},
  149. {label:'isConfirmation',val:[0],status: true},
  150. {label:'isPay',val:[11,12,13,21,22,23,111],status: true},
  151. ],
  152. actions: [
  153. {name: '查看详情',color: '#fff',fontsize: 26,width: 50,background: '#f9a94b'},
  154. {name: '添加主页推荐',color: '#fff',fontsize: 26,width: 50,background: '#ff7a51'},
  155. {name: '下架',color: '#fff',fontsize: 26,width: 50,background: '#fea785'},
  156. {name: '无操作',color: '#fff',fontsize: 26,width: 50,background: '#e1e1e1'},
  157. ],
  158. Array: [{name:'男装'},{name: '女装'},{name: '男鞋'},{name: '女鞋'},{name: '童鞋'}],
  159. brandOptions: [],
  160. Array2: [{name:'审核通过'},{name: '未审核'}],
  161. currents:0,
  162. userID:0,
  163. listQuery:Object.assign({}, defaultListQuery),
  164. dataList: [],
  165. btnoRderID: 0, //点击按钮传入的的订单ID
  166. scrollTop: 0,
  167. deteleType:'',
  168. skeletonShow: true,
  169. isEmpty: false,
  170. isDelete:false,
  171. isModalLayer: false,
  172. loadding: false,
  173. pullUpOn: true,
  174. total: 0,
  175. pullFlag: true,
  176. navbarHeight:'',
  177. nomoreText: '上拉显示更多',
  178. contentModalText:'',//操作文字提示语句
  179. modal:false,
  180. rightDrawer: false,
  181. handlerProduct:{},//储存监听商品信息
  182. OperationType:'',//操作类型
  183. isCmcustomClass : 'left',
  184. count:0,
  185. offTheShelf:0,
  186. onTheShelf:0,
  187. organizeProducts:[]
  188. }
  189. },
  190. onLoad(){
  191. },
  192. filters: {
  193. NumFormat:function(text) {//处理金额
  194. return Number(text).toFixed(2);
  195. },
  196. verifyStatusFilter:function(value) {//审核状态
  197. if (value === 1) {
  198. return '审核通过';
  199. } else {
  200. return '未审核';
  201. }
  202. }
  203. },
  204. computed: {
  205. ...mapState(['hasLogin','userInfo'])
  206. },
  207. methods:{
  208. ...mapMutations(['login','logout']),
  209. getOrganizeProducts(){//获取模块三商品
  210. this.ProductService.queryProductPreferred({userId:this.userID,preferredFlag:100,pageNum:1,pageSize:20}).then(res =>{
  211. this.organizeProducts = res.data.results
  212. //循环根据状态设置操作按钮:0,1,2,3,8,9(可编辑)、1,2(预览商品)、2(下架)、
  213. this.getProductPrice()
  214. }).catch(error =>{
  215. this.$util.msg(error.msg,2000)
  216. })
  217. },
  218. getProductPrice(){//获取商品或者活动价格
  219. let productIdArr = [];
  220. let productIds ='';
  221. this.organizeProducts.map(item=>{// 0公开价格 1不公开价格 2仅对会员机构公开
  222. productIdArr.push(item.productID)
  223. })
  224. productIds = productIdArr.join(",");
  225. this.ProductService.querySearchProductPrice({userId: this.userID,productIds:productIds}).then(response =>{
  226. this.organizeProducts = this.ReturnNewProducts(this.organizeProducts,response.data);
  227. this.skeletonShow = false;
  228. }).catch(error =>{
  229. this.$util.msg(error.msg,2000)
  230. })
  231. },
  232. ReturnNewProducts(Array,list){
  233. let NewArray = []
  234. Array.map(item=>{
  235. for (let i = 0; i < list.length; i++) {
  236. if( item.productID == list[i].productId ){
  237. NewArray.push(Object.assign(item,list[i]))
  238. }
  239. }
  240. });
  241. return NewArray
  242. },
  243. GetProductListInfo(){
  244. this.listQuery.pageNum = 1
  245. this.ProductService.GetProductList(this.listQuery).then(response =>{
  246. let resData = response.data.list
  247. this.total = response.data.total;
  248. if(resData && resData.length > 0){
  249. this.isEmpty = false;
  250. this.dataList = [...resData];
  251. if(this.total > this.dataList.length){
  252. this.pullUpOn = false
  253. this.nomoreText = '上拉显示更多'
  254. }else{
  255. if(this.dataList.length < 2){
  256. this.pullUpOn = true
  257. }else{
  258. this.pullUpOn = false
  259. this.nomoreText = '已至底部'
  260. }
  261. }
  262. }else{
  263. this.isEmpty = true
  264. }
  265. }).catch(error =>{
  266. this.$util.msg(error.msg,2000);
  267. })
  268. },
  269. GetOnReachBottomData(index){//上拉加载
  270. this.listQuery.pageNum += 1
  271. this.ProductService.GetProductList(this.listQuery).then(response =>{
  272. let resData = response.data.list
  273. this.total = response.data.total;
  274. this.dataList = this.dataList.concat(resData)
  275. this.pullFlag = false;// 防上拉暴滑
  276. setTimeout(()=>{this.pullFlag = true;},500)
  277. if(this.total > this.dataList.length){
  278. this.pullUpOn = false
  279. this.nomoreText = '上拉显示更多'
  280. }else{
  281. this.loadding = false
  282. this.pullUpOn = false
  283. this.nomoreText = '已至底部'
  284. }
  285. })
  286. },
  287. handSearchList(){//搜索
  288. this.GetProductListInfo()
  289. this.leftDrawer = false;
  290. this.rightDrawer = false;
  291. },
  292. handlerButton(e,item){//监听侧滑按钮点击事件
  293. switch(this.currents){
  294. case 0://全部商品列表
  295. this.handleCurrentsAll(e,item)
  296. break;
  297. case 1://上架商品列表
  298. this.handleCurrentsUpdate(e,item)
  299. break;
  300. case 2://下架商品列表
  301. this.handleCurrentsDown(e,item)
  302. break;
  303. }
  304. },
  305. handleCurrentsAll(e,item){//处理全部商品列表只做删除操作
  306. switch(e.index){
  307. case 0://删除
  308. this.handleDeleter(item)
  309. break;
  310. }
  311. },
  312. handleCurrentsUpdate(e,item){//处理上架商品列表只做下架&&删除操作
  313. switch(e.index){
  314. case 0://下架
  315. this.handleUnder(item)
  316. break;
  317. case 1://删除
  318. this.handleDeleter(item)
  319. break;
  320. }
  321. },
  322. handleCurrentsDown(e,item){//处理下架商品列表只做下架&&删除操作
  323. switch(e.index){
  324. case 0://上架
  325. this.handleGround(item)
  326. break;
  327. case 1://删除
  328. this.handleDeleter(item)
  329. break;
  330. }
  331. },
  332. handleDeleter(item){//删除操作
  333. this.OperationType = 'delete'
  334. this.handlerProduct = item
  335. this.modal = true;
  336. this.contentModalText = '是否删除该商品?';
  337. },
  338. handleGround(item){//上架操作
  339. this.OperationType = 'ground'
  340. this.handlerProduct = item
  341. this.modal = true;
  342. this.contentModalText = '是否上架该商品?';
  343. },
  344. handleUnder(item){//下架操作
  345. this.OperationType = 'under'
  346. this.handlerProduct = item
  347. this.modal = true;
  348. this.contentModalText = '是否下架该商品?';
  349. },
  350. handleClick(e) {//弹窗提示用户操作
  351. if(e.index == 1){
  352. switch(this.OperationType){
  353. case 'delete'://删除商品
  354. this.UpdateDeleteStatus()
  355. break;
  356. case 'ground'://上架商品
  357. this.UpdatePublishStatus(this.handlerProduct,1)
  358. break;
  359. case 'under'://下架商品
  360. this.UpdatePublishStatus(this.handlerProduct,0)
  361. break;
  362. }
  363. }
  364. this.modal = false;
  365. },
  366. UpdatePublishStatus(item,publishStatus){//上下架商品操作处理接口
  367. this.ProductService.ProductUpdatePublishStatus({publishStatus:publishStatus,ids:item.id}).then(response =>{
  368. this.$util.msg('操作成功',2000,true,'success');
  369. setTimeout(() => {
  370. this.GetProductListInfo()
  371. this.getOrderListCount()
  372. },2000)
  373. }).catch(error =>{
  374. this.$util.msg(error.message,2000)
  375. })
  376. },
  377. UpdateDeleteStatus(){//商品删除处理接口
  378. this.ProductService.ProductUpdateDeleteStatus({deleteStatus:1,ids:this.handlerProduct.id}).then(response =>{
  379. this.$util.msg('删除商品成功',2000,true,'success');
  380. setTimeout(() => {
  381. this.GetProductListInfo()
  382. this.getOrderListCount()
  383. },2000)
  384. }).catch(error =>{
  385. this.$util.msg(error.message,2000)
  386. })
  387. },
  388. hideMobel(){
  389. this.modal = false;
  390. },
  391. isCheckedAll(){
  392. this.isCheckedAll = true
  393. },
  394. addProductFn(){
  395. this.$util.msg('功能开发中,敬请期待^_^',2000);
  396. },
  397. supervClickFn(){//管理全选
  398. this.isSuperv = true
  399. },
  400. closeSupervFn(){
  401. this.isSuperv = false
  402. },
  403. searchClickFn() {//弹出抽屉
  404. this.rightDrawer = true;
  405. },
  406. closeDrawer(e) {//关闭抽屉
  407. this.leftDrawer = false;
  408. this.rightDrawer = false;
  409. },
  410. orderPriceToFixed (n){
  411. let price ='';
  412. price = Number(n).toFixed(2);
  413. return price
  414. },
  415. tabClick(index){
  416. this.currents = index
  417. switch(index){
  418. case 0:
  419. this.listQuery.publishStatus = ''
  420. this.dataList = []
  421. this.GetProductListInfo()
  422. this.actions =[
  423. {name: '删除',color: '#fff',fontsize: 28,width: 80,background: '#ff4759'},
  424. ]
  425. break;
  426. case 1:
  427. this.listQuery.publishStatus = 1
  428. this.dataList = []
  429. this.GetProductListInfo()
  430. this.actions =[
  431. {name: '下架',color: '#fff',fontsize: 28,width: 80,background: '#ffaa33'},
  432. {name: '删除',color: '#fff',fontsize: 28,width: 80,background: '#ff4759'},
  433. ]
  434. break;
  435. case 2:
  436. this.listQuery.publishStatus = 0
  437. this.dataList = []
  438. this.GetProductListInfo()
  439. this.actions =[
  440. {name: '上架',color: '#fff',fontsize: 28,width: 80,background: '#4688fa'},
  441. {name: '删除',color: '#fff',fontsize: 28,width: 80,background: '#ff4759'},
  442. ]
  443. break;
  444. }
  445. },
  446. bindDateChange: function(e) {//选择筛选时间
  447. this.listQuery.date = e.detail.value
  448. },
  449. bindPickerChange: function(type,e) {//选择筛选条件
  450. console.log(type)
  451. console.log(e)
  452. switch(type){
  453. case 1:
  454. this.listQuery.classification = this.Array[e.target.value].name
  455. console.log(this.listQuery.classification)
  456. break;
  457. case 2:
  458. this.listQuery.source = this.brandOptions[e.target.value].name
  459. console.log(this.listQuery.source)
  460. break;
  461. case 3:
  462. this.listQuery.classification = this.Array2[e.target.value].name
  463. console.log(this.listQuery.classification)
  464. break;
  465. }
  466. },
  467. },
  468. onPageScroll(e){//实时获取到滚动的值
  469. if(e.scrollTop>30){
  470. this.isCmcustomClass = 'fiexd'
  471. }else{
  472. this.isCmcustomClass = 'left'
  473. }
  474. },
  475. onReachBottom() {
  476. if(this.total > this.dataList.length){
  477. this.loadding = true
  478. this.pullUpOn = true
  479. this.GetOnReachBottomData()
  480. }
  481. },
  482. onPullDownRefresh() {
  483. setTimeout(() => {
  484. this.listQuery.pageNum = 1
  485. uni.stopPullDownRefresh()
  486. }, 200)
  487. },
  488. onShow(){
  489. this.$api.getComStorage('userInfo').then((resolve) =>{
  490. this.listQuery.merchantId = resolve.id
  491. this.getOrganizeProducts()
  492. })
  493. }
  494. }
  495. </script>
  496. <style lang="scss">
  497. @import "@/uni.scss";
  498. page{
  499. background:#FFF;
  500. }
  501. .superv-header{
  502. width: 100%;
  503. height: 80rpx;
  504. background-color: #F7F7F7;
  505. line-height: 80rpx;
  506. position: fixed;
  507. top: 0;
  508. left: 0;
  509. box-sizing: border-box;
  510. padding: 0 24rpx;
  511. z-index: 999;
  512. .superv-header-click{
  513. width: 100%;
  514. height: 80rpx;
  515. font-size: $font-size-30;
  516. .oltext{
  517. float: left;
  518. color: #666666;
  519. }
  520. .ortext{
  521. float: right;
  522. color: $color-system;
  523. }
  524. }
  525. .superv-header-checked{
  526. width: 100%;
  527. height: 80rpx;
  528. font-size: $font-size-30;
  529. .oltext{
  530. float: left;
  531. color: #666666;
  532. display: flex;
  533. .checkbox{
  534. display: flex;
  535. margin: 0;
  536. padding: 0;
  537. display: flex;
  538. flex-direction: column;
  539. align-items: center;
  540. box-sizing: border-box;
  541. text-align: center;
  542. text-decoration: none;
  543. border-radius: 0;
  544. -webkit-tap-highlight-color: transparent;
  545. overflow: hidden;
  546. font-size: 34rpx;
  547. color:$color-system;
  548. line-height: 80rpx;
  549. }
  550. .text{
  551. float: left;
  552. line-height: 80rpx;
  553. margin-left: 15rpx;
  554. }
  555. }
  556. .ortext{
  557. float: right;
  558. color: $color-system;
  559. }
  560. }
  561. }
  562. .d-container {
  563. width: 560rpx;
  564. padding: 80rpx 30rpx;
  565. .d-title{
  566. width: 100%;
  567. height:80rpx;
  568. line-height: 80rpx;
  569. text-align: center;
  570. color: #4688fa;
  571. font-size: $font-size-32;
  572. float: left;
  573. }
  574. .d-time{
  575. width: 100%;
  576. height: 70rpx;
  577. float: left;
  578. box-sizing: border-box;
  579. padding: 0 10rpx;
  580. border: 1px solid rgba(0,0,0,0.2);
  581. border-radius: 4rpx;
  582. margin-bottom: 30rpx;
  583. .iconfont{
  584. width:70rpx;
  585. height: 60rpx;
  586. display: block;
  587. float: left;
  588. font-size: 50rpx;
  589. color: #666666;
  590. line-height: 70rpx;
  591. text-align: left;
  592. }
  593. .input{
  594. width: 220rpx;
  595. height: 70rpx;
  596. line-height: 70rpx;
  597. float: left;
  598. box-sizing: border-box;
  599. font-size: $font-size-24;
  600. color: #333333;
  601. padding: 0 10rpx;
  602. }
  603. }
  604. .d-label{
  605. width: 100%;
  606. height: 44rpx;
  607. line-height: 44rpx;
  608. text-align: left;
  609. color: #666666;
  610. font-size: $font-size-26;
  611. float: left;
  612. }
  613. .d-input{
  614. width: 100%;
  615. height: 70rpx;
  616. float: left;
  617. box-sizing: border-box;
  618. padding: 0 10rpx;
  619. border: 1px solid rgba(0,0,0,0.2);
  620. border-radius: 4rpx;
  621. margin-bottom: 30rpx;
  622. position: relative;
  623. &.btn{
  624. border: none;
  625. margin-top: 40rpx;
  626. }
  627. .input{
  628. width: 100%;
  629. height: 70rpx;
  630. line-height: 70rpx;
  631. float: left;
  632. box-sizing: border-box;
  633. font-size: $font-size-24;
  634. color: #333333;
  635. padding: 0 10rpx;
  636. padding-right: 68rpx;
  637. }
  638. .iconfont{
  639. width: 50rpx;
  640. height: 68rpx;
  641. display: block;
  642. line-height: 68rpx;
  643. text-align: center;
  644. font-size: 30rpx;
  645. color: #999999;
  646. position: absolute;
  647. right: 0;
  648. top: 0;
  649. }
  650. .d-btn{
  651. width: 210rpx;
  652. height: 84rpx;
  653. border-radius: 42rpx;
  654. background: $btn-confirm;
  655. line-height: 84rpx;
  656. text-align: center;
  657. font-size: $font-size-26;
  658. color: #FFFFFF;
  659. float: right;
  660. &.comfrim{
  661. background: $btn-confirm;
  662. margin-left: 20rpx;
  663. }
  664. &.clear{
  665. background: #e1e1e1;
  666. }
  667. }
  668. }
  669. }
  670. .tui-header {
  671. width: 100%;
  672. font-size: 16px;
  673. font-weight: 500;
  674. height: 32px;
  675. display: flex;
  676. align-items: center;
  677. justify-content: center;
  678. position: relative;
  679. padding: 0 40rpx;
  680. }
  681. .header-sit{
  682. width:100%;
  683. box-sizing: border-box;
  684. height: 80rpx;
  685. line-height: 80rpx;
  686. box-sizing: border-box;
  687. padding:0 40rpx;
  688. text-align: left;
  689. font-size: $font-size-40;
  690. color: #FFFFFF;
  691. font-weight: 600;
  692. font-family: '正楷';
  693. margin-top: 30rpx;
  694. .iconfont{
  695. font-size: 42rpx;
  696. margin-left: 30rpx;
  697. }
  698. }
  699. .mine{
  700. width: 100%;
  701. height: 100%;
  702. position:relative;
  703. }
  704. .product-content{
  705. width: 100%;
  706. height: auto;
  707. position: relative;
  708. padding:0;
  709. padding-top: 80rpx;
  710. box-sizing: border-box;
  711. .header-tabs{
  712. width: 100%;
  713. height: auto;
  714. margin-bottom: 40rpx;
  715. padding: 20rpx;
  716. border-radius: 20rpx;
  717. background:#4688fa;
  718. box-sizing: border-box;
  719. &.day{
  720. background:#FFFFFF;
  721. padding:40rpx 20rpx;
  722. box-shadow:0px 3px 6px rgba(0,0,0,0.2);
  723. }
  724. .title{
  725. font-size: $font-size-36;
  726. line-height: 60rpx;
  727. color: #FFF;
  728. font-weight: bold;
  729. margin-bottom: 20rpx;
  730. }
  731. .main{
  732. width: 100%;
  733. height: 110rpx;
  734. .main-item{
  735. float: left;
  736. width:20%;
  737. text-align: center;
  738. color: #FFFFFF;
  739. box-sizing: border-box;
  740. &.active{
  741. .iconfont{
  742. color: #576efa;
  743. }
  744. .text{
  745. font-weight: bold;
  746. color:#576efa ;
  747. font-size: $font-size-28;
  748. }
  749. }
  750. .text{
  751. width: 100%;
  752. height:60rpx;
  753. line-height: 60rpx;
  754. display: block;
  755. float: left;
  756. font-size:$font-size-24;
  757. color: #666666;
  758. text-align: center;
  759. &.nm{
  760. color: #222222;
  761. height:40rpx;
  762. line-height: 40rpx;
  763. font-size: $font-size-32;
  764. font-weight: bold;
  765. }
  766. }
  767. .iconfont{
  768. font-size:50rpx;
  769. color: #7aa5fa ;
  770. position: relative;
  771. .badg{
  772. padding: 0 10rpx;
  773. height: 30rpx;
  774. display: inline-block;
  775. font-size: $font-size-24;
  776. text-align: center;
  777. line-height: 30rpx;
  778. background-color: #ff4759;
  779. color: #FFF;
  780. position: absolute;
  781. top: -15rpx;
  782. right:20rpx;
  783. border-radius: 15rpx;
  784. }
  785. }
  786. }
  787. }
  788. }
  789. .tui-header-btm {
  790. width: 100%;
  791. padding: 0 30rpx;
  792. box-sizing: border-box;
  793. display: flex;
  794. align-items: center;
  795. justify-content: space-between;
  796. color: #fff;
  797. }
  798. .tui-btm-item {
  799. flex: 1;
  800. display: flex;
  801. flex-direction: column;
  802. align-items: center;
  803. justify-content: center;
  804. }
  805. .tui-btm-num {
  806. font-size: 32rpx;
  807. font-weight: 600;
  808. position: relative;
  809. }
  810. .tui-btm-text {
  811. font-size: 24rpx;
  812. opacity: 0.85;
  813. padding-top: 4rpx;
  814. }
  815. }
  816. .tui-goods-item {
  817. display: flex;
  818. padding: 30rpx 4rpx;
  819. box-sizing: border-box;
  820. border-bottom: 1px solid #EBEBEB;
  821. }
  822. .tui-goods-checkBox{
  823. display: flex;
  824. align-items: center;
  825. .checkbox{
  826. display: flex;
  827. margin: 0;
  828. padding: 0;
  829. display: flex;
  830. flex-direction: column;
  831. align-items: center;
  832. box-sizing: border-box;
  833. text-align: center;
  834. text-decoration: none;
  835. border-radius: 0;
  836. -webkit-tap-highlight-color: transparent;
  837. overflow: hidden;
  838. background-color:#FFFFFF;
  839. font-size: 36rpx;
  840. color:$color-system;
  841. }
  842. .text{
  843. font-size: $font-size-24;
  844. margin-left: 10rpx;
  845. }
  846. }
  847. .tui-goods-image{
  848. width: 180rpx;
  849. height: 180rpx !important;
  850. border-radius: 12rpx;
  851. margin-left: 20rpx;
  852. .tui-goods-img {
  853. width: 180rpx;
  854. height: 180rpx !important;
  855. border-radius: 12rpx;
  856. flex-shrink: 0;
  857. display: block;
  858. }
  859. }
  860. .tui-goods-info {
  861. width: 370rpx;
  862. padding-left: 20rpx;
  863. display: flex;
  864. flex-direction: column;
  865. align-items: flex-start;
  866. justify-content: space-between;
  867. box-sizing: border-box;
  868. overflow: hidden;
  869. position: relative;
  870. }
  871. .tui-goods-status{
  872. width: 100rpx;
  873. float: right;
  874. .status-text{
  875. font-size: $font-size-24;
  876. line-height: 44rpx;
  877. text-align: right;
  878. color: #666666;
  879. }
  880. }
  881. .tui-goods-title {
  882. white-space: normal;
  883. word-break: break-all;
  884. overflow: hidden;
  885. text-overflow: ellipsis;
  886. display: -webkit-box;
  887. -webkit-box-orient: vertical;
  888. -webkit-line-clamp: 2;
  889. font-size: 26rpx;
  890. color: #333;
  891. line-height: 44rpx;
  892. }
  893. .tui-goods-pip{
  894. white-space: normal;
  895. word-break: break-all;
  896. overflow: hidden;
  897. text-overflow: ellipsis;
  898. display: -webkit-box;
  899. -webkit-box-orient: vertical;
  900. -webkit-line-clamp: 2;
  901. font-size: 24rpx;
  902. color: #999;
  903. line-height: 44rpx;
  904. }
  905. .tui-goods-ediet{
  906. width: 60rpx;
  907. height: 60rpx;
  908. background: linear-gradient(90deg,rgba(122,165,250,1) 0%,rgba(87,110,250,1) 100%);
  909. border-radius: 50%;
  910. line-height: 60rpx;
  911. text-align: center;
  912. position: absolute;
  913. right: 0;
  914. top: 50%;
  915. .icon-bianji1 {
  916. flex-shrink: 0;
  917. display: flex;
  918. align-items: center;
  919. justify-content: center;
  920. color: #FFFFFF;
  921. font-size: 24rpx;
  922. }
  923. }
  924. .tui-goods-model {
  925. max-width: 100%;
  926. color: #FFFFFF;
  927. background: #4688fa;
  928. border-radius: 40rpx;
  929. display: flex;
  930. align-items: center;
  931. justify-content: space-between;
  932. padding: 0 20rpx;
  933. box-sizing: border-box;
  934. margin-top: 10rpx;
  935. }
  936. .tui-model-text {
  937. max-width: 100%;
  938. transform: scale(0.9);
  939. transform-origin: 0 center;
  940. font-size: 24rpx;
  941. line-height: 40rpx;
  942. white-space: nowrap;
  943. overflow: hidden;
  944. text-overflow: ellipsis;
  945. }
  946. .tui-price-box {
  947. width: 100%;
  948. display: flex;
  949. align-items: flex-end;
  950. justify-content: space-between;
  951. }
  952. .tui-goods-price {
  953. font-size: $font-size-28;
  954. font-weight: 500;
  955. color: #FF201F;
  956. }
  957. .tui-popup-box {
  958. position: relative;
  959. box-sizing: border-box;
  960. min-height: 200rpx;
  961. padding:6rpx 24rpx;
  962. }
  963. .tui-popup-btn {
  964. width: 100%;
  965. height: auto;
  966. float: left;
  967. box-sizing: border-box;
  968. padding: 0 75rpx;
  969. margin-top: 30rpx;
  970. .tui-button{
  971. width: 600rpx;
  972. height: 88rpx;
  973. background: #e1e1e1;
  974. line-height: 88rpx;
  975. text-align: center;
  976. color: #FFFFFF;
  977. font-size: $font-size-28;
  978. border-radius: 44rpx;
  979. &.active{
  980. background: $btn-confirm;
  981. }
  982. }
  983. }
  984. </style>