| | |
| | | import { |
| | | loginInfo |
| | | } from "../../../../assets/js/login"; |
| | | import FormData from '../../../../utils/formdata/index.js'; |
| | | const app = getApp(); |
| | | Page({ |
| | | /** |
| | |
| | | electronicBookList: [], //样书单电子书 |
| | | paperBookCount: 0, //纸质书剩余次数 |
| | | ebookCount: 0, //电子书剩余次数 |
| | | resourceCodeList: [], // 资源refcode列表 |
| | | userInfo: {}, |
| | | pageLoading: true, |
| | | fileInfo: { |
| | |
| | | showIndex: '', |
| | | successOrderNumber: '', |
| | | applicationState: '', // 电子样书申请状态 |
| | | |
| | | dialogBox: false, |
| | | resourceInfo: { |
| | | resourceName: '', |
| | | fileType: '', |
| | | description: '', |
| | | agree: false |
| | | }, |
| | | fileList: [], |
| | | isShowUp: true, |
| | | protocolShow: false, |
| | | protocolTxt: '' |
| | | }, |
| | | |
| | | resetTree: function (e) { |
| | |
| | | dangdangLink: [], |
| | | weidianLink: [], |
| | | content: [], |
| | | catalogue: [], |
| | | authorIntroduction: [], |
| | | // isApplyPaperBook: [], |
| | | // isApplyEBook: [], |
| | |
| | | }, |
| | | }; |
| | | app.MG.store.getProductDetail(query).then(async (res) => { |
| | | this.getResourceCode(id, res.datas.rootCmsItemId) |
| | | this.setData({ |
| | | bookDetail: res.datas, |
| | | buyIdList: res.datas.purchasedSaleMethodIdList, |
| | |
| | | |
| | | }); |
| | | }); |
| | | }, |
| | | getResourceCode(bookId, cmsId) { |
| | | let query = { |
| | | path: '*', |
| | | queryType: '*', |
| | | productId: bookId, |
| | | cmsPath: cmsId, |
| | | itemFields: { |
| | | SysType: 'Cms' |
| | | }, |
| | | pading: { |
| | | start: 99, |
| | | size: 0 |
| | | } |
| | | } |
| | | app.MG.store.getProductDetail(query).then((res) => { |
| | | this.setData({ |
| | | resourceCodeList: res.datas.cmsDatas[0].datas |
| | | }) |
| | | // console.log('图书资源', res.datas.cmsDatas[0].datas) |
| | | }) |
| | | }, |
| | | //请求子商品的文件 |
| | | getSubTtem() { |
| | |
| | | learnPath: type.productLinkPath |
| | | }) |
| | | const dataList = res.datas.cmsDatas[0].datas |
| | | if (dataList.length) { |
| | | // 先判断是否否买云学习整个目录 |
| | | 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 |
| | |
| | | let result = []; |
| | | if (type.refCode == "jsek_teachingResources") { |
| | | this.findChildIds(list, result); |
| | | const newUSeList = this.deleteTreeData(list, result) |
| | | console.log('树剔除', result, newUSeList); |
| | | console.log('树加一', this.increaseTreeData(list, newUSeList, 16094)); |
| | | |
| | | this.setData({ |
| | | openTeachids: result, |
| | | loading: false, |
| | |
| | | }, |
| | | // 判断资源是否购买 |
| | | resourceIsBuy(data) { |
| | | if (data.saleMethod && data.saleMethod.length) { |
| | | 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 |
| | | ); |
| | |
| | | }, |
| | | // 判断资源加入购物车按钮是否显示 |
| | | isShoppingCart(data) { |
| | | if (data.saleMethod && data.saleMethod.length) { |
| | | 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; |
| | | // 再判断是否购买 |
| | | const isBuy = this.data.buyIdList.some( |
| | |
| | | teach: tree, |
| | | }); |
| | | }, |
| | | }); |
| | | |
| | | // 剔除树结构多余,只保留初始需要展开的 |
| | | // 第一步:保留树结构前两层,并将展开项加入数组 |
| | | deleteTreeData(list, openids) { |
| | | let resultList = [] |
| | | for (let index = 0; index < list.length; index++) { |
| | | const item = list[index]; |
| | | for (let cindex = 0; cindex < item.children.length; cindex++) { |
| | | const citem = item.children[cindex]; |
| | | citem.children = [] |
| | | } |
| | | resultList.push(item) |
| | | } |
| | | for (let index = 0; index < openids.length; index++) { |
| | | const id = openids[index]; |
| | | // 展开项加入数组 |
| | | this.increaseTreeData(list, resultList, id) |
| | | } |
| | | return resultList |
| | | }, |
| | | // 传递ids,将需要展开的id的children 赋值 |
| | | increaseTreeData(treeList, list, openid) { |
| | | let num = 0; |
| | | // let useData = treeList.find(item => item.id == openid) |
| | | for (let index = 0; index < treeList.length; index++) { |
| | | const item = treeList[index]; |
| | | if (item.id == openid && num >= 3) { |
| | | let useArr = item.children ? item.children : [] |
| | | this.changeList(list, openid, useArr) |
| | | } else { |
| | | num += 1 |
| | | this.increaseTreeData(item.children, list, openid) |
| | | } |
| | | } |
| | | |
| | | }, |
| | | // 递归前两层,找出需要展开的 |
| | | changeList(isList, id, childrenList) { |
| | | for (let dindex = 0; dindex < isList.length; dindex++) { |
| | | const ditem = isList[dindex]; |
| | | if (ditem.id == id) { |
| | | ditem.children = childrenList |
| | | return true |
| | | } else { |
| | | this.changeList(ditem.children, id, childrenList) |
| | | } |
| | | } |
| | | return childrenList |
| | | }, |
| | | uploadFile(e) { |
| | | console.log(123) |
| | | this.setData({ |
| | | dialogBox: true, |
| | | isShowUp: true |
| | | }); |
| | | }, |
| | | closeDialog() { |
| | | this.setData({ |
| | | dialogBox: false, |
| | | }); |
| | | }, |
| | | onCloseProtocol() { |
| | | this.setData({ |
| | | protocolShow: false, |
| | | }); |
| | | }, |
| | | onVisibleChange(e) { |
| | | this.setData({ |
| | | protocolShow: e.detail.visible, |
| | | }); |
| | | }, |
| | | //查看协议 |
| | | getAgreement() { |
| | | let query = { |
| | | path: 'jsek_protocol', |
| | | fields: { |
| | | content: [], |
| | | } |
| | | } |
| | | app.MG.resource.getItem(query).then((res) => { |
| | | try { |
| | | |
| | | const data = res.datas.find((e) => e.refCode == 'jsek_authorizationAndConsentLetter') |
| | | this.setData({ |
| | | protocolTxt: data && data.content ? data.content : '暂无协议', |
| | | protocolShow: true |
| | | }); |
| | | } catch (error) { |
| | | this.setData({ |
| | | protocolTxt: '暂无协议', |
| | | protocolShow: true, |
| | | }); |
| | | } |
| | | }) |
| | | |
| | | }, |
| | | onNameInput(e) { |
| | | console.log(e.detail.value) |
| | | this.setData({ |
| | | 'resourceInfo.resourceName': e.detail.value, |
| | | }); |
| | | }, |
| | | onFileTypeInput(e) { |
| | | this.setData({ |
| | | 'resourceInfo.fileType': e.detail.value, |
| | | }); |
| | | }, |
| | | textareaChange(e) { |
| | | this.setData({ |
| | | 'resourceInfo.description': e.detail.value, |
| | | }); |
| | | }, |
| | | onChange() { |
| | | if (this.data.resourceInfo.agree) { |
| | | this.setData({ |
| | | 'resourceInfo.agree': false, |
| | | }); |
| | | } else { |
| | | this.setData({ |
| | | 'resourceInfo.agree': true, |
| | | }); |
| | | } |
| | | }, |
| | | uploadPicture() { |
| | | var that = this; |
| | | wx.chooseMessageFile({ |
| | | count: 1, |
| | | type: 'file', |
| | | success(res) { |
| | | const isLt2M = res.tempFiles[0].size / 1024 / 1024 < 50 |
| | | if (!isLt2M) { |
| | | return wx.showToast({ |
| | | title: "上传文件大小不能超过 50MB!", |
| | | icon: "none", |
| | | duration: 1000, |
| | | }); |
| | | } |
| | | const FileName = res.tempFiles[0].name.split('.')[0] |
| | | const Extension = res.tempFiles[0].name.split('.')[1] |
| | | var medioType = '' |
| | | const audioData = ['mp3', 'mp3'] |
| | | const videoData = ['mp4', 'avi'] |
| | | const pdfData = ['pdf'] |
| | | const Compression = ['rar', 'zip'] |
| | | const pictureData = ['jpg', 'png'] |
| | | if (audioData.indexOf(Extension) > -1) { |
| | | medioType = '音频' |
| | | } else if (videoData.indexOf(Extension) > -1) { |
| | | medioType = '视频' |
| | | } else if (pdfData.indexOf(Extension) > -1) { |
| | | medioType = 'PDF' |
| | | } else if (Compression.indexOf(Extension) > -1) { |
| | | medioType = '资源包' |
| | | } else if (pictureData.indexOf(Extension) > -1) { |
| | | medioType = '图片' |
| | | } else { |
| | | medioType = '其他' |
| | | } |
| | | wx.getFileSystemManager().getFileInfo({ |
| | | filePath: res.tempFiles[0].path, //选择图片返回的相对路径 |
| | | // encoding: 'binary', //编码格式 |
| | | success: ress => { |
| | | //成功的回调 |
| | | let md5 = ress.digest; |
| | | let formData = new FormData(); |
| | | formData.append('Md5', md5); |
| | | formData.append('FileName', FileName); |
| | | formData.append('FileType', res.tempFiles[0].type); |
| | | formData.appendFile("file", res.tempFiles[0].path); |
| | | const data = formData.getData(); |
| | | let _token = wx.getStorageSync(app.config.tokenKey); |
| | | let header = {}; |
| | | if (_token == null) { |
| | | header["Authorization"] = `Basic ${Base64.encode(website.clientId + ":" + website.clientSecret)}`; |
| | | } else { |
| | | header["Authorization"] = `Bearer ` + _token; |
| | | } |
| | | new Promise((resolve, reject) => { |
| | | wx.request({ |
| | | url: app.config.requestCtx + '/file/api/ApiUpload', |
| | | method: 'POST', |
| | | header: { |
| | | 'content-type': data.contentType, |
| | | ...header |
| | | }, |
| | | data: data.buffer, |
| | | success(res1) { |
| | | resolve(res1.data); |
| | | if (res1.data) { |
| | | let file = [{ |
| | | name: res.tempFiles[0].name, |
| | | md5: md5, |
| | | type: medioType, |
| | | FileType: Extension |
| | | }] |
| | | that.setData({ |
| | | "resourceInfo.resourceName": FileName, |
| | | "resourceInfo.fileType": medioType, |
| | | fileList: file, |
| | | isShowUp: false |
| | | }) |
| | | } |
| | | } |
| | | }) |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | |
| | | }, |
| | | handleRemove(e) { |
| | | console.log(e) |
| | | let md5 = e.currentTarget.dataset.md5 |
| | | for (let i = 0; i < this.data.fileList.length; i++) { |
| | | if (this.data.fileList.md5 == md5) { |
| | | this.data.fileList.splice(i, 1) |
| | | } |
| | | } |
| | | this.setData({ |
| | | isShowUp: true, |
| | | }); |
| | | }, |
| | | confirmM() { |
| | | if (this.data.resourceInfo.resourceName == '') { |
| | | return wx.showToast({ |
| | | icon: "error", |
| | | title: "请填写资源名称", |
| | | }); |
| | | } |
| | | if (this.data.resourceInfo.fileType == '') { |
| | | return wx.showToast({ |
| | | icon: "error", |
| | | title: "请填写资源类型", |
| | | }); |
| | | } |
| | | |
| | | if (!this.data.fileList.length) { |
| | | return wx.showToast({ |
| | | icon: "error", |
| | | title: "请上传资源文件", |
| | | }); |
| | | } |
| | | if (!this.data.resourceInfo.agree) { |
| | | return wx.showToast({ |
| | | icon: "none", |
| | | title: "请同意《授权同意书》!", |
| | | }); |
| | | } |
| | | let query = { |
| | | topicIdOrRefCode: "uploadFiles", |
| | | name: this.data.bookDetail.name, |
| | | content: JSON.stringify(JSON.parse(JSON.stringify(this.data.fileList))), |
| | | type: 'UserSubmit', |
| | | description: this.data.resourceInfo.description, |
| | | cmsTypeRefCode: '', |
| | | newDataListRequest: [] |
| | | } |
| | | app.MG.ugc.newTopicMessage(query).then((res) => { |
| | | wx.showToast({ |
| | | icon: "success", |
| | | title: "请上传资源文件", |
| | | }); |
| | | this.setData({ |
| | | dialogBox: false, |
| | | }); |
| | | }) |
| | | } |
| | | }) |