Ver Fonte

fix: 国内会员逻辑区分

周玉环 há 4 dias atrás
pai
commit
a80b4bb0f8

+ 2 - 0
xinkeaboard-admin/src/components/SiteSelector/index.js

@@ -2,10 +2,12 @@ import { Select } from "antd";
 import { Menu, Dropdown } from 'antd';
 import { connect } from "dva";
 import router from 'umi/router';
+import { webSiteContactRelation } from "@/utils/utils"
 
 const SiteSelector = ({ siteList, currentSite, dispatch }) => {
   const handleChange = (value) => {
     dispatch({ type: "global/setCurrentSite", payload: value });
+    dispatch({ type: "global/setCurrentContactType", payload: webSiteContactRelation[value] });
     const targetSite = siteList.find(item => item.value === value);
     dispatch({ type: "global/setCurrentSiteName", payload: targetSite.title });
   };

+ 10 - 2
xinkeaboard-admin/src/models/global.js

@@ -1,5 +1,5 @@
 import { queryNotices } from '@/services/api';
-import { sldCommonService } from '@/utils/utils';
+import { sldCommonService, webSiteContactRelation } from '@/utils/utils';
 export default {
   namespace: 'global',
 
@@ -8,7 +8,8 @@ export default {
     notices: [],
     siteList: [],
     currentSite: '',
-    currentSiteName: ''
+    currentSiteName: '',
+    contactType: ''
   },
 
   effects: {
@@ -83,6 +84,7 @@ export default {
       if (!currentSite) {
         yield put({type: 'setCurrentSite', payload: response.data[0]?.value})
         yield put({type: 'setCurrentSiteName', payload: response.data[0]?.title})
+        yield put({type: 'setCurrentContactType', payload: webSiteContactRelation[response.data[0]?.value]})
       }
     },
   },
@@ -101,6 +103,12 @@ export default {
         currentSite: payload,
       };
     },
+    setCurrentContactType(state, { payload }) {
+      return {
+        ...state,
+        contactType: payload,
+      };
+    },
     setCurrentSiteName(state, { payload }) {
       return {
         ...state,

+ 19 - 7
xinkeaboard-admin/src/pages/manage/order/enquiry/enquiry_lists.js

@@ -20,7 +20,8 @@ import {
   validatorNumbe,
   list_com_page_more,
   getSldComShowMoreTtex,
-  sldLlineRtextAddGoods, sldLlineRtextAddGoodsAddMargin,
+  sldLlineRtextAddGoods, 
+  sldLlineRtextAddGoodsAddMargin,
 } from '@/utils/utils';
 import global from '@/global.less';
 import StandardTable from '@/components/StandardTable';
@@ -29,9 +30,10 @@ import Search from '@/components/Search/Search';
 import Link from 'umi/link';
 
 let pageSize = list_com_page_size_10;
-@connect(({ order, common }) => ({
+@connect(({ order, common, global }) => ({
   order,
   common,
+  global
 }))
 @Form.create()
 export default class EnquiryLists extends Component {
@@ -47,6 +49,8 @@ export default class EnquiryLists extends Component {
       title: '',
       addressType: props.type,//地址类型:1-发货地址;2-收货地址
       type: 'add',
+      currentSite: props.global.currentSite,
+      contactType: props.global.contactType,
       params: { pageSize: pageSize },//搜索条件
       upload_img_info: {},//上传的图片信息
       operateData: [],//操作的数据
@@ -64,7 +68,7 @@ export default class EnquiryLists extends Component {
       },
         {
           type: 'input',
-          label: `${sldComLanguage('电话')}`,
+          label: `${sldComLanguage('手机号')}`,
           name: 'phone',
           initialValue: '',
         },
@@ -223,7 +227,7 @@ export default class EnquiryLists extends Component {
           width: 80,
         },
         {
-          title: `${sldComLanguage('电话')}`,
+          title: `${sldComLanguage('手机号')}`,
           dataIndex: 'phone',
           align: 'center',
           width: 80,
@@ -358,7 +362,14 @@ export default class EnquiryLists extends Component {
         label: `${sldComLanguage('姓名')}`,
         name: 'name',
         placeholder: `${sldComLanguage('请输入姓名')}`,
-      }, {
+      }, 
+      {
+        type: 'input',
+        label: `${sldComLanguage('手机号')}`,
+        name: 'mobile',
+        placeholder: `${sldComLanguage('请输入手机号')}`,
+      },
+      {
         type: 'input',
         label: `${sldComLanguage('邮箱')}`,
         name: 'email',
@@ -752,12 +763,13 @@ export default class EnquiryLists extends Component {
   };
 
   render() {
-    const { selectedRows, search_data, columns, initLoading, data, submiting, operateData, modalVisible, title, show_foot } = this.state;
+    const { contactType, currentSite, selectedRows, search_data, columns, initLoading, data, submiting, operateData, modalVisible, title, show_foot } = this.state;
+    const renderSerchData = search_data.filter(item => contactType === 'email' ? item.name !== 'mobile' : item.name !== 'email' )
     return (
       <div className={global.common_page} style={{ flex: 1 }}>
         {sldLlineRtextAddGoodsAddMargin('#69A2F2', `${sldComLanguage('询盘管理')}`, 0, 0, 10)}
         <div className={global.tableListForm}>
-          <Search search_data={search_data}
+          <Search search_data={renderSerchData}
                   seaSubmit={(data) => this.search(data)} seaReset={() => this.seaReset()}
           />
         </div>

+ 9 - 5
xinkeaboard-admin/src/pages/member/detail.js

@@ -16,8 +16,8 @@ import defaultSettings from '@/defaultSettings';
 
 const TabPane = Tabs.TabPane;
 let pageSize_receipt = 10;
-@connect(({ product }) => ({
-  product,
+@connect(({ product, global }) => ({
+  product, global
 }))
 @Form.create()
 export default class Detail extends Component {
@@ -27,6 +27,7 @@ export default class Detail extends Component {
       loading: false,//按钮loading
       query: props.location.query,
       detail_data: {},
+      contactType: props.global.contactType,
     };
   }
 
@@ -49,11 +50,11 @@ export default class Detail extends Component {
   }
 
   componentWillReceiveProps(nextProps, nextContext) {
-
+    
   }
 
   render() {
-    const { loading, query, detail_data } = this.state;
+    const { loading, query, detail_data, contactType } = this.state;
     return (
       <div className={global.common_page}>
         <Spin spinning={loading}>
@@ -91,7 +92,10 @@ export default class Detail extends Component {
                   {/*<p>{sldComLanguage('手机号')}:<span className={styles.item_text}>{detail_data.memberMobile}</span></p>*/}
                 </div>
                 <div className={styles.introduce_item}>
-                  <p>{sldComLanguage('邮箱')}:<span className={styles.item_text}>{detail_data.memberEmail}</span></p>
+                  {contactType === 'email' ? 
+                    <p>{sldComLanguage('邮箱')}:<span className={styles.item_text}>{detail_data.memberEmail}</span></p> 
+                    : <p>{sldComLanguage('手机号')}:<span className={styles.item_text}>{detail_data.memberMobile}</span></p> 
+                  }
                 </div>
               </div>
               <div className={styles.basic_row}>

+ 27 - 20
xinkeaboard-admin/src/pages/member/member_lists.js

@@ -16,10 +16,11 @@ import {
   sldComLanguage,
   validatorMem,
   getSldComImg,
-  getSldCopyData,
   sldtbaleOpeBtnText,
   mobile_reg,
   sldStatEvent,
+  getSldCopyDataPlus,
+  webSiteContactRelation
 } from '@/utils/utils';
 import global from '@/global.less';
 import StandardTable from '@/components/StandardTable';
@@ -28,8 +29,8 @@ import SldModal from '@/components/SldModal/SldModal';
 
 let pageSize = list_com_page_size_10;
 let sthis = '';
-@connect(({ order }) => ({
-  order,
+@connect(({ order, global }) => ({
+  order,global
 }))
 @Form.create()
 export default class MemberList extends Component {
@@ -113,27 +114,32 @@ export default class MemberList extends Component {
           message: `${sldComLanguage('确认密码必填')}`,//确认密码必填
         }, { validator: (rule, value, callback) => validatorMemPwd(rule, value, callback) }],
       },
-      //   {
-      //   type: 'input',
-      //   label: `${sldComLanguage('手机号')}`,//手机号
-      //   name: 'memberMobile',
-      //   placeholder: `${sldComLanguage('请输入')}${sldComLanguage('手机号')}`,//请输入手机号
-      //   initialValue: '',
-      //   rules: [{
-      //     required: true,
-      //     message: `${sldComLanguage('手机号必填')}`,//手机号必填
-      //   }, {
-      //     pattern: mobile_reg,
-      //     message: `${sldComLanguage('请输入正确的手机号')}`,//请输入正确的手机号
-      //   }],
-      // },
+        {
+        type: 'input',
+        label: `${sldComLanguage('手机号')}`,//手机号
+        name: 'memberMobile',
+        placeholder: `${sldComLanguage('请输入')}${sldComLanguage('手机号')}`,//请输入手机号
+        initialValue: '',
+        hide: webSiteContactRelation[props.global.currentSite] === 'email',
+        rules: [{
+          required: true,
+          message: `${sldComLanguage('手机号必填')}`,//手机号必填
+        }, {
+          pattern: mobile_reg,
+          message: `${sldComLanguage('请输入正确的手机号')}`,//请输入正确的手机号
+        }],
+      },
         {
         type: 'input',
         label: `${sldComLanguage('邮箱')}`,//邮箱
         name: 'memberEmail',
         placeholder: `${sldComLanguage('请输入')}${sldComLanguage('邮箱')}`,//请输入邮箱
         initialValue: '',
+        hide: webSiteContactRelation[props.global.currentSite] === 'mobile',
         rules: [{
+          required: true,
+          message: `${sldComLanguage('邮箱必填')}`,//手机号必填
+        },{
           pattern: /^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/,
           message: `${sldComLanguage('请输入正确的邮箱')}`,//请输入正确的邮箱
         }],
@@ -417,7 +423,7 @@ export default class MemberList extends Component {
   //新增会员
   addMember = () => {
     let { addData } = this.state;
-    let operateData = getSldCopyData(addData);
+    let operateData = getSldCopyDataPlus(addData);
     this.setState({
       modalVisible: true,
       type: 'add',
@@ -430,7 +436,7 @@ export default class MemberList extends Component {
   //修改密码
   changePwd = (val) => {
     let { changePwdData } = this.state;
-    let operateData = getSldCopyData(changePwdData);
+    let operateData = getSldCopyDataPlus(changePwdData);
     this.setState({
       type: 'changePwd',
       title: `${sldComLanguage('修改会员密码')}`,
@@ -443,12 +449,13 @@ export default class MemberList extends Component {
   //编辑会员
   editMember = (val) => {
     let { addData } = this.state;
-    let operateData = getSldCopyData(addData);
+    let operateData = getSldCopyDataPlus(addData);
     //移除最后两项
     operateData = operateData.filter(this.removePwd);
     for (let i in operateData) {
       if (operateData[i].name == 'memberName') {
         operateData[i].disable = true;
+        operateData[i].rules = []
       }
       operateData[i].initialValue = val[operateData[i].name];
     }

+ 26 - 0
xinkeaboard-admin/src/utils/utils.js

@@ -1464,6 +1464,27 @@ export function getSldCopyData(origion_data) {
 }
 
 /**
+ * 对象数组实现深拷贝
+ * @param {array} origion_data  源对象数组
+ */
+export function getSldCopyDataPlus(origion_data) {
+  let new_data = [];
+  if (origion_data.length > 0) {
+    for (let i in origion_data) {
+      const single = origion_data[i];
+      if (!single.hide) {
+         if (typeof origion_data[i] == 'object') {
+            new_data.push({ ...origion_data[i] });
+         } else {
+            new_data.push(origion_data[i]);
+         }
+      }
+    }
+  }
+  return new_data;
+}
+
+/**
  * 页面要适应高度,不同屏幕获取相应的高度,高度以1080为准,传入的值直接是1080设计图的尺寸就可以
  */
 export function sldFullHeight(height) {
@@ -1859,3 +1880,8 @@ export function sldBeforeUploadVideo(file, fileList, limit = uploadLimit) {
     return false;
   }
 }
+
+export const webSiteContactRelation = {
+  '1': 'email', // 海外用户
+  '2': 'mobile' // 国内分销商
+}