增加企标制修订立项计划流程

This commit is contained in:
zhoulingpo
2023-11-20 15:45:40 +08:00
parent 34e89a53d5
commit 5f66128bcc
2 changed files with 628 additions and 0 deletions
@@ -0,0 +1,618 @@
<template>
<div class="phoneQbzxdjhgkStep2 phoneBox">
<ProcessHeaderPhone toggle>
<template slot="proName">企标制修订立项计划流程</template>
<template slot="proNode">审核</template>
</ProcessHeaderPhone>
<div class="headerTabs">
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
<div class="headerTabsItem" :class="active === '3' ? 'active' : '' " @click="handleTabs('3')">审批历史</div>
</div>
<div class="content" >
<div style="flex: auto; " v-show="active === '1'">
<process-title>
<template slot="title">基础信息</template>
</process-title>
<template v-if="active === '1'">
<el-form :model="qbfsForm" class="label-input-form prc-content-border"
label-width="100px" :rules="qbfsFormRules">
<InputFormItem
label="项目目标"
prop="projectTarget"
v-model="qbfsForm.projectTarget"
:disabled="true"
></InputFormItem>
<el-form-item label="附件" prop="fileName" class="add-form-item form-item-disabled">
<div class="file-box" v-if="fileList.length > 0" style="display: flex">
<p v-for="item in fileList"
style="margin-left: 10px;"
:key="item.id" @click.stop="clickButtonToUpload2(item.id)"> {{ item.name }}
<i
title="下载"
@click.stop="downloadFile(item.id)"
class="icon-download"
v-btn-permission="''"
/>
</p>
</div>
<div v-else>
暂无数据
</div>
</el-form-item>
<SelectFormItem
label="企标类别"
prop="bussSort"
v-model="qbfsForm.bussSort"
:options="standSortOptions || []"
:disabled="true"
></SelectFormItem>
<InputFormItem
label="企标名称"
prop="esName"
v-model="qbfsForm.esName"
:disabled="true"
></InputFormItem>
<SelectFormItem
label="制修订类型"
prop="bussSort"
v-model="qbfsForm.reviseStatus"
:options="reviewOptions || []"
:disabled="true"
></SelectFormItem>
<InputFormItem
v-if="qbfsForm.reviseStatus === '修订'"
label="代替企标编号"
prop="esName"
v-model="qbfsForm.rqbName"
:disabled="true"
></InputFormItem>
<InputFormItem
label="起草责任单位"
prop="unitName"
v-model="qbfsForm.unitName"
:disabled="true"
></InputFormItem>
<InputFormItem
label="起草人"
prop="drafterName"
v-model="qbfsForm.drafterName"
:disabled="true"
></InputFormItem>
<InputFormItem
label="评审责任人"
prop="resPersonName"
v-model="qbfsForm.resPersonName"
:disabled="true"
></InputFormItem>
<InputFormItem
label="技术委员会评审负责人"
prop="wgLeaderName"
v-model="qbfsForm.wgLeaderName"
:disabled="true"
></InputFormItem>
<DatePickerFormItem
label="计划标准初稿完成时间"
prop="draftTime"
v-model="qbfsForm.draftTime"
:disabled="true"
></DatePickerFormItem>
<DatePickerFormItem
label="计划标准发布时间"
prop="endTime"
v-model="qbfsForm.releaseTime"
:disabled="true"
></DatePickerFormItem>
<DatePickerFormItem
label="立项完成时间"
prop="endTime"
v-model="qbfsForm.endTime"
:disabled="true"
></DatePickerFormItem>
<InputFormItem
label="体系结构"
prop="tsJsonName"
v-model="qbfsForm.tsJsonName"
:disabled="true"
></InputFormItem>
<SelectFormItem
label="适用车型"
prop="bussSort"
v-model="qbfsForm.area"
:options="BZList || []"
:disabled="true"
></SelectFormItem>
<el-form-item prop="isRelate" label="是否采用标准" style="width: 100%; margin-right:10px"
class="add-form-item form-item-disabled">
<el-select v-model="qbfsForm.isRelate" placeholder="请选择是否采用标准" disabled>
<el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option>
</el-select>
</el-form-item>
<InputFormItem
v-if="qbfsForm.isRelate === '否'"
label="简述指标依据"
prop="tsJsonName"
v-model="qbfsForm.technologic"
:disabled="true"
></InputFormItem>
<template v-if="qbfsForm.isRelate === '是'">
<custom-input-for-all-standards2
class="classDisplay"
:config="{attrName: '采用标准',attrField:'esStandRelations'}"
:labelWidth="'100px'"
v-model="qbfsForm.esStandRelations"
:disabled="true"
></custom-input-for-all-standards2>
</template>
<SelectFormItem
v-if="qbfsForm.isRelate === '是'"
label="采标程度"
prop="bussSort"
v-model="qbfsForm.useLevel"
:options="cbcdOptions || []"
:disabled="true"
></SelectFormItem>
<template>
<custom-input-for-all-standards2
class="classDisplay"
:enterpriseStandard="true"
:placeholderText="'包括已有、应有的关联标准,如企业标准、行业标准、国家标准'"
:config="{attrName: '引用标准',isPhone:true}"
:labelWidth="'100px'"
:disabled="true"
v-model="qbfsForm.esMatingRelations"
></custom-input-for-all-standards2>
</template>
<el-form-item label="立项单" prop="LXDName" class="add-form-item form-item-disabled">
<div v-if="LXDList.length > 0" v-for="(item,index) in LXDList" :key="index" style="color: #409eff;cursor:pointer" class="fileClass">
<span style="width: 80%;" @click="handleFilePreview(item,'preview')">{{ item.name }}</span>
<!-- <span style="width: 20%;margin-left: 15px;" v-if="item.id !== ''">-->
<!-- <el-button type="primary" size="mini" plain icon="el-icon-download" @click="handleFilePreview(item,'down')"></el-button>-->
<!-- </span>-->
<span style="width: 20%;margin-left: 15px;" v-if="item.id !== ''">
<el-button type="primary" size="mini" plain icon="el-icon-edit" @click="handleFilePreview(item,'onlineEdit')"></el-button>
</span>
</div>
</el-form-item>
</el-form>
</template>
</div>
<template class="content" v-if="active === '3'">
<PhoneHistortTable :prcNum="$route.query.prcNum"></PhoneHistortTable>
</template>
</div>
<ProcessFooter
show-transfer
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
:approval="true"
@back="beforeBack"
@transfer="handleTransfer"
@submit="handleSubmit"
>
</ProcessFooter>
<phone-role
:role-title="drawerTitle"
:result-list="phoneRoleList"
:is-show-phone.sync="phoneshowflag"
@checkedRole="drawerCheck"
/>
</div>
</template>
<script>
import InputFormItem from '@/components/hzwlComponents/InputFormItem'
import SelectFormItem from '@/components/hzwlComponents/SelectFormItem'
import SelectMultipleFormItem from '@/components/hzwlComponents/SelectMultipleFormItem'
import ProcessHeaderPhone from '../../components/ProcessHeaderPhone'
import ProcessHeader from "../../components/ProcessHeader";
import ProcessTitle from "process/components/ProcessTitle";
import CustomInputForAllStandards2 from '@/components/CustomFormComponents/InputForAllStandards2'
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
import ProcessFooter from "process/components/ProcessFooter";
import { changeAssigneeNew,inboundLiaisonDetail } from "api/process";
import DatePickerFormItem from '@/components/hzwlComponents/DatePickerFormItem'
export default {
name: "step2.vue",
components: {
PhoneHistortTable,
InputFormItem,
ProcessHeader,
ProcessTitle,
ProcessHeaderPhone,
ProcessFooter,
DatePickerFormItem,
SelectMultipleFormItem,
SelectFormItem,
CustomInputForAllStandards2
},
data(){
const standNameVerify = (rule, value, callback) => {
if(value === '' || value === null){
return callback(new Error('请输入企标名称'))
}else {
this.$http.get('esRevisePlan/es-revise-plan/getDataByNameAndSort', {
bussSort: this.qbfsForm.bussSort,
esName: this.qbfsForm.esName,
}, {
_this: this,
}, res => {
if (res.data && res.data > 0) {
return callback(new Error('企标名称重复'))
}else {
callback()
}
}, e => {
})
}
};
return {
reviewOptions:[
{label:'制定',value:'制定'},
{label:'修订',value:'修订'},
],
active: '1',
commentText: '',
workModel: false,
isTransfer: false,
isSubmit: false,
saveLoading: false,
drawerModal: false,
workSearch: {
workGroupName: "",
},
total: 0,
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
QYBZmodal: false,
TXJGmodal: false,
modalshowflagZRBM: false,
QYBZShow: false,
defaultProps: {
children: 'children',
label: 'menuName'
},
workData: [],
TXJGList: [],
QYBZList: [],
QYBZformSelect: [],
standSystemOptions: [],
QYBZform: {
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
validFlag: '0',
userId: this.$store.getters.userInfo.userId,
standCode: '',
standName: '',
total: 0,
},
nodeListZRBM: [],
drawerTitle2: '',
drawerTitle: '',
roleType: '',
modalshowflag2: false,
modalshowflag: false,
nodeList2: [],
fileList:[],
nodeList: [],
workChangeList: [],
standSortOptions: [],
cbcdOptions: [],
lxdList:[],
BZList: [],
qcdwOptions: [],
LXDList: [],
qbfsForm: {
type: "5",
unit: "", // 单位
unitName: "",
esName: "", // 企标名称
planStatus: "0", // 计划状态
reviseStatus: "", // 制修订类型
area: "", //适用车型
isRelate: "", //采用何种标准
technologic: '', //指标依据
resPerson: "", // 评审责任人
resPersonName: "",
wgLeader: "", // 工作组组长
wgLeaderName: "",
draftTime: "", // 计划标准初稿完成时间
releaseTime: "", // 计划标准发布时间
drafter: "", // 起草人
drafterName: "",
esMatingRelations: "", //配套标准
newReason: "", //立项原因
LXDName: "", //立项单名称
LXD: "", //立项单
// remarks: '', // 备注
},
//必填人员校验规则
roleFormRules: {
dockUserName: [
{ required: true, message: "请选择标准立项单位整车/系统总工", trigger: "change" }
],
countersignerName:[
{required: true, message:'请选择会签人员', trigger: "change" }
],
examineName:[
{required: true, message:'请选择标准体系工作组组长', trigger: "change" }
],
approverName:[
{required: true, message:'请选择总院技术委员会覆盖领域企业标准:专委会主任/总院技术委员会未覆盖领域企业标准:总院院长或总院主管副院长', trigger: "change" }
],
engineerName:[
{required: true, message:'请选择相关单位、工程研究总院标准法规部', trigger: "change" }
],
},
roleForm: {
prcCreateUserName: this.$store.getters.userInfo.userName,
prcCreateUser: this.$store.getters.userInfo.userId,
dockUser: "",
dockUserName: "",
countersigner: "",
countersignerName: "",
approver: "",
approverName: "",
engineer: "",
engineerName: "",
examine: "",
examineName: ""
},
qbfsFormRules: {
projectTarget: [
{ required: true, message: "请输入项目目标", trigger: "blur" }
],
// fileName: [
// { required: true, message: "请上传附件", trigger: "blur" }
// ],
bussSort: [
{ required: true, message: "请选择企标类别", trigger: "blur" }
],
esName: [
{ required: true, validator: standNameVerify, trigger: "blur" }
],
rqbName: [
{ required: true, message: "请输入代替企标编号", trigger: "blur" }
],
reviseStatus: [
{ required: true, message: "请选择制修订类型", trigger: "blur" }
],
unitName: [
{ required: true, message: "请选择起草单位", trigger: "change" }
],
drafterName: [
{ required: true, message: "请选择起草人", trigger: "change" }
],
resPersonName: [
{ required: true, message: "请输入评审责任人", trigger: "blur" }
],
wgLeaderName: [
{ required: true, message: "请输入技术委员会评审负责人", trigger: "blur" }
],
draftTime: [
{ required: true, message: "请选择计划标准初稿完成时间", trigger: "blur" }
],
releaseTime: [
{ required: true, message: "请选择计划标准发布时间", trigger: "blur" }
],
endTime: [
{ required: true, message: "请选择立项完成时间", trigger: "change" }
],
tsJsonName: [
{ required: true, message: "请选择体系结构", trigger: "change" }
],
area: [
{ required: true, message: "请选择适用车型", trigger: "blur" }
],
isRelate: [
{ required: true, message: "请选择是否采用标准", trigger: "blur" }
],
technologic: [
{ required: true, message: "请输入指标依据", trigger: "blur" }
],
useLevel: [
{ required: true, message: "请选择采标程度", trigger: "change" }
],
newReason: [
{required: true, message: '请输入立项原因', trigger: 'blur'},
],
esStandRelations: [
{required: true, message: '请输入采用标准', trigger: 'blur'},
],
},
//技术委员会评审负责人
workLeaderVisible: false,
workLeaderNodeList: []
}
},
mounted() {
this.getWorkData()
this.processTable()
this.getData()
this.$http.get('/lawss/activiti/saveEditFile', {
model: 'model_lx'
},{
_this: this
}, res => {
console.log(res)
if(res){
this.qbfsForm.LXD = res.id
this.qbfsForm.LXDName = '立项单'
this.LXDList=this.assemble(res.id,'立项单');
}
})
//查询下拉框数据
this.$http.get('sys/dictype/getDicTypeListCode', '',{
_this: this
}, res => {
this.cbcdOptions = res.data.DEGREESTANDARD //采标程度
this.BZList = res.data.ENERGYTYPES //适用车型
this.standSystemOptions = res.data.TXLBBUSS // 体系结构
this.qcdwOptions = res.data.QCDW // 起草单位
res.data.BUSSSTANDCLASS.forEach(item => {
if(item.label){
this.standSortOptions.push(item) //企标类别
}
})
})
},
methods:{
handleTransfer(){
this.$message({
dangerouslyUseHTMLString: true,
message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
type: 'error'
})
},
handleSubmit(){
this.$message({
dangerouslyUseHTMLString: true,
message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
type: 'error'
})
},
//预览
clickButtonToUpload2(file) {
const attId = file
this.$preview(attId)
},
/**
* @Description: 点击下载
*/
downloadFile(attId) {
if (attId != null && attId !== "") {
window.location.href = "/api/att/attFile/downloadFileForSarNew?fileId=" + attId;
} else {
this.$message.error("请选择要下载的文件");
}
},
handleTabs(name) {
this.active = name;
},
getWorkData() {
this.$http.get("workGroup/work-group", {
pageSize: this.pageSize,
page: this.page,
workGroupName: this.workSearch.workGroupName
}, {
_this: this
}, res => {
this.workData = res.data.records;
this.total = res.data.total;
}, e => {
});
},
processTable() {
this.$http.get("lawss/activiti/get_list_by_instance", {
prcNum: this.$route.query.prcNum,
sortWord: this.shunxu ? this.paixu : "",
shunxu: this.shunxu
}, {
loading: "loading",
_this: this
}, res => {
this.detailData = res
}, e => {
})
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
}).then(res => {
if (res) {
const processForm = JSON.parse(res.mesg)
this.getFormFieldList(processForm)
}
}).catch(e => {
})
})
},
/**
* @description: 动态表单读取
*/
getFormFieldList (item) {
console.log(item);
this.$nextTick(() => {
this.qbfsForm = JSON.parse(JSON.stringify(item))
item.qblxFile.forEach(itemId => {
this.fileIds = itemId.id
this.getFileInfo();
});
this.type = item.type
})
},
// 请求上传的文件信息
getFileInfo() {
this.$http.get("att/attFile/getMultiFileInfos", {
fileIds: this.fileIds
}, {
_this: this
}, res => {
this.$nextTick(() => {
res.data.map(item => {
// 赋值要回显的上传文件内容
this.fileList.push({
name: item.oldFileName,
uid: item.uid,
status: item.status,
id: item.id,
fileSuffix: item.fileSuffix
});
});
});
}, e => {
});
},
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/phone';
.phoneQbzxdjhgkStep2 {
/deep/.van-dialog__content {
min-height: 300px;
padding: 10px;
}
.prc-content-border {
overflow: auto;
}
///deep/.prc-content-border .el-form-item__content {
// width: 270px;
//}
.content {
border-top: 1px solid #DCDFE6;
display: flex;
flex-direction: column;
justify-content: space-between;
margin-top: 52px;
//height: calc(~'100% - 155px');
overflow: auto;
.tableTitle {
margin-bottom: 10px;
height: 30px;
line-height: 30px;
position: relative;
font-size: 13px;
font-weight: bold;
.tableButton {
position: absolute;
right: 0;
top: 0;
}
}
}
}
</style>
+10
View File
@@ -2676,6 +2676,16 @@ const routes = [
title: '企标制修订立项计划流程(责任人确认)'
}
},
{
path: '/phoneqbzxdlxStep2',
name: 'phoneqbzxdlxStep2',
component: () => import('@/pages/processCenter/pages/phone/qbzxdlx/step2.vue'),
meta: {
isBoolean: true,
requireAuth: true,
title: '企标制修订立项计划流程(责任人确认)'
}
},
{
path: '/qbzxdlxStep1-2',
name: 'qbzxdlxStep1-2',