Commit e3c1355311b3676694314b252c09ce5072a93d1c

Authored by 田强
1 parent ff24bf0f

refactor: 同步代码

@@ -2138,6 +2138,12 @@ export function executeDefault( @@ -2138,6 +2138,12 @@ export function executeDefault(
2138 form.setValueByPath(fieldPath, realValue); 2138 form.setValueByPath(fieldPath, realValue);
2139 break;*/ 2139 break;*/
2140 case 'OTHER': 2140 case 'OTHER':
  2141 + if (default_init) {
  2142 + // 编辑时第一次不执行
  2143 + form.setSchemaByPath(fieldPath, { default_init: false });
  2144 + return;
  2145 + }
  2146 +
2141 //TODO 当前人员和部门在初始化schema时处理, 字段值在这里处理 2147 //TODO 当前人员和部门在初始化schema时处理, 字段值在这里处理
2142 2148
2143 //子表中的默认值 2149 //子表中的默认值
@@ -95,11 +95,7 @@ const CustomButton = (props: any) => { @@ -95,11 +95,7 @@ const CustomButton = (props: any) => {
95 const errorCount = ids.length - res.length; 95 const errorCount = ids.length - res.length;
96 if (errorCount > 0) { 96 if (errorCount > 0) {
97 message.warn( 97 message.warn(
98 - '成功更新【' +  
99 - res.length +  
100 - '】条记录,【' +  
101 - errorCount +  
102 - '】条记录无权限更新', 98 + '成功更新【' + res.length + '】条记录,【' + errorCount + '】条记录无权限更新',
103 ); 99 );
104 } else { 100 } else {
105 message.success('更新成功'); 101 message.success('更新成功');
@@ -127,11 +123,7 @@ const CustomButton = (props: any) => { @@ -127,11 +123,7 @@ const CustomButton = (props: any) => {
127 Modal.confirm({ 123 Modal.confirm({
128 content: lastedButtonData.confirmContent, 124 content: lastedButtonData.confirmContent,
129 onOk: () => { 125 onOk: () => {
130 - executeButtonAction(  
131 - lastedButtonData.code,  
132 - lastedButtonData.ids,  
133 - data,  
134 - ); 126 + executeButtonAction(lastedButtonData.code, lastedButtonData.ids, data);
135 }, 127 },
136 onCancel: () => { 128 onCancel: () => {
137 dialogRef.current.setLoading(false); 129 dialogRef.current.setLoading(false);
@@ -156,15 +148,9 @@ const CustomButton = (props: any) => { @@ -156,15 +148,9 @@ const CustomButton = (props: any) => {
156 appCode: currDataItemCtrl.appCode, 148 appCode: currDataItemCtrl.appCode,
157 funCode: currDataItemCtrl.funCode, 149 funCode: currDataItemCtrl.funCode,
158 viewCode: currDataItemCtrl.viewCode, 150 viewCode: currDataItemCtrl.viewCode,
159 - id:  
160 - typeof currDataItemCtrl.id === 'string'  
161 - ? [currDataItemCtrl.id]  
162 - : currDataItemCtrl.id, 151 + id: typeof currDataItemCtrl.id === 'string' ? [currDataItemCtrl.id] : currDataItemCtrl.id,
163 }; 152 };
164 - if (  
165 - currDataItemCtrl.from &&  
166 - ['button-rel', 'button'].includes(currDataItemCtrl.from)  
167 - ) { 153 + if (currDataItemCtrl.from && ['button-rel', 'button'].includes(currDataItemCtrl.from)) {
168 data.actionCode = currDataItemCtrl?.params?.actionCode; 154 data.actionCode = currDataItemCtrl?.params?.actionCode;
169 if (['button-rel'].includes(currDataItemCtrl.from)) { 155 if (['button-rel'].includes(currDataItemCtrl.from)) {
170 data.appCode = currDataItemCtrl?.params?.appCode; 156 data.appCode = currDataItemCtrl?.params?.appCode;
@@ -238,7 +224,10 @@ const CustomButton = (props: any) => { @@ -238,7 +224,10 @@ const CustomButton = (props: any) => {
238 ) { 224 ) {
239 const floatSchema = getFormFieldsList(schemaItem); 225 const floatSchema = getFormFieldsList(schemaItem);
240 //const result = handleBtnFormSchema(floatSchema); 226 //const result = handleBtnFormSchema(floatSchema);
241 - hiddenAll = floatSchema.every((item: any) => item.hidden); 227 + const finalSchema = floatSchema.filter((item: any) => {
  228 + return item?.title;
  229 + });
  230 + hiddenAll = finalSchema.every((item: any) => item.hidden);
242 } 231 }
243 //判断是否需要全隐藏 232 //判断是否需要全隐藏
244 /* 233 /*
@@ -249,7 +238,7 @@ const CustomButton = (props: any) => { @@ -249,7 +238,7 @@ const CustomButton = (props: any) => {
249 * */ 238 * */
250 if ( 239 if (
251 (actType === 'EDIT_FORM' && !hiddenAll) || 240 (actType === 'EDIT_FORM' && !hiddenAll) ||
252 - actType === 'EDIT_REL_FORM' || 241 + (actType === 'EDIT_REL_FORM' && !hiddenAll) ||
253 (actType === 'REL_EDIT_REL_FORM' && !hiddenAll) || 242 (actType === 'REL_EDIT_REL_FORM' && !hiddenAll) ||
254 (actType === 'REL_EDIT_FORM' && !hiddenAll) 243 (actType === 'REL_EDIT_FORM' && !hiddenAll)
255 ) { 244 ) {
@@ -295,9 +284,7 @@ const CustomButton = (props: any) => { @@ -295,9 +284,7 @@ const CustomButton = (props: any) => {
295 // appCode: appCode, 284 // appCode: appCode,
296 // funCode: funCode, 285 // funCode: funCode,
297 fieldName: schemaItem.fieldKey, 286 fieldName: schemaItem.fieldKey,
298 - pageType: ['EDIT_REL_FORM', 'REL_EDIT_REL_FORM'].includes(actType)  
299 - ? 'add'  
300 - : 'edit', 287 + pageType: ['EDIT_REL_FORM', 'REL_EDIT_REL_FORM'].includes(actType) ? 'add' : 'edit',
301 }, 288 },
302 params: { 289 params: {
303 actionCode: btnData.code, 290 actionCode: btnData.code,
@@ -320,9 +307,7 @@ const CustomButton = (props: any) => { @@ -320,9 +307,7 @@ const CustomButton = (props: any) => {
320 appCode: appCode, 307 appCode: appCode,
321 funCode: schemaItem.masterFunCode, 308 funCode: schemaItem.masterFunCode,
322 fieldName: schemaItem.fieldKey, 309 fieldName: schemaItem.fieldKey,
323 - pageType: ['EDIT_REL_FORM', 'REL_EDIT_REL_FORM'].includes(actType)  
324 - ? 'add'  
325 - : 'edit', 310 + pageType: ['EDIT_REL_FORM', 'REL_EDIT_REL_FORM'].includes(actType) ? 'add' : 'edit',
326 }, 311 },
327 params: { 312 params: {
328 actionCode: btnData.code, 313 actionCode: btnData.code,
@@ -411,7 +396,7 @@ const CustomButton = (props: any) => { @@ -411,7 +396,7 @@ const CustomButton = (props: any) => {
411 }} 396 }}
412 /> 397 />
413 398
414 - <OpenLink cRef={linkRef} /> 399 + <OpenLink cRef={linkRef} title={btnData?.name} />
415 </> 400 </>
416 ); 401 );
417 }; 402 };
1 -import React, { useImperativeHandle, useRef, useState } from 'react';  
2 -import { Button, Drawer, Space } from 'antd'; 1 +import React, { useImperativeHandle, useRef, useState, useEffect } from 'react';
  2 +import { Button, Drawer, Space, Modal } from 'antd';
3 import { history, useLocation } from 'umi'; 3 import { history, useLocation } from 'umi';
4 import { handleWindowOpen } from '@/utils'; 4 import { handleWindowOpen } from '@/utils';
  5 +import Draggable from 'react-draggable';
5 6
6 // TODO: 公共依赖 7 // TODO: 公共依赖
7 import { doBtnJump } from '@/pages/app-view/list/util'; 8 import { doBtnJump } from '@/pages/app-view/list/util';
@@ -24,8 +25,50 @@ const FORM_SCHEMA = {}; @@ -24,8 +25,50 @@ const FORM_SCHEMA = {};
24 } 25 }
25 } */ 26 } */
26 27
  28 +/*表单页--弹框的形式*/
  29 +interface UrlDialogProp {
  30 + visible: boolean;
  31 + title: string;
  32 + url: string;
  33 + onVisibleChange: (visible: boolean) => void;
  34 +}
  35 +
  36 +export const UrlDialog: React.FC<UrlDialogProp> = (props) => {
  37 + const [visible, setVisible] = useState(false);
  38 +
  39 + useEffect(() => {
  40 + setVisible(props?.visible);
  41 + }, [props?.visible]);
  42 +
  43 + useEffect(() => {
  44 + props.onVisibleChange(visible);
  45 + }, [visible]);
  46 +
  47 + return (
  48 + <>
  49 + <Modal
  50 + title={props.title}
  51 + width={'864px'}
  52 + visible={visible}
  53 + bodyStyle={{ padding: '20px 10px 20px 20px' }} // 不能加 对其详情有影响
  54 + onCancel={() => setVisible(false)}
  55 + footer={false}
  56 + destroyOnClose={true}
  57 + modalRender={(node) => (
  58 + <Draggable handle=".ant-modal-header">
  59 + <div>{node}</div>
  60 + </Draggable>
  61 + )}
  62 + >
  63 + <iframe src={props.url} style={{ width: '100%', height: '500px' }} frameBorder="0" />
  64 + </Modal>
  65 + </>
  66 + );
  67 +};
  68 +
27 type ButtonFormProps = { 69 type ButtonFormProps = {
28 cRef: any; 70 cRef: any;
  71 + title?: string;
29 successCallback?: (result: any) => void; 72 successCallback?: (result: any) => void;
30 }; 73 };
31 const ButtonForm: React.FC<ButtonFormProps> = (props) => { 74 const ButtonForm: React.FC<ButtonFormProps> = (props) => {
@@ -35,6 +78,9 @@ const ButtonForm: React.FC<ButtonFormProps> = (props) => { @@ -35,6 +78,9 @@ const ButtonForm: React.FC<ButtonFormProps> = (props) => {
35 const { pathname } = useLocation(); 78 const { pathname } = useLocation();
36 79
37 const [query, setQuery] = useState<any>({}); 80 const [query, setQuery] = useState<any>({});
  81 + const [url, setUrl] = useState<string>('');
  82 + const [urlDialogVisible, setUrlDialogVisible] = useState<boolean>(false);
  83 +
38 const drawerRef = useRef({ 84 const drawerRef = useRef({
39 open: () => {}, 85 open: () => {},
40 close: () => {}, 86 close: () => {},
@@ -92,11 +138,26 @@ const ButtonForm: React.FC<ButtonFormProps> = (props) => { @@ -92,11 +138,26 @@ const ButtonForm: React.FC<ButtonFormProps> = (props) => {
92 return `${item.name}=${getParaVal(item.value, record)}`; 138 return `${item.name}=${getParaVal(item.value, record)}`;
93 }); 139 });
94 if (btnSchema.type === 'URL') { 140 if (btnSchema.type === 'URL') {
95 - doBtnJump(btnSchema, record, params); 141 + //TODO,开发者模式下才有,不完善。 for 易才项目 from 史婷婷
  142 + if (btnSchema?.link?.openType === 'DIALOG') {
  143 + const _url = btnSchema?.link?.url;
  144 + if (_url) {
  145 + try {
  146 + const _urlArr = _url.split('?');
  147 + _urlArr[1] = params.join('&') + (_urlArr[1] ? '&' : '') + _urlArr[1];
  148 + setUrl(_urlArr.join('?'));
  149 + setUrlDialogVisible(true);
  150 + } catch (e) {
  151 + console.log(e);
  152 + }
  153 + }
  154 + } else {
  155 + doBtnJump(btnSchema, record, params);
  156 + }
96 return; 157 return;
97 } 158 }
98 if (btnSchema.type === 'FORM_PAGE' && btnSchema.link) { 159 if (btnSchema.type === 'FORM_PAGE' && btnSchema.link) {
99 - console.log('FORM_PAGE!!!!!!!!!!'); 160 + // console.log('FORM_PAGE!!!!!!!!!!');
100 const mcode = btnSchema.link.methodCode; 161 const mcode = btnSchema.link.methodCode;
101 162
102 if (mcode) method[mcode].call(null, btnSchema.link, params); 163 if (mcode) method[mcode].call(null, btnSchema.link, params);
@@ -166,8 +227,17 @@ const ButtonForm: React.FC<ButtonFormProps> = (props) => { @@ -166,8 +227,17 @@ const ButtonForm: React.FC<ButtonFormProps> = (props) => {
166 type={'add'} 227 type={'add'}
167 // onAfterSave={props.onAfterSave} 228 // onAfterSave={props.onAfterSave}
168 /> */} 229 /> */}
  230 + <UrlDialog
  231 + visible={urlDialogVisible}
  232 + onVisibleChange={(visible: boolean) => {
  233 + setUrlDialogVisible(visible);
  234 + }}
  235 + title={props?.title || ''}
  236 + url={url}
  237 + />
169 </div> 238 </div>
170 ); 239 );
171 }; 240 };
172 241
173 export default ButtonForm; 242 export default ButtonForm;
  243 +