Browse Source

Merge remote-tracking branch 'origin/master'

master
ruanqi 2 years ago
parent
commit
eae505af8b
  1. 1
      src/api/quotation/quotationHeader.js
  2. 266
      src/views/modules/project/projectInfo/com_project_info_quotation.vue
  3. 18
      src/views/modules/project/projectInfo/projectInfo.vue
  4. 5
      src/views/modules/quotation/sellForQuotation.vue
  5. 12
      src/views/modules/quotation/sellForQuotation/quotationDetail.vue

1
src/api/quotation/quotationHeader.js

@ -6,6 +6,7 @@ import { createAPI } from "@/utils/httpRequest.js";
* @returns {*}
*/
export const getQuotationHeaderByPage = (data,ids) => createAPI(`/plm/quotationHeader/getQuotationHeaderByPage`+ids,'get',data);
export const getQuotationHeader = (data) => createAPI(`/plm/quotationHeader/getQuotationHeaderByPage`,'get',data);
/**
* 新增报价信息 QuotationHeader

266
src/views/modules/project/projectInfo/com_project_info_quotation.vue

@ -0,0 +1,266 @@
<script>
import {getQuotationHeader} from "@/api/quotation/quotationHeader.js";
export default {
name: 'com_project_info_quotation_header',
data(){
return{
dataList:[],
columnList: [
{
userId: this.$store.state.user.name,
functionId: 101002001,
serialNumber: '101002001Table5QuotationNo',
tableId: '101002001Table5',
tableName: '报价信息表',
columnProp: 'quotationNo',
headerAlign: 'center',
align: 'center',
columnLabel: '报价单号',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120
},
{
userId: this.$store.state.user.name,
functionId: 101002001,
serialNumber: '101002001Table5QuotationDate',
tableId: '101002001Table5',
tableName: '报价信息表',
columnProp: 'quotationDate',
headerAlign: 'center',
align: 'center',
columnLabel: '报价日期',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 101002001,
serialNumber: '101002001Table5CustomerNo',
tableId: '101002001Table5',
tableName: '报价信息表',
columnProp: 'customerNo',
headerAlign: 'center',
align: 'center',
columnLabel: '客户编码',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120
},
{
userId: this.$store.state.user.name,
functionId: 101002001,
serialNumber: '101002001Table5CustomerName',
tableId: '101002001Table5',
tableName: '报价信息表',
columnProp: 'customerName',
headerAlign: 'center',
align: 'center',
columnLabel: '客户名称',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120
},
{
userId: this.$store.state.user.name,
functionId: 101002001,
serialNumber: '101002001Table5QuoterName',
tableId: '101002001Table5',
tableName: '报价信息表',
columnProp: 'quoterName',
headerAlign: 'center',
align: 'center',
columnLabel: '销售员',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120
},
{
userId: this.$store.state.user.name,
functionId: 101002001,
serialNumber: '101002001Table5TrackerName',
tableId: '101002001Table5',
tableName: '报价信息表',
columnProp: 'trackerName',
headerAlign: 'center',
align: 'center',
columnLabel: '跟单员',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120
},
{
userId: this.$store.state.user.name,
functionId: 101002001,
serialNumber: '101002001Table5Currency',
tableId: '101002001Table5',
tableName: '报价信息表',
columnProp: 'currency',
headerAlign: 'center',
align: 'center',
columnLabel: '货币',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120
},
{
userId: this.$store.state.user.name,
functionId: 101002001,
serialNumber: '101002001Table5QuotationStatus',
tableId: '101002001Table5',
tableName: '报价信息表',
columnProp: 'quotationStatus',
headerAlign: 'center',
align: 'center',
columnLabel: '状态',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120
},
{
userId: this.$store.state.user.name,
functionId: 101002001,
serialNumber: '101002001CustomerInquiryNo',
tableId: '101002001Table5',
tableName: '报价信息表',
columnProp: 'customerInquiryNo',
headerAlign: 'center',
align: 'center',
columnLabel: '客户报价单号',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120
},
{
userId: this.$store.state.user.name,
functionId: 101002001,
serialNumber: '101002001InternalInquiryNo',
tableId: '101002001Table5',
tableName: '报价信息表',
columnProp: 'internalInquiryNo',
headerAlign: 'center',
align: 'center',
columnLabel: '内部报价单号',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120
},
],
exportData: [],
exportName: '项目询价'+this.dayjs().format('YYYYMMDDHHmmss'),
exportHeader: ["项目询价"],
exportFooter: [],
}
},
methods:{
init(params){
getQuotationHeader(params).then(({data})=>{
this.dataList = data.data.records;
}).catch((error)=>{
})
},
fields() {
let json = "{"
this.columnList.forEach((item, index) => {
if (index === this.columnList.length - 1) {
json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\""
} else {
json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\"" + ","
}
})
json += "}"
let s = eval("(" + json + ")")
return s
},
createExportData() {
return this.dataList;
},
}
}
</script>
<template>
<div>
<el-form :inline="true" label-position="top" style="margin-top: 0px">
<download-excel
:fields="fields()"
:data="exportData"
type="xls"
:name="exportName"
:header="exportHeader"
:footer="exportFooter"
:fetch="createExportData"
worksheet="导出信息"
class="el-button el-button--primary el-button--medium">
{{ '导出' }}
</download-excel>
</el-form>
<el-table :data="dataList" stripe border style="width: 100%;margin-top: 12px" :height="240">
<el-table-column
v-for="(item,index) in columnList" :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>
</div>
</template>
<style scoped>
</style>

18
src/views/modules/project/projectInfo/projectInfo.vue

@ -303,6 +303,9 @@
<el-tab-pane label="询价信息" name="quotation">
<projectQuotation ref="projectQuotation" ></projectQuotation>
</el-tab-pane>
<el-tab-pane label="报价信息" name="quotationHeader">
<quotationHeader ref="quotationHeader"></quotationHeader>
</el-tab-pane>
<el-tab-pane label="打样信息" name="sample">
<sample ref="sample" ></sample>
</el-tab-pane>
@ -366,6 +369,7 @@
import test from "./com_project_test";/*組件*/
import purchase from "./com_project_info_purchase_request";/*組件*/
import technicalSpecification from "./com_project_technicalSpecification";
import quotationHeader from "./com_project_info_quotation.vue";
/*組件*/
export default {
components: {
@ -378,6 +382,7 @@
test,
purchase,
technicalSpecification,
quotationHeader,
},
name: "null",
data() {
@ -1198,6 +1203,9 @@
if (this.activeName == 'quotation') {
this.refreshQuotationTable();
}
if (this.activeName == 'quotationHeader') {
this.refreshQuotationHeaderTable();
}
if (this.activeName == 'sample') {
this.refreshSampleTable();
}
@ -1228,6 +1236,16 @@
}
this.$refs.technicalSpecification.init(inData)
},
refreshQuotationHeaderTable(){
let inData={
site: this.currentRow.site,
projectId: this.currentRow.projectId,
username:this.$store.state.user.name,
no: 1,
size: 1000
}
this.$refs.quotationHeader.init(inData)
},
refreshQuotationTable(){
let inData={
site: this.currentRow.site,

5
src/views/modules/quotation/sellForQuotation.vue

@ -311,7 +311,7 @@
<el-row>
<el-col :span="24">
<el-form-item label="备注" style="width: 100%;min-height: 90px">
<el-input type="textarea" style="width: 100%" :autosize="{minRows: 3, maxRows: 3}" v-model="insertData.remark"/>
<el-input type="textarea" style="width: 100%" resize="none" :autosize="{minRows: 3, maxRows: 3}" v-model="insertData.remark"/>
</el-form-item>
</el-col>
</el-row>
@ -559,6 +559,9 @@ export default {
startDate:this.searchData.startDate,
endDate: this.searchData.endDate,
}
this.init(params,ids)
},
init(params,ids){
this.initQuotationHeaderLoading = true;
getQuotationHeaderByPage(params,ids).then(({data})=>{
this.tableData = data.data.records;

12
src/views/modules/quotation/sellForQuotation/quotationDetail.vue

@ -201,7 +201,7 @@
<el-row>
<el-col :span="22">
<el-form-item label="备注" style="display: block;min-height: 80px" prop="remark">
<el-input type="textarea" v-model="insertQuotationDetail.remark" :autosize="{minRows: 3, maxRows: 3}"
<el-input type="textarea" resize="none" v-model="insertQuotationDetail.remark" :autosize="{minRows: 3, maxRows: 3}"
style="min-height: 80px"/>
</el-form-item>
</el-col>
@ -241,7 +241,7 @@
</el-col>
<el-col :span="24">
<el-form-item label="备注" style="display: block;min-height: 90px;width: 60%">
<el-input type="textarea" disabled v-model="quotationDetailData.remark" :autosize="{minRows: 3, maxRows: 3}"
<el-input type="textarea" resize="none" disabled v-model="quotationDetailData.remark" :autosize="{minRows: 3, maxRows: 3}"
style="min-height: 80px" />
</el-form-item>
</el-col>
@ -640,7 +640,7 @@
</el-col>
</el-row>
<el-form-item label="备注" prop="remark" style="height: 90px">
<el-input v-model="quotationTool.remark" type="textarea" :autosize="{minRows: 3, maxRows: 3}" style="width: 93%"/>
<el-input v-model="quotationTool.remark" resize="none" type="textarea" :autosize="{minRows: 3, maxRows: 3}" style="width: 93%"/>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer" style="margin-top: 5px">
@ -826,7 +826,7 @@
</el-col>
<el-col :span="22">
<el-form-item label="备注" prop="remark" style="display: block;min-height: 90px">
<el-input type="textarea" v-model="quotationRouting.remark" :autosize="{minRows: 3, maxRows: 3}"/>
<el-input type="textarea" resize="none" v-model="quotationRouting.remark" :autosize="{minRows: 3, maxRows: 3}"/>
</el-form-item>
</el-col>
</el-row>
@ -912,7 +912,7 @@
</el-col>
<el-col :span="22">
<el-form-item label="备注" prop="remark" style="display: block;min-height: 90px">
<el-input type="textarea" v-model="quotationPart.remark" :autosize="{minRows: 3, maxRows: 3}"/>
<el-input type="textarea" resize="none" v-model="quotationPart.remark" :autosize="{minRows: 3, maxRows: 3}"/>
</el-form-item>
</el-col>
</el-row>
@ -3348,7 +3348,7 @@ export default {
this.$refs['projectPartDataForm'].resetFields();
this.projectPartData = {
site:this.$store.state.user.site,
projectId:undefined,//
testPartNo:undefined,//
partDesc:undefined,//
}
this.projectPartTable = [];

Loading…
Cancel
Save