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.
 
 
 
 
 

1192 lines
37 KiB

<template>
<div class="mod-config">
<el-form :inline="true" label-position="top" :model="searchData" @keyup.enter.native="getDataList()">
<el-row :gutter="10">
<el-col :span="3">
<el-form-item :label="'BU'">
<el-select v-model="searchData.bu" placeholder="请选择" clearable>
<el-option
v-for = "i in userBuList"
:key = "i.buNo"
:label = "i.buDesc"
:value = "i.buNo">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item label="客户编码">
<el-input v-model="searchData.customerNo"></el-input>
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item label="客户名称">
<el-input v-model="searchData.customerDesc"></el-input>
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item label="采购专员">
<el-input v-model="searchData.purchase"></el-input>
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item label="报价单号">
<el-input v-model="searchData.quoteVersionNo"></el-input>
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item label="客户询价单号">
<el-input v-model="searchData.customerInquiryNo"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="3">
<el-form-item label="内部询价单号">
<el-input v-model="searchData.insideInquiryNo"></el-input>
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item label="报价专员">
<el-input v-model="searchData.quoter"></el-input>
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item label="状态">
<el-select v-model="searchData.status" style="width: 100%">
<el-option label="全部" value=""></el-option>
<el-option label="草稿" value="草稿"></el-option>
<el-option label="下达" value="下达"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="报价日期">
<div style="display: flex">
<el-date-picker style="width: 47%" v-model="searchData.startDate" type="date" value-format='yyyy-MM-dd' format='yyyy-MM-dd'></el-date-picker>
<div style="width: 6%;text-align: center">-</div>
<el-date-picker style="width: 47%" v-model="searchData.endDate" type="date" value-format='yyyy-MM-dd' format='yyyy-MM-dd'></el-date-picker>
</div>
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item label=" ">
<el-button @click="getDataListAll">查 询</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<!-- 询价列表 -->
<el-table
height="30vh"
:data="dataList"
border
ref="mainTable"
highlight-current-row
@row-click="quoteClickRow"
@current-change="changeCurrentRow"
v-loading="dataListLoading"
style="width: 100%;margin-top: 5px">
<el-table-column
v-for="(item,index) in columnList" :key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
: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="180"
label="操作">
<template slot-scope="scope">
<el-link style="cursor: pointer" @click="updateModal(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, 500]"
:page-size="pageSize"
:total="totalPage"
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
<el-tabs style="margin-top: 0px; width: 100%; height: 100%;" v-model="activeName" class="customer-tab" type="border-card" @tab-click="tabClick">
<el-tab-pane label="报价信息" name="quotationInformation">
<el-form :inline="true" label-width="120px" label-position="top">
<el-form-item label="Application">
<el-input v-model="quoteCurrentRow.application" style="width: 210px" readonly></el-input>
</el-form-item>
<el-form-item label="Customer">
<el-input v-model="quoteCurrentRow.customerDesc" readonly></el-input>
</el-form-item>
<el-form-item label="年需求量">
<el-input-number v-model="quoteCurrentRow.annualDemand" disabled :controls="false"></el-input-number>
</el-form-item>
<el-form-item label="Cost Model">
<el-input v-model="quoteCurrentRow.costModel" style="width: 210px" readonly></el-input>
</el-form-item>
<el-form-item label="Markup">
<el-input-number v-model="quoteCurrentRow.markup" disabled :controls="false"></el-input-number>
</el-form-item>
</el-form>
<el-form :inline="true" label-width="120px" label-position="top">
<el-form-item label="报价备注">
<el-input type="textarea" :rows="2" v-model="quoteCurrentRow.remark" style="width: 1019px" readonly></el-input>
</el-form-item>
</el-form>
<quote-detail :quote="quoteCurrentRow" :auth-flag="true" :height="'33vh'"></quote-detail>
</el-tab-pane>
</el-tabs>
<el-dialog title="申请单审核" :visible.sync="reviewFlag" width="520px" :close-on-click-modal="false"
v-drag>
<el-row>
<el-col :span="24" style="margin-top: 30px">
<div style="margin-left: 45px;margin-top: -30px">
<el-form :inline="true" label-width="120px" label-position="top">
<el-form-item label="申请单号">
<el-input style="width: 200px;" readonly placeholder="" :value="modalData.quoteVersionNo"></el-input>
</el-form-item>
<el-form-item label="审批步骤号">
<el-input style="width: 200px;" readonly placeholder="" :value="modalData.stepId"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-width="120px" label-position="top">
<el-form-item label="审批人">
<el-input style="width: 200px;" readonly placeholder="" :value="modalData.userName"></el-input>
</el-form-item>
<el-form-item label="审批时间">
<el-input style="width: 200px;" readonly placeholder=""
:value="modalData.strActAuthorizeDate"></el-input>
</el-form-item>
<el-form-item label="备注">
<el-input type="textarea" :readonly="(modalData.canAuthFlag!=='Y') "
:rows="3"
style="text-align: left;width: 415px;" v-model="modalData.authHistRemark"></el-input>
</el-form-item>
</el-form>
<el-footer style="height:30px;margin-top: 5px;margin-left:-35px;text-align:center">
<el-button type="primary" v-if="( modalData.canAuthFlag === 'Y') "
@click="saveReview(modalData,'Y')">{{'同意'}}
</el-button>
<el-button type="primary" v-if="( modalData.canAuthFlag === 'Y') "
@click="saveReview(modalData ,'N')">{{'不同意'}}
</el-button>
</el-footer>
</div>
</el-col>
</el-row>
</el-dialog>
<!-- chooseList模态框 -->
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
</div>
</template>
<script>
import Chooselist from '@/views/modules/common/Chooselist_eam'
import {getSiteAndBuByUserName} from "../../../api/qc/qc";
import DictDataSelect from "../sys/dict-data-select.vue";
import {queryCustomerList} from "@/api/customer/customer";
import {verifyData} from "@/api/part/partInformation";
import {EventBus} from "../../../main";
import {partInformationSearch} from "../../../api/part/partInformation";
import {
searchUserAuthQuoteApplicationInfo
} from "../../../api/quote/quote";
import quotationUpload from "../quote/quotation_upload.vue";
import {updateAuthHist} from "../../../api/auth/auth";
import TpCost from "../quote/detail/tpCost.vue";
import QuoteDetail from "../quote/detail/quoteDetail.vue";
export default {
beforeRouteEnter(to, from, next) {
next((vm) => {
// 跳转后清除 redirectPath
localStorage.removeItem('redirectPath');
console.log('redirectPath 已清除');
});
},
computed: {
// quotationInformationFlag () {
// return (value) => {
// if (!this.plmQuotationInformationArr){
// return 'N'
// }
// let arr = this.plmQuotationInformationArr.filter(a => a.fieldId === value)
// if (arr.length > 0) {
// return arr[0].updateFlag
// }
// return 'N'
// }
// },
},
components: {
QuoteDetail,
TpCost,
quotationUpload,
DictDataSelect,
Chooselist
},
props:{
height:{
type:Number,
default:200
}
},
data() {
return {
userBuList: [],
copyPriceCheckDetail:{},
loading:false,
attributeDialog:true,
activeName: 'quotationInformation',
priceCheckRule: {
associatedPartNo:[{required: true, message: ' ', trigger: 'change'},],
materialRequired:[{required: true, message: ' ', trigger: 'change'},],
yearlyOrMonthlyRequirement:[{required: true, message: ' ', trigger: 'change'},],
runningWidth:[{required: true, message: ' ', trigger: 'change'},],
},
savePriceDetail:{
site:'',
quotationNo:'',
associatedPartNo:'',
materialRequired:'',
yearlyOrMonthlyRequirement:'',
runningWidth:'',
},
priceCheckPropertiesList: [],
// 导出
exportData: [],
exportName: '询价申请' + this.dayjs().format('YYYYMMDDHHmmss'),
exportHeader: ['询价申请'],
exportFooter: [],
resultList: [],
uploadUrl: '/plm/quotationInformation/uploadExcel',
// ======== 行高 ========
secondHeight: 200,
// ======== 分页 ========
pageIndex: 1,
pageSize: 50,
totalPage: 0,
selectedDataNum: 0,
// 条件查询
searchData: {
userId: this.$store.state.user.id,
site: this.$store.state.user.site,
id: '',
customerNo: '',
customerDesc: '',
quoteVersionNo: '',
bu: '',
requestStartDate: '',
requestEndDate: '',
requiredCompletionStartDate: '',
requiredCompletionEndDate: '',
status: '',
quoterName: '',
requesterName: '',
priorityLevel: '',
orderRef1: 'BJ',
page: 1,
limit: 10,
menuId: this.$route.meta.menuId,
},
searchData1: {
userId: this.$store.state.user.id,
site: this.$store.state.user.site,
id: '',
customerNo: '',
customerDesc: '',
quoteVersionNo: '',
bu: '',
requestStartDate: '',
requestEndDate: '',
requiredCompletionStartDate: '',
requiredCompletionEndDate: '',
status: '',
quoterName: '',
requesterName: '',
priorityLevel: '',
orderRef1: 'BJ',
page: 1,
limit: 10,
menuId: this.$route.meta.menuId,
},
// 其它
dataListLoading: false,
// 选择项目弹框开关
chooseProjectListFlag: false,
reviewFlag: false,
// 初始页签
activeTable: 'inquiryAuth',
// ======== 数据对象 ========
modalData: {
flag: '',
title: '',
site: this.$store.state.user.site,
userName: this.$store.state.user.name,
id: '',
quoteVersionNo: '',
customerNo: '',
customerDesc: '',
requestDate: '',
requester: '',
requesterName: '',
customerInquiryNo: '',
priorityLevel: '',
requiredCompletionDate: '',
quoter: '',
quoterName: '',
status: '',
remark: '',
createDate: '',
createBy: '',
updateDate: '',
updateBy: '',
authHistId: '',
approveResult: '',
authHistRemark: '',
canAuthFlag: '',
actAuthorizator: '',
strActAuthorizeDate: this.dayjs().format("YYYY-MM-DD HH:mm:ss"),
actAuthorizeDate: ''
},
inquiryPartItemModalData: {
bu: '',
buDesc: '',
quoteVersionNo: '',
partNo: '',
partDesc: '',
umId: '',
umName: '',
codeNo: '',
codeDesc: '',
textValue: '',
numValue: '',
valueType: '',
valueTypeDb: '',
valueChooseFlag: '',
availableValueList: [],
},
// ======== 数据列表 ========
dataList: [],
inquiryAuthDataList: [],
// ======== 列表表头 ========
columnList: [
{
userId: this.$store.state.user.name,
functionId: 190006,
serialNumber: '190006Table1BuDesc',
tableId: '190006Table1',
tableName: '报价信息表',
columnProp: 'buDesc',
headerAlign: 'center',
align: 'center',
columnLabel: 'BU',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120
},
{
userId: this.$store.state.user.name,
functionId: 190006,
serialNumber: '190006Table1QuoteVersionNo',
tableId: '190006Table1',
tableName: '报价信息表',
columnProp: 'quoteVersionNo',
headerAlign: 'center',
align: 'center',
columnLabel: '报价单号',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 180
},
{
userId: this.$store.state.user.name,
functionId: 190006,
serialNumber: '190006Table1QuoteDate',
tableId: '190006Table1',
tableName: '报价信息表',
columnProp: 'quoteDate',
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: 190006,
serialNumber: '190006Table1CustomerNo',
tableId: '190006Table1',
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: 190006,
serialNumber: '190006Table1CustomerDesc',
tableId: '190006Table1',
tableName: '报价信息表',
columnProp: 'customerDesc',
headerAlign: 'center',
align: 'left',
columnLabel: '客户名称',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120
},
{
userId: this.$store.state.user.name,
functionId: 190006,
serialNumber: '190006Table1QuoterName',
tableId: '190006Table1',
tableName: '报价信息表',
columnProp: 'quoterName',
headerAlign: 'center',
align: 'left',
columnLabel: '报价专员',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120
},
{
userId: this.$store.state.user.name,
functionId: 190006,
serialNumber: '190006Table1PurchaseName',
tableId: '190006Table1',
tableName: '报价信息表',
columnProp: 'purchaseName',
headerAlign: 'center',
align: 'left',
columnLabel: '采购专员',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120
},
{
userId: this.$store.state.user.name,
functionId: 190006,
serialNumber: '190006Table1Currency',
tableId: '190006Table1',
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: 190006,
serialNumber: '190006Table1Status',
tableId: '190006Table1',
tableName: '报价信息表',
columnProp: 'status',
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: 190006,
serialNumber: '190006Table1CustomerInquiryNo',
tableId: '190006Table1',
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: 190006,
serialNumber: '190006Table1InsideInquiryNo',
tableId: '190006Table1',
tableName: '报价信息表',
columnProp: 'insideInquiryNo',
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: 190006,
serialNumber: '190006Table1Auth',
tableId: '190006Table1',
tableName: '询价产品表',
columnProp: 'auth',
headerAlign: 'center',
align: 'left',
columnLabel: '审批组/人',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120
},
{
userId: this.$store.state.user.name,
functionId: 190006,
serialNumber: '190006Table2StepId',
tableId: '190006Table2',
tableName: '询价产品表',
columnProp: 'stepId',
headerAlign: 'center',
align: 'left',
columnLabel: '审批步骤号',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120
},
{
userId: this.$store.state.user.name,
functionId: 190006,
serialNumber: '190006Table1AuthHistRemark',
tableId: '190006Table1',
tableName: '询价信息表',
columnProp: 'authHistRemark',
headerAlign: 'center',
align: 'left',
columnLabel: '审批备注',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120
},
],
// ======== 必填规则 ========
rules: {
bu: [
{required: true, message: ' ', trigger: 'change'},
{required: true, message: ' ', trigger: 'blur'},
],
quoteVersionNo: [
{required: true, message: ' ', trigger: 'change'},
{required: true, message: ' ', trigger: 'blur'},
],
customerNo: [
{required: true, message: ' ', trigger: 'change'},
{required: true, message: ' ', trigger: 'blur'},
],
customerDesc: [
{required: true, message: ' ', trigger: 'change'},
{required: true, message: ' ', trigger: 'blur'},
],
requester: [
{required: true, message: ' ', trigger: 'change'},
{required: true, message: ' ', trigger: 'blur'},
],
requesterName: [
{required: true, message: ' ', trigger: 'change'},
{required: true, message: ' ', trigger: 'blur'},
],
quoter: [
{required: true, message: ' ', trigger: 'change'},
{required: true, message: ' ', trigger: 'blur'},
],
quoterName: [
{required: true, message: ' ', trigger: 'change'},
{required: true, message: ' ', trigger: 'blur'},
],
priorityLevel: [
{required: true, message: ' ', trigger: 'change'},
],
requiredCompletionDate: [
{required: true, message: ' ', trigger: 'change'},
{required: true, message: ' ', trigger: 'blur'},
],
requestDate: [
{required: true, message: ' ', trigger: 'change'},
{required: true, message: ' ', trigger: 'blur'},
],
},
inquiryPartRules: {
bu: [
{required: true, message: ' ', trigger: 'change'},
{required: true, message: ' ', trigger: 'blur'},
],
partNo: [
{required: true, message: ' ', trigger: 'change'},
{required: true, message: ' ', trigger: 'blur'},
],
partDesc: [
{required: true, message: ' ', trigger: 'change'},
{required: true, message: ' ', trigger: 'blur'},
],
inquiryQty: [
{required: true, message: ' ', trigger: 'change'},
{required: true, message: ' ', trigger: 'blur'},
],
umId: [
{required: true, message: ' ', trigger: 'change'},
{required: true, message: ' ', trigger: 'blur'},
],
codeNo: [
{required: true, message: ' ', trigger: 'change'},
{required: true, message: ' ', trigger: 'blur'},
],
},
// ======== 选中的当前行数据 ========
quoteCurrentRow: {},
// ======== 模态框开关控制 ========
modalFlag: false,
modalDisableFlag: false,
inquiryPartModalFlag: false,
inquiryPartModalDisableFlag: false,
inquiryPartItemModalFlag: false,
}
},
mounted() {
this.$nextTick(() => {
/*第二个表格高度的动态调整*/
this.height = window.innerHeight - 210;
})
},
created() {
this.getSiteAndBuByUserName()
// 获取 URL 查询参数
const {quoteVersionNo} = this.$route.query;
// 将查询参数赋值给 searchData
if (quoteVersionNo){
this.searchData1.quoteVersionNo = this.$route.query.quoteVersionNo;
}
this.getDataList()
},
methods: {
// 获取用户的bu
getSiteAndBuByUserName () {
let tempData = {
username: this.$store.state.user.name,
}
getSiteAndBuByUserName(tempData).then(({data}) => {
if (data.code === 0) {
this.userBuList = data.rows
}
})
},
// ======== 分页相关方法 ========
/**
* 每页数
* @param val
*/
sizeChangeHandle(val) {
this.pageSize = val
this.pageIndex = 1
this.getDataList()
},
/**
* 当前页
* @param val
*/
currentChangeHandle(val) {
this.pageIndex = val
this.getDataList()
},
// ======== 页签切换相关方法 ========
/**
* 列表表格选择替换
* @param tab
* @param event
*/
tabClick(tab, event) {
// 刷新列表数据
this.refreshCurrentTabTable()
},
// ======== 列表操作方法 ========
/**
* 单机选中询价信息
* @param row
*/
quoteClickRow(row) {
this.quoteCurrentRow = JSON.parse(JSON.stringify(row))
},
/**
* 当前值发生变化的时候修改
* @param row
* @param oldRow
*/
changeCurrentRow(row, oldRow) {
// 判断是否是获取焦点的事件
if (row) {
this.quoteCurrentRow = JSON.parse(JSON.stringify(row))
//刷新当前页表
this.refreshCurrentTabTable()
}
},
/**
* 刷新页签的table数据
*/
refreshCurrentTabTable() {
},
// ======== 列表数据刷新方法 ========
/**
* 获取数据列表
*/
getDataListAll(){
this.searchData1 = null
this.getDataList()
},
getDataList() {
console.log(this.searchData1)
this.searchData.limit = this.pageSize
this.searchData.page = this.pageIndex
let inData = this.searchData
if (this.searchData1 !== null){
this.searchData1.limit = this.pageSize
this.searchData1.page = this.pageIndex
inData = this.searchData1
}
searchUserAuthQuoteApplicationInfo(inData).then(({data}) => {
if (data.code === 0) {
this.dataList = data.page.list
this.pageIndex = data.page.currPage
this.pageSize = data.page.pageSize
this.totalPage = data.page.totalCount
this.dataList.forEach(item => {
if (item.groupDesc === '' || item.groupDesc === null) {
item.auth = item.userDisplay
} else {
item.auth = item.groupDesc
}
})
//判断是否全部存在数据
if (this.totalPage > 0) {
//设置选中行
this.$refs.mainTable.setCurrentRow(this.dataList[0])
this.refreshCurrentTabTable() //加载当前的页签的table
this.quoteClickRow(this.dataList[0])
}
}
this.dataListLoading = false
})
},
// /**
// * 获得这些询价号的全部附件
// */
// getFileContentList () {
// let currentData = {
// orderRef1: this.$store.state.user.site,
// orderRef2: this.enterResultData.quotationNo
// }
// getFileContentList(currentData).then(({data}) => {
// if (data && data.code === 0) {
// this.enterResultData.fileContentList = data.rows
// } else {
// this.enterResultData.fileContentList = []
// }
// })
// },
// ======== chooseList相关方法 ========
/**
* 获取基础数据列表S
* @param val
* @param type
*/
getBaseList(val, type) {
this.tagNo = val
this.tagNo1 = type
this.$nextTick(() => {
let strVal = ''
let conSql = ''
if (val === 509) {
if (type === 1) {
strVal = this.modalData.customerNo ? this.modalData.customerNo : ''
}
if (type === 2) {
strVal = this.searchData.customerNo ? this.searchData.customerNo : ''
}
}
if (val === 2002) {
if (type === 1) {
strVal = this.searchData.quoterName ? this.searchData.quoterName : ''
conSql = " and b.site = '" + this.$store.state.user.site + "'"
}
if (type === 2) {
strVal = this.modalData.quoterName ? this.modalData.quoterName : ''
conSql = " and b.site = '" + this.$store.state.user.site + "'"
}
}
if (val === 2008) {
if (type === 1) {
strVal = this.searchData.requesterName ? this.searchData.requesterName : ''
conSql = " and b.site = '" + this.$store.state.user.site + "'"
}
if (type === 2) {
strVal = this.modalData.requesterName ? this.modalData.requesterName : ''
conSql = " and b.site = '" + this.$store.state.user.site + "'"
}
}
this.$refs.baseList.init(val, strVal, conSql)
})
},
/**
* 列表方法的回调
* @param val
*/
getBaseData(val) {
if (this.tagNo === 509) {
if (this.tagNo1 === 1) {
if (val.customer_no === this.modalData.customerNo) {
return
}
this.modalData.customerNo = val.customer_no
this.modalData.customerDesc = val.customer_desc
}
if (this.tagNo1 === 2) {
if (val.customer_no === this.searchData.customerNo) {
return
}
this.searchData.customerNo = val.customer_no
}
}
if (this.tagNo === 2002) {
if (this.tagNo1 === 1) {
this.searchData.quoter = val.username
this.searchData.quoterName = val.user_display
}
if (this.tagNo1 === 2) {
this.modalData.quoter = val.username
this.modalData.quoterName = val.user_display
}
}
if (this.tagNo === 2008) {
if (this.tagNo1 === 1) {
this.searchData.requester = val.username
this.searchData.requesterName = val.user_display
}
if (this.tagNo1 === 2) {
this.modalData.requester = val.username
this.modalData.requesterName = val.user_display
}
}
},
updateModal(row) {
this.modalData = JSON.parse(JSON.stringify(row))
this.modalData.strActAuthorizeDate = this.dayjs().format("YYYY-MM-DD HH:mm:ss")
this.modalData.userName = this.$store.state.user.name
this.reviewFlag = true
},
saveReview(row, val) {
if (row.authHistRemark == '') {
this.$alert(data.msg, '操作提示', {
confirmButtonText: '确定',
callback: action => {
this.saveButton = false
}
});
}
this.modalData.id = row.authHistId
this.modalData.actAuthorizator = row.userName
this.modalData.remark = row.authHistRemark
this.modalData.actAuthorizeDate = row.strActAuthorizeDate
this.modalData.orderRef1 = row.quoteVersionNo
if (val === "Y") {
if (row.lastStepFlag === 'Y') {
this.modalData.approveResult = "已审批"
} else {
this.modalData.approveResult = "已审批"
}
} else if (val === "N") {
this.modalData.approveResult = "未通过"
}
updateAuthHist(this.modalData).then(({data}) => {
if (data && data.code === 0) {
this.getDataList()
this.reviewFlag = false
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {}
})
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
})
},
// ======== 导出相关方法 ========
/**
* 导出excel
*/
async createExportData() {
this.searchData.limit = -1
this.searchData.page = 1
await searchUserAuthQuoteApplicationInfo(this.searchData).then(({data}) => {
this.resultList = data.page.list
})
return this.resultList
},
startDownload() {
},
finishDownload() {
},
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
},
// ======== 导入相关方法 ========
handleImportQuotation() {
let currentData = {
createBy: this.$store.state.user.name,
site: this.$store.state.user.site,
}
//打开组件 去做新增业务
this.$nextTick(() => {
this.$refs.quotationUpload.init(currentData)
})
},
// openSaveDataDialog(){
// if (this.modalData.title === '询价新增') {
// let rfqNos = [];
// this.dataList.forEach((item) => {
// // 如果item.rfqNo为XJ开头
// if (item.quoteVersionNo.startsWith('XJ')) {
// // 解析数字部分
// const numPart = parseInt(item.quoteVersionNo.replace('XJ', ''), 10);
// if (!isNaN(numPart)) {
// rfqNos.push(numPart);
// }
// }
// });
// if (rfqNos.length === 0) {
// // 如果没有XJ开头的rfqNo
// this.modalData.quoteVersionNo = 'XJ00000001';
// } else {
// // 取到最大的XJ开头的rfqNo
// let maxRfqNo = Math.max(...rfqNos);
//
// // 生成新的rfqNo,确保有9位数,前面补零
// maxRfqNo += 1; // 增加最大值
// this.modalData.quoteVersionNo = 'XJ' + String(maxRfqNo).padStart(8, '0');
// }
// }
// },
// 保存弹框关闭事件
closeSaveDataDialog() {
this.modalData = {
flag: '',
title: '',
site: '',
bu: '',
buNo: '',
buDesc: '',
id: '',
quoteVersionNo: '',
customerNo: '',
customerDesc: '',
requester:'',
requesterName: '',
quoter: '',
quoterName: '',
customerInquiryNo: '',
status: '',
priorityLevel: '',
requestDate: '',
requiredCompletionDate: '',
remark: '',
}
this.modalFlag = false
},
rowStyle({row}) {
if (this.quoteCurrentRow.id === row.id) {
return {'background-color': '#E8F7F6', cursor: 'pointer'};
}
},
},
}
</script>
<style scoped>
/deep/ .customer-tab .el-tabs__content {
padding: 0px !important;
height: 100%;
}
/deep/ .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner {
background-color: #17B3A3;
border-color: #17B3A3;
}
/deep/ .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner::after {
border-color: #FFF
}
/deep/ .el-form-item--medium .el-form-item__content{
height: auto;
}
.el-input-number /deep/ .el-input__inner {
text-align: right;
padding-right: 5px !important;
}
/deep/ .el-input .el-input--medium{
line-height: 20px;
}
/deep/ .el-input-number .el-input--medium{
line-height: 20px;
}
/*table中input 修改样式*/
/deep/ div.table-el-date {
padding: 0px 0px;
height: 25px !important;
}
/*table中input*/
div.table-el-date /deep/ input.el-input__inner{
padding: 0px 0px;
height: 23px !important;
text-align: right;
}
/* 特殊的样式*/
/deep/ .el-table div.cell:has(.table-el-date) {
/* 直接作用于 <td> 元素 */
padding: 0px;
height: 25px;
}
.el-transfer-panel {
border: 2px solid #17b3a3;
border-radius: 4px;
overflow: hidden;
background: #fff;
display: inline-block;
vertical-align: middle;
width: 200px;
max-height: 100%;
-webkit-box-sizing: border-box;
box-sizing: border-box;
position: relative;
}
.el-transfer-panel .el-transfer-panel__header {
height: 40px;
line-height: 40px;
background: #17b3a3;
margin: 0;
padding-left: 15px;
border-bottom: 1px solid #17b3a3;
-webkit-box-sizing: border-box;
box-sizing: border-box;
color: #000;
}
.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label {
font-size: 14px;
color: #303133;
font-weight: 400;
}
</style>