|  | @@ -1,3 +1,4 @@
 | 
	
		
			
				|  |  | +import FileModal from '@/components/FileModal'
 | 
	
		
			
				|  |  |  import Header from '@/components/Header'
 | 
	
		
			
				|  |  |  import Slot from '@/components/Header/slot'
 | 
	
		
			
				|  |  |  import RuleModal from '@/components/RuleModal'
 | 
	
	
		
			
				|  | @@ -32,7 +33,31 @@ interface iModal {
 | 
	
		
			
				|  |  |    loading: boolean
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +interface iFileModal {
 | 
	
		
			
				|  |  | +  visible: boolean
 | 
	
		
			
				|  |  | +  dataType: number
 | 
	
		
			
				|  |  | +  dataId: string
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  |  const SafeList:React.FC<{}> =() => {
 | 
	
		
			
				|  |  | +  const [ ruleModal, setRuleModal ] = useState<iModal>({
 | 
	
		
			
				|  |  | +    visible: false,
 | 
	
		
			
				|  |  | +    loading: false
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  | +  const [ addModal, setAddModal ] = useState<iModal>({
 | 
	
		
			
				|  |  | +    visible: false,
 | 
	
		
			
				|  |  | +    loading: false
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  | +  const [ fileModal, setFileModal ] = useState<iFileModal>({
 | 
	
		
			
				|  |  | +    visible: false,
 | 
	
		
			
				|  |  | +    dataType: consts.DATA_TYPE.SAFE,
 | 
	
		
			
				|  |  | +    dataId: ''
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  | +  useEffect(() => {
 | 
	
		
			
				|  |  | +    initData()
 | 
	
		
			
				|  |  | +  }, [])
 | 
	
		
			
				|  |  | +  useActivate(() => {
 | 
	
		
			
				|  |  | +    initData()
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  |    const columns:ColumnsType<iSafeList> = [
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  |        title: '序号',
 | 
	
	
		
			
				|  | @@ -77,8 +102,8 @@ const SafeList:React.FC<{}> =() => {
 | 
	
		
			
				|  |  |        title: '附件',
 | 
	
		
			
				|  |  |        dataIndex: 'fileCounts',
 | 
	
		
			
				|  |  |        // eslint-disable-next-line react/display-name
 | 
	
		
			
				|  |  | -      render: (text: string) => {
 | 
	
		
			
				|  |  | -      return <span><SvgIcon type="xxh-paperclip1"></SvgIcon> {text}</span>
 | 
	
		
			
				|  |  | +      render: (text: string, record) => {
 | 
	
		
			
				|  |  | +      return <span className="pi-pointer" onClick={() => setFileModal({ ...fileModal, dataId: record.id, visible: true })}><SvgIcon type="xxh-paperclip1"></SvgIcon> {text}</span>
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      {
 | 
	
	
		
			
				|  | @@ -89,7 +114,6 @@ const SafeList:React.FC<{}> =() => {
 | 
	
		
			
				|  |  |        return <span className={safeStatus[statu].className}>{safeStatus[statu].text}</span>
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |    ]
 | 
	
		
			
				|  |  |    const [ list, setList ] = useState<iSafeList[]>([
 | 
	
		
			
				|  |  |      {
 | 
	
	
		
			
				|  | @@ -105,26 +129,14 @@ const SafeList:React.FC<{}> =() => {
 | 
	
		
			
				|  |  |        fileCounts: 0
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    ])
 | 
	
		
			
				|  |  | -  useEffect(() => {
 | 
	
		
			
				|  |  | -    initData()
 | 
	
		
			
				|  |  | -  }, [])
 | 
	
		
			
				|  |  | -  useActivate(() => {
 | 
	
		
			
				|  |  | -    initData()
 | 
	
		
			
				|  |  | -  })
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |    const initData = async () => {
 | 
	
		
			
				|  |  |      const { code = -1, data = [] } = await apiSafeList(tenderStore.bidsectionId)
 | 
	
		
			
				|  |  |      if (code === consts.RET_CODE.SUCCESS) {
 | 
	
		
			
				|  |  |        setList(data)
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -  const [ ruleModal, setRuleModal ] = useState<iModal>({
 | 
	
		
			
				|  |  | -    visible: false,
 | 
	
		
			
				|  |  | -    loading: false
 | 
	
		
			
				|  |  | -  })
 | 
	
		
			
				|  |  | -  const [ addModal, setAddModal ] = useState<iModal>({
 | 
	
		
			
				|  |  | -    visible: false,
 | 
	
		
			
				|  |  | -    loading: false
 | 
	
		
			
				|  |  | -  })
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |    const onRuleCreate = async (ruleValue: any) => {
 | 
	
		
			
				|  |  |      setRuleModal({ ...ruleModal, loading: true })
 | 
	
		
			
				|  |  |      const { code = -1 } = await apiSaveRule({ bidsectionId: tenderStore.bidsectionId, type: 'safe_rule', rule: ruleValue })
 | 
	
	
		
			
				|  | @@ -181,6 +193,12 @@ const SafeList:React.FC<{}> =() => {
 | 
	
		
			
				|  |  |          onCancel={() => setAddModal({ ...addModal, visible: false })}
 | 
	
		
			
				|  |  |          >
 | 
	
		
			
				|  |  |        </AddModel>
 | 
	
		
			
				|  |  | +      <FileModal
 | 
	
		
			
				|  |  | +        visible={fileModal.visible}
 | 
	
		
			
				|  |  | +        dataType={fileModal.dataType}
 | 
	
		
			
				|  |  | +        dataId={fileModal.dataId}
 | 
	
		
			
				|  |  | +        onCancel={() => setFileModal({ ...fileModal, visible: false })}
 | 
	
		
			
				|  |  | +      ></FileModal>
 | 
	
		
			
				|  |  |      </div>
 | 
	
		
			
				|  |  |    )
 | 
	
		
			
				|  |  |  }
 |