|
|
|
@ -11,7 +11,7 @@ |
|
|
|
<el-form-item :label="'客户名称'"> |
|
|
|
<el-input v-model="searchData.customerDesc" clearable style="width: 120px"></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item :label="'跟单员'"> |
|
|
|
<el-form-item :label="'CS'"> |
|
|
|
<el-input v-model="searchData.trackerName" clearable style="width: 120px"></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item :label="'项目料号'"> |
|
|
|
@ -49,7 +49,7 @@ |
|
|
|
<el-form-item :label="'项目名称'"> |
|
|
|
<el-input v-model="searchData.projectName" clearable style="width: 120px"></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item :label="'工程师'"> |
|
|
|
<el-form-item :label="'NPI工程师'"> |
|
|
|
<el-input v-model="searchData.engineerName" clearable style="width: 120px"></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item :label="'优先等级'"> |
|
|
|
@ -166,7 +166,7 @@ |
|
|
|
</el-pagination> |
|
|
|
|
|
|
|
<!-- 打样模态框 --> |
|
|
|
<el-dialog :title="modalData.title" @close="closeModalDiaLog" @open="getProjectPartList()" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" top="10vh" width="60%"> |
|
|
|
<el-dialog :title="modalData.title" @close="closeModalDiaLog" @open="getProjectPartList()" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" top="10vh" width="65%"> |
|
|
|
<el-form label-position="top" ref="modalForm" :model="modalData" :rules="rules"> |
|
|
|
<el-row :gutter="15"> |
|
|
|
<el-col :span="8"> |
|
|
|
@ -174,7 +174,7 @@ |
|
|
|
<el-col :span="10"> |
|
|
|
<el-form-item prop="customerNo" label="客户编码"> |
|
|
|
<span style="cursor: pointer" slot="label" v-if="modalData.flag === '1'" @click="getBaseList(102,1)"><a herf="#">客户编码</a></span> |
|
|
|
<el-input :disabled="modalData.flag !== '1'" v-model="modalData.customerNo" :readonly="true"></el-input> |
|
|
|
<el-input :disabled="modalData.flag !== '1'" v-model="modalData.customerNo" ></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="14"> |
|
|
|
@ -202,11 +202,7 @@ |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item prop="trackerName"> |
|
|
|
<!-- <span style="cursor: pointer" slot="label" @click="getBaseList(103,1)"><a herf="#">跟单员</a></span>--> |
|
|
|
<span style="cursor: pointer" slot="label" @click="getBaseList(2000)"><a herf="#">跟单员</a></span> |
|
|
|
<el-input v-model="modalData.trackerName" readonly></el-input> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<el-row :gutter="15"> |
|
|
|
@ -242,10 +238,33 @@ |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item prop="engineerName"> |
|
|
|
<!-- <span style="cursor: pointer" slot="label" @click="getBaseList(103,2)"><a herf="#">工程师</a></span>--> |
|
|
|
<span style="cursor: pointer" slot="label" @click="getBaseList(2001)"><a herf="#">工程师</a></span> |
|
|
|
<el-input v-model="modalData.engineerName" readonly></el-input> |
|
|
|
<el-form-item> |
|
|
|
<!-- <el-form-item prop="trackerName">--> |
|
|
|
<!-- <span style="cursor: pointer" slot="label" @click="getBaseList(103,1)"><a herf="#">CS</a></span>--> |
|
|
|
<span style="cursor: pointer" slot="label" @click="getBaseList(2051)"><a herf="#">CS</a></span> |
|
|
|
<el-input v-model="modalData.trackerName" ></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item> |
|
|
|
<!-- <el-form-item prop="engineerName">--> |
|
|
|
<!-- <span style="cursor: pointer" slot="label" @click="getBaseList(103,2)"><a herf="#">NPI工程师</a></span>--> |
|
|
|
<span style="cursor: pointer" slot="label" @click="getBaseList(2052)"><a herf="#">NPI工程师</a></span> |
|
|
|
<el-input v-model="modalData.engineerName" ></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item> |
|
|
|
<!-- <span style="cursor: pointer" slot="label" @click="getBaseList(103,2)"><a herf="#">Approver</a></span>--> |
|
|
|
<span style="cursor: pointer" slot="label" @click="getBaseList(2053)"><a herf="#">Approver</a></span> |
|
|
|
<el-input v-model="modalData.approverName" ></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item> |
|
|
|
<!-- <span style="cursor: pointer" slot="label" @click="getBaseList(103,2)"><a herf="#">Approver</a></span>--> |
|
|
|
<span style="cursor: pointer" slot="label" @click="delegateAccessVisible = true"><a herf="#">DelegateAccess</a></span> |
|
|
|
<el-input v-model="delegateAccessName" readonly></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
@ -923,6 +942,39 @@ |
|
|
|
<el-button type="primary" @click="contactModelFlag=false">关闭</el-button> |
|
|
|
</el-footer> |
|
|
|
</el-dialog> |
|
|
|
<el-dialog title="人员选择" @open="openDelegateAccess" v-drag :visible.sync="delegateAccessVisible" width="40vw"> |
|
|
|
<el-form :inline="true" label-position="top" :model="proofingDelegateAccess"> |
|
|
|
<el-form-item label="编码"> |
|
|
|
<el-input v-model="proofingDelegateAccess.delegateAccess" clearable style="width: 120px"></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="名称"> |
|
|
|
<el-input v-model="proofingDelegateAccess.delegateAccessName" clearable style="width: 120px"></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label=" "> |
|
|
|
<el-button type="primary" @click="searchDelegateAccessByUser()">查询</el-button> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
<el-table v-if="delegateAccessVisible" |
|
|
|
:height="300" |
|
|
|
:data="baseDelegateAccessList" |
|
|
|
@selection-change="handleSelectionChange" |
|
|
|
@row-click="(row,column, event)=>handleTableClick(row,column, event,'delegateAccesstTable')" |
|
|
|
ref="delegateAccesstTable" |
|
|
|
border |
|
|
|
style="width: 100%;"> |
|
|
|
<el-table-column |
|
|
|
type="selection" |
|
|
|
header-align="center" |
|
|
|
align="center" |
|
|
|
width="50"> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="编码" property="delegateAccess" align="left" header-align="center"/> |
|
|
|
<el-table-column label="名称" property="delegateAccessName" align="left" header-align="center"/> |
|
|
|
</el-table> |
|
|
|
<el-footer style="height:40px;margin-top: 20px;text-align:center"> |
|
|
|
<el-button type="primary" @click="delegateAccessVisible=false">关闭</el-button> |
|
|
|
</el-footer> |
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
<!-- 上传文件的modal --> |
|
|
|
<proofingUploadFile ref="proofingUploadFile" @refreshPageTables="getFileContentData()" v-drag></proofingUploadFile> |
|
|
|
@ -958,6 +1010,11 @@ |
|
|
|
import Chooselist from '@/views/modules/common/Chooselist' |
|
|
|
import proofingUploadFile from "./proofing_upload_file" |
|
|
|
import DictDataSelect from "../sys/dict-data-select.vue"; |
|
|
|
import { |
|
|
|
proofingInformationEditStatus, |
|
|
|
searchDelegateAccess, |
|
|
|
searchDelegateAccessByUser |
|
|
|
} from "../../../api/proofing/proofingInformation"; |
|
|
|
export default { |
|
|
|
components: { |
|
|
|
DictDataSelect, |
|
|
|
@ -1004,8 +1061,26 @@ |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
computed:{ |
|
|
|
delegateAccessName:{ |
|
|
|
get(){ |
|
|
|
return this.selectionDelegateAccess.map(item => item.delegateAccessName).join(';') |
|
|
|
}, |
|
|
|
set(val){ |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
data () { |
|
|
|
return { |
|
|
|
selectionDelegateAccess: [], |
|
|
|
delegateAccessVisible:false, |
|
|
|
baseDelegateAccessList: [], |
|
|
|
proofingDelegateAccess:{ |
|
|
|
delegateAccess:'', |
|
|
|
delegateAccessName:'', |
|
|
|
}, |
|
|
|
activeName:'part', |
|
|
|
// 导出 |
|
|
|
exportData: [], |
|
|
|
exportName: '设备分类' + this.dayjs().format('YYYYMMDDHHmmss'), |
|
|
|
@ -1060,6 +1135,8 @@ |
|
|
|
partName: '', |
|
|
|
engineer: '', |
|
|
|
engineerName: '', |
|
|
|
approver: '', |
|
|
|
approverName: '', |
|
|
|
priorityLevel: '一般', |
|
|
|
proofingNumber: 1, |
|
|
|
requiredDeliveryDate: '', |
|
|
|
@ -1284,7 +1361,7 @@ |
|
|
|
columnProp: 'trackerName', |
|
|
|
headerAlign: 'center', |
|
|
|
align: 'center', |
|
|
|
columnLabel: '跟单员', |
|
|
|
columnLabel: 'CS', |
|
|
|
columnHidden: false, |
|
|
|
columnImage: false, |
|
|
|
columnSortable: false, |
|
|
|
@ -1302,7 +1379,25 @@ |
|
|
|
columnProp: 'engineerName', |
|
|
|
headerAlign: 'center', |
|
|
|
align: 'center', |
|
|
|
columnLabel: '工程师', |
|
|
|
columnLabel: 'NPI工程师', |
|
|
|
columnHidden: false, |
|
|
|
columnImage: false, |
|
|
|
columnSortable: false, |
|
|
|
sortLv: 0, |
|
|
|
status: true, |
|
|
|
fixed: '', |
|
|
|
columnWidth: 80 |
|
|
|
}, |
|
|
|
{ |
|
|
|
userId: this.$store.state.user.name, |
|
|
|
functionId: 103001, |
|
|
|
serialNumber: '103001Table1EngineerName', |
|
|
|
tableId: '103001Table1', |
|
|
|
tableName: '打样信息表', |
|
|
|
columnProp: 'approverName', |
|
|
|
headerAlign: 'center', |
|
|
|
align: 'center', |
|
|
|
columnLabel: 'Approver', |
|
|
|
columnHidden: false, |
|
|
|
columnImage: false, |
|
|
|
columnSortable: false, |
|
|
|
@ -1969,7 +2064,7 @@ |
|
|
|
}) |
|
|
|
}, |
|
|
|
created () { |
|
|
|
this.getDataList() |
|
|
|
this.getDataList(); |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
// ======== 分页相关方法 ======== |
|
|
|
@ -2157,6 +2252,7 @@ |
|
|
|
* 报价信息新增模态框 |
|
|
|
*/ |
|
|
|
addModal () { |
|
|
|
this.searchDelegateAccessByUser(); |
|
|
|
this.modalDisableFlag = false |
|
|
|
this.modalFlag = true |
|
|
|
}, |
|
|
|
@ -2180,6 +2276,8 @@ |
|
|
|
partName: row.partName, |
|
|
|
engineer: row.engineer, |
|
|
|
engineerName: row.engineerName, |
|
|
|
approver: row.approver, |
|
|
|
approverName: row.approverName, |
|
|
|
priorityLevel: row.priorityLevel, |
|
|
|
proofingNumber: row.proofingNumber, |
|
|
|
requiredDeliveryDate: row.requiredDeliveryDate, |
|
|
|
@ -2204,6 +2302,7 @@ |
|
|
|
nextToDo: row.nextToDo, |
|
|
|
updateBy: this.$store.state.user.name |
|
|
|
} |
|
|
|
this.searchDelegateAccessByUser(); |
|
|
|
this.modalDisableFlag = true |
|
|
|
this.modalFlag = true |
|
|
|
}, |
|
|
|
@ -2213,6 +2312,7 @@ |
|
|
|
* 获取项目物料列表 |
|
|
|
*/ |
|
|
|
getProjectPartList () { |
|
|
|
this.searchDelegateAccess(); |
|
|
|
if (!this.modalData.projectId){ |
|
|
|
this.projectPartList = []; |
|
|
|
return |
|
|
|
@ -2267,6 +2367,8 @@ |
|
|
|
return |
|
|
|
} |
|
|
|
this.confirmProjectPart(); |
|
|
|
// 将选中的 人员信息添加到请求 |
|
|
|
this.modalData.delegateAccessList = this.selectionDelegateAccess |
|
|
|
if (this.modalData.flag === '1'){ |
|
|
|
this.saveProofing() |
|
|
|
}else { |
|
|
|
@ -2339,22 +2441,22 @@ |
|
|
|
this.$message.warning('请选择项目名称!') |
|
|
|
return |
|
|
|
} |
|
|
|
if (this.modalData.engineer === '' || this.modalData.engineer == null) { |
|
|
|
this.$message.warning('请选择工程师编码!') |
|
|
|
return |
|
|
|
} |
|
|
|
if (this.modalData.engineerName === '' || this.modalData.engineerName == null) { |
|
|
|
this.$message.warning('请选择工程师名称!') |
|
|
|
return |
|
|
|
} |
|
|
|
// if (this.modalData.engineer === '' || this.modalData.engineer == null) { |
|
|
|
// this.$message.warning('请选择工程师编码!') |
|
|
|
// return |
|
|
|
// } |
|
|
|
// if (this.modalData.engineerName === '' || this.modalData.engineerName == null) { |
|
|
|
// this.$message.warning('请选择工程师名称!') |
|
|
|
// return |
|
|
|
// } |
|
|
|
if (!this.modalData.proofingNumber && this.modalData.proofingNumber > 0) { |
|
|
|
this.$message.warning('请输入正确的打样数量!') |
|
|
|
return |
|
|
|
} |
|
|
|
if (this.modalData.priorityLevel === '' || this.modalData.priorityLevel == null) { |
|
|
|
this.$message.warning('请选择优先等级!') |
|
|
|
return |
|
|
|
} |
|
|
|
// if (this.modalData.priorityLevel === '' || this.modalData.priorityLevel == null) { |
|
|
|
// this.$message.warning('请选择优先等级!') |
|
|
|
// return |
|
|
|
// } |
|
|
|
if (!this.modalData.requiredDeliveryDate) { |
|
|
|
this.$message.warning('请输入要求交付日期!') |
|
|
|
return |
|
|
|
@ -2941,14 +3043,18 @@ |
|
|
|
strVal = this.modalData.projectId |
|
|
|
} |
|
|
|
} |
|
|
|
if (val === 2000) { |
|
|
|
if (val === 2051) { |
|
|
|
strVal = this.modalData.trackerName |
|
|
|
conSql = " and b.site = '" + this.$store.state.user.site + "'" |
|
|
|
} |
|
|
|
if (val === 2001) { |
|
|
|
if (val === 2052) { |
|
|
|
strVal = this.modalData.engineerName |
|
|
|
conSql = " and b.site = '" + this.$store.state.user.site + "'" |
|
|
|
} |
|
|
|
if (val === 2053) { |
|
|
|
strVal = this.modalData.approverName |
|
|
|
conSql = " and b.site = '" + this.$store.state.user.site + "'" |
|
|
|
} |
|
|
|
this.$refs.baseList.init(val, strVal, conSql) |
|
|
|
}) |
|
|
|
}, |
|
|
|
@ -2986,14 +3092,18 @@ |
|
|
|
this.getProjectPartList(); |
|
|
|
} |
|
|
|
} |
|
|
|
if (this.tagNo === 2000) { |
|
|
|
if (this.tagNo === 2051) { |
|
|
|
this.modalData.tracker = val.username |
|
|
|
this.modalData.trackerName = val.user_display |
|
|
|
} |
|
|
|
if (this.tagNo === 2001) { |
|
|
|
if (this.tagNo === 2052) { |
|
|
|
this.modalData.engineer = val.username |
|
|
|
this.modalData.engineerName = val.user_display |
|
|
|
} |
|
|
|
if (this.tagNo === 2053) { |
|
|
|
this.modalData.approver = val.username |
|
|
|
this.modalData.approverName = val.user_display |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
// ======== 导出相关方法 ======== |
|
|
|
@ -3038,6 +3148,8 @@ |
|
|
|
projectName: '', |
|
|
|
tracker: '', |
|
|
|
trackerName: '', |
|
|
|
approver: '', |
|
|
|
approverName: '', |
|
|
|
testPartNo: '', |
|
|
|
partName: '', |
|
|
|
engineer: '', |
|
|
|
@ -3065,7 +3177,12 @@ |
|
|
|
proofingResultStatus: 'B', |
|
|
|
nextToDo: '', |
|
|
|
createBy: this.$store.state.user.name |
|
|
|
} |
|
|
|
}; |
|
|
|
this.selectionDelegateAccess = []; |
|
|
|
this.activeName = 'part' |
|
|
|
Object.keys(this.proofingDelegateAccess).forEach(key => { |
|
|
|
this.proofingDelegateAccess[key] = ''; |
|
|
|
}) |
|
|
|
}, |
|
|
|
checkSelectable(row,index){ |
|
|
|
if (this.modalData.flag === '1'){ |
|
|
|
@ -3112,7 +3229,7 @@ |
|
|
|
let params = JSON.parse(JSON.stringify(row)) |
|
|
|
params.proofingResultStatus = status; |
|
|
|
params.proofingStatus = '下达'; |
|
|
|
proofingInformationEdit(params).then(({data}) => { |
|
|
|
proofingInformationEditStatus(params).then(({data}) => { |
|
|
|
if (data && data.code === 0) { |
|
|
|
this.getDataList() |
|
|
|
this.modalFlag = false |
|
|
|
@ -3123,6 +3240,61 @@ |
|
|
|
}) |
|
|
|
} |
|
|
|
}) |
|
|
|
}, |
|
|
|
searchDelegateAccessByUser(){ |
|
|
|
// 角色 ROO7 的用户 |
|
|
|
let params = { |
|
|
|
...this.proofingDelegateAccess, |
|
|
|
site:this.$store.state.user.site, |
|
|
|
} |
|
|
|
searchDelegateAccessByUser(params).then(({data})=>{ |
|
|
|
if (data && data.code === 0) { |
|
|
|
this.baseDelegateAccessList = data.rows; |
|
|
|
}else { |
|
|
|
this.$message.warning(data.msg) |
|
|
|
} |
|
|
|
}).catch((error)=>{ |
|
|
|
this.$message.error(error) |
|
|
|
}) |
|
|
|
}, |
|
|
|
handleSelectionChange(val){ |
|
|
|
// 获得选中的 用户 |
|
|
|
this.selectionDelegateAccess = val; |
|
|
|
}, |
|
|
|
handleTableClick(row,column, event,val){ |
|
|
|
// 表格行点击选择 |
|
|
|
this.$refs[val].toggleRowSelection(row); |
|
|
|
}, |
|
|
|
openDelegateAccess(){ |
|
|
|
let rows = JSON.parse(JSON.stringify(this.selectionDelegateAccess)) |
|
|
|
if (rows && rows.length > 0){ |
|
|
|
this.$nextTick(()=>{ |
|
|
|
rows.forEach(item => { |
|
|
|
let row = this.baseDelegateAccessList.find(row=>row.delegateAccess === item.delegateAccess); |
|
|
|
this.$refs.delegateAccesstTable.toggleRowSelection(row); |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
}, |
|
|
|
searchDelegateAccess(){ |
|
|
|
let params = { |
|
|
|
site:this.modalData.site, |
|
|
|
proofingNo:this.modalData.proofingNo, |
|
|
|
} |
|
|
|
searchDelegateAccess(params).then(({data})=>{ |
|
|
|
if (data && data.code === 0){ |
|
|
|
this.selectionDelegateAccess = data.rows.map(item=>{ |
|
|
|
return { |
|
|
|
delegateAccess:item.delegateAccess, |
|
|
|
delegateAccessName:item.delegateAccessName, |
|
|
|
} |
|
|
|
}) |
|
|
|
}else { |
|
|
|
this.$message.warning(data.msg) |
|
|
|
} |
|
|
|
}).catch((error)=>{ |
|
|
|
this.$message.error(error) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|