Browse Source

Merge remote-tracking branch 'origin/master'

java8
qiezi 1 year ago
parent
commit
8498758542
  1. 4
      src/api/auth/auth.js
  2. 2
      src/api/inquiry/inquiryApplication.js
  3. 2
      src/api/quote/quote.js
  4. 968
      src/views/modules/auth/authInfo.vue
  5. 194
      src/views/modules/auth/authInquiry.vue
  6. 1112
      src/views/modules/auth/authQuote.vue
  7. 10
      src/views/modules/eam/com_project_proof_record.vue
  8. 2
      src/views/modules/eam/eamProjectInfo.vue
  9. 5
      src/views/modules/eam/eamProjectPartInfo.vue

4
src/api/auth/auth.js

@ -35,3 +35,7 @@ export const authRuleStepDelete = data => createAPI(`auth/authRuleStepDelete`,'p
export const authRuleStepEdit = data => createAPI(`auth/authRuleStepEdit`,'post',data)
export const getBusinessTypeList = data => createAPI(`auth/getBusinessTypeList`,'post',data)
export const updateAuthHist = data => createAPI(`auth/updateAuthHist`,'post',data)
export const searchAuthInfo = data => createAPI(`auth/searchAuthInfo`,'post',data)

2
src/api/inquiry/inquiryApplication.js

@ -10,4 +10,4 @@ export const deleteInquiryApplicationInfo = data => createAPI("/inquiry/inquiryA
export const searchUserAuthInquiryApplicationInfo = data => createAPI("/inquiry/inquiryApplication/searchUserAuthInquiryApplicationInfo", "post", data);
export const searchInquiryUserAuthInfo = data => createAPI("/inquiry/inquiryApplication/searchInquiryUserAuthInfo", "post", data);
export const searchAllInquiryQuoteInfo = data => createAPI("/inquiry/inquiryApplication/searchAllInquiryQuoteInfo", "post", data);

2
src/api/quote/quote.js

@ -14,3 +14,5 @@ export const queryQuoteRoleUser = (data) => createAPI(`/quote/user`,'post',data)
export const batchSaveQuote = (data) => createAPI(`/quote/inside/batch/save`,'post',data)
export const updateQuoteStatus = (data) => createAPI(`/quote/update/status`,'post',data)
export const searchUserAuthQuoteApplicationInfo = data => createAPI("/quote/searchUserAuthQuoteApplicationInfo", "post", data);

968
src/views/modules/auth/authInfo.vue

@ -0,0 +1,968 @@
<template>
<div class="mod-config">
<!-- 查询条件 -->
<el-form :inline="true" label-position="top" :model="searchData" @keyup.enter.native="getDataList()">
<el-form-item :label="'BU'">
<el-select v-model="searchData.bu" placeholder="请选择" clearable style="width: 120px">
<el-option
v-for = "i in userBuList"
:key = "i.buNo"
:label = "i.buDesc"
:value = "i.buNo">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="询价单号">
<el-input v-model="searchData.applicationNo" clearable style="width: 120px"></el-input>
</el-form-item>
<el-form-item label="客户编码">
<span style="cursor: pointer" slot="label" @click="getBaseList(509,2)"><a herf="#">客户编码</a></span>
<el-input v-model="searchData.customerNo" clearable style="width: 120px"></el-input>
</el-form-item>
<el-form-item :label="'客户名称'">
<el-input v-model="searchData.customerDesc" clearable style="width: 120px"></el-input>
</el-form-item>
<el-form-item label="客户询价单号">
<el-input v-model="searchData.customerInquiryNo"></el-input>
</el-form-item>
<el-form-item :label="'报价专员'">
<span style="cursor: pointer" slot="label" @click="getBaseList(2002,1)"><a herf="#">报价专员</a></span>
<el-input v-model="searchData.quoterName" clearable style="width: 120px"></el-input>
</el-form-item>
<el-form-item :label="' '">
<el-button @click="getDataList()">查询</el-button>
<!-- <download-excel-->
<!-- :fields="fields()"-->
<!-- :data="exportData"-->
<!-- type="xls"-->
<!-- :name="exportName"-->
<!-- :header="exportHeader"-->
<!-- :footer="exportFooter"-->
<!-- :fetch="createExportData"-->
<!-- :before-generate="startDownload"-->
<!-- :before-finish="finishDownload"-->
<!-- worksheet="导出信息"-->
<!-- class="el-button el-button&#45;&#45;primary el-button&#45;&#45;medium">-->
<!-- {{ "导出" }}-->
<!-- </download-excel>-->
</el-form-item>
</el-form>
<!-- 询价报价列表 -->
<el-table
height="35vh"
:data="dataList"
border
highlight-current-row
ref="mainTable"
@row-click="inquiryQuoteClickRow"
@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">
<div v-if="item.columnProp !== 'status' && item.columnProp !== 'priorityLevel'">
<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>
</div>
<div v-else-if="item.columnProp === 'status'">
<span v-if="!item.columnHidden">
<span v-if="scope.row.status === 'C'">草稿</span>
<span v-else-if="scope.row.status === 'B'">已下达</span>
<span v-else-if="scope.row.status === 'A'">已报价</span>
<span v-else>{{ scope.row.status }}</span>
</span>
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
style="width: 100px; height: 80px"/></span>
</div>
</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="activeTable" class="customer-tab" type="border-card" @tab-click="tabClick">
<!-- 详情页签 -->
<el-tab-pane label="审批信息" name="auth_info">
<el-table
height="40vh"
:data="authInfoDataList"
border
highlight-current-row
ref="authInfoTable"
@row-click="authInfoClickRow"
@current-change="changeAuthInfoCurrentRow"
v-loading="dataListLoading"
style="width: 100%;margin-top: 5px">
<el-table-column
v-for="(item,index) in columnAuthInfoList" :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>
</el-tab-pane>
</el-tabs>
<!-- chooseList模态框 -->
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
</div>
</template>
<script>
import {searchAllInquiryQuoteInfo} from "@/api/inquiry/inquiryApplication";
import {searchAuthInfo} from "../../../api/auth/auth";
import DictDataSelect from "../sys/dict-data-select.vue";
import quotationUpload from "../quote/quotation_upload.vue";
import {getSiteAndBuByUserName} from "../../../api/qc/qc";
import Chooselist from '@/views/modules/common/Chooselist_eam'
import {searchUserAuthInquiryApplicationInfo} from "../../../api/inquiry/inquiryApplication";
export default {
components: {
quotationUpload,
DictDataSelect,
Chooselist
},
data() {
return {
//
exportData: [],
exportName: '询价申请' + this.dayjs().format('YYYYMMDDHHmmss'),
exportHeader: ['询价申请'],
exportFooter: [],
resultList: [],
userBuList: [],
uploadUrl: '/plm/quotationInformation/uploadExcel',
// ======== ========
secondHeight: 200,
// ======== ========
pageIndex: 1,
pageSize: 50,
totalPage: 0,
activeTable: 'auth_info',
//
searchData: {
userId: this.$store.state.user.id,
site: this.$store.state.user.site,
id: '',
customerNo: '',
customerDesc: '',
applicationNo: '',
rfqNo: '',
bu: '',
requestStartDate: '',
requestEndDate: '',
requiredCompletionStartDate: '',
requiredCompletionEndDate: '',
status: '',
quoterName: '',
requesterName: '',
priorityLevel: '',
orderRef1: 'XJ',
page: 1,
limit: 10,
menuId: this.$route.meta.menuId,
},
//
dataListLoading: false,
// ======== ========
modalData: {
flag: '',
title: '',
site: this.$store.state.user.site,
userName: this.$store.state.user.name,
id: '',
rfqNo: '',
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: ''
},
// ======== ========
dataList: [],
authInfoDataList: [],
// ======== ========
columnList: [
{
userId: this.$store.state.user.name,
functionId: 190007,
serialNumber: '190007Table1BuDesc',
tableId: '190007Table1',
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,
functionId: 190007,
serialNumber: '190007Table1rfqNo',
tableId: '190007Table1',
tableName: '申请单信息表',
columnProp: 'applicationNo',
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: 190007,
serialNumber: '190007Table1CustomerNo',
tableId: '190007Table1',
tableName: '申请单信息表',
columnProp: 'customerNo',
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: 190007,
serialNumber: '190007Table1CustomerDesc',
tableId: '190007Table1',
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: 190007,
serialNumber: '190007Table1QuoterName',
tableId: '190007Table1',
tableName: '申请单信息表',
columnProp: 'quoterName',
headerAlign: 'center',
align: 'left',
columnLabel: '报价专员',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 190007,
serialNumber: '190007Table1CustomerInquiryNo',
tableId: '190007Table1',
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: 190007,
serialNumber: '190007Table1Status',
tableId: '190007Table1',
tableName: '申请单信息表',
columnProp: 'status',
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: 190007,
serialNumber: '190007Table1CreateBy',
tableId: '190007Table1',
tableName: '申请单信息表',
columnProp: 'createBy',
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: 190007,
serialNumber: '190007Table1CreateDate',
tableId: '190007Table1',
tableName: '申请单信息表',
columnProp: 'createDate',
headerAlign: 'center',
align: 'center',
columnLabel: '创建时间',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 130
},
{
userId: this.$store.state.user.name,
functionId: 190007,
serialNumber: '190007Table1UpdateBy',
tableId: '190007Table1',
tableName: '申请单信息表',
columnProp: 'updateBy',
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: 190007,
serialNumber: '190007Table1UpdateDate',
tableId: '190007Table1',
tableName: '申请单信息表',
columnProp: 'updateDate',
headerAlign: 'center',
align: 'center',
columnLabel: '更新时间',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 130
},
],
columnAuthInfoList: [
{
userId: this.$store.state.user.name,
functionId: 190007,
serialNumber: '190007Table1OrderRef1',
tableId: '190007Table1',
tableName: '申请单信息表',
columnProp: "orderRef1",
headerAlign: "center",
align: "center",
columnLabel: "申请单号",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
},
{
userId: this.$store.state.user.name,
functionId: 190007,
serialNumber: '190007Table1StepId',
tableId: '190007Table1',
tableName: '申请单信息表',
columnProp: "stepId",
headerAlign: "center",
align: "center",
columnLabel: "审批步骤号",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
},
{
userId: this.$store.state.user.name,
functionId: 190007,
serialNumber: '190007Table1NameDesc',
tableId: '190007Table1',
tableName: '申请单信息表',
columnProp: "nameDesc",
headerAlign: "center",
align: "center",
columnLabel: "审批类型/审批人",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false
},
{
userId: this.$store.state.user.name,
functionId: 190007,
serialNumber: '190007Table1ActAuthorizatorDisplay',
tableId: '190007Table1',
tableName: '申请单信息表',
columnProp: "actAuthorizatorDisplay",
headerAlign: "center",
align: "center",
columnLabel: "实际审批人",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false
},
{
userId: this.$store.state.user.name,
functionId: 190007,
serialNumber: '190007Table1ActAuthorizeDate',
tableId: '190007Table1',
tableName: '申请单信息表',
columnProp: "actAuthorizeDate",
headerAlign: "center",
align: "center",
columnLabel: "审批时间",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false
},
{
userId: this.$store.state.user.name,
functionId: 190007,
serialNumber: '190007Table1ApproveResult',
tableId: '190007Table1',
tableName: '申请单信息表',
columnProp: "approveResult",
headerAlign: "center",
align: "center",
columnLabel: "审批状态",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
},
{
userId: this.$store.state.user.name,
functionId: 190007,
serialNumber: '190007Table1Remark',
tableId: '190007Table1',
tableName: '申请单信息表',
columnProp: "remark",
headerAlign: "center",
align: "center",
columnLabel: "审批备注",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
},
],
// ======== ========
inquiryQuoteCurrentRow: {},
// ======== ========
modalFlag: false,
modalDisableFlag: false,
}
},
mounted() {
this.$nextTick(() => {
/*第二个表格高度的动态调整*/
this.height = window.innerHeight - 210;
})
},
created() {
this.getSiteAndBuByUserName()
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
*/
inquiryQuoteClickRow(row) {
this.inquiryQuoteCurrentRow = JSON.parse(JSON.stringify(row))
},
/**
* 单机选中申请单审批信息
* @param row
*/
authInfoClickRow(row) {
this.authInfoCurrentRow = JSON.parse(JSON.stringify(row))
},
/**
* 当前值发生变化的时候修改
* @param row
* @param oldRow
*/
changeCurrentRow(row, oldRow) {
//
if (row) {
this.inquiryQuoteCurrentRow = JSON.parse(JSON.stringify(row))
//
this.refreshCurrentTabTable()
}
},
/**
* 当前值发生变化的时候修改
* @param row
* @param oldRow
*/
changeAuthInfoCurrentRow(row, oldRow) {
//
if (row) {
this.authInfoCurrentRow = JSON.parse(JSON.stringify(row))
}
},
/**
* 刷新页签的table数据
*/
refreshCurrentTabTable() {
if (this.activeTable === 'auth_info') {
this.getAuthInfoDataList()
}
},
// ======== ========
/**
* 获取数据列表
*/
getDataList() {
this.searchData.limit = this.pageSize
this.searchData.page = this.pageIndex
searchAllInquiryQuoteInfo(this.searchData).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.inquiryQuoteClickRow(this.dataList[0])
}
}
this.dataListLoading = false
})
},
getAuthInfoDataList() {
let inData = {
orderRef1: this.inquiryQuoteCurrentRow.applicationNo,
site: this.$store.state.user.site,
orderRef2: this.inquiryQuoteCurrentRow.buNo,
}
searchAuthInfo(inData).then(({data}) => {
if (data.code === 0) {
this.authInfoDataList = data.rows
this.authInfoDataList.forEach(item => {
if (item.authTypeDb === 'G') {
item.nameDesc = '审批组'
} else {
item.nameDesc = '个人/'+item.authUserDisplay
}
if (item.approveResult === '' || item.approveResult === null) {
item.approveResult = '未审批'
}
})
//
if (this.authInfoDataList.length > 0) {
//
this.$refs.authInfoTable.setCurrentRow(this.authInfoDataList[0])
this.authInfoClickRow(this.authInfoDataList[0])
}
}
})
},
// ======== chooseList ========
/**
* 获取基础数据列表S
* @param val
* @param type
*/
getBaseList(val, type) {
this.tagNo = val
this.tagNo1 = type
this.$nextTick(() => {
let strVal = ''
let conSql = ''
if (val === 220) {
strVal = this.inquiryPartModalData.codeNo ? this.inquiryPartModalData.codeNo : ''
conSql =" and function_type = 'PRICECHECK'" + " and site = '" + this.inquiryPartModalData.bu.split('_')[0] + "'" +
" and bu_no = '" + this.inquiryPartModalData.bu.split('_')[1] + "'"
}
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 === 510) {
strVal = this.inquiryPartModalData.umId ? this.inquiryPartModalData.umId : ''
conSql = " and site = '" + this.inquiryPartModalData.bu.split('_')[0] + "'"
}
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 ===220) {
this.inquiryPartModalData.codeNo = val.code_no
this.inquiryPartModalData.codeDesc = val.code_desc
}
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 === 510) {
this.inquiryPartModalData.umId = val.UMID
this.inquiryPartModalData.umName = val.UMName
}
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
}
}
},
// ======== ========
/**
* 导出excel
*/
async createExportData() {
this.searchData.limit = -1
this.searchData.page = 1
await searchUserAuthInquiryApplicationInfo(this.searchData).then(({data}) => {
this.resultList = data.page.list
// dataList -
this.resultList.forEach((item) => {
if (item.status === 'A') {
item.status = '已报价'
} else if (item.status === 'B') {
item.status = '已下达'
} else if (item.status === 'C') {
item.status = '草稿'
}
if (item.priorityLevel === 'A') {
item.priorityLevel = '普通'
} else if (item.priorityLevel === ' B') {
item.priorityLevel = '重要'
} else if (item.priorityLevel === ' C') {
item.priorityLevel = '紧急'
}
})
})
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)
})
},
rowStyle({row}) {
if (this.inquiryQuoteCurrentRow.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>

194
src/views/modules/auth/authInquiry.vue

@ -150,6 +150,16 @@
</div>
</template>
</el-table-column>
<el-table-column
fixed="right"
header-align="center"
align="center"
width="160"
label="操作">
<template slot-scope="scope">
<el-link style="cursor: pointer" @click="updateModal(scope.row)">审批</el-link>
</template>
</el-table-column>
</el-table>
<!-- 分页插件 -->
@ -163,6 +173,46 @@
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
<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.rfqNo"></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>
@ -172,7 +222,7 @@
<script>
import Chooselist from '@/views/modules/common/Chooselist_eam'
import {getSiteAndBuByUserName} from "../../../api/qc/qc";
import {searchInquiryApplicationInfo,addInquiryApplicationInfo,updateInquiryApplicationInfo,deleteInquiryApplicationInfo,searchUserAuthInquiryApplicationInfo,searchInquiryUserAuthInfo} from "@/api/inquiry/inquiryApplication";
import {searchInquiryApplicationInfo,addInquiryApplicationInfo,updateInquiryApplicationInfo,deleteInquiryApplicationInfo,searchUserAuthInquiryApplicationInfo} from "@/api/inquiry/inquiryApplication";
import {searchInquiryDetailInfo,addInquiryDetailInfo,updateInquiryDetailInfo,deleteInquiryDetailInfo} from "@/api/inquiry/inquiryDetail";
import {getItemListByInquiryPartAndCodeNo,updateInquiryPartItemList} from "@/api/inquiry/inquiryDetail";
import DictDataSelect from "../sys/dict-data-select.vue";
@ -181,6 +231,7 @@ import {verifyData} from "@/api/part/partInformation";
import {EventBus} from "../../../main";
import {partInformationSearch} from "../../../api/part/partInformation";
import quotationUpload from "../quote/quotation_upload.vue";
import {updateAuthHist} from "../../../api/auth/auth";
export default {
computed: {
@ -208,36 +259,6 @@ export default {
default:200
}
},
watch: {
searchData: {
deep: true,
handler: function (newV, oldV) {
if (this.searchData.customerNo !== '' || this.searchData.rfqNo !== ''){
this.searchData.customerNo = this.searchData.customerNo.toUpperCase()
this.searchData.rfqNo = this.searchData.rfqNo.toUpperCase()
}
}
},
modalData: {
deep: true,
handler: function (newV, oldV) {
if (this.modalData.customerNo !== '' || this.modalData.rfqNo !== '') {
this.modalData.customerNo = this.modalData.customerNo.toUpperCase()
this.modalData.rfqNo = this.modalData.rfqNo.toUpperCase()
}
}
},
inquiryPartModalData: {
deep: true,
handler: function (newV, oldV) {
if (this.inquiryPartModalData.partNo !== '' || this.inquiryPartModalData.codeNo !== '' || this.inquiryPartModalData.umId !== '') {
this.inquiryPartModalData.partNo = this.inquiryPartModalData.partNo.toUpperCase()
this.inquiryPartModalData.codeNo = this.inquiryPartModalData.codeNo.toUpperCase()
this.inquiryPartModalData.umId = this.inquiryPartModalData.umId.toUpperCase()
}
}
}
},
data() {
return {
userBuList: [],
@ -258,7 +279,6 @@ export default {
yearlyOrMonthlyRequirement:'',
runningWidth:'',
},
activeTab:'part',
priceCheckPropertiesList: [],
//
exportData: [],
@ -300,6 +320,7 @@ export default {
dataListLoading: false,
//
chooseProjectListFlag: false,
reviewFlag: false,
//
activeTable: 'inquiryAuth',
// ======== ========
@ -326,6 +347,13 @@ export default {
createBy: '',
updateDate: '',
updateBy: '',
authHistId: '',
approveResult: '',
authHistRemark: '',
canAuthFlag: '',
actAuthorizator: '',
strActAuthorizeDate: this.dayjs().format("YYYY-MM-DD HH:mm:ss"),
actAuthorizeDate: ''
},
inquiryPartModalData: {
flag: '',
@ -606,10 +634,10 @@ export default {
{
userId: this.$store.state.user.name,
functionId: 190005,
serialNumber: '190005Table1Status',
serialNumber: '190005Table1AuthHistRemark',
tableId: '190005Table1',
tableName: '询价信息表',
columnProp: 'remark',
columnProp: 'authHistRemark',
headerAlign: 'center',
align: 'left',
columnLabel: '备注',
@ -782,9 +810,6 @@ export default {
* 刷新页签的table数据
*/
refreshCurrentTabTable() {
if (this.activeTable === 'inquiryAuth') {
this.searchInquiryUserAuthInfo()
}
},
// ======== ========
@ -819,18 +844,6 @@ export default {
})
},
searchInquiryUserAuthInfo() {
this.inquiryCurrentRow.orderRef1 = 'XJ'
this.inquiryCurrentRow.userId = this.$store.state.user.id
searchInquiryUserAuthInfo(this.inquiryCurrentRow).then(({data}) => {
if (data.code === 0) {
this.inquiryAuthDataList = data.page.list
if (this.inquiryAuthDataList.length > 0) {
this.$refs.secondaryTable.setCurrentRow(this.inquiryAuthDataList[0])
}
}
})
},
// /**
// *
// */
@ -950,6 +963,53 @@ export default {
}
},
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
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
@ -1060,42 +1120,6 @@ export default {
}
this.modalFlag = false
},
openInquiryPartSaveDataDialog() {
if (this.inquiryPartModalData.title === '询价产品新增') {
let partNos = [];
this.inquiryPartModalData.queryType = 'TP';
this.inquiryPartModalData.userName = this.$store.state.user.name;
this.inquiryPartModalData.limit = -1;
this.inquiryPartModalData.page = 1;
this.inquiryPartModalData.buNo = '';
partInformationSearch(this.inquiryPartModalData).then(({data}) => {
if (data && data.code === 0) {
data.page.list.forEach((item) => {
// item.partNoTP
if (item.partNo.startsWith('TP')) {
//
const numPart = parseInt(item.partNo.replace('TP', ''), 10);
if (!isNaN(numPart)) {
partNos.push(numPart);
}
}
});
if (partNos.length === 0) {
// TPpartNo
this.inquiryPartModalData.partNo = 'TP00000001';
} else {
// TPpartNo
let maxPartNo = Math.max(...partNos);
// partNo9
maxPartNo += 1; //
this.inquiryPartModalData.partNo = 'TP' + String(maxPartNo).padStart(8, '0');
}
}
});
}
},
closeInquiryPartSaveDataDialog() {
this.inquiryPartModalData = {
title: '',

1112
src/views/modules/auth/authQuote.vue
File diff suppressed because it is too large
View File

10
src/views/modules/eam/com_project_proof_record.vue

@ -39,7 +39,7 @@
:min-width="item.columnWidth"
:label="item.columnLabel">
<template slot-scope="scope">
<div v-if="scope.row.projectPhase === 'Alpha' || scope.row.projectPhase === 'Beta' || scope.row.allUploaded === 'Y'">
<div v-if="scope.row.allUploaded === 'Y'">
<span v-if="!item.columnHidden" style="color: #0033ff;">{{scope.row[item.columnProp]}}</span>
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
style="width: 100px; height: 80px"/></span>
@ -1186,7 +1186,7 @@
}
});
},
getProofDocument() {
async getProofDocument() {
let tempData = {
site: this.$store.state.user.site,
username: this.$store.state.user.name,
@ -1204,7 +1204,7 @@
page: 1,
limit: 1000
}
getProofDocument(tempData).then(({data}) => {
return getProofDocument(tempData).then(({data}) => {
if (data && data.code === 0) {
this.proofDocumentList = data.page.list
for (let i = 0; i < this.proofDocumentList.length; i++) {
@ -1405,7 +1405,8 @@
updateBy: this.$store.state.user.name,
proofingStatus: '进行中',
proofingResultStatus: row.proofingResultStatus,
remark: row.remark
remark: row.remark,
type: 1
}
} else {
if (this.modalData.cProjectTypeDb === '' || this.modalData.cProjectTypeDb === null || this.modalData.cProjectTypeDb === undefined) {
@ -1527,7 +1528,6 @@
testPartNo: row.testPartNo,
proofingId: row.proofingId,
proofingNo: row.proofingNo,
proofDocumentDataList: this.proofDocumentList,
createBy: row.createBy,
}
if (tempData.createBy !== tempData.username) {

2
src/views/modules/eam/eamProjectInfo.vue

@ -3676,7 +3676,7 @@ import {searchBusinessInfo7} from "../../../api/factory/site";
site: this.projectPartCurrentRow.site,
buNo: this.projectPartCurrentRow.buNo,
userName: this.$store.state.user.name,
limit: 10,
limit: -1,
page: 1
}
eamProjectPartSearch(queryProjectPart).then(({data}) => {

5
src/views/modules/eam/eamProjectPartInfo.vue

@ -222,6 +222,11 @@
<a v-if="scope.row.status !== '草稿' && scope.row.status !== '已量产'" type="text" size="small" @click="changeFormalPartNo(scope.row)">转正式料号</a>
<a v-if="scope.row.status === '进行中' || scope.row.status === '已量产'" type="text" size="small" @click="updateModalStatus(scope.row)">转量产</a>
</div>
<div v-else-if="scope.row.status === '已量产'">
<a style="color: #0c4dbb" type="text" size="small" @click="addProofRecord(scope.row)">新增打样</a>
<a style="color: #0c4dbb" type="text" size="small" @click="changeFormalPartNo(scope.row)">转正式料号</a>
<a style="color: #0c4dbb" type="text" size="small" @click="updateModalStatus(scope.row)">转量产</a>
</div>
<div v-else>
<a style="color: red" type="text" size="small" @click="addProofRecord(scope.row)">新增打样</a>
<a style="color: red" type="text" size="small" @click="changeFormalPartNo(scope.row)">转正式料号</a>

Loading…
Cancel
Save