From a1eb3642627b7534da64891c49a4139b1fda957d Mon Sep 17 00:00:00 2001
From: zuozhengqing <a13193816592@163.com>
Date: 星期六, 30 三月 2024 13:38:25 +0800
Subject: [PATCH] 采购管理替换接口
---
src/views/purchaseManage/purchase/components/AddPurchase.vue | 829 ++++++++++++++++++++++++++++++++++-------------------------
1 files changed, 478 insertions(+), 351 deletions(-)
diff --git a/src/views/purchaseManage/purchase/components/AddPurchase.vue b/src/views/purchaseManage/purchase/components/AddPurchase.vue
index 90bfa28..1985dc6 100644
--- a/src/views/purchaseManage/purchase/components/AddPurchase.vue
+++ b/src/views/purchaseManage/purchase/components/AddPurchase.vue
@@ -24,12 +24,27 @@
<div class="basic-info-view">
<el-row>
<el-col :span="12">
- <el-form-item
- label="閲囪喘绫诲瀷"
- prop="purchaseTypeId"
- class="float_left"
- style="width:100%;"
- >
+ <el-form-item label="閲囪喘鍗曞彿" prop="number">
+ <!-- <el-input v-model="editConfig.infomation.number"></el-input> -->
+ <el-input
+ style="width: 85%"
+ v-if="
+ editConfig.title == '缂栬緫' ||
+ editConfig.title == '鏌ョ湅' ||
+ (editConfig.title == '鏂板缓' && codenumer && (explain != '' || isIdDisabled))
+ "
+ :disabled="editConfig.title != '鏂板缓'"
+ v-model="editConfig.infomation.number"
+ placeholder="璇疯緭鍏ョ紪鐮�"
+ >
+ </el-input>
+ <span v-else-if="editConfig.title == '鏂板缓'" style="color: #f56c6c; width: 85%"
+ >璇蜂紭鍏堥厤缃紪鐮佽鑼� <el-button type="text" @click="numberClick"> 閰嶇疆瑙勮寖 </el-button></span
+ >
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="閲囪喘绫诲瀷" prop="purchaseTypeId" class="float_left" style="width: 100%">
<el-select
:disabled="editConfig.isDisabled"
placeholder="璇烽�夋嫨閲囪喘绫诲瀷"
@@ -39,9 +54,9 @@
>
<el-option
v-for="ele in plcBrandList"
- :key="ele.name"
+ :key="ele.purchaseTypeId"
:label="ele.name"
- :value="ele.ID"
+ :value="ele.id"
></el-option>
</el-select>
<i
@@ -62,43 +77,31 @@
v-model="editConfig.infomation.supplierName"
:fetch-suggestions="
(queryString, callback) => {
- querySearchAsync(queryString, callback, 'supplier');
+ querySearchAsync(queryString, callback, 'supplier')
}
"
value-key="name"
placeholder="璇烽�夋嫨"
@select="handleSelectClient('client', $event)"
></el-autocomplete>
- <div
- v-if="!editConfig.isDisabled"
- class="common-select-btn"
- @click="selClientClick('client')"
- >
+ <div v-if="!editConfig.isDisabled" class="common-select-btn" @click="selClientClick('client')">
<i class="el-icon-circle-plus-outline" title="閫夋嫨"></i>
</div>
<div
- v-if="
- editConfig.infomation.supplierName &&
- editConfig.infomation.supplierName.length > 0
- "
+ v-if="editConfig.infomation.supplierName && editConfig.infomation.supplierName.length > 0"
class="common-select-btn"
@click="clearupClient('client')"
>
- <i class="el-icon-remove-outline"
- v-if="!editConfig.isDisabled" title="娓呴櫎"></i>
+ <i class="el-icon-remove-outline" v-if="!editConfig.isDisabled" title="娓呴櫎"></i>
</div>
</div>
</el-form-item>
</el-col>
- <el-col :span="12">
+ <!-- <el-col :span="12">
<el-form-item label="鍗曟嵁鏉ユ簮" prop="orderSource">
- <el-input
- v-model="editConfig.infomation.orderSource"
- disabled
- placeholder="璇峰~鍐�"
- ></el-input>
+ <el-input v-model="editConfig.infomation.orderSource" disabled placeholder="璇峰~鍐�"></el-input>
</el-form-item>
- </el-col>
+ </el-col> -->
<el-col :span="12">
<el-form-item label="閲囪喘鍗曞悕绉�" prop="name">
<el-input
@@ -141,6 +144,7 @@
clearable
placeholder="閫夋嫨鏃ユ湡"
value-format="yyyy-MM-dd"
+ :picker-options="pickerOptionsBefore"
>
</el-date-picker>
</el-form-item>
@@ -155,8 +159,57 @@
clearable
placeholder="閫夋嫨鏃ユ湡"
value-format="yyyy-MM-dd"
+ :picker-options="pickerOptions"
>
</el-date-picker>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鏀惰揣浠撳簱" prop="warehouse">
+ <el-select
+ placeholder="璇烽�夋嫨鏀惰揣浠撳簱"
+ v-model="editConfig.infomation.warehouse"
+ clearable
+ style="width: calc(100% - 0px)"
+ :disabled="editConfig.isDisabled"
+ >
+ <el-option
+ v-for="(ele, index) in receiveWhouseList"
+ :key="index"
+ :label="ele.name"
+ :value="ele.name"
+ ></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鍦板潃" prop="warehouseAddress">
+ <el-input
+ :disabled="editConfig.isDisabled"
+ v-model="editConfig.infomation.warehouseAddress"
+ placeholder="璇峰~鍐�"
+ clearable
+ ></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鎺ユ敹浜�" prop="principal">
+ <el-input
+ :disabled="editConfig.isDisabled"
+ v-model="editConfig.infomation.principal"
+ placeholder="璇峰~鍐�"
+ clearable
+ ></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鏉ユ簮鍗曟嵁" prop="sourceOrder">
+ <el-input
+ :disabled="editConfig.isDisabled"
+ v-model="editConfig.infomation.sourceOrder"
+ placeholder="璇峰~鍐�"
+ clearable
+ ></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
@@ -177,14 +230,17 @@
<div class="basic-info-title" style="display: flex">浜у搧淇℃伅</div>
<div class="product-view">
<CommonFormTableView
- :detailEnter=editCommonConfig.detailEnter
+ ref="tableRef"
+ :detailEnter="editCommonConfig.detailEnter"
:show-summary="showSummary"
:recalculateShow="false"
+ :addTypeIdMultiple="true"
:product-table-list="productTableList"
sign="purchase"
@inputContent="inputContent"
@getSummaries="getSummaries"
@addProductClick="addProductClick"
+ @getSelectArray="getSelectArray"
@emptyProductClick="emptyProductClick"
@clearupProduct="clearupProduct"
@rowClick="rowClick"
@@ -281,226 +337,245 @@
</template>
<script>
-import CommonFormTableView from "@/components/makepager/CommonFormTableView";
-import BomDialog from "@/components/makepager/BomDialog";
+import CommonFormTableView from "@/components/makepager/CommonFormTableView"
+import BomDialog from "@/components/makepager/BomDialog"
import { getProductList } from "@/api/productManage/product"
-
import {
addPurchase,
updatePurchase,
savePurchaseType,
getPurchaseType,
-} from "@/api/purchaseManage/purchase";
-
-import SelectSupplierDialog from "@/views/purchaseManage/purchase/components/SelectSupplierDialog";
+ getWarehouseInfo
+} from "@/api/purchaseManage/purchase"
+import SelectSupplierDialog from "@/views/purchaseManage/purchase/components/SelectSupplierDialog"
// import { formToJSON } from "axios";
+import codeMixin from "@/components/mixin/codeMixin"
+
export default {
name: "QuotationDialog",
- components: { SelectSupplierDialog, CommonFormTableView,BomDialog },
+ components: { SelectSupplierDialog, CommonFormTableView, BomDialog },
+ mixins: [codeMixin],
props: {
editCommonConfig: {
type: Object,
default: () => {
return {
- detailEnter:true,
+ detailEnter: true,
visible: false,
- title: "鍒涘缓",
- infomation: {},
- };
- },
- },
+ title: "鏂板缓",
+ infomation: {}
+ }
+ }
+ }
},
data() {
return {
editConfig: this.editCommonConfig,
rules: {
- purchaseTypeId:[{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
- supplierName: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
+ purchaseTypeId: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
+ supplierName: [{ required: true, message: "璇烽�夋嫨渚涘簲鍟嗗悕绉�", trigger: "change" }],
phone: [
{
required: false,
message: "璇峰~鍐�",
- trigger: "change",
+ trigger: "change"
},
- { validator: this.validatorPhone, trigger: "change" },
+ { validator: this.validatorPhone, trigger: "change" }
],
wholeDiscount: [
{
required: false,
message: "璇峰~鍐�0-100鐨勬暟瀛�",
- trigger: "change",
+ trigger: "change"
},
- { validator: this.validatorNum, trigger: "change" },
+ { validator: this.validatorNum, trigger: "change" }
],
priceAdjustment: [
{
required: false,
message: "璇峰~鍐�",
- trigger: "change",
+ trigger: "change"
},
- { validator: this.validatorNumThree, trigger: "change" },
+ { validator: this.validatorNumThree, trigger: "change" }
],
+ number: [{ required: true, validator: this.validateCheckCode, trigger: ["change", "blur"] }],
+ warehouse: [{ required: true, message: "璇烽�夋嫨鏀惰揣浠撳簱", trigger: "change" }],
+ signingDate: [{ required: true, message: "璇烽�夋嫨绛剧害鏃ユ湡", trigger: "change" }],
+ deliveryDate: [{ required: true, message: "璇烽�夋嫨浜や粯鏃ユ湡", trigger: "change" }],
},
productTableList: {},
showSummary: {
show: true,
total: false,
sumProp: ["price", "total"],
- multiply:['amount','price'],
- titleProp: [
- "缂栧彿",
- "浜у搧鍚嶇О",
- "浜у搧缂栧彿",
- "璁¢噺鍗曚綅",
- "瑙勬牸鍨嬪彿",
- "閲囪喘鍗曚环",
- "鎻忚堪",
- ],
+ multiply: ["amount", "price"],
+ titleProp: ["缂栧彿", "浜у搧鍚嶇О", "浜у搧缂栧彿", "璁¢噺鍗曚綅", "瑙勬牸", "鍨嬪彿", "閲囪喘鍗曚环", "鎻忚堪"],
mergeNumber: 4,
- totalName:'灏忚'
+ totalName: "灏忚"
},
editSelectSupplierConfig: {
editVisible: false,
title: "",
- infomation: {},
+ infomation: {}
},
supplierId: this.editCommonConfig.infomation.supplierId,
tableData: [],
productIndex: 0,
- productId:'',
+ productId: "",
isNoProduct: true,
clientList: [],
- plcBrandList:[],
- editRow:{
- isDefault:'pin'
+ plcBrandList: [],
+ editRow: {
+ isDefault: "pin"
},
- total:0,
- totalTwo:0,
- productListIdx:0,
- lacks:[],
- };
+ total: 0,
+ totalTwo: 0,
+ productListIdx: 0,
+ lacks: [],
+ pickerOptions: {
+ disabledDate(time) {
+ return time.getTime() < Date.now() - 8.64e7
+ }
+ },
+ pickerOptionsBefore: {
+ disabledDate(time) {
+ return time.getTime() > Date.now()
+ }
+ },
+ receiveWhouseList: [] // 鏀惰揣浠撳簱鍒楄〃
+ }
},
created() {
- this.handleGetBomKindDictList();
+ this.handleGetBomKindDictList()
+ this.getWarehouseInfo()
this.$store.dispatch("getSupplier")
+ this.formInfo()
},
computed: {
supplierList() {
return this.$store.state.getSupplierName.supplierList
}
},
- watch:{
- 'editCommonConfig.visible':{
- immediate:true,
- handler:function(){
-
- this.handleGetBomKindDictList(true);
+ watch: {
+ "editCommonConfig.visible": {
+ immediate: true,
+ handler: function () {
+ this.handleGetBomKindDictList(true)
}
}
},
methods: {
+ formInfo() {
+ this.objCode.type = "閲囪喘鍗曠紪鐮�"
+ this.objCode.codeStandID = ""
+ if (this.editConfig.infomation.codeStandardID) {
+ this.objCode.codeStandID = this.editConfig.infomation.codeStandardID
+ }
+ this.getRCodeStandardList()
+ },
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{
+ 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{
+ }
+ } 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{
+ 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{
+ } else {
callback()
- }
+ }
},
// PLC閰嶇疆璁剧疆
handleShow() {
- this.handleGetBomKindDictList();
- this.$refs.editDialog.editDialogVisible = true;
+ this.handleGetBomKindDictList()
+ this.$refs.editDialog.editDialogVisible = true
},
// PLC閰嶇疆
handleGetBomKindDictList(val) {
getPurchaseType().then((res) => {
- this.plcBrandList = res.data;
+ 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;
+ : this.plcBrandList[i].id
+ this.$set(this.editConfig.infomation, "purchaseTypeId", this.editConfig.infomation.purchaseTypeId)
+ break
}
}
}
- });
+ })
},
handleConfirmSave(data) {
- console.log(data,'data')
- data.forEach(ele=>{
+ console.log(data, "data")
+ data.forEach((ele) => {
delete ele.created_at
})
- savePurchaseType(data).then((res) => {
- if (res.code === 200) {
+ 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: "success",
- });
- this.$refs.editDialog.editDialogVisible = false;
- this.handleGetBomKindDictList(true);
+ message: "鎿嶄綔澶辫触锛�",
+ type: "warning"
+ })
}
- },(err)=>{
- console.error(err)
- this.$message({
- message: "鎿嶄綔澶辫触锛�",
- type: "warning",
- });
- });
+ )
},
validatorPhone(rule, value, callback) {
if (value) {
if (value == undefined || value == null) {
- callback(new Error("璇疯緭鍏�"));
+ callback(new Error("璇疯緭鍏�"))
} else {
if (value.length != 11) {
- callback(new Error("闀垮害鍦�11涓瓧绗︼紒"));
+ callback(new Error("闀垮害鍦�11涓瓧绗︼紒"))
} else {
- var reg =
- /^1(3\d|4[5-9]|5[0-35-9]|6[2567]|7[0-8]|8\d|9[0-35-9])\d{8}$/;
+ var reg = /^1(3\d|4[5-9]|5[0-35-9]|6[2567]|7[0-8]|8\d|9[0-35-9])\d{8}$/
if (!reg.test(value)) {
- callback(new Error("璇峰~鍐欐纭殑鑱旂郴鐢佃瘽锛�"));
+ callback(new Error("璇峰~鍐欐纭殑鑱旂郴鐢佃瘽锛�"))
} else {
- callback();
+ callback()
}
}
}
} else {
- callback();
+ callback()
}
},
// 淇濆瓨
@@ -509,237 +584,267 @@
if (valid) {
for (let i = 0; i < this.tableData.length; i++) {
if (this.tableData[i].name.length === 0) {
- this.isNoProduct = true;
- break;
+ this.isNoProduct = true
+ break
} else {
- this.isNoProduct = false;
+ this.isNoProduct = false
}
}
if (this.isNoProduct) {
- this.$message.error("浜у搧鍚嶇О涓嶈兘涓虹┖");
+ this.$message.error("浜у搧鍚嶇О涓嶈兘涓虹┖")
} else {
- const params = this.saveParams();
+ const params = this.saveParams()
//鏂板缓
- if (this.editConfig.title === "鍒涘缓") {
- this.tableData.forEach((item)=>{
- if(this.productTableList.tableProductList.map(obj => obj.number).includes(item.number)) {
- console.log(`${item.name} 鍦ㄦ暟缁勪腑瀛樺湪`);
+ if (this.editConfig.title === "鏂板缓") {
+ this.lacks = []
+ this.tableData.forEach((item) => {
+ if (this.productTableList.tableProductList.map((obj) => obj.number).includes(item.number)) {
+ console.log(`${item.name} 鍦ㄦ暟缁勪腑瀛樺湪`)
} else {
this.lacks.push(item.name)
}
})
- if(this.lacks.length>0){
- this.$confirm(`褰撳墠渚涘簲鍟嗕笉鑳芥彁渚涙偍閫夋嫨鐨勪骇鍝�:${this.lacks}, 鏄惁缁х画鍒涘缓閲囪喘鍗�?`, '鎻愮ず', {
- confirmButtonText: '纭畾',
- cancelButtonText: '鍙栨秷',
- type: 'warning'
- }).then(() => {
- console.log("纭畾鍒涘缓")
- //鍒涘缓閲囪喘鍗�
- addPurchase(params).then((res) => {
- this.editConfig.visible = false;
- if (res.code === 200) {
- this.$message.success("鍒涘缓鎴愬姛");
- this.$parent.getData();
- }
- });
- }).catch(() => {
- console.log("鍙栨秷鍒涘缓")
- });
- }else{
+ if (this.lacks.length > 0) {
+ this.$confirm(`褰撳墠渚涘簲鍟嗕笉鑳芥彁渚涙偍閫夋嫨鐨勪骇鍝�:${this.lacks}, 鏄惁缁х画鍒涘缓閲囪喘鍗�?`, "鎻愮ず", {
+ confirmButtonText: "纭畾",
+ cancelButtonText: "鍙栨秷",
+ type: "warning"
+ })
+ .then(() => {
+ console.log("纭畾鍒涘缓")
+ //鍒涘缓閲囪喘鍗�
+ addPurchase(params).then((res) => {
+ this.editConfig.visible = false
+ if (res.code === 200) {
+ this.$message.success("鍒涘缓鎴愬姛")
+ this.$parent.getData()
+ }
+ })
+ })
+ .catch(() => {
+ console.log("鍙栨秷鍒涘缓")
+ })
+ } else {
addPurchase(params).then((res) => {
- this.editConfig.visible = false;
+ this.editConfig.visible = false
if (res.code === 200) {
- this.$message.success("鍒涘缓鎴愬姛");
- this.$parent.getData();
+ this.$message.success("鍒涘缓鎴愬姛")
+ this.$parent.getData()
+ } else {
+ this.$message.error(res.msg)
}
- });
+ })
}
} else {
// 缂栬緫
getProductList({
- supplierId:this.editConfig.infomation.supplierId,
- page:1,
- pageSize:100
- }).then((res)=>{
- if(res.code===200){
+ supplierId: this.editConfig.infomation.supplierId,
+ page: 1,
+ pageSize: 100
+ }).then((res) => {
+ if (res.code === 200) {
+ this.lacks = []
// 缂栬緫鍓嶅厛鐪嬬湅褰撳墠渚涘簲鍟嗗搴旂殑浜у搧鍒楄〃
this.productTableList.tableProductList = res.data.list
//褰撳墠浜у搧鏄惁鍦ㄥ綋鍓嶄緵搴斿晢涓嬪瓨鍦�
- this.tableData.forEach((item)=>{
- if(this.productTableList.tableProductList.map(obj => obj.number).includes(item.number)) {
- console.log(`${item.name} 鍦ㄦ暟缁勪腑瀛樺湪`);
+ this.tableData.forEach((item) => {
+ if (this.productTableList.tableProductList.map((obj) => obj.number).includes(item.number)) {
+ console.log(`${item.name} 鍦ㄦ暟缁勪腑瀛樺湪`)
} else {
this.lacks.push(item.name)
}
})
// 涓嶅瓨鍦ㄧ殑浜у搧淇℃伅
- if(this.lacks.length>0){
- this.$confirm(`褰撳墠渚涘簲鍟嗕笉鑳芥彁渚涙偍閫夋嫨鐨勪骇鍝�:${this.lacks}, 鏄惁缁х画鏇存柊閲囪喘鍗�?`, '鎻愮ず', {
- confirmButtonText: '纭畾',
- cancelButtonText: '鍙栨秷',
- type: 'warning'
- }).then(() => {
- console.log("纭畾鏇存柊")
- //鏇存柊閲囪喘鍗�
- updatePurchase(params).then((res) => {
- this.editConfig.visible = false;
- if (res.code === 200) {
- this.$message.success("鏇存柊鎴愬姛");
- this.$parent.getData();
- }
- });
- }).catch(() => {
- console.log("鍙栨秷鏇存柊")
- });
- }else {
+ if (this.lacks.length > 0) {
+ this.$confirm(`褰撳墠渚涘簲鍟嗕笉鑳芥彁渚涙偍閫夋嫨鐨勪骇鍝�:${this.lacks}, 鏄惁缁х画鏇存柊閲囪喘鍗�?`, "鎻愮ず", {
+ confirmButtonText: "纭畾",
+ cancelButtonText: "鍙栨秷",
+ type: "warning"
+ })
+ .then(() => {
+ console.log("纭畾鏇存柊")
+ //鏇存柊閲囪喘鍗�
+ updatePurchase(params).then((res) => {
+ this.editConfig.visible = false
+ if (res.code === 200) {
+ this.$message.success("鏇存柊鎴愬姛")
+ this.$parent.getData()
+ }
+ })
+ })
+ .catch(() => {
+ console.log("鍙栨秷鏇存柊")
+ })
+ } else {
updatePurchase(params).then((res) => {
- this.editConfig.visible = false;
+ this.editConfig.visible = false
if (res.code === 200) {
- this.$message.success("鏇存柊鎴愬姛");
- this.$parent.getData();
+ this.$message.success("鏇存柊鎴愬姛")
+ this.$parent.getData()
}
- });
+ })
}
}
})
-
}
}
} else {
- console.log("error submit");
- return false;
+ console.log("error submit")
+ return false
}
- });
+ })
},
saveParams() {
- 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 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:data.supplierId,
- signingDate:data.signingDate||'',
- remark:data.remark,
- orderSource:data.orderSource||'',
- purchaseTypeId:data.purchaseTypeId||0,
- phone:data.phone||'',
- name:data.name||'',
- deliveryDate:data.deliveryDate||'',
- 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,
- status:data.status,
- quantity:data.quantity, // 閲囪喘鏁伴噺
+ productList: this.tableData,
+ purchase: {
+ number: data.number || "",
+ supplierId: data.supplierId,
+ signingDate: data.signingDate || "",
+ remark: data.remark,
+ orderSource: data.orderSource || "",
+ purchaseTypeId: data.purchaseTypeId || 0,
+ phone: data.phone || "",
+ name: data.name || "",
+ deliveryDate: data.deliveryDate || "",
+ 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,
+ status: data.status,
+ quantity: data.quantity, // 閲囪喘鏁伴噺
+ warehouse: data.warehouse || "", // 鏀惰揣浠撳簱
+ warehouseAddress: data.warehouseAddress || "", // 鏀惰揣浠撳簱鍦板潃
+ principal: data.principal || "", // 浠撳簱璐熻矗浜�
+ sourceOrder: data.sourceOrder || "" // 鏉ユ簮鍗曟嵁
}
- };
- if(data.ID){
- params.purchase.id=data.ID
}
- return params;
+ if (data.id) {
+ params.purchase.id = data.id
+ }
+ return params
},
handleClose() {
- this.editConfig.visible = false;
+ this.editConfig.visible = false
},
// 閫夋嫨瀹㈡埛鐩稿叧鏂规硶
querySearchAsync(queryString, cb, value) {
- this.productTableList.tableProductList=[]
- var restaurants = [];
+ this.productTableList.tableProductList = []
+ var restaurants = []
if (value === "supplier") {
- restaurants = this.supplierList;
- }
- var results = queryString
- ? restaurants.filter(this.createStateFilter(queryString))
- : restaurants;
- cb(results);
+ restaurants = this.supplierList
+ }
+ var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants
+ cb(results)
},
createStateFilter(queryString) {
return (state) => {
- return (
- state.name.toLowerCase().indexOf(queryString.toLowerCase()) === 0
- );
- };
+ return state.name.toLowerCase().indexOf(queryString.toLowerCase()) === 0
+ }
},
// 閫夋嫨渚涘簲鍟�
async handleSelectClient(value, item) {
- this.productTableList.supplierId=item.ID
+ this.$refs.tableRef.supplierId=item.id
+ this.productTableList.supplierId = item.id
if (value === "client") {
- this.supplierId = item.id;
- this.editConfig.infomation.supplierId=item.ID
+ this.supplierId = item.id
+ this.editConfig.infomation.supplierId = item.id
}
await getProductList({
- supplierId:item.ID,
- page:1,
- pageSize:100
- }).then((res)=>{
- if(res.code===200){
+ supplierId: item.id,
+ page: 1,
+ pageSize: 100
+ }).then((res) => {
+ if (res.code === 200) {
this.productTableList.tableProductList = res.data.list
- console.log(this.productTableList.tableProductList,"pop")
+ this.$refs.tableRef.productList=res.data.list
+ console.log(this.productTableList.tableProductList, "pop")
}
})
},
selClientClick() {
- this.editSelectSupplierConfig.editVisible = true;
+ this.editSelectSupplierConfig.editVisible = true
},
- selClient(row) {
- this.$set(this.editConfig.infomation,'supplierName',row.name)
- this.editConfig.infomation.contact = row.contact;
- this.editConfig.infomation.phone = row.phone;
- this.editConfig.infomation.supplierId = row.ID;
+ async selClient(row) {
+ this.$refs.tableRef.supplierId=row.id
+ await getProductList({
+ supplierId: row.id,
+ page: 1,
+ pageSize: 100
+ }).then((res) => {
+ if (res.code === 200) {
+ this.$refs.tableRef.productList=res.data.list
+ this.productTableList.tableProductList = res.data.list
+ }
+ })
+ this.$set(this.editConfig.infomation, "supplierName", row.name)
+ this.editConfig.infomation.contact = row.contact
+ this.editConfig.infomation.phone = row.phone
+ this.editConfig.infomation.supplierId = row.id
},
// 娓呴櫎宸查�夋嫨鐢ㄦ埛
- clearupClient(value) {
+ async clearupClient(value) {
if (value == "client") {
- this.$set(this.editConfig.infomation, "supplierName", "");
- this.supplierId = null;
- this.$forceUpdate();
+ this.$refs.tableRef.supplierId=null
+ this.$set(this.editConfig.infomation, "supplierName", "")
+ this.supplierId = null
+ this.$forceUpdate()
+ await getProductList({
+ page: 1,
+ pageSize: 100
+ }).then((res) => {
+ if (res.code === 200) {
+ this.productTableList.tableProductList = res.data.list
+ this.$refs.tableRef.productList=res.data.list
+ console.log(this.productTableList.tableProductList, "pop")
+ }
+ })
}
},
setTableForm() {
- if (
- !this.editConfig.infomation.ID ||
- this.editConfig.infomation.productList.length === 0
- ) {
+ if (!this.editConfig.infomation.id || this.editConfig.infomation.productList.length === 0) {
this.tableData = [
{
- purchaseId:0,
- productId: this.productId,
- productIndex:this.productIndex,
- amount: 0,
+ purchaseId: 0,
+ productId: Number(this.productId),
+ productIndex: this.productIndex,
+ amount: 1,
name: "",
number: "",
price: 0,
total: 0,
- remark:'',
- unit:'',
- purchasePrice:'',
- deliveryTime:"",
- shippingDuration:"",
- specifications:"",
- modelNumber:"",
- },
- ];
+ remark: "",
+ unit: "",
+ purchasePrice: "",
+ deliveryTime: "",
+ shippingDuration: "",
+ specifications: "",
+ modelNumber: ""
+ }
+ ]
} else {
- this.tableData = this.editConfig.infomation.productList;
+ this.tableData = this.editConfig.infomation.productList
// this.tableData.map((item, index) => {
// item.productId = index + 1;
// });
}
this.productTableList = {
- tableProductList:[],
- supplierId:undefined,
+ tableProductList: [],
+ supplierId: undefined,
tableData: this.tableData,
- disabled:this.editConfig.isDisabled,
+ disabled: this.editConfig.isDisabled,
+ isReturn: true,
tableColumn: [
{
label: "浜у搧鍚嶇О",
@@ -747,88 +852,103 @@
min: 180,
productName: true,
isRequird: true,
- disabled:this.editConfig.isDisabled,
+ disabled: this.editConfig.isDisabled
},
- { label: "浜у搧缂栧彿", prop: "number", min: 150,},
+ { label: "浜у搧缂栧彿", prop: "number", min: 150 },
{ label: "璁¢噺鍗曚綅", prop: "unit" },
- { label: "瑙勬牸鍨嬪彿", prop: "specifications",},
- { label: "鏁伴噺", prop: "amount", inputNumber: true,disabled:this.editConfig.isDisabled, },
+ { label: "瑙勬牸", prop: "specifications" },
+ { label: "鍨嬪彿", prop: "modelNumber" },
+ { label: "鏁伴噺", prop: "amount", inputNumber: true, disabled: this.editConfig.isDisabled },
{
label: "閲囪喘鍗曚环",
- prop: "price",
+ prop: "purchasePrice",
inputFloat: true,
isRequird: true,
- disabled:this.editConfig.isDisabled,
+ disabled: this.editConfig.isDisabled
},
- { label: "浠风◣鍚堣", prop: "total", inputFloat: true,disabled:this.editConfig.isDisabled,multiply:true, },
- { label: "鎻忚堪", prop: "remark", input: true,disabled:this.editConfig.isDisabled},
- ],
- };
- this.toal=this.editConfig.infomation.realTotalPrice
-
+ { label: "浠风◣鍚堣", prop: "total", inputFloat: true, disabled: this.editConfig.isDisabled, multiply: true },
+ { label: "鎻忚堪", prop: "remark", input: true, disabled: this.editConfig.isDisabled }
+ ]
+ }
+ this.toal = this.editConfig.infomation.realTotalPrice
},
// 浜у搧鍒楄〃杈撳叆
inputContent(val, prop, row) {
- // this.productId = row.productId;
- this.productIndex=row.productIndex;
- let num=0
+ let num = 0
this.tableData.map((item) => {
- num+=item.amount
- if (item.productIndex === row.productIndex) {
- item[prop] = val;
+ num += item.amount
+ if (item.number === row.number) {
+ item[prop] = val
}
- });
- if(prop==="amount"){
- this.editConfig.infomation.quantity=num
+ })
+ if (prop === "amount") {
+ this.editConfig.infomation.quantity = num
}
},
- getSummaries(total){
- this.totalTwo= JSON.parse(JSON.stringify(total));
- this.total=total;
+ 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
+ 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
+ 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)
+ this.total = this.totalTwo - t + Number(prie)
},
// 浜у搧鏂板
addProductClick() {
- this.productIndex++;
- this.tableData.push({
- productIndex: this.productIndex,
- productId:'',
- id: 0,
- amount: 0,
- desc: "",
- name: "",
- number: "",
- price: 0,
- total: 0,
- });
- this.showSummary.show = true;
+ // this.productIndex++
+ // this.tableData.push({
+ // productIndex: this.productIndex,
+ // productId: "",
+ // id: 0,
+ // amount: 0,
+ // desc: "",
+ // name: "",
+ // number: "",
+ // price: 0,
+ // total: 0
+ // })
+ // this.showSummary.show = true
+ },
+ // 鏂板鏂瑰紡淇敼
+ getSelectArray(val, index) {
+ console.log(val, "ddd99999")
+ if (this.tableData.length == 1 && this.tableData[0].number.length == 0) {
+ this.tableData = []
+ }
+ if (index < this.tableData.length) {
+ this.tableData.splice(index, 1)
+ val.map((item, ind) => {
+ this.tableData.splice(index + ind, 0, item)
+ })
+ } else {
+ this.tableData = this.tableData.concat(val)
+ }
+ this.productTableList.tableData = this.tableData
+ this.showSummary.show = true
},
// 浜у搧娓呯┖
emptyProductClick() {
- this.productIndex = 1;
+ this.productIndex = 1
this.tableData = [
{
- productId: '',
- productIndex:this.productIndex,
+ productId: "",
+ productIndex: this.productIndex,
id: 0,
amount: "0",
desc: "",
@@ -836,26 +956,33 @@
number: "",
price: 0,
total: 0
- },
- ];
- this.productTableList.tableData = this.tableData;
+ }
+ ]
+ this.productTableList.tableData = this.tableData
},
clearupProduct(data) {
- this.tableData = data;
- this.productTableList.tableData = this.tableData;
+ this.tableData = data
+ this.productTableList.tableData = this.tableData
},
//閫夋嫨琛�
- rowClick(row){
- console.log(row,"xuanze")
- this.productListIdx=row.productIndex
+ rowClick(row) {
+ console.log(row, "xuanze")
+ this.productListIdx = row.productIndex
},
//閫変腑浜у搧
- handleProduct(item){
- this.tableData[this.productListIdx].productId=item.ID
- console.log(item,"閫変腑浜у搧",this.tableData)
+ handleProduct(item) {
+ this.tableData[this.productListIdx].productId = Number(item.id)
+ console.log(item, "閫変腑浜у搧", this.tableData)
+ },
+ // 鑾峰彇鏀惰揣浠撳簱鍒楄〃
+ async getWarehouseInfo() {
+ await getWarehouseInfo().then((res) => {
+ console.log(res)
+ this.receiveWhouseList = res.data.info
+ })
}
- },
-};
+ }
+}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
--
Gitblit v1.8.0