新增兑换码复制逻辑

This commit is contained in:
wangsongsole 2022-08-26 13:35:02 +08:00
parent e36f8c6f3f
commit 8ab5cfb506
1 changed files with 238 additions and 18 deletions

View File

@ -52,6 +52,7 @@ export default class exchangeAdd extends React.Component {
this.setState({ isState })
if (isState === 1) {
/* 复制 */
this.copyFunction()
} else if (isState === 2) {
/* 编辑 */
this.editFunction()
@ -278,6 +279,226 @@ 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
}
//
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({ reseller: resller_obj })
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
}
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) => {})
}
}
//
getTableList() {
if (sessionStorage.getItem("addMoneyData")) {
@ -950,7 +1171,6 @@ export default class exchangeAdd extends React.Component {
alignment={"left"}
/>
</FormItem>
{this.state.isload ? (
<FormItem
labelname='兑换码名称'
prop='code_name'
@ -967,7 +1187,6 @@ export default class exchangeAdd extends React.Component {
alignment={"left"}
/>
</FormItem>
) : null}
<FormItem labelname='发放总量' prop='issued' id='issued'>
<div className='line'>{this.state.codeInfo.issued}</div>
@ -1017,6 +1236,7 @@ export default class exchangeAdd extends React.Component {
format: "HH:mm:ss",
defaultTime: ["00:00:00", "23:59:59"]
}}
disabled={[this.state.isState === 2, false]}
format='YYYY-MM-DD HH:mm:ss'
value={this.state.codeInfo.date_time}
onChange={(e) => {