From 21f34f1fc290cd129d24df2b25025e47e6ac028a Mon Sep 17 00:00:00 2001 From: 闫增涛 <1829501689@qq.com> Date: 星期三, 06 三月 2024 15:26:00 +0800 Subject: [PATCH] feat(合并代码): 云测试 --- pages/bookServices/detail/components/note/note.json | 8 + pages/bookServices/detail/components/learnResource/learnResource.wxss | 2 pages/bookServices/detail/index.wxml | 9 + static/images/bookService/detail/test-icon.png | 0 pages/bookServices/detail/components/teachResource/index.wxss | 5 pages/bookServices/detail/components/testResource/testResource.js | 26 +++ static/images/bookService/detail/lianxi-icon.png | 0 pages/bookServices/detail/components/suggest/suggest.js | 86 +++++++++++ pages/bookServices/detail/components/testResource/testResource.wxss | 49 +++++++ pages/bookServices/detail/components/note/note.wxml | 15 ++ pages/bookServices/detail/components/suggest/suggest.wxss | 3 pages/bookServices/detail/index.js | 80 ++++++++++- pages/bookServices/detail/index.json | 2 pages/bookServices/detail/components/suggest/suggest.wxml | 8 pages/bookServices/detail/components/testResource/testResource.json | 7 + pages/bookServices/detail/components/note/note.js | 23 +++ pages/bookServices/detail/components/note/note.wxss | 19 ++ pages/bookServices/detail/components/testResource/testResource.wxml | 18 ++ pages/bookServices/detail/components/tree/index.wxml | 2 19 files changed, 341 insertions(+), 21 deletions(-) diff --git a/pages/bookServices/detail/components/learnResource/learnResource.wxss b/pages/bookServices/detail/components/learnResource/learnResource.wxss index 03e91bf..e95fe96 100644 --- a/pages/bookServices/detail/components/learnResource/learnResource.wxss +++ b/pages/bookServices/detail/components/learnResource/learnResource.wxss @@ -13,6 +13,8 @@ --td-button-primary-bg-color: #fff; --td-button-primary-border-color: #FF6C00; --td-button-primary-color: #ff6c00; + --td-button-primary-active-bg-color: #fff0e6; + --td-button-primary-active-border-color: #ff6c00; padding: 0; display: flex; align-items: center; diff --git a/pages/bookServices/detail/components/note/note.js b/pages/bookServices/detail/components/note/note.js new file mode 100644 index 0000000..585c609 --- /dev/null +++ b/pages/bookServices/detail/components/note/note.js @@ -0,0 +1,23 @@ +// pages/bookServices/detail/components/note/note.js +Component({ + /** + * 缁勪欢鐨勫睘鎬у垪琛� + */ + properties: { + + }, + + /** + * 缁勪欢鐨勫垵濮嬫暟鎹� + */ + data: { + + }, + + /** + * 缁勪欢鐨勬柟娉曞垪琛� + */ + methods: { + + } +}) diff --git a/pages/bookServices/detail/components/note/note.json b/pages/bookServices/detail/components/note/note.json new file mode 100644 index 0000000..c766c63 --- /dev/null +++ b/pages/bookServices/detail/components/note/note.json @@ -0,0 +1,8 @@ +{ + "component": true, + "usingComponents": { + "t-button": "tdesign-miniprogram/button/button", + "t-collapse": "tdesign-miniprogram/collapse/collapse", + "t-collapse-panel": "tdesign-miniprogram/collapse-panel/collapse-panel" + } +} \ No newline at end of file diff --git a/pages/bookServices/detail/components/note/note.wxml b/pages/bookServices/detail/components/note/note.wxml new file mode 100644 index 0000000..949ece5 --- /dev/null +++ b/pages/bookServices/detail/components/note/note.wxml @@ -0,0 +1,15 @@ +<!--pages/bookServices/detail/components/note/note.wxml--> +<view class="note"> + <view class="note-btn"> + <t-button theme="primary" class="make-note">璁扮瑪璁�</t-button> + </view> + <view class="note-content"> + <view class="wrapper"> + <t-collapse value="{{activeValues}}" bind:change="handleChange"> + <t-collapse-panel header="鎶樺彔闈㈡澘鏍囬" value="{{0}}" expandIcon> + 姝ゅ鍙嚜瀹氫箟鍐呭姝ゅ鍙嚜瀹氫箟鍐呭姝ゅ鍙嚜瀹氫箟鍐呭姝ゅ鍙嚜瀹氫箟鍐呭姝ゅ鍙嚜瀹氫箟鍐呭姝ゅ鍙嚜瀹氫箟鍐呭姝ゅ鍙嚜瀹氫箟鍐呭姝ゅ鍙嚜瀹氫箟鍐呭 + </t-collapse-panel> + </t-collapse> + </view> + </view> +</view> \ No newline at end of file diff --git a/pages/bookServices/detail/components/note/note.wxss b/pages/bookServices/detail/components/note/note.wxss new file mode 100644 index 0000000..7604004 --- /dev/null +++ b/pages/bookServices/detail/components/note/note.wxss @@ -0,0 +1,19 @@ +/* pages/bookServices/detail/components/note/note.wxss */ +.note {} + +.note-btn { + height: 140rpx; + display: flex; + justify-content: flex-end; + align-items: center; + border-bottom: 1px solid #EFF0F1; + --td-button-primary-bg-color: #fff; + --td-button-primary-border-color: #ff6c00; + --td-button-primary-color: #ff6c00; + --td-button-primary-active-bg-color: #fff0e6; +} + +.make-note { + margin: 0; + margin-right: 40rpx; +} \ No newline at end of file diff --git a/pages/bookServices/detail/components/suggest/suggest.js b/pages/bookServices/detail/components/suggest/suggest.js index d74c397..d13c69f 100644 --- a/pages/bookServices/detail/components/suggest/suggest.js +++ b/pages/bookServices/detail/components/suggest/suggest.js @@ -1,10 +1,18 @@ // pages/bookServices/detail/components/suggest/suggest.js +const app = getApp() Component({ /** * 缁勪欢鐨勫睘鎬у垪琛� */ properties: { - + bookIcon: { + type: String, + value: '' + }, + bookName: { + type: String, + value: '' + } }, data: { @@ -14,6 +22,8 @@ inputvalue: '', textvalue: '', ratevalue: 0, + phoneError: false, + textError: false, }, methods: { showDialog(e) { @@ -24,15 +34,83 @@ closeDialog() { this.setData({ - showWithInput: false + showWithInput: false, + ratevalue: 0, + inputvalue: '', + textvalue: '' }) }, // 璇勫垎鏀瑰彉 onChangeRate(e) { - const { value } = e.detail; + console.log(e.detail); this.setData({ - ratevalue: value + ratevalue: e.detail.value }); }, + // 杈撳叆妗嗘敼鍙� + inputChange(e) { + this.setData({ + inputvalue: e.detail.value + }) + const isPhoneNumber = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(e.detail.value); + if (this.data.phoneError === isPhoneNumber) { + this.setData({ + phoneError: !isPhoneNumber, + }); + } + }, + // 鏂囨湰妗嗘敼鍙� + textareaChange(e) { + this.setData({ + textvalue: e.detail.value + }) + }, + feedBack() { + const token = wx.getStorageSync('jsek-token') + if (!token) { + // return wx.showToast({ + // icon: 'error', + // title: '璇峰厛鐧诲綍', + // }) + return wx.getUserProfile({ + desc: '鐢ㄦ埛鐧诲綍', + success: (res) => { + console.log(res); + } + }) + } + let content = { + source: this.data.ratevalue, + phone: this.data.inputvalue, + content: this.data.textvalue, + icon: this.properties.bookIcon + } + let query = { + topicIdOrRefCode: 'bookOpinion', + name: this.properties.bookName, + content: JSON.stringify(content), + type: 'ProductComment', + cmsTypeRefCode: '', + newDataListRequest: [] + } + + app.MG.ugc.newTopicMessage(query).then((res) => { + wx.showToast({ + title: '鎻愪氦鎴愬姛', + icon: 'success', + duration: 2000 + }) + this.closeDialog() + }) + }, + // 纭畾 + confirmSuggest() { + if (!this.data.inputvalue) { + return this.setData({ + phoneError: true + }) + } + this.feedBack() + } }, }) diff --git a/pages/bookServices/detail/components/suggest/suggest.wxml b/pages/bookServices/detail/components/suggest/suggest.wxml index c567a62..e6b21c4 100644 --- a/pages/bookServices/detail/components/suggest/suggest.wxml +++ b/pages/bookServices/detail/components/suggest/suggest.wxml @@ -1,10 +1,10 @@ -<t-dialog visible="{{showWithInput}}" title="鎴戣寤鸿" confirm-btn="纭畾" cancel-btn="鍙栨秷" bind:confirm="closeDialog" bind:cancel="closeDialog" class="suggest-dialog"> +<t-dialog visible="{{showWithInput}}" title="鎴戣寤鸿" confirm-btn="纭畾" cancel-btn="鍙栨秷" bind:confirm="confirmSuggest" bind:cancel="closeDialog" class="suggest-dialog"> <view slot="content"> <view class="demo-rate"> <view class="demo-rate__title">瀹炲績璇勫垎</view> - <t-rate value="{{ratevalue}}" bind:change="onChangeRate" /> + <t-rate value="{{ratevalue}}" catch:change="onChangeRate" /> </view> - <t-input clearable value="{{inputvalue}}" slot="content" label="鑱旂郴鏂瑰紡" placeholder="璇疯緭鍏ヨ仈绯绘柟寮�" placeholder-class="placeholder" /> - <t-textarea value="{{textvalue}}" t-class="external-class" label="鏍囩鏂囧瓧" placeholder="璁剧疆鏈�澶у瓧绗︿釜鏁帮紝涓�涓眽瀛楄〃绀轰袱涓瓧绗�" maxcharacter="200" disableDefaultPadding="{{true}}" indicator /> + <t-input clearable value="{{inputvalue}}" slot="content" label="鑱旂郴鏂瑰紡" placeholder="璇疯緭鍏ヨ仈绯绘柟寮�" placeholder-class="placeholder" bind:change="inputChange" type="number" maxlength="{{11}}" tips="{{phoneError ? '鎵嬫満鍙疯緭鍏ヤ笉姝g‘' : ''}}" /> + <t-textarea value="{{textvalue}}" t-class="external-class" label="鏍囩鏂囧瓧" placeholder="璁剧疆鏈�澶у瓧绗︿釜鏁帮紝涓�涓眽瀛楄〃绀轰袱涓瓧绗�" maxcharacter="200" disableDefaultPadding="{{true}}" indicator bind:change="textareaChange" /> </view> </t-dialog> \ No newline at end of file diff --git a/pages/bookServices/detail/components/suggest/suggest.wxss b/pages/bookServices/detail/components/suggest/suggest.wxss index 0f1b799..b727089 100644 --- a/pages/bookServices/detail/components/suggest/suggest.wxss +++ b/pages/bookServices/detail/components/suggest/suggest.wxss @@ -7,6 +7,9 @@ height: 400px; } +.t-button--text { + color: #333 +} .wrapper { margin-bottom: 32rpx; diff --git a/pages/bookServices/detail/components/teachResource/index.wxss b/pages/bookServices/detail/components/teachResource/index.wxss index 42a38a2..f6d8eaa 100644 --- a/pages/bookServices/detail/components/teachResource/index.wxss +++ b/pages/bookServices/detail/components/teachResource/index.wxss @@ -6,6 +6,8 @@ --td-button-primary-bg-color: #fff; --td-button-primary-border-color: #FF6C00; --td-button-primary-color: #ff6c00; + --td-button-primary-active-bg-color: #fff0e6; + --td-button-primary-active-border-color: #ff6c00; } .teach-btn image { @@ -61,7 +63,8 @@ --td-button-border-radius: 10rpx; --td-button-primary-bg-color: #ff6c00; --td-button-primary-border-color: #FF6C00; - --td-button-primary-text-active-bg-color: #000锛� + --td-button-primary-active-bg-color: #ff984d; + --td-button-primary-active-border-color: #ff984d; } .rejectBtn { diff --git a/pages/bookServices/detail/components/testResource/testResource.js b/pages/bookServices/detail/components/testResource/testResource.js new file mode 100644 index 0000000..4db3b81 --- /dev/null +++ b/pages/bookServices/detail/components/testResource/testResource.js @@ -0,0 +1,26 @@ +// pages/bookServices/detail/components/testResource/testResource.js +Component({ + /** + * 缁勪欢鐨勫睘鎬у垪琛� + */ + properties: { + list: { + type: Array, + value: [] + } + }, + + /** + * 缁勪欢鐨勫垵濮嬫暟鎹� + */ + data: { + + }, + + /** + * 缁勪欢鐨勬柟娉曞垪琛� + */ + methods: { + + } +}) diff --git a/pages/bookServices/detail/components/testResource/testResource.json b/pages/bookServices/detail/components/testResource/testResource.json new file mode 100644 index 0000000..d3520d1 --- /dev/null +++ b/pages/bookServices/detail/components/testResource/testResource.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "t-button": "tdesign-miniprogram/button/button", + "t-image": "tdesign-miniprogram/image/image" + } +} \ No newline at end of file diff --git a/pages/bookServices/detail/components/testResource/testResource.wxml b/pages/bookServices/detail/components/testResource/testResource.wxml new file mode 100644 index 0000000..d80c4f1 --- /dev/null +++ b/pages/bookServices/detail/components/testResource/testResource.wxml @@ -0,0 +1,18 @@ +<!--pages/bookServices/detail/components/testResource/testResource.wxml--> +<view class="test-resource"> + <view class="top-btn"> + <t-button class="practice-btn" theme="primary" size="medium">缁冧範</t-button> + <t-button class="paper-btn" theme="default" size="medium">缁勫嵎</t-button> + <t-button class="error-btn" theme="default" size="medium">鎴戠殑閿欓</t-button> + <t-button class="collect-btn" theme="default" size="medium">鎴戠殑鏀惰棌</t-button> + </view> + <view class="resource-list" wx:for="{{list}}" wx:key="item.id"> + <view class="list-title"> + <t-image src="/static/images/bookService/detail/test-icon.png"></t-image> + <text>{{item.name}}</text> + </view> + <view class="practice"> + <t-image src="/static/images/bookService/detail/lianxi-icon.png"></t-image> + </view> + </view> +</view> \ No newline at end of file diff --git a/pages/bookServices/detail/components/testResource/testResource.wxss b/pages/bookServices/detail/components/testResource/testResource.wxss new file mode 100644 index 0000000..6362921 --- /dev/null +++ b/pages/bookServices/detail/components/testResource/testResource.wxss @@ -0,0 +1,49 @@ +/* pages/bookServices/detail/components/testResource/testResource.wxss */ +.test-resource { + padding-top: 20rpx; +} + +.resource-list { + height: 80rpx; + margin: 20rpx; + padding: 0 20rpx; + display: flex; + justify-content: space-between; + align-items: center; +} + +.list-title image { + width: 34rpx; + height: 38rpx; +} + +.practice image { + width: 26rpx; + height: 30rpx; +} + +.list-title text { + margin-left: 10rpx; + color: #333; +} + +.top-btn { + display: flex; + justify-content: space-evenly; +} + +.practice-btn { + --td-button-primary-bg-color: #ff6c00; + --td-button-primary-border-color: #ff6c00; + --td-button-primary-active-bg-color: #ff984d; + --td-button-primary-active-border-color: #ff984d; +} + +.paper-btn, +.error-btn, +.collect-btn { + --td-button-default-bg-color: #fff; + --td-button-default-color: #ff6c00; + --td-button-default-active-bg-color: #fff0e6; + --td-button-medium-font-size: 28rpx +} \ No newline at end of file diff --git a/pages/bookServices/detail/components/tree/index.wxml b/pages/bookServices/detail/components/tree/index.wxml index d58d148..08ab27b 100644 --- a/pages/bookServices/detail/components/tree/index.wxml +++ b/pages/bookServices/detail/components/tree/index.wxml @@ -52,7 +52,7 @@ </view> </view> <!-- // 鍒ゆ柇 涓嶆槸鍟嗗搧 鏈夊瓙椤� 閫掑綊缁勪欢 --> - <tree wx:else treeList="{{[citem]}}" itemId="{{itemId}}"></tree> + <tree wx:else treeList="{{[citem]}}" itemId="{{itemId}}" tab="{{tab}}"></tree> </view> <view class="listItems" wx:if="{{children.length <= 0 && !loading}}"> 鏆傛棤鏁版嵁 diff --git a/pages/bookServices/detail/index.js b/pages/bookServices/detail/index.js index e99bb9c..ee631de 100644 --- a/pages/bookServices/detail/index.js +++ b/pages/bookServices/detail/index.js @@ -6,6 +6,7 @@ * 椤甸潰鐨勫垵濮嬫暟鎹� */ data: { + bookId: '', barHeight: '', navBarHeight: '', options: { @@ -26,8 +27,10 @@ teachResources: [], teach: [], learn: [], + test: [], openTeachids: [], openLearnids: [], + openTestids: [], resourceClassList: [], // 璧勬簮鎵�灞炲垎绫� applyState: "", // 鏁欏璧勬簮鐢宠鐘舵�� deadline: "", // 鏁欏璧勬簮鐢宠鏈夋晥鏃ユ湡 @@ -51,6 +54,7 @@ const menu = wx.getMenuButtonBoundingClientRect(); // 鑳跺泭淇℃伅 const navBarHeight = (menu.top - systInfo.statusBarHeight) * 2 + menu.height; // 瀵艰埅鏍忛珮搴� this.setData({ + bookId: options.id, barHeight: systInfo.statusBarHeight, navBarHeight: navBarHeight, }); @@ -63,7 +67,8 @@ this.getBookInfo(options.id); this.getResourceClass() // 鑾峰彇璧勬簮鎵�灞炲垎绫� this.getApplyInfo(options.id) - if (wx.getAccountInfoSync('jsek-token')) { + const token = wx.getStorageSync('jsek-token') + if (token) { this.getShoppingCartProductGet() } }, @@ -295,7 +300,6 @@ } } } - console.log('鍒囨崲', this.data.tabValue); }, // 鑾峰彇璧勬簮鎵�灞炲垎绫� getResourceClass() { @@ -340,7 +344,7 @@ const data = res.datas.cmsDatas[0].datas.filter( (item) => item.refCode == 'jsek_questionBank' ) - if (data.length) return getResourceData(data[0]) + if (data.length) return this.getResourceData(data[0]) } //鏁欏璧勬簮 浜戝涔� if (type.refCode == 'jsek_teachingResources' || type.refCode == 'jsek_cloudLearning') { @@ -351,23 +355,26 @@ }) const list = await this.getAllResource(res.datas.cmsDatas[0].datas) this.setData({ - teachResources: list, teach: list }) - this.findChildIds(this.data.teachResources, this.data.openTeachids = []) + this.findChildIds(this.data.teach, this.data.openTeachids = []) } else if (type.refCode == 'jsek_cloudLearning') { const list = await this.getAllResource(res.datas.cmsDatas[0].datas) this.setData({ learn: list }) - console.log('浜戝涔�', this.data.learn); - this.findChildIds(this.data.teachResources, this.data.openLearnids = []) + this.findChildIds(this.data.learn, this.data.openLearnids = []) } } else { // 鏃犳暟鎹� } } else if (type.refCode == 'jsek_questionBank') { - console.log('浜戞祴璇�'); + // const list = await this.getAllResource(res.datas.cmsDatas[0].datas) + this.setData({ + test: res.datas.cmsDatas[0].datas + }) + // this.findChildIds(this.data.test, this.data.openTestids = []) + console.log('浜戞祴璇�', this.data.test); } else { console.log('鍏朵粬'); } @@ -375,7 +382,6 @@ .catch((e) => { console.log(e) }) - console.log('淇℃伅', this.data); }, // 鑾峰彇tag涓嬫墍鏈夎祫婧� async getAllResource(data) { @@ -726,6 +732,7 @@ return false } }, + // 鑾峰彇宸茶喘涔板晢鍝� getShoppingCartProductGet() { let query = { start: 0, @@ -762,5 +769,60 @@ } else { return false } + }, + // 閬嶅巻鏍戠粨鏋勮浆鎹负鏁扮粍鏂规硶 + handleTreeData(array) { + const flattenedArray = [] + array.forEach((node) => { + // 灏嗗綋鍓嶈妭鐐规坊鍔犲埌灞曞紑鐨勬暟缁勪腑 + flattenedArray.push(node) + // 閫掑綊澶勭悊瀛愯妭鐐� + if (node.children && node.children.length > 0) { + const childrenArray = handleTreeData(node.children) + flattenedArray.push(...childrenArray) + } + }) + return flattenedArray.filter((item) => item.sysType == 'CmsItem') + }, + // 浜戝涔犱竴閿鍙� + async getFreeResource() { + // if (!localStorage.getItem('jsek-token')) { + // return logIn() + // } + let arr = handleTreeData(this.data.learn).filter((item) => resourceIsBuy(item)) + let freeIds = arr.filter((item) => { + return item.saleMethod[0].Price == 0 + }) + if (!freeIds.length) return console.log('鏆傛棤鍏嶈垂璧勬簮') + btnLoading.freeBtn = true + let requests = [] + freeIds.forEach((item, index) => { + if (resourceIsBuy(item)) { + requests.push({ + saleMethodId: item.saleMethod[0].Id, + count: 1 + }) + } + }) + + let query = { + remarks: '浜戝涔�', + requests, + } + try { + const initOrderRes = await app.MG.store.initOrder(query) + let parameter = { + orderNum: initOrderRes.orderNumber + } + // 纭璁㈠崟 + const confirmOrderRes = await MG.store.confirmOrder(parameter) + if (confirmOrderRes.orderNumber) { + // btnLoading.freeBtn = false + console.log('棰嗗彇鎴愬叡'); + this.getBookInfo(this.data.bookId) + } + } catch (error) { + console.log(error) + } } }) diff --git a/pages/bookServices/detail/index.json b/pages/bookServices/detail/index.json index 7f5888d..e023f75 100644 --- a/pages/bookServices/detail/index.json +++ b/pages/bookServices/detail/index.json @@ -9,6 +9,8 @@ "book-brief": "/pages/bookServices/detail/components/brief/index", "teach-resource": "/pages/bookServices/detail/components/teachResource/index", "learn-resource": "/pages/bookServices/detail/components/learnResource/learnResource", + "test-resource": "/pages/bookServices/detail/components/testResource/testResource", + "note": "/pages/bookServices/detail/components/note/note", "tree": "/pages/bookServices/detail/components/tree/index", "suggest": "/pages/bookServices/detail/components/suggest/suggest", "t-loading": "tdesign-miniprogram/loading/loading" diff --git a/pages/bookServices/detail/index.wxml b/pages/bookServices/detail/index.wxml index 9b67d3c..c1c9f80 100644 --- a/pages/bookServices/detail/index.wxml +++ b/pages/bookServices/detail/index.wxml @@ -105,7 +105,12 @@ <learn-resource></learn-resource> <tree tab="{{tabValue}}" treeList="{{learn}}" buyIds="{{buyIdList}}"></tree> </t-tab-panel> - <t-tab-panel label="浜戞祴璇�" value="questionBank" style="{{tabPanelstyle}}">閫夐」鍥涘唴瀹�</t-tab-panel> + <t-tab-panel label="浜戞祴璇�" value="questionBank" style="{{tabPanelstyle}}"> + <test-resource list="{{test}}"></test-resource> + </t-tab-panel> + <t-tab-panel label="浜戠瑪璁�" value="note" style="{{tabPanelstyle}}"> + <note></note> + </t-tab-panel> </t-tabs> </view> <!-- 璐拱鎸夐挳 --> @@ -127,4 +132,4 @@ </view> </scroll-view> <!-- 鎴戣寤鸿寮圭獥 --> -<suggest class="suggest-component" id="suggest-component"></suggest> \ No newline at end of file +<suggest class="suggest-component" id="suggest-component" bookIcon="{{bookDetail.icon}}" bookName="{{bookDetail.name}}"></suggest> \ No newline at end of file diff --git a/static/images/bookService/detail/lianxi-icon.png b/static/images/bookService/detail/lianxi-icon.png new file mode 100644 index 0000000..26d76fe --- /dev/null +++ b/static/images/bookService/detail/lianxi-icon.png Binary files differ diff --git a/static/images/bookService/detail/test-icon.png b/static/images/bookService/detail/test-icon.png new file mode 100644 index 0000000..7d30971 --- /dev/null +++ b/static/images/bookService/detail/test-icon.png Binary files differ -- Gitblit v1.9.1