From c96612e8a63ecef9590be0f8b5199277ec94e5b9 Mon Sep 17 00:00:00 2001 From: 闫增涛 <1829501689@qq.com> Date: 星期三, 18 九月 2024 18:43:12 +0800 Subject: [PATCH] 云学习购买目录,修改bug --- packageBookService/pages/bookServices/detail/buyResource/index.js | 414 ++++--- packageDomain/pages/sampleBookList/index.wxml | 4 packageDomain/pages/sampleBookList/index.wxss | 11 packageBookService/pages/bookServices/detail/components/teachResource/index.json | 3 packageBookService/pages/bookServices/detail/index.wxml | 423 ++++++- assets/js/middleGround/api/store.js | 71 pages/digitalCourses/digitalCoursesDetails/index.wxss | 2 pages/digitalCourses/index.js | 9 packageBookService/pages/bookServices/detail/components/tree/index.js | 235 ++-- packageBookService/pages/bookServices/detail/buyResource/index.wxml | 34 packageDomain/pages/sampleBookList/index.js | 12 packageBookService/pages/bookServices/detail/index.js | 460 +++---- packageBookService/pages/bookServices/detail/components/teachResource/index.js | 3 pages/cart/index.wxml | 73 + packageDomain/pages/publickBookForm/index.wxss | 2 packageDomain/pages/publickBookForm/index.wxml | 169 ++ packageBookService/pages/bookServices/detail/components/learnResource/learnResource.wxml | 45 pages/digitalCourses/digitalCoursesDetails/index.js | 16 packageBookService/pages/bookServices/detail/components/teachResource/index.wxss | 4 packageBookService/pages/bookServices/detail/components/teachResource/index.wxml | 71 + packageDomain/pages/sampleBookList/applicationForm/index.js | 4 packageDomain/pages/resourceDetails/myAudio/index.js | 94 - pages/retrievalPage/index.wxml | 275 ++++ packageDomain/pages/sampleBookList/applicationForm/index.wxss | 22 packageDomain/pages/publickBookForm/index.js | 19 pages/digitalCourses/index.wxml | 73 + packageDomain/pages/sampleBookList/applicationForm/index.wxml | 209 ++- packageBookService/pages/bookServices/detail/components/tree/index.wxss | 16 packageBookService/pages/bookServices/detail/components/tree/index.wxml | 310 ++++- packageBookService/pages/bookServices/detail/components/learnResource/learnResource.js | 6 pages/cart/index.js | 6 packageDomain/pages/resourceDetails/myAudio/index.wxml | 10 32 files changed, 2,053 insertions(+), 1,052 deletions(-) diff --git a/assets/js/middleGround/api/store.js b/assets/js/middleGround/api/store.js index d73f9e8..8a8f185 100644 --- a/assets/js/middleGround/api/store.js +++ b/assets/js/middleGround/api/store.js @@ -480,48 +480,45 @@ }] }) } - let token = wx.getStorageSync(tokenKey) ? wx.getStorageSync(tokenKey) : ''; let url = token ? '/store/api/ApiQueryProductByAppUser' : '/store/api/ApiQueryProduct' return request({ - url: url, - method: 'post', - data: body, - cancelToken: source?.token - }) - .then((resp) => { - if (resp.length > 0) { - const data = resp[0] - if (data.datas.length) { - - data.datas[0].subDatas = data.datas[0].cmsDatas - const datas = handleDetailQueryRequestData({ - item: data.datas[0], - fields, - itemFields: { - ...itemFields, - ...linkFields - }, - path, - coverSize, - handelEBooK - }) - return { - datas, - total: data.totalCount - } - } else { - return { - datas: [], - total: 0 - } + url: url, + method: 'post', + data: body, + cancelToken: source?.token + }).then((resp) => { + if (resp.length > 0) { + const data = resp[0] + if (data.datas.length) { + data.datas[0].subDatas = data.datas[0].cmsDatas + const datas = handleDetailQueryRequestData({ + item: data.datas[0], + fields, + itemFields: { + ...itemFields, + ...linkFields + }, + path, + coverSize, + handelEBooK + }) + return { + datas, + total: data.totalCount + } + } else { + return { + datas: [], + total: 0 } } - return { - datas: [], - total: 0 - } - }) + } + return { + datas: [], + total: 0 + } + }) }, // 鑾峰彇浼樻儬鍒稿垪琛� getChannelPromoteCodeList(data) { diff --git a/packageBookService/pages/bookServices/detail/buyResource/index.js b/packageBookService/pages/bookServices/detail/buyResource/index.js index dfee441..dd5debe 100644 --- a/packageBookService/pages/bookServices/detail/buyResource/index.js +++ b/packageBookService/pages/bookServices/detail/buyResource/index.js @@ -39,7 +39,6 @@ productLinkPath: options.productLinkPath, refCode: options.refCode }); - this.getResourceClass(); this.getShoppingCartProductGet(); }, @@ -141,12 +140,10 @@ if (item.fileMap[item.file].protectType == 'Private') item.disabled = true } } - // 鍦ㄦ彃鍏ヨ繃绋嬩腑瀵规暟鎹繘琛屾帓搴� 骞朵笖鍘婚櫎宸茬粡棰嗗彇鍜岃喘涔扮殑 - if (item.sysType == 'CmsFolder') { - newArr = this.insertAndSortObjectsByProductLinkPath(newArr, item) - } else if (item.sysType == 'CmsItem' && this.resourceIsBuy(item)) { - newArr = this.insertAndSortObjectsByProductLinkPath(newArr, item) - } + // 鍦ㄦ彃鍏ヨ繃绋嬩腑瀵规暟鎹繘琛屾帓搴� + newArr = this.insertAndSortObjectsByProductLinkPath(newArr, item) + // 鎻掕繘鏁扮粍鍚� 浠庡師鏁版嵁涓垹闄� + rootList = rootList.filter(nitem => nitem.id != item.id) } } //缁欐暟缁勯噷闈㈠啀娣诲姞涓�涓猚hildren鐨勭┖鏁扮粍 @@ -209,10 +206,44 @@ flattenedArray.push(...childrenArray); } }); - return flattenedArray.filter((item) => item.sysType == "CmsItem"); + return flattenedArray; }, - - // 鏁欏璧勬簮 浜戝涔� 鑾峰彇 + // 閫掑綊鏍戠粨鏋勶紝濡傛灉鐖剁骇鏈夐攢鍞柟寮�(鏈夋晥鏈�)锛屽幓鎺夋墍鏈夊瓙闆嗙殑閿�鍞柟寮� + clearTreeSealmethod(clearSaleMethod, tree) { + for (let item of tree) { + const saleData = item.saleMethod && + item.saleMethod.length ? + item.saleMethod.find((citem) => citem.SaleType == 'Normal') : null + if ( + ((saleData && new Date(saleData.EndDate).getTime() >= new Date().getTime() && new Date(saleData.BeginDate).getTime() <= new Date().getTime()) || + clearSaleMethod) && item.children && item.children.length + ) { + item.children.forEach((ditem) => (ditem.saleMethod = [])) + } + if (item.children && item.children.length) + this.clearTreeSealmethod( + saleData && new Date(saleData.EndDate).getTime() >= new Date().getTime() && new Date(saleData.BeginDate).getTime() <= new Date().getTime(), + item.children + ) + } + return tree + }, + // 鍕鹃�夌鐢� + handleTreeCheck(tree) { + for (const item of tree) { + const saleData = item.saleMethod && + item.saleMethod.length ? + item.saleMethod.find((citem) => citem.SaleType == 'Normal') : undefined + if (saleData && new Date(saleData.EndDate).getTime() >= new Date().getTime() && new Date(saleData.BeginDate).getTime() <= new Date().getTime()) { + item.disabled = false + } else { + item.disabled = true + } + if (item.children && item.children.length) this.handleTreeCheck(item.children) + } + return tree + }, + // 鑾峰彇浜戝涔� getResourceDataList(type) { this.setData({ loading: true, @@ -251,65 +282,45 @@ }); } let list = [] - // 娴嬭瘯 6浣�// 姝e紡 5浣�// 娴嬭瘯璋冪敤浼�20锛屽唴閮�7 姝e紡璋冪敤浼�17 鍐呴儴浼�6 - //鏁欏璧勬簮 浜戝涔� - if ( - type.refCode == "jsek_teachingResources" || - type.refCode == "jsek_cloudLearning" - ) { - res.datas.cmsDatas[0].datas.forEach((item) => { - item.checked = false; - if (item.sysType == 'CmsItem') { - // 鏁欏璧勬簮 绫诲瀷鍚嶇О璧嬪�� - this.data.resourceClassList.forEach((type) => { - if (type.value == item.resourcesClassification) - item.resourceClass = type.name; - }); - item.isbuy = this.isShowNeedBuy(item); - item.isShopCar = this.isShoppingCart(item); - } + res.datas.cmsDatas[0].datas.forEach((item) => { + item.checked = false; + // if (item.sysType == 'CmsItem') { + // item.isbuy = this.resourceIsBuy(item); + // item.isShopCar = this.isShoppingCart(item); + // } + }); + // 鏄剧ず 闇�瑕佽喘涔扮殑鍜岄渶瑕佸厤璐归鍙栫殑 + this.getTreeList(res.datas.cmsDatas[0].datas, list, query.cmsPath) + list = this.ensureTreeConsistency(list) + list = this.changeResourceChildren(list) + list = this.clearTreeSealmethod(false, list) + list = this.handleTreeCheck(list) + this.handleTreeData(list).forEach(item => { + item.isbuy = this.resourceIsBuy(item); + item.isShopCar = this.isShoppingCart(item); + }) + console.log('淇敼鍚庝簯', list); + let result = []; + let arr = res.datas.cmsDatas[0].datas.filter( + (item) => item.saleMethod[0] + ); + let freeIds = arr.filter((item) => { + return item.saleMethod[0].Price == 0; + }); + if (!freeIds.length) + this.setData({ + isshowDrawBtn: false, }); - // 鏄剧ず 闇�瑕佽喘涔扮殑鍜岄渶瑕佸厤璐归鍙栫殑 - this.getTreeList(res.datas.cmsDatas[0].datas, list, query.cmsPath) - list = this.ensureTreeConsistency(list) - list = this.changeResourceChildren(list) - console.log('淇敼鍚庝簯', list); - let result = []; - if (type.refCode == "jsek_teachingResources") { - this.findChildIds(list, result); - this.setData({ - teach: list, - loading: false, - openTeachids: result, - }); - } else if (type.refCode == "jsek_cloudLearning") { - let arr = this.handleTreeData(list).filter( - (item) => item.saleMethod[0] - ); - let freeIds = arr.filter((item) => { - return item.saleMethod[0].Price == 0; - }); - if (!freeIds.length) - this.setData({ - isshowDrawBtn: false, - }); - this.findChildIds(list, result); - this.setData({ - learn: list, - loading: false, - openLearnids: result, - }); - } - } + this.findChildIds(list, result); + this.setData({ + learn: list, + loading: false, + openLearnids: result, + }); }) }, async getBookInfo(id) { - this.setData({ - "mockData'.id": 0, - "mockData.price": 0, - "mockData.count": 0, - }); const query = { path: "*", queryType: "*", @@ -376,48 +387,73 @@ // 鍒ゆ柇璧勬簮鏄惁璐拱 resourceIsBuy(data) { if (data.saleMethod && data.saleMethod.length) { - const isSHow = this.data.buyIdList.some( - (item) => item == data.saleMethod[0].Id + const saleData = data.saleMethod.find((item) => item.SaleType == 'Normal') + if (saleData.State == 'Disable') return false + const isShow = this.data.buyIdList.some( + (item) => item == saleData.Id ); - return !isSHow; + // 宸茬粡璐拱 + if (isShow) return false + // 鏈喘涔帮紝鏌ョ湅閿�鍞柟寮忔槸鍚﹁繃鏈� + if (!isShow) { + const flag = new Date(saleData.EndDate).getTime() >= new Date().getTime() && + new Date(saleData.BeginDate).getTime() <= new Date().getTime() + if (flag) { + // 涓鸿繃鏈� 锛岄渶瑕佽喘涔� + return true + } else { + // 宸茶繃鏈� 鏃犻渶璐拱 + return false + } + } } else { return false; } }, - isShowNeedBuy(data) { - if (data.saleMethod && data.saleMethod.length) { - const isSHow = this.data.buyIdList.some( - (item) => item == data.saleMethod[0].Id - ); - if (isSHow) { - return false; - } else { - return data.saleMethod[0].Price > 0 ? true : false; - } - return !isSHow; - } else { - return false; - } - }, // 鍒ゆ柇璧勬簮鍔犲叆璐墿杞︽寜閽槸鍚︽樉绀� isShoppingCart(data) { if (data.saleMethod && data.saleMethod.length) { - if (data.saleMethod[0].Price <= 0) return false; + const saleData = data.saleMethod.find((item) => item.SaleType == 'Normal') + // 鍏堝垽鏂槸鍚﹀厤璐� + if (saleData.Price <= 0) return false // 鍐嶅垽鏂槸鍚﹁喘涔� - const isBuy = this.data.buyIdList.some( - (item) => item == data.saleMethod[0].Id - ); + const isBuy = this.data.buyIdList.some((item) => item == saleData.Id) if (isBuy) { // 璐拱浜� - return false; + return false } else { // 鍒ゆ柇鏄惁鍔犲叆璐墿杞� - const isSHow = this.data.shoppingCartGetId.some( - (item) => item == data.saleMethod[0].Id - ); - return !isSHow; + const isShow = this.data.shoppingCartGetId.some((item) => item == saleData.Id) + if (isShow) return false + // 鏈喘涔帮紝鏌ョ湅閿�鍞柟寮忔槸鍚﹁繃鏈� + if (!isShow) { + const flag = new Date(saleData.EndDate).getTime() >= new Date().getTime() && + new Date(saleData.BeginDate).getTime() <= new Date().getTime() + if (flag) { + // 涓鸿繃鏈� 锛岄渶瑕佽喘涔� + return true + } else { + // 宸茶繃鏈� 鏃犻渶璐拱 + return false + } + } } + // if (data.saleMethod[0].Price <= 0) return false; + // // 鍐嶅垽鏂槸鍚﹁喘涔� + // const isBuy = this.data.buyIdList.some( + // (item) => item == data.saleMethod[0].Id + // ); + // if (isBuy) { + // // 璐拱浜� + // return false; + // } else { + // // 鍒ゆ柇鏄惁鍔犲叆璐墿杞� + // const isSHow = this.data.shoppingCartGetId.some( + // (item) => item == data.saleMethod[0].Id + // ); + // return !isSHow; + // } } else { return false; } @@ -450,18 +486,6 @@ } } }, - // 鑾峰彇璧勬簮鎵�灞炲垎绫� - getResourceClass() { - let query = { - refCodes: ["resourcesClassification"], - }; - app.MG.store.getProductTypeField(query).then((res) => { - this.setData({ - resourceClassList: JSON.parse(res[0].config).option, - }); - - }); - }, checkAll() { const child = this.selectComponent("#tree"); child.checkAll(); @@ -474,87 +498,90 @@ title: '鏆傛棤鏁版嵁', }) } - let saleMethodIds = []; - let requests = []; - let item = []; - let selectAllId = []; - const child = this.selectComponent("#tree"); - item = child.data.superiorPurchaseSaleMethodId; - const sonItem = child.data.sonPurchaseSaleMethodId; - let selectAll = child.data.selectAll; - if (selectAll) { - selectAll.forEach((item) => { - if (item.saleMethod != 0) { - selectAllId.push(item.saleMethod[0].Id); - } - }); - app.MG.store - .initOrder({ - requests: selectAllId.map((id) => ({ - saleMethodId: id, - count: 1, - })), - }) - .then((res) => { - if (res) { - wx.navigateTo({ - url: "/pages/cart/paymentPage/index?orderNumber=" + res.orderNumber, - }); - selectAllId = []; - child.setData({ - selectAll: [], - }); - } - }); - } - if (item) { - // 鎷垮埌id - item.forEach((items) => { - if (items.saleMethod != 0) { - saleMethodIds.push(items.saleMethod[0].Id); - } - }); - app.MG.store - .initOrder({ - requests: saleMethodIds.map((id) => ({ - saleMethodId: id, - count: 1, - })), - }) - .then((res) => { - if (res) { - wx.navigateTo({ - url: "/pages/cart/paymentPage/index?orderNumber=" + res.orderNumber, - }); + // 淇敼鍚庢柟娉� + const checkData = this.handleTreeData(this.data.learn).filter(item => item.checked == true) + console.log('閫変腑', checkData); + // let saleMethodIds = []; + // let requests = []; + // let item = []; + // let selectAllId = []; + // const child = this.selectComponent("#tree"); + // item = child.data.superiorPurchaseSaleMethodId; + // const sonItem = child.data.sonPurchaseSaleMethodId; + // let selectAll = child.data.selectAll; + // if (selectAll.length) { + // selectAll.forEach((item) => { + // if (item.saleMethod != 0) { + // selectAllId.push(item.saleMethod[0].Id); + // } + // }); + // app.MG.store + // .initOrder({ + // requests: selectAllId.map((id) => ({ + // saleMethodId: id, + // count: 1, + // })), + // }) + // .then((res) => { + // if (res) { + // wx.navigateTo({ + // url: "/pages/cart/paymentPage/index?orderNumber=" + res.orderNumber, + // }); + // selectAllId = []; + // child.setData({ + // selectAll: [], + // }); + // } + // }); + // } + // if (item) { + // // 鎷垮埌id + // item.forEach((items) => { + // if (items.saleMethod != 0) { + // saleMethodIds.push(items.saleMethod[0].Id); + // } + // }); + // app.MG.store + // .initOrder({ + // requests: saleMethodIds.map((id) => ({ + // saleMethodId: id, + // count: 1, + // })), + // }) + // .then((res) => { + // if (res) { + // wx.navigateTo({ + // url: "/pages/cart/paymentPage/index?orderNumber=" + res.orderNumber, + // }); - child.setData({ - superiorPurchaseSaleMethodId: [], // 浣跨敤setData鏂规硶娓呯┖sonPurchaseSaleMethodId鏁版嵁 - }); - } - }); - } - if (item.length == 0 && sonItem) { - app.MG.store - .initOrder({ - requests: sonItem.map((id) => ({ - saleMethodId: id, - count: 1, - })), - }) - .then((res) => { - if (res) { - wx.navigateTo({ - url: "/pages/cart/paymentPage/index?orderNumber=" + res.orderNumber, - }); - this.setData({ - paymentPage: true, - }); - child.setData({ - sonPurchaseSaleMethodId: [], // 浣跨敤setData鏂规硶娓呯┖sonPurchaseSaleMethodId鏁版嵁 - }); - } - }); - } + // child.setData({ + // superiorPurchaseSaleMethodId: [], // 浣跨敤setData鏂规硶娓呯┖sonPurchaseSaleMethodId鏁版嵁 + // }); + // } + // }); + // } + // if (item.length == 0 && sonItem) { + // app.MG.store + // .initOrder({ + // requests: sonItem.map((id) => ({ + // saleMethodId: id, + // count: 1, + // })), + // }) + // .then((res) => { + // if (res) { + // wx.navigateTo({ + // url: "/pages/cart/paymentPage/index?orderNumber=" + res.orderNumber, + // }); + // this.setData({ + // paymentPage: true, + // }); + // child.setData({ + // sonPurchaseSaleMethodId: [], // 浣跨敤setData鏂规硶娓呯┖sonPurchaseSaleMethodId鏁版嵁 + // }); + // } + // }); + // } }, // 绔犺妭鍕鹃�夋柟娉� @@ -609,5 +636,26 @@ this.setData({ learn: updated }) + }, + upDateShopCar(id, tree) { + for (let item of tree) { + if (item.id == id) { + item.isShopCar = false + } else { + if (item.children && item.children.length) this.upDateShopCar(id, item.children) + } + } + return tree + }, + // 鏇存柊璐墿杞﹀浘鏍� + updateCloudLearning(e) { + const { + id + } = e.detail + console.log(id); + const list = this.upDateShopCar(id, this.data.learn) + this.setData({ + learn: list + }) } }); \ No newline at end of file diff --git a/packageBookService/pages/bookServices/detail/buyResource/index.wxml b/packageBookService/pages/bookServices/detail/buyResource/index.wxml index 05c706b..9f03c28 100644 --- a/packageBookService/pages/bookServices/detail/buyResource/index.wxml +++ b/packageBookService/pages/bookServices/detail/buyResource/index.wxml @@ -1,7 +1,5 @@ <!-- 璧勬簮璐拱椤甸潰 --> - - <view> <!--瀵艰埅鍖哄煙 --> <view style="width: 100%; height: {{barHeight}}px; "></view> @@ -9,7 +7,11 @@ <view class="flex"> <view class="back-icon"> <!-- <t-icon name="chevron-left" size="30" data-name="{{item}}" bind:click="goBack" /> --> - <image src="/static/images/digitalTextbooks/chevron-left.png" bind:tap="goBack" mode="aspectFit" /> + <image + src="/static/images/digitalTextbooks/chevron-left.png" + bind:tap="goBack" + mode="aspectFit" + /> </view> <view class="navbar-title">璧勬簮璐拱</view> </view> @@ -19,16 +21,36 @@ <!-- 鍐呭 --> <view class="buy-resource" wx:if="{{!loading}}"> - <tree id="tree" paymentPage="{{paymentPage}}" superior="{{superior}}" treeList="{{learn}}" learnList="{{learn}}" tab="{{'jsek_cloudLearning'}}" isShowCheck="{{true}}" openIds="{{openLearnids}}" checkAllState="{{checkAllState}}" bind:changeCheckAll="changeCheckAll" bind:changeListChecked="changeListChecked" bind:changeResourceChecked="changeResourceChecked" /> + <tree + id="tree" + paymentPage="{{paymentPage}}" + superior="{{superior}}" + treeList="{{learn}}" + learnList="{{learn}}" + tab="{{'jsek_cloudLearning'}}" + isShowCheck="{{true}}" + openIds="{{openLearnids}}" + checkAllState="{{checkAllState}}" + bind:changeCheckAll="changeCheckAll" + bind:changeListChecked="changeListChecked" + bind:changeResourceChecked="changeResourceChecked" + bind:updateCloudLearning="updateCloudLearning" + /> <view class="noData" wx:if="{{noData}}"> <!-- <t-empty icon="folder-open" description="鏆傛棤鏁版嵁" /> --> <empty /> </view> </view> <view class="page-bottom"> - <t-button theme="primary" size="large" class="btn-buy" bindtap="batchPurchase">鎵归噺璐拱</t-button> + <t-button + theme="primary" + size="large" + class="btn-buy" + bindtap="batchPurchase" + >鎵归噺璐拱</t-button + > </view> </view> <import src="index.skeleton.wxml" /> -<template is="skeleton" wx:if="{{loading}}" /> \ No newline at end of file +<template is="skeleton" wx:if="{{loading}}" /> diff --git a/packageBookService/pages/bookServices/detail/components/learnResource/learnResource.js b/packageBookService/pages/bookServices/detail/components/learnResource/learnResource.js index 716486a..185e615 100644 --- a/packageBookService/pages/bookServices/detail/components/learnResource/learnResource.js +++ b/packageBookService/pages/bookServices/detail/components/learnResource/learnResource.js @@ -18,7 +18,11 @@ }, isGoBuyResource: { type: Boolean - } + }, + isShowBuyCloundMenu: { + type: Boolean, + default: false + }, }, /** diff --git a/packageBookService/pages/bookServices/detail/components/learnResource/learnResource.wxml b/packageBookService/pages/bookServices/detail/components/learnResource/learnResource.wxml index b8d8177..09bd8fc 100644 --- a/packageBookService/pages/bookServices/detail/components/learnResource/learnResource.wxml +++ b/packageBookService/pages/bookServices/detail/components/learnResource/learnResource.wxml @@ -1,21 +1,56 @@ <!--pages/bookServices/detail/components/learnResource/learnResource.wxml--> -<view class="learnResource" theme="primary" style="justify-content: {{!isshowDrawBtn ? 'flex-end' : ''}};"> - <t-button wx:if="{{isshowDrawBtn}}" loading="{{receive}}" class="btn" theme="primary" style="height: 72rpx; font-size: 28rpx" t-class="external-class" bind:tap="getFreeResource"> +<view + class="learnResource" + theme="primary" + style="justify-content: {{!isshowDrawBtn ? 'flex-end' : ''}};" +> + <t-button + wx:if="{{isshowDrawBtn}}" + loading="{{receive}}" + class="btn" + theme="primary" + style="height: 72rpx; font-size: 28rpx" + t-class="external-class" + bind:tap="getFreeResource" + > <view slot="content" class="btn-content"> <image src=" /static/images/bookService/detail/yijianlingqu.png" /> <text>棰嗗彇鏌ョ湅</text> </view> </t-button> - <t-button loading="{{buy}}" class="btn" theme="primary" bind:tap="goBuyResource" style="height: 72rpx; font-size: 28rpx;margin: {{!isshowDrawBtn ? '0 20rpx' : ''}}"> + <t-button + wx:if="{{!isShowBuyCloundMenu}}" + loading="{{buy}}" + class="btn" + theme="primary" + bind:tap="goBuyResource" + style="height: 72rpx; font-size: 28rpx;margin: {{!isshowDrawBtn ? '0 20rpx' : ''}}" + > <view slot="content" class="btn-content"> <image src="/static/images/bookService/detail/yijiangoumai.png" /> <text>璧勬簮璐拱</text> </view> </t-button> - <t-button class="btn" theme="primary" style="height: 72rpx; font-size: 28rpx; margin: 0 20rpx" bind:tap="goLearnTask"> + <t-button + theme="primary" + class="btn" + style="height: 72rpx; font-size: 28rpx" + wx:if="{{isShowBuyCloundMenu}}" + > + <view slot="content" class="btn-content"> + <image src="/static/images/bookService/detail/yijiangoumai.png" /> + <text>鍏ㄩ儴璐拱</text> + </view> + </t-button> + <t-button + class="btn" + theme="primary" + style="height: 72rpx; font-size: 28rpx; margin: 0 20rpx" + bind:tap="goLearnTask" + > <view slot="content" class="btn-content"> <image src="/static/images/bookService/detail/renwudan锛廼con.png" /> <text>瀛︿範浠诲姟鍗�</text> </view> </t-button> -</view> \ No newline at end of file +</view> diff --git a/packageBookService/pages/bookServices/detail/components/teachResource/index.js b/packageBookService/pages/bookServices/detail/components/teachResource/index.js index fe2a9d0..2f38a73 100644 --- a/packageBookService/pages/bookServices/detail/components/teachResource/index.js +++ b/packageBookService/pages/bookServices/detail/components/teachResource/index.js @@ -16,6 +16,9 @@ type: String, value: "", }, + treeList: { + type: Array, + } }, data: { showRejectDialog: false, diff --git a/packageBookService/pages/bookServices/detail/components/teachResource/index.json b/packageBookService/pages/bookServices/detail/components/teachResource/index.json index 338cd87..27e8ebd 100644 --- a/packageBookService/pages/bookServices/detail/components/teachResource/index.json +++ b/packageBookService/pages/bookServices/detail/components/teachResource/index.json @@ -3,6 +3,7 @@ "usingComponents": { "t-image": "tdesign-miniprogram/image/image", "t-button": "tdesign-miniprogram/button/button", - "t-dialog": "tdesign-miniprogram/dialog/dialog" + "t-dialog": "tdesign-miniprogram/dialog/dialog", + "empty": "/components/empty/index" } } \ No newline at end of file diff --git a/packageBookService/pages/bookServices/detail/components/teachResource/index.wxml b/packageBookService/pages/bookServices/detail/components/teachResource/index.wxml index 7c7a4da..dd78ff9 100644 --- a/packageBookService/pages/bookServices/detail/components/teachResource/index.wxml +++ b/packageBookService/pages/bookServices/detail/components/teachResource/index.wxml @@ -1,38 +1,81 @@ -<!-- <view class="teach-btn"> --> - <!-- <t-button theme="primary" style="width: 120px; height: 36px" class="btn" bind:tap="uploadBtn"> +<view class="teach-btn"> + <t-button + theme="primary" + style="width: 120px; height: 36px" + class="btn" + bind:tap="uploadBtn" + > <view slot="content" class="btn-content"> - <image src="/static/images/bookService/detail/upload.png" mode="aspectFit" ></image> + <image + src="/static/images/bookService/detail/upload.png" + mode="aspectFit" + ></image> <text>涓婁紶璧勬簮</text> </view> - </t-button> --> + </t-button> <!-- <t-button theme="primary" style="width: 120px; height: 36px"> <t-image src="/static/images/bookService/detail/download.png"></t-image> 鎵归噺涓嬭浇 </t-button> --> -<!-- </view> --> -<view class="applyResult {{applyState == 'none' ? 'applyNone' : applyState == 'Normal' ? 'applyPass' : applyState == 'WaitAudit' ? 'applying' :applyState == 'Reject' ? 'applyReject' :'' }}"> - <view wx:if="{{applyState == 'WaitAudit'}}">璧勬簮涓嬭浇鐢宠姝e湪瀹℃牳涓紝璇疯�愬績绛夊緟锛�</view> +</view> +<view + class="applyResult {{applyState == 'none' ? 'applyNone' : applyState == 'Normal' ? 'applyPass' : applyState == 'WaitAudit' ? 'applying' :applyState == 'Reject' ? 'applyReject' :'' }}" + wx:if="{{treeList.length}}" +> + <view wx:if="{{applyState == 'WaitAudit'}}" + >璧勬簮涓嬭浇鐢宠姝e湪瀹℃牳涓紝璇疯�愬績绛夊緟锛�</view + > <view wx:if="{{applyState == 'Normal'}}"> <view> - 璧勬簮涓嬭浇鐢宠宸查�氳繃<text wx:if="{{deadline}}">锛屾湁鏁堟棩鏈熸埅鑷筹細{{ deadline }}</text></view> + 璧勬簮涓嬭浇鐢宠宸查�氳繃<text wx:if="{{deadline}}" + >锛屾湁鏁堟棩鏈熸埅鑷筹細{{ deadline }}</text + ></view + > <view style="display: flex; align-items: center; margin-top: 10rpx"> <text>涓嬭浇璧勬簮璇峰埌PC绔含甯堟櫤鏁�</text> <text bind:tap="copy" class="copy-text">澶嶅埗</text> </view> </view> - <view wx:if="{{applyState == 'Reject'}}">璧勬簮涓嬭浇闇�瑕佺敵璇凤紝璇峰厛鐢宠骞剁瓑寰呭鏍搁�氳繃鍚庢柟鍙笅杞�</view> + <view wx:if="{{applyState == 'Reject'}}" + >璧勬簮涓嬭浇闇�瑕佺敵璇凤紝璇峰厛鐢宠骞剁瓑寰呭鏍搁�氳繃鍚庢柟鍙笅杞�</view + > <view wx:if="{{applyState == 'none'}}"> 璧勬簮涓嬭浇闇�瑕佺敵璇凤紝璇峰厛鐢宠骞剁瓑寰呭鏍搁�氳繃鍚庢柟鍙笅杞� </view> <view class="btn-box"> - <t-button wx:if="{{applyState == 'Reject'}}" bind:tap="checkCause" style="height: 50rpx" class="rejectBtn" bind:tap="showDialog">鏌ョ湅鍘熷洜</t-button> - <t-button wx:if="{{applyState == 'none' || applyState == 'Reject'}}" theme="primary" bind:tap="applyResource" class="applyBtn" style="height: 50rpx">鐢宠</t-button> + <t-button + wx:if="{{applyState == 'Reject'}}" + bind:tap="checkCause" + style="height: 50rpx" + class="rejectBtn" + bind:tap="showDialog" + >鏌ョ湅鍘熷洜</t-button + > + <t-button + wx:if="{{applyState == 'none' || applyState == 'Reject'}}" + theme="primary" + bind:tap="applyResource" + class="applyBtn" + style="height: 50rpx" + >鐢宠</t-button + > </view> </view> +<view class="noData" wx:else> + <empty /> +</view> <!-- 鏈�氳繃鍘熷洜 --> -<t-dialog visible="{{showRejectDialog}}" title="鎻愮ず" confirm-btn="{{ confirmBtn }}" bind:confirm="closeDialog" class="notPassed"> +<t-dialog + visible="{{showRejectDialog}}" + title="鎻愮ず" + confirm-btn="{{ confirmBtn }}" + bind:confirm="closeDialog" + class="notPassed" +> <view slot="content"> - <text class="cause-title">璧勬簮涓嬭浇鐢宠鏈�氳繃锛岃В鍐抽棶棰樺悗鍙偣鍑烩�滅敵璇封�濇寜閽噸鏂版彁浜ょ敵璇�</text> + <text class="cause-title" + >璧勬簮涓嬭浇鐢宠鏈�氳繃锛岃В鍐抽棶棰樺悗鍙偣鍑烩�滅敵璇封�濇寜閽噸鏂版彁浜ょ敵璇�</text + > <view class="cause-content">鍘熷洜:{{ rejectCause || '-'}}</view> </view> -</t-dialog> \ No newline at end of file +</t-dialog> diff --git a/packageBookService/pages/bookServices/detail/components/teachResource/index.wxss b/packageBookService/pages/bookServices/detail/components/teachResource/index.wxss index 5698193..5987f10 100644 --- a/packageBookService/pages/bookServices/detail/components/teachResource/index.wxss +++ b/packageBookService/pages/bookServices/detail/components/teachResource/index.wxss @@ -112,4 +112,8 @@ .btn text { font-size: 28rpx; +} + +.noData { + height: 300rpx; } \ No newline at end of file diff --git a/packageBookService/pages/bookServices/detail/components/tree/index.js b/packageBookService/pages/bookServices/detail/components/tree/index.js index 4194ed3..d957cf7 100644 --- a/packageBookService/pages/bookServices/detail/components/tree/index.js +++ b/packageBookService/pages/bookServices/detail/components/tree/index.js @@ -51,26 +51,23 @@ deadline: { type: String, }, + cloundMenuIsBuy: { + type: Boolean + } }, data: { - sonPurchaseSaleMethodId: "", - superiorPurchaseSaleMethodId: [], activeValues: [1, 2], webpageSrc: "", cloudShoppingCart: [], - selectAll: [], shoppingCart: true, stop: false, cart: true, - canExecute: true + canExecute: true, + purchaseList: [] }, ready() {}, - onLoad() { - this.setData({ - sonPurchaseSaleMethodId: [], - }); - }, + onLoad() {}, observers: { treeList: function (newValue) { const list = []; @@ -94,9 +91,22 @@ } } }, + // 閬嶅巻鏍戠粨鏋勮浆鎹负鏁扮粍鏂规硶 + handleTreeData(array) { + const flattenedArray = []; + array.forEach((node) => { + // 灏嗗綋鍓嶈妭鐐规坊鍔犲埌灞曞紑鐨勬暟缁勪腑 + flattenedArray.push(node); + // 閫掑綊澶勭悊瀛愯妭鐐� + if (node.children && node.children.length > 0) { + const childrenArray = this.handleTreeData(node.children); + flattenedArray.push(...childrenArray); + } + }); + return flattenedArray; + }, // 鑺傜偣灞曞紑 handleChange(e) { - console.log(e.detail.value); this.setData({ openIds: e.detail.value, }); @@ -124,11 +134,25 @@ // 鍒ゆ柇璧勬簮鏄惁璐拱 resourceIsBuy(data) { if (data.saleMethod && data.saleMethod.length) { - if (data.saleMethod[0].State == "Disable") return false; + const saleData = data.saleMethod.find((item) => item.SaleType == 'Normal') + if (saleData.State == 'Disable') return false const isSHow = this.properties.buyIds.some( - (item) => item == data.saleMethod[0].Id + (item) => item == saleData.Id ); - return !isSHow; + // 宸茬粡璐拱 + if (isShow) return false + // 鏈喘涔帮紝鏌ョ湅閿�鍞柟寮忔槸鍚﹁繃鏈� + if (!isShow) { + const flag = new Date(saleData.EndDate).getTime() >= new Date().getTime() && + new Date(saleData.BeginDate).getTime() <= new Date().getTime() + if (flag) { + // 涓鸿繃鏈� 锛岄渶瑕佽喘涔� + return true + } else { + // 宸茶繃鏈� 鏃犻渶璐拱 + return false + } + } } else { return false; } @@ -146,24 +170,17 @@ const parentName = parent ? parent.name : "鏁欏璧勬簮"; // 璧勬簮璐拱椤甸潰(鍙睍绀烘湭璐拱璧勬簮) 鐐瑰嚮涓嶈烦杞� if (this.properties.isShowCheck) return false; - if ( - this.properties.tab == "jsek_cloudLearning" && - this.resourceIsBuy(item) - ) { - return wx.showToast({ - icon: "error", - title: item.saleMethod[0].Price > 0 ? - "璇峰厛璐拱璇ヨ祫婧�" : "璇峰厛鐐瑰嚮棰嗗彇鏌ョ湅鎸夐挳", - }); - } - if (this.properties.tab == "jsek_teachingResources" && (item.file || item.freeFile)) { - let file = item.fileMap[item.file] ? item.fileMap[item.file] : item.fileMap[item.freeFile] - if (file && file.protectType !== "Public") { - return wx.showToast({ - icon: "error", - title: "璧勬簮涓嶅彲鐢紝璇疯仈绯荤鐞嗗憳", - }); + if (item.selectType == "webpage") { + // 缃戦〉绫诲瀷璺宠浆鍒扮綉鍧�澶嶅埗椤碉紝鍥犱负url浼犲弬涓嶈兘浼� 甯﹀弬鏁扮殑缃戠粶鍦板潃锛屾墍浠ユ澶勮鎶婄綉缁滃湴鍧�閲岀殑浼犲弬鎽樺嚭鏉ワ紝鏀惧埌url閲� + let urlData = '' + const flags = item.jsek_link.indexOf("?") + if (flags > -1) { + urlData = item.jsek_link.slice(flags + 1, item.jsek_link.length) } + url = '/packageBookService/pages/bookServices/linkPage/index' + return wx.navigateTo({ + url: urlData ? url + `?path=${item.jsek_link.slice(0,flags)}` + '&' + urlData : url + `?path=${item.jsek_link}` + }) } if (!item.file && !item.freeFile && !item.protectedFile) { return wx.showToast({ @@ -184,20 +201,49 @@ }) } } - let url; - if (item.selectType == "webpage") { - // 缃戦〉绫诲瀷璺宠浆鍒扮綉鍧�澶嶅埗椤碉紝鍥犱负url浼犲弬涓嶈兘浼� 甯﹀弬鏁扮殑缃戠粶鍦板潃锛屾墍浠ユ澶勮鎶婄綉缁滃湴鍧�閲岀殑浼犲弬鎽樺嚭鏉ワ紝鏀惧埌url閲� - let urlData = '' - const flags = item.jsek_link.indexOf("?") - if (flags > -1) { - urlData = item.jsek_link.slice(flags + 1, item.jsek_link.length) + if (this.properties.tab == "jsek_teachingResources" && (item.file || item.freeFile)) { + let file = item.fileMap[item.file] ? item.fileMap[item.file] : item.fileMap[item.freeFile] + if (file && file.protectType !== "Public") { + return wx.showToast({ + icon: "error", + title: "璧勬簮涓嶅彲鐢紝璇疯仈绯荤鐞嗗憳", + }); } - url = '/packageBookService/pages/bookServices/linkPage/index' - return wx.navigateTo({ - url: urlData ? url + `?path=${item.jsek_link.slice(0,flags)}` + '&' + urlData : url + `?path=${item.jsek_link}` - }) } - + if (this.properties.tab == "jsek_cloudLearning") { + // 鍒ゆ柇鐖剁骇鎴栬嚜韬槸鍚﹁喘涔� + var myEventOption = { + bubbles: true, + composed: true, + }; + // 鍑哄彂鍒ゆ柇浜戝涔犳槸鍚﹁喘涔板垽鏂� + this.triggerEvent("getCloundIsBuy", {}, myEventOption) + if (!this.properties.cloundMenuIsBuy) { + // 浜戝涔犳湭璐拱锛屾煡鎵句互璐拱鐨勭洰褰曞拰璧勬簮鏈韩 + const learn = this.handleTreeData(this.properties.treeList).filter( + (citem) => citem.saleMethod && + citem.saleMethod.find((ditem) => ditem.SaleType == 'Normal') && + new Date(citem.saleMethod.find((ditem) => ditem.SaleType == 'Normal').EndDate).getTime() >= new Date().getTime() && + new Date(citem.saleMethod.find((ditem) => ditem.SaleType == 'Normal').BeginDate).getTime() <= new Date().getTime() && + item.productLinkPath.includes(citem.productLinkPath) + ) + // 璧勬簮鍜岀埗绾х洰褰曢兘鏃犻攢鍞柟寮� + // if (!learn.length) return wx.showToast({ + // icon: 'error', + // title: '鏆傛湭寮�鍞�', + // }) + const buyList = learn.filter((citem) => this.properties.buyIds.includes(citem.saleMethod.find((ditem) => ditem.SaleType == 'Normal').Id)) + // 璧勬簮鍜屾湰韬兘鏈喘涔� + if (!buyList.length) { + const itemSaleMethod = item.saleMethod && item.saleMethod.length ? item.saleMethod.find(citem => citem.SaleType == 'Normal') : undefined + return wx.showToast({ + icon: 'error', + title: itemSaleMethod && itemSaleMethod.Price == 0 ? '璇峰厛棰嗗彇璧勬簮' : '璇峰厛璐拱璧勬簮', + }) + } + } + } + let url; if (item.selectType == "video" || item.learnSelectType == "video") { url = "/packageDomain/pages/resourceDetails/myVideo/index"; } @@ -237,7 +283,6 @@ result.push(...item.children); } } - console.log(this.properties.treeList, "this.properties.treeList"); this.properties.treeList.forEach((item) => { findChildren(item); }); @@ -258,7 +303,6 @@ tree.forEach((node) => { flatten(node); }); - // console.log(result, 'result'); return result; }, @@ -266,7 +310,6 @@ findAndUpdateItemsByIds(tree, ids, state) { function findAndUpdate(node) { if (ids.includes(node.id)) { - // console.log(node, 'node'); node.checked = state; // 灏嗙洰鏍囬」鐨� check 灞炴�ц缃负 true } if (node.children && node.children.length > 0) { @@ -281,63 +324,31 @@ return tree; // 杩斿洖淇敼鍚庣殑瀹屾暣鏁扮粍 }, - checkResoucrceInfo(tree, id) { - function findAndUpdate(node) { - if (node.sysType == "CmsFolder" && node.children.length > 0) { - for (let index = 0; index < node.children.length; index++) { - const element = node.children[index]; - findAndUpdate(element); - } - } else if (id == node.id && node.sysType == "CmsItem") { - node.checked = !node.checked; // 灏嗙洰鏍囬」鐨� check 灞炴�ц缃负 true - } - } - for (let node of tree) { - findAndUpdate(node); // 瀵规瘡涓《灞傝妭鐐规墽琛屾煡鎵惧拰鏇存柊鎿嶄綔 - } - return tree; // 杩斿洖淇敼鍚庣殑瀹屾暣鏁扮粍 - }, // 鍏ㄩ�� checkAll() { const ids = []; - const list = []; + let list = []; let checked = ""; this.properties.treeList.forEach((item) => { if (item.children && item.children.length > 0) { list.push(...this.flattenTree([item])); } }); + list = list.filter(item => !item.disabled) list.forEach((item) => { ids.push(item.id); checked = item.checked; }); - // const flag = - // list.findIndex((item) => item.checked == false) > -1 ? true : false; const flag = this.properties.checkAllState; - // const updataList = this.findAndUpdateItemsByIds( - // this.properties.treeList, - // ids, - // flag - // ); - // this.setData({ - // treeList: updataList, - // }); - var myEventDetail = { ids, flag, - }; // detail瀵硅薄锛屾彁渚涚粰浜嬩欢鐩戝惉鍑芥暟 + }; var myEventOption = { bubbles: true, composed: true, - }; // 瑙﹀彂浜嬩欢鐨勯�夐」 + }; this.triggerEvent("changeListChecked", myEventDetail, myEventOption); - - if (!checked) { - this.setData({ - selectAll: list, - }); - } var myEventDetail = { value: !flag, }; // detail瀵硅薄锛屾彁渚涚粰浜嬩欢鐩戝惉鍑芥暟 @@ -352,23 +363,18 @@ checkResourceTitle(e) { const flag = e.detail.checked; // 杩欎釜鏃跺�檆hecked鐨勫�兼槸fals - let checkResourceTitleList = []; const item = e.currentTarget.dataset.item; const parent = this.findParentById(this.properties.learnList, item.id); - let childrenList; + let childrenList = []; let flagNum; if (parent) childrenList = parent.children.filter((citem) => citem.id !== item.id); - if (childrenList) - flagNum = childrenList.findIndex((item) => item.checked == false); + flagNum = childrenList.findIndex((item) => item.checked == false); let list = this.flattenTree([item]); + list = list.filter(item => !item.disabled) let ids = []; list.forEach((item) => { - if ( - item.sysType == "CmsFolder" || - (item.sysType == "CmsItem" && item.saleMethod.length) - ) - ids.push(item.id); + ids.push(item.id) }); var myEventDetail = { ids, @@ -378,26 +384,22 @@ bubbles: true, composed: true, }; // 瑙﹀彂浜嬩欢鐨勯�夐」 + // 鍘诲嬀閫夌偣鍑荤洰褰曠殑瀛愰」 this.triggerEvent("changeListChecked", myEventDetail, myEventOption); - if (flagNum == -1) { + // 鍘诲嬀閫夌偣鍑荤洰褰曠殑鐖堕」 + if (flagNum == -1 && parent && !parent.disabled) { let checkedState; var myEventDetail = { ids: [parent.id], flag, - }; // detail瀵硅薄锛屾彁渚涚粰浜嬩欢鐩戝惉鍑芥暟 + }; var myEventOption = { bubbles: true, composed: true, - }; // 瑙﹀彂浜嬩欢鐨勯�夐」 + }; this.triggerEvent("changeListChecked", myEventDetail, myEventOption); } - if (!list.checked) { - this.setData({ - superiorPurchaseSaleMethodId: list, - }); - } list.forEach((items) => { - console.log(items.checked, "itesasd"); if (!items.checked) { this.setData({ cloudShoppingCart: items, @@ -429,7 +431,7 @@ }; this.triggerEvent("changeResourceChecked", myEventDetail, myEventOption); // 閫氳繃鍒ゆ柇,鑱旈�氱埗绾hecked - if (flag == -1) { + if (flag == -1 && !parent.disabled) { let checkedState; citem.checked == false ? (checkedState = true) : (checkedState = false); var myEventDetail = { @@ -455,7 +457,7 @@ this.triggerEvent("changeListChecked", myEventDetail, myEventOption); } // 鑱旈�氭渶澶栧眰绾hecked, 濡傛灉鎵�鏈夊瓙椤瑰嬀閫�, 涓斿綋鍓嶆渶澶栧眰鏈嬀閫�, 鍒欏姞涓婃渶澶栧眰鐨勫嬀閫� - if (!citem.checked && outermost) { + if (!citem.checked && outermost && !outermost.disabled) { let allchildren = this.flattenTree([outermost]); allchildren = allchildren.filter( (item) => @@ -476,31 +478,12 @@ this.triggerEvent("changeListChecked", myEventDetail, myEventOption); } } - if (!citem.checked) { - //閫変腑鐨勬椂鍊欐坊鍔爄d - let sonPurchaseSaleMethodId = this.data.sonPurchaseSaleMethodId || []; - if (this.properties.paymentPage) { - sonPurchaseSaleMethodId = []; - this.properties.paymentPage = false; - } - if (!this.properties.paymentPage) { - sonPurchaseSaleMethodId.push(citem.saleMethod[0].Id); - } - this.setData({ - sonPurchaseSaleMethodId: sonPurchaseSaleMethodId, - }); - } else { - // 鍙栨秷閫変腑鐨勬椂鍊欏垹闄d - } }, // 鍔犲叆璐墿杞� async onCloudShoppingCart(e) { let shoppingCartGetId = []; - const item = e.currentTarget.dataset.item; - console.log(item.isShopCar); const saleMethodId = e.currentTarget.dataset.item.saleMethod[0].Id; - console.log(saleMethodId); let query = { start: 0, size: 999, @@ -512,8 +495,6 @@ shoppingCartGetId.push(item.saleMethod.id); }); if (shoppingCartGetId.includes(saleMethodId)) { - // this.data.updateShoppingCartHidden(); - // this.data.updateCloudLearning(); wx.showToast({ icon: "error", title: "宸叉坊鍔�", @@ -530,14 +511,20 @@ }, ], }; const addRes = await app.MG.store.addShoppingCart(query); - console.log(addRes, "addRes"); if (addRes) { wx.showToast({ icon: "success", title: "娣诲姞鎴愬姛", }); item.isShopCar = false; - this.triggerEvent("updateCloudLearning"); + var myEventDetail = { + id: item.id, + }; + var myEventOption = { + bubbles: true, + composed: true, + }; + this.triggerEvent("updateCloudLearning", myEventDetail, myEventOption); } } }, diff --git a/packageBookService/pages/bookServices/detail/components/tree/index.wxml b/packageBookService/pages/bookServices/detail/components/tree/index.wxml index 71e3517..16070da 100644 --- a/packageBookService/pages/bookServices/detail/components/tree/index.wxml +++ b/packageBookService/pages/bookServices/detail/components/tree/index.wxml @@ -1,32 +1,93 @@ <view class="tree"> <t-collapse default-value="{{openIds}}" catchchange="handleChange"> - <view wx:for="{{treeList}}" wx:for-item="item" wx:for-index="index" wx:key="id" wx:if="{{item.sysType== 'CmsItem' }}"> - <view class="listItems" wx:if="{{item.childrenFolderCount <= 0 && item.sysType == 'CmsItem'}}"> + <view + wx:for="{{treeList}}" + wx:for-item="item" + wx:for-index="index" + wx:key="id" + wx:if="{{item.sysType== 'CmsItem' }}" + > + <view + class="listItems" + wx:if="{{item.childrenFolderCount <= 0 && item.sysType == 'CmsItem'}}" + > <view class="itemsInfo" data-item="{{item}}" data-index="{{index}}"> - <view class="contentBox" bind:tap="goPlayer" data-item="{{item}}" data-parent="{{''}}"> + <view + class="contentBox" + bind:tap="goPlayer" + data-item="{{item}}" + data-parent="{{''}}" + > <!-- 鏁欏璧勬簮 浜戝涔� 鍥炬爣 --> <view class="box-image fl-cn" style="width: 80%"> - <view class="checkBox" wx:if="{{isShowCheck}}" catchtap="catchTap"> - <!-- checked="{{citem.checked}}" --> - <!-- <t-checkbox icon="rectangle" checked="{{citem.checked}}" disabled="{{citem.selectType=='webpage' || citem.isDownload != 1 || citem.fileMap[citem.file].protectType == 'Private'}}" catch:change="checkResource" data-item="{{citem}}" /> --> - <t-checkbox disabled="{{!citem.saleMethod[0].Id}}" icon="rectangle" checked="{{item.checked}}" data-item="{{item}}" data-parent="{{item}}" catch:change="checkResource" /> + <view + class="checkBox" + wx:if="{{isShowCheck}}" + catchtap="catchTap" + > + <t-checkbox + disabled="{{item.disabled}}" + icon="rectangle" + checked="{{item.checked}}" + data-item="{{item}}" + data-parent="{{item}}" + catch:change="checkResource" + /> </view> <!-- 鏁欏璧勬簮鍥炬爣 --> <view class="teach-icon fl-cn"> - <image wx:if="{{item.selectType == 'audio' || item.learnSelectType == 'audio'}}" src="/static/images/bookService/detail/audioIcon.png" mode="aspectFill" /> - <image wx:elif="{{item.selectType == 'video' || item.learnSelectType == 'video'}}" src="/static/images/bookService/detail/video.png" mode="aspectFill" /> - <image wx:elif="{{item.selectType == 'pdf'}}" src="/static/images/bookService/detail/pdf.png" mode="aspectFill" /> - <image wx:elif="{{item.selectType == 'webpage'}}" src="/static/images/bookService/detail/net.png" mode="aspectFill" /> - <image wx:elif="{{item.selectType == 'picture'}}" src="/static/images/bookService/detail/picture.png" mode="aspectFill" /> - <image wx:elif="{{item.selectType == 'zip'}}" src="/static/images/bookService/detail/zip.png" mode="aspectFill" /> - <image wx:elif="{{ item.fileMap[item.file].extension == 'doc' || item.fileMap[item.file].extension == 'docx'}}" src="/static/images/bookService/detail/word.png" mode="aspectFill" /> - <image wx:elif="{{ item.fileMap[item.file].extension == 'xlsx' || item.fileMap[item.file].extension == 'xlsx'}}" src="/static/images/bookService/detail/excel.png" mode="aspectFill" /> - <image wx:elif="{{ item.fileMap[item.file].extension == 'ppt' || item.fileMap[item.file].extension == 'pptx'}}" src="/static/images/bookService/detail/PPT.png" mode="aspectFill" /> + <image + wx:if="{{item.selectType == 'audio' || item.learnSelectType == 'audio'}}" + src="/static/images/bookService/detail/audioIcon.png" + mode="aspectFill" + /> + <image + wx:elif="{{item.selectType == 'video' || item.learnSelectType == 'video'}}" + src="/static/images/bookService/detail/video.png" + mode="aspectFill" + /> + <image + wx:elif="{{item.selectType == 'pdf'}}" + src="/static/images/bookService/detail/pdf.png" + mode="aspectFill" + /> + <image + wx:elif="{{item.selectType == 'webpage'}}" + src="/static/images/bookService/detail/net.png" + mode="aspectFill" + /> + <image + wx:elif="{{item.selectType == 'picture'}}" + src="/static/images/bookService/detail/picture.png" + mode="aspectFill" + /> + <image + wx:elif="{{item.selectType == 'zip'}}" + src="/static/images/bookService/detail/zip.png" + mode="aspectFill" + /> + <image + wx:elif="{{ item.fileMap[item.file].extension == 'doc' || item.fileMap[item.file].extension == 'docx'}}" + src="/static/images/bookService/detail/word.png" + mode="aspectFill" + /> + <image + wx:elif="{{ item.fileMap[item.file].extension == 'xlsx' || item.fileMap[item.file].extension == 'xlsx'}}" + src="/static/images/bookService/detail/excel.png" + mode="aspectFill" + /> + <image + wx:elif="{{ item.fileMap[item.file].extension == 'ppt' || item.fileMap[item.file].extension == 'pptx'}}" + src="/static/images/bookService/detail/PPT.png" + mode="aspectFill" + /> <!-- 璧勬簮鏃犳枃浠跺唴瀹瑰浘鏍� --> - <image wx:else src="/static/images/bookService/detail/word.png" mode="" /> + <image + wx:else + src="/static/images/bookService/detail/word.png" + mode="" + /> </view> - <!-- 浜戝涔犲浘鏍� --> - <view> </view> <!-- 鍚嶇О --> <text class="name" style="width: 100%">{{item.name || '-'}}</text> </view> @@ -43,77 +104,216 @@ </view> <view wx:if="{{tab == 'jsek_cloudLearning'}}"> <!-- 浜戝涔犺瘯鐪嬪浘鏍� --> - <image src="/static/images/bookService/detail/shikan.png" class="testSee" wx:if="{{!item.isbuy ? false : item.freeFile ? true : false}}"></image> + <image + src="/static/images/bookService/detail/shikan.png" + class="testSee" + wx:if="{{!item.isbuy ? false : item.freeFile ? true : false}}" + ></image> <!-- 浜戝涔犲姞鍏ヨ喘鐗╄溅鍥炬爣 --> - <image src="/static/images/bookService/detail/cart@2x.png" wx:if="{{item.isShopCar}}" class="shopCar" data-item="{{item}}" catch:tap="onCloudShoppingCart"></image> + <image + src="/static/images/bookService/detail/cart@2x.png" + wx:if="{{item.isShopCar}}" + class="shopCar" + data-item="{{item}}" + catch:tap="onCloudShoppingCart" + ></image> <!-- 浜戝涔犺喘涔板浘鏍� --> - <image src="/static/images/bookService/detail/need-buy.png" class="need-buy" wx:if="{{item.isbuy }}"></image> + <image + src="/static/images/bookService/detail/need-buy.png" + class="need-buy" + wx:if="{{item.isbuy }}" + ></image> </view> </view> </view> </view> </view> - <t-collapse-panel wx:for="{{treeList}}" wx:for-item="item" wx:for-index="index" wx:key="id" value="{{item.id}}" wx:if="{{item.sysType == 'CmsFolder' }}"> + <t-collapse-panel + wx:for="{{treeList}}" + wx:for-item="item" + wx:for-index="index" + wx:key="id" + value="{{item.id}}" + wx:if="{{item.sysType == 'CmsFolder' }}" + > <view slot="header" class="header-title"> <view class="title-checkBox" catchtap="catchTap"> - <t-checkbox style="align-items: center" icon="rectangle" checked="{{item.checked}}" data-item="{{item}}" catchchange="checkResourceTitle" wx:if="{{isShowCheck}}" /> + <t-checkbox + style="align-items: center" + icon="rectangle" + disabled="{{item.disabled}}" + checked="{{item.checked}}" + data-item="{{item}}" + catchchange="checkResourceTitle" + wx:if="{{isShowCheck}}" + /> <!-- 绔犺妭鍚� --> <view class="title-box"> - <view class="title-name">{{item.name}} </view> - <view wx:if="{{item.sysType =='CmsFolder'}}" class="title-num"> - 锛坽{item.childrenItem}}锛� + <view class="title-t" > + <view class="title-name">{{item.name}} </view> + <view wx:if="{{item.sysType =='CmsFolder'}}" class="title-num"> + 锛坽{item.childrenItem}}锛� + </view> + </view> + <view class="title-icon" > + <!-- 浜戝涔犲姞鍏ヨ喘鐗╄溅鍥炬爣 --> + <image + src="/static/images/bookService/detail/cart@2x.png" + wx:if="{{item.isShopCar}}" + class="shopCar" + data-item="{{item}}" + catch:tap="onCloudShoppingCart" + ></image> + <!-- 浜戝涔犺喘涔板浘鏍� --> + <image + src="/static/images/bookService/detail/need-buy.png" + class="need-buy" + wx:if="{{item.isbuy }}" + ></image> </view> </view> </view> </view> - <view class="list" wx:for="{{item.children}}" wx:for-item="citem" wx:for-index="cindex" wx:key="cindex"> + <view + class="list" + wx:for="{{item.children}}" + wx:for-item="citem" + wx:for-index="cindex" + wx:key="cindex" + > <!-- // 鍒ゆ柇 鏃犲瓙椤� 涓斾负鍟嗗搧item 鐩存帴鏄剧ず --> - <view class="listItems" wx:if="{{citem.childrenFolderCount <= 0 && citem.sysType == 'CmsItem'}}"> + <view + class="listItems" + wx:if="{{citem.childrenFolderCount <= 0 && citem.sysType == 'CmsItem'}}" + > <view class="itemsInfo" data-item="{{citem}}" data-index="{{cindex}}"> - <view class="contentBox" bind:tap="goPlayer" data-item="{{citem}}" data-parent="{{item}}"> - <!-- 鏁欏璧勬簮 浜戝涔� 鍥炬爣 --> + <view + class="contentBox" + bind:tap="goPlayer" + data-item="{{citem}}" + data-parent="{{item}}" + > + <!-- 鏁欏璧勬簮 鍥炬爣 --> <view class="box-image fl-cn"> - <view class="checkBox" wx:if="{{isShowCheck}}" catchtap="catchTap"> - <!-- checked="{{citem.checked}}" --> - <!-- <t-checkbox icon="rectangle" checked="{{citem.checked}}" disabled="{{citem.selectType=='webpage' || citem.isDownload != 1 || citem.fileMap[citem.file].protectType == 'Private'}}" catch:change="checkResource" data-item="{{citem}}" /> --> - <t-checkbox disabled="{{!citem.saleMethod[0].Id}}" icon="rectangle" checked="{{citem.checked}}" data-item="{{citem}}" data-parent="{{item}}" catch:change="checkResource" /> + <view + class="checkBox" + wx:if="{{isShowCheck}}" + catchtap="catchTap" + > + <t-checkbox + disabled="{{citem.disabled}}" + icon="rectangle" + checked="{{citem.checked}}" + data-item="{{citem}}" + data-parent="{{item}}" + catch:change="checkResource" + /> </view> <!-- 鏁欏璧勬簮鍥炬爣 --> <view class="teach-icon fl-cn"> - <image wx:if="{{citem.selectType == 'audio' || citem.learnSelectType == 'audio'}}" src="/static/images/bookService/detail/audioIcon.png" mode="aspectFill" /> - <image wx:elif="{{citem.selectType == 'video' || citem.learnSelectType == 'video'}}" src="/static/images/bookService/detail/video.png" mode="aspectFill" /> - <image wx:elif="{{citem.selectType == 'pdf'}}" src="/static/images/bookService/detail/pdf.png" mode="aspectFill" /> - <image wx:elif="{{citem.selectType == 'webpage'}}" src="/static/images/bookService/detail/net.png" mode="aspectFill" /> - <image wx:elif="{{citem.selectType == 'picture'}}" src="/static/images/bookService/detail/picture.png" mode="aspectFill" /> - <image wx:elif="{{citem.selectType == 'zip'}}" src="/static/images/bookService/detail/zip.png" mode="aspectFill" /> - <image wx:elif="{{ citem.fileMap[citem.file].extension == 'doc' || citem.fileMap[citem.file].extension == 'docx'}}" src="/static/images/bookService/detail/word.png" mode="aspectFill" /> - <image wx:elif="{{ citem.fileMap[citem.file].extension == 'xlsx' || citem.fileMap[citem.file].extension == 'xlsx'}}" src="/static/images/bookService/detail/excel.png" mode="aspectFill" /> - <image wx:elif="{{ citem.fileMap[citem.file].extension == 'ppt' || citem.fileMap[citem.file].extension == 'pptx'}}" src="/static/images/bookService/detail/PPT.png" mode="aspectFill" /> + <image + wx:if="{{citem.selectType == 'audio' || citem.learnSelectType == 'audio'}}" + src="/static/images/bookService/detail/audioIcon.png" + mode="aspectFill" + /> + <image + wx:elif="{{citem.selectType == 'video' || citem.learnSelectType == 'video'}}" + src="/static/images/bookService/detail/video.png" + mode="aspectFill" + /> + <image + wx:elif="{{citem.selectType == 'pdf'}}" + src="/static/images/bookService/detail/pdf.png" + mode="aspectFill" + /> + <image + wx:elif="{{citem.selectType == 'webpage'}}" + src="/static/images/bookService/detail/net.png" + mode="aspectFill" + /> + <image + wx:elif="{{citem.selectType == 'picture'}}" + src="/static/images/bookService/detail/picture.png" + mode="aspectFill" + /> + <image + wx:elif="{{citem.selectType == 'zip'}}" + src="/static/images/bookService/detail/zip.png" + mode="aspectFill" + /> + <image + wx:elif="{{ citem.fileMap[citem.file].extension == 'doc' || citem.fileMap[citem.file].extension == 'docx'}}" + src="/static/images/bookService/detail/word.png" + mode="aspectFill" + /> + <image + wx:elif="{{ citem.fileMap[citem.file].extension == 'xlsx' || citem.fileMap[citem.file].extension == 'xlsx'}}" + src="/static/images/bookService/detail/excel.png" + mode="aspectFill" + /> + <image + wx:elif="{{ citem.fileMap[citem.file].extension == 'ppt' || citem.fileMap[citem.file].extension == 'pptx'}}" + src="/static/images/bookService/detail/PPT.png" + mode="aspectFill" + /> <!-- 璧勬簮鏃犳枃浠跺唴瀹瑰浘鏍� --> - <image wx:else src="/static/images/bookService/detail/word.png" mode="" /> + <image + wx:else + src="/static/images/bookService/detail/word.png" + mode="" + /> </view> - <!-- 浜戝涔犲浘鏍� --> - <view> </view> <!-- 鍚嶇О --> - <text class="name" style="{{ tab == 'jsek_teachingResources' ? citem.resourceClass ? 'width: 420rpx' : 'width: 560rpx;' : (citem.isShopCar &&citem.isbuy ) ? 'width: 400rpx;' : (citem.isShopCar ||citem.isbuy) ? 'width:520rpx' : 'width:560rpx'}}">{{citem.name || '-'}}</text> + <text + class="name" + style="{{ tab == 'jsek_teachingResources' ? citem.resourceClass ? 'width: 420rpx' : 'width: 500rpx;' : (citem.isShopCar &&citem.isbuy ) ? 'width: 400rpx;' : (citem.isShopCar ||citem.isbuy) ? 'width:460rpx' : 'width:500rpx'}}" + >{{citem.name || '-'}}</text + > </view> <!-- 鏁欏璧勬簮绫诲瀷 --> - <view class="teachClass fl-cn" wx:if="{{citem.resourceClass && tab == 'jsek_teachingResources'}}"> + <view + class="teachClass fl-cn" + wx:if="{{citem.resourceClass && tab == 'jsek_teachingResources'}}" + > {{citem.resourceClass}} </view> - <view wx:if="{{tab == 'jsek_cloudLearning'}}"> + <view wx:if="{{tab == 'jsek_cloudLearning'}}" class="clound-icon"> <!-- 浜戝涔犺瘯鐪嬪浘鏍� --> - <image src="/static/images/bookService/detail/shikan.png" class="testSee" wx:if="{{!citem.isbuy ? false : citem.freeFile ? true : false}}"></image> + <image + src="/static/images/bookService/detail/shikan.png" + class="testSee" + wx:if="{{!citem.isbuy ? false : citem.freeFile ? true : false}}" + ></image> <!-- 浜戝涔犲姞鍏ヨ喘鐗╄溅鍥炬爣 --> - <image src="/static/images/bookService/detail/cart@2x.png" wx:if="{{citem.isShopCar}}" class="shopCar" data-item="{{citem}}" catch:tap="onCloudShoppingCart"></image> + <image + src="/static/images/bookService/detail/cart@2x.png" + wx:if="{{citem.isShopCar}}" + class="shopCar" + data-item="{{citem}}" + catch:tap="onCloudShoppingCart" + ></image> <!-- 浜戝涔犺喘涔板浘鏍� --> - <image src="/static/images/bookService/detail/need-buy.png" class="need-buy" wx:if="{{citem.isbuy }}"></image> + <image + src="/static/images/bookService/detail/need-buy.png" + class="need-buy" + wx:if="{{citem.isbuy }}" + ></image> </view> </view> </view> </view> <!-- // 鍒ゆ柇 涓嶆槸鍟嗗搧 鏈夊瓙椤� 閫掑綊缁勪欢 --> - <tree wx:if="{{ citem.sysType == 'CmsFolder' }}" isShowCheck="{{isShowCheck}}" bookInfo="{{bookInfo}}" treeList="{{[citem]}}" learnList="{{learnList}}" itemId="{{itemId}}" tab="{{tab}}" buyIds="{{buyIds}}" openIds="{{openIds}}"></tree> + <tree + wx:if="{{ citem.sysType == 'CmsFolder' }}" + isShowCheck="{{isShowCheck}}" + bookInfo="{{bookInfo}}" + treeList="{{[citem]}}" + learnList="{{learnList}}" + itemId="{{itemId}}" + tab="{{tab}}" + buyIds="{{buyIds}}" + openIds="{{openIds}}" + ></tree> </view> <!-- 鏆傛棤鏁版嵁 --> <view wx:if="{{!item.children || !item.children.length}}" class="noData"> @@ -131,4 +331,4 @@ </view> <web-view wx:if="{{webpageSrc}}" src="{{webpageSrc}}"></web-view> -<!-- <button bind:tap="sadd"> 65498</button> --> \ No newline at end of file +<!-- <button bind:tap="sadd"> 65498</button> --> diff --git a/packageBookService/pages/bookServices/detail/components/tree/index.wxss b/packageBookService/pages/bookServices/detail/components/tree/index.wxss index fd8e1e5..2683681 100644 --- a/packageBookService/pages/bookServices/detail/components/tree/index.wxss +++ b/packageBookService/pages/bookServices/detail/components/tree/index.wxss @@ -17,7 +17,16 @@ width: 100%; display: flex; align-items: center; + justify-content: space-between; } + +.title-t, +.title-icon { + display: flex; + align-items: center; +} + +.title-icon {} .title-checkBox { width: 100%; @@ -105,11 +114,12 @@ padding-bottom: 20rpx; } -/* .t-collapse-panel__content { - padding: var(--td-collapse-content-padding, 0rpx) !important; -} */ .fl-cn { display: flex; align-items: center; +} + +.clound-icon { + display: flex; } \ No newline at end of file diff --git a/packageBookService/pages/bookServices/detail/index.js b/packageBookService/pages/bookServices/detail/index.js index 86016ed..44051f6 100644 --- a/packageBookService/pages/bookServices/detail/index.js +++ b/packageBookService/pages/bookServices/detail/index.js @@ -51,6 +51,9 @@ applyState: "", // 鏁欏璧勬簮鐢宠鐘舵�� deadline: "", // 鏁欏璧勬簮鐢宠鏈夋晥鏃ユ湡, isshowDrawBtn: true, // 浜戝涔犻鍙栨煡鐪嬫寜閽槸鍚︽樉绀� + isShowBuyCloundMenu: false, // 浜戝涔犲叏閮ㄨ喘涔版寜閽槸鍚︽樉绀� + isCloundHaveSaleMethod: false, // 浜戝涔犳槸鍚︽湁閿�鍞柟寮� + cloundMenuIsBuy: false, rejectCause: "", // 涓嬭浇鎷掔粷鍘熷洜 buyIdList: [], shoppingCartGetId: [], // 宸茶喘涔癷d鍒楄〃 @@ -266,11 +269,6 @@ }, /** - * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍒濇娓叉煋瀹屾垚 - */ - onReady() {}, - - /** * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鏄剧ず */ onShow() { @@ -290,21 +288,6 @@ }, /** - * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰闅愯棌 - */ - onHide() {}, - - /** - * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍗歌浇 - */ - onUnload() {}, - - /** - * 椤甸潰鐩稿叧浜嬩欢澶勭悊鍑芥暟--鐩戝惉鐢ㄦ埛涓嬫媺鍔ㄤ綔 - */ - onPullDownRefresh() {}, - - /** * 椤甸潰涓婃媺瑙﹀簳浜嬩欢鐨勫鐞嗗嚱鏁� */ onReachBottom() { @@ -314,11 +297,6 @@ } }, - /** - * 鐢ㄦ埛鐐瑰嚮鍙充笂瑙掑垎浜� - */ - onShareAppMessage() {}, - onShareTimeline() {}, // 鏍煎紡鍖栨棩鏈� formatDate(dateString) { if (!dateString) { @@ -545,8 +523,9 @@ } app.MG.store.getProductDetail(query).then((res) => { this.setData({ - resourceCodeList: res.datas.cmsDatas[0].datas + resourceCodeList: res.datas.cmsDatas[0].datas, }) + console.log('refcode', this.data.resourceCodeList); }) }, //璇锋眰瀛愬晢鍝佺殑鏂囦欢 @@ -941,6 +920,26 @@ // 杩斿洖鏇存柊鍚庣殑鏁扮粍 return array; }, + // 閫掑綊鏍戠粨鏋勶紝濡傛灉鐖剁骇鏈夐攢鍞柟寮�(鏈夋晥鏈�)锛屽幓鎺夋墍鏈夊瓙闆嗙殑閿�鍞柟寮� + clearTreeSealmethod(clearSaleMethod, tree) { + for (let item of tree) { + const saleData = item.saleMethod && + item.saleMethod.length ? + item.saleMethod.find((citem) => citem.SaleType == 'Normal') : null + if ( + ((saleData && new Date(saleData.EndDate).getTime() >= new Date().getTime() && new Date(saleData.BeginDate).getTime() <= new Date().getTime()) || + clearSaleMethod) && item.children && item.children.length + ) { + item.children.forEach((ditem) => (ditem.saleMethod = [])) + } + if (item.children && item.children.length) + this.clearTreeSealmethod( + saleData && new Date(saleData.EndDate).getTime() >= new Date().getTime() && new Date(saleData.BeginDate).getTime() <= new Date().getTime(), + item.children + ) + } + return tree + }, // 鏁欏璧勬簮 浜戝涔� 鑾峰彇 getResourceDataList(type) { this.setData({ @@ -950,7 +949,7 @@ let query = { path: '*', queryType: '*', - storeInfo: this.data.options.storeInfo, + // storeInfo: this.data.options.storeInfo, productId: this.data.bookDetail.id, cmsPath: type.productLinkPath, cmsType: '*', @@ -974,6 +973,7 @@ }, } app.MG.store.getProductDetailNoChildren(query).then((res) => { + console.log('鏈鐞嗚祫婧�', res.datas.cmsDatas[0].datas); if (!res.datas.cmsDatas[0].datas.length) { return this.setData({ noResources: true, @@ -981,84 +981,82 @@ }); } let list = [] - // 娴嬭瘯 6浣�// 姝e紡 5浣�// 娴嬭瘯璋冪敤浼�20锛屽唴閮�7 姝e紡璋冪敤浼�17 鍐呴儴浼�6 - //鏁欏璧勬簮 浜戝涔� - if ( - type.refCode == "jsek_teachingResources" || - type.refCode == "jsek_cloudLearning" - ) { - res.datas.cmsDatas[0].datas.forEach((item) => { - item.checked = false; - if (item.sysType == 'CmsItem') { - // 鏁欏璧勬簮 绫诲瀷鍚嶇О璧嬪�� - this.data.resourceClassList.forEach((type) => { - if (type.value == item.resourcesClassification) - item.resourceClass = type.name; - }); - if (this.data.tabValue == "jsek_teachingResources") {} else if (this.data.tabValue == "jsek_cloudLearning") { - item.isbuy = this.isShowNeedBuy(item); - item.isShopCar = this.isShoppingCart(item); - } - } + // 鍒ゆ柇浜戝涔犳湁鏃犻攢鍞柟寮忓拰鏈夋晥鏈� + const cloundSaleMethod = + type.saleMethod && type.saleMethod.length ? + type.saleMethod.find((citem) => citem.SaleType == 'Normal') : + null + let flags = + type.refCode == 'jsek_cloudLearning' && + cloundSaleMethod && + new Date().getTime() <= new Date(cloundSaleMethod.EndDate).getTime() && + new Date().getTime() >= new Date(cloundSaleMethod.BeginDate).getTime() + res.datas.cmsDatas[0].datas.forEach((item) => { + // 浜戝涔犱笂鏈夐攢鍞柟寮忥紝鍘绘帀浜戝涔犱笅鎵�鏈夐攢鍞柟寮� + if (flags) item.saleMethod = [] + item.checked = false; + if (item.sysType == 'CmsItem') { + // 鏁欏璧勬簮 绫诲瀷鍚嶇О璧嬪�� + this.data.resourceClassList.forEach((type) => { + if (type.value == item.resourcesClassification) + item.resourceClass = type.name; + }); + // if (this.data.tabValue == "jsek_teachingResources") {} else if (this.data.tabValue == "jsek_cloudLearning") { + // item.isbuy = this.isShowNeedBuy(item); + // item.isShopCar = this.isShoppingCart(item); + // } + } + }); + // 鍒ゆ柇澶勭悊璧勬簮 + if (res.datas.cmsDatas[0].datas.some((item) => item.sysType == 'CmsFolder')) { + if (!res.datas.cmsDatas[0].datas.some((item) => item.sysType == 'CmsItem')) { + // 1.鍙湁鐩綍锛屾病鏈夎祫婧� + list = res.datas.cmsDatas[0].datas + } else { + this.getTreeList(res.datas.cmsDatas[0].datas, list, query.cmsPath) + list = this.ensureTreeConsistency(list) + list = this.changeResourceChildren(list) + } + } else { + // 3.鍙湁璧勬簮锛屾病鏈夌洰褰� + list = res.datas.cmsDatas[0].datas + } + let result = []; + if (type.refCode == "jsek_teachingResources") { + this.findChildIds(list, result); + this.setData({ + openTeachids: result, + loading: false, + teach: list, }); - if (type.refCode == "jsek_cloudLearning") { - this.setData({ - learnPath: type.productLinkPath - }) - const dataList = res.datas.cmsDatas[0].datas - // 鍏堝垽鏂槸鍚﹀惁涔颁簯瀛︿範鏁翠釜鐩綍 - let couldId = null - let codeData = null - if (this.data.resourceCodeList.length) { - codeData = this.data.resourceCodeList.find(item => item.refCode == 'jsek_cloudLearning') - if (codeData && codeData.saleMethod && codeData.saleMethod.length) - couldId = codeData.saleMethod[0].Id - } - if (couldId) { - this.setData({ - isGoBuyResource: this.data.buyIdList.indexOf(couldId) > -1 ? false : true - }) - } else if (dataList.length) { - const tag = dataList.findIndex(item => item.saleMethod.length && item.saleMethod[0].Price > 0) - this.setData({ - isGoBuyResource: tag > -1 ? true : false - }) - } else { - this.setData({ - isGoBuyResource: false - }) - } - } - this.getTreeList(res.datas.cmsDatas[0].datas, list, query.cmsPath) - list = this.ensureTreeConsistency(list) - list = this.changeResourceChildren(list) - let result = []; - if (type.refCode == "jsek_teachingResources") { - this.findChildIds(list, result); - // const newUSeList = this.deleteTreeData(list, result) - this.setData({ - openTeachids: result, - loading: false, - teach: list, - }); - } else if (type.refCode == "jsek_cloudLearning") { - let arr = this.handleTreeData(list).filter( - (item) => item.saleMethod[0] - ); - let freeIds = arr.filter((item) => { - return item.saleMethod[0].Price == 0; - }); - if (!freeIds.length) - this.setData({ - isshowDrawBtn: false, - }); - this.findChildIds(list, result); - this.setData({ - learn: list, - loading: false, - openLearnids: result, - }); - } + } else if (type.refCode == "jsek_cloudLearning") { + // 浜戝涔犱笂鏃犻攢鍞柟寮忥紝璧扮洰褰� 璧勬簮 閿�鍞柟寮忓幓闄ゆ柟娉� + if (!flags) list = this.clearTreeSealmethod(false, list) + // 鍒ゆ柇棰嗗彇鏌ョ湅鏄惁鏄剧ず(浜戝涔狅紝鎴栬祫婧愮洰褰曪紝鏈夊敭浠蜂负0) + let isshowDrawBtn = res.datas.cmsDatas[0].datas.some( + (item) => + item.saleMethod.length && + item.saleMethod.find((citem) => citem.SaleType == 'Normal').Price == 0 && + new Date(item.saleMethod.find((citem) => citem.SaleType == 'Normal').EndDate).getTime() >= new Date().getTime() && + new Date(item.saleMethod.find((citem) => citem.SaleType == 'Normal').BeginDate).getTime() <= new Date().getTime() + ) || (flags && cloundSaleMethod.Price == 0) + // 鍒ゆ柇浜戝涔犲叏閮ㄨ喘涔版寜閽槸鍚︽樉绀� + let isShowBuyCloundMenu = flags && cloundSaleMethod.Price >= 0 + // 鍒ゆ柇璐墿杞︽寜閽拰閿佹寜閽槸鍚︽樉绀� + this.handleTreeData(list).forEach(item => { + item.isbuy = this.resourceIsBuy(item); + item.isShopCar = this.isShoppingCart(item); + }) + this.findChildIds(list, result); + this.setData({ + isshowDrawBtn, + isShowBuyCloundMenu, + isCloundHaveSaleMethod: flags, + learn: list, + loading: false, + openLearnids: result, + learnPath: type.productLinkPath + }); } }) }, @@ -1158,91 +1156,7 @@ console.log(e); }); }, - // 鑾峰彇tag涓嬫墍鏈夎祫婧� - async getAllResource(data) { - if (!data.length) return false; - for (let i = 0; i < data.length; i++) { - let item = data[i]; - if (item.sysType == "CmsFolder" && item.childrenCount > 0) { - item.children = []; - item.children = await this.getFolderItem(item.productLinkPath); - await this.getAllResource(item.children); - } - } - return data; - }, - // 鑾峰彇璧勬簮鎺ュ彛 - async getFolderItem(path) { - let query = { - path: "*", - queryType: "*", - storeInfo: this.data.options.storeInfo, - productId: this.data.bookDetail.id, - cmsPath: path, - itemFields: { - SysType: "CmsFolder", - // 璧勬簮绫诲瀷锛岃瘯璇绘枃浠讹紝鏄惁鍏佽涓嬭浇绛夊弬鏁� - selectType: [], - freeFile: [], - file: [], - protectedFile: [], - resourcesClassification: [], - isDownload: [], - jsek_resourceBrief: [], - jsek_link: [], - accessType: [], - learnSelectType: [], - }, - pading: { - start: 0, - size: 999, - }, - }; - let data = await app.MG.store.getProductDetail(query); - // 濡傛灉item灞傜骇閲屾湁floder锛屽垹闄loder - const flag = data.datas.cmsDatas[0].datas.findIndex( - (item) => item.sysType == "CmsItem" - ); - if (flag > -1) - data.datas.cmsDatas[0].datas = data.datas.cmsDatas[0].datas.filter( - (item) => item.sysType == "CmsItem" - ); - data.datas.cmsDatas[0].datas.forEach((item) => { - // if (item.sysType == "CmsFolder" && flag > -1) { - // item.isShow = false; - // } else { - // item.isShow = true; - // } - this.data.resourceClassList.forEach((type) => { - if (type.value == item.resourcesClassification) - item.resourceClass = type.name; - }); - // 缃戦〉 涓嶈兘涓嬭浇 绉佹湁鏂囦欢 - if (item.sysType == "CmsItem") { - if (item.selectType == "webpage") { - item.disabled = true; - } else { - if (item.isDownload != 1) { - item.disabled = true; - } - } - if (item.file && item.fileMap && item.fileMap[item.file]) { - if (item.fileMap[item.file].protectType == "Private") - item.disabled = true; - } - } - }); - data.datas.cmsDatas[0].datas.forEach((item) => { - if (this.data.tabValue == "jsek_teachingResources") { - item.checked = false; - } else if (this.data.tabValue == "jsek_cloudLearning") { - item.checked = false; - item.isbuy = this.isShowNeedBuy(item); - item.isShopCar = this.isShoppingCart(item); - } - }); - return data.datas.cmsDatas[0].datas; - }, + // 鑾峰彇灞曞紑椤� findChildIds(data, result) { let index = 0 @@ -1670,20 +1584,26 @@ }, // 鍒ゆ柇璧勬簮鏄惁璐拱 resourceIsBuy(data) { - let couldId = null - let codeData = null - if (this.data.resourceCodeList.length) { - codeData = this.data.resourceCodeList.find(item => item.refCode == 'jsek_cloudLearning') - if (codeData && codeData.saleMethod && codeData.saleMethod.length) - couldId = codeData.saleMethod[0].Id - } - if (couldId) { - return this.data.buyIdList.indexOf(couldId) > -1 ? false : true - } else if (data.saleMethod && data.saleMethod.length) { - const isSHow = this.data.buyIdList.some( - (item) => item == data.saleMethod[0].Id + if (data.saleMethod && data.saleMethod.length) { + const saleData = data.saleMethod.find((item) => item.SaleType == 'Normal') + if (saleData.State == 'Disable') return false + const isShow = this.data.buyIdList.some( + (item) => item == saleData.Id ); - return !isSHow; + // 宸茬粡璐拱 + if (isShow) return false + // 鏈喘涔帮紝鏌ョ湅閿�鍞柟寮忔槸鍚﹁繃鏈� + if (!isShow) { + const flag = new Date(saleData.EndDate).getTime() >= new Date().getTime() && + new Date(saleData.BeginDate).getTime() <= new Date().getTime() + if (flag) { + // 涓鸿繃鏈� 锛岄渶瑕佽喘涔� + return true + } else { + // 宸茶繃鏈� 鏃犻渶璐拱 + return false + } + } } else { return false; } @@ -1725,30 +1645,31 @@ }, // 鍒ゆ柇璧勬簮鍔犲叆璐墿杞︽寜閽槸鍚︽樉绀� isShoppingCart(data) { - let couldId = null - let codeData = null - if (this.data.resourceCodeList.length) { - codeData = this.data.resourceCodeList.find(item => item.refCode == 'jsek_cloudLearning') - if (codeData && codeData.saleMethod && codeData.saleMethod.length) - couldId = codeData.saleMethod[0].Id - } - if (couldId) { - return this.data.buyIdList.indexOf(couldId) > -1 ? false : true - } else if (data.saleMethod && data.saleMethod.length) { - if (data.saleMethod[0].Price <= 0) return false; + if (data.saleMethod && data.saleMethod.length) { + const saleData = data.saleMethod.find((item) => item.SaleType == 'Normal') + // 鍏堝垽鏂槸鍚﹀厤璐� + if (saleData.Price <= 0) return false // 鍐嶅垽鏂槸鍚﹁喘涔� - const isBuy = this.data.buyIdList.some( - (item) => item == data.saleMethod[0].Id - ); + const isBuy = this.data.buyIdList.some((item) => item == saleData.Id) if (isBuy) { // 璐拱浜� - return false; + return false } else { // 鍒ゆ柇鏄惁鍔犲叆璐墿杞� - const isSHow = this.data.shoppingCartGetId.some( - (item) => item == data.saleMethod[0].Id - ); - return !isSHow; + const isShow = this.data.shoppingCartGetId.some((item) => item == saleData.Id) + if (isShow) return false + // 鏈喘涔帮紝鏌ョ湅閿�鍞柟寮忔槸鍚﹁繃鏈� + if (!isShow) { + const flag = new Date(saleData.EndDate).getTime() >= new Date().getTime() && + new Date(saleData.BeginDate).getTime() <= new Date().getTime() + if (flag) { + // 涓鸿繃鏈� 锛岄渶瑕佽喘涔� + return true + } else { + // 宸茶繃鏈� 鏃犻渶璐拱 + return false + } + } } } else { return false; @@ -1782,7 +1703,7 @@ flattenedArray.push(...childrenArray); } }); - return flattenedArray.filter((item) => item.sysType == "CmsItem"); + return flattenedArray; }, // 浜戝涔犱竴閿鍙� async getFreeResource() { @@ -1797,19 +1718,34 @@ // 鍑虹幇閿欒锛岃繑鍥瀎alse } }); + } + // 棰嗗彇鏌ョ湅 锛屽厛鐪嬩簯瀛︿範涓婄殑 鍐嶇湅璧勬簮涓婄殑 + const cloundMenu = this.data.resourceCodeList.find((item) => item.refCode == 'jsek_cloudLearning') + const cloundMenuSaleMethod = + cloundMenu.saleMethod && cloundMenu.saleMethod.length ? + cloundMenu.saleMethod.find((ditem) => ditem.SaleType == 'Normal') : + undefined + let query = {} + if (this.data.isCloundHaveSaleMethod && !cloundMenuSaleMethod.Price) { + // 浜戝涔犱笂鏈夐攢鍞柟寮忥紝涓斾负0鍏冿紝鐩存帴棰嗗彇浜戝涔� + query = { + remarks: '浜戝涔�', + requests: [{ + saleMethodId: cloundMenuSaleMethod.Id, + count: 1 + }] + } } else { - let arr = this.handleTreeData(this.data.learn).filter((item) => - this.resourceIsBuy(item) - ); + // 棰嗗彇璧勬簮 + let arr = this.handleTreeData(this.data.learn).filter(item => this.resourceIsBuy(item)) let freeIds = arr.filter((item) => { - return item.saleMethod[0].Price == 0; - }); + return item.saleMethod.find((citem) => citem.SaleType == 'Normal').Price == 0 + }) if (!freeIds.length) return wx.showToast({ icon: "error", title: "鏆傛棤鍏嶈垂璧勬簮", }); - child.changeReceive(true); let requests = []; freeIds.forEach((item, index) => { if (this.resourceIsBuy(item)) { @@ -1819,34 +1755,35 @@ }); } }); - let query = { + query = { remarks: "浜戝涔�", requests, }; - try { - const initOrderRes = await app.MG.store.initOrder(query); - let parameter = { - orderNum: initOrderRes.orderNumber, - }; - // 纭璁㈠崟 - const confirmOrderRes = await app.MG.store.confirmOrder(parameter); - if (confirmOrderRes.orderNumber) { - child.changeReceive(false); - wx.showToast({ - title: "棰嗗彇鎴愬姛", - }); - this.getBookInfo(this.data.bookId); - this.getResourceDataList({ - refCode: 'jsek_cloudLearning', - productLinkPath: this.data.learnPath - }) - this.setData({ - successOrderNumber: confirmOrderRes.orderNumber - }) - } - } catch (error) { - console.log(error); + } + child.changeReceive(true); + try { + const initOrderRes = await app.MG.store.initOrder(query); + let parameter = { + orderNum: initOrderRes.orderNumber, + }; + // 纭璁㈠崟 + const confirmOrderRes = await app.MG.store.confirmOrder(parameter); + if (confirmOrderRes.orderNumber) { + child.changeReceive(false); + wx.showToast({ + title: "棰嗗彇鎴愬姛", + }); + this.getBookInfo(this.data.bookId); + this.getResourceDataList({ + refCode: 'jsek_cloudLearning', + productLinkPath: this.data.learnPath + }) + this.setData({ + successOrderNumber: confirmOrderRes.orderNumber + }) } + } catch (error) { + console.log(error); } }, // 浜戝涔犱竴閿喘涔� @@ -1861,7 +1798,8 @@ }, }); } - let shopList = this.handleTreeData(this.data.learn).filter((item) => + let shopList = this.handleTreeData(this.data.learn).filter(item => item.cmsType == 'cmsItem') + shopList = shopList.filter((item) => this.resourceIsBuy(item) ); this.getShoppingCartProductGet(); @@ -1897,6 +1835,11 @@ title: "璇烽噸璇�", }); } + }, + // 浜戝涔犲瓧娈佃喘涔� + async buyCloundMenu() { + const cloundData = this.data.resourceCodeList.find(item => item.refCode == 'jsek_cloudLearning') + }, // 鍙樹负鎵�鏈塩heck true findAndUpdateItemsByIds(tree, ids) { @@ -2834,5 +2777,16 @@ }); this.closeDialog() }) + }, + getCloundIsBuy() { + let flag = false + if (!this.data.isCloundHaveSaleMethod) flag = false + const cloundData = this.data.resourceCodeList.find(item => item.refCode == 'jsek_cloudLearning') + const saleData = cloundData.saleMethod.find(item => item.SaleType == "Normal") + if (!saleData) flag = false + flag = this.data.buyIdList.some(item => item == saleData.Id) + this.setData({ + cloundMenuIsBuy: flag + }) } }) \ No newline at end of file diff --git a/packageBookService/pages/bookServices/detail/index.wxml b/packageBookService/pages/bookServices/detail/index.wxml index c81b427..9576f19 100644 --- a/packageBookService/pages/bookServices/detail/index.wxml +++ b/packageBookService/pages/bookServices/detail/index.wxml @@ -1,47 +1,56 @@ <!--pages/bookServices/detail/index.wxml--> <import src="index.skeleton.wxml" /> <template is="skeleton" wx:if="{{pageLoading}}" /> -<!-- pageLoading --> -<!--瀵艰埅鍖哄煙 --> -<suggest-dialog class="suggest-dialog" showIndex="{{showIndex}}" bookIcon="{{bookDetail.icon}}" bookName="{{bookDetail.name}}"></suggest-dialog> +<suggest-dialog + class="suggest-dialog" + showIndex="{{showIndex}}" + bookIcon="{{bookDetail.icon}}" + bookName="{{bookDetail.name}}" +></suggest-dialog> <!-- <popup showIndex="{{showIndex}}"></popup> --> <view class="page-bookService" wx:if="{{!pageLoading}}"> - <!-- <view style="width: 100%; height: {{barHeight}}px; "></view> - <view class="nacigationBar" style="width: 100%; height: {{navBarHeight}}px;"> - <view> - <t-icon - name="chevron-left" - size="30" - data-name="{{item}}" - bind:click="goBack" - /> - </view> - <view class="navbar-title" style="width: 100%"> - <text>{{options.name}}</text> - </view> - </view> --> <t-toast id="t-toast" /> <movable-area class="movable-area"> - <scroll-view scroll-y="{{true}}" class="book" bindscrolltolower="onReachBottom"> + <scroll-view + scroll-y="{{true}}" + class="book" + bindscrolltolower="onReachBottom" + > <!-- 鍥句功璇︽儏 --> <view class="book-box"> <view class="book-detail" id="book-detail"> <view class="detail-left"> <view class="book-img"> - <image loading="" src="{{bookDetail.icon ? bookDetail.icon : '/static/images/default-book-img.png'}}" mode="aspectFit" aria-label="{{bookDetail.name}}" /> + <image + loading="" + src="{{bookDetail.icon ? bookDetail.icon : '/static/images/default-book-img.png'}}" + mode="aspectFit" + aria-label="{{bookDetail.name}}" + /> </view> <view class="book-use"> <view class="collect" bind:tap="setCollect"> <view> - <image loading="" src="/static/images/bookService/detail/collect.png" wx:if="{{!bookDetail.isFavourite}}" /> - <image loading="" src="/static/images/bookService/detail/collecting.png" wx:if="{{bookDetail.isFavourite}}" /> + <image + loading="" + src="/static/images/bookService/detail/collect.png" + wx:if="{{!bookDetail.isFavourite}}" + /> + <image + loading="" + src="/static/images/bookService/detail/collecting.png" + wx:if="{{bookDetail.isFavourite}}" + /> </view> <view class="use-title">鏀惰棌</view> </view> <view class="suggest" bind:tap="suggestBtn"> <view> - <image loading="" src="/static/images/bookService/detail/suggest.png" /> + <image + loading="" + src="/static/images/bookService/detail/suggest.png" + /> </view> <view class="use-title">鎴戣寤鸿</view> </view> @@ -66,12 +75,19 @@ <view class="li-title">鍑虹増鏃堕棿锛�</view> <view class="li-content">{{bookDetail.publicationDate}}</view> </view> - <view class="message-li" wx:if="{{bookClass.length}}" style="height: 80rpx"> + <view + class="message-li" + wx:if="{{bookClass.length}}" + style="height: 80rpx" + > <view class="li-title">鍥句功鍒嗙被锛�</view> <view class="class-name showTow">{{bookClass}}</view> </view> </view> - <image src="/static/images/bookService/detail/square.png" class="right-background" /> + <image + src="/static/images/bookService/detail/square.png" + class="right-background" + /> </view> </view> <!-- 閿�鍞俊鎭� --> @@ -80,12 +96,19 @@ <!-- 鐢靛瓙涔﹀敭浠� --> <view class="electron-price" wx:if="{{bookDetail.price}}"> <view> - <image src="/static/images/bookService/detail/electon-price.png" /> + <image + src="/static/images/bookService/detail/electon-price.png" + /> </view> <view class="price"> - <view class="price-text">{{bookDetail.price == '0.00' ? '鍏嶈垂' : '楼'+ - bookDetail.price}}</view> - <view class="price-old" wx:if="{{bookDetail.oldPrice != '0.00'}}">楼{{bookDetail.oldPrice}} + <view class="price-text" + >{{bookDetail.price == '0.00' ? '鍏嶈垂' : '楼'+ + bookDetail.price}}</view + > + <view + class="price-old" + wx:if="{{bookDetail.oldPrice != '0.00'}}" + >楼{{bookDetail.oldPrice}} </view> </view> <view> </view> @@ -93,27 +116,72 @@ <!-- 绾歌川涔﹀敭浠� --> <view class="paper-price" wx:if="{{bookDetail.paperPrice}}"> <view> - <image src="/static/images/bookService/detail/paper-price.png" /> + <image + src="/static/images/bookService/detail/paper-price.png" + /> </view> - <view class="price">{{bookDetail.paperPrice == '0.00' ? '鍏嶈垂' : - '楼'+bookDetail.paperPrice}}</view> + <view class="price" + >{{bookDetail.paperPrice == '0.00' ? '鍏嶈垂' : + '楼'+bookDetail.paperPrice}}</view + > </view> </view> <!-- 缃戝簵 --> <view class="book-web"> - <image src="/static/images/bookService/detail/jd.png" wx:if="{{bookDetail.JDLink}}" bind:tap="goShop" data-link="{{bookDetail.JDLink}}" data-type="jd" /> - <image class="tmall-image" src="/static/images/bookService/detail/tmall.png" bind:tap="goShop" data-link="{{bookDetail.tmallLink}}" wx:if="{{bookDetail.tmallLink}}" /> - <image src="/static/images/bookService/detail/dangdang.png" bind:tap="goShop" data-link="{{bookDetail.dangdangLink}}" wx:if="{{bookDetail.dangdangLink}}" /> - <image src="/static/images/bookService/detail/weidian.png" bind:tap="goShop" data-link="{{bookDetail.weidianLink}}" wx:if="{{bookDetail.weidianLink}}" /> + <image + src="/static/images/bookService/detail/jd.png" + wx:if="{{bookDetail.JDLink}}" + bind:tap="goShop" + data-link="{{bookDetail.JDLink}}" + data-type="jd" + /> + <image + class="tmall-image" + src="/static/images/bookService/detail/tmall.png" + bind:tap="goShop" + data-link="{{bookDetail.tmallLink}}" + wx:if="{{bookDetail.tmallLink}}" + /> + <image + src="/static/images/bookService/detail/dangdang.png" + bind:tap="goShop" + data-link="{{bookDetail.dangdangLink}}" + wx:if="{{bookDetail.dangdangLink}}" + /> + <image + src="/static/images/bookService/detail/weidian.png" + bind:tap="goShop" + data-link="{{bookDetail.weidianLink}}" + wx:if="{{bookDetail.weidianLink}}" + /> </view> </view> </view> <view class="book-resource"> - <t-tabs value="{{tabValue}}" bind:change="onTabsChange" t-class="custom-tabs" t-class-content="custom-panel" class="tab-class"> - <t-tab-panel label="鍥句功淇℃伅" icon="{{ tabValue == 'brief' ? briefIconClick : briefIcon}}" value="brief" style="{{tabPanelstyle}}"> - <book-brief content="{{bookDetail.content}}" catalogue="{{bookDetail.catalogue}}" authorIntroduction="{{bookDetail.authorIntroduction}}" wx:if="{{bookDetail.content || bookDetail.authorIntroduction}}"></book-brief> - <view wx:if="{{!bookDetail.content && !bookDetail.authorIntroduction && !loading}}" class="noData"> + <t-tabs + value="{{tabValue}}" + bind:change="onTabsChange" + t-class="custom-tabs" + t-class-content="custom-panel" + class="tab-class" + > + <t-tab-panel + label="鍥句功淇℃伅" + icon="{{ tabValue == 'brief' ? briefIconClick : briefIcon}}" + value="brief" + style="{{tabPanelstyle}}" + > + <book-brief + content="{{bookDetail.content}}" + catalogue="{{bookDetail.catalogue}}" + authorIntroduction="{{bookDetail.authorIntroduction}}" + wx:if="{{bookDetail.content || bookDetail.authorIntroduction}}" + ></book-brief> + <view + wx:if="{{!bookDetail.content && !bookDetail.authorIntroduction && !loading}}" + class="noData" + > <!-- <t-empty icon="folder-open" description="鏆傛棤鏁版嵁" /> --> <empty /> </view> @@ -125,18 +193,37 @@ style="{{tabPanelstyle}}" > </t-tab-panel> --> - <t-tab-panel label="鏁欏璧勬簮" icon="{{tabValue == 'jsek_teachingResources' ? teachResourcesClickIcon : teachResourcesIcon}}" value="jsek_teachingResources" class="{{loading ? 'loading': ''}}"> - <view wx:if="{{!loading && teach.length && !noResources && applyState}}"> - <view class="teach-btn"> - <t-button theme="primary" style="width: 120px; height: 36px" class="btn" bind:tap="uploadFile"> - <view slot="content" class="btn-content"> - <image src="/static/images/bookService/detail/upload.png" mode="aspectFit" ></image> - <text>涓婁紶璧勬簮</text> - </view> - </t-button> - </view> - <teach-resource applyState="{{applyState}}" rejectCause="{{rejectCause}}" deadline="{{deadline}}" bind:applyResource="applyResource" applyResourceLoading="{{applyResourceLoading}}"></teach-resource> - <tree id="teach-tree" openIds="{{openTeachids}}" bookInfo="{{bookDetail}}" treeList="{{teach}}" tab="{{tabValue}}" applyState="{{applyState}}" deadline="{{deadline}}" bind:downloadTeach="downloadTeach" bind:handleTree="handleTree" openTeachids="{{openTeachids}}" wx:if="{{teach.length}}" isShoppingCart="isShoppingCart" bind:updateCloudLearning="updateCloudLearning"></tree> + <t-tab-panel + label="鏁欏璧勬簮" + icon="{{tabValue == 'jsek_teachingResources' ? teachResourcesClickIcon : teachResourcesIcon}}" + value="jsek_teachingResources" + class="{{loading ? 'loading': ''}}" + > + <view wx:if="{{!loading && applyState}}"> + <teach-resource + applyState="{{applyState}}" + rejectCause="{{rejectCause}}" + deadline="{{deadline}}" + bind:applyResource="applyResource" + treeList="{{teach}}" + applyResourceLoading="{{applyResourceLoading}}" + bind:uploadFile="uploadFile" + ></teach-resource> + <tree + id="teach-tree" + openIds="{{openTeachids}}" + bookInfo="{{bookDetail}}" + treeList="{{teach}}" + tab="{{tabValue}}" + applyState="{{applyState}}" + deadline="{{deadline}}" + bind:downloadTeach="downloadTeach" + bind:handleTree="handleTree" + openTeachids="{{openTeachids}}" + wx:if="{{teach.length}}" + isShoppingCart="isShoppingCart" + bind:updateCloudLearning="updateCloudLearning" + ></tree> </view> <!-- <t-loading theme="circular" @@ -145,34 +232,92 @@ loading="{{loading }}" /> --> <view wx:if="{{loading}}" style="width: 100%; height: min-content"> - <t-skeleton row-col="{{rowCol}}" theme="paragraph" animation="gradient" loading="{{loading}}"></t-skeleton> - </view> - <view wx:if="{{noResources && !loading}}" class="noData"> - <!-- <t-empty icon="folder-open" description="鏆傛棤鏁版嵁" /> --> - <empty /> + <t-skeleton + row-col="{{rowCol}}" + theme="paragraph" + animation="gradient" + loading="{{loading}}" + ></t-skeleton> </view> </t-tab-panel> - <t-tab-panel label="浜戝涔�" icon="{{tabValue == 'jsek_cloudLearning' ? learnResourceClickIcon : learnResourceIcon}}" value="jsek_cloudLearning" style="{{tabPanelstyle}}"> + <t-tab-panel + label="浜戝涔�" + icon="{{tabValue == 'jsek_cloudLearning' ? learnResourceClickIcon : learnResourceIcon}}" + value="jsek_cloudLearning" + style="{{tabPanelstyle}}" + > <view wx:if="{{!loading && learn.length}}"> - <learn-resource bind:getFreeResource="getFreeResource" bind:allAddShoppiingCar="allAddShoppiingCar" id="learn-resource" buyResourceData="{{buyResourceData}}" bookId="{{bookDetail.id}}" isshowDrawBtn="{{isshowDrawBtn}}" successOrderNumber="{{successOrderNumber}}" isGoBuyResource="{{isGoBuyResource}}"></learn-resource> + <learn-resource + bind:getFreeResource="getFreeResource" + bind:allAddShoppiingCar="allAddShoppiingCar" + id="learn-resource" + buyResourceData="{{buyResourceData}}" + bookId="{{bookDetail.id}}" + isshowDrawBtn="{{isshowDrawBtn}}" + successOrderNumber="{{successOrderNumber}}" + isGoBuyResource="{{isGoBuyResource}}" + isShowBuyCloundMenu="{{isShowBuyCloundMenu}}" + ></learn-resource> - <tree id="tree" openIds="{{openLearnids}}" bookInfo="{{bookDetail}}" tab="{{tabValue}}" treeList="{{learn}}" buyIds="{{buyIdList}}" openLearnids="{{openLearnids}}" bind:updateShoppingCartHidden="updateShoppingCartHidden" bind:updateCloudLearning="updateCloudLearning"></tree> + <tree + id="tree" + openIds="{{openLearnids}}" + bookInfo="{{bookDetail}}" + tab="{{tabValue}}" + treeList="{{learn}}" + buyIds="{{buyIdList}}" + openLearnids="{{openLearnids}}" + cloundMenuIsBuy="{{cloundMenuIsBuy}}" + bind:updateShoppingCartHidden="updateShoppingCartHidden" + bind:updateCloudLearning="updateCloudLearning" + bind:getCloundIsBuy="getCloundIsBuy" + ></tree> </view> <view wx:if="{{noResources && !loading}}" class="noData"> <!-- <t-empty icon="folder-open" description="鏆傛棤鏁版嵁" /> --> <empty /> </view> </t-tab-panel> - <t-tab-panel label="浜戞祴璇�" icon="{{tabValue == 'questionBank' ? testResourceClickIocn : testResourceIocn}}" value="questionBank" style="{{tabPanelstyle}}"> + <t-tab-panel + label="浜戞祴璇�" + icon="{{tabValue == 'questionBank' ? testResourceClickIocn : testResourceIocn}}" + value="questionBank" + style="{{tabPanelstyle}}" + > <view wx:if="{{!loading}}"> - <test-resource id="test-resource" list="{{test}}" bookInfo="{{bookDetail}}" openIds="{{openLearnids}}" mockData="{{mockData}}" tab="{{tabValue}}" storeInfo="{{options.storeInfo}}" jslx="{{jslx}}" bind:buyMock="buyMock"></test-resource> + <test-resource + id="test-resource" + list="{{test}}" + bookInfo="{{bookDetail}}" + openIds="{{openLearnids}}" + mockData="{{mockData}}" + tab="{{tabValue}}" + storeInfo="{{options.storeInfo}}" + jslx="{{jslx}}" + bind:buyMock="buyMock" + ></test-resource> </view> </t-tab-panel> - <t-tab-panel label="浜戠瑪璁�" icon="{{tabValue == 'jsek_note' ? noteClickIcon: noteIcon}}" value="jsek_note" style="{{tabPanelstyle}}"> + <t-tab-panel + label="浜戠瑪璁�" + icon="{{tabValue == 'jsek_note' ? noteClickIcon: noteIcon}}" + value="jsek_note" + style="{{tabPanelstyle}}" + > <note bookInfo="{{bookDetail}}" id="note" class="note-list"></note> </t-tab-panel> - <t-tab-panel label="鐩稿叧鍥句功" icon="{{tabValue == 'related_books' ? linkClickIcon: linkIcon}}" value="related_books" style="{{tabPanelstyle}}"> - <related-books relatedBookData="{{relatedBookData}}" relatedBookLoading="{{relatedBookLoading}}" noRelatedBookData="{{noRelatedBookData}}" bind:goBookDetails="goBookDetails"></related-books> + <t-tab-panel + label="鐩稿叧鍥句功" + icon="{{tabValue == 'related_books' ? linkClickIcon: linkIcon}}" + value="related_books" + style="{{tabPanelstyle}}" + > + <related-books + relatedBookData="{{relatedBookData}}" + relatedBookLoading="{{relatedBookLoading}}" + noRelatedBookData="{{noRelatedBookData}}" + bind:goBookDetails="goBookDetails" + ></related-books> </t-tab-panel> </t-tabs> </view> @@ -180,41 +325,86 @@ <movable-view class="movable-view" :x="{{x}}" :y="{{y}}" direction="all"> <view class="applyBox" bindtap="goApply"> <view class="box"> - <t-image src="/static/images/home/yangshuForm1.png" mode="heightFix" class="img" /> + <t-image + src="/static/images/home/yangshuForm1.png" + mode="heightFix" + class="img" + /> <view class="num" wx:if="{{num > 0}}">{{num}}</view> </view> </view> </movable-view> </movable-area> <!-- 鎴戣寤鸿寮圭獥 --> - <suggest class="suggest-component" id="suggest-component" bookIcon="{{bookDetail.icon}}" bookName="{{bookDetail.name}}"></suggest> + <suggest + class="suggest-component" + id="suggest-component" + bookIcon="{{bookDetail.icon}}" + bookName="{{bookDetail.name}}" + ></suggest> <!-- 鏁欏璧勬簮涓嬭浇鎻愮ず寮圭獥 --> - <t-dialog class="teachDownloadDialog" visible="{{isShowTeachDownload}}" title="鎻愮ず" content="璇峰墠寰�PC绔笅杞�" confirm-btn="{{ confirmBtn }}" bind:confirm="closeTeachDownload" /> + <t-dialog + class="teachDownloadDialog" + visible="{{isShowTeachDownload}}" + title="鎻愮ず" + content="璇峰墠寰�PC绔笅杞�" + confirm-btn="{{ confirmBtn }}" + bind:confirm="closeTeachDownload" + /> <!-- 璐拱鎸夐挳 --> <view class="box-bottom"> <view class="bottom-btn" bind:tap="appplyElectronicBook"> <view> - <t-image loading="" src="/static/images/bookService/detail/ebook.png"></t-image> + <t-image + loading="" + src="/static/images/bookService/detail/ebook.png" + ></t-image> </view> <view class="btn-text">鐢靛瓙鏍蜂功鐢宠</view> </view> <view class="bottom-btn" bind:tap="appplyPaperBook"> <view> - <t-image src="/static/images/bookService/detail/paper-book.png"></t-image> + <t-image + src="/static/images/bookService/detail/paper-book.png" + ></t-image> </view> <view class="btn-text">绾歌川鏍蜂功鐢宠</view> </view> - <view class="{{!bookBuy && bookDetail.isSell ? 'bottom-btn tryRead' : 'bottom-btn try'}}" bind:tap="goRead" wx:if="{{!bookBuy || applicationState == 'overdue'}}"> + <view + class="{{!bookBuy && bookDetail.isSell ? 'bottom-btn tryRead' : 'bottom-btn try'}}" + bind:tap="goRead" + wx:if="{{!bookBuy || applicationState == 'overdue'}}" + > <view> <t-image src="/static/images/bookService/detail/shidu.png"></t-image> </view> <view class="btn-text">璇曡</view> </view> - <view class="shopCar shopCarColor" bind:tap="addBookShopcCar" wx:if="{{!bookBuy && bookDetail.price !== '0.00' && bookDetail.isSell == '1'}}">鍔犲叆璐墿杞�</view> - <view class="buy buyColor" bind:tap="buyBtn" wx:if="{{!bookBuy && bookDetail.price !== '0.00' && bookDetail.isSell == '1'}}">绔嬪嵆璐拱</view> - <view class="buy receiveColor" bind:tap="buyBtn" wx:if="{{!bookBuy && bookDetail.price == '0.00' && bookDetail.isSell == '1'}}">鍏嶈垂棰嗗彇</view> - <view class="buy read" bind:tap="goRead" wx:if="{{bookBuy || applicationState == 'Normal'}}">绔嬪嵆鏌ョ湅</view> + <view + class="shopCar shopCarColor" + bind:tap="addBookShopcCar" + wx:if="{{!bookBuy && bookDetail.price !== '0.00' && bookDetail.isSell == '1'}}" + >鍔犲叆璐墿杞�</view + > + <view + class="buy buyColor" + bind:tap="buyBtn" + wx:if="{{!bookBuy && bookDetail.price !== '0.00' && bookDetail.isSell == '1'}}" + >绔嬪嵆璐拱</view + > + <view + class="buy receiveColor" + bind:tap="buyBtn" + wx:if="{{!bookBuy && bookDetail.price == '0.00' && bookDetail.isSell == '1'}}" + >鍏嶈垂棰嗗彇</view + > + <view + class="buy read" + bind:tap="goRead" + wx:if="{{bookBuy || applicationState == 'Normal'}}" + >绔嬪嵆鏌ョ湅</view + > </view> </view> <view wx:if="{{dialogBox}}"> @@ -224,12 +414,19 @@ <view class="row-info"> <view class="body"> <view class="dialog-title">鏂囦欢涓婁紶</view> - <view style="width: 100%; height: 2rpx; background-color: #f4f4f4"></view> + <view + style="width: 100%; height: 2rpx; background-color: #f4f4f4" + ></view> <view class="from-item"> <view class="label"> <text class="icon">*</text>璧勬簮鍚嶇О: </view> <view class="item-content"> <view class="inputBox1"> - <t-input placeholder="杈撳叆璧勬簮鍚嶇О" borderless value="{{resourceInfo.resourceName}}" bindchange="onNameInput" /> + <t-input + placeholder="杈撳叆璧勬簮鍚嶇О" + borderless + value="{{resourceInfo.resourceName}}" + bindchange="onNameInput" + /> </view> </view> </view> @@ -239,8 +436,25 @@ <!-- <view class="inputBox1"> <t-input placeholder="杈撳叆璧勬簮绫诲瀷" borderless value="{{resourceInfo.fileType}}" bindchange="onFileTypeInput" /> </view> --> - <t-cell class="mb-16" title="" arrow hover note="{{resourceInfo.fileType}}" bind:click="onResourcePicker" /> - <t-picker visible="{{resourceVisible}}" value="{{resourceValue}}" data-key="resource" title="閫夋嫨璧勬簮绫诲瀷" cancelBtn="鍙栨秷" confirmBtn="纭" usingCustomNavbar bindchange="onPickerChange" bindcancel="onPickerCancel"> + <t-cell + class="mb-16" + title="" + arrow + hover + note="{{resourceInfo.fileType}}" + bind:click="onResourcePicker" + /> + <t-picker + visible="{{resourceVisible}}" + value="{{resourceValue}}" + data-key="resource" + title="閫夋嫨璧勬簮绫诲瀷" + cancelBtn="鍙栨秷" + confirmBtn="纭" + usingCustomNavbar + bindchange="onPickerChange" + bindcancel="onPickerCancel" + > <t-picker-item options="{{fileTypeList}}" /> </t-picker> </view> @@ -249,24 +463,51 @@ <view class="label">鏂囦欢鎻忚堪:</view> <view class="item-content"> <view class="inputBox1"> - <t-textarea placeholder="璇疯緭鍏ユ枃浠舵弿杩�" value="{{resourceInfo.description}}" disableDefaultPadding="{{true}}" autosize="{{true}}" maxlength="300" indicator bind:change="textareaChange" /> + <t-textarea + placeholder="璇疯緭鍏ユ枃浠舵弿杩�" + value="{{resourceInfo.description}}" + disableDefaultPadding="{{true}}" + autosize="{{true}}" + maxlength="300" + indicator + bind:change="textareaChange" + /> </view> </view> </view> <view class="from-item"> <view class="label"> <text class="icon">*</text>涓婁紶鏂囦欢: </view> <view class="item-content"> - <t-button size="small" class="right-btn" bind:tap="uploadPicture" wx:if="{{isShowUp}}">鐐瑰嚮涓婁紶</t-button> - <view wx:if="{{!isShowUp && fileList.length > 0}}" class="fileList"> + <t-button + size="small" + class="right-btn" + bind:tap="uploadPicture" + wx:if="{{isShowUp}}" + >鐐瑰嚮涓婁紶</t-button + > + <view + wx:if="{{!isShowUp && fileList.length > 0}}" + class="fileList" + > <text>{{fileList[0].name}}</text> - <image src="/static/images/bookService/detail/deleteHover.png" class="deleteBtn" data-md5="{{fileList[0].md5}}" bind:tap="handleRemove" /> + <image + src="/static/images/bookService/detail/deleteHover.png" + class="deleteBtn" + data-md5="{{fileList[0].md5}}" + bind:tap="handleRemove" + /> </view> </view> <view class="tip">娉細鏂囦欢澶у皬涓嶅緱瓒呰繃50MB</view> </view> <view class="from-item"> <view class="protocolBox"> - <t-checkbox label="鍚屾剰" icon="rectangle" checked="{{resourceInfo.agree}}" bind:change="onChange" /> + <t-checkbox + label="鍚屾剰" + icon="rectangle" + checked="{{resourceInfo.agree}}" + bind:change="onChange" + /> <text class="wait" bind:tap="getAgreement">銆婃巿鏉冨悓鎰忎功銆�</text> </view> </view> @@ -281,15 +522,25 @@ </view> <view class="popupBox"> - <t-popup visible="{{protocolShow}}" bind:visible-change="onVisibleChange" placement="center"> + <t-popup + visible="{{protocolShow}}" + bind:visible-change="onVisibleChange" + placement="center" + > <view class="block"> <view class="protocol"> <rich-text space="emsp" nodes="{{protocolTxt}}" class="content" /> </view> - <t-icon t-class="close-btn" name="close-circle" size="32" color="#fff" bind:tap="onCloseProtocol" /> + <t-icon + t-class="close-btn" + name="close-circle" + size="32" + color="#fff" + bind:tap="onCloseProtocol" + /> </view> </t-popup> </view> <!-- <view class="loading" wx:if="{{pageLoading}}"> <t-loading loading="{{pageLoading}}" size="40"></t-loading> -</view> --> \ No newline at end of file +</view> --> diff --git a/packageDomain/pages/publickBookForm/index.js b/packageDomain/pages/publickBookForm/index.js index 97b0ed1..a2e562e 100644 --- a/packageDomain/pages/publickBookForm/index.js +++ b/packageDomain/pages/publickBookForm/index.js @@ -35,7 +35,8 @@ }, phoneError: false, emailError: false, - loading: false + loading: false, + isKeyboard: false }, /** @@ -78,6 +79,22 @@ onUnload() { }, + + scroll() { + // 鐩戝惉瑙嗗浘婊氬姩锛屾墜鍔ㄦ敹璧烽敭鐩� + if (this.data.isKeyboard) { + console.log(1); + wx.hideKeyboard() + } + }, + // 鐩戝惉閿洏寮硅捣鍜屾敹璧� + bindkeyboardheightchange(e) { + // 閿洏楂樺害 + const height = e.detail.height; + this.setData({ + isKeyboard: height ? true : false + }) + }, //鑾峰彇瀛楁 getType() { app.MG.resource.getCmsTypeByRefCode({ diff --git a/packageDomain/pages/publickBookForm/index.wxml b/packageDomain/pages/publickBookForm/index.wxml index a24bfe5..1dd6d69 100644 --- a/packageDomain/pages/publickBookForm/index.wxml +++ b/packageDomain/pages/publickBookForm/index.wxml @@ -1,103 +1,218 @@ -<view class="container" style="height:calc(100vh + {{keyboardHeight ? (keyboardHeight + 'px'):'0'}});padding-bottom:calc(180rpx + {{keyboardHeight ? 120 + 'px':0}}) "> - <scroll-view class="scroll content" scroll-y> - <view class="tips"> 璇氭寶鐨勬杩庢偍鎶曠鍑轰功锛屽苟閮戦噸鎵胯锛氭垜浠皢璁ょ湡瀹¢槄鎵�鏈夌殑鏉ョ锛屼互浠や汉淇℃湇鐨勬晥鐜囥�佽川閲忓拰绋块叕鎷╀紭鍑虹増锛� </view> +<view class="container"> + <scroll-view class="scroll content" scroll-y="{{true}}" bindscroll="scroll"> + <view class="tips"> + 璇氭寶鐨勬杩庢偍鎶曠鍑轰功锛屽苟閮戦噸鎵胯锛氭垜浠皢璁ょ湡瀹¢槄鎵�鏈夌殑鏉ョ锛屼互浠や汉淇℃湇鐨勬晥鐜囥�佽川閲忓拰绋块叕鎷╀紭鍑虹増锛� + </view> <view class="page-body"> - <view class=" baseInfoBox"> + <view class="baseInfoBox"> <view class="from-item"> <view class="label"> <text class="icon">*</text>閫夐鍚嶇О: </view> <view class="item-content"> - <t-textarea placeholder="涓涗功瑕佸垪鍑烘�诲悕绉板拰鍚勬湰涔︾殑鍚嶇О" value="{{teacherInfo.topicName}}" disableDefaultPadding="{{true}}" autosize="{{autosize}}" bindchange="onTopicNameInput" /> + <t-textarea + placeholder="涓涗功瑕佸垪鍑烘�诲悕绉板拰鍚勬湰涔︾殑鍚嶇О" + value="{{teacherInfo.topicName}}" + disableDefaultPadding="{{true}}" + autosize="{{autosize}}" + bindchange="onTopicNameInput" + bindkeyboardheightchange="bindkeyboardheightchange" + /> </view> </view> <view class="from-item"> <view class="label"> <text class="icon">*</text>鐢虫姤浜�: </view> <view class="item-content"> - <t-input placeholder="璇疯緭鍏ョ敵鎶ヤ汉濮撳悕" borderless value="{{teacherInfo.declarer}}" bindchange="onDeclarerInput" /> + <t-input + placeholder="璇疯緭鍏ョ敵鎶ヤ汉濮撳悕" + borderless + value="{{teacherInfo.declarer}}" + bindchange="onDeclarerInput" + bindkeyboardheightchange="bindkeyboardheightchange" + /> </view> </view> <view class="from-item"> <view class="label"> <text class="icon">*</text>鐢虫姤鍗曚綅: </view> <view class="item-content"> - <t-input placeholder="璇疯緭鍏ョ敵鎶ュ崟浣�" borderless value="{{teacherInfo.declarationUnit}}" bindchange="ondeclarationUnitInput" /> + <t-input + placeholder="璇疯緭鍏ョ敵鎶ュ崟浣�" + borderless + value="{{teacherInfo.declarationUnit}}" + bindchange="ondeclarationUnitInput" + bindkeyboardheightchange="bindkeyboardheightchange" + /> </view> </view> <view class="from-item"> <view class="label"> <text class="icon">*</text>瀛︾涓撲笟锛� </view> <view class="item-content"> - <t-input placeholder="璇疯緭鍏ュ绉戜笓涓�" borderless value="{{teacherInfo.disciplineMajor}}" bindchange="onDisciplineMajorInput" /> + <t-input + placeholder="璇疯緭鍏ュ绉戜笓涓�" + borderless + value="{{teacherInfo.disciplineMajor}}" + bindchange="onDisciplineMajorInput" + bindkeyboardheightchange="bindkeyboardheightchange" + /> </view> </view> <view class="from-item"> <view class="label"> <text class="icon">*</text>浣滆�呭熀鏈儏鍐�: </view> <view class="item-content"> - <t-textarea placeholder="濮撳悕銆佽亴鍔°�佺爺绌堕鍩熴�佹�濇兂鍊惧悜銆佸笀寰峰笀椋庛�佸鏈按骞炽�佺爺绌舵垚鏋滅瓑" value="{{teacherInfo.authorBasicInformation}}" disableDefaultPadding="{{true}}" autosize="{{autosize}}" bindchange="onAuthorBasicInfoInput" /> + <t-textarea + placeholder="濮撳悕銆佽亴鍔°�佺爺绌堕鍩熴�佹�濇兂鍊惧悜銆佸笀寰峰笀椋庛�佸鏈按骞炽�佺爺绌舵垚鏋滅瓑" + value="{{teacherInfo.authorBasicInformation}}" + disableDefaultPadding="{{true}}" + autosize="{{autosize}}" + bindchange="onAuthorBasicInfoInput" + bindkeyboardheightchange="bindkeyboardheightchange" + /> </view> </view> <view class="from-item"> <view class="label"> <text class="icon">*</text>鎵嬫満鍙凤細 </view> <view class="item-content"> - <t-input placeholder="杈撳叆鎵嬫満鍙风爜" borderless value="{{teacherInfo.phone}}" type="number" tips="{{phoneError ? '鎵嬫満鍙疯緭鍏ヤ笉姝g‘' : ''}}" bindchange="onPhoneInput" /> + <t-input + placeholder="杈撳叆鎵嬫満鍙风爜" + borderless + value="{{teacherInfo.phone}}" + type="number" + tips="{{phoneError ? '鎵嬫満鍙疯緭鍏ヤ笉姝g‘' : ''}}" + bindchange="onPhoneInput" + bindkeyboardheightchange="bindkeyboardheightchange" + /> </view> </view> <view class="from-item"> <view class="label"> <text class="icon">*</text>閭锛� </view> <view class="item-content"> - <t-input placeholder="杈撳叆閭" borderless value="{{teacherInfo.email}}" tips="{{emailError ? '閭杈撳叆涓嶆纭�' : ''}}" bindchange="onEmailInput" /> + <t-input + placeholder="杈撳叆閭" + borderless + value="{{teacherInfo.email}}" + tips="{{emailError ? '閭杈撳叆涓嶆纭�' : ''}}" + bindchange="onEmailInput" + bindkeyboardheightchange="bindkeyboardheightchange" + /> </view> </view> <view class="from-item"> <view class="label"> <text class="icon">*</text>璇昏�呭璞★細 </view> <view class="item-content"> - <t-input placeholder="瀹氫綅銆佽寖鍥淬�佹暟閲忕瓑" borderless value="{{teacherInfo.targetReaders}}" bindchange="onTargetReadersInput" /> + <t-input + placeholder="瀹氫綅銆佽寖鍥淬�佹暟閲忕瓑" + borderless + value="{{teacherInfo.targetReaders}}" + bindchange="onTargetReadersInput" + bindkeyboardheightchange="bindkeyboardheightchange" + /> </view> </view> <view class="from-item"> <view class="label"> <text class="icon">*</text>閫夐鐗硅壊锛� </view> <view class="item-content"> - <t-textarea placeholder="閫夐鑳屾櫙銆佷富瑕佸唴瀹广�佸嚭鐗堜环鍊肩瓑" value="{{teacherInfo.topicFeatures}}" disableDefaultPadding="{{true}}" autosize="{{autosize}}" bindchange="onTopicFeaturesInput" /> + <t-textarea + placeholder="閫夐鑳屾櫙銆佷富瑕佸唴瀹广�佸嚭鐗堜环鍊肩瓑" + value="{{teacherInfo.topicFeatures}}" + disableDefaultPadding="{{true}}" + autosize="{{autosize}}" + bindchange="onTopicFeaturesInput" + bindkeyboardheightchange="bindkeyboardheightchange" + /> </view> </view> <view class="from-item"> - <view class="label"> <text class="empty"></text>閫夐瀛︽湳褰卞搷涓庨鏈熺ぞ浼氭晥鐩婏細 </view> + <view class="label"> + <text class="empty"></text>閫夐瀛︽湳褰卞搷涓庨鏈熺ぞ浼氭晥鐩婏細 + </view> <view class="item-content"> - <t-textarea placeholder="閫夐瀛︽湳褰卞搷涓庨鏈熺ぞ浼氭晥鐩�" value="{{teacherInfo.topicImpactAndExpected}}" disableDefaultPadding="{{true}}" autosize="{{autosize}}" bindchange="onTopicImpactAndExpectedInput" /> + <t-textarea + placeholder="閫夐瀛︽湳褰卞搷涓庨鏈熺ぞ浼氭晥鐩�" + value="{{teacherInfo.topicImpactAndExpected}}" + disableDefaultPadding="{{true}}" + autosize="{{autosize}}" + bindchange="onTopicImpactAndExpectedInput" + bindkeyboardheightchange="bindkeyboardheightchange" + /> </view> </view> <view class="from-item"> - <view class="label"> <text class="empty"></text>閫夐鐨勮繘搴﹀畨鎺掞細 </view> + <view class="label"> + <text class="empty"></text>閫夐鐨勮繘搴﹀畨鎺掞細 + </view> <view class="item-content"> - <t-textarea placeholder="棰勮鏉ョ鏃堕棿銆佸嚭鐗堟椂闂寸瓑" value="{{teacherInfo.topicProgress}}" disableDefaultPadding="{{true}}" autosize="{{autosize}}" bindchange="onTopicProgressInput" /> + <t-textarea + placeholder="棰勮鏉ョ鏃堕棿銆佸嚭鐗堟椂闂寸瓑" + value="{{teacherInfo.topicProgress}}" + disableDefaultPadding="{{true}}" + autosize="{{autosize}}" + bindchange="onTopicProgressInput" + bindkeyboardheightchange="bindkeyboardheightchange" + /> </view> </view> <view class="from-item"> <view class="label"> <text class="empty"></text>甯傚満鍒嗘瀽: </view> <view class="item-content"> - <t-textarea placeholder="甯傚満闇�姹傘�佷笌鍚岀被涔︾殑宸紓鍜屼紭鍔裤�佸畾浠锋爣鍑嗐�侀璁¢攢閲忋�佺泩浜忓垎鏋愮瓑锛屾槸鍚︽湁鍑虹増璧勫姪璐�" value="{{teacherInfo.marketAnalysis}}" disableDefaultPadding="{{true}}" autosize="{{autosize}}" bindchange="onMarketAnalysisInput" /> + <t-textarea + placeholder="甯傚満闇�姹傘�佷笌鍚岀被涔︾殑宸紓鍜屼紭鍔裤�佸畾浠锋爣鍑嗐�侀璁¢攢閲忋�佺泩浜忓垎鏋愮瓑锛屾槸鍚︽湁鍑虹増璧勫姪璐�" + value="{{teacherInfo.marketAnalysis}}" + disableDefaultPadding="{{true}}" + autosize="{{autosize}}" + bindchange="onMarketAnalysisInput" + bindkeyboardheightchange="bindkeyboardheightchange" + /> </view> </view> <view class="from-item"> - <view class="label"> <text class="empty"></text>钀ラ攢涓庡浼犳帹骞胯鍒�: </view> + <view class="label"> + <text class="empty"></text>钀ラ攢涓庡浼犳帹骞胯鍒�: + </view> <view class="item-content"> - <t-textarea placeholder="甯傚満闇�姹傘�佷笌鍚岀被涔︾殑宸紓鍜屼紭鍔裤�佸畾浠锋爣鍑嗐�侀璁¢攢閲忋�佺泩浜忓垎鏋愮瓑锛屾槸鍚︽湁鍑虹増璧勫姪璐�" value="{{teacherInfo.marketingAndPromotionPlan}}" disableDefaultPadding="{{true}}" autosize="{{autosize}}" bindchange="onMarketingAndPromotionPlanInput" /> + <t-textarea + placeholder="甯傚満闇�姹傘�佷笌鍚岀被涔︾殑宸紓鍜屼紭鍔裤�佸畾浠锋爣鍑嗐�侀璁¢攢閲忋�佺泩浜忓垎鏋愮瓑锛屾槸鍚︽湁鍑虹増璧勫姪璐�" + value="{{teacherInfo.marketingAndPromotionPlan}}" + disableDefaultPadding="{{true}}" + autosize="{{autosize}}" + bindchange="onMarketingAndPromotionPlanInput" + bindkeyboardheightchange="bindkeyboardheightchange" + /> </view> </view> <view class="from-item"> - <view class="label"> <text class="empty"></text>閰嶅鏁板瓧璧勬簮寮�鍙戞柟妗�: </view> + <view class="label"> + <text class="empty"></text>閰嶅鏁板瓧璧勬簮寮�鍙戞柟妗�: + </view> <view class="item-content"> - <t-textarea placeholder="閰嶅鏁板瓧璧勬簮鍚嶇О銆佺被鍨嬨�佸唴瀹广�佺粡璐归绠椼�佹晥鐩婂垎鏋愮瓑" value="{{teacherInfo.digitalResourceDevelopmentPlan}}" disableDefaultPadding="{{true}}" autosize="{{autosize}}" bindchange="ondigitalResourceInput" /> + <t-textarea + placeholder="閰嶅鏁板瓧璧勬簮鍚嶇О銆佺被鍨嬨�佸唴瀹广�佺粡璐归绠椼�佹晥鐩婂垎鏋愮瓑" + value="{{teacherInfo.digitalResourceDevelopmentPlan}}" + disableDefaultPadding="{{true}}" + autosize="{{autosize}}" + bindchange="ondigitalResourceInput" + bindkeyboardheightchange="bindkeyboardheightchange" + /> </view> </view> <view class="from-item"> - <view class="label"> <text class="empty"></text>瀛樺湪鐨勫叾浠栭棶棰�: </view> + <view class="label"> + <text class="empty"></text>瀛樺湪鐨勫叾浠栭棶棰�: + </view> <view class="item-content"> - <t-textarea placeholder="璇疯緭鍏ュ叾浠栭棶棰�" value="{{teacherInfo.otherExistingIssues}}" disableDefaultPadding="{{true}}" autosize="{{autosize}}" bindchange="onOtherExistingIssuesInput" /> + <t-textarea + placeholder="璇疯緭鍏ュ叾浠栭棶棰�" + value="{{teacherInfo.otherExistingIssues}}" + disableDefaultPadding="{{true}}" + autosize="{{autosize}}" + bindchange="onOtherExistingIssuesInput" + bindkeyboardheightchange="bindkeyboardheightchange" + /> </view> </view> <view class="btn-area"> - <button class="submit" bindtap="submit" loading="{{loading}}">鎻愪氦</button> + <button class="submit" bindtap="submit" loading="{{loading}}"> + 鎻愪氦 + </button> </view> </view> - </view> </scroll-view> -</view> \ No newline at end of file +</view> diff --git a/packageDomain/pages/publickBookForm/index.wxss b/packageDomain/pages/publickBookForm/index.wxss index 801fe24..1a7a447 100644 --- a/packageDomain/pages/publickBookForm/index.wxss +++ b/packageDomain/pages/publickBookForm/index.wxss @@ -5,7 +5,7 @@ .container { width: 100vw; - height: 100vh; + height: 100%; } .content { diff --git a/packageDomain/pages/resourceDetails/myAudio/index.js b/packageDomain/pages/resourceDetails/myAudio/index.js index af8f609..06c0fb7 100644 --- a/packageDomain/pages/resourceDetails/myAudio/index.js +++ b/packageDomain/pages/resourceDetails/myAudio/index.js @@ -45,7 +45,6 @@ myAudioDuration: '00:00', // 瑙嗛鏃堕棿 myAudioCurrent: '00:00', // 褰撳墠鎾斁杩涘害 isplay: false, //鏄惁榛樿鎾斁, - selectId: '', speed: 1.0, myAudioPos: '', startTime: "", //杩涘叆椤甸潰褰撳墠鏃堕棿 @@ -145,14 +144,17 @@ * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰闅愯棌 */ onHide() { + // this.setData({ + // pauseTime: Date.now() + // }) + // if (wx.getStorageSync(app.config.tokenKey)) { + // let duration = this.data.pauseTime - this.data.startTime + // this.count(duration) + // } + // this.setPlayerList() this.setData({ - pauseTime: Date.now() + isplay: true }) - if (wx.getStorageSync(app.config.tokenKey)) { - let duration = this.data.pauseTime - this.data.startTime - this.count(duration) - } - this.setPlayerList() }, /** @@ -162,29 +164,24 @@ * */ onUnload() { - // this.setData({ - // pauseTime: Date.now() - // }) - // if (wx.getStorageSync(app.config.tokenKey)) { - // let duration = this.data.pauseTime - this.data.startTime - // this.count(duration) - // } - - - // myAudio.src = '' - // myAudio.destroy() this.setData({ // myAudioPos: '', isplay: false, //鏄惁榛樿鎾斁, myAudioCurrent: '00:00', // 褰撳墠鎾斁杩涘害 showData: '', speed: 1.0, + pauseTime: Date.now() }); myAudio.playbackRate = this.data.speed; // 鍋滄闊抽鎾斁 myAudio.stop(); // 閿�姣� InnerAudioContext 瀹炰緥 // myAudio.destroy(); + // 缁熻瀛︿範鏃堕暱 + if (wx.getStorageSync(app.config.tokenKey)) { + let duration = this.data.pauseTime - this.data.startTime + this.count(duration) + } this.setPlayerList() }, count(timeStr) { @@ -203,6 +200,7 @@ if (this.data.cmsId) { data.cmsItemId = this.data.cmsId } + console.log('缁熻', data) app.MG.job.newJobWithApiNewEvent(data).then((res) => {}) }, /** @@ -348,11 +346,9 @@ if (this.data.showData != '') { this.setData({ titleName: item.name, - selectId: item.id, selectedId: e.currentTarget.dataset.index, showData: '', activeId: item.id - }) if (item.selectType == "audio" || item.learnSelectType === "audio") { if (this.data.formPath == 'jsek_cloudLearning') { @@ -645,9 +641,6 @@ myAudioCurrent: '00:00', myAudioPos: '', }) - - - }); //杩涘害鏉″彉鍖� @@ -680,57 +673,6 @@ }); }, - //鍙冲垏鎹� - onLeftSwitch() { - this.setData({ - speed: 1.0, - myAudioCurrent: '00:00' - }) - const index = this.data.threeLeveData.findIndex((item) => item.id == this.data.selectId) - if (this.data.threeLeveData[index - 1]) { - this.changeItem(this.data.threeLeveData[index - 1]) - this.setData({ - selectedId: index - 1, - }) - } else { - console.log('宸茬粡鏄涓�棣栦簡'); - } - }, - //鍙冲垏鎹� - onRightSwitch() { - this.setData({ - speed: 1.0, - myAudioCurrent: '00:00' - }) - const index = this.data.threeLeveData.findIndex((item) => item.id == this.data.selectId) - if (this.data.threeLeveData[index + 1]) { - this.changeItem(this.data.threeLeveData[index + 1]) - this.setData({ - selectedId: index + 1, - }) - } else { - console.log('宸茬粡鏄渶鍚庝竴棣栦簡'); - } - }, - - // 宸﹀彸鍒囨崲 - changeItem(item) { - if (this.data.showData != '') { - this.setData({ - showData: '' - }) - } - this.setData({ - titleName: item.name, - selectId: item.id - }) - if (item.selectType == "audio") { - this.setData({ - showData: app.config.requestCtx + '/file/api/ApiDownload?md5=' + item.file - }) - this.pubulicPlayFun() - } - }, // 鎾斁鍊嶉�� onSpeed() { let c = this.data.speed; @@ -827,12 +769,12 @@ setPlayerList() { let that = this if (that.data.progress > 0) { - let index = that.data.playerList.findIndex((itemData) => itemData.cmsItemId == that.data.selectId) + let index = that.data.playerList.findIndex((itemData) => itemData.cmsItemId == that.data.activeId) if (index > -1) { that.data.playerList.splice(index, 1) } that.data.playerList.push({ - cmsItemId: that.data.selectId, + cmsItemId: that.data.activeId, progress: that.data.progress }) app.MG.identity diff --git a/packageDomain/pages/resourceDetails/myAudio/index.wxml b/packageDomain/pages/resourceDetails/myAudio/index.wxml index 8d11b4c..2ed2084 100644 --- a/packageDomain/pages/resourceDetails/myAudio/index.wxml +++ b/packageDomain/pages/resourceDetails/myAudio/index.wxml @@ -22,10 +22,7 @@ <!-- 瑙嗛鎾斁鐨勬寜閽� --> <view class="bigFunctionBox"> <view class="functionBox"> - <!-- 宸﹀垏鎹� --> - <!-- <view class="leftSwitchBox color" bind:tap="onLeftSwitch"> - <t-icon name="previous" size="24" /> - </view> --> + <!-- 鏆傚仠鎾斁 --> <view class="audioIconBox color" style="margin-left: 30rpx; margin-right: 10rpx"> @@ -39,10 +36,7 @@ </view> </view> <slider style="width: 300rpx" activeColor="#FF6C00" class="mp-slider-bar" block-size="16" value="{{myAudioPos}}" bindchange="hanle_slider_change"></slider> - <!-- 鍙冲垏鎹� --> - <!-- <view class="rightSwitchBox color" bind:tap="onRightSwitch"> - <t-icon name="next" size="24" /> - </view> --> + <!-- 鏃堕棿 --> <view class="timeBox"> diff --git a/packageDomain/pages/sampleBookList/applicationForm/index.js b/packageDomain/pages/sampleBookList/applicationForm/index.js index 451f903..d298ac9 100644 --- a/packageDomain/pages/sampleBookList/applicationForm/index.js +++ b/packageDomain/pages/sampleBookList/applicationForm/index.js @@ -410,14 +410,14 @@ // 鐩戝惉椤甸潰杞敭鐩樺脊璧锋墜鍔ㄦ帹鍔ㄩ〉闈� scrollToInput(keyboardHeight, scrollTop) { this.setData({ - keyboardHeight, + keyboardHeight: keyboardHeight ? keyboardHeight + 300 : 0, }); if (scrollTop) { try { this.getScrollOffset().then((lastScrollTop) => { wx.pageScrollTo({ // 濡傛灉宸茬粡瀛樺湪婊氬姩锛屽湪姝ゅ熀纭�涓婄户缁粴 - scrollTop: lastScrollTop ? lastScrollTop + scrollTop : scrollTop, + scrollTop: lastScrollTop ? lastScrollTop + scrollTop + 100 : scrollTop + 200, duration: 300, }); }); diff --git a/packageDomain/pages/sampleBookList/applicationForm/index.wxml b/packageDomain/pages/sampleBookList/applicationForm/index.wxml index acd5bf8..1e56e52 100644 --- a/packageDomain/pages/sampleBookList/applicationForm/index.wxml +++ b/packageDomain/pages/sampleBookList/applicationForm/index.wxml @@ -1,80 +1,137 @@ -<view class="container" style="height:calc(100vh + {{keyboardHeight ? (keyboardHeight + 'px'):'0'}});padding-bottom:calc(180rpx+ {{keyboardHeight ? 120 + 'px':0}})"> - <t-tabs t-class="t-tabs" defaultValue="{{active}}" split="{{false}}" bind:change="tabClick" show-bottom-line="false"> +<view class="tab"> + <t-tabs + t-class="t-tabs" + defaultValue="{{active}}" + split="{{false}}" + bind:change="tabClick" + show-bottom-line="false" + > <t-tab-panel label="绾歌川鏍蜂功" value="0" /> <t-tab-panel label="鐢靛瓙鏍蜂功" value="1" /> </t-tabs> - <view class="page-content"> - <view class="con-bg"></view> - <scroll-view class="scroll content" scroll-y> - <view class="bookListBox"> - <view class="tips"> - <rich-text space="emsp" nodes="{{description}}" class="content" /> - </view> - <view class="bookList"> - <view wx:if="{{bookList.length > 0}}"> - <view wx:for="{{bookList}}" wx:for-item="item" wx:for-index="index" wx:key="index" class="textbooksItemBox"> - <t-swipe-cell> - <t-cell title="宸︽粦鍗曟搷浣�" note="杈呭姪淇℃伅" bordered="{{false}}"> - <view class="listItem flex"> - <view class="specialSubject-img"> - <image src="{{item.icon}}" mode="aspectFill" class="img" wx:if="{{item.icon}}" /> - <image src="/static/images/default-book-img.png" mode="aspectFill" class="img" wx:else="" /> - </view> - <view class="body-info"> - <view class="name">{{item.title}}</view> - <view class="author">浣滆�咃細{{item.author}}</view> - <view class="author">ISBN:{{item.isbn}}</view> - <view class="author" wx:if="{{item.publicationDate}}">鍑虹増鏃堕棿:{{item.publicationDate}}</view> - </view> - </view> - </t-cell> - <view slot="right" class="btn delete-btn" bind:tap="onDelete" data-book="{{item}}">鍒犻櫎</view> - </t-swipe-cell> - </view> - </view> - <view wx:if="{{bookList.length == 0}}" class="empyt"> - <!-- <t-empty icon="folder-open" description="鏆傛棤鏁版嵁" /> --> - <empty /> - </view> - </view> - </view> - <view class="formBox"> - <view class="title"> 鎺堣鎯呭喌 </view> - <view class="teachingInfo"> - <view class="item"> - <text class="label">瀛︽牎锛�</text> - <text>{{teacherInfo.schoolName}}</text> - </view> - <view class="item"> - <text class="label">浠绘暀璇剧▼锛�</text> - <text>{{teacherInfo.courseName}}</text> - </view> - </view> - <view class="title" wx:if="{{active =='0'}}"> 鏀惰揣浜烘儏鍐� </view> - <view class="receiverInfo" wx:if="{{active == '0'}}"> - <view class="item form-input-1"> - <text class="label"><text class="icon">*</text>濮撳悕锛�</text> - <view class="item-content"> - <t-input placeholder="璇疯緭鍏ョ湡瀹炲鍚�" borderless value="{{contactInfo.user}}" bindchange="onFullNameInput" adjust-position="{{isIos?false:true}}" bindkeyboardheightchange="bindkeyboardheightchange" bindblur="changeParam" data-class="form-input-1" /> - </view> - </view> - <view class="item form-input-2"> - <text class="label"><text class="icon">*</text>鑱旂郴鐢佃瘽锛�</text> - <view class="item-content"> - <t-input placeholder="杈撳叆鑱旂郴鐢佃瘽" borderless value="{{contactInfo.phone}}" type="number" tips="{{phoneError ? '鎵嬫満鍙疯緭鍏ヤ笉姝g‘' : ''}}" bindchange="onPhoneInput" adjust-position="{{isIos?false:true}}" bindkeyboardheightchange="bindkeyboardheightchange" bindblur="changeParam" data-class="form-input-2" /> - </view> - </view> - <view class="item form-input-3"> - <text class="label"><text class="icon">*</text>璇︾粏鍦板潃锛�</text> - <view class="item-content"> - <t-input placeholder="璇疯緭鍏ヨ缁嗗湴鍧�" borderless value="{{contactInfo.address}}" bindchange="onAddressInput" adjust-position="{{isIos?false:true}}" bindkeyboardheightchange="bindkeyboardheightchange" bindblur="changeParam" data-class="form-input-3" /> - </view> - </view> - </view> - </view> - <view class="btn-area"> - <button class="submit" bindtap="submit">鎻愪氦</button> - </view> - </scroll-view> +</view> +<view class="bookListBox"> + <view class="tips"> + <rich-text space="emsp" nodes="{{description}}" class="content" /> </view> -</view> \ No newline at end of file + <view class="bookList"> + <view wx:if="{{bookList.length > 0}}"> + <view + wx:for="{{bookList}}" + wx:for-item="item" + wx:for-index="index" + wx:key="index" + class="textbooksItemBox" + > + <t-swipe-cell> + <t-cell title="宸︽粦鍗曟搷浣�" note="杈呭姪淇℃伅" bordered="{{false}}"> + <view class="listItem flex"> + <view class="specialSubject-img"> + <image + src="{{item.icon}}" + mode="aspectFill" + class="img" + wx:if="{{item.icon}}" + /> + <image + src="/static/images/default-book-img.png" + mode="aspectFill" + class="img" + wx:else="" + /> + </view> + <view class="body-info"> + <view class="name">{{item.title}}</view> + <view class="author">浣滆�咃細{{item.author}}</view> + <view class="author">ISBN:{{item.isbn}}</view> + <view class="author" wx:if="{{item.publicationDate}}" + >鍑虹増鏃堕棿:{{item.publicationDate}}</view + > + </view> + </view> + </t-cell> + <view + slot="right" + class="btn delete-btn" + bind:tap="onDelete" + data-book="{{item}}" + >鍒犻櫎</view + > + </t-swipe-cell> + </view> + </view> + <view wx:if="{{bookList.length == 0}}" class="empyt"> + <!-- <t-empty icon="folder-open" description="鏆傛棤鏁版嵁" /> --> + <empty /> + </view> + </view> +</view> +<view class="formBox"> + <view class="title"> 鎺堣鎯呭喌 </view> + <view class="teachingInfo"> + <view class="item"> + <text class="label">瀛︽牎锛�</text> + <text>{{teacherInfo.schoolName}}</text> + </view> + <view class="item"> + <text class="label">浠绘暀璇剧▼锛�</text> + <text>{{teacherInfo.courseName}}</text> + </view> + </view> + <view class="title" wx:if="{{active =='0'}}"> 鏀惰揣浜烘儏鍐� </view> + <view class="receiverInfo" wx:if="{{active == '0'}}"> + <view class="item form-input-1"> + <text class="label"><text class="icon">*</text>濮撳悕锛�</text> + <view class="item-content"> + <t-input + placeholder="璇疯緭鍏ョ湡瀹炲鍚�" + borderless + value="{{contactInfo.user}}" + bindchange="onFullNameInput" + adjust-position="{{false}}" + bindkeyboardheightchange="bindkeyboardheightchange" + bindblur="changeParam" + data-class="form-input-1" + /> + </view> + </view> + <view class="item form-input-2"> + <text class="label"><text class="icon">*</text>鑱旂郴鐢佃瘽锛�</text> + <view class="item-content"> + <t-input + placeholder="杈撳叆鑱旂郴鐢佃瘽" + borderless + value="{{contactInfo.phone}}" + type="number" + tips="{{phoneError ? '鎵嬫満鍙疯緭鍏ヤ笉姝g‘' : ''}}" + bindchange="onPhoneInput" + adjust-position="{{false}}" + bindkeyboardheightchange="bindkeyboardheightchange" + bindblur="changeParam" + data-class="form-input-2" + /> + </view> + </view> + <view class="item form-input-3"> + <text class="label"><text class="icon">*</text>璇︾粏鍦板潃锛�</text> + <view class="item-content"> + <t-input + placeholder="璇疯緭鍏ヨ缁嗗湴鍧�" + borderless + value="{{contactInfo.address}}" + bindchange="onAddressInput" + adjust-position="{{false}}" + bindkeyboardheightchange="bindkeyboardheightchange" + bindblur="changeParam" + data-class="form-input-3" + /> + </view> + </view> + </view> +</view> +<view + class="btn-area" + style="padding-bottom: {{keyboardHeight ? keyboardHeight + 'rpx' : '60rpx'}}" +> + <button class="submit" bindtap="submit">鎻愪氦</button> +</view> diff --git a/packageDomain/pages/sampleBookList/applicationForm/index.wxss b/packageDomain/pages/sampleBookList/applicationForm/index.wxss index c58a4bb..cb79294 100644 --- a/packageDomain/pages/sampleBookList/applicationForm/index.wxss +++ b/packageDomain/pages/sampleBookList/applicationForm/index.wxss @@ -1,10 +1,12 @@ page { - background-color: #f0f2f5 !important; + overflow-y: auto !important; + position: relative; + background-color: #F2F3F8 !important; } .container { width: 100%; - height: 100vh; + height: 100%; } @@ -28,13 +30,18 @@ } -.t-tabs { +.tab { + width: 100%; + position: fixed !important; + top: 0; + left: 0; padding-top: 20rpx; + background-color: #F2F3F8 !important; +} + +.t-tabs { background: none !important; width: 100%; - position: fixed; - top: 0rpx; - left: 0; z-index: 1 } @@ -77,8 +84,7 @@ background: #fff; min-height: 200rpx; border-radius: 10rpx; - - padding: 60rpx 40rpx 40rpx 40rpx; + padding: 180rpx 40rpx 40rpx 40rpx; } .tips { diff --git a/packageDomain/pages/sampleBookList/index.js b/packageDomain/pages/sampleBookList/index.js index 07ef61a..86387b0 100644 --- a/packageDomain/pages/sampleBookList/index.js +++ b/packageDomain/pages/sampleBookList/index.js @@ -84,6 +84,7 @@ num: 0, x: 280, y: 300, + scrollTop: 0 }, /** @@ -205,6 +206,17 @@ } that.getBookList(false); }, + onHide() { + const query = wx.createSelectorQuery() + query.select('#scrollView').scrollOffset(res => { + console.log(1, res); + this.setData({ + scrollTop: res.scrollTop + }) + console.log('闅愯棌', this.data.scrollTop); + }).exec() + + }, goBack() { wx.navigateBack(); }, diff --git a/packageDomain/pages/sampleBookList/index.wxml b/packageDomain/pages/sampleBookList/index.wxml index 91f1fa4..ce36254 100644 --- a/packageDomain/pages/sampleBookList/index.wxml +++ b/packageDomain/pages/sampleBookList/index.wxml @@ -73,10 +73,12 @@ <!-- model:scroll-top="{{setScrollValue}}" --> <scroll-view class="scroll content" + id="scrollView" bind:scroll="onPageScroll" scroll-y + enable-passive="{{true}}" refresher-enabled="{{true}}" - lower-threshold="{{200}}" + lower-threshold="{{100}}" refresher-threshold="{{180}}" refresher-default-style="none" refresher-triggered="{{triggered}}" diff --git a/packageDomain/pages/sampleBookList/index.wxss b/packageDomain/pages/sampleBookList/index.wxss index 9d217bc..abcc3e7 100644 --- a/packageDomain/pages/sampleBookList/index.wxss +++ b/packageDomain/pages/sampleBookList/index.wxss @@ -300,9 +300,17 @@ margin-left: 10rpx; } +movable-area { + pointer-events: auto; +} + .movable-area { width: 100%; height: 100%; +} + +movable-view { + pointer-events: auto; } .movable-view { @@ -354,5 +362,4 @@ .t-search__input-box { height: 70rpx !important; -} - +} \ No newline at end of file diff --git a/pages/cart/index.js b/pages/cart/index.js index c873a64..7a91a6d 100644 --- a/pages/cart/index.js +++ b/pages/cart/index.js @@ -101,7 +101,7 @@ searchList: [] }; app.MG.store.getShoppingCartProductList(query).then(res => { - console.log(res); + console.log(res.datas); this.setData({ totalSize: res.totalSize }) @@ -119,8 +119,6 @@ item.type = type; // 灏唗ype璁剧疆涓篿tem瀵硅薄鐨勫睘鎬э紝鑰屼笉鏄娇鐢╯etData item.name = item.linkCmsItems[0].name ? item.productMonWithLinkDto.product.name + ':' + item.linkCmsItems[0].name : item.productMonWithLinkDto.product.name item.saleMethod.price = this.numFormat(item.saleMethod.price) - - // if (item.productMonWithLinkDto.links[0].storeRefCode == 'jsek_digitalTextbooks') { item.typeTxt = '鏁板瓧鏁欐潗' item.productType = "鏁板瓧鏁欐潗" @@ -131,7 +129,7 @@ item.typeTxt = '鐢靛瓙涔�' item.productType = "鍥句功鏈嶅姟-鐢靛瓙涔�" - if (item.saleMethod.type == 'createProductItemSaleMethod') { + if (item.saleMethod.type == 'createProductItemSaleMethod' || item.saleMethod.type == 'createProductFolderSaleMethod') { item.typeTxt = '浜戝涔�' item.productType = "鍥句功鏈嶅姟-浜戝涔�" } diff --git a/pages/cart/index.wxml b/pages/cart/index.wxml index 978a60f..e4a685f 100644 --- a/pages/cart/index.wxml +++ b/pages/cart/index.wxml @@ -4,7 +4,11 @@ <!-- loading hidden --> <view hidden="{{hidden}}"> - <scroll-view scroll-y="{{true}}" class="outsideContentBox" bindscrolltolower="onScrollToLower"> + <scroll-view + scroll-y="{{true}}" + class="outsideContentBox" + bindscrolltolower="onScrollToLower" + > <view> <!-- <checkbox-group bindchange="HandelItemChange"> --> <view wx:if="{{shoppingCartData.length <= 0}}" class="noDataBox"> @@ -12,7 +16,13 @@ <empty /> </view> <!-- <button bind:tap="onLogin"> 鍘荤櫥褰�</button> --> - <t-swipe-cell wx:for="{{shoppingCartData}}" wx:key="index" wx:for-item="item" wx:for-index="index" opened="{{swipeOpened}}"> + <t-swipe-cell + wx:for="{{shoppingCartData}}" + wx:key="index" + wx:for-item="item" + wx:for-index="index" + opened="{{swipeOpened}}" + > <view class="itemWarp"> <t-cell bordered="{{false}}"> <view slot="title" class="titleBox"> @@ -31,8 +41,9 @@ </view> <view slot="description" class="descriptionBox"> <view> - <view class="textBox" wx:if="{{item.type == 'product'}}">鍥句功鏈嶅姟-鐢靛瓙涔�</view> - <view class="textBox" wx:if="{{item.type == 'item'}}">鍥句功鏈嶅姟-浜戝涔�</view> + <!-- <view class="textBox" wx:if="{{item.type == 'product'}}">鍥句功鏈嶅姟-鐢靛瓙涔�</view> + <view class="textBox" wx:if="{{item.type == 'item'}}">鍥句功鏈嶅姟-浜戝涔�</view> --> + <view class="textBox"> {{item.productType}} </view> </view> <view wx:if="{{item.saleMethod.price != 0}}" class="price-box"> 锟{item.saleMethod.price }} @@ -41,19 +52,46 @@ </view> <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" /> + <t-checkbox + icon="rectangle" + value=" {{item.id}}" + data-item="{{item}}" + checked="{{item.checked}}" + bindchange="HandelItemChange" + /> </view> <view class="left-image" data-item="{{item}}" bind:tap="onBook"> - <image wx:if="{{item.imgUrl}}" src="{{item.imgUrl}}" class="imageStyle" mode="aspectFit" /> - <image wx:else src="/static/images/default-book-img.png" class="imageStyle" mode="aspectFit" /> + <image + wx:if="{{item.imgUrl}}" + src="{{item.imgUrl}}" + class="imageStyle" + mode="aspectFit" + /> + <image + wx:else + src="/static/images/default-book-img.png" + class="imageStyle" + mode="aspectFit" + /> </view> </view> </t-cell> </view> - <view slot="right" class="btn delete-btn" bind:tap="onDelete" data-item="{{item}}">鍒犻櫎</view> + <view + slot="right" + class="btn delete-btn" + bind:tap="onDelete" + data-item="{{item}}" + >鍒犻櫎</view + > </t-swipe-cell> <view wx:if="{{shoppingCartData.length > 0}}" class="bottom-box"> - <t-loading theme="circular" size="40rpx" class="wrapper" wx:if="{{isMore == true}}" /> + <t-loading + theme="circular" + size="40rpx" + class="wrapper" + wx:if="{{isMore == true}}" + /> <text wx:if="{{isMore == false}}">娌℃湁鏇村浜�</text> </view> </view> @@ -63,16 +101,25 @@ <view class="bottomBox"> <view class="checkGroupBox"> <checkbox-group bindchange="bottomChange"> - <checkbox disabled="{{onDisabled}}" value="鍏ㄩ��" checked="{{checkAll}}">鍏ㄩ��</checkbox> + <checkbox disabled="{{onDisabled}}" value="鍏ㄩ��" checked="{{checkAll}}" + >鍏ㄩ��</checkbox + > </checkbox-group> </view> <view class="settlementBox"> - <view class="totalPrice">鎬讳环:<text class="totalPriceText">锟{totalPrice}}</text></view> + <view class="totalPrice" + >鎬讳环:<text class="totalPriceText">锟{totalPrice}}</text></view + > <view class="buttonBox"> - <t-button class="tButtonBox" size="small" shape="round" bind:tap="goPaymentPage"> + <t-button + class="tButtonBox" + size="small" + shape="round" + bind:tap="goPaymentPage" + > <view>鍘荤粨绠�({{selectedCount}})</view> </t-button> </view> </view> </view> -</view> \ No newline at end of file +</view> diff --git a/pages/digitalCourses/digitalCoursesDetails/index.js b/pages/digitalCourses/digitalCoursesDetails/index.js index a795cee..21b05e9 100644 --- a/pages/digitalCourses/digitalCoursesDetails/index.js +++ b/pages/digitalCourses/digitalCoursesDetails/index.js @@ -174,9 +174,10 @@ this.digitalCoursesDetailsGet(options.id) this.getPlayerList() this.getType() - // this.setData({ - // userName: JSON.parse(wx.getStorageSync(app.config.userInfoKey)).name, - // }) + this.setData({ + userName: JSON.parse(wx.getStorageSync(app.config.userInfoKey)).name, + }) + console.log('1', options.id); }, /** @@ -190,6 +191,10 @@ * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鏄剧ず */ onShow() { + if (this.data.tabValue == 2) { + this.getPlayerList() + this.getResource() + } }, @@ -481,7 +486,6 @@ res.datas.cmsDatas[0].datas.forEach((item) => { if (item.type == 'questionBankFolder' || item.type == 'questionBankItem') { test.push(item) - } else if (item.type != "resourceItem") { this.data.playerList.forEach(pItem => { if (pItem.cmsItemId == item.id) { @@ -493,9 +497,7 @@ if (item.type == 'productItem') { learnItemList.push(item) } - }) - if (this.data.selectActive === 'learn') { let list = [] // 娴嬭瘯 6浣�// 姝e紡 5浣�// 娴嬭瘯璋冪敤浼�20锛屽唴閮�7 姝e紡璋冪敤浼�17 鍐呴儴浼�6 @@ -514,6 +516,7 @@ learnList: list, openTeachids: result, }); + console.log(1, this.data.learnList, this.data.playerList) } } else { const data = test.filter( @@ -878,6 +881,7 @@ }) .then((res) => { if (res) { + this.digitalCoursesDetailsGet(this.data.digitalsData.id); wx.showToast({ title: "棰嗗彇鎴愬姛", icon: "none", diff --git a/pages/digitalCourses/digitalCoursesDetails/index.wxss b/pages/digitalCourses/digitalCoursesDetails/index.wxss index 3f70b98..27193be 100644 --- a/pages/digitalCourses/digitalCoursesDetails/index.wxss +++ b/pages/digitalCourses/digitalCoursesDetails/index.wxss @@ -200,7 +200,7 @@ height: 68rpx; line-height: 68rpx; text-align: center; - + color: #ff6c00; flex: 1; } diff --git a/pages/digitalCourses/index.js b/pages/digitalCourses/index.js index e7d403b..a99fbbf 100644 --- a/pages/digitalCourses/index.js +++ b/pages/digitalCourses/index.js @@ -21,6 +21,7 @@ activeItem: null, loading: false, contentLoading: false, + noData:false, shoppingCartGetId: [], sorter: { value: "*", @@ -132,7 +133,7 @@ }, getCourseTypeListList() { this.setData({ - loading: true + loading: true, }) const data = { path: '*', @@ -230,6 +231,12 @@ } } app.MG.store.getProductList(obj).then((res) => { + if(!res.datas.length) { + return this.setData({ + noData:true, + contentLoading:false + }) + } res.datas.forEach(item => { item.price = item.price.toFixed(2) item.productLinkInfo = JSON.parse(item.productLinkInfo) diff --git a/pages/digitalCourses/index.wxml b/pages/digitalCourses/index.wxml index 15d4087..940cc90 100644 --- a/pages/digitalCourses/index.wxml +++ b/pages/digitalCourses/index.wxml @@ -5,20 +5,45 @@ <view class="nacigationBar" style="width: 70%; height: {{navBarHeight}}px;"> <view class="back-icon"> <!-- <t-icon name="chevron-left" size="30" data-name="{{item}}" bind:click="goBack" /> --> - <image src="/static/images/digitalTextbooks/chevron-left.png" bind:tap="goBack" mode="aspectFit" /> + <image + src="/static/images/digitalTextbooks/chevron-left.png" + bind:tap="goBack" + mode="aspectFit" + /> </view> - <t-search model:value="{{searchValue}}" shape="round" placeholder="璇疯緭鍏ヨ绋嬪悕绉�/ISBN/璇剧▼璐熻矗浜�" class="navBar-search" style="width: 464rpx" bind:submit="searchBook" /> + <t-search + model:value="{{searchValue}}" + shape="round" + placeholder="璇疯緭鍏ヨ绋嬪悕绉�/ISBN/璇剧▼璐熻矗浜�" + class="navBar-search" + style="width: 464rpx" + bind:submit="searchBook" + /> </view> <view class="heardTab"> <view class="tabBox"> - <t-tabs defaultValue="{{active}}" bind:change="onTabsChange" t-class="custom-tabs"> - <t-tab-panel wx:for="{{tabList}}" wx:key="index" wx:for-item="item" label="{{item.name}}" value="{{index}}"> + <t-tabs + defaultValue="{{active}}" + bind:change="onTabsChange" + t-class="custom-tabs" + > + <t-tab-panel + wx:for="{{tabList}}" + wx:key="index" + wx:for-item="item" + label="{{item.name}}" + value="{{index}}" + > </t-tab-panel> </t-tabs> </view> <view class="dropdown"> <t-dropdown-menu> - <t-dropdown-item options="{{sorter.options}}" default-value="{{sorter.value}}" bindchange="onSort" /> + <t-dropdown-item + options="{{sorter.options}}" + default-value="{{sorter.value}}" + bindchange="onSort" + /> </t-dropdown-menu> </view> </view> @@ -26,17 +51,39 @@ <view class="titleBox"> <view class="frameBox"></view> <view class="titleTextBox"> - <image src="/static/images/digitalCourses/zhuantitaolun@2x.png" mode="aspectFit" /> + <image + src="/static/images/digitalCourses/zhuantitaolun@2x.png" + mode="aspectFit" + /> </view> </view> - </view> - <t-skeleton theme="paragraph" animation="gradient" loading="{{contentLoading}}" class="content-loading" wx:if="{{contentLoading}}"></t-skeleton> - <scroll-view scroll-y="{{true}}" class="outsideContentBox" bindscrolltolower="onScrollToLower" wx:if="{{!contentLoading}}"> + <t-skeleton + theme="paragraph" + animation="gradient" + loading="{{contentLoading}}" + class="content-loading" + wx:if="{{contentLoading}}" + ></t-skeleton> + <scroll-view + scroll-y="{{true}}" + class="outsideContentBox" + bindscrolltolower="onScrollToLower" + wx:if="{{!contentLoading}}" + > <view class="ExternalInformationBox"> - <view class="informationBox" wx:for="{{courseList}}" wx:key="index" wx:for-item="item" data-item="{{item}}"> + <view + class="informationBox" + wx:for="{{courseList}}" + wx:key="index" + wx:for-item="item" + data-item="{{item}}" + > <view class="book-img" bind:tap="courseDetail" data-item="{{item}}"> - <image src="{{item.icon ? item.icon : 'https://jsek.bnuic.com/home/image/courseIcon.png'}}" mode="aspectFit" /> + <image + src="{{item.icon ? item.icon : 'https://jsek.bnuic.com/home/image/courseIcon.png'}}" + mode="aspectFit" + /> </view> <view class="book-Info"> <view class="book-name" bind:tap="courseDetail" data-item="{{item}}"> @@ -57,8 +104,8 @@ </view> </view> </view> - <view wx:if="{{courseList.length <= 0 && !contentLoading}}" class="noDataBox"> + <view wx:if="{{noData}}" class="noDataBox"> <t-empty icon="folder-open" description="鏆傛棤鏁版嵁" font-size="80" /> </view> </scroll-view> -</view> \ No newline at end of file +</view> diff --git a/pages/retrievalPage/index.wxml b/pages/retrievalPage/index.wxml index f05e3dc..60273d6 100644 --- a/pages/retrievalPage/index.wxml +++ b/pages/retrievalPage/index.wxml @@ -4,7 +4,12 @@ <view class="outsideRetrievalPageBox" hidden="{{hidden}}"> <view class="retrievalPageBox"> <view class="example-search"> - <t-search bind:submit="onSearchSubmit" class="searchBox" model:value="{{searchVal}}" placeholder="璇疯緭鍏ュ叧閿瘝/涔﹀悕/ISBN/浣滆��" /> + <t-search + bind:submit="onSearchSubmit" + class="searchBox" + model:value="{{searchVal}}" + placeholder="璇疯緭鍏ュ叧閿瘝/涔﹀悕/ISBN/浣滆��/椤圭洰璐熻矗浜�" + /> <view class="cancellation" bind:tap="onCancellation">鍙栨秷</view> </view> </view> @@ -12,9 +17,15 @@ <!-- Tab甯冨眬 --> <scroll-view scroll-x="{{true}}" class="scroll-x"> <view class="navBox"> - <view class="titleBox" wx:for="{{tabList}}" bindtap="tabsOn" data-idx="{{item.index}}"> + <view + class="titleBox" + wx:for="{{tabList}}" + bindtap="tabsOn" + data-idx="{{item.index}}" + > <view class="tabIndexBox"> - <text class="{{item.index == tabsId ? 'fontColorBox' : ''}}">{{item.title}} ({{item.bookTotal}}) + <text class="{{item.index == tabsId ? 'fontColorBox' : ''}}" + >{{item.title}} ({{item.bookTotal}}) </text> </view> <hr class="{{item.index == tabsId ? 'lineBox' : ''}}" /> @@ -22,22 +33,52 @@ </view> </scroll-view> <!-- 鍐呭甯冨眬 --> - <swiper class="swiperTtemBox" bindchange="slideOn" current="{{tabsId}}" circular> + <swiper + class="swiperTtemBox" + bindchange="slideOn" + current="{{tabsId}}" + circular + > <!-- circular 鍚敤寰幆婊戝姩 --> <swiper-item> - <scroll-view scroll-y="{{true}}" class="scrollViewBox" bindscrolltolower="onScrollToLower"> + <scroll-view + scroll-y="{{true}}" + class="scrollViewBox" + bindscrolltolower="onScrollToLower" + > <view class="bookDataBox"> - <view class="bookDataForBox" wx:for="{{bookData}}" wx:key="index" wx:for-item="item" wx:for-index="index" data-item="{{item}}" bind:tap="onBook"> + <view + class="bookDataForBox" + wx:for="{{bookData}}" + wx:key="index" + wx:for-item="item" + wx:for-index="index" + data-item="{{item}}" + bind:tap="onBook" + > <view class="imageBox"> - <image wx:if="{{item.icon}}" src="{{item.icon}}" mode="aspectFit" /> - <image wx:if="{{!item.icon}}" src="/static/images/default-book-img.png" mode="" /> + <image + wx:if="{{item.icon}}" + src="{{item.icon}}" + mode="aspectFit" + /> + <image + wx:if="{{!item.icon}}" + src="/static/images/default-book-img.png" + mode="" + /> </view> <view class="bookDataNmae"> {{item.name}} </view> <view class="bookDataAuthor">{{item.author}}</view> </view> </view> <view wx:if="{{bookData.length}}" class="bottom-box"> - <t-loading theme="circular" size="40rpx" class="wrapper" wx:if="{{isMore == true}}" /> + <t-loading + theme="circular" + size="40rpx" + class="wrapper" + wx:if="{{isMore == true}}" + /> <text wx:if="{{isMore == false}}">娌℃湁鏇村浜�</text> </view> <view wx:if="{{bookData.length <= 0}}" class="noDataBox"> @@ -47,11 +88,27 @@ </scroll-view> </swiper-item> <swiper-item> - <scroll-view scroll-y="{{true}}" class="scrollViewBox" bindscrolltolower="onScrollToLower"> + <scroll-view + scroll-y="{{true}}" + class="scrollViewBox" + bindscrolltolower="onScrollToLower" + > <view class="listBox1"> <view> - <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" data-item="{{item}}" bind:tap="underConstruction"> + <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" + data-item="{{item}}" + bind:tap="underConstruction" + > <view class="specialSubject-img-box"> <image src="{{item.icon}}" mode="aspectFill" /> </view> @@ -62,9 +119,17 @@ <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" /> + <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> @@ -72,7 +137,12 @@ </view> </view> <view wx:if="{{courseData.length != 0}}" class="bottom-box"> - <t-loading theme="circular" size="40rpx" class="wrapper" wx:if="{{isMore == true}}" /> + <t-loading + theme="circular" + size="40rpx" + class="wrapper" + wx:if="{{isMore == true}}" + /> <text wx:if="{{isMore == false}}">娌℃湁鏇村浜�</text> </view> <view wx:if="{{courseData.length <= 0}}" class="noDataBox"> @@ -82,9 +152,21 @@ </scroll-view> </swiper-item> <swiper-item> - <scroll-view scroll-y="{{true}}" class="scrollViewBox" bindscrolltolower="onScrollToLower"> + <scroll-view + scroll-y="{{true}}" + class="scrollViewBox" + bindscrolltolower="onScrollToLower" + > <view class="bookDataBox"> - <view class="bookDataForBox" wx:for="{{digitalTextbooksData}}" wx:key="index" wx:for-item="item" wx:for-index="index" data-item="{{item}}" bind:tap="underConstruction"> + <view + class="bookDataForBox" + wx:for="{{digitalTextbooksData}}" + wx:key="index" + wx:for-item="item" + wx:for-index="index" + data-item="{{item}}" + bind:tap="underConstruction" + > <view class="imageBox"> <image src="{{item.icon}}" mode="" /> </view> @@ -94,7 +176,12 @@ </view> <view wx:if="{{digitalTextbooksData.length != 0}}" class="bottom-box"> - <t-loading theme="circular" size="40rpx" class="wrapper" wx:if="{{isMore == true}}" /> + <t-loading + theme="circular" + size="40rpx" + class="wrapper" + wx:if="{{isMore == true}}" + /> <text wx:if="{{isMore == false}}">娌℃湁鏇村浜�</text> </view> <view wx:if="{{digitalTextbooksData.length <= 0}}" class="noDataBox"> @@ -104,29 +191,62 @@ </scroll-view> </swiper-item> <swiper-item> - <scroll-view scroll-y="{{true}}" class="scrollViewBox" bindscrolltolower="onScrollToLower"> + <scroll-view + scroll-y="{{true}}" + class="scrollViewBox" + bindscrolltolower="onScrollToLower" + > <view class="listBox"> - <view wx:for="{{seminarData}}" wx:for-item="item" wx:for-index="index" wx:key="index" class="listItemBox" data-item="{{item}}" bind:tap="underConstruction"> - <view class="listItem" bindtap="goSubjectDetail" data-book="{{item}}"> + <view + wx:for="{{seminarData}}" + wx:for-item="item" + wx:for-index="index" + wx:key="index" + class="listItemBox" + data-item="{{item}}" + bind:tap="underConstruction" + > + <view + class="listItem" + bindtap="goSubjectDetail" + data-book="{{item}}" + > <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}}">鐩存挱鏃堕棿锛歿{item.liveTime}}</view> - <view class="time" wx:if="{{item.startTime}}">寮�鎾椂闂达細{{ item.startTime }}</view> - <view class="time" wx:if="{{!item.liveTime && !item.startTime}}">寮�鎾椂闂达細<text class="grey">寰呭畾</text></view> + <view class="time" wx:if="{{item.liveTime}}" + >鐩存挱鏃堕棿锛歿{item.liveTime}}</view + > + <view class="time" wx:if="{{item.startTime}}" + >寮�鎾椂闂达細{{ item.startTime }}</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}} {{item.position}}</text> + <text class="author" + >{{item.lecturer}} {{item.position}}</text + > <text class="price" wx:if="{{item.price == 0}}">鍏嶈垂</text> - <text class="price" wx:if="{{item.price !== 0}}">锟{item.price}}</text> + <text class="price" wx:if="{{item.price !== 0}}" + >锟{item.price}}</text + > </view> </view> </view> </view> </view> <view wx:if="{{seminarData.length != 0}}" class="bottom-box"> - <t-loading theme="circular" size="40rpx" class="wrapper" wx:if="{{isMore == true}}" /> + <t-loading + theme="circular" + size="40rpx" + class="wrapper" + wx:if="{{isMore == true}}" + /> <text wx:if="{{isMore == false}}">娌℃湁鏇村浜�</text> </view> <view wx:if="{{seminarData.length <= 0}}" class="noDataBox"> @@ -136,15 +256,44 @@ </scroll-view> </swiper-item> <swiper-item> - <scroll-view scroll-y="{{true}}" class="scrollViewBox" bindscrolltolower="onScrollToLower"> + <scroll-view + scroll-y="{{true}}" + class="scrollViewBox" + bindscrolltolower="onScrollToLower" + > <view class="outsideHigherBox"> - <view class="higherBox" wx:for="{{bookFairData}}" wx:key="index" wx:for-item="item" wx:for-index="index"> + <view + class="higherBox" + wx:for="{{bookFairData}}" + wx:key="index" + wx:for-item="item" + wx:for-index="index" + > <view class="outsideHigherImageBox"> - <view class="higherImageBox" bind:tap="openBookFair" data-item="{{item}}"> + <view + class="higherImageBox" + bind:tap="openBookFair" + data-item="{{item}}" + > <image src="{{item.icon}}" mode="aspectFill" /> - <view class="downloadIcon" data-item="{{item}}" data-key="showWithInput" catch:tap="mailbox"> - <image wx:if="{{determine}}" class="download" src="/static/images/bibliographyList/email-click.png" mode="aspectFit" /> - <image wx:else="" class="downloadshiftin" src="/static/images/bibliographyList/email.png" mode="aspectFit" /> + <view + class="downloadIcon" + data-item="{{item}}" + data-key="showWithInput" + catch:tap="mailbox" + > + <image + wx:if="{{determine}}" + class="download" + src="/static/images/bibliographyList/email-click.png" + mode="aspectFit" + /> + <image + wx:else="" + class="downloadshiftin" + src="/static/images/bibliographyList/email.png" + mode="aspectFit" + /> </view> </view> </view> @@ -153,7 +302,12 @@ </view> <view wx:if="{{bookFairData.length != 0}}" class="bottom-box"> - <t-loading theme="circular" size="40rpx" class="wrapper" wx:if="{{isMore == true}}" /> + <t-loading + theme="circular" + size="40rpx" + class="wrapper" + wx:if="{{isMore == true}}" + /> <text wx:if="{{isMore == false}}">娌℃湁鏇村浜�</text> </view> <view wx:if="{{bookFairData.length <= 0 }}" class="noDataBox"> @@ -163,21 +317,54 @@ </scroll-view> </swiper-item> <swiper-item> - <scroll-view scroll-y="{{true}}" class="scrollViewBox" bindscrolltolower="onScrollToLower"> + <scroll-view + scroll-y="{{true}}" + class="scrollViewBox" + bindscrolltolower="onScrollToLower" + > <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="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.subtitleName}}</text> </view> </view> </view> - <view wx:if="{{biblioClassificationData.length != 0}}" class="bottom-box"> - <t-loading theme="circular" size="40rpx" class="wrapper" wx:if="{{isMore == true}}" /> + <view + wx:if="{{biblioClassificationData.length != 0}}" + class="bottom-box" + > + <t-loading + theme="circular" + size="40rpx" + class="wrapper" + wx:if="{{isMore == true}}" + /> <text wx:if="{{isMore == false}}">娌℃湁鏇村浜�</text> </view> - <view wx:if="{{biblioClassificationData.length <= 0}}" class="noDataBox"> + <view + wx:if="{{biblioClassificationData.length <= 0}}" + class="noDataBox" + > <!-- <t-empty icon="folder-open" description="鏆傛棤鏁版嵁" /> --> <empty /> </view> @@ -191,7 +378,7 @@ </t-dialog> </view> --> </view> -<view wx:if="{{showWithInput}}"> +<view wx:if="{{showWithInput}}"> <view class="popup-box" bindtap="closeDialog"></view> <view class="info-center" style="top:{{height*0.4}}px;"> <view> @@ -215,4 +402,4 @@ </view> </view> </view> -</view> \ No newline at end of file +</view> -- Gitblit v1.9.1