diff --git a/src/assets/img/unopen-hint.png b/src/assets/img/unopen-hint.png new file mode 100644 index 000000000..c1a108e3e Binary files /dev/null and b/src/assets/img/unopen-hint.png differ diff --git a/src/assets/scss/c/config.scss b/src/assets/scss/c/config.scss index e35553682..102219123 100644 --- a/src/assets/scss/c/config.scss +++ b/src/assets/scss/c/config.scss @@ -11,7 +11,7 @@ $w1: 1200px; //网站主色 primary color bgcolor $c1: #ff4c52; // 红 dd000f -$c2: #3b7cff; +$c2: #3e8ef7; //灰度色 用于字体 $fc0: #010033; diff --git a/src/assets/scss/c/function.scss b/src/assets/scss/c/function.scss index 90fb9dae0..74b020975 100644 --- a/src/assets/scss/c/function.scss +++ b/src/assets/scss/c/function.scss @@ -87,6 +87,15 @@ text-overflow: ellipsis; word-wrap: normal; } + +// 强制文本换行 多行 +@mixin toeM($num) { + display: -webkit-box; + overflow: hidden; + text-overflow: ellipsis; + -webkit-line-clamp: $num; + -webkit-box-orient: vertical; +} // 图片居中 @mixin img_hub { position: absolute; @@ -206,7 +215,7 @@ } //党员积分排行榜 @mixin img123 { - width:20px; + width: 20px; height: 20px; border-radius: 50%; position: absolute; @@ -225,7 +234,7 @@ width: 67.15px; height: 67.15px; position: absolute; - display: block; + display: block; top: 4px; border-radius: 100%; } @@ -258,11 +267,9 @@ display: block; z-index: 10; margin-top: 40px; - } @mixin list { list-style-type: none; position: absolute; padding: 0px; } - diff --git a/src/assets/scss/modules/management/secretaryLog.scss b/src/assets/scss/modules/management/secretaryLog.scss new file mode 100644 index 000000000..a62569a15 --- /dev/null +++ b/src/assets/scss/modules/management/secretaryLog.scss @@ -0,0 +1,49 @@ +.div_form { + margin: 20px 50px; +} +.form_item { + display: flex; + justify-content: flex-start; + font-size: 15px; + + .item_title { + text-align: right; + + flex: 0 0 150px; + line-height: 36px; + } + + .item_content { + margin-left: 30px; + line-height: 36px; + } + + .attach_item { + display: flex; + justify-content: flex-start; + align-items: center; + margin-left: 30px; + line-height: 36px; + + .attach_item_name { + margin-left: 10px; + color: #3e8ef7; + text-decoration: underline; + } + .attach_item_name:hover { + cursor: pointer; + color: #1461c7; + } + } +} + +.div_btn { + margin-top: 15px; + display: flex; + width: 100%; + justify-content: center; + + .btn_right { + margin-left: 50px; + } +} diff --git a/src/assets/scss/modules/shujirizhi-notice.scss b/src/assets/scss/modules/shujirizhi-notice.scss new file mode 100644 index 000000000..8d717a03a --- /dev/null +++ b/src/assets/scss/modules/shujirizhi-notice.scss @@ -0,0 +1,62 @@ +@import "../c/anime"; +@import "../c/config"; +@import "../c/function"; + +.m-notice { + position: fixed; + z-index: 10000; + bottom: 0; + right: 0; + background-color: #fff; + box-shadow: 0 0 10px 0 rgba(#000, 0.1); + width: 500px; + height: 300px; + box-sizing: border-box; + padding: 25px; + + .header { + margin-bottom: 20px; + font-size: 24px; + font-weight: bold; + color: #3e8ef7; + } + .type { + margin-bottom: 10px; + font-size: 20px; + font-weight: bold; + color: #333; + } + .content { + @include toeM(2); + margin-bottom: 10px; + font-size: 16px; + color: #333; + line-height: 30px; + } + .date { + margin-bottom: 30px; + font-size: 16px; + color: #999; + line-height: 30px; + } + .operate { + display: flex; + justify-content: space-around; + + .btn { + box-sizing: border-box; + padding: 0 20px; + width: 180px; + text-align: center; + font-size: 20px; + color: #3e8ef7; + line-height: 40px; + cursor: pointer; + + &.z-stress { + background-color: #3e8ef7; + color: #fff; + } + } + } +} diff --git a/src/js/store/index.js b/src/js/store/index.js index 483238a6b..7dfbb5678 100644 --- a/src/js/store/index.js +++ b/src/js/store/index.js @@ -4,6 +4,7 @@ import cloneDeep from "lodash/cloneDeep"; import user from "./modules/user"; import app from "./modules/app"; import tagsView from "./modules/tagsView"; +import { requestPost } from "@/js/dai/request"; Vue.use(Vuex); @@ -37,7 +38,8 @@ export default new Vuex.Store({ menuList: [], activeName: "", }, - + tipsList: [], + tipsTime: [], inIframe: window.self !== window.top, }, modules: { @@ -52,5 +54,38 @@ export default new Vuex.Store({ state[key] = cloneDeep(window.SITE_CONFIG["storeState"][key]); }); }, + SET_TIPS_LIST(state, tipsList) { + let _list = state.tipsList + state.tipsList = _list.concat(tipsList) + }, + SET_TIPS_TIME(state, time) { + state.tipsTime = time + } }, + actions: { + setTipsList({ commit }, time) { + return new Promise(async (resolve, reject) => { + const url = '/gov/project/memoAttr/memosToRemind' + const params = { + remindTime: time || '' + } + const { data, code, msg } = await requestPost(url, params) + if (code === 0) { + commit('SET_TIPS_LIST', data) + resolve() + } else reject(msg) + }) + }, + setTipsTime({ commit }) { + return new Promise(async (resolve, reject) => { + const url = '/gov/project/memoAttr/memoTime' + + const { data, code, msg } = await requestPost(url) + if (code === 0) { + commit('SET_TIPS_TIME', data) + resolve() + } else reject(msg) + }) + } + } }); diff --git a/src/router/index.js b/src/router/index.js index 759663400..932df8956 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -67,6 +67,15 @@ export const moduleRoutes = { isTab: true, }, }, + { + path: "unopen", + component: () => import("@/views/modules/unopen"), + name: "unopen", + meta: { + title: "未开放功能", + isTab: true, + }, + }, ], }; @@ -328,9 +337,9 @@ router.beforeEach((to, from, next) => { .then(({ data: res }) => { if (res.code !== 0) { // Vue.prototype.$message.error(res.msg) - return next({ - name: "login", - }); + // return next({ + // name: "login", + // }); } window.SITE_CONFIG["menuList"] = res.data; fnAddDynamicMenuRoutes(window.SITE_CONFIG["menuList"]); @@ -341,9 +350,9 @@ router.beforeEach((to, from, next) => { }); }) .catch(() => { - next({ - name: "login", - }); + // next({ + // name: "login", + // }); }); }); @@ -397,14 +406,23 @@ function fnAddDynamicMenuRoutes(menuList = [], routes = []) { route["meta"]["iframeURL"] = URL; } else { URL = URL.replace(/^\//, "").replace(/_/g, "-"); - route["path"] = route["name"] = URL.replace(/\//g, "-"); - route["component"] = () => import(`@/views/modules/${URL}`); + if (URL.startsWith("unopen")) { + route["path"] = route["name"] = URL.replace(/\//g, "-"); + route["component"] = () => import(`@/views/modules/unopen`); + } else if (menuList[i].children && menuList[i].children.length >= 1) { + route["path"] = route["name"] = URL; + route["redirect"] = URL.replace(/\//g, "-"); + } else { + route["path"] = route["name"] = URL.replace(/\//g, "-"); + route["component"] = () => import(`@/views/modules/${URL}`); + } } routes.push(route); } if (temp.length >= 1) { return fnAddDynamicMenuRoutes(temp, routes); } + // routers.reverse(); // 添加路由 router.addRoutes([ { diff --git a/src/views/main-content.vue b/src/views/main-content.vue index 08c7e2491..c691d133e 100644 --- a/src/views/main-content.vue +++ b/src/views/main-content.vue @@ -69,18 +69,53 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/views/main.vue b/src/views/main.vue index 9ecf523ea..479c782f7 100644 --- a/src/views/main.vue +++ b/src/views/main.vue @@ -1,24 +1,30 @@ @@ -28,16 +34,17 @@ import MainNavbar from "./main-navbar"; import MainSidebar from "./main-sidebar"; import MainContent from "./main-content"; import MainThemeTools from "./main-theme-tools"; +import SecretaryLogNotice from "./modules/secretaryLog/cpts/notice"; import debounce from "lodash/debounce"; import { mapGetters } from "vuex"; import nextTick from "dai-js/tools/nextTick"; import { requestPost } from "@/js/dai/request"; export default { - provide () { + provide() { return { // 刷新 - refresh () { + refresh() { this.$store.state.contentIsNeedRefresh = true; this.$nextTick(() => { this.$store.state.contentIsNeedRefresh = false; @@ -45,7 +52,7 @@ export default { }, }; }, - data () { + data() { return { loading: true, userType: localStorage.getItem("userType"), @@ -56,12 +63,13 @@ export default { MainSidebar, MainContent, MainThemeTools, + SecretaryLogNotice, }, watch: { $route: "routeHandle", }, - async created () { + async created() { this.$store.state.sidebarMenuList = window.SITE_CONFIG["menuList"]; console.log(this.$store.state.sidebarMenuList); @@ -73,11 +81,11 @@ export default { }, computed: {}, methods: { - changeCustomerName (customerName) { + changeCustomerName(customerName) { this.$refs["ref_navbar"].changeCustomerName(customerName); }, // 窗口改变大小 - windowResizeHandle () { + windowResizeHandle() { this.$store.state.sidebarFold = document.documentElement["clientWidth"] <= 992 || false; window.addEventListener( @@ -89,7 +97,7 @@ export default { ); }, // 路由, 监听 - routeHandle (route) { + routeHandle(route) { if (!route.meta.isTab) { return false; } @@ -112,7 +120,7 @@ export default { this.$store.state.contentTabsActiveName = tab.name; this.syncLevelOneMenuActive(tab.menuId); }, - async syncLevelOneMenuActive (menuId) { + async syncLevelOneMenuActive(menuId) { await nextTick(); console.log( "*******************************", @@ -135,7 +143,7 @@ export default { idx !== -1 ? this.$store.state.sidebarMenuList[idx].children : []; }, // 获取当前管理员信息 - async getWorkUserInfo () { + async getWorkUserInfo() { const url = "/epmetuser/customerstaff/staffbasicinfo"; let params = {}; const { data, code, msg } = await requestPost(url, params); diff --git a/src/views/modules/base/resi.vue b/src/views/modules/base/resi.vue index 2d9d49cfb..63dce11e8 100644 --- a/src/views/modules/base/resi.vue +++ b/src/views/modules/base/resi.vue @@ -12,11 +12,12 @@ @click="handleAdd">新增 下载人口模板 + @click="handleExportModule('room')">下载模板 + > + + + diff --git a/src/views/modules/secretaryLog/difficulty/difficultyDetail.vue b/src/views/modules/secretaryLog/difficulty/difficultyDetail.vue new file mode 100644 index 000000000..f90289b9f --- /dev/null +++ b/src/views/modules/secretaryLog/difficulty/difficultyDetail.vue @@ -0,0 +1,177 @@ + + + + + + + + diff --git a/src/views/modules/secretaryLog/difficulty/difficultyForm.vue b/src/views/modules/secretaryLog/difficulty/difficultyForm.vue new file mode 100644 index 000000000..e271db266 --- /dev/null +++ b/src/views/modules/secretaryLog/difficulty/difficultyForm.vue @@ -0,0 +1,383 @@ + + + + + + + + diff --git a/src/views/modules/secretaryLog/difficulty/difficultyList.vue b/src/views/modules/secretaryLog/difficulty/difficultyList.vue new file mode 100644 index 000000000..95d545272 --- /dev/null +++ b/src/views/modules/secretaryLog/difficulty/difficultyList.vue @@ -0,0 +1,531 @@ + + + + diff --git a/src/views/modules/secretaryLog/humanisticCare/careDetail.vue b/src/views/modules/secretaryLog/humanisticCare/careDetail.vue new file mode 100644 index 000000000..48404018a --- /dev/null +++ b/src/views/modules/secretaryLog/humanisticCare/careDetail.vue @@ -0,0 +1,182 @@ + + + + + + + + diff --git a/src/views/modules/secretaryLog/humanisticCare/careForm.vue b/src/views/modules/secretaryLog/humanisticCare/careForm.vue new file mode 100644 index 000000000..257acb568 --- /dev/null +++ b/src/views/modules/secretaryLog/humanisticCare/careForm.vue @@ -0,0 +1,457 @@ + + + + + + + + diff --git a/src/views/modules/secretaryLog/humanisticCare/careList.vue b/src/views/modules/secretaryLog/humanisticCare/careList.vue new file mode 100644 index 000000000..d99b944af --- /dev/null +++ b/src/views/modules/secretaryLog/humanisticCare/careList.vue @@ -0,0 +1,603 @@ + + + + diff --git a/src/views/modules/unopen.vue b/src/views/modules/unopen.vue new file mode 100644 index 000000000..06cfb17d1 --- /dev/null +++ b/src/views/modules/unopen.vue @@ -0,0 +1,51 @@ + + + + + diff --git a/src/views/pages/index.vue b/src/views/pages/index.vue index f208e8692..056814c60 100644 --- a/src/views/pages/index.vue +++ b/src/views/pages/index.vue @@ -5,13 +5,15 @@
-
党建引领基层治理互联管理平台
+ +
数字社区管理平台
-
数据分析可视化平台
+ +
数字社区可视化平台
@@ -19,7 +21,7 @@ diff --git a/src/views/tips.vue b/src/views/tips.vue new file mode 100644 index 000000000..5c9267750 --- /dev/null +++ b/src/views/tips.vue @@ -0,0 +1,103 @@ + + + + + \ No newline at end of file