Commit d22acd91 authored by Mac's avatar Mac

1

parent 800df0df
...@@ -398,7 +398,7 @@ ...@@ -398,7 +398,7 @@
ImageName: '', ImageName: '',
ImagePath: '', ImagePath: '',
}; };
} else if (this.type == 7) {//小程序 } else if (this.type == 7) {//文件
this.addMsg.FileModel = { this.addMsg.FileModel = {
FileName: '', FileName: '',
FilePath: '', FilePath: '',
......
...@@ -6,73 +6,101 @@ ...@@ -6,73 +6,101 @@
</div> </div>
</div> --> </div> -->
<div class="page-content"> <div class="page-content">
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat class="sticky-column-table" <q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat class="sticky-column-table no-bottom-table"
separator="none" title="" :data="data" :columns="columns" row-key="name"> separator="none" title="" :data="dataList" :columns="columns" row-key="name">
<!-- <template v-slot:top="props">
<div class="col-2 q-table__title"></div> <template v-slot:body-cell-title="props">
<q-space />
<q-btn color="accent" style="float:right;margin-right:0;" size="sm" class="q-mr-md" icon="add"
label="新增欢迎语" @click="goadd()"></q-btn>
</template> -->
<template v-slot:body-cell-Type="props">
<q-td :props="props"> <q-td :props="props">
<span v-if="props.row.Type==1">图文</span> <span>{{getType(props.row,'title')}}</span>
<span v-if="props.row.Type==2">图片</span>
</q-td> </q-td>
</template> </template>
<template v-slot:body-cell-Content="props"> <template v-slot:body-cell-Content="props">
<q-td :props="props"> <q-td :props="props">
<q-img <span v-if="props.row.Type==1">{{getType(props.row,'content')}}</span>
:src="props.row.Content" <q-img v-if="props.row.Type==2 || props.row.Type==3 || props.row.Type==6"
style="width: 80px;height: 80px;border-radius: 6px;display: flex;" :src="getType(props.row,'content')" style="width: 80px;height: 80px;border-radius: 6px;display: flex;">
>
</q-img> </q-img>
<audio controls="controls"
v-if='props.row.Type==4 && props.row.AudioModel && props.row.AudioModel.AudioPath'
style="width: 200px;height: 40px;">
<source :src="props.row.AudioModel.AudioPath" type="audio/ogg">
<source :src="props.row.AudioModel.AudioPath" type="audio/mpeg">
</audio>
<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" />
<source :src="props.row.VideoModel.VideoPath" type="video/mp4" />
<source :src="props.row.VideoModel.VideoPath" type="video/webm" />
</video>
<div v-if="props.row.Type==7 && props.row.FileModel && props.row.FileModel.FilePath!=''"
@click.stop="showUpLoadFile(props.row.FileModel)">
<i v-if="props.row.FileModel.FilePath.substring(props.row.FileModel.FilePath.lastIndexOf('.')+1,props.row.FileModel.FilePath.length).toUpperCase()=='PDF'"
class="iconfont icon-pdf"></i>
<i v-else-if="props.row.FileModel.FilePath.substring(props.row.FileModel.FilePath.lastIndexOf('.')+1,props.row.FileModel.FilePath.length).toUpperCase()=='TXT'"
class="iconfont icon-txt"></i>
<i v-else-if="props.row.FileModel.FilePath.substring(props.row.FileModel.FilePath.lastIndexOf('.')+1,props.row.FileModel.FilePath.length).toUpperCase()=='DOCX' ||
props.row.FileModel.FilePath.substring(props.row.FileModel.FilePath.lastIndexOf('.')+1,props.row.FileModel.FilePath.length).toUpperCase()=='DOC'
" class="iconfont icon-word"></i>
<i v-else class="iconfont icon-excel"></i>
</div>
</q-td> </q-td>
</template> </template>
<template v-slot:body-cell-optioned="props"> <template v-slot:body-cell-optioned="props">
<q-td :props="props"> <q-td :props="props">
<q-btn flat size="xs" icon="edit" style="font-weight:400;color: #3FC4FF" class="q-mr-xs" <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 "
label="编辑" @click="goDetailed(props.row,'0')" /> @click="goedit(props.row)" />
<q-btn flat size="xs" icon="delete" style="font-weight:400;color: #3FC4FF" class="q-mr-xs" <q-btn flat size="xs" icon="edit" style="font-weight:400;color: #3FC4FF" class="q-mr-xs" label="移动"
label="删除" @click="goDetailed(props.row,'0')" /> @click="plmove(props)" />
<q-btn flat size="xs" icon="delete" color="negative" class="q-mr-xs" label="删除"
@click="goDetailed(props.row,'0')" />
</q-td> </q-td>
</template> </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> </q-table>
</div> </div>
<div v-if="Isadd==true">
<alladdsc :allclassifyList="allclassifyList" :type='showtype' @editsuccess="getchildren" :editobj='editobj'
@getcancel='Isadd=false'></alladdsc>
</div> </div>
</template>
<script> </div>
</template>
<script>
import alladdsc from './allAddSC'
import {
delWecharMediumInfo,//删除素材
} from '../../../api/system/wechat';
export default { export default {
components: {
alladdsc,
},
name: "allmaterial", name: "allmaterial",
props: {
dataList: {
type: Array,
default: [],
},
allclassifyList: {
type: Array,
default: [],
}
},
data() { data() {
return { return {
loading: false, loading: false,
Isadd: false,
ISsystem: false, ISsystem: false,
data: [{Type:1, editobj:null,
title:'阿萨欢声雷动.png', showtype:1,
Content:'http://imgfile.oytour.com/EduSystem/Test/Upload/course/202107070330161360000000064.jpg',
applymember:'通用',
source:'本地上传',
CreatorName:'小张',
UpdateTime:'2021-08-04 15:48'}],
pageCount: 0,
msg: { msg: {
pageIndex: 1, pageIndex: 1,
pageSize: 10, pageSize: 10,
rowsPerPage: 10, rowsPerPage: 10,
Month: '',
TeacherId: 0,
State: 0,
}, },
//公告column //公告column
columns: [{ columns: [{
...@@ -88,20 +116,20 @@ ...@@ -88,20 +116,20 @@
align: 'left', align: 'left',
}, },
{ {
name: 'CreatorName', name: 'UpdateByName',
field: 'CreatorName', field: 'UpdateByName',
label: '上传者', label: '上传者',
align: 'left' align: 'left'
}, },
{ {
name: 'source', name: 'MediumGroupName',
field: 'source', field: 'MediumGroupName',
label: '素材来源', label: '分组',
align: 'left' align: 'left'
}, },
{ {
name: 'Type', name: 'TypeName',
field: 'Type', field: 'TypeName',
label: '类型', label: '类型',
align: 'left' align: 'left'
}, },
...@@ -124,21 +152,119 @@ ...@@ -124,21 +152,119 @@
}, },
methods: { methods: {
changePage(e){
getType(row, name) {
let title = ''
let content = ''
if (row.Type == 1) {
title = row.TextModel.Title
content = row.TextModel.Content
} else if (row.Type == 2) {
title = row.ImageModel.ImageName
content = row.ImageModel.ImagePath
} else if (row.Type == 3) {
title = row.ImgTextModel.Title
content = row.ImgTextModel.ImgPath
} else if (row.Type == 4) {
title = row.AudioModel.AudioName
content = row.AudioModel.AudioPath
} else if (row.Type == 5) {
title = row.VideoModel.VideoName
content = row.VideoModel.VideoPath
} else if (row.Type == 6) {
title = row.AppletModel.Title
content = row.AppletModel.ImagePath
} else if (row.Type == 7) {
title = row.FileModel.FileName
content = row.FileModel.FilePath
}
if (name == 'title') {
return title
} else if (name == 'content') {
return content
}
},
showUpLoadFile(i) {
// 文件类型进行判断
if (
i.FileName.substring(
i.FileName.lastIndexOf(".") + 1,
i.FileName.length
).toUpperCase() == "PDF" ||
i.FileName.substring(
i.FileName.lastIndexOf(".") + 1,
i.FileName.length
).toUpperCase() == "TXT"
) {
this.previewPDF(i.Url);
} else {
window.open(
"https://view.officeapps.live.com/op/view.aspx?src=" + i.FilePath
);
}
}, },
goadd(){ goDetailed(row) {//删除
this.$router.push({ let delMsg = {
path:'/enterprise/addWelcome', MediumIds: row.Id,
};
this.$q.dialog({
title: '提示信息',
message: '是否确定删除该素材?',
cancel: true,
persistent: true,
ok: "确定",
cancel: "取消",
}).onOk(() => {
delWecharMediumInfo(delMsg).then(res => {
if (res.Code == 1) {
this.$q.notify({
icon: 'iconfont icon-chenggong',
color: 'accent',
timeout: 2000,
message: '删除成功!',
position: 'top'
})
this.$emit('editsuccess')
}
})
}).onCancel(() => {
}); });
},
plmove(row) {
this.dataList[row.rowIndex].check = !this.dataList[row.rowIndex].check
this.$emit('getmove')
},
goedit(row) {
this.editobj = {}
this.editobj.Id = row.Id;
this.editobj.MediaGroupId = row.MediaGroupId;
this.editobj.Type = row.Type;
if(row.Type==1){
this.editobj.TextModel = JSON.parse(JSON.stringify(row.TextModel));
}else if(row.Type==3){
this.editobj.ImgTextModel = JSON.parse(JSON.stringify(row.ImgTextModel));
}else if(row.Type==6){
this.editobj.AppletModel = JSON.parse(JSON.stringify(row.AppletModel));
} }
this.showtype = row.Type.toString()
this.Isadd = true
},
getchildren(){
this.$emit('editsuccess')
this.Isadd = false
},
} }
} }
</script> </script>
<style> <style>
.allmaterial .Sysuser_Date .el-input--prefix .el-input__inner { .allmaterial .Sysuser_Date .el-input--prefix .el-input__inner {
background-color: red; background-color: red;
border: 0; border: 0;
...@@ -183,8 +309,20 @@ ...@@ -183,8 +309,20 @@
background: transparent !important; background: transparent !important;
border: 0 !important; border: 0 !important;
} }
.allmaterial .el-drawer.rtl{
.allmaterial .el-drawer.rtl {
overflow: inherit; overflow: inherit;
} }
</style>
.allmaterial .icon-excel,
.allmaterial .icon-pdf,
.allmaterial .icon-txt,
.allmaterial .icon-wenjian,
.allmaterial .icon-yasuobao,
.allmaterial .icon-shipin,
.allmaterial .icon-word {
font-size: 38px;
color: green;
line-height: 75px;
}
</style>
\ No newline at end of file
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div class="textmaterial" style="padding: 0;margin: 0;"> <div class="textmaterial" style="padding: 0;margin: 0;">
<div class="page-content"> <div class="page-content">
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat class="sticky-column-table" <q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat class="sticky-column-table no-bottom-table"
separator="none" title="" :data="dataList" :columns="columns" row-key="name"> separator="none" title="" :data="dataList" :columns="columns" row-key="name">
<template v-slot:top="props"> <template v-slot:top="props">
<div class="col-2 q-table__title"></div> <div class="col-2 q-table__title"></div>
...@@ -31,7 +31,9 @@ ...@@ -31,7 +31,9 @@
<q-btn flat size="xs" icon="edit" style="font-weight:400;color: #3FC4FF" class="q-mr-xs" <q-btn flat size="xs" icon="edit" style="font-weight:400;color: #3FC4FF" class="q-mr-xs"
label="编辑" @click="goedits(props.row)" /> label="编辑" @click="goedits(props.row)" />
<q-btn flat size="xs" icon="delete" style="font-weight:400;color: #3FC4FF" class="q-mr-xs" <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="delete" color="negative" class="q-mr-xs"
label="删除" @click="goDetailed(props.row)" /> label="删除" @click="goDetailed(props.row)" />
</q-td> </q-td>
</template> </template>
...@@ -172,9 +174,11 @@ ...@@ -172,9 +174,11 @@
}).onCancel(() => { }).onCancel(() => {
}); });
},
plmove(row){
this.dataList[row.rowIndex].check = !this.dataList[row.rowIndex].check
this.$emit('getmove')
} }
} }
} }
......
...@@ -19,11 +19,11 @@ ...@@ -19,11 +19,11 @@
<q-tab :ripple="false" :name="x.Id" :label="x.Name" v-for="(x,y) in MediumList" :key="y" <q-tab :ripple="false" :name="x.Id" :label="x.Name" v-for="(x,y) in MediumList" :key="y"
@click="msg.Type = x.Id,resetSearch()" /> @click="msg.Type = x.Id,resetSearch()" />
</q-tabs> </q-tabs>
<!-- <div v-if="tabCheck=='1'" > <div v-if="tabCheck=='0'" >
 <allmaterial></allmaterial>  <allmaterial :dataList='dataList' :allclassifyList='allclassifyList' @editsuccess="getchildren" @getmove="getmove"></allmaterial>
</div> --> </div>
<div v-if="tabCheck=='1'"> <div v-if="tabCheck=='1'">
 <textmaterial :dataList='dataList' :allclassifyList='allclassifyList' @editsuccess="getchildren"></textmaterial>  <textmaterial :dataList='dataList' :allclassifyList='allclassifyList' @editsuccess="getchildren" @getmove="getmove"></textmaterial>
</div> </div>
<div v-if="tabCheck=='2'"> <div v-if="tabCheck=='2'">
 <imgmaterial :dataList='dataList' :allclassifyList='allclassifyList' @editsuccess="getchildren" @getdelete="getdelete" @getmove="getmove"></imgmaterial>  <imgmaterial :dataList='dataList' :allclassifyList='allclassifyList' @editsuccess="getchildren" @getdelete="getdelete" @getmove="getmove"></imgmaterial>
...@@ -43,11 +43,18 @@ ...@@ -43,11 +43,18 @@
<div v-if="tabCheck=='7'"> <div v-if="tabCheck=='7'">
 <filematerial :dataList='dataList' :allclassifyList='allclassifyList' @editsuccess="getchildren" @getdelete="getdelete" @getmove="getmove"></filematerial>  <filematerial :dataList='dataList' :allclassifyList='allclassifyList' @editsuccess="getchildren" @getdelete="getdelete" @getmove="getmove"></filematerial>
</div> </div>
</div> <div style="width: 100%;height: 50px;">
<!-- <q-pagination class="full-width justify-end" v-model="msg.pageIndex" color="primary" :max="PageCount" :input="true" @input="changePage" /> --> <el-pagination @current-change="changePage" style="float: right;margin-top: 9px;" layout="total,prev, pager, next, jumper"
<el-pagination @current-change="changePage" style="float: right;" layout="total,prev, pager, next, jumper"
:current-page.sync="msg.pageIndex" :page-size="msg.pageSize" :total='PageCount'> :current-page.sync="msg.pageIndex" :page-size="msg.pageSize" :total='PageCount'>
</el-pagination> </el-pagination>
</div>
<q-inner-loading :showing="loading">
<q-spinner-gears size="50px" color="primary" />
</q-inner-loading>
</div>
<!-- <q-pagination class="full-width justify-end" v-model="msg.pageIndex" color="primary" :max="PageCount" :input="true" @input="changePage" /> -->
<q-dialog v-model="Ismove" persistent> <q-dialog v-model="Ismove" persistent>
<q-card style="width: 520px; max-width: 80vw;" class="addscfile"> <q-card style="width: 520px; max-width: 80vw;" class="addscfile">
<q-card-section> <q-card-section>
...@@ -107,13 +114,13 @@ ...@@ -107,13 +114,13 @@
return { return {
loading: false, loading: false,
PageCount: 0, PageCount: 0,
tabCheck: 1, tabCheck: 0,
msg: { msg: {
pageIndex: 1, pageIndex: 1,
pageSize: 10, pageSize: 10,
rowsPerPage: 10, rowsPerPage: 10,
MediaGroupId: 0,//分组 MediaGroupId: 0,//分组
Type: 1,//类型 Type: 0,//类型
Content: '', Content: '',
}, },
classifyList: [], classifyList: [],
...@@ -136,6 +143,11 @@ ...@@ -136,6 +143,11 @@
getMediumTypeList() { getMediumTypeList() {
getMediumTypeEnumList({}).then(res => { getMediumTypeEnumList({}).then(res => {
this.MediumList = res.Data this.MediumList = res.Data
let obj = {
Name: '全部',
Id: 0,
}
this.MediumList.unshift(obj)
}) })
}, },
getWeChatMediumGroupList() { getWeChatMediumGroupList() {
...@@ -150,17 +162,20 @@ ...@@ -150,17 +162,20 @@
}) })
}, },
getList() { getList() {
this.loading=true
getWeChatMediumPageList(this.msg).then(res => { getWeChatMediumPageList(this.msg).then(res => {
this.loading=false
this.dataList = res.Data.PageData; this.dataList = res.Data.PageData;
this.PageCount = res.Data.PageCount this.PageCount = res.Data.Count
this.dataList.forEach(x=>{ this.dataList.forEach(x=>{
x.check= false x.check= false
}) })
}) })
}, },
changePage(e) { changePage(e) {
this.msg.PageIndex = e; this.msg.pageIndex = e;
this.getList() this.getList()
}, },
resetSearch() { resetSearch() {
...@@ -317,4 +332,5 @@ ...@@ -317,4 +332,5 @@
justify-content: center; justify-content: center;
padding: 4px; padding: 4px;
} }
</style> </style>
\ No newline at end of file
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