From bb89a0a6111a9c98d54411d41ec2e63575eea53f Mon Sep 17 00:00:00 2001 From: longyvfengyun <496960745@qq.com> Date: 星期二, 02 一月 2024 15:01:02 +0800 Subject: [PATCH] 内容修改 --- src/main.js | 21 +++ src/pages/workplace/WorkPlace.vue | 142 ++++++++++++++--------- src/pages/components/TodayLog.vue | 149 ++++++++++++++++++++++++ src/router/config.js | 5 4 files changed, 257 insertions(+), 60 deletions(-) diff --git a/src/main.js b/src/main.js index fd6e8e2..7f24754 100644 --- a/src/main.js +++ b/src/main.js @@ -31,6 +31,27 @@ bootstrap({router, store, i18n, message: Vue.prototype.$message}) +//鏍煎紡鍖栨椂闂� +Date.prototype.format = function (format) { + var o = { + "M+": this.getMonth() + 1, //month + "d+": this.getDate(), //day + "h+": this.getHours(), //hour + "m+": this.getMinutes(), //minute + "s+": this.getSeconds(), //second + "q+": Math.floor((this.getMonth() + 3) / 3), //quarter + "S": this.getMilliseconds() //millisecond + }; + if (/(y+)/.test(format)) format = format.replace(RegExp.$1, + (this.getFullYear() + "").substr(4 - RegExp.$1.length)); + for (var k in o) + if (new RegExp("(" + k + ")").test(format)) + format = format.replace(RegExp.$1, + RegExp.$1.length == 1 ? o[k] : + ("00" + o[k]).substr(("" + o[k]).length)); + return format; +}; + new Vue({ router, store, diff --git a/src/pages/components/TodayLog.vue b/src/pages/components/TodayLog.vue new file mode 100644 index 0000000..05daa8e --- /dev/null +++ b/src/pages/components/TodayLog.vue @@ -0,0 +1,149 @@ +<script> +import createWs from "@/assets/js/websocket"; +const WSMixin = createWs("log"); +export default { + name: "TodayLog", + mixins: [WSMixin], + data() { + return { + list: [] + } + }, + methods: { + onWSMessage(res) { + let rs = JSON.parse(res.data); + let data = rs.data; + this.list = data.map(item=>{ + return { + name: item.name, + oprateDay: new Date(item.oprateDay).format("hh:mm"), + oprateType: item.oprateType, + oprateMsg: item.oprateMsg, + operateTypeName: item.operateTypeName + }; + }); + }, + goToLogsMore() { + this.$router.push({ + path: "/system/logs" + }); + } + }, + mounted() { + } +} +</script> + +<template> + <a-card class="a-flex-card" size="small" title="鏈�鏂板姩鎬�"> + <template #extra> + <span class="href-text" @click="goToLogsMore">鏇村</span> + </template> + <div class="list-wrapper"> + <ul class="timeline timeline-tag-left"> + <li v-for="(item, key) in list" :key="'key'+key"> + <div> + <span class="timeline-tag">{{ item.oprateDay }}</span> + <span class="timeline-text"> + {{ item.name }} + <span class="label-action">{{ item.operateTypeName }}</span> + <span class="href-text" :title="item.oprateMsg">{{ item.oprateMsg }}</span> + </span> + </div> + </li> + </ul> + </div> + </a-card> +</template> + +<style scoped> +.a-flex-card.ant-card { + display: flex; + flex-direction: column; + width: 100%; + height: 100%; +} +/deep/.ant-card-body { + flex: 1; + position: relative; + overflow: hidden; +} +.list-wrapper { + position: absolute; + width: 100%; + height: 100%; + overflow-y: auto; +} +.timeline-tag-left { + padding-left: 50px; +} +.timeline>li { + position: relative; + list-style: none; +} +.timeline > li:before { + left: -26px; +} +.timeline > li:before { + position: absolute; + display: block; + top: 8px; + left: -16px; + z-index: 3; + width: 7px; + height: 7px; + background-color: #c4c4c4; + border: 1px solid #c4c4c4; + content: ' '; + border-radius: 50%; +} +.timeline > li > div:after { + position: absolute; + display: block; + content: ' '; + top: 11px; + left: -27px; + z-index: 3; + width: 9px; + height: 9px; + background-color: #2e7fff; + border-radius: 50%; + opacity: 0; +} +.timeline-tag { + position: absolute; + top: 2px; + left: -50px; + font-size: 12px; +} +.timeline-text { + display: block; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + min-height: 24px; + font-size: 14px; +} +.timeline>li+li:after { + position: absolute; + top: -8px; + bottom: 10px; + left: -13px; + z-index: 1; + display: block; + content: ' '; + border-left: 1px solid #eee; +} +.label-action { + display: inline-block; + padding: 0 2px 0 0; +} +.list-wrapper { + height: 100%; + overflow: auto; +} +.href-text { + cursor: pointer; + color: #13c2c2; +} +</style> diff --git a/src/pages/workplace/WorkPlace.vue b/src/pages/workplace/WorkPlace.vue index bc69e3d..793bdbc 100644 --- a/src/pages/workplace/WorkPlace.vue +++ b/src/pages/workplace/WorkPlace.vue @@ -1,59 +1,66 @@ <template> - <div class="work-place"> - <a-row :gutter="18" class="work-place-top"> - <a-col :span="item.span" v-for="(item, key) in totals" :key="'key' + key"> - <total-card - :info="item" - :type="item.type" - :title="item.title" - :num="item.value" - @click="changeTotalCard" - ></total-card> - </a-col> - </a-row> - <div style="margin-top: 8px"> - <my-draw :is-show="'my' == cardName" :y="y" @resize="resize"></my-draw> - <not-approved - :is-show="'approving' == cardName" - :y="y" - @resize="resize" - ></not-approved> - <rejected-list - :is-show="'rejected' == cardName" - :y="y" - @resize="resize" - ></rejected-list> - <approved-list - :is-show="'approved' == cardName" - :y="y" - @resize="resize" - ></approved-list> - <handling-list - :is-show="'handling' == cardName" - :y="y" - @resize="resize" - ></handling-list> - <handled-list - :is-show="'handled' == cardName" - :y="y" - @resize="resize" - ></handled-list> - <feedback-list - :is-show="'sendFk' == cardName ||'recevierFk' == cardName" - :type="cardName" - :y="y" - @resize="resize" - ></feedback-list> - <!-- v-if="'sendFk' == cardName" - v-if="'recevierFk' == cardName" --> - <!-- <feedback-list - :is-show="'recevierFk' == cardName" - :type="cardName" - :y="y" - @resize="resize" - ></feedback-list> --> - </div> - </div> + <div class="work-place-wrapper"> + <div class="work-place-container"> + <div class="work-place"> + <a-row :gutter="18" class="work-place-top"> + <a-col :span="item.span" v-for="(item, key) in totals" :key="'key' + key"> + <total-card + :info="item" + :type="item.type" + :title="item.title" + :num="item.value" + @click="changeTotalCard" + ></total-card> + </a-col> + </a-row> + <div style="margin-top: 8px"> + <my-draw :is-show="'my' == cardName" :y="y" @resize="resize"></my-draw> + <not-approved + :is-show="'approving' == cardName" + :y="y" + @resize="resize" + ></not-approved> + <rejected-list + :is-show="'rejected' == cardName" + :y="y" + @resize="resize" + ></rejected-list> + <approved-list + :is-show="'approved' == cardName" + :y="y" + @resize="resize" + ></approved-list> + <handling-list + :is-show="'handling' == cardName" + :y="y" + @resize="resize" + ></handling-list> + <handled-list + :is-show="'handled' == cardName" + :y="y" + @resize="resize" + ></handled-list> + <feedback-list + :is-show="'sendFk' == cardName ||'recevierFk' == cardName" + :type="cardName" + :y="y" + @resize="resize" + ></feedback-list> + <!-- v-if="'sendFk' == cardName" + v-if="'recevierFk' == cardName" --> + <!-- <feedback-list + :is-show="'recevierFk' == cardName" + :type="cardName" + :y="y" + @resize="resize" + ></feedback-list> --> + </div> + </div> + </div> + <div class="log-wrapper"> + <today-log></today-log> + </div> + </div> </template> <script> @@ -70,11 +77,13 @@ import HandledList from "@/pages/workplace/handledList/HandledList"; import FeedbackList from "@/pages/workplace/feedbackList/feedbackList"; import createWs from "@/assets/js/websocket"; +import TodayLog from "@/pages/components/TodayLog.vue"; const WSMixin = createWs("worksheet"); export default { name: "WorkPlace", components: { + TodayLog, HandledList, HandlingList, ApprovedList, @@ -191,7 +200,28 @@ </script> <style scoped> +.work-place-wrapper { + display: flex; + height: 100%; +} +.work-place-container { + flex:1; + position: relative; + height: 100%; +} .work-place { - padding-top: 8px; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; +} +.log-wrapper { + width: 450px; + height: 100%; + overflow-y: auto; + padding-left: 4px; + padding-bottom: 4px; + position: relative; } </style> diff --git a/src/router/config.js b/src/router/config.js index 17ab4cf..070c2f3 100644 --- a/src/router/config.js +++ b/src/router/config.js @@ -44,7 +44,7 @@ path: 'workplaceList', name: '闂鍙嶉鏌ヨ', meta: { - icon: "profile" + icon: "exceptionOutlined" }, component: () => import('@/pages/workplace/workplaceList') }, @@ -191,9 +191,6 @@ page: { cacheAble: false }, - authority: { - role: '1004', - } }, component: BlankView, children: [ -- Gitblit v1.9.1