From f9512a0896752ef3e4c17a05c871f315041be111 Mon Sep 17 00:00:00 2001
From: zuozhengqing <a13193816592@163.com>
Date: 星期一, 27 十一月 2023 11:24:37 +0800
Subject: [PATCH] 采购订单按钮显隐
---
src/views/purchaseManage/purchase/components/AddPurchase.vue | 38 +++++-
src/views/purchaseManage/purchase/index.vue | 20 +++
src/components/makepager/CommonFormTableView.vue | 198 +++++++++++++-------------------------
3 files changed, 116 insertions(+), 140 deletions(-)
diff --git a/src/components/makepager/CommonFormTableView.vue b/src/components/makepager/CommonFormTableView.vue
index 4b10151..aafa359 100644
--- a/src/components/makepager/CommonFormTableView.vue
+++ b/src/components/makepager/CommonFormTableView.vue
@@ -1,29 +1,18 @@
<template>
<div class="page-view">
<el-form ref="form" :model="tableList" :show-message="false" label-position="right">
- <el-table
- :data="tableList.tableData"
- style="width: 100%"
- :show-summary="showSummary.show"
- :summary-method="getSummaries"
- :span-method="arraySpanMethod"
+ <el-table
+ :data="tableList.tableData"
+ style="width: 100%"
+ :show-summary="showSummary.show"
+ :summary-method="getSummaries"
+ :span-method="arraySpanMethod"
+ @row-click="rowClick"
>
- <el-table-column
- type="index"
- v-if="tableList.tableColumn && tableList.tableColumn.length > 0"
- label="缂栧彿"
- width="50"
- align="center"
- ></el-table-column>
- <el-table-column
- v-for="(item, i) in tableList.tableColumn"
- :key="i"
- :prop="item.prop"
- :label="item.label"
- :width="item.width"
- :min-width="item.min"
- align="center"
- >
+ <el-table-column type="index" v-if="tableList.tableColumn && tableList.tableColumn.length > 0" label="缂栧彿"
+ width="50" align="center"></el-table-column>
+ <el-table-column v-for="(item, i) in tableList.tableColumn" :key="i" :prop="item.prop" :label="item.label"
+ :width="item.width" :min-width="item.min" align="center">
<!-- 琛ㄥご鏍峰紡 -->
<template slot="header">
<span v-if="item.isRequird" style="color: #f56c6c">*</span>
@@ -32,121 +21,64 @@
<!-- column鏍峰紡 -->
<template slot-scope="scope">
<!-- <template v-if="!detailEnter"> -->
- <el-form-item
- v-if="item.input"
- label=" "
- :prop="'tableData.' + scope.$index + '.' + item.prop"
- :rules="[{ required: item.isRequird ? true : false, message: '杈撳叆涓嶈兘涓虹┖' }]"
- >
- <el-input
- :disabled="item.disabled"
- v-model.trim="scope.row[item.prop]"
- maxlength="50"
- size="mini"
- @change="
- (val) => {
- commonInputChange(val, item.prop, scope.row)
- }
- "
- ></el-input>
+ <el-form-item v-if="item.input" label=" " :prop="'tableData.' + scope.$index + '.' + item.prop"
+ :rules="[{ required: item.isRequird ? true : false, message: '杈撳叆涓嶈兘涓虹┖' }]">
+ <el-input :disabled="item.disabled" v-model.trim="scope.row[item.prop]" maxlength="50" size="mini" @change="(val) => {
+ commonInputChange(val, item.prop, scope.row)
+ }
+ "></el-input>
</el-form-item>
- <el-form-item v-else-if="item.productName" label=" " :prop="'tableData.' + scope.$index + '.' + item.prop">
+ <el-form-item v-else-if="item.productName" label=" " :prop="'tableData.' + scope.$index + '.' + item.prop">
<div class="custom-name">
- <el-autocomplete
- :disabled="item.disabled"
- v-model="scope.row[item.prop]"
- :fetch-suggestions="querySearchAsync"
- value-key="name"
- style="width: calc(100% - 70px)"
- size="mini"
- @select="
- (val) => {
- handleSelectClient(val, item.prop, scope.row)
- }
- "
- ></el-autocomplete>
+ <el-autocomplete :disabled="item.disabled" v-model="scope.row[item.prop]"
+ :fetch-suggestions="querySearchAsync" value-key="name" style="width: calc(100% - 70px)" size="mini"
+ @select="(val) => {
+ handleSelectClient(val, item.prop, scope.row)
+ }
+ "></el-autocomplete>
<div v-if="!item.disabled" class="common-select-btn" @click="selClientClick(scope.row, item.prop, scope)">
- <i class="el-icon-circle-plus-outline" title="閫夋嫨"></i>
+ <i class="el-icon-circle-plus-outline" title="閫夋嫨"></i>
</div>
<div v-if="!item.disabled" class="common-select-btn" @click="clearupClient(scope.row, scope)">
<i class="el-icon-remove-outline" title="娓呴櫎"></i>
</div>
- <div class="common-select-btn" v-if="scope.$index != 0||!item.disabled" @click="deleteClient(scope.row, scope)">
+ <div class="common-select-btn" v-if="scope.$index != 0 || !item.disabled"
+ @click="deleteClient(scope.row, scope)">
<i class="el-icon-delete" title="鍒犻櫎"></i>
</div>
</div>
</el-form-item>
- <el-form-item
- v-else-if="item.date"
- label=" "
- :prop="'tableData.' + scope.$index + '.' + item.prop"
- :rules="[{ required: item.isRequird ? true : false, message: '杈撳叆涓嶈兘涓虹┖' }]"
- >
+ <el-form-item v-else-if="item.date" label=" " :prop="'tableData.' + scope.$index + '.' + item.prop"
+ :rules="[{ required: item.isRequird ? true : false, message: '杈撳叆涓嶈兘涓虹┖' }]">
<!-- <el-input v-model.trim="scope.row[item.prop]" maxlength="50" size="mini"></el-input> -->
<el-date-picker v-model="scope.row[item.prop]" type="date" size="mini" style="width: 110px">
</el-date-picker>
</el-form-item>
- <el-form-item
- v-else-if="item.inputNumber"
- label=" "
- :prop="'tableData.' + scope.$index + '.' + item.prop"
- :rules="[{ required: item.isRequird ? true : false, message: '杈撳叆涓嶈兘涓虹┖' }]"
- >
- <el-input-number
- :disabled="item.disabled"
- v-model="scope.row[item.prop]"
- placeholder=""
- :min="0"
- :controls="false"
- size="mini"
- style="width: 100%; margin-right: 5px"
- @change="
- (val) => {
+ <el-form-item v-else-if="item.inputNumber" label=" " :prop="'tableData.' + scope.$index + '.' + item.prop"
+ :rules="[{ required: item.isRequird ? true : false, message: '杈撳叆涓嶈兘涓虹┖' }]">
+ <el-input-number :disabled="item.disabled" v-model="scope.row[item.prop]" placeholder="" :min="0"
+ :controls="false" size="mini" style="width: 100%; margin-right: 5px" @change="(val) => {
+ commonInputChange(val, item.prop, scope.row)
+ }
+ "></el-input-number>
+ </el-form-item>
+ <el-form-item v-else-if="item.inputFloat" label=" " :prop="'tableData.' + scope.$index + '.' + item.prop"
+ :rules="[{ required: item.isRequird ? true : false, message: '杈撳叆涓嶈兘涓虹┖' }]">
+ <!-- 閲囪喘绠$悊 -->
+ <template v-if="item.multiply">
+ <el-input-number :disabled="item.disabled"
+ :value="scope.row[showSummary.multiply[0]] * scope.row[showSummary.multiply[1]]" placeholder="" :min="0"
+ :precision="2" :controls="false" size="mini" style="width: 100%; margin-right: 5px" @input="(val) => {
commonInputChange(val, item.prop, scope.row)
}
- "
- ></el-input-number>
- </el-form-item>
- <el-form-item
- v-else-if="item.inputFloat"
- label=" "
- :prop="'tableData.' + scope.$index + '.' + item.prop"
- :rules="[{ required: item.isRequird ? true : false, message: '杈撳叆涓嶈兘涓虹┖' }]"
- >
- <!-- 閲囪喘绠$悊 -->
- <template v-if="item.multiply">
- <el-input-number
- :disabled="item.disabled"
- :value="scope.row[showSummary.multiply[0]] * scope.row[showSummary.multiply[1]]"
- placeholder=""
- :min="0"
- :precision="2"
- :controls="false"
- size="mini"
- style="width: 100%; margin-right: 5px"
- @input="
- (val) => {
- commonInputChange(val, item.prop, scope.row)
- }
- "
- ></el-input-number>
+ "></el-input-number>
</template>
<template v-else>
- <el-input-number
- :disabled="item.disabled"
- v-model="scope.row[item.prop]"
- placeholder=""
- :min="0"
- :precision="2"
- :controls="false"
- size="mini"
- style="width: 100%; margin-right: 5px"
- @change="
- (val) => {
- commonInputChange(val, item.prop, scope.row)
- }
- "
- ></el-input-number>
+ <el-input-number :disabled="item.disabled" v-model="scope.row[item.prop]" placeholder="" :min="0"
+ :precision="2" :controls="false" size="mini" style="width: 100%; margin-right: 5px" @change="(val) => {
+ commonInputChange(val, item.prop, scope.row)
+ }
+ "></el-input-number>
</template>
</el-form-item>
<span v-else>{{ scope.row[item.prop] }}</span>
@@ -161,12 +93,8 @@
<el-button :disabled="tableList.disabled" size="small" type="primary" @click="empty">娓呯┖</el-button>
</div>
<!-- 浜у搧鍚嶇О -->
- <SelectCommonDialog
- v-if="editSelCommonConfig.editVisible"
- :edit-common-config="editSelCommonConfig"
- :sign="sign"
- @selClient="selClient"
- />
+ <SelectCommonDialog v-if="editSelCommonConfig.editVisible" :edit-common-config="editSelCommonConfig" :sign="sign"
+ @selClient="selClient" />
</div>
</template>
@@ -189,8 +117,8 @@
type: Object,
default: () => {
return {
- tableProductList:[],
- disabled:false,
+ tableProductList: [],
+ disabled: false,
tableData: [], // 鎺ュ彛杩斿洖鏁版嵁
tableColumn: [
// table琛ㄥ崟
@@ -229,7 +157,7 @@
infomation: {}
},
productIndex: 0,
- tableProductLists:[],
+ tableProductLists: [],
}
},
created() {
@@ -243,6 +171,10 @@
},
},
methods: {
+ // 閫夋嫨琛�
+ rowClick(row){
+ this.$emit("rowClick",row)
+ },
// 浜у搧鍚嶇О
async getProductList() {
let fn = this.sign == "purchase" ? getProductList : getProductListFromGrpc
@@ -371,7 +303,6 @@
}
},
handleSelectClient(item, prop, row) {
- // this.clientId = item.id
this.tableList.tableData.map((ite) => {
if (ite.name === item.name) {
ite.ID = row.ID
@@ -387,6 +318,7 @@
if (this.detailEnter) {
this.setEditName(item, row.ID)
}
+ this.$emit("handleProduct",item)
},
setEditName(item, ID) {
let selRow = {
@@ -489,10 +421,13 @@
<style lang="scss" scoped>
.page-view {
min-width: 100px;
+
.el-form-item {
margin-bottom: 0;
+
.custom-name {
display: flex;
+
.common-select-btn {
margin-left: 5px;
font-size: 18px;
@@ -501,22 +436,27 @@
}
}
}
+
::v-deep {
.el-form-item__label {
display: none;
}
+
.el-table__footer-wrapper tbody td.el-table__cell {
background-color: #fff;
// text-align: right;
font-weight: bold;
}
+
.el-input--suffix .el-input__inner {
padding-right: 0px;
}
+
.el-table .cell,
- .el-table th.el-table__cell > .cell {
+ .el-table th.el-table__cell>.cell {
padding: 0 5px;
}
+
.el-input__inner {
text-align: left;
}
diff --git a/src/views/purchaseManage/purchase/components/AddPurchase.vue b/src/views/purchaseManage/purchase/components/AddPurchase.vue
index ca221b1..3d78de0 100644
--- a/src/views/purchaseManage/purchase/components/AddPurchase.vue
+++ b/src/views/purchaseManage/purchase/components/AddPurchase.vue
@@ -187,6 +187,8 @@
@addProductClick="addProductClick"
@emptyProductClick="emptyProductClick"
@clearupProduct="clearupProduct"
+ @rowClick="rowClick"
+ @handleProduct="handleProduct"
/>
</div>
<div class="table-bottom">
@@ -253,10 +255,10 @@
</el-form>
<div slot="footer" class="dialog-footer">
<!-- <el-button type="primary" size="small" @click="editConfig.visible = false">淇濆苟鎻愪氦瀹℃壒</el-button> -->
- <el-button type="primary" size="small" @click="saveClick('form')"
+ <el-button type="primary" v-if="this.editConfig.title != '鏌ョ湅'" size="small" @click="saveClick('form')"
>淇濆瓨</el-button
>
- <el-button size="small" @click="editConfig.visible = false"
+ <el-button size="small" v-if="this.editConfig.title != '鏌ョ湅'" @click="editConfig.visible = false"
>鍙栨秷</el-button
>
</div>
@@ -291,6 +293,7 @@
} from "@/api/purchaseManage/purchase";
import SelectSupplierDialog from "@/views/purchaseManage/purchase/components/SelectSupplierDialog";
+// import { formToJSON } from "axios";
export default {
name: "QuotationDialog",
components: { SelectSupplierDialog, CommonFormTableView,BomDialog },
@@ -363,7 +366,8 @@
},
supplierId: this.editCommonConfig.infomation.supplierId,
tableData: [],
- productId: 1,
+ productIndex: 0,
+ productId:'',
isNoProduct: true,
clientList: [],
plcBrandList:[],
@@ -372,6 +376,7 @@
},
total:0,
totalTwo:0,
+ productListIdx:0
};
},
created() {
@@ -636,6 +641,7 @@
this.tableData = [
{
productId: this.productId,
+ productIndex:this.productIndex,
id: 0,
amount: 0,
desc: "",
@@ -685,9 +691,11 @@
},
// 浜у搧鍒楄〃杈撳叆
inputContent(val, prop, row) {
- this.productId = row.productId;
+ // this.productId = row.productId;
+ this.productIndex=row.productIndex;
+ console.log(row,val,prop,"浜у搧ID",this.tableData)
this.tableData.map((item) => {
- if (item.productId === row.productId) {
+ if (item.productIndex === row.productIndex) {
item[prop] = val;
}
});
@@ -719,9 +727,10 @@
},
// 浜у搧鏂板
addProductClick() {
- this.productId++;
+ this.productIndex++;
this.tableData.push({
- productId: this.productId,
+ productIndex: this.productIndex,
+ productId:'',
id: 0,
amount: 0,
desc: "",
@@ -734,10 +743,11 @@
},
// 浜у搧娓呯┖
emptyProductClick() {
- this.productId = 1;
+ this.productIndex = 1;
this.tableData = [
{
- productId: this.productId,
+ productId: '',
+ productIndex:this.productIndex,
id: 0,
amount: 0,
desc: "",
@@ -753,6 +763,16 @@
this.tableData = data;
this.productTableList.tableData = this.tableData;
},
+ //閫夋嫨琛�
+ rowClick(row){
+ console.log(row,"xuanze")
+ this.productListIdx=row.productIndex
+ },
+ //閫変腑浜у搧
+ handleProduct(item){
+ this.tableData[this.productListIdx].productId=item.ID
+ console.log(item,"閫変腑浜у搧",this.tableData)
+ }
},
};
</script>
diff --git a/src/views/purchaseManage/purchase/index.vue b/src/views/purchaseManage/purchase/index.vue
index 485d218..9b5c385 100644
--- a/src/views/purchaseManage/purchase/index.vue
+++ b/src/views/purchaseManage/purchase/index.vue
@@ -122,8 +122,24 @@
console.log(this.$route.params,"璺敱鍙傛暟")
if(this.$route.params.supplierId){
this.editConfig.visible = true
- this.editConfig.infomation.supplierId=this.$route.params.supplierId
- this.editConfig.infomation.supplierName=this.$route.params.supplierName
+ this.editConfig.infomation = {
+ productList: [],
+ purchaseTypeId: "",
+ supplierId: this.$route.params.supplierId||'',
+ supplierName: this.$route.params.supplierName||'',
+ orderSource: "鎵嬪姩鍒涘缓",
+ name: "",
+ contact: "",
+ phone: "",
+ signingDate: "",
+ deliveryDate: "",
+ remark: "",
+ wholeDiscountType: null,
+ wholeDiscount: 0,
+ priceAdjustmentType: null,
+ priceAdjustment: 0,
+ realTotalPrice: 0
+ }
}
this.setTable()
this.getData()
--
Gitblit v1.8.0