Browse Source

20241112

java8
qiezi 1 year ago
parent
commit
393d4db026
  1. 2
      src/api/part/partInformation.js
  2. 176
      src/components/selector/table/partTable.vue
  3. 5
      src/components/selector/table/projectPartTable.vue
  4. 20
      src/views/modules/quote/detail/quoteDetail.vue

2
src/api/part/partInformation.js

@ -192,5 +192,7 @@ export const partCostInformationEdit = data => createAPI(`/part/partInformation/
// costHistorySearch 成本历史查询
export const costHistorySearch = data => createAPI(`/part/partInformation/costHistorySearch`,'post',data)
export const handleQueryPart = (data) => createAPI('/part/partInformation','post',data)
export const handleQueryPartByPage = (data) => createAPI(`/part/partInformation/${data.no}/${data.size}`,'post',data)

176
src/components/selector/table/partTable.vue

@ -0,0 +1,176 @@
<script>
import {handleQueryPart, handleQueryPartByPage} from "../../../api/part/partInformation";
import BuSelect from "../select/BuSelect.vue";
export default {
name: "partTable",
components: {BuSelect},
model:{
prop: "visible",
event: "update"
},
props:{
visible: {
type: Boolean,
default: false
},
isPage:{
type: Boolean,
default: false
},
height:{
type: Number,
default: 300
},
partNo:{
type: String,
default: ""
}
},
data(){
return{
no:0,
size:20,
total:0,
queryLoading:false,
partList: [],
part:{
buId:'',
partNo:"",
partDesc:"",
},
}
},
computed:{
open:{
get(){
return this.visible
},
set(val){
this.$emit("update", val)
}
}
},
methods:{
handleQueryPart(){
let params = {
...this.part,
userName:this.$store.state.user.name,
}
this.queryLoading = true
handleQueryPart(params).then(({data})=>{
if (data && data.code === 0){
this.partList = data.rows
}else {
this.$message.warning(data.msg)
}
this.queryLoading = false
}).catch((error)=>{
this.$message.error(error)
this.queryLoading = false
})
},
handleQueryPartByPage(){
let params = {
...this.part,
userName:this.$store.state.user.name,
no:this.no,
size:this.size,
}
this.queryLoading = true
handleQueryPartByPage(params).then(({data})=>{
if (data && data.code === 0){
this.partList = data.rows
this.total = data.total
}else {
this.$message.warning(data.msg)
}
this.queryLoading = false
}).catch((error)=>{
this.$message.error(error)
this.queryLoading = false
})
},
handleDblClick(row){
this.$emit("dblclick", row)
},
handleSizeChange(val){
this.size = val
this.handleQueryPartByPage()
},
handlePageChange(val){
this.no = val
this.handleQueryPartByPage()
}
},
watch:{
visible(newVal,oldVal){
if(newVal){
if (this.isPage){
this.handleQueryPartByPage()
}else {
this.handleQueryPart()
}
}
},
partNo(newVal,oldVal){
this.part.partNo = newVal
}
},
created() {
this.part.partNo = this.partNo
}
}
</script>
<template>
<el-dialog title="物料信息" v-drag :visible.sync="open" width="800px" :close-on-click-modal="false" modal-append-to-body>
<el-form :model="part" label-width="100px" label-position="top">
<el-row :gutter="10">
<el-col :span="4">
<el-form-item label="BU">
<bu-select v-model="part.buId">
<el-option label="全部" value=""></el-option>
</bu-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="物料编码">
<el-input v-model="part.partNo"></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="物料描述">
<el-input v-model="part.partDesc"></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label=" ">
<el-button type="primary" v-if="isPage" @click="handleQueryPartByPage">查询</el-button>
<el-button type="primary" v-else @click="handleQueryPart">查询</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-table v-loading="queryLoading" :data="partList" style="width: 100%" border :height="height" @row-dblclick="handleDblClick">
<el-table-column prop="buDesc" label="BU" ></el-table-column>
<el-table-column prop="partNo" label="物料编码" ></el-table-column>
<el-table-column prop="partDesc" label="物料描述" ></el-table-column>
<el-table-column prop="umName" label="单位" ></el-table-column>
<el-table-column prop="partType2Desc" label="类型" ></el-table-column>
</el-table>
<el-pagination v-if="isPage" @size-change="handleSizeChange"
@current-change="handlePageChange"
:current-page="no"
:page-sizes="[20, 50, 100, 200, 500]"
:page-size="size"
:pager-count="5"
:total="total"
layout="total,sizes, prev, pager, next, jumper">
</el-pagination>
</el-dialog>
</template>
<style scoped>
</style>

5
src/components/selector/table/projectPartTable.vue

@ -68,6 +68,7 @@ export default {
no: this.no,
size: this.size,
}
this.queryLoading = true
queryProjectPartByPage(params).then(({data})=>{
if (data && data.code === 0){
this.projectPartList = data.rows
@ -75,8 +76,10 @@ export default {
}else {
this.$message.warning(data.msg)
}
this.queryLoading = false
}).catch((error)=>{
this.$message.error(error)
this.queryLoading = false
})
},
handleDblClick(row){
@ -120,7 +123,7 @@ export default {
},
created() {
this.projectPart.projectNo = this.projectNo
this.projectPart.projectNo = this.partNo
this.projectPart.partNo = this.partNo
}
}
</script>

20
src/views/modules/quote/detail/quoteDetail.vue

@ -12,10 +12,14 @@ import QuoteDetailTool from "./primary/quoteDetailTool.vue";
import QuoteDetailBom from "./primary/quoteDetailBom.vue";
import QuoteDetailRouting from "./primary/quoteDetailRouting.vue";
import QuoteDetailOther from "./primary/quoteDetailOther.vue";
import PartTable from "../../../../components/selector/table/partTable.vue";
import {handleQueryPart} from "../../../../api/part/partInformation";
export default {
name: "quoteDetail",
components: {QuoteDetailOther, QuoteDetailRouting, QuoteDetailBom, QuoteDetailTool, QuoteDetailCost, ProjectPartTable},
components: {
PartTable,
QuoteDetailOther, QuoteDetailRouting, QuoteDetailBom, QuoteDetailTool, QuoteDetailCost, ProjectPartTable},
props:{
quote:{
type:Object,
@ -729,7 +733,7 @@ export default {
columnWidth: 120
},
],
projectPartVisible:false,
partVisible:false,
activeName:'bom',
}
},
@ -793,17 +797,18 @@ export default {
this.saveQuoteDetail.partId = row.id;
this.saveQuoteDetail.partNo = row.partNo;
this.saveQuoteDetail.partDesc = row.partDesc;
this.projectPartVisible = false;
this.partVisible = false;
},
handlePartNoBlur(){
let params = {
userName: this.$store.state.user.name,
partNo: this.saveQuoteDetail.partNo,
projectNo: this.quote.projectNo,
}
queryProjectPart(params).then(({data})=>{
handleQueryPart(params).then(({data})=>{
if (data && data.code === 0){
if (data.rows.length === 1){
this.saveQuoteDetail.partId = data.rows[0].id;
this.saveQuoteDetail.partNo = data.rows[0].partNo;
this.saveQuoteDetail.partDesc = data.rows[0].partDesc;
}else {
this.saveQuoteDetail.partId = undefined;
@ -967,7 +972,7 @@ export default {
<el-col :span="8">
<el-form-item label="物料名称" prop="partNo" :show-message="false">
<span slot="label">
<a @click="projectPartVisible = true">物料名称</a>
<a @click="partVisible = true">物料名称</a>
</span>
<el-input v-model="saveQuoteDetail.partNo" @blur="handlePartNoBlur"></el-input>
</el-form-item>
@ -1046,7 +1051,8 @@ export default {
</div>
</el-dialog>
<project-part-table v-if="saveVisible" v-model="projectPartVisible" :project-no="saveQuoteDetail.projectNo" :part-no="saveQuoteDetail.partNo" @dblclick="handleDblClick"></project-part-table>
<part-table v-if="saveVisible" v-model="partVisible" :is-page="true" :part-no="saveQuoteDetail.partNo" @dblclick="handleDblClick"></part-table>
<!-- <project-part-table v-if="saveVisible" v-model="partVisible" :project-no="saveQuoteDetail.projectNo" :part-no="saveQuoteDetail.partNo" @dblclick="handleDblClick"></project-part-table>-->
</div>
</template>

Loading…
Cancel
Save