Commit 6c4e0a7f authored by GuanHua's avatar GuanHua

fix: 店铺能力归属地址选择问题

parent e399ad49
...@@ -19,12 +19,6 @@ interface CitySelectPropsType { ...@@ -19,12 +19,6 @@ interface CitySelectPropsType {
onChange: Function; onChange: Function;
} }
interface selectItemType {
index: number;
lable: string;
value: number;
}
const { Option } = Select; const { Option } = Select;
const CityCascader: React.FC<CitySelectPropsType> = (props) => { const CityCascader: React.FC<CitySelectPropsType> = (props) => {
...@@ -39,7 +33,7 @@ const CityCascader: React.FC<CitySelectPropsType> = (props) => { ...@@ -39,7 +33,7 @@ const CityCascader: React.FC<CitySelectPropsType> = (props) => {
}, []) }, [])
const getProviceById = (id: number) => { const getProviceById = (id: number) => {
let result: number = 0 let result = 0
provinceData && provinceData.map(item => { provinceData && provinceData.map(item => {
if (item.value === id) { if (item.value === id) {
result = item result = item
...@@ -49,7 +43,7 @@ const CityCascader: React.FC<CitySelectPropsType> = (props) => { ...@@ -49,7 +43,7 @@ const CityCascader: React.FC<CitySelectPropsType> = (props) => {
} }
const getCityById = (id: number, provinceCode: string) => { const getCityById = (id: number, provinceCode: string) => {
let result: number = 0 let result = 0
!isEmpty(cityData) && cityData[provinceCode].map(item => { !isEmpty(cityData) && cityData[provinceCode].map(item => {
if (item.value === id) { if (item.value === id) {
result = item result = item
...@@ -69,16 +63,24 @@ const CityCascader: React.FC<CitySelectPropsType> = (props) => { ...@@ -69,16 +63,24 @@ const CityCascader: React.FC<CitySelectPropsType> = (props) => {
if (!areaList) { if (!areaList) {
return return
} }
let tempProvinceData = [] const tempProvinceData = []
let tempCityData = {} const tempCityData = {}
for (let item of areaList) { tempProvinceData.push({
lable: "所有",
value: "0"
})
for (const item of areaList) {
tempProvinceData.push({ tempProvinceData.push({
lable: item.name, lable: item.name,
value: item.code value: item.code
}) })
if (!!item.areaResponses) { if (item.areaResponses) {
let tempCityList = [] const tempCityList = []
for (let cityItem of item.areaResponses) { tempCityList.push({
lable: "所有",
value: "0"
})
for (const cityItem of item.areaResponses) {
tempCityList.push({ tempCityList.push({
lable: cityItem.name, lable: cityItem.name,
value: cityItem.code value: cityItem.code
...@@ -89,13 +91,16 @@ const CityCascader: React.FC<CitySelectPropsType> = (props) => { ...@@ -89,13 +91,16 @@ const CityCascader: React.FC<CitySelectPropsType> = (props) => {
} }
setProvinceData(tempProvinceData) setProvinceData(tempProvinceData)
tempCityData["0"] = [{
lable: "所有",
value: "0"
}]
setCityData(tempCityData) setCityData(tempCityData)
} }
const handleProvinceChange = (value: number, index: number) => { const handleProvinceChange = (value: number, index: number) => {
let newData = JSON.parse(JSON.stringify(selectData)) const newData = JSON.parse(JSON.stringify(selectData))
let proviceById: any = getProviceById(value) const proviceById: any = getProviceById(value)
setCities(cityData[proviceById.value]) setCities(cityData[proviceById.value])
newData.map((item: any) => { newData.map((item: any) => {
...@@ -111,7 +116,7 @@ const CityCascader: React.FC<CitySelectPropsType> = (props) => { ...@@ -111,7 +116,7 @@ const CityCascader: React.FC<CitySelectPropsType> = (props) => {
} }
const onSecondCityChange = (value: number, provinceCode: string, index: number) => { const onSecondCityChange = (value: number, provinceCode: string, index: number) => {
let newData = JSON.parse(JSON.stringify(selectData)) const newData = JSON.parse(JSON.stringify(selectData))
const cityById: any = getCityById(value, provinceCode) const cityById: any = getCityById(value, provinceCode)
newData.map((item: any) => { newData.map((item: any) => {
...@@ -155,7 +160,7 @@ const CityCascader: React.FC<CitySelectPropsType> = (props) => { ...@@ -155,7 +160,7 @@ const CityCascader: React.FC<CitySelectPropsType> = (props) => {
onChange={(value) => onSecondCityChange(value, item.provinceCode, item.index)} onChange={(value) => onSecondCityChange(value, item.provinceCode, item.index)}
placeholder="请选择" placeholder="请选择"
> >
{(item.provinceCode && !isEmpty(cityData)) ? cityData[item.provinceCode] && cityData[item.provinceCode].map((item: any) => ( {((item.provinceCode || item.provinceCode === 0)&& !isEmpty(cityData)) ? cityData[item.provinceCode] && cityData[item.provinceCode].map((item: any) => (
<Option value={item.value} key={item.value}>{item.lable}</Option> <Option value={item.value} key={item.value}>{item.lable}</Option>
)) : null} )) : null}
</Select> </Select>
...@@ -186,4 +191,6 @@ const CitySelect: React.FC<CitySelectPropsType> = forwardRef((props, ref) => { ...@@ -186,4 +191,6 @@ const CitySelect: React.FC<CitySelectPropsType> = forwardRef((props, ref) => {
) )
}) })
CitySelect.displayName = "CitySelect"
export default CitySelect export default CitySelect
...@@ -148,10 +148,10 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => { ...@@ -148,10 +148,10 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => {
if (!checkmemberChannelAreas(value.memberChannelAreas)) { if (!checkmemberChannelAreas(value.memberChannelAreas)) {
return return
} }
if (!shopId) { // if (!shopId) {
message.error("店铺链接不能为空") // message.error("店铺链接不能为空")
return // return
} // }
value.storeUrl = storeUrl || `${siteUrl}/${GlobalConfig.channelRootRoute}` value.storeUrl = storeUrl || `${siteUrl}/${GlobalConfig.channelRootRoute}`
value.shopId = shopId value.shopId = shopId
setConfirmLoading(true) setConfirmLoading(true)
...@@ -175,10 +175,9 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => { ...@@ -175,10 +175,9 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => {
message.error('请选择归属地市') message.error('请选择归属地市')
return false return false
} }
return shopAreas.every(item => { return shopAreas.every(item => {
if (!item.provinceCode) { if (isEmpty(item.provinceCode)) {
message.destroy() message.destroy()
message.error('请选择归属地市') message.error('请选择归属地市')
return false return false
...@@ -406,7 +405,7 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => { ...@@ -406,7 +405,7 @@ const ChannelInfo: React.FC<ShopInfoPropsType> = (props) => {
label={<RequireItem label="客服链接" />} label={<RequireItem label="客服链接" />}
rules={[{ pattern: /(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-.,@?^=%&:/~+#]*[\w\-@?^=%&/~+#])?/, message: '请输入正确的客服链接' }]} rules={[{ pattern: /(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-.,@?^=%&:/~+#]*[\w\-@?^=%&/~+#])?/, message: '请输入正确的客服链接' }]}
> >
<Input allowClear className={styles.form_item} /> <Input allowClear autoComplete="off" className={styles.form_item} />
</Form.Item> </Form.Item>
<Form.Item <Form.Item
label={<RequireItem label="" />} label={<RequireItem label="" />}
......
...@@ -8,7 +8,6 @@ import CitySelect from '@/components/CitySelect' ...@@ -8,7 +8,6 @@ import CitySelect from '@/components/CitySelect'
import RequireItem from '@/components/RequireItem' import RequireItem from '@/components/RequireItem'
import { PublicApi } from '@/services/api' import { PublicApi } from '@/services/api'
import UploadImage from '@/components/UploadImage' import UploadImage from '@/components/UploadImage'
import { GetTemplateShopFindShopResponse } from '@/services/TemplateApi'
import copy from 'copy-to-clipboard' import copy from 'copy-to-clipboard'
import cx from 'classnames' import cx from 'classnames'
import styles from './index.less' import styles from './index.less'
...@@ -34,8 +33,9 @@ const ShopInfo: React.FC<ShopInfoPropsType> = (props) => { ...@@ -34,8 +33,9 @@ const ShopInfo: React.FC<ShopInfoPropsType> = (props) => {
const [workshopPics, setWorkshopPics] = useState([]) // 厂房照片 const [workshopPics, setWorkshopPics] = useState([]) // 厂房照片
const [honorPics, setHonorPics] = useState([]) // 资质荣誉 const [honorPics, setHonorPics] = useState([]) // 资质荣誉
const [logo, setLogo] = useState<string>("") const [logo, setLogo] = useState<string>("")
const [shopInfo, setShopInfo] = useState<GetTemplateShopFindShopResponse>() const [shopInfo, setShopInfo] = useState<any>()
const [shopId, setShopId] = useState<number>() const [shopId, setShopId] = useState<number>()
const [confirmLoading, setConfirmLoading] = useState<boolean>(false)
useEffect(() => { useEffect(() => {
fetchShopInfo() fetchShopInfo()
...@@ -149,19 +149,21 @@ const ShopInfo: React.FC<ShopInfoPropsType> = (props) => { ...@@ -149,19 +149,21 @@ const ShopInfo: React.FC<ShopInfoPropsType> = (props) => {
if (!checkMemberShopAreas(value.memberShopAreas)) { if (!checkMemberShopAreas(value.memberShopAreas)) {
return return
} }
if (!shopId) { // if (!shopId) {
message.error("店铺链接不能为空") // message.error("店铺链接不能为空")
return // return
} // }
value.storeUrl = storeUrl || `${siteUrl}/shop` value.storeUrl = storeUrl || `${siteUrl}/shop`
value.shopId = shopId value.shopId = shopId
setConfirmLoading(true)
PublicApi.postTemplateWebMemberShopWebSaveCurrMemberShop(value).then(res => { PublicApi.postTemplateWebMemberShopWebSaveCurrMemberShop(value).then(res => {
if (res.code === 1000) { if (res.code === 1000) {
fetchShopInfo() fetchShopInfo()
setFormIsHalfFilledOut(false) setFormIsHalfFilledOut(false)
} }
setConfirmLoading(false)
}).catch(() => {
setConfirmLoading(false)
}) })
}) })
...@@ -176,7 +178,7 @@ const ShopInfo: React.FC<ShopInfoPropsType> = (props) => { ...@@ -176,7 +178,7 @@ const ShopInfo: React.FC<ShopInfoPropsType> = (props) => {
return shopAreas.every(item => { return shopAreas.every(item => {
if (!item.provinceCode) { if (isEmpty(item.provinceCode)) {
message.destroy() message.destroy()
message.error('请选择归属地市') message.error('请选择归属地市')
return false return false
...@@ -402,12 +404,12 @@ const ShopInfo: React.FC<ShopInfoPropsType> = (props) => { ...@@ -402,12 +404,12 @@ const ShopInfo: React.FC<ShopInfoPropsType> = (props) => {
label={<RequireItem label="客服链接" />} label={<RequireItem label="客服链接" />}
rules={[{ pattern: /(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-.,@?^=%&:/~+#]*[\w\-@?^=%&/~+#])?/, message: '请输入正确的客服链接' }]} rules={[{ pattern: /(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-.,@?^=%&:/~+#]*[\w\-@?^=%&/~+#])?/, message: '请输入正确的客服链接' }]}
> >
<Input allowClear className={styles.form_item} /> <Input allowClear autoComplete="off" className={styles.form_item} />
</Form.Item> </Form.Item>
<Form.Item <Form.Item
label={<RequireItem label="" />} label={<RequireItem label="" />}
> >
<Button type="primary" style={{ marginRight: 16 }} onClick={handleSave}>保存</Button> <Button loading={confirmLoading} type="primary" style={{ marginRight: 16 }} onClick={handleSave}>保存</Button>
</Form.Item> </Form.Item>
</Form> </Form>
</div> </div>
......
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