From 055097960d71180f238872fddaea2383b87359bd Mon Sep 17 00:00:00 2001 From: jiangyy Date: Thu, 17 Mar 2022 14:04:49 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BA=BA=E6=96=87=E5=85=B3=E6=80=80?= =?UTF-8?q?=E3=80=81=E9=9A=BE=E7=82=B9=E5=A0=B5=E7=82=B9=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/secretaryLog/difficulty/difficultyForm.vue | 5 +++-- .../modules/secretaryLog/difficulty/difficultyList.vue | 6 ++++-- src/views/modules/secretaryLog/humanisticCare/careForm.vue | 5 +++-- src/views/modules/secretaryLog/humanisticCare/careList.vue | 6 ++++-- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/views/modules/secretaryLog/difficulty/difficultyForm.vue b/src/views/modules/secretaryLog/difficulty/difficultyForm.vue index e271db26..46bc5df7 100644 --- a/src/views/modules/secretaryLog/difficulty/difficultyForm.vue +++ b/src/views/modules/secretaryLog/difficulty/difficultyForm.vue @@ -6,6 +6,7 @@ :inline="true" :model="formData" :rules="dataRule" + :disabled="formType==='detail'" class="form"> { - this.$refs.ref_detail.initForm(row) + this.$refs.ref_form.initForm('detail', row.id) + // this.$refs.ref_detail.initForm(row) }) }, diff --git a/src/views/modules/secretaryLog/humanisticCare/careForm.vue b/src/views/modules/secretaryLog/humanisticCare/careForm.vue index 257acb56..086223d4 100644 --- a/src/views/modules/secretaryLog/humanisticCare/careForm.vue +++ b/src/views/modules/secretaryLog/humanisticCare/careForm.vue @@ -6,6 +6,7 @@ :inline="true" :model="formData" :rules="dataRule" + :disabled="formType==='detail'" class="form"> { - this.$refs.ref_detail.initForm(row) + // this.$refs.ref_detail.initForm(row) + this.$refs.ref_form.initForm('detail', row.id) }) }, From 1f21fb1d43a8e18062a0b81fe1b399c290a15670 Mon Sep 17 00:00:00 2001 From: 13176889840 <13176889840@163.com> Date: Thu, 17 Mar 2022 15:27:59 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E9=80=9A=E7=9F=A5=E6=8F=90=E9=86=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/js/store/index.js | 39 +- src/utils/index.js | 22 + src/views/main-content.vue | 77 ++- .../difficulty/difficultyForm.vue | 10 +- .../difficulty/difficultyList.vue | 2 +- .../secretaryLog/humanisticCare/careForm.vue | 10 +- .../secretaryLog/humanisticCare/careList.vue | 2 +- .../modules/secretaryLog/workLog/form.vue | 358 +++++++++++++ .../modules/secretaryLog/workLog/index.vue | 474 ++++++++++++++++++ src/views/tips.vue | 8 +- 10 files changed, 961 insertions(+), 41 deletions(-) create mode 100644 src/views/modules/secretaryLog/workLog/form.vue create mode 100644 src/views/modules/secretaryLog/workLog/index.vue diff --git a/src/js/store/index.js b/src/js/store/index.js index 7dfbb567..2b254ac2 100644 --- a/src/js/store/index.js +++ b/src/js/store/index.js @@ -5,9 +5,10 @@ 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: { @@ -56,13 +57,42 @@ export default new Vuex.Store({ }, SET_TIPS_LIST(state, tipsList) { let _list = state.tipsList - state.tipsList = _list.concat(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) + } + }) + }, 10000) + }, setTipsList({ commit }, time) { return new Promise(async (resolve, reject) => { const url = '/gov/project/memoAttr/memosToRemind' @@ -76,13 +106,16 @@ export default new Vuex.Store({ } else reject(msg) }) }, - setTipsTime({ commit }) { + 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 c691d133..569b149f 100644 --- a/src/views/main-content.vue +++ b/src/views/main-content.vue @@ -70,28 +70,29 @@ - @@ -101,19 +102,25 @@ import { isURL } from "@/utils/validate"; import Cookie from "js-cookie"; import Tips from './tips.vue' import { requestPost } from "@/js/dai/request"; +import workForm from './modules/secretaryLog/workLog/form.vue' +import dForm from './modules/secretaryLog/difficulty/difficultyForm.vue' +import hForm from './modules/secretaryLog/humanisticCare/careForm.vue' export default { components: { - Tips + Tips, + workForm, + dForm, + hForm }, data() { return { + dialogTitle: '', dialogFormVisible: false, iframeUrl: "", token: "", customerId: "", - form: { - - }, + form: {}, + formType: '', formLabelWidth: '120px', tipsList: [] }; @@ -127,6 +134,11 @@ export default { this.loopTips() }, + computed: { + msgList() { + return this.$store.state.tipsList + } + }, methods: { changeCustomerName(customerName) { this.$emit("changeCustomerName", customerName); @@ -250,11 +262,26 @@ export default { this.$store.state.tipsList.splice(index, 1) this.closeTips(item.memoId) }, - async handleLook(item) { + async handleLook(item, index) { console.log('look-----', item) - await this.getInfo(item) + const formType = { + work_diary: 'ref_form', + concern: 'concern_form', + difficulty: 'difficulty_form' + } + this.dialogTitle = item.typeName + // await this.getInfo(item) + this.formType = item.type this.dialogFormVisible = true + console.log('ref0-----', this.formType) + this.$nextTick(() => { + console.log('this.$refs-----', this.$refs) + this.$refs[formType[item.type]].initForm('look', item.memoId) + this.$store.state.tipsList.splice(index, 1) + this.closeTips(item.memoId) + }) + } }, }; diff --git a/src/views/modules/secretaryLog/difficulty/difficultyForm.vue b/src/views/modules/secretaryLog/difficulty/difficultyForm.vue index 46bc5df7..02760a1d 100644 --- a/src/views/modules/secretaryLog/difficulty/difficultyForm.vue +++ b/src/views/modules/secretaryLog/difficulty/difficultyForm.vue @@ -6,7 +6,7 @@ :inline="true" :model="formData" :rules="dataRule" - :disabled="formType==='detail'" + :disabled="formType==='look'" class="form"> 取 消 - 确 定 @@ -196,13 +196,15 @@ export default { setTimeout(() => { this.btnDisable = false }, 10000) - this.$refs['ref_form'].validate((valid, messageObj) => { + this.$refs['ref_form'].validate(async (valid, messageObj) => { if (!valid) { app.util.validateRule(messageObj) this.btnDisable = false } else { - this.addDifficulty() + await this.addDifficulty() + this.$store.dispatch('setTipsList') + this.$store.dispatch('setTipsTime') } }) diff --git a/src/views/modules/secretaryLog/difficulty/difficultyList.vue b/src/views/modules/secretaryLog/difficulty/difficultyList.vue index 90e9d8f1..933474da 100644 --- a/src/views/modules/secretaryLog/difficulty/difficultyList.vue +++ b/src/views/modules/secretaryLog/difficulty/difficultyList.vue @@ -286,7 +286,7 @@ export default { this.formShow = true this.formTitle = '详情' this.$nextTick(() => { - this.$refs.ref_form.initForm('detail', row.id) + this.$refs.ref_form.initForm('look', row.id) // this.$refs.ref_detail.initForm(row) }) diff --git a/src/views/modules/secretaryLog/humanisticCare/careForm.vue b/src/views/modules/secretaryLog/humanisticCare/careForm.vue index 086223d4..2dc54f2a 100644 --- a/src/views/modules/secretaryLog/humanisticCare/careForm.vue +++ b/src/views/modules/secretaryLog/humanisticCare/careForm.vue @@ -6,7 +6,7 @@ :inline="true" :model="formData" :rules="dataRule" - :disabled="formType==='detail'" + :disabled="formType==='look'" class="form"> 取 消 - 确 定 @@ -241,13 +241,15 @@ export default { setTimeout(() => { this.btnDisable = false }, 10000) - this.$refs['ref_form'].validate((valid, messageObj) => { + this.$refs['ref_form'].validate(async (valid, messageObj) => { if (!valid) { app.util.validateRule(messageObj) this.btnDisable = false } else { - this.addCare() + await this.addCare() + this.$store.dispatch('setTipsList') + this.$store.dispatch('setTipsTime') } }) diff --git a/src/views/modules/secretaryLog/humanisticCare/careList.vue b/src/views/modules/secretaryLog/humanisticCare/careList.vue index afb7f687..a712923c 100644 --- a/src/views/modules/secretaryLog/humanisticCare/careList.vue +++ b/src/views/modules/secretaryLog/humanisticCare/careList.vue @@ -357,7 +357,7 @@ export default { this.formTitle = '详情' this.$nextTick(() => { // this.$refs.ref_detail.initForm(row) - this.$refs.ref_form.initForm('detail', row.id) + this.$refs.ref_form.initForm('look', row.id) }) }, diff --git a/src/views/modules/secretaryLog/workLog/form.vue b/src/views/modules/secretaryLog/workLog/form.vue new file mode 100644 index 00000000..7d7961ae --- /dev/null +++ b/src/views/modules/secretaryLog/workLog/form.vue @@ -0,0 +1,358 @@ + + + + + + + + diff --git a/src/views/modules/secretaryLog/workLog/index.vue b/src/views/modules/secretaryLog/workLog/index.vue new file mode 100644 index 00000000..57e2f85b --- /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 index 5c926775..5b350bd5 100644 --- a/src/views/tips.vue +++ b/src/views/tips.vue @@ -1,5 +1,5 @@