lilei 3 سال پیش
والد
کامیت
41f996382e

+ 7 - 5
src/api/data.js

@@ -106,11 +106,13 @@ function randomStr (len) {
 
 // 查询省/市/区
 export const getArea = (params) => {
-  return axios({
-    url: `/area/queryList`,
-    data: params,
-    method: 'post'
-  })
+  if(params.type == '2' || params.parentId){
+    return axios({
+      url: `/area/queryList`,
+      data: params,
+      method: 'post'
+    })
+  }
 }
 
 // 首页 导航指引合计

+ 37 - 2
src/components/global.less

@@ -1,19 +1,54 @@
 @import './index.less';
 
 body {
-
   &.colorWeak {
     filter: invert(80%);
   }
   &.userLayout {
     overflow: auto;
   }
+  &.small{
+    .ant-form,.ant-form label,.ant-form-item,.ant-card,.ant-table,.ant-btn-sm,.ant-btn,.ant-btn-primary.button-error,
+    .ant-alert,.ant-collapse,.ant-descriptions-item-label,.ant-descriptions-item-content,.ant-checkbox-wrapper,.ant-radio-wrapper,
+    .table-page-search-wrapper .ant-form.ant-form-inline .ant-form-item .ant-input, .table-page-search-wrapper .ant-form.ant-form-inline .ant-form-item .ant-select-selection,
+    .ant-cascader-menus,.ant-select-dropdown,.ant-select-dropdown-menu-item,.ant-collapse,.ant-page-header-heading-sub-title,.ant-input-affix-wrapper,.ant-input,.ant-select,
+    .ant-menu-vertical .ant-menu-item, .ant-menu-vertical-left .ant-menu-item, .ant-menu-vertical-right .ant-menu-item, .ant-menu-inline .ant-menu-item, .ant-menu-vertical .ant-menu-submenu-title, 
+    .ant-menu-vertical-left .ant-menu-submenu-title, .ant-menu-vertical-right .ant-menu-submenu-title, .ant-menu-inline .ant-menu-submenu-title,.ant-tabs-nav-container,
+    .ant-badge,.layout.ant-layout .header .user-wrapper .action, .layout.ant-layout .top-nav-header-index .user-wrapper .action,.ant-dropdown,.ant-dropdown-menu-item, .ant-dropdown-menu-submenu-title,
+    .content-box,.ant-modal-body,.ant-modal-confirm-body .ant-modal-confirm-title,.ant-modal-confirm-body .ant-modal-confirm-content,.ant-modal-title,.ant-cascader-picker{
+      font-size: 12px!important;
+    }
+  }
+  &.middle{
+    .ant-form,.ant-form label,.ant-form-item,.ant-card,.ant-table,.ant-btn-sm,.ant-btn,.ant-btn-primary.button-error,
+    .ant-alert,.ant-collapse,.ant-descriptions-item-label,.ant-descriptions-item-content,.ant-checkbox-wrapper,.ant-radio-wrapper,
+    .table-page-search-wrapper .ant-form.ant-form-inline .ant-form-item .ant-input, .table-page-search-wrapper .ant-form.ant-form-inline .ant-form-item .ant-select-selection,
+    .ant-cascader-menus,.ant-select-dropdown,.ant-select-dropdown-menu-item,.ant-collapse,.ant-page-header-heading-sub-title,.ant-input-affix-wrapper,.ant-input,.ant-select,
+    .ant-menu-vertical .ant-menu-item, .ant-menu-vertical-left .ant-menu-item, .ant-menu-vertical-right .ant-menu-item, .ant-menu-inline .ant-menu-item, .ant-menu-vertical .ant-menu-submenu-title, 
+    .ant-menu-vertical-left .ant-menu-submenu-title, .ant-menu-vertical-right .ant-menu-submenu-title, .ant-menu-inline .ant-menu-submenu-title,.ant-tabs-nav-container,
+    .ant-badge,.layout.ant-layout .header .user-wrapper .action, .layout.ant-layout .top-nav-header-index .user-wrapper .action,.ant-dropdown,.ant-dropdown-menu-item, .ant-dropdown-menu-submenu-title,
+    .content-box,.ant-modal-body,.ant-modal-confirm-body .ant-modal-confirm-title,.ant-modal-confirm-body .ant-modal-confirm-content,.ant-modal-title,.ant-modal-close-x,.ant-cascader-picker{
+      font-size: 14px!important;
+    }
+  }
+  &.large{
+    .ant-form,.ant-form label,.ant-form-item,.ant-card,.ant-table,.ant-btn-sm,.ant-btn,.ant-btn-primary.button-error,
+    .ant-alert,.ant-collapse,.ant-descriptions-item-label,.ant-descriptions-item-content,.ant-checkbox-wrapper,.ant-radio-wrapper,
+    .table-page-search-wrapper .ant-form.ant-form-inline .ant-form-item .ant-input, .table-page-search-wrapper .ant-form.ant-form-inline .ant-form-item .ant-select-selection,
+    .ant-cascader-menus,.ant-select-dropdown,.ant-select-dropdown-menu-item,.ant-collapse,.ant-page-header-heading-sub-title,.ant-input-affix-wrapper,.ant-input,.ant-select,
+    .ant-menu-vertical .ant-menu-item, .ant-menu-vertical-left .ant-menu-item, .ant-menu-vertical-right .ant-menu-item, .ant-menu-inline .ant-menu-item, .ant-menu-vertical .ant-menu-submenu-title, 
+    .ant-menu-vertical-left .ant-menu-submenu-title, .ant-menu-vertical-right .ant-menu-submenu-title, .ant-menu-inline .ant-menu-submenu-title,.ant-tabs-nav-container,
+    .ant-badge,.layout.ant-layout .header .user-wrapper .action, .layout.ant-layout .top-nav-header-index .user-wrapper .action,.ant-dropdown,.ant-dropdown-menu-item, .ant-dropdown-menu-submenu-title,
+    .content-box,.ant-modal-body,.ant-modal-confirm-body .ant-modal-confirm-title,.ant-modal-confirm-body .ant-modal-confirm-content,.ant-modal-title,.ant-modal-close-x,.ant-cascader-picker{
+      font-size: 16px!important;
+    }
+  }
 }
 
 .layout.ant-layout {
   height: auto;
   overflow-x: hidden;
-
+  
   &.mobile,
   &.tablet {
     .ant-layout-content {

+ 10 - 7
src/components/tools/UserMenu.vue

@@ -8,11 +8,11 @@
       <!-- 通知 -->
       <notice-icon class="action"/>
       <!-- 皮肤设置 -->
-      <a-popover trigger="click">
-        <div slot="content" style="width: 200px;">
+      <!-- <a-popover trigger="click">
+        <div slot="content" :style="{width: fontSize=='small'?'200px':'250px'}">
           <a-form-model :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }">
             <a-form-model-item label="主题">
-              <a-radio-group @change="changeTheme">
+              <a-radio-group :value="theme" @change="changeTheme">
                 <a-radio-button value="dark">
                   深色
                 </a-radio-button>
@@ -22,7 +22,7 @@
               </a-radio-group>
             </a-form-model-item>
             <a-form-model-item label="字体大小">
-              <a-radio-group>
+              <a-radio-group :value="fontSize" @change="changeFontSize">
                 <a-radio-button value="small">
                 </a-radio-button>
@@ -40,7 +40,7 @@
           <a-icon style="font-size: 15px; padding: 0 3px 0 0" type="skin" />
           设置
         </span>
-      </a-popover>
+      </a-popover> -->
       <a-dropdown>
         <span class="action ant-dropdown-link user-dropdown-menu">
           <!-- <a-avatar class="avatar" size="small" :src="avatar==''?defaultAvatar:avatar"/> -->
@@ -86,7 +86,7 @@ export default {
     NoticeIcon
   },
   computed: {
-    ...mapGetters(['nickname', 'avatar', 'authOrgs', 'userInfo', 'nowRoute']),
+    ...mapGetters(['nickname', 'avatar', 'authOrgs', 'userInfo', 'nowRoute', 'theme', 'fontSize']),
     authOrgsList () { //  过滤掉当前登录账户(不可由自己切换为自己)
       const _this = this
       const arr = []
@@ -175,8 +175,11 @@ export default {
     },
     // 切换主题
     changeTheme (e) {
-      console.log(e)
       this.$store.dispatch('ToggleTheme', e.target.value)
+    },
+    // 切换字体大小
+    changeFontSize (e) {
+      this.$store.dispatch('ToggleFontSize', e.target.value)
     }
   }
 }

+ 5 - 3
src/layouts/BasicLayout.vue

@@ -179,8 +179,7 @@ export default {
       if (isPurchaseReturn) {
         playerOptions.sources[0].src = 'https://jianguan-images.oss-cn-beijing.aliyuncs.com/helpvideo/4caigoutuihuo.mp4'
       }
-	  // console.log(playerOptions, 'playerOptions')
-	  return playerOptions
+	    return playerOptions
     }
   },
   watch: {
@@ -196,10 +195,13 @@ export default {
       const noqx = asyncRouterMap.find((item) => item.path === '/').children
       this.menus = [noqx.find(item => item.path === '/home')]
     }
+    // 重置主题,字体,布局
     this.collapsed = !this.sidebarOpened
     this.$store.dispatch('ToggleMultiTab', true)
 	  this.$store.dispatch('ToggleColor', '#2A86F4')
-    this.$store.dispatch('ToggleTheme', this.$ls.get('DEFAULT_THEME'))
+    console.log(localStorage.getItem('DEFAULT_THEME'), localStorage.getItem('DEFAULT_FONT_SIZE'))
+    this.$store.dispatch('ToggleTheme', localStorage.getItem('DEFAULT_THEME'))
+    this.$store.dispatch('ToggleFontSize', localStorage.getItem('DEFAULT_FONT_SIZE'))
     // 判断是否是当月25日后
     this.$store.state.app.isLastDayForMonth = moment().date() >= 25
     if (this.$store.state.app.isLastDayForMonth && this.$hasPermissions('M_mothEndTips')) {

+ 1 - 0
src/store/getters.js

@@ -1,6 +1,7 @@
 const getters = {
   device: state => state.app.device,
   theme: state => state.app.theme,
+  fontSize: state => state.app.fontSize,
   color: state => state.app.color,
   token: state => state.user.token,
   avatar: state => state.user.avatar,

+ 14 - 2
src/store/modules/app.js

@@ -9,7 +9,8 @@ import {
   DEFAULT_FIXED_SIDEMENU,
   DEFAULT_FIXED_HEADER_HIDDEN,
   DEFAULT_CONTENT_WIDTH_TYPE,
-  DEFAULT_MULTI_TAB
+  DEFAULT_MULTI_TAB,
+  DEFAULT_FONT_SIZE
 } from '@/store/mutation-types'
 
 const app = {
@@ -17,6 +18,7 @@ const app = {
     sidebar: true,
     device: 'desktop',
     theme: '',
+    fontSize:'small',
     layout: '',
     contentWidth: '',
     fixedHeader: false,
@@ -48,10 +50,15 @@ const app = {
       state.device = device
     },
     TOGGLE_THEME: (state, theme) => {
-      // setStore('_DEFAULT_THEME', theme)
       Vue.ls.set(DEFAULT_THEME, theme)
+      localStorage.setItem(DEFAULT_THEME,theme)
       state.theme = theme
     },
+    TOGGLE_FONTSIZE:(state, size) => {
+      localStorage.setItem(DEFAULT_FONT_SIZE,size)
+      state.fontSize = size
+      document.body.className = size
+    },
     TOGGLE_LAYOUT_MODE: (state, layout) => {
       Vue.ls.set(DEFAULT_LAYOUT_MODE, layout)
       state.layout = layout
@@ -120,6 +127,11 @@ const app = {
     }, theme) {
       commit('TOGGLE_THEME', theme)
     },
+    ToggleFontSize({
+      commit
+    }, size) {
+      commit('TOGGLE_FONTSIZE', size)
+    },
     ToggleLayoutMode ({
       commit
     }, mode) {

+ 1 - 0
src/store/mutation-types.js

@@ -9,6 +9,7 @@ export const DEFAULT_FIXED_SIDEMENU = 'DEFAULT_FIXED_SIDEMENU'
 export const DEFAULT_FIXED_HEADER_HIDDEN = 'DEFAULT_FIXED_HEADER_HIDDEN'
 export const DEFAULT_CONTENT_WIDTH_TYPE = 'DEFAULT_CONTENT_WIDTH_TYPE'
 export const DEFAULT_MULTI_TAB = 'DEFAULT_MULTI_TAB'
+export const DEFAULT_FONT_SIZE = 'DEFAULT_FONT_SIZE'
 
 export const CONTENT_WIDTH_TYPE = {
   Fluid: 'Fluid',

+ 1 - 0
src/utils/mixin.js

@@ -10,6 +10,7 @@ const mixin = {
     ...mapState({
       layoutMode: state => state.app.layout,
       navTheme: state => state.app.theme,
+      fontSize: state => state.app.fontSize,
       primaryColor: state => state.app.color,
       colorWeak: state => state.app.weak,
       fixedHeader: state => state.app.fixedHeader,

+ 49 - 3
src/views/Home.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="home">
+  <div class="home" :class="[fontSize]">
     <!-- <a-alert :message="message" type="info" /> -->
     <a-card size="small" :bordered="false" class="page-cont" :bodyStyle="{padding: '17px 30px 20px'}">
       <h3 class="page-tit">客户信息</h3>
@@ -330,7 +330,7 @@
 </template>
 
 <script>
-import { commonMixin } from '@/utils/mixin'
+import { mixin, commonMixin } from '@/utils/mixin'
 import { mapGetters } from 'vuex'
 import ResetPwd from '@/views/user/ResetPwd.vue'
 import newProduct from '@/views/productManagement/newProduct/modal.vue'
@@ -339,7 +339,7 @@ import { bizStateCount, bizData, dealerData } from '@/api/data'
 export default {
   name: 'Home',
   components: { ResetPwd, newProduct },
-  mixins: [commonMixin],
+  mixins: [mixin, commonMixin],
   data () {
     return {
       message: '欢迎登录' + process.env.VUE_APP_PRO_NAME,
@@ -981,5 +981,51 @@ export default {
     .right-con{
       margin-left: 10px;
     }
+
+    &.small{
+      .page-cont{
+        .page-tit,
+        .page-list li,
+        .page-nav-badge .page-nav-n span{
+          font-size: 14px!important;
+        }
+      }
+      .page-data-module{
+        .page-data-tit,
+        .page-data-itemText{
+          font-size: 14px!important;
+        }
+      }
+    }
+    &.middle{
+      .page-cont{
+        .page-tit,
+        .page-list li,
+        .page-nav-badge .page-nav-n span{
+          font-size: 14px!important;
+        }
+      }
+      .page-data-module{
+        .page-data-tit,
+        .page-data-itemText{
+          font-size: 14px!important;
+        }
+      }
+    }
+    &.large{
+      .page-cont{
+        .page-tit,
+        .page-list li,
+        .page-nav-badge .page-nav-n span{
+          font-size: 16px!important;
+        }
+      }
+      .page-data-module{
+        .page-data-tit,
+        .page-data-itemText{
+          font-size: 16px!important;
+        }
+      }
+    }
   }
 </style>

+ 3 - 2
src/views/salesManagement/salesQuery/chooseCustomModal.vue

@@ -344,8 +344,8 @@ export default {
       this.isEdit = false
       this.priceTypeDisabled = true
 
-      // if (data.shippingAddressProvinceSn) { this.getArea('city', data.shippingAddressProvinceSn) }
-      // if (data.shippingAddressCitySn) { this.getArea('district', data.shippingAddressCitySn) }
+      if (data.shippingAddressProvinceSn) { this.getArea('city', data.shippingAddressProvinceSn) }
+      if (data.shippingAddressCitySn) { this.getArea('district', data.shippingAddressCitySn) }
       this.form = Object.assign(this.form, data)
       // this.buyerSnBak = this.form.buyerSn
       // this.priceTypeBak = this.form.priceType
@@ -361,6 +361,7 @@ export default {
       this.spinning = true
       custFindById({ id: this.custId }).then(res => {
         const data = res.data
+        console.log(res)
         if (res.status == 200 && data) {
           if (data.provinceSn) { this.getArea('city', data.provinceSn) }
           if (data.citySn) { this.getArea('district', data.citySn) }