From 7e3311ad642ac19f99785ed81be2fb504e624805 Mon Sep 17 00:00:00 2001 From: huangdeliang <huangdeliang@skieer.com> Date: Mon, 31 May 2021 10:52:30 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- stdiet-ui/src/api/custom/message.js | 33 ++++++++++++++ .../components/RecipesPlanDrawer/index.vue | 7 ++- stdiet-ui/src/layout/components/Navbar.vue | 2 +- stdiet-ui/src/router/index.js | 7 +++ stdiet-ui/src/store/index.js | 4 +- stdiet-ui/src/store/modules/message.js | 45 +++++++++++++++++++ stdiet-ui/src/views/custom/message/index.vue | 41 +++++++++++++++++ .../views/custom/message/messageBrowser.vue | 45 +++++++++++++++++++ .../src/views/custom/recipesPlan/index.vue | 25 ++--------- 9 files changed, 184 insertions(+), 25 deletions(-) create mode 100644 stdiet-ui/src/api/custom/message.js create mode 100644 stdiet-ui/src/store/modules/message.js create mode 100644 stdiet-ui/src/views/custom/message/index.vue create mode 100644 stdiet-ui/src/views/custom/message/messageBrowser.vue diff --git a/stdiet-ui/src/api/custom/message.js b/stdiet-ui/src/api/custom/message.js new file mode 100644 index 000000000..f453c905f --- /dev/null +++ b/stdiet-ui/src/api/custom/message.js @@ -0,0 +1,33 @@ +import request from "@/utils/request"; + +export function fetchTopicList(query) { + return request({ + url: "/services/topic/list", + method: "get", + params: query + }); +} + +export function fetchTopicDetail(query) { + return request({ + url: "/services/topic/detail", + method: "get", + params: query + }); +} + +export function postTopicReply(data) { + return request({ + url: "/services/topic/reply", + method: "post", + body: data + }); +} + +export function postTopicComment(data) { + return request({ + url: "/services/topic/comment", + method: "post", + body: data + }); +} diff --git a/stdiet-ui/src/components/RecipesPlanDrawer/index.vue b/stdiet-ui/src/components/RecipesPlanDrawer/index.vue index 45498bca8..66535901b 100644 --- a/stdiet-ui/src/components/RecipesPlanDrawer/index.vue +++ b/stdiet-ui/src/components/RecipesPlanDrawer/index.vue @@ -151,8 +151,11 @@ </template> <script> import Clipboard from "clipboard"; -import { listRecipesPlanByCusId } from "@/api/custom/recipesPlan"; -import { addRecipesPlan, updateRecipesPlan } from "@/api/custom/recipesPlan"; +import { + listRecipesPlanByCusId, + addRecipesPlan, + updateRecipesPlan, +} from "@/api/custom/recipesPlan"; import PlanPauseDrawer from "./PlanPauseDrawer"; import VueQr from "vue-qr"; import dayjs from "dayjs"; diff --git a/stdiet-ui/src/layout/components/Navbar.vue b/stdiet-ui/src/layout/components/Navbar.vue index f8c983055..af5333114 100644 --- a/stdiet-ui/src/layout/components/Navbar.vue +++ b/stdiet-ui/src/layout/components/Navbar.vue @@ -103,7 +103,7 @@ export default { this.$store.dispatch("app/toggleSideBar"); }, handleOnMessageClick() { - + this.$router.push("/user/message"); }, async logout() { this.$confirm("确定注销并退出系统吗?", "提示", { diff --git a/stdiet-ui/src/router/index.js b/stdiet-ui/src/router/index.js index 303bbf182..cd5169b06 100644 --- a/stdiet-ui/src/router/index.js +++ b/stdiet-ui/src/router/index.js @@ -83,6 +83,13 @@ export const constantRoutes = [ require(["@/views/system/user/profile/index"], resolve), name: "Profile", meta: { title: "个人中心", icon: "user" } + }, + { + path: "message", + component: resolve => + require(["@/views/custom/message/index"], resolve), + name: "Profile", + meta: { title: "客户消息", icon: "user" } } ] }, diff --git a/stdiet-ui/src/store/index.js b/stdiet-ui/src/store/index.js index ee09d42f2..f845dbf32 100644 --- a/stdiet-ui/src/store/index.js +++ b/stdiet-ui/src/store/index.js @@ -8,6 +8,7 @@ import settings from "./modules/settings"; import recipes from "./modules/recipes"; import recipesShow from "./modules/recipesShow"; import global from "./modules/global"; +import message from "./modules/message"; import getters from "./getters"; import actions from "./actions"; @@ -23,7 +24,8 @@ const store = new Vuex.Store({ settings, recipes, recipesShow, - global + global, + message }, getters, actions diff --git a/stdiet-ui/src/store/modules/message.js b/stdiet-ui/src/store/modules/message.js new file mode 100644 index 000000000..b65fc812f --- /dev/null +++ b/stdiet-ui/src/store/modules/message.js @@ -0,0 +1,45 @@ +import { + fetchTopicList, + postTopicReply, + fetchTopicDetail, + postTopicComment +} from "@/api/custom/message"; + +const oriState = { + topicList: undefined, + detailData: undefined +}; + +const mutations = { + save(state, payload) { + Object.keys(payload).forEach(key => { + state[key] = payload[key]; + }); + }, + clean(state) { + Object.keys(oriState).forEach(key => { + state[key] = oriState[key]; + }); + } +}; + +const actions = { + async init({ rootGetters, commit }, payload) { + const { + roles: [role], + userId + } = rootGetters; + const result = await fetchTopicList({ role: "dietician", uid: 131 }); + console.log({ result }); + } +}; + +const getters = {}; + +export default { + namespaced: "message", + state: Object.assign({}, oriState), + mutations, + actions, + getters +}; diff --git a/stdiet-ui/src/views/custom/message/index.vue b/stdiet-ui/src/views/custom/message/index.vue new file mode 100644 index 000000000..0df449440 --- /dev/null +++ b/stdiet-ui/src/views/custom/message/index.vue @@ -0,0 +1,41 @@ +<template> + <div class="user_message_wrapper"> + <MessageBrowser /> + <div class="info_zone"></div> + </div> +</template> +<script> +import MessageBrowser from "./messageBrowser"; +export default { + data() { + return {}; + }, + components: { + MessageBrowser, + }, + created() {}, + computed: {}, + methods: {}, +}; +</script> +<style lang="scss" scoped> +.user_message_wrapper { + padding: 12px; + display: flex; + box-sizing: border-box; + height: calc(100vh - 84px); + background: #f3f4f5; + + & > div:nth-child(1) { + flex: 3; + background: white; + } + + & > div:nth-child(2) { + flex: 2; + margin-left: 12px; + padding-left: 12px; + background: white; + } +} +</style> diff --git a/stdiet-ui/src/views/custom/message/messageBrowser.vue b/stdiet-ui/src/views/custom/message/messageBrowser.vue new file mode 100644 index 000000000..bd861a855 --- /dev/null +++ b/stdiet-ui/src/views/custom/message/messageBrowser.vue @@ -0,0 +1,45 @@ +<template> + <div class="message_browser_wrapper"> + <div class="topic_list"> + + </div> + <div class="topic_detail"></div> + </div> +</template> +<script> +import { createNamespacedHelpers } from "vuex"; +const { + mapActions, + mapState, + mapMutations, + mapGetters, +} = createNamespacedHelpers("message"); +export default { + data() { + return {}; + }, + created() { + this.init(); + }, + computed: { + ...mapState([]), + }, + methods: { + ...mapActions(["init"]), + ...mapMutations(["clean"]), + }, +}; +</script> +<style lang="scss" scoped> +.message_browser_wrapper { + display: flex; + .topic_list { + flex: 2; + } + + .topic_detail { + flex: 3; + background: gray; + } +} +</style> diff --git a/stdiet-ui/src/views/custom/recipesPlan/index.vue b/stdiet-ui/src/views/custom/recipesPlan/index.vue index 0e8e94dcd..e21c723a4 100644 --- a/stdiet-ui/src/views/custom/recipesPlan/index.vue +++ b/stdiet-ui/src/views/custom/recipesPlan/index.vue @@ -115,30 +115,14 @@ </template> </el-table-column> <el-table-column label="客户姓名" align="center" prop="customer" /> - <el-table-column - label="客户手机号" - align="center" - prop="hidePhone" - width="180" - /> - <el-table-column - label="计划" - align="center" - prop="scopeDay" - width="200" - /> - <el-table-column - label="日期" - align="center" - prop="scopeDate" - width="200" - /> + <el-table-column label="客户手机号" align="center" prop="hidePhone" /> + <el-table-column label="计划" align="center" prop="scopeDay" /> + <el-table-column label="日期" align="center" prop="scopeDate" width="200"/> <el-table-column label="营养师" align="center" prop="nutritionist" /> <el-table-column label="营养师助理" align="center" prop="nutritionistAssis" - width="180" /> <el-table-column label="订阅情况" align="center"> <template slot-scope="scope"> @@ -147,7 +131,7 @@ </el-tag> </template> </el-table-column> - <el-table-column label="发送" align="center" width="80"> + <el-table-column label="发送" align="center"> <template slot-scope="scope"> <el-switch v-model="!!scope.row.sendFlag" @@ -159,7 +143,6 @@ label="操作" align="center" class-name="small-padding fixed-width" - width="300" > <template slot-scope="scope"> <el-button