diff --git a/src/pages/exchangecode/edit/edit.js b/src/pages/exchangecode/edit/edit.js index 97ac742e..0cb65dcd 100644 --- a/src/pages/exchangecode/edit/edit.js +++ b/src/pages/exchangecode/edit/edit.js @@ -573,6 +573,7 @@ export default class exchangedit extends React.Component { this.setState({ codeInfo: model2 }) } + //渲染范围列表数据以及数据转换 async productSubmit() { let visible = '' if (this.state.addIsType === 'addProduct') { @@ -615,7 +616,7 @@ export default class exchangedit extends React.Component { data = JSON.parse(sessionStorage.getItem('knockGoldData')) temp = _.map(data, (item) => { let index = this.state.tempdata.findIndex((o) => { - return o.product_id === item.id + return o.product_id === item.uuid }) if (index > -1) { @@ -625,7 +626,7 @@ export default class exchangedit extends React.Component { /* 转换商品结构 */ // temp return { - product_id: item.id, + product_id: item.uuid, product_name: item.batch_goods_name, //名字 cost_price: '', contract_price: item.contract_price, //单价 @@ -689,6 +690,7 @@ export default class exchangedit extends React.Component { } } + /* 修改商品名称 */ onNameChange(e, row) { let rowIndex = this.state.tempdata.findIndex((o) => { return o.product_id == row.product_id @@ -696,6 +698,8 @@ export default class exchangedit extends React.Component { this.state.tempdata[rowIndex].product_name = e.target.value this.setState({ tempdata: this.state.tempdata }) } + + /* 修改库存总数 */ onQuantityChange(e, row) { this.setState({ tempdata: this.state.tempdata }) let value = e.target.value @@ -713,6 +717,8 @@ export default class exchangedit extends React.Component { value - this.state.tempdata[rowIndex].usage this.setState({ tempdata: this.state.tempdata }) } + + /* 修改合同价 */ onPriceChange(e, row) { let str = e.target.value let value = str @@ -851,6 +857,7 @@ export default class exchangedit extends React.Component { }) } + /* 商品范围列表编辑 */ productEditShow(rowData) { console.log('direct_reseller_id ==>', this.state.direct_reseller_id) console.log('rowData 12==>', rowData) @@ -865,7 +872,7 @@ export default class exchangedit extends React.Component { if (rowData.type === 'knockGold') { const temp = JSON.parse(sessionStorage.getItem('knockGoldData')) const editData = temp.filter( - (item) => item.id === rowData.product_id + (item) => item.uuid === rowData.product_id ) this.setState({ diff --git a/src/pages/order/list/list.js b/src/pages/order/list/list.js index 4a6ca691..8497ba69 100644 --- a/src/pages/order/list/list.js +++ b/src/pages/order/list/list.js @@ -1,609 +1,734 @@ -import ReactDOM from 'react-dom'; -import React, { Component } from 'react'; -import { Link } from "react-router-dom"; -import { Button,Notify,Select,Alert,CombinedDateRangePicker,Sweetalert,Icon} from 'zent'; -import "./list.less" -import "../../../assets/comm.css" -import Ipt from "../../../components/input/main" -import Grid from "../../../components/gird/main.js" -import TabPage from "../../../components/tabPage/main.js" -import Filterbar from "../../../components/filterbar/main.js" -import menu from "../../../assets/enum.js" -import { nowMonth, nowDay } from "../../../assets/comm.js"; -import {getOrderList,getOrderExport,handelResponse,putOrderSuccess,putOrderCancel} from "../../../assets/api.js" -var moment = require("moment"); -let day = moment(nowDay()).format("YYYY-MM-DD"); -let tomonth = moment(nowMonth()).format("YYYY-MM-DD"); +import ReactDOM from 'react-dom' +import React, { Component } from 'react' +import { Link } from 'react-router-dom' +import { + Button, + Notify, + Select, + Alert, + CombinedDateRangePicker, + Sweetalert, + Icon +} from 'zent' +import './list.less' +import '../../../assets/comm.css' +import Ipt from '../../../components/input/main' +import Grid from '../../../components/gird/main.js' +import TabPage from '../../../components/tabPage/main.js' +import Filterbar from '../../../components/filterbar/main.js' +import menu from '../../../assets/enum.js' +import { nowMonth, nowDay } from '../../../assets/comm.js' +import { + getOrderList, + getOrderExport, + handelResponse, + putOrderSuccess, + putOrderCancel +} from '../../../assets/api.js' +var moment = require('moment') +let day = moment(nowDay()).format('YYYY-MM-DD') +let tomonth = moment(nowMonth()).format('YYYY-MM-DD') const options = [ { key: '1', - text: '查询key', + text: '查询key' }, { key: '2', - text: '通用查询', + text: '通用查询' } -]; +] const Column = [ { title: '订单号', name: 'order_number', - prop:'order_number', - type: "normal", - width:'100px' - }, { + prop: 'order_number', + type: 'normal', + width: '100px' + }, + { title: '兑换码-批次ID', name: 'code_batch_id', - prop:'code_batch_id', - type: "normal", - width:'100px' + prop: 'code_batch_id', + type: 'normal', + width: '100px' }, { title: '商品名称', - prop:'product_name', + prop: 'product_name', name: 'product_name', - width:'120px', - type: "normal", - }, { + width: '120px', + type: 'normal' + }, + { title: '官方价格', name: 'official_price', - prop:'official_price', - type: "normal", - width:'auto' + prop: 'official_price', + type: 'normal', + width: 'auto' }, { title: '合同价(成本价)', name: 'cost', - type: "slot", - prop:'cost', - width:'auto' + type: 'slot', + prop: 'cost', + width: 'auto' }, { title: '分销商', name: 'reseller_name', - type: "normal", - prop:'reseller_name', - width:'auto', - },{ + type: 'normal', + prop: 'reseller_name', + width: 'auto' + }, + { title: '归属营销计划', name: 'plan_title', - prop:'plan_title', - width:'auto', - type: "normal", - }, + prop: 'plan_title', + width: 'auto', + type: 'normal' + }, { title: '购买数量', name: 'num', - type: "normal", - prop:'num', - width:'auto', + type: 'normal', + prop: 'num', + width: 'auto' }, - { + { title: '状态', name: 'statusDom', - prop:'statusDom', - type: "slot", - width:'auto', + prop: 'statusDom', + type: 'slot', + width: 'auto' }, { title: '操作', prop: 'opearo', name: 'opearo', - type: "slot", - width:'140px', + type: 'slot', + width: '140px' }, { title: '创建时间', name: 'create_time', - prop:'create_time', - width:'120px', - type: "normal", - }, { + prop: 'create_time', + width: '120px', + type: 'normal' + }, + { title: '账号', name: 'account', - type: "normal", - prop:'account', - width:'auto', + type: 'normal', + prop: 'account', + width: 'auto' }, { title: '订单类型', name: 'type_text', - prop:'type_text', - width:'auto', - type: "normal", + prop: 'type_text', + width: 'auto', + type: 'normal' }, { title: '折扣', name: 'discount', - type: "normal", - prop:'discount', - width:'auto', + type: 'normal', + prop: 'discount', + width: 'auto' }, { title: '结算', name: 'total', - prop:'total', - width:'auto', - type: "normal", + prop: 'total', + width: 'auto', + type: 'normal' }, { title: 'key', name: 'key', - prop:'key', - width:'auto', - type: "normal", + prop: 'key', + width: 'auto', + type: 'normal' } -]; +] -export default class orderlist extends React.Component{ - constructor(props){ +export default class orderlist extends React.Component { + constructor(props) { super(props) - this.state={ - tabList:[{title:"订单列表"}], - orderList:[], - filterList:[{id:0,label:"订单状态",prop:"status",menuList:[{id:999,name:"全部"},{id:1,name:"充值中"},{id:2,name:"已完成"},{id:3,name:"充值失败"},{id:4,name:"已取消"}]}], - selectiondata:[], - menuList:[{id:0,name:"订单状态",check:false}] - ,allcheck:false, - itemcheck:false, - combinedValue:[], - tableHeight:500, - status:null, - page:1, - limit:10, - key_word:'', - officialprice:0,contractprice:0,costprice:0,totalprice:0 - } - this.onChangeCombinedDate=this.onChangeCombinedDate.bind(this); + this.state = { + tabList: [{ title: '订单列表' }], + orderList: [], + filterList: [ + { + id: 0, + label: '订单状态', + prop: 'status', + menuList: [ + { id: 999, name: '全部' }, + { id: 1, name: '充值中' }, + { id: 2, name: '已完成' }, + { id: 3, name: '充值失败' }, + { id: 4, name: '已取消' } + ] + } + ], + selectiondata: [], + menuList: [{ id: 0, name: '订单状态', check: false }], + allcheck: false, + itemcheck: false, + combinedValue: [], + tableHeight: 500, + status: null, + page: 1, + limit: 10, + key_word: '', + officialprice: 0, + contractprice: 0, + costprice: 0, + totalprice: 0 + } + this.onChangeCombinedDate = this.onChangeCombinedDate.bind(this) } //选中表格的选框 - selection(selection){ - this.setState({selectiondata:selection}); - let officialprice=0; - let contractprice=0; - let costprice=0; - let totalprice=0; - selection.forEach(item=>{ - officialprice+=Number(item.official_price); - contractprice+=Number(item.contract_price); - costprice+=Number(item.cost_price); - totalprice+=Number(item.total); - }); - this.setState({officialprice,contractprice,costprice,totalprice}); - } - //新建订单 - clickFn(){ - this.props.history.push('/order-add'); - sessionStorage.setItem('pathname2','/order-add') - let activerou=[{items:[ + selection(selection) { + this.setState({ selectiondata: selection }) + let officialprice = 0 + let contractprice = 0 + let costprice = 0 + let totalprice = 0 + selection.forEach((item) => { + officialprice += Number(item.official_price) + contractprice += Number(item.contract_price) + costprice += Number(item.cost_price) + totalprice += Number(item.total) + }) + this.setState({ officialprice, contractprice, costprice, totalprice }) + } + //新建订单 + clickFn() { + this.props.history.push('/order-add') + sessionStorage.setItem('pathname2', '/order-add') + let activerou = [ { - "path": "/home/order-list", - "name": "订单管理" - }, - { - "path": "/home/order-add", - "name": "新建订单" + items: [ + { + path: '/home/order-list', + name: '订单管理' + }, + { + path: '/home/order-add', + name: '新建订单' + } + ] } - ]}] - sessionStorage.setItem('breaknav',JSON.stringify(activerou)); + ] + sessionStorage.setItem('breaknav', JSON.stringify(activerou)) } //批量作废 - batchdelFn(){ - if(this.state.selectiondata.length<1){ - Notify.clear(); - Notify.warn('请先勾选需作废的选项'); - }else{ + batchdelFn() { + if (this.state.selectiondata.length < 1) { + Notify.clear() + Notify.warn('请先勾选需作废的选项') + } else { Sweetalert.confirm({ - type:'warning', - closeBtn:true, - title:'确认操作', + type: 'warning', + closeBtn: true, + title: '确认操作', content:
是否作废选中【充值中】的订单?
, - onConfirm(){ - alert('开始调用作废接口'); + onConfirm() { + alert('开始调用作废接口') }, - onCancel(){ - - }, - className:'questModal', + onCancel() {}, + className: 'questModal', parentComponent: this - }); + }) } } - + //导出订单 - exportFn(){ - let _self=this; - let {key_word,key,status,option}=_self.state; - let data={} - if(this.state.combinedValue&&this.state.combinedValue[0]){ - data.begin_time=this.state.combinedValue[0]; - data.end_time=this.state.combinedValue[1]; - } - - if(status||status===0){ - data.status=status; - } - - if(option&&option.key==1){ - if(key_word){ - data.key=key_word; + exportFn() { + let _self = this + let { key_word, key, status, option } = _self.state + let data = {} + if (this.state.combinedValue && this.state.combinedValue[0]) { + data.begin_time = this.state.combinedValue[0] + data.end_time = this.state.combinedValue[1] } - } - if(option&&option.key==2){ - if(key_word){ - data.key_word=key_word; + if (status || status === 0) { + data.status = status } - } - if(this.state.selectiondata&&this.state.selectiondata.length>0){ - let orders=this.state.selectiondata; - let orderNum=orders.map(item=>item.order_number); - data.order_numbers=orderNum.join(','); - } + if (option && option.key == 1) { + if (key_word) { + data.key = key_word + } + } + + if (option && option.key == 2) { + if (key_word) { + data.key_word = key_word + } + } + if (this.state.selectiondata && this.state.selectiondata.length > 0) { + let orders = this.state.selectiondata + let orderNum = orders.map((item) => item.order_number) + data.order_numbers = orderNum.join(',') + } Sweetalert.confirm({ - type:'warning', - closeBtn:true, - title:'确认操作', + type: 'warning', + closeBtn: true, + title: '确认操作', content:是否导出订单?
, - onConfirm(){ - getOrderExport(data).then(res=>{ - if(res.type=='application/json'){ - const reader = new FileReader(); //创建一个FileReader实例 - reader.readAsText(res, 'utf-8'); //读取文件,结果用字符串形式表示 - reader.onload=function(){ - const obj = JSON.parse(reader.result); - Notify.clear() - Notify.error(obj.message) - } - }else{ - let bl = new Blob([res]); - let fileName = '订单管理'+_self.getnow()+ ".xlsx"; //设置文件名 - var link = document.createElement('a');//创建标签 - link.href = window.URL.createObjectURL(bl); - link.download = fileName;//下载的文件名 - link.click(); - window.URL.revokeObjectURL(link.href);//清除URL - } - }).catch(err=>{ - }); + onConfirm() { + getOrderExport(data) + .then((res) => { + if (res.type == 'application/json') { + const reader = new FileReader() //创建一个FileReader实例 + reader.readAsText(res, 'utf-8') //读取文件,结果用字符串形式表示 + reader.onload = function () { + const obj = JSON.parse(reader.result) + Notify.clear() + Notify.error(obj.message) + } + } else { + let bl = new Blob([res]) + let fileName = '订单管理' + _self.getnow() + '.xlsx' //设置文件名 + var link = document.createElement('a') //创建标签 + link.href = window.URL.createObjectURL(bl) + link.download = fileName //下载的文件名 + link.click() + window.URL.revokeObjectURL(link.href) //清除URL + } + }) + .catch((err) => {}) }, - - onCancel(){ - - }, - className:'questModal', + + onCancel() {}, + className: 'questModal', parentComponent: this - }); + }) } - //获取当前时间 - getnow() { - var now = new Date(); - var year = now.getFullYear(); - var month = - now.getMonth() + 1 <= 9 - ? "0" + (now.getMonth() + 1) - : now.getMonth() + 1; - var day = now.getDate() <= 9 ? "0" + now.getDate() : now.getDate(); - var tt = now.getHours() <= 9 ? "0" + now.getHours() : now.getHours(); - var mm = - now.getMinutes() <= 9 ? "0" + now.getMinutes() : now.getMinutes(); - var ss = - now.getSeconds() <= 9 ? "0" + now.getSeconds() : now.getSeconds(); - let datelist = [year, month, day, tt, mm, ss]; - return datelist.join(""); - } - componentWillMount(){ - this.setState({tableHeight:window.innerHeight-430}); + //获取当前时间 + getnow() { + var now = new Date() + var year = now.getFullYear() + var month = + now.getMonth() + 1 <= 9 ? '0' + (now.getMonth() + 1) : now.getMonth() + 1 + var day = now.getDate() <= 9 ? '0' + now.getDate() : now.getDate() + var tt = now.getHours() <= 9 ? '0' + now.getHours() : now.getHours() + var mm = now.getMinutes() <= 9 ? '0' + now.getMinutes() : now.getMinutes() + var ss = now.getSeconds() <= 9 ? '0' + now.getSeconds() : now.getSeconds() + let datelist = [year, month, day, tt, mm, ss] + return datelist.join('') + } + componentWillMount() { + this.setState({ tableHeight: window.innerHeight - 430 }) } //作废 - deleteFn(e,row){ - let self=this; - Sweetalert.confirm({ - type:'warning', - closeBtn:true, - title:'确认操作', - content:是否作废[{row.order_number}]?
, - onConfirm(){ - putOrderCancel(row.order_number).then(res=>{ - handelResponse(res,(response,msg)=>{ - Notify.clear(); - Notify.success(msg); - self.getOrderFn(); - },(err)=>{ - Notify.error(err) - }) - }).catch(err=>{ - }); - }, - onCancel(){ - - }, - className:'questModal', - parentComponent: this - }); + deleteFn(e, row) { + let self = this + Sweetalert.confirm({ + type: 'warning', + closeBtn: true, + title: '确认操作', + content: ( ++ 是否作废[{row.order_number}]? +
+ ), + onConfirm() { + putOrderCancel(row.order_number) + .then((res) => { + handelResponse( + res, + (response, msg) => { + Notify.clear() + Notify.success(msg) + self.getOrderFn() + }, + (err) => { + Notify.error(err) + } + ) + }) + .catch((err) => {}) + }, + onCancel() {}, + className: 'questModal', + parentComponent: this + }) } //改为成功 - changeSuccessFn(e,row){ - let self=this; - Sweetalert.confirm({ - type:'warning', - closeBtn:true, - title:'确认操作', - content:是否将[{row.order_number}]订单改为成功状态?
, - onConfirm(){ - putOrderSuccess(row.order_number).then(res=>{ - handelResponse(res,(response,msg)=>{ - Notify.clear(); - Notify.success(msg); - self.getOrderFn(); - },(err)=>{ - Notify.error(err) - }) - }).catch(err=>{ - }); - }, - onCancel(){ - - }, - className:'questModal', - parentComponent: this - }); - } - //详情 - moreFn(e,row){ - this.props.history.push('/home/order-addetails?oid='+row.order_number); - sessionStorage.setItem('pathname2','/home/order-addetails') - let activerou=[{items:[ - { - "path": "/home/order-list", - "name": "订单管理" + changeSuccessFn(e, row) { + let self = this + Sweetalert.confirm({ + type: 'warning', + closeBtn: true, + title: '确认操作', + content: ( ++ 是否将[{row.order_number}]订单改为成功状态? +
+ ), + onConfirm() { + putOrderSuccess(row.order_number) + .then((res) => { + handelResponse( + res, + (response, msg) => { + Notify.clear() + Notify.success(msg) + self.getOrderFn() + }, + (err) => { + Notify.error(err) + } + ) + }) + .catch((err) => {}) }, - { - "path": "/home/order-addetails", - "name": "订单详情" - } - ]}] - sessionStorage.setItem('breaknav',JSON.stringify(activerou)); + onCancel() {}, + className: 'questModal', + parentComponent: this + }) + } + //详情 + moreFn(e, row) { + this.props.history.push('/home/order-addetails?oid=' + row.order_number) + sessionStorage.setItem('pathname2', '/home/order-addetails') + let activerou = [ + { + items: [ + { + path: '/home/order-list', + name: '订单管理' + }, + { + path: '/home/order-addetails', + name: '订单详情' + } + ] + } + ] + sessionStorage.setItem('breaknav', JSON.stringify(activerou)) + } + //再次充值 + againinvestFn(e, row) {} + //清空 + clearFn() { + this.setState({ selectiondata: [] }) + this.setState({ allcheck: false }) + this.setState({ itemcheck: false }) } - //再次充值 - againinvestFn(e,row){ - } - //清空 - clearFn(){ - this.setState({'selectiondata':[]}) - this.setState({allcheck:false}) - this.setState({itemcheck:false}) - } - - //选择时间 - onChangeCombinedDate(e){ - this.setState({combinedValue:e}); - this.getOrderFn(e); + //选择时间 + onChangeCombinedDate(e) { + this.setState({ combinedValue: e }) + this.getOrderFn(e) } //page - pageChange(e){ - this.setState({page:e}); - this.setState({'selectiondata':[]}) + pageChange(e) { + this.setState({ page: e }) + this.setState({ selectiondata: [] }) setTimeout(() => { - this.getOrderFn(); - }, 0); - + this.getOrderFn() + }, 0) } //limit - countChange(e){ - this.setState({page:1,limit:e}); - this.setState({'selectiondata':[]}) + countChange(e) { + this.setState({ page: 1, limit: e }) + this.setState({ selectiondata: [] }) setTimeout(() => { - this.getOrderFn(); - }, 0); + this.getOrderFn() + }, 0) } - //敲回车查询 - sureFn(){ - this.setState({page:1}); - setTimeout(()=>{ - this.getOrderFn(); - },300); - + //敲回车查询 + sureFn() { + this.setState({ page: 1 }) + setTimeout(() => { + this.getOrderFn() + }, 300) + } + + onFilterClose(prop) { + let data = {} + data[prop] = null + this.setState(data) + } + + //获取订单列表 + getOrderFn(time = {}) { + let _self = this + let { page, limit, option, key_word, status } = _self.state + let data = { page, limit } + if (this.state.combinedValue && this.state.combinedValue[0]) { + data.begin_time = this.state.combinedValue[0] + data.end_time = this.state.combinedValue[1] + } + if (status || status === 0) { + data.status = status + } + if (time && time[0]) { + data.begin_time = time[0] + data.end_time = time[1] + } + if (time && time[0] == null && time.length > 1) { + delete data.begin_time + delete data.end_time + } + if (option && option.key == 1) { + if (key_word) { + data.key = key_word + } + } + if (option && option.key == 2) { + if (key_word) { + data.key_word = key_word + } } - onFilterClose(prop){ - let data = {} - data[prop] = null; - this.setState(data) + getOrderList(data) + .then((res) => { + handelResponse( + res, + (response, msg) => { + const orderList_data = response.data + const { total } = response + _self.setState({ orderList: orderList_data, total }) + }, + (err) => { + Notify.error(err) + } + ) + }) + .catch((err) => {}) + } + optiononChange(e) { + this.setState({ option: e, key_word: '' }) + } + componentWillMount() { + let datetime = [tomonth + ' ' + '00:00:00', day + ' ' + '23:59:59'] + this.setState({ combinedValue: datetime }) + this.getOrderFn(datetime) + } + + //状态筛选 + selectedId(e, prop) { + let data = {} + if (e == 999) { + data[prop] = null + } else { + data[prop] = e } - - - //获取订单列表 - getOrderFn(time={}){ - let _self=this; - let {page,limit,option,key_word,status}=_self.state; - let data={page,limit} - if(this.state.combinedValue&&this.state.combinedValue[0]){ - data.begin_time=this.state.combinedValue[0]; - data.end_time=this.state.combinedValue[1]; - } - if(status||status===0){ - data.status=status; - } - if(time&&time[0]){ - data.begin_time=time[0]; - data.end_time=time[1]; - } - if(time&&time[0]==null&&time.length>1){ - delete data.begin_time; - delete data.end_time; + this.setState(data) } - if(option&&option.key==1){ - if(key_word){ - data.key=key_word; + onclearFn(e) {} + // 监听组件内部状态的变化: + componentDidUpdate(prevProps, prevState) { + // 参数分别为改变之前的数据状态对象 + if (prevState.key_word != this.state.key_word && !this.state.key_word) { + this.getOrderFn() } - } - if(option&&option.key==2){ - if(key_word){ - data.key_word=key_word; + if (prevState.option != this.state.option && !this.state.option) { + this.getOrderFn() + this.setState({ key_word: '' }) + } + if (prevState.status != this.state.status) { + this.getOrderFn() } - } - - getOrderList(data).then(res=>{ - handelResponse(res,(response,msg)=>{ - const orderList_data=response.data; - const {total}=response; - _self.setState({orderList:orderList_data,total}); - - },(err)=>{ - Notify.error(err) - }) - }).catch(err=>{ - }); - } - optiononChange(e){ - this.setState({option:e,key_word:''}); - } - componentWillMount(){ - let datetime = [ - tomonth + " " + "00:00:00", - day + " " + "23:59:59" - ]; - this.setState({combinedValue:datetime}); - this.getOrderFn(datetime); - } - - //状态筛选 - selectedId(e,prop){ - let data ={} - if(e==999) - { - data[prop] = null; - } - else{ - data[prop] = e - } - - this.setState(data); - } - onclearFn(e){ - - } - // 监听组件内部状态的变化: -componentDidUpdate(prevProps,prevState){ - // 参数分别为改变之前的数据状态对象 - if(prevState.key_word!=this.state.key_word &&!this.state.key_word){ - this.getOrderFn(); } - if(prevState.option!=this.state.option &&!this.state.option){ - this.getOrderFn(); - this.setState({key_word:""}); - } - if(prevState.status!=this.state.status){ - this.getOrderFn(); - } -} //过滤表格枚举状态 - render(){ - - const date =- {/* + const { current, pageSize } = this.state + return ( +
+ {/* */} - -
-{rowData.status_text}
- } - if(com == "opearo") - - { - return+ + + {rowData.status_text} + +
+ ) + } + if (com == 'opearo') { + return ( +