|
@@ -17,6 +17,7 @@ import {
|
|
|
Affix,
|
|
|
Popconfirm,
|
|
|
Spin,
|
|
|
+ Tag,
|
|
|
Modal
|
|
|
} from "antd";
|
|
|
import moment from "moment";
|
|
@@ -33,6 +34,7 @@ import {
|
|
|
ifSupplierIsOrg,
|
|
|
translateItemBomFromItem
|
|
|
} from "./orderTools";
|
|
|
+import { getGoodAndPalettePriceConAPI,saveGoodsOptsResultAPI, getOptByIdAPI } from "../../../services/api";
|
|
|
|
|
|
const { Header, Content } = Layout;
|
|
|
// 获取默认币种
|
|
@@ -96,7 +98,19 @@ class OrderEidt extends PureComponent {
|
|
|
ifSubmit: false,
|
|
|
isSubBut: false,
|
|
|
actionType: "",
|
|
|
- isDisabled: false
|
|
|
+ isDisabled: false,
|
|
|
+ optValShow: false,
|
|
|
+ optSearchVal: "",
|
|
|
+ optValSelectId: "",
|
|
|
+ optVal: {
|
|
|
+ baseGoodsOptValue: "",
|
|
|
+ baseGoodsOptId: "",
|
|
|
+ ext05: "",
|
|
|
+ ext04: "",
|
|
|
+ price: ""
|
|
|
+ } ,
|
|
|
+ currRow: -1,
|
|
|
+ goodsAttrVals: []
|
|
|
};
|
|
|
}
|
|
|
|
|
@@ -498,7 +512,8 @@ class OrderEidt extends PureComponent {
|
|
|
payload: {
|
|
|
saleOrgId: supplierId, // 销售组织
|
|
|
customerId: this.customerId, // 客户
|
|
|
- isPrimaryChannel: ifOneSupplier ? 1 : 0, // 是否一级渠道商
|
|
|
+ // isPrimaryChannel: ifOneSupplier ? 1 : 0, // 是否一级渠道商
|
|
|
+ orderType: "reqOrder",
|
|
|
reqOrderItems: orderCartData // 商品行信息
|
|
|
}
|
|
|
})
|
|
@@ -722,6 +737,70 @@ class OrderEidt extends PureComponent {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ async onOptClick(goods, index) {
|
|
|
+ const attrs = await getOptByIdAPI({id: goods.goodsId, groupId: "", colourCode:""});
|
|
|
+ this.setState({
|
|
|
+ currRow: index,
|
|
|
+ optValShow: true,
|
|
|
+ goodsAttrVals: attrs[0].goodsAttrVals
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ selectColor(optValSelectId) {
|
|
|
+ this.setState({
|
|
|
+ optValSelectId
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ async confirmColor(color) {
|
|
|
+ const { dispatch, orderCartData, supplierData } = this.props;
|
|
|
+ let goodsDetail = {...orderCartData[this.state.currRow]}
|
|
|
+ let existRow = orderCartData.findIndex((item,index) => item.ext05 == color.attrValId && item.goodsId == color.goodsId && index != this.state.currRow)
|
|
|
+ if (existRow >= 0) {
|
|
|
+ message.info("所选颜色商品已存在,请重新选择!");
|
|
|
+ return
|
|
|
+ }
|
|
|
+ const params = {
|
|
|
+ organizationId: supplierData[0].id,
|
|
|
+ customerId: getCustomer().id,
|
|
|
+ goodsId: goodsDetail.goodsId,
|
|
|
+ orderTypeId: '01',
|
|
|
+ paletteId: color.attrValId,
|
|
|
+ shopId: ''
|
|
|
+ }
|
|
|
+ const result = await getGoodAndPalettePriceConAPI(params)
|
|
|
+ if (result.length) {
|
|
|
+ const optParams = [{
|
|
|
+ goodsOptDtos: [{
|
|
|
+ goodsId: goodsDetail.goodsId,
|
|
|
+ goodsOptVals: [color],
|
|
|
+ optResult: color.custDocGroupName+ ":" + color.attrValName,
|
|
|
+ uniqueKey: goodsDetail.goodsId
|
|
|
+ }]
|
|
|
+ }]
|
|
|
+ const opt = await saveGoodsOptsResultAPI(optParams);
|
|
|
+ const price = result[0].price
|
|
|
+ const priceAndMny = {
|
|
|
+ promPrice : price,
|
|
|
+ basePrice : price,
|
|
|
+ dealPrice : price,
|
|
|
+ salePrice : price,
|
|
|
+ amount : price * goodsDetail.orderNum,
|
|
|
+ dealAmount : goodsDetail.amount,
|
|
|
+ baseGoodsOptId : opt[0].goodsOptDtos[0].id,
|
|
|
+ baseGoodsOptValue : color.custDocGroupName+ ":" + color.attrValName,
|
|
|
+ ext05 : color.attrValId
|
|
|
+ }
|
|
|
+ let newItem = Object.assign({},goodsDetail,priceAndMny)
|
|
|
+ orderCartData.splice(this.state.currRow,1,newItem)
|
|
|
+ dispatch({
|
|
|
+ type: "orderEdit/orderCartData",
|
|
|
+ orderCartData: [...orderCartData]
|
|
|
+ })
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
// 备注改变
|
|
|
remarkChange(e) {
|
|
|
this.setState({
|
|
@@ -1240,7 +1319,7 @@ class OrderEidt extends PureComponent {
|
|
|
const conversionRate = parseFloat(addRow.conversionRate || "1");
|
|
|
newOrderCartData.forEach(item => {
|
|
|
// 重复,则累加订货数量、主数量
|
|
|
- if (item.goodsId == addRow.id) {
|
|
|
+ if (item.goodsId == addRow.id && item.ext05 == addRow.ext05) {
|
|
|
item.orderNum += 1;
|
|
|
item.mainNum += conversionRate;
|
|
|
repeat = true;
|
|
@@ -1661,6 +1740,7 @@ class OrderEidt extends PureComponent {
|
|
|
onChange={this.goodsInfoChange.bind(this)}
|
|
|
offsetAmount={this.state.offsetAmount}
|
|
|
promotionChange={this.promotionChangeHandle.bind(this)}
|
|
|
+ optClick={this.onOptClick.bind(this)}
|
|
|
ifOptional={ifOptional}
|
|
|
ifPromotion={value => {
|
|
|
this.ifPromotion = value;
|
|
@@ -1861,6 +1941,51 @@ class OrderEidt extends PureComponent {
|
|
|
orderPayBillSet={this.props.orderPayBillSet}
|
|
|
backToWho="orderList"
|
|
|
/>
|
|
|
+
|
|
|
+ <Modal title="颜色选择" visible={this.state.optValShow}
|
|
|
+ onCancel={() => {
|
|
|
+ this.setState({optValShow: false})
|
|
|
+ }}
|
|
|
+ onOk={async () => {
|
|
|
+ if (this.state.optValSelectId) {
|
|
|
+ const colorSelc = this.state.goodsAttrVals ? this.state.goodsAttrVals.find(item => item.attrValId == this.state.optValSelectId) : null
|
|
|
+ const optVal = Object.assign({},this.state.optVal,colorSelc,{baseGoodsOptValue: `${colorSelc.custDocGroupName}->${colorSelc.attrValName}`})
|
|
|
+ this.setState({
|
|
|
+ optVal ,
|
|
|
+ optValShow: false,
|
|
|
+ goodsAttrVals: []
|
|
|
+ })
|
|
|
+ this.confirmColor(optVal)
|
|
|
+ } else {
|
|
|
+ message.warning("请选择颜色")
|
|
|
+ }
|
|
|
+ }}
|
|
|
+ width="1000px" maskClosable={false}
|
|
|
+ >
|
|
|
+ <div>
|
|
|
+ <Input.Search placeholder="请输入颜色编码"
|
|
|
+ // defaultValue={this.state.optSearchVal}
|
|
|
+ onBlur={(e) => {
|
|
|
+ this.setState({optSearchVal: e.target.value})
|
|
|
+ }}
|
|
|
+ onSearch={(e) => {
|
|
|
+ this.setState({optSearchVal: e})
|
|
|
+ }}
|
|
|
+ onPressEnter={(e) => {
|
|
|
+ this.setState({optSearchVal: e.target.value})
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div style={{height: "500px",width: "950px",overflow: "auto", marginTop: "10px"}}>
|
|
|
+ {
|
|
|
+ this.state.goodsAttrVals ? this.state.goodsAttrVals.filter(item => !this.state.optSearchVal || item.attrValName.indexOf(this.state.optSearchVal) >= 0).map((item,index) => {
|
|
|
+ // return <Tag color={this.state.optValSelectId == item.attrValName ? "red" : ""} className={styles.colorItem} onClick={this.selectColor.bind(this)}>{item.attrValName}</Tag>
|
|
|
+ return <Tag key={item.attrValId} color={this.state.optValSelectId == item.attrValId ? "red" : ""} className={styles.colorItem} onClick={() => {this.selectColor(item.attrValId)}}>{item.attrValName}</Tag>
|
|
|
+ }) : ""
|
|
|
+ }
|
|
|
+ </div>
|
|
|
+ </Modal>
|
|
|
+
|
|
|
</div>
|
|
|
);
|
|
|
}
|