Merge branch '20220620-详审打分无最低分校验' into 'release_20220624'
6.24 详审打分无最低分校验 See merge request eshop/fe_service_ebtp_frontend!139
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
import React, { useEffect, useState } from 'react';
|
||||
import { Button, Table, Tabs, Space, Progress, Radio, Input, Checkbox, Select, Modal, Pagination, Spin, Form, message, Upload } from 'antd';
|
||||
import { Button, Table, Tabs, Space, Progress, Radio, Input, Checkbox, Select, Modal, Pagination, Spin, Form, message, Upload, Tooltip } from 'antd';
|
||||
import { getTabList, getProgress, getScoreDetail, getRegister, submitDetail, updateJudgesStatus, findPriceScoreList, getEval, getFile, calculationPriceScore, saveOffer, getPage, getProjectById, getOfferUrl } from './service';
|
||||
import '@/assets/ld_style.less'
|
||||
import FirstTrialTableDetailed from '../BidDetailedManager/module/FirstTrialTableDetailed';
|
||||
@ -218,7 +218,7 @@ const Index: React.FC<{}> = () => {
|
||||
title: showNameT.tbr + '报价(元)',
|
||||
dataIndex: 'evaluatingContent',
|
||||
sorter: {
|
||||
compare: (a, b) => a.evaluatingContent - b.evaluatingContent,
|
||||
compare: (a: any, b: any) => a.evaluatingContent - b.evaluatingContent,
|
||||
multiple: 2,
|
||||
},
|
||||
},
|
||||
@ -921,13 +921,15 @@ const Index: React.FC<{}> = () => {
|
||||
if (record.scoreMap && record.scoreMap[item.supplierRegisterId]) {
|
||||
return (
|
||||
<div>
|
||||
<Input
|
||||
disabled={disabled || endProgress}
|
||||
min={1} max={record.highScore}
|
||||
value={record.scoreMap[item.supplierRegisterId].resultValue}
|
||||
style={{ width: 160 }}
|
||||
onChange={e => inputChange(e, record.scoreMap[item.supplierRegisterId], item.supplierRegisterId, record.highScore)}
|
||||
/>
|
||||
<Tooltip trigger={['focus']} title={<span>评分区间:{record.lowScore}分~{record.highScore}分</span>} placement="topLeft">
|
||||
<Input
|
||||
disabled={disabled || endProgress}
|
||||
min={1} max={record.highScore}
|
||||
value={record.scoreMap[item.supplierRegisterId].resultValue}
|
||||
style={{ width: 160 }}
|
||||
onChange={e => inputChange(e, record.scoreMap[item.supplierRegisterId], item.supplierRegisterId, record.highScore, record.lowScore)}
|
||||
/>
|
||||
</Tooltip>
|
||||
<br />
|
||||
<Button type="link" danger onClick={() => getRemark(record.scoreMap[item.supplierRegisterId], item.supplierRegisterId)}>备注</Button>
|
||||
<Button hidden={btnAuthority(['ebtp-expert'])} type="link" danger onClick={() => lookFile(record.id, item.supplierRegisterId)}>查看{showNameT.tb}文件</Button>
|
||||
@ -936,7 +938,10 @@ const Index: React.FC<{}> = () => {
|
||||
} else {
|
||||
return (
|
||||
<div>
|
||||
<Input disabled={disabled || endProgress} min={1} max={record.highScore} onChange={e => inputChange(e, record, item.supplierRegisterId, record.highScore)} style={{ width: 160 }} /><br />
|
||||
<Tooltip trigger={['focus']} title={<span>评分区间:{record.lowScore}分~{record.highScore}分</span>} placement="topLeft">
|
||||
<Input disabled={disabled || endProgress} min={1} max={record.highScore} onChange={e => inputChange(e, record, item.supplierRegisterId, record.highScore, record.lowScore)} style={{ width: 160 }} />
|
||||
</Tooltip>
|
||||
<br />
|
||||
<Button type="link" danger onClick={() => getRemark(record, item.supplierRegisterId)}>备注</Button>
|
||||
<Button hidden={btnAuthority(['ebtp-expert'])} type="link" danger onClick={() => lookFile(record.id, item.supplierRegisterId)}>查看{showNameT.tb}文件</Button>
|
||||
</div>
|
||||
@ -1246,7 +1251,7 @@ const Index: React.FC<{}> = () => {
|
||||
setDataSource([...totalQualified])
|
||||
}
|
||||
|
||||
const inputChange = (e: any, val: any, id: any, sorce: any) => { // 输入框操作
|
||||
const inputChange = (e: any, val: any, id: any, sorce: any, lowScore: any) => { // 输入框操作
|
||||
let inpVal = e.target.value
|
||||
let inputNum = /^(\-|\+?)\d{0,4}(\.\d{0,5})?$/
|
||||
if (inputNum.test(inpVal)) {
|
||||
@ -1254,6 +1259,10 @@ const Index: React.FC<{}> = () => {
|
||||
message.error('输入分值不可大于最高分值!')
|
||||
inpVal = sorce
|
||||
}
|
||||
if (Number(inpVal) < lowScore) {
|
||||
message.error('输入分值不可小于最低分值!')
|
||||
inpVal = lowScore
|
||||
}
|
||||
} else {
|
||||
message.error('请输入正确的分值!')
|
||||
inpVal = inpVal.substring(0, inpVal.length - 1)
|
||||
|
@ -1,5 +1,5 @@
|
||||
import React, { useEffect, useRef, useState } from 'react';
|
||||
import { Button, Table, Tabs, Space, Progress, Radio, Input, Checkbox, Select, Modal, Menu, Pagination, Spin, Form, message, Collapse, Upload } from 'antd';
|
||||
import { Button, Table, Tabs, Space, Progress, Radio, Input, Checkbox, Select, Modal, Menu, Pagination, Spin, Form, message, Collapse, Upload, Tooltip } from 'antd';
|
||||
import { getTabList, getProgress, getScoreDetail, getRegister, submitDetail, updateJudgesStatus, findPriceScoreList, getMemberInfo, getEval, getUnlock, getCheckData, isStatus, getFile, calculationPriceScore, saveOffer, getPage, getProjectById, getOfferUrl } from './service';
|
||||
import '@/assets/ld_style.less'
|
||||
import FirstTrialTableDetailed from '../BidDetailedManager/module/FirstTrialTableDetailed';
|
||||
@ -954,13 +954,15 @@ const Index: React.FC<{}> = () => {
|
||||
if (record.scoreMap && record.scoreMap[item.supplierRegisterId]) {
|
||||
return (
|
||||
<div>
|
||||
<Input
|
||||
disabled={disabled || endProgress}
|
||||
value={record.scoreMap[item.supplierRegisterId].resultValue}
|
||||
style={{ width: 160 }}
|
||||
onChange={e => inputChange(e, record.scoreMap[item.supplierRegisterId], item.supplierRegisterId, record.highScore)}
|
||||
// onFocus={e => inputFocus(e, record.scoreMap[item.supplierRegisterId], item.supplierRegisterId)}
|
||||
/>
|
||||
<Tooltip trigger={['focus']} title={<span>评分区间:{record.lowScore}分~{record.highScore}分</span>} placement="topLeft">
|
||||
<Input
|
||||
disabled={disabled || endProgress}
|
||||
value={record.scoreMap[item.supplierRegisterId].resultValue}
|
||||
style={{ width: 160 }}
|
||||
onChange={e => inputChange(e, record.scoreMap[item.supplierRegisterId], item.supplierRegisterId, record.highScore, record.lowScore)}
|
||||
// onFocus={e => inputFocus(e, record.scoreMap[item.supplierRegisterId], item.supplierRegisterId)}
|
||||
/>
|
||||
</Tooltip>
|
||||
<br />
|
||||
<Button type="link" danger onClick={() => getRemark(record.scoreMap[item.supplierRegisterId], item.supplierRegisterId)}>备注</Button>
|
||||
<Button hidden={btnAuthority(['ebtp-expert'])} type="link" danger onClick={() => lookFile(record.id, item.supplierRegisterId)}>查看{showNameT.tb}文件</Button>
|
||||
@ -969,7 +971,10 @@ const Index: React.FC<{}> = () => {
|
||||
} else {
|
||||
return (
|
||||
<div>
|
||||
<Input disabled={disabled || endProgress} onChange={e => inputChange(e, record, item.supplierRegisterId, record.highScore)} style={{ width: 160 }} /><br />
|
||||
<Tooltip trigger={['focus']} title={<span>评分区间:{record.lowScore}分~{record.highScore}分</span>} placement="topLeft">
|
||||
<Input disabled={disabled || endProgress} onChange={e => inputChange(e, record, item.supplierRegisterId, record.highScore, record.lowScore)} style={{ width: 160 }} />
|
||||
</Tooltip>
|
||||
<br />
|
||||
<Button type="link" danger onClick={() => getRemark(record, item.supplierRegisterId)}>备注</Button>
|
||||
<Button hidden={btnAuthority(['ebtp-expert'])} type="link" danger onClick={() => lookFile(record.id, item.supplierRegisterId)}>查看{showNameT.tb}文件</Button>
|
||||
</div>
|
||||
@ -1277,7 +1282,7 @@ const Index: React.FC<{}> = () => {
|
||||
setDataSource([...totalQualified])
|
||||
}
|
||||
|
||||
const inputChange = (e: any, val: any, id: any, sorce: any) => { // 输入框操作
|
||||
const inputChange = (e: any, val: any, id: any, sorce: any, lowScore: any) => { // 输入框操作
|
||||
let inpVal = e.target.value
|
||||
let inputNum = /^(\-|\+?)\d{0,4}(\.\d{0,5})?$/
|
||||
if (inputNum.test(inpVal)) {
|
||||
@ -1285,6 +1290,10 @@ const Index: React.FC<{}> = () => {
|
||||
message.error('输入分值不可大于最高分值!')
|
||||
inpVal = sorce
|
||||
}
|
||||
if (Number(inpVal) < lowScore) {
|
||||
message.error('输入分值不可小于最低分值!')
|
||||
inpVal = lowScore
|
||||
}
|
||||
} else {
|
||||
message.error('请输入正确的分值!')
|
||||
inpVal = inpVal.substring(0, inpVal.length - 1)
|
||||
|
@ -1,5 +1,5 @@
|
||||
import React, { useEffect, useState } from 'react';
|
||||
import { Button, Table, Tabs, Space, Progress, Radio, Input, Checkbox, Select, Modal, Pagination, Spin, Form, message, Upload } from 'antd';
|
||||
import { Button, Table, Tabs, Space, Progress, Radio, Input, Checkbox, Select, Modal, Pagination, Spin, Form, message, Upload, Tooltip } from 'antd';
|
||||
import { getTabList, getProgress, getScoreDetail, getRegister, submitDetail, updateJudgesStatus, getEval, getFile } from './service';
|
||||
import '@/assets/ld_style.less'
|
||||
import { getSessionUserData, getRoomId, getUserToken } from '@/utils/session';
|
||||
@ -110,7 +110,7 @@ const Index: React.FC<{}> = () => {
|
||||
category: typeCategory,
|
||||
judgesStatus: '1',
|
||||
bidEvalDetailDTOList: bidEvalDetailDTOList,
|
||||
assessRoomId: assessRoomId,
|
||||
assessRoomId: assessRoomId,
|
||||
}
|
||||
submitDetail({ ...date }).then((res) => {
|
||||
if (res.code == 200) {
|
||||
@ -138,7 +138,7 @@ const Index: React.FC<{}> = () => {
|
||||
category: typeCategory,
|
||||
judgesStatus: '1',
|
||||
bidEvalDetailDTOList: bidEvalDetailDTOList,
|
||||
assessRoomId: assessRoomId,
|
||||
assessRoomId: assessRoomId,
|
||||
}
|
||||
submitDetail({ ...date }).then((res) => {
|
||||
if (res.code == 200) {
|
||||
@ -183,11 +183,11 @@ const Index: React.FC<{}> = () => {
|
||||
category: typeCategory,
|
||||
judgesStatus: '1',
|
||||
bidEvalDetailDTOList: bidEvalDetailDTOList,
|
||||
assessRoomId: assessRoomId,
|
||||
assessRoomId: assessRoomId,
|
||||
}
|
||||
submitDetail({ ...date }).then((res) => {
|
||||
if (res.code == 200) {
|
||||
|
||||
|
||||
let date = {
|
||||
bidEvalId: bidEvalId,
|
||||
reviewTurnId: reviewTurnId,
|
||||
@ -197,7 +197,7 @@ const Index: React.FC<{}> = () => {
|
||||
}
|
||||
getProgress({ ...date }).then((res) => {
|
||||
if (res.code == 200) {
|
||||
if(res.data == 100){
|
||||
if (res.data == 100) {
|
||||
setSpinVisible(false)
|
||||
bidEvalDetailDTOList = []
|
||||
submitApi()
|
||||
@ -228,7 +228,7 @@ const Index: React.FC<{}> = () => {
|
||||
}
|
||||
getProgress({ ...date }).then((res) => {
|
||||
if (res.code == 200) {
|
||||
if(res.data == 100){
|
||||
if (res.data == 100) {
|
||||
submitApi()
|
||||
} else {
|
||||
message.error("您有未完成的打分项,请完成后再提交!")
|
||||
@ -389,7 +389,7 @@ const Index: React.FC<{}> = () => {
|
||||
record?.standardList?.map((item: any) => {
|
||||
checkboxOptions.push({ label: item.standardName + '(' + item.standardDetailScore + '分)', value: item.standardDetailScore + '-' + item.id })
|
||||
})
|
||||
if (record?.scoreMap && record?.scoreMap[item.supplierRegisterId] && ( record?.scoreMap[item.supplierRegisterId]?.standardId || record?.scoreMap[item.supplierRegisterId]?.id)) {
|
||||
if (record?.scoreMap && record?.scoreMap[item.supplierRegisterId] && (record?.scoreMap[item.supplierRegisterId]?.standardId || record?.scoreMap[item.supplierRegisterId]?.id)) {
|
||||
let defaultArr = record.scoreMap[item.supplierRegisterId].standardId.split(",")
|
||||
let defaultValue: any = []
|
||||
record?.standardList?.map((item: any) => {
|
||||
@ -431,14 +431,16 @@ const Index: React.FC<{}> = () => {
|
||||
if (record.scoreMap && record.scoreMap[item.supplierRegisterId]) {
|
||||
return (
|
||||
<div>
|
||||
<Input
|
||||
disabled={disabled}
|
||||
min={1} max={record.highScore}
|
||||
value={record.scoreMap[item.supplierRegisterId].resultValue}
|
||||
style={{ width: 160 }}
|
||||
onChange={e => inputChange(e, record.scoreMap[item.supplierRegisterId], item.supplierRegisterId, record.highScore)}
|
||||
// onFocus={e => inputFocus(e, record.scoreMap[item.supplierRegisterId], item.supplierRegisterId)}
|
||||
/>
|
||||
<Tooltip trigger={['focus']} title={<span>评分区间:{record.lowScore}分~{record.highScore}分</span>} placement="topLeft">
|
||||
<Input
|
||||
disabled={disabled}
|
||||
min={1} max={record.highScore}
|
||||
value={record.scoreMap[item.supplierRegisterId].resultValue}
|
||||
style={{ width: 160 }}
|
||||
onChange={e => inputChange(e, record.scoreMap[item.supplierRegisterId], item.supplierRegisterId, record.highScore, record.lowScore)}
|
||||
// onFocus={e => inputFocus(e, record.scoreMap[item.supplierRegisterId], item.supplierRegisterId)}
|
||||
/>
|
||||
</Tooltip>
|
||||
<br />
|
||||
<Button type="link" danger onClick={() => getRemark(record.scoreMap[item.supplierRegisterId], item.supplierRegisterId)}>备注</Button>
|
||||
<Button hidden={btnAuthority(['ebtp-expert'])} type="link" danger onClick={() => lookFile(record.id, item.supplierRegisterId)}>查看应答文件</Button>
|
||||
@ -447,7 +449,10 @@ const Index: React.FC<{}> = () => {
|
||||
} else {
|
||||
return (
|
||||
<div>
|
||||
<Input disabled={disabled} min={1} max={record.highScore} onChange={e => inputChange(e, record, item.supplierRegisterId, record.highScore)} style={{ width: 160 }} /><br />
|
||||
<Tooltip trigger={['focus']} title={<span>评分区间:{record.lowScore}分~{record.highScore}分</span>} placement="topLeft">
|
||||
<Input disabled={disabled} min={1} max={record.highScore} onChange={e => inputChange(e, record, item.supplierRegisterId, record.highScore, record.lowScore)} style={{ width: 160 }} />
|
||||
</Tooltip>
|
||||
<br />
|
||||
<Button type="link" danger onClick={() => getRemark(record, item.supplierRegisterId)}>备注</Button>
|
||||
<Button hidden={btnAuthority(['ebtp-expert'])} type="link" danger onClick={() => lookFile(record.id, item.supplierRegisterId)}>查看应答文件</Button>
|
||||
</div>
|
||||
@ -615,7 +620,7 @@ const Index: React.FC<{}> = () => {
|
||||
}
|
||||
detailValue = detailValueArr.toString()
|
||||
standardId = standardIdArr.toString()
|
||||
if(resultValue == 0 && detailValue == "" && standardId == ""){
|
||||
if (resultValue == 0 && detailValue == "" && standardId == "") {
|
||||
resultValue = ""
|
||||
}
|
||||
} else {
|
||||
@ -641,9 +646,9 @@ const Index: React.FC<{}> = () => {
|
||||
if (item.scoreMap == null) {
|
||||
item.scoreMap = []
|
||||
}
|
||||
if(item.scoreMap[supplierId[i]]){
|
||||
if (item.scoreMap[supplierId[i]]) {
|
||||
item.scoreMap[supplierId[i]] = { 'categoryId': val.categoryId, 'detailValue': detailValue, 'resultValue': resultValue, 'standardId': standardId, 'id': item.scoreMap[supplierId[i]].id, 'supplierRegisterId': id, 'detailId': val.id, 'remarks': '' }
|
||||
}else {
|
||||
} else {
|
||||
item.scoreMap[supplierId[i]] = { 'categoryId': val.categoryId, 'detailValue': detailValue, 'resultValue': resultValue, 'standardId': standardId, 'id': '', 'supplierRegisterId': id, 'detailId': val.id, 'remarks': '' }
|
||||
}
|
||||
}
|
||||
@ -662,7 +667,7 @@ const Index: React.FC<{}> = () => {
|
||||
}
|
||||
})
|
||||
} else {
|
||||
if(bidEvalDetailDTOList){
|
||||
if (bidEvalDetailDTOList) {
|
||||
bidEvalDetailDTOList.map((item: any) => {
|
||||
if (item.supplierRegisterId == id && item.detailId == val.id) {
|
||||
item.resultValue = resultValue
|
||||
@ -727,7 +732,7 @@ const Index: React.FC<{}> = () => {
|
||||
setDataSource([...totalQualified])
|
||||
}
|
||||
|
||||
const inputChange = (e: any, val: any, id: any, sorce: any) => { // 输入框操作
|
||||
const inputChange = (e: any, val: any, id: any, sorce: any, lowScore: any) => { // 输入框操作
|
||||
let inpVal = e.target.value
|
||||
let inputNum = /^(\-|\+?)\d{0,4}(\.\d{0,5})?$/
|
||||
if (inputNum.test(inpVal)) {
|
||||
@ -735,6 +740,10 @@ const Index: React.FC<{}> = () => {
|
||||
message.error('输入分值不可大于最高分值!')
|
||||
inpVal = sorce
|
||||
}
|
||||
if (Number(inpVal) < lowScore) {
|
||||
message.error('输入分值不可小于最低分值!')
|
||||
inpVal = lowScore
|
||||
}
|
||||
} else {
|
||||
message.error('请输入正确的分值!')
|
||||
inpVal = inpVal.substring(0, inpVal.length - 1)
|
||||
|
@ -1,5 +1,5 @@
|
||||
import React, { useEffect, useRef, useState } from 'react';
|
||||
import { Button, Table, Tabs, Space, Progress, Radio, Input, Checkbox, Select, Modal, Menu, Pagination, Spin, Form, message, Collapse, Upload } from 'antd';
|
||||
import { Button, Table, Tabs, Space, Progress, Radio, Input, Checkbox, Select, Modal, Menu, Pagination, Spin, Form, message, Collapse, Upload, Tooltip } from 'antd';
|
||||
import { getTabList, getProgress, getScoreDetail, getRegister, submitDetail, updateJudgesStatus, getMemberInfo, getEval, getUnlock, getCheckData, isStatus, getFile } from './service';
|
||||
import '@/assets/ld_style.less'
|
||||
import FirstTrialTableLimitedQuantity from '../BidNumberManager/module/FirstTrialTableLimitedQuantity';
|
||||
@ -250,7 +250,7 @@ const Index: React.FC<{}> = () => {
|
||||
}
|
||||
getProgress({ ...date }).then((res) => {
|
||||
if (res.code == 200) {
|
||||
if(res.data == 100){
|
||||
if (res.data == 100) {
|
||||
submitApi()
|
||||
} else {
|
||||
message.error("您有未完成的打分项,请完成后再提交!")
|
||||
@ -458,13 +458,15 @@ const Index: React.FC<{}> = () => {
|
||||
if (record.scoreMap && record.scoreMap[item.supplierRegisterId]) {
|
||||
return (
|
||||
<div>
|
||||
<Input
|
||||
disabled={disabled}
|
||||
value={record.scoreMap[item.supplierRegisterId].resultValue}
|
||||
style={{ width: 160 }}
|
||||
onChange={e => inputChange(e, record.scoreMap[item.supplierRegisterId], item.supplierRegisterId, record.highScore)}
|
||||
// onFocus={e => inputFocus(e, record.scoreMap[item.supplierRegisterId], item.supplierRegisterId)}
|
||||
/>
|
||||
<Tooltip trigger={['focus']} title={<span>评分区间:{record.lowScore}分~{record.highScore}分</span>} placement="topLeft">
|
||||
<Input
|
||||
disabled={disabled}
|
||||
value={record.scoreMap[item.supplierRegisterId].resultValue}
|
||||
style={{ width: 160 }}
|
||||
onChange={e => inputChange(e, record.scoreMap[item.supplierRegisterId], item.supplierRegisterId, record.highScore, record.lowScore)}
|
||||
// onFocus={e => inputFocus(e, record.scoreMap[item.supplierRegisterId], item.supplierRegisterId)}
|
||||
/>
|
||||
</Tooltip>
|
||||
<br />
|
||||
<Button type="link" danger onClick={() => getRemark(record.scoreMap[item.supplierRegisterId], item.supplierRegisterId)}>备注</Button>
|
||||
<Button hidden={btnAuthority(['ebtp-expert'])} type="link" danger onClick={() => lookFile(record.id, item.supplierRegisterId)}>查看应答文件</Button>
|
||||
@ -473,7 +475,10 @@ const Index: React.FC<{}> = () => {
|
||||
} else {
|
||||
return (
|
||||
<div>
|
||||
<Input disabled={disabled} onChange={e => inputChange(e, record, item.supplierRegisterId, record.highScore)} style={{ width: 160 }} /><br />
|
||||
<Tooltip trigger={['focus']} title={<span>评分区间:{record.lowScore}分~{record.highScore}分</span>} placement="topLeft">
|
||||
<Input disabled={disabled} onChange={e => inputChange(e, record, item.supplierRegisterId, record.highScore, record.lowScore)} style={{ width: 160 }} />
|
||||
</Tooltip>
|
||||
<br />
|
||||
<Button type="link" danger onClick={() => getRemark(record, item.supplierRegisterId)}>备注</Button>
|
||||
<Button hidden={btnAuthority(['ebtp-expert'])} type="link" danger onClick={() => lookFile(record.id, item.supplierRegisterId)}>查看应答文件</Button>
|
||||
</div>
|
||||
@ -753,7 +758,7 @@ const Index: React.FC<{}> = () => {
|
||||
setDataSource([...totalQualified])
|
||||
}
|
||||
|
||||
const inputChange = (e: any, val: any, id: any, sorce: any) => { // 输入框操作
|
||||
const inputChange = (e: any, val: any, id: any, sorce: any, lowScore: any) => { // 输入框操作
|
||||
let inpVal = e.target.value
|
||||
let inputNum = /^(\-|\+?)\d{0,4}(\.\d{0,5})?$/
|
||||
if (inputNum.test(inpVal)) {
|
||||
@ -761,6 +766,10 @@ const Index: React.FC<{}> = () => {
|
||||
message.error('输入分值不可大于最高分值!')
|
||||
inpVal = sorce
|
||||
}
|
||||
if (Number(inpVal) < lowScore) {
|
||||
message.error('输入分值不可小于最低分值!')
|
||||
inpVal = lowScore
|
||||
}
|
||||
} else {
|
||||
message.error('请输入正确的分值!')
|
||||
inpVal = inpVal.substring(0, inpVal.length - 1)
|
||||
|
Reference in New Issue
Block a user