From 6365989d130a8f5e222687b7441aa19a8b5eb9d6 Mon Sep 17 00:00:00 2001 From: haoxuan <haoxuan> Date: 星期一, 28 八月 2023 19:57:10 +0800 Subject: [PATCH] 采购单联调 --- src/views/purchaseManage/purchase/components/AddPurchase.vue | 201 +++++++++++++++++++++---------------------------- 1 files changed, 87 insertions(+), 114 deletions(-) diff --git a/src/views/purchaseManage/purchase/components/AddPurchase.vue b/src/views/purchaseManage/purchase/components/AddPurchase.vue index c833e6e..8211eb2 100644 --- a/src/views/purchaseManage/purchase/components/AddPurchase.vue +++ b/src/views/purchaseManage/purchase/components/AddPurchase.vue @@ -3,7 +3,7 @@ <el-dialog :title="editCommonConfig.title + '閲囪喘鍗�'" :visible.sync="editConfig.visible" - :width="dialogWidth" + width="50%" :before-close="handleClose" append-to-body custom-class="iframe-dialog" @@ -26,12 +26,12 @@ <el-col :span="12"> <el-form-item label="閲囪喘绫诲瀷" - prop="brand" + prop="purchaseTypeId" class="form-item float_left" > <el-select placeholder="璇烽�夋嫨閲囪喘绫诲瀷" - v-model="editConfig.infomation.client_name" + v-model="editConfig.infomation.purchaseTypeId" clearable style="width: calc(100% - 30px)" > @@ -51,11 +51,11 @@ </el-col> <el-col :span="12"> - <el-form-item label="渚涘簲鍟嗗悕绉�" prop="client_name"> + <el-form-item label="渚涘簲鍟嗗悕绉�" prop="supplierName"> <div class="custom-name"> <el-autocomplete style="width: calc(100% - 40px)" - v-model="editConfig.infomation.client_name" + v-model="editConfig.infomation.supplierName" :fetch-suggestions=" (queryString, callback) => { querySearchAsync(queryString, callback, 'client'); @@ -73,8 +73,8 @@ </div> <div v-if=" - editConfig.infomation.client_name && - editConfig.infomation.client_name.length > 0 + editConfig.infomation.supplierName && + editConfig.infomation.supplierName.length > 0 " class="common-select-btn" @click="clearupClient('client')" @@ -88,40 +88,45 @@ <el-form-item label="鍗曟嵁鏉ユ簮" prop="number"> <el-input v-model="editConfig.infomation.number" + disabled placeholder="璇峰~鍐�" ></el-input> </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="閲囪喘鍗曞悕绉�" prop="number"> + <el-form-item label="閲囪喘鍗曞悕绉�" prop="name"> <el-input - v-model="editConfig.infomation.number" + v-model="editConfig.infomation.name" placeholder="璇峰~鍐�" + clearable ></el-input> </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="渚涘簲鍟嗚仈绯讳汉" prop="number"> + <el-form-item label="渚涘簲鍟嗚仈绯讳汉" prop="contact"> <el-input - v-model="editConfig.infomation.number" + v-model="editConfig.infomation.contact" placeholder="璇峰~鍐�" + clearable ></el-input> </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="鑱旂郴鐢佃瘽" prop="contact_phone"> + <el-form-item label="鑱旂郴鐢佃瘽" prop="phone"> <el-input - v-model="editConfig.infomation.contact_phone" + v-model="editConfig.infomation.phone" placeholder="璇峰~鍐�" + clearable ></el-input> </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="绛剧害鏃ユ湡" prop="validity_date"> + <el-form-item label="绛剧害鏃ユ湡" prop="signingDate"> <el-date-picker - v-model="editConfig.infomation.validity_date" + v-model="editConfig.infomation.signingDate" style="width: 100%" type="date" + clearable placeholder="閫夋嫨鏃ユ湡" value-format="yyyy-MM-dd" > @@ -129,11 +134,12 @@ </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="浜や粯鏃ユ湡" prop="validity_date"> + <el-form-item label="浜や粯鏃ユ湡" prop="deliveryDate"> <el-date-picker - v-model="editConfig.infomation.validity_date" + v-model="editConfig.infomation.deliveryDate" style="width: 100%" type="date" + clearable placeholder="閫夋嫨鏃ユ湡" value-format="yyyy-MM-dd" > @@ -141,13 +147,13 @@ </el-form-item> </el-col> <el-col :span="24"> - <el-form-item label="澶囨敞淇℃伅" prop="member_id"> + <el-form-item label="澶囨敞淇℃伅" prop="remark"> <el-input type="textarea" :autosize="{ minRows: 3, maxRows: 4 }" maxlength="500" clearable - v-model="editConfig.infomation.member_id" + v-model="editConfig.infomation.remark" ></el-input> </el-form-item> </el-col> @@ -163,7 +169,6 @@ @inputContent="inputContent" @addProductClick="addProductClick" @emptyProductClick="emptyProductClick" - @recalculateProductClick="recalculateProductClick" @clearupProduct="clearupProduct" /> </div> @@ -230,10 +235,10 @@ >鍙栨秷</el-button > </div> - <!-- 閫夋嫨瀹㈡埛 --> - <SelectClientDialog - v-if="editSelectClientConfig.editVisible" - :edit-common-config="editSelectClientConfig" + <!-- 閫夋嫨渚涘簲鍟嗗悕绉�--> + <SelectSupplierDialog + v-if="editSelectSupplierConfig.editVisible" + :edit-common-config="editSelectSupplierConfig" @selClient="selClient" /> </el-dialog> @@ -250,18 +255,19 @@ <script> import CommonFormTableView from "@/components/makepager/CommonFormTableView"; import BomDialog from "@/components/makepager/BomDialog"; + import { - getAddQuotation, - getUpdateQuotation, - getAllData, + addPurchase, + updatePurchase, } from "@/api/purchaseManage/purchase"; // import { // postGetUnitDictList, // postGetSaveSUnitDict, // } from "@/api/purchaseManage/purchase"; -import SelectClientDialog from "@/views/purchaseManage/purchase/components/SelectClientDialog"; +import SelectSupplierDialog from "@/views/purchaseManage/purchase/components/SelectSupplierDialog"; export default { name: "QuotationDialog", + components: { SelectSupplierDialog, CommonFormTableView,BomDialog }, props: { editCommonConfig: { type: Object, @@ -274,46 +280,25 @@ }, }, }, - components: { SelectClientDialog, CommonFormTableView,BomDialog }, - computed: { - searchCommonHeight() { - return this.$refs.searchCommonView.offsetHeight; - }, - contactNamelist() { - return this.$store.state.getClientName.contactNamelist; - }, - }, data() { return { - dialogWidth: "50%", editConfig: this.editCommonConfig, rules: { - client_id: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }], - number: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }], - quotation_status_id: [ - { required: true, message: "璇烽�夋嫨", trigger: "change" }, - ], - member_id: [ - { required: true, message: "璇烽�夋嫨璐熻矗浜�", trigger: "change" }, - ], - contact_phone: [ + supplierName: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }], + phone: [ { - required: true, + required: false, message: "璇峰~鍐�", trigger: "change", }, { validator: this.validatorPhone, trigger: "change" }, ], }, - memberOptions: [], - quotationStatusOptions: [{ id: 1, name: "涓嶇煡閬�" }], // 鎶ヤ环鍗曠姸鎬� - currencyOptions: [{ id: 1, name: "浜烘皯甯�" }], // 甯佺 - approvalWorkflowOptions: [], // 瀹℃壒娴佺▼ productTableList: {}, showSummary: { show: true, total: false, - sumProp: ["Amount", "total"], + sumProp: ["price", "total"], titleProp: [ "缂栧彿", "浜у搧鍚嶇О", @@ -325,14 +310,12 @@ ], mergeNumber: 4, }, - editSelectClientConfig: { + editSelectSupplierConfig: { editVisible: false, title: "", infomation: {}, }, - clientId: this.editCommonConfig.infomation.client_id, - contactId: this.editCommonConfig.infomation.contact_id, - saleChanceId: this.editCommonConfig.infomation.sale_chance_id, + supplierId: this.editCommonConfig.infomation.supplierId, tableData: [], productId: 1, isNoProduct: true, @@ -342,7 +325,16 @@ }, created() { this.setTableForm(); - this.getCommonData(); + }, + computed: { + }, + watch:{ + 'editCommonConfig.visible':{ + immediate:true, + handler:function(){ + this.setTableForm(); + } + } }, methods: { // PLC閰嶇疆璁剧疆 @@ -402,17 +394,6 @@ callback(); } }, - getCommonData() { - getAllData() - .then((res) => { - this.memberOptions = res.data.member; - this.quotationStatusOptions = res.data.quotationStatus; - }) - .catch((err) => { - console.log(err); - }); - }, - // 淇濆瓨 saveClick(formName) { this.$refs[formName].validate((valid) => { @@ -431,7 +412,7 @@ const params = this.saveParams(); console.log(params); if (this.editConfig.title === "鍒涘缓") { - getAddQuotation(params).then((res) => { + addPurchase(params).then((res) => { console.log(res); this.editConfig.visible = false; if (res.code === 200) { @@ -440,7 +421,7 @@ } }); } else { - getUpdateQuotation(params).then((res) => { + updatePurchase(params).then((res) => { this.editConfig.visible = false; if (res.code === 200) { this.$message.success("缂栬緫鎴愬姛"); @@ -456,20 +437,24 @@ }); }, saveParams() { - let data = this.editConfig.infomation; + debugger + let data =JSON.parse(JSON.stringify(this.editConfig.infomation)); let params = { - id: this.editConfig.title === "鍒涘缓" ? 0 : data.id, - client_id: this.clientId || 0, - conditions: data.conditions || "", - contact_id: this.contactId || 0, - file: data.file || "", - member_id: data.member_id || 0, - number: data.number || "", - quotation_status_id: data.quotation_status_id || 0, - sale_chance_id: this.saleChanceId || 0, - validity_date: data.validity_date || "", - products: this.tableData, + productList:this.tableData, + purchase:{ + supplierId:this.supplierId||0, + signingDate:data.signingDate||'', + remark:data.remark, + purchaseTypeId:this.purchaseTypeId||0, + phone:data.phone||'', + name:data.name||'', + deliveryDate:data.deliveryDate||'', + contact:data.contact + } }; + if(data.ID){ + params.purchase.id=data.ID + } return params; }, handleClose() { @@ -480,9 +465,7 @@ var restaurants = []; if (value === "client") { restaurants = this.clientList; - } else if (value === "contact") { - restaurants = this.contactNamelist; - } + } var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants; @@ -498,37 +481,30 @@ handleSelectClient(value, item) { console.log(value); if (value === "client") { - this.clientId = item.id; - } else if (value === "chance") { - this.saleChanceId = item.id; - } else { - this.contactId = item.id; + this.supplierId = item.id; } }, selClientClick() { - this.editSelectClientConfig.editVisible = true; + this.editSelectSupplierConfig.editVisible = true; }, selClient(row) { - this.editConfig.infomation.client_name = row.name; - this.clientId = row.id; + this.$set(this.editConfig.infomation,'supplierName',row.name) + this.editConfig.infomation.contact = row.contact; + this.editConfig.infomation.phone = row.phone; + this.supplierId = row.ID; }, // 娓呴櫎宸查�夋嫨鐢ㄦ埛 clearupClient(value) { if (value == "client") { - this.editConfig.infomation.client_name = ""; - this.$set(this.editConfig.infomation, "client_name", ""); - this.clientId = null; + this.$set(this.editConfig.infomation, "supplierName", ""); + this.supplierId = null; this.$forceUpdate(); } }, - // 娣诲姞闄勪欢 - addAnnexClick() {}, - // 璁剧疆鍏佽涓婁紶鏂囦欢鏍煎紡 - setFormatClick() {}, setTableForm() { if ( - this.editConfig.title === "鍒涘缓" || - this.editConfig.infomation.products.length === 0 + !this.editConfig.infomation.ID || + this.editConfig.infomation.productList.length === 0 ) { this.tableData = [ { @@ -543,15 +519,14 @@ }, ]; } else { - this.tableData = this.editConfig.infomation.products; - this.tableData.map((item, index) => { - item.productId = index + 1; - }); + this.tableData = this.editConfig.infomation.productList; + // this.tableData.map((item, index) => { + // item.productId = index + 1; + // }); } this.productTableList = { tableData: this.tableData, tableColumn: [ - { label: "缂栧彿", prop: "productId", width: 40 }, { label: "浜у搧鍚嶇О", prop: "name", @@ -559,8 +534,8 @@ isRequird: true, }, { label: "浜у搧缂栧彿", prop: "number" }, - { label: "璁¢噺鍗曚綅", prop: "number" }, - { label: "瑙勬牸鍨嬪彿", prop: "number" }, + { label: "璁¢噺鍗曚綅", prop: "unit" }, + { label: "瑙勬牸鍨嬪彿", prop: "specifications" }, { label: "鏁伴噺", prop: "amount", inputNumber: true, isRequird: true }, { label: "閲囪喘鍗曚环", @@ -569,7 +544,7 @@ isRequird: true, }, { label: "浠风◣鍚堣", prop: "total", inputFloat: true }, - { label: "鎻忚堪", prop: "name", input: true }, + { label: "鎻忚堪", prop: "remark", input: true }, ], }; }, @@ -609,13 +584,11 @@ name: "", number: "", price: 0, - total: 0, + total: 0 }, ]; this.productTableList.tableData = this.tableData; }, - // 浜у搧閲嶇畻 - recalculateProductClick() {}, clearupProduct(data) { this.tableData = data; this.productTableList.tableData = this.tableData; -- Gitblit v1.8.0