diff --git a/package-lock.json b/package-lock.json index 14e91d6..dab4801 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5194,6 +5194,11 @@ "domelementtype": "1" } }, + "dompurify": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.2.6.tgz", + "integrity": "sha512-7b7ZArhhH0SP6W2R9cqK6RjaU82FZ2UPM7RO8qN1b1wyvC/NY1FNWcX1Pu00fFOAnzEORtwXe4bPaClg6pUybQ==" + }, "domready": { "version": "1.0.8", "resolved": "https://registry.npm.taobao.org/domready/download/domready-1.0.8.tgz", @@ -12589,6 +12594,14 @@ "integrity": "sha1-KdTrSCdcf+FbkuH9XZX74qlmQ28=", "dev": true }, + "vue-dompurify-html": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/vue-dompurify-html/-/vue-dompurify-html-2.3.0.tgz", + "integrity": "sha512-Iz9wI4iiJF+rzC2x3r8quw/VXrkwgMsWXt9p0Le4wXtolBXwMDJOmK3QNMiNg36bzU2b0f3En/wjidoeRVNZ7A==", + "requires": { + "dompurify": "^2.0.0" + } + }, "vue-eslint-parser": { "version": "7.1.1", "resolved": "https://registry.npm.taobao.org/vue-eslint-parser/download/vue-eslint-parser-7.1.1.tgz?cache=0&sync_timestamp=1602498980660&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-eslint-parser%2Fdownload%2Fvue-eslint-parser-7.1.1.tgz", diff --git a/package.json b/package.json index c60b05d..ce58909 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "register-service-worker": "^1.7.1", "stylus": "^0.54.8", "vue": "^2.6.11", + "vue-dompurify-html": "^2.3.0", "vue-quill-editor": "^3.0.6", "vue-router": "^3.2.0", "vuex": "^3.4.0" diff --git a/src/common/portrait.styl b/src/common/portrait.styl index c523727..8ed1191 100644 --- a/src/common/portrait.styl +++ b/src/common/portrait.styl @@ -183,8 +183,6 @@ .white--text{ color: #fff; - width: 200px; - margin: 0 auto } diff --git a/src/components/Banner/BannerAdd.vue b/src/components/Banner/BannerAdd.vue index a0278ab..dcd3cad 100644 --- a/src/components/Banner/BannerAdd.vue +++ b/src/components/Banner/BannerAdd.vue @@ -3,67 +3,34 @@ - - - - - - - + + + + {{ item }} + - - + + + + + + + {{ item }} + + + + + + {{ item.name }} + + + + + + 选择图片 + - 取消 保存 @@ -74,7 +41,7 @@ - diff --git a/src/components/QuillEditor/QuillEditor.vue b/src/components/QuillEditor/QuillEditor.vue new file mode 100644 index 0000000..1b4acda --- /dev/null +++ b/src/components/QuillEditor/QuillEditor.vue @@ -0,0 +1,213 @@ + + + + + diff --git a/src/config/api.js b/src/config/api.js index 52813a5..6248fc1 100644 --- a/src/config/api.js +++ b/src/config/api.js @@ -11,9 +11,24 @@ const researchTeam = `${greenvalley}/researchTeam`; // 创新平台相关操作 const page = `${greenvalley}/page`; // 页面管理相关操作 const carousel = `${greenvalley}/carousel`; // 轮播图相关接口 +// 上传附件 +export const upload = `${greenvalley}/file/upload`; + // 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`); @@ -32,13 +47,15 @@ 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 getPageList = params => axios.post(`${page}/list`, params); -// 页面配置添加 -export const addPage = params => axios.post(`${page}/add`, params); +// // 页面配置添加 +// export const addPage = params => axios.post(`${page}/add`, params); -// 页面配置删除 -export const deletePage = params => axios.post(`${page}/delete`, params); +// // 页面配置删除 +// export const deletePage = params => axios.post(`${page}/delete`, params); // 查询轮播图列表 export const queryCarousel = params => axios.post(`${carousel}/queryCarousel`, params); +// 查询轮播图列表 +export const addCarousel = params => axios.post(`${carousel}/addCarousel`, params); diff --git a/src/main.js b/src/main.js index f29b1fa..9407ad9 100644 --- a/src/main.js +++ b/src/main.js @@ -8,9 +8,12 @@ import store from './store'; import './plugins/ant-design-vue.js'; import './plugins/vue-quill-editor.js'; import 'common/portrait.styl'; +import VueDOMPurifyHTML from 'vue-dompurify-html'; Vue.config.productionTip = false; +Vue.use(VueDOMPurifyHTML); + window.vm = new Vue({ router, store, diff --git a/src/store/state.js b/src/store/state.js index 64ae81d..4609529 100644 --- a/src/store/state.js +++ b/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; diff --git a/src/views/BannerManage/BannerManage.vue b/src/views/BannerManage/BannerManage.vue index 96894a9..0d5f567 100644 --- a/src/views/BannerManage/BannerManage.vue +++ b/src/views/BannerManage/BannerManage.vue @@ -1,7 +1,7 @@ @@ -21,6 +21,14 @@ export default { return { str: '轮播图管理界面', lists: {}, + pagination: { current: 1, pageSize: 10 }, + pageNum: 1, + pageSize: 10, + paramData: { + showPage: '', + jumpType: 0, + recStatus: 0, + }, }; }, @@ -30,21 +38,32 @@ export default { methods: { // 获取轮播图列表 - async getListData() { + async getListData(condition) { try { + if (condition && condition.current) { + this.pageNum = condition.current; + this.pageSize = condition.pageSize; + } else if (condition && !condition.pageNum) { + this.paramData = condition; + } const params = { param: { - showPage: '', - jumpType: '', - recStatus: '', - pageNum: 1, - pageSize: 10, + showPage: this.paramData.showPage, + jumpType: this.paramData.jumpType, + recStatus: this.paramData.recStatus, + pageNum: this.pageNum, + pageSize: this.pageSize, }, }; const res = await queryCarousel(params); const { code, msg, data } = res.data; if (code === 200) { this.lists = data; + const paper = { ...this.pagination }; + paper.current = data.pageNum; + paper.total = +data.total; + paper.pageSize = data.pageSize; + this.pagination = paper; } else { throw msg || '获取失败'; } diff --git a/src/views/PageManage/PageManage.vue b/src/views/PageManage/PageManage.vue index 5a70cf0..04060a5 100644 --- a/src/views/PageManage/PageManage.vue +++ b/src/views/PageManage/PageManage.vue @@ -1,7 +1,7 @@ @@ -20,6 +20,7 @@ export default { data() { return { lists: [], + pagination: { current: 1, pageSize: 10 }, }; }, @@ -29,19 +30,29 @@ export default { methods: { /** - * 页面配置添加 - * @param { String } competeTimeId 第几届信息的id + * 页面列表查询 + * @param { String } pageNum 页码 + * @param { String } pageSize 每页多少条 + * @param { String } titleCode 模块 */ - async getPageList(titleCode) { - console.log('titleCode: ', titleCode); + async getPageList(condition) { try { - const titleCode = titleCode ? titleCode : ''; - const params = { param: { pageNum: 1, pageSize: 10, titleCode } }; + const params = { + param: { + pageNum: (condition && condition.current) || 1, + pageSize: (condition && condition.pageSize) || 10, + titleCode: (condition && condition.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); + const paper = { ...this.pagination }; + paper.current = data.pageNum; + paper.total = +data.total; + paper.pageSize = data.pageSize; + this.pagination = paper; } else { throw msg || '获取失败'; }