|
@@ -1,868 +0,0 @@
|
|
|
-import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'
|
|
|
-import styles from './index.module.scss'
|
|
|
-import {
|
|
|
- Button,
|
|
|
- Cascader,
|
|
|
- DatePicker,
|
|
|
- Form,
|
|
|
- FormInstance,
|
|
|
- Input,
|
|
|
- InputNumber,
|
|
|
- Modal,
|
|
|
- Select
|
|
|
-} from 'antd'
|
|
|
-import MyPopconfirm from '@/components/MyPopconfirm'
|
|
|
-import TextArea from 'antd/es/input/TextArea'
|
|
|
-import ZRichTexts from '@/components/ZRichTexts'
|
|
|
-import MyTable from '@/components/MyTable'
|
|
|
-import { Y33tableC } from '@/utils/tableData'
|
|
|
-import ImageLazy from '@/components/ImageLazy'
|
|
|
-import YtableVideo from '@/components/YtableVideo'
|
|
|
-import { selectObj } from '@/utils/select'
|
|
|
-import dayjs from 'dayjs'
|
|
|
-import { getTokenInfo } from '@/utils/storage'
|
|
|
-import Z3upFiles from '@/components/Z3upFiles'
|
|
|
-import { GoodFileType } from './type'
|
|
|
-import { baseURL } from '@/utils/http'
|
|
|
-import { fileImgArr, fileVideoArr } from '@/store/action/layout'
|
|
|
-import { API_C2dels } from '@/store/action/C2files'
|
|
|
-import { API_goodsAdd, API_goodsInfo } from '@/store/action/C1ledger'
|
|
|
-import { C1GoodType } from '@/pages/A3_ledger/C1ledger/type'
|
|
|
-import { MessageFu } from '@/utils/message'
|
|
|
-import { cascaderObjFu } from '@/utils/history'
|
|
|
-
|
|
|
-// 级联的数据转换成字符串
|
|
|
-export const cascaderChArr = [
|
|
|
- 'dictType',
|
|
|
- 'dictAge',
|
|
|
- 'pcsUnit',
|
|
|
- 'dictTexture1',
|
|
|
- 'dictTexture2',
|
|
|
- 'dictTexture3',
|
|
|
- 'dictTorn',
|
|
|
- 'sizeUnit',
|
|
|
- 'qualityDictScope',
|
|
|
- 'qualityUnit',
|
|
|
- 'inDictDateScope',
|
|
|
- 'source',
|
|
|
- // 其他模块有的级联字段
|
|
|
- 'dictAgeFirst'
|
|
|
-]
|
|
|
-
|
|
|
-type Props = {
|
|
|
- closeFu: () => void
|
|
|
- nowSta: { key: string; id: string }
|
|
|
- isEdit: boolean //藏品编辑模块
|
|
|
- succFu: (
|
|
|
- obj: C1GoodType,
|
|
|
- type: '新增' | '编辑',
|
|
|
- flieNew?: GoodFileType[],
|
|
|
- fileOld?: GoodFileType[]
|
|
|
- ) => void
|
|
|
-}
|
|
|
-
|
|
|
-function B3GaddNew({ nowSta, closeFu, succFu, isEdit }: Props) {
|
|
|
- // 制档日期 / 制档人
|
|
|
- const [txtArr, setTxtArr] = useState([getTokenInfo().user.realName, dayjs().format('YYYY-MM-DD')])
|
|
|
-
|
|
|
- // 藏品编辑模块用来对比
|
|
|
- const objOld = useRef<any>({})
|
|
|
-
|
|
|
- // 编辑进来获取详情
|
|
|
- const getInfo = useCallback(async (id: number) => {
|
|
|
- const res = await API_goodsInfo(id)
|
|
|
- if (res.code === 0) {
|
|
|
- // 藏品编辑信息保存
|
|
|
- objOld.current = { ...res.data }
|
|
|
-
|
|
|
- // dateMaking inGoodsDate 2个日期需要格式处理一下
|
|
|
- const obj = { ...res.data }
|
|
|
- if (obj.dateMaking) obj.dateMaking = dayjs(obj.dateMaking)
|
|
|
- if (obj.inGoodsDate) obj.inGoodsDate = dayjs(obj.inGoodsDate)
|
|
|
-
|
|
|
- setTxtArr([obj.creatorName, dayjs(obj.createTime).format('YYYY-MM-DD')])
|
|
|
-
|
|
|
- cascaderChArr.forEach(v => {
|
|
|
- if (obj[v]) obj[v] = obj[v].split(',')
|
|
|
- })
|
|
|
- FormBoxRef.current?.setFieldsValue(obj)
|
|
|
-
|
|
|
- // 设置封面图
|
|
|
- // ZupThumbRef.current?.setFileComFileFu({
|
|
|
- // fileName: '',
|
|
|
- // filePath: obj.thumbPc,
|
|
|
- // thumb: obj.thumb
|
|
|
- // })
|
|
|
-
|
|
|
- // 设置富文本
|
|
|
- if (obj.rtf) ZRichTextRef.current?.ritxtShowFu(JSON.parse(obj.rtf))
|
|
|
-
|
|
|
- // 设置附件
|
|
|
- setTable(obj.file || [])
|
|
|
- }
|
|
|
- }, [])
|
|
|
-
|
|
|
- useEffect(() => {
|
|
|
- if (nowSta.id !== 'null') {
|
|
|
- getInfo(Number(nowSta.id))
|
|
|
- }
|
|
|
- }, [getInfo, nowSta.id])
|
|
|
-
|
|
|
- // 设置表单ref
|
|
|
- const FormBoxRef = useRef<FormInstance>(null)
|
|
|
-
|
|
|
- // 年代是否选择了其他
|
|
|
- const [ageAc, setAgeAc] = useState(false)
|
|
|
-
|
|
|
- // 封面图的ref
|
|
|
- // const ZupThumbRef = useRef<any>(null)
|
|
|
-
|
|
|
- // 富文本的ref
|
|
|
- const ZRichTextRef = useRef<any>(null)
|
|
|
-
|
|
|
- // 上传附件的ref
|
|
|
- const filesRef = useRef<any>(null)
|
|
|
-
|
|
|
- // 附件表格
|
|
|
- const [table, setTable] = useState<GoodFileType[]>([])
|
|
|
-
|
|
|
- // 附件删除记录id
|
|
|
- const fileDelIdArr = useRef<number[]>([])
|
|
|
-
|
|
|
- const tableFu = useCallback(
|
|
|
- (key: 'type' | 'effect', id: number, val: any) => {
|
|
|
- setTable(
|
|
|
- table.map(v => ({
|
|
|
- ...v,
|
|
|
- [key]: id === v.id ? val : v[key]
|
|
|
- }))
|
|
|
- )
|
|
|
- },
|
|
|
- [table]
|
|
|
- )
|
|
|
-
|
|
|
- // 附件类型和附件用途是否禁用
|
|
|
- const disabledSelect = useCallback(
|
|
|
- (id: number) => {
|
|
|
- let flag = false
|
|
|
- if (isEdit) {
|
|
|
- if (objOld.current && objOld.current.file && objOld.current.file.length) {
|
|
|
- const oldFileIds: number[] = objOld.current.file.map((v: any) => v.id)
|
|
|
- if (oldFileIds.includes(id)) flag = true
|
|
|
- }
|
|
|
- }
|
|
|
- return flag
|
|
|
- },
|
|
|
- [isEdit]
|
|
|
- )
|
|
|
-
|
|
|
- // 相关附件的操作
|
|
|
- const startBtn = useMemo(() => {
|
|
|
- return [
|
|
|
- {
|
|
|
- width: 100,
|
|
|
- title: '缩略图/视频',
|
|
|
- render: (item: GoodFileType) => {
|
|
|
- const fileNameArr = item.fileName.split('.')
|
|
|
- const fileNameLast = fileNameArr[fileNameArr.length - 1]
|
|
|
-
|
|
|
- return fileImgArr.includes(fileNameLast) ? (
|
|
|
- <div className='tableImgAuto'>
|
|
|
- <ImageLazy width={60} height={60} srcBig={item.filePath} src={item.thumb} />
|
|
|
- </div>
|
|
|
- ) : fileVideoArr.includes(fileNameLast) ? (
|
|
|
- <YtableVideo src={item.filePath} />
|
|
|
- ) : (
|
|
|
- ' - '
|
|
|
- )
|
|
|
- }
|
|
|
- },
|
|
|
- {
|
|
|
- title: '附件类型',
|
|
|
- render: (item: GoodFileType) => (
|
|
|
- <Select
|
|
|
- disabled={disabledSelect(item.id)}
|
|
|
- style={{ width: 120 }}
|
|
|
- placeholder='请选择'
|
|
|
- value={item.type}
|
|
|
- onChange={e => tableFu('type', item.id, e)}
|
|
|
- options={selectObj['附件类型']}
|
|
|
- />
|
|
|
- )
|
|
|
- },
|
|
|
- {
|
|
|
- title: '附件用途',
|
|
|
- render: (item: GoodFileType) => (
|
|
|
- <Cascader
|
|
|
- disabled={disabledSelect(item.id)}
|
|
|
- options={cascaderObjFu()['附件用途']}
|
|
|
- value={item.effect ? item.effect.split(',') : []}
|
|
|
- onChange={e => tableFu('effect', item.id, e ? e.join(',') : '')}
|
|
|
- placeholder='请选择'
|
|
|
- fieldNames={{ label: 'name', value: 'id', children: 'children' }}
|
|
|
- />
|
|
|
- )
|
|
|
- }
|
|
|
- ]
|
|
|
- }, [disabledSelect, tableFu])
|
|
|
-
|
|
|
- const tableLastBtn = useMemo(() => {
|
|
|
- return [
|
|
|
- {
|
|
|
- width: 120,
|
|
|
- title: '操作',
|
|
|
- render: (item: GoodFileType) => {
|
|
|
- return (
|
|
|
- <>
|
|
|
- <Button size='small' type='text'>
|
|
|
- <a href={baseURL + item.filePath} download target='_blank' rel='noreferrer'>
|
|
|
- 下载
|
|
|
- </a>
|
|
|
- </Button>
|
|
|
- <MyPopconfirm
|
|
|
- txtK='删除'
|
|
|
- onConfirm={() => {
|
|
|
- setTable(table.filter(v => v.id !== item.id))
|
|
|
- fileDelIdArr.current.push(item.id)
|
|
|
- }}
|
|
|
- />
|
|
|
- </>
|
|
|
- )
|
|
|
- }
|
|
|
- }
|
|
|
- ]
|
|
|
- }, [table])
|
|
|
-
|
|
|
- // 没有通过校验
|
|
|
- const onFinishFailed = useCallback(() => {
|
|
|
- // return MessageFu.warning("有表单不符号规则!");
|
|
|
- }, [])
|
|
|
-
|
|
|
- // 通过校验点击确定
|
|
|
- const onFinish = useCallback(
|
|
|
- async (values: any) => {
|
|
|
- // 封面图
|
|
|
- // const coverUrl1 = ZupThumbRef.current?.fileComFileResFu()
|
|
|
-
|
|
|
- // 富文本
|
|
|
- const rtf = ZRichTextRef.current?.fatherBtnOkFu() || { flag: true }
|
|
|
-
|
|
|
- // 附件
|
|
|
- let fileIds = ''
|
|
|
- let fileSet: any = null
|
|
|
-
|
|
|
- if (table.length) {
|
|
|
- fileIds = table.map(v => v.id).join(',')
|
|
|
-
|
|
|
- fileSet = table.map(v => ({
|
|
|
- effect: v.effect,
|
|
|
- id: v.id,
|
|
|
- type: v.type
|
|
|
- }))
|
|
|
- }
|
|
|
-
|
|
|
- // 2个日期的格式处理
|
|
|
- let inGoodsDate = ''
|
|
|
- if (values.inGoodsDate) inGoodsDate = dayjs(values.inGoodsDate).format('YYYY-MM-DD')
|
|
|
- let dateMaking = ''
|
|
|
- if (values.dateMaking) dateMaking = dayjs(values.dateMaking).format('YYYY-MM-DD')
|
|
|
-
|
|
|
- // 默认以第一个附件为img的作为封面图
|
|
|
- const imgArr = table.filter(v => {
|
|
|
- const txtArr = v.fileName.split('.')
|
|
|
- const txt = txtArr[txtArr.length - 1]
|
|
|
- return v.type === 'img' && fileImgArr.includes(txt)
|
|
|
- })
|
|
|
-
|
|
|
- let thumb = ''
|
|
|
- let thumbPc = ''
|
|
|
-
|
|
|
- if (imgArr && imgArr.length) {
|
|
|
- thumb = imgArr[0].thumb
|
|
|
- thumbPc = imgArr[0].filePath
|
|
|
- }
|
|
|
-
|
|
|
- const obj = {
|
|
|
- ...values,
|
|
|
- thumb,
|
|
|
- thumbPc,
|
|
|
- rtf: JSON.stringify(rtf.val || ''),
|
|
|
- fileIds,
|
|
|
- fileSet,
|
|
|
- inGoodsDate,
|
|
|
- dateMaking,
|
|
|
- id: nowSta.id === 'null' ? null : Number(nowSta.id)
|
|
|
- }
|
|
|
-
|
|
|
- for (const k in obj) {
|
|
|
- if (obj[k] === null || obj[k] === undefined) obj[k] = ''
|
|
|
- }
|
|
|
-
|
|
|
- // 级联的数据转换成字符串
|
|
|
- cascaderChArr.forEach(v => {
|
|
|
- if (values[v]) obj[v] = values[v].join(',')
|
|
|
- })
|
|
|
-
|
|
|
- if (isEdit) {
|
|
|
- let flag = true
|
|
|
-
|
|
|
- // fileIds 要特别处理
|
|
|
- const fileNew = table.map(v => v.id).join(',')
|
|
|
- const fileOld = (objOld.current.file || []).map((v: any) => v.id).join(',')
|
|
|
-
|
|
|
- if (fileNew !== fileOld) flag = false
|
|
|
-
|
|
|
- // console.log(fileNew, fileOld)
|
|
|
-
|
|
|
- for (const k in obj) {
|
|
|
- if (!['fileIds', 'fileSet'].includes(k)) {
|
|
|
- if (objOld.current[k] !== obj[k]) {
|
|
|
- flag = false
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- // if (1 + 1 === 2) return
|
|
|
-
|
|
|
- if (flag) return MessageFu.warning('未修改藏品信息')
|
|
|
-
|
|
|
- // -----------藏品编辑模块进来---------------
|
|
|
- MessageFu.success('编辑成功')
|
|
|
- succFu(obj, '编辑', table || [], objOld.current.file || [])
|
|
|
- closeFu()
|
|
|
- } else {
|
|
|
- // -----------默认模块的新增和编辑-----------
|
|
|
- // 删除附件
|
|
|
- if (fileDelIdArr.current.length) {
|
|
|
- await API_C2dels(fileDelIdArr.current)
|
|
|
- }
|
|
|
-
|
|
|
- const res = await API_goodsAdd(obj, nowSta.id === 'null' ? '新增' : '编辑')
|
|
|
- if (res.code === 0) {
|
|
|
- MessageFu.success(nowSta.id === 'null' ? '新增成功' : '编辑成功')
|
|
|
- succFu(res.data, nowSta.id === 'null' ? '新增' : '编辑')
|
|
|
- closeFu()
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- [closeFu, isEdit, nowSta.id, succFu, table]
|
|
|
- )
|
|
|
-
|
|
|
- return (
|
|
|
- <Modal
|
|
|
- wrapClassName={styles.B3GaddNew}
|
|
|
- open={true}
|
|
|
- title={`${nowSta.id !== 'null' ? '编辑' : '新增'}藏品`}
|
|
|
- footer={
|
|
|
- [] // 设置footer为空,去掉 取消 确定默认按钮
|
|
|
- }
|
|
|
- >
|
|
|
- <div className='B3Nmain'>
|
|
|
- <Form
|
|
|
- scrollToFirstError={true}
|
|
|
- ref={FormBoxRef}
|
|
|
- name='basic'
|
|
|
- onFinish={onFinish}
|
|
|
- onFinishFailed={onFinishFailed}
|
|
|
- autoComplete='off'
|
|
|
- >
|
|
|
- <div className='B3Ntit'>档案信息</div>
|
|
|
-
|
|
|
- <div className='B3Nbox'>
|
|
|
- <div className='B3Nrow B3Nrow0'>
|
|
|
- <Form.Item
|
|
|
- label='藏品编号'
|
|
|
- name='numName'
|
|
|
- rules={[{ required: true, message: '请选择编号类型' }]}
|
|
|
- >
|
|
|
- <Select
|
|
|
- style={{ width: 140 }}
|
|
|
- options={selectObj['藏品编号类型']}
|
|
|
- placeholder='请选择'
|
|
|
- />
|
|
|
- </Form.Item>
|
|
|
-
|
|
|
- <Form.Item name='num' rules={[{ required: true, message: '请输入藏品编号' }]}>
|
|
|
- <Input maxLength={30} showCount placeholder='请输入内容' />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div className='B3Nrow'>
|
|
|
- <Form.Item label='分类号' name='numType'>
|
|
|
- <Input maxLength={30} showCount placeholder='请输入内容' />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div className='B3Nrow'>
|
|
|
- <div className='B3Nrowll'>制档人:</div>
|
|
|
- <div className='B3Nrowrr'>{txtArr[0]}</div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div className='B3Nrow'>
|
|
|
- <div className='B3Nrowll'>制档日期:</div>
|
|
|
- <div className='B3Nrowrr'>{txtArr[1]}</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div className='B3Ntit'>藏品基本信息</div>
|
|
|
-
|
|
|
- <div className='B3Nbox'>
|
|
|
- <div className='B3Nrow'>
|
|
|
- <Form.Item
|
|
|
- label='藏品名称'
|
|
|
- name='name'
|
|
|
- rules={[{ required: true, message: '请输入藏品名称' }]}
|
|
|
- >
|
|
|
- <Input maxLength={30} showCount placeholder='请输入内容' />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
- <div className='B3Nrow'>
|
|
|
- <Form.Item label='藏品原名' name='namePrimitive'>
|
|
|
- <Input maxLength={30} showCount placeholder='请输入内容' />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
- <div className='B3Nrow'>
|
|
|
- <Form.Item
|
|
|
- label='文物级别'
|
|
|
- name='dictLevel'
|
|
|
- rules={[{ required: true, message: '请选择文物级别' }]}
|
|
|
- >
|
|
|
- <Select options={selectObj['文物级别']} placeholder='请选择' />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
- <div className='B3Nrow'>
|
|
|
- <Form.Item
|
|
|
- label='文物类别'
|
|
|
- name='dictType'
|
|
|
- rules={[{ required: true, message: '请选择文物类别' }]}
|
|
|
- >
|
|
|
- <Cascader
|
|
|
- options={cascaderObjFu()['文物类别']}
|
|
|
- placeholder='请选择'
|
|
|
- fieldNames={{ label: 'name', value: 'id', children: 'children' }}
|
|
|
- allowClear={false}
|
|
|
- />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
- <div className='B3Nrow'>
|
|
|
- <Form.Item
|
|
|
- label='年代'
|
|
|
- name='dictAge'
|
|
|
- rules={[{ required: true, message: '请选择年代' }]}
|
|
|
- >
|
|
|
- <Cascader
|
|
|
- options={[...cascaderObjFu()['年代'], { name: '其他', id: '其他' }]}
|
|
|
- onChange={value => setAgeAc(value[0] === '其他')}
|
|
|
- placeholder='请选择'
|
|
|
- fieldNames={{ label: 'name', value: 'id', children: 'children' }}
|
|
|
- allowClear={false}
|
|
|
- />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div className='B3Nrow'>
|
|
|
- <Form.Item
|
|
|
- label='具体年代'
|
|
|
- name='ageInfo'
|
|
|
- rules={[{ required: ageAc, message: '请输入内容' }]}
|
|
|
- >
|
|
|
- <Input maxLength={30} showCount placeholder='请输入内容' />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div className='B3Nrow'>
|
|
|
- <Form.Item label='制作时间' name='dateMaking'>
|
|
|
- <DatePicker placeholder='请选择日期' />
|
|
|
- </Form.Item>
|
|
|
- <div className='B3NrowDing'>
|
|
|
- <Form.Item label='作者' name='author'>
|
|
|
- <Input maxLength={30} showCount placeholder='请输入内容' />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div className='B3Nrow'>
|
|
|
- <Form.Item label='作者介绍' name='authorDesc'>
|
|
|
- <TextArea maxLength={500} showCount placeholder='请输入内容' />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div className='B3Nrow B3NrowNumOrCas'>
|
|
|
- <Form.Item
|
|
|
- label='数量'
|
|
|
- name='pcs'
|
|
|
- rules={[{ required: true, message: '请输入正整数' }]}
|
|
|
- >
|
|
|
- <InputNumber min={1} max={99999999} precision={0} placeholder='请输入正整数' />
|
|
|
- </Form.Item>
|
|
|
-
|
|
|
- <Form.Item name='pcsUnit' rules={[{ required: true, message: '请选择单位' }]}>
|
|
|
- <Cascader
|
|
|
- options={cascaderObjFu()['数量单位']}
|
|
|
- placeholder='请选择'
|
|
|
- fieldNames={{ label: 'name', value: 'id', children: 'children' }}
|
|
|
- allowClear={false}
|
|
|
- />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
- <div className='B3Nrow'>
|
|
|
- <Form.Item label='实际数量' name='pcsActual'>
|
|
|
- <Input maxLength={30} showCount placeholder='请输入内容' />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div className='B3Nrow B3Nrow1'>
|
|
|
- <Form.Item
|
|
|
- label={
|
|
|
- <div>
|
|
|
- <span className='B3Nred'> * </span>质地
|
|
|
- </div>
|
|
|
- }
|
|
|
- name='dictTexture1'
|
|
|
- >
|
|
|
- <Cascader
|
|
|
- options={cascaderObjFu()['质地']}
|
|
|
- placeholder='请选择'
|
|
|
- fieldNames={{ label: 'name', value: 'id', children: 'children' }}
|
|
|
- />
|
|
|
- </Form.Item>
|
|
|
- <Form.Item name='dictTexture2'>
|
|
|
- <Cascader
|
|
|
- options={cascaderObjFu()['复合或组合质地']}
|
|
|
- placeholder='请选择'
|
|
|
- fieldNames={{ label: 'name', value: 'id', children: 'children' }}
|
|
|
- />
|
|
|
- </Form.Item>
|
|
|
- <Form.Item name='dictTexture3' rules={[{ required: true, message: '请选择质地3' }]}>
|
|
|
- <Cascader
|
|
|
- options={cascaderObjFu()['单一质地']}
|
|
|
- placeholder='请选择'
|
|
|
- fieldNames={{ label: 'name', value: 'id', children: 'children' }}
|
|
|
- allowClear={false}
|
|
|
- />
|
|
|
- </Form.Item>
|
|
|
-
|
|
|
- <div className='B3NrowDing'>
|
|
|
- <Form.Item
|
|
|
- label='完残程度'
|
|
|
- name='dictTorn'
|
|
|
- rules={[{ required: true, message: '请选择完残程度' }]}
|
|
|
- >
|
|
|
- <Cascader
|
|
|
- options={cascaderObjFu()['完残程度']}
|
|
|
- placeholder='请选择'
|
|
|
- fieldNames={{ label: 'name', value: 'id', children: 'children' }}
|
|
|
- allowClear={false}
|
|
|
- />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- {/* 封面 */}
|
|
|
- {/* <div className='formRow'>
|
|
|
- <div className='formLeft'>封面图:</div>
|
|
|
- <div className='formRight'>
|
|
|
- <ZupOne
|
|
|
- ref={ZupThumbRef}
|
|
|
- isLook={false}
|
|
|
- fileCheck={false}
|
|
|
- size={5}
|
|
|
- dirCode='goodsAdd'
|
|
|
- myUrl='cms/goods/upload'
|
|
|
- format={['image/jpeg', 'image/png']}
|
|
|
- formatTxt='png、jpg和jpeg'
|
|
|
- checkTxt='请上传封面图!'
|
|
|
- upTxt='最多1张'
|
|
|
- myType='thumb'
|
|
|
- />
|
|
|
- </div>
|
|
|
- </div> */}
|
|
|
-
|
|
|
- <div className='B3Nrow'>
|
|
|
- <Form.Item label='完残情况' name='torn'>
|
|
|
- <TextArea maxLength={500} showCount placeholder='请输入内容' />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div className='B3Nrow'>
|
|
|
- <Form.Item label='保存状态' name='preserveState'>
|
|
|
- <TextArea maxLength={500} showCount placeholder='请输入内容' />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div className='B3Nrow'>
|
|
|
- <Form.Item label='色泽' name='color'>
|
|
|
- <TextArea maxLength={500} showCount placeholder='请输入内容' />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div className='B3Nrow'>
|
|
|
- <Form.Item label='用途' name='uses'>
|
|
|
- <TextArea maxLength={500} showCount placeholder='请输入内容' />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div className='B3Nrow'>
|
|
|
- <Form.Item label='形状描述' name='shape'>
|
|
|
- <TextArea maxLength={500} showCount placeholder='请输入内容' />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div className='B3Nrow'>
|
|
|
- <Form.Item label='著者' name='pressAuthor'>
|
|
|
- <Input maxLength={30} showCount placeholder='请输入内容' />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div className='B3Nrow'>
|
|
|
- <Form.Item label='版本' name='pressVersion'>
|
|
|
- <Input maxLength={30} showCount placeholder='请输入内容' />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
- <div className='B3Nrow'>
|
|
|
- <Form.Item label='存卷' name='pressFile'>
|
|
|
- <Input maxLength={30} showCount placeholder='请输入内容' />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
-
|
|
|
- {/* 备注 */}
|
|
|
- <div className='formRow formRow2'>
|
|
|
- <div className='formLeft'>备注:</div>
|
|
|
- <div className='formRight'>
|
|
|
- <ZRichTexts
|
|
|
- check={false}
|
|
|
- dirCode='goodsAdd'
|
|
|
- myUrl='cms/goods/upload'
|
|
|
- isLook={false}
|
|
|
- ref={ZRichTextRef}
|
|
|
- isOne={true}
|
|
|
- upAudioBtnNone={true}
|
|
|
- />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- {/* =====上传附件==== */}
|
|
|
- <div className='B3Nbox B3Nbox1'>
|
|
|
- <div className='B3Ntit'>
|
|
|
- <div className='B3Ntitll'>
|
|
|
- 相关附件<span> 附件类型为图像并且格式为图片的第一份数据为封面图</span>
|
|
|
- </div>
|
|
|
- <Z3upFiles
|
|
|
- max={1000}
|
|
|
- isLook={false}
|
|
|
- ref={filesRef}
|
|
|
- fileCheck={false}
|
|
|
- dirCode='goodsAdd'
|
|
|
- myUrl='cms/goods/upload'
|
|
|
- lookData={[]}
|
|
|
- size={500}
|
|
|
- noShowList={true}
|
|
|
- fileRes={obj => setTable([obj, ...table])}
|
|
|
- />
|
|
|
- </div>
|
|
|
-
|
|
|
- {/* 表格 */}
|
|
|
- <MyTable
|
|
|
- list={table}
|
|
|
- columnsTemp={Y33tableC}
|
|
|
- lastBtn={tableLastBtn}
|
|
|
- startBtn={startBtn}
|
|
|
- pagingInfo={false}
|
|
|
- />
|
|
|
- </div>
|
|
|
-
|
|
|
- <div className='B3Ntit'>尺寸和质量</div>
|
|
|
-
|
|
|
- <div className='B3Nbox'>
|
|
|
- <div className='formRow formRow2'>
|
|
|
- <div className='formLeft'>尺寸:</div>
|
|
|
- <div className='formRight formRightSize'>
|
|
|
- <Form.Item label='通长' name='sizeL'>
|
|
|
- <InputNumber
|
|
|
- min={0}
|
|
|
- max={99999999}
|
|
|
- precision={2}
|
|
|
- placeholder='请输入数字,最多两位小数'
|
|
|
- />
|
|
|
- </Form.Item>
|
|
|
-
|
|
|
- <Form.Item label='通宽' name='sizeW'>
|
|
|
- <InputNumber
|
|
|
- min={0}
|
|
|
- max={99999999}
|
|
|
- precision={2}
|
|
|
- placeholder='请输入数字,最多两位小数'
|
|
|
- />
|
|
|
- </Form.Item>
|
|
|
- <Form.Item label='通高' name='sizeH'>
|
|
|
- <InputNumber
|
|
|
- min={0}
|
|
|
- max={99999999}
|
|
|
- precision={2}
|
|
|
- placeholder='请输入数字,最多两位小数'
|
|
|
- />
|
|
|
- </Form.Item>
|
|
|
-
|
|
|
- <Form.Item name='sizeUnit'>
|
|
|
- <Cascader
|
|
|
- options={cascaderObjFu()['尺寸单位']}
|
|
|
- placeholder='请选择'
|
|
|
- fieldNames={{ label: 'name', value: 'id', children: 'children' }}
|
|
|
- />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div className='B3Nrow'>
|
|
|
- <Form.Item
|
|
|
- label='质量范围'
|
|
|
- name='qualityDictScope'
|
|
|
- rules={[{ required: true, message: '请选择质量范围' }]}
|
|
|
- >
|
|
|
- <Cascader
|
|
|
- options={cascaderObjFu()['质量范围']}
|
|
|
- placeholder='请选择'
|
|
|
- fieldNames={{ label: 'name', value: 'id', children: 'children' }}
|
|
|
- allowClear={false}
|
|
|
- />
|
|
|
- </Form.Item>
|
|
|
-
|
|
|
- <div className='B3NrowDing B3NrowDing2'>
|
|
|
- <Form.Item label='具体质量' name='quality'>
|
|
|
- <InputNumber
|
|
|
- min={0}
|
|
|
- max={99999999}
|
|
|
- precision={2}
|
|
|
- placeholder='请输入数字,最多两位小数'
|
|
|
- />
|
|
|
- </Form.Item>
|
|
|
-
|
|
|
- <Form.Item name='qualityUnit'>
|
|
|
- <Cascader
|
|
|
- options={cascaderObjFu()['质量单位']}
|
|
|
- placeholder='请选择'
|
|
|
- fieldNames={{ label: 'name', value: 'id', children: 'children' }}
|
|
|
- />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div className='B3Nrow'>
|
|
|
- <Form.Item label='具体尺寸' name='sizeInfo'>
|
|
|
- <TextArea maxLength={500} showCount placeholder='请输入内容' />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div className='B3Ntit'>入藏及来源</div>
|
|
|
-
|
|
|
- <div className='B3Nbox'>
|
|
|
- <div className='B3Nrow'>
|
|
|
- <Form.Item label='入馆凭证号' name='inHouseNum'>
|
|
|
- <Input maxLength={30} showCount placeholder='请输入内容' />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
- <div className='B3Nrow'>
|
|
|
- <Form.Item label='入藏凭证号' name='inGoodsNum'>
|
|
|
- <Input maxLength={30} showCount placeholder='请输入内容' />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div className='B3Nrow'>
|
|
|
- <Form.Item label='入藏日期' name='inGoodsDate'>
|
|
|
- <DatePicker placeholder='请选择日期' />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div className='B3Nrow'>
|
|
|
- <Form.Item
|
|
|
- label='入藏日期范围'
|
|
|
- className='B3NlongTxt'
|
|
|
- name='inDictDateScope'
|
|
|
- // rules={[{ required: true, message: '请选择入藏日期范围' }]}
|
|
|
- >
|
|
|
- <Cascader
|
|
|
- options={cascaderObjFu()['入藏日期范围']}
|
|
|
- placeholder='请选择'
|
|
|
- fieldNames={{ label: 'name', value: 'id', children: 'children' }}
|
|
|
- allowClear={true}
|
|
|
- />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div className='B3Nrow'>
|
|
|
- <Form.Item label='入藏去向' name='accountType'>
|
|
|
- <Select options={selectObj['入藏去向']} placeholder='请选择' />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div className='B3Nrow'>
|
|
|
- <Form.Item
|
|
|
- label='来源'
|
|
|
- name='source'
|
|
|
- rules={[{ required: true, message: '请选择来源' }]}
|
|
|
- >
|
|
|
- <Cascader
|
|
|
- options={cascaderObjFu()['来源']}
|
|
|
- placeholder='请选择'
|
|
|
- fieldNames={{ label: 'name', value: 'id', children: 'children' }}
|
|
|
- allowClear={false}
|
|
|
- />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div className='B3Nrow'>
|
|
|
- <Form.Item label='来源详情' name='sourceInfo'>
|
|
|
- <TextArea maxLength={500} showCount placeholder='请输入内容' />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div className='B3Nrow'>
|
|
|
- <Form.Item label='征集经过' name='sourcePass'>
|
|
|
- <TextArea maxLength={500} showCount placeholder='请输入内容' />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
- <div className='B3Nrow'>
|
|
|
- <Form.Item label='铭记题跋' name='sourcePreface'>
|
|
|
- <TextArea maxLength={500} showCount placeholder='请输入内容' />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
- <div className='B3Nrow'>
|
|
|
- <Form.Item label='鉴藏印记' name='sourceStamp'>
|
|
|
- <TextArea maxLength={500} showCount placeholder='请输入内容' />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div className='B3Ntit'>藏品历史及流传</div>
|
|
|
-
|
|
|
- <div className='B3Nbox'>
|
|
|
- <div className='B3Nrow'>
|
|
|
- <Form.Item label='著作及有关书目' className='B3NlongTxt2' name='historyWork'>
|
|
|
- <TextArea maxLength={500} showCount placeholder='请输入内容' />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
- <div className='B3Nrow'>
|
|
|
- <Form.Item label='流传经历' name='historyUndergo'>
|
|
|
- <TextArea maxLength={500} showCount placeholder='请输入内容' />
|
|
|
- </Form.Item>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- {/* 确定和取消按钮 */}
|
|
|
- <Form.Item className='B3Nbtn'>
|
|
|
- <Button type='primary' htmlType='submit'>
|
|
|
- 提交
|
|
|
- </Button>
|
|
|
-  
|
|
|
- <MyPopconfirm txtK='取消' onConfirm={closeFu} />
|
|
|
- </Form.Item>
|
|
|
- </Form>
|
|
|
- </div>
|
|
|
- </Modal>
|
|
|
- )
|
|
|
-}
|
|
|
-
|
|
|
-const MemoB3GaddNew = React.memo(B3GaddNew)
|
|
|
-
|
|
|
-export default MemoB3GaddNew
|