{"version":3,"sources":["webpack:///../components/goods/goods-feed-new/index.scss?f5c8","webpack:///../components/goods/goods-feed-new/index.scss","webpack:///../components/goods/goods-feed-new/goto-top.scss?c5d2","webpack:///../components/goods/goods-feed-new/goto-top.scss","webpack:///../components/goods/goods-feed-new/imgs/top.png","webpack:///../components/common/loading/index.tsx","webpack:///../utils/guid.ts","webpack:///../components/goods/card/index.tsx","webpack:///../services/v2/order/get-order-action-link.ts","webpack:///../components/goods/sell-out/index.tsx","webpack:///../services/v2/order/button-status.ts","webpack:///../services/v2/order/desc-status.ts","webpack:///../components/goods/card/index.scss?db6a","webpack:///../components/goods/card/index.scss","webpack:///../components/goods/card/imgs/coupon-s-left.png","webpack:///../components/goods/sell-out/index.scss?70b1","webpack:///../components/goods/sell-out/index.scss","webpack:///../components/goods/sell-out/goods-sell-out.png","webpack:///../components/common/loading/index.scss?1e14","webpack:///../components/common/loading/index.scss","webpack:///../services/v2/order/comment.ts","webpack:///../services/common/map-ua-to-app-id.ts","webpack:///../services/v2/order/utils.ts","webpack:///../components/goods/goods-feed-new/goto-top.tsx","webpack:///../components/goods/goods-feed-new/index.tsx","webpack:///../services/common/valid-pv.ts","webpack:///../services/common/ack.ts","webpack:///../components/goods/activity/index.tsx","webpack:///../components/goods/category/index.tsx","webpack:///../services/goods/process-goods-card.ts","webpack:///../config/order.ts","webpack:///../components/goods/activity/index.scss?d0ce","webpack:///../components/goods/activity/index.scss","webpack:///../components/goods/category/index.scss?275f","webpack:///../components/goods/category/index.scss","webpack:///../utils/log.ts","webpack:///../utils/prop.ts","webpack:///../types/order.ts"],"names":["content","module","i","options","transform","undefined","locals","exports","push","___CSS_LOADER_URL___0___","urlEscape","LoadStatus","cachedTab","addCache","id","retryTimes","loadStatus","LoadInit","Loading","props","React","changeLoadStatus","loadingRef","updateStatus","status","Object","prototype","toString","call","onStatusChange","scrollHandler","_event","isRetry","enableRetry","LoadOver","current","coord","getBoundingClientRect","winInnerHeight","window","innerHeight","top","offset","loadFunc","then","res","length","deadPageSize","catch","err","onLoadingError","keepLoadingWhenError","dom$","scrollDomId","document","getElementById","on","off","ref","className","defaultProps","loadingText","loadOverText","loadInitText","pageSize","outScrollDomId","whyDidYouRender","generateGuid","d","Date","getTime","replace","c","r","Math","random","floor","getTitleLabel","goods","activity_tags","labels","filter","item","type","map","label","key","title","style","background","mainColor","slice","maxLabelLen","default","l","xl","Card","hasClicked","clickGoodsEvent","extra","goods_id","eventExtra","req_id","fxg_req_id","sendEvent","size","onClick","stopGoGoodsDetail","handleOtherClick","openProductDetail","src","image","getTagImg","inActivity","alt","sellOut","goods_name","maxLen","index","fontLabels","join","getSecondLabel","canUseCoupon","coupon_label","show_price","computePrice","getSellText","getLink","order","orderAction","finalStatus","final_status","link","name","ActionConst","shop_order_status","order_id","sub_orders","getAftersaleLink","is_multi_package","getLogisticsLink","orderId","isKsdOrder","combo_id","product_id","isF7Order","isVoOrder","getPayLink","isPreRefundOrder","Number","aftersale_type","indexOf","isMainOrder","hasMultiCommentOrder","isInOrderCenter","isVoucherOrder","can_apply_aftersale","getRefundLink","getOrderActionLink","reduce","actionWithLink","_orderAction","isByteEduProduct","platform","getOutOrderLink","a","productId","outProductId","comeFrom","urlMap","et","learning","ez","ep","url","Promise","resolve","bridge","info","appVersion","appName","versionCode","env","isIOS","SellOut","require","BASE_AFTERSALE","CANCEL_ORDER","PAY_NOW","APPLY_REFUND","AFTERSALE","concat","CHECK_LOGISTICS","CONFIRM_RECIPET","IN_RETURN_FOR","subTitle","IN_PROCESSING_SERVICE","FOR_REFUND","HAVE_TO_RETURN","MERCHANTS_HAVE_AGREED_TO","CUSTOMER_HAS_AGREED_TO","RETURN_HAS_BEEN_CANCELLED","REFUND_SUCCESS","REFUND_FAILURE","MERCHANT_HAS_REFUSED_TO","VOUCHER_REFUND_FAILED","VOUCHER_REFUND_FAILED_CAN_APPLY","PRE_MERCHANT_HAS_REFUSED_TO","CUSTOMER_SERVICE_HAS_REFUSED_TO","REFUND_APPLICATION","REFUND_HAS_BEEN_CANCELLED","REFUND_HAS_AGREED_TO","REFUND_FAILURE_AUTO","REFUND_FAILURE_NEED_PAYEE","EXCHANGE_WAITING_FOR","EXCHANGE_HAVE_AGREED_TO","EXCHANGE_HAS_REFUSED_TO","EXCHANGE_CUSTOMER_HAS_AGREED_TO","EXCHANGE_CUSTOMER_HAS_AGREED_TO_RETURN_0","EXCHANGE_CUSTOMER_HAS_AGREED_TO_RETURN_1","EXCHANGE_CUSTOMER_HAS_AGREED_TO_RETURN_2","EXCHANGE_CUSTOMER_HAS_AGREED_TO_RETURN_3","EXCHANGE_CUSTOMER_SERVICE_HAS_REFUSED_TO","EXCHANGE_APPLICATION","EXCHANGE_SEND_GOODS","EXCHANGE_MERCHANT_HAS_REFUSED_TO","EXCHANGE_CUSTOMER_AGREED_TO","EXCHANGE_HAS_BEEN_CANCELLED","EXCHANGE_SUCCESS","EXCHANGE_BACK_RETURN","EXCHANGE_BACK_RETURN_SUCCESS","EXCHANGE_FAILURE","addNeedPayee","input","needPayee","assign","getOrderDesc","isOnlineRefundOrderNeedPayee","failType","isOnlineRefundFailOrder","ONLINE_RERUND_FAIL","MERCHANTS_STATUS","CUSTOMER_STATUS","IN_RETURN","IN_REFUND","AFTERSALE_TYPE","Exchange","40","41","45","47","49","48","refund_status","54","42","43","46","50","44","51","52","53","55","56","6","7","8","9","10","11","12","13","14","15","16","17","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","getMainOrderDesc","shopOrderStatus","payType","pay_type","yushiOrderDesc","getYushiOrderDesc","getYushiOrderStatus","PayType","WECHAT","ALIPAY","COD","order_status_str","getSubOrderDesc","subOrder","shopOrder","desc","getOrderAfterSaleDesc","getPayTextDesc","num","comment_op","getOrderCommentAction","commentAction","commentLevel","commentOrderCounts","forEach","action","isInToutiao","isInWechat","hasOwnProperty","has_coupon_banner","getSubOrderCommentAction","actionLevel","getCommentActionLevel","assertStype","stype","getProp","isInCampaign","campaign_info","sale_price","returnInsuranceObj","policy_info","find","safeGet","ins_policy_no","status_desc","policy_type","policy_detail","policy_amount","isVirtualOrder","canAftersaleOnFinish","product_platform","isAftersaleOrder","FinalStatus","退货_在线退款成功","退货_退款成功","仅退款_成功","仅退款_在线退款成功","isCommonOrder","isOnlineOrder","inReturnGoodsTime","update_time","isPresale","isLubanShipTime","exp_time","exp_ship_time","fixDateStr","create_time","biz_type","orderType","getAmount","combo_amount","getPresaleDate","time","date","getMonth","getDate","canEditAddressTime","test","location","href","processType","service_process_type","orderStatus","order_status","processStatus","service_process_status","processConclusion","service_process_conclusion","canShowConfirm","every","o","logistics_time","logistics","moment","isAfter","add","refund_type","need_payee","need_modify_payee","priceFormat","price","String","toFixed","split","firstPrice","secondPrice","error","GoTop","show","setShow","scrollItem","scrollItemId","handle","scrollTop","scrollTo","left","GoodsFeed","goodsList","updateGoods","page","changePage","triggerValidPv","hadValidPv","init","validPv","getGoods","getOrderEventData","area_type","urlParams","tab_name","sessionStorage","getItem","appId","mapUaToAppId","goodsUrl","page_type","areaType","areaId","page_id","origin_type","get","response","data","list","ids","activityIds","recommendRequestId","recommond_request_id","totalSize","s","feed_index","card_type","isInToutiaoProduct","goodsIds","recommond_groupids","app_id","version_id","fxgVersionId","load_times","is_recommend","ack","ackImpress","children","cardType","activity","categories","API_ORIGIN","thenableRef","triggerValidateInteraction","sendValidPv","arguments","reject","validClickHandler","addOrRemoveListeners","originType","originId","origin_id","newSourceType","new_source_type","newSourceId","new_source_id","sourceType","source_type","sourceId","source_id","come_from","campaign_id","Activity","activity_id","openLink","feed_image_url","feed_title","feed_subtitle","Category","clickCategory","cat","beforeReportEvent","activity_current","tag_img","imgArr","begin","begin_time","end","end_time","now","left_stock","checkGoodInfo","sku_max_price","sku_min_price","isPreHeating","campaign_price_new","discount_price","calPrice","sell_num","getReturnType","returnType","ReturnType","text","cancelReason","value","EPageType","guid","pv","b_type","bType","stay","supplement","duration","unique_id","clearInterval","setInterval","visibilityState","object","path","defaultVal","shift","LatelyOperateStep","EActionEnum"],"mappings":"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","file":"staticV3/js/899bd0bd.js","sourcesContent":["\nvar content = require(\"!!../../../node_modules/thread-loader/dist/cjs.js??ref--8-1!../../../node_modules/css-loader/dist/cjs.js??ref--8-2!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/dist/cjs.js!./index.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/thread-loader/dist/cjs.js??ref--8-1!../../../node_modules/css-loader/dist/cjs.js??ref--8-2!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/dist/cjs.js!./index.scss\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/thread-loader/dist/cjs.js??ref--8-1!../../../node_modules/css-loader/dist/cjs.js??ref--8-2!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/dist/cjs.js!./index.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".goods-feed{padding:0 0.32rem;width:100%;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-moz-box-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;align-items:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-moz-box-orient:horizontal;-moz-box-direction:normal;flex-direction:row;-webkit-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.goods-feed__title{height:0.58667rem;-webkit-flex-shrink:0;flex-shrink:0;line-height:0.58667rem;margin-top:0.64rem;margin-bottom:0.32rem;margin-left:0.32rem;color:#191A1A;font-size:0.42667rem;text-align:left;font-weight:bold}\\n\", \"\"]);\n\n","\nvar content = require(\"!!../../../node_modules/thread-loader/dist/cjs.js??ref--8-1!../../../node_modules/css-loader/dist/cjs.js??ref--8-2!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/dist/cjs.js!./goto-top.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/thread-loader/dist/cjs.js??ref--8-1!../../../node_modules/css-loader/dist/cjs.js??ref--8-2!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/dist/cjs.js!./goto-top.scss\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/thread-loader/dist/cjs.js??ref--8-1!../../../node_modules/css-loader/dist/cjs.js??ref--8-2!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/dist/cjs.js!./goto-top.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar urlEscape = require(\"../../../node_modules/css-loader/dist/runtime/url-escape.js\");\nvar ___CSS_LOADER_URL___0___ = urlEscape(require(\"./imgs/top.png\"));\n\n// Module\nexports.push([module.id, \".top-btn{position:fixed;bottom:2.66667rem;bottom:-webkit-calc(constant(safe-area-inset-bottom) + 2.66667rem);bottom:-moz-calc(constant(safe-area-inset-bottom) + 2.66667rem);bottom:calc(constant(safe-area-inset-bottom) + 2.66667rem);bottom:-webkit-calc(env(safe-area-inset-bottom) + 2.66667rem);bottom:-moz-calc(env(safe-area-inset-bottom) + 2.66667rem);bottom:calc(env(safe-area-inset-bottom) + 2.66667rem);right:0.32rem;width:44Px;height:44Px;background-color:#fff;background-image:url(\" + ___CSS_LOADER_URL___0___ + \");-webkit-background-size:20px 20px;-moz-background-size:20px 20px;background-size:20px 20px;background-repeat:no-repeat;background-position:center center;border:1px solid #D9D9D9;-webkit-border-radius:22Px;-moz-border-radius:22Px;border-radius:22Px}\\n\", \"\"]);\n\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAABOFBMVEVHcEwmJiYlJSUmJiYnJycqKiomJiYnJyclJSUzMzMAAAAoKChVVVUnJycmJiZAQEAmJiYnJycmJiYAAAAnJyckJCQmJiYmJiYmJiYjIyMmJiYmJiYmJiYmJiYzMzMoKCgnJycAAAAoKCgmJiYnJycmJiYoKCgmJiYmJiYmJiYmJiYaGhotLS0oKCgnJycnJycnJycmJiYnJycuLi4mJiYmJiYoKCgqKionJycmJiYnJycoKCgkJCQpKSmAgIAnJyckJCQmJiYnJycoKCgmJiYmJiYsLCwpKSkpKSkmJiYpKSkpKSknJycmJiYmJiYmJiYmJiYnJyckJCQnJycmJiYoKCgkJCQmJiYnJycqKiomJiYmJiYgICAmJiYmJiYmJiYqKiomJiYnJyclJSUnJycnJycoKCgmJibmgSHoAAAAZ3RSTlMA5zfrYRjH9Z0KA00DdV8E0DvtAoIH/tvYFv3iL+QFP80BR+pONXMb8PacChFGgyGxScALxMk6Mb+aSFMxRAK5HFG+Z/t/Fz4fjjgZicFK9F5UDhrdgSoUqgzKugiUZeUr18RS7vRgah+p5gAAAXJJREFUSMft1mdTgzAYwPEo1ipQKEWpgHTa4d5777333vL9v4HFtjQ06ZHkfMX1eQGvfsf/IOECwD+NLvy0+c9nAWffPr6+w/5TfM+h9ulZs8nm4R7Bt4+E1jZvEHxxR4qvLtHuc4vMFvOYF5ZYOBro8J/9RRn7rcRO/xlMgIBPeoWZ8sntkXGV0Z6Zmha7FpmswDlrIhzppreyxJVXVCxC/Wy+akvP7hKZmiuarlyWOHgvUJXzXktV7mmmLJclDt3FhOVuc//r39WiKOf7KpZ7aXduLfke4nK3OS6EyrhViRKWu82cwFcx6I0SldeaBQBcDBSScqgZwBgQlMPNXkxQPpOtNddht/x0k8fjVai5HrvlUzt4nIWaEVwtN0fxeAxqRnGlfE7H46Vpw0idgEYYKBtbdny9wR9RPVweLqiNMdB3M3sy2e5CMcU0cRM3cXCwfuxga5YJT84bJZwaYjvF5SY0LZphPD6qoYPkWjpwB+pfnaTrv7UXTR0AAAAASUVORK5CYII=\"","import * as React from 'react';\nimport { on, off } from '@byted/ecom-mobile-lib/lib/utils/dom';\nimport './index.scss';\n\nexport enum LoadStatus {\n LoadInit = 'loadInit',\n Loading = 'loading',\n LoadOver = 'loadOver'\n}\n\ninterface IProps {\n // loadStatus: LoadStatus;\n loadingText?: string;\n loadOverText?: string;\n loadInitText?: string;\n offset?: number;\n loadFunc: (...args: any[]) => Promise;\n pageSize?: number;\n deadPageSize?: number;\n enableRetry?: boolean; // 当本页条数不足pageSize,会继续尝试下一页获取\n retryTimes?: number;\n /**\n * @description 标识当前loading的状态\n */\n id: string;\n scrollDomId?: string;\n onStatusChange?: (status: string) => unknown;\n onLoadingError?: (error: any) => any;\n keepLoadingWhenError?: boolean;\n outScrollDomId: string;\n}\n\nconst cachedTab: Record = {};\nconst addCache = (id: string, retryTimes: number = 3) => {\n cachedTab[id] = { retryTimes, loadStatus: LoadStatus.LoadInit };\n};\n\nconst Loading = (props: IProps) => {\n // 校验缓存状态\n if (!cachedTab[props.id]) {\n addCache(props.id, props.retryTimes);\n }\n React.useEffect(() => {\n addCache(props.id, props.retryTimes);\n }, [props.id]);\n const [loadStatus, changeLoadStatus] = React.useState(cachedTab[props.id].loadStatus);\n const loadingRef = React.useRef(null);\n // const isMount = React.useRef(true);\n const updateStatus = (status: LoadStatus) => {\n cachedTab[props.id].loadStatus = status;\n if (Object.prototype.toString.call(props.onStatusChange) === '[object Function]') {\n props.onStatusChange!(status);\n }\n // if (!isMount.current) return;\n changeLoadStatus(status);\n };\n const scrollHandler = (_event?: Event, isRetry = false) => {\n if (cachedTab[props.id].loadStatus !== LoadStatus.LoadInit) {\n return;\n }\n if (props.enableRetry && cachedTab[props.id].retryTimes <= 0) {\n updateStatus(LoadStatus.LoadOver);\n\n return;\n }\n if (!loadingRef.current) return;\n const coord = (loadingRef.current! as HTMLElement).getBoundingClientRect();\n const winInnerHeight = window.innerHeight;\n\n if (winInnerHeight === 0) {\n return;\n }\n // TODO: 这里的逻辑需要重新考虑\n if (coord.top - winInnerHeight < props.offset!) {\n updateStatus(LoadStatus.Loading);\n props\n .loadFunc(isRetry)\n .then((res) => {\n if ({}.toString.call(res) === '[object Array]') {\n if ((res as any[]).length < props.deadPageSize!) {\n if (props.enableRetry) {\n cachedTab[props.id].retryTimes -= 1;\n updateStatus(LoadStatus.LoadInit);\n // eslint-disable-next-line no-undefined\n } else {\n updateStatus(LoadStatus.LoadOver);\n }\n } else {\n updateStatus(LoadStatus.LoadInit);\n }\n } else {\n updateStatus(LoadStatus.LoadOver);\n }\n })\n .catch((err: unknown) => {\n if (props.onLoadingError) {\n props.onLoadingError(err);\n }\n if (props.keepLoadingWhenError) {\n cachedTab[props.id].retryTimes -= 1;\n updateStatus(LoadStatus.LoadInit);\n } else {\n updateStatus(LoadStatus.LoadOver);\n }\n });\n }\n };\n\n React.useEffect(() => {\n scrollHandler();\n const dom$ =\n props.scrollDomId && document.getElementById(props.scrollDomId)\n ? document.getElementById(props.scrollDomId)\n : ((window as unknown) as Element);\n if (dom$) {\n on(dom$, 'scroll', scrollHandler);\n }\n return () => {\n // isMount.current = false;\n if (dom$) {\n off(dom$!, 'scroll', scrollHandler);\n }\n };\n }, [props.loadFunc]);\n\n return (\n
\n {(props as any)[`${loadStatus}Text`]}\n
\n );\n};\n\nLoading.defaultProps = {\n loadingText: '正在加载...',\n loadOverText: '没有更多了',\n loadInitText: '加载更多',\n offset: 300,\n pageSize: 10,\n deadPageSize: 3,\n enableRetry: true,\n retryTimes: 3,\n scrollDomId: null,\n keepLoadingWhenError: true,\n outScrollDomId: ''\n};\n\nLoading.whyDidYouRender = false;\n\nexport default Loading;\n","export default function generateGuid() {\n let d = new Date().getTime();\n let uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n let r = (d + Math.random() * 16) % 16 | 0;\n d = Math.floor(d / 16);\n return (c === 'x' ? r : (r & 0x3) | 0x8).toString(16);\n });\n return uuid;\n}\n","import * as React from 'react';\nimport './index.scss';\nimport { IGoodsCard } from 'types/goods';\nimport {\n isPreHeating,\n getTagImg,\n inActivity,\n sellOut,\n computePrice,\n canUseCoupon,\n getSellText\n} from 'services/goods/process-goods-card';\nimport openLink from 'libs/open-link';\nimport { sendEvent } from 'libs/event';\nimport { SellOut } from '../sell-out/index';\nimport Image from 'components/common/image';\nimport { openProductDetail } from 'src/services/pageControl';\n\nexport interface IGoodsCardProps {\n goods: IGoodsCard;\n size?: 'l' | 'xl';\n eventExtra?: any;\n selfDescription?: string;\n stopGoGoodsDetail?: boolean;\n handleOtherClick?: (goods: IGoodsCard) => void;\n beforeClickGoods?: (url: string, goods: IGoodsCard, position: number) => string;\n}\nexport function getTitleLabel(goods: IGoodsCard, length: number = 8) {\n if (!goods.activity_tags) return null;\n const labels = goods.activity_tags.filter((item) => item.type === 'normal');\n if (labels.length) {\n return labels.map((label) => (\n \n {label.title && label.title.slice(0, length)}\n \n ));\n }\n return null;\n}\nconst maxLabelLen = {\n default: 15,\n l: 20,\n xl: 25\n};\nexport function getSecondLabel(goods: IGoodsCard, maxLen?: number) {\n if (!goods.activity_tags) return null;\n const labels = goods.activity_tags.filter((item) => item.type === 'other');\n if (labels.length) {\n return labels.map((label, index) => {\n const fontLabels = labels\n .slice(0, index + 1)\n .map((item) => item.label)\n .join('');\n if (maxLen && fontLabels.length > maxLen) {\n return '';\n }\n return (\n \n {label.label}\n \n );\n });\n }\n return null;\n}\n\nexport function Card(props: IGoodsCardProps) {\n let hasClicked = false;\n\n function clickGoodsEvent(goods: IGoodsCard) {\n let extra: any = {\n goods_id: goods.goods_id,\n ...props.eventExtra\n };\n if (goods.req_id) {\n extra.fxg_req_id = goods.req_id;\n }\n sendEvent('click_goods', extra);\n }\n function showCouponText(goods: IGoodsCard) {\n let labels = '';\n if (goods.activity_tags) {\n labels = goods.activity_tags\n .filter((item) => item.type === 'other')\n .map((item) => item.label)\n .join('');\n }\n if (!props.size) {\n if (!labels.length) {\n return props.goods.coupon_label.length <= 15;\n }\n return props.goods.coupon_label.length + labels.length < 13;\n }\n if (props.size === 'xl') {\n if (!labels.length) {\n return props.goods.coupon_label.length <= 20;\n }\n return props.goods.coupon_label.length + labels.length < 18;\n }\n if (props.size === 'l') {\n if (!labels.length) {\n return props.goods.coupon_label.length <= 25;\n }\n return props.goods.coupon_label.length + labels.length < 23;\n }\n\n return true;\n }\n function clickGoods(_position: number, goods: IGoodsCard) {\n hasClicked = true;\n\n if (props.stopGoGoodsDetail && props.handleOtherClick) {\n props.handleOtherClick(props.goods);\n } else {\n clickGoodsEvent(goods);\n openProductDetail({ id: goods.goods_id, options: props.eventExtra });\n }\n }\n return (\n clickGoods(1, props.goods)}\n >\n
\n \n {getTagImg(props.goods, 0) && inActivity(props.goods) && (\n \n )}\n {getTagImg(props.goods, 1) && inActivity(props.goods) && (\n \n )}\n {sellOut(props.goods) && }\n
\n
\n
\n \n {getTitleLabel(props.goods)}\n {props.goods.goods_name}\n \n
\n
\n {getSecondLabel(\n props.goods,\n props.size ? maxLabelLen[props.size] : maxLabelLen.default\n )}\n {canUseCoupon(props.goods) && showCouponText(props.goods) ? (\n \n \n \n {props.goods.coupon_label.replace('券', '')}\n \n \n ) : null}\n
\n
\n \n ¥\n {props.goods.show_price\n ? props.goods.show_price / 100\n : computePrice(props.goods)}\n \n {getSellText(props.goods)}\n
\n
\n \n );\n}\n","// 给按钮注入特定的链接\nimport { IOrder, IOrderAction, IOrderActionWithStyle, ISubOrder } from 'types/order';\nimport * as ActionConst from 'services/v2/order/const';\nimport {\n isF7Order,\n isKsdOrder,\n isMainOrder,\n isVoOrder,\n isInOrderCenter,\n isVoucherOrder\n} from 'src/services/v2/order/utils';\nimport { hasMultiCommentOrder } from 'services/v2/order/comment';\nimport bridge from 'src/libs/bridge';\nimport env from 'src/libs/env';\nimport { isPreRefundOrder } from './desc-status';\nexport interface IGetOutOrderParams {\n platform: string;\n productId: string;\n orderId: string;\n outProductId: string;\n comeFrom?: string;\n}\n\nconst getAftersaleLink = (order: IOrder | ISubOrder) => {\n let link = '';\n let title = '';\n if (order.shop_order_status === 101) {\n title = '选择售后商品';\n link = `/views/newaftersale/list?id=${order.order_id}`;\n return [link, title];\n }\n const hasSubOrders = order.sub_orders && order.sub_orders.length > 1;\n if (hasSubOrders) {\n link = `/views/newaftersale/select?id=${order.order_id}`;\n title = '选择售后商品';\n } else {\n link = `/views/newaftersale/midpage?id=${order.order_id}`;\n title = '申请售后';\n }\n return [link, title];\n};\n\nconst getPayLink = (order: IOrder | ISubOrder) => {\n let link = '';\n let type = 'jump';\n const { order_id: orderId } = order;\n\n if (isKsdOrder(order)) {\n link = `https://ksd.snssdk.com/pay.html?order_id=${orderId}&combo_id=\n ${order.combo_id}&product_id=${order.product_id}`;\n } else if (isF7Order(order)) {\n link = `https://ta.snssdk.com/f7/pay.html?order_id=${orderId}&combo_id=\n ${order.combo_id}`;\n } else if (isVoOrder(order)) {\n link = `https://ta.snssdk.com/vo/pay.html?order_id=${orderId}&combo_id=\n ${order.combo_id}`;\n } else {\n link = `/views/neworder/index?id=${orderId}`;\n type = 'showPayForms';\n }\n return [link, type];\n};\n\nconst getRefundLink = (order: IOrder | ISubOrder) => {\n let link = '';\n if (order.final_status === 2) {\n link = `/views/newaftersale/return?id=${order.order_id}&before_sale=1&only_refund=1`;\n } else if (\n // poi 订单退款失败且仍然可以申请售后则进入售后仅退款\n isVoucherOrder(order) &&\n (order.final_status === 3 || (order.final_status === 33 && order.can_apply_aftersale))\n ) {\n link = `/views/newaftersale/return?id=${order.order_id}&before_sale=0&only_refund=1`;\n }\n return [link, '申请退款'];\n};\n\nconst getLogisticsLink = (order: IOrder | ISubOrder) => {\n let title = '物流详情';\n let link = `/views/neworder/express?id=${order.order_id}`;\n if (order.is_multi_package) {\n link = `/views/neworder/expresslist?id=${order.order_id}`;\n title = '物流列表';\n }\n return [link, title];\n};\n\nconst getLink = (\n order: IOrder | ISubOrder,\n orderAction: IOrderActionWithStyle\n): {\n link: string;\n title: string;\n type: string;\n} => {\n const { final_status: finalStatus } = order;\n let link = '';\n let title = '';\n let type = 'jump';\n switch (orderAction.name) {\n case ActionConst.APPLY_AFTERSALE:\n [link, title] = getAftersaleLink(order);\n break;\n case ActionConst.CHECKOUT_LOGISTICS:\n // 查看物流按钮链接取决于订单是否多包裹发货\n [link, title] = getLogisticsLink(order);\n break;\n case ActionConst.PAY:\n [link, type] = getPayLink(order);\n break;\n case ActionConst.RETURN_GOODS_INFO:\n link = `/views/newaftersale/returnForm?id=${order.order_id}`;\n break;\n case ActionConst.CHECKOUT_REFUND:\n link = `/views/newaftersale/detail?id=${order.order_id}&before_sale=${\n isPreRefundOrder(order.shop_order_status) ? 1 : 0\n }&isExchange=${Number(order.aftersale_type === 3)}`;\n title = '售后详情';\n break;\n case ActionConst.CHECKOUT_RETURN_GOODS:\n link = `/views/newaftersale/index?id=${order.order_id}&refund=${\n [16, 17, 18, 19, 20, 21, 25, 26].indexOf(finalStatus) !== -1 && isMainOrder(order)\n ? 1\n : ''\n }`;\n break;\n case ActionConst.CHECKOUT_COMMENT:\n link = `/views/newcomment/snap?order_id=${order.order_id}`;\n break;\n case ActionConst.COMMENT_WITH_COUPON:\n case ActionConst.PUBLISH_COMMENT:\n link = `/views/newcomment/publish?order_id=${order.order_id}`;\n break;\n case ActionConst.APPEND_COMMENT:\n link = hasMultiCommentOrder(order)\n ? `/views/neworder/comment?order_id=${order.order_id}`\n : `/views/newcomment/snap?is_append=1&order_id=${order.order_id}`;\n break;\n case ActionConst.EDIT_ADDRESS:\n link = `/views/neworder/editAddress?id=${order.order_id}`;\n break;\n case ActionConst.CHECKOUT_CERTIFICATE:\n link = `/views/neworder/certificate?order_id=${order.order_id}`;\n break;\n case ActionConst.CHECK_VOUCHER:\n link = isInOrderCenter() ? `/views/neworder/index?id=${order.order_id}` : '';\n break;\n case ActionConst.APPLY_REFUND:\n [link, title] = getRefundLink(order);\n break;\n default:\n break;\n }\n\n return {\n link,\n title,\n type\n };\n};\n\nexport const getOrderActionLink = (\n orderAction: IOrderActionWithStyle[],\n order: IOrder | ISubOrder\n): IOrderAction[] => {\n return orderAction.reduce((actionWithLink: IOrderAction[], _orderAction) => {\n actionWithLink.push({\n ..._orderAction,\n link: getLink(order, _orderAction)\n });\n\n return actionWithLink;\n }, []);\n};\n\n// 后续接入教育线产品只需要 1. platform填入下方 2. getOutOrderLink的urlMap 增加对应的跳转链接即可。\nexport const isByteEduProduct = (platform: string = '') =>\n ['learning', 'et', 'ep', 'ez'].indexOf(platform) !== -1;\n\nexport const getOutOrderLink = async ({\n platform,\n productId,\n orderId,\n outProductId,\n comeFrom\n}: IGetOutOrderParams) => {\n const urlMap: { [key: string]: string } = {\n et: `https://tangyuanyingyu.com/share/result?jrtm_product_id=${productId}&jrtm_order_id=${orderId}`,\n learning: `https://learning.snssdk.com/static-cdn/wallet_bundles/learning_douyin_wap/mp-guide.html?product_id=${productId}&out_product_id=${outProductId}`,\n ez: `https://m.openlanguage.com/m/g/live_broadcast?order_id=${orderId}`,\n ep: `https://student-api.iyincaishijiao.com/ep/h5/courseList/?out_product_id=${outProductId}&order_id=${orderId}&enter_from=${comeFrom}&disableBounces=1&hide_nav_bar=1&hide_status_bar=1&should_full_screen=1&loading_bgcolor=fff&adinfo=0&auto_play_bgm=1&allowMediaAutoPlay=1`\n };\n let url = urlMap[platform];\n\n if (!isByteEduProduct(platform) || !url) return '';\n\n const extra = await new Promise((resolve) => {\n bridge\n .call('appInfo')\n .then((info: any) => {\n // 没appVersion和appName则直接返回\n if (!info || !info.appVersion || !info.appName) resolve('');\n const { appName, appVersion } = info;\n\n const outUrl = urlMap[platform || ''];\n\n if (!outUrl) resolve('');\n\n const versionCode = appVersion.toString().replace(/\\./g, '');\n resolve(\n `&os=${env.isIOS ? 'ios' : 'android'}&app=${appName}&version=${versionCode}`\n );\n })\n .catch(() => {\n resolve('');\n });\n });\n\n return url + extra;\n};\n","import * as React from 'react';\nimport './index.scss';\n\nexport function SellOut() {\n return (\n
\n \"售完\"\n
\n );\n}\n","export const BASE_AFTERSALE = [\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 22,\n 23,\n 24,\n 27,\n 28,\n 29,\n 30,\n 31,\n 32,\n 33,\n 34,\n 35,\n 36,\n 37,\n 38,\n 39,\n 40,\n 42,\n 43,\n 44,\n 45,\n 46,\n 47,\n 49,\n 50,\n 54,\n 55,\n 56\n];\n\n// 取消订单\nexport const CANCEL_ORDER = [1];\n\n// 立即支付\nexport const PAY_NOW = [1];\n\n// 申请退款\nexport const APPLY_REFUND = [2];\n\n// 申请售后\nexport const AFTERSALE = BASE_AFTERSALE.concat(3, 101);\n\n// 查看物流\nexport const CHECK_LOGISTICS = BASE_AFTERSALE.concat(3, 101);\n\n// 确认收货\nexport const CONFIRM_RECIPET = [3];\n","// Alfred auto gen const name\nimport { IOrder, ISubOrder } from 'types/order';\nimport { PayType } from 'config/order';\nimport { BASE_AFTERSALE } from './button-status';\nimport { AFTERSALE_TYPE } from 'pages/newaftersale/detail/constants';\nimport {\n isVoucherOrder,\n getYushiOrderStatus,\n isOnlineRefundOrderNeedPayee,\n isOnlineRefundFailOrder\n} from './utils';\n\nconst IN_RETURN_FOR = {\n className: 'processing',\n title: '退货申请中',\n subTitle: '待商家处理'\n};\n\nconst IN_PROCESSING_SERVICE = {\n className: 'processing',\n title: '客服处理中'\n};\n\nconst FOR_REFUND = {\n className: 'processing',\n title: '待退货',\n subTitle: '请填写物流'\n};\n\nconst HAVE_TO_RETURN = {\n className: 'processing',\n title: '已退货',\n subTitle: '待商家处理'\n};\n\nconst MERCHANTS_HAVE_AGREED_TO = {\n className: 'processing',\n title: '商家已同意'\n};\n\nconst CUSTOMER_HAS_AGREED_TO = {\n className: 'processing',\n title: '客服已同意'\n};\n\nconst RETURN_HAS_BEEN_CANCELLED = {\n className: 'close',\n title: '退货已取消'\n};\n\nconst REFUND_SUCCESS = {\n className: 'success',\n title: '退款成功'\n};\n\nconst REFUND_FAILURE = {\n className: 'reject',\n title: '退款失败'\n};\n\nconst MERCHANT_HAS_REFUSED_TO = {\n className: 'reject',\n title: '商家已拒绝',\n subTitle: '可申请客服申诉'\n};\n\nconst VOUCHER_REFUND_FAILED = {\n className: 'reject',\n title: '退款失败'\n};\n\nconst VOUCHER_REFUND_FAILED_CAN_APPLY = {\n className: 'reject',\n title: '退款失败',\n subTitle: '可重新申请'\n};\n\nconst PRE_MERCHANT_HAS_REFUSED_TO = {\n className: 'reject',\n title: '商家已拒绝'\n};\n\nconst CUSTOMER_SERVICE_HAS_REFUSED_TO = {\n className: 'reject',\n title: '客服已拒绝'\n};\n\nconst REFUND_APPLICATION = {\n className: 'processing',\n title: '退款申请中',\n subTitle: '待商家处理'\n};\n\nconst REFUND_HAS_BEEN_CANCELLED = {\n className: 'close',\n title: '退款已取消'\n};\n\nconst REFUND_HAS_AGREED_TO = {\n className: 'processing',\n title: '退款已同意'\n};\n\nconst REFUND_FAILURE_AUTO = {\n title: '退款失败',\n subTitle: '请联系官方客服'\n};\n\nconst REFUND_FAILURE_NEED_PAYEE = {\n title: '退款失败',\n subTitle: '请修改收款信息'\n};\n\n// 新增换货处理\nconst EXCHANGE_WAITING_FOR = {\n className: 'processing',\n title: '等待商家处理'\n};\nconst EXCHANGE_HAVE_AGREED_TO = {\n className: 'processing',\n title: '商家已同意换货',\n subTitle: '请填写物流'\n};\nconst EXCHANGE_HAS_REFUSED_TO = {\n className: 'reject',\n title: '商家拒绝换货',\n subTitle: '可申请客服申诉'\n};\nconst EXCHANGE_CUSTOMER_HAS_AGREED_TO = {\n className: 'processing',\n title: '客服同意换货',\n subTitle: '请填写物流'\n};\nconst EXCHANGE_CUSTOMER_HAS_AGREED_TO_RETURN_0 = {\n className: 'processing',\n title: '客服同意退款'\n};\nconst EXCHANGE_CUSTOMER_HAS_AGREED_TO_RETURN_1 = {\n className: 'processing',\n title: '退款执行中'\n};\nconst EXCHANGE_CUSTOMER_HAS_AGREED_TO_RETURN_2 = {\n className: 'success',\n title: '退款已完成'\n};\nconst EXCHANGE_CUSTOMER_HAS_AGREED_TO_RETURN_3 = {\n className: 'close',\n title: '退款已关闭'\n};\nconst EXCHANGE_CUSTOMER_SERVICE_HAS_REFUSED_TO = {\n className: 'reject',\n title: '客服已拒绝换货'\n};\nconst EXCHANGE_APPLICATION = {\n className: 'processing',\n title: '等待商家处理'\n};\nconst EXCHANGE_SEND_GOODS = {\n className: 'processing',\n title: '商家已发货'\n};\nconst EXCHANGE_MERCHANT_HAS_REFUSED_TO = {\n className: 'reject',\n title: '商家拒绝发货',\n subTitle: '可申请客服申诉'\n};\nconst EXCHANGE_CUSTOMER_AGREED_TO = {\n className: 'processing',\n title: '客服同意换货'\n};\nconst EXCHANGE_HAS_BEEN_CANCELLED = {\n className: 'close',\n title: '换货已取消'\n};\n\nconst EXCHANGE_SUCCESS = {\n className: 'success',\n title: '换货成功'\n};\n\nconst EXCHANGE_BACK_RETURN = {\n className: 'success',\n title: '退款中'\n};\n\nconst EXCHANGE_BACK_RETURN_SUCCESS = {\n className: 'success',\n title: '退款成功'\n};\n\nconst EXCHANGE_FAILURE = {\n className: 'close',\n title: '换货关闭'\n};\n\ninterface OrderDesc {\n className?: string;\n title: string;\n subTitle?: string;\n}\n\nfunction addNeedPayee(input: OrderDesc, needPayee: boolean): OrderDesc {\n return needPayee ? Object.assign(input, { subTitle: '请填写收款信息' }) : input;\n}\n\nexport function getOrderDesc(order: ISubOrder): OrderDesc {\n const needPayee = isOnlineRefundOrderNeedPayee(order); // 是否需要填写收款信息\n const failType = isOnlineRefundFailOrder(order); // 退款失败状态\n // 退款失败\n const ONLINE_RERUND_FAIL =\n failType === 'SERVICE'\n ? REFUND_FAILURE_AUTO\n : failType === 'MODIFY'\n ? REFUND_FAILURE_NEED_PAYEE\n : '';\n // 商家状态:退款失败或商家同意\n const MERCHANTS_STATUS =\n ONLINE_RERUND_FAIL || addNeedPayee(MERCHANTS_HAVE_AGREED_TO, needPayee);\n // 客服状态:退款失败或客服同意\n const CUSTOMER_STATUS = ONLINE_RERUND_FAIL || addNeedPayee(CUSTOMER_HAS_AGREED_TO, needPayee);\n // 退货申请中\n const IN_RETURN = addNeedPayee(IN_RETURN_FOR, needPayee);\n // 退款申请中\n const IN_REFUND = addNeedPayee(REFUND_APPLICATION, needPayee);\n // 换货也依赖这个字段\n const status = order.final_status;\n\n let map: { [key: number]: OrderDesc };\n switch (order.aftersale_type) {\n case AFTERSALE_TYPE.Exchange:\n map = {\n 40: EXCHANGE_WAITING_FOR,\n 41: EXCHANGE_HAVE_AGREED_TO,\n 45: EXCHANGE_HAS_REFUSED_TO,\n 47: IN_PROCESSING_SERVICE,\n 49: EXCHANGE_CUSTOMER_HAS_AGREED_TO,\n 48: [\n EXCHANGE_CUSTOMER_HAS_AGREED_TO_RETURN_0,\n EXCHANGE_CUSTOMER_HAS_AGREED_TO_RETURN_1,\n EXCHANGE_CUSTOMER_HAS_AGREED_TO_RETURN_2,\n EXCHANGE_CUSTOMER_HAS_AGREED_TO_RETURN_3\n ][order.refund_status || 0],\n 54: EXCHANGE_CUSTOMER_SERVICE_HAS_REFUSED_TO,\n 42: EXCHANGE_APPLICATION,\n 43: EXCHANGE_SEND_GOODS,\n 46: EXCHANGE_MERCHANT_HAS_REFUSED_TO,\n 50: IN_PROCESSING_SERVICE,\n 44: EXCHANGE_SUCCESS,\n 51: EXCHANGE_BACK_RETURN,\n 52: EXCHANGE_BACK_RETURN_SUCCESS,\n 53: EXCHANGE_HAS_BEEN_CANCELLED,\n 55: EXCHANGE_FAILURE,\n 56: EXCHANGE_CUSTOMER_AGREED_TO\n };\n break;\n default:\n map = {\n 6: IN_RETURN,\n 7: FOR_REFUND,\n 8: IN_PROCESSING_SERVICE,\n 9: REFUND_FAILURE,\n 10: FOR_REFUND,\n 11: HAVE_TO_RETURN,\n 12: MERCHANTS_STATUS,\n 13: IN_PROCESSING_SERVICE,\n 14: CUSTOMER_STATUS,\n 15: RETURN_HAS_BEEN_CANCELLED,\n 16: IN_REFUND,\n 17: REFUND_HAS_AGREED_TO,\n 21: REFUND_SUCCESS,\n 22: REFUND_SUCCESS,\n 23: IN_RETURN,\n 24: REFUND_SUCCESS,\n 25: REFUND_HAS_BEEN_CANCELLED,\n 26: PRE_MERCHANT_HAS_REFUSED_TO,\n 27: MERCHANT_HAS_REFUSED_TO,\n 28: CUSTOMER_SERVICE_HAS_REFUSED_TO,\n 29: MERCHANT_HAS_REFUSED_TO,\n 30: IN_REFUND,\n 31: REFUND_HAS_BEEN_CANCELLED,\n 32: MERCHANTS_STATUS,\n 33: isVoucherOrder(order)\n ? order.can_apply_aftersale\n ? VOUCHER_REFUND_FAILED_CAN_APPLY\n : VOUCHER_REFUND_FAILED\n : MERCHANT_HAS_REFUSED_TO,\n 34: IN_PROCESSING_SERVICE,\n 35: CUSTOMER_STATUS,\n 36: CUSTOMER_SERVICE_HAS_REFUSED_TO,\n 37: REFUND_FAILURE,\n 38: REFUND_SUCCESS,\n 39: REFUND_SUCCESS\n };\n break;\n }\n\n if (status in map) {\n return map[status];\n }\n return {\n className: '',\n title: '',\n subTitle: ''\n };\n}\n\nfunction getYushiOrderDesc(type: number): string {\n switch (type) {\n case 2:\n return '质检中';\n case 3:\n return '鉴定通过';\n case 4:\n return '鉴定未通过';\n default:\n return '';\n }\n}\n\nexport function getMainOrderDesc(order: IOrder): string {\n const shopOrderStatus = order.shop_order_status;\n const payType = order.pay_type;\n const yushiOrderStatus = getYushiOrderStatus(order);\n const yushiOrderDesc = getYushiOrderDesc(yushiOrderStatus);\n\n // 由于圈复杂度问题,把玉石类的状态单独提出\n if (yushiOrderDesc) {\n return yushiOrderDesc;\n }\n\n if (shopOrderStatus === 1 && (payType === PayType.WECHAT || payType === PayType.ALIPAY)) {\n return '待支付';\n }\n if (shopOrderStatus === 1 && payType === PayType.COD) {\n return '待确认';\n }\n if (shopOrderStatus === 2) {\n return isVoucherOrder(order) ? '待发券' : '待发货';\n }\n if (shopOrderStatus === 3) {\n return isVoucherOrder(order) ? '未使用' : '已发货';\n }\n if (shopOrderStatus === 4) {\n return '已取消';\n }\n if (shopOrderStatus === 5 && isVoucherOrder(order)) {\n return '已使用';\n }\n if (shopOrderStatus === 16) {\n return '退款申请中';\n }\n if (shopOrderStatus === 17) {\n return '退款已同意';\n }\n if (shopOrderStatus === 21) {\n return '退款成功';\n }\n if (shopOrderStatus === 25) {\n return '退款已取消';\n }\n if (shopOrderStatus === 26) {\n return '商家已拒绝';\n }\n if (shopOrderStatus === 101) {\n return '部分发货';\n }\n if (BASE_AFTERSALE.indexOf(shopOrderStatus) !== -1) {\n return '交易成功';\n }\n return order.order_status_str;\n}\n\n// 订单列表的子订单售后状态描述性文案\nexport const getSubOrderDesc = (subOrder: ISubOrder, shopOrder: IOrder) => {\n if (isPreRefundOrder(shopOrder.shop_order_status)) return;\n const desc = getOrderDesc(subOrder);\n return desc ? desc.title : '';\n};\n\n// 获取订单卡片售后相关信息\nexport function getOrderAfterSaleDesc(order: ISubOrder) {\n return getOrderDesc(order);\n}\n\nexport function getPayTextDesc(order: IOrder) {\n const { final_status, pay_type } = order;\n if (pay_type === PayType.COD) {\n return '货到支付';\n }\n if (final_status === 1) {\n return '待支付';\n }\n if (final_status === 4) {\n return '未支付';\n }\n return '已支付';\n}\n\n// 是否是售前订单,此时是整单售后状态\nexport function isPreRefundOrder(status: number) {\n return [16, 17, 21, 25, 26].indexOf(status) !== -1;\n}\n","\nvar content = require(\"!!../../../node_modules/thread-loader/dist/cjs.js??ref--8-1!../../../node_modules/css-loader/dist/cjs.js??ref--8-2!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/dist/cjs.js!./index.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/thread-loader/dist/cjs.js??ref--8-1!../../../node_modules/css-loader/dist/cjs.js??ref--8-2!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/dist/cjs.js!./index.scss\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/thread-loader/dist/cjs.js??ref--8-1!../../../node_modules/css-loader/dist/cjs.js??ref--8-2!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/dist/cjs.js!./index.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar urlEscape = require(\"../../../node_modules/css-loader/dist/runtime/url-escape.js\");\nvar ___CSS_LOADER_URL___0___ = urlEscape(require(\"./imgs/coupon-s-left.png\"));\n\n// Module\nexports.push([module.id, \".goods-card{display:inline-block;background-color:#ffffff;width:4.58667rem;height:7.25333rem;margin-bottom:0.21333rem;-webkit-border-radius:var(--img-border-radius);-moz-border-radius:var(--img-border-radius);border-radius:var(--img-border-radius);-webkit-box-shadow:0 1px 8px 0 rgba(222,222,222,0.5);-moz-box-shadow:0 1px 8px 0 rgba(222,222,222,0.5);box-shadow:0 1px 8px 0 rgba(222,222,222,0.5);overflow:hidden}.goods-card__main{-webkit-box-flex:1;-webkit-flex-grow:1;-moz-box-flex:1;flex-grow:1}.goods-card__name{margin:0.18667rem 0.21333rem 0;color:#333333;font-size:0.34667rem;font-weight:bold;line-height:1.4;min-height:0.96rem}.goods-card__name--text{overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis;display:-webkit-box !important;-webkit-line-clamp:2;overflow-wrap:break-word;-webkit-box-orient:vertical;max-width:98%;word-break:break-all}.goods-card__name--label{background:#FF264A;color:white;height:16Px;line-height:16Px;margin-right:0.10667rem;font-size:0.29333rem;display:inline-block;padding:0 0.10667rem;vertical-align:top;-webkit-border-radius:2Px;-moz-border-radius:2Px;border-radius:2Px}.goods-card__name--label-other{background:#ef5151;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:0.05333rem;color:#fff;font-size:0.26667rem;padding:0.02667rem 0.05333rem;vertical-align:top;margin-right:0.10667rem}.goods-card.goods-card--clicked .goods-card__name{color:#999999}.goods-card__img{position:relative;-webkit-flex-shrink:0;flex-shrink:0;width:4.58667rem;height:4.58667rem;background-position:50%;-webkit-background-size:cover;-moz-background-size:cover;background-size:cover;overflow:hidden}.goods-card__img--main{width:100%;height:100%}.goods-card__img--tag-top{position:absolute;left:0;top:0;height:1.22667rem;width:1.22667rem}.goods-card__img--tag-bottom{position:absolute;right:0;bottom:0;height:0.53333rem;width:100%}.goods-card__img .image__container--component{-webkit-border-radius:var(--img-border-radius) var(--img-border-radius) 0 0;-moz-border-radius:var(--img-border-radius) var(--img-border-radius) 0 0;border-radius:var(--img-border-radius) var(--img-border-radius) 0 0}.goods-card__img .image__container--mask{display:none;-webkit-border-radius:var(--img-border-radius) var(--img-border-radius) 0 0;-moz-border-radius:var(--img-border-radius) var(--img-border-radius) 0 0;border-radius:var(--img-border-radius) var(--img-border-radius) 0 0}.goods-card__info{height:18Px;overflow-x:hidden;color:#FF264A;margin:0.10667rem 0.21333rem 0;text-align:left}.goods-card__info-label{display:-webkit-inline-box;display:-webkit-inline-flex;display:-moz-inline-box;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;align-items:center;font-size:11Px;background-color:#FFFAFB;height:16Px;-webkit-border-radius:2Px;-moz-border-radius:2Px;border-radius:2Px;line-height:16Px;color:#FF264A}.goods-card__info-promotion{padding:0 4Px;margin-right:4Px;position:relative;position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;white-space:nowrap}.goods-card__info-promotion::after{content:' ';pointer-events:none;position:absolute;z-index:0;top:0;left:0;border:1Px solid rgba(255,38,74,0.5);border-all:1Px solid rgba(255,38,74,0.5);width:100%;height:100%;-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-o-transform-origin:0 0;transform-origin:0 0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-max-device-pixel-ratio: 2.99){.goods-card__info-promotion::after{-webkit-border-radius:-webkit-calc(2Px * 2);-moz-border-radius:-moz-calc(2Px * 2);border-radius:calc(2Px * 2);width:200%;height:200%;-webkit-transform:scale(0.5);-moz-transform:scale(0.5);-o-transform:scale(0.5);transform:scale(0.5)}}@media (-webkit-min-device-pixel-ratio: 3){.goods-card__info-promotion::after{-webkit-border-radius:-webkit-calc(2Px * 3);-moz-border-radius:-moz-calc(2Px * 3);border-radius:calc(2Px * 3);width:300%;height:300%;-webkit-transform:scale(0.333);-moz-transform:scale(0.333);-o-transform:scale(0.333);transform:scale(0.333)}}.goods-card__info-coupon{background-image:url(\" + ___CSS_LOADER_URL___0___ + \");background-repeat:no-repeat;background-position:left;-webkit-background-size:auto 100%;-moz-background-size:auto 100%;background-size:auto 100%;position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:relative;box-sizing:border-box;position:relative;box-sizing:border-box;white-space:nowrap}.goods-card__info-coupon::after{content:' ';pointer-events:none;position:absolute;z-index:0;top:0;left:0;border-right:1Px solid rgba(255,38,74,0.5);width:100%;height:100%;-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-o-transform-origin:0 0;transform-origin:0 0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-max-device-pixel-ratio: 2.99){.goods-card__info-coupon::after{-webkit-border-radius:-webkit-calc(2Px * 2);-moz-border-radius:-moz-calc(2Px * 2);border-radius:calc(2Px * 2);width:200%;height:200%;-webkit-transform:scale(0.5);-moz-transform:scale(0.5);-o-transform:scale(0.5);transform:scale(0.5)}}@media (-webkit-min-device-pixel-ratio: 3){.goods-card__info-coupon::after{-webkit-border-radius:-webkit-calc(2Px * 3);-moz-border-radius:-moz-calc(2Px * 3);border-radius:calc(2Px * 3);width:300%;height:300%;-webkit-transform:scale(0.333);-moz-transform:scale(0.333);-o-transform:scale(0.333);transform:scale(0.333)}}.goods-card__info-coupon::after{content:' ';pointer-events:none;position:absolute;z-index:0;top:0;left:0;border-top:1Px solid rgba(255,38,74,0.5);width:100%;height:100%;-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-o-transform-origin:0 0;transform-origin:0 0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-max-device-pixel-ratio: 2.99){.goods-card__info-coupon::after{-webkit-border-radius:-webkit-calc(2Px * 2);-moz-border-radius:-moz-calc(2Px * 2);border-radius:calc(2Px * 2);width:200%;height:200%;-webkit-transform:scale(0.5);-moz-transform:scale(0.5);-o-transform:scale(0.5);transform:scale(0.5)}}@media (-webkit-min-device-pixel-ratio: 3){.goods-card__info-coupon::after{-webkit-border-radius:-webkit-calc(2Px * 3);-moz-border-radius:-moz-calc(2Px * 3);border-radius:calc(2Px * 3);width:300%;height:300%;-webkit-transform:scale(0.333);-moz-transform:scale(0.333);-o-transform:scale(0.333);transform:scale(0.333)}}.goods-card__info-coupon::after{content:' ';pointer-events:none;position:absolute;z-index:0;top:0;left:0;border-bottom:1Px solid rgba(255,38,74,0.5);width:100%;height:100%;-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-o-transform-origin:0 0;transform-origin:0 0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-max-device-pixel-ratio: 2.99){.goods-card__info-coupon::after{-webkit-border-radius:-webkit-calc(2Px * 2);-moz-border-radius:-moz-calc(2Px * 2);border-radius:calc(2Px * 2);width:200%;height:200%;-webkit-transform:scale(0.5);-moz-transform:scale(0.5);-o-transform:scale(0.5);transform:scale(0.5)}}@media (-webkit-min-device-pixel-ratio: 3){.goods-card__info-coupon::after{-webkit-border-radius:-webkit-calc(2Px * 3);-moz-border-radius:-moz-calc(2Px * 3);border-radius:calc(2Px * 3);width:300%;height:300%;-webkit-transform:scale(0.333);-moz-transform:scale(0.333);-o-transform:scale(0.333);transform:scale(0.333)}}.goods-card__info-coupon-label{display:inline-block;padding:0 4Px;padding-right:3Px;font-style:normal}.goods-card__info-coupon-text{padding:0 4Px}.goods-card__info-coupon.hair-line.right::before{width:1Px;background:rgba(255,38,74,0.5)}.goods-card__other{height:0.42667rem;line-height:0.58667rem;margin:0.16rem 0.21333rem 0;text-align:left;font-size:0.32rem;color:#BBBDBF;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-moz-box-pack:justify;justify-content:space-between}.goods-card__other-price{font-size:0.42667rem;color:#ff2649;font-weight:500}.goods-card__other-price--label{font-size:0.32rem;margin-right:0.05333rem}.goods-card-xl{width:100%;height:2.66667rem;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:flex}.goods-card-xl,.goods-card-l{position:relative;-webkit-box-shadow:0 4px 8px rgba(0,0,0,0.02);-moz-box-shadow:0 4px 8px rgba(0,0,0,0.02);box-shadow:0 4px 8px rgba(0,0,0,0.02);position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.goods-card-xl::after,.goods-card-l::after{content:' ';pointer-events:none;position:absolute;z-index:0;top:0;left:0;border:1Px solid #f2f2f2;border-all:1Px solid #f2f2f2;width:100%;height:100%;-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-o-transform-origin:0 0;transform-origin:0 0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-max-device-pixel-ratio: 2.99){.goods-card-xl::after,.goods-card-l::after{-webkit-border-radius:-webkit-calc(var(--img-border-radius) * 2);-moz-border-radius:-moz-calc(var(--img-border-radius) * 2);border-radius:calc(var(--img-border-radius) * 2);width:200%;height:200%;-webkit-transform:scale(0.5);-moz-transform:scale(0.5);-o-transform:scale(0.5);transform:scale(0.5)}}@media (-webkit-min-device-pixel-ratio: 3){.goods-card-xl::after,.goods-card-l::after{-webkit-border-radius:-webkit-calc(var(--img-border-radius) * 3);-moz-border-radius:-moz-calc(var(--img-border-radius) * 3);border-radius:calc(var(--img-border-radius) * 3);width:300%;height:300%;-webkit-transform:scale(0.333);-moz-transform:scale(0.333);-o-transform:scale(0.333);transform:scale(0.333)}}.goods-card-xl .image__container--mask,.goods-card-xl .image__container--component,.goods-card-l .image__container--mask,.goods-card-l .image__container--component{display:block;-webkit-border-radius:var(--img-border-radius) 0 0 var(--img-border-radius);-moz-border-radius:var(--img-border-radius) 0 0 var(--img-border-radius);border-radius:var(--img-border-radius) 0 0 var(--img-border-radius)}.goods-card-xl .goods-card__img,.goods-card-l .goods-card__img{width:2.66667rem;height:2.66667rem}.goods-card-xl .goods-card__other,.goods-card-l .goods-card__other{height:0.58667rem}.goods-card-l{width:7.89333rem;height:2.66667rem;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:flex;-webkit-box-shadow:0 4px 8px rgba(0,0,0,0.02);-moz-box-shadow:0 4px 8px rgba(0,0,0,0.02);box-shadow:0 4px 8px rgba(0,0,0,0.02)}\\n\", \"\"]);\n\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADkAAAAwCAMAAACcySJ/AAAAgVBMVEVHcEz/p7X/kqT/kqT/kqX/////k6X/kqT/k6f/k6T/lqf/k6X/k6b/kqr/AAD/gID/kqT/man/lKP/+vv/kqT/xs//obH/xc//rrz/7/L/5ur/na3/+fv/t8P/7PD/+fr/8/X/wsz/sb7/197/ydL/k6X/09r/lqj/tcH/5+v/lacBbVzIAAAAE3RSTlMA/vG/6gFHDkCj/rhcFQECzf0yoI36eQAAAMBJREFUSMftllcOAjEMRL1sr5Rs74V+/wPCmhN4kAJIzP+TIvslGaIkjsxNKg8lhzCYp0weisP9Mg5KlqJQiqJgUeLk+ZM05xEkN9MAkmmmdJJliZJVhZJrdJNsgubZfo681i1owr3pesgE1/Mt44bsk8h2dkYPkbR1rK6Vm7DG9ptaPluOdzmDpHs6aielp2UToAmxCdBW3jQBsu/1JiDG47fst16T/+/wtfvEGwbUatgEqEmxCVB7433ijRFuqQ8pGsrlutj5igAAAABJRU5ErkJggg==\"","\nvar content = require(\"!!../../../node_modules/thread-loader/dist/cjs.js??ref--8-1!../../../node_modules/css-loader/dist/cjs.js??ref--8-2!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/dist/cjs.js!./index.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/thread-loader/dist/cjs.js??ref--8-1!../../../node_modules/css-loader/dist/cjs.js??ref--8-2!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/dist/cjs.js!./index.scss\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/thread-loader/dist/cjs.js??ref--8-1!../../../node_modules/css-loader/dist/cjs.js??ref--8-2!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/dist/cjs.js!./index.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".sell-out{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;background:rgba(0,0,0,0.4)}.sell-out__img{position:absolute;top:50%;left:50%;width:61.7647059%;max-width:2rem;height:auto;-webkit-transform:translate(-50%, -50%);-moz-transform:translate(-50%, -50%);-o-transform:translate(-50%, -50%);transform:translate(-50%, -50%)}\\n\", \"\"]);\n\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANIAAADSCAMAAAAIR25wAAAAP1BMVEVHcEz///////////////////////////////////////////////////////////////////////////////9KjZoYAAAAFHRSTlMAKMhD4u8TCFb4g7dy1Z6sNmaTHArvOeMAAAv4SURBVHja7Z3ZtqsqEEUBQWmlcf3/t54Hm2hiIqJm54xhve1zcxOBmlWLopGQ22677bbbbrvttttuu+2222677bbbbrvttttu+xurKQ0hhEC75n9vSlfZ1jiu8DAlnEm2ov9h2zrZMgUo5pOOsgohUEpDJaNNxilAsSS7/6g5seWAa23VvR8+zwHeyvp/aI9lUCxlPGsttYNilv52HLAMysd6x4AaBRZ/dqwqr5SXe8FvpIHy1Q+2p7EOztaFzurgZPNrHieO9XRlwG3zSyMkVDoakmmrxK806pQGEUJIlxSXPxEU3DkNIoQQ6sH+PFB0HuzMxBIY2r8N6Vac7ipR/KX3dQapvmLg/V/JPyn4NY4vufgTopoW/iqvrw30HzidE/FKSJX5tvNVgl+roCvOw+cPtBzCnBdJojJXh9qOqffPSzWH09Ey+JMER0L6gnTxsG8EpYNI/RhK5U/5rRbxK96tkdbmIospjMQJwbHx6lu50KJ9BuhlxsjM8RYZ9b3sLlW7BIhr+oJ1fbxF30yDchyn2jKItPLTtbJHmVXfTewS6RWg5ROxg7FOfVtTRrSt+FRykaDHYlD8boPqyLAC0AIFoQ/1mP1mexrpFUS75emJH5ifqfTFBoUkoExG4SiUp6aOs6+VOzrNAZZZRONt6c8w3v0MQEvCRWFXp++E70Z6BdXu+S2KsjBcfSU0ZANEjouimpvfAui4KGpFCUhNiMkzx4UQ3DGfYtWcBdBhUST359imSk4B3LRJW6118owDcGnFrQoAOiqKdrtdI70Cb2NonkbNev4CSxlAB0VR2ud2nRZ4v7xHrYNo6VGAjokiustXg1cife41qjl8OAbQMVFkXL5TdB4ubn+8iRzmGEBHRFGVn8rqpHjMZQ0wp639uV2iqHHZsaHiQmc8ZEgCKF4HPUEURYTMtidk1Eg77XAOQOWiyGWWyqjbjiJNNMBZABWLIpk5SJVwWx1ftecCtBRF3dnNl1s1Zar52QAViqIqLzxa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McYYVwC411URrV6U70zeI4qGbRmfyid1kFGnlNqk43zEduuaAxOfbFH0AtCFljvnPSSKQqaEO0cAO3dowp0hisYM9K3LQb041nNbd1YMAJnvvWvDHq4gfBJFI0D2i+8EkMfvS38vir4K0OQ1qj0eXtbHmWoOnqXfTrUgzAkeviKKxk2vHeffvWCeilOuIX0WRfNNrx1332wT5e4UauvFqkhoxTwcnPUjeV53WgcmFeYALcMB/d44BcHO6r6Gidi83TVOHQ9faVF1XosIaVoI5t7l05p95VbaqMyp2ZzalN4K0sar6y/hTttbXv+v36uN+vLV5SQqd6WGCO4P3oRDnbjuTnt7bYe9dY32qhdadQz6j17UdtELrS57r1NWd17wQitqrnuvU16P8nNf5lcn5f76nXN1CydP7CH1C687pOasl/lJ93cvZnvWYuyMiaF0MIH8jEm2v2z/NMX8rQYR0i+uFNckQqtWLoH4AaaSKCq9dpGB6x99t3V/vDruebrOMigjyQ9bZxnAdMjhqq40gzLx99/SXUsvoFiSH8hqqEwO4F7+N++ID9Y7QDifYkW72X2fNMiovQPA20jJf2Z1ZZPhqt9QyTnnQvR/cJNiqMn/azRUMlqttbbWyor+z2257bbbbrvttttuu+2222677bbbbrvttttue2//AO1Yt/5UZKTgAAAAAElFTkSuQmCC\"","\nvar content = require(\"!!../../../node_modules/thread-loader/dist/cjs.js??ref--8-1!../../../node_modules/css-loader/dist/cjs.js??ref--8-2!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/dist/cjs.js!./index.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/thread-loader/dist/cjs.js??ref--8-1!../../../node_modules/css-loader/dist/cjs.js??ref--8-2!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/dist/cjs.js!./index.scss\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/thread-loader/dist/cjs.js??ref--8-1!../../../node_modules/css-loader/dist/cjs.js??ref--8-2!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/dist/cjs.js!./index.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".loading{text-align:center;background:transparent;color:#999;height:1.28rem;line-height:1.06667rem;font-size:0.32rem}\\n\", \"\"]);\n\n","import * as ActionConst from './const';\nimport env from 'libs/env';\nimport { IOrder, ISubOrder } from 'types/order';\n\n/**\n * @description 计算每一个子订单评论相关的操作\n * @param {Object} order 订单信息\n * @returns {{actions, level}} 操作按钮数组\n */\nexport const getSubOrderCommentAction = (order: ISubOrder) => {\n let action: string[] | null = null;\n\n if (order.comment_op === 1) {\n action = [ActionConst.CHECKOUT_COMMENT];\n } else if (order.comment_op === 2) {\n action =\n (env.isInToutiao || env.isInWechat) &&\n (!Object.prototype.hasOwnProperty.call(order, 'has_coupon_banner') ||\n order.has_coupon_banner === 1)\n ? [ActionConst.COMMENT_WITH_COUPON]\n : [ActionConst.PUBLISH_COMMENT];\n } else if (order.comment_op === 3) {\n action = [ActionConst.CHECKOUT_COMMENT];\n }\n\n return action;\n};\n\nexport const hasMultiCommentOrder = (order: IOrder | ISubOrder): boolean => {\n if (!order.sub_orders) {\n return false;\n }\n\n return (\n order.sub_orders.reduce((num: number, subOrder: ISubOrder) => {\n if ([1, 2, 3].indexOf(subOrder.comment_op) !== -1) {\n return num + 1;\n }\n\n return num;\n }, 0) > 1\n );\n};\n\nconst getCommentActionLevel = (order: ISubOrder) => {\n /**\n * 子订单是否有评论\n * 0 没有评论\n * 1 查看评价\n * 2 追加评价\n * 3 发表评价\n */\n if (order.comment_op === 1) {\n return 1;\n } else if (order.comment_op === 2) {\n return 3;\n } else if (order.comment_op === 3) {\n return 2;\n }\n\n return 0;\n};\n\n/**\n * @description 获取订单评论相关的操作\n * @param {Object} order 订单信息\n * @returns {{actions, level}} 操作按钮数组\n */\nexport const getOrderCommentAction = (order: IOrder) => {\n let commentAction: string[] | null = null;\n let commentLevel = 0;\n let commentOrderCounts = 0;\n\n order.sub_orders.forEach((subOrder) => {\n const action = getSubOrderCommentAction(subOrder);\n const actionLevel = getCommentActionLevel(subOrder);\n\n if (action) {\n commentOrderCounts += 1;\n if (actionLevel > commentLevel) {\n commentLevel = actionLevel;\n commentAction = action;\n }\n }\n });\n\n if (commentOrderCounts > 1 && commentAction) {\n commentAction = [commentAction[0]];\n }\n\n return commentAction as string[] | null;\n};\n","export default () => {\n return 13;\n};\n","import { FinalStatus, IOrder, ISubOrder, PolicyInfoItem } from 'types/order';\nimport { getProp, propKey } from 'utils/prop';\nimport { PayType } from 'config/order';\nimport { fixDateStr, formatTimeStr } from 'utils/time';\nimport moment from 'moment';\nimport safeGet from 'lodash/get';\n\nexport const assertStype = (order: ISubOrder, stype: number) => {\n return getProp(order, ['extra', 'campaign', 'meta', 'stype']) === stype;\n};\n\nexport const isInCampaign = (order: ISubOrder) => {\n return order.campaign_info && order.campaign_info.sale_price;\n};\n\n// 退货运费险标志是否展示\nexport const returnInsuranceObj = (order: IOrder | ISubOrder) => {\n let policyInfoArr = order.policy_info || []; // 保险数组\n return (\n policyInfoArr.find((item: PolicyInfoItem) => {\n return safeGet(item, 'policy_type', '') === 'RETURN_FREIGHT'; // 退货运费险\n }) || {\n ins_policy_no: '',\n status: 0,\n status_desc: '',\n policy_type: '',\n policy_detail: '',\n policy_amount: 0\n }\n );\n};\n// 是否是快闪店订单\nexport const isKsdOrder = (order: IOrder | ISubOrder) => {\n return assertStype(order, 8);\n};\n\n// 是否是拼团订单\nexport const isGroupBuy = (order: ISubOrder | ISubOrder) => {\n return assertStype(order, 2);\n};\n\n// 是否是f7项目的订单,小米快闪店活动\nexport const isF7Order = (order: IOrder | ISubOrder) => {\n const productId = order.product_id;\n\n return productId === '3321130738199486941' || productId === '3321129592097500461';\n};\n\n// 是否是f7项目的订单,vivo快闪店活动\nexport const isVoOrder = (order: IOrder | ISubOrder) => {\n const productId = order.product_id;\n\n return productId === '3330890571115030524';\n};\n\n// 是否是虚拟商品订单\nexport const isVirtualOrder = (order: ISubOrder | IOrder) => {\n return Number(getProp(order as Record, ['extra', 'order_type'])) === 2;\n};\n\nexport const canAftersaleOnFinish = (order: ISubOrder | IOrder) => {\n const afterSaleOnFinishPlatform = ['ez', 'ep'];\n // ez ep 商品不展示【申请售后】\n if (afterSaleOnFinishPlatform.indexOf(order.product_platform) >= 0) return false;\n // 虚拟商品订单已完成不展示【申请售后】\n if (isVirtualOrder(order) && order.final_status === 5) return false;\n return true;\n};\n\n/**\n * 是否是售后状态订单\n */\nexport const isAftersaleOrder = (order: IOrder) => {\n return (\n [\n FinalStatus.退货_在线退款成功,\n FinalStatus.退货_退款成功,\n FinalStatus.仅退款_成功,\n FinalStatus.仅退款_在线退款成功\n ].indexOf(order.final_status) !== -1\n );\n};\n\n/**\n * 换货状态订单\n * 40 - 售后换货-用户申请\n * 42 - 售后换货-用户填写退货物流\n * 43 - 售后换货-商家发货\n * 45 - 售后换货-商户审核(拒绝)\n * 46 - 售后换货-商户货物审核拒绝\n * 47 - 售后换货-用户申请仲裁\n * 50 - 售后换货-用户申请仲裁\n * 54 - 售后换货-客服仲裁(支持商户) / 售后换货-客服货物仲裁(支持商户)\n */\nexport const isExchangeOrder = (order: IOrder) => {\n return [40, 42, 43, 45, 46, 47, 50, 54].indexOf(order.final_status) !== -1;\n};\n\n// 是否是普通商品订单\nexport const isCommonOrder = (order: ISubOrder | IOrder) => {\n return Number(getProp(order as Record, ['extra', 'order_type'])) === 0;\n};\n\n// 是否是在线支付订单\nexport const isOnlineOrder = (order: IOrder | ISubOrder) => {\n return order.pay_type === PayType.WECHAT || order.pay_type === PayType.ALIPAY;\n};\n\n// 是否是货到付款订单\nexport const isCodOrder = (order: IOrder | ISubOrder) => {\n return order.pay_type === PayType.COD;\n};\n\n// 是否可以申请退货,暂时是7天\nexport const inReturnGoodsTime = (order: IOrder | ISubOrder) => {\n const currentTime = new Date().getTime() / 1000;\n\n return currentTime - Number(order.update_time) < 604800;\n};\n\n// 是否是母订单\nexport const isMainOrder = (order: IOrder | ISubOrder) => {\n return Object.prototype.hasOwnProperty.call(order, 'sub_orders');\n};\n\n// 是否是预售\nexport function isPresale(order: ISubOrder): boolean {\n return getProp(order, ['extra', 'pre_sale_type']) === '1';\n}\n\n// 是否鲁班自己设置发货时间\nexport function isLubanShipTime(order: ISubOrder): boolean {\n let exp_time = 0;\n if (getProp(order, ['extra', 'exp_ship_time'])) {\n exp_time = order.extra.exp_ship_time * 1000;\n }\n const gap = exp_time - new Date(fixDateStr(order.create_time)).getTime();\n return (\n gap > 172800000 &&\n order.biz_type === 1 &&\n (order.final_status === 1 || order.final_status === 2)\n );\n}\n\n// 是否是卡券类订单\n// 4: 抖音发码\n// 5: 商家发码\nexport function isVoucherOrder(order: ISubOrder) {\n const orderType = Number(getProp(order, ['extra', 'order_type']));\n return orderType === 4 || orderType === 5;\n}\n\n// 获取总价\nexport function getAmount(order: ISubOrder): number {\n if (isInCampaign(order) && order.campaign_info) {\n return order.campaign_info.sale_price / 100;\n } else {\n return order.combo_amount / 100;\n }\n}\n\n// 获取预售时间\nexport function getPresaleTime(order: ISubOrder): string {\n if (!isPresale(order) && !isLubanShipTime(order)) {\n return '';\n }\n if (!order || !order.extra || !order.extra.exp_ship_time) {\n return '';\n }\n\n const fixedToHour = isLubanShipTime(order);\n let time = order.extra.exp_ship_time;\n if (time.toString().length === 10) {\n time = time * 1000;\n if (fixedToHour) {\n time += 3600000;\n }\n }\n let date = new Date(time);\n\n // 修正00:00为24:00\n if (fixedToHour && date.getHours() === 0) {\n time -= 86400000;\n date = new Date(time);\n\n return `${date.getMonth() + 1}月${date.getDate()}日24:00`;\n }\n\n return `${date.getMonth() + 1}月${date.getDate()}日${formatTimeStr(\n date.getHours()\n )}:${formatTimeStr(fixedToHour ? 0 : date.getMinutes())}${\n fixedToHour ? '' : `:${formatTimeStr(date.getSeconds())}`\n }`;\n}\n\n// 获取预售时间\nexport function getPresaleDate(order: ISubOrder): string {\n if ([1, 4, 2, 16, 17, 21, 25, 26].indexOf(order.final_status) === -1) {\n return '';\n }\n if (!isPresale(order) && !isLubanShipTime(order)) {\n return '';\n }\n if (!order || !order.extra || !order.extra.exp_ship_time) {\n return '';\n }\n\n let time = order.extra.exp_ship_time;\n if (time.toString().length === 10) {\n time = time * 1000;\n }\n // 发货时间往后数一天\n let date = new Date(time);\n\n return `${date.getMonth() + 1}月${date.getDate()}日`;\n}\n\n// 是否可以编辑地址 6小时\nexport const canEditAddressTime = (order: IOrder | ISubOrder) => {\n const currentTime = new Date().getTime() / 1000;\n\n return currentTime - Number(order.update_time) < 6 * 60 * 60;\n};\n\nexport const isInOrderCenter = () => /\\/views\\/neworder\\/center/.test(location.href);\n\n/**\n * @description 判断玉石订单的状态\n * @param order 订单数据\n * @returns 订单状态:0普通订单逻辑,2待鉴定,3鉴定通过,4鉴定未通过,5已发货,6交易成功\n */\nexport const getYushiOrderStatus = (order: IOrder) => {\n const processType = order.service_process_type;\n const orderStatus = order.order_status;\n const processStatus = order.service_process_status;\n const processConclusion = order.service_process_conclusion;\n\n // 只有order_status为2/3/5的时候,玉石类订单和普通订单才有区别\n const isYushiDiff = orderStatus === 2 || orderStatus === 3 || orderStatus === 5;\n\n // 如果是非玉石订单,或者是玉石订单但和普通订单无区别,则返回0走普通订单逻辑\n if (processType !== 1 || !isYushiDiff) return 0;\n if (orderStatus === 3) return 5;\n if (orderStatus === 5) return 6;\n if (processStatus === 1) return 2;\n if (processStatus === 3 && processConclusion === 1) return 3;\n if (processStatus === 3 && processConclusion !== 1) return 4;\n\n return 0;\n};\n\n/**\n * 是否展示确认收货\n * @description 1、虚拟商品,展示确认收货\n * 2. 所有子单均满足:\n * a. 已发货状态 final_status = 3\n * b. 发货超过24小时、或者有物流信息\n * @param order\n */\nexport const canShowConfirm = (order: IOrder) => {\n if (isVirtualOrder(order)) return true; // 如果是虚拟商品,显示确认收货\n const isBefore24 = (time: number) => {\n if (!time) return false;\n return moment().isAfter(moment(time * 1000).add(24, 'h'));\n };\n // 检查每个商品单是否符合条件一\n // sub_orders 第一个对象为主单。构造过程见 services/v2/order/rebuild.ts rebuildSubOrders\n return order.sub_orders.every((o) => {\n let { final_status, logistics_time, logistics } = o;\n if (final_status !== 3) return false;\n // 存在物流信息 或者 发货时间超出24小时\n return !!logistics || isBefore24(logistics_time);\n });\n};\n\n/**\n * @description 是否是货到付款退款线上化订单,并且需要用户填写收款信息状态\n * @param order 订单数据\n */\nexport const isOnlineRefundOrderNeedPayee = (order: IOrder | ISubOrder) =>\n order.refund_type === 'ONLINE' && order.need_payee;\n\n/**\n * @description 货到付款退款线上化订单退款失败状态\n * @param order 订单数据\n * @returns false|'MODIFY'|'SERVICE' false非退款失败,MODIFY修改收款信息,SERVICE联系官方客服\n */\nexport const isOnlineRefundFailOrder = (order: IOrder | ISubOrder) => {\n const { refund_status, need_modify_payee } = order;\n if (refund_status !== 4) return false;\n if (need_modify_payee) return 'MODIFY';\n if (!need_modify_payee) return 'SERVICE';\n};\n\n/**\n * 价格补足末尾00\n */\nexport const priceFormat = (price: number) => {\n if (!price) {\n return '0.00';\n }\n try {\n const [firstPrice, secondPrice] = String(price.toFixed(2)).split('.');\n return `${firstPrice}.${secondPrice.length >= 2 ? secondPrice : `${secondPrice}0`}`;\n } catch (error) {\n return price;\n }\n};\n","import * as React from 'react';\nimport './goto-top.scss';\nimport { on, off } from '@byted/ecom-mobile-lib/lib/utils/dom';\nexport default function GoTop(props: { scrollItemId?: string }) {\n const [show, setShow] = React.useState(false);\n const scrollItem = props.scrollItemId\n ? document.getElementById(props.scrollItemId!)\n : ((window as unknown) as Element);\n function handle() {\n if (scrollItem && scrollItem.scrollTop > window.innerHeight) {\n setShow(true);\n } else {\n setShow(false);\n }\n }\n React.useEffect(() => {\n if (scrollItem) {\n on(scrollItem, 'scroll', handle);\n }\n return () => {\n scrollItem && off(scrollItem, 'scroll', handle);\n };\n }, [scrollItem]);\n if (!show) return null;\n return (\n {\n scrollItem &&\n scrollItem.scrollTo({\n top: 0,\n left: 0\n });\n }}\n >\n );\n}\n","import * as React from 'react';\nimport { Card } from '../card';\nimport { Activity, IActivity } from '../activity/index';\nimport { Category, ICategories } from '../category/index';\nimport { get } from 'libs/request';\nimport urlParams from 'libs/query';\nimport Loading from 'components/common/loading/index';\nimport { sendEvent } from 'libs/event';\nimport validPv from 'services/common/valid-pv';\nimport env from 'libs/env';\nimport mapUaToAppId from 'services/common/map-ua-to-app-id';\nimport ack from 'services/common/ack';\nimport './index.scss';\nimport { IGoodsCard } from 'types/goods';\nimport Gotop from './goto-top';\nimport { API_EC, API_ORIGIN } from 'config/host';\n\ninterface IGoodsFeedProps {\n goodsUrl?: string;\n outScrollDomId?: string;\n children?: any;\n area_type?: string;\n init?: boolean;\n}\n\nconst GoodsFeed = (props: IGoodsFeedProps) => {\n const [goodsList, updateGoods] = React.useState([]);\n const [page, changePage] = React.useState(0);\n const [triggerValidPv, hadValidPv] = React.useState(false);\n const { init } = props;\n React.useEffect(() => {\n validPv()!.then(() => {\n hadValidPv(true);\n });\n }, []);\n React.useEffect(() => {\n init && getGoods();\n }, [init]);\n\n const ackImpress = (data: { [index: string]: any }, page: number) => {\n const extra: { [index: string]: any } = {};\n if (!env.isInToutiaoProduct) {\n return;\n }\n if (data && data.list && data.list.length && data.recommond_request_id) {\n extra.goodsIds = data.recommond_groupids.join('|');\n extra.req_id = data.recommond_request_id;\n extra.app_id = mapUaToAppId();\n extra.version_id = (window as any).fxgVersionId;\n extra.load_times = page;\n extra.is_recommend = 1;\n ack(extra);\n }\n };\n const getOrderEventData = () => {\n if (props.area_type === '188') {\n return {\n order_id: urlParams.id\n };\n }\n if (props.area_type === '187') {\n return {\n tab_name: sessionStorage.getItem('order_center_tab_name')\n };\n }\n return {};\n };\n\n const getGoods = () => {\n const appId = mapUaToAppId();\n const content = '';\n const classifyId = 0;\n // eslint-disable-next-line prettier/prettier\n let url = `${props.goodsUrl}cids=${content}&classifyId=${classifyId}&page=${page}&pageSize=10&addActivity=1&app_id=${appId}`;\n if ((window as any).page_type) {\n const areaType = (window as any).page_type;\n const areaId = (window as any).page_id;\n url += `&area_type=${areaType}&area_id=${areaId}`;\n }\n if (urlParams.origin_type) {\n url += `&origin_type=${urlParams.origin_type}`;\n }\n if (urlParams.product_id) {\n url += `&product_id=${urlParams.product_id}`;\n }\n\n return get(url).then(\n (response) => {\n const res = (response as any).data;\n if (\n res.data &&\n Object.prototype.toString.call(res.data.list) === '[object Array]'\n ) {\n const ids = [];\n const activityIds: string[] = [];\n const recommendRequestId = res.data.recommond_request_id;\n const totalSize = goodsList.length;\n let list = res.data.list;\n list.forEach((s: Record, i: number) => {\n s.req_id = recommendRequestId;\n s.page = page;\n s.feed_index = totalSize + i + 1;\n if (s.card_type === 'goods') {\n ids.push(s.goods_id);\n sendEvent('show_product', {\n fxg_req_id: recommendRequestId,\n product_id: s.product_id,\n ...(props.area_type ? { area_type: props.area_type } : {}),\n ...getOrderEventData()\n });\n } else if (s.card_type === 'activity') {\n activityIds.push(s.id);\n }\n });\n updateGoods(goodsList.concat(list));\n // page += 1;\n changePage(page + 1);\n if (triggerValidPv) {\n ackImpress(res.data, page);\n }\n\n return res.data.list;\n }\n\n return [];\n },\n () => {\n return [];\n }\n );\n };\n\n /* eslint-disable prettier/prettier, max-len */\n return (\n <>\n {props.children ? (\n props.children\n ) : (\n
\n 推荐\n
\n )}\n
\n {goodsList.map((goods: IGoodsCard | IActivity | ICategories, index: number) => {\n const cardType = goods.card_type;\n if (cardType === 'goods') {\n return (\n \n );\n } else if (cardType === 'activity') {\n return ;\n } else if (cardType === 'category') {\n return ;\n }\n\n return null;\n })}\n
\n \n \n \n );\n};\n\nGoodsFeed.defaultProps = {\n goodsUrl: `${API_ORIGIN}/channel/ajaxGetGoods?`\n};\n\nexport default GoodsFeed;\n","import { sendEvent } from 'libs/event';\n\nlet triggerValidateInteraction = false;\nlet thenableRef;\n\n/**\n * send valid pv tracking after user interacts with the page.\n * e.g. fn(), fn(false), fn(true, options), fn(options)\n * @param {boolean} sendValidPv whether to send tracking request\n * @param {object} extra extra information of this tracking\n */\nexport default function validPv(sendValidPv = true, extra = {}) {\n /* eslint-disable no-param-reassign */\n if (arguments.length === 1 && typeof sendValidPv === 'object') {\n extra = sendValidPv;\n sendValidPv = true;\n }\n /* eslint-enable no-param-reassign */\n if (triggerValidateInteraction) return Promise.resolve();\n if (thenableRef) {\n return thenableRef;\n }\n thenableRef = new Promise((resolve, reject) => {\n const validClickHandler = () => {\n // eslint-disable-next-line no-use-before-define\n addOrRemoveListeners(false);\n };\n const scrollHandler = () => {\n // eslint-disable-next-line no-use-before-define\n addOrRemoveListeners(false);\n };\n const addOrRemoveListeners = (add: boolean) => {\n // iOS UIWebview click 和 scroll 事件均不会及时触发\n // 考虑改成 touchstart ?\n document[add ? 'addEventListener' : 'removeEventListener'](\n 'click',\n validClickHandler,\n true\n );\n document[add ? 'addEventListener' : 'removeEventListener'](\n 'scroll',\n scrollHandler,\n false\n );\n if (!add) {\n if (sendValidPv) sendEvent('valid_page_view', { ...extra });\n triggerValidateInteraction = true;\n resolve();\n }\n };\n\n addOrRemoveListeners(true);\n });\n\n return thenableRef;\n}\n","import { get } from 'libs/request';\nimport urlParams from 'libs/query';\n\n/* eslint-disable @typescript-eslint/indent, indent */\nexport default (data) => {\n /**\n * data包含了各个页面单独的字段\n * 包括req_id,version_id,goodsIds,app_id,load_times,is_recommend,\n * 其中is_recommend如果不传,默认为1\n */\n /* eslint-disable no-param-reassign */\n /* eslint-disable no-prototype-builtins */\n if (!Object.prototype.hasOwnProperty.call(data, 'is_recommend')) {\n data.is_recommend = 1;\n }\n /* eslint-enable no-param-reassign */\n /* eslint-enable no-prototype-builtins */\n /* eslint-disable one-var */\n const originType = urlParams.origin_type || 0;\n const originId = urlParams.origin_id || 0;\n const newSourceType = urlParams.new_source_type || 0;\n const newSourceId = urlParams.new_source_id || 0;\n const areaType = window.page_type || 0;\n const areaId = window.page_id || 0;\n const sourceType = urlParams.source_type || 0;\n const sourceId = urlParams.source_id || 0;\n const comeFrom = urlParams.come_from;\n // eslint-disable-next-line prettier/prettier\n get(`/log/impression?biz_type=\n ${data.biz_type}&campaign_id=\n ${data.campaign_id}&requestId=\n ${data.req_id}&version_id=\n ${data.version_id}&groupIds=\n ${data.goodsIds}&app_id=\n ${data.app_id}&type=4&come_from=\n ${comeFrom}&load_times=\n ${data.load_times}&origin_type=\n ${originType}&origin_id=\n ${originId}&new_source_type=\n ${newSourceType}&new_source_id=\n ${newSourceId}&area_type=\n ${areaType}&area_id=\n ${areaId}&source_type=\n ${sourceType}&source_id=\n ${sourceId}&is_recommend=\n ${data.is_recommend}`);\n};\n","import * as React from 'react';\nimport './index.scss';\nimport openLink from 'libs/open-link';\nimport { sendEvent } from 'libs/event';\n\nexport interface IActivity {\n id: number;\n name: string;\n // eslint-disable-next-line camelcase\n feed_title: string;\n // eslint-disable-next-line camelcase\n feed_subtitle: string;\n // eslint-disable-next-line camelcase\n card_type: string;\n type: number;\n content: string;\n // eslint-disable-next-line camelcase\n feed_image_url: string;\n}\n\nexport interface IActivityProps {\n activity: IActivity;\n beforeReportEvent?: (params: {\n [key: string]: string | number;\n }) => { [key: string]: string | number };\n beforeClickActivity?: (url: string, act: IActivity) => string;\n}\n\nexport function Activity(props: IActivityProps) {\n function retrieveActivityUrl(activity: IActivity) {\n if (activity.type === 1) {\n return '/views/channel/activity';\n }\n\n return activity.content;\n }\n\n function clickActivityEvent(id: number) {\n const extra = { activity_id: id };\n // props.beforeReportEvent(extra);\n sendEvent('click_activity_card', extra);\n }\n\n function clickActivity() {\n let url = retrieveActivityUrl(props.activity);\n if (url) {\n if (props.activity.type === 1) {\n url += '?id=' + props.activity.id;\n }\n // url = props.beforeClickActivity(url, props.activity);\n } else {\n url = '/errorpage/index?type=1';\n }\n clickActivityEvent(props.activity.id);\n openLink(url, { title: props.activity.name });\n }\n\n return (\n
\n
\n \n
\n
\n
\n \n {props.activity.feed_title}\n \n
\n
{props.activity.feed_subtitle}
\n
查看全部
\n
\n
\n );\n}\n","import * as React from 'react';\nimport './index.scss';\nimport openLink from 'libs/open-link';\nimport { sendEvent } from 'libs/event';\n\ninterface ICategory {\n name: string;\n id: number;\n}\n\nexport interface ICategories {\n // eslint-disable-next-line camelcase\n card_type: 'category';\n categories: ICategory[];\n // eslint-disable-next-line camelcase\n feed_index: number;\n page: number;\n // eslint-disable-next-line camelcase\n req_id: string;\n}\n\nexport interface ICategoryProps {\n categories: ICategories;\n beforeClickCategory?: (url: string) => string;\n beforeReportEvent?: (params: {\n [key: string]: string | number;\n }) => { [key: string]: string | number };\n}\n\nexport function Category(props: ICategoryProps) {\n const clickCategoryEvent = (id: number) => {\n const extra = { activity_id: id };\n if (props.beforeReportEvent) {\n props.beforeReportEvent(extra);\n }\n sendEvent('click_category_tag', extra);\n };\n\n const clickCategory = (cat: ICategory) => {\n clickCategoryEvent(cat.id);\n const url = '/views/channel/categorylist?cids=' + cat.id;\n openLink(url, { title: cat.name });\n };\n\n return (\n
\n

\n 细选\n

\n
\n {props.categories.categories.map((item) => {\n return (\n clickCategory(item)}\n key={item.id}\n className=\"category__list--detail\"\n >\n {item.name}\n \n );\n })}\n
\n
\n );\n}\n","import { IGoodsCard } from 'types/goods';\nimport env from 'libs/env';\n\nexport function getTagImg(goods: IGoodsCard, i: number) {\n if (goods.activity_current && goods.activity_current.tag_img) {\n const imgArr = goods.activity_current.tag_img.split(',');\n if (imgArr[i]) return imgArr[i];\n }\n\n return '';\n}\n\nfunction shouldDisplayActivity() {\n return env.isInToutiaoProduct || env.isInWechat;\n}\n\nexport function inActivity(goods: IGoodsCard) {\n if (!shouldDisplayActivity()) {\n return false;\n }\n if (goods.activity_current && goods.activity_current.campaign_id === '3280848729556555321') {\n return false;\n }\n if (goods.activity_current && typeof goods.activity_current.sale_price === 'number') {\n const begin = new Date(goods.activity_current.begin_time * 1000).getTime();\n const end = new Date(goods.activity_current.end_time * 1000).getTime();\n const now = Date.now();\n return (\n begin <= now &&\n now <= end &&\n goods.activity_current.left_stock > 0 &&\n goods.activity_current.status === 0\n );\n } else {\n return false;\n }\n}\n\nexport function sellOut(goods: IGoodsCard) {\n const checkGoodInfo = goods.sku_max_price === 0 && goods.sku_min_price === 0;\n if (goods?.activity_current) {\n const activity = goods.activity_current;\n return checkGoodInfo && activity?.sku_max_price === 0 && activity?.sku_min_price === 0;\n }\n return checkGoodInfo;\n}\n\nexport function isPreHeating(goods: IGoodsCard) {\n if (!goods.activity_current) {\n return false;\n }\n const begin = new Date(goods.activity_current.begin_time * 1000).getTime();\n const now = Date.now();\n\n return now < begin;\n}\n\nexport function computePrice(goods: IGoodsCard) {\n if (goods.activity_current && inActivity(goods)) {\n // 是以分为单位的\n return goods.activity_current.sale_price / 100;\n }\n\n if (goods.activity_current && isPreHeating(goods)) {\n // 是以分为单位的\n return goods.activity_current.sale_price / 100;\n }\n\n return calPrice(goods);\n}\n\nexport function calPrice(goods: IGoodsCard) {\n if (goods.stype === 2) {\n // 活动价格优先级最高\n return goods.campaign_price_new / 100;\n } else if (goods.sku_min_price) {\n // 这个价格的优先级比discount_price高,但是比campaign_price_new低\n return goods.sku_min_price / 100;\n } else {\n return goods.discount_price / 100;\n }\n}\n\nexport function canUseCoupon(goods: IGoodsCard) {\n return (\n goods.stype !== 2 &&\n goods.coupon_label &&\n (!goods.activity_current || goods.activity_current.stype !== 2)\n );\n}\n\nexport function inCampaign(goods: IGoodsCard) {\n // 如果 goods 本身有 stype === 2,或者在单独的活动中,且活动类型为 2。\n return (\n goods.stype === 2 ||\n (inActivity(goods) && goods.activity_current && goods.activity_current.stype === 2)\n );\n}\n\nexport function computeCampaignDifference(goods: IGoodsCard) {\n if (goods.activity_current && inActivity(goods)) {\n return (goods.discount_price - goods.activity_current.sale_price) / 100;\n } else {\n return (goods.discount_price - goods.campaign_price_new) / 100;\n }\n}\n\nexport function getSellText(goods: IGoodsCard) {\n if (Number(goods.sell_num) === 0) return '';\n return `已售${goods.sell_num}`;\n}\n\nexport const getReturnType = (returnType: string) => {\n const ReturnType = {\n Support: '1',\n Unsupport: '0',\n Partial: '2'\n };\n interface ReturnContent {\n text: string;\n type: string;\n }\n interface IReturnType {\n [key: string]: ReturnContent;\n }\n const returnMap: IReturnType = {\n [ReturnType.Support]: { text: '7天无理由退货', type: 'normal' },\n [ReturnType.Unsupport]: { text: '不支持7天无理由退货', type: 'disable' },\n [ReturnType.Partial]: { text: '拆封前支持7天无理由退货', type: 'normal' }\n };\n return returnMap[returnType];\n};\n\nexport const getDeliverTag = (day: number | undefined) => {\n if (!day) return '';\n return day <= 2 ? `下单后${day * 24}小时内发货` : day && `下单后${day}天内发货`;\n};\n","// 订单状态文案\nexport const orderStatusCopy: ReadonlyArray = [\n '开始',\n '待确认',\n '待发货',\n '已发货',\n '已取消',\n '已完成', // 5\n '退货中',\n '退货中',\n '退货中',\n '退货失败',\n '退货中', // 10\n '退货中',\n '退货成功',\n '退货中',\n '退货成功',\n '取消退货', // 15\n '退款中',\n '退款中',\n '退款中',\n '退款中',\n '退款失败', // 20\n '退款成功',\n '退货成功',\n '退货中',\n '退货成功'\n];\n\n// 支付文案\nexport const payCopy: ReadonlyArray = ['货到付款', '微信支付', '支付宝'];\n\n// 支付类型\nexport enum PayType {\n COD, // cash on delivery\n WECHAT,\n ALIPAY\n}\n\nexport const cancelReason = [\n { name: '我不想买了', value: '我不想买了' },\n { name: '信息填写错误,重新拍', value: '信息填写错误,重新拍' },\n { name: '价格没有别的平台便宜', value: '价格没有别的平台便宜' }\n];\n\nexport default {\n orderStatusCopy,\n payCopy,\n PayType,\n cancelReason\n};\n","\nvar content = require(\"!!../../../node_modules/thread-loader/dist/cjs.js??ref--8-1!../../../node_modules/css-loader/dist/cjs.js??ref--8-2!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/dist/cjs.js!./index.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/thread-loader/dist/cjs.js??ref--8-1!../../../node_modules/css-loader/dist/cjs.js??ref--8-2!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/dist/cjs.js!./index.scss\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/thread-loader/dist/cjs.js??ref--8-1!../../../node_modules/css-loader/dist/cjs.js??ref--8-2!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/dist/cjs.js!./index.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".activity{display:inline-block;background-color:#ffffff;width:4.53333rem;height:6.88rem;margin-bottom:0.29333rem;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:0.24rem;-webkit-box-shadow:0 1px 8px 0 rgba(222,222,222,0.5);-moz-box-shadow:0 1px 8px 0 rgba(222,222,222,0.5);box-shadow:0 1px 8px 0 rgba(222,222,222,0.5);overflow:hidden}.activity__img{position:relative;width:4.53333rem;height:4.53333rem;background:url(\\\"https://tms3.pstatp.com/foreground/static/img/zd-bg.png\\\") no-repeat;background-position:50%;-webkit-background-size:cover;-moz-background-size:cover;background-size:cover;overflow:hidden}.activity__img--detail{width:100%;height:100%}.activity__detail{background-color:#f85959;background-image:-webkit-linear-gradient(335deg, #ff9898 11%, #f85959);background-image:-moz-linear-gradient(335deg, #ff9898 11%, #f85959);background-image:-o-linear-gradient(335deg, #ff9898 11%, #f85959);background-image:linear-gradient(115deg, #ff9898 11%, #f85959);height:2.34667rem;text-align:center}.activity__detail-title{padding-top:0.13333rem;font-size:0}.activity__detail-title--text{position:relative;display:inline-block;color:#fff;font-size:0.32rem;line-height:0.45333rem}.activity__detail-title--text:before{content:'';position:absolute;left:-0.56rem;top:44%;width:0.37333rem;height:0.02667rem;background:#fff}.activity__detail-title--text:after{content:'';position:absolute;right:-0.56rem;top:44%;width:0.37333rem;height:0.02667rem;background:#fff}.activity__detail-subtitle{color:#fff;font-size:0.32rem;line-height:0.45333rem;margin:0.08rem 0 0.13333rem 0}.activity__detail-btn{position:relative;color:#fff;font-size:0.32rem;width:1.76rem;height:0.64rem;line-height:0.64rem;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0 auto}.activity__detail-btn:after{content:'';position:absolute;left:0;top:0;width:3.52rem;height:1.28rem;border:1px solid #fff;-webkit-border-radius:8px;-moz-border-radius:8px;border-radius:0.21333rem;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transform:scale(0.5);-moz-transform:scale(0.5);-o-transform:scale(0.5);transform:scale(0.5);-webkit-transform-origin:left top;-moz-transform-origin:left top;-o-transform-origin:left top;transform-origin:left top}\\n\", \"\"]);\n\n","\nvar content = require(\"!!../../../node_modules/thread-loader/dist/cjs.js??ref--8-1!../../../node_modules/css-loader/dist/cjs.js??ref--8-2!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/dist/cjs.js!./index.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/thread-loader/dist/cjs.js??ref--8-1!../../../node_modules/css-loader/dist/cjs.js??ref--8-2!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/dist/cjs.js!./index.scss\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/thread-loader/dist/cjs.js??ref--8-1!../../../node_modules/css-loader/dist/cjs.js??ref--8-2!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/dist/cjs.js!./index.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".category{display:inline-block;background-color:#f4f5f6;width:4.53333rem;height:6.88rem;margin-bottom:0.29333rem;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:0.24rem;-webkit-box-shadow:0 1px 8px 0 rgba(222,222,222,0.5);-moz-box-shadow:0 1px 8px 0 rgba(222,222,222,0.5);box-shadow:0 1px 8px 0 rgba(222,222,222,0.5);overflow:hidden;text-align:center}.category__name{position:relative;display:inline-block;color:#999;font-size:0.45333rem;line-height:0.50667rem;margin:0.53333rem 0}.category__name:before{content:'';position:absolute;left:-0.8rem;top:44%;width:0.66667rem;height:0.02667rem;background:#999}.category__name:after{content:'';position:absolute;right:-0.8rem;top:44%;width:0.66667rem;height:0.02667rem;background:#999}.category__list{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-webkit-justify-content:space-around;justify-content:space-around;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;align-items:center}.category__list--detail{width:2rem;height:0.74667rem;line-height:0.74667rem;background-color:#ffffff;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:0.10667rem;color:#505050;font-size:0.34667rem;margin-bottom:0.48rem}\\n\", \"\"]);\n\n","import { sendEvent } from 'libs/event';\nimport urlParams from 'libs/query';\nimport env from 'libs/env';\nimport generateGuid from './guid';\n\nexport enum EPageType {\n 订单列表页 = 18,\n 发表评价页 = 60,\n 追评页 = 61,\n 订单详情 = 86,\n 物流详情 = 97,\n 申请售后选择商品 = 179,\n 申请售后选择退款方式 = 180,\n 申请售后填写原因 = 181,\n 售后详情页 = 182,\n 填写退货物流页 = 183,\n 评价完成页 = 184,\n 查看评价页 = 185,\n 改好评页 = 186,\n 换货申请页 = 901,\n 换货详情页 = 902,\n 换货物流填写页 = 903,\n 地址列表页 = 89,\n 地址编辑页 = 90,\n 修改地址页 = 195\n}\n\nlet handle = 0;\nconst guid = generateGuid();\n\nexport default {\n pv(page_type: number, extra: any = {}) {\n Object.assign(window, {\n page_type,\n page_id: '0'\n });\n sendEvent('page_view', {\n ...extra,\n order_id: urlParams.id || urlParams.order_id,\n b_type: env.bType\n });\n },\n\n stay(page_type: number, extra: any = {}) {\n if (process.env.NODE_ENV === 'development') return;\n Object.assign(window, {\n page_type,\n page_id: '0'\n });\n const supplement = {\n order_id: urlParams.order_id,\n duration: '1',\n unique_id: guid,\n b_type: env.bType\n };\n const data = { ...supplement, ...extra };\n\n if (handle) {\n window.clearInterval(handle);\n }\n\n handle = window.setInterval(() => {\n if (document.visibilityState === 'visible') {\n sendEvent('page_stay', data);\n }\n }, 1000);\n }\n};\n","export type propKey = string | number;\n\n/* eslint-disable no-undefined */\n\nexport const getProp = (\n object: Record,\n path: propKey[],\n defaultVal?: unknown\n): unknown => {\n if (path.length === 0) {\n return object === undefined ? defaultVal : object;\n }\n if (object === null || object === undefined || typeof object[path[0]] === 'undefined') {\n return defaultVal;\n }\n\n return getProp(object[path.shift()!] as Record, path, defaultVal);\n};\n","import { buttonType } from 'src/components/button';\nimport { ActionType } from 'src/services/v2/order/const';\n\n/* eslint-disable camelcase */\n\nexport enum FinalStatus {\n 待确认 = 1,\n 已取消 = 4,\n 待发货 = 2,\n 已发货 = 3,\n 交易成功 = 5,\n\n 退货_申请 = 6,\n 退货_客服处理退货 = 8,\n 退货_商家处理退货_不能取消 = 23, // 客服发起的状态,商家不能取消\n 退货_商家同意退货 = 7,\n 退货_客服同意退货 = 10,\n 退货_已退货 = 11,\n 退货_客服处理退款 = 13,\n 退货_商家同意退款 = 12,\n 退货_客服同意退款 = 14,\n 退货_退货取消 = 15,\n 退货_退款成功 = 24, // 仅货到付款订单\n 退货_在线退款成功 = 22, // 仅在线支付订单\n 退货_退款失败 = 9,\n 退货_商家拒绝退货 = 27,\n 退货_客服拒绝退货_款 = 28, // 客服拒绝退货和退款都是它\n 退货_商家拒绝退款 = 29,\n\n 仅退款_申请 = 30,\n 仅退款_取消 = 31,\n 仅退款_同意 = 32,\n 仅退款_成功 = 38, // 仅货到付款订单\n 仅退款_在线退款成功 = 39, // 仅在线支付订单\n 仅退款_商家拒绝 = 33,\n 仅退款_客服拒绝 = 36,\n 仅退款_客服处理 = 34,\n 仅退款_客服同意 = 35,\n 仅退款_失败 = 37,\n\n 仅退款_售前_申请 = 16,\n 仅退款_售前_同意 = 17,\n 仅退款_售前_申请客服介入 = 18, // 废弃,兼容历史订单\n 仅退款_售前_客服支持商户 = 19, // 废弃,兼容历史订单\n 仅退款_售前_客服支持用户 = 20, // 废弃,兼容历史订单\n 仅退款_售前_成功 = 21,\n 仅退款_售前_取消 = 25,\n 仅退款_售前_拒绝 = 26\n}\n\n// 最近一次操作路径 用于判断订单只有一个失败状态的时候区分失败原因\nexport enum LatelyOperateStep {\n 用户申请 = 1,\n 商户第一次审核,\n 客服第一次仲裁,\n 用户填写物流,\n 商户第二次审核,\n 客服第二次仲裁\n}\nexport interface PolicyInfoItem {\n ins_policy_no: string;\n status: number;\n status_desc: string;\n policy_type: string;\n policy_detail: string;\n policy_amount?: number;\n}\n\nexport interface IMainAftersale {\n return: {\n available: number;\n };\n refund: {\n available: number;\n };\n can_apply: number;\n unapply_reason: string;\n can_refund_post: number;\n refund_post_amount: number;\n can_part_refund: number;\n part_refund_amount: number;\n}\n\nexport interface IMainPresale {\n can_apply: number;\n unapply_reason: string;\n apply_type: 'SHOP' | 'PRODUCT';\n}\n\nexport interface IMainOrder {\n order_id: string;\n // 售后单 ID,不存在则无售后\n aftersale_id?: string;\n user_id: number;\n user_type: number;\n user_name: string;\n shop_order_status: number;\n order_status: number;\n final_status: FinalStatus;\n\n service_process_type: number; // 1为玉石类订单\n service_process_status: number; // 1为玉石类订单待鉴定,3为玉石类订单鉴定完成\n service_process_conclusion: number; // 1为玉石类订单鉴定通过\n biz: number; // 8用于判断玉石类订单退款申请时间为12小时内\n\n lately_operate_step?: LatelyOperateStep;\n shop_id: string;\n product_id: string;\n combo_id: number;\n combo_amount: number;\n combo_num: number;\n pay_type: 0 | 1 | 2;\n biz_type: number;\n sub_b_type: 0 | 1 | 2 | 3; // 0-未知;1-app;2-小程序;3-H5\n b_type: number;\n post_amount: number;\n total_amount: number;\n post_code?: string;\n post_receiver: string;\n post_tel: string;\n logistics_id: number;\n logistics_time: number;\n logistics_code: string;\n receipt_time: number;\n buyer_words: string;\n seller_words: string;\n cancel_remark: string;\n urge_cnt: number;\n is_comment: number;\n coupon_meta_id: string;\n campaign_info?: {\n campaign_name: string;\n sale_price: number;\n };\n coupon_info?: {\n platform_coupon_amount: number;\n shop_coupon_amount: number;\n };\n platform_campaign_tag_list?: {\n tag_icon_url: string;\n }[];\n extra: {\n // 订单取消时间\n order_expire_time: number;\n /**\n * @description 预计发货时间\n */\n exp_ship_time: number;\n /**\n * @description 商品类型\n * 0 是普通订单\n * 2 虚拟商品订单\n * 4 卡券类\n */\n order_type: '0' | '2' | '4';\n /**\n * @description 预售类型\n * 0 非预售\n * 1 预售\n */\n pre_sale_type: '0' | '1';\n supply_id: number;\n v_type?: number;\n campaign?: {\n order_expire_time?: number;\n meta?: {\n stype: number;\n campaign_id: string;\n };\n };\n platform_full_discount?: number;\n shop_full_discount?: number;\n };\n pid: string;\n shop_tel: string;\n\n shop_name: string; // 店铺名称\n old_shop_name: string; // 后端给订单列表改版ABtest新加的店铺名称,测试完之后下线\n\n wechat: string;\n product_name: string;\n img: string;\n product_pay_type: 0 | 1 | 2;\n product_platform: string;\n out_product_id: string;\n create_time: string;\n update_time: number;\n gift_spec_desc: string;\n spec_desc: string;\n post_addr: string;\n order_status_str: string;\n has_coupon_banner: number;\n origin_type: string;\n origin_id: string;\n comment_op: number;\n service_tel: string;\n report_id__for_event: number;\n refund_create_timestamp?: number;\n refund_referee_timestamp?: number;\n refund_referee_comment?: string;\n refund_shop_comment?: string;\n refund_refuse_reason?: string;\n aftersale_apply_timestamp?: number; // 申请售后时间\n aftersale_logistics_timestamp?: number; // 售后用户发货时间\n aftersale_referee_again_timestamp?: number; // 售后同意退款时间\n ship_text: string;\n logistics?: {\n express_company: string; // 物流公司拼音\n express_company_icon: string; // 物流公司图标\n postman_tel: string; // 快递员手机号\n name: string; // 物流公司中文名\n trackingno: string; // 运单编号\n signatory: string; // 签收人\n data: Array<{\n title: string; // 物流状态\n icon: string; // 状态图标\n state: string;\n time: string;\n ftime: string; // 物流展示以这个为准\n context: string; // 物流状态详细信息\n }>;\n };\n snapshot_url?: string;\n addr_edited?: number; // 是否编辑过地址,非零值编辑过\n voucher?: IOrderVoucher[]; // 券码列表,order_type=4时有\n voucher_expire_at?: number; // 券码过期绝对时间戳\n can_apply_aftersale: boolean; // 能否申请售后\n aftersale_service: unknown;\n has_snapshot?: boolean;\n\n shop_logo?: string; // 店铺头像\n shop_user_id?: string; // 达人店铺的达人uid,用于跳转抖音达人橱窗\n shop_sec_user_id?: string; // 达人店铺的达人加密uid,用于跳转抖音达人橱窗\n referrer_name?: string; // 推荐人名称\n referrer_user_id?: string; // 推荐人uid,用于跳转抖音达人橱窗\n referrer_sec_user_id?: string; // 推荐人加密uid,用于跳转抖音达人橱窗\n\n // 评价有礼\n comment_gift?: {\n credit: number; // 单位,分\n };\n\n // 货到付款退款线上化\n refund_type?: 'ONLINE' | 'OFFLINE'; // 是否是货到付款退款线上化订单\n refund_status?: number; // 值为4的时候表示退款失败\n need_modify_payee?: boolean; // 退款失败状态需要用户重新填写打款信息\n need_payee?: boolean; // 退货申请状态是否需要用户填写打款信息\n aftersale_type?: number; // 订单类型\n aftersale_status?: number; // 换货状态\n test_tag?: string; // AB流量实验 json {\"caijing\":\"B\"} B财经流量 A 或者key为空:电商原流量\n policy_info?: PolicyInfoItem[]; // 退货运费险\n is_multi_package?: boolean; // 是否多包裹订单\n sent_package_count?: number; // 已发包裹数量\n exp_ship_time?: number; // 剩余包裹承诺发货时间\n\n can_delete?: boolean; // 是否展示 删除订单\n}\n\nexport interface IOrderVoucher {\n code: string; // 券码\n code_id: string; // 券码 id\n status: 1 | 2 | 3; // 券码状态:1-有效,2-已使用,3-已过期\n res_id: string; // 资源ID\n res_order_id: string; // 资源订单ID\n}\n\nexport interface ISubOrder\n extends Pick<\n IMainOrder,\n | 'order_id'\n | 'product_id'\n | 'product_name'\n | 'origin_type'\n | 'origin_id'\n | 'img'\n | 'spec_desc'\n | 'total_amount'\n | 'post_amount'\n | 'combo_id'\n | 'combo_amount'\n | 'combo_num'\n | 'coupon_info'\n | 'campaign_info'\n | 'final_status'\n | 'pay_type'\n | 'biz_type'\n | 'sub_b_type'\n | 'b_type'\n | 'comment_op'\n | 'has_coupon_banner'\n | 'extra'\n | 'create_time'\n | 'update_time'\n | 'is_comment'\n | 'receipt_time'\n | 'can_apply_aftersale'\n | 'policy_info'\n | 'platform_campaign_tag_list'\n | 'logistics_time'\n | 'logistics'\n > {\n [index: string]: any;\n}\n\nexport interface IOrder extends IMainOrder {\n sub_orders: ISubOrder[];\n // 标记是否是自订单, 用于OrderId过滤\n isMainOrder?: boolean;\n}\n\nexport interface IPureOrderAction {\n name: string;\n}\n\nexport interface IOrderActionWithStyle extends IPureOrderAction {\n /**\n * @description 额外的支付按钮样式\n */\n class?: buttonType;\n}\n\nexport interface IOrderAction extends IOrderActionWithStyle {\n /**\n * button 的类型\n */\n type?: ActionType;\n /**\n * @description 跳转链接\n */\n link?: {\n link: string;\n title: string;\n type: string;\n };\n}\n\n// 订单中心切往订单详情的行为枚举\nexport enum EActionEnum {\n Cancel = 'cancel',\n Pay = 'payagain'\n}\n"],"sourceRoot":""}