yiming
2024-03-05 0375a599e25b7f27c57d8c00f801761d9cce8aa2
revert: 阿斯顿

阿斯顿
20个文件已删除
19个文件已修改
12个文件已添加
3 文件已重命名
3723 ■■■■ 已修改文件
app.json 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/aboutUs/index.js 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/aboutUs/index.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/aboutUs/index.wxml 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/bibliographyList/index.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/bibliographyList/index.json 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/bibliographyList/index.wxml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/bookExhibitionDetails/index.js 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/bookExhibitionDetails/index.wxss 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/bookExhibitionList/index.js 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/bookExhibitionList/index.wxml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/bookExhibitionList/index.wxss 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/bookServices/assort/index.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cart/components/cart-bar/index.js 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cart/components/cart-bar/index.wxml 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cart/components/cart-bar/index.wxss 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cart/components/cart-empty/index.js 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cart/components/cart-empty/index.json 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cart/components/cart-empty/index.wxml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cart/components/cart-empty/index.wxss 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cart/components/cart-group/index.js 166 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cart/components/cart-group/index.json 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cart/components/cart-group/index.wxml 152 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cart/components/cart-group/index.wxs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cart/components/cart-group/index.wxss 335 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cart/components/cart-group/utils.wxs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cart/components/goods-card/index.js 243 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cart/components/goods-card/index.json 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cart/components/goods-card/index.wxml 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cart/components/goods-card/index.wxss 260 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cart/components/specs-popup/index.js 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cart/components/specs-popup/index.wxml 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cart/components/specs-popup/index.wxss 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cart/index.js 140 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cart/index.json 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cart/index.wxml 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cart/index.wxss 144 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cart/paymentPage/index.js 200 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cart/paymentPage/index.json 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cart/paymentPage/index.wxml 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cart/paymentPage/index.wxss 144 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cart/paymentPage/js/weapp.qrcode.js 补丁 | 查看 | 原始文档 | blame | 历史
pages/goods/details/components/buy-bar/index.js 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/goods/details/components/buy-bar/index.wxml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/resourceDetails/index.js 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/resourceDetails/index.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/resourceDetails/index.wxml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/resourceDetails/index.wxss 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/retrievalPage/index.js 522 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/retrievalPage/index.json 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/retrievalPage/index.wxml 164 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/retrievalPage/index.wxss 289 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
static/images/bookExhibitionList/banner.png 补丁 | 查看 | 原始文档 | blame | 历史
static/video/sea.mp4 补丁 | 查看 | 原始文档 | blame | 历史
app.json
@@ -1,5 +1,8 @@
{
  "pages": [
    "pages/resourceDetails/index",
    "pages/retrievalPage/index",
    "pages/cart/paymentPage/index",
    "pages/cart/index",
    "pages/home/home",
    "pages/aboutUs/index",
pages/aboutUs/index.js
@@ -1,6 +1,6 @@
// pages/aboutUs/index.js
const app = getApp()
import drawQrcode from './js/weapp.qrcode'
// import drawQrcode from './js/weapp.qrcode'
Page({
  /**
@@ -9,7 +9,6 @@
  data: {
    aboutText: null,
    swiperList: null,
    qrcodeWidth: 0,
    current: 1,//轮播图参数
    autoplay: true, //轮播图参数
    duration: '500',//轮播图参数
@@ -104,22 +103,21 @@
  },
  getBanner() {
    app.MG.resource.getItem({
      path: 'jsek_banner\\jsek_aboutUsBanner',
      paging: { start: 0, size: 9 },
      coverSize: {
        width: 250
      },
      fields: {
        jsek_link: []
      }
    }).then(res => {
      // console.log(res.datas[0].icon, 'res');
      this.setData({
        bannerList: res.datas[0].icon,
        swiperList: res.datas[0].icon
      })
      // console.log(this.data.swiperList);
      console.log(this.data.bannerList, 789);
    })
  },
  getAboutText() {
@@ -128,6 +126,9 @@
      fields: {
        content: []
      },
      coverSize: {
        width: 750
      },
    }).then(res => {
      console.log(res);
@@ -135,7 +136,7 @@
        aboutText: res.datas[0].content
      })
      console.log(this.data.aboutText);
    })
  }
})
pages/aboutUs/index.json
@@ -1,4 +1,5 @@
{
  "component": true,
  "usingComponents": {
    "t-swiper": "tdesign-miniprogram/swiper/swiper",
    "t-swiper-nav": "tdesign-miniprogram/swiper-nav/swiper-nav"
pages/aboutUs/index.wxml
@@ -1,8 +1,6 @@
<!--pages/aboutUs/index.wxml-->
<!-- <text>关于我们</text> -->
<view class="swiper-wrap">
  <t-swiper wx:if="{{bannerList.length > 0}}" list="{{bannerList}}" current="{{current}}" autoplay="{{autoplay}}" duration="{{duration}}" interval="{{interval}}" navigation="{{navigation}}" bind:click="navToActivityDetail" />
</view>
<!-- 二维码展示 -->
@@ -10,6 +8,19 @@
    <canvas style="width: 200px; height: 200px;margin:0 auto" canvas-id="myQrcode"></canvas>
</view> -->
<!-- <view class="swiper-wrap">
  <t-swiper list="{{bannerList}}" current="{{current}}" autoplay="{{autoplay}}" duration="{{duration}}" interval="{{interval}}" navigation="{{navigation}}" />
</view> -->
<view class="aboutUs">
  <view class="imageBox">
    <image src="{{swiperList}}" alt="" />
pages/bibliographyList/index.js
@@ -10,9 +10,9 @@
      higherList: [],
      vocationalList: [],
      teacherList: [],
      higherTotal: null,
      vocationalTotal: null,
      teacherTotal: null,
      higherTotal: 0,
      vocationalTotal: 0,
      teacherTotal: 0,
      value: '',
      BarHeight: '',
      navBarHeight: ''
@@ -34,6 +34,7 @@
      this.setData({
        BarHeight: sysInfo.statusBarHeight, navBarHeight: navBarHeight
      })
@@ -223,6 +224,7 @@
    },
    downloadData(event) {
      console.log(111);
      const item = event.currentTarget.dataset.item;
      // console.log(item.datas.freeFile.Value);
      const URL = 'http://182.92.203.7:3001/file/api/ApiDownload?md5=' + item.datas.freeFile.Value
pages/bibliographyList/index.json
@@ -5,7 +5,5 @@
    "t-tab-panel": "tdesign-miniprogram/tab-panel/tab-panel",
    "t-search": "tdesign-miniprogram/search/search"
  },
  "navigationBarTitleText": "书目",
  "navigationBarTextStyle": "white",
  "navigationStyle": "custom"
}
pages/bibliographyList/index.wxml
@@ -1,7 +1,7 @@
<!--pages/bibliographyList/index.wxml-->
<view class="example-search">
  <t-search model:value="{{value}}" placeholder="搜索预设文案" bind:submit="onSearchSubmit" />
  <t-search model:value="{{value}}" placeholder="请输入书目名称" bind:submit="onSearchSubmit" />
</view>
pages/bookExhibitionDetails/index.js
@@ -6,11 +6,11 @@
   * 页面的初始数据
   */
  data: {
    bookName: null,
    bookBeginDate: null,
    bookCreator: null,
    bookContent: null,
    bookImage: null,
    bookName: '',
    bookBeginDate: '',
    bookCreator: '',
    bookContent: '',
    bookImage: '',
    bookExhibitionList: []
  },
pages/bookExhibitionDetails/index.wxss
@@ -1,13 +1,13 @@
/* pages/bookExhibitionDetails/index.wxss */
.headBox {
  /* width: 750rpx; */
  text-align: center;
}
.headBox {}
.titleBox {
  font-weight: 800;
  font-size: 45rpx;
  display: flex;
  justify-content: center;
  padding: 0 30rpx;
  /* text-indent: 6%; */
}
.informationBox {
@@ -51,21 +51,20 @@
  margin: 20rpx;
  background: #FFFFFF;
  box-shadow: 0rpx 0rpx 18rpx 2rpx rgba(0, 0, 0, 0.08);
  padding: 10rpx;
  box-sizing: border-box;
}
.booksImageBox {
  width: 240rpx;
  height: 300rpx;
  margin: 30rpx;
}
.outsideBooksImageBox {
  background: #F5F5F5;
  width: 300rpx;
  width: 100%;
  margin: 0 auto;
  margin-top: 15rpx;
}
.booksTextBox {
pages/bookExhibitionList/index.js
@@ -295,13 +295,32 @@
  },
  onSwapRight() {
    // console.log('xxxxxx');
    this.data.nameSort = 'Asc'
    // this.data.nameSort = 'Asc'
    if (!this.data.nameSort) {
      this.setData({
        nameSort: 'Desc',
      });
    } else if (this.data.nameSort == 'Desc') {
      this.setData({
        nameSort: 'Asc',
      });
    } else if (this.data.nameSort == 'Asc') {
      this.setData({
        nameSort: '',
      });
    }
    this.bookExhibitionGet()
  },
  onSwapLeft() {
    this.data.nameSort = 'Desc'
    // console.log('sssssss');
    this.bookExhibitionGet()
  },
  onBookExhibitionDetails: function (event) {
    const item = event.currentTarget.dataset.item;
pages/bookExhibitionList/index.wxml
@@ -24,15 +24,16 @@
  </t-dropdown-menu>
  <view class="sortBox">
  <view class="sortBox" bind:tap="onSwapRight">
    <text>排序</text>
    <view class="iconBox">
      <t-icon class="swapRight" name="swap-right" size="48rpx" bind:click="onSwapRight" />
      <t-icon class="swapLeft" name="swap-right" size="48rpx" bind:click="onSwapLeft" />
      <t-icon class="swapRight" name="swap-right" size="35rpx" color="{{nameSort == 'Asc' ? '#ff6c00' : ''}}" />
      <t-icon class="swapLeft" name="swap-right" size="35rpx" color="{{nameSort == 'Desc' ? '#ff6c00' : ''}}" />
    </view>
  </view>
</view>
<view class="assembleContent">
<view class="titleBox">
  <view class="frameBox"></view> <text class="titleTextBox"> 线上书展</text>
</view>
@@ -40,8 +41,9 @@
  <view class="contentBox" wx:for="{{bookExhibitionList}}" wx:key="index" wx:for-item="item" wx:for-index="index" bindtap="onBookExhibitionDetails" data-item="{{item}}">
    <image wx:if="{{item.icon}}" src="{{item.icon}}" mode="" />
    <image wx:else="" src="./img/banner.png" mode="" />
    <view class="textBox"> <text>{{item.name}}</text></view>
      <image wx:else="" src="/static/images/bookExhibitionList/banner.png" mode="" />
      <view class="textBox" title="{{item.name}}"> <text>{{item.name}}</text></view>
  </view>
</view>
</view>
pages/bookExhibitionList/index.wxss
@@ -7,34 +7,37 @@
  flex-wrap: wrap;
  justify-content: space-between;
  margin: 15px;
}
.contentBox {
  width: 330rpx;
  height: 130rpx;
  /* height: 231rpx; */
  /* border: 1px #000 solid; */
  margin: 10px 0;
  background-color: #fff;
}
image {
  width: 100%;
  height: 85%;
  width: 327rpx;
  height: 128rpx;
}
.textBox {
  width: 280rpx;
  /* height: 75rpx; */
  font-size: 25rpx;
  width: 320rpx;
  font-size: 20rpx;
  /* display: flex;
  justify-content: center; */
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  text-align: center;
  -webkit-line-clamp: 2;
  /* text-align: center; */
  margin: 20rpx;
}
@@ -47,14 +50,11 @@
.iconBox {
  transform: rotate(90deg);
  /* margin: 10px;
  margin-right: 20px; */
  margin-left: 30rpx;
  margin-left: 10rpx;
}
.swapRight {
  /* margin-right: 10px; */
  height: 20rpx;
}
.swapLeft {
@@ -62,11 +62,14 @@
}
.sortBox {
  color: #999999;
  display: flex;
  border-bottom: 1px #ededed solid;
  /* border-bottom: 1px #ededed solid; */
  align-items: center;
  height: 86rpx;
  width: 195rpx;
  margin-top: 8rpx;
  font-size: 30rpx;
}
@@ -75,6 +78,7 @@
  display: flex;
  margin: 10px;
  margin-left: 0;
  padding-top: 30rpx;
}
.frameBox {
@@ -94,9 +98,16 @@
.classification {
  width: 550rpx;
  /* margin-bottom: 50rpx; */
}
.menuBox {
  display: flex;
  height: 75rpx;
}
.assembleContent {
  background-color: #F2F3F8;
}
pages/bookServices/assort/index.js
@@ -79,7 +79,9 @@
      sort: { type: 'Asc', field: 'LinkOrder' },
    };
    app.MG.store.getStoreChannelList(query).then((res) => {
      const list = res.datas.filter((item) => item.refCode != 'jsek_homepageBookService');
      this.setData({
        assortList: list,
      });
@@ -118,6 +120,8 @@
      sort: { type: 'Asc', field: 'LinkOrder' },
    };
    app.MG.store.getStoreChannelList(query).then(async (res) => {
      console.log(res, 'res');
      // 一级分类选中
      this.setData({
        startCheck: res.datas[0].refCode,
pages/cart/components/cart-bar/index.js
File was deleted
pages/cart/components/cart-bar/index.wxml
File was deleted
pages/cart/components/cart-bar/index.wxss
File was deleted
pages/cart/components/cart-empty/index.js
File was deleted
pages/cart/components/cart-empty/index.json
File was deleted
pages/cart/components/cart-empty/index.wxml
File was deleted
pages/cart/components/cart-empty/index.wxss
File was deleted
pages/cart/components/cart-group/index.js
File was deleted
pages/cart/components/cart-group/index.json
File was deleted
pages/cart/components/cart-group/index.wxml
File was deleted
pages/cart/components/cart-group/index.wxs
File was deleted
pages/cart/components/cart-group/index.wxss
File was deleted
pages/cart/components/cart-group/utils.wxs
File was deleted
pages/cart/components/goods-card/index.js
File was deleted
pages/cart/components/goods-card/index.json
File was deleted
pages/cart/components/goods-card/index.wxml
File was deleted
pages/cart/components/goods-card/index.wxss
File was deleted
pages/cart/components/specs-popup/index.js
File was deleted
pages/cart/components/specs-popup/index.wxml
File was deleted
pages/cart/components/specs-popup/index.wxss
File was deleted
pages/cart/index.js
@@ -1,66 +1,120 @@
// pages/cart/index.js
const app = getApp();
// import { getPublicImage } from '@/assets/js/middleGround/tool.js'
import { getPublicImage } from '../../assets/js/middleGround/tool';
Page({
  /**
   * 页面的初始数据
   */
  data: {
    imgUrl: [],
    shoppingCartData: [],
    checkAll: false,
    checkedList: [],
    selectedCount: 0,
    totalPrice: 0.00
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    wx.setNavigationBarTitle({
      title: '购物车'
    });
    this.shoppingCartGet();
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {
  onDelete(e) {
    const item = e.currentTarget.dataset.item;
    app.MG.store.delShoppingCart({
      ids: [item.id]
    }).then(res => {
      this.shoppingCartGet();
      wx.showToast({ title: '你点击了删除', icon: 'none' });
    });
  },
  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
  shoppingCartGet() {
    let query = {
      start: 0,
      size: 999,
      filterList: [],
      searchList: []
    };
    app.MG.store.getShoppingCartProductList(query).then(res => {
      res.datas.forEach(item => {
        item.imgUrl = getPublicImage(item.productMonWithLinkDto.product.icon, '', '160');
      });
      this.setData({
        shoppingCartData: res.datas
      });
    });
  },
  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {
  bottomChange(e) {
    const checked = e.detail.value.length > 0;
    const items = this.data.shoppingCartData.map(item => {
      item.checked = checked;
      return item;
    });
    this.setData({
      shoppingCartData: items,
      checkAll: checked
    });
    this.calculateSelectedCount();
    this.calculateTotalPrice();
  },
  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
  HandelItemChange(e) {
    const { item } = e.target.dataset;
    const items = this.data.shoppingCartData
    items.map(eitem => {
      if (eitem.id == item.id) {
        eitem.checked = e.detail.checked
      }
    })
    const data = items.filter(item => item.checked)
    const checkAll = data.length == this.data.shoppingCartData.length
    this.setData({
      shoppingCartData: items,
      checkAll
    });
    this.calculateSelectedCount();
    this.calculateTotalPrice();
  },
  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
  calculateSelectedCount() {
    const selectedItems = this.data.shoppingCartData.filter(item => item.checked);
    const selectedCount = selectedItems.length;
    this.setData({
      selectedCount
    });
  },
  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
  calculateTotalPrice() {
    const selectedItems = this.data.shoppingCartData.filter(item => item.checked);
    const totalPrice = selectedItems.reduce((total, item) => total + parseFloat(item.saleMethod.price), 0);
    this.setData({
      totalPrice: totalPrice.toFixed(2)
    });
  },
  goPaymentPage() {
  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {
    const selectedItems = this.data.shoppingCartData.filter(item => item.checked);
    console.log(selectedItems, 789);
    const selectedIds = selectedItems.map(item => item.id);
    console.log('选中的商品 id:', selectedIds);
    app.MG.store.shoppingCartCreateOrder({ linkIds: selectedIds }).then(res => {
      console.log(res.orderNumber, 456);
      const url = '/pages/cart/paymentPage/index?orderNumber=' + res.orderNumber
      wx.navigateTo({
        url
      });
    })
  }
})
});
pages/cart/index.json
@@ -1,7 +1,9 @@
{
  "component": true,
  "usingComponents": {
    "t-checkbox": "tdesign-miniprogram/checkbox/checkbox",
    "t-swipe-cell": "tdesign-miniprogram/swipe-cell/swipe-cell",
    "t-cell": "tdesign-miniprogram/cell/cell"
    "t-cell": "tdesign-miniprogram/cell/cell",
    "t-button": "tdesign-miniprogram/button/button"
  }
}
pages/cart/index.wxml
@@ -1,2 +1,38 @@
<!--pages/cart/index.wxml-->
<text>pages/cart/index.wxml</text>
<view class="outsideContentBox">
  <!-- <checkbox-group bindchange="HandelItemChange"> -->
  <t-swipe-cell wx:for="{{shoppingCartData}}" wx:key="index" wx:for-item="item" wx:for-index="index">
    <!-- <view class="contentBox"> -->
    <!-- <view class="contentCheckbox">
          <checkbox value="{{item.id}}" checked="{{item.checked}}"></checkbox>
        </view> -->
    <view class="itemWarp">
      <t-cell bordered="{{false}}" title="{{item.productMonWithLinkDto.product.name}}" description="¥{{item.saleMethod.price}}">
        <view slot="left-icon" class="left-icon">
          <view class="contentCheckbox">
            <t-checkbox icon="rectangle" value=" {{item.id}}" data-item="{{item}}" checked="{{item.checked}}" bindchange="HandelItemChange" />
          </view>
          <view class="left-image">
            <image src="{{item.imgUrl}}" class="imageStyle" mode="" />
          </view>
        </view>
      </t-cell>
    </view>
    <!-- </view> -->
    <view slot="right" class="btn delete-btn" bind:tap="onDelete" data-item="{{item}}">删除</view>
  </t-swipe-cell>
  <!-- </checkbox-group> -->
</view>
<view class="bottomBox">
  <view class="checkGroupBox">
    <checkbox-group bindchange="bottomChange">
      <checkbox value="全选" checked="{{checkAll}}">全选</checkbox>
    </checkbox-group>
  </view>
  <view class="settlementBox">
    <view class="totalPrice">总价:<text class="totalPriceText">¥{{totalPrice}}</text></view>
    <view class="buttonBox">
      <t-button class="tButtonBox" size="small" shape="round" bind:tap="goPaymentPage">去结算({{selectedCount}})</t-button>
    </view>
  </view>
</view>
pages/cart/index.wxss
@@ -23,3 +23,147 @@
.favor-btn {
  background-color: #0052d9;
}
.outsideContentBox {
  padding: 30rpx;
  background: #F2F3F8;
  border-radius: 18rpx 18rpx 18rpx 18rpx;
  padding-bottom: 230rpx;
  /* height: 260rpx; */
}
.bottomBox {
  background-color: #0052d9;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  padding-bottom: 53px;
  height: 112rpx;
  background: #FFFFFF;
  box-shadow: 0rpx -2rpx 0rpx 2rpx rgba(0, 0, 0, 0.08);
  display: flex;
  align-items: center;
}
.checkGroupBox {
  /* flex: 1; */
  margin: 0 30rpx;
  width: 120rpx;
}
.settlementBox {
  /* width: 100%; */
  display: flex;
  align-items: center;
  /* justify-content: space-between; */
}
.totalPrice {
  /* margin: 0 50rpx; */
}
.buttonBox {
  /* margin: 0 30rpx; */
  margin-left: 140rpx;
}
.tButtonBox {
  background-color: #FF6C00;
  width: 200rpx;
  height: 80rpx;
}
checkbox .wx-checkbox-input {
  /* border-radius: 50%; */
  /* 圆角 */
  /* width: 46rpx; */
  /* 背景的宽 */
  /* height: 46rpx; */
  /* 背景的高 */
  width: 30rpx;
  height: 30rpx;
}
/* 选中后的 背景样式*/
checkbox .wx-checkbox-input.wx-checkbox-input-checked {
  border: 1rpx solid #FF6C00;
  background: #FF6C00;
}
checkbox .wx-checkbox-input.wx-checkbox-input-checked::before {
  border-radius: 50%;
  /* 圆角 */
  width: 40rpx;
  /* 选中后对勾大小,不要超过背景的尺寸 */
  height: 40rpx;
  /* 选中后对勾大小,不要超过背景的尺寸 */
  line-height: 40rpx;
  text-align: center;
  font-size: 30rpx;
  /* 对勾大小 30rpx */
  color: #fff;
  /* 对勾颜色 白色 */
  background: transparent;
  transform: translate(-50%, -50%) scale(1);
  -webkit-transform: translate(-50%, -50%) scale(1);
}
.contentBox {
  display: flex;
  align-items: center;
  background-color: #fff;
  margin: 30rpx 0;
  border-radius: 18rpx 18rpx 18rpx 18rpx;
  height: 260rpx;
}
.totalPriceText {
  color: #FF6C00;
}
.LaelBox {
  margin: 50rpx;
}
.itemWarp {
  margin: 15rpx 0;
}
.t-cell {
  border-radius: 18rpx;
}
.t-cell__left-image {
  width: 150rpx;
  height: 210rpx;
}
.contentCheckbox {
  width: 100rpx;
}
.left-icon {
  display: flex;
  justify-content: flex-start;
  align-items: center;
}
.left-image {
  width: 152rpx;
  height: 212rpx;
  background: #FFFFFF;
  border-radius: 0rpx 0rpx 0rpx 0rpx;
}
.imageStyle {
  width: 100%;
  height: 100%;
}
pages/cart/paymentPage/index.js
New file
@@ -0,0 +1,200 @@
// pages/cart/paymentPage/index.js
const app = getApp()
import { getPublicImage } from '../../../assets/js/middleGround/tool';
import drawQrcode from './js/weapp.qrcode'
Page({
  /**
   * 页面的初始数据
   */
  data: {
    orderNumber: null,
    navBarHeight: '',
    barHeight: '',
    selectedIds: '',
    purchasedIds: [],
    productList: [],
    payPrice: '',
    drawQrcodeText: 'https://www.baidu.com/',
    orderGoods: '',
    confirmBtn: { content: '确定', variant: 'base' },
    dialogKey: 'false',
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    const systInfo = wx.getSystemInfoSync();
    const menu = wx.getMenuButtonBoundingClientRect(); // 胶囊信息
    const navBarHeight = (menu.top - systInfo.statusBarHeight) * 2 + menu.height; // 导航栏高度
    this.setData({
      orderNumber: options.orderNumber,
      navBarHeight: navBarHeight,
      barHeight: systInfo.statusBarHeight,
      selectedIds: options.selectedIds
    })
    console.log('接收到的订单号:', this.data.orderNumber);
    this.getOrderByOrderNum()
    drawQrcode({
      width: 200, // 必须,二维码宽度,与canvas的width保持一致
      height: 200, // 必须,二维码高度,与canvas的height保持一致
      canvasId: 'myQrcode',
      background: '#ffffff', //    非必须,二维码背景颜色,默认值白色
      foreground: '#2bb15e', // 非必须,二维码前景色,默认值黑色     '#000000'
      // ctx: wx.createCanvasContext('myQrcode'), // 非必须,绘图上下文,可通过 wx.createCanvasContext('canvasId') 获取,v1.0.0+版本支持
      text: this.data.drawQrcodeText,  // 必须,二维码内容
      // v1.0.0+版本支持在二维码上绘制图片
      image: {
        // imageResource: '../../images/icon.png', // 指定二维码小图标
        dx: 70,
        dy: 70,
        dWidth: 60,
        dHeight: 60
      }
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {
  },
  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
  },
  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {
  },
  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
  },
  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
  },
  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
  },
  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {
  },
  goBack() {
    wx.navigateBack();
  },
  getOrderByOrderNum() {
    let query = {
      orderNum: this.data.orderNumber,
      fields: {
        content: [],
        subtitle: [],
      }
    }
    app.MG.store.getOrderByOrderNum(query).then(res => {
      this.setData({
        orderGoods: res.orderNumber
      })
      console.log(this.data.orderGoods, 'res.orderNumber');
      console.log(res.payPrice);
      this.setData({
        payPrice: res.payPrice.toFixed(2)
      })
      res.saleMethodLinks.forEach(item => {
        item.paymentIcon = getPublicImage(item.orderSaleMethod.product.icon)
        this.setData({
          productList: res.saleMethodLinks
        })
      })
    })
  },
  confirmOrderGet() {
    let query = {
      orderNum: this.data.orderGoods
    }
    app.MG.store.confirmOrder(query).then(res => {
      this.makeWeChatQrPayGet()
    })
    // 调取微信二维码支付
  },
  // 调取微信二维码支付
  makeWeChatQrPayGet() {
    let query = {
      orderNum: this.data.orderGoods
    }
    app.MG.store.makeWeChatQrPay(query).then((res) => {
      this.setData({
        drawQrcodeText: res
      })
      this.data.dialogKey = true
      console.log(this.data.drawQrcodeText, 'drawQrcodeText');
    })
  },
  showDialog(e) {
    const { key } = e.currentTarget.dataset;
    this.setData({ [key]: true, dialogKey: key });
  },
  closeDialog() {
    const { dialogKey } = this.data;
    this.setData({ [dialogKey]: false });
  },
})
pages/cart/paymentPage/index.json
New file
@@ -0,0 +1,10 @@
{
  "component": true,
  "usingComponents": {
    "t-icon": "tdesign-miniprogram/icon/icon",
    "t-button": "tdesign-miniprogram/button/button",
    "t-dialog": "tdesign-miniprogram/dialog/dialog"
  },
  "navigationStyle": "custom"
}
pages/cart/paymentPage/index.wxml
New file
@@ -0,0 +1,74 @@
<!--pages/cart/paymentPage/index.wxml-->
<view style="width: 100%; height: {{barHeight}}px; "></view>
<view class="nacigationBar" style="width: 70%; height: {{navBarHeight}}px;">
  <view>
    <t-icon name="chevron-left" size="30" data-name="{{item}}" bind:click="goBack" />
  </view>
  <view class="navbar-title">提交订单</view>
</view>
<view class="content">
  <t-button t-class="wrapper" theme="primary" size="large" variant="outline" data-key="showCloseBtn" bind:tap="showDialog" block>
    带关闭按钮
  </t-button>
  <t-dialog visible="{{showCloseBtn}}" close-btn bind:confirm="closeDialog" bind:cancel="closeDialog">
    <view slot="content" class="slotContent">
      <view class="myQrcodeBox">
        <canvas style="width: 200px; height: 200px;margin:0 auto" canvas-id="myQrcode"></canvas>
        <view class="myQrcodeTextBox">微信扫码支付</view>
      </view>
    </view>
  </t-dialog>
  <view class="shoppingCartList">
    <view class="cartList" wx:for="{{productList}}" wx:key="index" wx:for-item="item" wx:for-index="index">
      <image src="{{item.paymentIcon }}" mode="" />
      <view class="cartListContent">
        <view class="cartListDetails">{{item.orderSaleMethod.product.name}}</view>
        <view class="textBox">图书服务-电子书</view>
        <view class="priceBox">¥{{item.payPrice}}</view>
      </view>
    </view>
  </view>
  <view class="priceBreakdown">
    <view class="priceBreakdownContent">价格明细</view>
    <view class="amountMoney">
      <view>商品金额</view>
      <view>¥{{payPrice}}</view>
    </view>
    <view class="amount">
      <view>合计:¥{{payPrice}}</view>
    </view>
  </view>
  <view class="interval"></view>
  <view class="paymentBox">
    <view class="residue">待支付:<text class="residueTextBox">¥{{payPrice}}</text></view>
    <view>
      <t-button class="buttonBox" shape="round" bind:tap="confirmOrderGet">微信支付</t-button>
    </view>
  </view>
</view>
pages/cart/paymentPage/index.wxss
New file
@@ -0,0 +1,144 @@
/* pages/cart/paymentPage/index.wxss */
.nacigationBar {
  background-color: #fff;
  display: flex;
  align-items: center;
}
.navbar-title {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: #0F1214;
  font-size: 40rpx;
  font-weight: bold;
  margin-bottom: 5rpx;
}
.content {
  width: 100%;
  height: 1250rpx;
  background-color: #F2F3F8;
  padding: 40rpx 0;
  padding-top: 1rpx;
}
.shoppingCartList {
  height: 1000rpx;
  background: #FFFFFF;
  border-radius: 20px;
  margin: 30rpx 0;
}
image {
  width: 150rpx;
  height: 210rpx;
  margin: 30rpx;
}
.cartListContent {
  /* margin: 0 auto; */
}
.cartList {
  display: flex;
}
.cartListContent {
  margin-top: 30rpx;
}
.cartListDetails {
  margin-bottom: 50rpx;
  font-family: PingFang SC, PingFang SC;
  font-weight: bold;
  font-size: 29rpx;
  color: #333333;
}
.textBox {
  font-family: PingFang SC, PingFang SC;
  font-weight: 400;
  font-size: 25rpx;
  color: #333333;
  /* margin: 10rpx 0; */
  margin-bottom: 20rpx;
}
.priceBox {
  font-weight: 500;
  font-size: 31rpx;
  color: #0F1214;
}
.priceBreakdown {
  height: 280rpx;
  background: #fff;
  padding: 30rpx;
}
.priceBreakdownContent {
  font-weight: bold;
  font-size: 32rpx;
  color: #0F1214;
  margin-bottom: 50rpx;
}
.amountMoney {
  display: flex;
  justify-content: space-between;
  font-weight: 500;
  font-size: 33rpx;
  color: #0F1214;
  border-bottom: 2rpx solid #EDEDED;
  padding-bottom: 38rpx;
}
.amount {
  display: flex;
  justify-content: flex-end;
  margin: 30rpx 0;
}
.interval {
  width: 100%;
  height: 30rpx;
  background-color: #F2F3F8;
}
.paymentBox {
  /* margin-top: 50rpx; */
  display: flex;
  justify-content: space-between;
  padding: 30rpx;
  align-items: center;
}
.residue {
  color: #949494;
}
.residueTextBox {
  font-weight: bold;
  font-size: 38rpx;
  color: #FF6C00;
}
.buttonBox {
  background-color: #FF6C00;
  border: #fff;
}
.myQrcodeBox {
  margin: 30rpx;
}
.myQrcodeTextBox {
  text-align: center;
  margin: 30rpx 0;
}
pages/cart/paymentPage/js/weapp.qrcode.js
pages/goods/details/components/buy-bar/index.js
@@ -40,6 +40,7 @@
  data: {
    fillPrice: false,
    shoppingCartGetId: null
  },
  methods: {
@@ -47,6 +48,24 @@
      const { isStock } = this.properties;
      if (!isStock) return;
      this.triggerEvent('toAddCart');
      // let query = {
      //   start: 0,
      //   size: 999,
      //   filterList: [],
      //   searchList: []
      // }
      // app.MG.store.getShoppingCartProductList(query).then(res => {
      //   res.datas.forEach((item) => {
      //     console.log(item.saleMethod.id, 'item.saleMethod.id');
      //     this.setData({
      //       shoppingCartGetId: item.saleMethod.id
      //     })
      //   })
      // })
    },
    toBuyNow(e) {
pages/goods/details/components/buy-bar/index.wxml
@@ -3,15 +3,7 @@
</view>
<view class="footer-cont flex flex-between wr-class">
    <view class="flex flex-between bottom-operate-left" wx:if="{{jumpArray.length > 0}}">
        <view
          wx:for="{{jumpArray}}"
          wx:key="index"
          class="icon-warp operate-wrap"
          bindtap="toNav"
          data-ele="foot_navigation"
          data-index="{{index}}"
          data-url="{{item.url}}"
        >
    <view wx:for="{{jumpArray}}" wx:key="index" class="icon-warp operate-wrap" bindtap="toNav" data-ele="foot_navigation" data-index="{{index}}" data-url="{{item.url}}">
            <view>
                <text wx:if="{{shopCartNum > 0 && item.showCartNum}}" class="tag-cart-num">
                    {{shopCartNum > 99 ? '99+' : shopCartNum}}
@@ -35,4 +27,3 @@
        <slot name="buyButton" />
    </block>
</view>
pages/resourceDetails/index.js
New file
@@ -0,0 +1,76 @@
// pages/resourceDetails/index.js
Page({
  /**
   * 页面的初始数据
   */
  data: {
    navBarHeight: '',
    barHeight: '',
    vURL: 'http://wxsnsdy.tc.qq.com/105/20210/snsdyvideodownload?filekey=30280201010421301f0201690402534804102ca905ce620b1241b726bc41dcff44e00204012882540400&bizid=1023&hy=SH&fileparam=302c020101042530230204136ffd93020457e3c4ff02024ef202031e8d7f02030f42400204045a320a0201000400'
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    const systInfo = wx.getSystemInfoSync();
    const menu = wx.getMenuButtonBoundingClientRect(); // 胶囊信息
    const navBarHeight = (menu.top - systInfo.statusBarHeight) * 2 + menu.height; // 导航栏高度
    this.setData({
      navBarHeight: navBarHeight,
      barHeight: systInfo.statusBarHeight,
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {
  },
  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
  },
  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {
  },
  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
  },
  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
  },
  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
  },
  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {
  }
})
pages/resourceDetails/index.json
File was renamed from pages/cart/components/cart-bar/index.json
@@ -1,6 +1,6 @@
{
  "component": true,
  "usingComponents": {
    "t-icon": "tdesign-miniprogram/icon/icon"
  }
  },
  "navigationStyle": "custom"
}
pages/resourceDetails/index.wxml
New file
@@ -0,0 +1,13 @@
<view style="width: 100%; height: {{barHeight}}px; "></view>
<view class="nacigationBar" style="width: 70%; height: {{navBarHeight}}px;">
  <view>
    <t-icon name="chevron-left" size="30" data-name="{{item}}" bind:click="goBack" />
  </view>
  <view class="navbar-title">资源详情</view>
</view>
<view class="videoBox">
  <video src="{{vURL}}" play-btn-position='center' object-fit='fill' controls enable-play-gesture enable-auto-rotation></video>
</view>
pages/resourceDetails/index.wxss
New file
@@ -0,0 +1,25 @@
/* pages/resourceDetails/index.wxss */
.nacigationBar {
  background-color: #fff;
  display: flex;
  align-items: center;
}
.navbar-title {
  white-space: nowrap;
  /* overflow: hidden; */
  text-overflow: ellipsis;
  color: #0F1214;
  font-size: 40rpx;
  font-weight: bold;
  margin-bottom: 5rpx;
}
.videoBox {
  width: 100%;
}
.videoBox video {
  width: 100vw;
}
pages/retrievalPage/index.js
New file
@@ -0,0 +1,522 @@
// pages/retrievalPage/index.js
import request from '../../assets/request/index'
import { handleQueryResourceListData } from '../../assets/js/middleGround/tool'
const app = getApp()
Page({
  /**
   * 页面的初始数据
   */
  data: {
    tabPanelstyle: 'display:flex;justify-content:center;align-items:center;',
    navBarHeight: '',
    barHeight: '',
    searchVal: '',
    bookData: [],   //图书
    bookTotal: 0,
    courseData: [],  //课程
    courseTotal: 0,
    digitalTextbooksData: [],  //数字教材
    digitalTextbooksTotal: 0,
    seminarData: [], //专题研讨
    seminarTotal: 0,
    biblioClassificationData: [],//书展
    biblioClassificationTotal: 0,
    bookFairData: [],//书目
    bookFairTotal: 0
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    const systInfo = wx.getSystemInfoSync();
    const menu = wx.getMenuButtonBoundingClientRect(); // 胶囊信息
    const navBarHeight = (menu.top - systInfo.statusBarHeight) * 2 + menu.height; // 导航栏高度
    this.setData({
      navBarHeight: navBarHeight,
      barHeight: systInfo.statusBarHeight,
    })
    this.retrievalPageGet()
    this.bibliographyGet()
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {
  },
  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
  },
  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {
  },
  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
  },
  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
  },
  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
  },
  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {
  },
  goBack() {
    wx.navigateBack();
  },
  //取消按钮
  onCancellation() {
    this.setData({
      searchVal: ''
    })
    this.retrievalPageGet()
    this.bibliographyGet()
  },
  onTabsChange(event) {
    console.log(`Change tab, tab-panel searchVal is ${event.detail.searchVal}.`);
  },
  onTabsClick(event) {
    console.log(`Click tab, tab-panel searchVal is ${event.detail.searchVal}.`);
  },
  retrievalPageGet() {
    let fields = {
      liveTime: [],
      lecturer: [],
      startTime: [],
      jsek_link: [],
      courseLeader: [],
      affiliatedUnit: [],
      publishingUnit: [],
      classHours: [],
      author: [],
      subtitle: []
    }
    let searchObj = {}
    if (this.data.searchVal) {
      searchObj = {
        'Name*': this.data.searchVal.trim(),
        '||author*': this.data.searchVal.trim(),
        '||isbn*': this.data.searchVal.trim(),
        '||seriesName*': this.data.searchVal.trim()
      }
    }
    let url = '/store/api/ApiQueryProductByAppUser'
    //图书
    let queryBook = {
      AccessControl: {
        Path: '*',
        StoreRefCode: 'defaultGoodsStore27',
        Type: '*',
        LinkType: ''
      },
      PageQuery: {
        Start: 0,
        Size: 999
      },
      SortQuery: [
        {
          LinkOrder: 'Desc'
        }
      ],
      CreateDate: [],
      Description: [],
      Name: [],
      Icon: [],
      RefCode: [],
      TypeId: [],
      SysType: [],
      State: [],
      Tag: [],
      BeginDate: [],
      EndDate: [],
      ProductLinkInfo: [],
      AllowDonate: [],
      ...searchObj,
      ...fields
    }
    let courseObj = {}
    if (this.data.searchVal) {
      courseObj = {
        'Name*': this.data.searchVal.trim(),
        '||author*': this.data.searchVal.trim(),
        '||isbn*': this.data.searchVal.trim(),
        '||seriesName*': this.data.searchVal.trim()
      }
    }
    //课程
    let queryCourse = {
      AccessControl: {
        Path: '*',
        StoreRefCode: 'jsek_digitalCourses',
        Type: '*',
        LinkType: ''
      },
      PageQuery: {
        Start: 0,
        Size: 999
      },
      SortQuery: [
        {
          LinkOrder: 'Desc'
        }
      ],
      CreateDate: [],
      Description: [],
      Name: [],
      Icon: [],
      RefCode: [],
      TypeId: [],
      SysType: [],
      State: [],
      Tag: [],
      BeginDate: [],
      EndDate: [],
      ProductLinkInfo: [],
      AllowDonate: [],
      ...courseObj,
      ...fields
    }
    let digitalTextbooksObj = {}
    if (this.data.searchVal) {
      digitalTextbooksObj = {
        'Name*': this.data.searchVal.trim(),
        '||author*': this.data.searchVal.trim(),
        '||isbn*': this.data.searchVal.trim(),
        '||seriesName*': this.data.searchVal.trim()
      }
    }
    // 数字教材
    let queryDigitalTextbooks = {
      AccessControl: {
        Path: '*',
        StoreRefCode: 'jsek_digitalTextbooks',
        Type: '*',
        LinkType: ''
      },
      PageQuery: {
        Start: 0,
        Size: 999
      },
      SortQuery: [
        {
          LinkOrder: 'Desc'
        }
      ],
      CreateDate: [],
      Description: [],
      Name: [],
      Icon: [],
      RefCode: [],
      TypeId: [],
      SysType: [],
      State: [],
      Tag: [],
      BeginDate: [],
      EndDate: [],
      ProductLinkInfo: [],
      AllowDonate: [],
      ...digitalTextbooksObj,
      ...fields
    }
    let seminarObj = {}
    if (this.data.searchVal) {
      seminarObj = {
        'Name*': this.data.searchVal.trim(),
        '||author*': this.data.searchVal.trim(),
        '||isbn*': this.data.searchVal.trim(),
        '||seriesName*': this.data.searchVal.trim()
      }
    }
    // 专题研讨
    let querySeminar = {
      AccessControl: {
        Path: '*',
        StoreRefCode: 'jsek_seminar',
        Type: '*',
        LinkType: ''
      },
      PageQuery: {
        Start: 0,
        Size: 999
      },
      SortQuery: [
        {
          LinkOrder: 'Desc'
        }
      ],
      CreateDate: [],
      Description: [],
      Name: [],
      Icon: [],
      RefCode: [],
      TypeId: [],
      SysType: [],
      State: [],
      Tag: [],
      BeginDate: [],
      EndDate: [],
      ProductLinkInfo: [],
      AllowDonate: [],
      ...fields,
      ...seminarObj
    }
    let biblioClassificationObj = {}
    if (this.data.searchVal) {
      biblioClassificationObj = {
        'Name*': this.data.searchVal.trim(),
        '||author*': this.data.searchVal.trim(),
        '||isbn*': this.data.searchVal.trim(),
        '||seriesName*': this.data.searchVal.trim()
      }
    }
    //书展
    let queryBiblioClassification = {
      AccessControl: {
        Path: '*',
        StoreRefCode: 'jsek_bookFair',
        Type: '*',
        LinkType: ''
      },
      PageQuery: {
        Start: 0,
        Size: 999
      },
      SortQuery: [
        {
          LinkOrder: 'Desc'
        }
      ],
      CreateDate: [],
      Description: [],
      Name: [],
      Icon: [],
      RefCode: [],
      TypeId: [],
      SysType: [],
      State: [],
      Tag: [],
      BeginDate: [],
      EndDate: [],
      ProductLinkInfo: [],
      AllowDonate: [],
      content: [],
      backgroundSelection: [],
      ...fields,
      ...biblioClassificationObj
    }
    let body = {
      query: JSON.stringify({
        Query: [{
          queryBook: queryBook
        }, {
          queryCourse: queryCourse
        }, {
          queryDigitalTextbooks: queryDigitalTextbooks
        }, {
          querySeminar: querySeminar
        }, {
          queryBiblioClassification: queryBiblioClassification
        }]
      })
    }
    request({
      url: url,
      method: 'post',
      data: body
    }).then((resp) => {
      // console.log(resp);
      //图书       0
      const data1 = resp[0]
      const datas1 = handleQueryResourceListData({
        datas: data1.datas,
        fields
      })
      this.setData({
        bookData: datas1,
        bookTotal: data1.totalCount
      })
      //数字课程    1
      const data2 = resp[1]
      const datas2 = handleQueryResourceListData({
        datas: data2.datas,
        fields
      })
      this.setData({
        courseData: datas2,
        courseTotal: data2.totalCount
      })
      // 数字教材    2
      const data3 = resp[2]
      const datas3 = handleQueryResourceListData({
        datas: data3.datas,
        fields
      })
      this.setData({
        digitalTextbooksData: datas3,
        digitalTextbooksTotal: data3.totalCount
      })
      // 专题研讨   3
      const data4 = resp[3]
      const datas4 = handleQueryResourceListData({
        datas: data4.datas,
        fields
      })
      this.setData({
        seminarData: datas4,
        seminarTotal: data4.totalCount
      })
      // 书展      4
      const data5 = resp[4]
      const datas5 = handleQueryResourceListData({
        datas: data5.datas,
        fields
      })
      this.setData({
        biblioClassificationData: datas5,
        biblioClassificationTotal: data5.totalCount
      })
    })
  },
  bibliographyGet() {
    let bibliographyObj = {}
    if (this.data.searchVal) {
      bibliographyObj = {
        'Name*': this.data.searchVal.trim(),
        '||author*': this.data.searchVal.trim(),
        '||isbn*': this.data.searchVal.trim(),
        '||seriesName*': this.data.searchVal.trim()
      }
    }
    app.MG.resource.getItem({
      path: 'jsek_biblioClassification',
      queryType: '*',
      paging: {
        start: 0,
        size: 999
      },
      coverSize: {
        width: 260
      },
      fields: {
        jsek_link: [],
        content: [],
        subtitle: [],
        fileType: [],
        jsek_resource: [],
        freeFile: [],
        ...bibliographyObj
      },
      SysType: "CmsItem"
    }).then(res => {
      // console.log(res);
      this.setData({
        bookFairData: res.datas,
        bookFairTotal: res.total
      })
    })
  },
  downloadData(event) {
    console.log(111);
    const item = event.currentTarget.dataset.item;
    // console.log(item.datas.freeFile.searchVal);
    const URL = 'http://182.92.203.7:3001/file/api/ApiDownload?md5=' + item.datas.freeFile.searchVal
    item.determine = false
    setTimeout(() => {
      if (URL) {
        item.determine = true
      }
    }, 600)
    wx.downloadFile({
      url: URL,
      success: function (res) {
        const filePath = res.tempFilePath;
        wx.openDocument({
          filePath: filePath,
          success: function (res) {
            console.log('打开文档成功');
          },
          fail: function (res) {
            console.log('打开文档失败', res);
          }
        });
      },
      fail: function (res) {
        console.log('下载文件失败', res);
      }
    });
  },
  onSearchSubmit() {
    console.log(this.data.searchVal);
    this.retrievalPageGet()
    this.bibliographyGet()
  }
})
pages/retrievalPage/index.json
New file
@@ -0,0 +1,10 @@
{
  "component": true,
  "usingComponents": {
    "t-icon": "tdesign-miniprogram/icon/icon",
    "t-search": "tdesign-miniprogram/search/search",
    "t-tabs": "tdesign-miniprogram/tabs/tabs",
    "t-tab-panel": "tdesign-miniprogram/tab-panel/tab-panel"
  },
  "navigationStyle": "custom"
}
pages/retrievalPage/index.wxml
New file
@@ -0,0 +1,164 @@
<!--pages/retrievalPage/index.wxml-->
<view style="width: 100%; height: {{barHeight}}px; "></view>
<view class="nacigationBar" style="width: 70%; height: {{navBarHeight}}px;">
  <view>
    <t-icon name="chevron-left" size="30" data-name="{{item}}" bind:click="goBack" />
  </view>
  <view class="navbar-title">检索结果</view>
</view>
<view class="example-search">
  <t-search bind:submit="onSearchSubmit" class="searchBox" model:value="{{searchVal}}" placeholder="请输入关键词/书名/ISBN/作者" />
  <view class="cancellation" bind:tap="onCancellation">取消</view>
</view>
<t-tabs defaultValue="{{0}}" bind:change="onTabsChange" bind:click="onTabsClick" t-class="custom-tabs" t-class-content="custom-panel">
  <t-tab-panel label="图书({{bookTotal}})" value="0">
    <view class="bookDataBox">
      <view class="bookDataForBox" wx:for="{{bookData}}" wx:key="index" wx:for-item="item" wx:for-index="index">
        <view class="imageBox">
          <image src="{{item.icon}}" mode="" />
        </view>
        <view class="bookDataNmae">
          {{item.name}}
        </view>
        <view class="bookDataAuthor">{{item.author}}</view>
      </view>
    </view>
  </t-tab-panel>
  <t-tab-panel label="课程({{courseTotal}})" value="1">
    <view class="listBox1">
      <view wx:if="{{courseData.length>0}}">
        <view wx:for="{{courseData}}" wx:for-item="item" wx:for-index="index" wx:key="index" bindtap="toList" data-info="{{item}}" class="listItemBox">
          <view class="listItem flex">
            <view class="specialSubject-img">
              <image src="{{item.icon}}" mode="aspectFill" class="img" />
            </view>
            <view class="body-info">
              <view class="name">{{item.name}}</view>
              <view class="flex jc-sb">
                <text class="author">{{item.courseLeader}}</text>
                <text>{{item.classHours}}课时</text>
              </view>
              <view class="priceBox flex jc-sb">
                <text class="price" wx:if="{{item.price == 0}}">免费</text>
                <text class="price" wx:if="{{item.price !== 0}}">¥{{item.price}}</text>
                <image src="/static/images/home/home-cart.png" mode="aspectFill" class="addCartImg" />
              </view>
            </view>
          </view>
        </view>
      </view>
      <view class="empyt" wx:else>
        <t-empty icon="folder-open" description="暂无数据" font-size="80" />
      </view>
    </view>
  </t-tab-panel>
  <t-tab-panel label="数字教材({{digitalTextbooksTotal}})" value="2">
    <view class="bookDataBox">
      <view class="bookDataForBox" wx:for="{{digitalTextbooksData}}" wx:key="index" wx:for-item="item" wx:for-index="index">
        <view class="imageBox">
          <image src="{{item.icon}}" mode="" />
        </view>
        <view class="bookDataNmae">
          {{item.name}}
        </view>
        <view class="bookDataAuthor">{{item.author}}</view>
      </view>
    </view>
  </t-tab-panel>
  <t-tab-panel label="专题({{seminarTotal}})" value="3">
    <view class="listBox">
      <view wx:for="{{seminarData}}" wx:for-item="item" wx:for-index="index" wx:key="index" bindtap="toList" data-info="{{item}}" class="listItemBox">
        <view class="listItem">
          <view class="specialSubject-img">
            <image src="{{item.icon}}" mode="aspectFill" class="img" />
          </view>
          <view class="body-info">
            <view class="name">{{item.name}}</view>
            <view class="time" wx:if="{{item.liveTime}}">直播时间:<text>{{item.liveTime}}</text></view>
            <view class="time" wx:if="{{item.startTime}}">开播时间:<text>{{ item.startTime }}</text></view>
            <view class="time" wx:if="{{!item.liveTime && !item.startTime}}">开播时间:<text class="grey">待定</text></view>
            <view class="flex jc-sb">
              <text class="author">{{item.lecturer}}</text>
              <text class="price" wx:if="{{item.price == 0}}">免费</text>
              <text class="price" wx:if="{{item.price !== 0}}">¥{{item.price}}</text>
            </view>
          </view>
        </view>
      </view>
    </view>
  </t-tab-panel>
  <t-tab-panel label="书目({{bookFairTotal}})" value="4">
    <view class="outsideHigherBox">
      <view class="higherBox" wx:for="{{bookFairData}}" wx:key="index" wx:for-item="item" wx:for-index="index">
        <view class="outsideHigherImageBox">
          <image class="higherImageBox" src="{{item.icon}}" mode="" />
          <view class="downloadIcon" bind:tap="downloadData" data-item="{{item}}">
            <image wx:if="{{determine}}" class="download" src="/static/images/bibliographyList/downloadshiftin.png" mode="" />
            <image wx:else="" class="downloadshiftin" src="/static/images/bibliographyList/download.png" mode="" />
          </view>
        </view>
        <view class="higherTextBox">{{item.name}}</view>
      </view>
    </view>
  </t-tab-panel>
  <t-tab-panel label="书展({{biblioClassificationTotal}})" value="5">
    <view class="outside">
      <view class="contentBox" wx:for="{{biblioClassificationData}}" wx:key="index" wx:for-item="item" wx:for-index="index" bindtap="onBookExhibitionDetails" data-item="{{item}}">
        <image class="bookFairImage" wx:if="{{item.icon}}" src="{{item.icon}}" mode="" />
        <image class="bookFairImage" wx:else="" src="/static/images/bookExhibitionList/banner.png" mode="" />
        <view class="textBox" title="{{item.name}}"> <text>{{item.name}}</text></view>
      </view>
    </view>
  </t-tab-panel>
</t-tabs>
pages/retrievalPage/index.wxss
New file
@@ -0,0 +1,289 @@
/* pages/retrievalPage/index.wxss */
.nacigationBar {
  background-color: #fff;
  display: flex;
  align-items: center;
}
.navbar-title {
  white-space: nowrap;
  /* overflow: hidden; */
  text-overflow: ellipsis;
  color: #0F1214;
  font-size: 40rpx;
  font-weight: bold;
  margin-bottom: 5rpx;
}
.example-search {
  background-color: #fff;
  padding: 16rpx 32rpx;
  display: flex;
  align-items: center;
  /* font-size: 25rpx; */
  color: #999999;
}
.searchBox {
  width: 614rpx;
  /* margin-right: 20rpx; */
}
.cancellation {
  width: 80rpx;
  margin-left: 15rpx;
}
.custom-tabs {
  margin-bottom: 32rpx;
}
.custom-panel {
  /* height: 120px; */
}
.imageBox {
  width: 190rpx;
  height: 280rpx;
  box-shadow: 10rpx 10rpx 10rpx 10rpx rgba(0, 0, 0, 0.08);
}
image {
  width: 100%;
  height: 100%;
}
.bookDataBox {
  display: flex;
  flex-wrap: wrap;
}
.bookDataForBox {
  width: 190rpx;
  margin: 30rpx;
}
.bookDataNmae {
  margin: 20rpx 0;
  font-family: PingFang SC, PingFang SC;
  font-weight: bold;
  font-size: 25rpx;
  color: #333333;
  word-break: break-all;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.bookDataAuthor {
  font-family: PingFang SC, PingFang SC;
  font-weight: 400;
  font-size: 22rpx;
  color: #333333;
}
.listBox {
  padding: 20rpx 0;
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
  margin: 20rpx;
}
.listBox .listItemBox {
  width: 49%;
  margin-bottom: 50rpx;
}
.listItemBox .listItem {
  background: #fff;
  box-sizing: border-box;
  border-radius: 5px;
  overflow: hidden;
  box-shadow: 0px 0px 20rpx 2px #f1f1f1;
}
.listBox .specialSubject-img {
  width: 100%;
  height: 120rpx;
}
.specialSubject-img image {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.body-info {
  padding: 20rpx;
  font-size: 28rpx;
}
.body-info .name {
  font-size: 32rpx;
  height: 88rpx;
  color: #333333;
  font-weight: bold;
  line-height: 44rpx;
  display: -webkit-box;
  margin-bottom: 10rpx;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
}
.body-info .time {
  font-size: 26rpx;
  margin-bottom: 10rpx;
}
.body-info .author {
  font-size: 26rpx;
  display: flex;
  justify-content: space-between;
}
.body-info .price {
  font-size: 26rpx;
  color: #ff6d00;
}
.flex {
  display: flex;
}
.jc-sb {
  justify-content: space-between
}
.listBox1,
.listBox2 {
  padding: 50rpx 0;
}
.listBox1 .listItemBox {
  height: 220rpx;
  margin-bottom: 30rpx;
}
.listBox1 .specialSubject-img {
  width: 400rpx;
  height: 218rpx;
}
.listBox1 .addCartImg,
.listBox3 .addCartImg {
  width: 30rpx;
  height: 30rpx;
}
.listBox1 .priceBox {
  margin-top: 14rpx;
}
.outside {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin: 15px;
}
.contentBox {
  width: 330rpx;
  /* height: 231rpx; */
  /* border: 1px #000 solid; */
  margin: 10px 0;
  background-color: #fff;
}
.textBox {
  width: 280rpx;
  /* height: 75rpx; */
  font-size: 25rpx;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  /* text-align: center; */
  margin: 20rpx;
}
.bookFairImage {
  width: 327rpx;
  height: 128rpx;
}
.outsideHigherBox {
  display: flex;
  flex-wrap: wrap;
}
.higherBox {
  width: 220rpx;
  /* height: 390rpx; */
  box-shadow: 10rpx 10rpx 10rpx 10rpx rgba(0, 0, 0, 0.08);
  margin: 30rpx 15rpx;
}
.outsideHigherImageBox {
  position: relative;
}
.higherImageBox {
  width: 190rpx;
  height: 255rpx;
  margin: 15rpx;
}
.downloadIcon {
  width: 34rpx;
  height: 34rpx;
  border-radius: 5rpx 5rpx 5rpx 5rpx;
  background: rgba(0, 0, 0, 0.3);
  position: absolute;
  top: 15rpx;
  right: 15rpx;
  padding: 10rpx;
}
.download {
  /* background-color: #8bc34a; */
  width: 100%;
  height: 100%;
}
.downloadshiftin {
  width: 100%;
  height: 100%;
}
.higherTextBox {
  font-weight: bold;
  font-size: 25rpx;
  color: #333333;
  padding: 15rpx;
  margin-bottom: 10rpx;
}
static/images/bookExhibitionList/banner.png

static/video/sea.mp4
Binary files differ