Browse Source

2024-10-11

master
qiezi 1 year ago
parent
commit
e50955c979
  1. 3
      src/api/base/bu.js
  2. 57
      src/views/modules/base/BuSelect.vue
  3. 42
      src/views/modules/proofing/requestForProofing.vue
  4. 171
      src/views/modules/quotation/requestForQuote.vue

3
src/api/base/bu.js

@ -0,0 +1,3 @@
import {createAPI} from "../../utils/httpRequest";
export const queryBuList = (data) => createAPI('/bu','post',data)

57
src/views/modules/base/BuSelect.vue

@ -0,0 +1,57 @@
<script>
import {queryBuList} from "../../../api/base/bu";
export default {
name: "BuSelect",
props:{
value:{
type:String,
default:''
},
defaultOption:{
type:Boolean,
default:true
}
},
model:{
prop: "value",
event: "change"
},
data(){
return{
buList:[]
}
},
methods:{
handleQueryBuList(){
let params = {
site:this.$store.state.user.site,
username:this.$store.state.user.name
}
queryBuList(params).then(({data})=>{
if (data && data.code === 0 ){
this.buList = data.rows
}else {
this.$message.warning(data.msg)
}
}).catch((error)=>{
this.$message.error(error)
})
}
},
created() {
this.handleQueryBuList();
}
}
</script>
<template>
<el-select v-bind="$attrs" v-on="$listeners" v-model="value">
<el-option value="" label="全部" v-if="defaultOption"></el-option>
<el-option v-for="bu in buList" :key="bu.buNo" :label="bu.buDesc" :value="bu.buNo"></el-option>
</el-select>
</template>
<style scoped>
</style>

42
src/views/modules/proofing/requestForProofing.vue

@ -43,6 +43,9 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-form :inline="true" label-position="top" :model="searchData" @keyup.enter.native="getDataList()"> <el-form :inline="true" label-position="top" :model="searchData" @keyup.enter.native="getDataList()">
<el-form-item label="BU">
<bu-select v-model="searchData.buNo" style="width: 120px"></bu-select>
</el-form-item>
<el-form-item :label="'项目编码'"> <el-form-item :label="'项目编码'">
<el-input v-model="searchData.projectId" clearable style="width: 120px"></el-input> <el-input v-model="searchData.projectId" clearable style="width: 120px"></el-input>
</el-form-item> </el-form-item>
@ -1049,7 +1052,7 @@ import Chooselist from '@/views/modules/common/Chooselist'
import proofingUploadFile from "./proofing_upload_file" import proofingUploadFile from "./proofing_upload_file"
import DictDataSelect from "../sys/dict-data-select.vue"; import DictDataSelect from "../sys/dict-data-select.vue";
import { import {
proofingInformationEditStatus,
proofingInformationEditStatus, queryBuList,
searchDelegateAccess, searchDelegateAccess,
searchDelegateAccessByUser, submitChange searchDelegateAccessByUser, submitChange
} from "../../../api/proofing/proofingInformation"; } from "../../../api/proofing/proofingInformation";
@ -1061,9 +1064,11 @@ import ApprovalInformation from "../changeManagement/approvalInformation.vue";
import {queryCustomer} from "../../../api/customer/customerInformation"; import {queryCustomer} from "../../../api/customer/customerInformation";
import {queryProjectByCustomer} from "../../../api/project/project"; import {queryProjectByCustomer} from "../../../api/project/project";
import OssComponents from "../oss/ossComponents.vue"; import OssComponents from "../oss/ossComponents.vue";
import BuSelect from "../base/BuSelect.vue";
export default { export default {
components: { components: {
BuSelect,
OssComponents, OssComponents,
ApprovalInformation, ApprovalInformation,
ProjectInfo ProjectInfo
@ -1201,6 +1206,7 @@ export default {
page: 1, page: 1,
limit: 10, limit: 10,
menuId: this.$route.meta.menuId, menuId: this.$route.meta.menuId,
buNo:'',
}, },
// //
dataListLoading: false, dataListLoading: false,
@ -1354,6 +1360,24 @@ export default {
contactList: [], contactList: [],
// ======== ======== // ======== ========
columnList: [ columnList: [
{
userId: this.$store.state.user.name,
functionId: 103001,
serialNumber: '103001Table1BuDesc',
tableId: '103001Table1',
tableName: '打样信息表',
columnProp: 'buDesc',
headerAlign: 'center',
align: 'center',
columnLabel: 'BU',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80
},
{ {
userId: this.$store.state.user.name, userId: this.$store.state.user.name,
functionId: 103001, functionId: 103001,
@ -2267,6 +2291,7 @@ export default {
site: this.$route.params.site, site: this.$route.params.site,
proofingNo: this.$route.params.docNo, proofingNo: this.$route.params.docNo,
limit: this.pageSize, limit: this.pageSize,
createBy: this.$store.state.user.name,
page : 1, page : 1,
} }
this.dataListLoading = true this.dataListLoading = true
@ -2293,8 +2318,9 @@ export default {
} }
this.dataListLoading = false this.dataListLoading = false
}) })
}else {
this.getDataList();
} }
this.getDataList();
}, },
activated() { activated() {
if (this.$route.params.proofingNo){ if (this.$route.params.proofingNo){
@ -2406,14 +2432,20 @@ export default {
* 获取数据列表 * 获取数据列表
*/ */
getDataList() { getDataList() {
if (localStorage.getItem('proofingData') != undefined) {
if (localStorage.getItem('proofingData') !== undefined) {
let data = JSON.parse(localStorage.getItem('proofingData')); let data = JSON.parse(localStorage.getItem('proofingData'));
this.searchData.proofingNo = data.proofingNo
if (data){
this.searchData.proofingNo = data.proofingNo
}
localStorage.removeItem('proofingData'); localStorage.removeItem('proofingData');
} }
this.searchData.limit = this.pageSize this.searchData.limit = this.pageSize
this.searchData.page = this.pageIndex this.searchData.page = this.pageIndex
proofingInformationSearch(this.searchData).then(({data}) => {
let params = {
...this.searchData,
createBy: this.$store.state.user.name,
}
proofingInformationSearch(params).then(({data}) => {
if (data.code === 0) { if (data.code === 0) {
this.dataList = data.page.list this.dataList = data.page.list
this.pageIndex = data.page.currPage this.pageIndex = data.page.currPage

171
src/views/modules/quotation/requestForQuote.vue

@ -1,7 +1,10 @@
<template> <template>
<div class="mod-config"> <div class="mod-config">
<!-- 查询条件 --> <!-- 查询条件 -->
<el-form :inline="true" label-position="top" :model="searchData" @keyup.enter.native="getDataList()">
<el-form :inline="true" label-position="top" :model="searchData">
<el-form-item label="申请单号">
<el-input v-model="searchData.quotationNo" clearable style="width: 120px"></el-input>
</el-form-item>
<el-form-item label="申请批次号"> <el-form-item label="申请批次号">
<el-input v-model="searchData.quotationBatchNo" clearable style="width: 120px"></el-input> <el-input v-model="searchData.quotationBatchNo" clearable style="width: 120px"></el-input>
</el-form-item> </el-form-item>
@ -43,6 +46,9 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-form :inline="true" label-position="top" :model="searchData" @keyup.enter.native="getDataList()"> <el-form :inline="true" label-position="top" :model="searchData" @keyup.enter.native="getDataList()">
<el-form-item label="BU">
<el-input v-model="searchData.buNo" clearable style="width: 120px"></el-input>
</el-form-item>
<el-form-item label="批次序号"> <el-form-item label="批次序号">
<el-input v-model="searchData.quotationItemNo" clearable style="width: 120px"></el-input> <el-input v-model="searchData.quotationItemNo" clearable style="width: 120px"></el-input>
</el-form-item> </el-form-item>
@ -556,147 +562,11 @@
</el-dialog> </el-dialog>
<!-- 页签 --> <!-- 页签 -->
<el-tabs v-model="activeTable" type="border-card" style="margin-top: 0px; width: 100%; min-height: 500px;"
<el-tabs v-model="activeTable" type="border-card" style="margin-top: 0px;"
@tab-click="tabClick" class="customer-tab"> @tab-click="tabClick" class="customer-tab">
<!-- 询价详细信息页签 -->
<el-tab-pane label="询价详细信息" name="quotation_detail_information" style="" v-if="false">
<el-form :inline="true" label-position="top" :model="quotationDetailData"
style="margin-left: 10px;margin-top: 10px;">
<el-form-item label="备注">
<el-input
type="textarea"
v-model="quotationDetailData.technicalConsiderations"
readonly
:rows="3"
resize='none'
show-word-limit
style="width: 600px;height: 30px">
</el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="quotationDetailData"
style="margin-left: 10px;margin-top: 46px;">
<el-form-item label="客户负责人">
<el-input v-model="quotationDetailData.customerResponsiblePerson" readonly style="width: 295px"></el-input>
</el-form-item>
<el-form-item label="客户负责人联系方式">
<el-input v-model="quotationDetailData.customerResponsiblePersonPhone" readonly
style="width: 295px"></el-input>
</el-form-item>
</el-form>
</el-tab-pane>
<!-- 询价结果页签 -->
<el-tab-pane label="询价结果" name="quotation_result" v-if="false">
<el-form :inline="true" label-position="top" :model="quotationResultData"
style="margin-left: 10px;margin-top: 5px;">
<el-button v-if="quotationResultData.quotationResultStatus === 'C'" type="primary"
@click="quotationResultModal()">录入询价结果
</el-button>
<el-button v-if="quotationResultData.quotationResultStatus === 'E'" type="primary"
@click="submitQuotationModal()">提交客户询价
</el-button>
<el-button v-if="quotationResultData.quotationResultStatus === 'S'" type="primary"
@click="customerResponseModal()">客户回复
</el-button>
</el-form>
<el-form :inline="true" label-position="top" :model="quotationResultData"
style="margin-left: 10px;margin-top: 2px;">
<el-form-item label="实际询价日期">
<el-date-picker v-model="quotationResultData.actualityQuotationDate" readonly type="date"
value-format="yyyy-MM-dd" style="width: 240px"></el-date-picker>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="quotationResultData"
style="margin-left: 10px;margin-top: -1px;">
<el-form-item label="询价结果信息">
<el-input type="textarea" v-model="quotationResultData.quotationResultInformation" readonly :rows="2"
resize='none' show-word-limit style="width: 760px;height: 20px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="quotationResultData"
style="margin-left: 10px;margin-top: 26px;">
<el-form-item label="附件清单">
<el-table
:height="90"
:data="fileContentList"
border
v-loading="dataListLoading"
style="width: 100%">
<el-table-column
v-for="(item,index) in fileColumnList" :key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
:show-overflow-tooltip="item.showOverflowTooltip"
:align="item.align"
:fixed="item.fixed===''?false:item.fixed"
:min-width="item.columnWidth"
:label="item.columnLabel">
<template slot-scope="scope">
<span v-if="!item.columnHidden">{{ scope.row[item.columnProp] }}</span>
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
style="width: 100px; height: 80px"/></span>
</template>
</el-table-column>
<el-table-column
fixed="right"
header-align="center"
align="center"
width="100"
label="操作">
<template slot-scope="scope">
<a @click="downloadFile(scope.row)">下载</a>
</template>
</el-table-column>
</el-table>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="quotationResultData"
style="margin-left: 10px;margin-top: 69px;">
<el-form-item label="实际提交看客户日期">
<el-date-picker v-model="quotationResultData.actualitySubmissionDate" readonly type="date"
value-format="yyyy-MM-dd" style="width: 240px"></el-date-picker>
</el-form-item>
<el-form-item label="提交方式">
<el-input v-model="quotationResultData.submissionMethod" readonly style="width: 240px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="quotationResultData"
style="margin-left: 10px;margin-top: -2px;">
<el-form-item label="提交备注">
<el-input type="textarea" v-model="quotationResultData.submissionRemark" readonly :rows="2" resize='none'
show-word-limit style="width: 760px;height: 20px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="quotationResultData"
style="margin-left: 10px;margin-top: 26px;">
<el-form-item label="客户是否回复">
<input type="checkbox" v-if="quotationResultData.quotationResultStatus == 'R'" checked
onclick="return false"/>
<input type="checkbox" v-if="quotationResultData.quotationResultStatus != 'R'" onclick="return false"/>
</el-form-item>
<el-form-item label="客户确认结果">
<el-input v-model="quotationResultData.confirmResults" readonly style="width: 205px"></el-input>
</el-form-item>
<el-form-item label="实际回复日期">
<el-date-picker v-model="quotationResultData.actualityReplyDate" readonly type="date"
value-format="yyyy-MM-dd" style="width: 240px"></el-date-picker>
</el-form-item>
<el-form-item label="客户确认人">
<el-input v-model="quotationResultData.confirmBy" readonly style="width: 205px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="quotationResultData"
style="margin-left: 10px;margin-top: -2px;">
<el-form-item label="客户回复信息">
<el-input type="textarea" v-model="quotationResultData.confirmInformation" readonly :rows="2" resize='none'
show-word-limit style="width: 760px;height: 20px"></el-input>
</el-form-item>
</el-form>
</el-tab-pane>
<el-tab-pane label="基本信息" name="priceCheck"> <el-tab-pane label="基本信息" name="priceCheck">
<price-check-properties ref="tabProperties" v-model:data-list="priceCheckPropertiesList" <price-check-properties ref="tabProperties" v-model:data-list="priceCheckPropertiesList"
:quotation-no="quotationCurrentRow.quotationNo" :height="500"></price-check-properties>
:quotation-no="quotationCurrentRow.quotationNo" height="45vh"></price-check-properties>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="采购详细信息" name="tabMaterialSourcing"> <el-tab-pane label="采购详细信息" name="tabMaterialSourcing">
<price-check-detail :quote="quotationCurrentRow" :data-list="priceCheckDetailList" @refresh="getPriceCheckDetailList" :height="500"></price-check-detail> <price-check-detail :quote="quotationCurrentRow" :data-list="priceCheckDetailList" @refresh="getPriceCheckDetailList" :height="500"></price-check-detail>
@ -2197,7 +2067,11 @@ export default {
} }
this.searchData.limit = this.pageSize this.searchData.limit = this.pageSize
this.searchData.page = this.pageIndex this.searchData.page = this.pageIndex
quotationInformationSearch(this.searchData).then(({data}) => {
let params = {
...this.searchData,
createBy: this.$store.state.user.name
}
quotationInformationSearch(params).then(({data}) => {
if (data.code === 0) { if (data.code === 0) {
this.dataList = data.page.list this.dataList = data.page.list
this.pageIndex = data.page.currPage this.pageIndex = data.page.currPage
@ -2211,6 +2085,8 @@ export default {
// this.refreshCurrentTabTable() //table // this.refreshCurrentTabTable() //table
this.quotationClickRow(this.dataList[0]) this.quotationClickRow(this.dataList[0])
this.updateModal(this.dataList[0]) this.updateModal(this.dataList[0])
}else {
this.quotationCurrentRow = {}
} }
} }
}) })
@ -2219,7 +2095,11 @@ export default {
this.searchData.quotationNo = this.$route.params.quotationNo this.searchData.quotationNo = this.$route.params.quotationNo
this.searchData.limit = this.pageSize this.searchData.limit = this.pageSize
this.searchData.page = this.pageIndex this.searchData.page = this.pageIndex
quotationInformationSearch(this.searchData).then(({data}) => {
let params = {
...this.searchData,
createBy: this.$store.state.user.name
}
quotationInformationSearch(params).then(({data}) => {
if (data.code === 0) { if (data.code === 0) {
this.dataList = data.page.list this.dataList = data.page.list
this.pageIndex = data.page.currPage this.pageIndex = data.page.currPage
@ -2234,6 +2114,8 @@ export default {
// this.refreshCurrentTabTable() //table // this.refreshCurrentTabTable() //table
this.quotationClickRow(this.dataList[0]) this.quotationClickRow(this.dataList[0])
// this.updateModal(this.dataList[0]) // this.updateModal(this.dataList[0])
}else {
this.quotationCurrentRow = {}
} }
} }
}) })
@ -2337,7 +2219,12 @@ export default {
getDataList() { getDataList() {
this.searchData.limit = this.pageSize this.searchData.limit = this.pageSize
this.searchData.page = this.pageIndex this.searchData.page = this.pageIndex
quotationInformationSearch(this.searchData).then(({data}) => {
let params = {
...this.searchData,
createBy: this.$store.state.user.name
}
console.log(params)
quotationInformationSearch(params).then(({data}) => {
if (data.code === 0) { if (data.code === 0) {
this.dataList = data.page.list this.dataList = data.page.list
this.pageIndex = data.page.currPage this.pageIndex = data.page.currPage

Loading…
Cancel
Save