Commit 7eaf3c3f authored by 罗超's avatar 罗超
parents 51da28f1 8787ffbf
......@@ -176,4 +176,27 @@ 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
})
}
\ No newline at end of file
......@@ -126,8 +126,8 @@
<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">
<source :src="addMsg.AudioModel.AudioPath" >
</audio>
<div style="margin-top: 15px;">
<el-upload class="avatar-uploader " action="" :before-upload="uploadFile"
......@@ -136,7 +136,7 @@
</q-btn>
</el-upload>
<div style="margin-top: 20px;">
(音频上传大小不超过2MB,播放长度不超过60s,支持AMR,MP3格式。)
(音频上传大小不超过2MB,播放长度不超过60s,支持AMR格式。)
</div>
</div>
......@@ -167,9 +167,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"
......@@ -508,7 +506,9 @@
}
if (this.type == 4) {//音频上传
// 文件类型进行判断
const isAudio = files.type === "audio/mp3" || files.type === "audio/mpeg";
console.log(files.type)
const isAudio = files.type === "audio/amr";
const isLt2M = files.size / 1024 / 1024 < 2;
const isTime60S = this.getTimes(files) >= 60 ? true : false;
// 获取时长
......@@ -516,7 +516,7 @@
if (!isAudio) {
this.$q.notify({
type: 'negative',
message: `上传文件只能是Mp3格式!`,
message: `上传文件只能是AMR格式!`,
position: 'top'
})
} else {
......@@ -549,7 +549,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: `请上传正确的视频格式!`,
......
......@@ -22,9 +22,12 @@
<!-- <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">
<!-- <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> -->
<audio controls="controls" v-if='x.AudioModel && x.AudioModel.AudioPath' style="margin-top: 10px;" class="imgstyle" :src="x.AudioModel.AudioPath">
</audio>
<div class="onetext" style="margin-top: 5px;">上传者:{{x.UpdateByName}}</div>
......
......@@ -65,7 +65,7 @@
<q-radio v-model="membertype" val="1" label="通用" />
<q-radio v-model="membertype" val="2" label="指定企业成员" />
<q-btn color="accent" label="选择成员" size='sm' class="q-mr-md" style="margin-left: 20px;"
v-if="membertype==2" @click='getMember' />
v-if="membertype==2" @click='getMember2' />
<div v-if="ryList.length>0 && membertype==2" style="margin-top: 8px;">
<span style="margin-left: 15px">已选择{{ryList.length}}名成员</span>
<span style="cursor: pointer;color: #1890ff;margin-left: 15px;"
......@@ -84,9 +84,15 @@
</div>
</el-form-item>
<el-form-item label="添加内容:">
<q-btn color="white" text-color="black" label="+添加图片/图文/小程序" size='md'
v-if="JSON.stringify(Selectobj) == '{}'">
<div v-if="MediumModel.length>0">
<div class="row items-center" v-for="(x,y) in MediumModel" :key="y">
<i class="el-icon-link"></i>
<span style="margin-left: 10px;cursor: pointer;" @click="selectimg">{{Selectobj.name}}</span>
<i style="margin-left: 10px;cursor: pointer" class="el-icon-close" @click="Selectobj={}"></i>
</div>
</div>
<q-btn color="white" text-color="black" label="+添加图片/图文/小程序" size='md'>
<q-popup-proxy ref='popupproxy'>
<q-banner>
<q-btn-group push>
......@@ -97,11 +103,7 @@
</q-banner>
</q-popup-proxy>
</q-btn>
<div class="row items-center" v-else>
<i class="el-icon-link"></i>
<span style="margin-left: 10px;cursor: pointer;" @click="selectimg">{{Selectobj.name}}</span>
<i style="margin-left: 10px;cursor: pointer" class="el-icon-close" @click="Selectobj={}"></i>
</div>
</el-form-item>
</el-form>
......@@ -115,7 +117,7 @@
<el-dialog custom-class='w700' title="选择人员" :visible.sync="outerVisible" center>
<div class="fl" style="width: 300px; margin: 0 20px;">
<p style="margin: 0 0 10px 0;">选择: <el-input class='w200' placeholder="输入关键字进行过滤" v-model="filterText"
@input="">
@input="getmemlist">
</el-input>
</p>
<el-tree class='ApprovalProcessBg' :data="memberList" show-checkbox :filter-node-method="filterNode"
......@@ -137,7 +139,7 @@
</div>
</el-dialog>
<!-- 图片 -->
<selectMaterial v-if="isshowselectMaterial" :materialType="materialType" :saveobj='Selectobj'
<selectMaterial v-if="isshowselectMaterial" :materialType="materialType" :saveobj='Selectobj' :classifyList='classifyList'
@close="getclose()" @success='getsuccess'>
</selectMaterial>
<!-- 图文 -->
......@@ -152,6 +154,7 @@
<script>
import {
setWeChatWelcomesInfo,
getWeChatMediumGroupList,
} from '../../api/system/wechat';
import selectMaterial from "../../components/enterprise/selectMaterial"
import imagetextform from "../../components/enterprise/imagetext-form"
......@@ -176,6 +179,7 @@
outerVisible: false,//选择人员弹窗
filterText: '',//人员选择 帅选
memberList: [],//
allmemberList:[],
showMember: [],
membertype: '1',
ryList: [],
......@@ -195,18 +199,27 @@
isshowimagetext: false,
isshowapplet: false,
Selectobj: {},//选中对象
MediumModel:[],
classifyList:[],
}
},
created() {
this.getWeChatMediumGroupList()
},
methods: {
getMember() {
getWeChatMediumGroupList() {
getWeChatMediumGroupList({}).then(res => {
this.classifyList = res.Data
})
},
getMember2() {
this.outerVisible = true;
this.dialogTitle = this.$t('fnc.xzrenyuan');
queryEmployee({}).then(res => {
if (res.Code == 1) {
this.memberList = res.Data;
this.allmemberList = JSON.parse(JSON.stringify(res.Data)) ;
}
}).catch(() => {
......@@ -245,6 +258,14 @@
if (!value) return true;
return data.DepartmentName.indexOf(value) !== -1;
},
getmemlist(){
if (this.filterText === '') {
this.memberList = JSON.parse(JSON.stringify(this.allmemberList))
} else {
const needle = this.filterText.toLowerCase()
this.memberList = this.allmemberList.filter(v => v.EmployeeName.toLowerCase().indexOf(needle) > -1)
}
},
getmember() {//人员确定选择
this.outerVisible = false;
this.ryList = JSON.parse(JSON.stringify(this.showMember))
......
......@@ -3,11 +3,10 @@
<div class="page-search row items-center">
<div class="col row wrap q-mr-lg q-col-gutter-md">
<div class="col-3">
<q-select filled stack-label @input="changePage(1)" option-value="Id" option-label="Name"
v-model="msg.Type" ref="Id" :options="typeList" label="类型" :dense="false" emit-value
map-options />
<q-select filled stack-label @input="changePage(1)" option-value="Id" option-label="Name" v-model="msg.Type"
ref="Id" :options="typeList" label="类型" :dense="false" emit-value map-options />
</div>
</div>
</div>
<div class="page-content">
......@@ -34,14 +33,22 @@
</div>
</q-td>
</template>
<template v-slot:body-cell-UserIdName="props">
<q-td :props="props">
<div style="max-width: 300px;white-space: normal;">
{{props.row.UserIdName}}
</div>
</q-td>
</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="编辑"
@click="goedit(props.row)" />
<q-btn flat size="xs" icon="delete" color="negative" class="q-mr-xs" label="删除"
<q-btn flat size="xs" icon="delete" color="negative" class="q-mr-xs" label="删除"
@click="goDetailed(props.row)" />
</q-td>
</template>
......@@ -58,7 +65,11 @@
<script>
import {
getWeChatWelcomesPageList,
delWechatWelcomesInfo
} from '../../api/system/wechat';
import {
queryEmployee
} from '../../api/users/user'
export default {
meta: {
......@@ -77,12 +88,12 @@
rowsPerPage: 15,
Type: 0,
},
typeList:[
{Id:0,Name:'不限'},
{Id:1,Name:'文本'},
{Id:2,Name:'图片'},
{Id:3,Name:'图文'},
{Id:4,Name:'小程序'},
typeList: [
{ Id: 0, Name: '不限' },
{ Id: 1, Name: '文本' },
{ Id: 2, Name: '图片' },
{ Id: 3, Name: '图文' },
{ Id: 4, Name: '小程序' },
],
//公告column
columns: [{
......@@ -120,13 +131,27 @@
field: 'DeptId'
}
],
memberList:[],
}
},
created() {
this.getMember()//获取人员列表
this.getList()
},
methods: {
getMember() {
this.outerVisible = true;
this.dialogTitle = this.$t('fnc.xzrenyuan');
queryEmployee({}).then(res => {
if (res.Code == 1) {
this.memberList = res.Data;
}
}).catch(() => {
})
},
changePage(e) {
this.msg.pageIndex = 1
this.getList()
......@@ -137,17 +162,31 @@
this.loading = false
this.data = res.Data.PageData;
this.pageCount = res.Data.Count
this.data.forEach(x=>{
x.UserIdName=''
x.UserIdList.map((j,i)=>{
if(j==-1){
x.UserIdName='通用'
this.data.forEach(x => {
x.UserIdName = ''
x.UserIdList.map((j, i) => {
if (j == -1) {
x.UserIdName = '通用'
return
}else{
if(i+1!=x.UserIdList.length){
x.UserIdName=x.UserIdName+'某某、'
}else{
x.UserIdName=x.UserIdName+'某某'
} else {
if (i + 1 != x.UserIdList.length) {
console.log(1)
this.memberList.map(z=>{
if(z.Id == j){
x.UserIdName = x.UserIdName + z.EmployeeName+'、'
}
return
})
} else {
console.log(2)
this.memberList.map(z=>{
if(z.Id == j){
x.UserIdName = x.UserIdName + z.EmployeeName
}
return
})
}
}
})
......@@ -159,11 +198,33 @@
path: '/enterprise/addWelcome',
});
},
goedit(){//编辑
goedit() {//编辑
},
goDetailed(row){//修改
goDetailed(row) {//删除
console.log(row)
this.$q.dialog({
title: '提示信息',
message: '是否确定删除所此欢迎语?',
cancel: true,
persistent: true,
ok: "确定",
cancel: "取消",
}).onOk(() => {
delWechatWelcomesInfo({ WelcomesId: row.Id }).then(res => {
this.$q.notify({
icon: 'iconfont icon-chenggong',
color: 'accent',
timeout: 2000,
message: res.Message,
position: 'top'
})
this.getList()
})
}).onCancel(() => {
});
}
}
......
......@@ -82,7 +82,7 @@
width: 328px;
}
.List-ul li a {
.List-ul li{
display: block;
padding-left: 25px;
line-height: 33px;
......@@ -91,6 +91,11 @@
border-bottom: 1px solid #f3f3f3;
color: #555;
text-decoration: none;
min-width: 250px;
overflow: hidden;
padding-right:20px;
white-space: nowrap;
text-overflow: ellipsis
}
.List-ul-li-checked b {
......@@ -105,6 +110,51 @@
z-index: 1000;
}
.Left-btn {
height: 58px;
padding: 20px 0 20px 20px;
width: 100%;
border-bottom: 1px solid #d9d9d9;
display: flex;
justify-content: space-between;
align-items: center;
}
.List-bt {
width: 318px;
height: 27px;
background: #fdfdfd;
font-size: 14px;
line-height: 27px;
padding-left: 10px;
}
.List-ul li:hover{
background: #a6a6a6;
color: #333;
}
.left-btn-list{
padding:5px 10px;
display: inline-block;
color: #555;
border-radius: 3px;
font-size:14px;
border:1px solid #999;
margin-right:10px;
cursor: pointer;
}
#btn1{
background: #26a69a!important;
}
.difficulty_Degree{
display: inline-block;
width:80px;
text-align: right;
line-height: 56px;
}
.commonDalei{
display: flex;
align-content: center;
margin-bottom:20px;
}
</style>
<template>
<div class="examPaper">
......@@ -132,8 +182,11 @@
<div class="Left-list" style="height:740px;overflow:auto;">
<template v-if="DataObj&&DataObj.GroupList&&DataObj.GroupList.length>0">
<div class="List-con1" v-for="(gItem,gIndex) in DataObj.GroupList" :key="gIndex">
<b>(<label>{{gIndex+1}}</label>)</b>
<b>{{gItem.GroupName}}</b>
<div class="List-bt">
<strong class="f1">
{{gIndex+1}}{{gItem.GroupName}}
</strong>
</div>
<ul class="List-ul" v-if="gItem.DetailsList&&gItem.DetailsList.length>0">
<li class="" style="cursor:pointer;" v-for="(dItem,dIndex) in gItem.DetailsList" :key="dIndex"
@click="ClickItem(dItem)">
......@@ -146,15 +199,16 @@
</div>
</div>
<div class="Exam-right f1">
<span></span>
<div class="row wrap" v-if="ChooseItem">
<div class="col-12" style="margin-bottom:20px">
题型
<div class="Left-btn">
          <div>
<!-- <template v-for="(fItem,fIndex) in firstTypeList">
<span class="left-btn-list" :key="fIndex" @click="onItemClick(fItem)">{{fItem.Name}}</span>
</template> -->
<template v-for="(fItem,fIndex) in firstTypeList">
<q-btn :key="fIndex" color="accent" :label="fItem.Name" style="margin-left:5px;"
@click="onItemClick(fItem)" />
<q-btn :key="fIndex" color="accent" :id="commonIndex==fIndex?'btn1':''" size="sm" :label="fItem.Name" style="margin-left:5px;"
@click="onItemClick(fItem,fIndex)" />
</template>
<q-btn-dropdown color="accent" label="更多" style="margin-left:5px;">
<q-btn-dropdown color="accent" size="sm" label="更多" style="margin-left:5px;">
<q-list>
<q-item v-for="(fItem,fIndex) in secondTypeList" @click="onItemClick(fItem)" clickable v-close-popup
:key="fIndex">
......@@ -165,8 +219,12 @@
</q-list>
</q-btn-dropdown>
</div>
          <div>
            <q-btn color="accent" size="sm" @click="isShowQuestion=true" class="q-mr-md" label="题库选题" />
          </div>
</div>
<div class="row wrap" v-if="ChooseItem" style="padding:20px;">
<div class="edit_stem">
<q-input filled stack-label maxlength="5" :dense="false" v-model="ChooseItem.Score" class="col-12 q-pb-lg"
label="分数" />
</div>
......@@ -221,38 +279,25 @@
<UeEditor v-model="ChooseItem.AnswerParse" :config="config" ref="AnswerParse"></UeEditor>
</div>
<br />
<div class="col-12">
<br />
<span class="difficulty_Degree">难度</span>
<select v-model="ChooseItem.DifficultyType" class="selectBox blue-border">
<template v-for="(cItem,cIndex) in questionDifficultyTypeList">
<option :key="cIndex" :label="cItem.Name" :value="cItem.Id">
</option>
</template>
</select>
<div class="col-12 commonDalei" style="margin-top:20px;">
<span class="difficulty_Degree">难度:</span>
<q-select filled option-value="Id" size="sm" style="display:inline-block;width:300px;" option-label="Name"
v-model="ChooseItem.DifficultyType" :options="questionDifficultyTypeList" emit-value map-options/>
</div>
<div class="col-12">
<div class="col-12 commonDalei">
<br />
<span class="difficulty_Degree">所属大类</span>
<select v-model="ChooseItem.Category" class="selectBox blue-border">
<template v-for="(cItem,cIndex) in questionCategoryList">
<option :key="cIndex" :label="cItem.Name" :value="cItem.Id">
</option>
</template>
</select>
<span class="difficulty_Degree">所属大类:</span>
<q-select filled option-value="Id" size="sm" style="display:inline-block;width:300px;" option-label="Name"
v-model="ChooseItem.Category" :options="questionCategoryList" emit-value map-options/>
</div>
<div class="col-12">
<div class="col-12 commonDalei">
<br />
<span class="difficulty_Degree">考级程度</span>
<select v-model="ChooseItem.LevelType" class="selectBox blue-border">
<template v-for="(cItem,cIndex) in questionLevalTypeList">
<option :key="cIndex" :label="cItem.Name" :value="cItem.Id">
</option>
</template>
</select>
<span class="difficulty_Degree">考级程度:</span>
<q-select filled option-value="Id" size="sm" style="display:inline-block;width:300px;" option-label="Name"
v-model="ChooseItem.LevelType" :options="questionLevalTypeList" emit-value map-options/>
</div>
<div class="col-12" style="margin-top:16px;">
<span class="difficulty_Degree">知识点: </span>
<div class="col-12">
<span class="difficulty_Degree">知识点</span>
<a class="addKnowledge" @click="isShowPoint=true">
<i class="iconfont icon-add" style="position:relative;top:1px;"></i>选择知识点
</a>
......@@ -263,6 +308,7 @@
</div>
</div>
</div>
<questionForm v-if="isShowQuestion" @close="closeQuestForm" @success="refreshPage"></questionForm>
</div>
</div>
</template>
......@@ -282,7 +328,7 @@
import cloze from '../../components/questiontype/cloze'
import readingComprehensio from '../../components/questiontype/reading-comprehensio'
import sharingChoose from '../../components/questiontype/sharing-choose'
import questionForm from '../../components/exam/question-form'
import {
GetPaper,
savePaperInfo,
......@@ -307,7 +353,8 @@
sortingProblem, //排序题
cloze, //完型填空
readingComprehensio, //阅读理解
sharingChoose, //共用选择题
sharingChoose, //共用选择题、
questionForm
},
meta: {
title: "考试"
......@@ -341,6 +388,8 @@
choosePointArray: [], //选择知识点
firstTypeList: [], //第一类题型
secondTypeList: [], //第二类题型
isShowQuestion:false,
commonIndex:-1
}
},
created() {
......@@ -350,7 +399,7 @@
this.getQuestionType();
this.getDifficultyType();
this.getQuestionCategory();
this.getQuestionLevelType
this.getQuestionLevelType();
},
mounted() {
this.GetPaperInfo()
......@@ -369,7 +418,7 @@
});
},
//题型点击
onItemClick(item) {
onItemClick(item,index) {
// this.AnswerList = [];
// this.questionObj = item;
// this.objOption.QuestionTypeId = item.QId;
......@@ -379,6 +428,7 @@
// if (obj) {
// this.objOption.QuestionContent = JSON.stringify(obj);
// }
this.commonIndex=index
},
//获取问题大类
getQuestionCategory() {
......@@ -419,6 +469,12 @@
savePaperInfo(this.DataObj).then(res => {
console.log("res", res);
})
},
closeQuestForm(){
this.isShowQuestion = false;
},
refreshPage(){
}
}
}
......
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