- {/*
*/}
+
{/* {areaShow1 ?
{areaShow1} : '' } */}
diff --git a/src/components/Common/CommonCheckBillEvent.js b/src/components/Common/CommonCheckBillEvent.js
index 070396b..967f007 100644
--- a/src/components/Common/CommonCheckBillEvent.js
+++ b/src/components/Common/CommonCheckBillEvent.js
@@ -2452,8 +2452,10 @@ export default (ChildComponent) => {
return;
}
- //
- onGetDataOk(masterConfig, slaveConfig, checkConfig);
+ const bChanged = commonBusiness.handleGetChanged(that.props) ;
+ if(bChanged) {
+ onGetDataOk(masterConfig, slaveConfig, checkConfig);
+ }
onSaveStateOk({ enabled: false });
if (commonUtils.isNotEmptyObject(copyTo)) {
const { slaveData } = copyTo;
diff --git a/src/components/Common/CommonComponentNew/index.tsx b/src/components/Common/CommonComponentNew/index.tsx
index c9fa996..fec4593 100644
--- a/src/components/Common/CommonComponentNew/index.tsx
+++ b/src/components/Common/CommonComponentNew/index.tsx
@@ -1,22 +1,61 @@
-import React, { useEffect, useState } from 'react';
-import { Form, Input, InputNumber, Select, Tooltip } from 'antd-v4';
+import React, { useEffect, useState, useRef } from 'react';
+import { Form, Input, InputNumber, Select, Tooltip } from 'antd';
import * as commonUtils from "@/utils/utils";
-import type { SelectProps } from 'antd-v4';
-import type { PropsType, FormItemTypeKey } from './type';
+import type { SelectProps } from 'antd';
+import type { PropsType, FormItemTypeKey, StateType } from './type';
const FormItemTypeEvent = (props: PropsType) => {
-
+ const addState: any = {};
const { showConfig } = props;
const { sName = "", bNotEmpty } = showConfig;
- const addState: any = {};
- addState.formItemProps = (): any => {
+ const [state, setState] = useState
({
+ searchValue: "",
+ });
+ addState.state = state;
+ const onSaveState0 = (value: StateType) => {
+ setState(pre => ({ ...pre, ...value }))
+ }
+ addState.onSaveState0 = onSaveState0;
+
+ const antdRef = useRef(null);
+ addState.antdRef = antdRef;
+
+ useEffect(() => {
+ antdRef.current?.focus();
+ }, [])
+
+ const formItemProps = (): any => {
return {
style: { margin: 0 },
name: sName,
rules: [{ required: bNotEmpty, message: 必填
}]
}
}
+ addState.formItemProps = formItemProps;
+
+ const dropDownRef = useRef(null);
+ const getDropDownData = ({ searchValue = '', pageNum = 1 } = { searchValue: '', pageNum: 1 }) => {
+ const { formId, name, record, } = props;
+ const { dropDownData: dropDownDataOld = [], totalPageCount } = state;
+ if (totalPageCount && pageNum > totalPageCount) return;
+ const tempId = commonUtils.createSid();
+ dropDownRef.current = tempId;
+ props.getSqlDropDownData(formId, name, showConfig, record, searchValue, pageNum).then((result: any = {}) => {
+ if (dropDownRef.current !== tempId) return;
+ const {
+ currentPageNo: pageNum, totalPageCount, totalCount, conditonValues, dropDownData = [],
+ } = result;
+ onSaveState0({
+ pageNum,
+ totalPageCount,
+ totalCount,
+ // conditonValues,
+ dropDownData: [...(pageNum === 1 ? [] : dropDownDataOld), ...dropDownData],
+ })
+ });
+ }
+ addState.getDropDownData = getDropDownData;
return {
...props,
@@ -52,37 +91,73 @@ const FormItemInput: React.FC = (props): React.ReactElement => {
return
-
+
}
// 下拉框
const FormItemInputSelect: React.FC = (props): React.ReactElement => {
- const { name, showConfig, record } = props;
- const { sName } = showConfig;
- const [options, setOptions] = useState([]);
+ const { name, showConfig, record, state } = props;
+ const { dropDownData = [] } = state;
+ const { sName, sDropDownType } = showConfig;
const [fieldNames, setFieldNames] = useState(null);
+ const timer = useRef(null);
// 获取下拉数据
useEffect(() => {
- const { dropDownData, showDropDown, sAssignField } = showConfig;
+ const { dropDownData, showDropDown } = showConfig;
+ if (sDropDownType === "sql") {
+ props.getDropDownData();
+ return;
+ }
const data = dropDownData || (typeof showDropDown === 'object') ? showDropDown : commonUtils.objectToArr(commonUtils.convertStrToObj(showDropDown));
if (!data?.length) return;
- setOptions(data);
+ props.onSaveState0({
+ dropDownData: data,
+ })
+
+ }, [])
- const data0 = data[0];
+ useEffect(() => {
+ if (!dropDownData.length) return;
+ const data0 = dropDownData[0];
setFieldNames({
label: Object.keys(data0)[0],
value: data0.sSlaveId ? 'sSlaveId' : 'sId',
})
- }, [])
+ }, [!!dropDownData.length])
+
+ const handlePopupScroll = (e: React.UIEvent) => {
+ // e.persist();
+ const { dropDownData } = showConfig;
+ const target = e.target as HTMLDivElement;
+ const { scrollTop, offsetHeight, scrollHeight } = target;
+ if (Math.ceil(scrollTop + offsetHeight) >= scrollHeight && sDropDownType === 'sql' && commonUtils.isEmptyArr(dropDownData)) {
+ const {
+ pageNum, searchPageNum, searchTotalPageCount, searchValue, totalPageCount,
+ } = state;
+ const nextPageNum = pageNum + 1;
+ const nextSearchPageNum = searchPageNum + 1;
+ props.getDropDownData({ searchValue, pageNum: searchValue === '' ? nextPageNum : nextSearchPageNum });
+ }
+ };
const selectProps: SelectProps = {
+ filterOption: sDropDownType !== "sql",
+ showSearch: true,
fieldNames,
- options,
+ options: dropDownData,
onChange: (value: any) => {
- props.onChange(name, sName, { [sName]: value }, record.sId, options)
- }
+ props.onChange(name, sName, { [sName]: dropDownData.find((item: any) => item[fieldNames.value] === value)[fieldNames.label] }, record.sId, dropDownData)
+ },
+ onSearch: (value: string) => {
+ if (sDropDownType !== 'sql' || showConfig.dropDownData) return;
+ clearTimeout(timer.current);
+ timer.current = setTimeout(() => {
+ props.getDropDownData({ searchValue: value, pageNum: 1 });
+ }, 500);
+ },
+ onPopupScroll: handlePopupScroll
}
return = (props): React.ReactElement =>
return
-
+
}
diff --git a/src/components/Common/CommonComponentNew/type.ts b/src/components/Common/CommonComponentNew/type.ts
index b82ffe3..5cae59b 100644
--- a/src/components/Common/CommonComponentNew/type.ts
+++ b/src/components/Common/CommonComponentNew/type.ts
@@ -1,18 +1,23 @@
-import type { RecordType, ShowConfigType } from '../CommonTableNew/type';
+import type { RecordType, ShowConfigType } from "../CommonTableNew/type";
export interface PropsType {
- ref: React.RefObject;
+ // ref: React.RefObject;
form: any;
showConfig: ShowConfigType;
onSave?: (data: RecordType) => void;
- onChange: (
- tableName: string,
- sName: string,
- returnValue: RecordType,
- sId: string,
- dropDownData: RecordType[],
- ) => void;
+ onChange: (tableName: string, sName: string, returnValue: RecordType, sId: string, dropDownData: RecordType[]) => void;
+ getDropDownData: (params?: { searchValue?: string; pageNum?: number }) => void;
[key: string]: any;
}
-export type FormItemTypeKey = 's' | 'i' | 'b' | 'd' | 't';
+export type FormItemTypeKey = "s" | "i" | "b" | "d" | "t";
+
+export interface StateType {
+ // 下拉搜索框的值
+ searchValue?: string; // 搜索条件
+ pageNum?: number; // 当前页码
+ totalPageCount?: number; // 总页数
+ totalCount?: number; // 总条数
+ dropDownData?: RecordType[]; // 下拉框数据
+ // 其他可能的字段也可以在这里添加
+}
diff --git a/src/components/Common/CommonElementEvent.js b/src/components/Common/CommonElementEvent.js
index a278786..1a0bcd2 100644
--- a/src/components/Common/CommonElementEvent.js
+++ b/src/components/Common/CommonElementEvent.js
@@ -1,3 +1,4 @@
+/* eslint-disable */
/* eslint-disable array-callback-return,no-undef,prefer-destructuring */
import React, { Component } from 'react';
import { Modal, message } from 'antd-v4';
@@ -144,22 +145,37 @@ export default (ChildComponent) => {
...addState,
});
}
- if (commonUtils.isEmptyObject(machineOldConfig) && formData.length > 0 && sModelsType === 'element/processInfo') {
+ if (commonUtils.isEmptyObject(masterConfig) && formData.length > 0 && sModelsType === 'element/processInfo') {
const sId = currentId !== undefined ? currentId : '';
/* 数据Id */
const masterConfig = formData.filter(item => !item.bGrd)[0];
/* bGrd代表是否是表格 */
- const machineConfig = formData.filter(item => item.bGrd && item.sTbName === 'eleprocessmachine')[0];
- const machineColumn = commonFunc.getHeaderConfig(machineConfig);
- const assortConfig = formData.filter(item => item.bGrd && item.sTbName === 'eleprocessloss')[0]; /* 劲嘉 配套工序不要使用,换成 装版损设置 */
- const assortColumn = commonFunc.getHeaderConfig(assortConfig);
- const outsideConfig = formData.filter(item => item.bGrd && item.sTbName === 'eleprocessoutside')[0];
- const outsideColumn = commonFunc.getHeaderConfig(outsideConfig);
- const processstyleConfig = formData.filter(item => item.bGrd && item.sTbName === 'eleprocessstyle')[0];
- const processstyleColumn = commonFunc.getHeaderConfig(processstyleConfig);
- const processApsRuleConfig = formData.filter(item => item.bGrd && item.sTbName === 'eleprocesssApsRule')[0]; /* APS定义规则 */
- const processApsRuleColumn = commonFunc.getHeaderConfig(processApsRuleConfig);
-
+ const machineConfig = commonUtils.isNotEmptyArr(formData.filter(item => item.bGrd && item.sTbName === 'eleprocessmachine')) ? formData.filter(item => item.bGrd && item.sTbName === 'eleprocessmachine')[0] : {};
+ let machineColumn = [];
+ if (commonUtils.isNotEmptyObject(machineConfig)) {
+ machineColumn = commonFunc.getHeaderConfig(machineConfig);
+ }
+ const assortConfig = commonUtils.isNotEmptyArr(formData.filter(item => item.bGrd && item.sTbName === 'eleprocessloss')) ? formData.filter(item => item.bGrd && item.sTbName === 'eleprocessloss')[0] : {}; /* 劲嘉 配套工序不要使用,换成 装版损设置 */
+ let assortColumn = [];
+ if (commonUtils.isNotEmptyObject(assortConfig)) {
+ assortColumn = commonFunc.getHeaderConfig(assortConfig);
+ }
+ const outsideConfig = commonUtils.isNotEmptyArr(formData.filter(item => item.bGrd && item.sTbName === 'eleprocessoutside')) ? formData.filter(item => item.bGrd && item.sTbName === 'eleprocessoutside')[0] : {};
+ let outsideColumn = [];
+ if (commonUtils.isNotEmptyObject(outsideConfig)) {
+ outsideColumn = commonFunc.getHeaderConfig(outsideConfig);
+ }
+ const processstyleConfig = commonUtils.isNotEmptyArr(formData.filter(item => item.bGrd && item.sTbName === 'eleprocessoutside')) ? formData.filter(item => item.bGrd && item.sTbName === 'eleprocessstyle')[0] : {};
+ let processstyleColumn = [];
+ if (commonUtils.isNotEmptyObject(processstyleConfig)) {
+ processstyleColumn = commonFunc.getHeaderConfig(processstyleConfig);
+ }
+ console.log('22221', formData, processstyleConfig);
+ const processApsRuleConfig = commonUtils.isNotEmptyArr(formData.filter(item => item.bGrd && item.sTbName === 'eleprocesssApsRule')) ? formData.filter(item => item.bGrd && item.sTbName === 'eleprocesssApsRule')[0] : {}; /* APS定义规则 */
+ let processApsRuleColumn = [];
+ if (commonUtils.isNotEmptyObject(processApsRuleConfig)) {
+ processApsRuleColumn = commonFunc.getHeaderConfig(processApsRuleConfig);
+ }
const dynamicParamConfig = commonUtils.isNotEmptyArr(formData.filter(item => item.bGrd && item.sTbName === 'eleprocessdynamic')) ? formData.filter(item => item.bGrd && item.sTbName === 'eleprocessdynamic')[0] : {}; /* 动态参数 */
const dynamicParamColumn = commonUtils.isNotEmptyObject(dynamicParamConfig) ? commonFunc.getHeaderConfig(dynamicParamConfig) : [];
@@ -316,6 +332,9 @@ export default (ChildComponent) => {
const approveGroupConfig = formData.filter(item => item.bGrd && item.sTbName === 'sftlogininfojurisApprovalgroup')[0];
const approveGroupColumn = commonFunc.getHeaderConfig(approveGroupConfig); /* 审批组权限 */
+ const brandgroupConfig = formData.filter(item => item.bGrd && item.sTbName === 'sftlogininfobrandgroup')[0];
+ const brandgroupColumn = commonFunc.getHeaderConfig(brandgroupConfig); /* 分管公司 */
+
let addState = {};
if (sId === '') {
const config = {};
@@ -328,11 +347,12 @@ export default (ChildComponent) => {
config.drivergroupConfig = drivergroupConfig;
config.departgroupConfig = departgroupConfig;
config.approveGroupConfig = approveGroupConfig;
+ config.brandgroupConfig = brandgroupConfig;
addState = await this.handleAdd(config, nextProps.app.currentPane.copyTo, true);
} else {
const flag = undefined;
const isWait = true;
- const params = await this.handleGetSflLoginData(masterConfig, jurgroupConfig, customergroupConfig, supplygroupConfig, persongroupConfig, processgroupConfig, drivergroupConfig, departgroupConfig, flag, isWait, undefined, { approveGroupConfig });
+ const params = await this.handleGetSflLoginData(masterConfig, jurgroupConfig, customergroupConfig, supplygroupConfig, persongroupConfig, processgroupConfig, drivergroupConfig, departgroupConfig, flag, isWait, undefined, { approveGroupConfig, brandgroupConfig });
this.handleGetUserInfoData(params);
}
this.props.onSaveState({
@@ -353,6 +373,8 @@ export default (ChildComponent) => {
departgroupColumn,
approveGroupConfig,
approveGroupColumn,
+ brandgroupConfig,
+ brandgroupColumn,
sId,
pageLoading: false,
...addState,
@@ -371,6 +393,7 @@ export default (ChildComponent) => {
this.handleGetSlaveData('Set', 'param', paramConfig);
let addState = {};
+ let addStateMaster = {};
const systemFunctionData = [];
systemFunctionData.push({ value: 'Max(round(变量,0))', sName: commonFunc.showMessage(app.commonConst, 'sysMaxInteger') });
@@ -390,8 +413,13 @@ export default (ChildComponent) => {
config.customizeParamConfig = customizeParamConfig;
addState = await this.handleAdd(config, nextProps.app.currentPane.copyTo, true);
} else {
- this.handleGetSlaveData('One', undefined, masterConfig);
+ addStateMaster = await this.handleGetSlaveData('One', undefined, masterConfig);
/* 通过sId找到列表跳转行数据 */
+ let masterDataNew = {}
+ if(commonUtils.isNotEmptyObject(addStateMaster) && commonUtils.isNotEmptyObject(addStateMaster.masterData) &&
+ commonUtils.isNotEmptyObject(addStateMaster.masterData.sColTitleName)) {
+ masterDataNew = addStateMaster.masterData;
+ }
let currentRecords = [];
if (commonUtils.isNotEmptyArr(nextProps.app.currentPane.currentRecord)) {
@@ -403,7 +431,11 @@ export default (ChildComponent) => {
} else {
currentRecords = [];
}
- const currentRecordArr = commonUtils.isNotEmptyArr(currentRecords) ? currentRecords.filter(item => item.sId === sId) : [];
+ let currentRecordArr = commonUtils.isNotEmptyArr(currentRecords) ? currentRecords.filter(item => item.sId === sId) : [];
+
+ if(commonUtils.isEmptyArr(currentRecordArr) && commonUtils.isNotEmptyObject(masterDataNew)) {
+ currentRecordArr = [masterDataNew];
+ }
if (commonUtils.isNotEmptyArr(currentRecordArr) && currentRecordArr[0].sColTitleName) {
const currentRecord = currentRecordArr[0]; /* 找到列表选中行 */
/* 取自定义列名 */
@@ -1058,10 +1090,10 @@ export default (ChildComponent) => {
name: 'address', configData: addressConfig, condition: { sSqlCondition: { sParentId: sId } },
});
};
- handleGetSflLoginDataAll = async (masterConfig, jurgroupConfig, customergroupConfig, supplygroupConfig, persongroupConfig, processgroupConfig, drivergroupConfig, departgroupConfig, { approveGroupConfig }) => {
+ handleGetSflLoginDataAll = async (masterConfig, jurgroupConfig, customergroupConfig, supplygroupConfig, persongroupConfig, processgroupConfig, drivergroupConfig, departgroupConfig, { approveGroupConfig, brandgroupConfig }) => {
const flag = undefined;
const isWait = true;
- const params = await this.handleGetSflLoginData(masterConfig, jurgroupConfig, customergroupConfig, supplygroupConfig, persongroupConfig, processgroupConfig, drivergroupConfig, departgroupConfig, flag, isWait, undefined, { approveGroupConfig });
+ const params = await this.handleGetSflLoginData(masterConfig, jurgroupConfig, customergroupConfig, supplygroupConfig, persongroupConfig, processgroupConfig, drivergroupConfig, departgroupConfig, flag, isWait, undefined, { approveGroupConfig, brandgroupConfig });
this.handleGetUserInfoData(params);
};
/** 获取印件分类主表、从表 */
@@ -1183,7 +1215,7 @@ export default (ChildComponent) => {
};
/** 获取用户信息数据 */
- handleGetSflLoginData = async (masterConfig, jurgroupConfig, customergroupConfig, supplygroupConfig, persongroupConfig, processgroupConfig, drivergroupConfig, departgroupConfig, flag, isWait, bEditClick, { approveGroupConfig }) => {
+ handleGetSflLoginData = async (masterConfig, jurgroupConfig, customergroupConfig, supplygroupConfig, persongroupConfig, processgroupConfig, drivergroupConfig, departgroupConfig, flag, isWait, bEditClick, { approveGroupConfig, brandgroupConfig }) => {
const { currentId } = this.props;
/* 当前页签数据 */
const sId = currentId !== undefined ? currentId : '';
@@ -1219,8 +1251,12 @@ export default (ChildComponent) => {
name: 'approveGroup', configData: approveGroupConfig, condition: { sSqlCondition: { sParentId: sId } }, flag, isWait,
});
+ const brandgroupAddState = await this.props.handleGetDataSet({
+ name: 'brandgroup', configData: brandgroupConfig, condition: { sSqlCondition: { sParentId: sId } }, flag, isWait,
+ });
+
return {
- masterAddState, jurgroupAddState, customergroupAddState, supplygroupAddState, persongroupAddState, processgroupAddState, drivergroupAddState, departgroupAddState, approveGroupAddState,
+ masterAddState, jurgroupAddState, customergroupAddState, supplygroupAddState, persongroupAddState, processgroupAddState, drivergroupAddState, departgroupAddState, approveGroupAddState, brandgroupAddState,
};
};
@@ -1234,7 +1270,7 @@ export default (ChildComponent) => {
if (dataReturn.code === 1) {
const returnData = dataReturn.dataset.rows[0];
const {
- masterAddState = {}, jurgroupAddState, customergroupAddState, supplygroupAddState, persongroupAddState, processgroupAddState, drivergroupAddState, departgroupAddState, approveGroupAddState,
+ masterAddState = {}, jurgroupAddState, customergroupAddState, supplygroupAddState, persongroupAddState, processgroupAddState, drivergroupAddState, departgroupAddState, approveGroupAddState, brandgroupAddState,
} = params;
const { jurgroupData } = jurgroupAddState;
const { customergroupData } = customergroupAddState;
@@ -1243,6 +1279,7 @@ export default (ChildComponent) => {
const { processgroupData } = processgroupAddState;
const { drivergroupData } = drivergroupAddState;
const { approveGroupData } = approveGroupAddState;
+ const { brandgroupData } = brandgroupAddState;
let departgroupData = [];
if (commonUtils.isNotEmptyObject(departgroupAddState)) {
departgroupData = departgroupAddState.departgroupData;
@@ -1255,6 +1292,7 @@ export default (ChildComponent) => {
const drivergroupSelectedRowKeys = [];
const departgroupSelectedRowKeys = [];
const approveGroupSelectedRowKeys = [];
+ const brandgroupSelectedRowKeys = [];
const jurgroupAllData = returnData.jurgroupData;
const customergroupAllData = returnData.customergroupData;
const supplygroupAllData = returnData.supplygroupData;
@@ -1263,6 +1301,12 @@ export default (ChildComponent) => {
const drivergroupAllData = returnData.drivergroupData;
const departgroupAllData = returnData.departgroupData;
const approveGroupAllData = returnData.sApprovalprocessData;
+ const brandgroupAllData = returnData.sysbrandData.map(item => ({
+ ...item,
+ sCompanyName: item.sName,
+ ...brandgroupData.find(x => x.sCompanyId === item.sCompanyId) || { sId: commonUtils.createSid(), handleType: 'add', sParentId: masterAddState.masterData.sId },
+ }));
+
if (commonUtils.isNotEmptyArr(jurgroupAllData)) {
for (const itemAll of jurgroupAllData) {
if (commonUtils.isNotEmptyArr(jurgroupData)) {
@@ -1354,6 +1398,14 @@ export default (ChildComponent) => {
}
}
+ if (commonUtils.isNotEmptyArr(brandgroupAllData)) {
+ for (const itemAll of brandgroupAllData) {
+ if (itemAll.iCheck) {
+ brandgroupSelectedRowKeys.push(itemAll.sId);
+ }
+ }
+ }
+
this.props.onSaveState({
...masterAddState,
jurgroupData: jurgroupAllData,
@@ -1372,6 +1424,8 @@ export default (ChildComponent) => {
departgroupOldData: departgroupData,
approveGroupData: approveGroupAllData,
approveGroupOldData: approveGroupData,
+ brandgroupData: brandgroupAllData,
+ brandgroupOldData: brandgroupAllData,
jurgroupSelectedRowKeys,
customergroupSelectedRowKeys,
supplygroupSelectedRowKeys,
@@ -1380,6 +1434,7 @@ export default (ChildComponent) => {
drivergroupSelectedRowKeys,
departgroupSelectedRowKeys,
approveGroupSelectedRowKeys,
+ brandgroupSelectedRowKeys,
});
}
};
@@ -1392,21 +1447,31 @@ export default (ChildComponent) => {
this.props.handleGetDataOne({
name: 'master', configData: masterConfig, condition: { sId, pageSize: '', pageNum: '' }, bEditClick,
});
- this.props.handleGetDataSet({
- name: 'machine', configData: machineConfig, condition: { sSqlCondition: { sParentId: sId } },
- });
- this.props.handleGetDataSet({
- name: 'assort', configData: assortConfig, condition: { sSqlCondition: { sParentId: sId } },
- });
- this.props.handleGetDataSet({
- name: 'outside', configData: outsideConfig, condition: { sSqlCondition: { sParentId: sId } },
- });
- this.props.handleGetDataSet({
- name: 'processstyle', configData: processstyleConfig, condition: { sSqlCondition: { sParentId: sId } },
- });
- this.props.handleGetDataSet({
- name: 'processApsRule', configData: processApsRuleConfig, condition: { sSqlCondition: { sParentId: sId } },
- });
+ if(commonUtils.isNotEmptyObject(machineConfig)) {
+ this.props.handleGetDataSet({
+ name: 'machine', configData: machineConfig, condition: { sSqlCondition: { sParentId: sId } },
+ });
+ }
+ if(commonUtils.isNotEmptyObject(assortConfig)) {
+ this.props.handleGetDataSet({
+ name: 'assort', configData: assortConfig, condition: {sSqlCondition: {sParentId: sId}},
+ });
+ }
+ if(commonUtils.isNotEmptyObject(outsideConfig)) {
+ this.props.handleGetDataSet({
+ name: 'outside', configData: outsideConfig, condition: {sSqlCondition: {sParentId: sId}},
+ });
+ }
+ if(commonUtils.isNotEmptyObject(processstyleConfig)) {
+ this.props.handleGetDataSet({
+ name: 'processstyle', configData: processstyleConfig, condition: {sSqlCondition: {sParentId: sId}},
+ });
+ }
+ if(commonUtils.isNotEmptyObject(processApsRuleConfig)) {
+ this.props.handleGetDataSet({
+ name: 'processApsRule', configData: processApsRuleConfig, condition: {sSqlCondition: {sParentId: sId}},
+ });
+ }
this.props.handleGetDataSet({
name: 'dynamicParam', configData: dynamicParamConfig, condition: { sSqlCondition: { sParentId: sId } },
@@ -1472,14 +1537,22 @@ export default (ChildComponent) => {
}
handleGetSlaveData = async (getType, sName, currConfig, slaveConfig, iPlcNoConfig, bEditClick, addStateConfig) => {
- const { currentId } = this.props;
+ const { currentId, sModelsType } = this.props;
/* 当前页签数据 */
let addState = {};
const sId = currentId !== undefined ? currentId : '';
if (getType === 'One') {
- this.props.handleGetDataOne({
- name: 'master', configData: currConfig, condition: { sId, pageSize: '', pageNum: '' }, bEditClick,
- });
+ if(sModelsType === 'system/sisformulaInfo') {
+ const addMaster = await this.props.handleGetDataOne({
+ name: 'master', configData: currConfig, condition: { sId, pageSize: '', pageNum: '' }, bEditClick, isWait :true
+ });
+ this.props.onSaveState(addMaster);
+ return addMaster;
+ } else {
+ this.props.handleGetDataOne({
+ name: 'master', configData: currConfig, condition: { sId, pageSize: '', pageNum: '' }, bEditClick,
+ });
+ }
if (commonUtils.isNotEmptyObject(iPlcNoConfig) && commonUtils.isNotEmptyObject(slaveConfig)) {
this.props.handleGetDataOne({
name: 'master', configData: currConfig, condition: { sId, pageSize: '', pageNum: '' }, bEditClick,
@@ -1591,7 +1664,7 @@ export default (ChildComponent) => {
/* 待用数据声明 */
const {
app, currentId, masterConfig, contactConfig, addressConfig, supplyConfig, stockConfig, customerInfoConfig, eleknifemouldproductConfig, eleknifemouldfileConfig, siscommonstyleproductclassifyConfig, sModelsType, machineConfig, assortConfig, outsideConfig, picFileConfig, userConfig, sischeckphaselogininfoConfig, phaseConfig, conditionConfig, eleemployeeConfig, elemachineConfig, jurgroupConfig, customergroupConfig, supplygroupConfig, persongroupConfig, processgroupConfig, drivergroupConfig,
- eleteststandarditemConfig, processstyleConfig, processApsRuleConfig, dynamicParamConfig, bUserModel, departgroupConfig, approveGroupConfig,
+ eleteststandarditemConfig, processstyleConfig, processApsRuleConfig, dynamicParamConfig, bUserModel, departgroupConfig, approveGroupConfig, brandgroupConfig,
} = this.props;
const { userinfo } = app;
const onSendSocketMessage = this.props.handleSendSocketMessage;
@@ -1705,7 +1778,7 @@ export default (ChildComponent) => {
confirm({
title: obj.title,
onOk() {
- onGetDataOk(masterConfig, jurgroupConfig, customergroupConfig, supplygroupConfig, persongroupConfig, processgroupConfig, drivergroupConfig, departgroupConfig, { approveGroupConfig });
+ onGetDataOk(masterConfig, jurgroupConfig, customergroupConfig, supplygroupConfig, persongroupConfig, processgroupConfig, drivergroupConfig, departgroupConfig, { approveGroupConfig, brandgroupConfig });
onSaveStateOk({ enabled: false });
onSendSocketMessage('release', 'noAction', currentId, userinfo.sId, null, null);
},
@@ -1824,7 +1897,7 @@ export default (ChildComponent) => {
stockConfig, customerInfoConfig, picFileConfig, eleemployeeConfig, elemachineConfig, jurgroupConfig, customergroupConfig, supplygroupConfig,
persongroupConfig, processgroupConfig, drivergroupConfig, departgroupConfig, paramConfig, userConfig, phaseConfig, conditionConfig, sischeckphaselogininfoConfig,
sisproductclassifyProcessClassifyConfig, sysmsguserConfig, eleknifemouldproductConfig, eleknifemouldfileConfig, eleteststandarditemConfig, formData, approveGroupConfig,
- slave0Config, memoDataList,
+ brandgroupConfig, slave0Config, memoDataList,
} = this.props;
if (sModelsType === 'element/customerInfo' || sModelsType === 'element/supplyInfo') {
this.handleGetData(masterConfig, contactConfig, addressConfig, bEditClick);
@@ -1845,7 +1918,7 @@ export default (ChildComponent) => {
} else if (sModelsType === 'element/sftloginInfo') {
const flag = undefined;
const isWait = true;
- const params = await this.handleGetSflLoginData(masterConfig, jurgroupConfig, customergroupConfig, supplygroupConfig, persongroupConfig, processgroupConfig, drivergroupConfig, departgroupConfig, flag, isWait, bEditClick, { approveGroupConfig });
+ const params = await this.handleGetSflLoginData(masterConfig, jurgroupConfig, customergroupConfig, supplygroupConfig, persongroupConfig, processgroupConfig, drivergroupConfig, departgroupConfig, flag, isWait, bEditClick, { approveGroupConfig, brandgroupConfig });
this.handleGetUserInfoData(params);
} else if (sModelsType === 'element/machineInfo') {
const addStateConfig = {
@@ -1893,7 +1966,7 @@ export default (ChildComponent) => {
// tableName: masterConfig.sTbName,
// sId: [sId],
// };
- this.props.onSaveState({ pageLoading: true });
+ // this.props.onSaveState({ pageLoading: true });
const { masterData, bUserModel, dispatch } = this.props;
let timValue = 0;
if (this.props.app.webSocket === null || this.props.app.webSocket.readyState !== WebSocket.OPEN) {
@@ -1931,13 +2004,13 @@ export default (ChildComponent) => {
this.props.onSaveState({
enabled: true,
bUserModel,
- isEnabledPlcNo: (masterData.iPlcNo === undefined || masterData.iPlcNo === 0),
+ isEnabledPlcNo: (masterData?.iPlcNo === undefined || masterData?.iPlcNo === 0),
loading: false,
});
} else if (this.props.app.webSocket.homeAction) {
this.props.app.webSocket.homeAction(msg);
}
- this.props.onSaveState({ pageLoading: false });
+ // this.props.onSaveState({ pageLoading: false });
};
this.props.handleSendSocketMessage('update', 'showMsg', this.props.currentId, this.props.app.userinfo.sId, null, null);
}, timValue);
@@ -1970,7 +2043,7 @@ export default (ChildComponent) => {
/* 数据参数 */
const {
currentId, token, sModelsId, masterConfig, contactConfig, addressConfig, supplyConfig, stockConfig, customerInfoConfig, eleknifemouldproductConfig, eleknifemouldfileConfig, eleteststandarditemConfig, siscommonstyleproductclassifyConfig, machineConfig, assortConfig, outsideConfig, picFileConfig, eleemployeeConfig, elemachineConfig, jurgroupConfig, customergroupConfig, supplygroupConfig, persongroupConfig, processgroupConfig, drivergroupConfig, userConfig, sischeckphaselogininfoConfig, phaseConfig, conditionConfig, sModelsType, sisproductclassifyProcessClassifyConfig,
- approveGroupConfig,
+ approveGroupConfig, brandgroupConfig,
} = props;
/* 当前页签数据 */
const sId = currentId !== undefined ? currentId : '';
@@ -2131,6 +2204,9 @@ export default (ChildComponent) => {
}, {
tableName: approveGroupConfig.sTbName,
relationName: 'sParentId',
+ }, {
+ tableName: brandgroupConfig.sTbName,
+ relationName: 'sParentId',
}],
},
};
@@ -2278,7 +2354,7 @@ export default (ChildComponent) => {
processgroupOldData, processgroupOldDelData, jurgroupOldData, jurgroupOldDelData, persongroupOldData, persongroupOldDelData, drivergroupOldData, drivergroupOldDelData,
eleknifemouldproductData, eleknifemouldproductDelData, eleknifemouldfileData, eleknifemouldfileDelData, eleteststandarditemData, eleteststandarditemDelData,
customizeParamConfig, customizeParamData, customizeParamDelData, dynamicParamData, dynamicParamDelData, departgroupOldData, departgroupOldDelData, customizeParamName,
- approveGroupConfig, approveGroupData, approveGroupOldData, approveGroupOldDelData, slaveInfoList,
+ approveGroupConfig, approveGroupData, approveGroupOldData, approveGroupOldDelData, brandgroupConfig, brandgroupData, brandgroupOldData = [], slaveInfoList,
} = this.props;
/* app, const { webSocket, currentPane } = app;
const { key } = currentPane; */
@@ -2638,7 +2714,7 @@ export default (ChildComponent) => {
data.push(commonBusiness.mergeData('elemachine', elemachineConfig.sTbName, elemachineData, elemachineDelData));
} else if (sModelsType === 'element/sftloginInfo') {
if (!commonBusiness.validateTable(jurgroupConfig, jurgroupData, this.props, '2') || !commonBusiness.validateTable(customergroupConfig, customergroupData, this.props, '3') || !commonBusiness.validateTable(supplygroupConfig, supplygroupData, this.props, '4') || !commonBusiness.validateTable(persongroupConfig, persongroupData, this.props, '5') || !commonBusiness.validateTable(processgroupConfig, processgroupData, this.props, '6') || !commonBusiness.validateTable(drivergroupConfig, drivergroupData, this.props, '7')
- || !commonBusiness.validateTable(drivergroupConfig, departgroupData, this.props, '8') || !commonBusiness.validateTable(approveGroupConfig, approveGroupData, this.props, '9')) {
+ || !commonBusiness.validateTable(drivergroupConfig, departgroupData, this.props, '8') || !commonBusiness.validateTable(approveGroupConfig, approveGroupData, this.props, '9') || !commonBusiness.validateTable(brandgroupConfig, brandgroupData, this.props, '10')) {
return;
}
data.push(commonBusiness.mergeData('jurgroup', jurgroupConfig.sTbName, jurgroupOldData, jurgroupOldDelData));
@@ -2649,6 +2725,7 @@ export default (ChildComponent) => {
data.push(commonBusiness.mergeData('drivergroup', drivergroupConfig.sTbName, drivergroupOldData, drivergroupOldDelData));
data.push(commonBusiness.mergeData('departgroup', departgroupConfig.sTbName, departgroupOldData, departgroupOldDelData));
data.push(commonBusiness.mergeData('approveGroup', approveGroupConfig.sTbName, approveGroupOldData, approveGroupOldDelData));
+ data.push(commonBusiness.mergeData('brandgroup', brandgroupConfig.sTbName, brandgroupOldData.filter(item => item.iCheck), brandgroupOldData.filter(item => !item.iCheck).map(item => ({ ...item, handleType: 'del' }))));
} else if (sModelsType === 'element/checkModelInfo') {
if (!commonBusiness.validateTable(userConfig, userData, this.props, '2') || !commonBusiness.validateTable(phaseConfig, phaseData, this.props, '3') || !commonBusiness.validateTable(conditionConfig, conditionData, this.props, '4')) {
return;
@@ -3707,6 +3784,21 @@ export default (ChildComponent) => {
tableDataRow.sMaterialsUnit = masterData.sMaterialsUnit;
tableDataRow.sComputeId = masterData.sComputeId;
tableDataRow = await this.handleMaterialsChange(tableDataRow, sModelsId, masterData, changeValue, sFieldName, app, token, models);
+ } else if (name === 'brandgroup') {
+ let { brandgroupOldData = [] } = this.props;
+ const iIndex = brandgroupOldData.findIndex(item => item.sId === sId);
+ if (iIndex !== -1) {
+ brandgroupOldData[iIndex] = { ...brandgroupOldData[iIndex], ...tableDataRow };
+ if (brandgroupOldData[iIndex].bDefault) {
+ brandgroupOldData = brandgroupOldData.map((item, index) => {
+ item.bDefault = index === iIndex;
+ item.handleType = item.handleType || 'update';
+ return item;
+ });
+ }
+ }
+ this.props.onSaveState({ brandgroupOldData, brandgroupData: brandgroupOldData });
+ return;
} else if (commonUtils.isNotEmptyStr(masterData.handleType)) {
masterData.handleType = masterData.handleType === 'add' ? 'add' : 'update';
}
@@ -3832,6 +3924,7 @@ export default (ChildComponent) => {
if (commonUtils.isNotEmptyStr(customizeParamConfig.panelName)) {
addState.customizePanelName = customizeParamConfig.panelName;
}
+ addState.customizeParamConfig = customizeParamConfigNew;
addState.customizeParamColumn = commonFunc.getHeaderConfig(customizeParamConfigNew);
addState.tableKey = commonUtils.createSid();
addState.customizeParamName = [];
@@ -4259,7 +4352,7 @@ export default (ChildComponent) => {
},
});
};
- handleTableSelectRowChange = (name, selectedRowKeys) => {
+ handleTableSelectRowChange = (name, selectedRowKeys, bCheckBoxClick) => {
const {
sModelsType, [`${name}OldData`]: oldData, masterData, enabled,
} = this.props;
@@ -4268,6 +4361,17 @@ export default (ChildComponent) => {
message.warn('请先点击修改!');
return;
}
+ if (name === 'brandgroup') {
+ if (!bCheckBoxClick) return;
+ let { brandgroupOldData = [] } = this.props;
+ brandgroupOldData = brandgroupOldData.map((item) => {
+ item.iCheck = selectedRowKeys.includes(item.sId);
+ item.handleType = item.handleType || 'update';
+ return item;
+ });
+ this.props.onSaveState({ brandgroupOldData, brandgroupData: brandgroupOldData, brandgroupSelectedRowKeys: selectedRowKeys });
+ return;
+ }
const addState = this.props.onTableSelectRowChange(name, selectedRowKeys, true);
const { [`${name}SelectedRowKeys`]: rowKeys } = addState;
if (oldData.length > 0) {
@@ -4302,6 +4406,7 @@ export default (ChildComponent) => {
if (name === 'approveGroup') {
index = addkeys.indexOf(item.sJurisdictionClassifyId);
}
+
if (index === -1) {
delKeys.push(item.sId);
} else if (index > -1) {
diff --git a/src/components/Common/CommonExamInfo/index.js b/src/components/Common/CommonExamInfo/index.js
index ac1fae8..5dc5d26 100644
--- a/src/components/Common/CommonExamInfo/index.js
+++ b/src/components/Common/CommonExamInfo/index.js
@@ -35,20 +35,45 @@ class CommonExamInfo extends Component {
}
}
const historyList = sFlowObj?.historyList; /* 审批流程 */
+ const dataList = sFlowObj?.dataList; /* 数据集 */
const sBrandsId = userinfo?.sBrandsId;
const sSubsidiaryId = userinfo?.sSubsidiaryId;
const sUserId = userinfo?.sUserName;
const taskId = sFlowObj?.taskId;
const sTaskId = sFlowObj?.taskId;
- const commentObj = document.getElementById('comment');
- const comment = commentObj?.value ; /* 驳回理由 */
- if(btnName ==='reject' && commonUtils.isEmptyObject(comment)){
- message.error("请输入驳回理由!")
+ // const commentObj = document.getElementById('comment');
+ // const comment = commentObj?.value ; /* 驳回理由 */
+ if(btnName ==='reject' && commonUtils.isEmptyObject(textareaValue)){
+ message.warn("请输入驳回理由!")
return;
}
const bizFlowVo = sFlowObj.bizFlowVo;
const sTableParamsValue= sFlowObj.bizFlowVo?.sTableParamsValue;
const sFormData= commonUtils.isNotEmptyObject(sTableParamsValue) ? JSON.parse(sTableParamsValue) : {};
+ /* 可输入文本 */
+ const dataDynamicList = commonUtils.isNotEmptyArr(dataList) ? dataList.filter(item => item.name !=='sEmployeeName') : [];
+ if(commonUtils.isNotEmptyArr(dataDynamicList)) {
+ for (const child of dataDynamicList) {
+ const name = child.name;
+ const bEdit = !child.bEdit; /* 是否编辑 */
+ const type= child.type; /* 文本类型 */
+ const obj = {};
+ if( bEdit ) { /* 可编辑的都传入 */
+ const sRealName = name +'_sRealName';
+ const sValue = this.state[name];
+ if (btnName === 'agree' && commonUtils.isEmptyObject(sValue)) {
+ message.warn(`${child.title} 为必填项!`);
+ return;
+ }
+ sFormData[name]= sValue;
+ if(child.bSelect) { /* 下拉需要传sRealName */
+ sFormData[sRealName]= this.state[sRealName];
+ }
+
+ }
+ }
+ }
+
const prefix = commonConfig.server_host + "currencyFlow";
let url = prefix + "/complete/" + taskId+"/"+sBrandsId+"/"+sSubsidiaryId+"/"+sUserId;
// const data = $('#form-leave-edit').serialize();
@@ -67,8 +92,9 @@ class CommonExamInfo extends Component {
data.sUserName = sUserId;
data.messagesTitle = bizFlowVo?.title;
data.selectMap = {};
- data.comment = this.state.textareaValue;
+ data.comment = textareaValue;
const { token }= this.props;
+ console.log('data传参', data);
const sReturn = (await commonServices.postValueService(token, data, url)).data;
if(commonUtils.isNotEmptyObject(sReturn)) {
if (sReturn.code > 0 || sReturn.code === 0) {
@@ -107,7 +133,7 @@ class CommonExamInfo extends Component {
this.props.getServiceError(sReturn);
}
}else {
- message.error('操作异常!')
+ message.warn('操作异常!')
}
}
@@ -139,11 +165,11 @@ class CommonExamInfo extends Component {
const taskId = sFlowObj?.taskId;
const data =[];
if(commonUtils.isEmptyObject(delegateToUser)) {
- message.error('请选择转办人!')
+ message.warn('请选择转办人!')
return;
}
if(delegateToUser === sUserId){
- message.error('请选择非自己的待办人');
+ message.warn('请选择非自己的待办人');
return;
}
this.setState({flowLoaing:true});
@@ -181,7 +207,7 @@ class CommonExamInfo extends Component {
this.props.getServiceError(sReturn);
}
} else {
- message.error('操作异常!')
+ message.warn('操作异常!')
}
this.setState({ bTransferUserVisible:false })
}
@@ -190,7 +216,6 @@ class CommonExamInfo extends Component {
}
/* 设置textareaValue */
handleTextareaChange = (e) => {
- console.log('驳回', e);
this.setState({
textareaValue: e.target.value,
});
@@ -201,11 +226,19 @@ class CommonExamInfo extends Component {
delegateToUser: value
});
};
+ handleInputChange = (e, name) => {
+ const inputValue = e.target.value;
+ this.setState({
+ [name]: inputValue
+ });
+ };
- handleOptionChange = (value) => {
+ handleOptionChange = (value, option, name) => {
+ const sFieldName = name;
+ const sKey = option?.id;
this.setState({
- delegateToUserId: value,
- delegateToUser:'sEmployeeName'
+ [sFieldName + "_sRealName"]:value,
+ [sFieldName]: sKey
});
};
@@ -223,8 +256,12 @@ class CommonExamInfo extends Component {
// sFlowObj = sFlowArr[0];
// }
}
- console.log('sFlowObj:', sFlowObj);
+ const isHandle = sFlowObj?.isHandle;
+ // console.log('sFlowObj:', sFlowObj);
// const bHandleShow = sFlowObj?.bHandleShow; /* 是否展示按钮及审批意见区域 */
+ if(bHandleShow) {
+ bHandleShow = !sFlowObj.isHandle;
+ }
let sFlowTitle = sFlowObj?.title; /* 审批标题 */
const dataList = sFlowObj?.dataList; /* 审批数据源 */
let historyList = sFlowObj?.historyList; /* 审批流程 */
@@ -302,27 +339,48 @@ class CommonExamInfo extends Component {
const name = child.name;
const title = child.title;
const value = child.value;
- const bEdit = !child.bEdit; /* 是否编辑 */
+ let bEdit = !child.bEdit; /* 是否编辑 */
+ /* 如果 isHandle 为 true,代表只能查看, 就不允许编辑 */
+ if(bEdit) {
+ bEdit = !isHandle;
+ }
const type= child.type; /* 文本类型 */
const bSelect = child.bSelect; /* 是否下拉 */
+ const selectList = child.selectList;
const selectConfig = bSelect && commonUtils.isNotEmptyObject(masterConfig) ? masterConfig.gdsconfigformslave.filter(item => item.sName === name) : [];
- const showDropDown = commonUtils.isNotEmptyArr(selectConfig) ? selectConfig[0].showDropDown : []; /* 可编辑的下拉 */
+ const showDropDownStr = commonUtils.isNotEmptyArr(selectConfig) && commonUtils.isNotEmptyObject(selectConfig[0].showDropDown) ?
+ selectConfig[0].showDropDown : []; /* 可编辑的下拉 */
+ const showDropDown = commonUtils.isNotEmptyObject(showDropDownStr) && commonUtils.isJSON(showDropDownStr) ? [JSON.parse(showDropDownStr)] : [];
return (
{title}
{
- bEdit && type === 's' ?
-
:
+ bEdit && type === 's' && !bSelect ?
+
this.handleInputChange(e, name)} />
:
bEdit && type === 's' && bSelect ?
-
:
+ bEdit && type === 'm' && !bSelect ?
+
diff --git a/src/components/Common/CommonGroupBill.js b/src/components/Common/CommonGroupBill.js
index 87d9031..d4de0c4 100644
--- a/src/components/Common/CommonGroupBill.js
+++ b/src/components/Common/CommonGroupBill.js
@@ -16,7 +16,7 @@ import CommonViewTable from '@/components/Common/CommonViewTable';
import CommonViewDrag from '@/components/Common/CommonViewDrag';
import CommonBase from '@/components/Common/CommonBase';/* 获取配置及数据 */
import * as commonBusiness from '@/components/Common/commonBusiness';/* 单据业务功能 */
-import commonConfig from '@/utils/config';
+import commonConfig from '@/utils/config';
import * as commonUtils from '@/utils/utils';/* 通用方法 */
import * as commonServices from '@/services/services';/* 服务类 */
import AddIcon from '@/assets/add.svg';
diff --git a/src/components/Common/CommonGroupBillEvent.js b/src/components/Common/CommonGroupBillEvent.js
index 3d9f308..d0d15d5 100644
--- a/src/components/Common/CommonGroupBillEvent.js
+++ b/src/components/Common/CommonGroupBillEvent.js
@@ -1780,10 +1780,10 @@ export default (ChildComponent) => {
confirm({
title: obj.title,
onOk() {
- // const bChanged = commonBusiness.handleGetChanged(that.props) ;
- // if(bChanged) {
- // onGetDataOk(masterConfig, slaveConfig, slave1Config);
- // }
+ const bChanged = commonBusiness.handleGetChanged(that.props) ;
+ if(bChanged) {
+ onGetDataOk(masterConfig, slaveConfig, slave1Config);
+ }
onSaveStateOk({ enabled: false });
if (commonUtils.isNotEmptyObject(copyTo)) {
const { slaveData } = copyTo;
diff --git a/src/components/Common/CommonJurisdictionEvent.js b/src/components/Common/CommonJurisdictionEvent.js
new file mode 100644
index 0000000..ccf0454
--- /dev/null
+++ b/src/components/Common/CommonJurisdictionEvent.js
@@ -0,0 +1,547 @@
+/* eslint-disable array-callback-return,no-undef,prefer-destructuring */
+import React, { Component } from 'react';
+import { Modal, message } from 'antd-v4';
+import commonConfig from '../../utils/config';
+import * as commonBusiness from './commonBusiness'; /* 单据业务功能 */
+import * as commonUtils from '../../utils/utils'; /* 通用方法 */
+import * as commonServices from './../../services/services'; /* 服务类 */
+
+const { confirm } = Modal;
+
+export default (ChildComponent) => {
+ return class extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {};
+ this.form = {};
+ /* 表单对象 */
+ }
+
+ componentWillReceiveProps(nextProps) {
+ const {
+ formData, currentId, groupConfig, treeData,
+ } = nextProps;
+ let { bReceived } = nextProps;
+ const sId = currentId !== undefined ? currentId : '';
+
+ if (commonUtils.isEmptyObject(groupConfig) && bReceived === undefined) {
+ const masterConfig = formData.filter(item => !item.bGrd)[0];
+ this.handleGetChangeData({ name: 'tree' }, 'SysjurisdictionTree');
+ bReceived = true;
+ const group = this.imitateTableColumnConfig('group', [this.imitateTableColumn('组权限', 'sName', 'sId')]);
+ const user = this.imitateTableColumnConfig('user', [this.imitateTableColumn('用户账号', 'sUserName', 'sId')]);
+
+ const userGroup = this.imitateTableColumnConfig('userGroup', [this.imitateTableColumn('组成员', 'sUserName', 'sUsersId')]);
+ const groupUser = this.imitateTableColumnConfig('groupUser', [this.imitateTableColumn('所属分组', 'sGroupName', 'sGroupsId')]);
+
+ const checkedNodes = this.imitateTableColumnConfig('checkedNodes', [this.imitateTableColumn('名称', 'showName', 'sId')]);
+
+ const tree = this.imitateTableColumnConfig('tree', [this.imitateTableColumn('名称', 'showName', 'key')]);
+
+ const search = this.imitateTableColumnConfig('search', [this.imitateTableColumn('名称', 'showName', 'sAllId')]);
+
+ this.props.onSaveState({
+ masterConfig,
+ sId,
+ bReceived,
+ treeKeyName: 'key',
+ showLine: false,
+ // pageLoading: false,
+ ...tree,
+ ...group,
+ ...user,
+ ...userGroup,
+ ...groupUser,
+ ...checkedNodes,
+ ...search,
+ });
+ }
+ if (commonUtils.isNotEmptyArr(treeData) && bReceived) {
+ this.handleGetChangeData({ name: 'group' }, 'GroupData');
+ this.handleGetChangeData({ name: 'user' }, 'UserData');
+ this.props.onSaveState({
+ bReceived: false,
+ pageLoading: false,
+ });
+ }
+ }
+
+
+ shouldComponentUpdate(nextProps, nextState) {
+ let flag = true;
+ /* 追加弹出框数值回填放行判断ppopupPane */
+ if (nextProps.sTabId === nextProps.app.currentPane.key || ((nextProps.app.ppopupPane !== undefined
+ && nextProps.app.ppopupPane.mainConfig !== undefined)
+ ? nextProps.sTabId === nextProps.app.ppopupPane.mainConfig.key : false)) {
+ if (nextState.disabled !== this.state.disabled) {
+ return true;
+ }
+ flag = true;
+ } else {
+ flag = false;
+ }
+ return flag;
+ }
+
+ componentWillUpdate(nextProps) {
+ const { masterData, sModelsType, elemachineData } = nextProps;
+ if (sModelsType === 'element/teamInfo' && masterData !== undefined) {
+ if (commonUtils.isNotEmptyObject(elemachineData)) {
+ elemachineData.forEach((row, index) => {
+ if (row.sMachineId === masterData.sMachineId) {
+ elemachineData[index].bDefault = true;
+ } else {
+ elemachineData[index].bDefault = false;
+ }
+ });
+ }
+ }
+ }
+
+
+ /** 表单回带 */
+ handleForm = (form) => {
+ this.form = form;
+ };
+ /** 主表控件是否全部显示 */
+ handleToggle = () => {
+ const { expand } = this.props;
+ this.props.onSaveState({ expand: !expand });
+ };
+
+ handleValidateSave = async (componentName) => {
+ const {
+ token, sModelsId, sJurisdictionClassifyId, sUserId, treeAllNodes, [`${componentName}KeyName`]: skeyName, treeCheckedKeys, treeAllCheckKeys,
+ app,
+ } = this.props;
+ const value = {};
+ if ((commonUtils.isEmptyArr(sJurisdictionClassifyId) && commonUtils.isEmptyArr(sUserId))) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'NotEmptyJurisdictionGroup'));/* 组员,所属或权限组不能为空! */
+ this.props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+ if (commonUtils.isNotEmptyArr(sJurisdictionClassifyId) && commonUtils.isEmptyArr(sUserId)) {
+ value.sJurisdictionClassifyId = sJurisdictionClassifyId[0];
+ } else if (commonUtils.isNotEmptyArr(sUserId) && commonUtils.isEmptyArr(sJurisdictionClassifyId)) {
+ value.sUserId = sUserId[0];
+ } else {
+ message.warn(commonFunc.showMessage(app.commonConst, 'NotEmptyGroup'));/* 组或者组员不能为空 */
+ this.props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+ /*
+ if (commonUtils.isNotEmptyArr(treeCheckedKeys) && treeCheckedKeys.length === treeAllCheckKeys.length) {
+ message.warn('请选择不需要的权限!');
+ return;
+ }
+ */
+ const newUncheckedKeys = [];
+ const saveData = [];
+
+ treeAllCheckKeys.forEach((key) => {
+ const iIndex = treeCheckedKeys.indexOf(key);
+ if (iIndex === -1) {
+ newUncheckedKeys.push(key);
+ }
+ });
+ newUncheckedKeys.forEach((key) => {
+ const nodes = treeAllNodes.get(key);
+ saveData.push({ sKey: nodes[`${skeyName}`], sAction: nodes.sName });
+ });
+
+ value.data = saveData;
+ value.sTreeAllKet = treeAllCheckKeys;
+
+ const dataUrl = `${commonConfig.server_host}/sysjurisdiction/addSysjurisdiction?sModelsId=${sModelsId}`;
+ const dataReturn = (await commonServices.postValueService(token, value, dataUrl)).data;
+ /* 成功的话返回数据 */
+ if (dataReturn.code === 1) { /* 成功 */
+ message.success(dataReturn.msg);
+ this.props.onSaveState({ enabled: false, loading: false });
+ return dataReturn;
+ } else { /* 失败 */
+ this.props.getServiceError(dataReturn);
+ this.props.onSaveState({
+ loading: false,
+ });
+ return false;
+ }
+ }
+
+ /** 点击修改按钮操作 */
+ handleEdit = () => {
+ this.props.onSaveState({ enabled: true, loading: false });
+ }
+ handleCancel = (obj) => {
+ const { groupUserData } = this.props;
+ const onGetChangeData = this.handleGetChangeData;
+ const onSaveStateOk = this.props.onSaveState;
+ confirm({
+ title: obj.title,
+ onOk() {
+ const sId = groupUserData.length > 0 ? groupUserData[0].sId : '';
+ onSaveStateOk({ enabled: false });
+ onGetChangeData({ name: 'authority', sId }, 'GroupAuthority');
+ },
+ onCancel() {
+ },
+ });
+ }
+
+ handleGetSisformulaData = (masterConfig) => {
+ this.handleGetSlaveData('One', null, masterConfig);
+ }
+
+ handleGetSlaveData = (getType, sName, currConfig) => {
+ const { currentId } = this.props;
+ /* 当前页签数据 */
+ const sId = currentId !== undefined ? currentId : '';
+ if (getType === 'One') {
+ this.props.handleGetDataOne({
+ name: 'master', configData: currConfig, condition: { sId, pageSize: '', pageNum: '' },
+ });
+ }
+ if (getType === 'Set') {
+ this.props.handleGetDataSet({
+ name: sName, configData: currConfig, condition: { sSqlCondition: { sParentId: sId } },
+ });
+ }
+ }
+ /* 获取分组列表
+ yw_权限分配
+ 获取分组列表
+ 获取人员列表
+ qx_获取权限树
+ qx_根据组sId获取已选择权限
+ qx_根据人sId获取已选择权限
+ qx_根据组sId获取组人员
+ 根据人员sId获取所属分组
+ 保存组已选权限
+ * */
+ handleGetChangeData = async (params, urlKey) => {
+ const { app, sModelsId } = this.props;
+ const { token } = app;
+ const { name, sId, treeComponentName } = params; // name,
+ let dataUrl = '';
+ if (urlKey === 'SysjurisdictionTree') { // 树结构
+ dataUrl = `${commonConfig.server_host}sysjurisdiction/getSysjurisdictionTree?sModelsId=${sModelsId}`;
+ } else if (urlKey === 'GroupData') { // 组
+ dataUrl = `${commonConfig.server_host}sysjurisdiction/getGroupData?sModelsId=${sModelsId}`;
+ } else if (urlKey === 'UserData') { // 用户
+ dataUrl = `${commonConfig.server_host}sysjurisdiction/getUserData?sModelsId=${sModelsId}`;
+ } else if (urlKey === 'UserGroupId') { // 组成员
+ dataUrl = `${commonConfig.server_host}sysjurisdiction/getsUserGroupId/${sId}?sModelsId=${sModelsId}`;
+ } else if (urlKey === 'GroupUserId') { // 用户所属组
+ dataUrl = `${commonConfig.server_host}sysjurisdiction/getGroupUserId/${sId}?sModelsId=${sModelsId}`;
+ } else if (urlKey === 'GroupAuthority') { // 组权限
+ dataUrl = `${commonConfig.server_host}sysjurisdiction/getHaveAuthorityGroupId/${sId}?sModelsId=${sModelsId}`;
+ } else if (urlKey === 'UserAuthority') { // 用户所有权限查询 :用户权限,组权限
+ dataUrl = `${commonConfig.server_host}sysjurisdiction/getHaveAuthorityUserId/${sId}?sModelsId=${sModelsId}`;
+ }
+ const dataReturn = (await commonServices.getService(token, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ const returnData = dataReturn.dataset.rows;
+ let addState = {};
+ if (urlKey === 'SysjurisdictionTree') { // 树结构
+ const allInitArr = [];
+ const allInitMap = new Map();
+ this.handleAllCheckKeys(allInitArr, allInitMap, returnData);
+ this.props.onSaveState({ [`${name}Data`]: returnData, treeAllCheckKeys: allInitArr, treeAllNodes: allInitMap });
+ } else if (urlKey === 'GroupData') { // 获取组后默认查询组权限,以及组成员
+ this.props.onSaveState({ [`${name}Data`]: returnData });
+ if (commonUtils.isNotEmptyArr(returnData)) {
+ this.handleTableSelectRowChange('group', [returnData[0].sId]); // 查询第一组成员
+ }
+ } else if (urlKey === 'UserData') { // 获取成员后默认 成员自己的权限,以及成员所属组
+ this.props.onSaveState({ [`${name}Data`]: returnData });
+ if (commonUtils.isNotEmptyArr(returnData)) {
+ this.handleGetChangeData({ name: 'groupUser', sId: returnData[0].sId }, 'GroupUserId'); // 查询第一个成员归属组
+ }
+ } else if (urlKey === 'GroupAuthority') {
+ let groupAuth = '';
+ let groupAuthData = [];
+ if (commonUtils.isNotEmptyArr(returnData)) {
+ if (commonUtils.isNotEmptyObject(returnData[0])) {
+ groupAuth = commonUtils.isNotEmptyObject(returnData[0]) ? returnData[0].sKeys : [];
+ groupAuthData = commonUtils.isNotEmptyObject(groupAuth) ? groupAuth.split(',') : [];
+ }
+ }
+ addState = this.handleUnCheckedForFunction(treeComponentName, groupAuthData);
+ this.props.onSaveState({
+ [`${name}Data`]: returnData, userAuth: undefined, sJurisdictionClassifyId: sId, sUserId: undefined, ...addState,
+ });
+ } else if (urlKey === 'UserAuthority') {
+ let gAuth = '';
+ let groupAuthData = [];
+ let uAuth = '';
+ let userAuthData = [];
+ if (commonUtils.isNotEmptyArr(returnData)) {
+ if (commonUtils.isNotEmptyObject(returnData[0])) {
+ const { groupAuth, userAuth } = returnData[0];
+ if (commonUtils.isNotEmptyObject(groupAuth)) {
+ gAuth = groupAuth.sKeys;
+ groupAuthData = gAuth.split(',');
+ }
+
+ if (commonUtils.isNotEmptyObject(userAuth)) {
+ uAuth = userAuth.sKeys;
+ userAuthData = uAuth.split(',');
+ }
+ }
+ }
+ addState = this.handleGroupForFunction(treeComponentName, groupAuthData, userAuthData);
+ this.props.onSaveState({
+ [`${name}Data`]: returnData, userAuthData, sJurisdictionClassifyId: undefined, sUserId: sId, ...addState,
+ });
+ } else {
+ this.props.onSaveState({ [`${name}Data`]: returnData });
+ }
+ } else {
+ this.props.getServiceError(dataReturn);
+ }
+ }
+
+ // 模拟 列
+ imitateTableColumn = (title, dataIndex, key) => {
+ return {
+ title, dataIndex, key, width: '120',
+ };
+ }
+ // 模拟config的 gdsconfigformslave 配置
+ imitateTableConfig = (title, dataIndex) => {
+ return {
+ bCanInput: false,
+ bFilter: false,
+ bFind: false,
+ bFirstEmpty: false,
+ bIsOther: false,
+ bNewRecord: false,
+ bNotEmpty: false,
+ bNotRepeat: false,
+ bReadonly: true,
+ bSum: false,
+ bTree: false,
+ bVisible: true,
+ iColValue: 1,
+ iFitWidth: 0,
+ sBrandsId: '1111111111',
+ sChinese: title,
+ sChineseDropDown: '',
+ sControlName: 'BtnLast',
+ sId: commonUtils.createSid(),
+ sParentId: '11811781131121915102156308120',
+ sSubsidiaryId: '1111111111',
+ showName: title,
+ sName: dataIndex,
+ };
+ }
+ // 根据模拟列,模拟列配置
+ imitateTableColumnConfig = (name, columns) => {
+ const gdsconfigformslave = [];
+ columns.forEach((itmes) => {
+ gdsconfigformslave.push(this.imitateTableConfig(itmes.title, itmes.dataIndex));
+ });
+ const config = { bGrd: true, gdsconfigformslave };
+ return { [`${name}Column`]: columns, [`${name}Config`]: config };
+ }
+ /** 处理选择行发生改变 */
+ handleTableSelectRowChange = (name, selectedRowKeys) => {
+ const addState = {};
+ if (name === 'group') {
+ this.handleGetChangeData({ name: 'userGroup', sId: selectedRowKeys }, 'UserGroupId');
+ this.handleGetChangeData({ name: 'master', sId: selectedRowKeys, treeComponentName: 'tree' }, 'GroupAuthority');
+ addState.groupSelectedRowKeys = selectedRowKeys;
+ } else if (name === 'user') {
+ this.handleGetChangeData({ name: 'groupUser', sId: selectedRowKeys }, 'GroupUserId');
+ this.handleGetChangeData({ name: 'master', sId: selectedRowKeys, treeComponentName: 'tree' }, 'UserAuthority');
+ addState.userSelectedRowKeys = selectedRowKeys;
+ } else if (name === 'userGroup') {
+ this.handleGetChangeData({ name: 'master', sId: selectedRowKeys, treeComponentName: 'tree' }, 'UserAuthority');
+ addState.userGroupSelectedRowKeys = selectedRowKeys;
+ } else if (name === 'groupUser') {
+ this.handleGetChangeData({ name: 'master', sId: selectedRowKeys, treeComponentName: 'tree' }, 'GroupAuthority');
+ addState.groupUserSelectedRowKeys = selectedRowKeys;
+ }
+ this.props.onSaveState({ ...addState });
+ }
+
+ handleCheckBoxCheck = (componentName, checkedKeys) => {
+ this.handleCheckedForFunction(componentName, checkedKeys);
+ }
+
+ /* 选择权限同时处理保存的数据以及将要展现的已选择权限 */
+ handleCheckedForFunction = (componentName, checkedKeys) => {
+ const {
+ treeAllNodes,
+ } = this.props;
+ const data = [];
+ const checkedData = [];
+ if (commonUtils.isNotEmptyArr(treeAllNodes) && treeAllNodes.size > 0) {
+ const newCheckedKeys = [];
+ if (commonUtils.isNotEmptyArr(checkedKeys) && checkedKeys[0] !== null) {
+ checkedKeys.forEach((key, i) => {
+ if (checkedKeys.indexOf(key) === i) {
+ newCheckedKeys.push(key);
+ }
+ });
+ newCheckedKeys.forEach((key) => {
+ const nodes = treeAllNodes.get(key);
+ if (commonUtils.isNotEmptyObject(nodes)) {
+ checkedData.push({ sId: nodes.sId, showName: nodes.showName });
+ }
+ });
+ }
+ this.props.onSaveState({
+ [`${componentName}CheckedKeys`]: newCheckedKeys,
+ treeSaveParams: data,
+ checkedNodesData: checkedData,
+ });
+ }
+ }
+
+ handleUnCheckedForFunction = (componentName, unCheckedKeys) => {
+ const { treeAllNodes, treeAllCheckKeys } = this.props;
+ const addState = {};
+ const checkedData = [];
+ let checkKeys = [];
+ checkKeys = checkKeys.concat(treeAllCheckKeys);
+
+ if (commonUtils.isNotEmptyArr(unCheckedKeys)) {
+ for (const checkId of unCheckedKeys) {
+ treeAllCheckKeys.forEach((key) => {
+ if (checkId.includes(key)) {
+ checkKeys.forEach((item, index) => {
+ if (item === key) {
+ checkKeys.splice(index, 1);
+ }
+ });
+ }
+ });
+ }
+ }
+ checkKeys.forEach((key) => {
+ const nodes = treeAllNodes.get(key);
+ if (commonUtils.isNotEmptyObject(nodes)) {
+ checkedData.push({ sId: nodes.sId, showName: nodes.showName });
+ }
+ });
+ addState[`${componentName}CheckedKeys`] = checkKeys;
+ addState.checkedNodesData = checkedData;
+ addState.disabledCheckedKeys = [];
+ return addState;
+ }
+
+ handleGroupForFunction = (treeComponentName, groupAuthData, userAuthData) => {
+ const { treeAllNodes, treeAllCheckKeys } = this.props;
+ const addState = {};
+ const checkedData = [];
+ let checkKeys = [];
+ let userAuthDataNew = [];
+ checkKeys = checkKeys.concat(treeAllCheckKeys);
+ if (commonUtils.isEmptyArr(userAuthData)) { /* 只有组权限 没有用户权限时 */
+ userAuthDataNew = JSON.parse(JSON.stringify(groupAuthData)); /* 深拷贝 */
+ userAuthData = userAuthDataNew;
+ }
+ if (commonUtils.isNotEmptyArr(userAuthData)) {
+ treeAllCheckKeys.forEach((key) => {
+ for (const checkId of userAuthData) {
+ if (checkId.includes(key)) {
+ checkKeys.forEach((item, index) => {
+ if (item === key) {
+ checkKeys.splice(index, 1);
+ }
+ });
+ }
+ }
+ });
+ checkKeys.forEach((key) => {
+ const nodes = treeAllNodes.get(key);
+ if (commonUtils.isNotEmptyObject(nodes)) {
+ checkedData.push({ sId: nodes.sId, showName: nodes.showName });
+ }
+ });
+ }
+
+ let groupCheckKeys = [];
+ if (commonUtils.isNotEmptyArr(groupAuthData)) {
+ groupCheckKeys = groupCheckKeys.concat(treeAllCheckKeys);
+ treeAllCheckKeys.forEach((key) => {
+ for (const checkId of groupAuthData) {
+ if (checkId === key) {
+ groupCheckKeys.splice(groupCheckKeys.indexOf(key), 1);
+ }
+ }
+ });
+ } else {
+ groupCheckKeys = treeAllCheckKeys; /* 组权限没有 */
+ }
+ addState[`${treeComponentName}CheckedKeys`] = checkKeys.concat(groupCheckKeys);
+ addState.checkedNodesData = checkedData;
+ addState.disabledCheckedKeys = groupCheckKeys;
+ return addState;
+ };
+
+ handleAllCheckKeys = (arrObj, mapObj, returnData) => {
+ const { treeKeyName } = this.props;
+ returnData.forEach((item) => {
+ if (item.children.length > 0) {
+ arrObj.push(item[`${treeKeyName}`]);
+ mapObj.set(item[`${treeKeyName}`], item);
+ this.handleAllCheckKeys(arrObj, mapObj, item.children);
+ } else {
+ arrObj.push(item[`${treeKeyName}`]);
+ mapObj.set(item[`${treeKeyName}`], item);
+ }
+ });
+ };
+ handleRefresh = () => {
+ this.handleGetChangeData({ name: 'tree' }, 'SysjurisdictionTree');
+ this.handleGetChangeData({ name: 'group' }, 'GroupData');
+ this.handleGetChangeData({ name: 'user' }, 'UserData');
+ this.props.onSaveState({
+ treeAllCheckKeys: undefined,
+ treeAllNodes: undefined,
+ });
+ }
+ handleSearch = async (sSearchValue) => {
+ const { sModelsId } = this.props;
+ const url = `${commonConfig.server_host}gdsmodule/getGdsmoduleList?sModelsId=${sModelsId}&sName=${sSearchValue}`;
+ const dataReturn = (await commonServices.getService(this.props.app.token, url)).data;
+ if (dataReturn.code === 1) {
+ /* 数据查询成功 */
+ this.props.onSaveState({ searchData: dataReturn.dataset.rows });
+ } else { /* 失败 */
+ this.props.getServiceError(dataReturn);
+ }
+ }
+ handleSetTreeOptionData = (name, optionName, value) => {
+ this.props.onSaveState({ [`${name}${optionName}Keys`]: value });
+ }
+ render() {
+ const { masterData } = this.props;
+ const imgSrc = commonBusiness.handleAddIcon(masterData);
+ return (
+
+ );
+ }
+ };
+};
diff --git a/src/components/Common/CommonList.js b/src/components/Common/CommonList.js
index 376ddf9..536f6bd 100644
--- a/src/components/Common/CommonList.js
+++ b/src/components/Common/CommonList.js
@@ -7,7 +7,6 @@ import CommonListEvent from '@/components/Common/CommonListEvent';/* 继承销
import * as commonFunc from '@/components/Common/commonFunc';/* 通用单据方法 */ /* 通用单据方法 */
import Toolbar from '@/components/Common/ToolBar/ToolBarNew';
import StaticEditTable from '@/components/Common/CommonTable';/* 可编辑表格 */
-// import StaticEditTableNew from '@/components/Common/CommonTableNew';/* 可编辑表格 */
import styles from '@/index.less';
import CommonBase from '@/components/Common/CommonBase';/* 获取配置及数据 */
import * as commonBusiness from '@/components/Common/commonBusiness';/* 单据业务功能 */
@@ -418,7 +417,7 @@ const TreeTableComponent = (props) => {
};
let slaveTreeData = slaveData;
- const bTree = slaveConfig?.sTableType === 'single' && slaveData?.some(item => !!item.sFatherSlaveId);
+ const bTree = slaveConfig?.sTableType === 'single' && slaveData?.some(item => !!item.sFatherSlaveId || !!item.sParentId);
if (bTree) {
let keyField = 'sId';
let keyParentField = 'sParentId';
@@ -427,6 +426,14 @@ const TreeTableComponent = (props) => {
if (commonUtils.isNotEmptyArr(formData)) {
// eslint-disable-next-line prefer-destructuring
sSqlCondition = formData[0].sSqlCondition;
+ if (commonUtils.isEmptyObject(sSqlCondition)) {
+ const bParentId = slaveConfig?.sTableType === 'single' && slaveData?.some(item => !!item.sParentId);
+ if (bParentId) {
+ sSqlCondition = 'slave.sId.sParentId';
+ } else {
+ sSqlCondition = 'slave.sId.sFatherSlaveId';
+ }
+ }
const parts = sSqlCondition.split('.');
if (commonUtils.isNotEmptyObject(sSqlCondition) && commonUtils.isNotEmptyArr(parts) && parts.length > 2) {
// eslint-disable-next-line prefer-destructuring
@@ -464,7 +471,6 @@ const TreeTableComponent = (props) => {
}}
>
- {/*
*/}
);
};
diff --git a/src/components/Common/CommonListEdit.js b/src/components/Common/CommonListEdit.js
index a612e33..dc7be6f 100644
--- a/src/components/Common/CommonListEdit.js
+++ b/src/components/Common/CommonListEdit.js
@@ -1,6 +1,7 @@
/* 此组件作用是 可编辑列表 */
import React, { Component } from 'react';
import { Form } from '@ant-design/compatible';
+import '@ant-design/compatible/assets/index.css';
import { Layout, Spin, Slider } from 'antd-v4';
import CommonListEvent from '@/components/Common/CommonListEditEvent';/* 继承销售模块业务功能 */
import * as commonFunc from '@/components/Common/commonFunc';/* 通用单据方法 */ /* 通用单据方法 */
diff --git a/src/components/Common/CommonListEvent.js b/src/components/Common/CommonListEvent.js
index 53837a1..72d485c 100644
--- a/src/components/Common/CommonListEvent.js
+++ b/src/components/Common/CommonListEvent.js
@@ -210,7 +210,7 @@ export default (ChildComponent) => {
}
// const employeeData = commonUtils.isNotEmptyObject(app.employeeAndProcessData) && commonUtils.isNotEmptyArr(app.employeeAndProcessData.employeeData) ? app.employeeAndProcessData.employeeData : [];
// 为oee历史记录员工数据进行数据缓存
- if (commonUtils.isJSON(localStorage.getItem(`${commonConfig.prefix}oeeEmployeeData_${app.sTeamNameSId}`)) && JSON.parse(localStorage.getItem(`${commonConfig.prefix}oeeEmployeeData_${app.sTeamNameSId}`)).length > 0 && !this.props.employeeDataSetted) {
+ if (commonUtils.isNotEmptyObject(getData) && commonUtils.isJSON(localStorage.getItem(`${commonConfig.prefix}oeeEmployeeData_${app.sTeamNameSId}`)) && JSON.parse(localStorage.getItem(`${commonConfig.prefix}oeeEmployeeData_${app.sTeamNameSId}`)).length > 0 && !this.props.employeeDataSetted) {
getData.employeeData = JSON.parse(localStorage.getItem(`${commonConfig.prefix}oeeEmployeeData_${app.sTeamNameSId}`));
}
addState = {
@@ -218,77 +218,7 @@ export default (ChildComponent) => {
};
}
}
- } else if (commonUtils.isNotEmptyObject(sModelsType) && sModelsType.includes('dynamicList')) { /* 改分支用于动态列处理 */
- if (commonUtils.isNotEmptyNumber(formData[0].iPageSize) && formData[0].iPageSize !== 0) {
- iPageSize = formData[0].iPageSize;
- }
- const bFilter = [];
- if (!commonUtils.isEmptyArr(filterCondition)) {
- bFilter.push(...filterCondition);
- }
- addState = await this.props.handleGetDataSet({
- name: 'slave',
- configData: slaveConfig,
- condition: {
- pageNum: 1, pageSize: iPageSize, bFilter,
- },
- flag: true,
- isWait: true,
- });
- if (commonUtils.isNotEmptyObject(addState)) {
- const { slaveData } = addState;
- if (commonUtils.isNotEmptyArr(slaveData)) {
- const gdsconfigformslave = slaveConfig.gdsconfigformslave;
- const columnConfig = commonUtils.isNotEmptyObject(slaveConfig) ? slaveConfig.gdsconfigformslave.filter(item => item.bVisible && item.sName !== '' && item.showName !== '' && !(item.sControlName !== '' && item.sControlName.indexOf('Btn') > -1)) : [];
- const slaveRow = slaveData[0];
- if (commonUtils.isNotEmptyObject(slaveRow)) {
- const iOrderArr = [];
- for (const key of Object.keys(slaveRow)) {
- let splitData = [];
- splitData = commonUtils.isNotEmptyObject(key) ? key.split('_') : [];
- /* 标题需要按照s_名称_序号 规则设定 */
- if (splitData.length > 1) {
- let title = splitData[1];/* 标题名称 */
- /* 如果有### ,替换为 . */
- if (commonUtils.isNotEmptyObject(title) && title.includes('###')) {
- title = title.replace('###', '.');
- }
- const iOrder = splitData[2];/* 排序号 */
- iOrderArr.push(iOrder);
- /* 根据接口返回列的序号 匹配后台配置列下标 */
- if (commonUtils.isNotEmptyObject(columnConfig[iOrder])) {
- columnConfig[iOrder].showName = title;
- columnConfig[iOrder].sChinese = title;
- columnConfig[iOrder].sName = key;
- const iIndex = gdsconfigformslave.findIndex(item => item.sId === columnConfig[iOrder].sId);
- if (iIndex > -1) {
- gdsconfigformslave[iIndex] = columnConfig[iOrder];
- }
- }
- }
- }
-
- /* 把多余字段隐藏掉 找到最大下标 把其他多余显示行隐藏掉 */
- if (commonUtils.isNotEmptyArr(iOrderArr)) {
- const iOrderMax = Math.max(...iOrderArr);
- if (commonUtils.isNotEmptyArr(columnConfig)) {
- columnConfig.forEach((itemConfig, iIndex) => {
- if (iIndex > iOrderMax) {
- const iIndexConfig = gdsconfigformslave.findIndex(item => item.sId === itemConfig.sId);
- if (iIndexConfig > -1) {
- gdsconfigformslave[iIndexConfig].bVisible = false;
- }
- }
- });
- }
- }
-
- slaveConfig.gdsconfigformslave = gdsconfigformslave;
- slaveColumn = commonFunc.getHeaderConfig(slaveConfig);
- }
- }
- }
- } else if (sModelsType === 'commonGantte') { /* 获取甘特图列表数据集 */
+ } else if (sModelsType === 'commonGantte') { /* 获取甘特图列表数据集 */
/* 找到配置的存储过程名称 */
const ganntObj = {
sProcedureName: slaveConfig.sTbName,
@@ -824,6 +754,7 @@ export default (ChildComponent) => {
}
const picArr = slaveConfig.gdsconfigformslave.filter(item => (item.sName === 'picArr'));
+ const picArrDefault = slaveConfig.gdsconfigformslave.filter(item => (item.sName === 'picArrDefault'));
const getData = (formRoute === '/indexPage/commonListLeft') ? (...args) => {
this.handleGetData(...args);
const filterTreeConfigArr = slaveConfig.gdsconfigformslave.filter(item => item.bTree);
@@ -833,9 +764,15 @@ export default (ChildComponent) => {
this.handleGetFilterTreeData(filterTreeConfig, slaveFilterCondition, 1);
}
} : this.handleGetData;
- if (picArr.length > 0) {
+ if (picArr.length > 0 || picArrDefault.length > 0) {
let sActiveId = '';
- if (picArr[0].sName === 'picArr' && picArr[0].sDropDownType === 'picArr' && sModelsType !== 'commonList/msg') {
+ if (commonUtils.isNotEmptyArr(picArrDefault) && picArrDefault[0].sName === 'picArrDefault' && picArrDefault[0].sDropDownType === 'picArr') {
+ [{ sActiveId }] = picArrDefault;
+ if (sActiveId === '1') {
+ sActiveId = sActiveId === '1' ? commonUtils.isEmpty(record.sFormId) ? record.sSrcFormId : record.sFormId : sActiveId;
+ }
+ console.log('picArrDefault', sActiveId, picArrDefault);
+ } else if (picArr[0].sName === 'picArr' && picArr[0].sDropDownType === 'picArr' && sModelsType !== 'commonList/msg') {
[{ sActiveId }] = picArr;
if (sActiveId === '1') {
sActiveId = sActiveId === '1' ? commonUtils.isEmpty(record.sFormId) ? record.sSrcFormId : record.sFormId : sActiveId;
diff --git a/src/components/Common/CommonListLeft.js b/src/components/Common/CommonListLeft.js
new file mode 100644
index 0000000..1ed9a48
--- /dev/null
+++ b/src/components/Common/CommonListLeft.js
@@ -0,0 +1,796 @@
+/* eslint-disable */
+import React, { Component } from 'react';
+import { Form, Icon } from '@ant-design/compatible';
+import '@ant-design/compatible/assets/index.css';
+import { Layout, Spin, Slider, Button, Input, message, Tooltip } from 'antd-v4';
+import { MessageOutlined, MinusOutlined, NodeExpandOutlined } from '@ant-design/icons';
+import CommonListEvent from '@/components/Common/CommonListEvent';/* 继承销售模块业务功能 */
+import * as commonFunc from '@/components/Common/commonFunc';/* 通用单据方法 */ /* 通用单据方法 */
+import Toolbar from '@/components/Common/ToolBar/ToolBarNew';
+import StaticEditTable from '@/components/Common/CommonTable';/* 可编辑表格 */
+import styles from '@/index.less';
+import selfstyles from '@/components/Common/CommonListLeft/index.less';
+import CommonBase from '@/components/Common/CommonBase';/* 获取配置及数据 */
+import * as commonBusiness from '@/components/Common/commonBusiness';/* 单据业务功能 */
+import SearchComponent from '@/components/Common/SearchComponent';/* 搜索组件 */
+import commonConfig from '@/utils/config';
+import * as commonUtils from '@/utils/utils';
+import StaticEditTree from '@/components/Common/Tree/StaticTree';
+import Eject from '@/assets/eject.svg';/* 弹出图标 */
+import Close from '@/assets/close.svg';/* 关闭图标 */
+import leftTreeEdit from '@/assets/leftTreeEdit.svg';/* 编辑节点*/
+import leftTreeDel from '@/assets/leftTreeDel.svg';/* 删除节点 */
+import leftTreeAddChild from '@/assets/leftTreeAddChild.svg';/* 新增节点 */
+import AntdDraggableModal from '@/components/Common/AntdDraggableModal';
+import CommonListSelect from '@/components/Common/CommonListSelect';/* 选择界面2222 */
+import WorkOrderSystemAddModal from '@/components/Common/WorkOrderSystem/WorkOrderSystemAdd';
+import WorkOrderSystemDetailModal from '@/components/Common/WorkOrderSystem/WorkOrderSystemDetail';
+
+const { Header, Content } = Layout;
+
+const { TextArea } = Input;
+
+let NoTotalData = '';
+class CommonList extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ expandAll: true,
+ expandedTreeKeys: [],
+ defaultKey: 'unset',
+ slideFlag: localStorage.getItem(`treeSlide_${this.props.sModelsId}`) ? +localStorage.getItem(`treeSlide_${this.props.sModelsId}`) : 0,
+ treeId: `treeId_${commonUtils.createSid()}`
+ };
+ this.treeDiv = null;
+ }
+ componentDidMount() {
+ if (!this.state.slideFlag) {
+ this.treeDiv.getElementsByClassName('listTree-sider')[0].style.display = 'block';
+ const originWidth = this.treeDiv.getElementsByClassName('listTree-sider')[0].offsetWidth;
+ this.treeDiv.getElementsByClassName('listTree-content')[0].style.width = `calc(100% - ${originWidth + 10}px)`;
+ } else {
+ this.treeDiv.getElementsByClassName('listTree-sider')[0].style.display = 'none';
+ this.treeDiv.getElementsByClassName('listTree-content')[0].style.width = `calc(100%)`;
+ }
+ this.handleDefaultExpandTree();
+ }
+ componentDidUpdate() {
+ if (window.xlyListLeftTreeExpand) {
+ this.handleDefaultExpandTree();
+ window.xlyListLeftTreeExpand = false;
+ }
+ }
+ handleDefaultExpandTree = () => {
+ let count = 0;
+ const timer = setInterval(() => {
+ count += 1;
+ if (count > 10) {
+ clearInterval(timer);
+ }
+ const { expandedKeys } = this.props;
+ if (commonUtils.isNotEmptyArr(expandedKeys)) {
+ clearInterval(timer);
+ this.handleExpandTreeAll(2);
+ }
+ }, 500);
+ }
+ onTreeExpandChange = () => {
+ const oldState = this.state.expandAll;
+ const arr = [];
+ if (!oldState) {
+ this.props.treeData.forEach((item) => {
+ arr.push(item.sId + item.sProcessId + item.iOrder);
+ });
+ }
+ this.setState({
+ expandAll: !oldState,
+ expandedTreeKeys: arr,
+ });
+ }
+ toggleSlide = () => {
+ let flag = this.state.slideFlag ? 0 : 1;
+ localStorage.setItem('treeSlide_' + this.props.sModelsId, flag);
+ this.setState({
+ slideFlag: flag
+ })
+ }
+
+ handleSlideToggle = () => {
+ if (this.state.slideFlag) {
+ this.treeDiv.getElementsByClassName('listTree-sider')[0].style.display = 'block';
+ const originWidth = this.treeDiv.getElementsByClassName('listTree-sider')[0].offsetWidth;
+ this.treeDiv.getElementsByClassName('listTree-content')[0].style.width = `calc(100% - ${originWidth + 10}px)`;
+ this.toggleSlide();
+ } else {
+ this.treeDiv.getElementsByClassName('listTree-sider')[0].style.display = 'none';
+ this.treeDiv.getElementsByClassName('listTree-content')[0].style.width = `calc(100%)`;
+ this.toggleSlide();
+ }
+ }
+ handleEject = () => {
+ const { currentPane, panes } = this.props.app;
+ if (commonUtils.isNotEmptyArr(panes) && commonUtils.isNotEmptyObject(currentPane)) {
+ // const index = panes.indexOf(currentPane);
+ const index = panes.findIndex(item => item.formId === currentPane.formId && item.key === currentPane.key && item.notCurrentPane === currentPane.notCurrentPane && item.route === currentPane.route && item.title === currentPane.title && item.sModelsType === currentPane.sModelsType && item.sProcName === currentPane.sProcName);
+ /* 当前页签 */
+ let currentTab = document.getElementById('navTabWrap').children[index];
+ if (commonUtils.isEmpty(currentTab)) {
+ const oChildren = document.getElementById('navTabWrap').getElementsByClassName('ant-tabs-content')[0].children;
+ for (const child of oChildren) {
+ if (child.nodeName === 'DIV' && index !== undefined && child.getAttribute('id') === `navTabWrap-panel-${panes[index].key}`) {
+ currentTab = child;
+ }
+ }
+ }
+ if (!commonUtils.isEmpty(currentTab)) {
+ const filterTreeArr = currentTab.getElementsByClassName('xly-filter-tree');/* 获取当前页签下的树组件 */
+ if (commonUtils.isNotEmptyArr(filterTreeArr)) {
+ const filterTree = filterTreeArr[0];
+ if (filterTree.style.display === 'block') {
+ filterTree.style.display = 'none';
+ } else {
+ filterTree.style.display = 'block';
+ }
+ }
+ }
+ }
+ };
+ /** 树节点选中 */
+ handleTreeSelect = (name, checkedKeys, e) => {
+ this.props.onSelect(name, checkedKeys, e); /* 调用CommonListEvent通用处理 */
+ };
+
+ handleCancelModal = (modelVisible) => {
+ this.props.onSaveState({
+ [modelVisible]: false,
+ });
+ }
+
+ handleSelectModal = (modelVisible) => {
+ this.props.onSaveState({
+ [modelVisible]: false,
+ });
+ }
+ /* 新增左侧树节点 */
+ handleLeftTreeAddChild = () => {
+ this.props.onSaveState({ leftTreeNodeVisible: true, leftTreeNodeHandleType: 'add', leftTreeNodeTitle: '新增子节点' })
+
+
+ }
+
+ /* 编辑左侧树节点 */
+ handleLeftTreeAddEdit = () => {
+ const { treeSelectedKeys, treeTreeNode} = this.props;
+ if(commonUtils.isEmptyArr(treeSelectedKeys)) {
+ message.error('请选择树节点!');
+ return;
+ }
+ const leftTreeNodeName = treeTreeNode.showName;
+ this.props.onSaveState({ leftTreeNodeVisible: true, leftTreeNodeName: leftTreeNodeName, leftTreeNodeTitle: '编辑树节点', leftTreeNodeHandleType: 'update' })
+ }
+
+ /* 删除左侧树节点 */
+ handleLeftTreeAddDel = () => {
+ const { treeSelectedKeys, treeTreeNode, leftTreeNodeHandleType, slaveConfig,slaveData, slaveDelData} = this.props;
+ if(commonUtils.isEmptyArr(treeSelectedKeys)) {
+ message.error('请选择树节点!');
+ return;
+ }
+ const newNodeData = [];
+ const newNodeDelData = [];
+ const newNodeObj ={};
+ newNodeObj.sId = treeTreeNode.sId;
+ newNodeObj.sName = treeTreeNode.showName;
+ newNodeObj.sParentId = treeTreeNode.sId;
+ newNodeObj.sAllId = treeTreeNode.sAllId;
+ newNodeObj.handleType = 'del';
+ newNodeData.push(newNodeObj);
+ newNodeDelData.push(newNodeObj);
+ const data = [];
+ if (!commonBusiness.validateTable(slaveConfig, slaveData, this.props)) {
+ this.props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+ data.push(commonBusiness.mergeData('slave', slaveConfig.sTbName, newNodeData, newNodeDelData));
+ this.handleSaveData({ data, sClientType: '1' });
+ }
+
+ // 展开收起全部树节点
+ handleExpandTreeAll = (level = 999) => {
+ const { expandedKeys: expandedKeysOld, treeData } = this.props;
+ let expandedKeys = [];
+ const getExpandedKeys = (arr, lv) => {
+ for (let i = 0; i < arr.length; i++) {
+ const obj = arr[i];
+ expandedKeys.push(obj.key);
+ if (obj.children && lv < level) {
+ getExpandedKeys(obj.children, lv + 1);
+ }
+ }
+ }
+ getExpandedKeys(treeData, 0);
+ if (expandedKeysOld.length >= expandedKeys.length && level === 999) {
+ expandedKeys = [];
+ }
+ this.props.onSaveState({ expandedKeys });
+ }
+
+ handleLeftTreeNodeOk = () => {
+ /* 调用接口 新增保存 */
+ const { treeSelectedKeys, treeTreeNode, leftTreeNodeHandleType, slaveConfig,slaveData, slaveDelData} = this.props;
+ // const {treeNodeValue } = this.state;
+ const nodeName = commonUtils.isNotEmptyObject(document.getElementById('treeNodeName')) ? document.getElementById('treeNodeName').value : '' ;
+ if(commonUtils.isEmptyArr(treeSelectedKeys)) {
+ message.error('请选择树节点!');
+ return;
+ }
+ if(commonUtils.isEmptyObject(nodeName)) {
+ message.error('请输入子节点名称!');
+ return;
+ }
+ let filterTreeConfig = {};
+ let picArrConfig = {};
+ const filterTreeConfigArr = slaveConfig.gdsconfigformslave.filter(item => item.bTree);
+ if (commonUtils.isNotEmptyArr(filterTreeConfigArr)) {
+ filterTreeConfig = filterTreeConfigArr[0];
+ }
+ const picArrConfigArr = slaveConfig.gdsconfigformslave.filter(item => item.sName === 'picArr');
+ if (commonUtils.isNotEmptyArr(picArrConfigArr)) {
+ picArrConfig = picArrConfigArr[0];
+ }
+
+ const { sActiveId: sFormId } = picArrConfig;
+ if (!sFormId) {
+ message.error('sFormId不能为空!');
+ return;
+ }
+
+ const { sName = 'sName' } = filterTreeConfig;
+ const newNodeData = [];
+ const newNodeDelData = [];
+ /* 新增节点 */
+ if(leftTreeNodeHandleType && leftTreeNodeHandleType === 'add') {
+ const newNodeObj ={};
+ newNodeObj.sId = commonUtils.createSid();
+ newNodeObj[sName] = nodeName;
+ newNodeObj.sParentId = treeTreeNode.sId;
+ newNodeObj.sAllId = newNodeObj.sId + newNodeObj.sParentId;
+ newNodeObj.handleType = leftTreeNodeHandleType;
+ newNodeObj.sFormId = sFormId;
+ newNodeData.push(newNodeObj);
+ }else if(leftTreeNodeHandleType && leftTreeNodeHandleType === 'update') {
+ const newNodeObj ={};
+ newNodeObj.sId = treeTreeNode.sId;
+ newNodeObj[sName] = nodeName;
+ newNodeObj.sParentId = treeTreeNode.sParentId;
+ newNodeObj.sAllId = treeTreeNode.sAllId;
+ newNodeObj.handleType = leftTreeNodeHandleType;
+ newNodeData.push(newNodeObj);
+ }
+ const data = [];
+ if (!commonBusiness.validateTable(slaveConfig, slaveData, this.props)) {
+ this.props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+ data.push(commonBusiness.mergeData('slave', slaveConfig.sTbName, newNodeData, newNodeDelData));
+ this.handleSaveData({ data, sClientType: '1' });
+ }
+
+ handleSaveData = async (params) => {
+ const {
+ token, sModelsId, currentId, masterData, masterConfig, slaveConfig, checkConfig, billnosetting, app, sModelsType, controlConfig, materialsConfig, processConfig, colorConfig, packConfig, orderDetailConfig, dispatch,
+ } = this.props;
+ const {userinfo} = app;
+ const {copyTo} = app.currentPane;
+ const BtnSave = commonFunc.showMessage(app.commonConst, 'BtnSave');/* 保存 */
+ params.optName = BtnSave;
+ const returnData = await commonBusiness.saveData({token, value: params, sModelsId});
+ if (commonUtils.isNotEmptyObject(returnData)) {
+ if(returnData.code === 1) {
+ /* 回刷树 */
+ this.handleRefleshTree();
+ }
+
+ }
+ }
+ handleRefleshTree = async () => {
+ const { slaveConfig, filterCondition, treeSelectedKeys } = this.props;
+ const filterTreeConfigArr = slaveConfig.gdsconfigformslave.filter(item => item.bTree);
+ const addState = {};
+ let bInData = true;
+ if (commonUtils.isNotEmptyArr(filterTreeConfigArr)) {
+ const filterTreeConfig = filterTreeConfigArr[0];
+ const { treeData } = await this.handleGetFilterTreeData(filterTreeConfig, filterCondition, 1);
+ addState.treeData = treeData;
+ }
+ if (commonUtils.isNotEmptyArr(addState.treeData) && commonUtils.isNotEmptyArr(treeSelectedKeys)) {
+ const findObjectById = (arr, key) => {
+ for (let i = 0; i < arr.length; i++) {
+ const obj = arr[i];
+ if (obj.key === key) {
+ return obj;
+ }
+ if (obj.children) {
+ const child = findObjectById(obj.children, key);
+ if (child) {
+ return child;
+ }
+ }
+ }
+ return null;
+ }
+
+ bInData = findObjectById(addState.treeData, treeSelectedKeys[0]);
+ }
+ this.props.onSaveState({ leftTreeNodeVisible: false, ...addState }, () => {
+ if (!bInData) {
+ const oFirstNode = this.treeRef?.querySelector('.ant-tree-node-content-wrapper');
+ if (oFirstNode) {
+ oFirstNode.click();
+ }
+ }
+ });
+ }
+
+ handleGetFilterTreeData= async (slaveConfig, slaveFilterCondition, page, slaveOrderBy, props) => {
+ const { app } = props === undefined ? this.props : props;
+ const conditonValues = app.currentPane.conditonValues;
+ const pageNum = commonUtils.isEmpty(page) ? 1 : page;
+ return await this.props.handleGetTreeDataSet({
+ name: 'slave',
+ configData: slaveConfig,
+ condition: {
+ pageNum, pageSize: commonConfig.pageSize, bFilter: slaveFilterCondition, sFilterOrderBy: slaveOrderBy, sSqlCondition: conditonValues, isTreeList: "1",
+ },
+ flag: true,
+ clearSelectData: true,
+ isWait: true
+ });
+ };
+
+ render() {
+ const { pageLoading } = this.props;
+ return (
+
+
+ this.treeDiv = ref} style={{ height: '100%' }}>
+ { this.treeRef = ref; }}
+ onExpandTreeAll={this.handleExpandTreeAll}
+ />
+
+
+
+ );
+ }
+}
+
+const CommonListComponent = Form.create({
+ mapPropsToFields(props) {
+ const { masterData, masterConfig } = props;
+ const obj = commonFunc.mapPropsToFields(masterData, Form, masterConfig);
+ return obj;
+ },
+})((props) => {
+ const {
+ form, onReturnForm, slavePagination, slaveConfig, slaveColumn, isSmall, iHeight, logVisible, sModelsType, slaveData, slaveFilterCondition, onTreeExpandChange,
+ flowHistroyId, flowHistroyVisible, app, expandAll, leftTreeNodeVisible, leftTreeNodeTitle, leftTreeNodeName,
+ } = props;
+ const { userinfo, token } = app;
+ // isSmall将分页变小,以及去掉跳转页面和总条数记录
+ /* 回带表单 */
+ if (commonUtils.isNotEmptyObject(slavePagination)) {
+ // if (isSmall) {
+ // slavePagination.showTotal = null;
+ // }
+ }
+ onReturnForm(form);
+ // const pagination = {
+ // pageSize: commonUtils.isNotEmptyNumber(props.iPageSize) && props.iPageSize !== 0 ? props.iPageSize : commonConfig.pageSize,
+ // ...slavePagination,
+ // size: isSmall ? 'small' : 'large',
+ // pageSizeOptions: commonConfig.pageSizeOptions,
+ // showSizeChanger: !isSmall,
+ // showQuickJumper: !isSmall,
+ // };
+ const pagination = false;
+ let slaveTreeData = [];
+ /* 包含子节点的通用列表 */
+ if (commonUtils.isNotEmptyObject(sModelsType) && sModelsType.includes('childrenList') && commonUtils.isNotEmptyArr(slaveData)) {
+ const addSate = props.onGetSlaveTreeData(slaveData);
+ if (commonUtils.isNotEmptyObject(addSate)) {
+ // eslint-disable-next-line prefer-destructuring
+ slaveTreeData = addSate.slaveTreeData;
+ }
+ } else {
+ slaveTreeData = slaveData;
+ }
+
+
+ const tableProps = {
+ ...commonBusiness.getTableTypes('slave', props),
+ data: slaveTreeData,
+ tableProps: { rowKey: 'sSlaveId', pagination, onChange: props.onTitleChange },
+ onSaveState: props.onSaveState,
+ clearArray: props.clearArray,
+ readOnly: true,
+ isSmall,
+ sGroupByList: props.sGroupByList,
+ customConfig: props.customConfig,
+ };
+ /* 有树形的不用虚拟列表 */
+ if (commonUtils.isNotEmptyObject(sModelsType) && sModelsType.includes('childrenList') && commonUtils.isNotEmptyArr(slaveTreeData)) {
+ tableProps.noVlist = true;
+ }
+ const masterSum = commonUtils.isNotEmptyObject(slaveConfig) ? slaveConfig.gdsconfigformslave.filter(item => item.bSum && item.sName !== '') : [];
+ const masterTitleGroup = commonUtils.isNotEmptyObject(slaveColumn) ? slaveColumn.filter(item => commonUtils.isNotEmptyObject(item.title) && item.title.indexOf('-') > -1) : [];
+ const hasColumnGroup = masterTitleGroup.length;
+ if (masterSum.length > 0) {
+ NoTotalData = hasColumnGroup > 0 ? 'TitleGroup' : 'NoTitleGroup';
+ } else {
+ NoTotalData = hasColumnGroup > 0 ? 'NoTotalData TitleGroup' : 'NoTotalData NoTitleGroup';
+ }
+ // const mProps = { ...commonBusiness.createMemoProps('master', props)};
+
+ const filterTreeData = (treeData) => {
+ if (commonUtils.isNotEmptyArr(treeData)) {
+ if (commonUtils.isNotEmptyArr(treeData[0].children)) {
+ return treeData[0].children;
+ }
+ return treeData;
+ } else {
+ return [];
+ }
+ }
+
+ // const name = 'filterTree';
+ const treeProps = {
+ ...commonBusiness.getTreeTypes('tree', props),
+ isSearch: false,
+ checkable: false,
+ disabled: false,
+ checkedAll: false,
+ unChecked: false,
+ showLine: true,
+ treeData: filterTreeData(props.treeData),
+ // [`${name}Column`]: props[`${name}Column`],
+ // [`${name}Config`]: props[`${name}Config`],
+ // [`${name}Data`]: filterTreeData(props[`${name}Data`]),
+ getFloatNum: props.getFloatNum,
+ getSqlDropDownData: props.getSqlDropDownData,
+ getSqlCondition: props.getSqlCondition,
+ handleSqlDropDownNewRecord: props.handleSqlDropDownNewRecord,
+ getDateFormat: props.getDateFormat,
+ onDoubleClick: props.onDoubleClick,
+ onSelect: props.onSelectTree,
+ expandedKeys: props.expandedKeys,
+ onSaveState: props.onSaveState,
+ onExpandTree: () => {},
+ };
+
+ const logProps = {
+ app: {
+ ...props.app,
+ currentPane: {
+ ...props.app.currentPane,
+ formRoute: '/indexPage/commonList',
+ route: '/indexPage/commonList',
+ name: 'logView',
+ config: props.logConfig,
+ select: props.onSelectModal.bind(this, 'logVisible'),
+ selectCancel: props.onCancelModal.bind(this, 'logVisible'),
+ sModelsType: 'modal/logView',
+ },
+ },
+ token: props.app.token,
+ slaveColumn: props.logColumn, /* 表头 */
+ slaveConfig: props.logConfig,
+ slaveData: props.logData,
+ dispatch: props.dispatch,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ pageLoading: false,
+ };
+
+ const refreshSlaveTable = () => {
+ props.handleGetDataSet({
+ name: 'slave',
+ configData: props.slaveConfig,
+ condition: {
+ pageNum: 1,
+ pageSize: slavePagination.pageSize,
+ bFilter: slaveFilterCondition,
+ },
+ flag: true,
+ clearSelectData: true,
+ });
+ };
+ const workOrderSystemAddProps = {
+ ...props,
+ onAddWorkOrderSuccess: () => {
+ props.onSaveState({ workOrderSystemAddModalVisible: false });
+ refreshSlaveTable();
+ },
+ };
+
+ let workOrderSystemDetailTitle = '';
+ if (commonUtils.isNotEmptyObject(props.slaveCurrentData)) {
+ const { sTitle, sModuleName, tCreateDate } = props.slaveCurrentData;
+ /* eslint-disable */
+ workOrderSystemDetailTitle = (
+ <>
+
{sTitle}
+
{`菜单名称: ${sModuleName} ${Array(10)
+ .fill('\xa0')
+ .join('')} 创建时间: ${tCreateDate.split(' ')[0]}`}
+
+
+ >);
+ /* eslint-enable */
+ }
+
+ let customWidth = 224;
+ if (localStorage.getItem(`customProductionScheduleTreeWidth_${props.sModelsId}`) !== '') {
+ customWidth = localStorage.getItem(`customProductionScheduleTreeWidth_${props.sModelsId}`);
+ }
+
+ const workOrderSystemDetailProps = {
+ ...props,
+ sId: commonUtils.isNotEmptyObject(props.slaveCurrentData) ? props.slaveCurrentData.sId : '',
+ refreshSlaveTable,
+ };
+
+ let addressStr = `${location.protocol}//${location.host}`;
+ if (sModelsType && sModelsType.includes('http')) {
+ addressStr = location.host;
+ }
+
+ const sFlowUrl = `${commonConfig.server_host}process/historyListerp/{sBillId}/{sBrandsId}/{sSubsidiaryId}/{sUserName}/{token}`;
+ const flowHistrory = sFlowUrl !== undefined ? sFlowUrl.replace('{sBrandsId}', userinfo.sBrandsId).replace('{sSubsidiaryId}', userinfo.sSubsidiaryId).replace('{sUserName}', userinfo.sUserName).replace('{sUserId}', userinfo.sId)
+ .replace('{token}', token)
+ .replace('{ipAddress}', addressStr)
+ .replace('{sBillId}', flowHistroyId) : '';
+
+ const handleResizeLayout = (e) => {
+ const originX = e.pageX;
+ const originWidth = props.treeDiv.getElementsByClassName('listTree-sider')[0].offsetWidth;
+ let offset = 0;
+ window.onmousemove = function (e2) {
+ offset = e2.pageX - originX;
+ props.treeDiv.getElementsByClassName('listTree-sider')[0].style.width = `${originWidth + offset}px`;
+ props.treeDiv.getElementsByClassName('listTree-content')[0].style.width = `calc(100% - ${originWidth + offset + 10}px)`;
+ };
+ window.onmouseup = function () {
+ window.onmousemove = null;
+ window.onmousemove = null;
+ localStorage.setItem(`customProductionScheduleTreeWidth_${props.sModelsId}`, originWidth + offset + 10);
+ };
+ };
+
+ return (
+
+ );
+});
+
+export default CommonBase(CommonListEvent(CommonList));
diff --git a/src/components/Common/CommonListSelect/index.js b/src/components/Common/CommonListSelect/index.js
index 26dac06..d636bea 100644
--- a/src/components/Common/CommonListSelect/index.js
+++ b/src/components/Common/CommonListSelect/index.js
@@ -726,7 +726,6 @@ const CommonListComponent = Form.create({
customerHeight += realizeHeight + 60;
}
// addState.noVlistTable = true;
- console.log('customerHeight', customerHeight);
const tableProps = {
...commonBusiness.getTableTypes('slave', props),
tableProps: {
diff --git a/src/components/Common/CommonListTab/index.js b/src/components/Common/CommonListTab/index.js
index 9b81ebd..7aa5e90 100644
--- a/src/components/Common/CommonListTab/index.js
+++ b/src/components/Common/CommonListTab/index.js
@@ -1,6 +1,7 @@
/* eslint-disable */
import React, { Component } from 'react';
import { Form } from '@ant-design/compatible';
+import '@ant-design/compatible/assets/index.css';
import { Layout, Spin, Slider, Tabs, Row, Col, Card } from 'antd-v4';
import baseChar from '@/components/Common/baseChar'; /* 获取图表配置及数据 */
import CommonListTabEvent from '@/components/Common/CommonListTabEvent';/* 继承销售模块业务功能 */
@@ -15,21 +16,21 @@ import SearchComponent from '@/components/Common/SearchComponent';/* 搜索组
import commonConfig from '@/utils/config';
import * as commonUtils from '@/utils/utils';
import StaticEditTree from '@/components/Common/Tree/StaticTree';
-import Eject from '@/assets/eject.svg';/* 弹出图标 */
+import Eject from '@/assets/eject.svg';/* 弹出图标 */
import Close from '@/assets/close.svg';/* 关闭图标 */
import AntdDraggableModal from '@/components/Common/AntdDraggableModal';
import CommonListSelect from '@/components/Common/CommonListSelect';/* 选择界面 */
import Bar from '../../Charts/Bar';
-// import Columnar from '../../Charts/Columnar';
-// import ColumnarGroup from '../../Charts/ColumnarGroup';
-// import BrokenLine from '../../Charts/BrokenLine';
-// import WaterWave from '../../Charts/WaterWave';
-// import Gauge from '../../Charts/Gauge';
-// import ColumnarStack from '../../Charts/ColumnarStack';
-// import PieGroup from '../../Charts/PieGroup';
-// import Pie from '../../Charts/Pie';
-// import TimeLineGroup from '../../Charts/TimeLineGroup';
-// import ColorBlock from '../../Charts/ColorBlock';
+import Columnar from '../../Charts/Columnar';
+import ColumnarGroup from '../../Charts/ColumnarGroup';
+import BrokenLine from '../../Charts/BrokenLine';
+import WaterWave from '../../Charts/WaterWave';
+import Gauge from '../../Charts/Gauge';
+import ColumnarStack from '../../Charts/ColumnarStack';
+import PieGroup from '../../Charts/PieGroup';
+import Pie from '../../Charts/Pie';
+import TimeLineGroup from '../../Charts/TimeLineGroup';
+import ColorBlock from '../../Charts/ColorBlock';
/**
* 此组件是N个列表,以Tab页签方式展示
*/
diff --git a/src/components/Common/CommonNewBill.js b/src/components/Common/CommonNewBill.js
index 9fde7ea..7fa0b35 100644
--- a/src/components/Common/CommonNewBill.js
+++ b/src/components/Common/CommonNewBill.js
@@ -33,6 +33,7 @@ import WorkCalendar from '@/components/Common/WorkCalendar/WorkCalendar';
import ContextMenuModal from '@/components/Common/ContextMenuModal';
import CommonViewDragable from "@/components/Common/CommonViewDragable";
import CommonExamInfo from '@/components/Common/CommonExamInfo';
+import JsonFormatter from '@/components/Common/Json/JsonFormatter';
import lodash from 'lodash';
// import ProcessIcon from '../../assets/process.svg';
@@ -1042,6 +1043,12 @@ class CommonNewBill extends Component {
sAssignFieldRowId: tableDataRow.sId, /* 选中行的sId */
});
}
+ } else if(showConfig?.sName === 'sInstruct') { /* 指令集弹窗 */
+ const sInstructJsonString = sValue;
+ this.props.onSaveState({
+ visibleInstructField: true,
+ sInstructJsonString,
+ });
}
};
/* 拿到赋值字段 */
@@ -1171,16 +1178,16 @@ class CommonNewBill extends Component {
});
}
}
- if (!tableDataRow.dNProductPrice) {
- tableDataRow.dNProductPrice = tableDataRow.dProductForeignPrice;
- }
- const models = sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('quotation/') || sModelsType.includes('productStock/') ? 'Product' : 'Materials';
- if (sModelsType.includes('purchase/') || sModelsType.includes('quotation/') || sModelsType.includes('manufacture/') || sModelsType.includes('materialsStock/') || sModelsType.includes('outside/')) {
- tableDataRow = await this.props.onMaterialsChange(tableDataRow, sModelsId, masterData, {}, 'dAuxiliaryQty', app, token, models);
- tableDataRow = commonBusiness.getCalculateAllMoney(app, models, 'dAuxiliaryQty', masterData, tableDataRow);
- } else {
- tableDataRow = commonBusiness.getCalculateAllMoney(app, models, 'dProductQty', masterData, tableDataRow);
- }
+ // if (!tableDataRow.dNProductPrice) {
+ // tableDataRow.dNProductPrice = tableDataRow.dProductForeignPrice;
+ // }
+ // const models = sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('quotation/') || sModelsType.includes('productStock/') ? 'Product' : 'Materials';
+ // if (sModelsType.includes('purchase/') || sModelsType.includes('quotation/') || sModelsType.includes('manufacture/') || sModelsType.includes('materialsStock/') || sModelsType.includes('outside/')) {
+ // tableDataRow = await this.props.onMaterialsChange(tableDataRow, sModelsId, masterData, {}, 'dAuxiliaryQty', app, token, models);
+ // tableDataRow = commonBusiness.getCalculateAllMoney(app, models, 'dAuxiliaryQty', masterData, tableDataRow);
+ // } else {
+ // tableDataRow = commonBusiness.getCalculateAllMoney(app, models, 'dProductQty', masterData, tableDataRow);
+ // }
});
addState[`${tableName}Data`] = returnData;
@@ -1290,7 +1297,13 @@ class CommonNewBill extends Component {
const urlPrint = `${commonConfig.file_host}file/download?sModelsId=${sModelsId}&token=${token}&savePathStr=${sPicturePath}`;
window.open(urlPrint);
};
-
+ handleJSONModalOk = (value) => {
+ const { masterData } = this.props;
+ const textAreaValue = value; // 获取 textarea 的值
+ const handleType= commonUtils.isEmpty(masterData.handleType) ? 'update' : masterData.handleType;
+ const newMasterData = { ...masterData, sInstruct: textAreaValue , handleType}; // 更新 masterData.sInstruct
+ this.props.onSaveState({ masterData: newMasterData, visibleInstructField: false }); // 关闭弹窗
+ };
// ----------------------------数据修改回带wend ---------------------------- //
@@ -1341,6 +1354,7 @@ class CommonNewBill extends Component {
onSetTabNumList={this.handleSetTabNumList}
onDataRowDownload={this.handleDownload}
onDelRow={this.handleTableDel}
+ onJsonModalOk={this.handleJSONModalOk}
/>
{
visible ?
@@ -1464,6 +1478,7 @@ const BillComponent = Form.create({
sModelsType,
sModelsId,
bDelegate,
+ sInstructJsonString = ''
} = props;
const masterConfig = props.onMergeMasterConfig();
const masterConfigOld = { ...masterConfig };
@@ -1985,6 +2000,7 @@ const BillComponent = Form.create({
iColValueView,
viewRow: slaveRow,
tableName: 'slave',
+ handleFieldDoubleClick: props.handleFieldDoubleClick
};
/* 第二张表 */
@@ -2492,6 +2508,7 @@ const BillComponent = Form.create({