Commit f7079474 authored by cellee's avatar cellee

Signed-off-by: cellee <893264950@qq.com>

parent b2039d32
/*
* @Author: your name
* @Date: 2020-11-24 11:24:06
* @LastEditTime: 2020-12-04 10:48:48
* @LastEditors: your name
* @Description: In User Settings Edit
* @FilePath: \tostumi\config\defaultSettings.ts
*/
import { Settings as ProSettings } from '@ant-design/pro-layout';
type DefaultSettings = ProSettings & {
......@@ -16,7 +24,7 @@ const proSettings: DefaultSettings = {
menu: {
locale: true,
},
title: 'TOS Manager',
title: 'TOS Management',
pwa: false,
iconfontUrl: '',
};
......
......@@ -134,7 +134,7 @@ const TitleSearch = (props: any) => {
{/* 小区列表的管理员姓名搜索 */}
{username != null ? (
<Col key={'username_' + username[0]}>
<Form.Item name={username[0]} style={{ marginBottom: 15, width: 240 }}>
<Form.Item name={username[0]} style={{ width: 240 }}>
<Input placeholder={username[1]} allowClear />
</Form.Item>
</Col>
......
......@@ -18,6 +18,8 @@ import Authorized from '@/utils/Authorized';
import RightContent from '@/components/GlobalHeader/RightContent';
import { ConnectState } from '@/models/connect';
import { getAuthorityFromRouter } from '@/utils/utils';
import style from './logo.less';
import logo from '../assets/logo.svg';
import tsIcon from '../assets/logo.png';
......@@ -110,34 +112,19 @@ const BasicLayout: React.FC<BasicLayoutProps> = (props) => {
return (
<ProLayout
logo={logo}
logo={tsIcon}
contentStyle={{ backgroundColor: '#fff' }}
formatMessage={formatMessage}
menuHeaderRender={(logoDom, titleDom) => (
<div
style={{
marginLeft: -25,
width: 260,
height: 64,
backgroundColor: '#ffffff',
paddingLeft: 16,
paddingTop: 10,
}}
>
<img src={tsIcon} style={{ width: 50, height: 50 }} />
<span
style={{
fontSize: 18,
fontFamily: 'Source Han Sans CN',
fontWeight: 'bold',
color: 'rgba(51,51,51,1)',
}}
>
{' '}
TOS Management
</span>
menuHeaderRender={(logo, title) => (
<div id={style.customize_menu_header}>
<Link to="/">
{logo}
{title}
</Link>
</div>
// <Link to="/">
// {/* {logoDom} */}
// {logoDom}
// {titleDom}
// </Link>
)}
......
#customize_menu_header {
margin-left: -24px;
width: 256px;
height: 64px;
line-height: 64px;
background-color: #ffffff;
padding-left: 24px;
h1 {
font-weight: bold;
color: rgb(51, 51, 51);
}
}
......@@ -93,6 +93,8 @@ const Model: LoginModelType = {
setCookie('id', userMessage.userModel.id);
setCookie('name', userMessage.userModel.tosUserName);
setCookie('phone', userMessage.userModel.tosUserPhone);
// 更新用户信息
localStorage.setItem('userInfo', JSON.stringify(userMessage));
localStorage.setItem('permission', JSON.stringify(userMessage.permission));
console.log('获取到Token:' + getCookie('token'));
yield put({
......@@ -102,22 +104,26 @@ const Model: LoginModelType = {
password: payload.password,
result: false,
});
const urlParams = new URL(window.location.href);
const params = getPageQuery();
let { redirect } = params as { redirect: string };
if (redirect) {
const redirectUrlParams = new URL(redirect);
if (redirectUrlParams.origin === urlParams.origin) {
redirect = redirect.substr(urlParams.origin.length);
if (redirect.match(/^\/.*#/)) {
redirect = redirect.substr(redirect.indexOf('#') + 1);
}
} else {
window.location.href = '/';
return;
}
}
history.replace(redirect || '/');
// 路由缓存 再次登录回到上次打开页面
// const urlParams = new URL(window.location.href);
// const params = getPageQuery();
// let { redirect } = params as { redirect: string };
// if (redirect) {
// const redirectUrlParams = new URL(redirect);
// if (redirectUrlParams.origin === urlParams.origin) {
// redirect = redirect.substr(urlParams.origin.length);
// if (redirect.match(/^\/.*#/)) {
// redirect = redirect.substr(redirect.indexOf('#') + 1);
// }
// } else {
// window.location.href = '/';
// return;
// }
// }
// history.replace(redirect || '/');
// 只跳到首页
history.replace('/');
} else {
message.error('Login Error! Username or Password is wrong!', 3);
}
......@@ -129,6 +135,7 @@ const Model: LoginModelType = {
// const response = yield call(AccountOut, payload);
if (window.location.pathname !== '/user/login' && !redirect) {
// 清楚用户信息
localStorage.removeItem('userInfo');
localStorage.removeItem('permission');
setCookie('token', '');
setCookie('id', '');
......
......@@ -8,7 +8,7 @@ hr {
background: #fff;
padding: 20px;
border-right: 4px;
margin-bottom: 15px;
margin-bottom: 0;
h3 {
margin-bottom: 15px;
position: relative;
......
import React, { useState, useEffect, useRef } from 'react';
import { Form, Input, Button, Pagination, message, Descriptions, Spin, Tree, Radio } from 'antd';
import { Form, Input, Button, message, Descriptions, Spin, Tree, Radio } from 'antd';
import { connect, history } from 'umi';
import { SearchOutlined, ClearOutlined, EditOutlined, LeftOutlined } from '@ant-design/icons';
import { EditOutlined, LeftOutlined } from '@ant-design/icons';
import { getCookie } from '@/utils/method';
import './Account.less';
......@@ -12,12 +12,10 @@ import SelectCommunity from '@/components/SelectCommunity';
import { getNumber } from '@/utils/string'; // 正则
import { RA } from '@/utils/method';
import moment from 'moment';
const Account = (props: any) => {
const module = 'Account';
const { dispatch, Data, DataSave, SubResult, CommunityList, loading, user } = props;
const { dispatch, SubResult, CommunityList, loading, user } = props;
// 权限列表
const treeData = enUsFaci || zhCnFaci;
......@@ -119,13 +117,14 @@ const Account = (props: any) => {
let obj = {
userName: value.tosUserName,
userPassword: value.tosUserPwd,
permissionArray: checkedKeys.sort((n1, n2) => {
permissionArray: checkedKeys.sort((n1: any, n2: any) => {
return parseInt(n1) - parseInt(n2);
}),
};
RA(38, value, module, dispatch); // 信息上传
RA(42, obj, module, dispatch); // 权限上传
return true;
}
};
......@@ -199,7 +198,7 @@ const Account = (props: any) => {
>
<Descriptions column={{ xs: 1, sm: 2, md: 3 }}>
<Descriptions.Item>
<Form.Item name="tosUserName" label="Account ID" rules={AccountTip[0]}>
<Form.Item name="tosUserName" label="Account ID" rules={AccountTip[0] as any}>
<Input placeholder="Login Account" className="input" />
</Form.Item>
</Descriptions.Item>
......@@ -207,12 +206,12 @@ const Account = (props: any) => {
<Descriptions column={{ xs: 1, sm: 2, md: 3 }}>
<Descriptions.Item>
<Form.Item name="tosAccountName" label="Name" rules={AccountTip[1]}>
<Form.Item name="tosAccountName" label="Name" rules={AccountTip[1] as any}>
<Input placeholder="Name Of Administrator" className="input" />
</Form.Item>
</Descriptions.Item>
<Descriptions.Item>
<Form.Item name="tosUserPhone" label="Phone" rules={AccountTip[2]}>
<Form.Item name="tosUserPhone" label="Phone" rules={AccountTip[2] as any}>
<Input
placeholder="Contact Information"
className="input"
......
import React, { useState, useEffect, useRef } from 'react';
import { Input, Tabs, Form, InputNumber, Col, Button, Row, message } from 'antd';
const { TabPane } = Tabs;
import { Input, Form, Button, message } from 'antd';
import { connect } from 'umi';
......@@ -119,7 +118,7 @@ const Add = (props: any) => {
<Line />
{extend.length > 0 ? (
<>
<Form.Item wrapperCol={{ ...layout.wrapperCol, offset: 2 }} style={{ marginBottom: 0 }}>
<Form.Item wrapperCol={{ offset: 2 }} style={{ marginBottom: 0 }}>
<Form.Item
style={{ display: 'inline-block', width: '200' }}
name={'balouscheduleFile'}
......@@ -157,7 +156,7 @@ const Add = (props: any) => {
</>
) : null}
<Form.Item wrapperCol={{ ...layout.wrapperCol, offset: 2 }}>
<Form.Item wrapperCol={{ offset: 2 }}>
<Button type="primary" htmlType="submit">
Submit
</Button>
......
......@@ -28,9 +28,6 @@ import PDF from 'react-pdf-js';
const { RangePicker } = TimePicker;
// 接口申明
interface objc {}
const Adds = (props: any) => {
const module = 'CellList';
......@@ -195,7 +192,7 @@ const Adds = (props: any) => {
// 保质期上传
const upload3 = {
onChange({ file, fileList }: any) {
onChange({ file }: any) {
file.status === 'uploading' ? setimgLoad(true) : setimgLoad(false);
if (file.status === 'done') {
setPeriod(BackFormat(file.name, file.response.data));
......@@ -233,7 +230,7 @@ const Adds = (props: any) => {
// 表单验证
const onFinish = (values: any) => {
let { residentialZipCode, residentialAddress, residentialName } = values.des;
let { residentialZipCode } = values.des;
let tel = values.info.tel;
if (values.residentialManagerUserName.length < 2) {
message.error('Please Enter 2-digit Zip Code!');
......
import React, { useState, useEffect } from 'react';
import { Space, Button, Form, message, Pagination, Tag } from 'antd';
import { Space, Button, message, Pagination } from 'antd';
import { connect, history } from 'umi';
// 图标
......@@ -9,7 +9,6 @@ import ProTable from '@ant-design/pro-table';
import TitleSearch from '@/components/TitleSearch/TitleSearch';
import { RA, SA } from '@/utils/method';
import { objectColumns } from '@/utils/string';
import { Prompt } from 'react-router';
const module = 'CellList';
import './celllist.less';
......@@ -63,14 +62,14 @@ const CellLists = (props: any) => {
const [term, setTerm] = useState({} as any); // 拉取数据的条件存储
// 翻页数据
function pagesList(name: string, list: any, num: number) {
let msg = {
residentialManagerUserName: name ? name : '',
communityNameList: list,
pageNum: num,
};
return msg;
}
// function pagesList(name: string, list: any, num: number) {
// let msg = {
// residentialManagerUserName: name ? name : '',
// communityNameList: list,
// pageNum: num,
// };
// return msg;
// }
// 监听是否有小区列表
useEffect(() => {
......@@ -93,11 +92,8 @@ const CellLists = (props: any) => {
}
}, [village]);
const CallbackSearch = (values: any) => {
RA(24, { communityName: values }, module, dispatch);
};
const goToAdd = () => {
SA(null, module, dispatch); // 清空之前传递的数据
SA(null as any, module, dispatch); // 清空之前传递的数据
dispatch({ type: module + '/urlRemove' }); // 清掉图片信息
history.push('/CommunityManagement/CellList/Add');
};
......
......@@ -2,7 +2,7 @@ li {
list-style: none;
}
.contop {
padding: 16px;
padding: 15px 15px 10px;
background: #fff;
margin-bottom: 15px;
}
......
import React, { useState, useEffect } from 'react';
import { connect, history, useModel, Loading } from 'umi';
import { Input, Tabs, Table, Space, Button, Tooltip, Form, message, Pagination, Tag } from 'antd';
const { TabPane } = Tabs;
import React, { useEffect } from 'react';
import { connect, history } from 'umi';
import { Input, Space, Button, Form, message, Pagination, Tag } from 'antd';
import moment from 'moment';
import { PlusOutlined, SearchOutlined, ClearOutlined } from '@ant-design/icons';
import ProTable from '@ant-design/pro-table';
import { RA, SA } from '@/utils/method';
// import { objectColumns } from '@/utils/string';
import { timestampToTime3, timestampToTime } from '@/utils/time';
import SearchOptionsCommnity from '@/components/SearchOptions/SearchOptionsCommnity';
const module = 'CommunityAnnouncement';
const CommunityAnnouncement = (props: any) => {
const { dispatch, Data, curString, userListLoading, DataSaveDetail } = props;
const { dispatch, Data, userListLoading, DataSaveDetail } = props;
// 先清空 其他信息
useEffect(() => {
......@@ -176,14 +174,14 @@ const CommunityAnnouncement = (props: any) => {
SA(DetailPage(mlist), module, dispatch);
};
const onKeyUp = (value) => {
const onKeyUp = (value: any) => {
console.log(value);
return false;
};
return (
<>
<div style={{ width: '100%', padding: 20, marginBottom: 15, backgroundColor: '#ffffff' }}>
<div style={{ width: '100%', padding: 20, marginBottom: 0, backgroundColor: '#ffffff' }}>
<Form
autoComplete="off"
layout="inline"
......
......@@ -198,7 +198,7 @@ const BookingDetail = (props: any) => {
<InputNumber
placeholder="00.00"
min={0}
max={parseInt(DataSave.communityMargin).toFixed(2)}
max={parseInt(DataSave.communityMargin).toFixed(2) as any}
maxLength={6}
step={0.01}
prefix="$"
......
......@@ -4,7 +4,7 @@
.base {
width: 100%;
background-color: #ffffff;
padding: 20px;
padding: 15px;
}
//头部组件
......
import React, { useState, useEffect, useRef } from 'react';
import { Input, Tabs, Table, Form, Button, message, DatePicker } from 'antd';
import { Input, Tabs, Tag, Form, Button, message, DatePicker } from 'antd';
const { TabPane } = Tabs;
import { connect } from 'umi';
import { objectColumns } from '@/utils/string';
......@@ -39,7 +39,22 @@ const VisitorRecord = (props: any) => {
{ title: 'Security Guard', dataIndex: 'securityGuardName' },
{ title: 'Number Plate', dataIndex: 'numberPlate' },
// 隐藏的搜索框
{ title: 'Visitor Time', dataIndex: 'updateTime', valueType: 'date' },
{
title: 'Visitor Time',
dataIndex: 'updateTime',
valueType: 'date',
render: (text: any, record: any) => {
if (record.linkStatus == 1) {
return text;
} else {
return (
<>
{text} <Tag color="red">Temporary</Tag>
</>
);
}
},
},
{ title: 'Community', dataIndex: 'visitorCommunity' },
// { title: 'Unit', dataIndex: 'inviterAddress' },
{
......@@ -236,14 +251,14 @@ const VisitorRecord = (props: any) => {
Reset
</Button>
</Form.Item>
<div style={{ maxWidth: '100%', marginTop: 15, width: '100%' }}>
<div style={{ marginTop: 24, marginRight: -16 }}>
<Form.Item name="community" label="">
<SelectCommunity />
</Form.Item>
</div>
</Form>
</div>
<div style={{ width: '100%', padding: 16, backgroundColor: '#ffffff' }}>
<div style={{ width: '100%', padding: '0px 15px 15px 15px', backgroundColor: '#ffffff' }}>
<ProTable
loading={loading}
rowKey="id"
......
......@@ -5,5 +5,5 @@
.VisitorRecord {
padding: 15px;
background: #fff;
margin-bottom: 15px;
margin-bottom: 0;
}
import React, { useState, useEffect, useRef } from 'react';
import { Input, Tabs, Table, Form, Button, message, DatePicker } from 'antd';
import { Input, Tabs, Tag, Form, Button, message, DatePicker } from 'antd';
const { TabPane } = Tabs;
import { connect } from 'umi';
import { objectColumns } from '@/utils/string';
......@@ -39,7 +39,22 @@ const VisitorRecord = (props: any) => {
{ title: 'Security Guard', dataIndex: 'securityGuardName' },
{ title: 'Number Plate', dataIndex: 'numberPlate' },
// 隐藏的搜索框
{ title: 'Visitor Time', dataIndex: 'updateTime', valueType: 'date' },
{
title: 'Visitor Time',
dataIndex: 'updateTime',
valueType: 'date',
render: (text: any, record: any) => {
if (record.linkStatus == 1) {
return text;
} else {
return (
<>
{text} <Tag color="red">Temporary</Tag>
</>
);
}
},
},
{ title: 'Community', dataIndex: 'visitorCommunity' },
// { title: 'Unit', dataIndex: 'inviterAddress' },
{
......@@ -236,14 +251,14 @@ const VisitorRecord = (props: any) => {
Reset
</Button>
</Form.Item>
<div style={{ maxWidth: '100%', marginTop: 15, width: '100%' }}>
<div style={{ marginTop: 24, marginRight: -16 }}>
<Form.Item name="community" label="">
<SelectCommunity />
</Form.Item>
</div>
</Form>
</div>
<div style={{ width: '100%', padding: 16, backgroundColor: '#ffffff' }}>
<div style={{ width: '100%', padding: '0px 15px 15px 15px', backgroundColor: '#ffffff' }}>
<ProTable
loading={loading}
rowKey="id"
......
......@@ -8,225 +8,221 @@
}
//头部组件
.box{
.box {
width: 100%;
height: 64px;
position: relative;
}
.item1{
.item1 {
position: absolute;
width: 400px;
text-indent: 15px;
border-left: 5px solid rgba(24,144,255,1);
font-family:'Source Han Sans CN';
border-left: 5px solid rgba(24, 144, 255, 1);
font-family: 'Source Han Sans CN';
font-size: 18px;
font-weight: 600;
color: #000000;
}
.item3{
width:80px;
.item3 {
width: 80px;
height: 32px;
position: absolute;
right: 0;
outline: none;
background:none;
background: none;
cursor: pointer;
border:1px solid rgba(217,217,217,1);
border-radius:2px;
border: 1px solid rgba(217, 217, 217, 1);
border-radius: 2px;
}
.box1{
.box1 {
width: 100%;
height: 34px;
position: relative;
margin-bottom: 28px;
line-height: 34px;
}
.box1item1{
.box1item1 {
position: absolute;
}
.box1item2{
.box1item2 {
position: absolute;
left: 164px;
}
.box1item3{
.box1item3 {
position: absolute;
left: 373px;
}
.box1item4{
.box1item4 {
position: absolute;
left: 530px;
}
.box1item5{
.box1item5 {
position: absolute;
left: 740px;
}
.box1item6{
.box1item6 {
position: absolute;
left: 890px;
}
.box4{
.box4 {
width: 100%;
height: 34px;
position: relative;
margin-bottom: 28px;
}
.box4item1{
.box4item1 {
position: absolute;
}
.box4item2{
.box4item2 {
position: absolute;
left: 164px;
}
.box5{
.box5 {
width: 100%;
height: 34px;
position: relative;
margin-bottom: 28px;
}
.box5item1{
.box5item1 {
position: absolute;
}
.box5item2{
.box5item2 {
position: absolute;
left: 164px;
}
.box6{
.box6 {
width: 100%;
height: 34px;
position: relative;
margin-bottom: 28px;
}
.box6item1{
.box6item1 {
position: absolute;
}
.box6item2{
.box6item2 {
position: absolute;
left: 164px;
}
.box6item3{
.box6item3 {
position: absolute;
left: 330px;
}
.box6item2x1{
width:120px;
height:34px;
background:rgba(255,255,255,1);
border:1px solid rgba(217,217,217,1);
border-radius:2px;
.box6item2x1 {
width: 120px;
height: 34px;
background: rgba(255, 255, 255, 1);
border: 1px solid rgba(217, 217, 217, 1);
border-radius: 2px;
text-align: center;
font-family:'Source Han Sans CN';
font-weight:400;
color:rgba(191,191,191,1);
line-height:34px;
font-family: 'Source Han Sans CN';
font-weight: 400;
color: rgba(191, 191, 191, 1);
line-height: 34px;
}
.box7{
.box7 {
width: 100%;
height: 34px;
position: relative;
margin-bottom: 28px;
}
.box7p{
.box7p {
width: 100%;
position: relative;
margin-bottom: 28px;
}
.box7item0{
.box7item0 {
padding-left: 164px;
width: 400px;
}
.box7item1{
.box7item1 {
position: absolute;
width: 100%;
height: 34px;
}
.box7item2{
.box7item2 {
position: absolute;
left: 164px;
}
.box7item3{
.box7item3 {
position: absolute;
margin-left: 330px;
}
.box8{
.box8 {
width: 100%;
height:194px;
height: 194px;
position: relative;
margin-bottom: 56px;
}
.box8item1{
.box8item1 {
position: absolute;
}
.box8item2{
.box8item2 {
position: absolute;
left: 164px;
}
.box8item2x2{
font-size:12px;
font-family:'Source Han Sans CN';
font-weight:400;
color:rgba(153,153,153,1);
line-height:30px;
.box8item2x2 {
font-size: 12px;
font-family: 'Source Han Sans CN';
font-weight: 400;
color: rgba(153, 153, 153, 1);
line-height: 30px;
}
.contop{
padding: 20px;
.contop {
padding: 20px 20px 10px;
background: #fff;
margin-bottom: 20px;
margin-bottom: 0;
}
// 字符串变红
.red{
.red {
color: red;
}
// 合同详情
.contract_box{
.contract_box {
overflow: hidden;
.list_1{
.list_1 {
display: flex;
justify-content: flex-start;
justify-items: center;
flex-wrap: wrap;
.item_1{
.item_1 {
display: flex;
justify-content: flex-start;
justify-items: center;
line-height: 34px;
margin-right: 20px;
label{
label {
display: inline-block;
width: 150px;
line-height: 32px;
}
}
}
.ant-form-item-label > label,.label{
.ant-form-item-label > label,
.label {
display: inline-block;
width: 150px;
line-height: 32px;
}
}
.listbox{
.listbox {
width: 100%;
background-color: #ffffff;
padding: 10px;
}
.pages{
.pages {
text-align: right;
padding: 10px ;
padding: 10px;
}
/*
* @Author: your name
* @Date: 2020-11-19 16:54:53
* @LastEditTime: 2020-12-02 16:32:42
* @LastEditTime: 2020-12-04 11:41:39
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \tostumi\src\utils\tip.ts
*/
// 只能输入字母数字限制
const inputNumberStr = (rule: any, value: any, callback: any) => {
if (value) {
if (/^[a-zA-Z0-9]+$/g.test(value)) {
callback();
} else {
callback(new Error('Only numbers and letters can be entered!'));
}
}
callback();
};
// 只能输入数字限制
const inputNumber = (rule: any, value: any, callback: any) => {
if (value) {
if (/^[0-9]+$/g.test(value)) {
callback();
} else {
callback(new Error('Only numbers!'));
}
}
callback();
};
const reqMes = (msg: string) => {
return {
required: true,
message: msg,
};
};
// 合同提示
export const tipList = [
['Please Input Contract Numbe!'],
['Please Input Contract Party A!'],
['Please Input Contract Party B!'],
['Please Choice CommunityName!'],
['Please Choice Contract Title!'],
['Please Choice Contract Time!'],
['Please upload Contract Annex!'],
// ['Please Input Contract Remarks!'],
[reqMes('Please Input Contract Numbe!')],
[reqMes('Please Input Contract Party A!')],
[reqMes('Please Input Contract Party B!')],
[reqMes('Please Choice CommunityName!')],
[reqMes('Please Choice Contract Title!')],
[reqMes('Please Choice Contract Time!')],
[reqMes('Please upload Contract Annex!')],
// [reqMes('Please Input Contract Remarks!')],
];
// 小区提示
export const village = [
[{ required: true, message: 'Please enter the postcode' }],
[{ required: true, message: 'Please enter the address of the community !' }],
[{ required: true, message: 'Please enter the cell name !' }],
[{ required: true, message: 'Please select the time !' }],
[{ required: true, message: 'Please enter your mobile phone number !' }],
[
{
required: true,
type: 'email',
message: 'Please enter the correct email address !',
},
],
[{ required: true, message: 'Please enter the name of the community administrator !' }],
[reqMes('Please enter the postcode !')],
[reqMes('Please enter the address of the community !')],
[reqMes('Please enter the cell name !')],
[reqMes('Please select the time !')],
[reqMes('Please enter your mobile phone number !')],
[{ ...reqMes('Please enter the correct email address !'), type: 'email' }],
[reqMes('Please enter the name of the community administrator !')],
];
//公告提示
export const Notice = [
[{ required: true, message: 'Please select community' }],
[{ required: true, message: 'Please input the notice title.' }],
[{ required: true, message: 'Please input the announcement content.' }],
[{ required: true, message: 'Please choose the effective time of the announcement.' }],
[reqMes('Please select community')],
[reqMes('Please input the notice title.')],
[reqMes('Please input the announcement content.')],
[reqMes('Please choose the effective time of the announcement.')],
];
// 新增设施
export const NewFaci = [
[{ required: true, message: 'Please select community' }],
[{ required: true, message: 'Please input Facility Name' }],
[{ required: false, message: 'Please Set management fee' }],
[{ required: false, message: 'Please Set Setting deposit' }],
[{ required: true, message: 'Please Upload facility photos' }],
[{ required: true, message: 'Required' }],
[{ required: true, message: 'Required' }],
[{ required: true, message: 'Required' }],
[{ required: true, message: 'Required' }],
[{ required: true, message: 'Required' }],
[reqMes('Please select community')],
[reqMes('Please input Facility Name')],
[reqMes('Please Set management fee')],
[reqMes('Please Set Setting deposit')],
[reqMes('Please Upload facility photos')],
[reqMes('Required')],
[reqMes('Required')],
[reqMes('Required')],
[reqMes('Required')],
[reqMes('Required')],
];
// 设施预订
export const BookingsTip = [
[{ required: true, message: 'Please input Name ' }],
[{ required: true, message: 'Please input Contact Details' }],
[{ required: true, pattern: new RegExp(/^[1-9]\d*$/, 'g'), message: 'Only numbers!' }],
[{ required: true, pattern: new RegExp(/^[1-9]\d*$/, 'g'), message: 'Only numbers!' }],
[{ required: true, message: 'Required' }],
[{ required: true, message: 'Please Select The Date' }],
[reqMes('Please input Name ')],
[reqMes('Please input Contact Details')],
// [{ required: true, pattern: new RegExp(/^[1-9]\d*$/, 'g'), message: 'Only numbers!')],
[{ ...reqMes(''), validator: inputNumber }],
[{ ...reqMes(''), validator: inputNumber }],
[{ ...reqMes(''), validator: inputNumberStr }],
[reqMes('Please Select The Date')],
];
// 账号新增编辑
export const AccountTip = [
[{ required: true, type: 'email', message: 'Please enter email address !' }],
[{ required: true, message: 'Required' }],
[{ required: true, message: 'Please enter the correct contact information !' }],
[{ required: true, message: 'Required' }],
[{ required: true, message: 'Required' }],
[{ required: true, message: 'Required' }],
[{ required: true, message: 'Required' }],
[{ ...reqMes('Please enter email address !'), type: 'email' }],
[reqMes('Required')],
[reqMes('Please enter the correct contact information !')],
];
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