Commit d631fbe4 authored by 张伯涛's avatar 张伯涛

课程资料下载加密解密以及传参更改

parent b19542ad
...@@ -262,7 +262,6 @@ export function downloadZip(params) { ...@@ -262,7 +262,6 @@ export function downloadZip(params) {
return request({ return request({
url: '/bfile/download/', url: '/bfile/download/',
method: 'post', method: 'post',
responseType: 'blob',
params params
}) })
} }
......
...@@ -50,6 +50,17 @@ export function passwordDecrypt(txt) { ...@@ -50,6 +50,17 @@ export function passwordDecrypt(txt) {
} }
const urlPrivateKey = 'MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCstNcEy/A6v3BddApjjCN8VESMSh95q3TeFd//1E+36CA1WMIshzP1sL0L9wTHfVjUK/Ii6agsVXkstMMC1+HqavoSz42krvrgadfzEJIepOK4Z2E25YTcyIZ1dt7HgKxz+xhXZWRvbEYdLZrVMVJtjltagFB80RjKStv85U94Z6DMXBF8bZA8DMYGv7+p2Sszl3BUk79X2XLBoF+h2d9Jn0Rl0xKfxPS1k7tSfEVGk0VJArEUZJNAzrr/zCMhH+CN8LISQ/8sI1VYHTx2E85/KhcnewtHjb2P6h5q0fnZ5ELgsf1Bxj/dl2GxW+ybeW1Ir+tyNJWbMz/N7XTZUaLHAgMBAAECggEALCFBV/5scfZ81cRS60DhyGEX6uj9xe8ju6PHSu2LOSjdIgR+CTa69iqlA6uo0viafAyGoJkn2bw1bFD8C3vyRB31rFzQiqYTgMhK39b6H05uiEQSOR7Ipkmu4dDv9/ZPGousmphT44y9FbOTfqpNr6TSfvuOlXYwaXBbafGGLvOQRKqeP0mVq6xmiQOKg9yBAwN1dcoGx77OsvMEV2o0JR0+/0BMd3qRZQLAYH03zv3LE8xkI0zta9Gmmbh44YPwWGW/mMY24Iae1/pKnZxWTGty+X/pLGqHQdtxz6qQr/pCSA9lESNkkocHzVI9D6SxX5+bHWc0AX17EHomB2HawQKBgQDZYIAagH0tRR1XtIsexv1OpAOoHbXnpNmMPkAurpGlIzBlZlQYevPg0gcs7GBA90ZAyt68bkq4ABZ1CYPMEMazcMa2TOMaf9yw5bxnD8Ek2KWOnR4juQqKOyL8/2ddLPBV0J2Boo2D9MFSucyHB3lvRZF/DlYuLbj+GNdt9IZjFwKBgQDLZHosddeLo9Ux4mTChveMdo9nFzrXZZ83mbMPETTJ3EygQGqWmMUUQx9iWkiHWUYyyel/jafdIxOnaZfTEvcYcMDOsj3kDNZ5a1v+ZswqwT5fzQBv4huO3X8CrN7hnNsv9HIVrbT2ZlHhSI0g4Q0nfzSjxo7rYF50vJ6Qk+VL0QKBgQCtGadpc0A7OHpxSRgv3g4A/aLb0Sz11dRXVYsOoXzhn+/+D0qQY/io4xdLsr/DfCW5mtNcAggGFivL71PAwOs6IWhb60Y95+v6AjfRaj5H9S2BL6S8lbHK+eSWy1uoWwzXiVSj0qoWlmUMV2CDdnRBI4kFQIloJIjX7zg+GyaY6QKBgFCyUs7lCln67JFYM4YCqqDuQUMzskLXrO4QazylJP6aC0ThieiqQDcj0oXhMDmTMAjil2PmPh281wVrHbO/KI5n3fekPG4IseeGsv8ipgqolSjJW00ItspeExBqqht1cnl6UPFM9Cl2uzHY6TWMVP3AuI/qLbYxjAhg9cCDDUyhAoGBAI9h0SJjnSivVWl9OCQ8HT17Erl5lPpoI9GA+BjnuHnpWhKu4mxjPKzDMUxF1jmENLpvmGzK6KoeiRSLik2DOosQ1ip4U8N1IlSqJDkwzAVAHpDErwIiIox4bMpnD3vt/MgE1OIkK4PvjYyKfxngygof3gaHaEULTJFFIZVV1KM7' const urlPrivateKey = 'MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCstNcEy/A6v3BddApjjCN8VESMSh95q3TeFd//1E+36CA1WMIshzP1sL0L9wTHfVjUK/Ii6agsVXkstMMC1+HqavoSz42krvrgadfzEJIepOK4Z2E25YTcyIZ1dt7HgKxz+xhXZWRvbEYdLZrVMVJtjltagFB80RjKStv85U94Z6DMXBF8bZA8DMYGv7+p2Sszl3BUk79X2XLBoF+h2d9Jn0Rl0xKfxPS1k7tSfEVGk0VJArEUZJNAzrr/zCMhH+CN8LISQ/8sI1VYHTx2E85/KhcnewtHjb2P6h5q0fnZ5ELgsf1Bxj/dl2GxW+ybeW1Ir+tyNJWbMz/N7XTZUaLHAgMBAAECggEALCFBV/5scfZ81cRS60DhyGEX6uj9xe8ju6PHSu2LOSjdIgR+CTa69iqlA6uo0viafAyGoJkn2bw1bFD8C3vyRB31rFzQiqYTgMhK39b6H05uiEQSOR7Ipkmu4dDv9/ZPGousmphT44y9FbOTfqpNr6TSfvuOlXYwaXBbafGGLvOQRKqeP0mVq6xmiQOKg9yBAwN1dcoGx77OsvMEV2o0JR0+/0BMd3qRZQLAYH03zv3LE8xkI0zta9Gmmbh44YPwWGW/mMY24Iae1/pKnZxWTGty+X/pLGqHQdtxz6qQr/pCSA9lESNkkocHzVI9D6SxX5+bHWc0AX17EHomB2HawQKBgQDZYIAagH0tRR1XtIsexv1OpAOoHbXnpNmMPkAurpGlIzBlZlQYevPg0gcs7GBA90ZAyt68bkq4ABZ1CYPMEMazcMa2TOMaf9yw5bxnD8Ek2KWOnR4juQqKOyL8/2ddLPBV0J2Boo2D9MFSucyHB3lvRZF/DlYuLbj+GNdt9IZjFwKBgQDLZHosddeLo9Ux4mTChveMdo9nFzrXZZ83mbMPETTJ3EygQGqWmMUUQx9iWkiHWUYyyel/jafdIxOnaZfTEvcYcMDOsj3kDNZ5a1v+ZswqwT5fzQBv4huO3X8CrN7hnNsv9HIVrbT2ZlHhSI0g4Q0nfzSjxo7rYF50vJ6Qk+VL0QKBgQCtGadpc0A7OHpxSRgv3g4A/aLb0Sz11dRXVYsOoXzhn+/+D0qQY/io4xdLsr/DfCW5mtNcAggGFivL71PAwOs6IWhb60Y95+v6AjfRaj5H9S2BL6S8lbHK+eSWy1uoWwzXiVSj0qoWlmUMV2CDdnRBI4kFQIloJIjX7zg+GyaY6QKBgFCyUs7lCln67JFYM4YCqqDuQUMzskLXrO4QazylJP6aC0ThieiqQDcj0oXhMDmTMAjil2PmPh281wVrHbO/KI5n3fekPG4IseeGsv8ipgqolSjJW00ItspeExBqqht1cnl6UPFM9Cl2uzHY6TWMVP3AuI/qLbYxjAhg9cCDDUyhAoGBAI9h0SJjnSivVWl9OCQ8HT17Erl5lPpoI9GA+BjnuHnpWhKu4mxjPKzDMUxF1jmENLpvmGzK6KoeiRSLik2DOosQ1ip4U8N1IlSqJDkwzAVAHpDErwIiIox4bMpnD3vt/MgE1OIkK4PvjYyKfxngygof3gaHaEULTJFFIZVV1KM7'
const urlPublicKey = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArLTXBMvwOr9wX\n' +
'XQKY4wjfFREjEofeat03hXf/9RPt+ggNVjCLIcz9bC9C/cEx31Y1CvyIumoLFV5LLTDAtfh6mr6Es+NpK764GnX8x\n' +
'CSHqTiuGdhNuWE3MiGdXbex4Csc/sYV2Vkb2xGHS2a1TFSbY5bWoBQfNEYykrb/OVPeGegzFwRfG2QPAzGBr+/qdk\n' +
'rM5dwVJO/V9lywaBfodnfSZ9EZdMSn8T0tZO7UnxFRpNFSQKxFGSTQM66/8wjIR/gjfCyEkP/LCNVWB08dhPOfyoX\n' +
'J3sLR429j+oeatH52eRC4LH9QcY/3ZdhsVvsm3ltSK/rcjSVmzM/ze102VGixwIDAQAB'
// 视频,pdf加密
export function urlEncrypt(txt) {
const encryptor = new JSEncrypt()
encryptor.setPublicKey(urlPublicKey) // 设置公钥
return encryptor.encrypt(txt) // 对需要加密的数据进行加密
}
// 视频,pdf解密 // 视频,pdf解密
export function urlDecrypt(txt) { export function urlDecrypt(txt) {
......
...@@ -150,7 +150,7 @@ ...@@ -150,7 +150,7 @@
<el-input v-model="form.name" auto-complete="off" placeholder="课时数" :maxlength="15" /> <el-input v-model="form.name" auto-complete="off" placeholder="课时数" :maxlength="15" />
</el-form-item> </el-form-item>
<el-form-item label="课程类型" > <el-form-item label="课程类型">
<el-select v-model="form.lessonType" placeholder="课程类型" clearable> <el-select v-model="form.lessonType" placeholder="课程类型" clearable>
<el-option <el-option
v-for="item in lessonTypeOptions" v-for="item in lessonTypeOptions"
...@@ -640,7 +640,7 @@ import { ...@@ -640,7 +640,7 @@ import {
import commonField from '@/utils/commonField' import commonField from '@/utils/commonField'
import { getDict } from '@/api/system/dict/data' import { getDict } from '@/api/system/dict/data'
import { listAllCmsLecturer } from '@/api/courseManagement/cmsLecturer' import { listAllCmsLecturer } from '@/api/courseManagement/cmsLecturer'
import { urlDecrypt, urlEncrypt } from '@/utils/jsencrypt'
export default { export default {
name: 'Index', name: 'Index',
components: { components: {
...@@ -696,6 +696,8 @@ export default { ...@@ -696,6 +696,8 @@ export default {
} }
} }
return { return {
randomFiveDigitNumber: '', // 随机5位数字
zipUrl: '',
// 评分列表 // 评分列表
// 平均分 // 平均分
scoreAvg: 0, scoreAvg: 0,
...@@ -780,6 +782,7 @@ export default { ...@@ -780,6 +782,7 @@ export default {
formLabelWidth: '90px', formLabelWidth: '90px',
// 表格 // 表格
tableData: [], tableData: [],
zipLessonId: '',
zipList: [], zipList: [],
lineindex: 0, lineindex: 0,
teacode: '', teacode: '',
...@@ -899,6 +902,10 @@ export default { ...@@ -899,6 +902,10 @@ export default {
this.loadData() this.loadData()
}, },
methods: { methods: {
/** 生成随机数*/
generateRandomNumber() {
this.randomFiveDigitNumber = Math.floor(10000 + Math.random() * 90000)
},
/** /**
* 点击分数 * 点击分数
***/ ***/
...@@ -1725,6 +1732,7 @@ export default { ...@@ -1725,6 +1732,7 @@ export default {
findZIpInfo(params).then(res => { findZIpInfo(params).then(res => {
console.log('res', res) console.log('res', res)
if (res.code === 200) { if (res.code === 200) {
_this.zipLessonId = res.data.lessonId
_this.zipList = res.data.ossInfoList _this.zipList = res.data.ossInfoList
} }
}).catch((err) => { }).catch((err) => {
...@@ -1763,23 +1771,29 @@ export default { ...@@ -1763,23 +1771,29 @@ export default {
}) })
}, },
downloadFile(data) { downloadFile(data) {
this.generateRandomNumber()
console.log('randomFiveDigitNumber', this.randomFiveDigitNumber)
const _this = this const _this = this
console.log('data', data) console.log('data', data)
const originalName = data.originalName // const originalName = data.originalName
console.log('originalName', originalName) const fileUrl = urlEncrypt(_this.randomFiveDigitNumber + data.businessId)
const params = { const params = {
businessId: data.businessId lessonId: _this.zipLessonId,
fileUrl: fileUrl
} }
downloadZip(params).then(res => { downloadZip(params).then(res => {
const blob = new Blob([res]) _this.zipUrl = urlDecrypt(res.data)
const downloadElement = document.createElement('a') console.log('_this.zipUrl', _this.zipUrl)
const href = window.URL.createObjectURL(blob)// 创建下载的链接 window.open(_this.zipUrl, '_blank')
downloadElement.href = href // const blob = new Blob([res])
downloadElement.download = originalName // 下载后文件名 // const downloadElement = document.createElement('a')
document.body.appendChild(downloadElement) // const href = window.URL.createObjectURL(blob)// 创建下载的链接
downloadElement.click()// 点击下载 // downloadElement.href = href
document.body.removeChild(downloadElement)// 下载完成移除元素 // downloadElement.download = originalName // 下载后文件名
window.URL.revokeObjectURL(href)// 释放掉blob对象 // document.body.appendChild(downloadElement)
// downloadElement.click()// 点击下载
// document.body.removeChild(downloadElement)// 下载完成移除元素
// window.URL.revokeObjectURL(href)// 释放掉blob对象
}).catch((err) => { }).catch((err) => {
_this.error(err) _this.error(err)
}) })
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment