|
@@ -171,7 +171,8 @@ export default {
|
|
},
|
|
},
|
|
// 生成随机UUID工具
|
|
// 生成随机UUID工具
|
|
guid: function() {
|
|
guid: function() {
|
|
- return (this.randomId() + this.randomId() + '-' + this.randomId() + '-' + this.randomId() + '-' + this.randomId() +
|
|
|
|
|
|
+ return (this.randomId() + this.randomId() + '-' + this.randomId() + '-' + this.randomId() + '-' + this
|
|
|
|
+ .randomId() +
|
|
'-' + this.randomId() + this.randomId() + this.randomId())
|
|
'-' + this.randomId() + this.randomId() + this.randomId())
|
|
},
|
|
},
|
|
|
|
|
|
@@ -245,8 +246,9 @@ export default {
|
|
}
|
|
}
|
|
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (d.getFullYear() + '').substr(4 - RegExp.$1.length))
|
|
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (d.getFullYear() + '').substr(4 - RegExp.$1.length))
|
|
for (var k in o)
|
|
for (var k in o)
|
|
- if (new RegExp('(' + k + ')').test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (('00' + o[
|
|
|
|
- k]).substr(('' + o[k]).length)))
|
|
|
|
|
|
+ if (new RegExp('(' + k + ')').test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : ((
|
|
|
|
+ '00' + o[
|
|
|
|
+ k]).substr(('' + o[k]).length)))
|
|
return fmt
|
|
return fmt
|
|
},
|
|
},
|
|
|
|
|
|
@@ -356,7 +358,8 @@ export default {
|
|
*/
|
|
*/
|
|
getPrivateSas(code) {
|
|
getPrivateSas(code) {
|
|
return new Promise((r, j) => {
|
|
return new Promise((r, j) => {
|
|
- if (!store.state.privateSas || checkSas(store.state.privateSas.timeout) || store.state.privateSas.name !== store.state.userInfo.TEAMModelId) {
|
|
|
|
|
|
+ if (!store.state.privateSas || checkSas(store.state.privateSas.timeout) || store.state.privateSas
|
|
|
|
+ .name !== store.state.userInfo.TEAMModelId) {
|
|
$api.blob.blobSasRCW({
|
|
$api.blob.blobSasRCW({
|
|
name: code || store.state.userInfo.TEAMModelId,
|
|
name: code || store.state.userInfo.TEAMModelId,
|
|
role: 'teacher'
|
|
role: 'teacher'
|
|
@@ -384,7 +387,8 @@ export default {
|
|
*/
|
|
*/
|
|
getSchoolSas(code) {
|
|
getSchoolSas(code) {
|
|
return new Promise((r, j) => {
|
|
return new Promise((r, j) => {
|
|
- if (!store.state.schoolSas || checkSas(store.state.schoolSas.timeout) || store.state.schoolSas.name !== store.state.userInfo.schoolCode) {
|
|
|
|
|
|
+ if (!store.state.schoolSas || checkSas(store.state.schoolSas.timeout) || store.state.schoolSas
|
|
|
|
+ .name !== store.state.userInfo.schoolCode) {
|
|
$api.blob.blobSasRCW({
|
|
$api.blob.blobSasRCW({
|
|
name: code || store.state.userInfo.schoolCode,
|
|
name: code || store.state.userInfo.schoolCode,
|
|
role: 'school'
|
|
role: 'school'
|
|
@@ -469,11 +473,11 @@ export default {
|
|
render: (h) => {
|
|
render: (h) => {
|
|
return h('div', {
|
|
return h('div', {
|
|
'class': 'my-spin',
|
|
'class': 'my-spin',
|
|
- style:{
|
|
|
|
- background:'#000',
|
|
|
|
- padding:'20px',
|
|
|
|
- borderRadius:'5px',
|
|
|
|
- color:'#fff'
|
|
|
|
|
|
+ style: {
|
|
|
|
+ background: '#000',
|
|
|
|
+ padding: '20px',
|
|
|
|
+ borderRadius: '5px',
|
|
|
|
+ color: '#fff'
|
|
}
|
|
}
|
|
}, [
|
|
}, [
|
|
h('Icon', {
|
|
h('Icon', {
|
|
@@ -490,12 +494,12 @@ export default {
|
|
const blobTool = require('./blobTool.js')
|
|
const blobTool = require('./blobTool.js')
|
|
const isSchool = vm.$parent.exerciseScope ? vm.$parent.exerciseScope === 1 : vm.exerciseScope === 1
|
|
const isSchool = vm.$parent.exerciseScope ? vm.$parent.exerciseScope === 1 : vm.exerciseScope === 1
|
|
const sasData = isSchool ? await this.getSchoolSas() : await this.getPrivateSas()
|
|
const sasData = isSchool ? await this.getSchoolSas() : await this.getPrivateSas()
|
|
-
|
|
|
|
|
|
+
|
|
const scope = isSchool ? 'school' : 'private'
|
|
const scope = isSchool ? 'school' : 'private'
|
|
const blobToolClass = blobTool.default
|
|
const blobToolClass = blobTool.default
|
|
//初始化Blob
|
|
//初始化Blob
|
|
let containerClient = new blobToolClass(sasData.url, sasData.name, sasData.sas, scope)
|
|
let containerClient = new blobToolClass(sasData.url, sasData.name, sasData.sas, scope)
|
|
- try{
|
|
|
|
|
|
+ try {
|
|
let id = vm.curId || vm.$parent.curId
|
|
let id = vm.curId || vm.$parent.curId
|
|
// 上传文件
|
|
// 上传文件
|
|
let blobFile = await containerClient.upload(file, 'item/' + id)
|
|
let blobFile = await containerClient.upload(file, 'item/' + id)
|
|
@@ -506,13 +510,18 @@ export default {
|
|
editor.txt.append('<p><video src=' +
|
|
editor.txt.append('<p><video src=' +
|
|
fileBlobUrl + ' class="richText-video" width="300" preload controls="controls"></video></p>')
|
|
fileBlobUrl + ' class="richText-video" width="300" preload controls="controls"></video></p>')
|
|
editor.change.emit()
|
|
editor.change.emit()
|
|
|
|
+ vm.$EventBus.$emit('noSave', {
|
|
|
|
+ path: blobFile.blob,
|
|
|
|
+ size: blobFile.size,
|
|
|
|
+ scope: scope
|
|
|
|
+ })
|
|
vm.$Spin.hide();
|
|
vm.$Spin.hide();
|
|
- }catch(e){
|
|
|
|
|
|
+ } catch (e) {
|
|
vm.$Message.error(e.spaceError)
|
|
vm.$Message.error(e.spaceError)
|
|
vm.$Spin.hide();
|
|
vm.$Spin.hide();
|
|
}
|
|
}
|
|
},
|
|
},
|
|
-
|
|
|
|
|
|
+
|
|
/* 上传视频到BLob */
|
|
/* 上传视频到BLob */
|
|
async doUploadAudio(vm, file, editor) {
|
|
async doUploadAudio(vm, file, editor) {
|
|
console.log(vm)
|
|
console.log(vm)
|
|
@@ -520,11 +529,11 @@ export default {
|
|
render: (h) => {
|
|
render: (h) => {
|
|
return h('div', {
|
|
return h('div', {
|
|
'class': 'my-spin',
|
|
'class': 'my-spin',
|
|
- style:{
|
|
|
|
- background:'#000',
|
|
|
|
- padding:'20px',
|
|
|
|
- borderRadius:'5px',
|
|
|
|
- color:'#fff'
|
|
|
|
|
|
+ style: {
|
|
|
|
+ background: '#000',
|
|
|
|
+ padding: '20px',
|
|
|
|
+ borderRadius: '5px',
|
|
|
|
+ color: '#fff'
|
|
}
|
|
}
|
|
}, [
|
|
}, [
|
|
h('Icon', {
|
|
h('Icon', {
|
|
@@ -541,12 +550,11 @@ export default {
|
|
const blobTool = require('./blobTool.js')
|
|
const blobTool = require('./blobTool.js')
|
|
const isSchool = vm.$parent.exerciseScope ? vm.$parent.exerciseScope === 1 : vm.exerciseScope === 1
|
|
const isSchool = vm.$parent.exerciseScope ? vm.$parent.exerciseScope === 1 : vm.exerciseScope === 1
|
|
const sasData = isSchool ? await this.getSchoolSas() : await this.getPrivateSas()
|
|
const sasData = isSchool ? await this.getSchoolSas() : await this.getPrivateSas()
|
|
-
|
|
|
|
const scope = isSchool ? 'school' : 'private'
|
|
const scope = isSchool ? 'school' : 'private'
|
|
const blobToolClass = blobTool.default
|
|
const blobToolClass = blobTool.default
|
|
//初始化Blob
|
|
//初始化Blob
|
|
let containerClient = new blobToolClass(sasData.url, sasData.name, sasData.sas, scope)
|
|
let containerClient = new blobToolClass(sasData.url, sasData.name, sasData.sas, scope)
|
|
- try{
|
|
|
|
|
|
+ try {
|
|
let id = vm.curId || vm.$parent.curId
|
|
let id = vm.curId || vm.$parent.curId
|
|
// 上传文件
|
|
// 上传文件
|
|
let blobFile = await containerClient.upload(file, 'item/' + id)
|
|
let blobFile = await containerClient.upload(file, 'item/' + id)
|
|
@@ -554,20 +562,52 @@ export default {
|
|
// 获取blob链接以及视频封面截图
|
|
// 获取blob链接以及视频封面截图
|
|
const fileSas = await this.getFileSas(blobFile.url)
|
|
const fileSas = await this.getFileSas(blobFile.url)
|
|
const fileBlobUrl = fileSas.url
|
|
const fileBlobUrl = fileSas.url
|
|
- editor.cmd["do"]('insertHTML', `<span class="richText-audio" contenteditable="false" >
|
|
|
|
|
|
+ editor.cmd["do"]('insertHTML', `<span><span> </span><span class="richText-audio" contenteditable="false" >
|
|
<span class="audio-info">
|
|
<span class="audio-info">
|
|
<i class="ivu-icon ivu-icon-ios-musical-notes" style="font-size: 24px;margin:0 10px"></i>
|
|
<i class="ivu-icon ivu-icon-ios-musical-notes" style="font-size: 24px;margin:0 10px"></i>
|
|
<span class="audio-name">${ file.name }</span>
|
|
<span class="audio-name">${ file.name }</span>
|
|
</span>
|
|
</span>
|
|
<audio src="${ fileBlobUrl }" id="audio" controls="controls" controlsList="nodownload"></audio>
|
|
<audio src="${ fileBlobUrl }" id="audio" controls="controls" controlsList="nodownload"></audio>
|
|
- </span>`);
|
|
|
|
|
|
+ </span><span> </span></span>`);
|
|
editor.change.emit()
|
|
editor.change.emit()
|
|
|
|
+ vm.$EventBus.$emit('noSave', {
|
|
|
|
+ path: blobFile.blob,
|
|
|
|
+ size: blobFile.size,
|
|
|
|
+ scope: scope
|
|
|
|
+ })
|
|
vm.$Spin.hide();
|
|
vm.$Spin.hide();
|
|
- }catch(e){
|
|
|
|
|
|
+ } catch (e) {
|
|
vm.$Message.error(e.spaceError)
|
|
vm.$Message.error(e.spaceError)
|
|
vm.$Spin.hide();
|
|
vm.$Spin.hide();
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
+ /* 删除未保存的BLOB多媒体文件 */
|
|
|
|
+ async deleteNoSave(noSaveArr) {
|
|
|
|
+ const blobTool = require('./blobTool.js')
|
|
|
|
+ const schoolSas = await this.getSchoolSas()
|
|
|
|
+ const privateSas = await this.getPrivateSas()
|
|
|
|
+ const blobToolClass = blobTool.default
|
|
|
|
+ let schoolBlobClient = new blobToolClass(schoolSas.url, schoolSas.name, schoolSas.sas, 'school')
|
|
|
|
+ let privateBlobClient = new blobToolClass(privateSas.url, privateSas.name, privateSas.sas, 'private')
|
|
|
|
+ let promiseArr = []
|
|
|
|
+ for (let i = 0; i < noSaveArr.length; i++) {
|
|
|
|
+ let item = noSaveArr[i]
|
|
|
|
+ promiseArr.push(new Promise((r, j) => {
|
|
|
|
+ let myClient = item.scope === 'school' ? schoolBlobClient : privateBlobClient
|
|
|
|
+ myClient.deleteBlob(item.path, item.size).then(res => {
|
|
|
|
+ r(200)
|
|
|
|
+ }).catch(err => {
|
|
|
|
+ j(err)
|
|
|
|
+ })
|
|
|
|
+ }))
|
|
|
|
+ }
|
|
|
|
+ Promise.all(promiseArr).then(result => {
|
|
|
|
+ localStorage.setItem('noSave','[]')
|
|
|
|
+ }).catch(err => {
|
|
|
|
+ console.log(err)
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+ },
|
|
isEqual: function(x, y) {
|
|
isEqual: function(x, y) {
|
|
// If both x and y are null or undefined and exactly the same
|
|
// If both x and y are null or undefined and exactly the same
|
|
if (x === y) {
|
|
if (x === y) {
|
|
@@ -611,8 +651,8 @@ export default {
|
|
}
|
|
}
|
|
return true;
|
|
return true;
|
|
},
|
|
},
|
|
-
|
|
|
|
- getLevelStuPercent(val,subjectIndex,index){
|
|
|
|
|
|
+
|
|
|
|
+ getLevelStuPercent(val, subjectIndex, index) {
|
|
let result = []
|
|
let result = []
|
|
val.students.forEach(stu => {
|
|
val.students.forEach(stu => {
|
|
result.push([
|
|
result.push([
|
|
@@ -621,40 +661,41 @@ export default {
|
|
stu.no || '-',
|
|
stu.no || '-',
|
|
val.fScores[subjectIndex].Value[index],
|
|
val.fScores[subjectIndex].Value[index],
|
|
stu.subjects[subjectIndex].fieldPoint[index],
|
|
stu.subjects[subjectIndex].fieldPoint[index],
|
|
- (stu.subjects[subjectIndex].fieldPoint[index] / val.fScores[subjectIndex].Value[index]).toFixed(2)
|
|
|
|
|
|
+ (stu.subjects[subjectIndex].fieldPoint[index] / val.fScores[subjectIndex].Value[index])
|
|
|
|
+ .toFixed(2)
|
|
])
|
|
])
|
|
})
|
|
})
|
|
return result
|
|
return result
|
|
},
|
|
},
|
|
-
|
|
|
|
- getLevelClassPercent(val,subjectIndex,index){
|
|
|
|
|
|
+
|
|
|
|
+ getLevelClassPercent(val, subjectIndex, index) {
|
|
let result = []
|
|
let result = []
|
|
val.classes.forEach(classItem => {
|
|
val.classes.forEach(classItem => {
|
|
result.push(classItem.subjects[subjectIndex].field[index])
|
|
result.push(classItem.subjects[subjectIndex].field[index])
|
|
})
|
|
})
|
|
return result
|
|
return result
|
|
},
|
|
},
|
|
-
|
|
|
|
- getLevelPercent(val,subjectIndex){
|
|
|
|
|
|
+
|
|
|
|
+ getLevelPercent(val, subjectIndex) {
|
|
let stuResult = {}
|
|
let stuResult = {}
|
|
let classResult = {}
|
|
let classResult = {}
|
|
- val.fieldName[subjectIndex].Value.forEach((item,index) => {
|
|
|
|
- stuResult[item] = this.getLevelStuPercent(val,subjectIndex,index)
|
|
|
|
- classResult[item] = this.getLevelClassPercent(val,subjectIndex,index)
|
|
|
|
|
|
+ val.fieldName[subjectIndex].Value.forEach((item, index) => {
|
|
|
|
+ stuResult[item] = this.getLevelStuPercent(val, subjectIndex, index)
|
|
|
|
+ classResult[item] = this.getLevelClassPercent(val, subjectIndex, index)
|
|
})
|
|
})
|
|
stuResult.grade = val.fieldAllPer[subjectIndex].Value
|
|
stuResult.grade = val.fieldAllPer[subjectIndex].Value
|
|
stuResult.keys = val.knowKey
|
|
stuResult.keys = val.knowKey
|
|
classResult.keys = val.knowkey
|
|
classResult.keys = val.knowkey
|
|
classResult.className = []
|
|
classResult.className = []
|
|
let obj = {
|
|
let obj = {
|
|
- stuResult:stuResult,
|
|
|
|
- classResult:classResult
|
|
|
|
|
|
+ stuResult: stuResult,
|
|
|
|
+ classResult: classResult
|
|
}
|
|
}
|
|
return obj
|
|
return obj
|
|
},
|
|
},
|
|
-
|
|
|
|
|
|
+
|
|
/* 学情知识点模块数据转换 */
|
|
/* 学情知识点模块数据转换 */
|
|
- getKnowStuPercent(val,subjectIndex,index){
|
|
|
|
|
|
+ getKnowStuPercent(val, subjectIndex, index) {
|
|
let result = []
|
|
let result = []
|
|
val.students.forEach(stu => {
|
|
val.students.forEach(stu => {
|
|
result.push([
|
|
result.push([
|
|
@@ -663,34 +704,35 @@ export default {
|
|
stu.no || '-',
|
|
stu.no || '-',
|
|
val.kScores[subjectIndex].Value[index],
|
|
val.kScores[subjectIndex].Value[index],
|
|
stu.subjects[subjectIndex].point[index],
|
|
stu.subjects[subjectIndex].point[index],
|
|
- (stu.subjects[subjectIndex].point[index] / val.kScores[subjectIndex].Value[index]).toFixed(2)
|
|
|
|
|
|
+ (stu.subjects[subjectIndex].point[index] / val.kScores[subjectIndex].Value[index])
|
|
|
|
+ .toFixed(2)
|
|
])
|
|
])
|
|
})
|
|
})
|
|
return result
|
|
return result
|
|
},
|
|
},
|
|
-
|
|
|
|
- getKnowClassPercent(val,subjectIndex,index){
|
|
|
|
|
|
+
|
|
|
|
+ getKnowClassPercent(val, subjectIndex, index) {
|
|
let result = []
|
|
let result = []
|
|
val.classes.forEach(classItem => {
|
|
val.classes.forEach(classItem => {
|
|
result.push(classItem.subjects[subjectIndex].point[index])
|
|
result.push(classItem.subjects[subjectIndex].point[index])
|
|
})
|
|
})
|
|
return result
|
|
return result
|
|
},
|
|
},
|
|
-
|
|
|
|
- getKnowPercent(val,subjectIndex){
|
|
|
|
|
|
+
|
|
|
|
+ getKnowPercent(val, subjectIndex) {
|
|
let stuResult = {}
|
|
let stuResult = {}
|
|
let classResult = {}
|
|
let classResult = {}
|
|
- val.knowName[subjectIndex].Value.forEach((item,index) => {
|
|
|
|
- stuResult[item] = this.getKnowStuPercent(val,subjectIndex,index)
|
|
|
|
- classResult[item] = this.getKnowClassPercent(val,subjectIndex,index)
|
|
|
|
|
|
+ val.knowName[subjectIndex].Value.forEach((item, index) => {
|
|
|
|
+ stuResult[item] = this.getKnowStuPercent(val, subjectIndex, index)
|
|
|
|
+ classResult[item] = this.getKnowClassPercent(val, subjectIndex, index)
|
|
})
|
|
})
|
|
stuResult.grade = val.knowAllper[subjectIndex].Value
|
|
stuResult.grade = val.knowAllper[subjectIndex].Value
|
|
stuResult.keys = val.knowKey
|
|
stuResult.keys = val.knowKey
|
|
classResult.keys = val.knowkey
|
|
classResult.keys = val.knowkey
|
|
classResult.className = []
|
|
classResult.className = []
|
|
let obj = {
|
|
let obj = {
|
|
- stuResult:stuResult,
|
|
|
|
- classResult:classResult
|
|
|
|
|
|
+ stuResult: stuResult,
|
|
|
|
+ classResult: classResult
|
|
}
|
|
}
|
|
return obj
|
|
return obj
|
|
},
|
|
},
|