谢杰标 2 år sedan
förälder
incheckning
bcbcc59e36

+ 2 - 2
.env.development

@@ -1,10 +1,10 @@
 # 页面标题
-VUE_APP_TITLE =中正云教育管理后台
+VUE_APP_TITLE =会员卡核销系统
 
 # 开发环境配置
 ENV = 'development'
 
-# 中正云教育管理后台/开发环境
+# 会员卡核销系统/开发环境
 VUE_APP_BASE_API = 'http://120.79.166.78:19013/'
 # VUE_APP_BASE_API = 'http://192.168.1.24:5030/'
 VUE_APP_IMG_API = 'https://file-dev.xyyxt.net'

+ 2 - 2
.env.production

@@ -1,10 +1,10 @@
 # 页面标题
-VUE_APP_TITLE = 中正云教育管理后台
+VUE_APP_TITLE = 会员卡核销系统
 
 # 生产环境配置
 ENV = 'production'
 
-# 中正云教育管理后台/生产环境
+# 会员卡核销系统/生产环境
 VUE_APP_BASE_API = 'https://cloud.xyyxt.net/'
 VUE_APP_IMG_API = 'https://file.xyyxt.net'
 

+ 2 - 2
.env.staging

@@ -1,12 +1,12 @@
 # 页面标题
-VUE_APP_TITLE = 中正云教育管理后台
+VUE_APP_TITLE = 会员卡核销系统
 
 NODE_ENV = production
 
 # 预发布环境配置
 ENV = 'staging'
 
-# 中正云教育管理后台/预发布环境
+# 会员卡核销系统/预发布环境
 # 测试
 VUE_APP_BASE_API = 'http://120.79.166.78:19013/'
 # 预发布

BIN
src/assets/images/icon_quit.png


BIN
src/assets/images/logo@2xS.png


BIN
src/assets/images/logo@2xSYT.png


BIN
src/assets/images/logo@2xSYTs.png


BIN
src/assets/images/logo@2xSs.png


+ 4 - 2
src/assets/styles/sidebar.scss

@@ -5,6 +5,8 @@
     transition: margin-left .28s;
     margin-left: $base-sidebar-width;
     position: relative;
+    background: #F6F7F9;
+    padding: 10px;
   }
 
   .sidebar-container {
@@ -20,8 +22,8 @@
     left: 0;
     z-index: 1001;
     overflow: hidden;
-    -webkit-box-shadow: 2px 0 6px rgba(0,21,41,.35);
-    box-shadow: 2px 0 6px rgba(0,21,41,.35);
+    // -webkit-box-shadow: 2px 0 6px rgba(0,21,41,.35);
+    // box-shadow: 2px 0 6px rgba(0,21,41,.35);
 
     // reset element-ui css
     .horizontal-collapse-transition {

+ 52 - 0
src/components/common/container.vue

@@ -0,0 +1,52 @@
+<template>
+  <div class="mian">
+    <h1 class="mian-title">{{ title }}</h1>
+    <div>
+      <slot> </slot>
+    </div>
+    <div>
+      <slot name="header"> </slot>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "SaasMemberContainer",
+  props: {
+    title: {
+      type: String,
+      default: "123",
+    },
+  },
+  data() {
+    return {};
+  },
+
+  mounted() {},
+
+  methods: {},
+};
+</script>
+
+<style lang="scss" scoped>
+.mian {
+  background: #ffffff;
+  padding: 16px;
+  border-radius: 8px;
+  .mian-title {
+    padding: 0;
+    margin: 0;
+    color: #222222;
+    font-size: 16px;
+    &::before {
+      content: "|";
+      background: #fa821f;
+      margin-right: 8px;
+      color: #fa821f;
+      font-size: 16px;
+      border-radius: 10px;
+    }
+  }
+}
+</style>

+ 4 - 4
src/layout/components/AppMain.vue

@@ -2,10 +2,10 @@
   <section class="app-main">
     <!-- <transition name="fade-transform" mode="out-in"> -->
     <!-- <transition name="fade-transform"> -->
-      <!-- :include="cachedViews" 下面keey-alive标签内添加-->
-      <keep-alive :include="cachedViews">
-        <router-view class="router_mains" :key="key" />
-      </keep-alive>
+    <!-- :include="cachedViews" 下面keey-alive标签内添加-->
+    <keep-alive :include="cachedViews">
+      <router-view class="router_mains" :key="key" />
+    </keep-alive>
     <!-- </transition> -->
     <!-- </transition> -->
   </section>

+ 29 - 81
src/layout/components/Navbar.vue

@@ -15,76 +15,15 @@
     <top-nav id="topmenu-container" class="topmenu-container" v-if="topNav" />
 
     <div class="right-menu">
-      <template v-if="device !== 'mobile'">
-        <search id="header-search" class="right-menu-item" />
-
-        <!-- <el-tooltip content="源码地址" effect="dark" placement="bottom">
-          <ruo-yi-git id="ruoyi-git" class="right-menu-item hover-effect" />
-        </el-tooltip>
-
-        <el-tooltip content="文档地址" effect="dark" placement="bottom">
-          <ruo-yi-doc id="ruoyi-doc" class="right-menu-item hover-effect" />
-        </el-tooltip> -->
-        <el-tooltip content="版本说明" effect="dark" placement="bottom">
-          <version
-            id="version"
-            class="right-menu-item hover-effect"
-            @openMsg="openMsg"
-          />
-        </el-tooltip>
-
-        <el-dialog
-          append-to-body
-          :visible.sync="dialogVisible"
-          width="560px"
-          :show-close="false"
-          :close-on-click-modal="false"
-        >
-          <div slot="title" class="hearders">
-            <div class="leftTitle">版本说明</div>
-            <div class="rightBoxs">
-              <img
-                src="@/assets/images/Close@2x.png"
-                alt=""
-                @click="dialogVisible = false"
-              />
-            </div>
-          </div>
-          <div class="dialogSty">
-            <h2>v6.0.0</h2>
-            <p>1.第六阶段完整版</p>
-          </div>
-          <span slot="footer" class="dialog-footer">
-            <el-button @click="dialogVisible = false">关 闭</el-button>
-          </span>
-        </el-dialog>
-        <screenfull id="screenfull" class="right-menu-item hover-effect" />
-
-        <el-tooltip content="布局大小" effect="dark" placement="bottom">
-          <size-select id="size-select" class="right-menu-item hover-effect" />
-        </el-tooltip>
-      </template>
-
-      <el-dropdown
-        class="avatar-container right-menu-item hover-effect"
-        trigger="click"
-      >
-        <div class="avatar-wrapper">
-          <img :src="avatar" class="user-avatar" />
-          <i class="el-icon-caret-bottom" />
-        </div>
-        <el-dropdown-menu slot="dropdown">
-          <router-link to="/user/profile">
-            <el-dropdown-item>个人中心</el-dropdown-item>
-          </router-link>
-          <el-dropdown-item @click.native="setting = true">
-            <span>布局设置</span>
-          </el-dropdown-item>
-          <el-dropdown-item divided @click.native="logout">
-            <span>退出登录</span>
-          </el-dropdown-item>
-        </el-dropdown-menu>
-      </el-dropdown>
+      <div class="right-menu-item">
+        <img :src="avatar" class="user-avatar" />
+      </div>
+      <div class="right-menu-item user-name">
+        <p>{{ name }}</p>
+      </div>
+      <div class="right-menu-item" @click="logout">
+        <img src="../../assets/images/icon_quit.png" />
+      </div>
     </div>
     <el-dialog
       append-to-body
@@ -164,7 +103,7 @@ export default {
     };
   },
   computed: {
-    ...mapGetters(["sidebar", "avatar", "device"]),
+    ...mapGetters(["sidebar", "avatar", "device", "name"]),
     setting: {
       get() {
         return this.$store.state.settings.showSettings;
@@ -183,13 +122,7 @@ export default {
     },
   },
   mounted() {
-    // if (this.$route.name !== "StationLetter") {
-    //   this.$api.inquireinformsys_userinformUnReadSum().then((res) => {
-    //     if (res.data > 0) {
-    //       this.getDontReadList();
-    //     }
-    //   });
-    // }
+    
   },
   methods: {
     /**
@@ -600,7 +533,20 @@ export default {
       font-size: 18px;
       color: #5a5e66;
       vertical-align: text-bottom;
-
+      img {
+        vertical-align: middle;
+      }
+      p {
+        font-size: 18px;
+        color: #222222;
+        margin-top: 2px;
+        margin-right: 6px;
+      }
+      .user-avatar {
+        width: 40px;
+        height: 40px;
+        border-radius: 10px;
+      }
       &.hover-effect {
         cursor: pointer;
         transition: background 0.3s;
@@ -610,7 +556,9 @@ export default {
         }
       }
     }
-
+    .user-name {
+      // margin-top: 10px;
+    }
     .avatar-container {
       margin-right: 30px;
 
@@ -678,7 +626,7 @@ export default {
   width: 400px !important;
   padding: 0px !important;
   & > .el-notification__group {
-  width: 100%;
+    width: 100%;
     margin: 0px;
     & > .el-notification__title {
       text-align: center;

+ 41 - 25
src/layout/components/Sidebar/Logo.vue

@@ -1,47 +1,62 @@
 <template>
-  <div class="sidebar-logo-container" :class="{'collapse':collapse}" :style="{ backgroundColor: sideTheme === 'theme-dark' ? variables.menuBackground : variables.menuLightBackground }">
+  <div
+    class="sidebar-logo-container"
+    :class="{ collapse: collapse }"
+    :style="{
+      backgroundColor:
+        sideTheme === 'theme-dark'
+          ? variables.menuBackground
+          : variables.menuLightBackground,
+    }"
+  >
     <transition name="sidebarLogoFade">
-      <router-link v-if="collapse" key="collapse" class="sidebar-logo-link" to="/">
-        <img v-if="logo" :src="sideTheme === 'theme-dark'? logo : logoYT" class="sidebar-logo" />
-        <h1 v-else class="sidebar-title" :style="{ color: sideTheme === 'theme-dark' ? variables.logoTitleColor : variables.logoLightTitleColor }">{{ title }} </h1>
-      </router-link>
-      <router-link v-else key="expand" class="sidebar-logo-link" to="/">
-        <img v-if="logo" :src="sideTheme === 'theme-dark'? logo : logoYT" class="sidebar-logo" />
-        <h1 class="sidebar-title" :style="{ color: sideTheme === 'theme-dark' ? variables.logoTitleColor : variables.logoLightTitleColor }">{{ title }} </h1>
+      <router-link
+        v-if="!collapse"
+        key="expand"
+        class="sidebar-logo-link"
+        to="/"
+      >
+        <h1
+          class="sidebar-title"
+          :style="{
+            color:
+              sideTheme === 'theme-dark'
+                ? variables.logoTitleColor
+                : variables.logoLightTitleColor,
+          }"
+        >
+          {{ title }}
+        </h1>
       </router-link>
     </transition>
   </div>
 </template>
 
 <script>
-import logoImg from '@/assets/images/logo@2xS.png'
-import logoYTImg from '@/assets/images/logo@2xSYT.png'
-import variables from '@/assets/styles/variables.scss'
+import variables from "@/assets/styles/variables.scss";
 
 export default {
-  name: 'SidebarLogo',
+  name: "SidebarLogo",
   props: {
     collapse: {
       type: Boolean,
-      required: true
-    }
+      required: true,
+    },
   },
   computed: {
     variables() {
       return variables;
     },
-	sideTheme() {
-      return this.$store.state.settings.sideTheme
-    }
+    sideTheme() {
+      return this.$store.state.settings.sideTheme;
+    },
   },
   data() {
     return {
-      title: '中正云教育',
-      logo: logoImg,
-      logoYT:logoYTImg,
-    }
-  }
-}
+      title: "会员卡核销系统",
+    };
+  },
+};
 </script>
 
 <style lang="scss" scoped>
@@ -76,12 +91,13 @@ export default {
 
     & .sidebar-title {
       display: inline-block;
-      margin: 0;
+      margin: 0 0 0 -50px;
+      // margin: 0;
       color: #fff;
       font-weight: bold;
       line-height: 50px;
       font-size: 16px;
-      font-family: "Heiti SC","黑体-简";
+      font-family: "Heiti SC", "黑体-简";
       vertical-align: middle;
     }
   }

+ 3 - 0
src/main.js

@@ -30,6 +30,8 @@ import RightToolbar from "@/components/RightToolbar"
 import FileUpload from "@/components/FileUpload"
 // 字典标签组件
 import DictTag from '@/components/DictTag'
+// 通用容器
+import container from "@/components/common/container"
 import methodsTools from '@/utils/methodsTool'
 // 全局方法挂载
 
@@ -47,6 +49,7 @@ Vue.prototype.gsap = gsap
 
 // 全局组件挂载
 Vue.component('DictTag', DictTag)
+Vue.component('Container', container)
 Vue.component('Pagination', Pagination)
 Vue.component('BaseDialog', BaseDialog)
 Vue.component('RightToolbar', RightToolbar)

+ 2 - 2
src/settings.js

@@ -2,7 +2,7 @@ module.exports = {
   /**
    * 侧边栏主题 深色主题theme-dark,浅色主题theme-light
    */
-  sideTheme: 'theme-dark',
+  sideTheme: 'theme-light',
 
   /**
    * 是否系统布局配置
@@ -17,7 +17,7 @@ module.exports = {
   /**
    * 是否显示 tagsView
    */
-  tagsView: true,
+  tagsView: false,
 
   /**
    * 是否固定头部

+ 2 - 2
src/store/modules/settings.js

@@ -5,14 +5,14 @@ const { sideTheme, showSettings, topNav, tagsView, fixedHeader, sidebarLogo, dyn
 const storageSetting = JSON.parse(localStorage.getItem('layout-setting')) || ''
 const state = {
   title: '',
-  theme: storageSetting.theme || '#409EFF',
+  theme: storageSetting.theme || '#FA821F',
   sideTheme: storageSetting.sideTheme || sideTheme,
   showSettings: showSettings,
   topNav:  storageSetting.topNav === undefined ? topNav : storageSetting.topNav,
   tagsView: storageSetting.tagsView === undefined ? tagsView : storageSetting.tagsView,
   fixedHeader: storageSetting.fixedHeader === undefined ? fixedHeader : storageSetting.fixedHeader,
   sidebarLogo: storageSetting.sidebarLogo === undefined ? sidebarLogo : storageSetting.sidebarLogo,
-  dynamicTitle: storageSetting.dynamicTitle === undefined ? dynamicTitle : storageSetting.dynamicTitle
+  dynamicTitle: storageSetting.dynamicTitle === undefined ? dynamicTitle : storageSetting.dynamicTitle,
 }
 const mutations = {
   CHANGE_SETTING: (state, { key, value }) => {

+ 21 - 29
src/views/index.vue

@@ -1,17 +1,26 @@
 <template>
-  <div id="index">
-    <p class="TopSystem">
-      {{ user.userName }},欢迎您使用本系统<span style="margin-left: 20px"
-        >本次登录的时间:{{ changeDateTime(user.loginDate) }}</span
-      >
-      <span style="margin-left: 14px"
-        >您上次登录的时间:{{ changeDateTime(user.preLoginDate) }}</span
-      >
-    </p>
+  <div>
+    <el-row :gutter="20">
+      <el-col :span="9">
+        <div class="grid-content bg-purple">
+          <container title="扫描">
+            <!-- <template v-slot:header>
+              <h1>v-slot需要放置在template中</h1>
+            </template> -->
+            <h1>123</h1>
+          </container>
+          <container title="扫描" style="margin-top: 16px"></container>
+        </div>
+      </el-col>
+      <el-col :span="15">
+        <div class="grid-content bg-purple">
+          <container title="扫描"></container>
+        </div>
+      </el-col>
+    </el-row>
   </div>
 </template>
 <script>
-import { getInfo } from "@/api/login";
 export default {
   name: "Index",
   data() {
@@ -19,25 +28,8 @@ export default {
       user: {},
     };
   },
-  computed: {
-    changeDateTime: function () {
-      return function (date) {
-        if (date) {
-          let da = this.$methodsTools.onlyForma(
-            new Date(date).getTime() / 1000
-          );
-          return da;
-        } else {
-          return "没有记录";
-        }
-      };
-    },
-  },
-  created() {
-    getInfo().then((res) => {
-      this.user = res.data.user;
-    });
-  },
+  computed: {},
+  created() {},
   methods: {},
 };
 </script>

+ 11 - 0
src/views/login.vue

@@ -1,6 +1,7 @@
 <template>
   <div class="login">
     <div class="login_Left">
+      <h2 class="topName">会员卡核销系统</h2>
       <div class="anima1"></div>
       <div class="anima2"></div>
       <div class="anima3"></div>
@@ -200,6 +201,16 @@ export default {
     background: url("../assets/images/left@2x.png") no-repeat center;
     background-size: contain;
     overflow: hidden;
+    .topName {
+      user-select: none;
+      cursor: unset;
+      text-shadow: 0px 0px 3px rgba(41, 115, 255, 0.7);
+      position: absolute;
+      color: rgb(41, 115, 255);
+      top: 50px;
+      left: 150px;
+      font-size: 32px;
+    }
     .anima1 {
       position: fixed;
       top: 343px;

+ 27 - 14
src/views/systemSettings/menu/index.vue

@@ -154,7 +154,11 @@
             <el-form-item label="菜单类型" prop="menuType">
               <el-radio-group v-model="form.menuType">
                 <el-radio label="M">目录</el-radio>
-                <el-radio label="C" :disabled="form.menuType == 'M' && form.children.length > 0">菜单</el-radio>
+                <el-radio
+                  label="C"
+                  :disabled="form.menuType == 'M' && form.children.length > 0"
+                  >菜单</el-radio
+                >
                 <el-radio label="F">按钮</el-radio>
               </el-radio-group>
             </el-form-item>
@@ -308,10 +312,10 @@ export default {
         menuName: undefined,
         visible: undefined,
       },
-      showListMenu:[],
+      showListMenu: [],
       // 表单参数
       form: {
-        children : []
+        children: [],
       },
       // 表单校验
       rules: {
@@ -348,7 +352,7 @@ export default {
       this.loading = true;
       this.$api.getsystemmenu(this.queryParams).then((response) => {
         this.menuList = this.handleTree(response.data, "menuId");
-        this.showListMenu = response.data
+        this.showListMenu = response.data;
         this.loading = false;
       });
     },
@@ -377,9 +381,9 @@ export default {
     // },
     /** 查询菜单下拉树结构 */
     getTreeselect() {
-      this.$api.getsystemmenu().then(response => {
+      this.$api.getsystemmenu().then((response) => {
         this.menuOptions = [];
-        const menu = { menuId: 0, menuName: '主类目', children: [] };
+        const menu = { menuId: 0, menuName: "主类目", children: [] };
         menu.children = this.handleTree(response.data, "menuId");
         this.menuOptions.push(menu);
       });
@@ -389,7 +393,11 @@ export default {
       if (row.menuType == "F") {
         return "";
       }
-      console.log("this.visibleOptions, row.visible",this.visibleOptions, row.visible)
+      console.log(
+        "this.visibleOptions, row.visible",
+        this.visibleOptions,
+        row.visible
+      );
       return this.selectDictLabel(this.visibleOptions, row.visible);
     },
     // 菜单状态字典翻译
@@ -407,7 +415,7 @@ export default {
     // 表单重置
     reset() {
       this.form = {
-        children:[],
+        children: [],
         menuId: undefined,
         parentId: 0,
         menuName: undefined,
@@ -434,7 +442,7 @@ export default {
     handleAdd(row) {
       this.reset();
       this.getTreeselect();
-      if (row != null && row.menuId && row.menuType === 'M') {
+      if (row != null && row.menuId && row.menuType === "M") {
         this.form.parentId = row.menuId;
       } else {
         this.form.parentId = 0;
@@ -444,14 +452,14 @@ export default {
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
-      var self = this
+      var self = this;
       this.reset();
       this.getTreeselect();
       this.$api.enutreeselectmenu(row.menuId).then((response) => {
-        var children = self.showListMenu.filter(item => {
-          return item.parentId === response.data.menuId
-        })
-        response.data.children = children
+        var children = self.showListMenu.filter((item) => {
+          return item.parentId === response.data.menuId;
+        });
+        response.data.children = children;
         self.form = response.data;
         self.open = true;
         self.title = "修改菜单";
@@ -503,3 +511,8 @@ export default {
   },
 };
 </script>
+<style lang="scss" scoped>
+.app-container {
+  background: #ffffff;
+}
+</style>

+ 1 - 1
vue.config.js

@@ -5,7 +5,7 @@ function resolve(dir) {
   return path.join(__dirname, dir)
 }
 
-const name = process.env.VUE_APP_TITLE || '中正云教育管理后台' // 网页标题
+const name = process.env.VUE_APP_TITLE || '会员卡核销系统' // 网页标题
 
 const port = process.env.port || process.env.npm_config_port || 80 // 端口