| | |
| | | <el-form-item |
| | | label="采购类型" |
| | | prop="purchaseTypeId" |
| | | class="form-item float_left" |
| | | class="float_left" |
| | | style="width:100%;" |
| | | > |
| | | <el-select |
| | | placeholder="请选择采购类型" |
| | |
| | | > |
| | | <el-option |
| | | v-for="ele in plcBrandList" |
| | | :key="ele.id" |
| | | :key="ele.name" |
| | | :label="ele.name" |
| | | :value="ele.name" |
| | | :value="ele.ID" |
| | | ></el-option> |
| | | </el-select> |
| | | <i |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="单据来源" prop="number"> |
| | | <el-form-item label="单据来源" prop="orderSource"> |
| | | <el-input |
| | | v-model="editConfig.infomation.number" |
| | | v-model="editConfig.infomation.orderSource" |
| | | disabled |
| | | placeholder="请填写" |
| | | ></el-input> |
| | |
| | | :show-summary="showSummary" |
| | | :recalculateShow="false" |
| | | :product-table-list="productTableList" |
| | | sign="purchase" |
| | | @inputContent="inputContent" |
| | | @getSummaries="getSummaries" |
| | | @addProductClick="addProductClick" |
| | | @emptyProductClick="emptyProductClick" |
| | | @clearupProduct="clearupProduct" |
| | |
| | | <div class="table-bottom-l"> |
| | | <el-form-item label="整单折扣" prop="member_id"> |
| | | <el-select |
| | | v-model="editConfig.infomation.fieldName" |
| | | v-model="editConfig.infomation.wholeDiscountType" |
| | | placeholder="请选择" |
| | | filterable |
| | | @change="getTotal" |
| | | > |
| | | <el-option label="百分比降价" :value="1"></el-option> |
| | | <el-option label="直接降价" :value="2"></el-option> |
| | |
| | | <div class="table-bottom-r"> |
| | | <el-form-item label="" prop="member_id"> |
| | | <el-input |
| | | v-model="editConfig.infomation.number" |
| | | v-model="editConfig.infomation.wholeDiscount" |
| | | size="mini" |
| | | :disabled="editConfig.infomation.wholeDiscountType?false:true" |
| | | @change="getTotal" |
| | | placeholder="请填写" |
| | | ></el-input> |
| | | </el-form-item> |
| | |
| | | <div class="table-bottom-l"> |
| | | <el-form-item label="调整" prop="member_id"> |
| | | <el-select |
| | | v-model="editConfig.infomation.fieldName" |
| | | v-model="editConfig.infomation.priceAdjustmentType" |
| | | placeholder="请选择" |
| | | filterable |
| | | @change="getTotal" |
| | | > |
| | | <el-option label="增加" :value="1"></el-option> |
| | | <el-option label="减少" :value="2"></el-option> |
| | |
| | | <div class="table-bottom-r"> |
| | | <el-form-item label="" prop="member_id"> |
| | | <el-input |
| | | v-model="editConfig.infomation.number" |
| | | v-model="editConfig.infomation.priceAdjustment" |
| | | size="mini" |
| | | :disabled="editConfig.infomation.priceAdjustmentType?false:true" |
| | | @change="getTotal" |
| | | placeholder="请填写" |
| | | ></el-input> |
| | | </el-form-item> |
| | |
| | | </div> |
| | | <div class="table-bottom-item"> |
| | | <div class="table-bottom-l">合计</div> |
| | | <div class="table-bottom-r">26000.00</div> |
| | | <div class="table-bottom-r">{{ total }}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | ref="editDialog" |
| | | @sucessSet="handleGetBomKindDictList" |
| | | @handleConfirmSave="handleConfirmSave" |
| | | :editRow="editRow" |
| | | :workList="plcBrandList" |
| | | title="采购类型" |
| | | ></BomDialog> |
| | |
| | | import { |
| | | addPurchase, |
| | | updatePurchase, |
| | | savePurchaseType, |
| | | getPurchaseType, |
| | | } from "@/api/purchaseManage/purchase"; |
| | | // import { |
| | | // postGetUnitDictList, |
| | | // postGetSaveSUnitDict, |
| | | // } from "@/api/purchaseManage/purchase"; |
| | | |
| | | import SelectSupplierDialog from "@/views/purchaseManage/purchase/components/SelectSupplierDialog"; |
| | | export default { |
| | | name: "QuotationDialog", |
| | |
| | | return { |
| | | editConfig: this.editCommonConfig, |
| | | rules: { |
| | | purchaseTypeId:[{ required: true, message: "请选择", trigger: "change" }], |
| | | supplierName: [{ required: true, message: "请选择", trigger: "change" }], |
| | | phone: [ |
| | | { |
| | |
| | | }, |
| | | { validator: this.validatorPhone, trigger: "change" }, |
| | | ], |
| | | wholeDiscount: [ |
| | | { |
| | | required: false, |
| | | message: "请填写0-100的数字", |
| | | trigger: "change", |
| | | }, |
| | | { validator: this.validatorNum, trigger: "change" }, |
| | | ], |
| | | priceAdjustment: [ |
| | | { |
| | | required: false, |
| | | message: "请填写", |
| | | trigger: "change", |
| | | }, |
| | | { validator: this.validatorNumThree, trigger: "change" }, |
| | | ], |
| | | }, |
| | | productTableList: {}, |
| | | showSummary: { |
| | | show: true, |
| | | total: false, |
| | | sumProp: ["price", "total"], |
| | | multiply:['amount','price'], |
| | | titleProp: [ |
| | | "编号", |
| | | "产品名称", |
| | |
| | | "描述", |
| | | ], |
| | | mergeNumber: 4, |
| | | totalName:'小计' |
| | | }, |
| | | editSelectSupplierConfig: { |
| | | editVisible: false, |
| | |
| | | isNoProduct: true, |
| | | clientList: [], |
| | | plcBrandList:[], |
| | | editRow:{ |
| | | isDefault:'pin' |
| | | }, |
| | | total:0, |
| | | totalTwo:0, |
| | | }; |
| | | }, |
| | | created() { |
| | | this.setTableForm(); |
| | | this.handleGetBomKindDictList(); |
| | | }, |
| | | computed: { |
| | | }, |
| | |
| | | 'editCommonConfig.visible':{ |
| | | immediate:true, |
| | | handler:function(){ |
| | | this.setTableForm(); |
| | | |
| | | this.handleGetBomKindDictList(true); |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | validatorNum(rule, value, callback) { |
| | | if(this.editConfig.infomation.wholeDiscountType==1){ |
| | | if(value==undefined||value==null||(!value&&value!=0)){ |
| | | callback(new Error("请输入有效数字")); |
| | | }else{ |
| | | var reg=/^\+?[0-9]\d*$/ |
| | | if(!reg.test(value)){ |
| | | callback(new Error('请填写0-100的数字')) |
| | | }else{ |
| | | if(Number(value)>100){ |
| | | callback(new Error('请填写0-100的数字')) |
| | | }else{ |
| | | callback() |
| | | } |
| | | } |
| | | } |
| | | }else{ |
| | | this.validatorNumThree(rule, value, callback) |
| | | } |
| | | }, |
| | | validatorNumThree(rule, value, callback){ |
| | | if(value){ |
| | | if(value==undefined||value==null){ |
| | | callback(new Error("请输入有效数字")); |
| | | }else{ |
| | | let reg2=/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/ |
| | | if(!reg2.test(value)){ |
| | | callback(new Error('请填写2位小数的数字')) |
| | | }else{ |
| | | callback() |
| | | } |
| | | } |
| | | }else{ |
| | | callback() |
| | | } |
| | | }, |
| | | // PLC配置设置 |
| | | handleShow() { |
| | | // this.handleGetBomKindDictList(); |
| | | this.handleGetBomKindDictList(); |
| | | this.$refs.editDialog.editDialogVisible = true; |
| | | }, |
| | | // PLC配置 |
| | | handleGetBomKindDictList(val) { |
| | | console.log(val,'val') |
| | | // postGetUnitDictList().then((res) => { |
| | | // this.plcBrandList = res.data; |
| | | // if (val) { |
| | | // for (let i in this.plcBrandList) { |
| | | // if (this.plcBrandList[i].isDefault) { |
| | | // this.form.unit = this.form.unit |
| | | // ? this.form.unit |
| | | // : this.plcBrandList[i].name; |
| | | // this.$set(this.form, "unit", this.form.unit); |
| | | // break; |
| | | // } |
| | | // } |
| | | // } |
| | | // }); |
| | | getPurchaseType().then((res) => { |
| | | this.plcBrandList = res.data; |
| | | this.setTableForm() |
| | | if (val) { |
| | | for (let i in this.plcBrandList) { |
| | | if (this.plcBrandList[i][this.editRow.isDefault]) { |
| | | this.editConfig.infomation.purchaseTypeId = this.editConfig.infomation.purchaseTypeId |
| | | ? this.editConfig.infomation.purchaseTypeId |
| | | : this.plcBrandList[i].ID; |
| | | this.$set(this.editConfig.infomation, "purchaseTypeId", this.editConfig.infomation.purchaseTypeId); |
| | | |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | handleConfirmSave(data) { |
| | | console.log(data,'data') |
| | | // postGetSaveSUnitDict({ data: data }).then((res) => { |
| | | // if (res.code == 200) { |
| | | // this.$message({ |
| | | // message: "操作成功!", |
| | | // type: "success", |
| | | // }); |
| | | // this.$refs.editDialog.editDialogVisible = false; |
| | | // this.handleGetBomKindDictList(); |
| | | // } |
| | | // }); |
| | | data.forEach(ele=>{ |
| | | delete ele.created_at |
| | | }) |
| | | |
| | | savePurchaseType(data).then((res) => { |
| | | if (res.code === 200) { |
| | | this.$message({ |
| | | message: "操作成功!", |
| | | type: "success", |
| | | }); |
| | | this.$refs.editDialog.editDialogVisible = false; |
| | | this.handleGetBomKindDictList(true); |
| | | } |
| | | },(err)=>{ |
| | | console.error(err) |
| | | this.$message({ |
| | | message: "操作失败!", |
| | | type: "warning", |
| | | }); |
| | | }); |
| | | }, |
| | | validatorPhone(rule, value, callback) { |
| | | if (value) { |
| | |
| | | }); |
| | | }, |
| | | saveParams() { |
| | | debugger |
| | | let data =JSON.parse(JSON.stringify(this.editConfig.infomation)); |
| | | |
| | | if(this.editConfig.infomation.wholeDiscountType==2&&this.editConfig.infomation.wholeDiscount){ |
| | | if(Number(this.editConfig.infomation.wholeDiscount)>Number(this.totalTwo)){ |
| | | this.$message.error('直接降价不能超过价税合计的总和!') |
| | | return true; |
| | | } |
| | | } |
| | | let params = { |
| | | productList:this.tableData, |
| | | purchase:{ |
| | | supplierId:this.supplierId||0, |
| | | signingDate:data.signingDate||'', |
| | | remark:data.remark, |
| | | purchaseTypeId:this.purchaseTypeId||0, |
| | | orderSource:data.orderSource||'', |
| | | purchaseTypeId:data.purchaseTypeId||0, |
| | | phone:data.phone||'', |
| | | name:data.name||'', |
| | | deliveryDate:data.deliveryDate||'', |
| | | contact:data.contact |
| | | contact:data.contact, |
| | | wholeDiscountType:data.wholeDiscountType?data.wholeDiscountType:0, |
| | | wholeDiscount:data.wholeDiscount?Number(data.wholeDiscount):0, |
| | | priceAdjustmentType:data.priceAdjustmentType?data.priceAdjustmentType:0, |
| | | priceAdjustment:data.priceAdjustment?Number(data.priceAdjustment):0, |
| | | realTotalPrice:this.total?Number(this.total):0, |
| | | totalPrice:this.totalTwo?Number(this.totalTwo):0, |
| | | } |
| | | }; |
| | | if(data.ID){ |
| | |
| | | { |
| | | label: "产品名称", |
| | | prop: "name", |
| | | min: 180, |
| | | productName: true, |
| | | isRequird: true, |
| | | }, |
| | | { label: "产品编号", prop: "number" }, |
| | | { label: "产品编号", prop: "number", min: 150,}, |
| | | { label: "计量单位", prop: "unit" }, |
| | | { label: "规格型号", prop: "specifications" }, |
| | | { label: "数量", prop: "amount", inputNumber: true, isRequird: true }, |
| | |
| | | inputFloat: true, |
| | | isRequird: true, |
| | | }, |
| | | { label: "价税合计", prop: "total", inputFloat: true }, |
| | | { label: "价税合计", prop: "total", inputFloat: true,disabled:true,multiply:true, }, |
| | | { label: "描述", prop: "remark", input: true }, |
| | | ], |
| | | }; |
| | | this.toal=this.editConfig.infomation.realTotalPrice |
| | | |
| | | }, |
| | | // 产品列表输入 |
| | | inputContent(val, prop, row) { |
| | |
| | | item[prop] = val; |
| | | } |
| | | }); |
| | | |
| | | }, |
| | | getSummaries(total){ |
| | | this.totalTwo= JSON.parse(JSON.stringify(total)); |
| | | this.total=total; |
| | | this.getTotal() |
| | | }, |
| | | getTotal(){ |
| | | let prie=0 |
| | | if(this.editConfig.infomation.priceAdjustmentType==1){ |
| | | prie=Number(this.editConfig.infomation.priceAdjustment) |
| | | }else if(this.editConfig.infomation.priceAdjustmentType==2){ |
| | | prie=(-1)*Number(this.editConfig.infomation.priceAdjustment) |
| | | }else{ |
| | | prie=0 |
| | | } |
| | | let t=0 |
| | | if(this.editConfig.infomation.wholeDiscountType==1){ |
| | | t=this.totalTwo*Number(this.editConfig.infomation.wholeDiscount)/100 |
| | | }else if(this.editConfig.infomation.wholeDiscountType==2){ |
| | | t=Number(this.editConfig.infomation.wholeDiscount) |
| | | }else{ |
| | | t=0 |
| | | } |
| | | this.total=this.totalTwo-t+Number(prie) |
| | | }, |
| | | // 产品新增 |
| | | addProductClick() { |