Commit 7781e98d authored by Mac's avatar Mac

新建一些页面

parent f2a11095
......@@ -412,4 +412,34 @@ export function GetClassPlanStatistical(data) {
data
});
}
/**
* 获取各平台枚举列表
*/
export function getContributeConfigTypeEnumList(data) {
return request({
url: '/QYContribute/GetContributeConfigTypeEnumList',
method: 'post',
data
});
}
/**
* 获取平台配置信息
*/
export function getContributeConfigInfo(data) {
return request({
url: '/QYContribute/GetContributeConfigInfo',
method: 'post',
data
});
}
/**
* 保存平台配置
*/
export function setContributeConfigInfo(data) {
return request({
url: '/QYContribute/SetContributeConfigInfo',
method: 'post',
data
});
}
import request from '../../utils/request'
/**
* 获取课程分页列表
* @param {JSON参数} data
*/
// 获取素材分组分页列表
export function getContributeMediumGroupPageList(data) {
return request({
url: '/QYContribute/GetContributeMediumGroupPageList',
method: 'post',
data
})
}
// 新增修改素材分组
export function setContributeMediumGroup(data) {
return request({
url: '/QYContribute/SetContributeMediumGroup',
method: 'post',
data
})
}
// 删除素材分组
export function delContributeMediumGroup(data) {
return request({
url: '/QYContribute/DelContributeMediumGroup',
method: 'post',
data
})
}
\ No newline at end of file
<style>
.platformdeploy .Period-rules {
display: flex;
margin-bottom: 24px;
padding-left: 20px;
}
.platformdeploy .Period_Spreate {
flex: 1;
min-width: 200px;
margin-right: 32px;
}
.platformdeploy .Period-rule-title {
color: #646a73;
margin-bottom: 4px;
display: flex;
align-items: center;
}
.platformdeploy .Period-info-icon {
margin-left: 8px;
color: #8f959e;
line-height: 1;
vertical-align: top;
}
.process_Btn_List {
display: flex;
justify-content: flex-end;
padding: 20px;
}
.processBtn_Cancel {
width: 90px;
height: 35px;
border: 1px solid #A1AAB2;
color: #000000;
background-color: #fff;
text-align: center;
line-height: 35px;
border-radius: 5px;
cursor: pointer;
margin-right: 20px;
}
.processBtn_Save {
width: 90px;
height: 35px;
background-color: #2961FE;
color: #FFF;
text-align: center;
line-height: 35px;
border-radius: 5px;
cursor: pointer;
}
.baseSetForm_Dialog {
margin: 20px;
}
.cycle_Title {
font-size: 20px;
font-weight: 500;
color: #1f2329;
}
.Period-alert {
padding: 9px 16px;
border-radius: 4px;
background-color: #f0f4ff;
line-height: 22px;
color: #1f2329;
display: flex;
align-items: center;
margin-top: 20px;
margin-bottom: 12px;
font-size: 13px;
}
.Okr_Length {
font-weight: 500;
color: #1f2329;
}
.addDutyUpload .ItemImgDiv {
width: 118px;
height: 118px;
position: relative;
margin: 0 10px 10px 0;
display: inline-block;
}
.addDutyUpload .avatar-uploader .el-upload {
border-radius: 6px;
cursor: pointer;
width: 100%;
height: 100%;
color: #8c939d;
position: relative;
overflow: hidden;
}
.addDutyMain {
display: inline-block;
width: 118px;
height: 118px;
font-size: 70px;
border: 1px dashed #d9d9d9;
line-height: 120px;
}
</style>
<template>
<div class="page-body">
<div class="platformdeploy">
<q-tabs style="margin-bottom:20px;" v-model="tabCheck" @input="tabChange()" narrow-indicator dense
align="left" class="text-primary">
<q-tab v-for="(x,y) in TypeEnumList" :key='y' :ripple="false" :name="x.Id" :label="x.Name" />
</q-tabs>
<!-- 公众号 -->
<template>
<div style="text-align:right;">
<q-btn color="accent" size="sm" class="q-mr-md" @click="geteject" label="修改平台配置" />
</div>
<div v-if="data && data.Id && data.Id>0">
<div class="Period-rules">
<div class="Period_Spreate">
<div class="Period-rule-title">平台类型</div>
<div>
<span>
{{data.Type}}
</span>
</div>
</div>
<div class="Period_Spreate">
<div class="Period-rule-title">
平台名称
</div>
<div>
{{data.Name}}
</div>
</div>
</div>
<div class="Period-rules">
<div class="Period_Spreate">
<div class="Period-rule-title">
AppId
</div>
<div>
{{data.AppId}}
</div>
</div>
<div class="Period_Spreate">
<div class="Period-rule-title">
App秘钥
</div>
<div>
{{data.AppSecret}}
</div>
</div>
</div>
<div class="Period-rules">
<div class="Period_Spreate">
<div class="Period-rule-title">
开启状态
</div>
<div>
{{data.Enable==1?'已开启':'未开启'}}
</div>
</div>
</div>
</div>
<div v-else style="width: 100%;height: 100px;line-height: 100px;text-align: center;">
暂无任何配置
</div>
</template>
<q-dialog v-model="isShowBaseSet" maximized full-height seamless position="right" @hide="closeProcess">
<q-card style="margin-top:61px;width:500px" class="no-border-radius classinfo_Dialog">
<div class="baseSetForm_Dialog">
<div class="cycle_Title">平台配置</div>
<div style="margin-top: 10px;">
<q-input filled stack-label :dense="false" v-model="addMsg.Name" ref="Name"
class="col-12 q-pb-lg" label="平台名称" :rules="[val => !!val || '请填写平台名称']" />
</div>
<div>
<q-input filled stack-label :dense="false" v-model="addMsg.AppId" ref="AppId"
class="col-12 q-pb-lg" label="AppId" :rules="[val => !!val || '请填写AppId']" />
</div>
<div>
<q-input filled stack-label :dense="false" v-model="addMsg.AppSecret" ref="AppSecret"
class="col-12 q-pb-lg" label="app秘钥" :rules="[val => !!val || '请填写app秘钥']" />
</div>
<div class="Okr_Length" style="margin:20px 0;display: flex;align-items: center;">
<div style="color:#1f2329;margin-right: 10px;">开启状态</div>
<el-switch v-model="addMsg.Enable" :active-value="1" :inactive-value="2"></el-switch>
</div>
</div>
<div class="process_Btn_List">
<div class="processBtn_Cancel" @click="closeProcess">关闭</div>
<div class="processBtn_Save" @click="setBaseInfo">确定</div>
</div>
</q-card>
<div class="dialog-out-close" @click="closeProcess"
style="height:40px !important;border-top-left-radius: 4px !important;border-bottom-left-radius: 4px !important;">
<q-icon name="iconfont icon-jujue1" size="26px" />
</div>
</q-dialog>
</div>
</div>
</template>
<script>
import {
getContributeConfigTypeEnumList,
getContributeConfigInfo,
setContributeConfigInfo
} from '../../api/system/index'
export default {
meta: {
title: "平台配置"
},
components: {
},
data() {
return {
isShowBaseSet: false,
tabCheck: '1',
TypeEnumList: [],//各平台枚举列表
data: null,
addMsg: {}
}
},
mounted() {
this.getEnumList()
},
methods: {
tabChange(){
this.getConfigInfo()
},
getEnumList() {
getContributeConfigTypeEnumList({}).then(res => {
if (res.Code == 1) {
this.TypeEnumList = res.Data;
this.tabCheck = this.TypeEnumList[0].Id;
this.getConfigInfo()
}
})
},
getConfigInfo() {//获取平台配置
getContributeConfigInfo({ Type: this.tabCheck }).then(res => {
if (res.Code == 1) {
this.data = res.Data;
}
})
},
geteject() {
if (this.data && this.data.Id && this.data.Id > 0) {
this.addMsg = JSON.parse(JSON.stringify(this.data))
} else {
this.addMsg = {
Id: 0,
Type: this.tabCheck,
Enable: 1,
AppId: '',
Name: '',
AppSecret: '',
}
}
this.isShowBaseSet = true;
},
//关闭流程设置
closeProcess() {
this.isShowBaseSet = false;
},
setBaseInfo() {
this.$refs.Name.validate();
this.$refs.AppId.validate();
this.$refs.AppSecret.validate();
if (!this.$refs.Name.hasError && !this.$refs.AppId.hasError && !this.$refs.AppSecret.hasError ) {
let msg = {
Id: this.addMsg.Id,
Name: this.addMsg.Name,
AppId: this.addMsg.AppId,
AppSecret: this.addMsg.AppSecret,
Type: this.addMsg.Type,
Enable: this.addMsg.Enable,
}
setContributeConfigInfo(msg).then(res => {
if (res.Code == 1) {
this.$q.notify({
icon: 'iconfont icon-chenggong',
color: 'accent',
timeout: 2000,
message: '数据保存成功!',
position: 'top'
})
this.getConfigInfo()
this.isShowBaseSet = false;
}
})
}
}
}
}
</script>
\ No newline at end of file
<template>
<div class="page-body">
124
</div>
</template>
<script>
export default {
meta: {
title: "新增/修改图文"
},
data() {
return {
}
},
mounted() {
},
methods: {
}
}
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
\ No newline at end of file
<template>
<div class="page-body">
<q-btn color="accent" size="sm" class="q-mr-md" icon="add" label="新增素材"
@click="addimgtext(null)" />
</div>
</template>
<script>
import {
} from '../../../api/teacher/contribution';
export default {
meta: {
title: "图文管理"
},
data() {
return {
msg: {
pageIndex: 1,
pageSize: 15,
rowsPerPage: 15,
Name: "", //系列名称
},
}
},
mounted() {
},
methods: {
addimgtext(){
this.$router.push({
path: '/teacher/contribution/addimageText',
});
}
}
}
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
\ No newline at end of file
<template>
<div class="page-body">
<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 @input="resetSearch" clearable standout="bg-primary text-white" v-model="msg.Name"
label="分组名称" @clear="resetSearch" maxlength="20" />
</div>
</div>
</div>
<div class="page-content">
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat class="sticky-column-table"
separator="none" :data="dataList" :columns="columns">
<template v-slot:top="props">
<div class="col-2 q-table__title">分组列表</div>
<q-space />
<div class="page-option">
<q-btn color="accent" size="sm" class="q-mr-md" icon="add" label="新增分组"
@click="EditCategory(null)" />
</div>
</template>
<template v-slot:body-cell-CateId="props">
<q-td :props="props">
<q-btn flat size="xs" icon="edit" color="accent" style="font-weight:400" label="编辑"
@click="EditCategory(props.row)" />
<q-btn flat size="xs" icon="delete" color="negative" style="font-weight:400;" label="删除"
@click="deleteCategory(props.row)" />
</q-td>
</template>
<template v-slot:bottom>
<q-pagination class="full-width justify-end" v-model="msg.pageIndex" color="primary"
:max="msg.PageCount" :input="true" @input="changePage" />
</template>
</q-table>
</div>
<q-dialog v-model="isShow" persistent>
<q-card style="width: 520px; max-width: 80vw;">
<q-card-section>
<div class="text-h6">新增分组</div>
</q-card-section>
<q-separator />
<q-card-section class="q-pt-none" style="margin-top: 15px;padding: 20px;">
<q-input filled clearable standout="bg-primary text-white" v-model="addMsg.Name" label="分组名称"
:rules="[val => !!val || '请输入分组名称']" ref="Name" />
<q-input filled clearable standout="bg-primary text-white" v-model="addMsg.Sort" label="分组排序"
style="margin-top: 20px;" :rules="[val => !!val || '请输入分组排序']" ref="Sort"/>
</q-card-section>
<q-separator />
<q-card-actions align="right" class="bg-white">
<q-btn class="q-mr-md" label="取消" @click="isShow = false" />
<q-btn color="accent" class="q-mr-md" label="确定" @click="submit()" />
</q-card-actions>
</q-card>
</q-dialog>
</div>
</template>
<script>
import {
getContributeMediumGroupPageList,
setContributeMediumGroup,
delContributeMediumGroup
} from '../../../api/teacher/contribution';
const addobj = { Id: 0, Name: '', Sort: 1 }
export default {
meta: {
title: "分组管理"
},
data() {
return {
msg: {
pageIndex: 1,
pageSize: 15,
rowsPerPage: 15,
Name: "", //系列名称
},
currentUrl: "",
dataList: [],
keyWords: '',
isShow: false,
loading: true,
columns: [{
name: 'Id',
label: 'ID',
field: 'Id',
align: 'left'
},
{
name: 'Sort',
label: '排序',
field: 'Sort',
align: 'left'
},
{
name: 'Name',
label: '分组名称',
field: 'Name',
align: 'center'
},
{
name: 'UpdateByName',
label: '创建人',
field: 'UpdateByName',
align: 'center'
},
{
name: 'UpdateTime',
label: '创建时间',
field: 'UpdateTime',
align: 'center'
},
{
name: 'CateId',
label: '操作',
field: 'CateId'
}
],
addMsg: Object.assign({}, addobj)
}
},
mounted() {
this.getcategorypage()
},
methods: {
//重新查询
resetSearch() {
this.msg.pageIndex = 1;
this.getcategorypage();
},
changePage(val) {
this.msg.pageIndex = val;
this.getcategorypage()
},
//删除系列
deleteCategory(item) {
let delMsg = {
MediumId: item.Id,
};
this.$q.dialog({
title: '提示信息',
message: '是否确定删除该分组?',
cancel: true,
persistent: true,
ok: "确定",
cancel: "取消",
}).onOk(() => {
delContributeMediumGroup(delMsg).then(res => {
if (res.Code == 1) {
this.$q.notify({
icon: 'iconfont icon-chenggong',
color: 'accent',
timeout: 2000,
message: '删除成功!',
position: 'top'
})
this.getcategorypage();
}
})
}).onCancel(() => {
});
},
//刷新页面
refreshPage() {
this.getcategorypage();
},
//获取课程系列分页列表
getcategorypage() {
this.loading = true;
getContributeMediumGroupPageList(this.msg).then(res => {
this.loading = false;
this.dataList = res.Data.PageData;
this.msg.PageCount = res.Data.PageCount
})
},
//新增修改课程系列
EditCategory(obj) {
if (obj) {
this.addMsg.Id = obj.Id
this.addMsg.Name = obj.Name
this.addMsg.Sort = obj.Sort
} else {
this.addMsg = Object.assign({}, addobj)
}
this.isShow = true;
},
submit() {
this.$refs.Name.validate();
this.$refs.Sort.validate();
if (!this.$refs.Name.hasError&& !this.$refs.Sort.hasError) {
setContributeMediumGroup(this.addMsg).then(res => {
if (res.Code == 1) {
this.$q.notify({
icon: 'iconfont icon-chenggong',
color: 'accent',
timeout: 2000,
message: '数据保存成功!',
position: 'top'
})
this.resetSearch()
this.isShow = false;
}
})
}
}
}
}
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
\ No newline at end of file
......@@ -188,6 +188,11 @@ const routes = [{
component: () =>
import("pages/system/receiptManage.vue")
},
{
path: "/system/platformdeploy", //平台配置
component: () =>
import("pages/system/platformdeploy.vue")
},
{
path: "/course/catagory", //课程分类
component: () =>
......@@ -1209,6 +1214,27 @@ const routes = [{
component: () =>
import("pages/teacher/teacherSchedule")
}, {
path: "/teacher/contribution/materialList",//投稿设置 素材管理
component: () =>
import("pages/teacher/contribution/materialList")
},
{
path: "/teacher/contribution/tgGroupingManage",//投稿设置 分组管理
component: () =>
import("pages/teacher/contribution/tgGroupingManage")
},
{
path: "/teacher/contribution/imageTextlist",//投稿设置 素材图文管理
component: () =>
import("pages/teacher/contribution/imageTextlist")
},
{
path: "/teacher/contribution/addimageText",//投稿设置 新增修改图文
component: () =>
import("pages/teacher/contribution/addimageText")
},
{
path: "/stuMan/activeList",//学管 活动列表
component: () =>
import("pages/stuMan/activeList")
......
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