|
|
@@ -15,10 +15,21 @@ import { GoodsType } from '../SonGoodsList/data'
|
|
|
type Props = {
|
|
|
path: string
|
|
|
APIobj: API_objType
|
|
|
+ // 是否至少需要添加一条数据,不需要校验的话不传 。传:藏品 则校验不通过提示(请至少添加一个藏品)
|
|
|
checkListTxt?: string
|
|
|
+ // 需要校验的字段和提示
|
|
|
+ verifyArr?: { key: string; txt: string }[]
|
|
|
+ // 其他需要校验的回调函数,返回 flag为true 表示校验不通过,txt为提示语
|
|
|
+ verifyBackFu?: () => { flag: true; txt: string }
|
|
|
}
|
|
|
|
|
|
-function EditBtn({ path, APIobj, checkListTxt = '藏品' }: Props) {
|
|
|
+function EditBtn({
|
|
|
+ path,
|
|
|
+ APIobj,
|
|
|
+ checkListTxt = '',
|
|
|
+ verifyArr = [{ key: 'num', txt: '请输入申请编号' }],
|
|
|
+ verifyBackFu
|
|
|
+}: Props) {
|
|
|
const { info, snaps, delSnapIdsRef, setTimeKeyFu, auditInfo } = useInfo()
|
|
|
|
|
|
const [btnCan, setBtnCan] = useState({ status: 0, creatorId: 0 })
|
|
|
@@ -133,28 +144,51 @@ function EditBtn({ path, APIobj, checkListTxt = '藏品' }: Props) {
|
|
|
let txt = ''
|
|
|
if (isLook) txt = ',已为您跳转到编辑页面'
|
|
|
|
|
|
- if (!info.num) {
|
|
|
- if (isLook) history.replace(`${path}_edit/2/${info.id}`)
|
|
|
- MessageFu.warning('请输入申请编号' + txt)
|
|
|
+ // 校验字段
|
|
|
+ let verifyFlag = false
|
|
|
+ verifyArr.forEach(cc => {
|
|
|
+ if (!info[cc.key as 'num']) {
|
|
|
+ verifyFlag = true
|
|
|
+ if (isLook) history.replace(`${path}_edit/2/${info.id}`)
|
|
|
+ MessageFu.warning(cc.txt + txt)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ if (verifyFlag) return
|
|
|
|
|
|
- return
|
|
|
+ // 是否至少需要添加一条数据
|
|
|
+ if (checkListTxt) {
|
|
|
+ if (snaps.length === 0) {
|
|
|
+ if (isLook) history.replace(`${path}_edit/2/${info.id}`)
|
|
|
+
|
|
|
+ MessageFu.warning(`请至少添加一个${checkListTxt}${txt}`)
|
|
|
+ return
|
|
|
+ } else if (['/register', '/enterGuan'].includes(path)) {
|
|
|
+ // 藏品登记/藏品入馆,需要校验
|
|
|
+
|
|
|
+ // 校验藏品登记号 为空 或者 重复
|
|
|
+ // console.log('-----', snaps, obj)
|
|
|
+ const flag = numFlag(snaps)
|
|
|
+
|
|
|
+ if (flag) {
|
|
|
+ MessageFu.warning(flag + txt)
|
|
|
+ if (isLook) history.replace(`${path}_edit/2/${info.id}`)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- if (snaps.length === 0) {
|
|
|
- if (isLook) history.replace(`${path}_edit/2/${info.id}`)
|
|
|
-
|
|
|
- MessageFu.warning(`请至少添加一个${checkListTxt}${txt}`)
|
|
|
- return
|
|
|
- } else if (path === '/register') {
|
|
|
- // 校验藏品登记号 为空 或者 重复
|
|
|
- // console.log('-----', snaps, obj)
|
|
|
- const flag = numFlag(snaps)
|
|
|
-
|
|
|
- if (flag) {
|
|
|
- MessageFu.warning(flag + txt)
|
|
|
+
|
|
|
+ // 其他自己制定的校验函数
|
|
|
+ if (verifyBackFu) {
|
|
|
+ const flagObj = verifyBackFu()
|
|
|
+ if (flagObj.flag) {
|
|
|
if (isLook) history.replace(`${path}_edit/2/${info.id}`)
|
|
|
+ MessageFu.warning(flagObj.txt + txt)
|
|
|
return
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
const res = await APIobj['发起'](obj)
|
|
|
if (res.code === 0) {
|
|
|
if (['1', '2'].includes(key)) {
|
|
|
@@ -189,7 +223,20 @@ function EditBtn({ path, APIobj, checkListTxt = '藏品' }: Props) {
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
- [APIobj, auditInfo, checkListTxt, delSnapIdsRef, info, isLook, key, path, setTimeKeyFu, snaps]
|
|
|
+ [
|
|
|
+ APIobj,
|
|
|
+ auditInfo,
|
|
|
+ checkListTxt,
|
|
|
+ delSnapIdsRef,
|
|
|
+ info,
|
|
|
+ isLook,
|
|
|
+ key,
|
|
|
+ path,
|
|
|
+ setTimeKeyFu,
|
|
|
+ snaps,
|
|
|
+ verifyArr,
|
|
|
+ verifyBackFu
|
|
|
+ ]
|
|
|
)
|
|
|
|
|
|
// 申请记录的显示
|