|
@@ -35,7 +35,17 @@ const LockModal = props => {
|
|
|
const [form] = Form.useForm()
|
|
const [form] = Form.useForm()
|
|
|
const dispatch = useDispatch()
|
|
const dispatch = useDispatch()
|
|
|
const scrollRef = useRef()
|
|
const scrollRef = useRef()
|
|
|
- const { visible, onCancel, onConfirm, loading, type, longleId, keyNum, prodList } = props
|
|
|
|
|
|
|
+ const {
|
|
|
|
|
+ visible,
|
|
|
|
|
+ onCancel,
|
|
|
|
|
+ onConfirm,
|
|
|
|
|
+ loading,
|
|
|
|
|
+ type,
|
|
|
|
|
+ longleId,
|
|
|
|
|
+ keyNum,
|
|
|
|
|
+ prodList,
|
|
|
|
|
+ upgradeProduct
|
|
|
|
|
+ } = props
|
|
|
const layout = {
|
|
const layout = {
|
|
|
layout: 'vertical'
|
|
layout: 'vertical'
|
|
|
}
|
|
}
|
|
@@ -54,8 +64,7 @@ const LockModal = props => {
|
|
|
// 获取软件锁产品列表
|
|
// 获取软件锁产品列表
|
|
|
function fetchSoftProducts() {
|
|
function fetchSoftProducts() {
|
|
|
dispatch({
|
|
dispatch({
|
|
|
- type: 'lock/fetchProdList',
|
|
|
|
|
- payload: 'longleId'
|
|
|
|
|
|
|
+ type: 'lock/fetchProdList'
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -248,7 +257,8 @@ const LockModal = props => {
|
|
|
</Button>
|
|
</Button>
|
|
|
</div>
|
|
</div>
|
|
|
)
|
|
)
|
|
|
- }>
|
|
|
|
|
|
|
+ }
|
|
|
|
|
+ >
|
|
|
{type === lockTypeEnum.SALE ? (
|
|
{type === lockTypeEnum.SALE ? (
|
|
|
<div className="text-center mb-6">
|
|
<div className="text-center mb-6">
|
|
|
<Radio.Group value={state.sellStatus} buttonStyle="solid" onChange={checkGroupOnChange}>
|
|
<Radio.Group value={state.sellStatus} buttonStyle="solid" onChange={checkGroupOnChange}>
|
|
@@ -263,7 +273,8 @@ const LockModal = props => {
|
|
|
className={styles.modalContainer}
|
|
className={styles.modalContainer}
|
|
|
ref={scrollRef}
|
|
ref={scrollRef}
|
|
|
onScroll={handleListScroll}
|
|
onScroll={handleListScroll}
|
|
|
- style={{ paddingBottom: 0 }}>
|
|
|
|
|
|
|
+ style={{ paddingBottom: 0 }}
|
|
|
|
|
+ >
|
|
|
<div className={styles.modalContent}>
|
|
<div className={styles.modalContent}>
|
|
|
<Spin spinning={state.loading}>
|
|
<Spin spinning={state.loading}>
|
|
|
{type === lockTypeEnum.SALE &&
|
|
{type === lockTypeEnum.SALE &&
|
|
@@ -278,7 +289,8 @@ const LockModal = props => {
|
|
|
title="确认选择ta"
|
|
title="确认选择ta"
|
|
|
onConfirm={() => connectClient(item.id)}
|
|
onConfirm={() => connectClient(item.id)}
|
|
|
okText="确认"
|
|
okText="确认"
|
|
|
- cancelText="取消">
|
|
|
|
|
|
|
+ cancelText="取消"
|
|
|
|
|
+ >
|
|
|
<Button type="primary" size="small">
|
|
<Button type="primary" size="small">
|
|
|
选择ta
|
|
选择ta
|
|
|
</Button>
|
|
</Button>
|
|
@@ -296,7 +308,8 @@ const LockModal = props => {
|
|
|
title="确认选择ta"
|
|
title="确认选择ta"
|
|
|
onConfirm={() => connectLongle(item.id)}
|
|
onConfirm={() => connectLongle(item.id)}
|
|
|
okText="确认"
|
|
okText="确认"
|
|
|
- cancelText="取消">
|
|
|
|
|
|
|
+ cancelText="取消"
|
|
|
|
|
+ >
|
|
|
<Button type="primary" size="small">
|
|
<Button type="primary" size="small">
|
|
|
更换
|
|
更换
|
|
|
</Button>
|
|
</Button>
|
|
@@ -313,7 +326,25 @@ const LockModal = props => {
|
|
|
<Form {...layout} form={form}>
|
|
<Form {...layout} form={form}>
|
|
|
{type === lockTypeEnum.UPDATE ? (
|
|
{type === lockTypeEnum.UPDATE ? (
|
|
|
<>
|
|
<>
|
|
|
- <Form.Item name="product" label="新增产品">
|
|
|
|
|
|
|
+ <Form.Item
|
|
|
|
|
+ name="product"
|
|
|
|
|
+ label="新增产品"
|
|
|
|
|
+ required
|
|
|
|
|
+ rules={[
|
|
|
|
|
+ () => ({
|
|
|
|
|
+ validator(_, value) {
|
|
|
|
|
+ if (!value) {
|
|
|
|
|
+ return Promise.reject(new Error('请选择产品'))
|
|
|
|
|
+ }
|
|
|
|
|
+ // 表示该产品已升级
|
|
|
|
|
+ if (value && upgradeProduct.includes(value)) {
|
|
|
|
|
+ return Promise.reject(new Error('该产品已升级'))
|
|
|
|
|
+ }
|
|
|
|
|
+ return Promise.resolve(value)
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ ]}
|
|
|
|
|
+ >
|
|
|
<Select
|
|
<Select
|
|
|
placeholder="请选择产品"
|
|
placeholder="请选择产品"
|
|
|
onDropdownVisibleChange={async e => {
|
|
onDropdownVisibleChange={async e => {
|