@@ -66,7 +66,6 @@ const Gate = () => { | |||||
// 及时销毁 editor ,重要! | // 及时销毁 editor ,重要! | ||||
useEffect(() => { | useEffect(() => { | ||||
if (editor == null) return; | if (editor == null) return; | ||||
console.log('销毁'); | |||||
editor.destroy() | editor.destroy() | ||||
setEditor(null) | setEditor(null) | ||||
setHtml(''); | setHtml(''); | ||||
@@ -237,7 +236,7 @@ const Gate = () => { | |||||
onChange: (page) => setCurrent(page), | onChange: (page) => setCurrent(page), | ||||
}} | }} | ||||
dateFormatter="string" | dateFormatter="string" | ||||
headerTitle="储值卡账户管理" | |||||
headerTitle="档口管理" | |||||
toolBarRender={() => [ | toolBarRender={() => [ | ||||
<div className={styles.table_search_item}> | <div className={styles.table_search_item}> | ||||
<div> | <div> | ||||
@@ -89,6 +89,11 @@ const Machine = () => { | |||||
</div> | </div> | ||||
} | } | ||||
}, | }, | ||||
{ | |||||
title: '设备地址', | |||||
dataIndex: 'address', | |||||
ellipsis: true, | |||||
}, | |||||
{ | { | ||||
title: '状态', | title: '状态', | ||||
dataIndex: 'status', | dataIndex: 'status', | ||||
@@ -192,7 +197,7 @@ const Machine = () => { | |||||
onChange: (page) => setCurrent(page) | onChange: (page) => setCurrent(page) | ||||
}} | }} | ||||
dateFormatter="string" | dateFormatter="string" | ||||
headerTitle="储值卡账户管理" | |||||
headerTitle="刷卡机管理" | |||||
toolBarRender={() => [ | toolBarRender={() => [ | ||||
<div className={styles.table_search_item}> | <div className={styles.table_search_item}> | ||||
<div> | <div> | ||||
@@ -245,6 +250,7 @@ const Machine = () => { | |||||
<Input /> | <Input /> | ||||
</Form.Item> | </Form.Item> | ||||
<Form.Item | <Form.Item | ||||
label="设备名称" | label="设备名称" | ||||
name="name" | name="name" | ||||
@@ -311,6 +317,23 @@ const Machine = () => { | |||||
<Input defaultValue={10} /> | <Input defaultValue={10} /> | ||||
</Form.Item> | </Form.Item> | ||||
<Form.Item | |||||
label="设备地址" | |||||
name="address" | |||||
rules={[ | |||||
{ | |||||
required: true, | |||||
message: '请输入档口名称!', | |||||
}, | |||||
{ | |||||
pattern: new RegExp(/[0-9A-Fa-f]{2}/, 'g'), | |||||
message: '请输入16进制!' | |||||
} | |||||
]} | |||||
> | |||||
<Input /> | |||||
</Form.Item> | |||||
<Form.Item> | <Form.Item> | ||||
<Button type="primary" htmlType="submit"> | <Button type="primary" htmlType="submit"> | ||||
确定 | 确定 | ||||
@@ -1,4 +1,4 @@ | |||||
import React, { useRef, useState } from "react"; | |||||
import React, { useRef, useState, useEffect } from "react"; | |||||
import styles from "./index.less"; | import styles from "./index.less"; | ||||
import { PageContainer } from '@ant-design/pro-layout'; | import { PageContainer } from '@ant-design/pro-layout'; | ||||
import { PlusOutlined, UserOutlined } from '@ant-design/icons'; | import { PlusOutlined, UserOutlined } from '@ant-design/icons'; | ||||
@@ -13,7 +13,11 @@ import cardAPI from "../service"; | |||||
const memberAccount = () => { | const memberAccount = () => { | ||||
const actionRef = useRef(); | const actionRef = useRef(); | ||||
const [isModalOpen, setIsModalOpen] = useState(false); | const [isModalOpen, setIsModalOpen] = useState(false); | ||||
const [currentOption, setCurrentOption] = useState(); | |||||
const [currentOption, setCurrentOption] = useState({ | |||||
functionName: '', | |||||
record: {}, | |||||
type: 0 | |||||
}); | |||||
const [current, setCurrent] = useState(1); | const [current, setCurrent] = useState(1); | ||||
const [pageSize, setPageSize] = useState(10); | const [pageSize, setPageSize] = useState(10); | ||||
const [total, setTotal] = useState(0); | const [total, setTotal] = useState(0); | ||||
@@ -37,6 +41,11 @@ const memberAccount = () => { | |||||
"type": type | "type": type | ||||
} | } | ||||
const response = await cardAPI.GetMemberAccountCardConsRecord(jsonData); | const response = await cardAPI.GetMemberAccountCardConsRecord(jsonData); | ||||
setCurrentOption({ | |||||
functionName: 'onFetchAccountConsRecord', | |||||
record: JSON.parse(JSON.stringify(record)), | |||||
type | |||||
}); | |||||
if (response.statusCode === 200) { | if (response.statusCode === 200) { | ||||
setConsList(response.data.data); | setConsList(response.data.data); | ||||
setConsTotal(response.data.total); | setConsTotal(response.data.total); | ||||
@@ -59,6 +68,11 @@ const memberAccount = () => { | |||||
"type": type | "type": type | ||||
} | } | ||||
const response = await cardAPI.GetMemberAccountCardConsRecord(jsonData); | const response = await cardAPI.GetMemberAccountCardConsRecord(jsonData); | ||||
setCurrentOption({ | |||||
functionName: 'onFetchCardConsRecord', | |||||
record: JSON.parse(JSON.stringify(record)), | |||||
type | |||||
}); | |||||
if (response.statusCode === 200) { | if (response.statusCode === 200) { | ||||
setConsList(response.data.data); | setConsList(response.data.data); | ||||
setConsTotal(response.data.total); | setConsTotal(response.data.total); | ||||
@@ -141,15 +155,15 @@ const memberAccount = () => { | |||||
dataIndex: 'type', | dataIndex: 'type', | ||||
valueType: 'select', | valueType: 'select', | ||||
valueEnum: { | valueEnum: { | ||||
0: { | |||||
1: { | |||||
text: '人脸', | text: '人脸', | ||||
status: 'Success', | status: 'Success', | ||||
}, | }, | ||||
1: { | |||||
2: { | |||||
text: '实体卡', | text: '实体卡', | ||||
status: 'Success', | status: 'Success', | ||||
}, | }, | ||||
2: { | |||||
3: { | |||||
text: '指纹', | text: '指纹', | ||||
status: 'Success', | status: 'Success', | ||||
} | } | ||||
@@ -170,6 +184,11 @@ const memberAccount = () => { | |||||
//消费列表 | //消费列表 | ||||
const consColumns = [ | const consColumns = [ | ||||
{ | |||||
title: '时间', | |||||
dataIndex: 'createAt', | |||||
width: 200 | |||||
}, | |||||
{ | { | ||||
title: '类型', | title: '类型', | ||||
dataIndex: 'type', | dataIndex: 'type', | ||||
@@ -182,21 +201,43 @@ const memberAccount = () => { | |||||
</div> | </div> | ||||
} | } | ||||
}, | }, | ||||
{ | |||||
title: '消费金额', | |||||
dataIndex: 'money', | |||||
}, | |||||
{ | { | ||||
title: '之前余额', | title: '之前余额', | ||||
dataIndex: 'beforeMoney', | dataIndex: 'beforeMoney', | ||||
render: (_, record) => { | |||||
return <div style={{ color: 'green' }}> | |||||
{record.beforeMoney} | |||||
</div> | |||||
} | |||||
}, | |||||
{ | |||||
title: '消费金额', | |||||
dataIndex: 'money', | |||||
render: (_, record) => { | |||||
return <div style={{ color: 'red' }}> | |||||
{record.money} | |||||
</div> | |||||
} | |||||
}, | }, | ||||
{ | { | ||||
title: '之后余额', | title: '之后余额', | ||||
dataIndex: 'afterMoney', | dataIndex: 'afterMoney', | ||||
render: (_, record) => { | |||||
return <div style={{ color: 'blue' }}> | |||||
{record.afterMoney} | |||||
</div> | |||||
} | |||||
} | } | ||||
]; | ]; | ||||
useEffect(() => { | |||||
if (consCurrent === 1) return; | |||||
if (currentOption.functionName === 'onFetchAccountConsRecord') { | |||||
onFetchAccountConsRecord(currentOption.record, currentOption.type); | |||||
} else if (currentOption.functionName === 'onFetchCardConsRecord') { | |||||
onFetchCardConsRecord(currentOption.record, currentOption.type); | |||||
} | |||||
}, [consCurrent]) | |||||
return ( | return ( | ||||
<PageContainer> | <PageContainer> | ||||
@@ -239,7 +280,7 @@ const memberAccount = () => { | |||||
dateFormatter="string" | dateFormatter="string" | ||||
headerTitle="储值卡账户管理" | headerTitle="储值卡账户管理" | ||||
/> | /> | ||||
<Modal width={800} title='消费记录' visible={isModalOpen} footer={false} onCancel={() => setIsModalOpen(false)}> | |||||
<Modal width={800} title='消费记录' visible={isModalOpen} footer={false} onCancel={() => {setIsModalOpen(false); setConsCurrent(1)}}> | |||||
<Table columns={consColumns} dataSource={consList} pagination={{ | <Table columns={consColumns} dataSource={consList} pagination={{ | ||||
current: consCurrent, | current: consCurrent, | ||||
pageSize: consPageSize, | pageSize: consPageSize, | ||||
@@ -70,7 +70,7 @@ const storedValueCard = () => { | |||||
"memberCardId": currentOption.id | "memberCardId": currentOption.id | ||||
}); | }); | ||||
if (response.data === true) { | if (response.data === true) { | ||||
message.error('绑定成功'); | |||||
message.success('绑定成功'); | |||||
actionRef.current.reload(); | actionRef.current.reload(); | ||||
setBindMemberDrawer(false); | setBindMemberDrawer(false); | ||||
} else { | } else { | ||||
@@ -172,15 +172,15 @@ const storedValueCard = () => { | |||||
dataIndex: 'type', | dataIndex: 'type', | ||||
valueType: 'select', | valueType: 'select', | ||||
valueEnum: { | valueEnum: { | ||||
0: { | |||||
1: { | |||||
text: '人脸', | text: '人脸', | ||||
status: 'Success', | status: 'Success', | ||||
}, | }, | ||||
1: { | |||||
2: { | |||||
text: '实体卡', | text: '实体卡', | ||||
status: 'Success', | status: 'Success', | ||||
}, | }, | ||||
2: { | |||||
3: { | |||||
text: '指纹', | text: '指纹', | ||||
status: 'Success', | status: 'Success', | ||||
} | } | ||||
@@ -265,7 +265,7 @@ const storedValueCard = () => { | |||||
onChange: (page) => setCurrent(page), | onChange: (page) => setCurrent(page), | ||||
}} | }} | ||||
dateFormatter="string" | dateFormatter="string" | ||||
headerTitle="储值卡账户管理" | |||||
headerTitle="储值卡管理" | |||||
toolBarRender={() => [ | toolBarRender={() => [ | ||||
<Button key="button" icon={<PlusOutlined />} type="primary" onClick={onCreateTableRow}> | <Button key="button" icon={<PlusOutlined />} type="primary" onClick={onCreateTableRow}> | ||||
新建 | 新建 | ||||
@@ -324,9 +324,9 @@ const storedValueCard = () => { | |||||
]} | ]} | ||||
> | > | ||||
<Select> | <Select> | ||||
<Select.Option value={0}>人脸</Select.Option> | |||||
<Select.Option value={1}>实体卡</Select.Option> | |||||
<Select.Option value={2}>指纹</Select.Option> | |||||
<Select.Option value={1}>人脸</Select.Option> | |||||
<Select.Option value={2}>实体卡</Select.Option> | |||||
<Select.Option value={3}>指纹</Select.Option> | |||||
</Select> | </Select> | ||||
</Form.Item> | </Form.Item> | ||||
@@ -0,0 +1,208 @@ | |||||
import React, { useState, useEffect, useRef } from 'react'; | |||||
import quickAPI from "../../service"; | |||||
import indexStyles from "../../index.less"; | |||||
import StepsButton from "../StepsButton"; | |||||
import { message } from 'antd'; | |||||
/** | |||||
* 确认配置 | |||||
* @returns | |||||
*/ | |||||
const ConfirmConfig = (props) => { | |||||
/** | |||||
* 1.组织配置 | |||||
*/ | |||||
//组织树 | |||||
const [orgTree, setOrgTree] = useState([]); | |||||
//支付方式列表 | |||||
const [payTypeList, setPayTypeList] = useState([]); | |||||
//获取组织树 | |||||
const onFetchOrgTree = async () => { | |||||
const response = await await quickAPI.getpage({ | |||||
current: 1, | |||||
pageSize: 1000 | |||||
}); | |||||
if (response.data.success) { | |||||
setOrgTree(response.data.data); | |||||
} else { | |||||
message.error(response.errors || '获取组织架构出错'); | |||||
} | |||||
} | |||||
//获取支付配置 | |||||
const getPayTemplateList = async () => { | |||||
const response = await quickAPI.getPayTemplateList(); | |||||
if (response.statusCode === 200) { | |||||
setPayTypeList(response.data.data); | |||||
} else { | |||||
message.error(response.errors || '获取获取支付方式出错'); | |||||
} | |||||
} | |||||
useEffect(() => { | |||||
onFetchOrgTree(); | |||||
getPayTemplateList(); | |||||
}, []); | |||||
return <> | |||||
{/* 1.组织配置 */} | |||||
<table style={{ width: '50%', marginBottom: '10px' }}> | |||||
<tbody> | |||||
<tr className={indexStyles.ant_descriptions_row}> | |||||
<th className={indexStyles.ant_descriptions_item_title}> | |||||
组织配置 | |||||
</th> | |||||
</tr> | |||||
<tr className={indexStyles.ant_descriptions_row}> | |||||
<th className={indexStyles.ant_descriptions_item_label}> | |||||
ID | |||||
</th> | |||||
<td className={indexStyles.ant_descriptions_item_content}> | |||||
{props.quickStartObj.storeConfig.id} | |||||
</td> | |||||
</tr> | |||||
<tr className={indexStyles.ant_descriptions_row}> | |||||
<th className={indexStyles.ant_descriptions_item_label}> | |||||
编码 | |||||
</th> | |||||
<td className={indexStyles.ant_descriptions_item_content}> | |||||
{props.quickStartObj.storeConfig.code} | |||||
</td> | |||||
</tr> | |||||
<tr className={indexStyles.ant_descriptions_row}> | |||||
<th className={indexStyles.ant_descriptions_item_label}> | |||||
名称 | |||||
</th> | |||||
<td className={indexStyles.ant_descriptions_item_content}> | |||||
{props.quickStartObj.storeConfig.name} | |||||
</td> | |||||
</tr> | |||||
<tr className={indexStyles.ant_descriptions_row}> | |||||
<th className={indexStyles.ant_descriptions_item_label}> | |||||
上级组织 | |||||
</th> | |||||
<td className={indexStyles.ant_descriptions_item_content}> | |||||
{(() => { | |||||
const pid = props.quickStartObj.storeConfig.pid; | |||||
const find = orgTree.find(item => item.id === pid); | |||||
if (find) { | |||||
return find.name; | |||||
} else { | |||||
return "无上级组织" | |||||
} | |||||
})()} | |||||
</td> | |||||
</tr> | |||||
<tr className={indexStyles.ant_descriptions_row}> | |||||
<th className={indexStyles.ant_descriptions_item_label}> | |||||
组织类型 | |||||
</th> | |||||
<td className={indexStyles.ant_descriptions_item_content}> | |||||
{props.quickStartObj.storeConfig.type} | |||||
</td> | |||||
</tr> | |||||
<tr className={indexStyles.ant_descriptions_row}> | |||||
<th className={indexStyles.ant_descriptions_item_label}> | |||||
支付方式 | |||||
</th> | |||||
<td className={indexStyles.ant_descriptions_item_content}> | |||||
{(() => { | |||||
const payTemplateId = props.quickStartObj.storeConfig.payTemplateId; | |||||
const find = payTypeList.find(item => item.id === payTemplateId); | |||||
if (find) { | |||||
return find.name; | |||||
} else { | |||||
return "无支付方式" | |||||
} | |||||
})()} | |||||
</td> | |||||
</tr> | |||||
<tr className={indexStyles.ant_descriptions_row}> | |||||
<th className={indexStyles.ant_descriptions_item_label}> | |||||
店铺地址 | |||||
</th> | |||||
<td className={indexStyles.ant_descriptions_item_content}> | |||||
{props.quickStartObj.storeConfig.store_Addr} | |||||
</td> | |||||
</tr> | |||||
<tr className={indexStyles.ant_descriptions_row}> | |||||
<th className={indexStyles.ant_descriptions_item_label}> | |||||
店铺坐标 | |||||
</th> | |||||
<td className={indexStyles.ant_descriptions_item_content}> | |||||
{props.quickStartObj.storeConfig.store_Loc} | |||||
</td> | |||||
</tr> | |||||
<tr className={indexStyles.ant_descriptions_row}> | |||||
<th className={indexStyles.ant_descriptions_item_label}> | |||||
联系电话 | |||||
</th> | |||||
<td className={indexStyles.ant_descriptions_item_content}> | |||||
{props.quickStartObj.storeConfig.tel} | |||||
</td> | |||||
</tr> | |||||
<tr className={indexStyles.ant_descriptions_row}> | |||||
<th className={indexStyles.ant_descriptions_item_label}> | |||||
门店排序 | |||||
</th> | |||||
<td className={indexStyles.ant_descriptions_item_content}> | |||||
{props.quickStartObj.storeConfig.sort} | |||||
</td> | |||||
</tr> | |||||
<tr className={indexStyles.ant_descriptions_row}> | |||||
<th className={indexStyles.ant_descriptions_item_label}> | |||||
备注 | |||||
</th> | |||||
<td className={indexStyles.ant_descriptions_item_content}> | |||||
{props.quickStartObj.storeConfig.remark} | |||||
</td> | |||||
</tr> | |||||
</tbody> | |||||
</table> | |||||
{/* 2.设备配置 */} | |||||
<table style={{ width: '50%', marginBottom: '10px' }}> | |||||
<tbody> | |||||
<tr className={indexStyles.ant_descriptions_row}> | |||||
<th className={indexStyles.ant_descriptions_item_title}> | |||||
设备配置 | |||||
</th> | |||||
</tr> | |||||
<tr className={indexStyles.ant_descriptions_row}> | |||||
<th className={indexStyles.ant_descriptions_item_label}> | |||||
ID | |||||
</th> | |||||
<td className={indexStyles.ant_descriptions_item_content}> | |||||
{props.quickStartObj.deviceConfig.id} | |||||
</td> | |||||
</tr> | |||||
<tr className={indexStyles.ant_descriptions_row}> | |||||
<th className={indexStyles.ant_descriptions_item_label}> | |||||
设备名称 | |||||
</th> | |||||
<td className={indexStyles.ant_descriptions_item_content}> | |||||
{props.quickStartObj.deviceConfig.deviceName} | |||||
</td> | |||||
</tr> | |||||
<tr className={indexStyles.ant_descriptions_row}> | |||||
<th className={indexStyles.ant_descriptions_item_label}> | |||||
设备类型 | |||||
</th> | |||||
<td className={indexStyles.ant_descriptions_item_content}> | |||||
{props.quickStartObj.deviceConfig.deviceTypeKey} | |||||
</td> | |||||
</tr> | |||||
<tr className={indexStyles.ant_descriptions_row}> | |||||
<th className={indexStyles.ant_descriptions_item_label}> | |||||
设备类型 | |||||
</th> | |||||
<td className={indexStyles.ant_descriptions_item_content}> | |||||
{props.quickStartObj.deviceConfig.deviceTypeKey} | |||||
</td> | |||||
</tr> | |||||
</tbody> | |||||
</table> | |||||
<StepsButton current={props.current} steps={props.steps} prev={props.prev}></StepsButton> | |||||
</> | |||||
} | |||||
export default ConfirmConfig; |
@@ -130,6 +130,9 @@ const DeviceConfig = (props) => { | |||||
} | } | ||||
]; | ]; | ||||
const [currentPage, setCurrentPage] = useState(0); | |||||
const [pageSize, setPageSize] = useState(5); | |||||
const optionsWithDisabled = [ | const optionsWithDisabled = [ | ||||
{ | { | ||||
label: '新建设备', | label: '新建设备', | ||||
@@ -285,6 +288,14 @@ const DeviceConfig = (props) => { | |||||
search={{ | search={{ | ||||
labelWidth: 120, | labelWidth: 120, | ||||
}} | }} | ||||
pagination={{ | |||||
current: currentPage, | |||||
pageSize: pageSize, | |||||
onChange: (page, pageSize) => { | |||||
setCurrentPage(page); | |||||
setPageSize(pageSize); | |||||
} | |||||
}} | |||||
request={async (params) => { | request={async (params) => { | ||||
let data = []; | let data = []; | ||||
let total = 0; | let total = 0; | ||||
@@ -67,6 +67,9 @@ const FoodMenuConfig = (props) => { | |||||
} | } | ||||
] | ] | ||||
const [currentPage, setCurrentPage] = useState(0); | |||||
const [pageSize, setPageSize] = useState(5); | |||||
return <> | return <> | ||||
<div className={indexStyles.choose_change_state}> | <div className={indexStyles.choose_change_state}> | ||||
<Radio.Group | <Radio.Group | ||||
@@ -108,6 +111,14 @@ const FoodMenuConfig = (props) => { | |||||
search={{ | search={{ | ||||
labelWidth: 120, | labelWidth: 120, | ||||
}} | }} | ||||
pagination={{ | |||||
current: currentPage, | |||||
pageSize: pageSize, | |||||
onChange: (page, pageSize) => { | |||||
setCurrentPage(page); | |||||
setPageSize(pageSize); | |||||
} | |||||
}} | |||||
request={async (params) => { | request={async (params) => { | ||||
let data = []; | let data = []; | ||||
let total = 0; | let total = 0; | ||||
@@ -7,6 +7,9 @@ import styles from "./index.less"; | |||||
const StoreConfig = (props) => { | const StoreConfig = (props) => { | ||||
const [currentPage, setCurrentPage] = useState(0); | |||||
const [pageSize, setPageSize] = useState(5); | |||||
const { TextArea } = Input; | const { TextArea } = Input; | ||||
const { Option, OptGroup } = Select; | const { Option, OptGroup } = Select; | ||||
const [storeForm] = Form.useForm(); | const [storeForm] = Form.useForm(); | ||||
@@ -288,6 +291,14 @@ const StoreConfig = (props) => { | |||||
}; | }; | ||||
}} | }} | ||||
columns={columns} | columns={columns} | ||||
pagination={{ | |||||
current: currentPage, | |||||
pageSize: pageSize, | |||||
onChange: (page, pageSize) => { | |||||
setCurrentPage(page); | |||||
setPageSize(pageSize); | |||||
} | |||||
}} | |||||
/> | /> | ||||
} | } | ||||
</div> | </div> | ||||
@@ -8,6 +8,7 @@ import FoodMenuConfig from './components/FoodMenuConfig'; | |||||
import GoodsConfig from './components/GoodsConfig'; | import GoodsConfig from './components/GoodsConfig'; | ||||
import BomConfig from './components/BomConfig'; | import BomConfig from './components/BomConfig'; | ||||
import MaterialConfig from './components/MaterialConfig'; | import MaterialConfig from './components/MaterialConfig'; | ||||
import ConfirmConfig from './components/ConfirmConfig'; | |||||
const { Step } = Steps; | const { Step } = Steps; | ||||
@@ -112,11 +113,11 @@ const QuickStart = () => { | |||||
<GoodsConfig goodsConfig={quickStartObj.goodsConfig} current={current} steps={stepsText} onFinishForm={onFinishForm} prev={prev}></GoodsConfig>, | <GoodsConfig goodsConfig={quickStartObj.goodsConfig} current={current} steps={stepsText} onFinishForm={onFinishForm} prev={prev}></GoodsConfig>, | ||||
<BomConfig bomConfig={quickStartObj.bomConfig} current={current} steps={stepsText} onFinishForm={onFinishForm} prev={prev}></BomConfig>, | <BomConfig bomConfig={quickStartObj.bomConfig} current={current} steps={stepsText} onFinishForm={onFinishForm} prev={prev}></BomConfig>, | ||||
<MaterialConfig materialConfig={quickStartObj.materialConfig} current={current} steps={stepsText} onFinishForm={onFinishForm} prev={prev}></MaterialConfig>, | <MaterialConfig materialConfig={quickStartObj.materialConfig} current={current} steps={stepsText} onFinishForm={onFinishForm} prev={prev}></MaterialConfig>, | ||||
<h1>确认配置</h1> | |||||
<ConfirmConfig quickStartObj={quickStartObj} current={current} steps={stepsText} onFinishForm={onFinishForm} prev={prev}></ConfirmConfig> | |||||
]; | ]; | ||||
useEffect(() => { | useEffect(() => { | ||||
console.log('对象更新啦', quickStartObj); | |||||
console.log('对象更新啦', quickStartObj, JSON.stringify(quickStartObj)); | |||||
}, [quickStartObj]); | }, [quickStartObj]); | ||||
return <PageContainer> | return <PageContainer> | ||||
@@ -25,4 +25,50 @@ | |||||
top: 50%; | top: 50%; | ||||
transform: translateY(-50%); | transform: translateY(-50%); | ||||
right: 0px | right: 0px | ||||
} | |||||
.ant_descriptions_row { | |||||
display: flex; | |||||
border-bottom: 1px solid rgba(0,0,0,.06); | |||||
} | |||||
.ant_descriptions_row:first-child { | |||||
border-top: 1px solid rgba(0,0,0,.06); | |||||
border-right: 1px solid rgba(0,0,0,.06); | |||||
} | |||||
.ant_descriptions_item_title { | |||||
color: rgba(0,0,0,.85); | |||||
font-weight: 600; | |||||
font-size: 18px; | |||||
line-height: 1.5715; | |||||
text-align: start; | |||||
padding: 16px 24px; | |||||
border-left: 1px solid rgba(0,0,0,.06); | |||||
} | |||||
.ant_descriptions_item_label { | |||||
flex-shrink: 0; | |||||
width: 20%; | |||||
color: rgba(0,0,0,.85); | |||||
font-weight: 400; | |||||
font-size: 14px; | |||||
line-height: 1.5715; | |||||
text-align: start; | |||||
background-color: #fafafa; | |||||
padding: 16px 24px; | |||||
border-left: 1px solid rgba(0,0,0,.06); | |||||
border-right: 1px solid rgba(0,0,0,.06); | |||||
} | |||||
.ant_descriptions_item_content { | |||||
border-right: 1px solid rgba(0,0,0,.06); | |||||
padding: 16px 24px; | |||||
display: table-cell; | |||||
flex: 1 1; | |||||
color: rgba(0,0,0,.85); | |||||
font-size: 14px; | |||||
line-height: 1.5715; | |||||
word-break: break-word; | |||||
overflow-wrap: break-word; | |||||
} | } |