Commit 95e44856 authored by FE-安焕焕's avatar FE-安焕焕 👣

Merge branch 'time' into 'master'

Time

See merge request !5
parents 984283a7 823d2e85
......@@ -15,7 +15,7 @@ module.exports = {
// Various Dev Server settings
host: '0.0.0.0', // can be overwritten by process.env.HOST
port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
port: 7089, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
autoOpenBrowser: true,
errorOverlay: true,
notifyOnErrors: true,
......
......@@ -49,8 +49,8 @@ export default {
user-select: text !important;
}
.pc {
min-width: 1341px;
min-height: 741px;
height: 100%;
min-width: 860px;
}
.mobile {
......
......@@ -23,10 +23,11 @@ export function SInterview(tid) {
}})
}
// 面试管理查询
export function SerchList(parmars) {
export function SerchList(parmars, status) {
return axios.post(`${sapi}/api/interview/findListByQueryVO`,parmars,{headers: {
'Content-Type':'application/json;',
'X-Requested-With':'XMLHttpRequest'
'X-Requested-With':'XMLHttpRequest',
status
}})
}
//查看简历详情页
......@@ -37,9 +38,7 @@ export function seedetail (parmars) {
}
//面试官查询
export function Serchinterviewor() {
return axios.post(`${sapi}/api/interview/findInterviewerList`,{headers: {
'Content-Type':'application/json;',
}})
return axios.get(`${sapi}/api/interview/findInterviewerList`)
}
//邀约人查询
export function SerchInvitationOwer() {
......
......@@ -17,14 +17,15 @@ export function downloadone (parmars) {
}})
}
// 搜索
export function sousuoList (parmars) {
export function sousuoList (parmars, status) {
return axios.post(`${sapi}/api/resume/findListByQueryVO`,parmars,{headers: {
'Content-Type':'application/json'
'Content-Type':'application/json',
status
}})
}
//查看简历详情页
export function seedetail (parmars) {
return axios.get(`${sapi}/api/html/get/${parmars.resumeId}`,{headers: {
return axios.get(`${sapi}/api/html/get/${parmars.resumeId}?token=${parmars.token}`,{headers: {
'Content-Type':'application/json'
}})
}
......
<template>
<Row id="home" class="home">
<Col span="3" class="aside" style="width:17%;height:100%">
<loading v-show='showLoading'></loading>
<Col span="3" class="aside" style="width:17%;height:100%;overflow: auto;">
<img src="https://o7oe0d6qz.qnssl.com/image/homelogo.png" alt="" style="height:60px">
<Menu style="width: 100%;" ref='subMenu' :active-name="levelThreeName" :open-names="levelTwoName" @on-select="go">
<template v-for="(menu) in childMenu" >
......@@ -15,7 +16,7 @@
</Menu>
</Col>
<Col span="21" class="content" style="width:83%;height:100%">
<Row class="header" style="height:6%">
<Row class="header" style="height:50px">
<Col span="20">
<Menu mode="horizontal" :active-name="levelOneName" @on-select="selectMenu">
<MenuItem v-for="menu in menuList" :name="menu.name" :key="menu.name" >
......@@ -23,15 +24,15 @@
</MenuItem>
</Menu>
</Col>
<Col span="2" class="account" style="">
<span style="display:inline-block;line-height:6%;margin-left:30%">{{massage}}</span>
<Col span="2" class="account" style="text-align:right;">
<span style="display:inline-block;line-height:6%;margin-left:30%;">{{massage}}</span>
</Col>
<Col span="2" class="sign-out" >
<Col span="1" class="sign-out" >
<a @click="loginOut" style="margin-left:38%">退出</a>
</Col>
</Row>
<Row style="height:94%">
<router-view></router-view>
<router-view></router-view>
</Row>
</Col>
</Row>
......@@ -39,6 +40,8 @@
<script>
import {getpersonMassage,loginOUT,adoptOneSeeResumeList,getChannelMassage,judeAdmin} from '../api/home.server.js'
import localstorage from '../service/localstorage.service.js'
import loading from '../components/loading.vue'
import {mapState} from 'vuex'
export default{
data() {
return {
......@@ -150,6 +153,14 @@ import localstorage from '../service/localstorage.service.js'
}
},
computed: {
...mapState({
showLoading: state => state.loading
})
},
components: {
loading
},
methods: {
go(name) {
this.levelThreeName = name
......@@ -161,7 +172,7 @@ import localstorage from '../service/localstorage.service.js'
})
})
},
selectMenu(name, refesh) {
async selectMenu(name, refesh) {
// // refesh是否为刷新页面
this.levelOneName = name
const menus = this.menuList.filter(v => name === v.name)
......@@ -173,7 +184,7 @@ import localstorage from '../service/localstorage.service.js'
this.levelThreeName = initName.levelThreeName
}
if (menus[0].loadMenu) { // 简历管理模块需要加载渠道简历
this.getChannelMenu()
await this.getChannelMenu()
}
if (refesh&&this.$route.path.indexOf('channel') > -1) {
this.levelThreeName = this.$route.path.split('/')[2]
......@@ -202,7 +213,7 @@ import localstorage from '../service/localstorage.service.js'
},
getChannelMenu(){
this.menuList[0].child[1].child = []
getChannelMassage().then(res=>{
return getChannelMassage().then(res=>{
if (res.data.status == false || !res.data.success) {
return
}
......@@ -287,11 +298,11 @@ import localstorage from '../service/localstorage.service.js'
<style lang="less" scoped>
.home{
height: 100%;
overflow: hidden;
.aside{
// min-height: 2050px;
border-right: 1px solid #dcdee2;
box-shadow: #dcdee2 0 0 6px 1px;
// width:15%;
height: 100%;
img{
height: 49px;
width: 100%;
......@@ -311,13 +322,13 @@ import localstorage from '../service/localstorage.service.js'
line-height: 55px;
border-bottom: 1px solid rgb(220, 222, 226);
font-size: 14px;
overflow:hidden;
.sign-out{
line-height: 6%
}
.ivu-menu{
height: 35px;
line-height: 35px;
margin: 0 10px;
height: 43px;
line-height: 43px;
.ivu-menu-item{
padding: 0 13px;
margin: 0 49px;
......
<template>
<div class='loadingmark'>
<div class="loading-audio">
<svg :width="width+'px'" :height="height+'px'" xmlns="http://www.w3.org/2000/svg" :viewBox="viewBox" preserveAspectRatio="xMidYMid">
<g transform="translate(20 50)">
<circle cx="0" cy="0" r="7" fill="#11a181" transform="scale(0.99275 0.99275)" class='circle'/>
</g>
<g transform="translate(40 50)">
<circle cx="0" cy="0" r="7" fill="#11a181" transform="scale(0.773605 0.773605)" class='circle1'/>
</g>
<g transform="translate(60 50)">
<circle cx="0" cy="0" r="7" fill="#11a181" transform="scale(0.42525 0.42525)" class='circle2'/>
</g>
<g transform="translate(80 50)">
<circle cx="0" cy="0" r="7" fill="#11a181" transform="scale(0.113418 0.113418)" class='circle3'/>
</g>
</svg>
</div>
<div style="font-size: 18px;font-weight: 500;color:#11a181">Loading...</div>
</div>
</template>
<script>
export default{
name: 'loading',
props: {
width: {
type: Number,
default: 80
},
height: {
type: Number,
default: 80
}
},
created () {
this.viewBox = '0 0' + ' ' + (this.width + 10) + ' ' + this.height
},
data () {
return {
viewBox: ''
}
}
}
</script>
<style lang='less' scoped>
.loadingmark{
position:absolute;
top:0px;
left:0px;
width:100%;
height:100%;
background-color: rgba(255,255,255,0.6);
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
z-index: 1600;
}
.loading-audio {
width: 100px;
background-repeat: no-repeat;
background-size: cover;
// background-image: url('data:image/svg+xml,<svg width="135" height="140" viewBox="0 0 135 140" xmlns="http://www.w3.org/2000/svg" fill="#2d8cf0"><rect y="10" width="15" height="120" rx="6"><animate attributeName="height" begin="0.5s" dur="1s" values="120;110;100;90;80;70;60;50;40;140;120" calcMode="linear" repeatCount="indefinite" /><animate attributeName="y" begin="0.5s" dur="1s" values="10;15;20;25;30;35;40;45;50;0;10" calcMode="linear" repeatCount="indefinite" /></rect><rect x="30" y="10" width="15" height="120" rx="6"><animate attributeName="height" begin="0.25s" dur="1s" values="120;110;100;90;80;70;60;50;40;140;120" calcMode="linear" repeatCount="indefinite" /><animate attributeName="y" begin="0.25s" dur="1s" values="10;15;20;25;30;35;40;45;50;0;10" calcMode="linear" repeatCount="indefinite" /></rect><rect x="60" width="15" height="140" rx="6"><animate attributeName="height" begin="0s" dur="1s" values="120;110;100;90;80;70;60;50;40;140;120" calcMode="linear" repeatCount="indefinite" /><animate attributeName="y" begin="0s" dur="1s" values="10;15;20;25;30;35;40;45;50;0;10" calcMode="linear" repeatCount="indefinite" /></rect><rect x="90" y="10" width="15" height="120" rx="6"><animate attributeName="height" begin="0.25s" dur="1s" values="120;110;100;90;80;70;60;50;40;140;120" calcMode="linear" repeatCount="indefinite" /><animate attributeName="y" begin="0.25s" dur="1s" values="10;15;20;25;30;35;40;45;50;0;10" calcMode="linear" repeatCount="indefinite" /></rect><rect x="120" y="10" width="15" height="120" rx="6"><animate attributeName="height" begin="0.5s" dur="1s" values="120;110;100;90;80;70;60;50;40;140;120" calcMode="linear" repeatCount="indefinite" /><animate attributeName="y" begin="0.5s" dur="1s" values="10;15;20;25;30;35;40;45;50;0;10" calcMode="linear" repeatCount="indefinite" /></rect></svg>');
}
.circle{
animation: ani-demo-spin 1s linear infinite;
animation-delay:-0.375s;
}
@keyframes ani-demo-spin {
from { transform: scale(0);}
50% { transform: scale(1)}
to { transform: scale(0)}
}
.circle1{
animation: ani-demo-spin1 1s linear infinite;
animation-delay:-0.25s;
}
@keyframes ani-demo-spin1 {
from { transform: scale(0);}
50% { transform: scale(1)}
to { transform: scale(0)}
}
.circle2{
animation: ani-demo-spin2 1s linear infinite;
animation-delay:-0.125s;
}
@keyframes ani-demo-spin2 {
from { transform: scale(0);}
50% { transform: scale(1)}
to { transform: scale(0)}
}
.circle3{
animation: ani-demo-spin3 1s linear infinite;
animation-delay:0s;
}
@keyframes ani-demo-spin3 {
from { transform: scale(0);}
50% { transform: scale(1)}
to { transform: scale(0)}
}
</style>
......@@ -84,7 +84,7 @@
</div>
</div>
<div class="interview-right">
<Form :label-width="80" onsubmit="return false;">
<Form :label-width="80" onsubmit="return false;" class='emailForm'>
<FormItem label="关键词:" style="margin-top:20px;margin-left:1%">
<Input placeholder="请输入关键词" style="width:80%" v-model="keywords" @keyup.enter.native="Sousuo()"/>
</FormItem>
......@@ -97,9 +97,11 @@
</Select>
</FormItem>
<FormItem label="面试官:" style="margin-top:20px">
<Select style="width:80%;height:20px" placeholder="请选择" :label-in-value='true' @on-change='selectinterviewElement'>
<Option v-for="(item,index) in Interviewer" :key="index" :value="index" >{{item}}</Option>
</Select>
<Select style="width:80%;height:20px" :label-in-value='true' @on-change='selectinterviewElement' filterable remote
:remote-method="remoteMethod"
:loading="loading1" placeholder='请输入面试官全名' clearable>
<Option v-for='(item, index) in options' :key='index' :value='item.name'>{{item.name}}({{item.email}})</Option>
</Select>
</FormItem>
<FormItem label="状态:" class="state2">
<span v-for="(item,index) in state" style="cursor:pointer" :class="{'active2':item.sta==true}" @click="selectElement3(item.Num3,index,item.status3,item.sta)" :key="'state2'+index"> {{item.status3}}</span>
......@@ -165,17 +167,21 @@
<Modal
v-model="modal2"
:closable="false"
width='300px'>
width='400px'>
<h3 style="text-align:center">更改约面信息</h3>
<Form :label-width="80" ref="formInline" :rules="ruleInline" :model="formInline">
<FormItem label="邀约人" style="margin-top:20px" prop="UpdateOWER">
<Input v-model="formInline.UpdateOWER" :maxlength="5"/>
</FormItem>
<FormItem label="面试时间" style="margin-top:20px" prop="UpdateTIME">
<DatePicker type="datetime" style="width:185px" v-model="formInline.UpdateTIME" @on-change="selectTime" placeholder="请选择时间" :options="options3" :editable='false' format="yyyy-MM-dd HH:mm"></DatePicker>
<DatePicker type="datetime" style="width:100%;" v-model="formInline.UpdateTIME" @on-change="selectTime" placeholder="请选择时间" :options="options3" :editable='false' format="yyyy-MM-dd HH:mm"></DatePicker>
</FormItem>
<FormItem label="面试官" style="margin-top:20px" prop="UpdateVIEW">
<Input v-model="formInline.UpdateVIEW" :maxlength="5"/>
<Select v-model ='formInline.UpdateVIEW' filterable style='width:100%;' remote
:remote-method="remoteMethod"
:loading="loading1" placeholder='请输入面试官全名' clearable>
<Option v-for='(item, index) in options' :key='index' :value='item.name'>{{item.name}}({{item.email}})</Option>
</Select>
</FormItem>
</Form>
<div slot='footer' style="text-align:center">
......@@ -227,6 +233,7 @@
<script>
import moment from 'moment'
import {changeinterviewMassage,SerchList,Serchinterviewor,SerchInvitationOwer,NewAddInterview,SInterview,oppenInterview,recodeLIST,changestatus,seedetail,formstatus} from '../../api/interview.server.js'
import {findCompanyEmailByKey} from '../../api/resume.server.js'
export default {
data(){
return{
......@@ -303,7 +310,9 @@ export default {
activeName:'',
Essentialinformation:[],
serchData:[],
serchData2:[]
serchData2:[],
options: [],
loading1: false
}
},
methods: {
......@@ -404,7 +413,7 @@ export default {
})
},
// 查询面试信息
serchListInterview(page) {
serchListInterview(page,status) {
page = typeof(page)=='number'?page:1
this.searchInfo.pageIndex = page
this.pageIndex = page
......@@ -419,7 +428,7 @@ export default {
inviterName:'',
}
}
SerchList(parmars).then(res=>{
SerchList(parmars,status).then(res=>{
if(res.data.success==true){
this.spinShow=false
this.totalSize=res.data.body.totalNumber
......@@ -442,12 +451,8 @@ export default {
})
},
// 面试官查询
Serchlistinterview(){
SerchlistinterviewList(){
Serchinterviewor().then(res=>{
console.log(res)
if (!res.data.succes) {
return
}
this.Interviewer=res.data.body
this.Interviewer.unshift('不限')
})
......@@ -528,7 +533,7 @@ export default {
title: '提示',
desc: '已成功重启流程'
});
this. serchListInterview()
this.serchListInterview()
}
})
this.modal4=false
......@@ -683,10 +688,10 @@ export default {
this.clickIndex1=Tindex
},
selectinterviewElement(e){
if(e.label=='不限'){
if(e.value=='不限'){
this.interviewerName=''
}else{
this.interviewerName=e.label
this.interviewerName=e.value
}
},
selectinterviewElement2(e){
......@@ -706,16 +711,43 @@ export default {
this.pageSize=page
this.Sousuo()
},
remoteMethod: function(query){
if (query !== '') {
this.loading1 = true;
setTimeout(() => {
this.loading1 = false;
let list = []
query = query.split('(')[0]
findCompanyEmailByKey(query).then(res => {
list = res
this.options = list.data.body
// this.options.push({name: '不限', email: ''})
})
}, 500);
} else {
this.options = [];
}
},
},
mounted(){
this.serchListInterview()
this.Serchlistinterview()
this.serchListInterview(null, 'init')
// this.Serchlistinterview()
this.SerchInvitation()
this.SerchlistinterviewList()
}
}
</script>
<style>
.interview .emailForm .ivu-form-item-label{
font-size: 14px
}
.interview .ivu-form-item-content{
font-size: 14px;
}
.interview .ivu-form-item-error-tip{
font-size:12px;
}
.interview{
height: 100%;
width:100%;
......@@ -809,9 +841,13 @@ option:hover{
color: blue;
}
.Education2{
width:380px;
width:85%;
}
.Education2 span{
display: inline-block;
margin-right: 20px;
}
.Education2 :nth-child(2){
/* .Education2 :nth-child(2){
margin-left: 11%
}
.Education2 :nth-child(3){
......@@ -825,11 +861,15 @@ option:hover{
}
.Education2 :nth-child(7){
margin-left: 10%
}
} */
.state2{
width: 380px;
width: 85%;
}
.state2 :nth-child(2){
.state2 span{
display: inline-block;
margin-right: 20px;
}
/* .state2 :nth-child(2){
margin-left: 6%
}
.state2 :nth-child(3){
......@@ -858,5 +898,5 @@ option:hover{
}
.state2 :nth-child(13){
margin-left: 10%
}
} */
</style>
This diff is collapsed.
This diff is collapsed.
......@@ -124,6 +124,7 @@
</template>
<script>
import {seedetail} from '../../api/resume.server'
import localStorage from '../../service/localstorage.service.js'
import {
sapi
}from '../../config'
......@@ -144,9 +145,10 @@ export default {
getDETAIL(){
this.detialID=this.$route.query.id
this.showBtn=this.$route.query.noShowBtn
console.log(this.showBtn,555555)
let token = this.$route.query.token || ''
let parmars={
resumeId:this.$route.query.id
resumeId:this.$route.query.id,
token
}
seedetail(parmars).then(res=>{
this.resume=res.data.body.resume
......@@ -166,14 +168,13 @@ export default {
},
mounted(){
this.getDETAIL()
console.log(this.$route.query.noShowBtn,8888)
}
}
</script>
<style scoped>
.resumeDetail{
width: 860px;
margin: 30px auto
margin: 30px auto;
}
.personalInformation{
width:860px;
......
......@@ -38,7 +38,7 @@
</Form>
</div>
<div class="submission">
<Button type='primary' @click="confirmSubmission" >提交</Button>
<Button type='primary' @click="confirmSubmission" :loading="loading">提交</Button>
</div>
<Modal
v-model="modal3"
......@@ -73,6 +73,7 @@ export default {
return {
docmHeight: '0',
showHeight: '0',
loading: false,
hidshow:true,
isResize:false,
modal3:false,
......@@ -193,8 +194,10 @@ export default {
mobile:this.formInline.phoneNUmber,
takeResume:this.formInline.model2
}
this.loading = true
submitMassage(parmars).then(res=>{
if(res.data.success==true){
this.loading = false
this.formInline.model1=''
this.formInline.model2=''
this.formInline.Inviter=''
......
......@@ -320,6 +320,7 @@ import {uploadFile} from '../../service/ajax'
return
}
this.uploadModal = true
this.filetile='上传中请稍后...'
uploadFile({
headers: this.headers,
data: this.dataList,
......@@ -334,9 +335,10 @@ import {uploadFile} from '../../service/ajax'
}, 200)
},
onSuccess: res => {
this.handleSuccess(res, this.files);
this.activeT=true
this.filetile='上传完成'
setTimeout(() => {
this.handleSuccess(res, this.files);
this.activeT=true
}, 1000)
},
onError: (err, response) => {
this.handleError(err, response, this.files);
......@@ -345,11 +347,12 @@ import {uploadFile} from '../../service/ajax'
},
handleProgress(e) {
this.dataList.map(item => {
item.percentage = e.percent
item.percentage = e.percent-5
})
},
handleSuccess (res, files) {
let data = res.body
this.filetile='上传完成'
for(let key in data){
let code = data[key].code
this.Code=data[key].code
......@@ -360,7 +363,7 @@ import {uploadFile} from '../../service/ajax'
if(item.Code==2){progressStatus={'2':'wrong'}}
item.status = this.progressStatus[code]
item.Code=this.Code
console.log(this.progressStatus[code])
item.percentage=100
}
})
}
......@@ -387,6 +390,7 @@ import {uploadFile} from '../../service/ajax'
this.dataList = []
this.fileName = ''
this.activeT=false
this.filetile='上传中请稍后...'
this.serchlist()
},
//下载单条简历
......
......@@ -11,11 +11,40 @@ instance.defaults.withCredentials = true;
instance.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
instance.defaults.headers['X-Requested-With'] = 'XMLHttpRequest'
let needLoadingRequestCount = 0
function startLoading() {
store.state.loading = true
}
function endLoading() {
store.state.loading = false
}
function showFullScreenLoading () {
if (needLoadingRequestCount === 0) {
startLoading()
}
needLoadingRequestCount++
}
function tryHideFullScreenLoading() {
if (needLoadingRequestCount <= 0) return
needLoadingRequestCount--
if (needLoadingRequestCount === 0) {
setTimeout(() => {
endLoading()
}, 200)
}
}
let needLoading = ['resume/findListByQueryVO', 'sendMail/sendEmailTemplate', 'resume/forwardResume', 'interview/findListByQueryVO']
instance.interceptors.request.use(function (config) {
// 在发送请求之前做些什么
if (!config.headers['Content-Type']) {
config.headers['Content-Type'] = 'application/x-www-form-urlencoded'
}
let url = config.url.split('api/')[1]
let headers = config.headers
if (headers.status!='init'&&needLoading.includes(url)){
showFullScreenLoading()
}
delete headers.status
return config;
}, function (error) {
// 对请求错误做些什么
......@@ -28,6 +57,7 @@ instance.interceptors.response.use(function (response) {
'901': '',
'902': 'cookie已失效,请重新登录'
}
tryHideFullScreenLoading()
if(response.status >= 200 && response.status < 300){
let code = response.data&&response.data.body&&response.data.body.code || ''
if (code == '900' || code == '901' || code == '902'){
......@@ -43,7 +73,7 @@ instance.interceptors.response.use(function (response) {
store.dispatch('cookieTipsHide', false)
}, 2000)
}
// router.replace({name: 'login'})
router.replace({name: 'login'})
}
if(response.data.success){
return Promise.resolve(response)
......
......@@ -36,4 +36,91 @@ export function _throttle (fn, interval) {
fn.apply(self, args)
}
}
}
\ No newline at end of file
}
export function emailValidata (rule, value, callback){
let field = rule.field
let reg = rule.pattern
switch(field){
case 'receiveEmail':
if (!value) {
this.tip = true
this.isDisable=false
callback(new Error('收件人不能为空'))
}
else if (rule.pattern&&!rule.pattern.test(value)) {
this.tip = true
this.isDisable=false
callback(new Error('请输入正确收件人地址'))
}else {
this.tip = false
this.isDisable=true
callback()
}
break;
case 'theme':
if (!value) {
this.isDisable=false
callback(new Error('主题能为空'))
} else {
this.isDisable=true
callback()
}
break;
case 'copyname':
if (value&&reg&&!reg.test(value)) {
this.isDisable=false
callback(new Error('请输入正确抄送地址'))
} else {
this.isDisable=true
callback()
}
break;
case 'UpdateOWER':
if (!value) {
this.isDisable=false
callback(new Error('邀约人不能为空'))
} else {
this.isDisable=true
callback()
}
break;
case 'UpdateTIME':
if (!value) {
this.isDisable=false
callback(new Error('面试时间不能为空'))
} else {
this.isDisable=true
callback()
}
break;
case 'UpdateVIEW':
if (!value) {
this.isDisable=false
callback(new Error('面试官不能为空'))
} else {
this.isDisable=true
callback()
}
break;
default:
callback()
break;
}
}
export const emailRule = /^((([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6}\;))*(([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})))$/
export function vidte(rule,value,callback){
if(this.emailMassage==true){
callback(new Error('你尚未选择简历,请先选择简历'))
}
else if(this.allEmailVilitor==true){
callback(new Error('不能选择多份简历,请选择单份简历'))
}
else{
callback ()
}
}
export function validator (rule, value, callback){
if (!value)this.$Notice.warning({title: '提示',desc: '请输入您要通知的面试官'})
callback()
}
\ No newline at end of file
......@@ -9,6 +9,7 @@ const state = {
cookieTips: false,
interviewee: [],
channelInterviewee: [],
loading: false
}
export default new Vuex.Store({
mutations,
......
......@@ -23,7 +23,7 @@ CKEDITOR.editorConfig = function( config ) {
{ name: 'document', groups: [ 'mode', 'document', 'doctools' ] },
];
config.removeButtons = 'Cut,Copy,Paste,PasteText,PasteFromWord,Save,Templates,NewPage,Preview,Print,About,ShowBlocks,Flash,PageBreak,Iframe,Anchor,SelectAll,BidiLtr,BidiRtl,Language,CreateDiv,Superscript,Subscript,Form,Checkbox,Radio,TextField,Textarea,Select,Button,ImageButton,HiddenField,Find,Replace;Smiley,Smiley,Replace';
config.removeButtons = 'Cut,Copy,Paste,PasteText,PasteFromWord,Save,Templates,NewPage,Preview,Print,About,ShowBlocks,Flash,PageBreak,Iframe,Anchor,SelectAll,BidiLtr,BidiRtl,Language,CreateDiv,Superscript,Subscript,Form,Checkbox,Radio,TextField,Textarea,Select,Button,ImageButton,HiddenField,Find,Replace;Smiley,Smiley,Replace,Styles,Format,RemoveFormat,SpecialChar,Maximize,Scayt,Source';
config.removeDialogTabs = 'image:advanced;link:advanced;flash:advanced;editdiv:advanced; creatediv:advanced;';
config.removePlugins = 'elementspath,resize'; // 移除编辑器底部状态栏显示的元素路径和调整编辑器大小的按钮
config.image_previewText = ' '; // 图片信息面板预览区内容的文字内容,默认显示CKEditor自带的内容
......
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