Browse Source

2024-05-30 更新

master
fengyuan_yang 2 years ago
parent
commit
a8d278c579
  1. 7
      src/api/processManagement/processManagement.js
  2. 6
      src/api/quotation/quotationInformation.js
  3. 58
      src/views/modules/changeManagement/changeRecord.vue
  4. 183
      src/views/modules/processManagement/processBindingInfo.vue
  5. 109
      src/views/modules/quotation/requestForQuote.vue

7
src/api/processManagement/processManagement.js

@ -84,5 +84,12 @@ export const getAuthorityFieldList = data => createAPI(`/plm/request/getAuthorit
*/ */
export const saveAuthorityList = data => createAPI(`/plm/request/saveAuthorityList`,'post',data) export const saveAuthorityList = data => createAPI(`/plm/request/saveAuthorityList`,'post',data)
/**
* 修改节点
* @param data
* @returns {*}
*/
export const editNodeInfo = data => createAPI(`/plm/request/editNodeInfo`,'post',data)

6
src/api/quotation/quotationInformation.js

@ -121,3 +121,9 @@ export const closeModalDeleteFile = data => createAPI(`/plm/quotationInformation
* @returns {*} * @returns {*}
*/ */
export const searchQuotationByQuotationNo = data => createAPI(`/plm/quotationInformation/searchQuotationByQuotationNo`,'post',data) export const searchQuotationByQuotationNo = data => createAPI(`/plm/quotationInformation/searchQuotationByQuotationNo`,'post',data)
/**
* 提交
* @param data
* @returns {*}
*/
export const submitChange = data => createAPI(`/plm/quotationInformation/submitChange`,'post',data)

58
src/views/modules/changeManagement/changeRecord.vue

@ -269,7 +269,9 @@
<el-footer style="height:25px;text-align:center"> <el-footer style="height:25px;text-align:center">
<el-button type="primary" @click="saveData">保存</el-button> <el-button type="primary" @click="saveData">保存</el-button>
<el-button type="primary" @click="modalFlag = false">关闭</el-button> <el-button type="primary" @click="modalFlag = false">关闭</el-button>
<el-button v-if="this.modalData.changeStatus === '审批中'" type="primary" @click="submitDataModal">提交</el-button>
<el-button v-if="modalData.changeStatus === '审批中'" type="primary" @click="agreeSubmit">同意</el-button>
<el-button v-if="modalData.changeStatus === '审批中' && modalData.isReject === 'Y'" type="primary" @click="rejectSubmit">驳回</el-button>
<!-- <el-button v-if="this.modalData.changeStatus === '审批中'" type="primary" @click="submitDataModal">提交</el-button>-->
</el-footer> </el-footer>
</el-tab-pane> </el-tab-pane>
@ -364,7 +366,8 @@
<el-footer style="height:25px;text-align:center"> <el-footer style="height:25px;text-align:center">
<el-button type="primary" @click="inventoryCostImpactSave">保存</el-button> <el-button type="primary" @click="inventoryCostImpactSave">保存</el-button>
<el-button type="primary" @click="modalFlag = false">关闭</el-button> <el-button type="primary" @click="modalFlag = false">关闭</el-button>
<el-button v-if="this.modalData.changeStatus === '审批中'" type="primary" @click="submitDataModal">提交</el-button>
<el-button v-if="modalData.changeStatus === '审批中'" type="primary" @click="agreeSubmit">同意</el-button>
<el-button v-if="modalData.changeStatus === '审批中' && modalData.isReject === 'Y'" type="primary" @click="rejectSubmit">驳回</el-button>
</el-footer> </el-footer>
</el-tab-pane> </el-tab-pane>
@ -512,7 +515,8 @@
<el-footer style="height:25px;text-align:center"> <el-footer style="height:25px;text-align:center">
<el-button type="primary" @click="executionInformationSave">保存</el-button> <el-button type="primary" @click="executionInformationSave">保存</el-button>
<el-button type="primary" @click="modalFlag = false">关闭</el-button> <el-button type="primary" @click="modalFlag = false">关闭</el-button>
<el-button v-if="this.modalData.changeStatus === '审批中'" type="primary" @click="submitDataModal">提交</el-button>
<el-button v-if="modalData.changeStatus === '审批中'" type="primary" @click="agreeSubmit">同意</el-button>
<el-button v-if="modalData.changeStatus === '审批中' && modalData.isReject === 'Y'" type="primary" @click="rejectSubmit">驳回</el-button>
</el-footer> </el-footer>
</el-tab-pane> </el-tab-pane>
@ -564,7 +568,8 @@
<el-footer style="height:25px;text-align:center"> <el-footer style="height:25px;text-align:center">
<el-button type="primary" @click="countersignatureSave">保存</el-button> <el-button type="primary" @click="countersignatureSave">保存</el-button>
<el-button type="primary" @click="modalFlag = false">关闭</el-button> <el-button type="primary" @click="modalFlag = false">关闭</el-button>
<el-button v-if="this.modalData.changeStatus === '审批中'" type="primary" @click="submitDataModal">提交</el-button>
<el-button v-if="modalData.changeStatus === '审批中'" type="primary" @click="agreeSubmit">同意</el-button>
<el-button v-if="modalData.changeStatus === '审批中' && modalData.isReject === 'Y'" type="primary" @click="rejectSubmit">驳回</el-button>
</el-footer> </el-footer>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
@ -1001,6 +1006,7 @@
searchData: { searchData: {
site: this.$store.state.user.site, site: this.$store.state.user.site,
changeNo: '', changeNo: '',
menuId: this.$route.meta.menuId,
page: 1, page: 1,
limit: 10 limit: 10
}, },
@ -1055,7 +1061,8 @@
nodeConclusion: '', nodeConclusion: '',
stepId: '', stepId: '',
rejectFlag: '', rejectFlag: '',
rejectStepId: ''
rejectStepId: '',
isReject: ''
}, },
costImpactData: { costImpactData: {
site: this.$store.state.user.site, site: this.$store.state.user.site,
@ -2353,7 +2360,8 @@
nodeConclusion: '', nodeConclusion: '',
stepId: row.stepId, stepId: row.stepId,
rejectFlag: row.rejectFlag, rejectFlag: row.rejectFlag,
rejectStepId: row.rejectStepId
rejectStepId: row.rejectStepId,
isReject: row.isReject
} }
this.changeTitle = '变更申请-' + this.modalData.changeNo this.changeTitle = '变更申请-' + this.modalData.changeNo
// ECN // ECN
@ -2403,17 +2411,41 @@
this.submitModalFlag = true this.submitModalFlag = true
}, },
//
submitData () {
if (this.modalData.nodeConclusion == null || this.modalData.nodeConclusion === '') {
this.$message.warning('请选择节点结论!')
return
}
//
agreeSubmit () {
this.$confirm(`是否确认提交?`, '提示', { this.$confirm(`是否确认提交?`, '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
this.modalData.nodeConclusion = 'Y'
this.submitData()
})
},
//
rejectSubmit () {
this.$confirm(`是否确认驳回?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.modalData.nodeConclusion = 'N'
this.submitData()
})
},
//
submitData () {
// if (this.modalData.nodeConclusion == null || this.modalData.nodeConclusion === '') {
// this.$message.warning('')
// return
// }
// this.$confirm(`?`, '', {
// confirmButtonText: '',
// cancelButtonText: '',
// type: 'warning'
// }).then(() => {
let tempData = { let tempData = {
site: this.modalData.site, site: this.modalData.site,
userName: this.$store.state.user.name, userName: this.$store.state.user.name,
@ -2433,7 +2465,7 @@
}) })
} }
}) })
})
// })
}, },
// ECN // ECN

183
src/views/modules/processManagement/processBindingInfo.vue

@ -171,9 +171,10 @@
fixed="right" fixed="right"
header-align="center" header-align="center"
align="center" align="center"
width="130"
width="160"
label="操作"> label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<el-link style="cursor: pointer" @click="editNodeModal(scope.row)">编辑</el-link>
<el-link style="cursor: pointer" @click="subDetailModal(scope.row)">出口配置</el-link> <el-link style="cursor: pointer" @click="subDetailModal(scope.row)">出口配置</el-link>
<el-link style="cursor: pointer" @click="authorityModal(scope.row)">权限配置</el-link> <el-link style="cursor: pointer" @click="authorityModal(scope.row)">权限配置</el-link>
</template> </template>
@ -279,11 +280,6 @@
:value = "i.tableId"> :value = "i.tableId">
</el-option> </el-option>
</el-select> </el-select>
<!-- <el-table-->
<!-- :data="authorityData.fieldList"-->
<!-- border-->
<!-- :height="300"-->
<!-- style="width: 100%;">-->
<el-table <el-table
:data="authorityData.fieldList" :data="authorityData.fieldList"
border border
@ -312,6 +308,15 @@
min-width="200" min-width="200"
label="字段描述"> label="字段描述">
</el-table-column> </el-table-column>
<el-table-column
header-align="center"
align="center"
min-width="50"
label="必填">
<template slot-scope="{row}">
<el-checkbox v-model="row.required" :disabled="!authoritySelections.includes(row)" true-label="Y" false-label="N"></el-checkbox>
</template>
</el-table-column>
</el-table> </el-table>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<div style="margin-top: 5px"> <div style="margin-top: 5px">
@ -321,6 +326,44 @@
</span> </span>
</el-dialog> </el-dialog>
<!-- 流程维护模态框 -->
<el-dialog title="流程节点" top="29vh" :close-on-click-modal="false" v-drag :visible.sync="nodeModalFlag" width="502px">
<el-form :inline="true" label-position="top" :model="nodeInfo" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="分类编码">
<el-input v-model="nodeInfo.classificationNo" :disabled="nodeModalDisableFlag" style="width: 150px"></el-input>
</el-form-item>
<el-form-item label="节点顺序">
<el-input v-model="nodeInfo.seqNo" :disabled="nodeModalDisableFlag" style="width: 142px"></el-input>
</el-form-item>
<el-form-item label="是否可驳回">
<el-select v-model="nodeInfo.isReject" style="width: 142px">
<el-option label="是" value="Y"></el-option>
<el-option label="否" value="N"></el-option>
</el-select>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="nodeInfo" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="流程ID">
<el-input v-model="nodeInfo.workflowId" :disabled="nodeModalDisableFlag" style="width: 150px"></el-input>
</el-form-item>
<el-form-item label="流程名称">
<el-input v-model="nodeInfo.workflowname" :disabled="nodeModalDisableFlag" style="width: 300px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="nodeInfo" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="节点ID">
<el-input v-model="nodeInfo.nodeId" :disabled="nodeModalDisableFlag" style="width: 150px"></el-input>
</el-form-item>
<el-form-item label="节点名称">
<el-input v-model="nodeInfo.nodeName" :disabled="nodeModalDisableFlag" style="width: 300px"></el-input>
</el-form-item>
</el-form>
<el-footer style="height:35px;margin-top: 25px;text-align:center">
<el-button type="primary" @click="editNodeInfo">保存</el-button>
<el-button type="primary" @click="nodeModalFlag = false">关闭</el-button>
</el-footer>
</el-dialog>
<!-- chooseList模态框 --> <!-- chooseList模态框 -->
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist> <Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
</div> </div>
@ -340,6 +383,7 @@
getFieldList, // getFieldList, //
getAuthorityFieldList, // getAuthorityFieldList, //
saveAuthorityList, // saveAuthorityList, //
editNodeInfo, //
} from '@/api/processManagement/processManagement.js' } from '@/api/processManagement/processManagement.js'
import Chooselist from '@/views/modules/common/Chooselist' import Chooselist from '@/views/modules/common/Chooselist'
import DictDataSelect from '../sys/dict-data-select.vue' import DictDataSelect from '../sys/dict-data-select.vue'
@ -413,6 +457,22 @@
fieldList: [], fieldList: [],
createBy: '', createBy: '',
}, },
queryTableParam: {
tableType: '',
passTable: [],
addTable: []
},
nodeInfo: {
site: '',
bu: '',
classificationNo: '',
workflowId: '',
workflowname: '',
nodeId: '',
nodeName: '',
seqNo: '',
isReject: ''
},
// ======== ======== // ======== ========
dataList: [], dataList: [],
checkedDetail: [], checkedDetail: [],
@ -693,7 +753,7 @@
sortLv: 0, sortLv: 0,
status: true, status: true,
fixed: '', fixed: '',
columnWidth: 90,
columnWidth: 60,
}, },
{ {
userId: this.$store.state.user.name, userId: this.$store.state.user.name,
@ -729,7 +789,7 @@
sortLv: 0, sortLv: 0,
status: true, status: true,
fixed: '', fixed: '',
columnWidth: 90,
columnWidth: 60,
}, },
{ {
userId: this.$store.state.user.name, userId: this.$store.state.user.name,
@ -765,7 +825,25 @@
sortLv: 0, sortLv: 0,
status: true, status: true,
fixed: '', fixed: '',
columnWidth: 80,
columnWidth: 60,
},
{
userId: this.$store.state.user.name,
functionId: 109001,
serialNumber: '109001Table2IsReject',
tableId: "109001Table2",
tableName: "节点信息表",
columnProp: 'isRejectDesc',
headerAlign: "center",
align: "center",
columnLabel: '是否可驳回',
columnHidden: false,
columnImage: false,
columnSortable: true,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 60,
}, },
/*{ /*{
userId: this.$store.state.user.name, userId: this.$store.state.user.name,
@ -787,6 +865,7 @@
},*/ },*/
], ],
// ======== ======== // ======== ========
rules: { rules: {
classificationName: [ classificationName: [
@ -827,7 +906,9 @@
subDetailFlag: false, subDetailFlag: false,
maintenanceFlag: false, maintenanceFlag: false,
modalFlag: false, modalFlag: false,
authorityFlag: false
authorityFlag: false,
nodeModalFlag: false,
nodeModalDisableFlag: false
} }
}, },
@ -845,10 +926,59 @@
}, },
methods: { methods: {
// rowStyle2 ({row}) {
// if (!this.authoritySelections.includes(row)) {
// row.required = 'N'
// return{ 'background-color': '#FFF', cursor: 'pointer' }
// }
// return{ 'background-color': '#FFF', cursor: 'pointer' }
// },
//
editNodeModal (row) {
this.nodeInfo = {
site: row.site,
bu: row.bu,
classificationNo: row.classificationNo,
workflowId: row.workflowId,
workflowname: row.workflowname,
nodeId: row.nodeId,
nodeName: row.nodeName,
seqNo: row.seqNo,
isReject: row.isReject
}
this.nodeModalFlag = true
this.nodeModalDisableFlag = true
},
//
editNodeInfo () {
if (this.nodeInfo.isReject === '' || this.nodeInfo.isReject == null) {
this.$message.warning('请选择节点是否可驳回!')
return false
}
editNodeInfo(this.nodeInfo).then(({data}) => {
if (data && data.code === 0) {
this.getNodeInfoByWorkFlowSearch()
this.nodeModalFlag = false
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
}
})
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
})
},
// //
authorityClickRow (row) { authorityClickRow (row) {
this.$refs.authorityTable.toggleRowSelection(row)
//this.$refs.authorityTable.toggleRowSelection(row)
}, },
// //
@ -956,15 +1086,8 @@
}, },
// Table // Table
getTableList (type) {
let tempData = {
tableType: type,
passTable: [
'plm_change_ecn_type_detail',
'plm_change_ecn_type_header'
]
}
getTableList(tempData).then(({data}) => {
getTableList () {
getTableList(this.queryTableParam).then(({data}) => {
if (data && data.code === 0) { if (data && data.code === 0) {
this.tableList = data.rows this.tableList = data.rows
} else { } else {
@ -1033,11 +1156,25 @@
this.requestCurrentRow = JSON.parse(JSON.stringify(row)) this.requestCurrentRow = JSON.parse(JSON.stringify(row))
// //
this.refreshCurrentTabTable() this.refreshCurrentTabTable()
this.tableList = [] this.tableList = []
this.fieldList = [] this.fieldList = []
if (row.menuId === '108002') {
this.getTableList('plm_change')
if (row.menuId === '108002') { //
this.queryTableParam = {
tableType: 'plm_change',
passTable: [
'plm_change_ecn_type_detail',
'plm_change_ecn_type_header'
],
addTable: []
}
this.getTableList()
} else if (row.menuId === '102001') { //
this.queryTableParam = {
tableType: 'plm_quotation',
passTable: [],
addTable: []
}
this.getTableList()
} }
} }
}, },

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

@ -361,6 +361,8 @@
<el-footer style="height:35px;margin-top: 10px;padding-bottom:5px;text-align:center"> <el-footer style="height:35px;margin-top: 10px;padding-bottom:5px;text-align:center">
<el-button type="primary" @click="saveData()">保存</el-button> <el-button type="primary" @click="saveData()">保存</el-button>
<el-button type="primary" @click="modalFlag = false">关闭</el-button> <el-button type="primary" @click="modalFlag = false">关闭</el-button>
<el-button v-if="modalData.changeStatus === '审批中'" type="primary" @click="agreeSubmit">同意</el-button>
<el-button v-if="modalData.changeStatus === '审批中' && modalData.isReject === 'Y'" type="primary" @click="rejectSubmit">驳回</el-button>
</el-footer> </el-footer>
</el-dialog> </el-dialog>
<!--选择项目模态框--> <!--选择项目模态框-->
@ -1002,10 +1004,14 @@ import {
getProjectInformation, // getProjectInformation, //
getCustomerInformation, // getCustomerInformation, //
searchProjectInfoList,// searchProjectInfoList,//
submitChange, //
} from '@/api/quotation/quotationInformation.js' } from '@/api/quotation/quotationInformation.js'
import { import {
customerContactSearch, // customerContactSearch, //
} from '@/api/customer/customerContact.js' } from '@/api/customer/customerContact.js'
import {
getNodeAuthority, //
} from '@/api/changeManagement/changeManagement.js'
import Chooselist from '@/views/modules/common/Chooselist' import Chooselist from '@/views/modules/common/Chooselist'
import quotationUploadFile from "./quotation_upload_file" import quotationUploadFile from "./quotation_upload_file"
import DictDataSelect from "../sys/dict-data-select.vue"; import DictDataSelect from "../sys/dict-data-select.vue";
@ -1020,7 +1026,16 @@ export default {
computed: { computed: {
priceCheckProperties() { priceCheckProperties() {
return priceCheckProperties return priceCheckProperties
},
quotationInformationFlag () {
return (value) => {
let arr = this.plmQuotationInformationArr.filter(a => a.fieldId === value)
if (arr.length > 0) {
return arr[0].updateFlag
} }
return 'N'
}
},
}, },
components: { components: {
PriceCheckDetail, PriceCheckDetail,
@ -1139,7 +1154,8 @@ export default {
quoterName: '', quoterName: '',
priorityLevel: '', priorityLevel: '',
page: 1, page: 1,
limit: 10
limit: 10,
menuId: this.$route.meta.menuId,
}, },
// //
dataListLoading: false, dataListLoading: false,
@ -1196,7 +1212,12 @@ export default {
createDate: '', createDate: '',
createBy: '', createBy: '',
updateDate: '', updateDate: '',
updateBy: ''
updateBy: '',
nodeConclusion: '',
stepId: '',
rejectFlag: '',
rejectStepId: '',
isReject: ''
}, },
quotationDetailData: { quotationDetailData: {
technicalConsiderations: '', technicalConsiderations: '',
@ -2025,8 +2046,8 @@ export default {
customerResponseModalFlag: false, customerResponseModalFlag: false,
projectPartModelFlag: false, projectPartModelFlag: false,
contactModelFlag: false, contactModelFlag: false,
priceCheckDetailList:[], priceCheckDetailList:[],
plmQuotationInformationArr: []
} }
}, },
mounted() { mounted() {
@ -2259,7 +2280,8 @@ export default {
* 询价信息编辑模态框 * 询价信息编辑模态框
* @param row * @param row
*/ */
updateModal(row) {
async updateModal(row) {
await this.getNodeAuthority(row)
this.modalData = { this.modalData = {
flag: '2', flag: '2',
title: '询价编辑-' + row.quotationNo, title: '询价编辑-' + row.quotationNo,
@ -2299,7 +2321,13 @@ export default {
confirmInformation: row.confirmInformation, confirmInformation: row.confirmInformation,
quotationResultStatus: row.quotationResultStatus, quotationResultStatus: row.quotationResultStatus,
updateBy: this.$store.state.user.name, updateBy: this.$store.state.user.name,
quotationAmount:row.quotationAmount
quotationAmount:row.quotationAmount,
nodeConclusion: '',
stepId: row.stepId,
rejectFlag: row.rejectFlag,
rejectStepId: row.rejectStepId,
isReject: row.isReject
} }
this.priceCheckDetail = row.priceCheckDetail this.priceCheckDetail = row.priceCheckDetail
this.modalDisableFlag = true this.modalDisableFlag = true
@ -3220,9 +3248,16 @@ export default {
} }
}, },
updateModalStatus(row, status) { updateModalStatus(row, status) {
this.$confirm(`是否确认下达?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
let params = JSON.parse(JSON.stringify(row)) let params = JSON.parse(JSON.stringify(row))
params.quotationResultStatus = status; params.quotationResultStatus = status;
params.quotationStatus = '下达'; params.quotationStatus = '下达';
params.userName = this.$store.state.user.name
params.menuId = this.$route.meta.menuId
quotationInformationEdit(params).then(({data}) => { quotationInformationEdit(params).then(({data}) => {
if (data && data.code === 0) { if (data && data.code === 0) {
this.$message.success('询价单已下达') this.$message.success('询价单已下达')
@ -3233,6 +3268,7 @@ export default {
}).catch((error) => { }).catch((error) => {
this.$message.error(error) this.$message.error(error)
}) })
})
}, },
getPriceCheckDetailList(){ getPriceCheckDetailList(){
let params = { let params = {
@ -3248,7 +3284,70 @@ export default {
}).catch((error)=>{ }).catch((error)=>{
this.$message.error(error) this.$message.error(error)
}) })
},
//
agreeSubmit () {
this.$confirm(`是否确认提交?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.modalData.nodeConclusion = 'Y'
this.submitData()
})
},
//
rejectSubmit () {
this.$confirm(`是否确认驳回?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.modalData.nodeConclusion = 'N'
this.submitData()
})
},
//
submitData () {
let tempData = {
site: this.modalData.site,
userName: this.$store.state.user.name,
quotationNo: this.modalData.quotationNo,
menuId: this.$route.meta.menuId,
nodeConclusion: this.modalData.nodeConclusion
}
submitChange(tempData).then(({data}) => {
if (data && data.code === 0) {
this.getDataList()
this.$message({message: '操作成功', type: 'success'})
this.submitModalFlag = false
this.modalFlag = false
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
} }
})
},
//
async getNodeAuthority (row) {
let tempData = {
site: row.site,
stepId: row.stepId,
menuId: this.$route.meta.menuId
}
await getNodeAuthority(tempData).then(({data}) => {
if (data && data.code === 0) {
this.plmQuotationInformationArr = data.rows.plmQuotationInformation
}
})
},
} }
} }
</script> </script>

Loading…
Cancel
Save