You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

766 lines
30 KiB

<!-- 询价单报价 -->
<template>
<div class="customer-css">
<!-- 查询条件 -->
<el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
<el-row>
<el-col :span="24">
<el-form-item label="询价单号:">
<el-input v-model="searchData.orderNo" style="width: 150px" clearable></el-input>
</el-form-item>
<el-form-item :label="'询价时间'">
<el-date-picker
style="width: 130px"
v-model="searchData.startDate"
type="date"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
placeholder="Start">
</el-date-picker>
</el-form-item>
<el-form-item :label="'To'">
<el-date-picker
style="width: 130px"
v-model="searchData.endDate"
type="date"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
placeholder="End">
</el-date-picker>
</el-form-item>
<el-form-item label="状态:">
<el-select v-model="searchData.status" placeholder="请选择" clearable style="width: 120px">
<el-option label="全部" value=""></el-option>
<el-option label="待报价" value="待报价"></el-option>
<el-option label="已报价" value="已报价"></el-option>
<el-option label="已接受" value="已接受"></el-option>
<el-option label="未接受" value="未接受"></el-option>
<el-option label="已拒绝" value="已拒绝"></el-option>
</el-select>
</el-form-item>
<el-form-item label=" ">
<el-button class="customer-bun-min" type="primary" @click="getMainData">查询</el-button>
<el-button @click="resetSearch" style="margin-left: 2px">重置</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<!-- 询价列表 -->
<el-table
:height="height"
:data="mainDataList"
border
ref="mainTable"
highlight-current-row
@row-click="changeData"
v-loading="dataListLoading"
style="margin-top: 0px; width: 100%;">
<el-table-column
v-for="(item, index) in columnArray1"
:key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
:show-overflow-tooltip="item.showOverflowTooltip"
:align="item.align"
:fixed="item.fixed"
:min-width="item.columnWidth"
:label="item.columnLabel">
<template slot-scope="scope">
<span v-if="!item.columnHidden">{{ scope.row[item.columnProp] }}</span>
</template>
</el-table-column>
<!-- 操作列 -->
<el-table-column
fixed="right"
header-align="center"
align="center"
width="180"
label="Action">
<template slot-scope="scope">
<el-link
v-if="scope.row.status === '待报价'||scope.row.status === '未接受'"
style="cursor: pointer"
@click="openQuoteDialog(scope.row)">
报价
</el-link>
<!-- <el-link style="cursor: pointer" @click="openQuoteDialog(scope.row)">报价</el-link> -->
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<el-pagination
style="margin-top: 0px"
@size-change="sizeChangeHandle"
@current-change="currentChangeHandle"
:current-page="pageIndex"
:page-sizes="[20, 50, 100, 200]"
:page-size="pageSize"
:total="totalPage"
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
<!-- 标签页 -->
<el-tabs v-model="activeName" style="margin-top: 0px; width: 99%;" @tab-click="tabClick" class="customer-tab" type="border-card">
<el-tab-pane label="报价记录" name="quotationList">
<quotationList ref="quotationList" :height="tabHeight"></quotationList>
</el-tab-pane>
<el-tab-pane label="附件" name="attachments">
<attachments ref="attachments" :height="tabHeight"></attachments>
</el-tab-pane>
</el-tabs>
<!-- 报价信息新增弹出框 -->
<el-dialog
title="报价信息"
:visible.sync="quoteDialogVisible"
width="600px"
top="3vh"
:close-on-click-modal="false"
class="part-dialog">
<div class="dialog-content">
<el-form
:model="quoteForm"
:rules="quoteRules"
ref="quoteForm"
label-position="top"
class="part-form">
<!-- 基础信息 -->
<div class="form-section">
<el-row :gutter="20">
<el-col :span="6">
<el-form-item label="物料编码" prop="partNo">
<el-input v-model="quoteForm.partNo" :disabled="true" placeholder="物料编码"></el-input>
</el-form-item>
</el-col>
<el-col :span="18">
<el-form-item label="物料名称" prop="partDesc">
<el-input v-model="quoteForm.partDesc" :disabled="true" placeholder="物料名称"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="18">
<el-form-item label="规格型号" prop="spec">
<el-input v-model="quoteForm.spec" :disabled="true" placeholder="规格型号"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="询价数量" prop="qty">
<el-input-number v-model="quoteForm.qty" :disabled="true" :min="0" style="width: 100%"></el-input-number>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="18">
<el-form-item label="其他要求" prop="otherCondition">
<el-input v-model="quoteForm.otherCondition" type="text" :disabled="true" :rows="1" placeholder="其他要求"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="计量单位" prop="umid">
<el-input v-model="quoteForm.umid" :disabled="true" placeholder="计量单位"></el-input>
</el-form-item>
</el-col>
</el-row>
</div>
<!-- 费用信息 -->
<div class="form-section">
<el-row :gutter="20">
<el-col :span="6">
<el-form-item label="材料费用" prop="materialCost">
<el-input-number v-model="quoteForm.materialCost" @change="calculatePrice" :precision="2" :min="0" style="width: 100%"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="加工费" prop="produceFee">
<el-input-number v-model="quoteForm.produceFee" @change="calculatePrice" :precision="2" :min="0" style="width: 100%"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="表面处理费" prop="surfaceFee">
<el-input-number v-model="quoteForm.surfaceFee" @change="calculatePrice" :precision="2" :min="0" style="width: 100%"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="利润" prop="profit">
<el-input-number v-model="quoteForm.profit" @change="calculatePrice" :precision="2" :min="0" style="width: 100%"></el-input-number>
</el-form-item>
</el-col>
</el-row>
<!-- 价格信息 -->
<div class="form-section">
<el-row :gutter="20">
<el-col :span="6">
<el-form-item label="未税单价" prop="price">
<el-input-number v-model="quoteForm.price" :disabled="true" :precision="4" :min="0" style="width: 100%" @change="calculateTax"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="税率(%)" prop="taxRate">
<el-input-number v-model="quoteForm.taxRate" :disabled="true" :precision="2" :min="0" :max="100" style="width: 100%" @change="calculateTax"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="含税单价" prop="tax">
<el-input-number v-model="quoteForm.tax" :disabled="true" :precision="4" :min="0" style="width: 100%"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="关税" prop="duty">
<el-input-number v-model="quoteForm.duty" :precision="2" :min="0" style="width: 100%"></el-input-number>
</el-form-item>
</el-col>
</el-row>
</div>
<el-row :gutter="20">
<el-col :span="6">
<el-form-item label="采购周期(天)" prop="purchaseCycle">
<el-input-number v-model="quoteForm.purchaseCycle" :min="0" :precision="0" style="width: 100%"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="模具费" prop="mouldFee">
<el-input-number v-model="quoteForm.mouldFee" :precision="2" :min="0" style="width: 100%"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="附加费用" prop="additionalCost">
<el-input-number v-model="quoteForm.additionalCost" :precision="2" :min="0" style="width: 100%"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="运费" prop="freight">
<el-input-number v-model="quoteForm.freight" :precision="2" :min="0" style="width: 100%"></el-input-number>
</el-form-item>
</el-col>
</el-row>
</div>
<!-- 其他信息 -->
<div class="form-section">
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="特殊要求" prop="remark2">
<el-input v-model="quoteForm.remark2" type="textarea" :disabled="true" :rows="1" placeholder="请输入特殊要求"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model="quoteForm.remark" type="textarea" :rows="1" placeholder="请输入备注"></el-input>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
</div>
<div slot="footer" class="dialog-footer" style="margin-top: 20px; text-align: center;">
<el-button type="primary" @click="submitQuote">提交报价</el-button>
<el-button @click="cancelQuote">取消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
getQuoPurDetailPage
} from '@/api/supplier/purQuotation.js'
import {
createPurReplyHist
} from '@/api/supplier/purReplyHist.js'
import quotationList from './com_inquiry_QuotationList'
import attachments from './com_inquiry_Attachments'
export default {
name: 'InquiryQuery',
components: {
quotationList,
attachments
},
data() {
return {
height: 200,
tabHeight: 300,
dataListLoading: false,
mainDataList: [],
pageIndex: 1,
pageSize: 20,
totalPage: 0,
activeName: 'quotationList',
currentRow: {},
searchData: {
orderNo: '',
partNo: '',
supplierId: '',
supplierName: '',
status: '待报价',
startDate: '',
endDate: '',
site: this.$store.state.user.site,
page: 1,
limit: 20
},
// 表格列配置
columnArray1: [
{ columnProp: 'status', columnLabel: '状态', columnWidth: '80', headerAlign: 'center', align: 'center', fixed: false, columnHidden: false, columnSortable: false, showOverflowTooltip: true },
{ columnProp: 'orderNo', columnLabel: '询价单号', columnWidth: '120', headerAlign: 'center', align: 'center', fixed: false, columnHidden: false, columnSortable: false, showOverflowTooltip: true },
{ columnProp: 'orderDate', columnLabel: '询价日期', columnWidth: '100', headerAlign: 'center', align: 'center', fixed: false, columnHidden: false, columnSortable: false, showOverflowTooltip: true },
{ columnProp: 'wantReplyDate', columnLabel: '要求报价日期', columnWidth: '100', headerAlign: 'center', align: 'center', fixed: false, columnHidden: false, columnSortable: false, showOverflowTooltip: true },
{ columnProp: 'itemNo', columnLabel: '序号', columnWidth: '60', headerAlign: 'center', align: 'center', fixed: false, columnHidden: false, columnSortable: false, showOverflowTooltip: true },
{ columnProp: 'partNo', columnLabel: '物料编码', columnWidth: '120', headerAlign: 'center', align: 'center', fixed: false, columnHidden: false, columnSortable: false, showOverflowTooltip: true },
{ columnProp: 'partDesc', columnLabel: '物料名称', columnWidth: '150', headerAlign: 'center', align: 'left', fixed: false, columnHidden: false, columnSortable: false, showOverflowTooltip: true },
{ columnProp: 'umid', columnLabel: '计量单位', columnWidth: '80', headerAlign: 'center', align: 'center', fixed: false, columnHidden: false, columnSortable: false, showOverflowTooltip: true },
{ columnProp: 'spec', columnLabel: '规格型号', columnWidth: '150', headerAlign: 'center', align: 'left', fixed: false, columnHidden: false, columnSortable: false, showOverflowTooltip: true },
{ columnProp: 'qty', columnLabel: '询价数量', columnWidth: '100', headerAlign: 'center', align: 'right', fixed: false, columnHidden: false, columnSortable: false, showOverflowTooltip: true },
{ columnProp: 'remark2', columnLabel: '特殊要求', columnWidth: '80', headerAlign: 'center', align: 'center', fixed: false, columnHidden: false, columnSortable: false, showOverflowTooltip: true },
{ columnProp: 'buyer', columnLabel: '采购员', columnWidth: '120', headerAlign: 'center', align: 'center', fixed: false, columnHidden: false, columnSortable: false, showOverflowTooltip: true },
{ columnProp: 'paymentTerm', columnLabel: '付款方式', columnWidth: '80', headerAlign: 'center', align: 'center', fixed: false, columnHidden: false, columnSortable: false, showOverflowTooltip: true },
{ columnProp: 'deliveryTerm', columnLabel: '交易条款', columnWidth: '120', headerAlign: 'center', align: 'center', fixed: false, columnHidden: false, columnSortable: false, showOverflowTooltip: true },
{ columnProp: 'otherCondition', columnLabel: '其他要求', columnWidth: '120', headerAlign: 'center', align: 'center', fixed: false, columnHidden: false, columnSortable: false, showOverflowTooltip: true },
{ columnProp: 'materialCost', columnLabel: '材料费用', columnWidth: '100', headerAlign: 'center', align: 'right', fixed: false, columnHidden: false, columnSortable: false, showOverflowTooltip: true },
{ columnProp: 'produceFee', columnLabel: '加工费', columnWidth: '100', headerAlign: 'center', align: 'right', fixed: false, columnHidden: false, columnSortable: false, showOverflowTooltip: true },
{ columnProp: 'surfaceFee', columnLabel: '表面处理费', columnWidth: '100', headerAlign: 'center', align: 'right', fixed: false, columnHidden: false, columnSortable: false, showOverflowTooltip: true },
{ columnProp: 'profit', columnLabel: '利润', columnWidth: '100', headerAlign: 'center', align: 'right', fixed: false, columnHidden: false, columnSortable: false, showOverflowTooltip: true },
{ columnProp: 'price', columnLabel: '未税单价', columnWidth: '100', headerAlign: 'center', align: 'right', fixed: false, columnHidden: false, columnSortable: false, showOverflowTooltip: true },
{ columnProp: 'taxRate', columnLabel: '税率(%)', columnWidth: '80', headerAlign: 'center', align: 'right', fixed: false, columnHidden: false, columnSortable: false, showOverflowTooltip: true },
{ columnProp: 'tax', columnLabel: '含税单价', columnWidth: '100', headerAlign: 'center', align: 'right', fixed: false, columnHidden: false, columnSortable: false, showOverflowTooltip: true },
{ columnProp: 'duty', columnLabel: '关税', columnWidth: '80', headerAlign: 'center', align: 'right', fixed: false, columnHidden: false, columnSortable: false, showOverflowTooltip: true },
{ columnProp: 'purchaseCycle', columnLabel: '采购周期', columnWidth: '90', headerAlign: 'center', align: 'center', fixed: false, columnHidden: false, columnSortable: false, showOverflowTooltip: true },
{ columnProp: 'mouldFee', columnLabel: '模具费', columnWidth: '100', headerAlign: 'center', align: 'right', fixed: false, columnHidden: false, columnSortable: false, showOverflowTooltip: true },
{ columnProp: 'additionalCost', columnLabel: '附加费用', columnWidth: '100', headerAlign: 'center', align: 'right', fixed: false, columnHidden: false, columnSortable: false, showOverflowTooltip: true },
{ columnProp: 'freight', columnLabel: '运费', columnWidth: '100', headerAlign: 'center', align: 'right', fixed: false, columnHidden: false, columnSortable: false, showOverflowTooltip: true },
{ columnProp: 'remark', columnLabel: '备注', columnWidth: '150', headerAlign: 'center', align: 'left', fixed: false, columnHidden: false, columnSortable: false, showOverflowTooltip: true },
{ columnProp: 'supplierId', columnLabel: '供应商编码', columnWidth: '120', headerAlign: 'center', align: 'center', fixed: false, columnHidden: false, columnSortable: false, showOverflowTooltip: true },
{ columnProp: 'supplierName', columnLabel: '供应商名称', columnWidth: '150', headerAlign: 'center', align: 'left', fixed: false, columnHidden: false, columnSortable: false, showOverflowTooltip: true }
],
// 报价对话框相关
quoteDialogVisible: false,
quoteForm: {
// 基础信息
partNo: '',
partDesc: '',
spec: '',
qty: 0,
umid: '',
otherCondition: '',
// 费用信息
materialCost: 0,
produceFee: 0,
surfaceFee: 0,
profit: 0,
mouldFee: 0,
additionalCost: 0,
freight: 0,
purchaseCycle: 0,
duty: 0,
// 价格信息
price: 0,
taxRate: 13,
tax: 0,
// 其他信息
remark2: '',
remark: '',
// 关联信息
orderNo: '',
itemNo: '',
supplierId: '',
supplierName: '',
site: this.$store.state.user.site,
createdBy: this.$store.state.user.name
},
quoteRules: {
price: [
{ required: true, message: '请输入未税单价', trigger: 'blur' },
{
validator: (rule, value, callback) => {
if (value == null || Number(value) <= 0) {
callback(new Error('未税单价必须大于0'))
} else {
callback()
}
},
trigger: 'blur'
}
],
taxRate: [{ required: true, message: '请输入税率', trigger: 'blur' }]
},
// 上次填写的报价信息(用于残留功能)
lastQuoteData: null
}
},
created() {
this.getMainData()
},
mounted() {
this.$nextTick(() => {
this.height = (window.innerHeight - 280) / 2
this.tabHeight = this.height - 50
})
window.addEventListener('resize', this.handleResize)
},
beforeDestroy() {
window.removeEventListener('resize', this.handleResize)
},
methods: {
handleResize() {
this.height = (window.innerHeight - 280) / 2
this.tabHeight = this.height - 50
this.refreshCurrentTabTable()
},
resetSearch() {
this.searchData = {
orderNo: '',
partNo: '',
supplierId: '',
supplierName: '',
status: '待报价',
startDate: '',
endDate: '',
site: this.$store.state.user.site,
page: 1,
limit: this.pageSize
}
this.getMainData()
},
getMainData() {
this.dataListLoading = true
this.searchData.limit = this.pageSize
this.searchData.page = this.pageIndex
getQuoPurDetailPage(this.searchData).then(({ data }) => {
if (data.code === 0) {
this.mainDataList = data.page.list
this.pageIndex = data.page.currPage
this.pageSize = data.page.pageSize
this.totalPage = data.page.totalCount
if (this.mainDataList.length > 0) {
this.$refs.mainTable.setCurrentRow(this.mainDataList[0])
this.changeData(this.mainDataList[0])
} else {
this.changeData(null)
}
}
this.dataListLoading = false
}).catch(() => {
this.dataListLoading = false
})
},
sizeChangeHandle(val) {
this.pageSize = val
this.pageIndex = 1
this.getMainData()
},
currentChangeHandle(val) {
this.pageIndex = val
this.getMainData()
},
changeData(row) {
this.currentRow = row ? JSON.parse(JSON.stringify(row)) : { site: '', orderNo: '', itemNo: '' }
this.refreshCurrentTabTable()
},
tabClick() {
this.refreshCurrentTabTable()
},
refreshCurrentTabTable() {
if (this.currentRow === '' || this.currentRow === null) {
this.currentRow = {site: '', orderNo: ''}
}
if (this.activeName === 'quotationList') {
this.refreshQuotationList()
}
if (this.activeName === 'attachments') {
this.refreshAttachments()
}
},
refreshQuotationList(){
let inData = {
site: this.currentRow.site,
orderNo: this.currentRow.orderNo,
itemNo: this.currentRow.itemNo,
partNo: this.currentRow.partNo,
type: 'add',
height: this.tabHeight
}
this.$refs.quotationList.init(inData)
},
refreshAttachments () {
let inData = {
orderRef1: this.currentRow.site,
orderRef2: this.currentRow.orderNo,
orderRef3: this.currentRow.partNo,
orderReftype: 'purQuotationDetail',
height: this.tabHeight
}
this.$refs.attachments.init(inData)
},
// 打开报价对话框
openQuoteDialog(row) {
if (!row) {
this.$message.warning('请选择要报价的询价单')
return
}
// 检查是否有上次填写的数据且是当前行的数据
const hasLastData = this.lastQuoteData &&
this.lastQuoteData.orderNo === row.orderNo &&
this.lastQuoteData.itemNo === row.itemNo
// 填充表单数据
this.quoteForm = {
// 基础信息
partNo: row.partNo || '',
partDesc: row.partDesc || '',
spec: row.spec || '',
qty: row.qty || 0,
umid: row.umid || '',
otherCondition: row.otherCondition || '',
status: '已报价',
// 费用信息 - 如果有上次填写的数据则使用,否则使用行数据或默认值
materialCost: hasLastData ? this.lastQuoteData.materialCost : (row.materialCost || 0),
produceFee: hasLastData ? this.lastQuoteData.produceFee : (row.produceFee || 0),
surfaceFee: hasLastData ? this.lastQuoteData.surfaceFee : (row.surfaceFee || 0),
profit: hasLastData ? this.lastQuoteData.profit : (row.profit || 0),
mouldFee: hasLastData ? this.lastQuoteData.mouldFee : (row.mouldFee || 0),
additionalCost: hasLastData ? this.lastQuoteData.additionalCost : (row.additionalCost || 0),
freight: hasLastData ? this.lastQuoteData.freight : (row.freight || 0),
purchaseCycle: hasLastData ? this.lastQuoteData.purchaseCycle : (row.purchaseCycle || 0),
duty: hasLastData ? this.lastQuoteData.duty : (row.duty || 0),
// 价格信息
price: hasLastData ? this.lastQuoteData.price : (row.price || 0),
taxRate: hasLastData ? this.lastQuoteData.taxRate : (row.taxRate || 13),
tax: hasLastData ? this.lastQuoteData.tax : (row.tax || 0),
// 其他信息
remark2: row.remark2 || '',
remark: hasLastData ? this.lastQuoteData.remark : (row.remark || ''),
// 关联信息
orderNo: row.orderNo,
itemNo: row.itemNo,
supplierId: row.supplierId || this.$store.state.user.supplierId,
supplierName: row.supplierName || this.$store.state.user.supplierName,
site: this.$store.state.user.site,
createdBy: this.$store.state.user.name
}
// 计算含税单价
this.calculatePrice()
this.quoteDialogVisible = true
},
calculatePrice(){
//未税单价=材料成本+加工费+表面费用+利润
this.quoteForm.price = this.quoteForm.materialCost + this.quoteForm.produceFee +
this.quoteForm.surfaceFee + this.quoteForm.profit
this.calculateTax()
},
// 计算含税单价
calculateTax() {
//含税单价=未税单价*(1+税率)
if (this.quoteForm.price && this.quoteForm.taxRate) {
this.quoteForm.tax = this.quoteForm.price * (1 + this.quoteForm.taxRate / 100)
}
},
// 提交报价
submitQuote() {
this.calculatePrice()
this.$refs.quoteForm.validate((valid) => {
if (valid) {
if (!this.quoteForm.price || Number(this.quoteForm.price) <= 0) {
this.$message.error('未税单价必须大于0')
return
}
// 计算总成本(可选)
const totalCost = this.quoteForm.materialCost + this.quoteForm.produceFee +
this.quoteForm.surfaceFee + this.quoteForm.profit +
this.quoteForm.mouldFee + this.quoteForm.additionalCost +
this.quoteForm.freight + this.quoteForm.duty
const submitData = {
...this.quoteForm,
totalCost: totalCost
}
createPurReplyHist(submitData).then(({ data }) => {
if (data && data.code === 0) {
this.$message.success('报价提交成功')
// 提交成功后清除残留数据
this.lastQuoteData = null
this.quoteDialogVisible = false
// 刷新报价记录列表
this.refreshCurrentTabTable()
// 刷新主列表状态
this.getMainData()
} else {
this.$message.error(data.msg || '报价提交失败')
}
}).catch(error => {
this.$message.error('报价提交失败: ' + error.message)
})
} else {
this.$message.warning('请填写必填字段')
}
})
},
// 取消报价(保存当前填写的数据用于下次残留)
cancelQuote() {
// 保存当前填写的数据(只保存可编辑的字段)
this.lastQuoteData = {
orderNo: this.quoteForm.orderNo,
itemNo: this.quoteForm.itemNo,
// 费用信息
materialCost: this.quoteForm.materialCost,
produceFee: this.quoteForm.produceFee,
surfaceFee: this.quoteForm.surfaceFee,
profit: this.quoteForm.profit,
mouldFee: this.quoteForm.mouldFee,
additionalCost: this.quoteForm.additionalCost,
freight: this.quoteForm.freight,
purchaseCycle: this.quoteForm.purchaseCycle,
duty: this.quoteForm.duty,
// 价格信息
price: this.quoteForm.price,
taxRate: this.quoteForm.taxRate,
tax: this.quoteForm.tax,
// 备注
remark: this.quoteForm.remark
}
this.quoteDialogVisible = false
}
}
}
</script>
<style scoped lang="scss">
/deep/ .customer-tab .el-tabs__content {
padding: 5px !important;
}
/* 产品对话框整体样式 */
.part-dialog {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}
.part-dialog .el-dialog {
margin-top: 5vh !important;
margin-bottom: 5vh !important;
}
.part-dialog .el-dialog__header {
padding: 20px 25px 15px 25px;
border-bottom: 1px solid #E4E7ED;
}
.part-dialog .el-dialog__body {
padding: 25px 25px 25px 25px;
max-height: 75vh;
overflow-y: auto;
min-height: 400px;
}
.dialog-content {
width: 100%;
}
/* 产品表单样式 */
.part-form {
width: 100%;
}
.part-form .el-form-item {
margin-bottom: 1px;
}
.part-form .el-form-item__label {
font-weight: 500;
color: #303133;
line-height: 32px;
padding-right: 12px;
}
.part-form .el-form-item__content {
line-height: normal;
}
/* 表单分组样式 */
.form-section {
margin-bottom: 5px;
}
.form-section:last-child {
margin-bottom: 5px;
}
/* 输入框样式 */
.part-form .el-input,
.part-form .el-textarea,
.part-form .el-date-editor {
width: 100%;
}
/* 文本域样式优化 */
.part-form .el-textarea__inner {
resize: none;
font-family: inherit;
line-height: 1.5;
}
/* 对话框底部按钮居中 */
.dialog-footer-center {
text-align: center;
padding: 15px 0 5px 0;
border-top: 1px solid #E4E7ED;
margin-top: 15px;
}
.dialog-footer-center .el-button {
margin: 0 10px;
min-width: 90px;
height: 36px;
padding: 0 20px;
font-size: 14px;
}
/* 响应式调整 */
@media (max-width: 1200px) {
.part-dialog {
width: 95% !important;
}
.part-dialog .el-dialog__body {
padding: 20px 20px 15px 20px;
}
}
@media (max-width: 768px) {
.part-form .el-col {
margin-bottom: 20px;
}
.form-section {
margin-bottom: 35px;
}
.part-form .el-form-item__label {
line-height: 28px;
height: 28px;
}
}
</style>