Sfoglia il codice sorgente

Merge remote-tracking branch 'origin/master'

Gaosheng 3 giorni fa
parent
commit
e76193cf2f

+ 5 - 0
xinkeaboard-seller/config/config.js

@@ -87,6 +87,11 @@ export default {
       target: 'http://192.168.0.158:8001/',
       changeOrigin: true,
       pathRewrite: { "^/api": "" },
+    },
+    '/api/v3/goods/seller/goods/list': {
+      target: 'http://192.168.0.158:8001/',
+      changeOrigin: true,
+      pathRewrite: { "^/api": "" },
     }
   },
   ignoreMomentLocale: true,

+ 1 - 1
xinkeaboard-seller/public/UEditor/dialogs/scrawl/scrawl.js

@@ -62,7 +62,7 @@ var scrawl = function (options) {
                     arr.push("<tr>");
                 }
                 tmp = '#' + color;
-                arr.push("<td><a title='" + tmp + "' href='javascript:void(0)' style='background-color:" + tmp + "'></a></td>");
+                arr.push("<td><a title='" + tmp + "' onClick={(e) => { e.preventDefault()}} style='background-color:" + tmp + "'></a></td>");
             }
             arr.push("</tr></table>");
             $G("J_colorBar").innerHTML = arr.join("");

+ 2 - 2
xinkeaboard-seller/src/components/SldSeleTpl/SldSeleTpl.js

@@ -240,7 +240,7 @@ export default class SldSeleTpl extends Component {
             {tpl_type_list.length > 0 && tpl_type_list.map((item, index) => {
               return <a key={index}
                         style={{ borderBottomColor: sel_top_cat == item.type ? '#fff' : 'transparent' }}
-                        href='javascript:void(0)'
+                        onClick={(e) => { e.preventDefault()}}
                         onClick={() => this.sel_tpl(item.type)}>{item.typeName}</a>;
             })
             }
@@ -256,7 +256,7 @@ export default class SldSeleTpl extends Component {
                   return <a style={sel_left_tpl_id == item.tplPcId ? {
                     backgroundColor: '#FC701E',
                     color: '#fff',
-                  } : { backgroundColor: '#fff', color: '#333' }} key={index} href='javascript:void(0)'
+                  } : { backgroundColor: '#fff', color: '#333' }} key={index} onClick={(e) => { e.preventDefault()}}
                             onClick={() => this.get_tpl_instance_data(item.tplPcId)}>{item.name.length > 6 ? item.name.substring(0, 6) : item.name}</a>;
                 })
                 }

+ 9 - 0
xinkeaboard-seller/src/global.less

@@ -1802,6 +1802,15 @@ body {
   padding-bottom: 7px;
 }
 
+.current_site_tip {
+  margin-left: 10px;
+  font-size: 12px;
+}
+
+.current_site_title {
+  color: @theme-color;
+}
+
 .add_goods_top_nav {
   width: 100%;
   height: 70px;

+ 35 - 1
xinkeaboard-seller/src/models/common.js

@@ -8,6 +8,8 @@ export default {
 
   state: {
     notice: [],
+    siteList: [],
+    currentSite: null
   },
 
   effects: {
@@ -229,10 +231,28 @@ export default {
     },
 
     // 获取站点列表
-    * get_site_list_data({ payload, callback }, { call }) {
+    * get_site_list_data({ payload, callback }, { call, put, select }) {
+      const siteList = yield select(state => state.common.siteList);
+      if (siteList.length) {
+        if (callback) callback({data: siteList, state: 200})
+        return;
+      }
       const response = yield call(sldCommonService, payload, 'get', 'v3/system/seller/setting/getSiteSettingList');
       if (callback) callback(response);
+      yield put({ type: 'saveSiteList', payload: response.data });
+    },
+
+    // 设置当前站点
+    * set_current_site({ payload }, { put }) {
+      localStorage.setItem('currentSite', JSON.stringify(payload))
+      yield put({ type: 'saveCurrentSite', payload });
     },
+
+    // // 获取当前站点
+    // * get_current_site({ payload, callback }, { call, put, select }) {
+    //   const currentSite = yield select(state => state.common.currentSite);
+    //   if (callback) callback(currentSite);
+    // }
   },
 
   reducers: {
@@ -242,5 +262,19 @@ export default {
         notice: action.payload,
       };
     },
+
+    saveSiteList(state, action) {
+      return {
+        ...state,
+        siteList: action.payload,
+      };
+    },
+
+    saveCurrentSite(state, action) {
+      return {
+        ...state,
+        currentSite: action.payload,
+      }
+    }
   },
 };

+ 9 - 1
xinkeaboard-seller/src/pages/goods/add_goods.js

@@ -15,6 +15,7 @@ import {
   sldCommonTitleByBg,
   sldSvgIcon,
   quillEscapeToHtml, showSeoHelpTip,
+  safeJsonParse
 } from '@/utils/utils';
 import { reserveInfoLimitType } from '@/utils/util_data';
 import global from '@/global.less';
@@ -3147,11 +3148,18 @@ export default class AddGoods extends Component {
 
 
   render() {
+    let currentSite = this.props.common?.currentSite ?? safeJsonParse(localStorage.getItem('currentSite'));
     const { imgModalList,goods_base_data, spec_data_table, columns_spec, query, preview_img, preview_alt_con, show_preview_modal,modal_width, goods_img_data, spec_set_data,seo_data, goods_cat, sele_goods_cat_data, cur_data, express_show, express_data, other_data, top_nav_step, spu_data_table, columns_spu, pageLoading, step, invoice_data, top_bottom_tpl_data, store_attr_data, search_attr_data, show_radio_flag, goods_video_data, goods_download_data,cur_goods_type, initEditorFlag, getEditorContentFlag, initEditorContent,price_test_date,getSummaryEditorContentFlag,initSummaryEditorContent,goods_min_order_data,imgModalvisible,imgModalVidevisible,imgModalfilevisible,goods_download_data2,goods_video_choose,goods_file_choose } = this.state;
     return (
       <div className={`${global.common_page} ${global.com_flex_column}`} style={{ position: 'relative' }}>
-        <div className={`${global.flex_com_space_between} ${global.add_goods_title}`}>
+        <div className={` ${global.flex_com_row_start_center} ${global.add_goods_title}`}>
           {sldLlineRtextAddGoods('#69A2F2', query.id != undefined && query.id * 1 > 0 ? `${sldComLanguage('编辑商品')}` : `${sldComLanguage('发布商品')}`)}
+          { currentSite?.title 
+            && <span className={global.current_site_tip}>
+                <span>{ `( ${sldComLanguage('商品发布渠道为: ')}` }</span>
+                <span className={global.current_site_title}>{ `${currentSite.title} )` }</span>
+               </span>
+          }
         </div>
         <Spin spinning={pageLoading}>
           <div className={`${global.add_goods_top_nav} ${global.flex_row_start_center}`}>

+ 13 - 4
xinkeaboard-seller/src/pages/goods/goods_online_lists.js

@@ -154,7 +154,7 @@ export default class GoodsOnlineLists extends Component {
           align: 'center',
           width: 100,
           render: (text, record, index) => {
-            return this.siteList.some(item => item.value === text)?.title;
+            return this.state.siteList.find(item => item.value === text)?.title;
           }
         },
         {
@@ -241,7 +241,7 @@ export default class GoodsOnlineLists extends Component {
               {record.isLock == 1 &&
               <Tooltip placement="topRight" title={`${sldComLanguage('该商品参加活动期间不能进行编辑、删除等操作')}`}>
                 <a className={global.tableOperateText} style={{ color: '#fff', background: '#999', cursor: 'auto',whiteSpace:'nowrap',display:'inline-block',marginTop:1,marginLeft:5 }}
-                   href='javascript:void(0)'>
+                   onClick={(e) => { e.preventDefault()}}>
                   {sldComLanguage('锁定')}
                 </a>
               </Tooltip>
@@ -340,10 +340,14 @@ export default class GoodsOnlineLists extends Component {
     const { dispatch } = this.props;
     dispatch({
       type: 'common/get_site_list_data',
-      payload: {  },
       callback: (res) => {
         if (res.state == 200) {
           this.setState({ siteList: res.data, currentSite: res.data[0], siteListLoading: false })
+          // 设置当前站点
+          dispatch({
+            type: 'common/set_current_site',
+            payload: res.data[0]
+          })
           this.get_list({ pageSize: pageSize, distributionChannel: res.data[0]?.value });
         }
       },
@@ -472,7 +476,7 @@ export default class GoodsOnlineLists extends Component {
       callback: (res) => {
         this.setState({ initLoading: false });
         if (res.state == 200) {
-          if (res.data.length == 0 && this.state.params.current > 1) {
+          if (res.data?.list?.length == 0 && this.state.params.current > 1) {
             params.current = params.current - 1;
             this.get_list(params);
           } else {
@@ -607,9 +611,14 @@ export default class GoodsOnlineLists extends Component {
 
   // 切换站点
   setCurrentSite = (site) => {
+    const { dispatch } = this.props;
     const data = this.searchRef.current.getFieldsValue(); // 调用子组件方法
     const values = this.parseSearchData(data)
     this.setState({ currentSite: site })
+    dispatch({
+      type: 'common/set_current_site',
+      payload: site
+    })
     this.get_list({ pageSize: pageSize, distributionChannel: site.value, ...values });
   }
 

+ 1 - 1
xinkeaboard-seller/src/utils/util_data.js

@@ -169,7 +169,7 @@ export const column_client_recipients = [
   {
     title: `${sldComLanguage('操作')}`,
     render: (text, record) => {
-      return (record.use != 1 ? <a href='javascript:void(0)'>{sldComLanguage('使用该地址')}</a> :
+      return (record.use != 1 ? <a onClick={(e) => { e.preventDefault()}}>{sldComLanguage('使用该地址')}</a> :
         <span>{sldComLanguage('已选地址')}</span>);
     },
   },

+ 13 - 2
xinkeaboard-seller/src/utils/utils.js

@@ -1294,7 +1294,7 @@ export function sldtbaleOpeBtn(text, svg, callback, svgW = 14, svgH = 14) {
     ? <span title={text} style={{ marginRight: 3 }}>
 			<ALibbSvg fill={'#08A9B7'} width={svgW} height={svgH} type={svg}/>
 		</span>
-    : <a href='javascript:void(0)' onClick={callback} title={text} style={{ marginRight: 3 }}>
+    : <a onClick={(e) => { e.preventDefault()}} onClick={callback} title={text} style={{ marginRight: 3 }}>
       <ALibbSvg fill={'#08A9B7'} width={svgW} height={svgH} type={svg}/>
     </a>;
 }
@@ -1527,7 +1527,7 @@ export function sldtbaleOpeBtnText(text, callback, svgW = 14, svgH = 14) {
     ? <span className={styles.tableOperateText}>
 			{text}
 		</span>
-    : <a className={styles.tableOperateText} href='javascript:void(0)' onClick={callback}>
+    : <a className={styles.tableOperateText} onClick={(e) => { e.preventDefault()}} onClick={callback}>
       {text}
     </a>;
 }
@@ -1848,3 +1848,14 @@ export function pageClose() {
     window.close();
   }
 }
+
+/**
+ * 解析json字符串
+ */
+export function safeJsonParse(value, defaultValue) {
+  try {
+    return JSON.parse(value)
+  } catch(err) {
+    return defaultValue ?? {}
+  }
+}