This commit is contained in:
姜棚 2021-12-08 16:27:24 +08:00
parent df27477349
commit 2f2460c3f4
8 changed files with 238 additions and 42 deletions

View File

@ -86,7 +86,16 @@ import _ from "lodash";
if(e=="…") if(e=="…")
{ {
return; // let curpage = this.state.page + 2;
// let page_num =Math.ceil(this.state.dataCount / this.state.count);
// if(curpage > page_num)
// {
// curpage = page_num;
// }
// this.setState({page:curpage})
// this.props.pageFn(curpage);
// this.props.onJumpPage(curpage)
return
} }
this.setState({page:e}) this.setState({page:e})
@ -156,7 +165,7 @@ import _ from "lodash";
} }
let btns = this.getPageArr(btnPages,this.state.page,8) let btns = this.getPageArr(btnPages,this.state.page,3)
return ( return (
<div className="pagination"> <div className="pagination">
<div className="pagination-context"> <div className="pagination-context">

View File

@ -1,20 +1,25 @@
import ReactDOM from 'react-dom'; import ReactDOM from 'react-dom';
import React, { Component } from 'react'; import React, { Component } from 'react';
import { HashRouter as Router, Route, Link } from "react-router-dom"; import { HashRouter as Router, Route, Link } from "react-router-dom";
import {Card,Sweetalert,DateRangePicker,ImageUpload, Drawer,Button ,Tabs, Notify,CombinedDateRangePicker,Select,Input,Checkbox,Switch ,Swiper,Dropdown,DropdownPosition,DropdownClickTrigger,Icon,MenuItem,DropdownContent,Menu,RadioGroup,RadioButton } from 'zent'; import {Card,Sweetalert,DateRangePicker,ImageUpload, Drawer,Button,Radio ,Tabs, Notify,CombinedDateRangePicker,Select,Input,Checkbox,Switch ,Swiper,Dropdown,DropdownPosition,DropdownClickTrigger,Icon,MenuItem,DropdownContent,Menu,RadioGroup,RadioButton } from 'zent';
import Ipt from "../../../components/input/main" import Ipt from "../../../components/input/main"
import Form from "../../../components/form/main" import Form from "../../../components/form/main"
import FormItem from "../../../components/form-item/main" import FormItem from "../../../components/form-item/main"
import Grid from "../../../components/gird/main.js" import Grid from "../../../components/gird/main.js"
import {addPlanStep,handelResponse,getPlanList,addKeysBatchInfo,getKeyBatchDetail,putKeyBatchDetail,uploadImg import {addPlanStep,handelResponse,getPlanList,addKeysBatchInfo,getKeyBatchDetail,putKeyBatchDetail,uploadImg,postKeyEmail,getReseller
} from "../../../assets/api.js" } from "../../../assets/api.js"
import Productform from "../product/add" import Productform from "../product/add"
import Bus from "../../../assets/eventBus.js" import Bus from "../../../assets/eventBus.js"
import _ from "lodash"; import _ from "lodash";
import "./add.less" import "./add.less"
import moment from "moment" import moment from "moment"
import { isSameDay, addDays, parse } from 'date-fns';
const TabPanel = Tabs.TabPanel; const TabPanel = Tabs.TabPanel;
const initArray = targetNum => {
return Array.from({ length: targetNum }, (_, index) => index);
};
export default class acclist extends React.Component{ export default class acclist extends React.Component{
constructor(props){ constructor(props){
super(props) super(props)
@ -61,6 +66,11 @@ export default class acclist extends React.Component{
endtime:"", endtime:"",
rowIndex:-1, rowIndex:-1,
uploading:false, uploading:false,
audit_visible:false,
phone_list:[],
email_list:[],
email_radio:-1,
phone_radio:-1
} }
} }
@ -78,7 +88,7 @@ export default class acclist extends React.Component{
console.log("和编辑",req) console.log("和编辑",req)
this.setState({pagetitle:"编辑key"}) this.setState({pagetitle:"编辑key"})
let model = { let model = {
batch_name:req.batch_name, batch_name:req.batch_name,
style: req.style, style: req.style,
quantity:req.quantity, quantity:req.quantity,
allow_repetition:req.allow_repetition, allow_repetition:req.allow_repetition,
@ -114,8 +124,6 @@ export default class acclist extends React.Component{
if(plan_item) if(plan_item)
{ {
plan_item = JSON.parse(plan_item) plan_item = JSON.parse(plan_item)
console.log("计划认为")
console.log(plan_item)
let model = this.state.model; let model = this.state.model;
model.title = plan_item.title; model.title = plan_item.title;
@ -219,7 +227,7 @@ export default class acclist extends React.Component{
break; break;
} }
this.setState({drawerVisible:false}) this.setState({drawerVisible:false})
this.state.codeInfo={ //数据模型不可少 this.state.codeInfo={ //数据模型不可少
code_name:"", code_name:"",
issued:'',//发放总量 issued:'',//发放总量
describe:'', describe:'',
@ -421,9 +429,21 @@ export default class acclist extends React.Component{
putKeyBatchDetail(id,data).then((res)=>{ putKeyBatchDetail(id,data).then((res)=>{
handelResponse(res,(req,msg)=>{ handelResponse(res,(req,msg)=>{
Notify.success("更新key成功"); Notify.success("更新key成功");
setTimeout(()=>{ // setTimeout(()=>{
window.history.back() // window.history.back()
},1000); // },1000);
getReseller(id).then((res)=>{
handelResponse(res,(req,msg)=>{
this.setState({phone_list:req.contact_phone})
this.setState({email_list:req.contact_email})
this.setState({audit_visible:true})
})
})
},(err)=>{ },(err)=>{
Notify.error(err); Notify.error(err);
}) })
@ -453,11 +473,23 @@ export default class acclist extends React.Component{
addKeysBatchInfo(id,data).then((res)=>{ addKeysBatchInfo(id,data).then((res)=>{
handelResponse(res,(req,msg)=>{ handelResponse(res,(req,msg)=>{
Notify.success("创建key成功"); Notify.success("创建key成功");
setTimeout(()=>{ sessionStorage.setItem("keyBatchId",req.key_batch_id)
window.history.back() getReseller(req.reseller_id).then((res)=>{
},1000); handelResponse(res,(req,msg)=>{
this.setState({phone_list:req.contact_phone})
this.setState({email_list:req.contact_email})
this.setState({audit_visible:true})
})
})
},(err)=>{ },(err)=>{
Notify.success(err); Notify.error(err);
}) })
}) })
@ -475,16 +507,23 @@ export default class acclist extends React.Component{
} }
onDisabledCombinedDate = (val)=>{ onDisabledRange = (date, type)=>{
console.log(this.state.begintime) let step1 = JSON.parse (sessionStorage.getItem("step1"));
console.log(this.state.endtime) let isdisabled = false;
let str = moment(val).format("YYYY-MM-DD HH:mm:ss") let str = moment(date).format("YYYY-MM-DD HH:mm:ss")
let now = moment(new Date().getTime()).format("YYYY-MM-DD HH:mm:ss") if( type == "start" )
{
let isBetween = moment(str).isBetween(now,this.state.endtime,null,'(]'); isdisabled = moment(str).isBefore(step1.begin_time) || moment(str).isAfter(step1.end_time)
return !isBetween }
if( type == "end" )
{
isdisabled = moment(str).add(1, 'days').isBefore(step1.begin_time) || moment(str).isAfter(step1.end_time)
}
return isdisabled
} }
rowItemClick(row,rowIndex){ rowItemClick(row,rowIndex){
@ -619,9 +658,101 @@ export default class acclist extends React.Component{
this.state.tempdata[rowIndex].contract_price = value; this.state.tempdata[rowIndex].contract_price = value;
this.setState({tempdata:this.state.tempdata}) this.setState({tempdata:this.state.tempdata})
} }
onDisabledTime= (date, type) => {
const min = new Date();
const hour = min.getHours();
const minute = min.getMinutes();
const second = min.getSeconds();
const isSame = isSameDay(date, min);
return isSame ? {
disabledHours: () => initArray(hour),
disabledMinutes: hourValue =>
hourValue === hour ? initArray(minute) : [],
disabledSeconds: (hourValue, minuteValue) =>
hourValue === hour && minuteValue === minute
? initArray(second)
: [],
}
: {};
};
send(e)
{
let key_id = sessionStorage.getItem("keyBatchId")
let data ={
phone: this.state.phone_radio > -1 ? this.state.phone_list[this.state.phone_radio] : this.state.phone ,
email: this.state.email_radio > -1 ? this.state.email_list[this.state.email_radio] : this.state.email
}
let phoneReg = new RegExp("^[1][3,4,5,6,7,8,9][0-9]{9}$");
let emailReg = new RegExp( "^[A-Za-z0-9\u4e00-\u9fa5\.]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$");
if (!phoneReg.test(data.phone)) {
Notify.error("手机号格式不正确")
return;
}
if(!emailReg.test(data.email)){
Notify.error("邮箱格式不正确")
return;
}
postKeyEmail(key_id,data).then((res)=>{
handelResponse(res,(req,msg)=>{
Notify.success("发送成功,请在1-2分钟后查看")
this.props.history.push('/home/plan-list/');
},(err)=>{
Notify.error(err)
this.props.history.push('/home/plan-list/');
})
})
}
onReturn(){
let self = this;
Sweetalert.confirm({
type:'warning',
closeBtn:true,
title:'确认操作',
content:<p> 是否返回key列表?</p>,
onConfirm:()=>{ self.props.history.push('/home/key-list/');},
onCancel: this.onCancel,
className:'questModal',
parentComponent: this
});
}
onPhoneChange(e){
this.setState({phone_radio:e.target.value})
}
onEmailChange(e){
this.setState({email_radio:e.target.value})
}
cancel(e){
this.setState({audit_visible:false})
}
phoneChange=(e)=>
{
this.setState({"phone":e.target.value})
}
emailChange=(e)=>
{
this.setState({"email":e.target.value})
}
render(){ render(){
const Column = [ const Column = [
{ {
@ -1088,8 +1219,71 @@ export default class acclist extends React.Component{
</Card> </Card>
</div> </div>
</Drawer> </Drawer>
{
this.state.audit_visible ? (
<div>
<div className="modal"> </div>
<div className="audit-box" >
<Icon type="close" className="audit-close" onClick={(e)=>{this.onReturn(e)}} />
<div className="audit-box-title">审核通过</div>
<div className="audit-box-question">是否立即发送key以及解压密码?</div>
<div className="phone-group">
<div >
接收手机号
</div>
<div className="phone-list">
<RadioGroup
value={this.state.phone_radio}
isValueEqual={this.isValueEqual}
onChange={(e)=>{this.onPhoneChange(e)}}
>
{
this.state.phone_list.map((item, index) => {
return <Radio value={index}>{item}</Radio>
})
}
</RadioGroup>
</div>
</div>
<div className="email-group">
<div >
接收邮箱
</div>
<div className="email-list">
<RadioGroup
value={this.state.email_radio}
isValueEqual={this.isValueEqual}
onChange={ (e)=>{this.onEmailChange(e)} }
>
{
this.state.email_list.map((item, index) => {
return <Radio value={index}>{item}</Radio>
})
}
</RadioGroup>
</div>
</div>
<div className="input-group">
<Input placeholder="请输入接收手机号" onChange={this.phoneChange} disabled={this.state.phone_radio > -1} ></Input>
</div>
<div className="input-group">
<Input placeholder="请输入接收邮箱" onChange={this.emailChange} disabled={this.state.email_radio > -1} ></Input>
</div>
<div className="audit-btn-group">
<Button onClick={(e)=>{this.onReturn(e)}}>取消</Button>
<Button type="primary" onClick={(e)=>{this.send(e)}} >发送</Button>
</div>
</div>
</div>
):null
}
</div> </div>
) )
} }

View File

@ -193,11 +193,8 @@ export default class adduserinfo extends React.Component{
} }
this.setState({model:model2}) this.setState({model:model2})
console.log(cur_product)
} }
onTypeChange(e){ onTypeChange(e){
console.log(e)
let model2 = this.state.model; let model2 = this.state.model;
model2.type = e.target.value; model2.type = e.target.value;
this.setState({model:model2}) this.setState({model:model2})

View File

@ -203,10 +203,7 @@ export default class add extends React.Component{
let emailReg = new RegExp( "^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$"); let emailReg = new RegExp( "^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$");
// let data ={
// phone: this.state.phone_radio ? this.state.phone_list[this.state.phone_radio] : this.state.phone ,
// email: this.state.email_radio ? this.state.email_list[this.state.email_radio] : this.state.email
// }
if (!phoneReg.test(data.phone)) { if (!phoneReg.test(data.phone)) {

View File

@ -154,7 +154,7 @@
} }
.audit-box{ .audit-box{
width: 400px; width: 420px;
height: auto; height: auto;
background-color: #FFFFFF; background-color: #FFFFFF;
box-shadow: 0 0 1px #ACCADD; box-shadow: 0 0 1px #ACCADD;
@ -192,7 +192,8 @@
margin-left: 50px; margin-left: 50px;
font-size: 12px; font-size: 12px;
font-weight: bold; font-weight: bold;
margin-bottom: 10px; margin-bottom: 10px;
padding-right: 20px;
} }
.email-list{ .email-list{
margin-top: 10px; margin-top: 10px;
@ -205,7 +206,7 @@
align-items: center; align-items: center;
justify-content: flex-end; justify-content: flex-end;
height: 60px; height: 60px;
padding-right: 30px; padding-right: 40px;
} }
} }

View File

@ -339,7 +339,7 @@ export default class acclist extends React.Component{
if( type == "end" ) if( type == "end" )
{ {
isdisabled = moment(str).isBefore(step1.begin_time) || moment(str).isAfter(step1.end_time) isdisabled = moment(str).add(1, 'days').isBefore(step1.begin_time) || moment(str).isAfter(step1.end_time)
} }
return isdisabled return isdisabled
} }

View File

@ -661,7 +661,7 @@ onChangeCombinedDate(e){
</DropdownClickTrigger> </DropdownClickTrigger>
<DropdownContent> <DropdownContent>
<Menu onClick={(e,key)=>this.menuItemClick(e,key,rowData)} style={{width:"400px"}}> <Menu onClick={(e,key)=>this.menuItemClick(e,key,rowData)} style={{width:"400px"}}>
<MenuItem key="1" >再次发送密码</MenuItem> <MenuItem key="1" >再次发送key密码</MenuItem>
<MenuItem key="2" <MenuItem key="2"
>再次发送key</MenuItem> >再次发送key</MenuItem>
<MenuItem key="3">修改接收邮箱发送</MenuItem> <MenuItem key="3">修改接收邮箱发送</MenuItem>

View File

@ -67,12 +67,10 @@ export default class acclist extends React.Component{
send(e) send(e)
{ {
let phoneReg = new RegExp("^[1][3,4,5,6,7,8,9][0-9]{9}$"); let phoneReg = new RegExp("^[1][3,4,5,6,7,8,9][0-9]{9}$");
let emailReg = new RegExp( "^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$"); let emailReg = new RegExp( "^[A-Za-z0-9\u4e00-\u9fa5\.]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$");
let plan_id = this.state.plan_id; let plan_id = this.state.plan_id;
let data ={ let data ={
@ -355,7 +353,7 @@ export default class acclist extends React.Component{
Notify.error("接收邮箱不能为空") Notify.error("接收邮箱不能为空")
return return
}else{ }else{
let reg=/^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/; let reg=/^[A-Za-z0-9\u4e00-\u9fa5\.]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
if(!reg.test(this.state.email)){ if(!reg.test(this.state.email)){
Notify.clear(); Notify.clear();
Notify.error("接收邮箱格式不正确") Notify.error("接收邮箱格式不正确")