Commit abdcfd3d authored by LeeJiancong's avatar LeeJiancong
parents caf9a12a 50944c57
{"userRegister":{"useType":{"memberType":[{"id":1,"typeName":"企业会员"},{"id":3,"typeName":"渠道企业会员"},{"id":4,"typeName":"渠道个人会员"},{"id":2,"typeName":"个人会员"}],"businessType":[{"id":1,"typeName":"采购"},{"id":39,"typeName":"供货"}]}},"web":{"shopInfo":[{"id":302,"name":"云鲜采企业商城","type":1,"environment":1,"logoUrl":"https://shushangyun01.oss-cn-shenzhen.aliyuncs.com/5b19a059530a4060984fc045125da1f81597395561658.png","describe":null,"state":1,"url":"/"},{"id":303,"name":"云鲜采渠道商城","type":3,"environment":1,"logoUrl":"https://shushangyun01.oss-cn-shenzhen.aliyuncs.com/a63c8c81e74947f88c64d4c72bfb565c1597395598958.png","describe":null,"state":1,"url":"/shop"}]},"global":{"siteId":502,"siteUrl":"http://localhost:4396","logo":"https://shushangyun01.oss-cn-shenzhen.aliyuncs.com/4db4e7c5424c471c968ab540bce027f31597319423082.png","countryList":[{"name":"简体中文-ZH","key":"zh-CN","icon":"http://lingxi-frontend-test.oss-cn-hangzhou.aliyuncs.com/images/china.png"},{"name":"English-EN","key":"en-US","icon":"http://lingxi-frontend-test.oss-cn-hangzhou.aliyuncs.com/images/us.png"},{"name":"日本語-JP","key":"jp","icon":"http://lingxi-frontend-test.oss-cn-hangzhou.aliyuncs.com/images/japen.png"},{"name":"한국어-KO","key":"ko","icon":"http://lingxi-frontend-test.oss-cn-hangzhou.aliyuncs.com/images/koren.png"}]}}
{"userRegister":{"useType":{"memberType":[{"id":1,"typeName":"企业会员"},{"id":3,"typeName":"渠道企业会员"},{"id":4,"typeName":"渠道个人会员"},{"id":2,"typeName":"个人会员"}],"businessType":[{"id":1,"typeName":"采购"},{"id":39,"typeName":"供货"},{"id":40,"typeName":"供货商消费者"},{"id":41,"typeName":"供货商消费者渠道会员"}]}},"web":{"shopInfo":[]},"global":{"siteId":502,"siteUrl":"http://localhost:4396","logo":"https://shushangyun01.oss-cn-shenzhen.aliyuncs.com/4db4e7c5424c471c968ab540bce027f31597319423082.png","countryList":[{"name":"简体中文-ZH","key":"zh-CN","icon":"http://lingxi-frontend-test.oss-cn-hangzhou.aliyuncs.com/images/china.png"},{"name":"English-EN","key":"en-US","icon":"http://lingxi-frontend-test.oss-cn-hangzhou.aliyuncs.com/images/us.png"},{"name":"日本語-JP","key":"jp","icon":"http://lingxi-frontend-test.oss-cn-hangzhou.aliyuncs.com/images/japen.png"},{"name":"한국어-KO","key":"ko","icon":"http://lingxi-frontend-test.oss-cn-hangzhou.aliyuncs.com/images/koren.png"}]}}
......@@ -38,12 +38,13 @@ const memberCenterRoute = {
},
...routes,
{
path: '/noAuth',
path: '/memberCenter/noAuth',
auth: false,
component: '@/pages/403',
},
// 能力中心的404页
{
path: '/*',
auth: false,
component: '@/pages/404',
},
......
......@@ -22,13 +22,16 @@ const whiteLists = [
'/user/login',
'/user/register',
'/memberCenter',
'/memberCenter/noAuth',
'/commodity',
'/shops',
'/shop/commodity/detail',
'/shop/commodity',
'/shop',
'/infomation',
'/403',
'/404',
'/500',
'/noAuth'
]
......@@ -70,10 +73,11 @@ export function render(oldRender: Function) {
token: data.token
})
setRouters(data.urls)
oldRender()
})
} else {
oldRender()
}
oldRender()
}
/**
......@@ -84,21 +88,20 @@ export function render(oldRender: Function) {
* @param {*} { routes, matchedRoutes, location, action }
*/
export function onRouteChange({ routes, matchedRoutes, location, action }) {
console.log(`当前可访问的路由为`)
console.log(routes, matchedRoutes, location)
console.log('onRouteChange')
if (isDev) {
return;
}
if (whiteLists.includes(location.pathname)) return;
const routeAuthUrls = getRouters()
console.log(routeAuthUrls, "routeAuthUrls")
// 是否登录
if (getAuth()) {
if (routeAuthUrls.includes(location.pathname)) {
} else {
// history.replace('/')
// 无权限访问时
history.replace('/memberCenter/noAuth')
}
} else {
history.replace('/user/login')
......
......@@ -17,19 +17,8 @@ export interface UserRegister {
useType: UseType;
}
export interface ShopInfo {
id: number;
name: string;
type: number;
environment: number;
logoUrl: string;
describe?: any;
state: number;
url: string;
}
export interface Web {
shopInfo: ShopInfo[];
shopInfo: any[];
}
export interface CountryList {
......
......@@ -95,6 +95,11 @@
height: 32px;
line-height: 32px;
margin: 8px 0;
border-top-width: 1px;
border-left-width: 1px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
& label:nth-child(odd) {
......
......@@ -14,7 +14,6 @@ const NoFoundPage: React.FC<{}> = () => {
return (
<div className={styles.wrapper}>
<UserHeader logo={GlobalConfig.global.logo}/>
<div className={styles.errorBox}>
<Row>
<Col span={12}>
......
......@@ -153,14 +153,12 @@ const PropertyValue: React.FC<{}> = () => {
const confirm = (record: any) => {
PublicApi.postProductCustomerUpdateCustomerAttributeValueStatus({id: record.id, isEnable: !record.isEnable}).then(res=>{
//@ts-ignore
ref.current.reload()
})
}
const clickDelete = (record: any) => {
PublicApi.postProductCustomerDeleteCustomerAttributeValue({ id: record.id }).then(res=>{
//@ts-ignore
ref.current.reload()
})
}
......
......@@ -60,8 +60,8 @@ const AddProducts: React.FC<{}> = (props) => {
}, [])
const onSave = () => {
console.log('点击保存')
console.log(formRefs, 'formrefs')
// console.log('点击保存')
// console.log(formRefs, 'formrefs')
if(formRefs.length > 0){
try{
let data = formRefs.map(async __ => {
......@@ -69,10 +69,10 @@ const AddProducts: React.FC<{}> = (props) => {
await __.current.validateFields()
)
})
console.log(data,'data')
// console.log(data,'data')
Promise.all(data).then((values) => {
// 提交的数据进行处理
console.log(values, productSelectAttribute, productAttributeAndImageParams, '所有数据')
// console.log(values, productSelectAttribute, productAttributeAndImageParams, '所有数据')
productSelectAttribute.length>0 && productSelectAttribute.map(_itme => {
delete _itme.attributeName
delete _itme.isPrice
......@@ -112,16 +112,19 @@ const AddProducts: React.FC<{}> = (props) => {
_params.logistics.weight = Number(_params.logistics.weight)
// 处理地址
let _commodityAreaList:any = []
// console.log(_params, '_params')
_params.commodityAreaList.length > 0 && _params.commodityAreaList.map(_itme => {
let _temp: any = {}
let pobj = areaOption.filter(_=>_.code===_itme[0])[0]
let cobj = pobj.areaResponses.filter(__=>__.code===_itme[1])[0]
_temp.provinceCode = pobj.code
_temp.provinceName = pobj.name,
_temp.cityCode = cobj.code,
_temp.cityName = cobj.name,
_commodityAreaList.push(_temp)
console.log(_itme, _temp, '地址的每一项')
if(_itme){
let _temp: any = {}
let pobj = areaOption.filter(_=>_.code===_itme[0])[0]
let cobj = pobj.areaResponses.filter(__=>__.code===_itme[1])[0]
_temp.provinceCode = pobj.code
_temp.provinceName = pobj.name,
_temp.cityCode = cobj.code,
_temp.cityName = cobj.name,
_commodityAreaList.push(_temp)
// console.log(_itme, _temp, '地址的每一项')
}
})
_params.commodityAreaList = _commodityAreaList
const { id } = history.location.query
......
......@@ -34,8 +34,8 @@ interface paramItem {
name: string;
code: string;
priceType: number;
Min: number;
Max: number;
min: number;
max: number;
brandId: number;
customerCategoryId: number;
status: number;
......@@ -44,7 +44,7 @@ interface paramItem {
let timeChange: any;
const FastModifyPrice: React.FC<{}> = () => {
const ref = useRef({})
const ref = useRef<any>({})
const [setForm] = Form.useForm()
const [modifyModal, setModifyModal] = useState(false)
const [ladderPrice, setLadderPrice] = useState(false)
......@@ -61,8 +61,8 @@ const FastModifyPrice: React.FC<{}> = () => {
name: '',
code: '',
priceType: null,
Min: 0,
Max: 0,
min: null,
max: null,
brandId: 0,
customerCategoryId: 0,
status: null,
......@@ -88,13 +88,13 @@ const FastModifyPrice: React.FC<{}> = () => {
},
{
title: '品类',
dataIndex: ['customerCategory', 'name'],
key: 'customerCategory.name',
dataIndex: 'customerCategoryName',
key: 'customerCategoryName',
},
{
title: '品牌',
dataIndex: ['brand', 'name'],
key: 'brand.name',
dataIndex: 'brandName',
key: 'brandName',
},
{
title: '单位',
......@@ -188,30 +188,48 @@ const FastModifyPrice: React.FC<{}> = () => {
const handleSee = (record: any) => {
console.log('see')
history.push(`/memberCenter/commodityAbility/commodity/products/viewProducts?id=${record.id}`)
history.push(`/memberCenter/commodityAbility/commodity/products/viewProducts?id=${record.commodityId}`)
}
const handleModify = (record: any) => {
console.log('点击修改价格', record)
const { id, unitPrice, priceType } = record
// 阶梯价格回显处理
setModifyModal(true)
setPriceType(priceType)
// 获取商品价格积分
PublicApi.getProductCommodityGetCommodityPrice({unitPriceAndPicId: id}).then(res => {
const { data } = res
setForm.resetFields()
if(Object.keys(data)[0] === '0-0') { // 状态为非阶梯价格
setLadderPrice(false)
setForm.setFieldsValue({ladderPrice: false, uniquePrice: Object.values(data)[0]})
}else if(JSON.stringify(data) === '{}'){ // 没有数据
setLadderPrice(false)
}else{
setLadderPrice(true)
let numberArray = Object.keys(data).map(item => item.split('-').map(_ => Number(_)))
let priceArray = Object.values(data)
let tempArr = [];
numberArray.map((_item, _index) => {
tempArr.push({ numberPrice: priceArray[_index], numberRange: { numberMin: _item[0], numberMax: _item[1] } })
})
setForm.setFieldsValue({ladderPrice: true, ladderRange: tempArr})
}
})
}
const handleReset = () => {
let restObj = { name: '', code: '', Max: 0, Min: 0, priceType: null, brandId: 0, customerCategoryId: 0, status: null }
let restObj = { name: '', code: '', max: null, min: null, priceType: null, brandId: 0, customerCategoryId: 0, status: null }
setFilterParams(restObj)
setBrandValue(undefined)
setClassValue(undefined)
//@ts-ignore
ref.current.reload(restObj)
}
const handleBrandSearch = (value: any) => { // end value
console.log(value, 'handleBrandSearch')
// console.log(value, 'handleBrandSearch')
if (value) {
PublicApi.getProductSelectGetSelectBrand({ name: value }).then(res => {
if (res.code === 1000)
......@@ -224,13 +242,13 @@ const FastModifyPrice: React.FC<{}> = () => {
const handleBrandChange = (value: any) => {
setBrandValue(value)
console.log(value, 'handleBrandChange')
// console.log(value, 'handleBrandChange')
let obj = { ...filterParams, brandId: value }
setFilterParams(obj)
}
const handleClassSearch = (value: any) => {
console.log(value, 'handleClassSearch')
// console.log(value, 'handleClassSearch')
if (value) {
PublicApi.getProductSelectGetSelectCustomerCategory({ name: value }).then(res => {
if (res.code === 1000)
......@@ -245,28 +263,27 @@ const FastModifyPrice: React.FC<{}> = () => {
setClassValue(value)
let obj = { ...filterParams, customerCategoryId: value }
setFilterParams(obj)
console.log(value, 'handleClassChange')
// console.log(value, 'handleClassChange')
}
const handleSearch = (val: string) => {
console.log(val)
let obj = { ...filterParams, name: val }
setFilterParams(obj)
//@ts-ignore
ref.current.reload(obj)
}
const handleOk = () => {
setForm.validateFields().then(v=>{
setModifyModal(false)
console.log(v,'value')
// console.log(v,'value')
})
console.log('handleOk')
// console.log('handleOk')
}
const handleCancel = () => {
setModifyModal(false)
console.log('handleCancel')
// console.log('handleCancel')
}
const changeLadderPrice = (e: any) => {
......@@ -274,6 +291,38 @@ const FastModifyPrice: React.FC<{}> = () => {
setForm.setFields([{name: 'ladderPrice', value: e.target.checked}])
}
const handleHightSearch = (val?: string) => {
console.log(val)
let obj = val ? {...filterParams, name: val} : { ...filterParams }
setFilterParams(obj)
ref.current.reload(obj)
}
// 校验阶梯范围
const validatorNumberRange = (rule, value, callback) => {
// console.log(value, 'value')
try {
if(Array.isArray(value)){
// console.log(value, 'array')
let range = value.map(item => {
if(item)
return Object.values(item.numberRange)
}).reduce(
function(a, b) {
return a.concat(b);
},
[]
)
let result = range.reduce((a, b) => { console.log(a, b); if(a<b) return b })
// console.log(result, 'result')
if(!result) throw new Error('请正确输入阶梯数量范围');
callback()
}
} catch (err) {
callback(err)
}
}
return (
<PageHeaderWrapper>
<Card>
......@@ -356,8 +405,9 @@ const FastModifyPrice: React.FC<{}> = () => {
type="number"
style={{ width: '40%', textAlign: 'center' }}
min={0}
value={filterParams.min}
placeholder="最低价格"
onChange={(e) => setFilterParams({ ...filterParams, Min: +e.target.value })}
onChange={(e) => setFilterParams({ ...filterParams, min: +e.target.value })}
/>
<Input
style={{
......@@ -379,11 +429,15 @@ const FastModifyPrice: React.FC<{}> = () => {
borderLeft: 0,
}}
min={0}
value={filterParams.max}
placeholder="最高价格"
onChange={(e) => setFilterParams({ ...filterParams, Max: +e.target.value })}
onChange={(e) => setFilterParams({ ...filterParams, max: +e.target.value })}
/>
</Input.Group>
</Col>
<Col>
<Button type="primary" onClick={()=>handleHightSearch()}>查询</Button>
</Col>
</Col>
</Row>
</Col>
......@@ -405,18 +459,30 @@ const FastModifyPrice: React.FC<{}> = () => {
{...layout}
name="settingPrice"
form={setForm}
autoComplete="off"
>
<Form.Item
label=""
name="ladderPrice"
>
<Checkbox checked={ladderPrice} onChange={changeLadderPrice}>阶梯价格</Checkbox>
</Form.Item>
{
priceType!==3 && <Form.Item
label=""
name="ladderPrice"
>
<Checkbox checked={ladderPrice} onChange={changeLadderPrice}>阶梯价格</Checkbox>
</Form.Item>
}
{
ladderPrice ? <Form.Item
name="ladderRange"
label=""
shouldUpdate={true}
rules={[
{
required: true,
message: '阶梯范围为必填项'
},
{
validator: validatorNumberRange
}
]}
>
<Form.List name="ladderRange" key={Math.random()}>
{(fields, { add, remove }) => {
......@@ -435,12 +501,23 @@ const FastModifyPrice: React.FC<{}> = () => {
key={'_' + field.fieldKey}
noStyle
>
{/* <Input style={{ width: '50%' }} placeholder="请输入数量区间" /> */}
<Input.Group compact>
<Form.Item name={[field.name, 'numberRange', 'numberMin']} noStyle>
<Form.Item
name={[field.name, 'numberRange', 'numberMin']}
noStyle
rules={[
{
required: true,
message: '阶梯最小数量为必填项'
},
{
pattern: /^\d+(\.\d{1,3})?$/,
message: '阶梯数值小数点后仅限三位',
}
]}
>
<Input style={{ width: 100, textAlign: 'center' }} placeholder="最小数量" />
</Form.Item>
{/* <Input style={{ width: 100,textAlign: 'center' }} placeholder="最小数量" /> */}
<Input
style={{
width: 30,
......@@ -451,7 +528,20 @@ const FastModifyPrice: React.FC<{}> = () => {
placeholder="~"
disabled
/>
<Form.Item name={[field.name, 'numberRange', 'numberMax']} noStyle>
<Form.Item
name={[field.name, 'numberRange', 'numberMax']}
noStyle
rules={[
{
required: true,
message: '阶梯最大数量为必填项'
},
{
pattern: /^\d+(\.\d{1,3})?$/,
message: '阶梯数值小数点后仅限三位',
}
]}
>
<Input
className={styles.siteInputRight}
style={{
......@@ -461,14 +551,6 @@ const FastModifyPrice: React.FC<{}> = () => {
placeholder="最大数量"
/>
</Form.Item>
{/* <Input
className="site-input-right"
style={{
width: 100,
textAlign: 'center',
}}
placeholder="最大数量"
/> */}
</Input.Group>
</Item>
<Item
......@@ -477,6 +559,16 @@ const FastModifyPrice: React.FC<{}> = () => {
fieldKey={[field.fieldKey, 'numberPrice']}
key={'__' + field.fieldKey}
noStyle
rules={[
{
required: true,
message: '阶梯单价为必填项'
},
{
pattern: /^\d+(\.\d{1,4})?$/,
message: '阶梯单价小数点后仅限四位',
}
]}
>
<Input style={{ width: '50%', marginLeft: 24 }} placeholder="请输入单价" />
</Item>
......@@ -492,11 +584,20 @@ const FastModifyPrice: React.FC<{}> = () => {
}}
</Form.List>
</Form.Item> : <Form.Item
label="单价"
label={priceType===3 ? "积分" : "单价"}
name="uniquePrice"
rules={[{ required: true, message: '请输入单价!' }]}
rules={[
{
required: true,
message: priceType===3 ? '请输入积分!' : '请输入单价!'
},
{
pattern: priceType!==3 && /^\d+(\.\d{1,4})?$/,
message: priceType!==3 && '小数点后仅限四位',
}
]}
>
<Input placeholder="请输入单价" />
<Input placeholder={ priceType===3 ? "请输入积分" : "请输入单价"} />
</Form.Item>
}
</Form>
......
......@@ -59,6 +59,7 @@ const Products: React.FC<{}> = () => {
const [shopsOption, setShopsOption] = useState<GetProductCommodityGetShopResponse>([])
const [checkedValues, setCheckedValues] = useState<any>([])
const [currentOptionId, setCurrentOptionId] = useState()
const [isDisabledOKbtn, setIsDisabledOKbtn] = useState<boolean>(false)
let [isHighSearch, setIsHighSearch] = useState(false)
const [filterParams, setFilterParams] = useState<paramItem>({
......@@ -414,7 +415,7 @@ const Products: React.FC<{}> = () => {
setCheckedValues(values)
}
const clickUp = (param: any, id: any) => { // 0 下架 1上架
const clickUp = (param: any, id: any) => { // param: 0 下架 1上架
setCurrentOptionId(id)
PublicApi.getProductCommodityGetShop({id: id}).then(res => {
setShopsOption(res.data)
......@@ -425,6 +426,7 @@ const Products: React.FC<{}> = () => {
}
const handleUp = () => {
setIsDisabledOKbtn(true)
let params = {
id: currentOptionId,
shopList: checkedValues
......@@ -433,11 +435,13 @@ const Products: React.FC<{}> = () => {
PublicApi.postProductCommodityPublishCommodity(params).then(res => {
setUpDownModal(false)
ref.current.reload()
setIsDisabledOKbtn(false)
})
else
PublicApi.postProductCommodityOffPublishCommodity(params).then(res => {
setUpDownModal(false)
ref.current.reload()
setIsDisabledOKbtn(false)
})
}
......@@ -475,7 +479,7 @@ const Products: React.FC<{}> = () => {
const handleBatchDelete = (ids: string[]) => {
console.log('删除', ids)
//@ts-ignore
// @ts-ignore
PublicApi.postProductCommodityDeleteBatchCommodity({idList: ids}).then(res => {
if(res.code === 1000)
ref.current.reload()
......@@ -487,7 +491,6 @@ const Products: React.FC<{}> = () => {
setFilterParams(restObj)
setBrandValue(undefined)
setClassValue(undefined)
//@ts-ignore
ref.current.reload(restObj)
}
......@@ -533,7 +536,6 @@ const Products: React.FC<{}> = () => {
console.log(val)
let obj = val ? {...filterParams, name: val} : { ...filterParams }
setFilterParams(obj)
//@ts-ignore
ref.current.reload(obj)
}
......@@ -774,6 +776,7 @@ const Products: React.FC<{}> = () => {
onOk={handleUp}
onCancel={handleCancelUp}
forceRender={true}
okButtonProps={{ disabled: isDisabledOKbtn }}
>
<Form
layout="vertical"
......
......@@ -142,8 +142,6 @@ const viewProducts: React.FC<{}> = () => {
},
];
/* 商品属性显示 */
//以属性组和属性名称归档的数据
const renderDataByTab = (data: GetProductCommodityGetCommodityResponse) => {
......@@ -582,7 +580,7 @@ const viewProducts: React.FC<{}> = () => {
{/* 视频区块 */}
<div className={styles.descriptionBox}>
{
productDetail?.commodityRemark?.video.length>0 ? productDetail?.commodityRemark?.video.map((_item, _index)=> <div key={_index} className={styles.videoItem}>
productDetail?.commodityRemark?.video?.length>0 ? productDetail?.commodityRemark?.video.map((_item, _index)=> <div key={_index} className={styles.videoItem}>
<video src={_item} controls={true}>
您的浏览器不支持视频标签,请及时升级。
</video>
......
......@@ -121,18 +121,19 @@ const AddBrand: React.FC<{}> = () => {
const handleSave = () => {
form.validateFields().then((values:any) => {
if(values?.proveUrl?.fileList&&fileList.length){
delete values.proveUrl.fileList
delete values.proveUrl.file
}
console.log(values,'vvv')
if(history.location.query.id){
values.id = Number(history.location.query.id)
let obj = {};
fileList.forEach((item, index)=>{
obj[index] = item?.url
obj[index] = item?.url || item?.response?.data
})
values.proveUrl = obj
}
if(values?.proveUrl?.fileList&&fileList.length){
delete values.proveUrl.fileList
delete values.proveUrl.file
}
PublicApi.postProductBrandSaveOrUpdateBrand(values).then(res => {
setIsEnableCheck(false)
//@ts-ignore
......
......@@ -23,7 +23,8 @@ const LoginWrap: React.FC = () => {
token: data.token
})
setRouters(data.urls)
history.push('/memberCenter/home')
// 此处需使用href跳转, 否则无法触发app.ts中的路由初始化校验
window.location.href = '/memberCenter/home'
})
}
......
......@@ -41,7 +41,7 @@ const CustomCheckbox = props => {
return (
<Radio.Group value={props.value} onChange={props.onChange} className={layout === 'column' ? 'identityRadio' : 'businessRadio'} name={props.name}>
{
props.dataSource && props.dataSource.map((v, i) => <Radio.Button value={v.value} key={v.value + i}>{v.label}</Radio.Button>)
props.dataSource && props.dataSource.map((v, i) => <Tooltip title={v.label} placement='leftTop' key={v.value + i}><Radio.Button value={v.value} >{v.label}</Radio.Button></Tooltip>)
}
</Radio.Group>
)
......@@ -280,7 +280,15 @@ const UserRegistry = () => {
name={field.fieldName}
key={field.fieldName}
title={field.fieldCNName}
x-component-props={{ listType: 'text'}}
x-component-props={{
name: 'file',
listType: 'text',
actions: "/api/file/file/upload",
data: {
fileType: 1
},
showUploadList: false,
}}
x-component='Upload'
>
</Field>
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -4,6 +4,7 @@ import { IRequestError, IRequestSuccess } from '..';
import { history } from 'umi'
import { message } from 'antd'
import { getAuth, removeAuth } from './auth';
import { GlobalConfig } from '@/global/config';
export type CtlType = 'none' | 'message'
// 根前缀请求路径
......@@ -52,7 +53,8 @@ const errorHandler = (error: ResponseError): IRequestError => {
const defaultHeaders = {
'Content-Type': 'Application/json',
'source': '1'
'source': '1',
'site': GlobalConfig.global.siteId.toString()
}
/**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment