Commit 8ed883f4e71929db084425038d92ce71ef22a08e

Authored by 陈鑫涛
1 parent baf4a6d6

盒型设计新增svg图片

src/components/Common/CommonComponent/index.js
1   -import moment from 'moment';
2   -import React, { Component, createRef } from 'react';
3   -import reactComponentDebounce from '@/components/Common/ReactDebounce';
4   -import * as commonFunc from '@/components/Common//commonFunc';/* 通用单据方法 */ /* 通用单据方法 */
  1 +import moment from "moment";
  2 +import React, { Component, createRef } from "react";
  3 +import reactComponentDebounce from "@/components/Common/ReactDebounce";
  4 +import * as commonFunc from "@/components/Common//commonFunc"; /* 通用单据方法 */ /* 通用单据方法 */
5 5 // import '@ant-design/compatible/assets/index.css';
6 6 import {
7 7 InputNumber,
... ... @@ -21,24 +21,18 @@ import {
21 21 Table,
22 22 Pagination,
23 23 Tooltip,
24   -} from 'antd-v4';
25   -import {
26   - EyeOutlined,
27   - FilePdfOutlined,
28   - FileWordOutlined,
29   - FileExcelOutlined,
30   - FileOutlined,
31   - RightOutlined,
32   -} from '@ant-design/icons';
33   -import * as commonUtils from '@/utils/utils';
34   -import styles from '@/index.less';
35   -import Provinces from '@/assets/provinces.json';
36   -import Cities from '@/assets/cities.json';
37   -import Areas from '@/assets/areas.json';
38   -import commonConfig from '@/utils/config';
39   -import { VirtualKeyboard } from '@/oee/common/oeeKeyBoard';// 虚拟软键盘
40   -import 'braft-editor/dist/output.css';
41   -import SvgBox from '../BoxDesignCompontent/svg';
  24 + Modal,
  25 +} from "antd-v4";
  26 +import {DeleteOutlined, EyeOutlined, FilePdfOutlined, FileWordOutlined, FileExcelOutlined, FileOutlined, RightOutlined } from "@ant-design/icons";
  27 +import * as commonUtils from "@/utils/utils";
  28 +import styles from "@/index.less";
  29 +import Provinces from "@/assets/provinces.json";
  30 +import Cities from "@/assets/cities.json";
  31 +import Areas from "@/assets/areas.json";
  32 +import commonConfig from "@/utils/config";
  33 +import { VirtualKeyboard } from "@/oee/common/oeeKeyBoard"; // 虚拟软键盘
  34 +import "braft-editor/dist/output.css";
  35 +import SvgBox from "../BoxDesignCompontent/svg";
42 36  
43 37 const FormItem = Form.Item;
44 38 const { Option } = Select;
... ... @@ -59,18 +53,18 @@ export default class CommonComponent extends Component {
59 53 constructor(props) {
60 54 super(props);
61 55 this.state = {
62   - dataValue: props.dataValue, /* 本showType数据 */
63   - enabled: props.enabled, /* 是否是查看状态(数据格式:布尔) */
64   - dropDownData: [], /* 下拉数据集(如果不是下拉控件该值为空,数据格式:数组对象) */
  56 + dataValue: props.dataValue /* 本showType数据 */,
  57 + enabled: props.enabled /* 是否是查看状态(数据格式:布尔) */,
  58 + dropDownData: [] /* 下拉数据集(如果不是下拉控件该值为空,数据格式:数组对象) */,
65 59 conditonValues: {},
66 60 sFieldName: props.showConfig.sName, // 字段名
67 61 bNotEmpty: props.showConfig.bNotEmpty,
68   - mode: props.showConfig.bMultipleChoice ? 'multiple' : 'default',
69   - bNewRecord: props.showConfig.bNewRecord, /* 是否有新纪录 */
  62 + mode: props.showConfig.bMultipleChoice ? "multiple" : "default",
  63 + bNewRecord: props.showConfig.bNewRecord /* 是否有新纪录 */,
70 64 sActiveDisplay: true,
71 65 pageNum: 0,
72 66 totalPageCount: 1,
73   - searchValue: '',
  67 + searchValue: "",
74 68 searchDropDownData: [],
75 69 searchTotalPageCount: 1,
76 70 searchPageNum: 0,
... ... @@ -89,31 +83,39 @@ export default class CommonComponent extends Component {
89 83 // this.getFieldDecorator = commonUtils.isUndefined(props.form) ? undefined : undefined; /* 字段验证(数据格式:数字) */
90 84 this.floatNum = this.props.getFloatNum(props.showConfig.sName); /* 数字格式化规范转换(数据格式:数字) */
91 85 this.floatPrice = this.getFloatPrice(this.floatNum); /* 价格格式化规范转换(数据格式:数字) */
92   - this.formItemLayout = commonUtils.isNotEmptyObject(props.formItemLayout) ?
93   - props.formItemLayout :
94   - location.pathname.toLowerCase().indexOf('oee') > -1 ? { labelCol: { span: 7, style: { color: 'rgba(0, 0, 0, 0.65)', backgroundColor: '#BFEFFF' } }, wrapperCol: { span: 15 } } :
95   - { labelCol: { span: 7, style: { height: '27.82px', color: 'rgba(0, 0, 0, 0.65)', backgroundColor: '#BFEFFF' } }, wrapperCol: { span: 15 } }; /* 表格样式(主要是colspan和rowspan,数据格式:对象) */
  86 + this.formItemLayout = commonUtils.isNotEmptyObject(props.formItemLayout)
  87 + ? props.formItemLayout
  88 + : location.pathname.toLowerCase().indexOf("oee") > -1
  89 + ? { labelCol: { span: 7, style: { color: "rgba(0, 0, 0, 0.65)", backgroundColor: "#BFEFFF" } }, wrapperCol: { span: 15 } }
  90 + : {
  91 + labelCol: { span: 7, style: { height: "27.82px", color: "rgba(0, 0, 0, 0.65)", backgroundColor: "#BFEFFF" } },
  92 + wrapperCol: { span: 15 },
  93 + }; /* 表格样式(主要是colspan和rowspan,数据格式:对象) */
96 94 this.isDropdownFilter = false;
97 95 this.V = { value: props.dataValue };
98 96 this.myRef = createRef();
99 97 this.dropDownCount = 0;
100   - this.bSpecial = location.pathname?.includes('ResearchTableTree') && props.showConfig.sName === 'sProductName';
  98 + this.bSpecial = location.pathname?.includes("ResearchTableTree") && props.showConfig.sName === "sProductName";
101 99 }
102 100  
103 101 /** 渲染前只执行一次 */
104 102 componentWillMount() {
105 103 this.mounted = true;
106   - if (this.props.showConfig.sDropDownType === 'const') { /* 常量下拉 */
  104 + if (this.props.showConfig.sDropDownType === "const") {
  105 + /* 常量下拉 */
107 106 /* 常量下拉其实只取一次数据就可以啦,去过数据的会给state中的dropDownData赋值,所以dropDownData有值的情况就不需要再获取了 */
108   - const showDropDown = commonUtils.isNotEmptyArr(this.props.showConfig.dropDownData) ? this.props.showConfig.dropDownData :
109   - (typeof this.props.showConfig.showDropDown === 'object') ? this.props.showConfig.showDropDown : commonUtils.objectToArr(commonUtils.convertStrToObj(this.props.showConfig.showDropDown));
  107 + const showDropDown = commonUtils.isNotEmptyArr(this.props.showConfig.dropDownData)
  108 + ? this.props.showConfig.dropDownData
  109 + : typeof this.props.showConfig.showDropDown === "object"
  110 + ? this.props.showConfig.showDropDown
  111 + : commonUtils.objectToArr(commonUtils.convertStrToObj(this.props.showConfig.showDropDown));
110 112 /* 给state赋值 */
111 113 if (this.mounted) {
112 114 this.setState({
113 115 dropDownData: showDropDown,
114 116 });
115 117 }
116   - } else if (this.props.showConfig.sDropDownType === 'sql' && !commonUtils.isEmptyArr(this.props.showConfig.dropDownData)) {
  118 + } else if (this.props.showConfig.sDropDownType === "sql" && !commonUtils.isEmptyArr(this.props.showConfig.dropDownData)) {
117 119 if (this.mounted) {
118 120 this.setState({
119 121 dropDownData: this.props.showConfig.dropDownData,
... ... @@ -128,10 +130,10 @@ export default class CommonComponent extends Component {
128 130 const antInput = currentNode.querySelector("input[class*='ant-input']");
129 131 const oInput = selectInputNode || antInput;
130 132 if (oInput) {
131   - oInput.addEventListener('compositionstart', () => {
  133 + oInput.addEventListener("compositionstart", () => {
132 134 this.chineseInputting = true;
133 135 });
134   - oInput.addEventListener('compositionend', () => {
  136 + oInput.addEventListener("compositionend", () => {
135 137 this.chineseInputting = false;
136 138 if (this.handleCompleteInputEventCache) {
137 139 this.handleCompleteInputEventCache();
... ... @@ -140,20 +142,20 @@ export default class CommonComponent extends Component {
140 142 }
141 143  
142 144 if (currentNode) {
143   - if (['t', 'm', 'y'].includes(this.firstDataIndex)) {
  145 + if (["t", "m", "y"].includes(this.firstDataIndex)) {
144 146 const oInput = currentNode.querySelector(`input[id*="${this.props.showConfig.sName}"]`);
145 147 if (oInput) {
146 148 let { sDateFormat } = this.props.showConfig;
147 149 if (commonUtils.isEmptyStr(sDateFormat)) {
148   - if (this.firstDataIndex === 'm') {
149   - sDateFormat = 'YYYY-MM';
150   - } else if (this.firstDataIndex === 'y') {
151   - sDateFormat = 'YYYY';
  150 + if (this.firstDataIndex === "m") {
  151 + sDateFormat = "YYYY-MM";
  152 + } else if (this.firstDataIndex === "y") {
  153 + sDateFormat = "YYYY";
152 154 } else {
153 155 sDateFormat = this.props.getDateFormat();
154 156 }
155 157 }
156   - oInput.oninput = (e) => {
  158 + oInput.oninput = e => {
157 159 const { value } = e.target;
158 160 const isValidDate = moment(value, sDateFormat, true).isValid();
159 161 if (isValidDate) {
... ... @@ -163,22 +165,24 @@ export default class CommonComponent extends Component {
163 165 }
164 166 }
165 167 }
166   - document.addEventListener('mousedown', this.handleSelectClick);
  168 + document.addEventListener("mousedown", this.handleSelectClick);
167 169 }
168 170  
169 171 /** props改变的时候触发 */
170 172 componentWillReceiveProps(nextProps) {
171 173 /* 如果是下拉控件,则要获取数据(获取下拉数据前要先更新sqlCondition) */
172   - const {
173   - dataValue, enabled, sFieldName, bNotEmpty, showName, sDropDownType,
174   - } = this.state;
  174 + const { dataValue, enabled, sFieldName, bNotEmpty, showName, sDropDownType } = this.state;
175 175 if (nextProps.showConfig === undefined || this.props.showConfig === undefined) return;
176 176 this.firstDataIndex = nextProps.showConfig.sName.substring(0, 1); /* 控件首字母(数据格式:字符串) */
177 177  
178   - if (nextProps.showConfig.sDropDownType === 'const') { /* 常量下拉 */
  178 + if (nextProps.showConfig.sDropDownType === "const") {
  179 + /* 常量下拉 */
179 180 /* 常量下拉其实只取一次数据就可以啦,去过数据的会给state中的dropDownData赋值,所以dropDownData有值的情况就不需要再获取了 */
180   - const showDropDown = commonUtils.isNotEmptyArr(nextProps.showConfig.dropDownData) ? nextProps.showConfig.dropDownData :
181   - (typeof nextProps.showConfig.showDropDown === 'object') ? nextProps.showConfig.showDropDown : commonUtils.objectToArr(commonUtils.convertStrToObj(nextProps.showConfig.showDropDown));
  181 + const showDropDown = commonUtils.isNotEmptyArr(nextProps.showConfig.dropDownData)
  182 + ? nextProps.showConfig.dropDownData
  183 + : typeof nextProps.showConfig.showDropDown === "object"
  184 + ? nextProps.showConfig.showDropDown
  185 + : commonUtils.objectToArr(commonUtils.convertStrToObj(nextProps.showConfig.showDropDown));
182 186 // 对应工序单独处理
183 187 // if (this.props.showConfig.showName === '对应工序') {
184 188 // showDropDown = nextProps.customDropData;
... ... @@ -189,7 +193,7 @@ export default class CommonComponent extends Component {
189 193 dropDownData: showDropDown,
190 194 });
191 195 }
192   - } else if (nextProps.showConfig.sDropDownType === 'sql' && !commonUtils.isEmptyArr(nextProps.showConfig.dropDownData)) {
  196 + } else if (nextProps.showConfig.sDropDownType === "sql" && !commonUtils.isEmptyArr(nextProps.showConfig.dropDownData)) {
193 197 if (this.mounted) {
194 198 this.setState({
195 199 dropDownData: nextProps.showConfig.dropDownData,
... ... @@ -197,7 +201,16 @@ export default class CommonComponent extends Component {
197 201 }
198 202 }
199 203 /* 把需要更新的数据setState */
200   - if (dataValue !== nextProps.dataValue || enabled !== nextProps.enabled || bNotEmpty !== nextProps.showConfig.bNotEmpty || sFieldName !== nextProps.showConfig.sName || (showName !== nextProps.showConfig.showName || !showName) || sDropDownType !== nextProps.showConfig.sDropDownType || (this.bSpecial && this.props.record.sProductNo !== nextProps.record.sProductNo)) {
  204 + if (
  205 + dataValue !== nextProps.dataValue ||
  206 + enabled !== nextProps.enabled ||
  207 + bNotEmpty !== nextProps.showConfig.bNotEmpty ||
  208 + sFieldName !== nextProps.showConfig.sName ||
  209 + showName !== nextProps.showConfig.showName ||
  210 + !showName ||
  211 + sDropDownType !== nextProps.showConfig.sDropDownType ||
  212 + (this.bSpecial && this.props.record.sProductNo !== nextProps.record.sProductNo)
  213 + ) {
201 214 if (this.mounted) {
202 215 if (commonUtils.isEmpty(nextProps.dataValue)) {
203 216 this.lastValue = nextProps.dataValue;
... ... @@ -221,20 +234,40 @@ export default class CommonComponent extends Component {
221 234  
222 235 shouldComponentUpdate(nextProps, nextState) {
223 236 const {
224   - dataValue, enabled, dropDownData, searchValue, searchDropDownData, sFieldName, bNotEmpty, sActiveDisplay, sDropDownType, spinState, showConfig,
  237 + dataValue,
  238 + enabled,
  239 + dropDownData,
  240 + searchValue,
  241 + searchDropDownData,
  242 + sFieldName,
  243 + bNotEmpty,
  244 + sActiveDisplay,
  245 + sDropDownType,
  246 + spinState,
  247 + showConfig,
225 248 } = this.state;
226 249  
227   - return nextProps.showConfig !== undefined && (dataValue !== nextState.dataValue || enabled !== nextState.enabled ||
228   - sFieldName !== nextState.sFieldName || sDropDownType !== nextState.sDropDownType || bNotEmpty !== nextState.bNotEmpty || JSON.stringify(dropDownData) !== JSON.stringify(nextState.dropDownData) ||
229   - searchValue !== nextState.searchValue || JSON.stringify(searchDropDownData) !== JSON.stringify(nextState.searchDropDownData) ||
230   - JSON.stringify(sActiveDisplay) !== JSON.stringify(nextState.sActiveDisplay) || nextProps.showTime !== this.props.showTime ||
231   - spinState !== nextState.spinState || JSON.stringify(nextState.selectTableData) !== JSON.stringify(this.state.selectTableData) ||
232   - JSON.stringify(nextProps.showConfig) !== JSON.stringify(showConfig));
  250 + return (
  251 + nextProps.showConfig !== undefined &&
  252 + (dataValue !== nextState.dataValue ||
  253 + enabled !== nextState.enabled ||
  254 + sFieldName !== nextState.sFieldName ||
  255 + sDropDownType !== nextState.sDropDownType ||
  256 + bNotEmpty !== nextState.bNotEmpty ||
  257 + JSON.stringify(dropDownData) !== JSON.stringify(nextState.dropDownData) ||
  258 + searchValue !== nextState.searchValue ||
  259 + JSON.stringify(searchDropDownData) !== JSON.stringify(nextState.searchDropDownData) ||
  260 + JSON.stringify(sActiveDisplay) !== JSON.stringify(nextState.sActiveDisplay) ||
  261 + nextProps.showTime !== this.props.showTime ||
  262 + spinState !== nextState.spinState ||
  263 + JSON.stringify(nextState.selectTableData) !== JSON.stringify(this.state.selectTableData) ||
  264 + JSON.stringify(nextProps.showConfig) !== JSON.stringify(showConfig))
  265 + );
233 266 }
234 267  
235 268 componentWillUnmount() {
236 269 this.mounted = false;
237   - document.removeEventListener('mousedown', this.handleSelectClick);
  270 + document.removeEventListener("mousedown", this.handleSelectClick);
238 271 }
239 272  
240 273 onFocus = () => {
... ... @@ -242,8 +275,8 @@ export default class CommonComponent extends Component {
242 275 this.setState({ sActiveDisplay: false });
243 276 };
244 277  
245   - onBlur = (event) => {
246   - if (this.onExecInstructSet('blur')) return;
  278 + onBlur = event => {
  279 + if (this.onExecInstructSet("blur")) return;
247 280  
248 281 this.isDropdownFilter = false;
249 282 if (commonUtils.isNotEmptyStr(this.props.showConfig.sTableTitleSql) && this.props.showConfig.iVisCount > 1) {
... ... @@ -251,13 +284,17 @@ export default class CommonComponent extends Component {
251 284 searchPageNum: 1,
252 285 searchTotalPageCount: 1,
253 286 searchDropDownData: [],
254   - searchValue: '',
  287 + searchValue: "",
255 288 spinState: false,
256 289 sActiveDisplay: true,
257 290 });
258   - } else if (this.state.searchValue !== '' && this.props.showConfig.sDropDownType === 'sql' && commonUtils.isEmptyArr(this.props.showConfig.dropDownData)) {
  291 + } else if (
  292 + this.state.searchValue !== "" &&
  293 + this.props.showConfig.sDropDownType === "sql" &&
  294 + commonUtils.isEmptyArr(this.props.showConfig.dropDownData)
  295 + ) {
259 296 if (!this.props.showConfig.bCanInput) {
260   - this.handleSelectOptionEvent('');
  297 + this.handleSelectOptionEvent("");
261 298 }
262 299 this.setState({
263 300 searchPageNum: 1,
... ... @@ -273,7 +310,10 @@ export default class CommonComponent extends Component {
273 310 });
274 311 }
275 312 /* 若下拉配置了movesql 则离开时 调用下拉sql数据 */
276   - if (this.props.showConfig && (this.props.showConfig.sDropDownType === 'movesql' || commonUtils.isNotEmptyObject(this.props.showConfig.sButtonParam))) {
  313 + if (
  314 + this.props.showConfig &&
  315 + (this.props.showConfig.sDropDownType === "movesql" || commonUtils.isNotEmptyObject(this.props.showConfig.sButtonParam))
  316 + ) {
277 317 this.props.onDropDownBlur(this.props.name, this.props.showConfig.sName, this.props.record, this.props.showConfig);
278 318 }
279 319  
... ... @@ -282,40 +322,34 @@ export default class CommonComponent extends Component {
282 322 };
283 323  
284 324 onBlurText = (event, timeout = 0) => {
285   - if (this.onExecInstructSet('blur')) return;
  325 + if (this.onExecInstructSet("blur")) return;
286 326 const currentValue = event?.target?.value;
287 327 if (currentValue === this.lastValue) return;
288 328 setTimeout(() => {
289   - const {
290   - name,
291   - record,
292   - sBtnSendDialogConfigList,
293   - onToolBarBtnClick,
294   - } = this.props;
295   - if (name !== 'master') return;
  329 + const { name, record, sBtnSendDialogConfigList, onToolBarBtnClick } = this.props;
  330 + if (name !== "master") return;
296 331 if (commonUtils.isEmptyArr(sBtnSendDialogConfigList)) return;
297 332 const { sName } = this.props.showConfig;
298 333 if (!record[sName]) return;
299 334  
300 335 const { sActiveKey, sControlName } =
301   - sBtnSendDialogConfigList.find((item) => {
302   - const { sActiveKey = '' } = item;
303   - return sActiveKey.split(',').includes(`${name}.${sName}`);
304   - })
305   - || {};
306   - if (sControlName !== 'BtnSendDialog') {
  336 + sBtnSendDialogConfigList.find(item => {
  337 + const { sActiveKey = "" } = item;
  338 + return sActiveKey.split(",").includes(`${name}.${sName}`);
  339 + }) || {};
  340 + if (sControlName !== "BtnSendDialog") {
307 341 if (!sActiveKey) return;
308 342 this.lastValue = currentValue;
309 343 onToolBarBtnClick({ key: sControlName });
310 344 }
311 345 }, timeout);
312   - }
  346 + };
313 347  
314   - onExecInstructSet = (type) => {
  348 + onExecInstructSet = type => {
315 349 const { sInstruct: sInstructStr, showName, sOnChangeInstruct } = this.props.showConfig;
316 350 const sInstruct = commonUtils.convertStrToObj(sInstructStr, {});
317 351 let { [type]: instructType } = sInstruct;
318   - if (type === 'change') {
  352 + if (type === "change") {
319 353 const onChangeNew = commonUtils.convertStrToObj(sOnChangeInstruct, {});
320 354 instructType = onChangeNew[type];
321 355 }
... ... @@ -324,48 +358,46 @@ export default class CommonComponent extends Component {
324 358 this.props.onExecInstructSet({
325 359 type,
326 360 sInstruct: instructType,
327   - showName: `${showName}-${type === 'blur' ? '离焦' : '变化'}`,
  361 + showName: `${showName}-${type === "blur" ? "离焦" : "变化"}`,
328 362 });
329 363 } else {
330   - message.error('未定义调用指令集事件!');
  364 + message.error("未定义调用指令集事件!");
331 365 }
332 366 return true;
333 367 }
334 368 return false;
335   - }
  369 + };
336 370  
337 371 onCheckFields = () => {
338 372 // 手机号、邮箱校验等校验
339 373 // setTimeout(() => {
340   - const sDateFormatTypeList = ['phone', 'mobile', 'mail', 'postcode'];
  374 + const sDateFormatTypeList = ["phone", "mobile", "mail", "postcode"];
341 375 const { sName, showName, sDateFormat } = this.props.showConfig;
342 376 const { record } = this.props;
343   - const IncorrectFormat = commonFunc.showLocalMessage(this.props, 'IncorrectFormat', '格式不正确');
  377 + const IncorrectFormat = commonFunc.showLocalMessage(this.props, "IncorrectFormat", "格式不正确");
344 378 const value = record[sName];
345   - if (
346   - value !== undefined && value !== '' && sDateFormatTypeList.includes(sDateFormat)
347   - ) {
  379 + if (value !== undefined && value !== "" && sDateFormatTypeList.includes(sDateFormat)) {
348 380 let flag = false;
349   - if (sDateFormat === 'phone') {
  381 + if (sDateFormat === "phone") {
350 382 const reg = /^0\d{2,3}-\d{7,8}$/;
351 383 const reg1 = /^1[0-9]{10}$/;
352 384 const reg2 = /^0\d{2,3}-\d{7,8}-\d{1,8}$/;
353 385 if (!reg.test(value) && !reg1.test(value) && !reg2.test(value)) {
354 386 flag = true;
355 387 }
356   - } else if (sDateFormat === 'mobile') {
  388 + } else if (sDateFormat === "mobile") {
357 389 const reg = /^0\d{2,3}-\d{7,8}$/;
358 390 const reg1 = /^1[0-9]{10}$/;
359 391 const reg2 = /^0\d{2,3}-\d{7,8}-\d{1,8}$/;
360 392 if (!reg.test(value) && !reg1.test(value) && !reg2.test(value)) {
361 393 flag = true;
362 394 }
363   - } else if (sDateFormat === 'mail') {
  395 + } else if (sDateFormat === "mail") {
364 396 const reg = /^[a-zA-Z0-9]{1,20}@[a-zA-Z0-9]{1,5}\.[a-zA-Z0-9]{1,5}$/;
365 397 if (!reg.test(value)) {
366 398 flag = true;
367 399 }
368   - } else if (sDateFormat === 'postcode') {
  400 + } else if (sDateFormat === "postcode") {
369 401 const reg = /^[1-9][0-9]{5}$/;
370 402 if (!reg.test(value)) {
371 403 flag = true;
... ... @@ -373,26 +405,30 @@ export default class CommonComponent extends Component {
373 405 }
374 406  
375 407 if (flag) {
376   - this.props.onChange(this.props.name, 'verificationFailed', { verificationFailed: true, verificationFailedMsg: `【${showName}】【${sName}】${IncorrectFormat}!` }, this.props.sId, []);
  408 + this.props.onChange(
  409 + this.props.name,
  410 + "verificationFailed",
  411 + { verificationFailed: true, verificationFailedMsg: `【${showName}】【${sName}】${IncorrectFormat}!` },
  412 + this.props.sId,
  413 + []
  414 + );
377 415 message.warning(`【${showName}】【${sName}】${IncorrectFormat}!`);
378 416 } else if (record.verificationFailed) {
379 417 record.verificationFailed = undefined;
380 418 }
381 419 }
382 420 // }, timeout);
383   - }
  421 + };
384 422  
385 423 /** 下拉时看是否要重新获取数据 */
386   - onDropdownVisibleChange = (open) => {
387   - const {
388   - dropDownData, bNewRecord, pageNum: pageNumOld, totalPageCount: totalPageCountOld, searchValue, conditonValues,
389   - } = this.state;
  424 + onDropdownVisibleChange = open => {
  425 + const { dropDownData, bNewRecord, pageNum: pageNumOld, totalPageCount: totalPageCountOld, searchValue, conditonValues } = this.state;
390 426  
391 427 if (this.mounted && open) {
392 428 const conditonValuesNew = this.props.getSqlCondition(this.props.showConfig, this.props.name, this.props.record);
393 429 const pageNum = JSON.stringify(conditonValuesNew) !== JSON.stringify(conditonValues) ? 1 : pageNumOld === 0 ? 1 : pageNumOld;
394 430 const totalPageCount = conditonValuesNew !== conditonValues ? 1 : totalPageCountOld;
395   - if (pageNum === 1 && this.props.showConfig.sDropDownType === 'sql' && commonUtils.isEmptyArr(this.props.showConfig.dropDownData)) {
  431 + if (pageNum === 1 && this.props.showConfig.sDropDownType === "sql" && commonUtils.isEmptyArr(this.props.showConfig.dropDownData)) {
396 432 this.setState({ spinState: true });
397 433 this.getDropDownData(pageNum, totalPageCount, searchValue, this.dropDownCount);
398 434 }
... ... @@ -411,14 +447,17 @@ export default class CommonComponent extends Component {
411 447 }
412 448 this.props.onDropdownVisibleChange(open);
413 449 }
414   - }
  450 + };
415 451  
416 452 onDoubleClick = () => {
417 453 const sMemo = this.props.showConfig.sName;
418 454 const title = this.props.showConfig.showName;
419   - const bSParamValue = sMemo === 'sParamValue';
420   - if ((commonUtils.isNotEmptyObject(sMemo) && sMemo.indexOf('Memo') > -1) || (bSParamValue && !this.props.record.sDropDownData) ||
421   - (this.props.showConfig.sControlName && this.props.showConfig.sControlName.toLowerCase().indexOf('memo') > -1)) {
  455 + const bSParamValue = sMemo === "sParamValue";
  456 + if (
  457 + (commonUtils.isNotEmptyObject(sMemo) && sMemo.indexOf("Memo") > -1) ||
  458 + (bSParamValue && !this.props.record.sDropDownData) ||
  459 + (this.props.showConfig.sControlName && this.props.showConfig.sControlName.toLowerCase().indexOf("memo") > -1)
  460 + ) {
422 461 const sCurrMemoProps = {
423 462 title,
424 463 name: this.props.name,
... ... @@ -434,16 +473,20 @@ export default class CommonComponent extends Component {
434 473 } else if (this.props.onSaveState) {
435 474 this.props.onSaveState({ sCurrMemoProps });
436 475 }
437   - } else if (commonUtils.isNotEmptyObject(sMemo) && sMemo.indexOf('sName') > -1) { /* 计算方案 变量设置双击弹出 */
  476 + } else if (commonUtils.isNotEmptyObject(sMemo) && sMemo.indexOf("sName") > -1) {
  477 + /* 计算方案 变量设置双击弹出 */
438 478 this.props.onFieldDoubleClick(this.props.record, this.state.dataValue, this.props.showConfig, this.props.name);
439   - } else if (commonUtils.isNotEmptyObject(sMemo) && sMemo.indexOf('sValue') > -1) { /* 计算方案 变量设置双击弹出 */
  479 + } else if (commonUtils.isNotEmptyObject(sMemo) && sMemo.indexOf("sValue") > -1) {
  480 + /* 计算方案 变量设置双击弹出 */
440 481 this.props.onFieldDoubleClick(this.props.record, this.state.dataValue, this.props.showConfig, this.props.name);
441   - } else if (commonUtils.isNotEmptyObject(sMemo) && sMemo.indexOf('sAssignField') > -1) { /* 赋值字段 变量设置双击弹出 */
  482 + } else if (commonUtils.isNotEmptyObject(sMemo) && sMemo.indexOf("sAssignField") > -1) {
  483 + /* 赋值字段 变量设置双击弹出 */
442 484 this.props.onFieldDoubleClick(this.state.dataValue, this.props.showConfig, this.props.name);
443   - } else if (commonUtils.isNotEmptyObject(sMemo) && sMemo.indexOf('sInstruct') > -1) { /* 赋值字段 变量设置双击弹出 */
  485 + } else if (commonUtils.isNotEmptyObject(sMemo) && sMemo.indexOf("sInstruct") > -1) {
  486 + /* 赋值字段 变量设置双击弹出 */
444 487 this.props.onFieldDoubleClick(this.state.dataValue, this.props.showConfig, this.props.name);
445 488 }
446   - }
  489 + };
447 490  
448 491 onEditorClick = () => {
449 492 // if (this.props.enabled) {
... ... @@ -459,42 +502,44 @@ export default class CommonComponent extends Component {
459 502 config: this.props.showConfig,
460 503 };
461 504 this.props.onSaveState({ curEditorProps });
462   - }
  505 + };
463 506  
464   - onKeyUp = (e) => {
  507 + onKeyUp = e => {
465 508 if (this.props.onKeyUp) {
466 509 this.props.onKeyUp(e);
467 510 }
468   - }
  511 + };
469 512  
470   - onKeyDown = (e) => {
  513 + onKeyDown = e => {
471 514 // 如果输入的是字母数字或者中文
472 515 if (!this.state.bDropDownOpen && /^[a-zA-Z0-9\u4e00-\u9fa5]+$/.test(e.keyCode)) {
473 516 this.setState({ bDropDownOpen: true });
474 517 }
475   - if (e.ctrlKey && e.keyCode === 82) { /* CTRL+ALT+R 代替右击事件 */
  518 + if (e.ctrlKey && e.keyCode === 82) {
  519 + /* CTRL+ALT+R 代替右击事件 */
476 520 this.onContextMenu(e);
477   - } else if (e.key === 'F10') {
  521 + } else if (e.key === "F10") {
478 522 message.info(this.props.showConfig.sName);
479   - } else if (e.ctrlKey && (e.altKey || e.metaKey) && e.keyCode === 71) { /* CTRL+ALT+G F7 设置界面 */
  523 + } else if (e.ctrlKey && (e.altKey || e.metaKey) && e.keyCode === 71) {
  524 + /* CTRL+ALT+G F7 设置界面 */
480 525 const { sType } = this.props?.app?.userinfo || {};
481   - if (!['sysadmin'].includes(sType)) {
  526 + if (!["sysadmin"].includes(sType)) {
482 527 return;
483 528 }
484 529 if (commonUtils.isNotEmptyObject(this.props)) {
485   - const {
486   - name, tableConfig, record, configName,
487   - } = this.props;
  530 + const { name, tableConfig, record, configName } = this.props;
488 531 if (commonUtils.isNotEmptyObject(tableConfig)) {
489 532 const myTableConfig = JSON.parse(JSON.stringify(tableConfig));
490   - myTableConfig.sActiveId = '16411004790004762980820285096000';
  533 + myTableConfig.sActiveId = "16411004790004762980820285096000";
491 534 myTableConfig.sName = this.props.showConfig.sName;
492 535 const myTableConfigArr = [];
493 536 myTableConfigArr.push(myTableConfig);
494   - if (this.props.name === 'master') { /* 主表 */
495   - this.props.onViewClick(name, 'myTableConfig', record, 0, myTableConfigArr, configName);
496   - } else { /* 从表 */
497   - this.props.onViewClick(name, 'myTableConfig', record, 0, myTableConfigArr, configName);
  537 + if (this.props.name === "master") {
  538 + /* 主表 */
  539 + this.props.onViewClick(name, "myTableConfig", record, 0, myTableConfigArr, configName);
  540 + } else {
  541 + /* 从表 */
  542 + this.props.onViewClick(name, "myTableConfig", record, 0, myTableConfigArr, configName);
498 543 }
499 544 }
500 545 }
... ... @@ -502,28 +547,33 @@ export default class CommonComponent extends Component {
502 547 const { showConfig, record, name } = this.props;
503 548 this.props.onKeyDown(e, record, showConfig.sName, name);
504 549 }
505   - }
  550 + };
506 551  
507 552 /* CommonList列表onkeydown-F10处理 */
508   - onKeyDownDiv = (e) => {
  553 + onKeyDownDiv = e => {
509 554 if (this.props.onKeyDown) {
510 555 this.props.onKeyDown(e);
511 556 }
512   - if (e.key === 'F10') {
  557 + if (e.key === "F10") {
513 558 message.info(this.props.showConfig.sName);
514 559 } else if (e.ctrlKey && e.keyCode === 67) {
515   - console.log('复制成功!');
  560 + console.log("复制成功!");
516 561 } else if (e.ctrlKey && e.keyCode === 65) {
517   - console.log('全选成功!');
  562 + console.log("全选成功!");
518 563 } else {
519 564 e.preventDefault();
520 565 return false;
521 566 }
522   - }
  567 + };
523 568  
524 569 /* 单击右键全部更新,弹出窗选择后,更新此列所有数据 (只更新非只读字段) */
525   - onContextMenu = (e) => {
526   - if (this.state.enabled && commonUtils.isNotEmptyObject(this.props) && this.props.name !== 'master' && commonUtils.isNotEmptyObject(this.props.showConfig)) {
  570 + onContextMenu = e => {
  571 + if (
  572 + this.state.enabled &&
  573 + commonUtils.isNotEmptyObject(this.props) &&
  574 + this.props.name !== "master" &&
  575 + commonUtils.isNotEmptyObject(this.props.showConfig)
  576 + ) {
527 577 const { showConfig, name } = this.props;
528 578 const { bReadonly } = showConfig;
529 579 if (bReadonly) {
... ... @@ -535,47 +585,47 @@ export default class CommonComponent extends Component {
535 585 this.props.onContextMenu(e, record, showConfig, name);
536 586 }
537 587 }
538   - }
  588 + };
539 589  
540 590 /* 字段选择弹窗 */
541 591 onFieldPopupModal = (showConfig, name, open) => {
542 592 if (open !== undefined) {
543 593 this.props.onFieldPopupModal(showConfig, name);
544 594 }
545   - }
  595 + };
546 596 /** 获取selectprops对象 */
547 597 getSelectProps = () => {
548 598 /* 返回值声明 */
549 599 const obj = {
550 600 id: `${this.props.showConfig.sName}${this.props.record ? this.props.record.sId : commonUtils.createSid()}`,
551   - showSearch: true, /* 是否有查找功能 */
  601 + showSearch: true /* 是否有查找功能 */,
552 602 // disabled: !this.state.enabled /* 修改的时候传过来的数据 */
553 603 onSelect: () => {
554   - if (this.state.mode !== 'multiple') {
  604 + if (this.state.mode !== "multiple") {
555 605 this.setState({ bDropDownOpen: false, bNotFirstEnter: true });
556 606 }
557 607 },
558   - onChange: this.handleSelectOptionEvent, /* 选择触发事件 */
559   - filterOption: this.filterOption, /* 搜索时过滤对应的 option 属性 */
  608 + onChange: this.handleSelectOptionEvent /* 选择触发事件 */,
  609 + filterOption: this.filterOption /* 搜索时过滤对应的 option 属性 */,
560 610 onDropdownVisibleChange: this.onDropdownVisibleChange,
561 611 onPopupScroll: this.handlePopupScroll,
562 612 onSearch: this.handleSearch,
563   - notFoundContent: this.state.spinState ? <Spin /> : '暂无数据',
  613 + notFoundContent: this.state.spinState ? <Spin /> : "暂无数据",
564 614 // getPopupContainer: this.props.name === 'slave' || this.props.name === 'searchColumnShow' ? this.getPopupContainer : null,/*解决下拉框不随浏览器滚动问题 */
565 615 onFocus: this.onFocus,
566 616 // onBlur: this.onBlur,
567   - onBlur: (e) => {
  617 + onBlur: e => {
568 618 this.setState({ bDropDownOpen: false, bNotFirstEnter: false });
569 619 this.onBlur(e);
570 620 },
571 621 mode: this.state.mode,
572   - onPaste: (event) => {
  622 + onPaste: event => {
573 623 if (this.props.showConfig.bMultipleChoice) {
574   - const clipboardText = event.clipboardData.getData('text/plain').trim();
  624 + const clipboardText = event.clipboardData.getData("text/plain").trim();
575 625 if (clipboardText) {
576   - const { dataValue = '' } = this.state;
  626 + const { dataValue = "" } = this.state;
577 627 let dataValueNew = dataValue;
578   - if (dataValueNew === '') {
  628 + if (dataValueNew === "") {
579 629 dataValueNew += clipboardText;
580 630 } else {
581 631 dataValueNew += `,${clipboardText}`;
... ... @@ -586,22 +636,30 @@ export default class CommonComponent extends Component {
586 636 }
587 637 },
588 638 };
589   - if (this.props.showConfig.sDropDownType === 'sql') {
590   - obj.optionLabelProp = 'title';
  639 + if (this.props.showConfig.sDropDownType === "sql") {
  640 + obj.optionLabelProp = "title";
591 641 }
592 642 if (this.props.readOnly) {
593   - obj.readOnly = 'readOnly';
  643 + obj.readOnly = "readOnly";
594 644 } else {
595 645 obj.disabled = !this.state.enabled;
596 646 }
597 647 obj.placeholder = this.props.showConfig.placeholder;
598 648 /* 区分Oee设置字体与其他系统设置字体 */
599   - obj.dropdownStyle = commonUtils.isNotEmptyObject(location.pathname) && location.pathname.toLowerCase().indexOf('oee') > -1 ? { fontSize: '1.3rem' } : { fontSize: '12px' };
600   - obj.dropdownClassName = commonUtils.isNotEmptyObject(location.pathname) && location.pathname.toLowerCase().indexOf('oee') > -1 ? (location.pathname.toLowerCase().indexOf('loginoee') > -1 ? 'loginOeeDropDown' : 'oeeDropDown') : '';
  649 + obj.dropdownStyle =
  650 + commonUtils.isNotEmptyObject(location.pathname) && location.pathname.toLowerCase().indexOf("oee") > -1
  651 + ? { fontSize: "1.3rem" }
  652 + : { fontSize: "12px" };
  653 + obj.dropdownClassName =
  654 + commonUtils.isNotEmptyObject(location.pathname) && location.pathname.toLowerCase().indexOf("oee") > -1
  655 + ? location.pathname.toLowerCase().indexOf("loginoee") > -1
  656 + ? "loginOeeDropDown"
  657 + : "oeeDropDown"
  658 + : "";
601 659 /* 主表时才赋值value */
602 660 if (this.props.bTable) {
603 661 if (this.props.showConfig.bMultipleChoice) {
604   - obj.value = !commonUtils.isEmpty(this.state.dataValue) ? this.state.dataValue.split(',') : []; /* 数据值 */
  662 + obj.value = !commonUtils.isEmpty(this.state.dataValue) ? this.state.dataValue.split(",") : []; /* 数据值 */
605 663 } else {
606 664 obj.value = this.state.dataValue; /* 数据值 */
607 665 }
... ... @@ -611,7 +669,7 @@ export default class CommonComponent extends Component {
611 669 obj.dropdownMatchSelectWidth = false; /* true时 下拉菜单和选择器同宽。默认将设置 min-width,当值小于选择框宽度时会被忽略。 */
612 670 obj.dropdownStyle.width = this.props.showConfig.iDropWidth;
613 671 }
614   - obj.onInputKeyDown = (e) => {
  672 + obj.onInputKeyDown = e => {
615 673 const { bDropDownOpen, bNotFirstEnter } = this.state;
616 674 if (bDropDownOpen && [38, 40, 13].includes(e.keyCode)) {
617 675 // eslint-disable-next-line no-console
... ... @@ -637,25 +695,25 @@ export default class CommonComponent extends Component {
637 695 /* 返回值 */
638 696 return obj;
639 697 };
640   - getLocalizedString = (jsonStr, language) =>{
  698 + getLocalizedString = (jsonStr, language) => {
641 699 try {
642 700 const data = JSON.parse(jsonStr);
643   - return data[language] || '';
  701 + return data[language] || "";
644 702 } catch (e) {
645   - console.error('Error parsing JSON:', e);
646   - return '';
  703 + console.error("Error parsing JSON:", e);
  704 + return "";
647 705 }
648   - }
  706 + };
649 707 getSelectTableProps = () => {
650 708 const { currentPage, tempCurrentPage, searchValue } = this.state;
651   - const pageNum = searchValue === '' ? currentPage : tempCurrentPage;
  709 + const pageNum = searchValue === "" ? currentPage : tempCurrentPage;
652 710  
653 711 /* 返回值声明 */
654 712 const obj = {
655 713 id: `${this.props.showConfig.sName}${this.props.record ? this.props.record.sId : commonUtils.createSid()}`,
656 714 dropdownMatchSelectWidth: false,
657   - filterOption: this.filterOption, /* 搜索时过滤对应的 option 属性 */
658   - onDropdownVisibleChange: (open) => {
  715 + filterOption: this.filterOption /* 搜索时过滤对应的 option 属性 */,
  716 + onDropdownVisibleChange: open => {
659 717 this.onDropdownVisibleChange(open);
660 718 if (open === false) {
661 719 clearTimeout(this.blurtimer);
... ... @@ -672,41 +730,47 @@ export default class CommonComponent extends Component {
672 730 // onFocus: this.onFocus,
673 731 // onBlur: this.onBlur,
674 732 };
675   - if (this.props.showConfig.sDropDownType === 'sql') {
676   - obj.optionLabelProp = 'title';
  733 + if (this.props.showConfig.sDropDownType === "sql") {
  734 + obj.optionLabelProp = "title";
677 735 }
678 736 if (this.props.readOnly) {
679   - obj.readOnly = 'readOnly';
  737 + obj.readOnly = "readOnly";
680 738 } else {
681 739 obj.disabled = !this.state.enabled;
682 740 }
683 741 obj.placeholder = this.props.showConfig.placeholder;
684 742 /* 区分Oee设置字体与其他系统设置字体 */
685   - obj.dropdownStyle = commonUtils.isNotEmptyObject(location.pathname) && location.pathname.toLowerCase().indexOf('oee') > -1 ? { fontSize: '1.3rem' } : { fontSize: '12px' };
686   - obj.dropdownClassName = commonUtils.isNotEmptyObject(location.pathname) && location.pathname.toLowerCase().indexOf('oee') > -1 ? (location.pathname.toLowerCase().indexOf('loginoee') > -1 ? 'loginOeeDropDown' : 'oeeDropDown') : '';
  743 + obj.dropdownStyle =
  744 + commonUtils.isNotEmptyObject(location.pathname) && location.pathname.toLowerCase().indexOf("oee") > -1
  745 + ? { fontSize: "1.3rem" }
  746 + : { fontSize: "12px" };
  747 + obj.dropdownClassName =
  748 + commonUtils.isNotEmptyObject(location.pathname) && location.pathname.toLowerCase().indexOf("oee") > -1
  749 + ? location.pathname.toLowerCase().indexOf("loginoee") > -1
  750 + ? "loginOeeDropDown"
  751 + : "oeeDropDown"
  752 + : "";
687 753 /* 主表时才赋值value */
688 754 if (this.props.bTable) {
689   - obj.value = this.props.showConfig.bMultipleChoice && !commonUtils.isEmpty(this.state.dataValue) ? this.state.dataValue.split(',') : this.state.dataValue; /* 数据值 */
  755 + obj.value =
  756 + this.props.showConfig.bMultipleChoice && !commonUtils.isEmpty(this.state.dataValue)
  757 + ? this.state.dataValue.split(",")
  758 + : this.state.dataValue; /* 数据值 */
690 759 obj.className = this.props.costomClassName === undefined ? styles.editSelect : this.props.costomClassName;
691 760 }
692 761 if (this.props.showConfig.iDropWidth > 0) {
693 762 obj.dropdownMatchSelectWidth = false; /* true时 下拉菜单和选择器同宽。默认将设置 min-width,当值小于选择框宽度时会被忽略。 */
694 763 }
695   - obj.onInputKeyDown = (e) => {
696   - const {
697   - selectTableData = [],
698   - selectTableIndex = 0,
699   - bDropDownOpen,
700   - bNotFirstEnter,
701   - } = this.state;
  764 + obj.onInputKeyDown = e => {
  765 + const { selectTableData = [], selectTableIndex = 0, bDropDownOpen, bNotFirstEnter } = this.state;
702 766 const { keyCode } = e;
703 767  
704 768 try {
705 769 if (bDropDownOpen) {
706   - const oTBody = this.selectTableRef1.querySelector('.ant-table-body');
  770 + const oTBody = this.selectTableRef1.querySelector(".ant-table-body");
707 771 const { scrollTop } = oTBody;
708 772  
709   - const oTr = this.selectTableRef1.querySelector('.selected-record-row');
  773 + const oTr = this.selectTableRef1.querySelector(".selected-record-row");
710 774 const trRect = oTr.getBoundingClientRect();
711 775 const tbodyRect = oTBody.getBoundingClientRect();
712 776  
... ... @@ -771,7 +835,7 @@ export default class CommonComponent extends Component {
771 835 };
772 836 obj.onKeyUp = this.onKeyUp;
773 837 /* eslint-disable */
774   - obj.dropdownRender = (menu) => (
  838 + obj.dropdownRender = menu => (
775 839 <>
776 840 {/* <div className="select-search">
777 841 <Search allowClear onSearch={e => this.selectTableSearch(e)}/>
... ... @@ -779,7 +843,9 @@ export default class CommonComponent extends Component {
779 843 {menu}
780 844 <div
781 845 className="select-pagination"
782   - onMouseEnter={() => { this.bInPagination = true; }}
  846 + onMouseEnter={() => {
  847 + this.bInPagination = true;
  848 + }}
783 849 onMouseLeave={() => {
784 850 this.bInPagination = false;
785 851 if (this.selectTableRef) {
... ... @@ -787,50 +853,57 @@ export default class CommonComponent extends Component {
787 853 }
788 854 }}
789 855 >
790   - <Pagination onChange={e => this.selectTableChange(e)} showSizeChanger={false} current={pageNum} pageSize={20} size="small" total={this.state.totalCount} />
  856 + <Pagination
  857 + onChange={e => this.selectTableChange(e)}
  858 + showSizeChanger={false}
  859 + current={pageNum}
  860 + pageSize={20}
  861 + size="small"
  862 + total={this.state.totalCount}
  863 + />
791 864 <Space>
792 865 {this.props.showConfig.bFirstEmpty && (
793 866 <Button
794   - type='link'
  867 + type="link"
795 868 onClick={() => {
796   - document.querySelectorAll('.ant-select-dropdown').forEach(item => {
797   - item.classList.add('ant-select-dropdown-hidden');
  869 + document.querySelectorAll(".ant-select-dropdown").forEach(item => {
  870 + item.classList.add("ant-select-dropdown-hidden");
798 871 const displayBak = item.style.display;
799   - item.style.display = 'none';
  872 + item.style.display = "none";
800 873 setTimeout(() => {
801 874 item.style.display = displayBak;
802 875 }, 200);
803 876 });
804 877 this.setState({ tempCurrentPage: null });
805   - this.handleSelectOptionEvent('');
  878 + this.handleSelectOptionEvent("");
806 879 }}
807 880 >
808 881 清空
809   - </Button>)
810   - }
  882 + </Button>
  883 + )}
811 884 {this.props.showConfig.bNewRecord && (
812 885 <Button
813   - type='link'
  886 + type="link"
814 887 onClick={() => {
815   - document.querySelectorAll('.ant-select-dropdown').forEach(item => {
816   - item.classList.add('ant-select-dropdown-hidden');
  888 + document.querySelectorAll(".ant-select-dropdown").forEach(item => {
  889 + item.classList.add("ant-select-dropdown-hidden");
817 890 const displayBak = item.style.display;
818   - item.style.display = 'none';
  891 + item.style.display = "none";
819 892 setTimeout(() => {
820 893 item.style.display = displayBak;
821 894 }, 200);
822 895 });
823 896 this.setState({ tempCurrentPage: null });
824   - this.handleSelectOptionEvent('@#*000@');
  897 + this.handleSelectOptionEvent("@#*000@");
825 898 }}
826 899 >
827 900 NEW RECORD
828   - </Button>)
829   - }
  901 + </Button>
  902 + )}
830 903 </Space>
831 904 </div>
832 905 </>
833   - )
  906 + );
834 907 /* eslint-enable */
835 908 /* 返回值 */
836 909 return obj;
... ... @@ -838,38 +911,40 @@ export default class CommonComponent extends Component {
838 911  
839 912 getSelectTableOption = () => {
840 913 const { selectTableData, selectTableIndex = 0 } = this.state;
841   - const { showConfig , app} = this.props;
  914 + const { showConfig, app } = this.props;
842 915 const { userinfo } = app;
843 916 let { sTableTitleSql } = showConfig;
844 917 /* 根据用户配置语言 设置表格标题 */
845   - if(commonUtils.isJSON(sTableTitleSql) && sTableTitleSql.includes('Chinese')) {
  918 + if (commonUtils.isJSON(sTableTitleSql) && sTableTitleSql.includes("Chinese")) {
846 919 sTableTitleSql = this.getLocalizedString(sTableTitleSql, userinfo.sLanguage);
847 920 }
848   - const tempColumnArr = sTableTitleSql.split(',');
  921 + const tempColumnArr = sTableTitleSql.split(",");
849 922 let scrollX = 0;
850 923 const columns = tempColumnArr.map((item, index) => {
851   - const tempArr = item.split(':');
  924 + const tempArr = item.split(":");
852 925 const [value, title, columnWidth] = tempArr;
853 926 let width;
854   - if (!Number.isNaN(Number(columnWidth))) { // 如果配置了列宽
  927 + if (!Number.isNaN(Number(columnWidth))) {
  928 + // 如果配置了列宽
855 929 width = Number(columnWidth);
856   - } else { // 没有配置列宽,就根据字符数算宽度
  930 + } else {
  931 + // 没有配置列宽,就根据字符数算宽度
857 932 // 获取中文字数、非中文字数, 中文12px,其它8px
858 933 const titleStr = title;
859 934 const totalStringLen = titleStr.length;
860   - const otherStrLen = titleStr.replace(/[^\x00-\xff]/g, '').length; // eslint-disable-line
  935 + const otherStrLen = titleStr.replace(/[^\x00-\xff]/g, "").length; // eslint-disable-line
861 936 const chineseStrLen = totalStringLen - otherStrLen;
862   - const defaultWidth = (chineseStrLen * 12) + (otherStrLen * 8);
  937 + const defaultWidth = chineseStrLen * 12 + otherStrLen * 8;
863 938 const maxStrLen = selectTableData.reduce((res, pre) => {
864   - let tempValue = pre[value] !== undefined ? pre[value] : '';
865   - if (tempValue === '') {
  939 + let tempValue = pre[value] !== undefined ? pre[value] : "";
  940 + if (tempValue === "") {
866 941 return res;
867 942 }
868   - tempValue = typeof tempValue === 'string' ? tempValue : JSON.stringify(tempValue);
  943 + tempValue = typeof tempValue === "string" ? tempValue : JSON.stringify(tempValue);
869 944 const totalStringLen = tempValue.length;
870   - const otherStrLen = tempValue.replace(/[^\x00-\xff]/g, '').length; // eslint-disable-line
  945 + const otherStrLen = tempValue.replace(/[^\x00-\xff]/g, "").length; // eslint-disable-line
871 946 const chineseStrLen = totalStringLen - otherStrLen;
872   - const tempWidth = (chineseStrLen * 12) + (otherStrLen * 8);
  947 + const tempWidth = chineseStrLen * 12 + otherStrLen * 8;
873 948 return Math.max(tempWidth, res);
874 949 }, defaultWidth);
875 950 width = Math.min(maxStrLen + 8, 300);
... ... @@ -882,20 +957,29 @@ export default class CommonComponent extends Component {
882 957 dataIndex: value,
883 958 key: value,
884 959 width: index !== tempColumnArr.length - 1 ? width : undefined,
885   - render: (text) => {
886   - return (<Tooltip placement="topRight" title={text}>{text}</Tooltip>);
  960 + render: text => {
  961 + return (
  962 + <Tooltip placement="topRight" title={text}>
  963 + {text}
  964 + </Tooltip>
  965 + );
887 966 },
888 967 };
889 968 });
890 969  
891 970 return (
892 971 <Option key="" className="select-table-option">
893   - <div style={{ width: scrollX + 8, maxWidth: 'calc(100vw - 16px)', minWidth: '100%' }} ref={(ref) => { this.selectTableRef1 = ref; }}>
  972 + <div
  973 + style={{ width: scrollX + 8, maxWidth: "calc(100vw - 16px)", minWidth: "100%" }}
  974 + ref={ref => {
  975 + this.selectTableRef1 = ref;
  976 + }}
  977 + >
894 978 <Table
895 979 size="small"
896 980 className="select-table"
897 981 rowClassName={(_, index) => {
898   - return selectTableIndex === index ? 'selected-record-row' : '';
  982 + return selectTableIndex === index ? "selected-record-row" : "";
899 983 }}
900 984 rowKey="sId"
901 985 onRow={(record, index) => {
... ... @@ -921,8 +1005,9 @@ export default class CommonComponent extends Component {
921 1005 columns={columns}
922 1006 />
923 1007 </div>
924   - </Option>);
925   - }
  1008 + </Option>
  1009 + );
  1010 + };
926 1011  
927 1012 /** 获取complete对象 */
928 1013 getCompleteProps = () => {
... ... @@ -930,12 +1015,12 @@ export default class CommonComponent extends Component {
930 1015 const obj = {
931 1016 id: `${this.props.showConfig.sName}${this.props.record ? this.props.record.sId : commonUtils.createSid()}`,
932 1017 // disabled: !this.state.enabled /* 修改的时候传过来的数据 */
933   - onChange: this.handleCompleteInputEvent, /* 选择触发事件 */
934   - onSelect: (value) => {
  1018 + onChange: this.handleCompleteInputEvent /* 选择触发事件 */,
  1019 + onSelect: value => {
935 1020 this.setState({ bDropDownOpen: false, bNotFirstEnter: true });
936 1021 this.completeSelectFlag = true;
937   - if (value === '') {
938   - if (this.props.showConfig.sDropDownType === 'sql') {
  1022 + if (value === "") {
  1023 + if (this.props.showConfig.sDropDownType === "sql") {
939 1024 this.props.handleSqlDropDownNewRecord(this.props.showConfig, this.props.name);
940 1025 }
941 1026 } else if (this.state.dataValue === value) {
... ... @@ -956,40 +1041,56 @@ export default class CommonComponent extends Component {
956 1041 }
957 1042 }
958 1043 },
959   - filterOption: this.filterOption, /* 搜索时过滤对应的 option 属性 */
  1044 + filterOption: this.filterOption /* 搜索时过滤对应的 option 属性 */,
960 1045 onDropdownVisibleChange: this.onDropdownVisibleChange,
961 1046 onPopupScroll: this.handlePopupScroll,
962 1047 /* 区分Oee设置字体与其他系统设置字体 */
963   - dropdownClassName: commonUtils.isNotEmptyObject(location.pathname) && location.pathname.toLowerCase().indexOf('oee') > -1 ? (location.pathname.toLowerCase().indexOf('loginoee') > -1 ? 'loginOeeDropDown' : 'oeeDropDown') : '',
  1048 + dropdownClassName:
  1049 + commonUtils.isNotEmptyObject(location.pathname) && location.pathname.toLowerCase().indexOf("oee") > -1
  1050 + ? location.pathname.toLowerCase().indexOf("loginoee") > -1
  1051 + ? "loginOeeDropDown"
  1052 + : "oeeDropDown"
  1053 + : "",
964 1054 onSearch: this.handleSearch,
965   - notFoundContent: this.state.spinState ? <Spin /> : '暂无数据',
  1055 + notFoundContent: this.state.spinState ? <Spin /> : "暂无数据",
966 1056 onFocus: this.onFocus,
967   - onBlur: (e) => {
  1057 + onBlur: e => {
968 1058 this.setState({ bDropDownOpen: false, bNotFirstEnter: false });
969 1059 this.onBlur(e);
970 1060 },
971 1061 };
972 1062 if (this.props.readOnly) {
973   - obj.readOnly = 'readOnly';
  1063 + obj.readOnly = "readOnly";
974 1064 } else {
975 1065 obj.disabled = !this.state.enabled;
976 1066 }
977 1067 obj.placeholder = this.props.showConfig.placeholder;
978 1068 /* 区分Oee设置字体与其他系统设置字体 */
979   - obj.dropdownStyle = commonUtils.isNotEmptyObject(location.pathname) && location.pathname.toLowerCase().indexOf('oee') > -1 ? { fontSize: '1.3rem' } : { fontSize: '12px' };
  1069 + obj.dropdownStyle =
  1070 + commonUtils.isNotEmptyObject(location.pathname) && location.pathname.toLowerCase().indexOf("oee") > -1
  1071 + ? { fontSize: "1.3rem" }
  1072 + : { fontSize: "12px" };
980 1073 /* 主表时才赋值value */
981 1074 if (this.props.bTable) {
982   - obj.value = this.props.showConfig.bMultipleChoice && !commonUtils.isEmpty(this.state.dataValue) ? this.state.dataValue.split(',') : this.state.dataValue; /* 数据值 */
  1075 + obj.value =
  1076 + this.props.showConfig.bMultipleChoice && !commonUtils.isEmpty(this.state.dataValue)
  1077 + ? this.state.dataValue.split(",")
  1078 + : this.state.dataValue; /* 数据值 */
983 1079 obj.className = this.props.costomClassName === undefined ? styles.editSelect : this.props.costomClassName;
984 1080 }
985 1081 if (this.props.showConfig.iDropWidth > 0) {
986 1082 obj.dropdownMatchSelectWidth = false; /* true时 下拉菜单和选择器同宽。默认将设置 min-width,当值小于选择框宽度时会被忽略。 */
987 1083 obj.dropdownStyle.width = this.props.showConfig.iDropWidth;
988 1084 }
989   - if (typeof commonUtils.convertStrToNumber(this.max) === 'number' && commonUtils.convertStrToNumber(this.max) !== 0 && this.max.indexOf('.d') === -1 && this.max.indexOf('.i') === -1) {
  1085 + if (
  1086 + typeof commonUtils.convertStrToNumber(this.max) === "number" &&
  1087 + commonUtils.convertStrToNumber(this.max) !== 0 &&
  1088 + this.max.indexOf(".d") === -1 &&
  1089 + this.max.indexOf(".i") === -1
  1090 + ) {
990 1091 obj.maxLength = this.max; /* 最大长度 */
991 1092 }
992   - obj.onInputKeyDown = (e) => {
  1093 + obj.onInputKeyDown = e => {
993 1094 const { bDropDownOpen, bNotFirstEnter } = this.state;
994 1095 if (bDropDownOpen && [38, 40, 13].includes(e.keyCode)) {
995 1096 // eslint-disable-next-line no-console
... ... @@ -1012,43 +1113,44 @@ export default class CommonComponent extends Component {
1012 1113 };
1013 1114  
1014 1115 getSearchProps = () => {
1015   - let chooseTitle = '选择';
1016   - if(commonUtils.isNotEmptyObject(this.props.app) && commonUtils.isNotEmptyObject(this.props.app.commonConst)) {
1017   - chooseTitle = commonFunc.showMessage(this.props.app.commonConst, 'choose') ;
  1116 + let chooseTitle = "选择";
  1117 + if (commonUtils.isNotEmptyObject(this.props.app) && commonUtils.isNotEmptyObject(this.props.app.commonConst)) {
  1118 + chooseTitle = commonFunc.showMessage(this.props.app.commonConst, "choose");
1018 1119 }
1019 1120 const obj = {
1020 1121 onKeyDown: this.onKeyDown,
1021   - onChange: e => this.handleSelectOptionEvent(e.target.value), /* 数据改变回带到父组件 */
1022   - value: commonUtils.isUndefined(this.state.dataValue) ? chooseTitle : commonUtils.strUndefinedToEmpty(this.state.dataValue), /* 数据值 */
  1122 + onChange: e => this.handleSelectOptionEvent(e.target.value) /* 数据改变回带到父组件 */,
  1123 + value: commonUtils.isUndefined(this.state.dataValue) ? chooseTitle : commonUtils.strUndefinedToEmpty(this.state.dataValue) /* 数据值 */,
1023 1124 };
1024 1125 return obj;
1025   - }
  1126 + };
1026 1127 /** 获取optionValue对象 */
1027   - getOptionValues = (data) => {
  1128 + getOptionValues = data => {
1028 1129 /* 返回值声明 */
1029   - let res = '';
  1130 + let res = "";
1030 1131 /* 计数器 */
1031 1132 let count = 1;
1032 1133 /* 遍历每一条数据 */
1033   - const iVisCount = commonUtils.isEmpty(this.props.showConfig.iVisCount) || this.props.showConfig.iVisCount === 0 ? 1 : this.props.showConfig.iVisCount;
  1134 + const iVisCount =
  1135 + commonUtils.isEmpty(this.props.showConfig.iVisCount) || this.props.showConfig.iVisCount === 0 ? 1 : this.props.showConfig.iVisCount;
1034 1136 if (commonUtils.isNotEmptyStr(this.props.showConfig.sVisColumnName)) {
1035 1137 res = data[this.props.showConfig.sVisColumnName];
1036 1138 } else {
1037 1139 for (const key of Object.keys(data)) {
1038 1140 /* 这里主要是为了实现配置中控制下拉的展现列数 */
1039   - if (count <= iVisCount && key !== 'sId') {
1040   - if (res === '') {
  1141 + if (count <= iVisCount && key !== "sId") {
  1142 + if (res === "") {
1041 1143 res = data[key];
1042 1144 } else {
1043   - res = res.concat('-').concat(data[key]);
  1145 + res = res.concat("-").concat(data[key]);
1044 1146 }
1045 1147 count += 1;
1046 1148 }
1047 1149 }
1048 1150 }
1049 1151 // 如果res值为''时,下拉会显示value值,为了解决这种情况,返回' '
1050   - if (res === '') {
1051   - res = ' ';
  1152 + if (res === "") {
  1153 + res = " ";
1052 1154 }
1053 1155 /* 返回值 */
1054 1156 return res;
... ... @@ -1059,11 +1161,11 @@ export default class CommonComponent extends Component {
1059 1161 const { formId, app, enabled } = this.props;
1060 1162 const { token } = app;
1061 1163 return {
1062   - listType: 'picture-card',
1063   - className: 'avatar-uploader',
  1164 + listType: "picture-card",
  1165 + className: "avatar-uploader",
1064 1166 action: `${commonConfig.file_host}file/upload?sModelsId=${formId}&token=${token}&sUploadType=model`,
1065 1167 disabled: !enabled || false,
1066   - onChange: (info) => {
  1168 + onChange: info => {
1067 1169 const { file } = info;
1068 1170 if (file.response && file.response.code === 1) {
1069 1171 const sPicturePath = file.response.dataset.rows[0].savePathStr;
... ... @@ -1072,97 +1174,113 @@ export default class CommonComponent extends Component {
1072 1174 message.error(file.response.msg);
1073 1175 }
1074 1176 },
1075   - accept: 'image/*',
  1177 + accept: "image/*",
1076 1178 showUploadList: false,
1077 1179 };
1078 1180 };
1079 1181  
1080 1182 // 获取上传组件内容
1081 1183 getUploadContents = () => {
1082   - const fileName = commonUtils.isUndefined(this.state.dataValue) ? '' : commonUtils.strUndefinedToEmpty(this.state.dataValue);
  1184 + const fileName = commonUtils.isUndefined(this.state.dataValue) ? "" : commonUtils.strUndefinedToEmpty(this.state.dataValue);
1083 1185 const imageUrl = `${commonConfig.file_host}file/download?savePathStr=${fileName}&sModelsId=100&token=${this.props.token}`;
1084   - return fileName ?
1085   - (<Image
  1186 + return fileName ? (
  1187 + <Image
1086 1188 key={fileName}
1087 1189 src={imageUrl}
1088   - alt={fileName.split('/').pop()}
  1190 + alt={fileName.split("/").pop()}
1089 1191 style={{
1090   - width: '100%',
  1192 + width: "100%",
1091 1193 }}
1092 1194 preview={!this.props.enabled}
1093   - />) : (
1094   - <div>
1095   - <div style={{ marginTop: 8 }} >
1096   - 上传
1097   - </div>
1098   - </div>);
  1195 + />
  1196 + ) : (
  1197 + <div>
  1198 + <div style={{ marginTop: 8 }}>上传</div>
  1199 + </div>
  1200 + );
1099 1201 };
1100 1202  
1101 1203 // 获取上传图片右上角清空按钮属性
1102 1204 getUploadButtonProps = () => {
1103   - const fileName = commonUtils.isUndefined(this.state.dataValue) ? '' : commonUtils.strUndefinedToEmpty(this.state.dataValue);
  1205 + const fileName = commonUtils.isUndefined(this.state.dataValue) ? "" : commonUtils.strUndefinedToEmpty(this.state.dataValue);
1104 1206 return {
1105   - type: 'link',
  1207 + type: "link",
1106 1208 style: {
1107   - position: 'absolute',
  1209 + position: "absolute",
1108 1210 top: 0,
1109 1211 left: 75,
1110   - display: this.props.enabled && fileName ? '' : 'none',
  1212 + display: this.props.enabled && fileName ? "" : "none",
1111 1213 },
1112 1214 onClick: () => {
1113   - this.props.onChange(this.props.name, this.props.showConfig.sName, { [this.props.showConfig.sName]: '' }, this.props.sId, []);
  1215 + this.props.onChange(this.props.name, this.props.showConfig.sName, { [this.props.showConfig.sName]: "" }, this.props.sId, []);
1114 1216 },
1115 1217 };
1116 1218 };
1117 1219 /** 获取innerinput控件1 */
1118   - getInnerInput = (innerInputProps) => {
1119   - const {
1120   - sTableTitleSql, iVisCount, sName, sDateFormat,
1121   - } = this.props.showConfig;
1122   - let chooseTitle = '选择';
1123   - if(commonUtils.isNotEmptyObject(this.props.app) && commonUtils.isNotEmptyObject(this.props.app.commonConst)) {
1124   - chooseTitle = commonFunc.showMessage(this.props.app.commonConst, 'choose') ;
  1220 + getInnerInput = innerInputProps => {
  1221 + const { sTableTitleSql, iVisCount, sName, sDateFormat } = this.props.showConfig;
  1222 + let chooseTitle = "选择";
  1223 + if (commonUtils.isNotEmptyObject(this.props.app) && commonUtils.isNotEmptyObject(this.props.app.commonConst)) {
  1224 + chooseTitle = commonFunc.showMessage(this.props.app.commonConst, "choose");
1125 1225 }
1126 1226 if (commonUtils.isNotEmptyStr(sTableTitleSql) && iVisCount > 1) {
1127   - return <Select ref={(ref) => { this.selectTableRef = ref; }} {...this.getSelectTableProps()}>{this.getSelectTableOption()}</Select>;
  1227 + return (
  1228 + <Select
  1229 + ref={ref => {
  1230 + this.selectTableRef = ref;
  1231 + }}
  1232 + {...this.getSelectTableProps()}
  1233 + >
  1234 + {this.getSelectTableOption()}
  1235 + </Select>
  1236 + );
1128 1237 }
1129   - if (sName === 'sIcon') {
1130   - return (<><Upload {...this.getUploadProps()}>{this.getUploadContents()}</Upload><Button {...this.getUploadButtonProps()}>X</Button></>);
  1238 + if (sName === "sIcon") {
  1239 + return (
  1240 + <>
  1241 + <Upload {...this.getUploadProps()}>{this.getUploadContents()}</Upload>
  1242 + <Button {...this.getUploadButtonProps()}>X</Button>
  1243 + </>
  1244 + );
1131 1245 }
1132   - if (sName === 'sPackPath' || sName === 'sPackDetailPathUpLoad') {
  1246 + if (sName === "sPackPath" || sName === "sPackDetailPathUpLoad" || sName === "sSvgPath") {
  1247 + let imageUrls = "";
1133 1248 const uploadProps = {
1134   - listType: 'picture-card',
1135   - className: 'avatar-uploader',
  1249 + listType: "picture-card",
  1250 + className: "avatar-uploader",
1136 1251 action: `${commonConfig.server_host}file/uploadLogo?sLogoName=logo${sName}${this.props.record.sName}`,
1137 1252 disabled: !this.props.enabled,
1138   - onChange: (info) => {
  1253 + onChange: info => {
1139 1254 const { fileList } = info;
1140 1255 const file = fileList[fileList.length - 1];
1141 1256 const { status, response } = file;
1142   - if (status === 'done') {
  1257 + if (status === "done") {
1143 1258 if (response && response.code === 1) {
1144   - const imageUrlNew = `${commonConfig.server_host}file/downloadLogo?sLogoName=logo${sName}${this.props.record.sName}&date=${new Date().getTime()}`;
1145   - if (sName === 'sPackPath') {
1146   - this.props.onChange(this.props.name, sName, { sPackPath: imageUrlNew }, this.props.sId, []);
1147   - } else {
  1259 + const imageUrlNew = `${commonConfig.server_host}file/downloadLogo?sLogoName=logo${sName}${
  1260 + this.props.record.sName
  1261 + }&date=${new Date().getTime()}`;
  1262 + if (sName === "sPackPath") {
  1263 + this.props.onChange(this.props.name, sName, { sPackPath: imageUrlNew }, this.props.sId, []);
  1264 + } else if (sName === "sPackDetailPathUpLoad") {
1148 1265 this.props.onChange(this.props.name, sName, { sPackDetailPathUpLoad: imageUrlNew }, this.props.sId, []);
  1266 + } else {
  1267 + this.props.onChange(this.props.name, sName, { sSvgPath: imageUrlNew }, this.props.sId, []);
1149 1268 }
  1269 + imageUrls = imageUrlNew;
1150 1270 } else if (response && response.code === -1) {
1151 1271 message.error(response.msg);
1152 1272 }
1153 1273 }
1154 1274 },
1155   - accept: 'image/*',
  1275 + accept: "image/*",
1156 1276 showUploadList: false,
1157 1277 openFileDialogOnClick: this.props.enabled,
1158 1278 };
1159   - const imageUrl = sName === 'sPackPath' ? this.props.record.sPackPath : this.props.record.sPackDetailPathUpLoad;
  1279 + const imageUrl = sName === "sPackPath" ? this.props.record.sPackPath : sName === "sPackDetailPathUpLoad" ? this.props.record.sPackDetailPathUpLoad : this.props.record.sSvgPath;
1160 1280 return (
1161 1281 <div>
1162   - <Upload
1163   - {...uploadProps}
1164   - >
1165   - {imageUrl ? (
  1282 + <Upload {...uploadProps}>
  1283 + {imageUrl ? (
1166 1284 <Image
1167 1285 key={imageUrl}
1168 1286 src={imageUrl}
... ... @@ -1170,62 +1288,60 @@ export default class CommonComponent extends Component {
1170 1288 style={{ width: '100%' }}
1171 1289 preview={!this.props.enabled}
1172 1290 />
1173   - ) : (
1174   - <div>
1175   - <div
1176   - style={{ marginTop: 8 }}
1177   - >
1178   - 上传
1179   - </div>
1180   - </div>
1181   - )}
1182   - </Upload>
  1291 +
  1292 + ) : (
  1293 + <div>
  1294 + <div style={{ marginTop: 8 }}>上传</div>
  1295 + </div>
  1296 + )}
  1297 + </Upload>
  1298 + <Button {...this.getUploadButtonProps()}><DeleteOutlined /></Button>
1183 1299 </div>
1184 1300 );
1185 1301 }
1186   - if (sName === 'sPackDetailPath') {
  1302 + if (sName === "sPackDetailPath") {
1187 1303 const boxList = [];
1188 1304 const tables = [
1189   - { name: '盒型类别', value: this.props.record.sBoxType, type: null },
1190   - { name: '盒身', value: this.props.record.sBoxBody, type: this.props.record.sTypes },
1191   - { name: '盒长', value: this.props.record.dBoxLength, type: null },
1192   - { name: '盒宽', value: this.props.record.dBoxWidth, type: null },
1193   - { name: '盒高', value: this.props.record.dBoxHeight, type: null },
  1305 + { name: "盒型类别", value: this.props.record.sBoxType, type: null },
  1306 + { name: "盒身", value: this.props.record.sBoxBody, type: this.props.record.sTypes },
  1307 + { name: "盒长", value: this.props.record.dBoxLength, type: null },
  1308 + { name: "盒宽", value: this.props.record.dBoxWidth, type: null },
  1309 + { name: "盒高", value: this.props.record.dBoxHeight, type: null },
1194 1310 ];
1195 1311 const { slaveData = [] } = this.props;
1196 1312 const titleList1 = [
1197   - { name: '上方盒舌', value: 'dSFHS' },
1198   - { name: '盒底组件', value: 'dHDC' },
1199   - { name: '下方盒舌', value: 'dXFHS' },
1200   - { name: '左(上)插位组件', value: 'dZSCW' },
1201   - { name: '左贴边位', value: 'dZTBW' },
1202   - { name: '左(下)插位组件', value: 'dZXCW' },
1203   - { name: '右(上)插位组件', value: 'dYSCW' },
1204   - { name: '右贴边位', value: 'dYTBW' },
1205   - { name: '右(下)插位组件', value: 'dYXCW' },
  1313 + { name: "上方盒舌", value: "dSFHS" },
  1314 + { name: "盒底组件", value: "dHDC" },
  1315 + { name: "下方盒舌", value: "dXFHS" },
  1316 + { name: "左(上)插位组件", value: "dZSCW" },
  1317 + { name: "左贴边位", value: "dZTBW" },
  1318 + { name: "左(下)插位组件", value: "dZXCW" },
  1319 + { name: "右(上)插位组件", value: "dYSCW" },
  1320 + { name: "右贴边位", value: "dYTBW" },
  1321 + { name: "右(下)插位组件", value: "dYXCW" },
1206 1322 ];
1207   - slaveData.forEach((x) => {
  1323 + slaveData.forEach(x => {
1208 1324 boxList.push({
1209 1325 value: x.iValue,
1210   - sName: titleList1.find(item => item.value === x.sCode)?.name || '',
  1326 + sName: titleList1.find(item => item.value === x.sCode)?.name || "",
1211 1327 isEditable: true,
1212 1328 isSelect: false,
1213 1329 selectValue: null,
1214   - selectLabel: '',
  1330 + selectLabel: "",
1215 1331 selectImage: null,
1216 1332 type: x.sTypes || null,
1217 1333 show: true,
1218 1334 showName: x.sName, // 参数名称
1219 1335 });
1220 1336 });
1221   - tables.forEach((x) => {
  1337 + tables.forEach(x => {
1222 1338 boxList.push({
1223 1339 value: x.value,
1224 1340 sName: x.name,
1225 1341 isEditable: true,
1226 1342 isSelect: false,
1227 1343 selectValue: null,
1228   - selectLabel: '',
  1344 + selectLabel: "",
1229 1345 selectImage: null,
1230 1346 type: x.type || null,
1231 1347 show: true,
... ... @@ -1240,54 +1356,115 @@ export default class CommonComponent extends Component {
1240 1356 showNew: 1,
1241 1357 };
1242 1358 return (
1243   - <div style={{ width: '100px', height: '100px' }}>
  1359 + <div style={{ width: "100px", height: "100px" }}>
1244 1360 <SvgBox {...svgProps} />
1245 1361 </div>
1246 1362 );
1247 1363 }
1248   - if (this.props.showConfig.sName && this.props.showConfig.sName.toLowerCase().includes('fullmemo')) {
  1364 + if (this.props.showConfig.sName && this.props.showConfig.sName.toLowerCase().includes("fullmemo")) {
1249 1365 const row = commonUtils.isNotEmptyNumber(this.props.showConfig.iRowValue) ? this.props.showConfig.iRowValue : 1;
1250   - const minHeight = (row * 20) + 6 + 4 + 2;
1251   - return <div onDoubleClick={this.onEditorClick} style={{ minHeight }} className="braft-output-content" dangerouslySetInnerHTML={{ __html: this.state.dataValue }} />;
  1366 + const minHeight = row * 20 + 6 + 4 + 2;
  1367 + return (
  1368 + <div
  1369 + onDoubleClick={this.onEditorClick}
  1370 + style={{ minHeight }}
  1371 + className="braft-output-content"
  1372 + dangerouslySetInnerHTML={{ __html: this.state.dataValue }}
  1373 + />
  1374 + );
1252 1375 }
1253   - if ((this.props.showConfig.sDropDownType === 'sql' || this.props.showConfig.sDropDownType === 'const')
1254   - && (this.firstDataIndex === 'i' || this.firstDataIndex === 'd' || this.firstDataIndex === 's')) { /* 下拉选择框(数字和文本选择框才会下拉) */
1255   - if (this.props.showConfig.bCanInput) { /* 文本输入下拉框 */
  1376 + if (
  1377 + (this.props.showConfig.sDropDownType === "sql" || this.props.showConfig.sDropDownType === "const") &&
  1378 + (this.firstDataIndex === "i" || this.firstDataIndex === "d" || this.firstDataIndex === "s")
  1379 + ) {
  1380 + /* 下拉选择框(数字和文本选择框才会下拉) */
  1381 + if (this.props.showConfig.bCanInput) {
  1382 + /* 文本输入下拉框 */
1256 1383 const propsObj = { ...this.getCompleteProps() };
1257   - return <AutoCompleteA {...propsObj}>{this.getSelectOption('autoComplete')}</AutoCompleteA>;
1258   - } else { /* 普通下拉框 */
1259   - return <Select {...this.getSelectProps()} >{this.getSelectOption()}</Select>;
1260   - }
1261   - } else if (this.state.enabled && commonUtils.isNotEmptyObject(this.props.showConfig.sName) && this.props.showConfig.sDropDownType === 'popup') { /* 通用弹窗 */
1262   - return (<Search placeholder={chooseTitle} defaultValue={chooseTitle} {...this.getSearchProps()} onSearch={this.onFieldPopupModal.bind(this, this.props.showConfig, this.props.name)} />);
1263   - } else if (this.firstDataIndex === 'i' || this.firstDataIndex === 'd') { /* 数字输入框(整形i和浮点型d) */
1264   - return innerInputProps.readOnly ? <span onKeyDown={this.onKeyDown} suppressContentEditableWarning contentEditable="true"><InputNumberA {...innerInputProps} /></span> :
1265   - location.pathname.includes('quotationPackTableTree') && this.props.name === 'control' && this.props.showConfig.sName === 'dSinglePQty' ? <span style={{ position: 'relative' }}><InputNumberA {...innerInputProps} /><span onClick={this.handleViewClick} style={{ position: 'absolute', right: '2px' }}><EyeOutlined /></span></span> : <InputNumberA {...innerInputProps} style={{ width: '100%' }} />;
1266   - } else if (this.firstDataIndex === 'b') { /* 选择框(布尔类型b) */
  1384 + return <AutoCompleteA {...propsObj}>{this.getSelectOption("autoComplete")}</AutoCompleteA>;
  1385 + } else {
  1386 + /* 普通下拉框 */
  1387 + return <Select {...this.getSelectProps()}>{this.getSelectOption()}</Select>;
  1388 + }
  1389 + } else if (this.state.enabled && commonUtils.isNotEmptyObject(this.props.showConfig.sName) && this.props.showConfig.sDropDownType === "popup") {
  1390 + /* 通用弹窗 */
  1391 + return (
  1392 + <Search
  1393 + placeholder={chooseTitle}
  1394 + defaultValue={chooseTitle}
  1395 + {...this.getSearchProps()}
  1396 + onSearch={this.onFieldPopupModal.bind(this, this.props.showConfig, this.props.name)}
  1397 + />
  1398 + );
  1399 + } else if (this.firstDataIndex === "i" || this.firstDataIndex === "d") {
  1400 + /* 数字输入框(整形i和浮点型d) */
  1401 + return innerInputProps.readOnly ? (
  1402 + <span onKeyDown={this.onKeyDown} suppressContentEditableWarning contentEditable="true">
  1403 + <InputNumberA {...innerInputProps} />
  1404 + </span>
  1405 + ) : location.pathname.includes("quotationPackTableTree") && this.props.name === "control" && this.props.showConfig.sName === "dSinglePQty" ? (
  1406 + <span style={{ position: "relative" }}>
  1407 + <InputNumberA {...innerInputProps} />
  1408 + <span onClick={this.handleViewClick} style={{ position: "absolute", right: "2px" }}>
  1409 + <EyeOutlined />
  1410 + </span>
  1411 + </span>
  1412 + ) : (
  1413 + <InputNumberA {...innerInputProps} style={{ width: "100%" }} />
  1414 + );
  1415 + } else if (this.firstDataIndex === "b") {
  1416 + /* 选择框(布尔类型b) */
1267 1417 return <Checkbox {...innerInputProps}>{this.showName}</Checkbox>;
1268 1418 // return <span onKeyDown={this.onKeyDownDiv} suppressContentEditableWarning contentEditable="true"> <Checkbox {...innerInputProps}>{this.showName}</Checkbox></span>;
1269   - } else if (this.firstDataIndex === 'm' || sDateFormat === 'YYYY-MM' || sDateFormat === 'YYYYMM') { /* 月份选择框(月份类型m) */
1270   - return this.props.bTable ? <span onKeyDown={this.onKeyDown} suppressContentEditableWarning contentEditable="true"><MonthPicker {...innerInputProps} /></span> : <MonthPicker {...innerInputProps} />;
1271   - } else if (this.firstDataIndex === 't') { /* 时间选择框(时间类型t) */
1272   - if (['tYear'].includes(this.props.showConfig.sName)) {
1273   - innerInputProps.picker = 'year';
1274   - innerInputProps.format = 'YYYY';
  1419 + } else if (this.firstDataIndex === "m" || sDateFormat === "YYYY-MM" || sDateFormat === "YYYYMM") {
  1420 + /* 月份选择框(月份类型m) */
  1421 + return this.props.bTable ? (
  1422 + <span onKeyDown={this.onKeyDown} suppressContentEditableWarning contentEditable="true">
  1423 + <MonthPicker {...innerInputProps} />
  1424 + </span>
  1425 + ) : (
  1426 + <MonthPicker {...innerInputProps} />
  1427 + );
  1428 + } else if (this.firstDataIndex === "t") {
  1429 + /* 时间选择框(时间类型t) */
  1430 + if (["tYear"].includes(this.props.showConfig.sName)) {
  1431 + innerInputProps.picker = "year";
  1432 + innerInputProps.format = "YYYY";
1275 1433 innerInputProps.allowClear = false;
1276 1434 }
1277   - return this.props.bTable ? <span onKeyDown={this.onKeyDown} suppressContentEditableWarning contentEditable="true"><DatePicker {...innerInputProps} /></span> : <DatePicker {...innerInputProps} dropdownClassName="datePickerWrapper" />;
1278   - } else if (this.firstDataIndex === 'y') { /* 年份选择框(年份类型y) */
1279   - return this.props.bTable ? <span onKeyDown={this.onKeyDown} suppressContentEditableWarning contentEditable="true"><DatePicker {...innerInputProps} /></span> : <DatePicker {...innerInputProps} picker="year" />;
1280   - } else if (this.firstDataIndex === 'p') { /* 时间选择框(时间类型t) */
  1435 + return this.props.bTable ? (
  1436 + <span onKeyDown={this.onKeyDown} suppressContentEditableWarning contentEditable="true">
  1437 + <DatePicker {...innerInputProps} />
  1438 + </span>
  1439 + ) : (
  1440 + <DatePicker {...innerInputProps} dropdownClassName="datePickerWrapper" />
  1441 + );
  1442 + } else if (this.firstDataIndex === "y") {
  1443 + /* 年份选择框(年份类型y) */
  1444 + return this.props.bTable ? (
  1445 + <span onKeyDown={this.onKeyDown} suppressContentEditableWarning contentEditable="true">
  1446 + <DatePicker {...innerInputProps} />
  1447 + </span>
  1448 + ) : (
  1449 + <DatePicker {...innerInputProps} picker="year" />
  1450 + );
  1451 + } else if (this.firstDataIndex === "p") {
  1452 + /* 时间选择框(时间类型t) */
1281 1453 return <RangePicker {...innerInputProps} />;
1282   - } else if (this.firstDataIndex === 's') { /* 文本输入框(文本s) */
1283   - if (this.props.textArea) { /* 大文本输入框 */
  1454 + } else if (this.firstDataIndex === "s") {
  1455 + /* 文本输入框(文本s) */
  1456 + if (this.props.textArea) {
  1457 + /* 大文本输入框 */
1284 1458 return <TextAreaA {...innerInputProps} />;
1285   - } else { /* 普通文本输入框 */
  1459 + } else {
  1460 + /* 普通文本输入框 */
1286 1461 return <InputA {...innerInputProps} />;
1287 1462 }
1288   - } else if (this.firstDataIndex === 'c') { /* 地址联动框(联动下拉类型c) */
  1463 + } else if (this.firstDataIndex === "c") {
  1464 + /* 地址联动框(联动下拉类型c) */
1289 1465 return <Cascader {...innerInputProps} />;
1290   - } else { /* 文本输入框(默认类型) */
  1466 + } else {
  1467 + /* 文本输入框(默认类型) */
1291 1468 return <InputA {...innerInputProps} />;
1292 1469 }
1293 1470 };
... ... @@ -1300,15 +1477,19 @@ export default class CommonComponent extends Component {
1300 1477 const { sName } = this.props.showConfig;
1301 1478 const config = gdsconfigformslave.find(item => item.sControlName === `BtnPopup.${sName}`);
1302 1479 if (config && this.props.onFieldPopupModal) {
1303   - this.props.onFieldPopupModal(config, this.props.name, 'CommonListSelect');
  1480 + this.props.onFieldPopupModal(config, this.props.name, "CommonListSelect");
1304 1481 }
1305 1482 },
1306 1483 };
1307   - return <Button {...props}><span style={{ fontWeight: 'bold' }}>...</span></Button>;
1308   - }
  1484 + return (
  1485 + <Button {...props}>
  1486 + <span style={{ fontWeight: "bold" }}>...</span>
  1487 + </Button>
  1488 + );
  1489 + };
1309 1490  
1310 1491 // 获取innerinput控件后面的按钮(自定义)
1311   - getInnerButtonCostom = (showConfig) => {
  1492 + getInnerButtonCostom = showConfig => {
1312 1493 const { name, sysEnabled } = this.props;
1313 1494 const { showName } = showConfig;
1314 1495 let disabled = this.props.showConfig?.buttonbReadonly;
... ... @@ -1316,7 +1497,7 @@ export default class CommonComponent extends Component {
1316 1497 disabled = !sysEnabled;
1317 1498 }
1318 1499 const props = {
1319   - type: 'primary',
  1500 + type: "primary",
1320 1501 disabled,
1321 1502 loading: this.state.buttonLoading,
1322 1503 onClick: () => {
... ... @@ -1326,10 +1507,10 @@ export default class CommonComponent extends Component {
1326 1507 },
1327 1508 };
1328 1509 return <Button {...props}>{showName}</Button>;
1329   - }
  1510 + };
1330 1511  
1331 1512 /** 获取selectOption对象 */
1332   - getSelectOption = (type) => {
  1513 + getSelectOption = type => {
1333 1514 /* 返回值声明 */
1334 1515 const options = [];
1335 1516 /* 执行条件 */
... ... @@ -1341,40 +1522,52 @@ export default class CommonComponent extends Component {
1341 1522 if (commonUtils.isNotEmptyObject(each)) {
1342 1523 /* 拼接optoin对象 */
1343 1524 let keyValue = !commonUtils.isEmpty(each.sSlaveId) ? each.sSlaveId : each.sId;
1344   - if (this.firstDataIndex === 'i') {
  1525 + if (this.firstDataIndex === "i") {
1345 1526 keyValue = parseInt(keyValue, 0);
1346   - } else if (this.firstDataIndex === 'd') {
  1527 + } else if (this.firstDataIndex === "d") {
1347 1528 keyValue = parseFloat(keyValue);
1348 1529 }
1349   - let res = '';
  1530 + let res = "";
1350 1531 if (commonUtils.isNotEmptyStr(this.props.showConfig.sVisColumnName)) {
1351 1532 res = each[this.props.showConfig.sVisColumnName];
1352 1533 } else {
1353   - res = Object.keys(each).length > 0 ? each[Object.keys(each)[0]] : '';
  1534 + res = Object.keys(each).length > 0 ? each[Object.keys(each)[0]] : "";
1354 1535 }
1355   - keyValue = commonUtils.isEmpty(keyValue) ? '' : keyValue;
1356   - if (type === 'autoComplete') {
  1536 + keyValue = commonUtils.isEmpty(keyValue) ? "" : keyValue;
  1537 + if (type === "autoComplete") {
1357 1538 // 为autoComplete作特殊处理
1358   - const option = this.props.showConfig.bCanInput ?
1359   - (<Option key={keyValue.toString()} label={res} value={res} title={res}>{this.getOptionValues(each)}</Option>) :
1360   - (<Option key={keyValue} value={res} label={res} title={res}>{this.getOptionValues(each)}</Option>);
  1539 + const option = this.props.showConfig.bCanInput ? (
  1540 + <Option key={keyValue.toString()} label={res} value={res} title={res}>
  1541 + {this.getOptionValues(each)}
  1542 + </Option>
  1543 + ) : (
  1544 + <Option key={keyValue} value={res} label={res} title={res}>
  1545 + {this.getOptionValues(each)}
  1546 + </Option>
  1547 + );
1361 1548 /* 返回值赋值s */
1362 1549 options.push(option);
1363 1550 } else {
1364   - const option = this.props.showConfig.bCanInput ?
1365   - (<Option key={keyValue.toString()} label={res} value={keyValue.toString()} title={res}>{this.getOptionValues(each)}</Option>) :
1366   - (<Option key={keyValue} value={keyValue} label={res} title={res}>{this.getOptionValues(each)}</Option>);
  1551 + const option = this.props.showConfig.bCanInput ? (
  1552 + <Option key={keyValue.toString()} label={res} value={keyValue.toString()} title={res}>
  1553 + {this.getOptionValues(each)}
  1554 + </Option>
  1555 + ) : (
  1556 + <Option key={keyValue} value={keyValue} label={res} title={res}>
  1557 + {this.getOptionValues(each)}
  1558 + </Option>
  1559 + );
1367 1560 /* 返回值赋值 */
1368 1561 options.push(option);
1369 1562 }
1370 1563 }
1371 1564 }
1372 1565 }
1373   - if (this.state.searchValue === '') {
  1566 + if (this.state.searchValue === "") {
1374 1567 /* 下拉空处理 */
1375 1568 if (this.props.showConfig.bFirstEmpty) {
1376 1569 // 重构修改 options.unshift(<Option className="dropdown-empty" key=" " value="=+@" />);
1377   - if (type === 'autoComplete') {
  1570 + if (type === "autoComplete") {
1378 1571 // options.unshift(<Option className="dropdown-empty" key=" " value="=+@" />);/* 解决销售订单-产品名称,五笔输入法输入不支持直接输入中文 */
1379 1572 } else {
1380 1573 options.unshift(<Option className="dropdown-empty" key=" " value="" />);
... ... @@ -1383,10 +1576,14 @@ export default class CommonComponent extends Component {
1383 1576 /* 下拉新增处理 */
1384 1577 if (this.props.showConfig.bNewRecord) {
1385 1578 // 重构修改 options.unshift(<Option key="@#*000@" value="">NEW RECORD</Option>);
1386   - if (type === 'autoComplete') {
  1579 + if (type === "autoComplete") {
1387 1580 options.unshift(<Option value="">NEW RECORD</Option>);
1388 1581 } else {
1389   - options.unshift(<Option key="@#*000@" title="">NEW RECORD</Option>);
  1582 + options.unshift(
  1583 + <Option key="@#*000@" title="">
  1584 + NEW RECORD
  1585 + </Option>
  1586 + );
1390 1587 }
1391 1588 }
1392 1589 }
... ... @@ -1395,13 +1592,13 @@ export default class CommonComponent extends Component {
1395 1592 };
1396 1593  
1397 1594 /* 获取sqlCondition对象 */
1398   - getFloatPrice = (floatNum) => {
  1595 + getFloatPrice = floatNum => {
1399 1596 /* 返回值声明 */
1400   - let floatPrice = '';
  1597 + let floatPrice = "";
1401 1598 /* 返回值赋值 */
1402 1599 if (!commonUtils.isUndefined(floatNum)) {
1403 1600 for (let i = 0; i < floatNum; i += 1) {
1404   - floatPrice += '\\d';
  1601 + floatPrice += "\\d";
1405 1602 }
1406 1603 }
1407 1604 /* 返回值 */
... ... @@ -1417,15 +1614,23 @@ export default class CommonComponent extends Component {
1417 1614 1、判断是否直接传下拉,如果传了就直接用,并存储到store中去
1418 1615 2、没有传看 getStoreDropDownData有没有存储,存储后直接取用
1419 1616 3、 没有存储时直接调用后台SQL语句去下拉 */
1420   - if (this.props.showConfig.sDropDownType === 'sql') { /* 数据下拉 */
  1617 + if (this.props.showConfig.sDropDownType === "sql") {
  1618 + /* 数据下拉 */
1421 1619 const { dropDownData: dropDownDataOld, searchDropDownData: searchDropDownDataOld } = this.state;
1422 1620 if (pageNum <= totalPageCount) {
1423   - const sqlDropDownData = await this.props.getSqlDropDownData(this.props.formId, this.props.name, this.props.showConfig, this.props.record, searchValue, pageNum);
  1621 + const sqlDropDownData = await this.props.getSqlDropDownData(
  1622 + this.props.formId,
  1623 + this.props.name,
  1624 + this.props.showConfig,
  1625 + this.props.record,
  1626 + searchValue,
  1627 + pageNum
  1628 + );
1424 1629 if (dropDownCount !== undefined && dropDownCount < this.dropDownCount) {
1425 1630 return;
1426 1631 }
1427 1632 if (this.mounted) {
1428   - if (searchValue !== '') {
  1633 + if (searchValue !== "") {
1429 1634 const dropDownData = [];
1430 1635 if (commonUtils.isNotEmptyArr(sqlDropDownData.dropDownData)) {
1431 1636 if (pageNum !== 1) {
... ... @@ -1457,7 +1662,7 @@ export default class CommonComponent extends Component {
1457 1662 totalPageCount: sqlDropDownData.totalPageCount,
1458 1663 pageNum: sqlDropDownData.currentPageNo,
1459 1664 spinState: false,
1460   - searchValue: '',
  1665 + searchValue: "",
1461 1666 totalCount: sqlDropDownData.totalCount,
1462 1667 selectTableData: sqlDropDownData.dropDownData,
1463 1668 });
... ... @@ -1470,9 +1675,11 @@ export default class CommonComponent extends Component {
1470 1675 /** 获取innerinput控件参数 */
1471 1676 getInnerInputProps = () => {
1472 1677 /* 主表和从表的innerinputprops对象有区别 */
1473   - if (!this.props.bTable) { /* 主表 */
  1678 + if (!this.props.bTable) {
  1679 + /* 主表 */
1474 1680 return this.getInnerInputPropsMaster();
1475   - } else { /* 主从表 */
  1681 + } else {
  1682 + /* 主从表 */
1476 1683 return this.getInnerInputPropsSlave();
1477 1684 }
1478 1685 };
... ... @@ -1481,16 +1688,21 @@ export default class CommonComponent extends Component {
1481 1688 getInnerInputPropsSlave = () => {
1482 1689 /* 返回值声明 */
1483 1690 let obj = {};
1484   - if (this.firstDataIndex === 'i' || this.firstDataIndex === 'd') { /* 数字输入框(整形i和浮点型d) */
  1691 + if (this.firstDataIndex === "i" || this.firstDataIndex === "d") {
  1692 + /* 数字输入框(整形i和浮点型d) */
1485 1693 obj = this.getNumberInnerInputPropsSlave();
1486   - } else if (this.firstDataIndex === 'b') { /* 选择框(布尔类型b) */
  1694 + } else if (this.firstDataIndex === "b") {
  1695 + /* 选择框(布尔类型b) */
1487 1696 obj = this.getBooleanInnerInputPropsSlave();
1488   - } else if (this.firstDataIndex === 't' || this.firstDataIndex === 'p' || this.firstDataIndex === 'm' || this.firstDataIndex === 'y') { /* 时间选择框(时间类型t) */
  1697 + } else if (this.firstDataIndex === "t" || this.firstDataIndex === "p" || this.firstDataIndex === "m" || this.firstDataIndex === "y") {
  1698 + /* 时间选择框(时间类型t) */
1489 1699 obj = this.getDateInnerInputPropsSlave();
1490   - } else if (this.firstDataIndex === 's') { /* 文本输入框(文本s) */
  1700 + } else if (this.firstDataIndex === "s") {
  1701 + /* 文本输入框(文本s) */
1491 1702 obj = this.getTextInnerInputPropsSlave();
1492 1703 obj.onDoubleClick = this.onDoubleClick;
1493   - } else if (this.firstDataIndex === 'c') { /* 地址联动框(联动下拉类型c) */
  1704 + } else if (this.firstDataIndex === "c") {
  1705 + /* 地址联动框(联动下拉类型c) */
1494 1706 obj = this.getAddressInnerInputPropsSlave();
1495 1707 }
1496 1708 obj.onKeyDown = this.onKeyDown;
... ... @@ -1498,7 +1710,7 @@ export default class CommonComponent extends Component {
1498 1710 obj.onBlur = this.onBlur;
1499 1711 obj.onMouseEnter = this.onFocus;
1500 1712 obj.id = `${this.props.showConfig.sName}${this.props.record ? this.props.record.sId : commonUtils.createSid()}`; /* 所有从表组件添加id */
1501   - obj.placeholder = this.props.showConfig.placeholder || '';
  1713 + obj.placeholder = this.props.showConfig.placeholder || "";
1502 1714 /* 返回值 */
1503 1715 return obj;
1504 1716 };
... ... @@ -1508,15 +1720,18 @@ export default class CommonComponent extends Component {
1508 1720 /* 返回值 */
1509 1721 const obj = {
1510 1722 // disabled: !this.state.enabled, /* 是否可编辑 */
1511   - placeholder: '请选择省市区', /* 预期值的提示信息 */
1512   - options: this.getProvinceCityAreaData(), /* 数据 */
1513   - changeOnSelect: true, /* 对每个选择值进行更改 */
1514   - onChange: this.handleSelectOptionEvent, /* 数据改变回带到父组件 */
1515   - value: commonUtils.isUndefined(this.state.dataValue) ? [] : typeof this.state.dataValue === 'string' ?
1516   - this.state.dataValue.split(',') : commonUtils.convertUndefinedToEmptyArr(this.state.dataValue), /* 数据值 */
  1723 + placeholder: "请选择省市区" /* 预期值的提示信息 */,
  1724 + options: this.getProvinceCityAreaData() /* 数据 */,
  1725 + changeOnSelect: true /* 对每个选择值进行更改 */,
  1726 + onChange: this.handleSelectOptionEvent /* 数据改变回带到父组件 */,
  1727 + value: commonUtils.isUndefined(this.state.dataValue)
  1728 + ? []
  1729 + : typeof this.state.dataValue === "string"
  1730 + ? this.state.dataValue.split(",")
  1731 + : commonUtils.convertUndefinedToEmptyArr(this.state.dataValue) /* 数据值 */,
1517 1732 };
1518 1733 if (this.props.readOnly) {
1519   - obj.readOnly = 'readOnly';
  1734 + obj.readOnly = "readOnly";
1520 1735 } else {
1521 1736 obj.disabled = !this.state.enabled;
1522 1737 }
... ... @@ -1527,32 +1742,51 @@ export default class CommonComponent extends Component {
1527 1742 /* 获取文本innerinputprops对象(从) */
1528 1743 getTextInnerInputPropsSlave = () => {
1529 1744 /* 返回值声明 */
1530   - const bShowSuffix = this.props.showConfig.sName === 'sSaveProName' || this.props.showConfig.sName === 'sDeleteProName' || this.props.showConfig.sName === 'sSaveProNameBefore' || this.props.showConfig.sName === 'sProcName' || this.props.showConfig.sName === 'sButtonParam'; /* 是否展示后缀图标 */
1531   - const bShowArrow = this.props.showConfig.sName === 'dNeedAuxiliaryQty';
  1745 + const bShowSuffix =
  1746 + this.props.showConfig.sName === "sSaveProName" ||
  1747 + this.props.showConfig.sName === "sDeleteProName" ||
  1748 + this.props.showConfig.sName === "sSaveProNameBefore" ||
  1749 + this.props.showConfig.sName === "sProcName" ||
  1750 + this.props.showConfig.sName === "sButtonParam"; /* 是否展示后缀图标 */
  1751 + const bShowArrow = this.props.showConfig.sName === "dNeedAuxiliaryQty";
1532 1752 const obj = {
1533 1753 // disabled: !this.state.enabled, /* 是否可编辑 */
1534   - id: `${this.props.showConfig.sName}${commonUtils.createSid()}`, /* 虚拟数字键盘使用id获取光标 */
1535   - onChange: e => this.handleSelectOptionEvent(e), /* 数据改变回带到父组件 */
1536   - value: commonUtils.isUndefined(this.state.dataValue) ? '' : commonUtils.strUndefinedToEmpty(this.state.dataValue), /* 数据值 */
  1754 + id: `${this.props.showConfig.sName}${commonUtils.createSid()}` /* 虚拟数字键盘使用id获取光标 */,
  1755 + onChange: e => this.handleSelectOptionEvent(e) /* 数据改变回带到父组件 */,
  1756 + value: commonUtils.isUndefined(this.state.dataValue) ? "" : commonUtils.strUndefinedToEmpty(this.state.dataValue) /* 数据值 */,
1537 1757 // eslint-disable-next-line no-return-assign
1538   - ref: ref => this[this.props.showConfig.sName] = ref, /* 虚拟数字键盘获得光标需用 */
1539   - onClick: this.handleInputOnClick.bind(this, this.props.showConfig.sName), /* 虚拟数字键盘 第二个参数必须id */
1540   - suffix: bShowSuffix ? <span style={{ width: '8px' }} onClick={this.handleOpenWin}><EyeOutlined style={{ color: 'rgba(0,0,0,.85)' }} /></span> :
1541   - (bShowArrow ? <span style={{ width: '8px' }} onClick={this.handleRightArrow}><RightOutlined style={{ color: 'rgba(0,0,0,.85)' }} /></span> : ''),
  1758 + ref: ref => (this[this.props.showConfig.sName] = ref) /* 虚拟数字键盘获得光标需用 */,
  1759 + onClick: this.handleInputOnClick.bind(this, this.props.showConfig.sName) /* 虚拟数字键盘 第二个参数必须id */,
  1760 + suffix: bShowSuffix ? (
  1761 + <span style={{ width: "8px" }} onClick={this.handleOpenWin}>
  1762 + <EyeOutlined style={{ color: "rgba(0,0,0,.85)" }} />
  1763 + </span>
  1764 + ) : bShowArrow ? (
  1765 + <span style={{ width: "8px" }} onClick={this.handleRightArrow}>
  1766 + <RightOutlined style={{ color: "rgba(0,0,0,.85)" }} />
  1767 + </span>
  1768 + ) : (
  1769 + ""
  1770 + ),
1542 1771 rows: commonUtils.isNotEmptyNumber(this.props.showConfig.iRowValue) ? this.props.showConfig.iRowValue : 1,
1543 1772 };
1544 1773 if (this.props.readOnly) {
1545   - obj.readOnly = 'readOnly';
  1774 + obj.readOnly = "readOnly";
1546 1775 } else {
1547 1776 obj.disabled = !this.state.enabled;
1548 1777 }
1549 1778 /* 最大值最小值 */
1550   - if (typeof commonUtils.convertStrToNumber(this.max) === 'number' && commonUtils.convertStrToNumber(this.max) !== 0 && this.max.indexOf('.d') === -1 && this.max.indexOf('.i') === -1) {
  1779 + if (
  1780 + typeof commonUtils.convertStrToNumber(this.max) === "number" &&
  1781 + commonUtils.convertStrToNumber(this.max) !== 0 &&
  1782 + this.max.indexOf(".d") === -1 &&
  1783 + this.max.indexOf(".i") === -1
  1784 + ) {
1551 1785 obj.maxLength = this.max; /* 最大长度 */
1552 1786 obj.title = obj.value;
1553 1787 }
1554 1788 obj.placeholder = this.props.showConfig.placeholder;
1555   - obj.autocomplete = 'new-password';
  1789 + obj.autocomplete = "new-password";
1556 1790 /* 返回值 */
1557 1791 return obj;
1558 1792 };
... ... @@ -1561,10 +1795,10 @@ export default class CommonComponent extends Component {
1561 1795 getDateInnerInputPropsSlave = () => {
1562 1796 let { sDateFormat } = this.props.showConfig;
1563 1797 if (commonUtils.isEmptyStr(sDateFormat)) {
1564   - if (this.firstDataIndex === 'm') {
1565   - sDateFormat = 'YYYY-MM';
1566   - } else if (this.firstDataIndex === 'y') {
1567   - sDateFormat = 'YYYY';
  1798 + if (this.firstDataIndex === "m") {
  1799 + sDateFormat = "YYYY-MM";
  1800 + } else if (this.firstDataIndex === "y") {
  1801 + sDateFormat = "YYYY";
1568 1802 } else {
1569 1803 sDateFormat = this.props.getDateFormat();
1570 1804 }
... ... @@ -1578,15 +1812,15 @@ export default class CommonComponent extends Component {
1578 1812 }
1579 1813 /* 返回值声明 */
1580 1814 const obj = {
1581   - placeholder: '', /* 时间的提示信息 */
1582   - disabled: !this.state.enabled, /* 是否可编辑 */
1583   - onChange: this.handleSelectOptionEvent, /* 数据改变回带到父组件 */
  1815 + placeholder: "" /* 时间的提示信息 */,
  1816 + disabled: !this.state.enabled /* 是否可编辑 */,
  1817 + onChange: this.handleSelectOptionEvent /* 数据改变回带到父组件 */,
1584 1818 format: sDateFormat, // this.props.getDateFormat(), /* 格式化规则 */
1585   - disabledDate: this.getDataMaxAndMin, /* 不可选日期 */
  1819 + disabledDate: this.getDataMaxAndMin /* 不可选日期 */,
1586 1820 showTime: showtimeFormat,
1587   - style: { width: '100%' }, /* 样式 */
  1821 + style: { width: "100%" } /* 样式 */,
1588 1822 onBlur: () => {
1589   - this.onExecInstructSet('blur');
  1823 + this.onExecInstructSet("blur");
1590 1824 },
1591 1825 };
1592 1826 // if (this.props.readOnly) {
... ... @@ -1607,9 +1841,9 @@ export default class CommonComponent extends Component {
1607 1841 getBooleanInnerInputPropsSlave = () => {
1608 1842 /* 返回值声明 */
1609 1843 const obj = {
1610   - disabled: !this.state.enabled, /* 是否可编辑 */
1611   - onChange: this.handleSelectOptionEvent, /* 数据改变回带到父组件 */
1612   - checked: commonUtils.isUndefined(this.state.dataValue) ? false : commonUtils.converNumStrToBoolean(this.state.dataValue), /* 是否选中 */
  1844 + disabled: !this.state.enabled /* 是否可编辑 */,
  1845 + onChange: this.handleSelectOptionEvent /* 数据改变回带到父组件 */,
  1846 + checked: commonUtils.isUndefined(this.state.dataValue) ? false : commonUtils.converNumStrToBoolean(this.state.dataValue) /* 是否选中 */,
1613 1847 };
1614 1848 // if (this.props.readOnly) {
1615 1849 // obj.readOnly = true;
... ... @@ -1622,23 +1856,27 @@ export default class CommonComponent extends Component {
1622 1856  
1623 1857 /* 获取数字innerinputprops对象(从) */
1624 1858 getNumberInnerInputPropsSlave = () => {
1625   - const bShowArrow = this.props.showConfig.sName === 'dNeedAuxiliaryQty' && this.props.showConfig.sControlName !== 'slaveInfo';
  1859 + const bShowArrow = this.props.showConfig.sName === "dNeedAuxiliaryQty" && this.props.showConfig.sControlName !== "slaveInfo";
1626 1860 /* 返回值声明 */
1627 1861 const obj = {
1628   - id: `${this.props.showConfig.sName}${this.props.showConfig.sId}`, /* 虚拟数字键盘使用id获取光标 */
1629   - className: styles.inputNum, /* 样式名称 */
  1862 + id: `${this.props.showConfig.sName}${this.props.showConfig.sId}` /* 虚拟数字键盘使用id获取光标 */,
  1863 + className: styles.inputNum /* 样式名称 */,
1630 1864 // disabled: !this.state.enabled, /* 是否可编辑 */
1631   - onChange: this.handleSelectOptionEvent, /* 数据改变回带到父组件 */
1632   - parser: (oldValue) => {
  1865 + onChange: this.handleSelectOptionEvent /* 数据改变回带到父组件 */,
  1866 + parser: oldValue => {
1633 1867 const value = this.handleCheckNumberInnerInput(oldValue);
1634 1868 return value;
1635 1869 },
1636 1870 // eslint-disable-next-line no-return-assign
1637   - ref: ref => this[this.props.showConfig.sName] = ref, /* 虚拟数字键盘获得光标需用 */
1638   - onClick: this.handleInputOnClick.bind(this, this.props.showConfig.sName), /* 虚拟数字键盘 第二个参数必须id */
  1871 + ref: ref => (this[this.props.showConfig.sName] = ref) /* 虚拟数字键盘获得光标需用 */,
  1872 + onClick: this.handleInputOnClick.bind(this, this.props.showConfig.sName) /* 虚拟数字键盘 第二个参数必须id */,
1639 1873 };
1640 1874 if (bShowArrow) {
1641   - obj.addonAfter = <span style={{ width: '5px' }} onClick={this.handleRightArrow}><RightOutlined style={{ color: 'rgba(0,0,0,.85)' }} /></span>;
  1875 + obj.addonAfter = (
  1876 + <span style={{ width: "5px" }} onClick={this.handleRightArrow}>
  1877 + <RightOutlined style={{ color: "rgba(0,0,0,.85)" }} />
  1878 + </span>
  1879 + );
1642 1880 }
1643 1881 if (this.props.readOnly) {
1644 1882 obj.readOnly = true;
... ... @@ -1646,20 +1884,26 @@ export default class CommonComponent extends Component {
1646 1884 obj.disabled = !this.state.enabled;
1647 1885 }
1648 1886 /* 最大值最小值 */
1649   - if (typeof commonUtils.convertStrToNumber(this.max) === 'number' && commonUtils.convertStrToNumber(this.max) !== 0 && this.max.indexOf('.d') === -1 && this.max.indexOf('.i') === -1) {
  1887 + if (
  1888 + typeof commonUtils.convertStrToNumber(this.max) === "number" &&
  1889 + commonUtils.convertStrToNumber(this.max) !== 0 &&
  1890 + this.max.indexOf(".d") === -1 &&
  1891 + this.max.indexOf(".i") === -1
  1892 + ) {
1650 1893 obj.max = this.max; /* 最大值 */
1651   - } else if (!commonUtils.isEmpty(this.max) && this.max.indexOf('.') > -1 && commonUtils.isNotEmptyObject(this.props.record)) {
1652   - obj.max = this.props.record[this.max.substring(this.max.indexOf('.') + 1)];
  1894 + } else if (!commonUtils.isEmpty(this.max) && this.max.indexOf(".") > -1 && commonUtils.isNotEmptyObject(this.props.record)) {
  1895 + obj.max = this.props.record[this.max.substring(this.max.indexOf(".") + 1)];
1653 1896 }
1654   - if (typeof commonUtils.convertStrToNumber(this.min) === 'number' && commonUtils.convertStrToNumber(this.min) !== 0) {
  1897 + if (typeof commonUtils.convertStrToNumber(this.min) === "number" && commonUtils.convertStrToNumber(this.min) !== 0) {
1655 1898 obj.min = this.min; /* 最小值 */
1656 1899 }
1657   - if (obj.max < 0) { /* 为解决收付款单据未收款为负数时收款金额不能大于未收款问题,当最大值小于0时,变更为设为最小值 */
  1900 + if (obj.max < 0) {
  1901 + /* 为解决收付款单据未收款为负数时收款金额不能大于未收款问题,当最大值小于0时,变更为设为最小值 */
1658 1902 obj.min = obj.max;
1659 1903 obj.max = 0;
1660 1904 }
1661 1905 /* 浮点型需要格式化 */
1662   - if (this.firstDataIndex === 'd') {
  1906 + if (this.firstDataIndex === "d") {
1663 1907 // obj.formatter = value => this.toFamatter(value);
1664 1908 // obj.parser = value => this.toFamatter(value);
1665 1909 // obj.precision = this.floatNum;
... ... @@ -1671,7 +1915,7 @@ export default class CommonComponent extends Component {
1671 1915 const { dNetPrice } = this.props.app.decimals;
1672 1916 const { showConfig } = this.props;
1673 1917 const { sName, showName } = showConfig;
1674   - const digit = sName.includes('Price') ? dNetPrice : 6;
  1918 + const digit = sName.includes("Price") ? dNetPrice : 6;
1675 1919 const numCheck = new RegExp(`^(-?\\d+)(\\.?)(\\d{1,${digit}})?$`);
1676 1920 const numValue = this.state.dataValue;
1677 1921 if (!isNaN(+numValue)) {
... ... @@ -1689,23 +1933,30 @@ export default class CommonComponent extends Component {
1689 1933 getInnerInputPropsMaster = () => {
1690 1934 /* 返回值声明 */
1691 1935 let obj = {};
1692   - if (this.firstDataIndex === 'i' || this.firstDataIndex === 'd') { /* 数字输入框(整形i和浮点型d) */
  1936 + if (this.firstDataIndex === "i" || this.firstDataIndex === "d") {
  1937 + /* 数字输入框(整形i和浮点型d) */
1693 1938 obj = this.getNumberInnerInputPropsMaster();
1694   - } else if (this.firstDataIndex === 'b') { /* 选择框(布尔类型b) */
  1939 + } else if (this.firstDataIndex === "b") {
  1940 + /* 选择框(布尔类型b) */
1695 1941 obj = this.getBooleanInnerInputPropsMaster();
1696   - } else if (this.firstDataIndex === 't' || this.firstDataIndex === 'p' || this.firstDataIndex === 'm' || this.firstDataIndex === 'y') { /* 时间选择框(时间类型t) */
  1942 + } else if (this.firstDataIndex === "t" || this.firstDataIndex === "p" || this.firstDataIndex === "m" || this.firstDataIndex === "y") {
  1943 + /* 时间选择框(时间类型t) */
1697 1944 obj = this.getDateInnerInputPropsMaster();
1698   - } else if (this.firstDataIndex === 's') { /* 文本输入框(文本s) */
1699   - if (this.props.textArea) { /* 大文本输入框 */
  1945 + } else if (this.firstDataIndex === "s") {
  1946 + /* 文本输入框(文本s) */
  1947 + if (this.props.textArea) {
  1948 + /* 大文本输入框 */
1700 1949 obj = this.getTextAreaInnerInputPropsMaster();
1701 1950 obj.onDoubleClick = this.onDoubleClick;
1702   - } else { /* 普通文本输入框 */
  1951 + } else {
  1952 + /* 普通文本输入框 */
1703 1953 obj = this.getTextInnerInputPropsMaster();
1704   - if (this.props?.showConfig?.sName === 'sInstruct') {
  1954 + if (this.props?.showConfig?.sName === "sInstruct") {
1705 1955 obj.onDoubleClick = this.onDoubleClick;
1706 1956 }
1707 1957 }
1708   - } else if (this.firstDataIndex === 'c') { /* 地址联动框(联动下拉类型c) */
  1958 + } else if (this.firstDataIndex === "c") {
  1959 + /* 地址联动框(联动下拉类型c) */
1709 1960 obj = this.getAddressInnerInputPropsMaster();
1710 1961 }
1711 1962 obj.onKeyDown = this.onKeyDown;
... ... @@ -1714,7 +1965,7 @@ export default class CommonComponent extends Component {
1714 1965 if (this.props.allowClear) {
1715 1966 obj.allowClear = this.props.allowClear; /* 带移除图标 */
1716 1967 }
1717   - obj.placeholder = this.props.showConfig.placeholder || '';
  1968 + obj.placeholder = this.props.showConfig.placeholder || "";
1718 1969 // obj.onContextMenu = this.onContextMenu;
1719 1970 /* 返回值 */
1720 1971 return obj;
... ... @@ -1724,13 +1975,13 @@ export default class CommonComponent extends Component {
1724 1975 getAddressInnerInputPropsMaster = () => {
1725 1976 const obj = {
1726 1977 // disabled: !this.state.enabled, /* 是否可编辑 */
1727   - placeholder: '请选择省市区', /* 预期值的提示信息 */
1728   - options: this.getProvinceCityAreaData(), /* 数据 */
1729   - changeOnSelect: true, /* 对每个选择值进行更改 */
1730   - onChange: this.handleSelectOptionEvent, /* 数据改变回带到父组件 */
  1978 + placeholder: "请选择省市区" /* 预期值的提示信息 */,
  1979 + options: this.getProvinceCityAreaData() /* 数据 */,
  1980 + changeOnSelect: true /* 对每个选择值进行更改 */,
  1981 + onChange: this.handleSelectOptionEvent /* 数据改变回带到父组件 */,
1731 1982 };
1732 1983 if (this.props.readOnly) {
1733   - obj.readOnly = 'readOnly';
  1984 + obj.readOnly = "readOnly";
1734 1985 } else {
1735 1986 obj.disabled = !this.state.enabled;
1736 1987 }
... ... @@ -1740,33 +1991,48 @@ export default class CommonComponent extends Component {
1740 1991 /* 获取文本innerinputprops对象(主) */
1741 1992 getTextInnerInputPropsMaster = () => {
1742 1993 /* 返回值声明 */
1743   - const bShowSuffix = this.props.showConfig.sName === 'sButtonParam' || this.props.showConfig.sName === 'sSqlStr' || this.props.showConfig.sName === 'sConfigSqlStr' || this.props.showConfig.sName === 'sProcName'; /* 是否展示后缀图标 */
  1994 + const bShowSuffix =
  1995 + this.props.showConfig.sName === "sButtonParam" ||
  1996 + this.props.showConfig.sName === "sSqlStr" ||
  1997 + this.props.showConfig.sName === "sConfigSqlStr" ||
  1998 + this.props.showConfig.sName === "sProcName"; /* 是否展示后缀图标 */
1744 1999 const obj = {
1745   - id: `${this.props.showConfig.sName}${commonUtils.createSid()}`, /* 虚拟数字键盘使用id获取光标 */
  2000 + id: `${this.props.showConfig.sName}${commonUtils.createSid()}` /* 虚拟数字键盘使用id获取光标 */,
1746 2001 // disabled: !this.state.enabled, /* 是否可编辑 */
1747   - onChange: e => this.handleSelectOptionEvent(e), /* 数据改变回带到父组件 */
  2002 + onChange: e => this.handleSelectOptionEvent(e) /* 数据改变回带到父组件 */,
1748 2003 // eslint-disable-next-line no-return-assign
1749   - ref: ref => this[this.props.showConfig.sName] = ref, /* 虚拟数字键盘获得光标需用 */
1750   - onClick: this.handleInputOnClick.bind(this, this.props.showConfig.sName), /* 虚拟数字键盘 第二个参数必须id */
1751   - suffix: bShowSuffix ? <span onClick={this.handleOpenWin}><EyeOutlined style={{ color: 'rgba(0,0,0,.85)' }} /></span> : '',
  2004 + ref: ref => (this[this.props.showConfig.sName] = ref) /* 虚拟数字键盘获得光标需用 */,
  2005 + onClick: this.handleInputOnClick.bind(this, this.props.showConfig.sName) /* 虚拟数字键盘 第二个参数必须id */,
  2006 + suffix: bShowSuffix ? (
  2007 + <span onClick={this.handleOpenWin}>
  2008 + <EyeOutlined style={{ color: "rgba(0,0,0,.85)" }} />
  2009 + </span>
  2010 + ) : (
  2011 + ""
  2012 + ),
1752 2013 };
1753 2014 if (this.props.readOnly) {
1754   - obj.readOnly = 'readOnly';
  2015 + obj.readOnly = "readOnly";
1755 2016 } else {
1756 2017 obj.disabled = !this.state.enabled;
1757 2018 }
1758 2019 if (this.props.bPassWord) {
1759   - obj.type = 'password'; /* 文本密码类型 */
  2020 + obj.type = "password"; /* 文本密码类型 */
1760 2021 }
1761 2022 /* 最大值最小值 */
1762 2023 // if (this.props.showConfig.sName === 'sZmmGgxh') {
1763 2024 // console.log('sZmmGgxhsZmmGgxh', this.max, (typeof commonUtils.convertStrToNumber(this.max) === 'number' && commonUtils.convertStrToNumber(this.max) !== 0 && this.max.indexOf('.d') === -1 && this.max.indexOf('.i') === -1));
1764 2025 // }
1765   - if (typeof commonUtils.convertStrToNumber(this.max) === 'number' && commonUtils.convertStrToNumber(this.max) !== 0 && this.max.indexOf('.d') === -1 && this.max.indexOf('.i') === -1) {
  2026 + if (
  2027 + typeof commonUtils.convertStrToNumber(this.max) === "number" &&
  2028 + commonUtils.convertStrToNumber(this.max) !== 0 &&
  2029 + this.max.indexOf(".d") === -1 &&
  2030 + this.max.indexOf(".i") === -1
  2031 + ) {
1766 2032 obj.maxLength = this.max; /* 最大长度 */
1767 2033 }
1768 2034 obj.onBlur = this.onBlurText;
1769   - obj.autocomplete = 'new-password';
  2035 + obj.autocomplete = "new-password";
1770 2036 /* 返回值 */
1771 2037 return obj;
1772 2038 };
... ... @@ -1775,21 +2041,23 @@ export default class CommonComponent extends Component {
1775 2041 getTextAreaInnerInputPropsMaster = () => {
1776 2042 /* 返回值声明 */
1777 2043 const obj = {
1778   - id: `${this.props.showConfig.sName}${commonUtils.createSid()}`, /* 虚拟数字键盘使用id获取光标 */
  2044 + id: `${this.props.showConfig.sName}${commonUtils.createSid()}` /* 虚拟数字键盘使用id获取光标 */,
1779 2045 // disabled: !this.state.enabled, /* 是否可编辑 */
1780 2046 // rows: 3, /* 纵跨度 */
1781   - rows: commonUtils.isNotEmptyNumber(this.props.showConfig.iRowValue) ? this.props.showConfig.iRowValue : 1, /* 产品部要求 备注设置成一行到底 */
1782   - onChange: this.handleSelectOptionEvent, /* 数据改变回带到父组件 */
  2047 + rows: commonUtils.isNotEmptyNumber(this.props.showConfig.iRowValue) ? this.props.showConfig.iRowValue : 1 /* 产品部要求 备注设置成一行到底 */,
  2048 + onChange: this.handleSelectOptionEvent /* 数据改变回带到父组件 */,
1783 2049 // eslint-disable-next-line no-return-assign
1784   - ref: ref => this[this.props.showConfig.sName] = ref, /* 虚拟数字键盘获得光标需用 */
1785   - onClick: this.handleInputOnClick.bind(this, this.props.showConfig.sName), /* 虚拟数字键盘 第二个参数必须id */
  2050 + ref: ref => (this[this.props.showConfig.sName] = ref) /* 虚拟数字键盘获得光标需用 */,
  2051 + onClick: this.handleInputOnClick.bind(this, this.props.showConfig.sName) /* 虚拟数字键盘 第二个参数必须id */,
1786 2052 };
1787 2053 if (this.props.readOnly) {
1788   - obj.readOnly = 'readOnly';
1789   - } if (commonUtils.isNotEmptyObject(this.props.showConfig.sName) && this.props.showConfig.sName.toLowerCase().endsWith('memo')) {
1790   - if (!this.state.enabled) { /* 非编辑模式下 */
  2054 + obj.readOnly = "readOnly";
  2055 + }
  2056 + if (commonUtils.isNotEmptyObject(this.props.showConfig.sName) && this.props.showConfig.sName.toLowerCase().endsWith("memo")) {
  2057 + if (!this.state.enabled) {
  2058 + /* 非编辑模式下 */
1791 2059 obj.readOnly = true;
1792   - obj.style = { backgroundColor: '#f1f2f8' };
  2060 + obj.style = { backgroundColor: "#f1f2f8" };
1793 2061 } else {
1794 2062 obj.disabled = !this.state.enabled;
1795 2063 }
... ... @@ -1797,57 +2065,66 @@ export default class CommonComponent extends Component {
1797 2065 obj.disabled = !this.state.enabled;
1798 2066 }
1799 2067 /* 最大值最小值 */
1800   - if (typeof commonUtils.convertStrToNumber(this.max) === 'number' && commonUtils.convertStrToNumber(this.max) !== 0 && this.max.indexOf('.d') === -1 && this.max.indexOf('.i') === -1) {
  2068 + if (
  2069 + typeof commonUtils.convertStrToNumber(this.max) === "number" &&
  2070 + commonUtils.convertStrToNumber(this.max) !== 0 &&
  2071 + this.max.indexOf(".d") === -1 &&
  2072 + this.max.indexOf(".i") === -1
  2073 + ) {
1801 2074 obj.maxLength = this.max; /* 最大长度 */
1802 2075 }
1803 2076 return obj;
1804 2077 };
1805 2078  
1806 2079 /* 获取日期最大值和最小值 */
1807   - getDataMaxAndMin = (current) => {
  2080 + getDataMaxAndMin = current => {
1808 2081 return this.getDataMax(current) || this.getDataMin(current);
1809   - }
  2082 + };
1810 2083  
1811 2084 /* 获取日期最大值 */
1812   - getDataMax = (current) => {
  2085 + getDataMax = current => {
1813 2086 const showtimeFormat = this.props.showConfig.sDateFormat?.length > 11;
1814   - if (commonUtils.isNotEmptyStr(this.props.showConfig.sMaxValue) && this.props.showConfig.sMaxValue.split('.').length > 1) {
1815   - const conditionValues = this.props.getSqlCondition({ sSqlCondition: this.props.showConfig.sMaxValue }, '', {});
  2087 + if (commonUtils.isNotEmptyStr(this.props.showConfig.sMaxValue) && this.props.showConfig.sMaxValue.split(".").length > 1) {
  2088 + const conditionValues = this.props.getSqlCondition({ sSqlCondition: this.props.showConfig.sMaxValue }, "", {});
1816 2089 const sMaxValue = Object.keys(conditionValues).length > 0 ? conditionValues[Object.keys(conditionValues)[0]] : this.props.showConfig.sMaxValue;
1817   - const tDate = this.props.showConfig.sMaxValue === 'now' ? moment() : moment(sMaxValue);
1818   - return showtimeFormat ? commonUtils.isNotEmptyStr(this.props.showConfig.sMaxValue) && current > tDate :
1819   - commonUtils.isNotEmptyStr(this.props.showConfig.sMaxValue) && current.endOf('day') > tDate.endOf('day');
  2090 + const tDate = this.props.showConfig.sMaxValue === "now" ? moment() : moment(sMaxValue);
  2091 + return showtimeFormat
  2092 + ? commonUtils.isNotEmptyStr(this.props.showConfig.sMaxValue) && current > tDate
  2093 + : commonUtils.isNotEmptyStr(this.props.showConfig.sMaxValue) && current.endOf("day") > tDate.endOf("day");
1820 2094 } else {
1821   - const tDate = this.props.showConfig.sMaxValue === 'now' ? moment() : moment(this.props.showConfig.sMaxValue);
1822   - return showtimeFormat ? commonUtils.isNotEmptyStr(this.props.showConfig.sMaxValue) && current > tDate :
1823   - commonUtils.isNotEmptyStr(this.props.showConfig.sMaxValue) && current.endOf('day') > tDate.endOf('day');
  2095 + const tDate = this.props.showConfig.sMaxValue === "now" ? moment() : moment(this.props.showConfig.sMaxValue);
  2096 + return showtimeFormat
  2097 + ? commonUtils.isNotEmptyStr(this.props.showConfig.sMaxValue) && current > tDate
  2098 + : commonUtils.isNotEmptyStr(this.props.showConfig.sMaxValue) && current.endOf("day") > tDate.endOf("day");
1824 2099 }
1825   - }
  2100 + };
1826 2101  
1827 2102 /* 获取日期最小值 */
1828   - getDataMin = (current) => {
  2103 + getDataMin = current => {
1829 2104 const showtimeFormat = this.props.showConfig.sDateFormat?.length > 11;
1830   - if (commonUtils.isNotEmptyStr(this.props.showConfig.sMinValue) && this.props.showConfig.sMinValue.split('.').length > 1) {
1831   - const conditionValues = this.props.getSqlCondition({ sSqlCondition: this.props.showConfig.sMinValue }, '', {});
  2105 + if (commonUtils.isNotEmptyStr(this.props.showConfig.sMinValue) && this.props.showConfig.sMinValue.split(".").length > 1) {
  2106 + const conditionValues = this.props.getSqlCondition({ sSqlCondition: this.props.showConfig.sMinValue }, "", {});
1832 2107 const sMinValue = Object.keys(conditionValues).length > 0 ? conditionValues[Object.keys(conditionValues)[0]] : this.props.showConfig.sMinValue;
1833   - const tDate = this.props.showConfig.sMinValue === 'now' ? moment() : moment(sMinValue);
1834   - return showtimeFormat ? commonUtils.isNotEmptyStr(this.props.showConfig.sMinValue) && current < tDate :
1835   - commonUtils.isNotEmptyStr(this.props.showConfig.sMinValue) && current.endOf('day') < tDate.endOf('day');
  2108 + const tDate = this.props.showConfig.sMinValue === "now" ? moment() : moment(sMinValue);
  2109 + return showtimeFormat
  2110 + ? commonUtils.isNotEmptyStr(this.props.showConfig.sMinValue) && current < tDate
  2111 + : commonUtils.isNotEmptyStr(this.props.showConfig.sMinValue) && current.endOf("day") < tDate.endOf("day");
1836 2112 } else {
1837   - const tDate = this.props.showConfig.sMinValue === 'now' ? moment() : moment(this.props.showConfig.sMinValue);
1838   - return showtimeFormat ? commonUtils.isNotEmptyStr(this.props.showConfig.sMinValue) && current < tDate :
1839   - commonUtils.isNotEmptyStr(this.props.showConfig.sMinValue) && current.endOf('day') < tDate.endOf('day');
  2113 + const tDate = this.props.showConfig.sMinValue === "now" ? moment() : moment(this.props.showConfig.sMinValue);
  2114 + return showtimeFormat
  2115 + ? commonUtils.isNotEmptyStr(this.props.showConfig.sMinValue) && current < tDate
  2116 + : commonUtils.isNotEmptyStr(this.props.showConfig.sMinValue) && current.endOf("day") < tDate.endOf("day");
1840 2117 }
1841   - }
  2118 + };
1842 2119  
1843 2120 /* 获取时间innerinputprops对象(主) */
1844 2121 getDateInnerInputPropsMaster = () => {
1845 2122 let { sDateFormat } = this.props.showConfig;
1846 2123 if (commonUtils.isEmptyStr(sDateFormat)) {
1847   - if (this.firstDataIndex === 'm') {
1848   - sDateFormat = 'YYYY-MM';
1849   - } else if (this.firstDataIndex === 'y') {
1850   - sDateFormat = 'YYYY';
  2124 + if (this.firstDataIndex === "m") {
  2125 + sDateFormat = "YYYY-MM";
  2126 + } else if (this.firstDataIndex === "y") {
  2127 + sDateFormat = "YYYY";
1851 2128 } else {
1852 2129 sDateFormat = this.props.getDateFormat();
1853 2130 }
... ... @@ -1861,17 +2138,17 @@ export default class CommonComponent extends Component {
1861 2138 }
1862 2139 // 2021-6-5日修改,生产排程日期选择精确到小时
1863 2140 const obj = {
1864   - placeholder: '', /* 时间的提示信息 */
1865   - disabled: !this.state.enabled, /* 是否可编辑 */
1866   - style: { width: '100%' }, /* 样式 */
  2141 + placeholder: "" /* 时间的提示信息 */,
  2142 + disabled: !this.state.enabled /* 是否可编辑 */,
  2143 + style: { width: "100%" } /* 样式 */,
1867 2144 // showTime: this.props.showTime ? { format: 'HH:mm', defaultValue: [moment('00:00', 'HH:mm'), moment('00:00', 'HH:mm')] } : '',
1868 2145 // showTime: this.props.showTime,
1869 2146 showTime: showtimeFormat,
1870   - format: this.props.showTime ? 'YYYY-MM-DD HH:mm:ss' : sDateFormat, // this.props.getDateFormat(), /* 格式化规则 */
1871   - onChange: this.handleSelectOptionEvent, /* 数据改变回带到父组件 */
1872   - disabledDate: this.getDataMaxAndMin, /* 不可选日期 */
  2147 + format: this.props.showTime ? "YYYY-MM-DD HH:mm:ss" : sDateFormat, // this.props.getDateFormat(), /* 格式化规则 */
  2148 + onChange: this.handleSelectOptionEvent /* 数据改变回带到父组件 */,
  2149 + disabledDate: this.getDataMaxAndMin /* 不可选日期 */,
1873 2150 onBlur: () => {
1874   - this.onExecInstructSet('blur');
  2151 + this.onExecInstructSet("blur");
1875 2152 },
1876 2153 };
1877 2154 // if (this.props.readOnly) {
... ... @@ -1885,9 +2162,9 @@ export default class CommonComponent extends Component {
1885 2162 /* 获取布尔innerinputprops对象(主) */
1886 2163 getBooleanInnerInputPropsMaster = () => {
1887 2164 const obj = {
1888   - disabled: !this.state.enabled, /* 是否显示 */
1889   - onChange: this.handleSelectOptionEvent, /* 数据改变回带到父组件 */
1890   - checked: commonUtils.isUndefined(this.state.dataValue) ? false : commonUtils.converNumStrToBoolean(this.state.dataValue), /* 是否选中 */
  2165 + disabled: !this.state.enabled /* 是否显示 */,
  2166 + onChange: this.handleSelectOptionEvent /* 数据改变回带到父组件 */,
  2167 + checked: commonUtils.isUndefined(this.state.dataValue) ? false : commonUtils.converNumStrToBoolean(this.state.dataValue) /* 是否选中 */,
1891 2168 };
1892 2169 // if (this.props.readOnly) {
1893 2170 // obj.readOnly = true;
... ... @@ -1897,17 +2174,18 @@ export default class CommonComponent extends Component {
1897 2174 return obj;
1898 2175 };
1899 2176 // eslint-disable-next-line react/sort-comp
1900   - handleInputOnClick = (id) => {
  2177 + handleInputOnClick = id => {
1901 2178 // 判断是否是oee系统,否则不显示虚拟键盘
1902   - if (commonUtils.isNotEmptyObject(location.pathname) && location.pathname.indexOf('/indexOee') > -1) {
1903   - if (VirtualKeyboard.isKeyBoard()) { // 关闭上次键盘
  2179 + if (commonUtils.isNotEmptyObject(location.pathname) && location.pathname.indexOf("/indexOee") > -1) {
  2180 + if (VirtualKeyboard.isKeyBoard()) {
  2181 + // 关闭上次键盘
1904 2182 VirtualKeyboard.closeKeyboard();
1905 2183 }
1906 2184 const keyboardValue = {};
1907 2185 if (commonUtils.isNotEmptyObject(this.props.dataValue)) {
1908 2186 keyboardValue.value = this.props.dataValue;
1909 2187 } else {
1910   - keyboardValue.value = '';
  2188 + keyboardValue.value = "";
1911 2189 }
1912 2190 VirtualKeyboard.showKeyboardSetState(keyboardValue, this, id);
1913 2191 }
... ... @@ -1917,29 +2195,29 @@ export default class CommonComponent extends Component {
1917 2195 const rowId = this.props.record.sId;
1918 2196 this.props.onInputClick(rowId, sName);
1919 2197 }
1920   - }
  2198 + };
1921 2199  
1922 2200 /* 获取数字innerinputprops对象(主) */
1923 2201 getNumberInnerInputPropsMaster = () => {
1924 2202 /* 如果是浮点型并且有格式规定,display类型需要变为block */
1925   - let display = 'inline-block';
1926   - if (this.firstDataIndex === 'd' && this.floatNum !== 0) {
1927   - display = 'block';
  2203 + let display = "inline-block";
  2204 + if (this.firstDataIndex === "d" && this.floatNum !== 0) {
  2205 + display = "block";
1928 2206 }
1929 2207 // const sInputId = `id${commonUtils.createSid()}`;
1930 2208 /* 返回值赋值 */
1931 2209 const obj = {
1932   - id: `${this.props.showConfig.sName}${commonUtils.createSid()}`, /* 虚拟数字键盘使用id获取光标 */
1933   - style: { width: 'auto', display, marginRight: 0 }, /* 样式 */
  2210 + id: `${this.props.showConfig.sName}${commonUtils.createSid()}` /* 虚拟数字键盘使用id获取光标 */,
  2211 + style: { width: "auto", display, marginRight: 0 } /* 样式 */,
1934 2212 // disabled: !this.state.enabled, /* 是否显示 */
1935   - onChange: this.handleSelectOptionEvent, /* 数据改变回带到父组件 */
1936   - parser: (oldValue) => {
  2213 + onChange: this.handleSelectOptionEvent /* 数据改变回带到父组件 */,
  2214 + parser: oldValue => {
1937 2215 const value = this.handleCheckNumberInnerInput(oldValue);
1938 2216 return value;
1939 2217 },
1940 2218 // eslint-disable-next-line no-return-assign
1941   - ref: ref => this[this.props.showConfig.sName] = ref, /* 虚拟数字键盘获得光标需用 这里得ref中得变量必须是input得id */
1942   - onClick: this.handleInputOnClick.bind(this, this.props.showConfig.sName), /* 虚拟数字键盘 第二个参数必须id */
  2219 + ref: ref => (this[this.props.showConfig.sName] = ref) /* 虚拟数字键盘获得光标需用 这里得ref中得变量必须是input得id */,
  2220 + onClick: this.handleInputOnClick.bind(this, this.props.showConfig.sName) /* 虚拟数字键盘 第二个参数必须id */,
1943 2221 };
1944 2222 if (this.props.readOnly) {
1945 2223 obj.readOnly = true;
... ... @@ -1947,12 +2225,17 @@ export default class CommonComponent extends Component {
1947 2225 obj.disabled = !this.state.enabled;
1948 2226 }
1949 2227 /* 最大值最小值 */
1950   - if (typeof commonUtils.convertStrToNumber(this.max) === 'number' && commonUtils.convertStrToNumber(this.max) !== 0 && this.max.indexOf('.d') === -1 && this.max.indexOf('.i') === -1) {
  2228 + if (
  2229 + typeof commonUtils.convertStrToNumber(this.max) === "number" &&
  2230 + commonUtils.convertStrToNumber(this.max) !== 0 &&
  2231 + this.max.indexOf(".d") === -1 &&
  2232 + this.max.indexOf(".i") === -1
  2233 + ) {
1951 2234 obj.max = this.max; /* 最大值 */
1952   - } else if (!commonUtils.isEmpty(this.max) && this.max.indexOf('.') > -1 && commonUtils.isNotEmptyObject(this.props.record)) {
1953   - obj.max = this.props.record[this.max.substring(this.max.indexOf('.') + 1)];
  2235 + } else if (!commonUtils.isEmpty(this.max) && this.max.indexOf(".") > -1 && commonUtils.isNotEmptyObject(this.props.record)) {
  2236 + obj.max = this.props.record[this.max.substring(this.max.indexOf(".") + 1)];
1954 2237 }
1955   - if (typeof commonUtils.convertStrToNumber(this.min) === 'number' && commonUtils.convertStrToNumber(this.min) !== 0) {
  2238 + if (typeof commonUtils.convertStrToNumber(this.min) === "number" && commonUtils.convertStrToNumber(this.min) !== 0) {
1956 2239 obj.min = this.min; /* 最小值 */
1957 2240 }
1958 2241 obj.placeholder = this.props.showConfig.placeholder;
... ... @@ -1979,28 +2262,28 @@ export default class CommonComponent extends Component {
1979 2262 };
1980 2263  
1981 2264 /* 获取省数据 */
1982   - getProvinceData = (options) => {
1983   - Provinces.forEach((childProvince) => {
  2265 + getProvinceData = options => {
  2266 + Provinces.forEach(childProvince => {
1984 2267 options.push({
1985   - value: childProvince.name, /* 文字 */
1986   - label: childProvince.name, /* 标签 */
1987   - code: childProvince.code, /* 编码 */
1988   - children: [], /* 子节点(city) */
  2268 + value: childProvince.name /* 文字 */,
  2269 + label: childProvince.name /* 标签 */,
  2270 + code: childProvince.code /* 编码 */,
  2271 + children: [] /* 子节点(city) */,
1989 2272 });
1990 2273 });
1991 2274 };
1992 2275  
1993 2276 /* 获取市数据 */
1994   - getCityData = (options) => {
1995   - options.forEach((childProvince) => {
  2277 + getCityData = options => {
  2278 + options.forEach(childProvince => {
1996 2279 const cities = Cities.filter(item => item.provinceCode === childProvince.code);
1997 2280 if (cities.length > 0) {
1998   - cities.forEach((childCity) => {
  2281 + cities.forEach(childCity => {
1999 2282 childProvince.children.push({
2000   - value: childCity.name, /* 文字 */
2001   - label: childCity.name, /* 标签 */
2002   - code: childCity.code, /* 编码 */
2003   - children: [], /* 子节点(area) */
  2283 + value: childCity.name /* 文字 */,
  2284 + label: childCity.name /* 标签 */,
  2285 + code: childCity.code /* 编码 */,
  2286 + children: [] /* 子节点(area) */,
2004 2287 });
2005 2288 });
2006 2289 }
... ... @@ -2008,17 +2291,17 @@ export default class CommonComponent extends Component {
2008 2291 };
2009 2292  
2010 2293 /* 获取区数据 */
2011   - getAreaData = (options) => {
2012   - options.forEach((childProvince) => {
  2294 + getAreaData = options => {
  2295 + options.forEach(childProvince => {
2013 2296 const cities = childProvince.children;
2014   - cities.forEach((childCity) => {
2015   - const areas = Areas.filter((item => item.cityCode === childCity.code));
  2297 + cities.forEach(childCity => {
  2298 + const areas = Areas.filter(item => item.cityCode === childCity.code);
2016 2299 if (areas.length > 0) {
2017   - areas.forEach((area) => {
  2300 + areas.forEach(area => {
2018 2301 childCity.children.push({
2019   - value: area.name, /* 文字 */
2020   - label: area.name, /* 标签 */
2021   - code: area.code, /* 编码 */
  2302 + value: area.name /* 文字 */,
  2303 + label: area.name /* 标签 */,
  2304 + code: area.code /* 编码 */,
2022 2305 });
2023 2306 });
2024 2307 }
... ... @@ -2029,11 +2312,14 @@ export default class CommonComponent extends Component {
2029 2312 /* 获取formitemprops对象 */
2030 2313 getOutFormItemProps = () => {
2031 2314 /* 主表和从表的formitemprops对象有区别 */
2032   - if (!this.props.bTable) { /* 主表 */
  2315 + if (!this.props.bTable) {
  2316 + /* 主表 */
2033 2317 return this.getOutFormItemPropsMaster();
2034   - } else if (this.props.bViewTable) { /* 表格单行显示 */
  2318 + } else if (this.props.bViewTable) {
  2319 + /* 表格单行显示 */
2035 2320 return this.getOutFormItemPropsViewSlave();
2036   - } else { /* 从表 */
  2321 + } else {
  2322 + /* 从表 */
2037 2323 return this.getOutFormItemPropsSlave();
2038 2324 }
2039 2325 };
... ... @@ -2042,36 +2328,40 @@ export default class CommonComponent extends Component {
2042 2328 getOutFormItemPropsMaster = () => {
2043 2329 /* 返回值声明 */
2044 2330 let obj = {};
2045   - if (this.firstDataIndex === 'i'
2046   - || this.firstDataIndex === 'd'
2047   - || this.firstDataIndex === 'p'
2048   - || this.firstDataIndex === 't'
2049   - || this.firstDataIndex === 'm'
2050   - || this.firstDataIndex === 's'
2051   - || this.firstDataIndex === 'c') { /* 数字输入框(整形i和浮点型d),
  2331 + if (
  2332 + this.firstDataIndex === "i" ||
  2333 + this.firstDataIndex === "d" ||
  2334 + this.firstDataIndex === "p" ||
  2335 + this.firstDataIndex === "t" ||
  2336 + this.firstDataIndex === "m" ||
  2337 + this.firstDataIndex === "s" ||
  2338 + this.firstDataIndex === "c"
  2339 + ) {
  2340 + /* 数字输入框(整形i和浮点型d),
2052 2341 时间选择框(时间类型t),
2053 2342 文本输入框(文本s),
2054 2343 地址联动框(联动下拉类型c) */
2055 2344 obj = {
2056   - label: this.props.showConfig.showName, /* 标签 */
2057   - className: styles.formItemMargin, /* 样式名称 */
2058   - ...this.formItemLayout, /* 主要是rowspan和colspan */
  2345 + label: this.props.showConfig.showName /* 标签 */,
  2346 + className: styles.formItemMargin /* 样式名称 */,
  2347 + ...this.formItemLayout /* 主要是rowspan和colspan */,
2059 2348 };
2060   - } else if (this.firstDataIndex === 'b') { /* 选择框(布尔类型b) */
  2349 + } else if (this.firstDataIndex === "b") {
  2350 + /* 选择框(布尔类型b) */
2061 2351 obj = {
2062   - label: this.props.showConfig.showName, /* 标签 */
2063   - className: styles.formItemMag10, /* 样式名称 */
2064   - ...this.formItemLayout, /* 主要是rowspan和colspan */
  2352 + label: this.props.showConfig.showName /* 标签 */,
  2353 + className: styles.formItemMag10 /* 样式名称 */,
  2354 + ...this.formItemLayout /* 主要是rowspan和colspan */,
2065 2355 };
2066 2356 }
2067   - if (this.props.itemLabel === 'hide') {
  2357 + if (this.props.itemLabel === "hide") {
2068 2358 delete obj.label;
2069 2359 }
2070 2360 /* 设置标题颜色 */
2071 2361 if (this.props.showConfig.sFontColor) {
2072 2362 // eslint-disable-next-line prefer-destructuring
2073 2363 const sFontColor = this.props.showConfig.sFontColor;
2074   - obj.labelCol.style = { color: sFontColor, fontWeight: 'bold', backgroundColor: '#BFEFFF' };
  2364 + obj.labelCol.style = { color: sFontColor, fontWeight: "bold", backgroundColor: "#BFEFFF" };
2075 2365 }
2076 2366 /* 返回值 */
2077 2367 return obj;
... ... @@ -2081,69 +2371,78 @@ export default class CommonComponent extends Component {
2081 2371 getOutFormItemPropsViewSlave = () => {
2082 2372 /* 返回值声明 */
2083 2373 let obj = {};
2084   - if (this.firstDataIndex === 'i'
2085   - || this.firstDataIndex === 'd'
2086   - || this.firstDataIndex === 'p'
2087   - || this.firstDataIndex === 't'
2088   - || this.firstDataIndex === 'm'
2089   - || this.firstDataIndex === 's'
2090   - || this.firstDataIndex === 'c') { /* 数字输入框(整形i和浮点型d),
  2374 + if (
  2375 + this.firstDataIndex === "i" ||
  2376 + this.firstDataIndex === "d" ||
  2377 + this.firstDataIndex === "p" ||
  2378 + this.firstDataIndex === "t" ||
  2379 + this.firstDataIndex === "m" ||
  2380 + this.firstDataIndex === "s" ||
  2381 + this.firstDataIndex === "c"
  2382 + ) {
  2383 + /* 数字输入框(整形i和浮点型d),
2091 2384 时间选择框(时间类型t),
2092 2385 文本输入框(文本s),
2093 2386 地址联动框(联动下拉类型c) */
2094 2387 obj = {
2095   - label: this.props.showConfig.showName, /* 标签 */
2096   - className: styles.formItemMargin, /* 样式名称 */
2097   - ...this.formItemLayout, /* 主要是rowspan和colspan */
  2388 + label: this.props.showConfig.showName /* 标签 */,
  2389 + className: styles.formItemMargin /* 样式名称 */,
  2390 + ...this.formItemLayout /* 主要是rowspan和colspan */,
2098 2391 };
2099   - } else if (this.firstDataIndex === 'b') { /* 选择框(布尔类型b) */
  2392 + } else if (this.firstDataIndex === "b") {
  2393 + /* 选择框(布尔类型b) */
2100 2394 obj = {
2101   - label: this.props.showConfig.showName, /* 标签 */
2102   - className: styles.formItemMag10, /* 样式名称 */
2103   - ...this.formItemLayout, /* 主要是rowspan和colspan */
  2395 + label: this.props.showConfig.showName /* 标签 */,
  2396 + className: styles.formItemMag10 /* 样式名称 */,
  2397 + ...this.formItemLayout /* 主要是rowspan和colspan */,
2104 2398 };
2105 2399 }
2106   - if (this.props.itemLabel === 'hide') {
  2400 + if (this.props.itemLabel === "hide") {
2107 2401 delete obj.label;
2108 2402 }
2109 2403 /* 设置标题颜色 */
2110 2404 if (this.props.showConfig.sFontColor) {
2111 2405 // eslint-disable-next-line prefer-destructuring
2112 2406 const sFontColor = this.props.showConfig.sFontColor;
2113   - obj.labelCol.style = { color: sFontColor, fontWeight: 'bold', backgroundColor: '#BFEFFF' };
  2407 + obj.labelCol.style = { color: sFontColor, fontWeight: "bold", backgroundColor: "#BFEFFF" };
2114 2408 }
2115 2409 /* 返回值 */
2116 2410 return obj;
2117 2411 };
2118 2412  
2119   -
2120 2413 /* 获取formitemprops对象(从) */
2121 2414 getOutFormItemPropsSlave = () => {
2122 2415 /* 返回值声明 */
2123 2416 let obj = {};
2124   - if (this.firstDataIndex === 'i'
2125   - || this.firstDataIndex === 'd'
2126   - || this.firstDataIndex === 'c'
2127   - || this.props.showConfig.sDropDownType === 'sql'
2128   - || this.props.showConfig.sDropDownType === 'const') { /* 数字输入框(整形i和浮点型d),
  2417 + if (
  2418 + this.firstDataIndex === "i" ||
  2419 + this.firstDataIndex === "d" ||
  2420 + this.firstDataIndex === "c" ||
  2421 + this.props.showConfig.sDropDownType === "sql" ||
  2422 + this.props.showConfig.sDropDownType === "const"
  2423 + ) {
  2424 + /* 数字输入框(整形i和浮点型d),
2129 2425 时间选择框(时间类型t),
2130 2426 文本输入框(文本s),
2131 2427 地址联动框(联动下拉类型c),
2132 2428 所有的下拉(从表只有文字下拉,分常量和sql两种) */
2133 2429 obj = {
2134   - className: styles.formItemMargin0, /* 样式名称 */
  2430 + className: styles.formItemMargin0 /* 样式名称 */,
2135 2431 };
2136   - } else if (this.firstDataIndex === 'b') { /* 选择框(布尔类型b) */
  2432 + } else if (this.firstDataIndex === "b") {
  2433 + /* 选择框(布尔类型b) */
2137 2434 obj = {
2138   - className: styles.tableCheckBox, /* 样式名称 */
  2435 + className: styles.tableCheckBox /* 样式名称 */,
2139 2436 };
2140   - } else if (this.firstDataIndex === 't' || this.firstDataIndex === 'p' || this.firstDataIndex === 'm' || this.firstDataIndex === 'y') { /* 时间选择框(时间类型t) */
  2437 + } else if (this.firstDataIndex === "t" || this.firstDataIndex === "p" || this.firstDataIndex === "m" || this.firstDataIndex === "y") {
  2438 + /* 时间选择框(时间类型t) */
2141 2439 obj = {
2142   - className: styles.tableDataPicker, /* 样式名称 */
  2440 + className: styles.tableDataPicker /* 样式名称 */,
2143 2441 };
2144   - } else if (this.firstDataIndex === 's') { /* 文本输入框(文本s) */
  2442 + } else if (this.firstDataIndex === "s") {
  2443 + /* 文本输入框(文本s) */
2145 2444 obj = {
2146   - className: styles.editInput, /* 样式名称 */
  2445 + className: styles.editInput /* 样式名称 */,
2147 2446 };
2148 2447 }
2149 2448 /* 返回值 */
... ... @@ -2154,53 +2453,62 @@ export default class CommonComponent extends Component {
2154 2453 getFieldDecoratorProps = () => {
2155 2454 /* 返回值声明 */
2156 2455 let obj = {};
2157   - if (this.firstDataIndex === 'i' || this.firstDataIndex === 'd' || this.firstDataIndex === 't' || this.firstDataIndex === 'p' || this.firstDataIndex === 's' || this.firstDataIndex === 'b') { /* 数字输入框(整形i和浮点型d),时间选择框(时间类型t),文本输入框(文本s),选择框(布尔类型b) */
  2456 + if (
  2457 + this.firstDataIndex === "i" ||
  2458 + this.firstDataIndex === "d" ||
  2459 + this.firstDataIndex === "t" ||
  2460 + this.firstDataIndex === "p" ||
  2461 + this.firstDataIndex === "s" ||
  2462 + this.firstDataIndex === "b"
  2463 + ) {
  2464 + /* 数字输入框(整形i和浮点型d),时间选择框(时间类型t),文本输入框(文本s),选择框(布尔类型b) */
2158 2465 obj = { rules: [{ required: this.props.showConfig.bNotEmpty, message: `${this.props.showConfig.showName}为必填项` }] };
2159   - } else if (this.firstDataIndex === 'c') { /* 地址联动框(联动下拉类型c) */
  2466 + } else if (this.firstDataIndex === "c") {
  2467 + /* 地址联动框(联动下拉类型c) */
2160 2468 obj = {
2161   - initialValue: ['北京市', '市辖区', '东城区'], /* 默认值 */
2162   - rules: [{ required: this.props.showConfig.bNotEmpty, message: `${this.props.showConfig.showName}为必填项` }], /* 规则 */
  2469 + initialValue: ["北京市", "市辖区", "东城区"] /* 默认值 */,
  2470 + rules: [{ required: this.props.showConfig.bNotEmpty, message: `${this.props.showConfig.showName}为必填项` }] /* 规则 */,
2163 2471 };
2164 2472 }
2165 2473 /* 返回值 */
2166 2474 return obj;
2167 2475 };
2168   - getPopupContainer = (triggerNode) => {
  2476 + getPopupContainer = triggerNode => {
2169 2477 const trigger = triggerNode;
2170 2478 if (commonUtils.isNotEmptyObject(trigger)) {
2171 2479 return triggerNode;
2172 2480 }
2173   - }
  2481 + };
2174 2482 handleCancel = () => {
2175 2483 this.state.previewOpen = false;
2176   - }
  2484 + };
2177 2485 handleSelectClick = () => {
2178 2486 if (this.bInputIn) {
2179 2487 this.setState({ bDropDownOpen: true });
2180 2488 }
2181   - }
  2489 + };
2182 2490  
2183 2491 // 限制数字位数
2184   - handleCheckNumberInnerInput = (value) => {
  2492 + handleCheckNumberInnerInput = value => {
2185 2493 const { sDateFormat: sDateFormatOld, sFieldValidation: sFieldValidationOld, sName } = this.props.showConfig;
2186 2494 const { record = {}, app = {} } = this.props;
2187 2495 const { auxiliaryQty = {} } = app;
2188 2496  
2189 2497 let sDateFormat = sDateFormatOld;
2190 2498 let sFieldValidation = sFieldValidationOld;
2191   - if (sName === 'dAuxiliaryQty' && commonUtils.isNotEmptyObject(record.sAuxiliaryUnit)) {
  2499 + if (sName === "dAuxiliaryQty" && commonUtils.isNotEmptyObject(record.sAuxiliaryUnit)) {
2192 2500 const decimal = auxiliaryQty[record.sAuxiliaryUnit];
2193 2501 if (decimal !== undefined) {
2194   - sDateFormat = 'decimalPoint';
  2502 + sDateFormat = "decimalPoint";
2195 2503 sFieldValidation = `,${decimal}`;
2196 2504 }
2197 2505 }
2198 2506  
2199   - if (sDateFormat !== 'decimalPoint' || sFieldValidation === undefined || value === null || (typeof value === 'string' && !value)) {
  2507 + if (sDateFormat !== "decimalPoint" || sFieldValidation === undefined || value === null || (typeof value === "string" && !value)) {
2200 2508 return value;
2201 2509 }
2202 2510  
2203   - const [length1, length2] = sFieldValidation.split(',');
  2511 + const [length1, length2] = sFieldValidation.split(",");
2204 2512  
2205 2513 let newValue = value;
2206 2514 if (length2 !== undefined) {
... ... @@ -2209,9 +2517,9 @@ export default class CommonComponent extends Component {
2209 2517 if (isNaN(newValue) || Object.is(newValue, -0)) {
2210 2518 return value;
2211 2519 }
2212   - if (length1 !== undefined && length1 !== '') {
  2520 + if (length1 !== undefined && length1 !== "") {
2213 2521 const str = newValue.toString();
2214   - const [integerPart, decimalPart] = str.split('.');
  2522 + const [integerPart, decimalPart] = str.split(".");
2215 2523 if (integerPart.length > length1) {
2216 2524 const truncatedInteger = integerPart.slice(0, length1);
2217 2525 if (decimalPart !== undefined) {
... ... @@ -2223,9 +2531,9 @@ export default class CommonComponent extends Component {
2223 2531 }
2224 2532  
2225 2533 return newValue;
2226   - }
  2534 + };
2227 2535  
2228   - selectTableChange = (pageNum) => {
  2536 + selectTableChange = pageNum => {
2229 2537 if (this.selectTableRef) {
2230 2538 this.selectTableRef.focus();
2231 2539 }
... ... @@ -2234,11 +2542,11 @@ export default class CommonComponent extends Component {
2234 2542 } else {
2235 2543 this.setState({ currentPage: pageNum, selectTableIndex: 0 });
2236 2544 }
2237   - this.selectTableRef1.querySelector('.ant-table-body').scrollTop = 0;
  2545 + this.selectTableRef1.querySelector(".ant-table-body").scrollTop = 0;
2238 2546 this.getDropDownData(pageNum, this.state.totalPageCount, this.state.searchValue);
2239 2547 };
2240 2548  
2241   - selectTableSearch = (searchValue) => {
  2549 + selectTableSearch = searchValue => {
2242 2550 if (this.dropDownTimer) {
2243 2551 clearTimeout(this.dropDownTimer);
2244 2552 }
... ... @@ -2253,7 +2561,7 @@ export default class CommonComponent extends Component {
2253 2561 }, 500);
2254 2562 };
2255 2563  
2256   - toFamatter = (values) => {
  2564 + toFamatter = values => {
2257 2565 if (values !== 0 && commonUtils.isNotEmptyNumber(values) && values !== null) {
2258 2566 const { sDateFormat } = this.props.showConfig;
2259 2567 const { dNetMoney, dNetPrice } = this.props.app.decimals;
... ... @@ -2261,7 +2569,7 @@ export default class CommonComponent extends Component {
2261 2569 if (commonUtils.isNotEmptyObject(sDateFormat)) {
2262 2570 /* 取小数点位数 */
2263 2571 let point = 0;
2264   - const strIndex = sDateFormat.indexOf('.');
  2572 + const strIndex = sDateFormat.indexOf(".");
2265 2573 if (strIndex > -1 && sDateFormat.length > 1) {
2266 2574 point = sDateFormat.substring(strIndex + 1, sDateFormat.length).length;
2267 2575 if (commonUtils.isNotEmptyNumber(values) && values !== null) {
... ... @@ -2271,14 +2579,16 @@ export default class CommonComponent extends Component {
2271 2579 }
2272 2580 }
2273 2581 }
2274   - } else if (this.props.showConfig.sName.toLowerCase().endsWith('price')) { /* 单价格式化显示1 */
  2582 + } else if (this.props.showConfig.sName.toLowerCase().endsWith("price")) {
  2583 + /* 单价格式化显示1 */
2275 2584 if (commonUtils.isNotEmptyNumber(values) && values !== null) {
2276 2585 const dResult = commonUtils.convertFixNum(Number(values), dNetPrice).toFixed(dNetPrice);
2277 2586 if (!isNaN(dResult)) {
2278 2587 values = dResult;
2279 2588 }
2280 2589 }
2281   - } else if (this.props.showConfig.sName.toLowerCase().endsWith('money')) { /* 金额格式化显示 */
  2590 + } else if (this.props.showConfig.sName.toLowerCase().endsWith("money")) {
  2591 + /* 金额格式化显示 */
2282 2592 if (commonUtils.isNotEmptyNumber(values) && values !== null) {
2283 2593 const dResult = commonUtils.convertFixNum(Number(values), dNetMoney).toFixed(dNetMoney);
2284 2594 if (!isNaN(dResult)) {
... ... @@ -2290,7 +2600,7 @@ export default class CommonComponent extends Component {
2290 2600 } else {
2291 2601 return values;
2292 2602 }
2293   - }
  2603 + };
2294 2604 /** 处理下拉选择事件 */
2295 2605 handleSelectOptionEvent = (newValue, dateString) => {
2296 2606 if (this.chineseInputting) {
... ... @@ -2306,13 +2616,22 @@ export default class CommonComponent extends Component {
2306 2616 // return;
2307 2617 // }
2308 2618 if (newValue === undefined) return;
2309   - if (newValue !== null && newValue.target && newValue.target.type !== 'checkbox') {
  2619 + if (newValue !== null && newValue.target && newValue.target.type !== "checkbox") {
2310 2620 newValue = newValue.target.value;
2311 2621 }
2312 2622 /* 下拉新增单独处理 */
2313   - const dEmptyValue = this.props.showConfig.sName === 'dMachineLength' || this.props.showConfig.sName === 'dMachineWidth' ? newValue : null; /* 设置数值型为空值时 数据置为0 或空值 */
2314   - let value = this.firstDataIndex === 's' && !this.props.textArea && commonUtils.isEmpty(newValue) ? newValue.replace('--', '') :
2315   - ['t', 'm'].includes(this.firstDataIndex) ? dateString : (this.firstDataIndex === 'd' || this.firstDataIndex === 'i') && commonUtils.isEmpty(newValue) ? dEmptyValue : newValue;
  2623 + const dEmptyValue =
  2624 + this.props.showConfig.sName === "dMachineLength" || this.props.showConfig.sName === "dMachineWidth"
  2625 + ? newValue
  2626 + : null; /* 设置数值型为空值时 数据置为0 或空值 */
  2627 + let value =
  2628 + this.firstDataIndex === "s" && !this.props.textArea && commonUtils.isEmpty(newValue)
  2629 + ? newValue.replace("--", "")
  2630 + : ["t", "m"].includes(this.firstDataIndex)
  2631 + ? dateString
  2632 + : (this.firstDataIndex === "d" || this.firstDataIndex === "i") && commonUtils.isEmpty(newValue)
  2633 + ? dEmptyValue
  2634 + : newValue;
2316 2635 value = this.props.showConfig.bMultipleChoice ? value.toString() : value;
2317 2636 // if (value === 0) {
2318 2637 // setTimeout(() => {
... ... @@ -2322,24 +2641,24 @@ export default class CommonComponent extends Component {
2322 2641 // }, 51);
2323 2642 // }
2324 2643 this.isDropdownFilter = true;
2325   - if (this.props.showConfig.sDropDownType === 'sql' && value === '@#*000@') {
  2644 + if (this.props.showConfig.sDropDownType === "sql" && value === "@#*000@") {
2326 2645 this.props.handleSqlDropDownNewRecord(this.props.showConfig, this.props.name);
2327 2646 if (this.mounted) {
2328   - this.setState({ dataValue: '' });
  2647 + this.setState({ dataValue: "" });
2329 2648 }
2330 2649 return;
2331 2650 }
2332   - if (this.props.showConfig.sDropDownType === 'sql' && value === '=+@') { /* 如果是选择空值,则将特殊字符过滤为空值 */
2333   - value = '';
  2651 + if (this.props.showConfig.sDropDownType === "sql" && value === "=+@") {
  2652 + /* 如果是选择空值,则将特殊字符过滤为空值 */
  2653 + value = "";
2334 2654 }
2335   - if (this.props.showConfig.sDropDownType === 'const' && value === '=+@') { /* 如果是选择空值,则将特殊字符过滤为空值 */
2336   - value = '';
  2655 + if (this.props.showConfig.sDropDownType === "const" && value === "=+@") {
  2656 + /* 如果是选择空值,则将特殊字符过滤为空值 */
  2657 + value = "";
2337 2658 }
2338 2659 /* 回带值声明 */
2339 2660 const returnValue = {};
2340   - const {
2341   - searchValue, searchDropDownData, dropDownData, selectTableData,
2342   - } = this.state;
  2661 + const { searchValue, searchDropDownData, dropDownData, selectTableData } = this.state;
2343 2662 let dropDownDataNew = [];
2344 2663 /* 如果是表格下拉的话 */
2345 2664 if (commonUtils.isNotEmptyStr(this.props.showConfig?.sTableTitleSql) && this.props.showConfig?.iVisCount > 1) {
... ... @@ -2347,8 +2666,8 @@ export default class CommonComponent extends Component {
2347 2666 } else {
2348 2667 dropDownDataNew = commonUtils.isEmptyArr(searchValue) ? dropDownData : searchDropDownData;
2349 2668 }
2350   - const getTValue = (value) => {
2351   - const { sDateFormat = 'YYYY-MM-DD' } = this.props.showConfig;
  2669 + const getTValue = value => {
  2670 + const { sDateFormat = "YYYY-MM-DD" } = this.props.showConfig;
2352 2671  
2353 2672 if (moment(value, sDateFormat, true).isValid()) return value; // 如果数据满足日期格式,则直接返回
2354 2673  
... ... @@ -2364,21 +2683,34 @@ export default class CommonComponent extends Component {
2364 2683 /* 回带值赋值(sName:value) */
2365 2684 returnValue[this.props.showConfig.sName] =
2366 2685 // this.firstDataIndex === 's' && this.props.textArea ? value.target.value :
2367   - this.firstDataIndex === 'i' ? commonUtils.isEmpty(value) ? undefined : this.props.showConfig.sName === 'iOrder' ? value : parseInt(value, 0) :
2368   - this.firstDataIndex === 'd' ? commonUtils.isEmpty(value) ? undefined : this.floatNumberCheck(value) :
2369   - this.firstDataIndex === 't' ? getTValue(value) :
2370   - this.firstDataIndex === 'b' ? value.target.checked : value === null ? undefined : value;
  2686 + this.firstDataIndex === "i"
  2687 + ? commonUtils.isEmpty(value)
  2688 + ? undefined
  2689 + : this.props.showConfig.sName === "iOrder"
  2690 + ? value
  2691 + : parseInt(value, 0)
  2692 + : this.firstDataIndex === "d"
  2693 + ? commonUtils.isEmpty(value)
  2694 + ? undefined
  2695 + : this.floatNumberCheck(value)
  2696 + : this.firstDataIndex === "t"
  2697 + ? getTValue(value)
  2698 + : this.firstDataIndex === "b"
  2699 + ? value.target.checked
  2700 + : value === null
  2701 + ? undefined
  2702 + : value;
2371 2703 if (!this.props.showConfig.bMultipleChoice) {
2372 2704 const { sAssignField } = this.props.showConfig;
2373 2705 const [changeData] = dropDownDataNew.filter(item => (!commonUtils.isEmpty(item.sSlaveId) ? item.sSlaveId : item.sId) === value.toString());
2374 2706 if (!commonUtils.isEmpty(sAssignField)) {
2375 2707 /* 赋值数组 */
2376   - const sAssignFieldObj = sAssignField.split(',');
  2708 + const sAssignFieldObj = sAssignField.split(",");
2377 2709 if (commonUtils.isNotEmptyObject(changeData)) {
2378 2710 for (const child of sAssignFieldObj) {
2379   - if (child.indexOf(':') > -1) {
2380   - const sFieldName = child.split(':')[0].trim() === 'self' ? this.props.showConfig.sName : child.split(':')[0].trim();
2381   - const sValueName = child.split(':')[1].trim();
  2711 + if (child.indexOf(":") > -1) {
  2712 + const sFieldName = child.split(":")[0].trim() === "self" ? this.props.showConfig.sName : child.split(":")[0].trim();
  2713 + const sValueName = child.split(":")[1].trim();
2382 2714 // returnValue[sFieldName] = changeData[sValueName] || changeData.value;
2383 2715 returnValue[sFieldName] = changeData[sValueName] === 0 ? 0 : changeData[sValueName] || changeData.value;
2384 2716 }
... ... @@ -2386,26 +2718,28 @@ export default class CommonComponent extends Component {
2386 2718 } else if (!this.props.showConfig.bCanInput) {
2387 2719 // 下拉选择空时,需要, bCanInput一定要为false不然印件名称输入时也被置空了
2388 2720 for (const child of sAssignFieldObj) {
2389   - if (child.indexOf(':') > -1) {
2390   - const sFieldName = child.split(':')[0].trim() === 'self' ? this.props.showConfig.sName : child.split(':')[0].trim();
2391   - returnValue[sFieldName] = '';
  2721 + if (child.indexOf(":") > -1) {
  2722 + const sFieldName = child.split(":")[0].trim() === "self" ? this.props.showConfig.sName : child.split(":")[0].trim();
  2723 + returnValue[sFieldName] = "";
2392 2724 }
2393 2725 }
2394 2726 }
2395 2727 }
2396 2728 } else {
2397 2729 const { sAssignField } = this.props.showConfig;
2398   - const changeData = dropDownDataNew.filter(item => (`,${value.toString()},`).includes((!commonUtils.isEmpty(item.sSlaveId) ? `,${item.sSlaveId},` : `,${item.sId},`)));
  2730 + const changeData = dropDownDataNew.filter(item =>
  2731 + `,${value.toString()},`.includes(!commonUtils.isEmpty(item.sSlaveId) ? `,${item.sSlaveId},` : `,${item.sId},`)
  2732 + );
2399 2733 if (!commonUtils.isEmpty(sAssignField)) {
2400 2734 /* 赋值数组 */
2401   - const sAssignFieldObj = sAssignField.split(',');
  2735 + const sAssignFieldObj = sAssignField.split(",");
2402 2736 if (commonUtils.isNotEmptyArr(changeData)) {
2403 2737 for (const child of sAssignFieldObj) {
2404   - if (child.indexOf(':') > -1) {
2405   - const sFieldName = child.split(':')[0].trim() === 'self' ? this.props.showConfig.sName : child.split(':')[0].trim();
2406   - const sValueName = child.split(':')[1].trim();
  2738 + if (child.indexOf(":") > -1) {
  2739 + const sFieldName = child.split(":")[0].trim() === "self" ? this.props.showConfig.sName : child.split(":")[0].trim();
  2740 + const sValueName = child.split(":")[1].trim();
2407 2741 const valueArr = [];
2408   - changeData.forEach((itemData) => {
  2742 + changeData.forEach(itemData => {
2409 2743 valueArr.push(itemData[sValueName]);
2410 2744 });
2411 2745 returnValue[sFieldName] = valueArr.toString();
... ... @@ -2414,9 +2748,9 @@ export default class CommonComponent extends Component {
2414 2748 } else if (!this.props.showConfig.bCanInput) {
2415 2749 // 下拉选择空时,需要, bCanInput一定要为false不然印件名称输入时也被置空了
2416 2750 for (const child of sAssignFieldObj) {
2417   - if (child.indexOf(':') > -1) {
2418   - const sFieldName = child.split(':')[0].trim() === 'self' ? this.props.showConfig.sName : child.split(':')[0].trim();
2419   - returnValue[sFieldName] = '';
  2751 + if (child.indexOf(":") > -1) {
  2752 + const sFieldName = child.split(":")[0].trim() === "self" ? this.props.showConfig.sName : child.split(":")[0].trim();
  2753 + returnValue[sFieldName] = "";
2420 2754 }
2421 2755 }
2422 2756 }
... ... @@ -2426,15 +2760,25 @@ export default class CommonComponent extends Component {
2426 2760 // 处理原因:如果已选数据不在下拉数据中时(比如懒加载模式),会过滤掉已选数据
2427 2761 if (commonUtils.isNotEmptyArr(Object.keys(returnValue))) {
2428 2762 const [returnValueKey0, returnValueValue0] = [Object.keys(returnValue)[0], Object.values(returnValue)[0]];
2429   - if (returnValueValue0.split(',').length !== value.split(',').length || (returnValueValue0 === '' && value !== '')) {
  2763 + if (returnValueValue0.split(",").length !== value.split(",").length || (returnValueValue0 === "" && value !== "")) {
2430 2764 returnValue[returnValueKey0] = value;
2431 2765 }
2432 2766 }
2433 2767 }
2434 2768  
2435   - if (this.state.searchPageNum !== 0 || this.state.searchTotalPageCount !== 1 || this.state.searchDropDownData !== [] || this.state.searchValue !== '' || this.state.spinState !== false) {
  2769 + if (
  2770 + this.state.searchPageNum !== 0 ||
  2771 + this.state.searchTotalPageCount !== 1 ||
  2772 + this.state.searchDropDownData !== [] ||
  2773 + this.state.searchValue !== "" ||
  2774 + this.state.spinState !== false
  2775 + ) {
2436 2776 this.setState({
2437   - searchPageNum: 0, searchTotalPageCount: 1, searchDropDownData: [], searchValue: '', spinState: false,
  2777 + searchPageNum: 0,
  2778 + searchTotalPageCount: 1,
  2779 + searchDropDownData: [],
  2780 + searchValue: "",
  2781 + spinState: false,
2438 2782 });
2439 2783 }
2440 2784 // /* 调用父组件的回带函数 */
... ... @@ -2442,7 +2786,7 @@ export default class CommonComponent extends Component {
2442 2786  
2443 2787 clearTimeout(this.onChangeTimer);
2444 2788 this.onChangeTimer = setTimeout(() => {
2445   - this.onExecInstructSet('change');
  2789 + this.onExecInstructSet("change");
2446 2790 }, 500);
2447 2791 };
2448 2792  
... ... @@ -2489,22 +2833,31 @@ export default class CommonComponent extends Component {
2489 2833 if (newValue === undefined) {
2490 2834 return;
2491 2835 }
2492   - if (newValue.target && newValue.target.type !== 'checkbox') {
  2836 + if (newValue.target && newValue.target.type !== "checkbox") {
2493 2837 newValue = newValue.target.value;
2494 2838 }
2495 2839 /* 下拉新增单独处理 */
2496   - const dMachine = ['dMachineLength', 'dMachineWidth'].includes(this.props.showConfig.sName);
  2840 + const dMachine = ["dMachineLength", "dMachineWidth"].includes(this.props.showConfig.sName);
2497 2841 if (dMachine) {
2498 2842 if (!/^\d+(\.\d+)?(\*\d+(\.\d+)?)?$/.test(newValue)) {
2499   - newValue = '';
  2843 + newValue = "";
2500 2844 setTimeout(() => {
2501   - this.setState({ searchValue: '' });
  2845 + this.setState({ searchValue: "" });
2502 2846 }, 1200);
2503 2847 }
2504 2848 }
2505   - const dEmptyValue = this.props.showConfig.sName === 'dMachineLength' || this.props.showConfig.sName === 'dMachineWidth' ? newValue : 0; /* 设置数值型为空值时 数据置为0 或空值 */
2506   - let value = this.firstDataIndex === 's' && !this.props.textArea && commonUtils.isEmpty(newValue) ? newValue.replace('--', '') :
2507   - this.firstDataIndex === 't' ? dateString : (this.firstDataIndex === 'd' || this.firstDataIndex === 'i') && commonUtils.isEmpty(newValue) ? dEmptyValue : newValue;
  2849 + const dEmptyValue =
  2850 + this.props.showConfig.sName === "dMachineLength" || this.props.showConfig.sName === "dMachineWidth"
  2851 + ? newValue
  2852 + : 0; /* 设置数值型为空值时 数据置为0 或空值 */
  2853 + let value =
  2854 + this.firstDataIndex === "s" && !this.props.textArea && commonUtils.isEmpty(newValue)
  2855 + ? newValue.replace("--", "")
  2856 + : this.firstDataIndex === "t"
  2857 + ? dateString
  2858 + : (this.firstDataIndex === "d" || this.firstDataIndex === "i") && commonUtils.isEmpty(newValue)
  2859 + ? dEmptyValue
  2860 + : newValue;
2508 2861 value = this.props.showConfig.bMultipleChoice ? value.toString() : value;
2509 2862  
2510 2863 // if (this.props.showConfig.sName === 'dMachineLength' || this.props.showConfig.sName === 'dMachineWidth') { /* 处理上机长宽 下拉数据 数据分割错误问题 */
... ... @@ -2512,18 +2865,20 @@ export default class CommonComponent extends Component {
2512 2865 // }
2513 2866  
2514 2867 this.isDropdownFilter = true;
2515   - if (this.props.showConfig.sDropDownType === 'sql' && value === '@#*000@') {
  2868 + if (this.props.showConfig.sDropDownType === "sql" && value === "@#*000@") {
2516 2869 this.props.handleSqlDropDownNewRecord(this.props.showConfig, this.props.name);
2517 2870 if (this.mounted) {
2518   - this.setState({ dataValue: '' });
  2871 + this.setState({ dataValue: "" });
2519 2872 }
2520 2873 return;
2521 2874 }
2522   - if (this.props.showConfig.sDropDownType === 'sql' && value === '=+@') { /* 如果是选择空值,则将特殊字符过滤为空值 */
2523   - value = '';
  2875 + if (this.props.showConfig.sDropDownType === "sql" && value === "=+@") {
  2876 + /* 如果是选择空值,则将特殊字符过滤为空值 */
  2877 + value = "";
2524 2878 }
2525   - if (this.props.showConfig.sDropDownType === 'const' && value === '=+@') { /* 如果是选择空值,则将特殊字符过滤为空值 */
2526   - value = '';
  2879 + if (this.props.showConfig.sDropDownType === "const" && value === "=+@") {
  2880 + /* 如果是选择空值,则将特殊字符过滤为空值 */
  2881 + value = "";
2527 2882 }
2528 2883  
2529 2884 /* 回带值声明 */
... ... @@ -2533,56 +2888,75 @@ export default class CommonComponent extends Component {
2533 2888 /* 回带值赋值(sName:value) */
2534 2889 returnValue[this.props.showConfig.sName] =
2535 2890 // this.firstDataIndex === 's' && this.props.textArea ? value.target.value :
2536   - this.firstDataIndex === 'i' ? commonUtils.isEmpty(value) ? undefined : this.props.showConfig.sName === 'iOrder' ? value : parseInt(value, 0) :
2537   - this.firstDataIndex === 'd' ? commonUtils.isEmpty(value) ? dMachine ? '' : undefined : value : // this.floatNumberCheck(value) :
2538   - this.firstDataIndex === 't' ? commonUtils.isEmpty(value) ? null : value :
2539   - this.firstDataIndex === 'b' ? value.target.checked : value === null ? undefined : value;
  2891 + this.firstDataIndex === "i"
  2892 + ? commonUtils.isEmpty(value)
  2893 + ? undefined
  2894 + : this.props.showConfig.sName === "iOrder"
  2895 + ? value
  2896 + : parseInt(value, 0)
  2897 + : this.firstDataIndex === "d"
  2898 + ? commonUtils.isEmpty(value)
  2899 + ? dMachine
  2900 + ? ""
  2901 + : undefined
  2902 + : value // this.floatNumberCheck(value) :
  2903 + : this.firstDataIndex === "t"
  2904 + ? commonUtils.isEmpty(value)
  2905 + ? null
  2906 + : value
  2907 + : this.firstDataIndex === "b"
  2908 + ? value.target.checked
  2909 + : value === null
  2910 + ? undefined
  2911 + : value;
2540 2912 if (!this.props.showConfig.bMultipleChoice) {
2541 2913 const { sAssignField } = this.props.showConfig;
2542 2914 // const [changeData] = dropDownDataNew.filter(item => (!commonUtils.isEmpty(item.sSlaveId) ? item.sSlaveId : item.sId) === newKey.toString());
2543   - let res = '';
  2915 + let res = "";
2544 2916 if (dropDownDataNew.length > 0) {
2545 2917 if (commonUtils.isNotEmptyStr(this.props.showConfig.sVisColumnName)) {
2546 2918 res = this.props.showConfig.sVisColumnName;
2547 2919 } else {
2548   - res = Object.keys(dropDownDataNew[0]).length > 0 ? Object.keys(dropDownDataNew[0])[0] : '';
  2920 + res = Object.keys(dropDownDataNew[0]).length > 0 ? Object.keys(dropDownDataNew[0])[0] : "";
2549 2921 }
2550 2922 }
2551 2923 const [changeData] = dropDownDataNew.filter(item => (!commonUtils.isEmpty(res) ? item[res] : item.sId) === value.toString());
2552 2924 if (!commonUtils.isEmpty(sAssignField)) {
2553 2925 /* 赋值数组 */
2554   - const sAssignFieldObj = sAssignField.split(',');
  2926 + const sAssignFieldObj = sAssignField.split(",");
2555 2927 if (commonUtils.isNotEmptyObject(changeData)) {
2556 2928 for (const child of sAssignFieldObj) {
2557   - if (child.indexOf(':') > -1) {
2558   - const sFieldName = child.split(':')[0].trim() === 'self' ? this.props.showConfig.sName : child.split(':')[0].trim();
2559   - const sValueName = child.split(':')[1].trim();
  2929 + if (child.indexOf(":") > -1) {
  2930 + const sFieldName = child.split(":")[0].trim() === "self" ? this.props.showConfig.sName : child.split(":")[0].trim();
  2931 + const sValueName = child.split(":")[1].trim();
2560 2932 returnValue[sFieldName] = changeData[sValueName] || changeData.value;
2561 2933 }
2562 2934 }
2563 2935 } else if (!this.props.showConfig.bCanInput) {
2564 2936 // 下拉选择空时,需要, bCanInput一定要为false不然印件名称输入时也被置空了
2565 2937 for (const child of sAssignFieldObj) {
2566   - if (child.indexOf(':') > -1) {
2567   - const sFieldName = child.split(':')[0].trim() === 'self' ? this.props.showConfig.sName : child.split(':')[0].trim();
2568   - returnValue[sFieldName] = '';
  2938 + if (child.indexOf(":") > -1) {
  2939 + const sFieldName = child.split(":")[0].trim() === "self" ? this.props.showConfig.sName : child.split(":")[0].trim();
  2940 + returnValue[sFieldName] = "";
2569 2941 }
2570 2942 }
2571 2943 }
2572 2944 }
2573 2945 } else {
2574 2946 const { sAssignField } = this.props.showConfig;
2575   - const changeData = dropDownDataNew.filter(item => (`,${value.toString()},`).includes((!commonUtils.isEmpty(item.sSlaveId) ? `,${item.sSlaveId},` : `,${item.sId},`)));
  2947 + const changeData = dropDownDataNew.filter(item =>
  2948 + `,${value.toString()},`.includes(!commonUtils.isEmpty(item.sSlaveId) ? `,${item.sSlaveId},` : `,${item.sId},`)
  2949 + );
2576 2950 if (!commonUtils.isEmpty(sAssignField)) {
2577 2951 /* 赋值数组 */
2578   - const sAssignFieldObj = sAssignField.split(',');
  2952 + const sAssignFieldObj = sAssignField.split(",");
2579 2953 if (commonUtils.isNotEmptyArr(changeData)) {
2580 2954 for (const child of sAssignFieldObj) {
2581   - if (child.indexOf(':') > -1) {
2582   - const sFieldName = child.split(':')[0].trim() === 'self' ? this.props.showConfig.sName : child.split(':')[0].trim();
2583   - const sValueName = child.split(':')[1].trim();
  2955 + if (child.indexOf(":") > -1) {
  2956 + const sFieldName = child.split(":")[0].trim() === "self" ? this.props.showConfig.sName : child.split(":")[0].trim();
  2957 + const sValueName = child.split(":")[1].trim();
2584 2958 const valueArr = [];
2585   - changeData.forEach((itemData) => {
  2959 + changeData.forEach(itemData => {
2586 2960 valueArr.push(itemData[sValueName]);
2587 2961 });
2588 2962 returnValue[sFieldName] = valueArr.toString();
... ... @@ -2591,22 +2965,32 @@ export default class CommonComponent extends Component {
2591 2965 } else if (!this.props.showConfig.bCanInput) {
2592 2966 // 下拉选择空时,需要, bCanInput一定要为false不然印件名称输入时也被置空了
2593 2967 for (const child of sAssignFieldObj) {
2594   - if (child.indexOf(':') > -1) {
2595   - const sFieldName = child.split(':')[0].trim() === 'self' ? this.props.showConfig.sName : child.split(':')[0].trim();
2596   - returnValue[sFieldName] = '';
  2968 + if (child.indexOf(":") > -1) {
  2969 + const sFieldName = child.split(":")[0].trim() === "self" ? this.props.showConfig.sName : child.split(":")[0].trim();
  2970 + returnValue[sFieldName] = "";
2597 2971 }
2598 2972 }
2599 2973 }
2600 2974 }
2601 2975 }
2602   - if (this.state.searchPageNum !== 0 || this.state.searchTotalPageCount !== 1 || this.state.searchDropDownData !== [] || this.state.searchValue !== '' || this.state.spinState !== false) {
  2976 + if (
  2977 + this.state.searchPageNum !== 0 ||
  2978 + this.state.searchTotalPageCount !== 1 ||
  2979 + this.state.searchDropDownData !== [] ||
  2980 + this.state.searchValue !== "" ||
  2981 + this.state.spinState !== false
  2982 + ) {
2603 2983 this.setState({
2604   - searchPageNum: 0, searchTotalPageCount: 1, searchDropDownData: [], searchValue: '', spinState: false,
  2984 + searchPageNum: 0,
  2985 + searchTotalPageCount: 1,
  2986 + searchDropDownData: [],
  2987 + searchValue: "",
  2988 + spinState: false,
2605 2989 });
2606 2990 }
2607 2991 // /* 调用父组件的回带函数 */
2608 2992 let bSpecial = true;
2609   - if (location.pathname && location.pathname.includes('ResearchTableTree')) {
  2993 + if (location.pathname && location.pathname.includes("ResearchTableTree")) {
2610 2994 bSpecial = false;
2611 2995 }
2612 2996 if (bSpecial && this.state.dataValue === returnValue[this.props.showConfig.sName]) {
... ... @@ -2625,7 +3009,7 @@ export default class CommonComponent extends Component {
2625 3009  
2626 3010 clearTimeout(this.onChangeTimer);
2627 3011 this.onChangeTimer = setTimeout(() => {
2628   - this.onExecInstructSet('change');
  3012 + this.onExecInstructSet("change");
2629 3013 }, 500);
2630 3014 };
2631 3015 // handleCompleteOptionEvent = (newValue, dateString) => {
... ... @@ -2740,64 +3124,65 @@ export default class CommonComponent extends Component {
2740 3124 filterOption = (input, option) => {
2741 3125 const { pageNum, totalPageCount } = this.state;
2742 3126 const newInput = input.toString().trim(); /* 下拉框默认为空 不需要替换'--’ */
2743   - if (pageNum <= totalPageCount && this.props.showConfig.sDropDownType === 'sql' && commonUtils.isEmptyArr(this.props.showConfig.dropDownData)) {
  3127 + if (pageNum <= totalPageCount && this.props.showConfig.sDropDownType === "sql" && commonUtils.isEmptyArr(this.props.showConfig.dropDownData)) {
2744 3128 return true;
2745 3129 } else if (commonUtils.isNotEmptyObject(option.props.children)) {
2746 3130 try {
2747   - return (!this.isDropdownFilter && this.props.showConfig.bCanInput) ? true : (option.props.children.toLowerCase().indexOf(newInput.toLowerCase()) >= 0);
  3131 + return !this.isDropdownFilter && this.props.showConfig.bCanInput
  3132 + ? true
  3133 + : option.props.children.toLowerCase().indexOf(newInput.toLowerCase()) >= 0;
2748 3134 } catch (error) {
2749 3135 return false;
2750 3136 }
2751 3137 }
2752 3138 };
2753 3139  
2754   -
2755 3140 /**
2756 3141 * 小数校验
2757 3142 */
2758   - floatNumberCheck = (num) => {
  3143 + floatNumberCheck = num => {
2759 3144 const dNetPrice = this.props.app?.decimals?.dNetPrice;
2760   - const Maximum = commonFunc.showLocalMessage(this.props, 'Maximum', '最多输入${digit}位小数');
  3145 + const Maximum = commonFunc.showLocalMessage(this.props, "Maximum", "最多输入${digit}位小数");
2761 3146 const { showConfig } = this.props;
2762 3147 const { sName, showName } = showConfig;
2763   - const digit = sName.includes('Price') && dNetPrice ? dNetPrice : 6;
2764   - const Maximun = Maximum.replace('${digit}', digit);
2765   - if (typeof num === 'string') {
2766   - num = num.replace('*', '');
  3148 + const digit = sName.includes("Price") && dNetPrice ? dNetPrice : 6;
  3149 + const Maximun = Maximum.replace("${digit}", digit);
  3150 + if (typeof num === "string") {
  3151 + num = num.replace("*", "");
2767 3152 }
2768 3153 const checkRule = new RegExp(`^(-?\\d+)(\\.?)(\\d{1,${digit}})?$`);
2769   - if (!checkRule.test(num) && num && num !== '-' && num !== '.') {
  3154 + if (!checkRule.test(num) && num && num !== "-" && num !== ".") {
2770 3155 message.warning(`【${showName}】【${sName}】${Maximun}`);
2771 3156 return undefined;
2772 3157 } else {
2773 3158 return num;
2774 3159 }
2775   - }
  3160 + };
2776 3161  
2777 3162 /** 小数位控制 noinspection JSAnnotator控制 string | number */
2778   - limitDecimals = (values) => {
2779   - let reg = '';
  3163 + limitDecimals = values => {
  3164 + let reg = "";
2780 3165 if (this.floatNum > 0) {
2781 3166 reg = `^(\\d+).(${this.floatPrice})*$`;
2782 3167 } else {
2783   - reg = '^(\\d+).(\\d\\d\\d\\d\\d\\d)*$';
  3168 + reg = "^(\\d+).(\\d\\d\\d\\d\\d\\d)*$";
2784 3169 }
2785   - if (typeof values === 'string') {
2786   - if (values !== undefined && values.indexOf('.') <= -1) {
2787   - reg = '^(\\d+)*$';
2788   - return !isNaN(Number(values)) ? values.replace(new RegExp(reg), '$1') : '';
  3170 + if (typeof values === "string") {
  3171 + if (values !== undefined && values.indexOf(".") <= -1) {
  3172 + reg = "^(\\d+)*$";
  3173 + return !isNaN(Number(values)) ? values.replace(new RegExp(reg), "$1") : "";
2789 3174 } else {
2790   - return !isNaN(Number(values)) ? values.replace(new RegExp(reg), '$1.$2') : '';
  3175 + return !isNaN(Number(values)) ? values.replace(new RegExp(reg), "$1.$2") : "";
2791 3176 }
2792   - } else if (typeof values === 'number') {
2793   - if (values !== undefined && String(values).indexOf('.') <= -1) {
2794   - reg = '^(\\d+)*$';
2795   - return !isNaN(values) ? String(values).replace(new RegExp(reg), '$1') : '';
  3177 + } else if (typeof values === "number") {
  3178 + if (values !== undefined && String(values).indexOf(".") <= -1) {
  3179 + reg = "^(\\d+)*$";
  3180 + return !isNaN(values) ? String(values).replace(new RegExp(reg), "$1") : "";
2796 3181 } else {
2797   - return !isNaN(values) ? String(values).replace(new RegExp(reg), '$1.$2') : '';
  3182 + return !isNaN(values) ? String(values).replace(new RegExp(reg), "$1.$2") : "";
2798 3183 }
2799 3184 } else {
2800   - return '';
  3185 + return "";
2801 3186 }
2802 3187 };
2803 3188  
... ... @@ -2806,46 +3191,59 @@ export default class CommonComponent extends Component {
2806 3191 const { sControlName, sActiveKey } = showConfig; /* 弹出标志,弹出界面对应数据主字段 */
2807 3192 if (commonUtils.isNotEmptyObject(sControlName) && commonUtils.isNotEmptyObject(sActiveKey)) {
2808 3193 const printPdf = sControlName;
2809   - if (commonUtils.isNotEmptyObject(printPdf) && printPdf === 'printPdf' && commonUtils.isNotEmptyObject(sActiveKey)) {
  3194 + if (commonUtils.isNotEmptyObject(printPdf) && printPdf === "printPdf" && commonUtils.isNotEmptyObject(sActiveKey)) {
2810 3195 const { token } = app;
2811   - const sActiveId = this.props.showConfig.sActiveId === '1' ? commonUtils.isEmpty(record.sFormId) ? record.sSrcFormId : record.sFormId : this.props.showConfig.sActiveId;
  3196 + const sActiveId =
  3197 + this.props.showConfig.sActiveId === "1"
  3198 + ? commonUtils.isEmpty(record.sFormId)
  3199 + ? record.sSrcFormId
  3200 + : record.sFormId
  3201 + : this.props.showConfig.sActiveId;
2812 3202 const printsId = record[sActiveKey];
2813   - const urlPrint = `${commonConfig.file_host}printReport/printPdfByFromDataId/${printsId}.pdf?sModelsId=${sActiveId}&sId=${printsId}&token=${encodeURIComponent(token)}`;
  3203 + const urlPrint = `${
  3204 + commonConfig.file_host
  3205 + }printReport/printPdfByFromDataId/${printsId}.pdf?sModelsId=${sActiveId}&sId=${printsId}&token=${encodeURIComponent(token)}`;
2814 3206 // const urlPrint = `${commonConfig.file_host}printReport/printPdfByFromDataId?sModelsId=${sActiveId}&sId=${printsId}&token=${encodeURIComponent(token)}`;
2815 3207 window.open(urlPrint);
2816   - } else if (showConfig.sDropDownType && showConfig.sDropDownType.toLowerCase().includes('picarrmodal')) { /* 蓝色链接跳转用Modal呈现 */
  3208 + } else if (showConfig.sDropDownType && showConfig.sDropDownType.toLowerCase().includes("picarrmodal")) {
  3209 + /* 蓝色链接跳转用Modal呈现 */
2817 3210 // this.props.onTabModalClick(name, sName, record, index, showConfig, configName);
2818 3211 this.props.onTabModalClick(this.props.name, this.props.showConfig.sName, record, undefined, showConfig, this.props.sName);
2819 3212 } else {
2820 3213 this.props.onViewClick(this.props.name, this.props.showConfig.sName, this.props.record);
2821 3214 }
2822   - } else if (showConfig.sDropDownType && showConfig.sDropDownType.toLowerCase().includes('picarrmodal')) { /* 蓝色链接跳转用Modal呈现 */
  3215 + } else if (showConfig.sDropDownType && showConfig.sDropDownType.toLowerCase().includes("picarrmodal")) {
  3216 + /* 蓝色链接跳转用Modal呈现 */
2823 3217 // this.props.onTabModalClick(name, sName, record, index, showConfig, configName);
2824 3218 this.props.onTabModalClick(this.props.name, this.props.showConfig.sName, record, undefined, showConfig, this.props.sName);
2825 3219 } else {
2826 3220 this.props.onViewClick(this.props.name, this.props.showConfig.sName, this.props.record);
2827 3221 }
2828   - }
  3222 + };
2829 3223  
2830 3224 /* 打开新窗口查看SQL编辑器 */
2831 3225 handleOpenWin = () => {
2832 3226 const { dataValue, showConfig, record } = this.props;
2833 3227 // eslint-disable-next-line prefer-destructuring
2834 3228 const sBtnName = showConfig.sName;
2835   - const sBtnContent = commonUtils.isNotEmptyObject(dataValue) ? encodeURIComponent(dataValue) : '';
2836   - const sBtnControlName = commonUtils.isNotEmptyObject(showConfig.sName) ? showConfig.sName : '';
  3229 + const sBtnContent = commonUtils.isNotEmptyObject(dataValue) ? encodeURIComponent(dataValue) : "";
  3230 + const sBtnControlName = commonUtils.isNotEmptyObject(showConfig.sName) ? showConfig.sName : "";
2837 3231 if (commonUtils.isNotEmptyObject(sBtnContent) && commonUtils.isNotEmptyObject(record)) {
2838   - const sFormId = commonUtils.isNotEmptyObject(record.sParentId) ? record.sParentId : '';
  3232 + const sFormId = commonUtils.isNotEmptyObject(record.sParentId) ? record.sParentId : "";
2839 3233 const urlPrint = `${commonConfig.server_host}template/getSql/${sBtnName}/?sBtnContent=${sBtnContent}&sBtnControlName=${sBtnControlName}&sFormId=${sFormId}`;
2840 3234 const w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
2841 3235 const h = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
2842 3236 // const newWin = window.open('','_blank');
2843   - const features = `width=${w + 350},height=${h + 300}, top=0, left=0, toolbar=no, menubar=no,scrollbars=no,resizable=no, location =no, status=no`;
2844   - const newWin = window.open('', 'SQL查看器', features);
2845   - newWin.document.write(`<body scroll="no" style="margin: 0px;padding: 0px;border:0px;overflow:hidden;"><iframe style="margin: 0px;padding: 0px;border: 0px;width:100%;height:100%" src="${urlPrint}"></iframe></body>`);
  3237 + const features = `width=${w + 350},height=${
  3238 + h + 300
  3239 + }, top=0, left=0, toolbar=no, menubar=no,scrollbars=no,resizable=no, location =no, status=no`;
  3240 + const newWin = window.open("", "SQL查看器", features);
  3241 + newWin.document.write(
  3242 + `<body scroll="no" style="margin: 0px;padding: 0px;border:0px;overflow:hidden;"><iframe style="margin: 0px;padding: 0px;border: 0px;width:100%;height:100%" src="${urlPrint}"></iframe></body>`
  3243 + );
2846 3244 // window.open(urlPrint);
2847 3245 } else {
2848   - message.error('未找到对应过程名');
  3246 + message.error("未找到对应过程名");
2849 3247 }
2850 3248 };
2851 3249  
... ... @@ -2855,34 +3253,36 @@ export default class CommonComponent extends Component {
2855 3253 const { name, record, showConfig } = this.props;
2856 3254 this.props.onRightArrow(name, showConfig.sName, record, undefined, showConfig);
2857 3255 }
2858   - }
  3256 + };
2859 3257  
2860 3258 handlePreviewImage = (e, dataUrl) => {
2861 3259 e.stopPropagation();
2862 3260 this.props.onPreviewImage(e, dataUrl);
2863   - }
  3261 + };
2864 3262 handleViewChoose = () => {
2865   - const bGycs = this.props.showConfig?.showName?.includes('工艺参数');
  3263 + const bGycs = this.props.showConfig?.showName?.includes("工艺参数");
2866 3264 if (this.state.enabled || bGycs) this.props.onViewChoose(this.props.name, this.props.showConfig.sName, this.props.record);
2867   - }
2868   - handleMemoShow= () => {
  3265 + };
  3266 + handleMemoShow = () => {
2869 3267 this.props.onMemoShow(this.props.name, this.props.showConfig.sName, this.props.record, 0, this.props.showConfig);
2870   - }
  3268 + };
2871 3269  
2872   - handlePreviewOffice = (dataUrl) => {
  3270 + handlePreviewOffice = dataUrl => {
2873 3271 this.props.onPreviewOffice(dataUrl);
2874   - }
  3272 + };
2875 3273  
2876   - handlePopupScroll = (e) => {
  3274 + handlePopupScroll = e => {
2877 3275 e.persist();
2878 3276 const { target } = e;
2879   - if (Math.ceil(target.scrollTop + target.offsetHeight) >= target.scrollHeight && this.props.showConfig.sDropDownType === 'sql' && commonUtils.isEmptyArr(this.props.showConfig.dropDownData)) {
2880   - const {
2881   - pageNum, searchPageNum, searchTotalPageCount, searchValue, totalPageCount,
2882   - } = this.state;
  3277 + if (
  3278 + Math.ceil(target.scrollTop + target.offsetHeight) >= target.scrollHeight &&
  3279 + this.props.showConfig.sDropDownType === "sql" &&
  3280 + commonUtils.isEmptyArr(this.props.showConfig.dropDownData)
  3281 + ) {
  3282 + const { pageNum, searchPageNum, searchTotalPageCount, searchValue, totalPageCount } = this.state;
2883 3283 const nextPageNum = pageNum + 1;
2884 3284 const nextSearchPageNum = searchPageNum + 1;
2885   - if (searchValue !== '') {
  3285 + if (searchValue !== "") {
2886 3286 this.getDropDownData(nextSearchPageNum, searchTotalPageCount, searchValue);
2887 3287 } else {
2888 3288 this.getDropDownData(nextPageNum, totalPageCount, searchValue);
... ... @@ -2890,12 +3290,12 @@ export default class CommonComponent extends Component {
2890 3290 }
2891 3291 };
2892 3292  
2893   - handleSearch = (value) => {
  3293 + handleSearch = value => {
2894 3294 if (this.dropDownTimer) {
2895 3295 clearTimeout(this.dropDownTimer);
2896 3296 }
2897 3297 this.dropDownTimer = setTimeout(() => {
2898   - if (this.props.showConfig.sDropDownType === 'sql' && commonUtils.isEmptyArr(this.props.showConfig.dropDownData)) {
  3298 + if (this.props.showConfig.sDropDownType === "sql" && commonUtils.isEmptyArr(this.props.showConfig.dropDownData)) {
2899 3299 this.setState({ spinState: true });
2900 3300 this.getDropDownData(1, 1, value);
2901 3301 }
... ... @@ -2913,67 +3313,95 @@ export default class CommonComponent extends Component {
2913 3313 const btCostomIndex = gdsconfigformslave.findIndex(item => item.sControlName === `BtnCustom.${sName}`);
2914 3314  
2915 3315 /* 获取innerinput控件 */
2916   - const innerInput = btPopIndex > -1 && btCostomIndex > -1 ? (
2917   - <Space className={styles.commonAntSpace} size={3}>
2918   - {this.getInnerInput(innerInputProps)}
2919   - {this.getInnerButton()}
2920   - {this.getInnerButtonCostom(gdsconfigformslave[btCostomIndex])}
2921   - <div />
2922   - </Space>
2923   - ) : btPopIndex !== -1 ? (
2924   - <Space className={styles.commonAntSpace} size={3}>
2925   - {this.getInnerInput(innerInputProps)}
2926   - {this.getInnerButton()}
2927   - <div />
2928   - </Space>
2929   - ) : btCostomIndex !== -1 ? (
2930   - <Space className={styles.commonAntSpace} size={3}>
2931   - {this.getInnerInput(innerInputProps)}
2932   - {this.getInnerButtonCostom(gdsconfigformslave[btCostomIndex])}
2933   - <div />
2934   - </Space>
2935   - ) : this.getInnerInput(innerInputProps);
2936   -
2937   - let viewInfo = '';
2938   - if (this.props.showConfig.sDropDownType !== 'popup' && !commonUtils.isEmpty(this.props.showConfig.sActiveId) && !commonUtils.isEmpty(this.props.showConfig.sActiveKey) && (commonUtils.isNotEmptyObject(this.props.dataValue) || commonUtils.isNotEmptyNumber(this.props.dataValue))) {
  3316 + const innerInput =
  3317 + btPopIndex > -1 && btCostomIndex > -1 ? (
  3318 + <Space className={styles.commonAntSpace} size={3}>
  3319 + {this.getInnerInput(innerInputProps)}
  3320 + {this.getInnerButton()}
  3321 + {this.getInnerButtonCostom(gdsconfigformslave[btCostomIndex])}
  3322 + <div />
  3323 + </Space>
  3324 + ) : btPopIndex !== -1 ? (
  3325 + <Space className={styles.commonAntSpace} size={3}>
  3326 + {this.getInnerInput(innerInputProps)}
  3327 + {this.getInnerButton()}
  3328 + <div />
  3329 + </Space>
  3330 + ) : btCostomIndex !== -1 ? (
  3331 + <Space className={styles.commonAntSpace} size={3}>
  3332 + {this.getInnerInput(innerInputProps)}
  3333 + {this.getInnerButtonCostom(gdsconfigformslave[btCostomIndex])}
  3334 + <div />
  3335 + </Space>
  3336 + ) : (
  3337 + this.getInnerInput(innerInputProps)
  3338 + );
  3339 +
  3340 + let viewInfo = "";
  3341 + if (
  3342 + this.props.showConfig.sDropDownType !== "popup" &&
  3343 + !commonUtils.isEmpty(this.props.showConfig.sActiveId) &&
  3344 + !commonUtils.isEmpty(this.props.showConfig.sActiveKey) &&
  3345 + (commonUtils.isNotEmptyObject(this.props.dataValue) || commonUtils.isNotEmptyNumber(this.props.dataValue))
  3346 + ) {
2939 3347 viewInfo = (
2940 3348 <div
2941   - className={this.state.sActiveDisplay ? 'sActiveIdStyle sActiveIdStyleBlock' : 'sActiveIdStyle sActiveIdStyleNone'}
  3349 + className={this.state.sActiveDisplay ? "sActiveIdStyle sActiveIdStyleBlock" : "sActiveIdStyle sActiveIdStyleNone"}
2942 3350 title={this.props.dataValue}
2943 3351 style={{
2944   - display: this.state.sActiveDisplay ? 'block' : 'none',
  3352 + display: this.state.sActiveDisplay ? "block" : "none",
2945 3353 // top: this.props.name === 'slaveInfo' ? '1px' : '',
2946 3354 // left: this.props.name === 'slaveInfo' ? '2px' : this.props.name === 'master' ? '1px' : '',
2947   - position: 'absolute',
2948   - height: '100%',
2949   - overflow: 'hidden',
  3355 + position: "absolute",
  3356 + height: "100%",
  3357 + overflow: "hidden",
2950 3358 }}
2951 3359 >
2952 3360 <span
2953 3361 onClick={this.handleViewClick}
2954 3362 className="masterLinkSpan"
2955 3363 style={{
2956   - transform: 'none',
  3364 + transform: "none",
2957 3365 top: 0,
2958 3366 }}
2959 3367 >
2960 3368 {this.props.dataValue}
2961 3369 </span>
2962   - </div>);
  3370 + </div>
  3371 + );
2963 3372 }
2964   - const sModelsType = commonUtils.isNotEmptyObject(this.props) && commonUtils.isNotEmptyObject(this.props.app) ? this.props.app.currentPane.sModelsType : '';
2965   - const pleaseSelect = commonUtils.isNotEmptyObject(this.props) && commonUtils.isNotEmptyObject(this.props.app) ? commonFunc.showMessage(this.props.app.commonConst, 'pleaseSelect') : '请选择' ;
2966   - const combinedInfo = commonUtils.isNotEmptyObject(this.props) && commonUtils.isNotEmptyObject(this.props.app) ? commonFunc.showMessage(this.props.app.commonConst, 'CombinedInfo') : '合版信息' ;
  3373 + const sModelsType =
  3374 + commonUtils.isNotEmptyObject(this.props) && commonUtils.isNotEmptyObject(this.props.app) ? this.props.app.currentPane.sModelsType : "";
  3375 + const pleaseSelect =
  3376 + commonUtils.isNotEmptyObject(this.props) && commonUtils.isNotEmptyObject(this.props.app)
  3377 + ? commonFunc.showMessage(this.props.app.commonConst, "pleaseSelect")
  3378 + : "请选择";
  3379 + const combinedInfo =
  3380 + commonUtils.isNotEmptyObject(this.props) && commonUtils.isNotEmptyObject(this.props.app)
  3381 + ? commonFunc.showMessage(this.props.app.commonConst, "CombinedInfo")
  3382 + : "合版信息";
2967 3383 let bParamColor = false;
2968   - if (this.props && sName === 'sParamValue' && this.props.dataValue) {
2969   - if (this.props.dataValue === '选择色序' || this.props.record.sParamKey === 'sParam1001') {
  3384 + if (this.props && sName === "sParamValue" && this.props.dataValue) {
  3385 + if (this.props.dataValue === "选择色序" || this.props.record.sParamKey === "sParam1001") {
2970 3386 bParamColor = true;
2971 3387 }
2972 3388 }
2973   - if (sName === 'sCombinedMemo' || sName === 'sColorSerialMemo' || bSColorSerialMemo || bParamColor || sName === 'sPositiveColor' || sName === 'sOppositeColor' || sName === 'sCombineProductNameNew' || sName === 'sParams' || sName === 'sParamsNew' || sName === 'sQuoParams' || (commonUtils.isNotEmptyObject(sModelsType) && !sModelsType.includes('Set') && sName === 'sCombinePartsNameNew')) {
2974   - let sValue = '';
  3389 + if (
  3390 + sName === "sCombinedMemo" ||
  3391 + sName === "sColorSerialMemo" ||
  3392 + bSColorSerialMemo ||
  3393 + bParamColor ||
  3394 + sName === "sPositiveColor" ||
  3395 + sName === "sOppositeColor" ||
  3396 + sName === "sCombineProductNameNew" ||
  3397 + sName === "sParams" ||
  3398 + sName === "sParamsNew" ||
  3399 + sName === "sQuoParams" ||
  3400 + (commonUtils.isNotEmptyObject(sModelsType) && !sModelsType.includes("Set") && sName === "sCombinePartsNameNew")
  3401 + ) {
  3402 + let sValue = "";
2975 3403 /* 将合版信息json解析成需要的字符串形式 */
2976   - if (sName === 'sCombinedMemo') {
  3404 + if (sName === "sCombinedMemo") {
2977 3405 let JsonData = [];
2978 3406 if (commonUtils.isNotEmptyObject(this.props.dataValue)) {
2979 3407 try {
... ... @@ -2983,10 +3411,10 @@ export default class CommonComponent extends Component {
2983 3411 }
2984 3412 }
2985 3413 if (commonUtils.isNotEmptyArr(JsonData)) {
2986   - JsonData.forEach((item) => {
  3414 + JsonData.forEach(item => {
2987 3415 sValue += `${item.sProductNo}:排${item.dCombineQty}个,`;
2988 3416 });
2989   - sValue = commonUtils.isNotEmptyObject(sValue) ? sValue.substr(0, sValue.length - 1) : '';
  3417 + sValue = commonUtils.isNotEmptyObject(sValue) ? sValue.substr(0, sValue.length - 1) : "";
2990 3418 }
2991 3419 } else if (sName === "sColorSerialMemo" || bSColorSerialMemo || sName === "sPositiveColor" || sName === "sOppositeColor" || bParamColor) {
2992 3420 let JsonData = [];
... ... @@ -3034,8 +3462,8 @@ export default class CommonComponent extends Component {
3034 3462 className="sActiveIdStyle sActiveIdStyle_viewChooseSpan"
3035 3463 title={sValue}
3036 3464 style={{
3037   - display: 'block',
3038   - position: 'relative',
  3465 + display: "block",
  3466 + position: "relative",
3039 3467 // top: this.props.name === 'slaveInfo' ? '1px' : '',
3040 3468 // left: this.props.name === 'slaveInfo' ? '2px' : this.props.name === 'master' ? '1px' : '',
3041 3469 }}
... ... @@ -3044,47 +3472,72 @@ export default class CommonComponent extends Component {
3044 3472 onClick={this.handleViewChoose}
3045 3473 className="viewChooseSpan"
3046 3474 style={{
3047   - width: '100%', overflow: 'hidden', color: '#2f54eb', background: 'transparent',
  3475 + width: "100%",
  3476 + overflow: "hidden",
  3477 + color: "#2f54eb",
  3478 + background: "transparent",
3048 3479 }}
3049   - > {commonUtils.isNotEmptyObject(sValue) ? sValue : sName === 'sCombinedMemo' ? combinedInfo : pleaseSelect}
  3480 + >
  3481 + {" "}
  3482 + {commonUtils.isNotEmptyObject(sValue) ? sValue : sName === "sCombinedMemo" ? combinedInfo : pleaseSelect}
3050 3483 </span>
3051   - </div>);
  3484 + </div>
  3485 + );
3052 3486 }
3053 3487 /* commonClassify 制单日期、制单人员新增时设置保存时自动生成 */
3054   - let speacilNote = '';
  3488 + let speacilNote = "";
3055 3489 const { record } = this.props;
3056   - const afterSave = commonUtils.isNotEmptyObject(this.props) && commonUtils.isNotEmptyObject(this.props.app) ? commonFunc.showMessage(this.props.app.commonConst, 'afterSave') : '保存后自动生成';
3057   - if (commonUtils.isNotEmptyObject(record) && commonUtils.isEmptyObject(record[sName]) && commonUtils.isNotEmptyObject(sName) && (sName === 'tCreateDate' || sName === 'sMakePerson')) {
3058   - speacilNote = (<div className="speacialNote" style={{ position: 'absolute', padding: '0px 4px' }}> {afterSave}</div>);
  3490 + const afterSave =
  3491 + commonUtils.isNotEmptyObject(this.props) && commonUtils.isNotEmptyObject(this.props.app)
  3492 + ? commonFunc.showMessage(this.props.app.commonConst, "afterSave")
  3493 + : "保存后自动生成";
  3494 + if (
  3495 + commonUtils.isNotEmptyObject(record) &&
  3496 + commonUtils.isEmptyObject(record[sName]) &&
  3497 + commonUtils.isNotEmptyObject(sName) &&
  3498 + (sName === "tCreateDate" || sName === "sMakePerson")
  3499 + ) {
  3500 + speacilNote = (
  3501 + <div className="speacialNote" style={{ position: "absolute", padding: "0px 4px" }}>
  3502 + {" "}
  3503 + {afterSave}
  3504 + </div>
  3505 + );
3059 3506 }
3060 3507  
3061   - const bShowMemo = false && commonUtils.isNotEmptyObject(sName) && sName.indexOf('sMemo') > -1 && !sName.includes('ProcessMemo'); /* 非编辑状态下 备注以蓝色链接呈现 */
  3508 + const bShowMemo =
  3509 + false &&
  3510 + commonUtils.isNotEmptyObject(sName) &&
  3511 + sName.indexOf("sMemo") > -1 &&
  3512 + !sName.includes("ProcessMemo"); /* 非编辑状态下 备注以蓝色链接呈现 */
3062 3513 /* 如果是图片类型 ,加载图片 */
3063   - let imgBox = '';
3064   - if (commonUtils.isNotEmptyObject(sName) && sName.indexOf('picture') > -1) {
3065   - const picAddr = commonUtils.isNotEmptyObject(record[sName]) ? record[sName].split(',') : '';
  3514 + let imgBox = "";
  3515 + if (commonUtils.isNotEmptyObject(sName) && sName.indexOf("picture") > -1) {
  3516 + const picAddr = commonUtils.isNotEmptyObject(record[sName]) ? record[sName].split(",") : "";
3066 3517 if (commonUtils.isNotEmptyObject(picAddr)) {
3067 3518 const { token } = this.props.app;
3068   - const dataUrl = picAddr[0].includes('xlyerpfiles') ? `${commonConfig.file_host}file/download?savePathStr=${picAddr[0]}&scale=0.1&sModelsId=100&token=${token}` : picAddr[0]; /* 缩略图 */
  3519 + const dataUrl = picAddr[0].includes("xlyerpfiles")
  3520 + ? `${commonConfig.file_host}file/download?savePathStr=${picAddr[0]}&scale=0.1&sModelsId=100&token=${token}`
  3521 + : picAddr[0]; /* 缩略图 */
3069 3522 // const dataPriviewUrl = `${commonConfig.server_host}file/download?savePathStr=${picAddr}&width=800&&height=500&sModelsId=100&token=${token}`; /* 预览 */
3070   - const officeFileTypeList = ['PDF', 'DOCX', 'XLSX'];
3071   - const imgTypeList = ['PNG', 'SVG', 'JPG', 'JPEG', 'GIF', 'BMP', 'TIFF', 'ICO'];
3072   - const officeFileType = picAddr[0].split('.').pop().toUpperCase();
  3523 + const officeFileTypeList = ["PDF", "DOCX", "XLSX"];
  3524 + const imgTypeList = ["PNG", "SVG", "JPG", "JPEG", "GIF", "BMP", "TIFF", "ICO"];
  3525 + const officeFileType = picAddr[0].split(".").pop().toUpperCase();
3073 3526 let fileIcon = <FilePdfOutlined />;
3074   - if (officeFileType === 'DOCX') {
  3527 + if (officeFileType === "DOCX") {
3075 3528 fileIcon = <FileWordOutlined />;
3076   - } else if (officeFileType === 'XLSX') {
  3529 + } else if (officeFileType === "XLSX") {
3077 3530 fileIcon = <FileExcelOutlined />;
3078 3531 }
3079   - let imgBox1 = '';
  3532 + let imgBox1 = "";
3080 3533 if (officeFileTypeList.includes(officeFileType)) {
3081 3534 imgBox1 = (
3082 3535 <span
3083 3536 style={{
3084   - width: '100%',
3085   - overflow: 'hidden',
3086   - background: 'transparent',
3087   - cursor: 'pointer',
  3537 + width: "100%",
  3538 + overflow: "hidden",
  3539 + background: "transparent",
  3540 + cursor: "pointer",
3088 3541 paddingTop: 14,
3089 3542 }}
3090 3543 onClick={() => {
... ... @@ -3098,28 +3551,23 @@ export default class CommonComponent extends Component {
3098 3551 imgBox1 = (
3099 3552 <span
3100 3553 style={{
3101   - width: '100%',
3102   - overflow: 'hidden',
3103   - background: 'transparent',
3104   - cursor: 'pointer',
  3554 + width: "100%",
  3555 + overflow: "hidden",
  3556 + background: "transparent",
  3557 + cursor: "pointer",
3105 3558 }}
3106 3559 onClick={e => this.handlePreviewImage(e, picAddr)}
3107 3560 >
3108   - <img
3109   - src={dataUrl}
3110   - alt="img"
3111   - onFocus={() => 0}
3112   - style={{ width: '30px', height: '20px' }}
3113   - />
  3561 + <img src={dataUrl} alt="img" onFocus={() => 0} style={{ width: "30px", height: "20px" }} />
3114 3562 </span>
3115 3563 );
3116 3564 } else {
3117 3565 imgBox1 = (
3118 3566 <span
3119 3567 style={{
3120   - width: '100%',
3121   - overflow: 'hidden',
3122   - background: 'transparent',
  3568 + width: "100%",
  3569 + overflow: "hidden",
  3570 + background: "transparent",
3123 3571 paddingTop: 14,
3124 3572 }}
3125 3573 >
... ... @@ -3132,46 +3580,68 @@ export default class CommonComponent extends Component {
3132 3580 className="sActiveIdStyle"
3133 3581 title={this.props.dataValue}
3134 3582 style={{
3135   - position: 'absolute',
3136   - padding: '0px 11px 0 4px',
3137   - width: '97%',
3138   - height: '93%',
3139   - fontSize: '12px',
3140   - zIndex: '10',
3141   - whiteSpace: 'nowrap',
3142   - textOverflow: 'ellipsis',
3143   - overflow: 'hidden',
3144   - backgroundColor: '#fff',
  3583 + position: "absolute",
  3584 + padding: "0px 11px 0 4px",
  3585 + width: "97%",
  3586 + height: "93%",
  3587 + fontSize: "12px",
  3588 + zIndex: "10",
  3589 + whiteSpace: "nowrap",
  3590 + textOverflow: "ellipsis",
  3591 + overflow: "hidden",
  3592 + backgroundColor: "#fff",
3145 3593 marginTop: 1,
3146   - boxShadow: 'none',
  3594 + boxShadow: "none",
3147 3595 }}
3148 3596 >
3149 3597 {imgBox1}
3150   - </div>);
3151   - }
3152   - } else if (this.props.name === 'master' && sName !== 'sQualityRequirementsMemo' && !this.props.enabled && commonUtils.isNotEmptyObject(sName) && bShowMemo) { /* 所有备注非编辑状态下点击链接可以弹出备注窗体 */
  3598 + </div>
  3599 + );
  3600 + }
  3601 + } else if (
  3602 + this.props.name === "master" &&
  3603 + sName !== "sQualityRequirementsMemo" &&
  3604 + !this.props.enabled &&
  3605 + commonUtils.isNotEmptyObject(sName) &&
  3606 + bShowMemo
  3607 + ) {
  3608 + /* 所有备注非编辑状态下点击链接可以弹出备注窗体 */
3153 3609 imgBox = (
3154 3610 <div
3155 3611 className={`sActiveIdStyle sActiveIdStyle-${this.props.showConfig.sName} masterMemo`}
3156 3612 title={this.props.dataValue}
3157 3613 style={{
3158   - position: 'absolute', padding: '0px 4px', width: '100%', height: '100%', fontSize: '12px', zIndex: '10', whiteSpace: 'nowrap', textOverflow: 'ellipsis', overflow: 'hidden',
  3614 + position: "absolute",
  3615 + padding: "0px 4px",
  3616 + width: "100%",
  3617 + height: "100%",
  3618 + fontSize: "12px",
  3619 + zIndex: "10",
  3620 + whiteSpace: "nowrap",
  3621 + textOverflow: "ellipsis",
  3622 + overflow: "hidden",
3159 3623 }}
3160 3624 >
3161 3625 <span
3162 3626 onClick={this.handleMemoShow}
3163 3627 style={{
3164   - width: '100%', overflow: 'hidden', color: '#2f54eb', background: 'transparent',
  3628 + width: "100%",
  3629 + overflow: "hidden",
  3630 + color: "#2f54eb",
  3631 + background: "transparent",
3165 3632 }}
3166   - > <pre>{this.props.dataValue} </pre>
  3633 + >
  3634 + {" "}
  3635 + <pre>{this.props.dataValue} </pre>
3167 3636 </span>
3168   - </div>);
  3637 + </div>
  3638 + );
3169 3639 // 富文本处理
3170 3640 // if (this.props.showConfig.bEditor) {
3171 3641 // imgBox = (<></>);
3172 3642 // }
3173   - if (this.props.showConfig.sName && this.props.showConfig.sName.toLowerCase().includes('fullmemo')) {
3174   - imgBox = (<></>);
  3643 + if (this.props.showConfig.sName && this.props.showConfig.sName.toLowerCase().includes("fullmemo")) {
  3644 + imgBox = <></>;
3175 3645 }
3176 3646 }
3177 3647 /* 获取outformitem控件参数 */
... ... @@ -3179,13 +3649,25 @@ export default class CommonComponent extends Component {
3179 3649 /* 获取fieldDecorator参数 */
3180 3650 const fieldDecoratorProps = this.getFieldDecoratorProps();
3181 3651 /* 通用组件(主表存在getFieldDecorator表单验证,而从表则不需要) */
3182   - const commonAssembly = (<FormItem {...outFormItemProps} required={this.props.showConfig.bNotEmpty}> {speacilNote}{imgBox}{!this.props.bTable ? this.getFieldDecorator(this.props.showConfig.sName, fieldDecoratorProps)(innerInput) : innerInput}{viewInfo} </FormItem>);
  3652 + const commonAssembly = (
  3653 + <FormItem {...outFormItemProps} required={this.props.showConfig.bNotEmpty}>
  3654 + {" "}
  3655 + {speacilNote}
  3656 + {imgBox}
  3657 + {!this.props.bTable ? this.getFieldDecorator(this.props.showConfig.sName, fieldDecoratorProps)(innerInput) : innerInput}
  3658 + {viewInfo}{" "}
  3659 + </FormItem>
  3660 + );
3183 3661 const { iColValue, showConfig } = this.props;
3184   - const readonlyStyle = showConfig.bReadonly || showConfig.iTag === 1 ? 'readonlyStyle' : '';
3185   - const costomStyle = showConfig.costomStyle || '';
  3662 + const readonlyStyle = showConfig.bReadonly || showConfig.iTag === 1 ? "readonlyStyle" : "";
  3663 + const costomStyle = showConfig.costomStyle || "";
3186 3664 /* 页面输出 */
3187 3665 return (
3188   - <div ref={this.myRef} className={iColValue === 24 ? 'input24' : iColValue === 18 ? 'input18' : iColValue === 12 ? 'input12' : 'changeClassName'} key={this.state.key}>
  3666 + <div
  3667 + ref={this.myRef}
  3668 + className={iColValue === 24 ? "input24" : iColValue === 18 ? "input18" : iColValue === 12 ? "input12" : "changeClassName"}
  3669 + key={this.state.key}
  3670 + >
3189 3671 <div className={`${this.props.className} ${readonlyStyle} ${costomStyle}`} onClick={this.props.onCostomClick?.bind(this, showConfig)}>
3190 3672 {commonAssembly}
3191 3673 </div>
... ...
src/mobile/quotation/detailNew.jsx
... ... @@ -915,9 +915,9 @@ const QuickQuoteEvent = props =&gt; {
915 915  
916 916 const result = await props.handleCalculation(
917 917 false,
918   - { ...masterProps, ...newState, manyqtysConfig: state.manyConfig, manyqtysData: state.manyData },
  918 + { ...masterProps, ...newState, manyqtysConfig: state.manyConfig, manyqtysData: state.manyData ,state},
919 919 true,
920   - props
  920 + {...props, state}
921 921 );
922 922  
923 923 if (commonUtils.isEmptyObject(result)) {
... ... @@ -1080,11 +1080,10 @@ const QuotationDetail = props =&gt; {
1080 1080 if (!masterConfig) return "";
1081 1081 const ableConfigs = masterConfig.gdsconfigformslave.filter(item => item.sName && item.bVisible);
1082 1082 // 处理长宽样式
1083   - const viewConfigs =
1084   - selectedNode?.bBox && selectedNode.sTypeKey !== "kapai" && selectedNode?.bBox && selectedNode.sTypeKey !== "不干胶"
1085   - ? ableConfigs
1086   - : ableConfigs.filter(x => x.sName !== "dHeight");
1087   - if (selectedNode?.bBox && selectedNode.sTypeKey !== "kapai" && selectedNode?.bBox && selectedNode.sProductType !== "不干胶") {
  1083 + const { sStripType = 0 } = selectedNode;
  1084 + const viewConfigs = Number(sStripType) === 0 ? ableConfigs : ableConfigs.filter(x => x.sName !== "dHeight");
  1085 + const lengthData = viewConfigs.find(x => x.sName === "dLength");
  1086 + if (Number(sStripType) === 0) {
1088 1087 viewConfigs.forEach(item => {
1089 1088 if (item.sName === "dLength" || item.sName === "dWidth") {
1090 1089 item.iColValue = 4;
... ... @@ -1095,7 +1094,6 @@ const QuotationDetail = props =&gt; {
1095 1094 item.iColValue = viewConfigs[0].iColValue;
1096 1095 });
1097 1096 }
1098   - const lengthData = viewConfigs.find(x => x.sName === "dLength");
1099 1097 if (selectedNode.sTypeKey !== "danye") {
1100 1098 if (lengthData) {
1101 1099 lengthData.showName = "高(D)";
... ... @@ -1573,6 +1571,9 @@ const BoxComponent = props =&gt; {
1573 1571 if (selectedNode.bPartsDimension === false && (item.sName === "dPartsLength" || item.sName === "dPartsWidth")) {
1574 1572 return false;
1575 1573 }
  1574 + if (!selectedNode.bBleed && item.sName === "dBleed") {
  1575 + return false;
  1576 + }
1576 1577 return item.iTag === iTag;
1577 1578 });
1578 1579 let boxConfigList = [];
... ... @@ -1634,7 +1635,7 @@ const filterConditions = {
1634 1635 x.sName === "dRowGap" ||
1635 1636 x.sName === "dColGap" ||
1636 1637 x.sName === "sPaperDirection",
1637   - default: x => x.sName === "sMagnification" || x.sName === "dPartsLength" || x.sName === "dPartsWidth" || x.sName === "dSumPQty",
  1638 + default: x => x.sName === "dBleed" || x.sName === "sMagnification" || x.sName === "dPartsLength" || x.sName === "dPartsWidth" || x.sName === "dSumPQty",
1638 1639 };
1639 1640 if (upViewProps12 && selectedNode.sProductType === "不干胶") {
1640 1641 upViewProps12.viewConfigs = upViewProps12?.viewConfigs.filter(filterConditions.juantong);
... ... @@ -1728,7 +1729,7 @@ const filterConditions = {
1728 1729 const [materialLength, setMaterialLength] = useState(0);
1729 1730 const [materialWidth, setMaterialWidth] = useState(0);
1730 1731 // 使用 useCallback 确保回调函数的稳定性
1731   - const handleSaveState = (
  1732 + const handleSaveState =
1732 1733 (
1733 1734 length,
1734 1735 width,
... ... @@ -1815,9 +1816,8 @@ const filterConditions = {
1815 1816  
1816 1817 setMaterialLength(length);
1817 1818 setMaterialWidth(width);
1818   - },
1819   - []
1820   - );
  1819 + }
  1820 + ;
1821 1821 const onSaveDPartsLength = useCallback((innerWidth, innerHeight, slaveData) => {
1822 1822 const { selectedNode } = props.state;
1823 1823 const index = slaveData?.findIndex(x => x.sTreeNodeName === selectedNode.showName && x.sBoxModel === props.boxModel);
... ...
src/mobile/quotation/master.jsx
... ... @@ -361,8 +361,8 @@ const handleCalculation = async (bSave, nextProps, isWait, props) =&gt; {
361 361 packConfig,
362 362 packDelData,
363 363 manyDataCache = [],
364   - dQuickQuoteProductQty,
365 364 } = nextProps;
  365 + const { dQuickQuoteProductQty } = props.state;
366 366 let { slaveData, controlData, materialsData, processData, masterData, manyqtysData, packData } = nextProps;
367 367 const sMakePerson = masterData.sMakePerson;
368 368 const data = [];
... ... @@ -426,6 +426,12 @@ const handleCalculation = async (bSave, nextProps, isWait, props) =&gt; {
426 426 slaveData = valueReturn[`${slaveConfig.sTbName.toLowerCase()}_tmp`].map(item => {
427 427 item.handleType = dQuickQuoteProductQty ? "update" : item.handleType;
428 428 item.sId = commonUtils.createSid();
  429 + if (dQuickQuoteProductQty) {
  430 + item.dProductQty = dQuickQuoteProductQty;
  431 + }
  432 + // 这里需要改变数量 看看是否是多数量报价dProductQty
  433 + console.log(props,nextProps, "dQuickQuoteProductQty");
  434 +
429 435 return item;
430 436 });
431 437  
... ...