QuKatie 3 vuotta sitten
vanhempi
commit
1d9b5653e8

+ 17 - 0
public/cdn/iconfont/style.css

@@ -0,0 +1,17 @@
+@font-face {
+  font-family: 'tradingIcon';  /* Project id 2994634 */
+  src: url('//at.alicdn.com/t/font_2994634_v80nwzwohze.woff2?t=1638864636077') format('woff2'),
+  url('//at.alicdn.com/t/font_2994634_v80nwzwohze.woff?t=1638864636077') format('woff'),
+  url('//at.alicdn.com/t/font_2994634_v80nwzwohze.ttf?t=1638864636077') format('truetype');
+}
+.tradingIcon {
+  font-family: "tradingIcon" !important;
+  font-size: 20px;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+.icon-more:before {
+  content: "\e679";
+}

+ 1 - 0
public/index.html

@@ -15,6 +15,7 @@
   <link rel="stylesheet" href="<%= BASE_URL %>cdn/iconfont/index.css">
   <link rel="stylesheet" href="<%= BASE_URL %>cdn/iconfont/avue/iconfont.css">
   <link rel="stylesheet" href="<%= BASE_URL %>cdn/iconfont/saber/iconfont.css">
+  <link rel="stylesheet" href="<%= BASE_URL %>cdn/iconfont/style.css">
   <link rel="stylesheet" href="<%= BASE_URL %>cdn/avue/2.8.18/index.css">
   <script src="<%= BASE_URL %>cdn/xlsx/FileSaver.min.js"></script>
   <script src="<%= BASE_URL %>cdn/xlsx/xlsx.full.min.js"></script>

+ 2 - 2
src/components/basic-container/main.vue

@@ -37,7 +37,7 @@ export default {
 
 <style lang="scss">
 .basic-container {
-  padding: 10px 6px;
+  padding: 5px 6px;
   box-sizing: border-box;
   &--block {
     height: 100%;
@@ -49,7 +49,7 @@ export default {
     width: 100%;
   }
   &:first-child {
-    padding-top: 0;
+    padding-top: 6px;
   }
 }
 </style>

+ 5 - 5
src/components/titleComponent/main.vue

@@ -18,10 +18,10 @@ export default {
   .container {
     display: flex;
     justify-content: left;
-    margin-left: 30px;
+    margin-left: 10px;
     background-color: inherit;
     height: 22px;
-    padding-bottom: 12px;
+    // padding-bottom: 12px;
     vertical-align: middle;
     .redcolumn{
       width: 4px;
@@ -37,7 +37,7 @@ export default {
       color: #323233;
     }
   }
-  .container:first-child {
-    padding-top: 16px;
-  }
+  // .container:first-child {
+  //   padding-top: 16px;
+  // }
 </style>

+ 5 - 4
src/page/index/index.vue

@@ -1,8 +1,9 @@
 <template>
-  <div class="avue-contail" :class="{'avue--collapse':isCollapse}">
+  <div class="avue-contail">
     <div class="avue-header">
       <!-- 顶部导航栏 -->
-      <top ref="top"/>
+      <!-- <top ref="top"/> -->
+       <tags/>
     </div>
     <div class="avue-layout">
       <div class="avue-left">
@@ -11,7 +12,7 @@
       </div>
       <div class="avue-main">
         <!-- 顶部标签卡 -->
-        <tags/>
+       
         <transition name="fade-scale">
           <search class="avue-view" v-show="isSearch"></search>
         </transition>
@@ -73,7 +74,7 @@
     props: [],
     methods: {
       showCollapse() {
-        this.$store.commit("SET_COLLAPSE");
+        // this.$store.commit("SET_COLLAPSE");
       },
       // 初始化
       init() {

+ 1 - 1
src/page/index/logo.vue

@@ -46,7 +46,7 @@ export default {
   position: fixed;
   top: 0;
   left: 0;
-  width: 240px;
+  width: 180px;
   height: 64px;
   line-height: 64px;
   background-color: #20222a;

+ 3 - 3
src/page/index/sidebar/sidebarItem.vue

@@ -14,7 +14,7 @@
                   :index="item[pathKey]"
                   :key="item[labelKey]">
         <template slot="title">
-          <i :class="item[iconKey]"></i>
+          <i v-if="item[iconKey]" :class="item[iconKey]"></i>
           <span slot="title"
                 :class="{'el-menu--display':collapse && first}">{{generateTitle(item)}}</span>
         </template>
@@ -24,7 +24,7 @@
                         :class="{'is-active':vaildActive(child)}"
                         v-if="validatenull(child[childrenKey])"
                         :key="child[labelKey]">
-            <i :class="child[iconKey]"></i>
+            <!-- <i :class="child[iconKey]"></i> -->
             <span slot="title">{{generateTitle(child)}}</span>
           </el-menu-item>
           <sidebar-item v-else
@@ -140,7 +140,7 @@
           });
         }
       }
-    }
+    },
   };
 </script>
 

+ 146 - 21
src/page/index/tags.vue

@@ -36,34 +36,132 @@
         >
         </el-tab-pane>
       </el-tabs>
-      <el-dropdown class="avue-tags__menu">
-        <el-button type="primary" size="mini">
+      <div class="avue-tags__menu avue-tags-top-foot">
+        <el-tooltip
+          v-if="showColor"
+          effect="dark"
+          :content="$t('navbar.color')"
+          placement="bottom"
+        >
+          <top-color></top-color>
+        </el-tooltip>
+        <el-tooltip
+          v-if="showDebug"
+          effect="dark"
+          :content="logsFlag ? $t('navbar.bug') : logsLen + $t('navbar.bugs')"
+          placement="bottom"
+          style="margin-right:14px"
+        >
+          <top-logs></top-logs>
+        </el-tooltip>
+        <el-tooltip
+          v-if="showLock"
+          effect="dark"
+          :content="$t('navbar.lock')"
+          placement="bottom"
+        >
+          <top-lock></top-lock>
+        </el-tooltip>
+        <el-tooltip
+          v-if="showTheme"
+          effect="dark"
+          :content="$t('navbar.theme')"
+          placement="bottom"
+        >
+          <div class="top-bar__item--show">
+            <top-theme></top-theme>
+          </div>
+        </el-tooltip>
+        <el-tooltip
+          effect="dark"
+          :content="$t('navbar.language')"
+          placement="bottom"
+        >
+          <div class="top-bar__item--show">
+            <top-lang></top-lang>
+          </div>
+        </el-tooltip>
+        <el-tooltip
+          v-if="showFullScren"
+          effect="dark"
+          :content="
+            isFullScren ? $t('navbar.screenfullF') : $t('navbar.screenfull')
+          "
+          placement="bottom"
+        >
+          <div>
+            <i
+              :class="isFullScren ? 'icon-tuichuquanping' : 'icon-quanping'"
+              @click="handleScreen"
+            ></i>
+          </div>
+        </el-tooltip>
+        <el-dropdown>
+          <div class="avue-tags-more">
+            <span style="margin-right:2px">{{ $t("tagsView.menu") }}</span
+            ><i class="tradingIcon icon-more"></i>
+            <!-- <el-button size="mini" icon="el-icon-more" circle></el-button> -->
+          </div>
+          <!-- <el-button type="primary" size="mini">
           {{ $t("tagsView.menu") }}
           <i class="el-icon-arrow-down el-icon--right"></i>
-        </el-button>
-        <el-dropdown-menu slot="dropdown">
-          <el-dropdown-item @click.native="$parent.isSearch = true">{{
-            $t("tagsView.search")
-          }}</el-dropdown-item>
-          <el-dropdown-item @click.native="closeOthersTags">{{
-            $t("tagsView.closeOthers")
-          }}</el-dropdown-item>
-          <el-dropdown-item @click.native="closeAllTags">{{
-            $t("tagsView.closeAll")
-          }}</el-dropdown-item>
-          <el-dropdown-item @click.native="clearCacheTags">{{
-            $t("tagsView.clearCache")
-          }}</el-dropdown-item>
-        </el-dropdown-menu>
-      </el-dropdown>
+        </el-button> -->
+          <el-dropdown-menu slot="dropdown">
+            <el-dropdown-item @click.native="$parent.isSearch = true">{{
+              $t("tagsView.search")
+            }}</el-dropdown-item>
+            <el-dropdown-item @click.native="closeOthersTags">{{
+              $t("tagsView.closeOthers")
+            }}</el-dropdown-item>
+            <el-dropdown-item @click.native="closeAllTags">{{
+              $t("tagsView.closeAll")
+            }}</el-dropdown-item>
+            <el-dropdown-item @click.native="clearCacheTags">{{
+              $t("tagsView.clearCache")
+            }}</el-dropdown-item>
+          </el-dropdown-menu>
+        </el-dropdown>
+        <el-dropdown>
+          <span class="el-dropdown-link">
+             <img class="top-bar__img" :src="userInfo.avatar"  style="margin-left:8px"/>
+            <i class="el-icon-arrow-down el-icon--right"></i>
+          </span>
+          <el-dropdown-menu slot="dropdown">
+            <el-dropdown-item>
+              <router-link to="/">{{ $t("navbar.dashboard") }}</router-link>
+            </el-dropdown-item>
+            <el-dropdown-item>
+              <router-link to="/info/index">{{
+                $t("navbar.userinfo")
+              }}</router-link>
+            </el-dropdown-item>
+            <el-dropdown-item @click.native="logout" divided
+              >{{ $t("navbar.logOut") }}
+            </el-dropdown-item>
+          </el-dropdown-menu>
+        </el-dropdown>
+      </div>
     </div>
   </div>
 </template>
 <script>
+import { resetRouter } from "@/router/router";
+import { fullscreenToggel, listenfullscreen } from "@/util/util";
 import { mapGetters, mapState } from "vuex";
 import { clearCache } from "@/api/user";
-
+import topColor from "./top/top-color.vue";
+import topLock from "./top/top-lock";
+import topTheme from "./top/top-theme";
+import topLogs from "./top/top-logs";
+import topLang from "./top/top-lang";
 export default {
+  components: {
+    topColor,
+    topLogs,
+    topLock,
+    topTheme,
+    topLang
+  },
   name: "tags",
   data() {
     return {
@@ -88,15 +186,42 @@ export default {
     }
   },
   computed: {
-    ...mapGetters(["tagWel", "tagList", "tag", "website"]),
+    ...mapGetters([
+      "tagWel",
+      "tagList",
+      "tag",
+      "website",
+      "isFullScren",
+      "userInfo"
+    ]),
     ...mapState({
-      showTag: state => state.common.showTag
+      showTag: state => state.common.showTag,
+      showDebug: state => state.common.showDebug,
+      showColor: state => state.common.showColor,
+      showTheme: state => state.common.showTheme,
+      showLock: state => state.common.showLock,
+      showFullScren: state => state.common.showFullScren
     }),
     tagLen() {
       return this.tagList.length || 0;
     }
   },
   methods: {
+    logout() {
+      this.$confirm(this.$t("logoutTip"), this.$t("tip"), {
+        confirmButtonText: this.$t("submitText"),
+        cancelButtonText: this.$t("cancelText"),
+        type: "warning"
+      }).then(() => {
+        this.$store.dispatch("LogOut").then(() => {
+          resetRouter();
+          this.$router.push({ path: "/login" });
+        });
+      });
+    },
+    handleScreen() {
+      fullscreenToggel();
+    },
     generateTitle(item) {
       return this.$router.$avueRouter.generateTitle(
         item.label,

+ 1 - 1
src/page/index/top/index.vue

@@ -136,7 +136,7 @@
         showTheme: state => state.common.showTheme,
         showLock: state => state.common.showLock,
         showFullScren: state => state.common.showFullScren,
-        showCollapse: state => state.common.showCollapse,
+        // showCollapse: state => state.common.showCollapse,
         showSearch: state => state.common.showSearch,
         showMenu: state => state.common.showMenu,
         showColor: state => state.common.showColor

+ 0 - 1
src/page/index/top/top-color.vue

@@ -1,6 +1,5 @@
 <template>
   <el-color-picker size="mini"
-                   style="padding-top:18px;"
                    class="theme-picker"
                    popper-class="theme-picker-dropdown"
                    v-model="themeVal"></el-color-picker>

+ 1 - 1
src/page/index/top/top-logs.vue

@@ -1,7 +1,7 @@
 <template>
   <span @click="logsFlag?'':handleOpen()">
     <el-badge :value="logsFlag?'':logsLen"
-              :max="99">
+              :max="99" class="logs">
       <i class="icon-rizhi1"></i>
     </el-badge>
     <el-dialog title="日志"

+ 122 - 31
src/store/modules/user.js

@@ -1,11 +1,36 @@
-import {setToken, setRefreshToken, removeToken, removeRefreshToken} from '@/util/auth'
-import {Message} from 'element-ui'
-import {setStore, getStore} from '@/util/store'
-import {isURL, validatenull} from '@/util/validate'
-import {deepClone} from '@/util/util'
+import {
+  setToken,
+  setRefreshToken,
+  removeToken,
+  removeRefreshToken
+} from '@/util/auth'
+import {
+  Message
+} from 'element-ui'
+import {
+  setStore,
+  getStore
+} from '@/util/store'
+import {
+  isURL,
+  validatenull
+} from '@/util/validate'
+import {
+  deepClone
+} from '@/util/util'
 import website from '@/config/website'
-import {loginByUsername, loginBySocial, getUserInfo, logout, refreshToken, getButtons} from '@/api/user'
-import {getTopMenu, getRoutes} from '@/api/system/menu'
+import {
+  loginByUsername,
+  loginBySocial,
+  getUserInfo,
+  logout,
+  refreshToken,
+  getButtons
+} from '@/api/user'
+import {
+  getTopMenu,
+  getRoutes
+} from '@/api/system/menu'
 import md5 from 'js-md5'
 
 
@@ -34,19 +59,35 @@ function addPath(ele, first) {
 
 const user = {
   state: {
-    tenantId: getStore({name: 'tenantId'}) || '',
-    userInfo: getStore({name: 'userInfo'}) || [],
-    permission: getStore({name: 'permission'}) || {},
+    tenantId: getStore({
+      name: 'tenantId'
+    }) || '',
+    userInfo: getStore({
+      name: 'userInfo'
+    }) || [],
+    permission: getStore({
+      name: 'permission'
+    }) || {},
     roles: [],
     menuId: {},
-    menu: getStore({name: 'menu'}) || [],
-    menuAll: getStore({name: 'menuAll'}) || [],
-    token: getStore({name: 'token'}) || '',
-    refreshToken: getStore({name: 'refreshToken'}) || '',
+    menu: getStore({
+      name: 'menu'
+    }) || [],
+    menuAll: getStore({
+      name: 'menuAll'
+    }) || [],
+    token: getStore({
+      name: 'token'
+    }) || '',
+    refreshToken: getStore({
+      name: 'refreshToken'
+    }) || '',
   },
   actions: {
     //根据用户名登录
-    LoginByUsername({commit}, userInfo) {
+    LoginByUsername({
+      commit
+    }, userInfo) {
       return new Promise((resolve, reject) => {
         loginByUsername(userInfo.tenantId, userInfo.deptId, userInfo.roleId, userInfo.username, md5(userInfo.password), userInfo.type, userInfo.key, userInfo.code).then(res => {
           const data = res.data;
@@ -70,7 +111,9 @@ const user = {
       })
     },
     //根据手机号登录
-    LoginByPhone({commit}, userInfo) {
+    LoginByPhone({
+      commit
+    }, userInfo) {
       return new Promise((resolve) => {
         loginByUsername(userInfo.phone, userInfo.code).then(res => {
           const data = res.data.data;
@@ -82,7 +125,9 @@ const user = {
       })
     },
     //根据第三方信息登录
-    LoginBySocial({commit}, userInfo) {
+    LoginBySocial({
+      commit
+    }, userInfo) {
       return new Promise((resolve) => {
         loginBySocial(userInfo.tenantId, userInfo.source, userInfo.code, userInfo.state).then(res => {
           const data = res.data;
@@ -103,7 +148,9 @@ const user = {
       })
     },
     //获取用户信息
-    GetUserInfo({commit}) {
+    GetUserInfo({
+      commit
+    }) {
       return new Promise((resolve, reject) => {
         getUserInfo().then((res) => {
           const data = res.data.data;
@@ -115,7 +162,10 @@ const user = {
       })
     },
     //刷新token
-    refreshToken({state, commit}) {
+    refreshToken({
+      state,
+      commit
+    }) {
       window.console.log('handle refresh token')
       return new Promise((resolve, reject) => {
         refreshToken(state.refreshToken, state.tenantId).then(res => {
@@ -129,7 +179,9 @@ const user = {
       })
     },
     // 登出
-    LogOut({commit}) {
+    LogOut({
+      commit
+    }) {
       return new Promise((resolve, reject) => {
         logout().then(() => {
           commit('SET_TOKEN', '');
@@ -148,7 +200,9 @@ const user = {
       })
     },
     //注销session
-    FedLogOut({commit}) {
+    FedLogOut({
+      commit
+    }) {
       return new Promise(resolve => {
         commit('SET_TOKEN', '');
         commit('SET_MENU_ALL_NULL', []);
@@ -172,7 +226,10 @@ const user = {
       })
     },
     //获取系统菜单
-    GetMenu({commit, dispatch}, topMenuId) {
+    GetMenu({
+      commit,
+      dispatch
+    }, topMenuId) {
       return new Promise(resolve => {
         getRoutes(topMenuId).then((res) => {
           const data = res.data.data
@@ -188,7 +245,9 @@ const user = {
       })
     },
     //获取系统按钮
-    GetButtons({commit}) {
+    GetButtons({
+      commit
+    }) {
       return new Promise((resolve) => {
         getButtons().then(res => {
           const data = res.data.data;
@@ -202,7 +261,10 @@ const user = {
     SET_TOKEN: (state, token) => {
       setToken(token);
       state.token = token;
-      setStore({name: 'token', content: state.token})
+      setStore({
+        name: 'token',
+        content: state.token
+      })
     },
     SET_MENU_ID(state, menuId) {
       state.menuId = menuId;
@@ -210,36 +272,62 @@ const user = {
     SET_MENU_ALL: (state, menuAll) => {
       let menu = state.menuAll;
       menuAll.forEach(ele => {
+        ele.children.forEach(i=>{
+          delete i.source
+        })
         if (!menu.find(item => item.label === ele.label && item.path === ele.path)) {
           menu.push(ele);
         }
       })
       state.menuAll = menu
-      setStore({ name: 'menuAll', content: state.menuAll })
+      setStore({
+        name: 'menuAll',
+        content: state.menuAll
+      })
     },
     SET_MENU_ALL_NULL: (state) => {
       state.menuAll = []
-      setStore({ name: 'menuAll', content: state.menuAll })
+      setStore({
+        name: 'menuAll',
+        content: state.menuAll
+      })
     },
     SET_MENU: (state, menu) => {
+      // menu.forEach(ele => {
+      //   ele.chiildren.forEach(i=>{
+      //     delete i.source
+      //   })
+      // })
       state.menu = menu
-      setStore({ name: 'menu', content: state.menu })
+      setStore({
+        name: 'menu',
+        content: state.menu
+      })
     },
     SET_REFRESH_TOKEN: (state, refreshToken) => {
       setRefreshToken(refreshToken)
       state.refreshToken = refreshToken;
-      setStore({name: 'refreshToken', content: state.refreshToken})
+      setStore({
+        name: 'refreshToken',
+        content: state.refreshToken
+      })
     },
     SET_TENANT_ID: (state, tenantId) => {
       state.tenantId = tenantId;
-      setStore({name: 'tenantId', content: state.tenantId})
+      setStore({
+        name: 'tenantId',
+        content: state.tenantId
+      })
     },
     SET_USER_INFO: (state, userInfo) => {
       if (validatenull(userInfo.avatar)) {
         userInfo.avatar = "/img/bg/img-logo.png";
       }
       state.userInfo = userInfo;
-      setStore({name: 'userInfo', content: state.userInfo})
+      setStore({
+        name: 'userInfo',
+        content: state.userInfo
+      })
     },
     SET_ROLES: (state, roles) => {
       state.roles = roles;
@@ -266,7 +354,10 @@ const user = {
       result.forEach(ele => {
         state.permission[ele] = true;
       });
-      setStore({name: 'permission', content: state.permission})
+      setStore({
+        name: 'permission',
+        content: state.permission
+      })
     }
   }
 

+ 2 - 2
src/styles/element-ui.scss

@@ -62,9 +62,9 @@
   padding: 6px 18px !important;
 }
 
-.el-card__body {
+// .el-card__body {
   //padding: 16px !important;
-}
+// }
 
 .el-divider--horizontal {
   margin: 12px 0 !important;

+ 8 - 9
src/styles/media.scss

@@ -21,7 +21,7 @@
   position: fixed;
   left: 0;
   top: 0;
-  width: 240px;
+  width: 180px;
   height: 100%;
   z-index: 1025;
 }
@@ -43,7 +43,7 @@
 }
 
 .avue-header {
-  padding-left: 240px;
+  padding-left: 180px;
   width: 100%;
   background-color: #fff;
   box-sizing: border-box;
@@ -51,11 +51,11 @@
 
 .avue-main {
   position: absolute;
-  left: 240px;
+  left: 180px;
   padding: 0;
-  padding-bottom: 20px;
-  width: calc(100% - 240px);
-  height: calc(100% - 64px);
+  // padding-bottom: 20px;
+  width: calc(100% - 180px);
+  height: calc(100% - 40px);
   box-sizing: border-box;
   overflow: hidden;
   transition: all 0.5s;
@@ -69,7 +69,6 @@
 }
 
 .avue-view {
-  padding: 0 10px !important;
   width: 100%;
   box-sizing: border-box;
 }
@@ -111,7 +110,7 @@
 }
 
 @media screen and (max-width: 992px) {
-  $width: 240px;
+  $width: 180px;
   // ele的自适应
   .el-dialog,
   .el-message-box {
@@ -153,7 +152,7 @@
   }
   .avue-header {
     margin-bottom: 15px;
-    padding-left: 15px;
+    padding-left: 0px;
   }
   .top-bar__item {
     display: none;

+ 18 - 2
src/styles/tags.scss

@@ -4,7 +4,7 @@
     user-select: none; 
     position: relative;
     padding: 0 10px;
-    margin-bottom: 10px;
+    // margin-bottom: 10px;
     box-sizing: border-box;
     overflow: hidden;
     border-top: 1px solid #f6f6f6;
@@ -43,7 +43,7 @@
     &__box {
         position: relative;
         box-sizing: border-box;
-        padding-right: 106px;
+        padding-right: 300px;
         width: 100%;
         &--close {
             .el-tabs__item {
@@ -89,4 +89,20 @@
         padding: 1px 0 0 15px;
         box-sizing: border-box;
     }
+    .avue-tags-more{
+        font-size: 12px;
+        height: 34px;
+        line-height:34px;
+        display: flex;
+        align-items: center;
+      }
+      .avue-tags-top-foot{
+        height: 34px;
+        display: flex;
+        align-items: center;
+        .el-tooltip{
+          margin-right: 10px;
+          color: #606266;
+        }
+      }
 }

+ 4 - 4
src/styles/top.scss

@@ -51,10 +51,10 @@ $height:64px;
 }
 
 .top-bar__img {
-    margin: 0 8px 0 5px;
+    margin: 0 2px 0 5px;
     padding: 2px;
-    width: 30px;
-    height: 30px;
+    width: 28px;
+    height: 28px;
     border-radius: 100%;
     box-sizing: border-box;
     border: 1px solid #eee;
@@ -65,7 +65,7 @@ $height:64px;
 .top-bar__right {
     height: $height;
     position: absolute;
-    top: 0;
+    top: 4px;
     i{
         line-height: $height;
     }

+ 42 - 0
src/styles/variables.scss

@@ -8,4 +8,46 @@ $mainBg: #409eff;
 }
 p{
   margin: 0 !important;
+}
+.el-submenu__icon-arrow {
+  right: 10px;
+}
+.el-menu-item, .el-submenu__title{
+  height: 40px;
+  line-height:40px;
+}
+.el-submenu .el-menu-item {
+  min-width: 180px;
+  height: 35px;
+  line-height:35px;
+}
+.customer-head {
+  position: fixed;
+  top: 40px;
+  width: 100%;
+  height: 45px;
+  background: #ffffff;
+  box-shadow:4px 4px 10px rgba(232, 232, 235, 1);
+  z-index: 999;
+}
+.customer-back {
+  cursor: pointer;
+  line-height: 45px;
+  font-size: 16px;
+  color: #323233;
+  font-weight: 400;
+}
+.back-icon {
+  line-height: 45px;
+  font-size: 20px;
+  margin-right: 8px;
+}
+.add-customer-btn {
+  position: fixed;
+  right: 20px;
+  top: 46.5px;
+}
+.customer-main{
+  margin-top: 55px;
+  margin-bottom:35px
 }

+ 5 - 44
src/views/exportTrade/customerInquiry/detailsPage.vue

@@ -2,7 +2,6 @@
   <div class="borderless" v-loading="pageLoading">
     <div class="customer-head">
       <div class="customer-back">
-        <!--        <i class="back-icon el-icon-arrow-left"></i><i style="font-style:normal">返回管理列表</i>-->
         <el-button
           type="danger"
           style="border: none;background: none;color: red"
@@ -12,8 +11,8 @@
         </el-button>
       </div>
       <div class="add-customer-btn" v-if="showBut">
-        <el-button type="info" @click="saveSell">生成销售单</el-button>
-        <el-button type="success" disabled>
+        <el-button type="info" @click="saveSell" size="small">生成销售单</el-button>
+        <el-button type="success" disabled size="small">
           复制新单
         </el-button>
         <el-button
@@ -22,13 +21,14 @@
           @click="editCustomer"
           :loading="subLoading"
           v-if="detailData.status != 1"
+          size="small"
           >{{ form.id ? "确认修改" : "确认新增" }}
         </el-button>
       </div>
     </div>
-    <div style="margin-top: 60px;margin-bottom:35px">
+    <div class="customer-main">
       <containerTitle title="基础信息"></containerTitle>
-      <basic-container style="margin-bottom: 10px">
+      <basic-container>
         <avue-form ref="form" v-model="form" :option="option">
           <template slot="portOfLoad">
             <port-info
@@ -1331,46 +1331,7 @@ export default {
 </script>
 
 <style lang="scss" scoped>
-.customer-head {
-  position: fixed;
-  top: 105px;
-  width: 100%;
-  margin-left: -10px;
-  height: 62px;
-  background: #ffffff;
-  box-shadow: 0 4px 12px 0px rgba(232, 232, 235, 1);
-  z-index: 999;
-}
 
-.customer-back {
-  cursor: pointer;
-  line-height: 62px;
-  font-size: 16px;
-  color: #323233;
-  font-weight: 400;
-}
-
-.back-icon {
-  line-height: 64px;
-  font-size: 20px;
-  margin-right: 8px;
-}
-.sell-customer-btn {
-  position: fixed;
-  right: 244px;
-  top: 115px;
-}
-.copy-customer-btn {
-  position: fixed;
-  right: 140px;
-  top: 115px;
-}
-
-.add-customer-btn {
-  position: fixed;
-  right: 36px;
-  top: 115px;
-}
 ::v-deep .el-form-item {
   margin-bottom: 8px;
 }

+ 0 - 10
src/views/exportTrade/invoice/detailsPage.vue

@@ -930,16 +930,6 @@ export default {
   font-size: 20px;
   margin-right: 8px;
 }
-.receipt-customer-btn {
-  position: fixed;
-  right: 244px;
-  top: 115px;
-}
-.copy-customer-btn {
-  position: fixed;
-  right: 140px;
-  top: 115px;
-}
 .add-customer-btn {
   position: fixed;
   right: 36px;