Commit aff45816 authored by liudong1993's avatar liudong1993

1

parent 48e5f316
......@@ -45,15 +45,16 @@ module.exports = function (ctx) {
// Full list of options: https://quasar.dev/quasar-cli/quasar-conf-js#Property%3A-build
build: {
vueRouterMode: 'hash', // available values: 'hash', 'history'
env: ctx.dev ? {
API: 'http://192.168.20.51:8088/api',
API_ZC:'http://192.168.20.9:8087/api',
API_SK:'ws:192.168.20.214:'
API: 'https://localhost:5001/api',
// API: 'http://192.168.20.51:8088/api',
API_ZC: 'http://192.168.20.9:8087/api',
API_SK: 'ws:192.168.20.214:'
} : {
API: 'https://eduapi.oytour.com/api',
API_ZC:'http://propertyedu.oytour.com/api',
API_SK:'ws://47.96.23.199:'
API_ZC: 'http://propertyedu.oytour.com/api',
API_SK: 'ws://47.96.23.199:'
},
// transpile: false,
......@@ -153,7 +154,7 @@ module.exports = function (ctx) {
],
directives: [
'ClosePopup'
],
],
// Quasar plugins
plugins: [
......
......@@ -7,11 +7,20 @@
<script>
export default {
name: "App",
mounted() {
if ((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|wOSBrowser|BrowserNG|WebOS)/i))) {
//alert("shouji");
} else {
//alert("diannao");
document.write('<link href="font.css" rel="stylesheet" type="text/css" media="screen" />');
}
},
};
</script>
<style>
@import url("//at.alicdn.com/t/font_2077629_21slbfvfeud.css");
@import url("//at.alicdn.com/t/font_2077629_ou0hmd4zmr8.css");
.q-scrollarea__thumb {
z-index: 999999 !important;
}
......
......@@ -396,12 +396,12 @@ export function EduDownLoad(cmd, msg, fileName, callBack) {
*/
export function wechatUploadSelfFile(path, file, callback, configObj) {
//用户登录缓存
//配置写死的 阿里
//配置写死的 腾讯
var uploadConfig = {
Region:"oss-cn-chengdu",
SecretId:"LTAIwE7l9dImZSa3",
SecretKey:"j47Ajn0d0WzUCIX8Biyj3P2r8QDltI",
Bucket: "vt-im-bucket"
Region:"ap-chengdu",
SecretId:"AKIDDPnbIzi8C1eqEOPP8dw6MNAg9H9ldDKd",
SecretKey:"PdcLtOjslUzNFYdU4OSI1fKtdHpFT2Ob",
Bucket: "viitto-1301420277"
};
//获取文件扩展名
var index = file.name.lastIndexOf(".");
......@@ -415,6 +415,6 @@ export function EduDownLoad(cmd, msg, fileName, callBack) {
})
if (uploadConfig) {
newPath += "/" + timestamp1 + "" + suffix;
UploadFileToALi(uploadConfig, newPath, file, uploadLoadding, callback);
UploadFileToTencent(uploadConfig, newPath, file, uploadLoadding, callback);
}
}
\ No newline at end of file
......@@ -439,4 +439,16 @@ export function delLessonComment(data) {
method: 'post',
data
})
}
/**
* 获取班级学员树形列表
* @param {JSON参数} data
*/
export function queryClassStudentTree(data) {
return request({
url: '/Class/GetClassStudentTree',
method: 'post',
data
})
}
\ No newline at end of file
......@@ -241,3 +241,53 @@ export function saveBatchQuestionLevel(data) {
data
})
}
/**
* 根据题库编号获取题库题型分类列表【试卷组卷使用】
* @param {*} data
*/
export function queryQuestionCategoryList(data) {
return request({
url: '/Question/GetQuestionCategoryList',
method: 'post',
data
})
}
/**
* 获取试卷组卷模板
* @param {*} data
*/
export function queryExaminationTemplatePage(data) {
return request({
url: '/Exam/GetExaminationTemplatePage',
method: 'post',
data
})
}
/**
* 删除分组及问题
* @param {*} data
*/
export function DeletePaperGroup(data) {
return request({
url: '/Exam/DeletePaperGroup',
method: 'post',
data
})
}
/**
* 删除问题
* @param {*} data
*/
export function DeletePaperDetails(data) {
return request({
url: '/Exam/DeletePaperDetails',
method: 'post',
data
})
}
......@@ -176,4 +176,100 @@ export function SetSynvEduEmployee(data) {
method: 'post',
data
})
}
/**
* 删除欢迎语
*
*/
export function delWechatWelcomesInfo(data) {
return request({
url: '/QYWeChat/DelWechatWelcomesInfo',
method: 'post',
data
})
}
/**
* 获取欢迎语详情
*
*/
export function getWeChatWelcomesInfo(data) {
return request({
url: '/QYWeChat/GetWeChatWelcomesInfo',
method: 'post',
data
})
}
/**
* 获取渠道分组分页列表
*
*/
export function getWeChatChannelGroupPageList(data) {
return request({
url: '/QYWeChat/GetWeChatChannelGroupPageList',
method: 'post',
data
})
}
/**
* 新增修改渠道分组
*
*/
export function setWeChatChannelGroup(data) {
return request({
url: '/QYWeChat/SetWeChatChannelGroup',
method: 'post',
data
})
}
/**
* 删除渠道分组
*
*/
export function delWeChatChannelGroup(data) {
return request({
url: '/QYWeChat/DelWeChatChannelGroup',
method: 'post',
data
})
}
/**
* 获取客户标签/分组 列表
*
*/
export function getWeChatLableList(data) {
return request({
url: '/QYWeChat/GetWeChatLableList',
method: 'post',
data
})
}
/**
* 新增修改分组/标签
*
*/
export function setWeChatLable(data) {
return request({
url: '/QYWeChat/SetWeChatLable',
method: 'post',
data
})
}
/**
* 删除分组/标签
*
*/
export function delWeChatLable(data) {
return request({
url: '/QYWeChat/DelWeChatLable',
method: 'post',
data
})
}
\ No newline at end of file
......@@ -141,4 +141,77 @@ export function GetPaper(data) {
method: 'post',
data
})
}
/**
* 保存试卷信息
* @param {JSON参数} data
*/
export function savePaperInfo(data) {
return request({
url: '/Exam/SetPaper',
method: 'post',
data
})
}
/**
* 新增修改文件夹
* @param {JSON参数} data
*/
export function savePaperFolderInfo(data) {
return request({
url: '/Exam/SetPaperFolder',
method: 'post',
data
})
}
/**
* 智能组卷根据模板生成试卷
* @param {JSON参数} data
*/
export function savePaperTemplate(data) {
return request({
url: '/Exam/SetPaperTemplate',
method: 'post',
data
})
}
/**
* 发布考试
* @param {JSON参数} data
*/
export function savePublishExam(data) {
return request({
url: '/Exam/PublishExam',
method: 'post',
data
})
}
/**
* 获取考卷分页列表
* @param {JSON参数} data
*/
export function queryPublishExamPage(data) {
return request({
url: '/Exam/GetPublishExamPage',
method: 'post',
data
})
}
/**
* 根据编号获取考卷发布信息
* @param {JSON参数} data
*/
export function queryExamPublish(data) {
return request({
url: '/Exam/GetExamPublish',
method: 'post',
data
})
}
\ No newline at end of file
......@@ -73,7 +73,7 @@
color: #6BA9FF;
}
.InpDIV{
width: 765px;
/* width: 765px; */
min-height: 38px;
border-radius: 4px;
border: 1px solid #E1EAF4;
......
......@@ -63,7 +63,7 @@
isInputChange: false,
uploadType: "1", //1-上传图片,2-上传附件,3-上传音频
//默认图片域名
defaultImgDomain: "http://imgfile.oytour.com/static/",
defaultImgDomain: "https://imgfile.oytour.com/static/",
ViewDomain: "",
};
},
......
This diff is collapsed.
......@@ -125,18 +125,36 @@
emit-value map-options />
<div style="margin-top: 15px;">
<div style="width:70px">上传音频:</div>
<audio controls="controls" v-if='addMsg.AudioModel.AudioPath' style="margin-top: 10px;">
<source :src="addMsg.AudioModel.AudioPath" type="audio/ogg">
<source :src="addMsg.AudioModel.AudioPath" type="audio/mpeg">
</audio>
<!-- <audio controls="controls" style="margin-top: 10px;">
<source :src="addMsg.AudioModel.AudioPath" > -->
<!-- </audio> -->
<q-circular-progress
v-if='addMsg.AudioModel.AudioPath'
show-value
class="text-red q-ma-md"
:max='duration'
:value="timevalue"
size="70px"
:thickness="0.2"
color="light-blue"
track-color="grey-3"
@click.stop="playVoice(addMsg.AudioModel.AudioPath)"
>
<q-icon name="volume_up" class="q-mr-xs" />
<span style="font-size: 11px;">
{{timevalue?timevalue.toFixed(1):0}}
</span>
</q-circular-progress>
<div style="margin-top: 15px;">
<el-upload class="avatar-uploader " action="" :before-upload="uploadFile"
:show-file-list="false">
<q-btn color="accent" size="sm" class="q-mr-md" icon="cloud_upload" label="上传">
<q-btn color="accent" size="sm" class="q-mr-md" icon="cloud_upload" label="上传" @click='stopPlayVoice()'>
</q-btn>
</el-upload>
<div style="margin-top: 20px;">
(音频上传大小不超过2MB,播放长度不超过60s,支持AMR,MP3格式。)
(音频上传大小不超过2MB,播放长度不超过60s,支持AMR格式。)
</div>
</div>
......@@ -145,8 +163,8 @@
</q-card-section>
<q-separator />
<q-card-actions align="right" class="bg-white">
<q-btn class="q-mr-md" label="取消" @click="getcancel" />
<q-btn color="accent" class="q-mr-md" label="确定" @click="saveaudio()" />
<q-btn class="q-mr-md" label="取消" @click="getcancel(),stopPlayVoice()" />
<q-btn color="accent" class="q-mr-md" label="确定" @click="saveaudio(),stopPlayVoice()" />
</q-card-actions>
</q-card>
</q-dialog>
......@@ -167,9 +185,7 @@
<div style="width:70px">上传视频:</div>
<video width="320" height="240" controls="controls" v-if="addMsg.VideoModel.VideoPath!=''">
<source :src="addMsg.VideoModel.VideoPath" type="video/ogg" />
<source :src="addMsg.VideoModel.VideoPath" type="video/mp4" />
<source :src="addMsg.VideoModel.VideoPath" type="video/webm" />
</video>
<div style="margin-top: 15px;">
<el-upload class="avatar-uploader " action="" :before-upload="uploadFile"
......@@ -316,6 +332,8 @@
</template>
<script>
import BenzAMRRecorder from 'benz-amr-recorder'
import {
wechatUploadSelfFile
} from "../../../api/common/common"; //上传图片
......@@ -347,8 +365,10 @@
Type: 1,
Is_Sync:1,//是否同步 暂时默认为1 同步
MediaGroupId: '',
}
},
duration:0,//音频中时长
timevalue:0,//音频播放到时间点
playRec:null
}
},
created() {
......@@ -508,15 +528,17 @@
}
if (this.type == 4) {//音频上传
// 文件类型进行判断
const isAudio = files.type === "audio/mp3" || files.type === "audio/mpeg";
const isAudio = files.type === "audio/amr";
const isLt2M = files.size / 1024 / 1024 < 2;
const isTime60S = this.getTimes(files) >= 60 ? true : false;
let Times = this.getTimes(files)
const isTime60S = Times >= 60 ? true : false;
// 获取时长
;
if (!isAudio) {
this.$q.notify({
type: 'negative',
message: `上传文件只能是Mp3格式!`,
message: `上传文件只能是AMR格式!`,
position: 'top'
})
} else {
......@@ -534,11 +556,28 @@
position: 'top'
})
} else {
wechatUploadSelfFile('wechatcatalogue', files, res => {
if (res.Code == 1) {
this.addMsg.AudioModel.AudioName = res.FileName;
this.addMsg.AudioModel.AudioPath = res.FileUrl;
this.$forceUpdate();
let amr= new BenzAMRRecorder()
let that = this
amr.initWithUrl(res.FileUrl).then(function () {
that.duration = amr.getDuration()
if(Number(that.duration) >=60){
that.$q.notify({
type: 'negative',
message: `上传文件时长不能超过60秒!!`,
position: 'top'
})
}else{
that.addMsg.AudioModel.AudioName = res.FileName;
that.addMsg.AudioModel.AudioPath = res.FileUrl;
that.$forceUpdate();
}
}).catch((e) => {
})
}
})
}
......@@ -549,7 +588,7 @@
// 文件类型进行判断
const isLt10M = files.size / 1024 / 1024 < 10;
if (['video/mp4', 'video/ogg', 'video/flv', 'video/avi', 'video/wmv', 'video/rmvb'].indexOf(files.type) == -1) {
if (['video/mp4'].indexOf(files.type) == -1) {
this.$q.notify({
type: 'negative',
message: `请上传正确的视频格式!`,
......@@ -595,7 +634,7 @@
}
wechatUploadSelfFile('wechatcatalogue', files, res => {
if (res.Code == 1) {
console.log(res)
this.addMsg.FileModel.FileName = res.FileName;
this.addMsg.FileModel.FilePath = res.FileUrl;
this.$forceUpdate();
......@@ -805,6 +844,43 @@
);
}
},
playVoice(_url) {
// TODO 这里暂时没处理 音频播放中暂停
let vm = this
if (vm.playRec !== null) {
vm.stopPlayVoice()
}
vm.playRec = new BenzAMRRecorder()
//⚠️注意跨域问题
vm.playRec.initWithUrl(_url).then(function () {
vm.playRec.play()
let timer = setInterval(() => {
vm.timevalue +=0.1
vm.$forceUpdate();
}, 100);
vm.playRec.onEnded(function () {
vm.timevalue = 0
clearInterval(timer);//停止
setTimeout(() => {
vm.$forceUpdate();
}, 1000);
})
}).catch((e) => {
vm.$message.error('播放录音失败')
})
},
//停止播放
stopPlayVoice() {
if(this.playRec){
if (this.playRec.isPlaying()) {
this.playRec.stop()
}
}
},
}
}
......
......@@ -7,7 +7,7 @@
</div> -->
<div class="page-content">
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat
class="sticky-column-table no-bottom-table" separator="none" title="" :data="dataList" :columns="columns"
class="sticky-column-table" separator="none" title="" :data="dataList" :columns="columns"
row-key="name">
<template v-slot:body-cell-title="props">
......@@ -23,12 +23,22 @@
<q-img v-if="props.row.Type==2 || props.row.Type==3 || props.row.Type==6"
:src="getType(props.row,'content')" style="width: 80px;height: 80px;border-radius: 6px;display: flex;">
</q-img>
<audio controls="controls"
v-if='props.row.Type==4 && props.row.AudioModel && props.row.AudioModel.AudioPath'
<!-- <audio controls="controls"
style="width: 200px;height: 40px;">
<source :src="props.row.AudioModel.AudioPath" type="audio/ogg">
<source :src="props.row.AudioModel.AudioPath" type="audio/mpeg">
</audio>
</audio> -->
<q-circular-progress v-if='props.row.Type==4 && props.row.AudioModel && props.row.AudioModel.AudioPath'
show-value class="text-red q-ma-md" :max='props.row.duration' :value="props.row.timevalue" size="70px"
:thickness="0.2" color="light-blue" track-color="grey-3"
@click.stop="playVoice(props.row.AudioModel.AudioPath,props.pageIndex)">
<q-icon name="volume_up" class="q-mr-xs" />
<span style="font-size: 11px;">
{{props.row.timevalue?props.row.timevalue.toFixed(1):0}}
</span>
</q-circular-progress>
<video width="200" height="120" controls="controls"
v-if="props.row.Type==5 && props.row.VideoModel && props.row.VideoModel.VideoPath">
<source :src="props.row.VideoModel.VideoPath" type="video/ogg" />
......@@ -50,13 +60,17 @@
</q-td>
</template>
<template v-slot:bottom>
<!-- <q-pagination class="full-width justify-end" v-model="msg.pageIndex" color="primary" :max="pageCount"
:input="true" @input="changePage" /> -->
</template>
<template v-slot:body-cell-optioned="props">
<q-td :props="props">
<q-btn flat size="xs" icon="edit" style="font-weight:400;color: #3FC4FF" class="q-mr-xs" label="编辑"
v-if="props.row.Type==1 || props.row.Type==3 || props.row.Type==6 " @click="goedit(props.row)" />
<q-btn flat size="xs" icon="edit" style="font-weight:400;color: #3FC4FF" class="q-mr-xs" label="移动"
@click="plmove(props)" />
<q-btn flat size="xs" icon="iconfont icon-yidongdao" style="font-weight:400;color: #3FC4FF" class="q-mr-xs"
label="移动" @click="plmove(props)" />
<q-btn flat size="xs" icon="delete" color="negative" class="q-mr-xs" label="删除"
@click="goDetailed(props.row,'0')" />
</q-td>
......@@ -75,6 +89,7 @@
<script>
import alladdsc from './allAddSC'
import BenzAMRRecorder from 'benz-amr-recorder'
import {
delWecharMediumInfo,//删除素材
} from '../../../api/system/wechat';
......@@ -149,11 +164,20 @@
field: 'DeptId'
}
],
playRec: null, //播放对象
voiceActive: null,
}
},
created() {
},
destroyed(){//页面销毁时候清楚音频的播放
if(this.playRec){
if (this.playRec.isPlaying()) {
this.playRec.stop()
}
}
},
methods: {
......@@ -262,6 +286,48 @@
this.$emit('editsuccess')
this.Isadd = false
},
playVoice(_url, index) {
// TODO 这里暂时没处理 音频播放中暂停
let vm = this
if (vm.voiceActive && (vm.voiceActive != index)) {//如果再放一个点击另一个上一个清0
vm.dataList[vm.voiceActive].timevalue = 0
}
if (vm.playRec !== null) {
vm.stopPlayVoice(index)
}
vm.playRec = new BenzAMRRecorder()
//⚠️注意跨域问题
vm.playRec.initWithUrl(_url).then(function () {
vm.voiceActive = index
vm.playRec.play()
let timer = setInterval(() => {
vm.dataList[index].timevalue += 0.1;
vm.$set(vm.dataList, index, vm.dataList[index])
// vm.$forceUpdate();
}, 100);
vm.playRec.onEnded(function () {
vm.voiceActive = null;
vm.dataList[index].timevalue = 0
clearInterval(timer);//停止
setTimeout(() => {
vm.$set(vm.dataList, index, vm.dataList[index])
}, 1000);
})
}).catch((e) => {
vm.$message.error('播放录音失败')
})
},
//停止播放
stopPlayVoice() {
if(this.playRec){
if (this.playRec.isPlaying()) {
this.playRec.stop()
}
}
},
}
}
......
......@@ -10,7 +10,8 @@
<q-btn color="accent" style="float:right;" size="sm" class="q-mr-md" icon="edit" label="修改分组"
@click="plmove()"></q-btn>
</div>
<div style="width: 100%;display: flex;align-items: center;flex-wrap: wrap;padding: 10px 20px;" v-if="dataList.length>0">
<div style="width: 100%;display: flex;align-items: center;flex-wrap: wrap;padding: 10px 20px;"
v-if="dataList.length>0">
<q-card class="imgcard" v-for="(x,y) in dataList" :key='y'
:style="{border:x.check==true?'2px solid #91d5ff':'2px solid #FFF'}"
@click="dataList[y].check = !dataList[y].check,$forceUpdate();">
......@@ -22,28 +23,48 @@
<!-- <i class="el-icon-edit-outline" style="font-size: 20px;color: #1890ff;"
@click.stop="goedit(x)"></i> -->
</div>
<audio controls="controls" v-if='x.AudioModel && x.AudioModel.AudioPath' style="margin-top: 10px;" class="imgstyle">
<source :src="x.AudioModel.AudioPath" type="audio/ogg">
<source :src="x.AudioModel.AudioPath" type="audio/mpeg">
</audio>
<div class="onetext" style="margin-top: 5px;">上传者:{{x.UpdateByName}}</div>
<div class="onetext" style="margin-top: 5px;">分组:{{x.MediumGroupName}}</div>
<!--
<audio controls="controls" v-if='x.AudioModel && x.AudioModel.AudioPath'
style="margin-top: 10px;" class="imgstyle" :src="x.AudioModel.AudioPath"></audio> -->
<q-circular-progress
show-value
class="text-red q-ma-md"
:max='x.duration'
:value="x.timevalue"
size="70px"
:thickness="0.2"
color="light-blue"
track-color="grey-3"
@click.stop="playVoice(x.AudioModel.AudioPath,y)"
>
<q-icon name="volume_up" class="q-mr-xs" />
<span style="font-size: 11px;">
{{x.timevalue?x.timevalue.toFixed(1):0}}
</span>
</q-circular-progress>
<div class="onetext" style="margin-top: 5px;">
{{x.AudioModel&&x.AudioModel.AudioName?x.AudioModel.AudioName:''}}</div>
<div class="onetext" style="margin-top: 5px;">上传者:{{x.UpdateByName}}</div>
<div class="onetext" style="margin-top: 5px;">分组:{{x.MediumGroupName}}</div>
</q-card-section>
</q-card>
</div>
<div style="width: 100%;height: 50px;line-height: 50px;text-align: center;" v-if="dataList.length==0">暂无数据</div>
<div style="width: 100%;height: 50px;line-height: 50px;text-align: center;" v-if="dataList.length==0">暂无数据
</div>
</div>
<div v-if="Isadd==true">
<alladdsc :allclassifyList="allclassifyList" type='4' @editsuccess="getchildren" :editobj='editobj' @getcancel='Isadd=false'></alladdsc>
<alladdsc :allclassifyList="allclassifyList" type='4' @editsuccess="getchildren" :editobj='editobj'
@getcancel='Isadd=false'></alladdsc>
</div>
</div>
</template>
<script>
import BenzAMRRecorder from 'benz-amr-recorder'
import alladdsc from './allAddSC'
export default {
name: "audiomaterial",
......@@ -55,7 +76,7 @@
type: Array,
default: [],
},
allclassifyList:{
allclassifyList: {
type: Array,
default: [],
}
......@@ -64,39 +85,88 @@
return {
loading: false,
Isadd: false,
editobj:null
editobj: null,
playRec: null, //播放对象
voiceActive: null,
}
},
created() {
created() {
},
destroyed(){//页面销毁时候清楚音频的播放
if(this.playRec){
if (this.playRec.isPlaying()) {
this.playRec.stop()
}
}
},
methods: {
goadd() {
this.Isadd = true;
this.editobj=null
this.editobj = null
},
goedit(row){
this.editobj= {}
goedit(row) {
this.editobj = {}
this.editobj.Id = row.Id;
this.editobj.MediaGroupId = row.MediaGroupId;
this.editobj.Type = row.Type;
this.editobj.AudioModel = JSON.parse(JSON.stringify(row.AudioModel)) ;
this.editobj.AudioModel = JSON.parse(JSON.stringify(row.AudioModel));
this.Isadd = true
},
getchildren(){
getchildren() {
this.$emit('editsuccess')
this.Isadd = false
},
pldelete(){
pldelete() {
this.$emit('getdelete')
},
plmove(){
plmove() {
this.$emit('getmove')
}
},
playVoice(_url, index) {
// TODO 这里暂时没处理 音频播放中暂停
let vm = this
if(vm.voiceActive && (vm.voiceActive !=index)){//如果再放一个点击另一个上一个清0
vm.dataList[vm.voiceActive].timevalue = 0
}
if (vm.playRec !== null) {
vm.stopPlayVoice(index)
}
vm.playRec = new BenzAMRRecorder()
//⚠️注意跨域问题
vm.playRec.initWithUrl(_url).then(function () {
vm.voiceActive = index
vm.playRec.play()
let timer = setInterval(() => {
vm.dataList[index].timevalue +=0.1
vm.$forceUpdate();
}, 100);
vm.playRec.onEnded(function () {
vm.voiceActive = null;
vm.dataList[index].timevalue = 0
clearInterval(timer);//停止
setTimeout(() => {
vm.$forceUpdate();
}, 1000);
})
}).catch((e) => {
vm.$message.error('播放录音失败')
})
},
//停止播放
stopPlayVoice() {
if(this.playRec){
if (this.playRec.isPlaying()) {
this.playRec.stop()
}
}
},
}
}
......
......@@ -36,8 +36,9 @@
<i v-else class="iconfont icon-excel"></i>
</div>
<div class="onetext" style="margin-top: 5px;">上传者:{{x.UpdateByName}}</div>
<div class="onetext" style="margin-top: 5px;">分组:{{x.MediumGroupName}}</div>
<div class="onetext" style="margin-top: 5px;">{{x.FileModel && x.FileModel.FileName ? x.FileModel.FileName:''}}</div>
<div class="onetext" style="margin-top: 5px;">上传者:{{x.UpdateByName}}</div>
<div class="onetext" style="margin-top: 5px;">分组:{{x.MediumGroupName}}</div>
</q-card-section>
</q-card>
......@@ -109,7 +110,6 @@
showUpLoadFile(i) {
// 文件类型进行判断
if (
i.FileName.substring(
i.FileName.lastIndexOf(".") + 1,
......
......@@ -31,7 +31,7 @@
<q-btn flat size="xs" icon="edit" style="font-weight:400;color: #3FC4FF" class="q-mr-xs"
label="编辑" @click="goedits(props.row)" />
<q-btn flat size="xs" icon="edit" style="font-weight:400;color: #3FC4FF" class="q-mr-xs"
<q-btn flat size="xs" icon="iconfont icon-yidongdao" style="font-weight:400;color: #3FC4FF" class="q-mr-xs"
label="移动" @click="plmove(props)" />
<q-btn flat size="xs" icon="delete" color="negative" class="q-mr-xs"
label="删除" @click="goDetailed(props.row)" />
......
......@@ -27,9 +27,11 @@
<source :src="x.VideoModel.VideoPath" type="video/mp4" />
<source :src="x.VideoModel.VideoPath" type="video/webm" />
</video>
<div class="onetext" style="margin-top: 5px;">{{x.VideoModel && x.VideoModel.VideoName ?x.VideoModel.VideoName:''}}</div>
<div class="onetext" style="margin-top: 5px;">上传者:{{x.UpdateByName}}</div>
<div class="onetext" style="margin-top: 5px;">分组:{{x.MediumGroupName}}</div>
<div class="onetext" style="margin-top: 5px;">上传者:{{x.UpdateByName}}</div>
<div class="onetext" style="margin-top: 5px;">分组:{{x.MediumGroupName}}</div>
</q-card-section>
</q-card>
......
<template>
<q-dialog v-model="persistent" content-class="bg-grey-1" persistent transition-show="scale" transition-hide="scale">
<q-card style="width: 850px;max-width:900px;">
<q-card-section>
<div class="text-h6">选择学员</div>
</q-card-section>
<div class="page-search row items-center">
<div class="col row wrap q-ml-lg q-col-gutter-md">
<div class="col-3">
<q-input @input="research" clearable standout="bg-primary text-white" v-model="msg.GuestName" label="学员名称"
@clear="research" maxlength="20" />
</div>
<div class="col-3">
<q-input @input="research" clearable standout="bg-primary text-white" v-model="msg.ClassName" label="班级名称"
@clear="research" maxlength="20" />
</div>
<div class="col-3">
<q-input @input="research" clearable standout="bg-primary text-white" v-model="msg.ClassNo" label="班级编号"
@clear="research" maxlength="20" />
</div>
</div>
</div>
<q-card-section class="q-pt-none scroll" style="max-height: 50vh">
<el-tree :data="dataList" show-checkbox node-key="GuestId" ref="classStuTree" highlight-current
:props="defaultProps">
</el-tree>
</q-card-section>
<q-separator />
<q-card-actions align="right" class="bg-white">
<q-btn label="取消" flat color="grey-10" style="font-weight:400 !important" @click="closeSaveForm" />
<q-btn label="确认选择" color="accent q-px-md" style="font-weight:400 !important" @click="sureQuestionBank" />
</q-card-actions>
</q-card>
</q-dialog>
</template>
<script>
import {
queryClassStudentTree,
} from '../../api/course/class';
export default {
data() {
return {
persistent: true,
defaultProps: {
children: 'SubList',
label: 'Name'
},
msg: {
GuestName: "", //学员名称
ClassName: "", //班级名称
ClassNo: "", //班级编号
}, //查询参数
loading: false, //表格加载进度条
dataList: [], //数据列表
}
},
mounted() {
this.getClassStudentTree();
},
methods: {
//重新查询
research() {
this.getClassStudentTree();
},
//获取题库分页列表
getClassStudentTree() {
queryClassStudentTree(this.msg).then(res => {
if (res.Code == 1) {
this.dataList = res.Data;
}
})
},
//关闭弹窗
closeSaveForm() {
this.$emit('close')
},
//确认选择
sureQuestionBank() {
var tempArray = [];
var checkArray = this.$refs.classStuTree.getCheckedNodes();
if (checkArray && checkArray.length > 0) {
checkArray.forEach(item => {
if (item.SubList && item.SubList.length > 0) {} else {
tempArray.push(item);
}
})
}
this.$emit('success', tempArray);
},
},
}
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
<template>
<q-dialog v-model="persistent" content-class="bg-grey-1" persistent transition-show="scale" transition-hide="scale">
<q-card style="width: 850px;max-width:900px;">
<q-card-section>
<div class="text-h6">模板信息</div>
</q-card-section>
<q-card-section class="q-pt-none scroll" style="max-height: 70vh">
<div class="page-search row items-center">
<div class="col row wrap q-mr-lg q-col-gutter-md">
<div class="col-12">
<q-input @input="research" clearable standout="bg-primary text-white" v-model="msg.TemplateName" label="关键字"
@clear="research" maxlength="20" />
</div>
</div>
</div>
<div class="page-content">
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat
class="sticky-column-table sticky-header-column-table" style="max-height: 550px" separator="none" :data="dataList" :columns="columns"
row-key="TemplateId" selection="single" :selected.sync="selectedTemplate">
<template v-slot:top="props">
<div class="col-2 q-table__title">模板列表</div>
<q-space />
</template>
<template v-slot:body-cell-Title="props">
<td style="width:400px;">
<div @click="goDetail(props.row)" v-html="props.row.Title" class="quetion_Title">
</div>
</td>
</template>
<template v-slot:bottom>
<q-pagination class="full-width justify-end" v-model="msg.pageIndex" color="primary" :max="pageCount"
:input="true" @input="changePage" />
</template>
</q-table>
</div>
</q-card-section>
<q-separator />
<q-card-actions align="right" class="bg-white">
<q-btn label="取消" flat color="grey-10" style="font-weight:400 !important" @click="closeSaveForm" />
<q-btn label="确认选择" color="accent q-px-md" style="font-weight:400 !important" @click="sureTemplate" />
</q-card-actions>
</q-card>
</q-dialog>
</template>
<script>
import {
queryExaminationTemplatePage,
} from '../../api/question/question';
export default {
data() {
return {
persistent: true,
msg: {
pageIndex: 1,
pageSize: 12,
rowsPerPage: 12,
TemplateName: ''
},
pageCount: 0, //总页数
loading: false, //表格加载进度条
columns: [{
name: 'TemplateId',
label: '编号',
field: 'TemplateId',
align: 'left'
},
{
name: 'TemplateName',
label: '模板名称',
field: 'TemplateName',
align: 'left',
},
{
name: 'TemplateScore',
label: '总分',
field: 'TemplateScore',
align: 'left',
},
{
name: 'TemplateDifficultyTypeName',
label: '难度',
field: 'TemplateDifficultyTypeName',
align: 'left'
},
{
name: 'QuestionStructure',
label: '题型结构',
field: 'QuestionStructure',
align: 'left'
},
],
dataList: [], //数据列表
selectedTemplate: [], //选择的题库
}
},
mounted() {
this.getExaminationTemplatePage();
},
methods: {
//获取题库分页列表
getExaminationTemplatePage() {
queryExaminationTemplatePage(this.msg).then(res => {
if (res.Code == 1) {
this.dataList = res.Data.PageData;
this.pageCount = res.Data.PageCount;
}
})
},
//翻页
changePage(val) {
this.msg.pageIndex = val;
this.getExaminationTemplatePage()
},
research() {
this.msg.pageIndex = 1;
this.getExaminationTemplatePage();
},
//关闭弹窗
closeSaveForm() {
this.$emit('close')
this.persistent = false
},
//确认选择
sureTemplate() {
this.persistent = false;
var tempObj = {};
if (this.selectedTemplate && this.selectedTemplate.length > 0) {
tempObj=this.selectedTemplate[0];
}
this.$emit('success', tempObj);
},
},
}
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
<template>
<q-dialog v-model="persistent" content-class="bg-grey-1" persistent transition-show="scale" transition-hide="scale">
<q-card style="width: 500px;max-width:500px;">
<q-card-section>
<div class="text-h6">{{objOption.PaperId==0?'新增文件夹':'修改文件夹名称'}}</div>
</q-card-section>
<q-card-section class="q-pt-none scroll" style="max-height: 70vh">
<div class="row wrap">
<q-input filled stack-label maxlength="50" :dense="false" v-model="objOption.PaperName" ref="PaperName"
class="col-12 q-pr-lg q-pb-lg" label="文件夹名称" :rules="[val => !!val || '请填写文件夹名称']" />
</div>
</q-card-section>
<q-separator />
<q-card-actions align="right" class="bg-white">
<q-btn label="取消" flat color="grey-10" style="font-weight:400 !important" @click="closeSaveForm" />
<q-btn label="立即提交" color="accent" class="q-px-md" style="font-weight:400 !important" :loading="saveLoading"
@click="setPaperFolderInfo" />
</q-card-actions>
</q-card>
</q-dialog>
</template>
<script>
import {
GetPaper,
savePaperFolderInfo
} from '../../api/teacher/index'
export default {
props: {
saveObj: {
type: Object,
default: null
}
},
data() {
return {
persistent: true,
objOption: {
PaperId: 0,
PaperName: '', //文件夹名称
PaperType: 1, //试卷类型(1-文件夹,2-试卷)
ParentId: 0, //上级文件夹编号
},
}
},
created() {
},
mounted() {
this.initObj()
},
methods: {
initObj() {
if (this.saveObj) {
this.optionTitle = "修改文件夹名称"
this.objOption.PaperId = this.saveObj.PaperId;
this.objOption.PaperName = this.saveObj.PaperName;
this.objOption.PaperType = this.saveObj.PaperType;
this.objOption.ParentId = this.saveObj.ParentId;
} else {
this.optionTitle = "新增文件夹"
}
},
closeSaveForm() {
this.$emit('close')
this.persistent = false
},
setPaperFolderInfo() {
this.saveLoading = true
savePaperFolderInfo(this.objOption).then(res => {
this.saveLoading = false
this.$q.notify({
icon: 'iconfont icon-chenggong',
color: 'accent',
timeout: 2000,
message: '数据保存成功!',
position: 'top'
})
this.$emit("success")
this.closeSaveForm()
}).catch(() => {
this.saveLoading = false
})
},
},
}
</script>
<style>
</style>
\ No newline at end of file
<template>
<q-dialog v-model="persistent" content-class="bg-grey-1" persistent transition-show="scale" transition-hide="scale">
<q-card style="width: 850px;max-width:900px;">
<q-card-section>
<div class="text-h6">问题列表</div>
</q-card-section>
<q-card-section class="q-pt-none scroll" style="max-height: 70vh">
<div class="page-search row items-center">
<div class="col row wrap q-mr-lg q-col-gutter-md">
<div class="col-3">
<q-input @change="research" clearable standout="bg-primary text-white" v-model="msg.Title" label="关键字"
@clear="research" maxlength="20" />
</div>
<div class="col-3">
<q-select @input="research" standout="bg-primary text-white" option-value="Id" option-label="Name"
v-model="msg.QCategoryId" :options="questionCategoryList" emit-value map-options label="分类" multiple
clearable />
</div>
<div class="col-3">
<q-select @input="research" standout="bg-primary text-white" option-value="QId" option-label="Name"
v-model="msg.QuestionTypeId" :options="questionTypeList" emit-value map-options label="题型" multiple
clearable />
</div>
<div class="col-3">
<q-select @input="research" standout="bg-primary text-white" option-value="Id" option-label="Name"
v-model="msg.DifficultyType" :options="questionDifficultyTypeList" emit-value map-options label="难度"
multiple clearable />
</div>
</div>
</div>
<div class="page-content">
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat
class="sticky-column-table sticky-header-column-table" style="max-height: 550px" separator="none"
:data="dataList" :columns="columns" row-key="QuestionId" selection="multiple"
:selected.sync="selectedQuestion">
<template v-slot:top="props">
<div class="col-2 q-table__title">问题列表</div>
<q-space />
</template>
<template v-slot:body-cell-Title="props">
<td style="width:400px;">
<div @click="goDetail(props.row)" v-html="props.row.Title" class="quetion_Title">
</div>
</td>
</template>
<template v-slot:bottom>
<q-pagination class="full-width justify-end" v-model="msg.pageIndex" color="primary" :max="pageCount"
:input="true" @input="changePage" />
</template>
</q-table>
</div>
</q-card-section>
<q-separator />
<q-card-actions align="right" class="bg-white">
<q-btn label="取消" flat color="grey-10" style="font-weight:400 !important" @click="closeSaveForm" />
<q-btn label="确认选择" color="accent q-px-md" style="font-weight:400 !important" :loading="saveLoading"
@click="sureQuestion" />
</q-card-actions>
</q-card>
</q-dialog>
</template>
<script>
import {
queryQuestionCategory,
queryQuestionTypeList,
queryDifficultyType,
queryQuestionPageList,
} from '../../api/question/question';
export default {
data() {
return {
persistent: true,
msg: {
pageIndex: 1,
pageSize: 12,
rowsPerPage: 12,
CourseId: 0,
BankId: 0,
Title: "",
PointName: "", //知识点
QuestionTypeId: [], //题型
DifficultyType: [], //难易程度
QCategoryId: [], //分类
IsShowAllQuestion: 1, //查询所有问题字段
},
questionCategoryList: [],
questionTypeList: [], //问题类型列表
questionDifficultyTypeList: [],
columns: [{
name: 'Number',
label: '编号',
field: 'Number',
align: 'left'
},
{
name: 'Title',
label: '题目',
field: 'Title',
align: 'left'
},
{
name: 'CategoryName',
label: '分类',
field: 'CategoryName',
align: 'left',
},
{
name: 'QuestionTypeName',
label: '题型',
field: 'QuestionTypeName',
align: 'left',
},
{
name: 'DifficultyTypeName',
label: '难易',
field: 'DifficultyTypeName',
align: 'left'
},
{
name: 'LevelTypeName',
label: '考级程度',
field: 'LevelTypeName',
align: 'left'
}
],
dataList: [],
pageCount: 0,
selectedQuestion: [],
loading: false,
saveLoading: false
}
},
mounted() {
this.getQuestionCategory()
this.getQuestionType();
this.getDifficultyType();
this.getQuestionList();
},
methods: {
//获取问题大类
getQuestionCategory() {
queryQuestionCategory().then(res => {
this.questionCategoryList = res.Data;
})
},
//获取题型列表
getQuestionType() {
queryQuestionTypeList({}).then(res => {
if (res.Code == 1) {
this.questionTypeList = res.Data;
}
});
},
//获取问题难易程度列表
getDifficultyType() {
queryDifficultyType().then(res => {
if (res.Code == 1) {
var tempArray = res.Data;
tempArray.splice(0, 1);
this.questionDifficultyTypeList = tempArray;
}
});
},
//翻页
changePage(val) {
this.msg.pageIndex = val;
this.getQuestionList()
},
research() {
this.msg.pageIndex = 1;
this.getQuestionList();
},
//获取问题分页列表
getQuestionList() {
this.loading = true;
queryQuestionPageList(this.msg).then(res => {
this.loading = false;
this.dataList = res.Data.PageData;
this.pageCount = res.Data.PageCount;
}).catch(() => {
this.loading = false
})
},
//关闭弹窗
closeSaveForm() {
this.$emit('close')
},
//确认问题
sureQuestion() {
this.$emit('success', this.selectedQuestion)
},
},
}
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
<template>
<q-dialog v-model="persistent" content-class="bg-grey-1" persistent transition-show="scale" transition-hide="scale">
<q-card style="width: 850px;max-width:900px;">
<q-card-section>
<div class="text-h6">题库信息</div>
</q-card-section>
<q-card-section class="q-pt-none scroll" style="max-height: 70vh">
<div class="page-search row items-center">
<div class="col row wrap q-mr-lg q-col-gutter-md">
<div class="col-12">
<q-input @input="research" clearable standout="bg-primary text-white" v-model="msg.BankName" label="关键字"
@clear="research" maxlength="20" />
</div>
</div>
</div>
<div class="page-content">
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat
class="sticky-column-table sticky-header-column-table" style="max-height: 550px" separator="none" :data="dataList" :columns="columns"
row-key="BankId" selection="multiple" :selected.sync="selectedQuestionBank">
<template v-slot:top="props">
<div class="col-2 q-table__title">题库列表</div>
<q-space />
</template>
<template v-slot:body-cell-Title="props">
<td style="width:400px;">
<div @click="goDetail(props.row)" v-html="props.row.Title" class="quetion_Title">
</div>
</td>
</template>
<template v-slot:bottom>
<q-pagination class="full-width justify-end" v-model="msg.pageIndex" color="primary" :max="pageCount"
:input="true" @input="changePage" />
</template>
</q-table>
</div>
</q-card-section>
<q-separator />
<q-card-actions align="right" class="bg-white">
<q-btn label="取消" flat color="grey-10" style="font-weight:400 !important" @click="closeSaveForm" />
<q-btn label="确认选择" color="accent q-px-md" style="font-weight:400 !important" @click="sureQuestionBank" />
</q-card-actions>
</q-card>
</q-dialog>
</template>
<script>
import {
queryQuestionBankPage,
} from '../../api/question/question';
export default {
data() {
return {
persistent: true,
msg: {
pageIndex: 1,
pageSize: 12,
rowsPerPage: 12,
BankName: ''
},
pageCount: 0, //总页数
loading: false, //表格加载进度条
columns: [{
name: 'RowNum',
label: '编号',
field: 'RowNum',
align: 'left'
},
{
name: 'BankName',
label: '题库名称',
field: 'BankName',
align: 'left',
},
{
name: 'CreateByName',
label: '创建人',
field: 'CreateByName',
align: 'left'
},
{
name: 'QuestionCount',
label: '题量',
field: 'QuestionCount',
align: 'left'
},
],
dataList: [], //数据列表
selectedQuestionBank: [], //选择的题库
}
},
mounted() {
this.getQuestionBankPage();
},
methods: {
//获取题库分页列表
getQuestionBankPage() {
queryQuestionBankPage(this.msg).then(res => {
if (res.Code == 1) {
this.dataList = res.Data.PageData;
this.pageCount = res.Data.PageCount;
}
})
},
//翻页
changePage(val) {
this.msg.pageIndex = val;
this.getQuestionBankPage()
},
research() {
this.msg.pageIndex = 1;
this.getQuestionBankPage();
},
//关闭弹窗
closeSaveForm() {
this.$emit('close')
this.persistent = false
},
//确认选择
sureQuestionBank() {
this.persistent = false;
var tempArray = [];
if (this.selectedQuestionBank && this.selectedQuestionBank.length > 0) {
this.selectedQuestionBank.forEach(item => {
tempArray.push({
BankId: item.BankId,
BankName: item.BankName,
})
})
}
this.$emit('success', tempArray);
},
},
}
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
This diff is collapsed.
......@@ -271,6 +271,12 @@
},
deep: true
},
questionData: {
handler(newValue) {
this.data = this.questionData;
},
deep: true
},
}
};
......
......@@ -129,6 +129,12 @@
},
deep: true
},
questionData: {
handler(newValue) {
this.data = this.questionData;
},
deep: true
},
}
};
......
......@@ -120,6 +120,12 @@
},
deep: true
},
questionData: {
handler(newValue) {
this.data = this.questionData;
},
deep: true
},
}
};
......
......@@ -83,6 +83,12 @@
},
deep: true
},
questionData: {
handler(newValue) {
this.data = this.questionData;
},
deep: true
},
}
};
......
......@@ -252,6 +252,12 @@
},
deep: true
},
questionData: {
handler(newValue) {
this.data = this.questionData;
},
deep: true
},
}
};
......
......@@ -142,6 +142,12 @@
},
deep: true
},
questionData: {
handler(newValue) {
this.data = this.questionData;
},
deep: true
},
}
};
......
......@@ -46,11 +46,6 @@
</div>
</th>
</tr>
<!-- <tr>
<th colspan="3">
<UeEditor v-model="item.SubTitle" :config="config"></UeEditor>
</th>
</tr> -->
</thead>
<tbody v-if="(commonIndex==index)&&!isShow">
<tr>
......@@ -349,6 +344,12 @@
},
deep: true
},
questionData: {
handler(newValue) {
this.data = this.questionData;
},
deep: true
},
}
};
......
......@@ -219,6 +219,12 @@
},
deep: true
},
questionData: {
handler(newValue) {
this.data = this.questionData;
},
deep: true
},
}
};
......
......@@ -11,7 +11,7 @@
<br />
答案
<br />
<UeEditor v-model="setOption.Answer" :config="config"></UeEditor>
<UeEditor v-model="setOption.Answer" :config="config" ref="UE_Answer"></UeEditor>
</div>
</template>
<script>
......@@ -40,7 +40,13 @@
mounted() {
},
watch: {
'setOption'(newVal, oldVal) {
if (newVal != oldVal) {
this.$refs.UE_Answer.reloadNewValue();
}
}
}
};
</script>
......@@ -151,6 +151,12 @@
},
deep: true
},
questionData: {
handler(newValue) {
this.data = this.questionData;
},
deep: true
},
}
};
......
......@@ -194,6 +194,12 @@
},
deep: true
},
questionData: {
handler(newValue) {
this.data = this.questionData;
},
deep: true
},
}
};
......
......@@ -5,14 +5,9 @@
<table class="enrollTotalSearchTable" border="0" cellspacing="0" cellpadding="0">
<colgroup>
<col width="12%" />
<!-- <col width="7%" />
<col width="7%" />
<col width="7%" /> -->
<col width="7%" />
<col width="7%" />
<!-- <col width="7%" />
<col width="6%" /> -->
<col width="7%" />
<col width="7%" />
<col width="7%" />
<col width="7%" />
......@@ -23,11 +18,8 @@
<th width="12%">单号</th>
<th width="7%">联系人</th>
<th width="10%">联系电话</th>
<!-- <th width="7%">成交</th> -->
<th width="7%">应收总额</th>
<th width="7%">实收</th>
<!-- <th width="7%">优惠</th>
<th width="6%">少价金额</th> -->
<th width="7%">退款</th>
<th width="7%">平台税金</th>
<th width="7%">待收金额</th>
......@@ -43,11 +35,8 @@
<col width="12%" />
<col width="7%" />
<col width="10%" />
<!--<col width="7%" /> -->
<col width="7%" />
<col width="7%" />
<!-- <col width="7%" />
<col width="6%" /> -->
<col width="7%" />
<col width="7%" />
<col width="7%" />
......@@ -73,8 +62,6 @@
<div>活动结束时间:</div>
<div>{{item.EndTime}}</div>
<div v-if="item.IsCommission == 2" style="color:#f00;cursor: pointer;text-decoration: underline;" @click="gourlactive(item)">提成金额:{{item.CommissionPrice}}</div>
<!-- <div style="margin-top: 10px">{{item.CreateTime}}</div> -->
<template v-if="AuthorityObj.isShowName">
<div style="font-weight: bold;color:#2961FE;cursor:pointer;" @click="getClassInfo(item)">
{{item.ClassName}}</div>
......
This diff is collapsed.
This diff is collapsed.
......@@ -95,7 +95,7 @@
<q-item-label v-html="opt.ClassName"></q-item-label>
</q-item-section>
<q-item-section side>
<q-item-label v-html="opt.OpenTime"></q-item-label>
<q-item-label v-html="opt.OpenTime+'【'+opt.ClassNo+'】'"></q-item-label>
</q-item-section>
</q-item>
</template>
......
This diff is collapsed.
......@@ -549,6 +549,12 @@ export default {
created() {
let data = JSON.parse(localStorage.getItem("loginUserInfo"));
this.loginId = data.data.Id;
if(this.$route.query.no)
{
let no=decodeURIComponent(this.$route.query.no);
this.msg.Number=no
this.mymsg.Number=no
}
},
mounted() {
this.getList();
......
......@@ -234,6 +234,10 @@
};
},
created() {
if(this.$route.query.no){
let no=decodeURIComponent(this.$route.query.no);
this.msg.ContractNo=no
}
this.getEmployee()
},
mounted() {
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -29,7 +29,7 @@
</q-td>
</template>
<template v-slot:bottom>
<q-pagination class="full-width justify-end" v-model="msg.PageIndex" color="primary"
<q-pagination class="full-width justify-end" v-model="msg.pageIndex" color="primary"
:max="msg.PageCount" :input="true" @input="changePage" />
</template>
</q-table>
......@@ -73,8 +73,8 @@
data() {
return {
msg: {
PageIndex: 1,
PageSize: 10,
pageIndex: 1,
pageSize: 15,
rowsPerPage: 15,
Name: "", //系列名称
},
......@@ -129,11 +129,11 @@
methods: {
//重新查询
resetSearch() {
this.msg.PageIndex = 1;
this.msg.pageIndex = 1;
this.getcategorypage();
},
changePage(val) {
this.msg.PageIndex = val;
this.msg.pageIndex = val;
this.getcategorypage()
},
//删除系列
......
......@@ -20,7 +20,7 @@
@click="msg.Type = x.Id,resetSearch()" />
</q-tabs>
<div v-if="tabCheck=='0'" >
 <allmaterial :dataList='dataList' :allclassifyList='allclassifyList' @editsuccess="getchildren" @getmove="getmove"></allmaterial>
 <allmaterial :dataList='dataList' :allclassifyList='allclassifyList' @editsuccess="getchildren" @getmove="getmove" ref="allm"></allmaterial>
</div>
<div v-if="tabCheck=='1'">
 <textmaterial :dataList='dataList' :allclassifyList='allclassifyList' @editsuccess="getchildren" @getmove="getmove"></textmaterial>
......@@ -32,7 +32,7 @@
 <imgtextmaterial :dataList='dataList' :allclassifyList='allclassifyList' @editsuccess="getchildren" @getdelete="getdelete" @getmove="getmove"></imgtextmaterial>
</div>
<div v-if="tabCheck=='4'">
 <audiomaterial :dataList='dataList' :allclassifyList='allclassifyList' @editsuccess="getchildren" @getdelete="getdelete" @getmove="getmove"></audiomaterial>
 <audiomaterial :dataList='dataList' :allclassifyList='allclassifyList' @editsuccess="getchildren" @getdelete="getdelete" @getmove="getmove" ref="allm"></audiomaterial>
</div>
<div v-if="tabCheck=='5'">
 <videomaterial :dataList='dataList' :allclassifyList='allclassifyList' @editsuccess="getchildren" @getdelete="getdelete" @getmove="getmove"></videomaterial>
......@@ -94,6 +94,7 @@
import videomaterial from '../../components/enterprise/material/videomaterial'
import appletmaterial from '../../components/enterprise/material/appletmaterial'
import filematerial from '../../components/enterprise/material/filematerial'
import BenzAMRRecorder from 'benz-amr-recorder'
export default {
components: {
......@@ -163,18 +164,36 @@
},
getList() {
this.loading=true
if(this.tabCheck==0 || this.tabCheck==1){
this.msg.pageSize = 15
}else if(this.tabCheck==2 || this.tabCheck==3 || this.tabCheck==6){
this.msg.pageSize = 12
}else if(this.tabCheck==4 || this.tabCheck==5 || this.tabCheck==7){
this.msg.pageSize = 10
}
getWeChatMediumPageList(this.msg).then(res => {
this.loading=false
this.dataList = res.Data.PageData;
this.PageCount = res.Data.Count
this.dataList.forEach(x=>{
x.check= false
})
x.check= false;
let amr= new BenzAMRRecorder()
if(x.Type == 4 && x.AudioModel!=null){
x.timevalue = 0;
amr.initWithUrl(x.AudioModel.AudioPath).then(function () {
x.duration = amr.getDuration()
}).catch((e) => {
})
}
})
})
},
changePage(e) {
if(this.tabCheck==0 || this.tabCheck==4){
this.$refs.allm.stopPlayVoice()
}
this.msg.pageIndex = e;
this.getList()
},
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -409,7 +409,12 @@ export default {
isShowEduForm: false,
};
},
created() {},
created() {
if(this.$route.query.no){
let no=decodeURIComponent(this.$route.query.no);
this.msg.ContractNo=no
}
},
mounted() {
if (this.$route.query && this.$route.query.Name) {
//从订单完成统计跳转过来的带的参数
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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