InfoModalSetting.tsx 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. import * as React from 'react';
  2. import { Modal, Spin, Form, Input, Select, message, Checkbox, GetProp } from 'antd';
  3. import { apis, ModifyDocumentSettingApiParams } from '@/apis';
  4. const FormItem = Form.Item;
  5. const { Option } = Select;
  6. interface Props {
  7. id: string,
  8. open: boolean,
  9. onClickConfirm: (id: string, data: ModifyDocumentSettingApiParams) => Promise<any>,
  10. onClickCancel: () => void,
  11. };
  12. const InfoModalSetting: React.FC<Props> = (props: Props) => {
  13. const {
  14. id,
  15. open,
  16. onClickConfirm,
  17. onClickCancel,
  18. } = props;
  19. const [form] = Form.useForm();
  20. const [loading, setLoading] = React.useState<boolean>(false);
  21. const [isVisibleSlice, setIsVisibleSlice] = React.useState(false);
  22. const [isVisibleSeparator, setIsVisibleSeparator] = React.useState(false);
  23. const options = [
  24. { label: '身份证', value: 'ID' },
  25. { label: '手机号', value: 'Phone' },
  26. { label: '银行卡', value: 'Car' },
  27. { label: '自定义', value: 'Custom' },
  28. ];
  29. // 获取知识设置详情
  30. const fetchDetail = async () => {
  31. try {
  32. const res = await apis.fetchTakaiDocumentSettingLibApi(props.id);
  33. console.log(res.data, 'res.data');
  34. const { knowledgeId, documentId, setSlice, setAnalyze, sliceValue, setTable } = res.data;
  35. if (res.data.setSlice === '3') {
  36. setIsVisibleSlice(!isVisibleSlice);
  37. }
  38. form.setFieldsValue({
  39. knowledgeId: knowledgeId,
  40. documentId: documentId,
  41. setSlice: setSlice,
  42. setAnalyze: setAnalyze,
  43. sliceValue: sliceValue,
  44. setTable: setTable,
  45. });
  46. } catch (error: any) {
  47. message.error(error.msg);
  48. }
  49. };
  50. const onChangeF = (value: string) => {
  51. if (value === '3') {
  52. setIsVisibleSlice(!isVisibleSlice);
  53. } else {
  54. setIsVisibleSlice(false);
  55. }
  56. };
  57. const init = async () => {
  58. setLoading(true);
  59. if (props.id) {
  60. await fetchDetail();
  61. }
  62. setLoading(false);
  63. };
  64. React.useEffect(() => {
  65. init();
  66. }, []);
  67. // 点击确定
  68. const handleClickConfirm = () => {
  69. form.validateFields().then(async (values) => {
  70. const data = { ...values };
  71. console.log(loading, 'loading');
  72. await onClickConfirm(props.id, data);
  73. }).catch((error) => {
  74. console.error(error);
  75. })
  76. };
  77. return (
  78. <Modal
  79. width={600}
  80. title='知识设置'
  81. destroyOnClose={true}
  82. maskClosable={false}
  83. centered={true}
  84. open={open}
  85. onOk={handleClickConfirm}
  86. onCancel={onClickCancel}
  87. confirmLoading={loading}
  88. >
  89. <Spin spinning={loading}>
  90. <Form form={form} layout='vertical'>
  91. <FormItem
  92. label='切片设置'
  93. name='setSlice'
  94. >
  95. {/* <Input placeholder='请输入知识库名称' /> */}
  96. <Select
  97. style={{ width: '100%' }}
  98. allowClear={true}
  99. placeholder='请选择切片设置'
  100. onChange={onChangeF}
  101. >
  102. <Option value='0'>按标题段落切片</Option>
  103. <Option value='1'>按页切片</Option>
  104. {/* <Option value='2'>按问答对切片</Option> */}
  105. <Option value='3'>自定义切片</Option>
  106. </Select>
  107. </FormItem>
  108. {isVisibleSlice &&
  109. <FormItem
  110. label='分隔符'
  111. name='sliceValue'
  112. rules={[{ required: true, message: '自定义切片设置不能为空' }]}
  113. >
  114. <Input max={1024}
  115. />
  116. </FormItem>
  117. }
  118. <FormItem
  119. label='解析设置'
  120. name='setAnalyze'
  121. >
  122. <Select
  123. style={{ width: '100%' }}
  124. placeholder='请选择解析设置'
  125. allowClear={true}
  126. >
  127. {/* <Option value='0'>过滤图片</Option> */}
  128. <Option value='1'>图片转换成标识符</Option>
  129. {/* <Option value='2'>多模态图片理解</Option> */}
  130. </Select>
  131. </FormItem>
  132. <FormItem
  133. label='table切分'
  134. name='setTable'
  135. >
  136. <Select
  137. style={{ width: '100%' }}
  138. placeholder='请选择解析设置'
  139. allowClear={true}
  140. >
  141. <Option value='0'>table转图片</Option>
  142. <Option value='1'>table转html</Option>
  143. </Select>
  144. </FormItem>
  145. {/* <FormItem
  146. label='隐藏敏感信息'
  147. name=''
  148. >
  149. <Checkbox.Group options={options} onChange={onChange} />
  150. {isVisibleSeparator &&
  151. <FormItem
  152. label=''
  153. name=''
  154. rules={[{ required: true, message: '问答应用名称不能为空' }]}
  155. >
  156. <Input max={1024}
  157. />
  158. </FormItem>
  159. }
  160. </FormItem> */}
  161. <div style={{ width: '100%', height: 10 }}></div>
  162. </Form>
  163. </Spin>
  164. </Modal>
  165. );
  166. };
  167. export default InfoModalSetting;