Browse Source

v1.1 会议管理 + 参会人员

master
DESKTOP-00SUCB6\Administrator 4 years ago
parent
commit
a386b00f31
  1. 6
      public/config.js
  2. 51
      src/api/attendee.js
  3. 43
      src/api/meeting.js
  4. 48
      src/router/index.ts
  5. 7
      src/views/layout/components/AppMain.vue
  6. 22
      src/views/layout/components/Sidebar/index.vue
  7. 141
      src/views/systemManage/attendee/attendee.vue
  8. 8
      src/views/systemManage/company/companyDetail.vue
  9. 6
      src/views/systemManage/company/companyShow.vue
  10. 149
      src/views/systemManage/meet/meeting.vue
  11. 265
      src/views/systemManage/meet/meetingDetail.vue
  12. 2
      src/views/systemManage/notice/notice.vue
  13. 60
      src/views/systemManage/notice/noticeDetail.vue
  14. 6
      src/views/systemManage/user.vue

6
public/config.js

@ -5,9 +5,9 @@
// SHOW_URL: "http://www.fatoaniic.com/ftpfile/",
// }
config = {
API_URL: 'http://61.135.192.42:8082',
UPLOAD_URL: "http://61.135.192.42:8082/attachment/uploadOne",
DOWNLOAD_URL: "http://61.135.192.42:8082/api-ftp/ftp/download?filename=",
API_URL: 'http://172.119.50.51:8082',
UPLOAD_URL: "http://172.119.50.51:8082/attachment/uploadOne",
DOWNLOAD_URL: "http://172.119.50.51:8082/api-ftp/ftp/download?filename=",
SHOW_URL: "http://www.fatoaniic.com/ftpfile/",
}

51
src/api/attendee.js

@ -0,0 +1,51 @@
import request from '@/utils/request';
//获取参会人员列表信息
export function getAttendeeList(param) {
return request({
url: '/conferee/search',
method: 'post',
data:param
});
}
//创建参会人员
export function addAttendee(param) {
return request({
url: '/conferee/add',
method: 'post',
data:param
});
}
//删除参会人员
export function deleteAttendee(param) {
return request({
url: '/conferee/delete',
method: 'post',
data:param
});
}
//修改参会人员
export function editAttendee(param) {
return request({
url: '/conferee/edit',
method: 'post',
data:param
});
}
// //获取参会人员详情信息(id)
// export function getAttendeeById(id) {
// return request({
// url: '/conferee/get/'+id,
// method: 'get'
// });
// }
//导出参会人员列表信息
export function getAttendeeById(param) {
return request({
url: '/conferee/export',
method: 'post',
data:param
});
}

43
src/api/meeting.js

@ -0,0 +1,43 @@
import request from '@/utils/request';
//获取会议列表信息
export function getMeetingList(param) {
return request({
url: '/conference/search',
method: 'post',
data:param
});
}
//创建会议
export function addMeeting(param) {
return request({
url: '/conference/add',
method: 'post',
data:param
});
}
//删除会议
export function deleteMeeting(param) {
return request({
url: '/conference/delete',
method: 'post',
data:param
});
}
//修改会议
export function editMeeting(param) {
return request({
url: '/conference/edit',
method: 'post',
data:param
});
}
//获取会议详情信息(id)
export function getMeetingById(id) {
return request({
url: '/conference/get/'+id,
method: 'get'
});
}

48
src/router/index.ts

@ -76,12 +76,12 @@ const routes = [
redirect: 'noredirect',
meta: {title: '系统管理'},
children: [
// {
// path: 'menu',
// component: () => import('@/views/systemManage/menu.vue'),
// name: 'menuManage',
// meta: {title: '菜单管理', icon: 'register', noCache: true},
// },
{
path: 'menu',
component: () => import('@/views/systemManage/menu.vue'),
name: 'menuManage',
meta: {title: '菜单管理', icon: 'register', noCache: true},
},
{
path: 'user',
component: () => import('@/views/systemManage/user.vue'),
@ -184,7 +184,7 @@ const routes = [
path: 'notice',
component: () => import('@/views/systemManage/notice/notice.vue'),
name: 'noticeManage',
meta: {title: '公告管理', icon: 'register', noCache: true},
meta: {title: '文章管理', icon: 'register', noCache: true},
},
{
path: 'noticeDetail',
@ -192,13 +192,13 @@ const routes = [
component: () => import('@/views/systemManage/notice/noticeDetail.vue'),
name: 'noticeDetail',
meta: {
title: '公告详情',
title: '文章详情',
icon: 'register',
noCache: true,
breadcrumbList: [
{title: "系统管理", path: "", redirect: 'noredirect'},
{title: "公告管理", path: "/system/notice"},
{title: "公告编辑", path: "/system/notice/noticeDetail"}
{title: "文章管理", path: "/system/notice"},
{title: "文章编辑", path: "/system/notice/noticeDetail"}
]
},
},
@ -208,16 +208,38 @@ const routes = [
component: () => import('@/views/systemManage/notice/noticeShow.vue'),
name: 'noticeShow',
meta: {
title: '公告预览',
title: '文章预览',
icon: 'register',
noCache: true,
breadcrumbList: [
{title: "系统管理", path: "", redirect: 'noredirect'},
{title: "公告管理", path: "/system/notice"},
{title: "公告预览", path: "/system/notice/noticeShow"}
{title: "文章管理", path: "/system/notice"},
{title: "文章预览", path: "/system/notice/noticeShow"}
]
},
},
{
path: 'meetingManage',
name: 'meetingManage',
component: () => import('@/views/systemManage/meet/meeting.vue'),
meta: {title: '会议管理', icon: 'form', noCache: true},
},
{
path: 'meetingDetail',
name: 'meetingDetail',
component: () => import('@/views/systemManage/meet/meetingDetail.vue'),
breadcrumbList: [
{title: "系统管理", path: "", redirect: 'noredirect'},
{title: "会议管理", path: "/system/meetingManage"},
{title: "会议编辑", path: ""}
]
},
{
path: 'attendee',
name: 'attendee',
component: () => import('@/views/systemManage/attendee/attendee.vue'),
meta: {title: '参会人员', icon: 'form', noCache: true},
},
],
},
],

7
src/views/layout/components/AppMain.vue

@ -11,7 +11,9 @@
<!-- or name="fade" -->
<!-- <router-view :key="key"></router-view> -->
<!-- 内容页 -->
<keep-alive :include="aliveList">
<router-view style="min-width:700px;" />
</keep-alive>
</transition>
</section>
</div>
@ -23,6 +25,11 @@ import { Sidebar,Navbar } from "./index";
import ResizeMixin from "../mixin/ResizeHandler";
export default {
name: 'AppMain',
data(){
return {
aliveList:['userManage','companyManage','noticeManage']
}
},
components: {
Sidebar,
Navbar

22
src/views/layout/components/Sidebar/index.vue

@ -40,11 +40,11 @@
data(){
return {
routes:[
// {
// path: 'menu',
// name: 'menuManage',
// meta: {title: '', icon: 'table', noCache: true},
// },
{
path: 'menu',
name: 'menuManage',
meta: {title: '菜单管理', icon: 'table', noCache: true},
},
{
path: 'company',
name: 'companyManage',
@ -69,7 +69,17 @@
path: 'notice',
name: 'noticeManage',
meta: {title: '文章管理', icon: 'jiaoliu', noCache: true},
}
},
{
path: 'meetingManage',
name: 'meetingManage',
meta: {title: '会议管理', icon: 'form', noCache: true},
},
{
path: 'attendee',
name: 'attendee',
meta: {title: '参会人员', icon: 'user', noCache: true},
},
],
}
}

141
src/views/systemManage/attendee/attendee.vue

@ -0,0 +1,141 @@
<template>
<div class="app-container">
<div>
<el-form :inline="true" :model="formSearch" ref="ruleForm" class="demo-form-inline">
<el-form-item label="公司名称:">
<el-input v-model="formSearch.name" size="mini" placeholder="请输入公司名" clearable maxlength="50"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" size="mini" icon="el-icon-search" @click="search">查询</el-button>
</el-form-item>
<!-- <el-form-item class="float-right">
<el-button type="primary" size="mini" icon="el-icon-circle-plus-outline" @click="addMeeting">新增</el-button>
</el-form-item> -->
</el-form>
</div>
<el-table :data="tableData" style="width: 100%" header-row-class-name="">
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column prop="conferenceTitle" label="会议名称"></el-table-column>
<el-table-column prop="companyName" label="公司名称"></el-table-column>
<el-table-column prop="name" label="与会人员"></el-table-column>
<el-table-column prop="phone" label="手机号"></el-table-column>
<el-table-column prop="email" label="邮箱"></el-table-column>
<el-table-column prop="duty" label="职务"></el-table-column>
<el-table-column prop="stayStatus" label="住宿状态" width="120">
<template slot-scope="scope">
<span v-if="scope.row.stayStatus == 0">不住宿</span>
<span v-else-if="scope.row.stayStatus == 1">单间</span>
<span v-else-if="scope.row.stayStatus == 2">双人标间</span>
</template>
</el-table-column>
<!-- <el-table-column label="操作" width="200">
<template slot-scope="scope">
<el-button type="text" size="small" @click="editMeet(scope.row.id)"><i class="el-icon-edit"></i>修改</el-button>
<el-button type="text" size="small" @click="deleteMeet(scope.row.id)"><i class="el-icon-delete"></i>移除</el-button>
</template>
</el-table-column> -->
</el-table>
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-sizes="[10, 20, 50, 100]"
:page-size="pageSize"
layout="total, prev, pager, next, sizes, jumper"
:total="total">
</el-pagination>
</div>
</template>
<script>
import { getAttendeeList} from "@/api/attendee"
export default {
name: "attendee",
data() {
return {
formSearch: {//
name: ''
},
currentPage: 1, //
pageSize: 10, //
total: 0, //
tableData: [], //
companyList:[]
};
},
mounted() {
this.initData()
},
methods: {
//
search() {
this.currentPage = 1
this.initData()
},
//
initData() {
const params = {
pageNum: this.currentPage,
pageSize: this.pageSize,
search:{
companyName: this.formSearch.name.trim()
},
sort:''
}
getAttendeeList(params).then(res => {
this.tableData = res.data.list
this.total = res.data.count
})
},
// addMeeting(){
// this.$router.push({name: 'meetingDetail'})
// },
// //
// editMeet(id) {
// this.$router.push({name: 'meetingDetail', query: {id: id}})
// },
// //ID
// deleteMeet(id) {
// this.$confirm(', ?', '', {
// confirmButtonText: '',
// cancelButtonText: '',
// type: 'warning'
// }).then(() => {
// deleteMeeting([id]).then(res => {
// this.$message({
// message: '',
// type: 'success'
// });
// this.initData()
// })
// }).catch(() => {
// this.$message({
// type: 'info',
// message: ''
// });
// });
// },
//
handleSizeChange(val) {
this.pageSize = val
this.initData()
},
//
handleCurrentChange(val) {
this.currentPage = val
this.initData()
}
}
};
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
.input-with-select {
float: left;
top: 10px;
}
.el-input {
width: 230px;
}
</style>

8
src/views/systemManage/company/companyDetail.vue

@ -145,11 +145,6 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="官方网址:" :label-width="formLabelWidth" prop="enOffWeb">
<el-input v-model="formData.enOffWeb" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="联系人姓名:" :label-width="formLabelWidth" prop="conName">
<el-input v-model="formData.conName" autocomplete="off"></el-input>
</el-form-item>
@ -165,6 +160,9 @@
<el-form-item label="注册详细地址:" :label-width="formLabelWidth" prop="enDetAddress">
<el-input v-model="formData.enDetAddress" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="官方网址:" :label-width="formLabelWidth" prop="enOffWeb">
<el-input v-model="formData.enOffWeb" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="组织/单位营业执照:" :label-width="formLabelWidth" prop="enOpeAddress">
<div class="flex-box">
<el-upload

6
src/views/systemManage/company/companyShow.vue

@ -49,9 +49,6 @@
<!-- <span>{{ formData.registerName }}</span> -->
<span>{{ formData.provinceName + ' , ' + formData.cityName + ' , ' + formData.areaName }}</span>
</el-form-item>
<el-form-item label="官方网址:" :label-width="formLabelWidth" prop="enOffWeb">
<span>{{ formData.enOffWeb }}</span>
</el-form-item>
<el-form-item label="联系人姓名:" :label-width="formLabelWidth" prop="conName">
<span>{{ formData.conName }}</span>
</el-form-item>
@ -67,6 +64,9 @@
<el-form-item label="注册详细地址:" :label-width="formLabelWidth" prop="enDetAddress">
<span>{{ formData.enDetAddress }}</span>
</el-form-item>
<el-form-item label="官方网址:" :label-width="formLabelWidth" prop="enOffWeb">
<span>{{ formData.enOffWeb }}</span>
</el-form-item>
<el-form-item label="组织/单位营业执照:" :label-width="formLabelWidth" prop="enOpeAddress">
<div class="flex-box">
<img :src="formData.enOpeAddress" class="avatar">

149
src/views/systemManage/meet/meeting.vue

@ -0,0 +1,149 @@
<template>
<div class="app-container">
<div>
<el-form :inline="true" :model="formSearch" ref="ruleForm" class="demo-form-inline">
<el-form-item label="会议名:">
<el-input v-model="formSearch.name" size="mini" placeholder="请输入用户名" clearable maxlength="50"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" size="mini" icon="el-icon-search" @click="search">查询</el-button>
</el-form-item>
<el-form-item class="float-right">
<el-button type="primary" size="mini" icon="el-icon-circle-plus-outline" @click="addMeeting">新增</el-button>
</el-form-item>
</el-form>
</div>
<el-table :data="tableData" style="width: 100%" header-row-class-name="">
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column prop="title" label="会议名称"></el-table-column>
<el-table-column prop="type" label="会议类型" width="120">
<template slot-scope="scope">
<span v-if="scope.row.type == 1">食品工业互联网大会</span>
<span v-else-if="scope.row.type == 2">食品工业转型升级论坛</span>
<span v-else-if="scope.row.type == 3">线上会议沙龙</span>
</template>
</el-table-column>
<el-table-column prop="startTime" label="开始时间" width="120"></el-table-column>
<el-table-column prop="endTime" label="结束时间" width="120"></el-table-column>
<el-table-column prop="confereeType" label="参会类型" width="120">
<template slot-scope="scope">
<span v-if="scope.row.confereeType == 0">所有人</span>
<span v-else-if="scope.row.confereeType == 1">仅限会员</span>
</template>
</el-table-column>
<el-table-column prop="schedule" label="会议日程"></el-table-column>
<el-table-column prop="address" label="会议地址"></el-table-column>
<el-table-column prop="sponsor" label="主办单位"></el-table-column>
<el-table-column prop="organizer" label="承办单位"></el-table-column>
<el-table-column prop="coOrganizer" label="协办单位"></el-table-column>
<el-table-column label="操作" width="200">
<template slot-scope="scope">
<el-button type="text" size="small" @click="editMeet(scope.row.id)"><i class="el-icon-edit"></i>修改</el-button>
<el-button type="text" size="small" @click="deleteMeet(scope.row.id)"><i class="el-icon-delete"></i>移除</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-sizes="[10, 20, 50, 100]"
:page-size="pageSize"
layout="total, prev, pager, next, sizes, jumper"
:total="total">
</el-pagination>
</div>
</template>
<script>
import { getMeetingList , deleteMeeting} from "@/api/meeting"
export default {
name: "meetingManage",
data() {
return {
formSearch: {//
name: ''
},
currentPage: 1, //
pageSize: 10, //
total: 0, //
tableData: [], //
companyList:[]
};
},
mounted() {
this.initData()
},
methods: {
//
search() {
this.currentPage = 1
this.initData()
},
//
initData() {
const params = {
pageNum: this.currentPage,
pageSize: this.pageSize,
search:{
title: this.formSearch.name.trim()
},
sort:''
}
getMeetingList(params).then(res => {
this.tableData = res.data.list
this.total = res.data.count
})
},
addMeeting(){
this.$router.push({name: 'meetingDetail'})
},
//
editMeet(id) {
this.$router.push({name: 'meetingDetail', query: {id: id}})
},
//ID
deleteMeet(id) {
this.$confirm('此操作将删除该文章, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteMeeting([id]).then(res => {
this.$message({
message: '删除成功!',
type: 'success'
});
this.initData()
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
},
//
handleSizeChange(val) {
this.pageSize = val
this.initData()
},
//
handleCurrentChange(val) {
this.currentPage = val
this.initData()
}
}
};
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
.input-with-select {
float: left;
top: 10px;
}
.el-input {
width: 230px;
}
</style>

265
src/views/systemManage/meet/meetingDetail.vue

@ -0,0 +1,265 @@
<template>
<div class="app-container">
<el-form :model="form" :rules="rules" ref="ruleForm">
<el-row>
<el-col :span="11" style="padding-right:30px;">
<el-form-item label="会议名称:" :label-width="formLabelWidth" prop="title">
<el-input v-model="form.title" autocomplete="off" placeholder="请输入会议名称"></el-input>
</el-form-item>
<el-form-item label="会议类型:" :label-width="formLabelWidth" prop="type">
<el-select v-model="form.type" placeholder="请选择会议类型">
<el-option label="食品工业互联网大会" :value="1"></el-option>
<el-option label="食品工业转型升级论坛" :value="2"></el-option>
<el-option label="线上会议沙龙" :value="3"></el-option>
</el-select>
</el-form-item>
<el-form-item label="会议日期:" :label-width="formLabelWidth" prop="time">
<el-date-picker
v-model="form.time"
type="daterange"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</el-form-item>
<el-form-item label="参会类型:" :label-width="formLabelWidth" prop="confereeType">
<el-select v-model="form.confereeType" placeholder="请选择参会类型">
<el-option label="所有人" :value="0"></el-option>
<el-option label="仅限会员" :value="1"></el-option>
</el-select>
</el-form-item>
<el-form-item label="会议日程:" :label-width="formLabelWidth" prop="schedule">
<el-input v-model="form.schedule" autocomplete="off" placeholder="请输入会议日程"></el-input>
</el-form-item>
<el-form-item label="会议地址:" :label-width="formLabelWidth" prop="address">
<el-input v-model="form.address" autocomplete="off" placeholder="请输入会议地址"></el-input>
</el-form-item>
<el-form-item label="主办单位:" :label-width="formLabelWidth" prop="sponsor">
<el-input v-model="form.sponsor" autocomplete="off" placeholder="请输入主办单位"></el-input>
</el-form-item>
<el-form-item label="承办单位:" :label-width="formLabelWidth" prop="organizer">
<el-input v-model="form.organizer" autocomplete="off" placeholder="请输入承办单位"></el-input>
</el-form-item>
<el-form-item label="协办单位:" :label-width="formLabelWidth" prop="coOrganizer">
<el-input v-model="form.coOrganizer" autocomplete="off" placeholder="请输入协办单位"></el-input>
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item label="免费提醒:" :label-width="formLabelWidth" prop="freeRemind">
<el-input v-model="form.freeRemind" autocomplete="off" placeholder="请输入免费提醒"></el-input>
</el-form-item>
<el-form-item label="费用说明:" :label-width="formLabelWidth" prop="feeDescription">
<el-input v-model="form.feeDescription" autocomplete="off" placeholder="请输入费用说明"></el-input>
</el-form-item>
<el-form-item label="费用权益:" :label-width="formLabelWidth" prop="costEquity">
<el-input v-model="form.costEquity" autocomplete="off" placeholder="请输入费用权益"></el-input>
</el-form-item>
<el-form-item label="会刊填报方式:" :label-width="formLabelWidth" prop="registrationWay">
<el-input v-model="form.registrationWay" autocomplete="off" placeholder="请输入会刊填报方式"></el-input>
</el-form-item>
<el-form-item label="汇款账户:" :label-width="formLabelWidth" prop="remittancesAccount">
<el-input v-model="form.remittancesAccount" autocomplete="off" placeholder="请输入汇款账户"></el-input>
</el-form-item>
<el-form-item label="关于发票:" :label-width="formLabelWidth" prop="aboutInvoice">
<el-input v-model="form.aboutInvoice" autocomplete="off" placeholder="请输入关于发票"></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="form-footer">
<el-button type="primary" size="mini" @click="submitForm('ruleForm')">确定</el-button>
<el-button type="info" size="mini" @click="resetForm('ruleForm')">返回</el-button>
</div>
</el-form>
</div>
</template>
<script>
import {addMeeting,editMeeting,getMeetingById} from "@/api/meeting"
export default {
name: 'meetingDetail',
data() {
return {
ID: this.$route.query.id || '', //id
isEdit: false, // or
formLabelWidth: '180px', //formlable
form: { //form
title: '',
type:'',
time:'',
startTime:'',
endTime:'',
confereeType: '',
schedule: '',
address: '',
sponsor:'',
organizer:'',
coOrganizer: '',
freeRemind:'',
feeDescription:'',
costEquity:"",
registrationWay:'',
remittancesAccount:'',
aboutInvoice:'',
},
rules: { //form
title: [
{required: true, message: '请输入标题', trigger: 'blur'}
],
type: [
{required: true, message: '请选择会议类型', trigger: 'click'}
],
time: [
{required: true, message: '请选择会议日期', trigger: 'click'}
],
confereeType: [
{required: true, message: '请选择公告类别', trigger: 'click'}
],
schedule: [
{required: true, message: '请输入会议日程', trigger: 'blur'}
],
address: [
{required: true, message: '请输入会议地址', trigger: 'blur'}
],
sponsor: [
{required: true, message: '请输入主办单位', trigger: 'blur'}
],
organizer: [
{required: true, message: '请输入承办单位', trigger: 'blur'}
],
coOrganizer: [
{required: true, message: '请输入协办单位', trigger: 'blur'}
],
}
}
},
mounted() {
//id
if (this.ID != '') {
this.isEdit = true
this.initData()
}
},
methods: {
//id
initData() {
getMeetingById(this.ID).then(res => {
if (res.data) {
this.form = res.data
this.form.time = [res.data.startTime,res.data.endTime]
}
})
},
//
addMeetingInfo() {
let params = JSON.parse(JSON.stringify(this.form))
params.startTime = params.time[0]
params.endTime = params.time[0]
delete(params.time)
addMeeting(params).then(res => {
this.$message({
message: '添加成功!',
type: 'success'
});
this.$router.go(-1)
})
},
//
editMeet() {
let params = JSON.parse(JSON.stringify(this.form))
params.startTime = params.time[0]
params.endTime = params.time[0]
delete(params.time)
editMeeting(params).then(res => {
this.$message({
message: '修改成功!',
type: 'success'
});
this.$router.go(-1)
})
},
//form
submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
if (this.isEdit) { //
this.editMeet()
} else { //
this.addMeetingInfo()
}
} else {
console.log('error submit!!');
return false;
}
});
},
//
resetForm(formName) {
this.$refs[formName].resetFields();
this.$router.go(-1)
}
}
}
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
.el-select, .el-date-editor--daterange.el-input__inner {
width: 303px;
}
.el-input {
width: 303px !important;
}
.form-footer {
text-align: center;
}
</style>
<style lang="scss">
.ql-editor {
min-height: 350px !important;
}
.edui-default .edui-toolbar {
line-height: 20px;
}
.ql-container.ql-snow {
height: 700px;
}
</style>
<style lang="scss">
.quill-editor {
/*工具栏内用*/
.ql-font {
span[data-value="Arial"]::before {
content: "Arial" !important;
font-family: "Arial";
}
span[data-value="宋体"]::before {
content: "宋体" !important;
font-family: "宋体";
}
span[data-value="黑体"]::before {
content: "黑体" !important;
font-family: "黑体";
}
span[data-value="微软雅黑"]::before {
content: "微软雅黑" !important;
font-family: "微软雅黑";
}
}
/*编辑器内容用*/
.ql-font-Arial {
font-family: "Arial";
}
.ql-font-宋体 {
font-family: "宋体";
}
.ql-font-黑体 {
font-family: "黑体";
}
.ql-font-微软雅黑 {
font-family: "微软雅黑";
}
}
</style>

2
src/views/systemManage/notice/notice.vue

@ -6,7 +6,7 @@
<el-input v-model="formSearch.title" size="mini" placeholder="请输入标题" clearable maxlength="50"></el-input>
</el-form-item>
<el-form-item label="文章类型:">
<el-select v-model="formSearch.type" size="mini" placeholder="请选择文章类型">
<el-select v-model="formSearch.type" size="mini" clearable placeholder="请选择文章类型">
<el-option
v-for="item in sortType"
:key="item.value"

60
src/views/systemManage/notice/noticeDetail.vue

@ -69,6 +69,24 @@
<el-form-item label="作者:" :label-width="formLabelWidth" prop="author">
<el-input v-model="form.author" autocomplete="off" placeholder="请输入作者"></el-input>
</el-form-item>
<el-form-item label="附件:" :label-width="formLabelWidth" prop="author">
<el-upload
class="upload-demo"
:action="upload_action"
:headers="upload_headers"
:data="upload_data"
:before-upload="handlebeforeUpload"
:on-preview="handlePreview"
:on-success="handleAvatarSuccess"
:on-remove="handleRemove"
:before-remove="beforeRemove"
:limit="1"
:on-exceed="handleExceed"
:file-list="fileList">
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">文件大小不超过10MB</div>
</el-upload>
</el-form-item>
<el-form-item label="文章摘要:" :label-width="formLabelWidth" prop="description">
<el-input type="textarea" style="width:500px" v-model="form.description" autocomplete="off" placeholder="请输入文章摘要" rows="4" maxlength="125"></el-input>
</el-form-item>
@ -143,6 +161,7 @@ export default {
description:'',
content: '',
isIssue:'1',
accessoryUrl:'',
isHomeSlideshow:0,
sort:''
},
@ -217,7 +236,8 @@ export default {
theme: 'snow', // snow/bubble
syntax: true, //
},
titleUrl:''
titleUrl:'',
fileList:[]
}
},
computed: {
@ -247,7 +267,12 @@ export default {
getNoticeInfo(this.ID).then(res => {
if (res.data) {
this.form = res.data
if(this.form.imgUrl) this.titleUrl = this.form.imgUrl
if(this.form.imgUrl) {
this.titleUrl = this.form.imgUrl
}
if(this.form.accessoryUrl) {
this.fileList.push({name:this.form.accessoryUrl.split('-cfiiu-')[1],url:this.form.accessoryUrl})
}
}
})
},
@ -283,6 +308,7 @@ export default {
description: this.form.description,
content: this.form.content,
isIssue:this.form.isIssue,
accessoryUrl:this.form.accessoryUrl,
isHomeSlideshow:this.form.isHomeSlideshow,
sort:this.form.sort
}
@ -355,7 +381,37 @@ export default {
this.rules.imgUrl = [
{required: true, message: '请上传标题图片', trigger: 'blur'}
]
} else {
this.rules.imgUrl = [
{required: false, message: '请上传标题图片', trigger: 'blur'}
]
}
},
handleRemove(file, fileList) {
console.log(file, fileList);
},
handlePreview(file) {
console.log(file);
window.open(file.url,'_blank');
},
handleExceed(files, fileList) {
this.$message.warning(`当前限制选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
},
//
beforeRemove(file, fileList) {
return this.$confirm(`确定移除 ${ file.name }`);
},
//
handlebeforeUpload(file) {
const isLt2M = file.size / 1024 / 1024 < 10;
if (!isLt2M) {
this.$message.error('上传头像图片大小不能超过 10MB!');
}
return isLt2M;
},
//
handleAvatarSuccess(response, file, fileList) {
this.form.accessoryUrl = response.data
}
}
}

6
src/views/systemManage/user.vue

@ -3,7 +3,7 @@
<div>
<el-form :inline="true" :model="formSearch" ref="ruleForm" class="demo-form-inline">
<el-form-item label="用户名:">
<el-input v-model="formSearch.name" size="mini" placeholder="请输入用户名" clearable maxlength="50"></el-input>
<el-input v-model="formSearch.account" size="mini" placeholder="请输入用户名" clearable maxlength="50"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" size="mini" icon="el-icon-search" @click="search">查询</el-button>
@ -177,7 +177,7 @@ export default {
return {
isEdit: false, // or
formSearch: {//
search: '',
account: ''
},
currentPage: 1, //
pageSize: 10, //
@ -267,7 +267,7 @@ export default {
pageNum: this.currentPage,
pageSize: this.pageSize,
search:{
name: this.formSearch.search.trim()
account: this.formSearch.account.trim()
},
sort:''
}

Loading…
Cancel
Save