Commit f208c44a authored by cellee's avatar cellee

新增小区搜索也一并新增,预定设施功能完善,预订列表提示等内容完善

Signed-off-by: cellee's avatarcellee <893264950@qq.com>
parent 8ca7af94
...@@ -53,14 +53,12 @@ function getDotText(arr) { ...@@ -53,14 +53,12 @@ function getDotText(arr) {
} }
} }
class SelectOptions extends React.Component { class SelectOptions extends React.PureComponent {
state = {}; state = {};
constructor(props) { constructor(props) {
super(props); super(props);
const { list, dispatch, checklist } = this.props; const { list, dispatch, checklist } = this.props;
console.log(list);
if (list == null) { if (list == null) {
//console.error("组件错误:没有数据导入") //console.error("组件错误:没有数据导入")
} }
...@@ -102,7 +100,8 @@ class SelectOptions extends React.Component { ...@@ -102,7 +100,8 @@ class SelectOptions extends React.Component {
} }
console.log(this.state.componetVisible); console.log(this.state.componetVisible);
} }
// console.log(this.props.list); if (this.props.list.length > this.state.checkedList.length) {
}
// console.log(prevProps.list); // console.log(prevProps.list);
// if (this.props.list.length > prevProps.list.length) { // if (this.props.list.length > prevProps.list.length) {
// console.log(this.props.list); // console.log(this.props.list);
...@@ -229,7 +228,7 @@ class SelectOptions extends React.Component { ...@@ -229,7 +228,7 @@ class SelectOptions extends React.Component {
}; };
// 索引 -- 全部点击 // 索引 -- 全部点击
itemSelectAll = (e) => { itemSelectAll = (e) => {
console.log(this.props.list); // console.log(this.props.list);
this.setState({ this.setState({
checkedListOptions: this.props.list, checkedListOptions: this.props.list,
checkedList: this.state.resultList, checkedList: this.state.resultList,
......
...@@ -64,8 +64,10 @@ export default { ...@@ -64,8 +64,10 @@ export default {
switch (playload.index) { switch (playload.index) {
case 24: case 24:
{ {
let CommunityList = null;
yield put({ type: 'Init/returnCommunityList', CommunityList });
let Data = resp.data; let Data = resp.data;
let CommunityList = resp.data.communityList; CommunityList = resp.data.communityList;
yield put({ type: 'returnPage', Data }); yield put({ type: 'returnPage', Data });
yield put({ type: 'Init/returnCommunityList', CommunityList }); yield put({ type: 'Init/returnCommunityList', CommunityList });
} }
......
...@@ -2,117 +2,113 @@ import * as service from '../../services/tos'; ...@@ -2,117 +2,113 @@ import * as service from '../../services/tos';
import { message } from 'antd'; import { message } from 'antd';
import { Link, useIntl, connect, Dispatch, history } from 'umi'; import { Link, useIntl, connect, Dispatch, history } from 'umi';
import { routerRedux } from 'dva/router' import { routerRedux } from 'dva/router';
export default { export default {
namespace: 'Contract', namespace: 'Contract',
state: { state: {
Data: { data: [], total: 0 }, Data: { data: [], total: 0 },
curString:{}, curString: {},
Result: null, Result: null,
DataSave: null, DataSave: null,
DataSaveDetail:null, DataSaveDetail: null,
playload:{} playload: {},
}, },
reducers: { reducers: {
returnPage(state, { Data}) { returnPage(state, { Data }) {
return { ...state, Data }; return { ...state, Data };
}, },
returnResult(state, { Result}) { returnResult(state, { Result }) {
return { ...state, Result}; return { ...state, Result };
}, },
returnDataSave(state, { DataSave }) { returnDataSave(state, { DataSave }) {
return {...state,DataSave} return { ...state, DataSave };
}, },
returnDataSaveDetail(state, { DataSaveDetail }) { returnDataSaveDetail(state, { DataSaveDetail }) {
return {...state,DataSaveDetail} return { ...state, DataSaveDetail };
}, },
returnPath(state, { playload}) { returnPath(state, { playload }) {
return { ...state, playload }; return { ...state, playload };
}, },
}, },
effects: { effects: {
//预订设施查询 //预订设施查询
*RA({ playload }, { call, put }) { *RA({ playload }, { call, put }) {
console.log("开始请求") console.log('开始请求');
const resp = yield call(service.RA, playload); const resp = yield call(service.RA, playload);
console.log(resp) console.log(resp);
if (resp.code == 500||resp.error_code!="0000") { if (resp.code == 500 || resp.error_code != '0000') {
// window.location.href = '/500'; // window.location.href = '/500';
} }
if (resp.error_code != "0000") { if (resp.error_code != '0000') {
console.log("请求错误码:"+"("+playload.index+")" + resp.error_code) console.log('请求错误码:' + '(' + playload.index + ')' + resp.error_code);
console.log(playload) console.log(playload);
} else {
}
else {
switch (playload.index) { switch (playload.index) {
case 19: case 19:
{ {
let Data = resp.data; let Data = resp.data;
yield put({ type: 'returnPage', Data}); yield put({ type: 'returnPage', Data });
} break; }
break;
case 20: case 20:
{ {
let DataSaveDetail = resp.data; let DataSaveDetail = resp.data;
yield put({ type: 'returnDataSaveDetail', DataSaveDetail}); yield put({ type: 'returnDataSaveDetail', DataSaveDetail });
}
}break; break;
case 27: { case 27:
message.success('save success !'); {
var tmp=resp message.success('save success !');
yield put({ type: 'returnResult', tmp }) var tmp = resp;
setTimeout(function(){ yield put({ type: 'returnResult', tmp });
history.goBack() setTimeout(function () {
},1000) history.goBack();
} break; }, 1000);
}
break;
} }
} }
}, },
// url 带参数 // url 带参数
*RA2({ playload }, { call, put }){ // *RA2({ playload }, { call, put }){
console.log("开始请求") // console.log("开始请求")
const resp = yield call(service.RA2, playload); // const resp = yield call(service.RA2, playload);
console.log(resp) // console.log(resp)
}, // },
*ResultClear({ }, { put }) { *ResultClear({}, { put }) {
var tmp=null var tmp = null;
yield put({type: 'returnResult', tmp} ) yield put({ type: 'returnResult', tmp });
}, },
*SA({ playload }, { call, put }) { *SA({ playload }, { call, put }) {
var DataSave = playload var DataSave = playload;
yield put({type: 'returnDataSave', DataSave} ) yield put({ type: 'returnDataSave', DataSave });
}, },
*Paths({ playload }, { put }){ *Paths({ playload }, { put }) {
yield put({type: 'returnPath', playload} ) yield put({ type: 'returnPath', playload });
} },
}, },
subscriptions: { subscriptions: {
setup({ dispatch, history }) { setup({ dispatch, history }) {
// 监听 路由 // 监听 路由
return history.listen(({ pathname }) => { return history.listen(({ pathname }) => {
let path = { let path = {
path : pathname path: pathname,
} };
dispatch({ dispatch({
type: 'Paths', // 选择返回值 type: 'Paths', // 选择返回值
playload:{ playload: {
path path,
}, },
})
}); });
} });
} },
},
}; };
...@@ -131,8 +131,14 @@ export default { ...@@ -131,8 +131,14 @@ export default {
break; break;
case 1: case 1:
{ {
let Data3 = resp.data; let Data3 = resp.data;
yield put({ type: 'returnPage3', Data3}); if (JSON.stringify(Data3) == "{}") {
Data3 = false
// 提示小区没有设施
message.error('There Are No Facilities In The Community !');
}
yield put({ type: 'returnPage3', Data3});
}break; }break;
case 2:{ case 2:{
...@@ -154,6 +160,11 @@ export default { ...@@ -154,6 +160,11 @@ export default {
let tmp = resp.data; let tmp = resp.data;
const reg = [["url", "categoriesImageUrl"], ["name", "categoriesName"]] const reg = [["url", "categoriesImageUrl"], ["name", "categoriesName"]]
const reg2 = [["url", null]] const reg2 = [["url", null]]
//let sourceData = tmp;
// sourceData.categoriesOpenTime= timeToMoment(tmp.categoriesOpenTime);
// sourceData.categoriesName = Fromate(tmp.categoriesList, reg),
// sourceData.categoriesDetailsImageName = Fromate(tmp.facilitiesImageList, reg2)
let sourceData = { let sourceData = {
canReservationDay: tmp.canReservationDay, canReservationDay: tmp.canReservationDay,
canReservationNum: tmp.canReservationNum, canReservationNum: tmp.canReservationNum,
......
...@@ -66,17 +66,14 @@ const Facility = (props: any) => { ...@@ -66,17 +66,14 @@ const Facility = (props: any) => {
const formRef = useRef(null); const formRef = useRef(null);
// 进来先清空上传图片列表
useEffect(() => {
dispatch({ type: module + '/overAllImgList' });
}, [1]);
// 再监听列表 // 再监听列表
const [extImgList, setextImgList] = useState(imgList); const [extImgList, setextImgList] = useState(imgList);
useEffect(() => { useEffect(() => {
console.log('变化'); console.log('变化');
console.log(imgList); console.log(imgList);
setextImgList(imgList); if (imgList != null) {
setextImgList(imgList);
}
}, [imgList]); }, [imgList]);
useEffect(() => { useEffect(() => {
...@@ -144,12 +141,12 @@ const Facility = (props: any) => { ...@@ -144,12 +141,12 @@ const Facility = (props: any) => {
var result = values; var result = values;
// 过滤表单; // 过滤表单;
let imgs = extImgList.filter((item: any) => (Object.keys(item).length == 0 ? false : true)); let imgs = extImgList.filter((item: any) => (Object.keys(item).length == 0 ? false : true));
console.log(imgs.length);
// 开放时间判断 // 开放时间判断
if (imgs.length < 1) { if (imgs.length == 0) {
message.error('请至少上传一个设施'); message.error('Please upload at least one facility!');
} else if (!result.endTime && !result.startTime) { } else if (!result.endTime && !result.startTime) {
message.error('请选择开放时间'); message.error('Please select the opening time!');
} else { } else {
// 先处理设施和时间 // 先处理设施和时间
let categoriesName: any = []; let categoriesName: any = [];
...@@ -161,13 +158,16 @@ const Facility = (props: any) => { ...@@ -161,13 +158,16 @@ const Facility = (props: any) => {
if (imgs[i].name && imgs[i].pic) { if (imgs[i].name && imgs[i].pic) {
categoriesName[i] = `${imgs[i].name}&${imgs[i].pic}`; categoriesName[i] = `${imgs[i].name}&${imgs[i].pic}`;
} else { } else {
message.error('请填写设备名称'); message.error('Please fill in the name of the facility!');
return; return;
} }
} }
result.categoriesName = categoriesName; result.categoriesName = categoriesName; // 设施内容
result.reservationQuantumTime = reservationQuantumTime; result.reservationQuantumTime = reservationQuantumTime; // 开放时间段
result.categoriesOpenTime = `${result.startTime}-${result.endTime}`; // 预约时间段 二开需要
delete result.startTime;
delete result.periodType;
delete result.picList;
console.log(reservationQuantumTime); console.log(reservationQuantumTime);
console.log(result); console.log(result);
RA(6, result); RA(6, result);
......
...@@ -21,7 +21,9 @@ import { getUrlLastParams } from '../../../utils/string'; ...@@ -21,7 +21,9 @@ import { getUrlLastParams } from '../../../utils/string';
import './css/index.less'; import './css/index.less';
import ProTable from '@ant-design/pro-table'; import ProTable from '@ant-design/pro-table';
import { PlusOutlined, SearchOutlined, ClearOutlined } from '@ant-design/icons'; import { PlusOutlined, ClockCircleOutlined, ClearOutlined } from '@ant-design/icons';
import moment from 'moment';
const FacilityBookings = (props: any) => { const FacilityBookings = (props: any) => {
const { formatMessage } = useIntl(); const { formatMessage } = useIntl();
...@@ -53,6 +55,8 @@ const FacilityBookings = (props: any) => { ...@@ -53,6 +55,8 @@ const FacilityBookings = (props: any) => {
const goToFunction = () => { const goToFunction = () => {
if (curString.tab == 2) { if (curString.tab == 2) {
CA(); CA();
// 先清空上传图片列表
dispatch({ type: 'FacilityBookings/overAllImgList' });
} }
history.push(location.pathname + (curString.tab == 1 ? '/Booking' : '/Adding')); history.push(location.pathname + (curString.tab == 1 ? '/Booking' : '/Adding'));
}; };
...@@ -78,10 +82,25 @@ const FacilityBookings = (props: any) => { ...@@ -78,10 +82,25 @@ const FacilityBookings = (props: any) => {
[ [
'Order Time', 'Order Time',
null, null,
(text: any, record: any) => <div>{timestampToTime(record.createTime.time)}</div>, (text: any, record: any) => (
<div>
<ClockCircleOutlined style={{ color: '#666' }} />
&nbsp;
{moment(record.createTime.time).format('YYYY-MM-DD')}
</div>
),
], ],
['Booking Schedule', 'subscribeDate'], [
'Booking Schedule',
'subscribeDate',
(text: any) => (
<div>
<ClockCircleOutlined style={{ color: '#666' }} />
&nbsp;{text}
</div>
),
],
['Fee', 'managerFeeStatus', (text: any) => <div>{managerFeeStatusDes[text]}</div>], ['Fee', 'managerFeeStatus', (text: any) => <div>{managerFeeStatusDes[text]}</div>],
['Deposit', 'marginFeeStatus', (text: any) => <div>{marginFeeStatusDes[text]}</div>], ['Deposit', 'marginFeeStatus', (text: any) => <div>{marginFeeStatusDes[text]}</div>],
['Status', 'status', (text: any) => <div>{statusDes[text]}</div>], ['Status', 'status', (text: any) => <div>{statusDes[text]}</div>],
...@@ -268,7 +287,7 @@ const FacilityBookings = (props: any) => { ...@@ -268,7 +287,7 @@ const FacilityBookings = (props: any) => {
<Tabs defaultActiveKey={curString.tab.toString()} onChange={TabCallback}> <Tabs defaultActiveKey={curString.tab.toString()} onChange={TabCallback}>
<TabPane tab="Facility Bookings" key="1"> <TabPane tab="Facility Bookings" key="1">
<Table <ProTable
loading={loading} loading={loading}
rowKey="id" rowKey="id"
style={{ marginTop: 16 }} style={{ marginTop: 16 }}
...@@ -280,6 +299,22 @@ const FacilityBookings = (props: any) => { ...@@ -280,6 +299,22 @@ const FacilityBookings = (props: any) => {
showSizeChanger: false, showSizeChanger: false,
onChange: Pagechange, onChange: Pagechange,
}} }}
search={false}
toolBarRender={() => [
<Button key="3" type="primary" onClick={goToFunction}>
<PlusOutlined />
添加预约
</Button>,
]}
options={{
density: true,
fullScreen: true,
reload: () => {
// onReset();
},
setting: false,
}}
headerTitle="预约列表"
/> />
</TabPane> </TabPane>
...@@ -299,14 +334,7 @@ const FacilityBookings = (props: any) => { ...@@ -299,14 +334,7 @@ const FacilityBookings = (props: any) => {
// pagination={false} // 隐藏默认分页 // pagination={false} // 隐藏默认分页
search={false} search={false}
toolBarRender={() => [ toolBarRender={() => [
<Button <Button key="3" type="primary" onClick={goToFunction}>
key="3"
type="primary"
onClick={() => {
// goToAdd(0, {});
goToFunction();
}}
>
<PlusOutlined /> <PlusOutlined />
添加设施 添加设施
</Button>, </Button>,
......
...@@ -2,167 +2,189 @@ ...@@ -2,167 +2,189 @@
//基石 //基石
.base { .base {
width: 100%; width: 100%;
background-color: #ffffff; background-color: #ffffff;
padding: 34px; padding: 20px;
min-width: 1020px;
} }
//头部组件 //头部组件
.box{ .box {
width: 100%; width: 100%;
height: 64px; height: 64px;
position: relative; position: relative;
} }
.item1{ .item1 {
position: absolute; position: absolute;
width: 180px; width: 180px;
text-align: center; text-align: center;
border-left: 5px solid rgba(24,144,255,1); border-left: 5px solid rgba(24, 144, 255, 1);
font-family:'Source Han Sans CN'; font-family: 'Source Han Sans CN';
font-size: 18px; font-size: 18px;
font-weight: 600; font-weight: 600;
color: #000000; color: #000000;
}
} .item2 {
.item2{ width: 300px;
width:300px; position: absolute;
position: absolute; left: (300px);
left: (300px); line-height: 30px;
line-height: 30px; }
}
.item4 {
.item4{ position: absolute;
position: absolute; left: (500px);
left: (500px); line-height: 30px;
line-height: 30px; }
} .item3 {
.item3{ width: 80px;
width:80px; height: 32px;
height: 32px; position: absolute;
position: absolute; right: 0;
right: 0;
outline: none;
outline: none; background: none;
background:none; cursor: pointer;
cursor: pointer;
border: 1px solid rgba(217, 217, 217, 1);
border:1px solid rgba(217,217,217,1); border-radius: 2px;
border-radius:2px; }
}
.box1 {
.box1{ width: 100%;
width: 100%; height: 34px;
height: 34px; position: relative;
position: relative; margin-bottom: 26px;
margin-bottom: 26px; }
} .box1item1 {
.box1item1{ position: absolute;
position: absolute; line-height: 32px;
} }
.box1item2{ .box1item2 {
position: absolute; position: absolute;
left: 161px; left: 135px;
} }
.box2{ .box2 {
width: 100%; width: 100%;
position: relative; position: relative;
}
} .box2item1 {
.box2item1{ position: absolute;
position: absolute; line-height: 32px;
} }
.box2item2{ .box2item2 {
width: 336px; width: 336px;
padding-left: 161px; padding-left: 135px;
} }
// 线栏 // 线栏
.line{ .line {
width: 100%;
height: 1px;
border-top: 1px solid rgba(217, 217, 217, 1);
margin-top: 28px;
margin-bottom: 28px;
}
.box3 {
width: 100%;
height: 32px;
position: relative;
margin-bottom: 28px;
}
.box3item1 {
position: absolute;
line-height: 32px;
}
.box3item2 {
position: absolute;
left: 135px;
}
.box3item3 {
position: absolute;
left: 467px;
line-height: 32px;
}
.box3item4 {
position: absolute;
left: 592px;
}
.box4 {
width: 100%;
min-height: 32px;
position: relative;
&::after {
content: '';
display: block;
width: 100%; width: 100%;
height: 1px; clear: both;
border-top: 1px solid rgba(217,217,217,1); }
margin-top: 28px;
margin-bottom: 28px;
} }
.box4item1 {
.box3{ position: absolute;
width: 100%; line-height: 32px;
height: 32px;
position: relative;
margin-bottom: 28px;
} }
.box3item1{ .box4item2 {
position: absolute; position: absolute;
left: 135px;
} }
.box3item2{ .box4item3 {
position: absolute; position: absolute;
left: 161px; left: 257px;
} }
.box3item3{ .box4item4 {
position: absolute; position: absolute;
left: 467px; left: 281px;
} }
.box3item4{ .box4item5 {
position: absolute; position: absolute;
left: 592px; left: 365px;
} }
.box4{ .box4item6 {
width: 100%; position: absolute;
height: 32px; left: 380px;
position: relative;
}
.box4item1{
position: absolute;
}
.box4item2{
position: absolute;
left: 161px;
} }
.box4item3{
position: absolute; .box5 {
left: 257px; width: 100%;
} height: 32px;
.box4item4{ position: relative;
position: absolute; margin-bottom: 28px;
left: 281px;
} }
.box4item5{ .box5item1 {
position: absolute; position: absolute;
left: 365px; line-height: 32px;
} }
.box5item2 {
.box4item6{ position: absolute;
position: absolute; left: 135px;
left: 380px;
} }
.box6 {
.box5{ width: 100%;
width: 100%; height: 32px;
height: 32px; position: relative;
position: relative; margin-bottom: 20px;
margin-bottom: 28px;
} }
.box5item1{ .box6item1 {
position: absolute; position: absolute;
} }
.box5item2{ .box6item2 {
position: absolute; position: absolute;
left: 161px; left: 216px;
} }
.box6{ .divbox4 {
width: 100%; position: absolute;
height: 32px; left: 135px;
position: relative; .ant-form-item {
display: inline-block;
} }
.box6item1{ .jio,
position: absolute; .heng {
display: inline-block;
line-height: 32px;
margin: 0 20px;
}
} }
.box6item2{
position: absolute;
left: 216px;
}
\ No newline at end of file
...@@ -40,3 +40,13 @@ export const NewFaci = [ ...@@ -40,3 +40,13 @@ export const NewFaci = [
[{ required: false, message: 'Required' }], [{ required: false, message: 'Required' }],
[{ required: false, message: 'Required' }], [{ required: false, message: 'Required' }],
]; ];
// 设施预订
export const BookingsTip = [
[{ required: false, message: 'Please select community' }],
[{ required: false, message: 'Please input Facility Name' }],
[{ required: false, message: 'Please Set management fee' }],
[{ required: false, message: 'Please Set Setting deposit' }],
[{ required: false, message: 'Please Upload facility photos' }],
[{ required: false, message: 'Required' }],
];
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment