优化兑换码模块代码

This commit is contained in:
wangsongsole 2022-08-31 10:45:55 +08:00
parent d90f8b6dc4
commit 2c6707d618
2 changed files with 60 additions and 220 deletions

View File

@ -40,7 +40,7 @@ import { Column2, rulesInfo, codeInfo, init } from "./utils"
const initArray = (targetNum) => {
return Array.from({ length: targetNum }, (_, index) => index)
}
let code_batch_id = ""
export default class exchangeAdd extends React.Component {
constructor(props) {
super(props)
@ -49,6 +49,7 @@ export default class exchangeAdd extends React.Component {
componentDidMount() {
const isState = ~~sessionStorage.getItem("isState") /*复制1 编辑2 */
code_batch_id = ~~sessionStorage.getItem("code_id") /* 兑换码id */
this.setState({ isState })
if (isState === 1) {
/* 复制 */
@ -63,7 +64,6 @@ export default class exchangeAdd extends React.Component {
/* 编辑处理数据 */
editFunction() {
let code_batch_id = sessionStorage.getItem("code_id")
let approval_id = sessionStorage.getItem("approval_id")
let approval_status = sessionStorage.getItem("approval_status")
if (Number(approval_id) > 0) {
@ -281,222 +281,70 @@ export default class exchangeAdd extends React.Component {
/* 复制处理数据 */
copyFunction() {
let code_batch_id = sessionStorage.getItem("code_id")
let approval_id = sessionStorage.getItem("approval_id")
let approval_status = sessionStorage.getItem("approval_status")
/* 被复制得兑换码id */
let copy_code_id = ~~sessionStorage.getItem("copy_code_id")
if (Number(approval_id) > 0) {
//
getApprovalsInfo(approval_id)
.then((res) => {
handelResponse(
res,
(req, msg) => {
let resller_obj = {
id: req.reseller_id,
name: req.reseller_name,
company_name: req.company_name,
receive_email: req.receive_email
}
getCodesDetail(code_batch_id)
.then((res) => {
handelResponse(
res,
(req, msg) => {
let reqCopy = _.cloneDeep(req)
const resData = this.transFormData(reqCopy)
reqCopy.goods = resData
let codeInfo = {
code_name: reqCopy.title /* 兑换码名称 count++ */,
issued: reqCopy.quantity,
stock: reqCopy.stock,
describe: reqCopy.describe,
date_time: [reqCopy.begin_time, reqCopy.end_time],
range: reqCopy.goods
}
//
getReseller(req.reseller_id).then((res) => {
handelResponse(res, (req1, msg) => {
req1.receive_email = req1.contact_email[0]
this.setState({ reseller: req1 })
this.setState({ phone_list: req1.contact_phone })
this.setState({ email_list: req1.contact_email })
this.setState({
direct_reseller_id: req1.direct_reseller_id
})
this.setState({ plan_time: reqCopy.plan.end_time })
//
getReseller(reqCopy.plan.reseller_id).then((res) => {
handelResponse(res, (req1, msg) => {
req1.receive_email = req1.contact_email[0]
this.setState({
reseller: req1,
phone_list: req1.contact_phone,
email_list: req1.contact_email,
direct_reseller_id: req1.direct_reseller_id
})
})
})
this.setState({ reseller: resller_obj })
this.setState({ isload: true, codeInfo: codeInfo })
_.map(reqCopy.goods, (res) => {
res.checked = true
return res
})
this.setState({ tempdata: reqCopy.goods || [] })
req.update_product = [...this.transFormData1(req.update_product)]
req.new_product = [...this.transFormData1(req.new_product, true)]
let codeInfo = {
code_name: req.title,
issued: req.quantity,
stock: req.stock,
describe: req.describe,
date_time: [req.begin_time, req.end_time],
range: req.update_product
let a1 = reqCopy.goods.map((item) => {
let obj = {
...item,
in: true
}
return obj
})
sessionStorage.setItem("productData", JSON.stringify(a1))
sessionStorage.setItem("knockGoldData", JSON.stringify(a1))
if (req.new_product.length > 0) {
req.new_product = _.map(req.new_product, (item) => {
item.checked = false
return item
})
codeInfo.range = codeInfo.range.concat(req.new_product)
}
let new_ids = _.map(req.new_product, (o) => {
return o.only
})
this.setState({ new_product: new_ids })
let delete_product = req.delete_product
let payment_direction = req.payment_direction
getCodesDetail(code_batch_id)
.then((res) => {
handelResponse(
res,
(req, msg) => {
codeInfo.stock = req.stock
this.setState({ plan_time: req.plan.end_time })
let reqCopy = _.cloneDeep(req)
const resData = this.transFormData(reqCopy)
this.setState({ oldTable: resData })
let deleteArr = []
for (let i = 0; i < delete_product.length; i++) {
let deleteData = resData.find(
(o) => o.only == delete_product[i]
)
deleteData.checked = false
deleteArr.push(deleteData)
}
this.setState({ codeInfo: codeInfo })
this.setState({ isload: true })
codeInfo.range = codeInfo.range.concat(deleteArr)
let table = _.map(codeInfo.range, (res) => {
let obj = resData.find((o) => o.only == res.only)
res.usage = obj ? obj.usage : 0
res.stock = obj ? obj.stock : res.quantity - res.usage
res.checked = res.hasOwnProperty("checked")
? res.checked
: true
if (approval_status == 7 && obj) {
res.checked = true
}
return res
})
this.setState({ deleteProduct: [] })
this.setState({ tempdata: codeInfo.range })
let arr = []
let temp = []
_.map(codeInfo.range, (res) => {
let obj = {}
obj.key = res.only
obj.text = res.product_name
if (new_ids.indexOf(res.only) < 0) {
this.state.oldProduct.push(res.id)
}
if (
table.find((o) => o.only == res.only).checked == true
) {
temp.push(obj)
}
arr.push(obj)
return obj
})
this.setState({ rankoptions: arr })
this.setState({ rank: temp })
if (payment_direction) {
let index =
this.state.payment_direction.indexOf(
payment_direction
)
this.setState({ paytype: index + 1 })
}
sessionStorage.setItem(
"productData",
JSON.stringify(codeInfo.range)
)
sessionStorage.setItem(
"knockGoldData",
JSON.stringify(codeInfo.range)
)
},
(err) => {}
)
})
.catch((err) => {})
},
(err) => {}
)
})
.catch((err) => {})
} else {
getCodesDetail(code_batch_id)
.then((res) => {
handelResponse(
res,
(req, msg) => {
let reqCopy = _.cloneDeep(req)
const resData = this.transFormData(reqCopy)
reqCopy.goods = resData
let codeInfo = {
code_name: reqCopy.title /* 兑换码名称 count++ */,
issued: reqCopy.quantity,
stock: reqCopy.stock,
describe: reqCopy.describe,
date_time: [reqCopy.begin_time, reqCopy.end_time],
range: reqCopy.goods
}
this.setState({ plan_time: reqCopy.plan.end_time })
//
getReseller(reqCopy.plan.reseller_id).then((res) => {
handelResponse(res, (req1, msg) => {
req1.receive_email = req1.contact_email[0]
this.setState({ reseller: req1 })
this.setState({ phone_list: req1.contact_phone })
this.setState({ email_list: req1.contact_email })
this.setState({
direct_reseller_id: req1.direct_reseller_id
})
})
})
this.setState({ codeInfo: codeInfo })
this.setState({ isload: true })
_.map(reqCopy.goods, (res) => {
res.checked = true
return res
})
this.setState({ tempdata: reqCopy.goods || [] })
let a1 = reqCopy.goods.map((item) => {
let obj = {
...item,
in: true
}
return obj
})
sessionStorage.setItem("productData", JSON.stringify(a1))
sessionStorage.setItem("knockGoldData", JSON.stringify(a1))
let arr = []
_.map(reqCopy.goods, (res) => {
let obj = {}
obj.key = res.only
obj.text = res.product_name
obj.id = res.id
this.state.oldProduct.push(res.id)
arr.push(obj)
return obj
})
this.setState({ rankoptions: arr })
this.setState({ rank: arr })
},
(err) => {}
)
})
.catch((err) => {})
}
let arr = []
_.map(reqCopy.goods, (res) => {
let obj = {}
obj.key = res.only
obj.text = res.product_name
obj.id = res.id
this.state.oldProduct.push(res.id)
arr.push(obj)
return obj
})
this.setState({ rankoptions: arr, rank: arr })
},
(err) => {}
)
})
.catch((err) => {})
}
//
@ -647,14 +495,9 @@ export default class exchangeAdd extends React.Component {
}
buildData() {
let code_batch_id = sessionStorage.getItem("code_id")
let range = []
_.map(this.state.rank, (o) => {
// if(this.state.oldProduct.indexOf(o.key) < 0)
// {
range.push(o.text)
// }
})
let selectData = this.refs.tempdata.getSelectData()
let addProduct = selectData.filter((o) => {
@ -760,7 +603,6 @@ export default class exchangeAdd extends React.Component {
return
}
let code_batch_id = sessionStorage.getItem("code_id")
let { data } = this.buildData()
putCodesBatch(code_batch_id, data).then((res) => {
handelResponse(
@ -794,7 +636,6 @@ export default class exchangeAdd extends React.Component {
Notify.error("还有图片上传中,不可提交")
return
}
let code_batch_id = sessionStorage.getItem("code_id")
let { data, addProduct, updateProduct } = this.buildData()
if ([...updateProduct, ...addProduct].length < 1) {

View File

@ -173,15 +173,14 @@ export default class acclist extends React.Component {
JSON.stringify(param.keyBatch.plan)
)
sessionStorage.setItem("keybatch_id", param.key_batch_id)
sessionStorage.setItem("copy_code_id", param.id)
sessionStorage.setItem("key_reseller_id", param.keyBatch.plan.reseller_id)
sessionStorage.setItem("approval_id", param.keyBatch.approval_id)
} else if (type === 2) {
activerou[0].pagetitle = "编辑"
activerou[0].items[1].name = `编辑:${param.title}兑换码的商品范围列表`
sessionStorage.setItem("code_id", param.id)
}
sessionStorage.setItem("code_id", param?.id)
sessionStorage.setItem("isState", type)
sessionStorage.setItem("breaknav", JSON.stringify(activerou))
sessionStorage.setItem("pathname2", "/home/exchangecode-exchangecodeAdd")