Browse Source

更新代码

master
lucky 4 years ago
parent
commit
684f1a5492
  1. 2
      src/common/portrait.styl
  2. 325
      src/components/Page/PageAdd.vue
  3. 109
      src/components/Page/PageDate.vue
  4. 181
      src/components/Page/PageEdit.vue
  5. 32
      src/components/Page/PageSearch.vue
  6. 213
      src/components/QuillEditor/QuillEditor.vue
  7. 21
      src/config/api.js
  8. 136
      src/store/state.js
  9. 5
      src/views/PageManage/PageManage.vue

2
src/common/portrait.styl

@ -183,8 +183,6 @@
.white--text{
color: #fff;
width: 200px;
margin: 0 auto
}

325
src/components/Page/PageAdd.vue

@ -11,7 +11,6 @@
>
<a-cascader
:options="titles"
@change="onChange"
placeholder="标题"
v-decorator="['titleCode',{
rules: [
@ -19,158 +18,6 @@
],
}]"
/>
<!-- <a-input
placeholder="标题"
v-decorator="[
'titleCode',
{
rules: [
{ required: true, message: '标题不能为空' },
{ whitespace: true, message: '标题不能为空' },
{ max: 140, massage: '标题最多140个字符' },
],
},
]"
/>-->
</a-form-item>
<!-- 查询模块 -->
<a-form-item
:label-col="formItemLayout.labelCol"
:wrapper-col="formItemLayout.wrapperCol"
label="查询模块"
>
<a-select
placeholder="查询模块"
v-decorator="['queryModule',{
rules: [
{ required: true, message: '查询模块不能为空' },
],
}]"
>
<a-select-option
:key="index"
:value="item.id"
v-for="(item, index) in modules"
>{{ item.text }}</a-select-option>
</a-select>
</a-form-item>
<!-- 展示类型 -->
<a-form-item
:label-col="formItemLayout.labelCol"
:wrapper-col="formItemLayout.wrapperCol"
label="展示类型"
>
<a-select
@select="changeType"
placeholder="展示类型"
v-decorator="['style',{
rules: [
{ required: true, message: '查询模块不能为空' },
],
}]"
>
<a-select-option :key="type.id" :value="type.id" v-for="type in types">{{ type.text }}</a-select-option>
</a-select>
</a-form-item>
<!-- 第几行 -->
<a-form-item
:label-col="formItemLayout.labelCol"
:wrapper-col="formItemLayout.wrapperCol"
label="第几行"
>
<a-input
placeholder="第几行"
v-decorator="[
'sort',
{
rules: [
{ required: true, message: '第几行不能为空' },
{ whitespace: true, message: '第几行不能为空' },
{ max: 140, massage: '第几行最多140个字符' },
],
},
]"
/>
</a-form-item>
<!-- 宽度 -->
<a-form-item
:label-col="formItemLayout.labelCol"
:wrapper-col="formItemLayout.wrapperCol"
label="宽度"
>
<a-input
placeholder="宽度"
v-decorator="[
'width',
{
rules: [
{ required: true, message: '宽度不能为空' },
{ whitespace: true, message: '宽度不能为空' },
{ max: 140, massage: '宽度最多140个字符' },
],
},
]"
/>
</a-form-item>
<!-- 共几列 -->
<a-form-item
:label-col="formItemLayout.labelCol"
:wrapper-col="formItemLayout.wrapperCol"
label="共几列"
>
<a-input
placeholder="共几列"
v-decorator="[
'colTotal',
{
rules: [
{ required: true, message: '共几列不能为空' },
{ whitespace: true, message: '共几列不能为空' },
{ max: 140, massage: '共几列最多140个字符' },
],
},
]"
/>
</a-form-item>
<!-- 第几列 -->
<a-form-item
:label-col="formItemLayout.labelCol"
:wrapper-col="formItemLayout.wrapperCol"
label="第几列"
>
<a-input
placeholder="第几列"
v-decorator="[
'col',
{
rules: [
{ required: true, message: '第几列不能为空' },
{ whitespace: true, message: '第几列不能为空' },
{ max: 140, massage: '第几列最多140个字符' },
],
},
]"
/>
</a-form-item>
<!-- 查询方式 -->
<a-form-item
:label-col="formItemLayout.labelCol"
:wrapper-col="formItemLayout.wrapperCol"
label="查询方式"
>
<a-radio-group
v-decorator="[
'queryMethod',
{
rules: [
{ required: true, message: '查询方式不能为空' },
],
},
]"
>
<a-radio :value="1">配置内容</a-radio>
<a-radio :value="2">指定内容</a-radio>
</a-radio-group>
</a-form-item>
<!-- 内容 -->
<a-form-item
@ -178,9 +25,12 @@
:wrapper-col="formItemLayout.wrapperCol"
label="内容"
>
<a-textarea placeholder="内容" v-if="type != 1" v-model="content" />
<quill-editor :options="editorOption" placeholder="请在此输入文本..." v-else v-model="content"></quill-editor>
<quill-editor
:options="editorOption"
class="editor"
placeholder="请在此输入文本..."
v-model="content"
></quill-editor>
</a-form-item>
<a-form-item class="d-flex flex-row-reverse">
@ -193,6 +43,7 @@
</template>
<script>
import { mapState } from 'vuex';
import { addPage } from 'config/api';
import { quillEditor } from 'vue-quill-editor';
@ -212,158 +63,6 @@ export default {
formItemLayout,
tailItemLayout,
form: this.$form.createForm(this, { name: 'page-add' }),
titles: [
{
value: '关于我们',
label: '关于我们',
children: [
{
value: '公司介绍',
label: '公司介绍',
},
{
value: '组织机构',
label: '组织机构',
},
{
value: '合作伙伴',
label: '合作伙伴',
},
{
value: '衍生企业',
label: '衍生企业',
},
],
},
{
value: '创新政策',
label: '创新政策',
},
{
value: '创新平台',
label: '创新平台',
children: [
{
value: '协同创新中心',
label: '协同创新中心',
},
{
value: '组织机构',
label: '组织机构',
},
{
value: '创新服务平台',
label: '创新服务平台',
},
{
value: '科技创新服务',
label: '科技创新服务',
},
],
},
{
value: '孵化平台',
label: '孵化平台',
children: [
{
value: '众创空间',
label: '众创空间',
},
{
value: '公共实验室',
label: '公共实验室',
},
{
value: '中试基地',
label: '中试基地',
},
{
value: '创业导师',
label: '创业导师',
},
{
value: '合作伙伴',
label: '合作伙伴',
},
{
value: '创业服务',
label: '创业服务',
},
{
value: '产品展示',
label: '产品展示',
},
],
},
{
value: '产业平台',
label: '产业平台',
children: [
{
value: '产业创新联盟',
label: '产业创新联盟',
},
{
value: '产业服务',
label: '产业服务',
},
{
value: '衍生企业',
label: '衍生企业',
},
],
},
{
value: '知识平台',
label: '知识平台',
},
{
value: '活动公告',
label: '活动公告',
},
{
value: '创新挑战',
label: '创新挑战',
children: [
{
value: '需求征集',
label: '需求征集',
},
{
value: '项目发布',
label: '项目发布',
},
{
value: '结果公告',
label: '结果公告',
},
],
},
{
value: '交流社区',
label: '交流社区',
},
{
value: '联系我们',
label: '联系我们',
},
],
modules: [
{ id: 0, text: '介绍' },
{ id: 1, text: '政策' },
{ id: 2, text: '新闻列表' },
{ id: 3, text: '交流社区' },
],
types: [
{ id: 0, text: '一级标题' },
{ id: 1, text: '富文本' },
{ id: 2, text: '按钮' },
{ id: 3, text: '动态图文简介' },
{ id: 4, text: '静态图文简介' },
{ id: 5, text: '大按钮' },
{ id: 6, text: '联系我们' },
],
type: '',
editorOption: {
placeholder: '请在此输入文本...',
modules: {
@ -380,15 +79,9 @@ export default {
};
},
methods: {
onChange(value) {
console.log(value);
},
changeType(value) {
this.type = value;
},
computed: mapState(['titles']),
methods: {
//
handleSubmit(e) {
e.preventDefault();

109
src/components/Page/PageDate.vue

@ -14,28 +14,8 @@
<span>{{ index + 1 }}</span>
</template>
<!-- 模块 -->
<template slot="queryModule" slot-scope="text, record">
<span>{{ record.queryModule === 0 ? '专家' : record.queryModule === 1 ? '政策' : '其他' }}</span>
</template>
<!-- 展示类型 -->
<template slot="style" slot-scope="text, record">
<span>
{{ record.style === 0 ? '一级标题' :
record.style === 1 ? '二级标题' :
record.style === 2 ? '正文' :
record.style === 3 ? '列表' :
record.style === 4 ? '图片' :
record.style === 5 ? '图片滚动' :
record.style === 6 ? '多列排列' :
'富文本' }}
</span>
</template>
<!-- 查询方式 -->
<template slot="queryMethod" slot-scope="text, record">
<span>{{ record.queryMethod === 0 ? '配置内容' : '接口查询' }}</span>
<template slot="content" slot-scope="text, record, index">
<span>{{ text }}</span>
</template>
<template slot="edit" slot-scope="text, record">
@ -44,15 +24,6 @@
<a-icon class="ml-4 pointer" theme="twoTone" two-tone-color="#ff0000" type="delete" />
</a-popconfirm>
</template>
<div
class="d-flex flex-nowrap justify-space-between"
slot="expandedRowRender"
slot-scope="record"
style="margin: 0"
>
<div>内容{{ record.content }}</div>
</div>
</a-table>
</div>
<a-empty v-else />
@ -64,7 +35,7 @@
<script>
import PageEdit from 'components/Page/PageEdit.vue';
// import { delTeam } from 'config/api';
import { deletePage } from 'config/api';
const columns = [
{
@ -72,51 +43,21 @@ const columns = [
align: 'center',
dataIndex: 'id',
key: 'id',
width: 80,
scopedSlots: { customRender: 'id' },
},
{
title: '模块',
align: 'center',
dataIndex: 'queryModule',
key: 'queryModule',
},
{
title: '展示类型',
align: 'center',
dataIndex: 'style',
key: 'style',
scopedSlots: { customRender: 'style' },
},
{
title: '第几行',
align: 'center',
dataIndex: 'sort',
key: 'sort',
},
{
title: '宽度',
align: 'center',
dataIndex: 'width',
key: 'width',
},
{
title: '共几列',
align: 'center',
dataIndex: 'colTotal',
key: 'colTotal',
},
{
title: '第几列',
title: '标题',
align: 'center',
dataIndex: 'col',
key: 'col',
dataIndex: 'titleCode',
key: 'titleCode',
},
{
title: '查询方式',
title: '内容',
align: 'center',
dataIndex: 'queryMethod',
key: 'queryMethod',
scopedSlots: { customRender: 'queryMethod' },
dataIndex: 'content',
key: 'content',
scopedSlots: { customRender: 'content' },
},
{
title: '编辑',
@ -138,10 +79,9 @@ export default {
return {
columns,
loading: false,
editingKey: '',
height: '',
editVisible: false,
editItem: null, //
editItem: {}, //
};
},
@ -159,8 +99,8 @@ export default {
methods: {
showEditModal(record) {
console.log('record: ', record);
this.editItem = record;
console.log('this.editItem: ', this.editItem);
this.editVisible = true;
},
@ -169,19 +109,18 @@ export default {
},
//
async onDelete(teamId) {
async onDelete(pageId) {
try {
// const params = { param: { teamId } };
// const res = await delTeam(params);
// const { data, msg, code } = res.data;
// if (code === 200) {
// this.$message.success('');
// const arr = [...this.lists];
// this.lists = arr.filter(item => item.id !== teamId);
// // TODO:
// } else {
// throw msg;
// }
const params = { param: { pageId } };
const res = await deletePage(params);
const { data, msg, code } = res.data;
if (code === 200) {
this.$message.success('删除成功');
const arr = [...this.lists];
this.lists = arr.filter(item => item.id !== pageId);
} else {
throw msg;
}
} catch (error) {
this.$message.error(error || '删除失败');
}

181
src/components/Page/PageEdit.vue

@ -3,126 +3,14 @@
<!-- 编辑 -->
<a-modal :closable="false" footer title="修改页面" v-model="editVisible" width="700px">
<a-form :form="form" @submit="handleSubmit">
<!-- 模块 -->
<!-- 标题code -->
<a-form-item
:label-col="formItemLayout.labelCol"
:wrapper-col="formItemLayout.wrapperCol"
label="模块"
label="标题"
v-decorator="['titleCode', { initialValues:editItem.titleCode }]"
>
<a-input
placeholder="模块"
v-decorator="[
'pagePath',
{
rules: [
{ required: true, message: '模块不能为空' },
{ whitespace: true, message: '模块不能为空' },
{ max: 140, massage: '模块最多140个字符' },
],
},
]"
/>
</a-form-item>
<!-- 展示类型 -->
<a-form-item
:label-col="formItemLayout.labelCol"
:wrapper-col="formItemLayout.wrapperCol"
label="展示类型"
>
<a-select @change="getType" placeholder="展示类型" style="width: 200px">
<a-select-option :key="index" :value="type" v-for="(type, index) in types">{{ type }}</a-select-option>
</a-select>
</a-form-item>
<!-- 第几行 -->
<a-form-item
:label-col="formItemLayout.labelCol"
:wrapper-col="formItemLayout.wrapperCol"
label="第几行"
>
<a-input
placeholder="第几行"
v-decorator="[
'whichLine',
{
rules: [
{ required: true, message: '第几行不能为空' },
{ whitespace: true, message: '第几行不能为空' },
{ max: 140, massage: '第几行最多140个字符' },
],
},
]"
/>
</a-form-item>
<!-- 宽度 -->
<a-form-item
:label-col="formItemLayout.labelCol"
:wrapper-col="formItemLayout.wrapperCol"
label="宽度"
>
<a-input
placeholder="宽度"
v-decorator="[
'whichLine',
{
rules: [
{ required: true, message: '宽度不能为空' },
{ whitespace: true, message: '宽度不能为空' },
{ max: 140, massage: '宽度最多140个字符' },
],
},
]"
/>
</a-form-item>
<!-- 共几列 -->
<a-form-item
:label-col="formItemLayout.labelCol"
:wrapper-col="formItemLayout.wrapperCol"
label="共几列"
>
<a-input
placeholder="共几列"
v-decorator="[
'totalColumns',
{
rules: [
{ required: true, message: '共几列不能为空' },
{ whitespace: true, message: '共几列不能为空' },
{ max: 140, massage: '共几列最多140个字符' },
],
},
]"
/>
</a-form-item>
<!-- 第几列 -->
<a-form-item
:label-col="formItemLayout.labelCol"
:wrapper-col="formItemLayout.wrapperCol"
label="第几列"
>
<a-input
placeholder="第几列"
v-decorator="[
'whichColumns',
{
rules: [
{ required: true, message: '第几列不能为空' },
{ whitespace: true, message: '第几列不能为空' },
{ max: 140, massage: '第几列最多140个字符' },
],
},
]"
/>
</a-form-item>
<!-- 查询方式 -->
<a-form-item
:label-col="formItemLayout.labelCol"
:wrapper-col="formItemLayout.wrapperCol"
label="查询方式"
>
<a-radio-group @change="getQueryMethod" v-model="value">
<a-radio :value="1">配置内容</a-radio>
<a-radio :value="2">指定内容</a-radio>
</a-radio-group>
<a-cascader :options="titles" placeholder="标题" />
</a-form-item>
<!-- 内容 -->
<a-form-item
@ -130,11 +18,10 @@
:wrapper-col="formItemLayout.wrapperCol"
label="内容"
>
<a-textarea
placeholder="内容"
v-decorator="[
'content',
]"
<quill-editor
:max-size="maxSize"
:value="editItem && (editItem.content ? editItem.content : '')"
@changeInput="changeInput"
/>
</a-form-item>
@ -148,7 +35,9 @@
</template>
<script>
// import { upTeam } from 'config/api';
import { mapState } from 'vuex';
import { updatePage } from 'config/api';
import QuillEditor from 'components/QuillEditor/QuillEditor.vue';
const formItemLayout = {
labelCol: { span: 6 },
@ -158,28 +47,26 @@ const formItemLayout = {
const tailItemLayout = { wrapperCol: { span: 16, offset: 6 } };
export default {
name: "PageEdit",
props: { editVisible: { type: Boolean, default: false },editItem: { type: Object, default: () => {} } },
name: 'PageEdit',
props: { editVisible: { type: Boolean, default: false }, editItem: { type: Object, default: () => {} } },
components: { QuillEditor },
data() {
return {
formItemLayout,
tailItemLayout,
form: this.$form.createForm(this, { name: 'r-d-add' }),
types: ['单选框','多选框','富文本框'],
type: '',
value: 1
}
maxSize: 2048,
content: '',
};
},
methods: {
//
getType(value){
this.type = value;
},
computed: mapState(['titles']),
//
getQueryMethod(value){
this.queryMethod = value;
methods: {
//
changeInput(value) {
console.log('value: ', value);
this.content = value;
},
//
@ -188,16 +75,18 @@ export default {
this.form.validateFieldsAndScroll(async (err, values) => {
if (!err) {
try {
// const params = { param: values };
// const res = await upTeam(params);
// const { data, msg, code } = res.data;
// this.$emit('closeModal');
// if (code === 200) {
// this.$message.success('')
// // TODO:
// } else {
// throw msg;
// }
const { editItem } = this;
console.log('editItem', editItem);
const params = { param: values };
const res = await updatePage(params);
const { data, msg, code } = res.data;
this.$emit('closeModal');
if (code === 200) {
this.$message.success('修改成功');
// TODO:
} else {
throw msg;
}
} catch (error) {
this.$message.error(error || '修改失败');
}

32
src/components/Page/PageSearch.vue

@ -2,21 +2,15 @@
<template>
<div class="d-flex flex-wrap pb-3">
<div>
<div class="d-flex flex-row">
<!-- 模块 -->
<a-select @change="handleChangeModular" placeholder="查询模块" style="width:200px">
<a-select-option
:key="index"
:value="item.id"
v-for="(item, index) in modules"
>{{ item.text }}</a-select-option>
</a-select>
<a-input placeholder="标题code" v-model="titleCode" />
<a-button @click="handleTableChange" class="mx-2" type="primary">搜索</a-button>
</div>
<div class="flex-1"></div>
<a-button @click="showModal" class="editable-add-btn">增加</a-button>
<a-button @click="showModal" class="editable-add-btn" type="primary">增加</a-button>
<!-- 添加 -->
<page-add :visible="visible" @closeModal="closeModal" />
@ -25,7 +19,6 @@
<script>
import PageAdd from 'components/Page/PageAdd.vue';
// import { selLikeTeam } from 'config/api';
export default {
name: 'PageSearch',
@ -35,12 +28,7 @@ export default {
data() {
return {
visible: false,
modular: '',
modules: [
{ id: 0, text: '介绍' },
{ id: 1, text: '政策' },
{ id: 2, text: '交流社区' },
],
titleCode: '',
};
},
methods: {
@ -52,19 +40,11 @@ export default {
this.visible = false;
},
//
handleChangeModular(value) {
console.log('value: ', value);
this.modular = value;
this.handleTableChange(value);
},
handleTableChange(modular) {
this.$emit('getPageList', modular);
handleTableChange() {
this.$emit('getPageList', this.titleCode);
},
},
};
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped lang="stylus"></style>

213
src/components/QuillEditor/QuillEditor.vue

@ -0,0 +1,213 @@
<template>
<div class="ql-snow">
<quill-editor
:options="editorOption"
@blur="onEditorBlur($event)"
@change="onEditorChange(placeholder)"
@focus="onEditorFocus($event)"
ref="myTextEditor"
v-model="content"
></quill-editor>
</div>
</template>
<script>
//
const toolbarOptions = [
['bold', 'italic', 'underline', 'strike'], // 线 线
['blockquote', 'code-block'], //
[{ header: 1 }, { header: 2 }], // 12
[{ list: 'ordered' }, { list: 'bullet' }], //
[{ script: 'sub' }, { script: 'super' }], // /
[{ indent: '-1' }, { indent: '+1' }], //
[{ direction: 'rtl' }], //
[{ size: ['small', false, 'large', 'huge'] }], //
[{ header: [1, 2, 3, 4, 5, 6, false] }], //
[{ color: [] }, { background: [] }], //
[{ font: [] }], //
[{ align: [] }], //
['clean'], //
['link', 'image'], // 'video'
];
import { quillEditor } from 'vue-quill-editor';
import 'quill/dist/quill.core.css';
import 'quill/dist/quill.snow.css';
import 'quill/dist/quill.bubble.css';
export default {
name: 'QuillEditor',
components: { quillEditor },
props: {
/*编辑器的内容*/
value: {
type: String,
default: '',
},
/*图片大小*/
maxSize: {
type: Number,
default: 4000, //kb
},
/* 默认提示 */
placeholder: {
type: String,
default: '',
},
},
data() {
return {
content: this.value,
quillUpdateImg: false, // loadingfalse,
editorOption: {
theme: 'snow', // or 'bubble'
placeholder: this.placeholder,
modules: { toolbar: { container: toolbarOptions } },
},
serverUrl: '/v1/blog/imgUpload', //
header: {}, // token: sessionStorage.token// token
};
},
methods: {
onEditorBlur() {
//
},
onEditorFocus() {
//
},
onEditorChange(placeholder) {
//
this.$emit('changeInput', placeholder, this.content);
},
//
beforeUpload() {
// loading
this.quillUpdateImg = true;
},
uploadSuccess(res, file) {
// res
//
let quill = this.$refs.myQuillEditor.quill;
//
if (res.code == 200) {
//
let length = quill.getSelection().index;
// res.url
quill.insertEmbed(length, 'image', res.url);
//
quill.setSelection(length + 1);
} else {
this.$message.error('图片插入失败');
}
// loading
this.quillUpdateImg = false;
},
//
uploadError() {
// loading
this.quillUpdateImg = false;
this.$message.error('图片插入失败');
},
},
};
</script>
<style>
.ql-container {
overflow: auto;
min-height: 200px;
max-height: 300px;
}
.ql-toolbar.ql-snow {
background: #f5f5f5;
border: 1px solid #d9d9d9;
}
.ql-container.ql-snow {
border: 1px solid #d9d9d9;
}
.ql-snow .ql-tooltip[data-mode='link']::before {
content: '请输入链接地址:';
}
.ql-snow .ql-tooltip.ql-editing a.ql-action::after {
border-right: 0px;
content: '保存';
padding-right: 0px;
}
.ql-snow .ql-tooltip[data-mode='video']::before {
content: '请输入视频地址:';
}
.ql-snow .ql-picker {
line-height: 20px;
border: 1px solid #ddd;
border-radius: 3px;
}
.ql-snow .ql-picker.ql-size .ql-picker-label::before,
.ql-snow .ql-picker.ql-size .ql-picker-item::before {
content: '14px';
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value='small']::before,
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value='small']::before {
content: '10px';
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value='large']::before,
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value='large']::before {
content: '18px';
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value='huge']::before,
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value='huge']::before {
content: '32px';
}
.ql-snow .ql-picker.ql-header .ql-picker-label::before,
.ql-snow .ql-picker.ql-header .ql-picker-item::before {
content: '文本';
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value='1']::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value='1']::before {
content: '标题1';
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value='2']::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value='2']::before {
content: '标题2';
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value='3']::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value='3']::before {
content: '标题3';
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value='4']::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value='4']::before {
content: '标题4';
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value='5']::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value='5']::before {
content: '标题5';
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value='6']::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value='6']::before {
content: '标题6';
}
.ql-snow .ql-picker.ql-font .ql-picker-label::before,
.ql-snow .ql-picker.ql-font .ql-picker-item::before {
content: '标准字体';
}
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value='serif']::before,
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value='serif']::before {
content: '衬线字体';
}
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value='monospace']::before,
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value='monospace']::before {
content: '等宽字体';
}
</style>

21
src/config/api.js

@ -13,6 +13,18 @@ const page = `${greenvalley}/page`; // 页面管理相关操作
// websocket基础地址
export const WS_BASE_URL = msgUrl;
// 页面列表查询
export const getPageList = params => axios.post(`${page}/list`, params);
// 页面配置添加
export const addPage = params => axios.post(`${page}/add`, params);
// 页面配置删除
export const deletePage = params => axios.post(`${page}/delete`, params);
// 页面配置修改
export const updatePage = params => axios.post(`${page}/update`, params);
// 查询所有的研发团队相关信息
export const getAllTeam = () => axios.post(`${researchTeam}/selectAllTeam`);
@ -30,12 +42,3 @@ export const upTeam = params => axios.post(`${researchTeam}/upTeam`, params);
// 根据团队名称搜索团队
export const selLikeTeam = params => axios.post(`${researchTeam}/selLikeTeam`, params);
// 页面列表查询
export const getPageList = params => axios.post(`${page}/list`, params);
// 页面配置添加
export const addPage = params => axios.post(`${page}/add`, params);
// 页面配置删除
export const deletePage = params => axios.post(`${page}/delete`, params);

136
src/store/state.js

@ -4,6 +4,142 @@ const state = {
RDTeamLists: [], // 研发团队列表
pageLists: [], // 页面管理列表
titles: [
{
value: '关于我们',
label: '关于我们',
children: [
{
value: '公司介绍',
label: '公司介绍',
},
{
value: '组织机构',
label: '组织机构',
},
{
value: '合作伙伴',
label: '合作伙伴',
},
{
value: '衍生企业',
label: '衍生企业',
},
],
},
{
value: '创新政策',
label: '创新政策',
},
{
value: '创新平台',
label: '创新平台',
children: [
{
value: '协同创新中心',
label: '协同创新中心',
},
{
value: '组织机构',
label: '组织机构',
},
{
value: '创新服务平台',
label: '创新服务平台',
},
{
value: '科技创新服务',
label: '科技创新服务',
},
],
},
{
value: '孵化平台',
label: '孵化平台',
children: [
{
value: '众创空间',
label: '众创空间',
},
{
value: '公共实验室',
label: '公共实验室',
},
{
value: '中试基地',
label: '中试基地',
},
{
value: '创业导师',
label: '创业导师',
},
{
value: '合作伙伴',
label: '合作伙伴',
},
{
value: '创业服务',
label: '创业服务',
},
{
value: '产品展示',
label: '产品展示',
},
],
},
{
value: '产业平台',
label: '产业平台',
children: [
{
value: '产业创新联盟',
label: '产业创新联盟',
},
{
value: '产业服务',
label: '产业服务',
},
{
value: '衍生企业',
label: '衍生企业',
},
],
},
{
value: '知识平台',
label: '知识平台',
},
{
value: '活动公告',
label: '活动公告',
},
{
value: '创新挑战',
label: '创新挑战',
children: [
{
value: '需求征集',
label: '需求征集',
},
{
value: '项目发布',
label: '项目发布',
},
{
value: '结果公告',
label: '结果公告',
},
],
},
{
value: '交流社区',
label: '交流社区',
},
{
value: '联系我们',
label: '联系我们',
},
],
};
export default state;

5
src/views/PageManage/PageManage.vue

@ -33,15 +33,12 @@ export default {
* @param { String } competeTimeId 第几届信息的id
*/
async getPageList(titleCode) {
console.log('titleCode: ', titleCode);
try {
const titleCode = titleCode ? titleCode : '';
const params = { param: { pageNum: 1, pageSize: 10, titleCode } };
const params = { param: { pageNum: 1, pageSize: 10, titleCode: titleCode || '' } };
const res = await getPageList(params);
const { code, msg, data } = res.data;
if (code === 200) {
this.lists = data.list;
console.log('this.lists: ', this.lists);
} else {
throw msg || '获取失败';
}

Loading…
Cancel
Save