This commit is contained in:
ylj20011123 2025-12-07 09:16:09 +08:00
parent 4b17ea4c90
commit f2fa634ea4
15 changed files with 3065 additions and 2440 deletions

View File

@ -1,6 +1,6 @@
{
"name": "ant-design-pro",
"version": "4.5.73",
"version": "4.5.75",
"private": true,
"description": "An out-of-box UI solution for enterprise applications",
"scripts": {

View File

@ -84,7 +84,7 @@
const tableName = getreqstr('tablename');
const tableType = getreqstr('tabletype');
const readonly = getreqstr('readonly') ? true : false;
const actions = 'https://api.eshangtech.com/EShangApiMain'
const actions = 'https://eshangtech.com:18900/EShangApiMain'
let uploadRef = ref(null)
let showPreviewRef = ref(null)
let filename = ref('')

View File

@ -24,6 +24,7 @@ const configAiModal = ({ onRef, configType, interfaceName, parentFormRef }: Deta
const [selectedModalOrderRowKeys, setSelectedModalOrderRowKeys] = useState<any>()
// 勾选的行的详情数据
const [selectModalRowList, setSelectModalRowList] = useState<any>()
const [childRowKeys, setChildRowKeys] = useState<any>()
const columns: any = [
{
@ -31,25 +32,15 @@ const configAiModal = ({ onRef, configType, interfaceName, parentFormRef }: Deta
dataIndex: 'title',
readonly: true,
},
{
title: '字段类型',
dataIndex: 'dataType',
readonly: true,
},
{
title: '字段说明',
dataIndex: 'content',
},
// {
// title: '操作',
// valueType: 'option',
// width: 200,
// render: (text, record, _, action) => {
// return <a
// key="editable"
// onClick={() => {
// action?.startEditable?.(record.id);
// }}
// >
// 编辑
// </a>
// }
// }
]
useEffect(() => {
@ -62,89 +53,101 @@ const configAiModal = ({ onRef, configType, interfaceName, parentFormRef }: Deta
if (configType === 1) {
let list: any = obj && obj.req && obj.req.length > 0 ? obj.req : []
let keyList: any = []
let disableList: any = []
let disableDetail: any = []
let uniqueIdCounter = 0;
const listWithIds = list.map((item: any) => {
const id = `${item.title}-${uniqueIdCounter++}`;
return { ...item, id: id };
});
let keyList: any = [] // Will store IDs for editableKeys
let disableList: any = [] // Will store IDs for selected items
let disableDetail: any = [] // Will store actual item objects for selected items
let defaultObj: any = formDetail?.PARAM_FIELD ? JSON.parse(formDetail?.PARAM_FIELD) : ''
console.log('defaultObj', defaultObj);
// disableList 为默认勾选起来的字段
// 有两种 一种是必填项 那么默认勾选好的 一种是之前的勾选记录
if (list && list.length > 0) {
list.forEach((item: any) => {
keyList.push(item.title)
// Populate keyList, initial disableList based on isRequired
if (listWithIds && listWithIds.length > 0) {
listWithIds.forEach((item: any) => {
keyList.push(item.id) // Use item.id for editableKeys
if (item.isRequired) {
disableList.push(item.title)
disableList.push(item.id) // Use item.id for selection
disableDetail.push(item)
}
})
}
console.log('disableList', disableList);
// Handle default selections from formDetail
if (defaultObj) {
for (let key in defaultObj) {
list.forEach((item: any) => {
if (item.title === key) {
item.content = defaultObj[key]
}
})
if (disableList.indexOf(key) === -1) {
list.forEach((item: any) => {
if (item.title === key) {
disableList.push(item.title)
disableDetail.push(item)
}
})
}
}
}
listWithIds.forEach((item: any) => {
if (defaultObj[item.title]) { // Check if this item's title exists in defaultObj
item.content = defaultObj[item.title]; // Update content
// If not already in disableList (e.g., from isRequired), add it
if (disableList.indexOf(item.id) === -1) {
disableList.push(item.id);
disableDetail.push(item);
}
}
});
}
setSelectedModalOrderRowKeys(disableList) // disableList now contains IDs
setSelectModalRowList(disableDetail) // disableDetail now contains objects with IDs
setEditableKeys(keyList) // keyList now contains IDs
setTableData(listWithIds) // tableData now contains objects with IDs
setSelectedModalOrderRowKeys(disableList)
setSelectModalRowList(disableDetail)
setEditableKeys(keyList)
setTableData(list)
} else if (configType === 2) {
let list: any = obj && obj.data && obj.data.length > 0 ? obj.data : ''
let keyList: any = []
let list: any = obj?.data && obj.data.length > 0 ? obj.data : [];
let uniqueIdCounter = 0;
const listWithIds = list.map((item: any) => {
const parentId = `${item.title}-${uniqueIdCounter++}`;
const newItem = { ...item, id: parentId };
if (newItem.children) {
newItem.children = newItem.children.map((child: any) => {
const childId = `${child.title}-${uniqueIdCounter++}`;
return { ...child, id: childId };
});
}
return newItem;
});
let disableList: any = []
let disableDetail: any = []
let defaultObj: any = formDetail?.RESPONSE_FIELD ? JSON.parse(formDetail?.RESPONSE_FIELD) : ''
console.log('defaultObj', defaultObj);
if (list && list.length > 0) {
list.forEach((item: any) => {
keyList.push(item.title)
if (item.isRequired) {
disableList.push(item.title)
disableDetail.push(item)
const childrenKeys: any[] = [];
if (listWithIds && listWithIds.length > 0) {
listWithIds.forEach((item: any) => {
if (item.children && item.children.length > 0) {
item.children.forEach((child: any) => {
childrenKeys.push(child.id);
});
}
})
}
setChildRowKeys(childrenKeys);
if (defaultObj) {
for (let key in defaultObj) {
list.forEach((item: any) => {
if (item.title === key) {
item.content = defaultObj[key]
const allRowsWithIds = listWithIds.flatMap((item: any) => [item, ...(item.children || [])]);
for (const key in defaultObj) {
const matchingRows = allRowsWithIds.filter((row: any) => row.title === key);
matchingRows.forEach((row: any) => {
row.content = defaultObj[key];
if (disableList.indexOf(row.id) === -1) {
disableList.push(row.id);
disableDetail.push(row);
}
})
if (disableList.indexOf(key) === -1) {
list.forEach((item: any) => {
if (item.title === key) {
disableList.push(item.title)
disableDetail.push(item)
}
})
}
});
}
}
setSelectedModalOrderRowKeys(disableList)
setSelectModalRowList(disableDetail)
setEditableKeys(keyList)
setTableData(list)
setEditableKeys(listWithIds.map((item: any) => item.id))
setTableData(listWithIds)
}
}
}, [])
@ -156,9 +159,7 @@ const configAiModal = ({ onRef, configType, interfaceName, parentFormRef }: Deta
return (
<div>
<EditableProTable
rowKey={(record: any) => {
return `${record?.title}`
}}
rowKey={'id'}
className={"configAiModalTable"}
actionRef={actionRef}
formRef={formRef}
@ -181,7 +182,7 @@ const configAiModal = ({ onRef, configType, interfaceName, parentFormRef }: Deta
let detailList: any = []
if (recordList && recordList.length > 0 && selectedModalOrderRowKeys && selectedModalOrderRowKeys.length > 0) {
recordList.forEach((item: any) => {
if (selectedModalOrderRowKeys.indexOf(item.title) !== -1) {
if (selectedModalOrderRowKeys.indexOf(item.id) !== -1) { // Changed item.title to item.id
detailList.push(item)
}
})
@ -194,13 +195,48 @@ const configAiModal = ({ onRef, configType, interfaceName, parentFormRef }: Deta
type: 'checkbox',
selectedRowKeys: selectedModalOrderRowKeys,
onChange: (selectedRowKeys: any, selectedRows: any) => {
console.log('selectedRowKeys', selectedRowKeys);
console.log('selectedRows', selectedRows);
setSelectModalRowList(selectedRows)
setSelectedModalOrderRowKeys(selectedRowKeys)
const newSelectedKeys = new Set(selectedRowKeys);
const oldSelectedKeys = new Set(selectedModalOrderRowKeys || []);
// Only apply parent-child logic for configType === 2
if (configType === 2) {
tableData.forEach((parent: any) => {
if (parent.children) {
const parentKey = parent.id;
const childKeys = parent.children.map((child: any) => child.id);
// if parent was just selected
if (newSelectedKeys.has(parentKey) && !oldSelectedKeys.has(parentKey)) {
childKeys.forEach((key: any) => newSelectedKeys.add(key));
}
// if parent was just deselected
if (!newSelectedKeys.has(parentKey) && oldSelectedKeys.has(parentKey)) {
childKeys.forEach((key: any) => newSelectedKeys.delete(key));
}
}
});
}
const finalKeys = Array.from(newSelectedKeys);
const allRowsForSelection: any[] = [];
if (tableData) {
tableData.forEach((item: any) => {
allRowsForSelection.push(item);
if (item.children) {
allRowsForSelection.push(...item.children);
}
});
}
const finalRows = allRowsForSelection.filter((row: any) => newSelectedKeys.has(row.id));
setSelectModalRowList(finalRows);
setSelectedModalOrderRowKeys(finalKeys);
},
getCheckboxProps: (record: any) => ({
disabled: record.isRequired,
disabled: (configType === 2 && childRowKeys && childRowKeys.includes(record.id)), // Only disable children for configType 2
}),
}}
recordCreatorProps={false}

View File

@ -644,7 +644,7 @@ export const handleSetPublicLog = (obj: any) => {
let browserVersion = session.get("browserVersion")
if (obj.desc && obj.desc.length > 0) {
obj.desc.forEach((item: any) => {
item.url = 'https://api.eshangtech.com' + item.url
item.url = 'https://eshangtech.com:18900' + item.url
})
}

View File

@ -59,7 +59,7 @@ const errorHandler = (error: { response: Response }): Response => {
const request = extend({
errorHandler, // default error handling
// prefix: '/EShangApiMain',// 开发
prefix: 'https://api.eshangtech.com/EShangApiMain', // 正式
prefix: 'https://eshangtech.com:18900/EShangApiMain', // 正式
headers: {
token: '',
ProvinceCode: '',
@ -189,7 +189,7 @@ request.interceptors.response.use((response, option) => {
// USER_ID: userbeHaviObj.currentUser.ID,
// USER_NAME: userbeHaviObj.currentUser.Name,
// BEHAVIORRECORD_TYPE: "2000", // 1000 浏览页面 2000 行为记录
// BEHAVIORRECORD_EXPLAIN: `在页面${nowMenu.name}调用接口${userbeHaviObj.url.split('https://api.eshangtech.com')[1]}`,
// BEHAVIORRECORD_EXPLAIN: `在页面${nowMenu.name}调用接口${userbeHaviObj.url.split('https://eshangtech.com:18900')[1]}`,
// BEHAVIORRECORD_TIME: moment(new Date(userbeHaviObj.startTime)).format('YYYY-MM-DD HH:mm:ss'),
// BEHAVIORRECORD_ROUT: nowMenu.pathname,
// BEHAVIORRECORD_ROUTNAME: nowMenu.name,
@ -207,7 +207,7 @@ request.interceptors.response.use((response, option) => {
// OPERATING_SYSTEM: systemBasin
// }
// console.log('reqreqreqreqreq', req);
// // fetch('https://api.eshangtech.com/EShangApiMain/Platform/SynchroBEHAVIORRECORD', {
// // fetch('https://eshangtech.com:18900/EShangApiMain/Platform/SynchroBEHAVIORRECORD', {
// // method: 'POST',
// // headers: {
// // 'Content-Type': 'application/json',

View File

@ -189,7 +189,7 @@ request.interceptors.response.use((response, option) => {
// USER_ID: userbeHaviObj.currentUser.ID,
// USER_NAME: userbeHaviObj.currentUser.Name,
// BEHAVIORRECORD_TYPE: "2000", // 1000 浏览页面 2000 行为记录
// BEHAVIORRECORD_EXPLAIN: `在页面${nowMenu.name}调用接口${userbeHaviObj.url.split('https://api.eshangtech.com')[1]}`,
// BEHAVIORRECORD_EXPLAIN: `在页面${nowMenu.name}调用接口${userbeHaviObj.url.split('https://eshangtech.com:18900')[1]}`,
// BEHAVIORRECORD_TIME: moment(new Date(userbeHaviObj.startTime)).format('YYYY-MM-DD HH:mm:ss'),
// BEHAVIORRECORD_ROUT: nowMenu.pathname,
// BEHAVIORRECORD_ROUTNAME: nowMenu.name,
@ -207,7 +207,7 @@ request.interceptors.response.use((response, option) => {
// OPERATING_SYSTEM: systemBasin
// }
// console.log('reqreqreqreqreq', req);
// // fetch('https://api.eshangtech.com/EShangApiMain/Platform/SynchroBEHAVIORRECORD', {
// // fetch('https://eshangtech.com:18900/EShangApiMain/Platform/SynchroBEHAVIORRECORD', {
// // method: 'POST',
// // headers: {
// // 'Content-Type': 'application/json',

View File

@ -57,7 +57,7 @@ const errorHandler = (error: { response: Response }): Response => {
const request = extend({
errorHandler, // default error handling
// prefix: '/EShangApiMain',// 开发
prefix: 'https://api.eshangtech.com/CommercialApi', // 正式
prefix: 'https://eshangtech.com:18900/CommercialApi', // 正式
headers: {
token: '',
ProvinceCode: '',

View File

@ -57,7 +57,7 @@ const errorHandler = (error: { response: Response }): Response => {
const request = extend({
errorHandler, // default error handling
// prefix: '/EShangApiMain',// 开发
prefix: 'https://api.eshangtech.com/EshangApiDashboard', // 正式
prefix: 'https://eshangtech.com:18900/EshangApiDashboard', // 正式
headers: {
token: '',
ProvinceCode: '',
@ -85,18 +85,18 @@ request.interceptors.request.use((url, opt) => {
}
}
if ((url.indexOf('Synchro') > -1 || url.indexOf('Save') > -1) &&
url.indexOf('Picture/SaveImgFile') === -1 ) {
// 添加操作人和业主单位信息
options.data = {
...options.data,
STAFF_ID: currentUser.ID,
STAFF_NAME: currentUser.Name,
OWNERUNIT_ID: options.data.OWNERUNIT_ID || currentUser.OwnerUnitId,
OWNERUNIT_NAME: options.data.OWNERUNIT_NAME || currentUser.ProvinceUnit,
PROVINCE_CODE: options.data.PROVINCE_CODE || currentUser.ProvinceCode,
url.indexOf('Picture/SaveImgFile') === -1) {
// 添加操作人和业主单位信息
options.data = {
...options.data,
STAFF_ID: currentUser.ID,
STAFF_NAME: currentUser.Name,
OWNERUNIT_ID: options.data.OWNERUNIT_ID || currentUser.OwnerUnitId,
OWNERUNIT_NAME: options.data.OWNERUNIT_NAME || currentUser.ProvinceUnit,
PROVINCE_CODE: options.data.PROVINCE_CODE || currentUser.ProvinceCode,
OPERATE_DATE: moment().format('YYYY-MM-DD HH:mm:ss')
}
OPERATE_DATE: moment().format('YYYY-MM-DD HH:mm:ss')
}
if (currentUser?.UserPattern === 2000) {
options.data = {
...options.data,

View File

@ -52,7 +52,7 @@ const errorHandler = (error: { response: Response }): Response => {
const requestEncryption = extend({
errorHandler, // default error handling
// prefix: '/EShangApiMain',// 开发
prefix: 'https://api.eshangtech.com/MemberApi', // 正式
prefix: 'https://eshangtech.com:18900/MemberApi', // 正式
headers: {
token: '',
ProvinceCode: '',

View File

@ -183,7 +183,7 @@ request.interceptors.response.use((response, option) => {
// USER_ID: userbeHaviObj.currentUser.ID,
// USER_NAME: userbeHaviObj.currentUser.Name,
// BEHAVIORRECORD_TYPE: "2000", // 1000 浏览页面 2000 行为记录
// BEHAVIORRECORD_EXPLAIN: `在页面${nowMenu.name}调用接口${userbeHaviObj.url.split('https://api.eshangtech.com')[1]}`,
// BEHAVIORRECORD_EXPLAIN: `在页面${nowMenu.name}调用接口${userbeHaviObj.url.split('https://eshangtech.com:18900')[1]}`,
// BEHAVIORRECORD_TIME: moment(new Date(userbeHaviObj.startTime)).format('YYYY-MM-DD HH:mm:ss'),
// BEHAVIORRECORD_ROUT: nowMenu.pathname,
// BEHAVIORRECORD_ROUTNAME: nowMenu.name,
@ -201,7 +201,7 @@ request.interceptors.response.use((response, option) => {
// OPERATING_SYSTEM: systemBasin
// }
// console.log('reqreqreqreqreq', req);
// // fetch('https://api.eshangtech.com/EShangApiMain/Platform/SynchroBEHAVIORRECORD', {
// // fetch('https://eshangtech.com:18900/EShangApiMain/Platform/SynchroBEHAVIORRECORD', {
// // method: 'POST',
// // headers: {
// // 'Content-Type': 'application/json',

View File

@ -183,7 +183,7 @@ request.interceptors.response.use((response, option) => {
// USER_ID: userbeHaviObj.currentUser.ID,
// USER_NAME: userbeHaviObj.currentUser.Name,
// BEHAVIORRECORD_TYPE: "2000", // 1000 浏览页面 2000 行为记录
// BEHAVIORRECORD_EXPLAIN: `在页面${nowMenu.name}调用接口${userbeHaviObj.url.split('https://api.eshangtech.com')[1]}`,
// BEHAVIORRECORD_EXPLAIN: `在页面${nowMenu.name}调用接口${userbeHaviObj.url.split('https://eshangtech.com:18900')[1]}`,
// BEHAVIORRECORD_TIME: moment(new Date(userbeHaviObj.startTime)).format('YYYY-MM-DD HH:mm:ss'),
// BEHAVIORRECORD_ROUT: nowMenu.pathname,
// BEHAVIORRECORD_ROUTNAME: nowMenu.name,
@ -201,7 +201,7 @@ request.interceptors.response.use((response, option) => {
// OPERATING_SYSTEM: systemBasin
// }
// console.log('reqreqreqreqreq', req);
// // fetch('https://api.eshangtech.com/EShangApiMain/Platform/SynchroBEHAVIORRECORD', {
// // fetch('https://eshangtech.com:18900/EShangApiMain/Platform/SynchroBEHAVIORRECORD', {
// // method: 'POST',
// // headers: {
// // 'Content-Type': 'application/json',

View File

@ -59,9 +59,9 @@ const requestTest = extend({
// prefix: '/EShangApiMain',// 开发
// 'http://192.168.56.1/EShangApiMain'
// "https://api.eshangtech.com/EShangApiMain" // 正式
// "https://eshangtech.com:18900/EShangApiMain" // 正式
// "http://192.168.56.1/EShangApiMain"
prefix: "https://api.eshangtech.com/EShangApiMain", // 正式
prefix: "https://eshangtech.com:18900/EShangApiMain", // 正式
// prefix: "http://10.104.1.186:8080", // 正式
headers: {
token: '',

View File

@ -57,7 +57,7 @@ const errorHandler = (error: { response: Response }): Response => {
const request = extend({
errorHandler, // default error handling
// prefix: '/EShangApiMain',// 开发
prefix: 'https://api.eshangtech.com/', // 正式
prefix: 'https://eshangtech.com:18900/', // 正式
headers: {
token: '',
ProvinceCode: '',

View File

@ -1,4 +1,4 @@
// 由 scripts/writeVersion.js 自动生成
export const VERSION = "4.5.73";
export const GIT_HASH = "dde90fb";
export const BUILD_TIME = "2025-12-03T10:27:22.507Z";
export const VERSION = "4.5.75";
export const GIT_HASH = "4b17ea4";
export const BUILD_TIME = "2025-12-05T03:57:31.975Z";