Browse Source

2025/7/7

master
Aoi_Tori 12 months ago
parent
commit
9249c74238
  1. 1
      src/api/customer/projectInformation.js
  2. 1
      src/api/sampleManagement/technicalSpecificationList.js
  3. 44
      src/views/modules/customer/customerInformationManagement.vue
  4. 2
      src/views/modules/part/bomManagement.vue
  5. 12
      src/views/modules/part/partInformation.vue
  6. 2
      src/views/modules/part/recipeManagement.vue
  7. 4
      src/views/modules/project/projectInfo/com_project_info_part.vue
  8. 3
      src/views/modules/project/projectInfo/com_project_technicalSpecification.vue
  9. 230
      src/views/modules/project/projectInfo/projectInfo.vue
  10. 3
      src/views/modules/project/projectPart/com_projectPart_technicalSpecification.vue
  11. 18
      src/views/modules/sampleManagement/technicalSpecificationList.vue

1
src/api/customer/projectInformation.js

@ -6,4 +6,5 @@ import { createAPI } from "@/utils/httpRequest.js";
* @returns {*}
*/
export const projectInformationSearch = data => createAPI(`/plm/projectInformation/projectInformationSearch`,'post',data)
export const projectInformationSearchByCustomers = data => createAPI(`/plm/projectInformation/projectInformationSearch/customers`,'post',data)

1
src/api/sampleManagement/technicalSpecificationList.js

@ -1,6 +1,7 @@
import { createAPI } from "@/utils/httpRequest.js";
export const technicalSpecificationListSearch = data => createAPI(`/technicalSpecification/technicalSpecificationListSearch`,'post',data)
export const technicalSpecificationListSearchInPane = data => createAPI(`/technicalSpecification/technicalSpecificationListSearch/pane`,'post',data)
export const technicalSpecificationListSearchByAnyField = data => createAPI(`/technicalSpecification/technicalSpecificationListSearch/any`,'post',data)
export const saveTechnicalSpecificationSheet = data => createAPI(`/technicalSpecification/saveTechnicalSpecificationSheet`,'post',data)
export const searchTechnicalSpecificationTeamStr = data => createAPI(`/technicalSpecification/searchTechnicalSpecificationTeamStr`,'post',data)

44
src/views/modules/customer/customerInformationManagement.vue

@ -753,6 +753,7 @@ import DictDataSelect from '../sys/dict-data-select.vue'
import saveOrUpdate from '../project/projectInfo/com_projectInfo-add-or-update.vue'
import partUploadFile from '../part/part_upload_file.vue'
import AddOrUpdate from "../project/projectInfo/com_projectInfo-add-or-update.vue";
import {projectInformationSearchByCustomers} from "../../../api/customer/projectInformation";
export default {
components: {
@ -2467,20 +2468,39 @@ export default {
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
let tempData = {
informationList: this.customerSelections
let tempData1 = {
projectList: this.customerSelections.map(item => ({
...item,
customerId: item.customerNo
}))
}
customerInformationDelete(tempData).then(({data}) => {
if (data && data.code === 0) {
this.getDataList()
this.customerSelections = []
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
projectInformationSearchByCustomers(tempData1).then((data) => {
if (data.data && data.data.code === 0) {
if (data.data.rows.length > 0){
this.$message.warning('该客户已关联项目信息,不允许删除!')
}
else {
let tempData = {
informationList: this.customerSelections
}
})
customerInformationDelete(tempData).then(({data}) => {
if (data && data.code === 0) {
this.getDataList()
this.customerSelections = []
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
}
})
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
})
}
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'

2
src/views/modules/part/bomManagement.vue

@ -270,7 +270,7 @@
更多
</el-link >
<el-dropdown-menu slot="dropdown">
<el-dropdown-item @click.native="jumpBom(scope.row)">产品BOM</el-dropdown-item>
<el-dropdown-item v-if="scope.row.ifHasBom === 'Y'" @click.native="jumpBom(scope.row)">产品BOM</el-dropdown-item>
<el-dropdown-item v-if="scope.row.ifHasPeifang === 'Y'" @click.native="jumpPeifang(scope.row)">配方BOM</el-dropdown-item>
<el-dropdown-item @click.native="toMenu('Routing', scope.row)">Routing</el-dropdown-item>
</el-dropdown-menu>

12
src/views/modules/part/partInformation.vue

@ -129,8 +129,8 @@
更多
</el-link >
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-if="scope.row.ifHasPeifang === 'N'" @click.native="toMenu('BOM', scope.row)">产品BOM</el-dropdown-item>
<el-dropdown-item v-else @click.native="toMenu('BOM', scope.row)">配方BOM</el-dropdown-item>
<el-dropdown-item v-if="scope.row.ifHasBom === 'Y'" @click.native="toMenu('BOM', scope.row)">产品BOM</el-dropdown-item>
<el-dropdown-item v-if="scope.row.ifHasPeifang === 'Y'" @click.native="toMenu('Recipe', scope.row)">配方BOM</el-dropdown-item>
<el-dropdown-item @click.native="toMenu('Routing', scope.row)">Routing</el-dropdown-item>
<el-dropdown-item v-if="scope.row.temporaryPartFlag === 'Y' && scope.row.status === 'N'" @click.native="toBecomeOfficialPartModal(scope.row)">转正式物料</el-dropdown-item>
</el-dropdown-menu>
@ -4807,6 +4807,10 @@
this.$message.warning('存在物料属性,属性模板不能为空值!')
return
}
if (this.modalData.partType==='Manufactured Recipe'&&!(this.modalData.density&&this.modalData.density!=='')){
this.$message.warning('请填写密度!')
return
}
//
if (this.partItemList.length > 0
&& this.partItemList.some(item => {
@ -5787,10 +5791,10 @@
if (type === 'Routing' ) {
path = 'routing'
// } else if (type === 'BOM' && row.partType !== 'Manufactured Recipe') {
} else if (row.ifHasPeifang === 'N') {
} else if (type === 'BOM') {
path = 'bom'
// } else if (type === 'BOM' && row.partType === 'Manufactured Recipe') {
} else if (row.ifHasPeifang === 'Y') {
} else if (type === 'Recipe') {
path = 'recipe'
}
if (this.$router.resolve(`/part-${path}Management`).resolved.name === '404') {

2
src/views/modules/part/recipeManagement.vue

@ -76,7 +76,7 @@
fixed="right"
header-align="center"
align="center"
width="120"
width="150"
label="操作">
<template slot-scope="scope">
<el-link v-if="isAuth('104002003:update')" style="cursor: pointer" @click="updateModal(scope.row)">编辑</el-link>

4
src/views/modules/project/projectInfo/com_project_info_part.vue

@ -2437,6 +2437,10 @@ import {
this.$message.warning('存在物料属性,属性模板不能为空值!')
return
}
if (this.modalData.partType==='Manufactured Recipe'&&!(this.modalData.density&&this.modalData.density!=='')){
this.$message.warning('请填写密度!')
return
}
//
if (this.partItemList.length > 0
&& this.partItemList.some(item => {

3
src/views/modules/project/projectInfo/com_project_technicalSpecification.vue

@ -68,6 +68,7 @@
} from "@/api/sampleManagement/technicalSpecificationList.js"
import Chooselist from '@/views/modules/common/Chooselist'
import {technicalSpecificationListSearchInPane} from "../../../../api/sampleManagement/technicalSpecificationList";
export default {
components: {
Chooselist
@ -442,7 +443,7 @@
},
searchTable(){
technicalSpecificationListSearch(this.searchData).then(({data}) => {
technicalSpecificationListSearchInPane(this.searchData).then(({data}) => {
//
if (data && data.code == 0) {
this.dataList = data.page.list

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

@ -1984,235 +1984,21 @@
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
//
const ossCheck = new Promise((resolve, reject) => {
let ossParams = {
orderRef1: row.site,
orderRef2: row.projectId
}
queryOss(ossParams).then(({data}) => {
if (data && data.code === 0) {
if (data.rows.length===0) {
resolve(true);
}else {
reject(new Error('该项目已存在附件,不允许删除!'))
this.$message.warning('该项目已存在附件,不允许删除!')
}
} else {
this.$message.warning(data.msg);
}
}).catch((error) => {
this.$message.error(error);
})
})
//
const partCheck = new Promise((resolve, reject) => {
let partParams = {
site: row.site,
projectId: row.projectId,
searchType: 'Y',
username: this.$store.state.user.name,
customerId: row.customerId,
limit: 10,
limit2: 20,
page: 1,
page2: 1
}
getProjectInfoPartList(partParams).then(({data}) => {
if (data && data.code === 0) {
if (data.page.list.length===0){
resolve(true);
} else {
reject(new Error('该项目已绑定物料信息,不允许删除!'))
this.$message.warning('该项目已绑定物料信息,不允许删除!')
}
}
})
})
//
const quotationCheck = new Promise((resolve, reject) => {
let quotationParams = {
site: row.site,
projectId: row.projectId,
createBy: this.$store.state.user.name,
menuId: '102001',
limit: 10,
page: 1
}
quotationInformationSearch(quotationParams).then(({data}) => {
//
if (data && data.code === 0) {
if(data.page.list.length===0){
resolve(true);
}else {
reject(new Error('该项目已存在询价信息,不允许删除!'))
this.$message.warning('该项目已存在询价信息,不允许删除!')
}
} else {
this.$message.warning(data.msg);
}
});
})
//
const quoteCheck = new Promise((resolve, reject) => {
let quoteParams = {
site: row.site,
projectNo: row.projectId
}
queryQuoteGroupDetailByInquiry(quoteParams).then(({data})=>{
if (data && data.code === 0){
if (data.rows.length===0){
resolve(true);
}else {
reject(new Error('该项目已存在报价信息,不允许删除!'))
this.$message.warning('该项目已存在报价信息,不允许删除!')
}
}else {
this.$message.warning(data.msg);
}
})
})
//
const proofingCheck = new Promise((resolve, reject) => {
let proofingParams = {
site: row.site,
projectId: row.projectId,
createBy: this.$store.state.user.name,
menuId: '103001',
limit: 10,
page: 1
}
proofingInformationSearch(proofingParams).then(({data}) => {
if (data && data.code === 0) {
if (data.page.list.length===0){
resolve(true);
}else {
reject(new Error('该项目已存在打样信息,不允许删除!'))
this.$message.warning('该项目已存在打样信息,不允许删除!')
}
} else {
this.$message.warning(data.msg)
}
})
})
//
const testCheck = new Promise((resolve, reject) => {
let testParams = {
site: row.site,
projectId: row.projectId,
createBy: this.$store.state.user.name,
menuId: '107001',
limit: 10,
page: 1
}
testInformationList(testParams).then(({data}) => {
if (data && data.code === 0) {
if (data.rows.length===0){
resolve(true);
} else {
reject(new Error('该项目已存在测试记录,不允许删除!'))
this.$message.warning('该项目已存在测试记录,不允许删除!')
}
} else {
this.$message.warning(data.msg);
}
});
})
//
const toolCheck = new Promise((resolve, reject) => {
let toolParams = {
orderRef1: row.projectId,
site: row.site,
username: this.$store.state.user.name,
}
searchProjectToolApplyDetail(toolParams).then(({data}) => {
if (data && data.code === 0) {
if (data.rows.length===0){
resolve(true);
} else {
reject(new Error('该项目已存在刀模申请,不允许删除!'))
this.$message.warning('该项目已存在刀模申请,不允许删除!')
}
} else {
this.$message.warning(data.msg)
}
})
})
//
const technicalSpecificationCheck = new Promise((resolve, reject) => {
let technicalSpecificationParams = {
site: row.site,
userName: this.$store.state.user.name,
projectId: row.projectId,
page: 1,
limit: 10
}
technicalSpecificationListSearch(technicalSpecificationParams).then(({data}) => {
if (data && data.code === 0) {
if (data.page.list.length===0){
resolve(true);
} else {
reject(new Error('该项目已绑定技术参数卡,不允许删除!'))
this.$message.warning('该项目已绑定技术参数卡,不允许删除!')
}
} else {
this.$message.warning(data.msg);
}
});
})
//
const changeCheck = new Promise((resolve, reject) => {
let changeParams = {
site: row.site,
projectId: row.projectId,
menuId: '108002'
}
getChangeRecordByPartNo(changeParams).then(({data}) => {
if (data && data.code === 0) {
if (data.rows.length===0){
resolve(true);
} else {
reject(new Error('该项目已存在变更记录,不允许删除!'))
this.$message.warning('该项目已存在变更记录,不允许删除!')
}
} else {
this.$message.warning(data.msg)
}
})
})
return Promise.all([
ossCheck,
partCheck,
quotationCheck,
quoteCheck,
proofingCheck,
testCheck,
toolCheck,
technicalSpecificationCheck,
changeCheck
]);
}).then(()=>{
deleteProjectInfo(row).then(({data}) => {
if (data && data.code === 0) {
this.$message.success( '操作成功')
this.contactChooseFlag = false
this.search()
if (data.checkMsg!==null){
this.$message.warning(data.checkMsg)
}else {
this.$message.success( '操作成功')
this.contactChooseFlag = false
this.search()
}
} else {
this.$message.error(data.msg)
}
})
})
})
}else {
this.$alert('没有权限删除这个项目信息!', '错误', {
confirmButtonText: '确定'

3
src/views/modules/project/projectPart/com_projectPart_technicalSpecification.vue

@ -68,6 +68,7 @@
} from "@/api/sampleManagement/technicalSpecificationList.js"
import Chooselist from '@/views/modules/common/Chooselist'
import {technicalSpecificationListSearchInPane} from "../../../../api/sampleManagement/technicalSpecificationList";
export default {
components: {
Chooselist
@ -420,7 +421,7 @@
},
searchTable(){
technicalSpecificationListSearch(this.searchData).then(({data}) => {
technicalSpecificationListSearchInPane(this.searchData).then(({data}) => {
//
if (data && data.code == 0) {
this.dataList = data.page.list

18
src/views/modules/sampleManagement/technicalSpecificationList.vue

@ -97,8 +97,14 @@
: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>
<div v-if="item.columnProp === 'finalPartNo'">
<el-link style="cursor:pointer;" v-if="!item.columnHidden" @click="toPartMenu(scope.row.finalPartNo)"> {{ scope.row[item.columnProp] }}</el-link>
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
</div>
<div v-else>
<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>
</template>
</el-table-column>
<el-table-column
@ -1607,6 +1613,14 @@
this.filterVisible = false
},
toPartMenu (finalPartNo) {
if (this.$router.resolve(`/part-partInformation`).resolved.name === '404') {
this.$alert('权限不足,访问失败', '警告', {confirmButtonText: '确定',})
} else {
this.$router.push({name:`part-partInformation`,params:{ifsPartNo: finalPartNo},})
}
},
},
}
</script>

Loading…
Cancel
Save