diff --git a/src/assets/scss/buttonstyle.scss b/src/assets/scss/buttonstyle.scss index 2eabacde..77608bb5 100644 --- a/src/assets/scss/buttonstyle.scss +++ b/src/assets/scss/buttonstyle.scss @@ -106,7 +106,7 @@ text-decoration: underline !important; } -// +// .div-table-button--qr { color: #4ec591 !important; text-decoration: underline !important; diff --git a/src/assets/scss/c/config.scss b/src/assets/scss/c/config.scss index e3555368..10221912 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 90fb9dae..74b02097 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 00000000..a62569a1 --- /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 00000000..8d717a03 --- /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 483238a6..276c7f83 100644 --- a/src/js/store/index.js +++ b/src/js/store/index.js @@ -4,9 +4,11 @@ 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"; +import { dateFormats } from "@/utils/index"; Vue.use(Vuex); - +let interTimer = null export default new Vuex.Store({ namespaced: true, state: { @@ -37,7 +39,8 @@ export default new Vuex.Store({ menuList: [], activeName: "", }, - + tipsList: [], + tipsTime: [], inIframe: window.self !== window.top, }, modules: { @@ -52,5 +55,70 @@ 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) + state.tipsList = tipsList + }, + SET_TIPS_TIME(state, time) { + state.tipsTime = time + } }, + actions: { + clearInter() { + clearInterval(interTimer) + }, + setInterval({ commit, dispatch, state }) { + interTimer = setInterval(() => { + const _t = dateFormats('YYYY-mm-dd HH:MM', (new Date(new Date().toLocaleDateString()).getTime())) + const _tt = new Date(_t).getTime() + console.log('230000---', _t) + const t = dateFormats('YYYY-mm-dd HH:MM', (new Date().getTime())) + const nt = new Date(t).getTime() + // 判断当前时间是否为 00:00 + if (nt == _tt) { + dispatch('setTipsTime') + return + } + let times = state.tipsTime + console.log('nt---000', nt) + state.tipsTime.forEach((item, index) => { + const _t = new Date(item).getTime() + if (_t == nt) { + clearInterval(interTimer) + dispatch('setTipsList', item) + times.splice(index, 1) + commit('SET_TIPS_TIME', times) + } + }) + }, 60000) + }, + 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, dispatch }) { + return new Promise(async (resolve, reject) => { + if (interTimer) clearInterval(interTimer) + const url = '/gov/project/memoAttr/memoTime' + + const { data, code, msg } = await requestPost(url) + if (code === 0) { + + commit('SET_TIPS_TIME', data) + if (data.length > 0) dispatch('setInterval') + resolve() + } else reject(msg) + }) + } + } }); diff --git a/src/utils/index.js b/src/utils/index.js index ad9c9e00..fe742c9a 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -93,3 +93,25 @@ export function treeDataTranslate(data, id = 'id', pid = 'pid') { } return res } + +// 时间格式化 +export function dateFormats(fmt, date) { + let ret + const _date = new Date(date) + const opt = { + 'Y+': _date.getFullYear().toString(), // 年 + 'm+': (_date.getMonth() + 1).toString(), // 月 + 'd+': _date.getDate().toString(), // 日 + 'H+': _date.getHours().toString(), // 时 + 'M+': _date.getMinutes().toString(), // 分 + 'S+': _date.getSeconds().toString() // 秒 + // 有其他格式化字符需求可以继续添加,必须转化成字符串 + } + for (const k in opt) { + ret = new RegExp('(' + k + ')').exec(fmt) + if (ret) { + fmt = fmt.replace(ret[1], (ret[1].length === 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, '0'))) + } + } + return fmt +} diff --git a/src/views/main-content.vue b/src/views/main-content.vue index 08c7e249..cdb28ec9 100644 --- a/src/views/main-content.vue +++ b/src/views/main-content.vue @@ -69,18 +69,60 @@ + + + + + + + + + + + + + diff --git a/src/views/main.vue b/src/views/main.vue index 9ecf523e..479c782f 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/community/communityTable.vue b/src/views/modules/base/community/communityTable.vue index cbe00837..458f0267 100644 --- a/src/views/modules/base/community/communityTable.vue +++ b/src/views/modules/base/community/communityTable.vue @@ -103,8 +103,7 @@ class="diy-button--reset" size="small" @click="handleExport">导出 - 社区二维码 @@ -174,7 +173,8 @@ class="div-table-button--qr" size="small" @click="handleDownQr(scope.row, 'neighborHood')">二维码 --> - 查看 @@ -547,7 +547,7 @@ export default { this.$message.error(msg) } }, - async handleDownQr (row, type) { + async handleDownQr(row, type) { // const url = window.SITE_CONFIG['apiURL'] + `/gov/org/icneighborhood/createQrCode/${row.neighborHoodId}` const url = '/gov/org/agency/create-qrcode' const _id = type == 'community' ? row.id : row.neighborHoodId @@ -563,11 +563,11 @@ export default { }).then(res => { console.log('res----1r', res) if (res.headers["content-disposition"]) { - let fileName = window.decodeURI(res.headers["content-disposition"].split(";")[1].split("=")[1]) - console.log('filename', fileName) - this.download(res.data, fileName) //释放掉blob对象 - } else this.$message.error('下载失败') - // this.download(res.data, '1.png') + let fileName = window.decodeURI(res.headers["content-disposition"].split(";")[1].split("=")[1]) + console.log('filename', fileName) + this.download(res.data, fileName) //释放掉blob对象 + } else this.$message.error('下载失败') + // this.download(res.data, '1.png') }) }, //导出表格 diff --git a/src/views/modules/communityService/dqfwzx/index.vue b/src/views/modules/communityService/dqfwzx/index.vue index dd5e2388..344df3f9 100644 --- a/src/views/modules/communityService/dqfwzx/index.vue +++ b/src/views/modules/communityService/dqfwzx/index.vue @@ -17,13 +17,11 @@ :key="'ct' + index" v-for="(item, index) in tableData" > -
- 修改 + +
{{ item.centerName }}
社区地址:
@@ -158,7 +156,7 @@ + + diff --git a/src/views/modules/secretaryLog/difficulty/difficultyDetail.vue b/src/views/modules/secretaryLog/difficulty/difficultyDetail.vue new file mode 100644 index 00000000..f90289b9 --- /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 00000000..8e4132e0 --- /dev/null +++ b/src/views/modules/secretaryLog/difficulty/difficultyForm.vue @@ -0,0 +1,412 @@ + + + + + + + + diff --git a/src/views/modules/secretaryLog/difficulty/difficultyList.vue b/src/views/modules/secretaryLog/difficulty/difficultyList.vue new file mode 100644 index 00000000..933474da --- /dev/null +++ b/src/views/modules/secretaryLog/difficulty/difficultyList.vue @@ -0,0 +1,533 @@ + + + + diff --git a/src/views/modules/secretaryLog/humanisticCare/careDetail.vue b/src/views/modules/secretaryLog/humanisticCare/careDetail.vue new file mode 100644 index 00000000..48404018 --- /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 00000000..0dac347a --- /dev/null +++ b/src/views/modules/secretaryLog/humanisticCare/careForm.vue @@ -0,0 +1,488 @@ + + + + + + + + diff --git a/src/views/modules/secretaryLog/humanisticCare/careList.vue b/src/views/modules/secretaryLog/humanisticCare/careList.vue new file mode 100644 index 00000000..fcd3354a --- /dev/null +++ b/src/views/modules/secretaryLog/humanisticCare/careList.vue @@ -0,0 +1,605 @@ + + + + diff --git a/src/views/modules/secretaryLog/workLog/form.vue b/src/views/modules/secretaryLog/workLog/form.vue new file mode 100644 index 00000000..841cb534 --- /dev/null +++ b/src/views/modules/secretaryLog/workLog/form.vue @@ -0,0 +1,383 @@ + + + + + + + + diff --git a/src/views/modules/secretaryLog/workLog/index.vue b/src/views/modules/secretaryLog/workLog/index.vue new file mode 100644 index 00000000..3edcfe90 --- /dev/null +++ b/src/views/modules/secretaryLog/workLog/index.vue @@ -0,0 +1,474 @@ + + + + diff --git a/src/views/tips.vue b/src/views/tips.vue new file mode 100644 index 00000000..b7b451d9 --- /dev/null +++ b/src/views/tips.vue @@ -0,0 +1,105 @@ + + + + + \ No newline at end of file