ystl_myq 7 mēneši atpakaļ
vecāks
revīzija
947d1dc576

+ 1 - 1
public/platform-config.json

@@ -1,6 +1,6 @@
 {
   "Version": "5.3.0",
-  "Title": "医疗运营管理系统",
+  "Title": "",
   "FixedHeader": true,
   "HiddenSideBar": false,
   "MultiTagsCache": false,

+ 2 - 2
src/config/tag.ts

@@ -1,6 +1,6 @@
 export const getStateData = (index: number | string) => {
   const stateDataMap = {
-    0: `草稿`,
+    0: `草  稿`,
     1: "已上架",
     2: "已下架"
   };
@@ -10,7 +10,7 @@ export const getState = (index: number | string) => {
   const stateDataMap = {
     0: `进行中`,
     1: "已完成",
-    2: "草稿"
+    2: "草  稿"
   };
   return stateDataMap[index] || "未定义状态";
 };

+ 0 - 216
src/layout/components/appMain.vue

@@ -1,216 +0,0 @@
-<script setup lang="ts">
-import Footer from "./footer/index.vue";
-import { useGlobal, isNumber } from "@pureadmin/utils";
-import KeepAliveFrame from "./keepAliveFrame/index.vue";
-import backTop from "@/assets/svg/back_top.svg?component";
-import { h, computed, Transition, defineComponent } from "vue";
-import { usePermissionStoreHook } from "@/store/modules/permission";
-
-const props = defineProps({
-  fixedHeader: Boolean
-});
-
-const { $storage, $config } = useGlobal<GlobalPropertiesApi>();
-
-const isKeepAlive = computed(() => {
-  return $config?.KeepAlive;
-});
-
-const transitions = computed(() => {
-  return route => {
-    return route.meta.transition;
-  };
-});
-
-const hideTabs = computed(() => {
-  return $storage?.configure.hideTabs;
-});
-
-const hideFooter = computed(() => {
-  return $storage?.configure.hideFooter;
-});
-
-const stretch = computed(() => {
-  return $storage?.configure.stretch;
-});
-
-const layout = computed(() => {
-  return $storage?.layout.layout === "vertical";
-});
-
-const getMainWidth = computed(() => {
-  return isNumber(stretch.value)
-    ? stretch.value + "px"
-    : stretch.value
-      ? "1440px"
-      : "100%";
-  // return isNumber(stretch.value)
-  //   ? stretch.value + "px"
-  //   : stretch.value
-  //     ? "1440px"
-  //     : "100%";
-});
-
-const getSectionStyle = computed(() => {
-  return [
-    hideTabs.value && layout ? "padding-top: 48px;" : "",
-    !hideTabs.value && layout ? "padding-top: 81px;" : "",
-    hideTabs.value && !layout.value ? "padding-top: 48px;" : "",
-    !hideTabs.value && !layout.value ? "padding-top: 81px;" : "",
-    props.fixedHeader
-      ? ""
-      : `padding-top: 0;${
-          hideTabs.value
-            ? "min-height: calc(100vh - 48px);"
-            : "min-height: calc(100vh - 86px);"
-        }`
-  ];
-});
-
-const transitionMain = defineComponent({
-  props: {
-    route: {
-      type: undefined,
-      required: true
-    }
-  },
-  render() {
-    const transitionName =
-      transitions.value(this.route)?.name || "fade-transform";
-    const enterTransition = transitions.value(this.route)?.enterTransition;
-    const leaveTransition = transitions.value(this.route)?.leaveTransition;
-    return h(
-      Transition,
-      {
-        name: enterTransition ? "pure-classes-transition" : transitionName,
-        enterActiveClass: enterTransition
-          ? `animate__animated ${enterTransition}`
-          : undefined,
-        leaveActiveClass: leaveTransition
-          ? `animate__animated ${leaveTransition}`
-          : undefined,
-        mode: "out-in",
-        appear: true
-      },
-      {
-        default: () => [this.$slots.default()]
-      }
-    );
-  }
-});
-</script>
-
-<template>
-  <section
-    :class="[props.fixedHeader ? 'app-main' : 'app-main-nofixed-header']"
-    class="mainBG"
-    :style="getSectionStyle"
-  >
-    <router-view>
-      <template #default="{ Component, route }">
-        <KeepAliveFrame :currComp="Component" :currRoute="route">
-          <template #default="{ Comp, fullPath, frameInfo }">
-            <el-scrollbar
-              v-if="props.fixedHeader"
-              :wrap-style="{
-                display: 'flex',
-                'flex-wrap': 'wrap',
-                // 'max-width': getMainWidth,
-                margin: '0 auto',
-                transition: 'all 300ms cubic-bezier(0.4, 0, 0.2, 1)'
-              }"
-              :view-style="{
-                display: 'flex',
-                flex: 'auto',
-                overflow: 'hidden',
-                'flex-direction': 'column'
-              }"
-            >
-              <el-backtop
-                title="回到顶部"
-                target=".app-main .el-scrollbar__wrap"
-              >
-                <backTop />
-              </el-backtop>
-              <div class="grow">
-                <transitionMain :route="route">
-                  <keep-alive
-                    v-if="isKeepAlive"
-                    :include="usePermissionStoreHook().cachePageList"
-                  >
-                    <component
-                      :is="Comp"
-                      :key="fullPath"
-                      :frameInfo="frameInfo"
-                      class="main-content"
-                    />
-                  </keep-alive>
-                  <component
-                    :is="Comp"
-                    v-else
-                    :key="fullPath"
-                    :frameInfo="frameInfo"
-                    class="main-content"
-                  />
-                </transitionMain>
-              </div>
-              <Footer v-if="!hideFooter" />
-            </el-scrollbar>
-            <div v-else class="grow">
-              <transitionMain :route="route">
-                <keep-alive
-                  v-if="isKeepAlive"
-                  :include="usePermissionStoreHook().cachePageList"
-                >
-                  <component
-                    :is="Comp"
-                    :key="fullPath"
-                    :frameInfo="frameInfo"
-                    class="main-content"
-                  />
-                </keep-alive>
-                <component
-                  :is="Comp"
-                  v-else
-                  :key="fullPath"
-                  :frameInfo="frameInfo"
-                  class="main-content"
-                />
-              </transitionMain>
-            </div>
-          </template>
-        </KeepAliveFrame>
-      </template>
-    </router-view>
-
-    <!-- 页脚 -->
-    <Footer v-if="!hideFooter && !props.fixedHeader" />
-  </section>
-</template>
-
-<style scoped>
-.app-main {
-  position: relative;
-  width: 100%;
-  height: 100vh;
-  overflow-x: hidden;
-
-  /* border: 1px solid blue; */
-}
-
-.app-main-nofixed-header {
-  position: relative;
-  display: flex;
-  flex-direction: column;
-  width: 100%;
-}
-
-.main-content {
-  margin: 24px;
-}
-
-.mainBG {
-  /* z-index: 1; */
-  background: white !important;
-}
-</style>

+ 3 - 7
src/layout/components/footer/index.vue

@@ -20,19 +20,15 @@ const TITLE = getConfig("Title");
 
 <style lang="scss" scoped>
 .layout-footer {
+  z-index: 999;
   display: flex;
   align-items: center;
   justify-content: center;
   width: 100%;
-  // border: 1px solid red;
-  // position: absolute;
-  // bottom: 0px;
-  // left: 0px;
-  height: 45px;
+  height: 20px;
   padding: 0 0 8px;
+  margin-right: 0 !important;
   font-size: 14px;
-  // background: #d5e8fb !important;
-  // background: #d5e8fb00 !important;
   background: linear-gradient(to right, #d5e8fb, #d5e8fb, #d5e8fb);
 }
 </style>

+ 61 - 37
src/layout/components/sidebar/vertical.vue

@@ -11,7 +11,7 @@ import { storageLocal, isAllEmpty } from "@pureadmin/utils";
 import { findRouteByPath, getParentPaths } from "@/router/utils";
 import { usePermissionStoreHook } from "@/store/modules/permission";
 import { ref, computed, watch, onMounted, onBeforeUnmount } from "vue";
-
+import bg from "@/assets/login/one/bg.png";
 const route = useRoute();
 const isShow = ref(false);
 const showLogo = ref(
@@ -86,56 +86,80 @@ onBeforeUnmount(() => {
 </script>
 
 <template>
-  <div
-    v-loading="loading"
-    :class="['sidebar-container', showLogo ? 'has-logo' : 'no-logo']"
-    @mouseenter.prevent="isShow = true"
-    @mouseleave.prevent="isShow = false"
-  >
-    <Logo v-if="showLogo" :collapse="isCollapse" />
-    <el-scrollbar
-      wrap-class="scrollbar-wrapper"
-      :class="[device === 'mobile' ? 'mobile' : 'pc']"
-      style="background-color: #d5e8fb"
+  <div>
+    <div
+      v-loading="loading"
+      :class="['sidebar-container', showLogo ? 'has-logo' : 'no-logo']"
+      @mouseenter.prevent="isShow = true"
+      @mouseleave.prevent="isShow = false"
     >
-      <el-menu
-        router
-        unique-opened
-        mode="vertical"
-        popper-class="pure-scrollbar"
-        class="outer-most select-none"
-        :collapse="isCollapse"
-        :collapse-transition="false"
-        :popper-effect="tooltipEffect"
-        :default-active="defaultActive"
+      <Logo v-if="showLogo" :collapse="isCollapse" />
+      <el-scrollbar
+        wrap-class="scrollbar-wrapper"
+        :class="[device === 'mobile' ? 'mobile' : 'pc']"
+        class="bottomRR"
+        style="background-color: #d5e8fb"
       >
-        <sidebar-item
-          v-for="routes in menuData"
-          :key="routes.path"
-          :item="routes"
-          :base-path="routes.path"
+        <el-menu
+          router
+          unique-opened
+          mode="vertical"
+          popper-class="pure-scrollbar"
           class="outer-most select-none"
+          :collapse="isCollapse"
+          :collapse-transition="false"
+          :popper-effect="tooltipEffect"
+          :default-active="defaultActive"
+        >
+          <sidebar-item
+            v-for="routes in menuData"
+            :key="routes.path"
+            :item="routes"
+            :base-path="routes.path"
+            class="outer-most select-none"
+          />
+        </el-menu>
+      </el-scrollbar>
+      <div v-if="route.name != 'Welcome' && route.name != 'evaluateNewAdd'">
+        <CenterCollapse
+          v-if="device !== 'mobile' && (isShow || isCollapse)"
+          :is-active="pureApp.sidebar.opened"
+          @toggleClick="toggleSideBar"
         />
-      </el-menu>
-    </el-scrollbar>
-    <div v-if="route.name != 'Welcome' && route.name != 'evaluateNewAdd'">
-      <CenterCollapse
-        v-if="device !== 'mobile' && (isShow || isCollapse)"
+      </div>
+
+      <LeftCollapse
+        v-if="device !== 'mobile'"
         :is-active="pureApp.sidebar.opened"
+        style="background-color: #d5e8fb"
         @toggleClick="toggleSideBar"
       />
     </div>
-    <LeftCollapse
-      v-if="device !== 'mobile'"
-      :is-active="pureApp.sidebar.opened"
-      style="background-color: #d5e8fb"
-      @toggleClick="toggleSideBar"
+    <img
+      v-if="route.name == 'Welcome'"
+      class="bg absolute bottom-0 right-0"
+      :src="bg"
+      alt=""
     />
   </div>
 </template>
 
 <style scoped>
+.bg {
+  /* border: 1px solid red; */
+  left: 0;
+  z-index: 9999;
+  width: 500px !important;
+  height: 500px;
+}
+
 :deep(.el-loading-mask) {
   opacity: 0.45;
 }
+
+.bottomRR {
+  border-top-left-radius: 15px !important;
+
+  /* border: 1px solid red; */
+}
 </style>

+ 44 - 17
src/layout/components/tag/index.vue

@@ -533,11 +533,12 @@ onBeforeUnmount(() => {
 </script>
 
 <template>
-  <div v-if="!showTags" ref="containerDom" class="tags-view bg">
-    <span v-show="isShowArrow" class="arrow-left">
-      <IconifyIconOffline :icon="ArrowLeftSLine" @click="handleScroll(200)" />
-    </span>
-    <!-- <div
+  <div v-if="route.name != 'Welcome'">
+    <div v-if="!showTags" ref="containerDom" class="tags-view bg">
+      <span v-show="isShowArrow" class="arrow-left">
+        <IconifyIconOffline :icon="ArrowLeftSLine" @click="handleScroll(200)" />
+      </span>
+      <!-- <div
       ref="scrollbarDom"
       class="scroll-container"
       @wheel.prevent="handleWheel"
@@ -576,12 +577,15 @@ onBeforeUnmount(() => {
         </div>
       </div>
     </div> -->
-    <breadCrumb class="scroll-container pl-3" />
-    <span v-show="isShowArrow" class="arrow-right">
-      <IconifyIconOffline :icon="ArrowRightSLine" @click="handleScroll(-200)" />
-    </span>
-    <!-- 右键菜单按钮 -->
-    <transition name="el-zoom-in-top">
+      <breadCrumb class="scroll-container pl-3" />
+      <span v-show="isShowArrow" class="arrow-right">
+        <IconifyIconOffline
+          :icon="ArrowRightSLine"
+          @click="handleScroll(-200)"
+        />
+      </span>
+      <!-- 右键菜单按钮 -->
+      <!-- <transition name="el-zoom-in-top">
       <ul
         v-show="visible"
         ref="contextmenuRef"
@@ -600,9 +604,9 @@ onBeforeUnmount(() => {
           </li>
         </div>
       </ul>
-    </transition>
-    <!-- 右侧功能按钮 -->
-    <el-dropdown
+    </transition> -->
+      <!-- 右侧功能按钮 -->
+      <!-- <el-dropdown
       trigger="click"
       placement="bottom-end"
       @command="handleCommand"
@@ -624,8 +628,12 @@ onBeforeUnmount(() => {
           </el-dropdown-item>
         </el-dropdown-menu>
       </template>
-    </el-dropdown>
-    <!-- <br /> -->
+    </el-dropdown> -->
+      <!-- <br /> -->
+    </div>
+  </div>
+  <div v-else class="tags-view bg-else">
+    <!--  -->
   </div>
 </template>
 
@@ -633,7 +641,26 @@ onBeforeUnmount(() => {
 @import url("./index.scss");
 
 .bg {
-  // background-color: #d5e8fb;
   background-color: #d5e8fb00;
+  // background-color: #d5e8fb;
+  // border: 1px solid red;
+  border-top-right-radius: 15px !important;
+}
+
+.bg::before {
+  position: absolute;
+  top: 0;
+  left: 0;
+  z-index: -1; /* 确保在内容下方 */
+  width: 100%; /* 伪元素的宽度 */
+  height: 100%; /* 伪元素的高度 */
+  content: "";
+  background-color: #022bbd; /* 圆角部分的颜色 */
+  border-top-left-radius: 20px; /* 圆角与父元素相同 */
+}
+
+.bg-else {
+  height: 100px;
+  background-color: #d5e8fb;
 }
 </style>

+ 19 - 3
src/layout/index.vue

@@ -2,6 +2,7 @@
 import "animate.css";
 // 引入 src/components/ReIcon/src/offlineIcon.ts 文件中所有使用addIcon添加过的本地图标
 import "@/components/ReIcon/src/offlineIcon";
+import { useRoute } from "vue-router";
 import { setType } from "./types";
 import { useLayout } from "./hooks/useLayout";
 import { useAppStoreHook } from "@/store/modules/app";
@@ -30,7 +31,7 @@ import setting from "./components/setting/index.vue";
 import Vertical from "./components/sidebar/vertical.vue";
 import Horizontal from "./components/sidebar/horizontal.vue";
 import backTop from "@/assets/svg/back_top.svg?component";
-
+const $route = useRoute();
 const appWrapperRef = ref();
 const { isDark } = useDark();
 const { layout } = useLayout();
@@ -180,9 +181,12 @@ const layoutHeader = defineComponent({
         ]"
       >
         <div v-if="set.fixedHeader">
-          <layout-header />
+          <layout-header :class="{ bbb: $route.name === 'Welcome' }" />
           <!-- 主体内容 -->
-          <app-main :fixed-header="set.fixedHeader" />
+          <app-main
+            :fixed-header="set.fixedHeader"
+            :class="{ aaa: $route.name === 'Welcome' }"
+          />
         </div>
         <el-scrollbar v-else>
           <el-backtop
@@ -233,6 +237,18 @@ const layoutHeader = defineComponent({
   opacity: 0.3;
 }
 
+.aaa {
+  // border: 1px solid red;
+  position: absolute;
+  z-index: 99;
+  width: 100% !important;
+  background-color: #d5e8fb !important;
+}
+
+.bbb {
+  z-index: 999999;
+}
+
 .re-screen {
   margin-top: 12px;
 }

+ 13 - 2
src/style/sidebar.scss

@@ -49,7 +49,7 @@
     position: absolute;
     top: 0;
     right: 0;
-    width: 45px; /* 与 padding-right 相同 */
+    width: 25px; /* 与 padding-right 相同 */
     height: 100%;
     content: "";
 
@@ -66,7 +66,7 @@
     min-height: 100%;
 
     // width: 1250px;
-    padding-right: 45px;
+    padding-right: 50px;
     margin-left: $sideBarWidth;
 
     // background: #f0f2f5;
@@ -81,6 +81,17 @@
     }
   }
 
+  .main-container::before {
+    position: absolute;
+    bottom: 0;
+    left: 0;
+    z-index: 9;
+    width: 100%;
+    height: 20px;
+    content: "";
+    background-color: #d5e8fb;
+  }
+
   .fixed-header {
     position: fixed;
     top: 0;

+ 2 - 3
src/views/indexDefine/children/components/dialog.vue

@@ -63,17 +63,16 @@ const save = () => {
 };
 const open = () => {
   // 打开弹框
-  form = {
+  Object.assign(form, {
     name: "",
     categoryName: "",
     define: "",
     caliber: "",
     source: "",
     statue: null
-  };
+  });
   msgName.value = "";
   visible.value = true;
-  console.log("打开弹框");
 };
 defineExpose({
   open

+ 31 - 42
src/views/indexDefine/children/define.vue

@@ -127,39 +127,40 @@ const logs = row => {
 };
 // 发布
 const release = row => {
-  ElMessageBox.confirm("确定要发布这项指标吗", "", {
-    confirmButtonText: "确认",
-    cancelButtonText: "取消",
-    type: "warning"
-  })
-    .then(() => {
-      row.statue = 1;
-      postUpdateDeptApi(row, "上架");
-    })
-    .catch(() => {
-      ElMessage({
-        type: "info",
-        message: "已取消"
-      });
-    });
+  row.statue = 1;
+  postUpdateDeptApi(row, "发布");
+  // ElMessageBox.confirm("确定要发布这项指标吗", "", {
+  //   confirmButtonText: "确认",
+  //   cancelButtonText: "取消",
+  //   type: "warning"
+  // })
+  //   .then(() => {
+  //   })
+  //   .catch(() => {
+  //     ElMessage({
+  //       type: "info",
+  //       message: "已取消"
+  //     });
+  //   });
 };
 // 下架
 const offShelf = row => {
-  ElMessageBox.confirm("确定要下架这项指标吗", "", {
-    confirmButtonText: "确认",
-    cancelButtonText: "取消",
-    type: "warning"
-  })
-    .then(() => {
-      row.statue = 2;
-      postUpdateDeptApi(row, "下架");
-    })
-    .catch(() => {
-      ElMessage({
-        type: "info",
-        message: "已取消"
-      });
-    });
+  row.statue = 2;
+  postUpdateDeptApi(row, "下架");
+  // ElMessageBox.confirm("确定要下架这项指标吗", "", {
+  //   confirmButtonText: "确认",
+  //   cancelButtonText: "取消",
+  //   type: "warning"
+  // })
+  //   .then(() => {
+
+  //   })
+  //   .catch(() => {
+  //     ElMessage({
+  //       type: "info",
+  //       message: "已取消"
+  //     });
+  //   });
 };
 // 修改信息
 const postUpdateDeptApi = async (row, state) => {
@@ -316,18 +317,6 @@ const postUpdateDeptApi = async (row, state) => {
           </el-table-column>
         </el-table>
       </div>
-      <!-- <div class="float-right mt-8">
-        <el-pagination
-          v-model:current-page="params.params.pageNumber"
-          v-model:page-size="params.params.pageSize"
-          :page-sizes="[10, 15, 20, 25]"
-          layout="total, sizes, prev, pager, next, jumper"
-          :total="params.total"
-          @size-change="handleSizeChange"
-          @current-change="handleCurrentChange"
-        />
-      </div> -->
-
       <div class="flex justify-between item-center">
         <div class="float-left mt-5 ml-2 total">共{{ params.total }}条数据</div>
         <div class="float-right mt-5 mr-8">

+ 9 - 6
src/views/welcome/index.vue

@@ -15,11 +15,11 @@ defineOptions({
 
 <template>
   <div class="box">
-    <img class="bg absolute bottom-0 left-0" :src="bg" alt="" />
+    <!-- <img class="bg absolute bottom-0 left-0" :src="bg" alt="" /> -->
     <img class="bg absolute bottom-0 right-0" :src="bg1" alt="" />
     <div class="zhuti">
       <h1 class="text-center">简单、便捷的绩效流程,高效完成绩效考核</h1>
-      <div class="flex justify-center items-center">
+      <div class="mt-5 flex justify-center items-center">
         <img :src="icon" alt="" />
         <img :src="bianzhu" alt="" />
         <img :src="icon1" alt="" />
@@ -57,18 +57,21 @@ defineOptions({
   width: 100%;
   height: 100%;
   margin: 0 !important;
-  background: #e5edfb;
+  user-select: none; /* 对大多数浏览器生效 */
+  // background: #e5edfb;
+  background: #d5e8fb;
 
   .bg {
-    width: 40%;
-    height: 50%;
+    bottom: -45px;
+    width: 500px;
+    height: 500px;
   }
 
   .zhuti {
     position: absolute;
     top: 50%;
     left: 50%;
-    transform: translate(-50%, -50%);
+    transform: translate(-55%, -50%);
   }
 }