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.
411 lines
15 KiB
411 lines
15 KiB
<template>
|
|
<div class="mod-config" v-highlight-container>
|
|
<el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 1px; margin-left: 0px;" >
|
|
<!-- <el-form-item :label="'技术参数卡编码'">-->
|
|
<!-- <el-input v-model="searchData.oriCodeNo" readonly style="width: 150px" ></el-input>-->
|
|
<!-- </el-form-item>-->
|
|
<el-row :gutter="20">
|
|
<el-col :span="18">
|
|
<el-form-item :label="'属性模板编码'">
|
|
<el-input v-model="searchData.propertiesCodeNo" readonly style="width: 150px" ></el-input>
|
|
</el-form-item>
|
|
<el-form-item label=" ">
|
|
<el-button type="primary" @click="refreshBMPageModal()" v-if="!ifDisableFlag&&isAuth('103002:bmModel')">更新模板</el-button>
|
|
<el-button type="primary" @click="searchTable()" >刷新数据</el-button>
|
|
<el-button type="primary" @click="saveTable()" v-if="!ifDisableFlag&&isAuth('103002:bmSave')">保存数据</el-button>
|
|
<el-button v-if="baseForm.status === 'spz'&&!ifDisableFlag&&spForm.sp.includes(searchData.username)" type="primary" @click="agreeSubmit">同意</el-button>
|
|
<el-button v-if="baseForm.status === 'spz' && baseForm.isReject === 'Y' &&!ifDisableFlag&&spForm.sp.includes(searchData.username)" type="primary" @click="submitDataModal">驳回</el-button>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="3"><div class="grid-content bg-purple">
|
|
<el-form-item :label="'当前节点'" style="width: 100%">
|
|
<el-input v-model="spForm.nodeName" disabled ></el-input>
|
|
</el-form-item>
|
|
</div>
|
|
</el-col>
|
|
<el-col :span="3"><div class="grid-content bg-purple">
|
|
<el-form-item :label="'审批人'" style="width: 100%">
|
|
<el-input v-model="spForm.sp" disabled ></el-input>
|
|
</el-form-item>
|
|
</div>
|
|
</el-col>
|
|
</el-row>
|
|
<div class="rq ">
|
|
<el-table
|
|
:height="height"
|
|
:data="tableData"
|
|
border
|
|
style="width: 100%">
|
|
<el-table-column
|
|
prop="propertiesItemNo"
|
|
header-align="center"
|
|
align="left"
|
|
width="150"
|
|
label="属性编码">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="itemDesc"
|
|
header-align="center"
|
|
align="left"
|
|
width="150"
|
|
label="属性名称">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="valueTypeDb"
|
|
header-align="center"
|
|
align="center"
|
|
width="80"
|
|
label="数据类型">
|
|
<template slot-scope="scope">
|
|
<span v-if="scope.row.valueTypeDb === 'N'">数字</span>
|
|
<span v-else-if="scope.row.valueTypeDb === 'T'">文本</span>
|
|
<!-- <a v-else-if="scope.row.valueTypeDb === 'S'" @click="openNewPage(scope.row.textValue)" >超链接</a>-->
|
|
<a v-else-if="scope.row.valueTypeDb === 'S'" @click="openNewPage(scope.row.textValue)" >超链接</a>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column
|
|
header-align="center"
|
|
align="left"
|
|
min-width="400"
|
|
label="值">
|
|
<template slot-scope="scope">
|
|
<div v-highlight-container>
|
|
<el-input v-if="scope.row.valueTypeDb === 'T'&&scope.row.valueChooseFlag === 'N'" v-model="scope.row.textValue" style="height: 11px;padding: 0px ;width:98%" allow-create :disabled="ifDisableFlag" ></el-input>
|
|
<div v-if="scope.row.valueTypeDb === 'S'&&scope.row.valueChooseFlag === 'N'"><el-input v-model="scope.row.textValue" style="height: 11px;padding: 0px ;width:98%" allow-create :disabled="ifDisableFlag"></el-input></div>
|
|
<el-input v-if="scope.row.valueTypeDb === 'N'&&scope.row.valueChooseFlag === 'N'" v-model="scope.row.numValue" type="number" style="height: 11px;padding: 0px;width:98%" allow-create :disabled="ifDisableFlag"></el-input>
|
|
<el-select v-if="scope.row.valueTypeDb === 'T'&&scope.row.valueChooseFlag === 'Y'" v-model="scope.row.textValue" placeholder="请选择" style="height: 11px;padding: 0px " allow-create :disabled="ifDisableFlag">
|
|
<el-option
|
|
v-for="item in scope.row.availableValueList"
|
|
:key="index"
|
|
:label="item.availableValue"
|
|
:value="item.availableValue">
|
|
</el-option>
|
|
</el-select>
|
|
<el-select v-if="scope.row.valueTypeDb === 'N'&&scope.row.valueChooseFlag === 'Y'" v-model="scope.row.numValue" placeholder="请选择" style="height: 11px;padding: 0px " allow-create :disabled="ifDisableFlag">
|
|
<el-option
|
|
v-for="item in scope.row.availableValueList"
|
|
:key="index"
|
|
:label="item.availableValue"
|
|
:value="item.availableValue">
|
|
</el-option>
|
|
</el-select>
|
|
<div v-if="scope.row.valueTypeDb === 'S'&&scope.row.valueChooseFlag === 'Y'"> <el-select v-model="scope.row.textValue" placeholder="请选择" style="height: 11px;padding: 0px ;width:98%" allow-create :disabled="ifDisableFlag">
|
|
<el-option
|
|
v-for="item in scope.row.availableValueList"
|
|
:key="index"
|
|
:label="item.availableValue"
|
|
:value="item.availableValue">
|
|
</el-option>
|
|
</el-select></div>
|
|
</div>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
</div>
|
|
</el-form>
|
|
<!-- 提交 -->
|
|
<el-dialog title="驳回" top="30vh" :close-on-click-modal="false" v-drag :visible.sync="submitModalFlag" width="500px">
|
|
<el-form :inline="true" label-position="top">
|
|
<el-form-item :label="'驳回意见'">
|
|
<el-input type="textarea" v-model="rejectOpinion" :rows="3" resize='none' show-word-limit style="width: 479px;height: 30px"></el-input>
|
|
</el-form-item>
|
|
</el-form>
|
|
<el-footer style="height:30px;margin-top: 50px;text-align:center">
|
|
<el-button type="primary" @click="rejectSubmit">确定</el-button>
|
|
<el-button type="primary" @click="submitModalFlag = false">取消</el-button>
|
|
</el-footer>
|
|
</el-dialog>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import {
|
|
searchBMPropertiesValue,
|
|
saveBMPropertiesValue,
|
|
refreshBMPageModal,
|
|
searchBMPropertiesHeaderForBM,
|
|
checkUrl,
|
|
tsdBasicInformationSearch,getBMStatusDesc,
|
|
submitChange, // 提交
|
|
getOADetailForBM,
|
|
} from "@/api/sampleManagement/technicalSpecificationList.js"
|
|
import {
|
|
getNodeAuthority, // 获取节点权限
|
|
} from '@/api/changeManagement/changeManagement.js'
|
|
export default {
|
|
components: {
|
|
|
|
},
|
|
|
|
data() {
|
|
return {
|
|
height:200,
|
|
searchData: {
|
|
site: '',
|
|
username: this.$store.state.user.name,
|
|
codeNo: '',
|
|
oriCodeNo: '',
|
|
buNo:'',
|
|
type:'',
|
|
propertiesCodeNo:'',
|
|
fieldId:'',
|
|
},
|
|
type:'prepress',
|
|
ifDisableFlag:false,
|
|
tableData:[],
|
|
baseForm:{
|
|
status:'',
|
|
isReject:'',
|
|
},
|
|
spForm:{
|
|
sp:'',
|
|
nodeName:'',
|
|
},
|
|
rejectOpinion: '',
|
|
submitModalFlag: false,
|
|
}
|
|
},
|
|
mounted () {
|
|
this.$nextTick(() => {
|
|
this.height =0.7* window.innerHeight
|
|
})
|
|
},
|
|
methods: {
|
|
//初始化组件的参数
|
|
init(inData) {
|
|
if(this.searchData.codeNo!=null&&this.searchData.codeNo!=''){
|
|
return false;
|
|
}
|
|
//初始化参数
|
|
this.searchData = JSON.parse(JSON.stringify(inData));
|
|
|
|
if(this.searchData.ifDisableFlag){
|
|
this.ifDisableFlag=true
|
|
}
|
|
//this.searchData.type= JSON.parse(JSON.stringify(this.type));
|
|
//刷新表格
|
|
this.$nextTick(()=>{
|
|
// this.searchTable();
|
|
getOADetailForBM(this.searchData).then(({data}) => {
|
|
this.spForm.nodeName = data.row.nodeName
|
|
this.spForm.sp = data.row.sp
|
|
})
|
|
searchBMPropertiesValue(this.searchData).then(({data}) => {
|
|
|
|
this.tableData = data.rows;
|
|
// this.$message({
|
|
// message: '操作成功',
|
|
// type: 'success',
|
|
// duration: 1500,
|
|
// onClose: () => {
|
|
// }
|
|
// })
|
|
});
|
|
searchBMPropertiesHeaderForBM(this.searchData).then(({data}) => {
|
|
// this.searchData.propertiesCodeNo = data.row.propertiesCodeNo;
|
|
this.$set(this.searchData, 'propertiesCodeNo', data.row.propertiesCodeNo);
|
|
});
|
|
tsdBasicInformationSearch(this.searchData).then(({data}) => {
|
|
this.baseForm=data.row;
|
|
this.getNodeAuthority(data.row)
|
|
})
|
|
this.$clearHighLight()
|
|
} )
|
|
|
|
|
|
},
|
|
searchTable(){
|
|
getOADetailForBM(this.searchData).then(({data}) => {
|
|
this.spForm.nodeName = data.row.nodeName
|
|
this.spForm.sp = data.row.sp
|
|
})
|
|
searchBMPropertiesValue(this.searchData).then(({data}) => {
|
|
|
|
this.tableData = data.rows;
|
|
this.$message({
|
|
message: '操作成功',
|
|
type: 'success',
|
|
duration: 1500,
|
|
onClose: () => {
|
|
}
|
|
})
|
|
});
|
|
searchBMPropertiesHeaderForBM(this.searchData).then(({data}) => {
|
|
// this.searchData.propertiesCodeNo = data.row.propertiesCodeNo;
|
|
this.$set(this.searchData, 'propertiesCodeNo', data.row.propertiesCodeNo);
|
|
});
|
|
tsdBasicInformationSearch(this.searchData).then(({data}) => {
|
|
this.baseForm=data.row;
|
|
this.getNodeAuthority(data.row)
|
|
})
|
|
this.$clearHighLight()
|
|
},
|
|
refreshBMPageModal(){
|
|
this.$confirm(`是否刷新至最新模板界面,已填数据会更新到新模板中,若旧属性在新模板中被删除,该条数据会消失。`, '提示', {
|
|
confirmButtonText: '确定',
|
|
cancelButtonText: '取消',
|
|
type: 'warning'
|
|
}).then(() => {
|
|
refreshBMPageModal(this.searchData).then(({data}) => {
|
|
if (data && data.code === 0) {
|
|
this.searchTable();
|
|
// this.$message({
|
|
// message: '操作成功',
|
|
// type: 'success',
|
|
// duration: 1500,
|
|
// onClose: () => {
|
|
// }
|
|
// })
|
|
} else {
|
|
this.$alert(data.msg, '错误', {
|
|
confirmButtonText: '确定'
|
|
})
|
|
}
|
|
})
|
|
}).catch(() => {
|
|
})
|
|
},
|
|
saveTable(){
|
|
saveBMPropertiesValue(this.tableData).then(({data}) => {
|
|
if (data && data.code === 0) {
|
|
this.$clearHighLight()
|
|
this.$message({
|
|
message: '操作成功',
|
|
type: 'success',
|
|
duration: 1500,
|
|
onClose: () => {
|
|
}
|
|
})
|
|
this.$emit("closeModel")
|
|
} else {
|
|
this.$alert(data.msg, '错误', {
|
|
confirmButtonText: '确定'
|
|
})
|
|
}
|
|
});
|
|
},
|
|
openNewPage(url){
|
|
// window.open(this.$store.state.user.bmPicUrl +url);
|
|
let urlIn=url.replaceAll('\\','/')
|
|
if(url==null||url===''){
|
|
this.$alert("链接没有数据!", '错误', {
|
|
confirmButtonText: '确定'
|
|
})
|
|
return false;
|
|
}
|
|
// window.open(url);
|
|
let data={
|
|
url:urlIn
|
|
}
|
|
checkUrl(data).then(({data}) => {
|
|
if (data && data.code === 0) {
|
|
window.open(data.url);
|
|
} else {
|
|
this.$alert(data.msg, '错误', {
|
|
confirmButtonText: '确定'
|
|
})
|
|
}
|
|
});
|
|
|
|
},
|
|
// 获取流程的配置权限
|
|
getNodeAuthority (row) {
|
|
getBMStatusDesc(this.searchData).then(({data}) => {
|
|
if (data.status === '已完成' || data.status === '已升版') {
|
|
this.ifDisableFlag = true
|
|
return false
|
|
}
|
|
if(data.status === '审批中') {
|
|
let tempData = {
|
|
site: row.site,
|
|
stepId: row.stepId,
|
|
menuId: '103002'
|
|
}
|
|
getNodeAuthority(tempData).then(({data}) => {
|
|
if (data && data.code === 0) {
|
|
this.ifDisableFlag = true
|
|
let plmStepRoleBaseBm = data.rows.plm_stepRole_base_bm
|
|
let arr = plmStepRoleBaseBm.filter(a => a.fieldId === this.searchData.fieldId)
|
|
if (arr.length > 0) {
|
|
if (arr[0].updateFlag === 'N') {
|
|
this.ifDisableFlag = true
|
|
} else {
|
|
this.ifDisableFlag = false
|
|
}
|
|
} else {
|
|
this.ifDisableFlag = true
|
|
}
|
|
}
|
|
})
|
|
}
|
|
})
|
|
},
|
|
|
|
// 同意提交
|
|
agreeSubmit () {
|
|
this.$confirm(`是否确认提交?`, '提示', {
|
|
confirmButtonText: '确定',
|
|
cancelButtonText: '取消',
|
|
type: 'warning'
|
|
}).then(() => {
|
|
let tempData = {
|
|
site: this.searchData.site,
|
|
userName: this.$store.state.user.name,
|
|
codeNo: this.searchData.codeNo,
|
|
menuId: '103002',
|
|
nodeConclusion: 'Y'
|
|
}
|
|
this.submitData(tempData)
|
|
})
|
|
},
|
|
// 打开提交模态框
|
|
submitDataModal () {
|
|
this.rejectOpinion = ''
|
|
this.submitModalFlag = true
|
|
},
|
|
// 驳回提交
|
|
rejectSubmit () {
|
|
this.$confirm(`是否确认驳回?`, '提示', {
|
|
confirmButtonText: '确定',
|
|
cancelButtonText: '取消',
|
|
type: 'warning'
|
|
}).then(() => {
|
|
let tempData = {
|
|
site: this.searchData.site,
|
|
userName: this.$store.state.user.name,
|
|
codeNo: this.searchData.codeNo,
|
|
menuId: '103002',
|
|
nodeConclusion: 'N',
|
|
rejectOpinion : this.rejectOpinion
|
|
}
|
|
this.submitData(tempData)
|
|
})
|
|
},
|
|
submitData (tempData) {
|
|
|
|
saveBMPropertiesValue(this.tableData).then(({data}) => {
|
|
if (data && data.code === 0) {
|
|
submitChange(tempData).then(({data}) => {
|
|
if (data && data.code === 0) {
|
|
this.searchTable()
|
|
this.submitModalFlag = false
|
|
this.$emit("closeModel")
|
|
} else {
|
|
this.$alert(data.msg, '错误', {
|
|
confirmButtonText: '确定'
|
|
})
|
|
}
|
|
})
|
|
} else {
|
|
this.$message.error(data.msg)
|
|
}
|
|
})
|
|
|
|
},
|
|
},
|
|
}
|
|
</script>
|
|
|
|
<style scoped>
|
|
|
|
</style>
|