选择部门时如果没有部门则指引跳转添加部门,选择公司名展示成了联系人名字的bug修复

v2
一杯沧海 1 year ago
parent 7666062ea0
commit 9178e7ba47
  1. 5
      src/pages/manage/addStudent/addStudent.tsx
  2. 33
      src/pages/manage/courseAdmin/components/search.tsx
  3. 1
      src/pages/manage/courseAdmin/courseAdmin.tsx
  4. 2
      src/pages/manage/depAdmin/depAdmin.scss
  5. 9
      src/pages/manage/depAdmin/depAdmin.tsx
  6. 3
      src/pages/manage/department/addDepartment.tsx
  7. 44
      src/pages/manage/selectDep/selectDep.tsx
  8. 2
      src/pages/my/components/header/header.tsx
  9. 2
      src/pages/my/my.tsx
  10. 2
      src/pages/preview/brand/info/info.tsx

@ -73,13 +73,14 @@ const AddStudent = () => {
}, [depIds]) }, [depIds])
useEffect(() => { useEffect(() => {
getDepartment()
if (params.id) { if (params.id) {
getUserInfo() getUserInfo()
} }
}, []) }, [])
Taro.useDidShow(() => {
Taro.useDidShow( async() => {
await getDepartment()
const newDepIds = storageDep.get() const newDepIds = storageDep.get()
setDepIds(newDepIds) setDepIds(newDepIds)
}) })

@ -1,4 +1,4 @@
import {FC, useCallback, useEffect, useState} from "react"; import {FC, useCallback, useState} from "react";
import {Image, Input, Radio, Text, View} from "@tarojs/components"; import {Image, Input, Radio, Text, View} from "@tarojs/components";
import styles from "../courseAdmin.module.scss"; import styles from "../courseAdmin.module.scss";
import Icon from "@/components/icon"; import Icon from "@/components/icon";
@ -7,9 +7,9 @@ import CustomPageContainer from "@/components/custom-page-container/custom-page-
import Empty from "@/components/empty/empty"; import Empty from "@/components/empty/empty";
import MyButton from "@/components/button/MyButton"; import MyButton from "@/components/button/MyButton";
import downArrow from '@/static/img/downArrow.png' import downArrow from '@/static/img/downArrow.png'
import downArrowKey from '@/static/img/downArrowKey.png'
import omit from '@/static/img/omit.png' import omit from '@/static/img/omit.png'
import Taro from "@tarojs/taro"; import Taro from "@tarojs/taro";
import {Profile} from "@/store";
interface Props { interface Props {
param: CourseAllParam param: CourseAllParam
@ -23,8 +23,13 @@ export const Search: FC<Props> = ({param, setParam, total, setBatch}) => {
const [deps, setDeps] = useState<Manage[]>([]) const [deps, setDeps] = useState<Manage[]>([])
const [depId, setDepId] = useState<number>(param.dep_id) const [depId, setDepId] = useState<number>(param.dep_id)
const [title, setTitle] = useState(param.title) const [title, setTitle] = useState(param.title)
const {company} = Profile.useContainer()
Taro.useDidShow(() => {
getDepList()
})
function onBatch() { function onBatch() {
Taro.showActionSheet({ Taro.showActionSheet({
itemList: ['批量添加部门'], itemList: ['批量添加部门'],
@ -67,9 +72,8 @@ export const Search: FC<Props> = ({param, setParam, total, setBatch}) => {
} }
}, [depId]) }, [depId])
useEffect(() => {
getDepList()
}, [])
return ( return (
<> <>
@ -150,7 +154,24 @@ export const Search: FC<Props> = ({param, setParam, total, setBatch}) => {
</View> </View>
</View> </View>
</> </>
: <Empty name='暂无部门'/>} :
<>
<Empty name=''/>
<View className="flex flex-column align-center width100">
<Text className="font-24 mb-3" style={{color:'#ccc'}}></Text>
<MyButton
width={300}
onClick={() => {
Taro.navigateTo({url:`/pages/manage/department/addDepartment?company_id=${company?.id}&parent_id=0&sort=0`})
setTimeout(() => {
setShow(false)
},1000)
}}
></MyButton>
</View>
</>
}
</View> </View>
</CustomPageContainer> </CustomPageContainer>

@ -24,6 +24,7 @@ const CourseAdmin: FC = () => {
dep_id: 0 dep_id: 0
}) })
/** /**
*@param replace *@param replace
*/ */

@ -17,8 +17,6 @@
.safeAreaInsetBottom { .safeAreaInsetBottom {
height: 100rpx; height: 100rpx;
align-items: center;
justify-content: space-around;
padding-bottom: env(safe-area-inset-bottom); padding-bottom: env(safe-area-inset-bottom);
display: flex; display: flex;
} }

@ -90,8 +90,7 @@ const DepAdmin: FC = () => {
break break
} }
}, },
fail() { fail(){}
}
}) })
} }
@ -168,10 +167,10 @@ const DepAdmin: FC = () => {
<View className='operation'> <View className='operation'>
<View className='safeAreaInsetBottom'> <View className='safeAreaInsetBottom'>
<View onClick={jumpAddStudent}></View> <View style={{flex:'1',textAlign:'center',lineHeight:'100rpx'}} onClick={jumpAddStudent}></View>
<View onClick={jumpDepartment}></View> <View style={{flex:'1',textAlign:'center',lineHeight:'100rpx'}} onClick={jumpDepartment}></View>
{ {
router.params.id && <View onClick={managesSheet}></View> router.params.id && <View style={{flex:'1',textAlign:'center',lineHeight:'100rpx'}} onClick={managesSheet}></View>
} }
</View> </View>
</View> </View>

@ -8,7 +8,6 @@ import {getCurrentInstance} from "@tarojs/runtime";
const AddDepartment = () => { const AddDepartment = () => {
const [departmentInfo, setDepartmentInfo] = useState<{ name: string } | null>(null) const [departmentInfo, setDepartmentInfo] = useState<{ name: string } | null>(null)
const params = getCurrentInstance()?.router?.params as { id?: string;parent_id?: string;sort?: string;company_id?:string } const params = getCurrentInstance()?.router?.params as { id?: string;parent_id?: string;sort?: string;company_id?:string }
console.log(params)
useEffect(() => { useEffect(() => {
Taro.setNavigationBarTitle({ title:'添加部门' }) Taro.setNavigationBarTitle({ title:'添加部门' })
@ -22,7 +21,7 @@ const AddDepartment = () => {
const value: {name: string} = e.detail.value const value: {name: string} = e.detail.value
for (const [_, val] of Object.entries(value)) { for (const [_, val] of Object.entries(value)) {
if (!val) { if (!val) {
Taro.showToast({title: "请填写部门名称", icon: 'error'}) Taro.showToast({title: "请填写部门名称a", icon: 'error'})
return return
} }
} }

@ -1,5 +1,5 @@
import React, {FC, useCallback, useEffect, useState} from "react"; import React, {FC, useCallback, useState} from "react";
import {Checkbox, View} from "@tarojs/components"; import {Checkbox, Text, View} from "@tarojs/components";
import Taro from "@tarojs/taro"; import Taro from "@tarojs/taro";
import {curriculum} from "@/api"; import {curriculum} from "@/api";
import PopPut from "@/components/popPut/popPut"; import PopPut from "@/components/popPut/popPut";
@ -7,6 +7,8 @@ import folder from "@/static/img/folder.png";
import MyButton from "@/components/button/MyButton"; import MyButton from "@/components/button/MyButton";
import storageDep from "@/hooks/storageDep"; import storageDep from "@/hooks/storageDep";
import Spin from "@/components/spinner"; import Spin from "@/components/spinner";
import Empty from "@/components/empty/empty";
import {Profile} from "@/store";
/** /**
* depIds JSON = number[] * depIds JSON = number[]
@ -17,14 +19,23 @@ const SelectDep: FC = () => {
const [ids, setIds] = useState<number[]>([]) const [ids, setIds] = useState<number[]>([])
const [deps, setDeps] = useState<Manage[]>([]) const [deps, setDeps] = useState<Manage[]>([])
const [enable, setEnable] = useState(true) const [enable, setEnable] = useState(true)
const {company} = Profile.useContainer()
useEffect(() => { // useEffect(() => {
// curriculum.department().then(res => {
// setDeps(res.data)
// })
// setEnable(false)
// setIds(JSON.parse(params.depIds))
// }, [])
Taro.useDidShow(() => {
curriculum.department().then(res => { curriculum.department().then(res => {
setDeps(res.data) setDeps(res.data)
}) })
setEnable(false) setEnable(false)
setIds(JSON.parse(params.depIds)) setIds(JSON.parse(params.depIds))
}, []) })
const onChange = useCallback((id: number) => { const onChange = useCallback((id: number) => {
const index = ids.indexOf(id) const index = ids.indexOf(id)
@ -49,7 +60,9 @@ const SelectDep: FC = () => {
return ( return (
<View className='px-2 bg-white'> <View className='px-2 bg-white'>
<Spin overlay enable={enable}/> <Spin overlay enable={enable}/>
{deps.map((d) => <View className='flex align-center' key={d.id} onClick={() => onChange(d.id)}> {
deps.length > 0 ?
deps.map((d) => <View className='flex align-center' key={d.id} onClick={() => onChange(d.id)}>
<Checkbox value={d.id + ''} checked={ids.includes(d.id)} color='#45d4a8'/> <Checkbox value={d.id + ''} checked={ids.includes(d.id)} color='#45d4a8'/>
<View style={{flex: 1}}> <View style={{flex: 1}}>
<PopPut <PopPut
@ -58,11 +71,28 @@ const SelectDep: FC = () => {
chevron chevron
leftImage={folder}/> leftImage={folder}/>
</View> </View>
</View>)} </View>)
:
<>
<Empty name=''/>
<View className="flex flex-column align-center width100">
<Text className="font-24 mb-3" style={{color:'#ccc'}}></Text>
<MyButton
width={300}
onClick={() => {
Taro.navigateTo({url:`/pages/manage/department/addDepartment?company_id=${company?.id}&parent_id=0&sort=0`})
}}
></MyButton>
</View>
</>
}
<View className={'my-3'}> {
deps.length > 0 &&<View className={'my-3'}>
<MyButton onClick={ok}></MyButton> <MyButton onClick={ok}></MyButton>
</View> </View>
}
</View> </View>
) )

@ -29,7 +29,7 @@ const Header: FC<Props> = ({companyList, showCompany}) => {
<View className='flex-1 flex flex-column justify-start align-start mt-1'> <View className='flex-1 flex flex-column justify-start align-start mt-1'>
<View className='font-32' onClick={token ? undefined : login}>{token ? user?.name ?? '匿名' : '请登录'}</View> <View className='font-32' onClick={token ? undefined : login}>{token ? user?.name ?? '匿名' : '请登录'}</View>
<View className='flex align-center mt-1' onClick={token ? showCompany : login}> <View className='flex align-center mt-1' onClick={token ? showCompany : login}>
<Text style={{fontSize: '24rpx', fontWeight: '500', color: '#323635'}}>{token ? company?.name : '登录解锁更多功能哦'}</Text> <Text style={{fontSize: '24rpx', fontWeight: '500', color: '#323635'}}>{token ? company?.company_name : '登录解锁更多功能哦'}</Text>
{showChoose && <Image src={blacktriang} style={{width: '20rpx', height: '20rpx'}}/>} {showChoose && <Image src={blacktriang} style={{width: '20rpx', height: '20rpx'}}/>}
</View> </View>
</View> </View>

@ -160,7 +160,7 @@ const My: FC = () => {
<Img width={68} height={68} src={d.logo}/> <Img width={68} height={68} src={d.logo}/>
</View> </View>
<View className={styles.innerBox}> <View className={styles.innerBox}>
<View className={styles.title}>{d.name}</View> <View className={styles.title}>{d.company_name}</View>
<Image src={company?.id === d.id ? GreenNike : ''} className={styles.icon}></Image> <Image src={company?.id === d.id ? GreenNike : ''} className={styles.icon}></Image>
</View> </View>
</View> </View>

@ -96,7 +96,7 @@ const BrandInfo: FC = () => {
{ {
(brandInfo?.brand_album?.length || 0) > 0 (brandInfo?.brand_album?.length || 0) > 0
&& brandInfo?.brand_album?.split(',').map((d) => && brandInfo?.brand_album?.split(',').map((d) =>
<SwiperItem> <SwiperItem key={d}>
<Img mode={'aspectFill'} width={750} height={600} src={d} errorType='brand'/> <Img mode={'aspectFill'} width={750} height={600} src={d} errorType='brand'/>
</SwiperItem>) </SwiperItem>)
} }

Loading…
Cancel
Save