Merge remote-tracking branch 'origin/develop' into develop

This commit is contained in:
yanyizhou
2021-12-08 10:08:37 +08:00
8 changed files with 914 additions and 192 deletions
@@ -2544,7 +2544,7 @@
pId: this.pId pId: this.pId
}).then(res => { }).then(res => {
if (res) { if (res) {
this.taskInfo = res.taskInfo this.taskInfo = '企标编写流程'
const processForm = JSON.parse(res.mesg) const processForm = JSON.parse(res.mesg)
const dateArr = [] const dateArr = []
if(processForm.commentCycleStart && processForm.commentCycleEnd){ if(processForm.commentCycleStart && processForm.commentCycleEnd){
@@ -2543,7 +2543,7 @@
pId: this.pId pId: this.pId
}).then(res => { }).then(res => {
if (res) { if (res) {
this.taskInfo = res.taskInfo this.taskInfo = '企标汇总修订'
const processForm = JSON.parse(res.mesg) const processForm = JSON.parse(res.mesg)
const dateArr = [] const dateArr = []
if(processForm.commentCycleStart && processForm.commentCycleEnd){ if(processForm.commentCycleStart && processForm.commentCycleEnd){
@@ -278,10 +278,10 @@
<el-form-item <el-form-item
prop="approvalOpinion" prop="approvalOpinion"
> >
<el-select @change="getRule" v-model="formTongGuo.approvalOpinion" placeholder="请审批" style="margin-bottom: 20px;"> <!-- <el-select @change="getRule" v-model="formTongGuo.approvalOpinion" placeholder="请审批" style="margin-bottom: 20px;">-->
<el-option label="驳回" value="1"></el-option> <!-- <el-option label="驳回" value="1"></el-option>-->
<el-option label="通过" value="0"></el-option> <!-- <el-option label="通过" value="0"></el-option>-->
</el-select> <!-- </el-select>-->
</el-form-item> </el-form-item>
<el-form-item <el-form-item
prop="commentText" prop="commentText"
@@ -5,7 +5,7 @@
<template slot="proNode">会签征求意见</template> <template slot="proNode">会签征求意见</template>
</ProcessHeader> </ProcessHeader>
<div class="headerTabs"> <div class="headerTabs">
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">会签</div> <div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">会签评</div>
<div class="headerTabsItem" :class="active === '2' ? 'active' : ''" @click="handleTabs('2')">基础信息</div> <div class="headerTabsItem" :class="active === '2' ? 'active' : ''" @click="handleTabs('2')">基础信息</div>
<!-- <div class="headerTabsItem" :class="active === '2' ? 'active' : ''" @click="handleTabs('2')">模块信息</div>--> <!-- <div class="headerTabsItem" :class="active === '2' ? 'active' : ''" @click="handleTabs('2')">模块信息</div>-->
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div> <div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
@@ -81,7 +81,7 @@
<template slot-scope="scope"> <template slot-scope="scope">
<el-form-item <el-form-item
:prop="'evaluationData.'+scope.$index + '.score'" :prop="'evaluationData.'+scope.$index + '.score'"
:rules="rules.score" > :rules="scope.row.valueType !== 'add' ? rules.score : rules.scoreNot" >
<el-input v-model.number="scope.row.score" placeholder="请填写分值" /> <el-input v-model.number="scope.row.score" placeholder="请填写分值" />
</el-form-item> </el-form-item>
</template> </template>
@@ -101,7 +101,7 @@
align="center" align="center"
label="简述扣分理由不合格6必填" label="简述扣分理由不合格6必填"
> >
<template slot-scope="scope" v-if="(scope.row.score !== undefined && scope.row.score !== '' && scope.row.score < 6)"> <template slot-scope="scope" v-if="(scope.row.valueType !== 'add' && scope.row.score !== undefined && scope.row.score !== '' && scope.row.score < 6)">
<el-form-item <el-form-item
:prop="'evaluationData.'+scope.$index + '.reason'" :prop="'evaluationData.'+scope.$index + '.reason'"
:rules="rules.reason" > :rules="rules.reason" >
@@ -917,6 +917,14 @@
TreeSelectNew TreeSelectNew
}, },
data () { data () {
const numberCodeNot = (rule, value, callback) => {
let pattern = /^[1]*$/
if (!pattern.test(value)) {
return callback(new Error('评分分值只可为1分'))
} else {
callback()
}
};
const numberCode = (rule, value, callback) => { const numberCode = (rule, value, callback) => {
if(value === undefined || value === ''){ if(value === undefined || value === ''){
return callback(new Error('评分分值不可为空')) return callback(new Error('评分分值不可为空'))
@@ -1306,6 +1314,9 @@
], ],
}, },
rules:{ rules:{
scoreNot:[
{required: false, validator: numberCodeNot, trigger: 'blur'},
],
score: [ score: [
{required: true, validator: numberCode, trigger: 'blur'}, {required: true, validator: numberCode, trigger: 'blur'},
{ type: 'number',min: 0, max: 10, message: '分值 0 ~ 10 分 ', trigger: 'blur' }, { type: 'number',min: 0, max: 10, message: '分值 0 ~ 10 分 ', trigger: 'blur' },
@@ -1463,7 +1474,7 @@
} }
}, },
setScoreMin(row){ setScoreMin(row){
return row.scoreMin = ((row.score === undefined || row.score === '') ? '' : (row.score / 10).toFixed(1)) return row.scoreMin = ((row.score === undefined || row.score === '') ? '' : row.valueType === 'add' ? row.score : (row.score / 10).toFixed(1))
}, },
getSummaries(param) { getSummaries(param) {
@@ -2653,12 +2664,12 @@
// } // }
this.$refs['form'].validate((valid) => { this.$refs['form'].validate((valid) => {
if (valid) { if (valid) {
return
this.$refs['formTongGuo'].validate((valid) => { this.$refs['formTongGuo'].validate((valid) => {
if (valid) { if (valid) {
this.isSubmit = true this.isSubmit = true
this.form.commentText = this.formTongGuo.commentText this.form.commentText = this.formTongGuo.commentText
this.form.approvalOpinion = this.formTongGuo.approvalOpinion this.form.approvalOpinion = this.formTongGuo.approvalOpinion
// 会签意见存储
const infoList = [] const infoList = []
const info = {} const info = {}
info.userId = this.userId info.userId = this.userId
@@ -2725,6 +2736,7 @@
getFormFieldList (item) { getFormFieldList (item) {
this.$nextTick(() => { this.$nextTick(() => {
this.form = JSON.parse(JSON.stringify(item)) this.form = JSON.parse(JSON.stringify(item))
this.getEvaluation()
this.form.prcNum = this.prcNum this.form.prcNum = this.prcNum
this.form.prcName = this.prcName this.form.prcName = this.prcName
this.form['id'] = item.id this.form['id'] = item.id
@@ -2756,7 +2768,6 @@
evalList.push(item) evalList.push(item)
}) })
this.form.evaluationData = evalList this.form.evaluationData = evalList
console.log(this.form.evaluationData)
this.$forceUpdate() this.$forceUpdate()
} }
}).catch(e => { }).catch(e => {
@@ -2771,7 +2782,7 @@
pId: this.pId pId: this.pId
}).then(res => { }).then(res => {
if (res) { if (res) {
this.taskInfo = res.taskInfo this.taskInfo = '会签征求意见'
const processForm = JSON.parse(res.mesg) const processForm = JSON.parse(res.mesg)
const dateArr = [] const dateArr = []
if(processForm.commentCycleStart && processForm.commentCycleEnd){ if(processForm.commentCycleStart && processForm.commentCycleEnd){
@@ -2825,7 +2836,6 @@
}, },
mounted () { mounted () {
this.getTaskId() this.getTaskId()
this.getEvaluation()
this.getData() this.getData()
this.processTable() this.processTable()
this.$http.get('sys/dictype/getDicTypeListCode', '', { this.$http.get('sys/dictype/getDicTypeListCode', '', {
@@ -2870,12 +2880,12 @@
/deep/ .column1{ /deep/ .column1{
font-size: 18px !important; font-size: 18px !important;
} }
/deep/ .el-input__suffix{
display: none !important;
}
/deep/ #active1 .el-form-item__content{ /deep/ #active1 .el-form-item__content{
margin-left: 0px !important; margin-left: 0px !important;
} }
/deep/ .el-input__suffix{
display: none !important;
}
/deep/ #active2 .el-form-item__content{ /deep/ #active2 .el-form-item__content{
margin-left: 0px !important; margin-left: 0px !important;
} }
@@ -875,6 +875,7 @@
}, },
loading: false, loading: false,
disabledState: true, disabledState: true,
taskInfo:'主起草人修订并组织评审',
userId:this.$store.getters.userInfo.userId, userId:this.$store.getters.userInfo.userId,
taskIds: this.$route.query.taskIds, taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId, pId: this.$route.query.prcId,
@@ -2337,16 +2338,10 @@
// _formData.append('id', this.bpnId) // _formData.append('id', this.bpnId)
_formData.append('createUser', this.$store.getters.userInfo.userId) _formData.append('createUser', this.$store.getters.userInfo.userId)
_formData.append('createUserName', this.$store.getters.userInfo.uName) _formData.append('createUserName', this.$store.getters.userInfo.uName)
_formData.append('prcType', 'laws1') _formData.append('prcType', 'buss1')
_formData.append('prcName', '政策入库流程') _formData.append('prcName', '企标制修订流程及企业标准库流程')
_formData.append('json', JSON.stringify({ _formData.append('json', JSON.stringify({
// prcForm: this.prcForm, taskInfo: this.taskInfo,
// sarAccessInfoList: this.sarAccessInfoList,
// sarAccessInfoListADMIN: this.sarAccessInfoListADMIN,
// bzqdForm: this.bzqdForm,
// listInfo: this.listInfo,
// id: this.id
taskInfo: '申请人发起',
form: this.form, form: this.form,
roleForm: this.roleForm, roleForm: this.roleForm,
commentText: this.commentText commentText: this.commentText
@@ -5,7 +5,8 @@
<template slot="proNode">标准法规工程师复审</template> <template slot="proNode">标准法规工程师复审</template>
</ProcessHeader> </ProcessHeader>
<div class="headerTabs"> <div class="headerTabs">
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div> <div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">复审评分</div>
<div class="headerTabsItem" :class="active === '2' ? 'active' : ''" @click="handleTabs('2')">基础信息</div>
<!-- <div class="headerTabsItem" :class="active === '2' ? 'active' : ''" @click="handleTabs('2')">模块信息</div>--> <!-- <div class="headerTabsItem" :class="active === '2' ? 'active' : ''" @click="handleTabs('2')">模块信息</div>-->
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div> <div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
</div> </div>
@@ -17,7 +18,135 @@
class="label-input-form" class="label-input-form"
label-width="210px" label-width="210px"
> >
<div style="flex: auto;" v-show="active === '1'"> <div style="flex: auto;" id="active1" v-show="active === '1'">
<template>
<el-table
:data="form.evaluationData"
:summary-method="getSummaries"
show-summary
:span-method="(({row, column, rowIndex, columnIndex})=>objectSpanMethod({row, column, rowIndex, columnIndex},form.evaluationData))"
style="width: 100%">
<el-table-column label="企业标准编写质量评价表" align="center" label-class-name="column1">
<el-table-column
label="标准代号"
>
<el-table-column
prop="oneIndexTitle"
align="center"
label="一级指标"
width = '120'
>
</el-table-column>
</el-table-column>
<el-table-column
:label="form.standCode"
>
<el-table-column
prop="twoIndexTitle"
align="center"
label="二级指标"
width = '120'
>
</el-table-column>
<el-table-column
prop="threeIndexTitle"
label="三级指标"
width="300"
>
</el-table-column>
</el-table-column>
<el-table-column
label="标准名称"
>
<el-table-column
prop="weight"
align="center"
label="指标权重 %"
width = '100'
>
<template slot-scope="scope">
{{scope.row.valueType === 'number' ? scope.row.weight * 100 : '加分项('+scope.row.weight+'分)'}}
</template>
</el-table-column>
</el-table-column>
<el-table-column
:label="form.standName"
>
<el-table-column
prop="score"
align="center"
label="指标分值10分制8合格68不合格6"
width = '200'
>
<template slot-scope="scope">
<el-form-item
:prop="'evaluationData.'+scope.$index + '.score'"
:rules="scope.row.valueType !== 'add' ? rules.score : rules.scoreNot" >
<el-input v-model.number="scope.row.score" placeholder="请填写分值" />
</el-form-item>
</template>
</el-table-column>
<el-table-column
prop="scoreMin"
align="center"
label="分值小计"
width = '80'
>
<template slot-scope="scope">
{{setScoreMin(scope.row)}}
</template>
</el-table-column>
<el-table-column
prop="reason"
align="center"
label="简述扣分理由不合格6必填"
>
<template slot-scope="scope" v-if="(scope.row.valueType !== 'add' && scope.row.score !== undefined && scope.row.score !== '' && scope.row.score < 6)">
<el-form-item
:prop="'evaluationData.'+scope.$index + '.reason'"
:rules="rules.reason" >
<el-input v-model="scope.row.reason" placeholder="请填写扣分理由" />
</el-form-item>
</template>
</el-table-column>
</el-table-column>
</el-table-column>
</el-table>
</template>
<div>
<el-collapse accordion v-model="activeName">
<el-collapse-item title="复审意见" name = "1">
<div style="margin: 10px 0;">
<el-form
ref="formTongGuo"
:model="formTongGuo"
:rules="rules">
<!-- <el-form-item-->
<!-- prop="approvalOpinion"-->
<!-- >-->
<!-- <el-select @change="getRule" v-model="formTongGuo.approvalOpinion" placeholder="请审批" style="margin-bottom: 20px;">-->
<!-- <el-option label="驳回" value="1"></el-option>-->
<!-- <el-option label="通过" value="0"></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item
prop="commentText"
>
<el-input
type="textarea"
:rows="3"
resize="none"
placeholder="请输入意见"
v-model="formTongGuo.commentText">
</el-input>
</el-form-item>
</el-form>
</div>
</el-collapse-item>
</el-collapse>
</div>
</div>
<div style="flex: auto;" v-show="active === '2'">
<ProcessTitle> <ProcessTitle>
<template slot="title">基础信息</template> <template slot="title">基础信息</template>
</ProcessTitle> </ProcessTitle>
@@ -267,38 +396,6 @@
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
<div>
<el-collapse accordion v-model="activeName">
<el-collapse-item title="审批意见" name = "1">
<div style="margin: 10px 0;">
<el-form
ref="formTongGuo"
:model="formTongGuo"
:rules="rules">
<!-- <el-form-item-->
<!-- prop="approvalOpinion"-->
<!-- >-->
<!-- <el-select @change="getRule" v-model="formTongGuo.approvalOpinion" placeholder="请审批" style="margin-bottom: 20px;">-->
<!-- <el-option label="驳回" value="1"></el-option>-->
<!-- <el-option label="通过" value="0"></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item
prop="commentText"
>
<el-input
type="textarea"
:rows="3"
resize="none"
placeholder="请输入意见"
v-model="formTongGuo.commentText">
</el-input>
</el-form-item>
</el-form>
</div>
</el-collapse-item>
</el-collapse>
</div>
</div> </div>
<!-- <div class="block" id="active2" v-show="active === '2'">--> <!-- <div class="block" id="active2" v-show="active === '2'">-->
<!-- <ProcessTitle>--> <!-- <ProcessTitle>-->
@@ -457,6 +554,7 @@
show-submit show-submit
:saveLoading="saveLoading" :saveLoading="saveLoading"
:submitLoading="isSubmit" :submitLoading="isSubmit"
@save="handleSave"
@submit="handleSubmit" @submit="handleSubmit"
> >
</ProcessFooter> </ProcessFooter>
@@ -804,6 +902,7 @@
import ProcessFooter from '../../components/ProcessFooter' import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle' import ProcessTitle from '../../components/ProcessTitle'
import {saveTaskFirst, queryTaskFirst, getBusStandFileByAttId,inboundLiaisonDetail} from "api/process"; import {saveTaskFirst, queryTaskFirst, getBusStandFileByAttId,inboundLiaisonDetail} from "api/process";
import {getEvaluationIndex} from "api/businessApi";
import TreeSelect from '@/components/treeSelect/treeSelect.vue'; import TreeSelect from '@/components/treeSelect/treeSelect.vue';
import TreeSelectNew from '@/components/treeSelect/treeSelectNew.vue'; import TreeSelectNew from '@/components/treeSelect/treeSelectNew.vue';
let Base64 = require('js-base64').Base64; let Base64 = require('js-base64').Base64;
@@ -818,6 +917,25 @@
TreeSelectNew TreeSelectNew
}, },
data () { data () {
const numberCodeNot = (rule, value, callback) => {
let pattern = /^[1]*$/
if (!pattern.test(value)) {
return callback(new Error('评分分值只可为1分'))
} else {
callback()
}
};
const numberCode = (rule, value, callback) => {
if(value === undefined || value === ''){
return callback(new Error('评分分值不可为空'))
}
let pattern = /^[0-9]*$/
if (!pattern.test(value)) {
return callback(new Error('只能输入数字'))
} else {
callback()
}
};
const validateZrUserIdName = (rule, value, callback) => { const validateZrUserIdName = (rule, value, callback) => {
if(this.FBGBUSSFileList.length === 0){ if(this.FBGBUSSFileList.length === 0){
callback(new Error('请上传发布稿文件!')) callback(new Error('请上传发布稿文件!'))
@@ -873,6 +991,7 @@
}, },
loading: false, loading: false,
disabledState: true, disabledState: true,
taskInfo:'标准法规工程师复审',
userId:this.$store.getters.userInfo.userId, userId:this.$store.getters.userInfo.userId,
taskIds: this.$route.query.taskIds, taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId, pId: this.$route.query.prcId,
@@ -1018,6 +1137,7 @@
countryArr:'', countryArr:'',
commentCycleDate:'', commentCycleDate:'',
form: { form: {
evaluationData:[],
modelData:[], modelData:[],
modelDataNameVerify:[], modelDataNameVerify:[],
modelDataZrUserVerify:[], modelDataZrUserVerify:[],
@@ -1193,6 +1313,14 @@
], ],
}, },
rules:{ rules:{
scoreNot:[
{required: false, validator: numberCodeNot, trigger: 'blur'},
],
score: [
{required: true, validator: numberCode, trigger: 'blur'},
{ type: 'number',min: 0, max: 10, message: '分值 0 ~ 10 分 ', trigger: 'blur' },
],
reason: [{ required: true, message: '请填写扣分理由', trigger: 'blur' }],
commentText: [{ required: true, message: '请输入意见', trigger: 'blur' }], commentText: [{ required: true, message: '请输入意见', trigger: 'blur' }],
approvalOpinion: [{ required: true, message: '请选择审批意见', trigger: 'change' }], approvalOpinion: [{ required: true, message: '请选择审批意见', trigger: 'change' }],
zrUserIdName: [ zrUserIdName: [
@@ -1323,6 +1451,84 @@
}, },
}, },
methods: { methods: {
filterData2(){
let spanOneArr = []
let concatOne = 0
this.form.evaluationData.forEach((item,index)=>{//循环后端查询出来的数据(orderdata)
if(index === 0){
spanOneArr.push(1)
}else{
//name 修改
if(item.twoIndexTitle === this.form.evaluationData[index - 1].twoIndexTitle){ //第一列需合并相同内容的字段
spanOneArr[concatOne] += 1
spanOneArr.push(0)
}else{
spanOneArr.push(1)
concatOne = index
}
}
})
return {
one: spanOneArr,
}
},
setScoreMin(row){
return row.scoreMin = ((row.score === undefined || row.score === '') ? '' : row.valueType === 'add' ? row.score : (row.score / 10).toFixed(1))
},
getSummaries(param) {
const { columns, data } = param;
const sums = [];
columns.forEach((column, index) => {
if (index === 3) {
sums[index] = '合计:';
return;
}else if(index === 6){
sums[index] = '';
return;
}
const values = data.map(item => Number(item[column.property]));
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr);
if (!isNaN(value)) {
return prev + curr;
} else {
return prev;
}
}, 0);
sums[index] += ' ';
} else {
sums[index] = '';
}
if(sums[index] !== '' && sums[index].indexOf(".") !== -1){
sums[index] = parseFloat(sums[index]).toFixed(1);
}
});
return sums;
},
objectSpanMethod({ row, column, rowIndex, columnIndex },value) {
if (columnIndex === 0) {
if (rowIndex === 0) {
return {
rowspan: value.length,
colspan: 1
};
} else {
return {
rowspan: 0,
colspan: 0
};
}
}else if(columnIndex === 1 ) {
const _row = (this.filterData2(this.form.evaluationData).one)[rowIndex]
const _col = _row > 0 ? 1 : 0
return {
rowspan: _row,
colspan: _col
}
}
},
modelProp(row,index){ modelProp(row,index){
console.log(row) console.log(row)
console.log(index) console.log(index)
@@ -1525,6 +1731,11 @@
let mes = JSON.parse(res.mes) let mes = JSON.parse(res.mes)
mes.form.date = new Date(this.$moment(mes.form.date).format('YYYY-MM-DD')) mes.form.date = new Date(this.$moment(mes.form.date).format('YYYY-MM-DD'))
this.form = mes.form this.form = mes.form
this.FBGBUSSFileList=this.assemble(this.form.FBGBUSS,this.form.FBGBUSSName);
this.BZSMBUSSFileList=this.assemble(this.form.BZSMBUSS,this.form.BZSMBUSSName);
this.LSBBBUSSFileList=this.assemble(this.form.LSBBBUSS,this.form.LSBBBUSSName);
this.QTWJBUSSFileList=this.assemble(this.form.QTWJBUSS,this.form.QTWJBUSSName);
this.GLWJBUSSFileList=this.assemble(this.form.GLWJBUSS,this.form.GLWJBUSSName);
this.roleForm = mes.roleForm this.roleForm = mes.roleForm
this.commentText = mes.commentText this.commentText = mes.commentText
}) })
@@ -2319,8 +2530,7 @@
this.active = name this.active = name
}, },
//保存 //保存
handleSave() { handleSave() {this.form.country=this.countryArr;
this.form.country=this.countryArr;
// if(item.country !== undefined && item.country !== null){ // if(item.country !== undefined && item.country !== null){
// this.sarStandardsInfoEO.country = item.country.split(","); // this.sarStandardsInfoEO.country = item.country.split(",");
// } // }
@@ -2330,16 +2540,10 @@
// _formData.append('id', this.bpnId) // _formData.append('id', this.bpnId)
_formData.append('createUser', this.$store.getters.userInfo.userId) _formData.append('createUser', this.$store.getters.userInfo.userId)
_formData.append('createUserName', this.$store.getters.userInfo.uName) _formData.append('createUserName', this.$store.getters.userInfo.uName)
_formData.append('prcType', 'laws1') _formData.append('prcType', 'buss1')
_formData.append('prcName', '政策入库流程') _formData.append('prcName', '企标制修订流程及企业标准库流程')
_formData.append('json', JSON.stringify({ _formData.append('json', JSON.stringify({
// prcForm: this.prcForm, taskInfo: this.taskInfo,
// sarAccessInfoList: this.sarAccessInfoList,
// sarAccessInfoListADMIN: this.sarAccessInfoListADMIN,
// bzqdForm: this.bzqdForm,
// listInfo: this.listInfo,
// id: this.id
taskInfo: '申请人发起',
form: this.form, form: this.form,
roleForm: this.roleForm, roleForm: this.roleForm,
commentText: this.commentText commentText: this.commentText
@@ -2456,37 +2660,41 @@
// } else if (val === '') { // } else if (val === '') {
// this.form.country = [] // this.form.country = []
// } // }
this.$refs['formTongGuo'].validate((valid) => { this.$refs['form'].validate((valid) => {
if (valid) { if (valid) {
this.isSubmit = true this.$refs['formTongGuo'].validate((valid) => {
this.form.commentText = this.formTongGuo.commentText if (valid) {
this.form.approvalOpinion = this.formTongGuo.approvalOpinion this.isSubmit = true
const json = JSON.stringify(this.form); this.form.commentText = this.formTongGuo.commentText
this.$http.post('lawss/activiti/completeTask', { this.form.approvalOpinion = this.formTongGuo.approvalOpinion
taskIds: this.taskIds, const json = JSON.stringify(this.form);
userId : this.userId, this.$http.post('lawss/activiti/completeTask', {
json: json taskIds: this.taskIds,
}, { userId : this.userId,
_this: this json: json
}, res => { }, {
if (res.success) { _this: this
this.$message.success(res.message) }, res => {
// 流程提交之后,应该流转至待办任务页面 if (res.success) {
this.isSubmit = false this.$message.success(res.message)
this.$router.push({path:'/processCenter?tabsName=ProcessCenter'}) // 流程提交之后,应该流转至待办任务页面
// if(this.formTongGuo.approvalOpinion === '1'){ this.isSubmit = false
// this.$message.warning("驳回成功") this.$router.push({path:'/processCenter?tabsName=ProcessCenter'})
// this.isSubmit = false // if(this.formTongGuo.approvalOpinion === '1'){
// // 流程提交之后,应该流转至待办任务页面 // this.$message.warning("驳回成功")
// this.$router.push({path:'/processCenter?tabsName=ProcessCenter'}) // this.isSubmit = false
// }else{ // // 流程提交之后,应该流转至待办任务页面
// this.processCreateLaws(json) // this.$router.push({path:'/processCenter?tabsName=ProcessCenter'})
// } // }else{
}else { // this.processCreateLaws(json)
this.$message.success(res.message) // }
} }else {
}) this.$message.success(res.message)
}}) }
})
}})
}
})
}, },
busVsFunc(){ busVsFunc(){
this.$http.get('sarVppsTree/list', '', { this.$http.get('sarVppsTree/list', '', {
@@ -2518,6 +2726,7 @@
getFormFieldList (item) { getFormFieldList (item) {
this.$nextTick(() => { this.$nextTick(() => {
this.form = JSON.parse(JSON.stringify(item)) this.form = JSON.parse(JSON.stringify(item))
this.getEvaluation()
this.form.prcNum = this.prcNum this.form.prcNum = this.prcNum
this.form.prcName = this.prcName this.form.prcName = this.prcName
this.form['id'] = item.id this.form['id'] = item.id
@@ -2533,6 +2742,28 @@
return list; return list;
}, },
getEvaluation() {
return new Promise((resolve, reject) => {
getEvaluationIndex({
indexType: 'quality'
}).then(res => {
if (res) {
const evalList = []
res.data.forEach(item =>{
item.score = ''
item.scoreMin = ''
item.reason = ''
item.userId = this.userId
item.processNode = this.taskInfo
evalList.push(item)
})
this.form.evaluationData = evalList
this.$forceUpdate()
}
}).catch(e => {
})
})
},
getData() { getData() {
if(this.taskIds && this.pId){ if(this.taskIds && this.pId){
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
@@ -2593,6 +2824,7 @@
}, },
}, },
mounted () { mounted () {
this.getTaskId()
this.getData() this.getData()
this.processTable() this.processTable()
this.$http.get('sys/dictype/getDicTypeListCode', '', { this.$http.get('sys/dictype/getDicTypeListCode', '', {
@@ -2634,9 +2866,15 @@
<style lang="less" scoped> <style lang="less" scoped>
@import '~@/assets/styles/style'; @import '~@/assets/styles/style';
/deep/ .column1{
font-size: 18px !important;
}
/deep/ .el-input__suffix{ /deep/ .el-input__suffix{
display: none !important; display: none !important;
} }
/deep/ #active1 .el-form-item__content{
margin-left: 0px !important;
}
/deep/ #active2 .el-form-item__content{ /deep/ #active2 .el-form-item__content{
margin-left: 0px !important; margin-left: 0px !important;
} }
@@ -5,7 +5,8 @@
<template slot="proNode">技术委员会负责人/起草中心主任审核</template> <template slot="proNode">技术委员会负责人/起草中心主任审核</template>
</ProcessHeader> </ProcessHeader>
<div class="headerTabs"> <div class="headerTabs">
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div> <div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">评审评分</div>
<div class="headerTabsItem" :class="active === '2' ? 'active' : ''" @click="handleTabs('2')">基础信息</div>
<!-- <div class="headerTabsItem" :class="active === '2' ? 'active' : ''" @click="handleTabs('2')">模块信息</div>--> <!-- <div class="headerTabsItem" :class="active === '2' ? 'active' : ''" @click="handleTabs('2')">模块信息</div>-->
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div> <div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
</div> </div>
@@ -17,7 +18,135 @@
class="label-input-form" class="label-input-form"
label-width="210px" label-width="210px"
> >
<div style="flex: auto;" v-show="active === '1'"> <div style="flex: auto;" id="active1" v-show="active === '1'">
<template>
<el-table
:data="form.evaluationData"
:summary-method="getSummaries"
show-summary
:span-method="(({row, column, rowIndex, columnIndex})=>objectSpanMethod({row, column, rowIndex, columnIndex},form.evaluationData))"
style="width: 100%">
<el-table-column label="企业标准编写质量评价表" align="center" label-class-name="column1">
<el-table-column
label="标准代号"
>
<el-table-column
prop="oneIndexTitle"
align="center"
label="一级指标"
width = '120'
>
</el-table-column>
</el-table-column>
<el-table-column
:label="form.standCode"
>
<el-table-column
prop="twoIndexTitle"
align="center"
label="二级指标"
width = '120'
>
</el-table-column>
<el-table-column
prop="threeIndexTitle"
label="三级指标"
width="300"
>
</el-table-column>
</el-table-column>
<el-table-column
label="标准名称"
>
<el-table-column
prop="weight"
align="center"
label="指标权重 %"
width = '100'
>
<template slot-scope="scope">
{{scope.row.valueType === 'number' ? scope.row.weight * 100 : '加分项('+scope.row.weight+'分)'}}
</template>
</el-table-column>
</el-table-column>
<el-table-column
:label="form.standName"
>
<el-table-column
prop="score"
align="center"
label="指标分值10分制8合格68不合格6"
width = '200'
>
<template slot-scope="scope">
<el-form-item
:prop="'evaluationData.'+scope.$index + '.score'"
:rules="scope.row.valueType !== 'add' ? rules.score : rules.scoreNot" >
<el-input v-model.number="scope.row.score" placeholder="请填写分值" />
</el-form-item>
</template>
</el-table-column>
<el-table-column
prop="scoreMin"
align="center"
label="分值小计"
width = '80'
>
<template slot-scope="scope">
{{setScoreMin(scope.row)}}
</template>
</el-table-column>
<el-table-column
prop="reason"
align="center"
label="简述扣分理由不合格6必填"
>
<template slot-scope="scope" v-if="(scope.row.valueType !== 'add' && scope.row.score !== undefined && scope.row.score !== '' && scope.row.score < 6)">
<el-form-item
:prop="'evaluationData.'+scope.$index + '.reason'"
:rules="rules.reason" >
<el-input v-model="scope.row.reason" placeholder="请填写扣分理由" />
</el-form-item>
</template>
</el-table-column>
</el-table-column>
</el-table-column>
</el-table>
</template>
<div>
<el-collapse accordion v-model="activeName">
<el-collapse-item title="审批意见" name = "1">
<div style="margin: 10px 0;">
<el-form
ref="formTongGuo"
:model="formTongGuo"
:rules="rules">
<!-- <el-form-item-->
<!-- prop="approvalOpinion"-->
<!-- >-->
<!-- <el-select @change="getRule" v-model="formTongGuo.approvalOpinion" placeholder="请审批" style="margin-bottom: 20px;">-->
<!-- <el-option label="驳回" value="1"></el-option>-->
<!-- <el-option label="通过" value="0"></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item
prop="commentText"
>
<el-input
type="textarea"
:rows="3"
resize="none"
placeholder="请输入意见"
v-model="formTongGuo.commentText">
</el-input>
</el-form-item>
</el-form>
</div>
</el-collapse-item>
</el-collapse>
</div>
</div>
<div style="flex: auto;" v-show="active === '2'">
<ProcessTitle> <ProcessTitle>
<template slot="title">基础信息</template> <template slot="title">基础信息</template>
</ProcessTitle> </ProcessTitle>
@@ -267,38 +396,6 @@
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
<div>
<el-collapse accordion v-model="activeName">
<el-collapse-item title="审批意见" name = "1">
<div style="margin: 10px 0;">
<el-form
ref="formTongGuo"
:model="formTongGuo"
:rules="rules">
<!-- <el-form-item-->
<!-- prop="approvalOpinion"-->
<!-- >-->
<!-- <el-select @change="getRule" v-model="formTongGuo.approvalOpinion" placeholder="请审批" style="margin-bottom: 20px;">-->
<!-- <el-option label="驳回" value="1"></el-option>-->
<!-- <el-option label="通过" value="0"></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item
prop="commentText"
>
<el-input
type="textarea"
:rows="3"
resize="none"
placeholder="请输入意见"
v-model="formTongGuo.commentText">
</el-input>
</el-form-item>
</el-form>
</div>
</el-collapse-item>
</el-collapse>
</div>
</div> </div>
<!-- <div class="block" id="active2" v-show="active === '2'">--> <!-- <div class="block" id="active2" v-show="active === '2'">-->
<!-- <ProcessTitle>--> <!-- <ProcessTitle>-->
@@ -453,12 +550,13 @@
<!-- 保存||提交--> <!-- 保存||提交-->
<ProcessFooter <ProcessFooter
v-show="verifySarStandard" v-show="verifySarStandard"
:show-save="false" show-save
show-over2 show-over2
show-submit2 show-submit2
show-transfer show-transfer
:submitLoading="isSubmit" :submitLoading="isSubmit"
:saveLoading="saveLoading" :saveLoading="saveLoading"
@save="handleSave"
@transfer="handleTransfer" @transfer="handleTransfer"
@submit2="handle2" @submit2="handle2"
@over2="handle1" @over2="handle1"
@@ -816,6 +914,7 @@
import ProcessFooter from '../../components/ProcessFooter' import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle' import ProcessTitle from '../../components/ProcessTitle'
import {saveTaskFirst, queryTaskFirst, getBusStandFileByAttId,inboundLiaisonDetail,changeAssigneeNew} from "api/process"; import {saveTaskFirst, queryTaskFirst, getBusStandFileByAttId,inboundLiaisonDetail,changeAssigneeNew} from "api/process";
import {getEvaluationIndex} from "api/businessApi";
import TreeSelect from '@/components/treeSelect/treeSelect.vue'; import TreeSelect from '@/components/treeSelect/treeSelect.vue';
import TreeSelectNew from '@/components/treeSelect/treeSelectNew.vue'; import TreeSelectNew from '@/components/treeSelect/treeSelectNew.vue';
let Base64 = require('js-base64').Base64; let Base64 = require('js-base64').Base64;
@@ -830,6 +929,25 @@
TreeSelectNew TreeSelectNew
}, },
data () { data () {
const numberCodeNot = (rule, value, callback) => {
let pattern = /^[1]*$/
if (!pattern.test(value)) {
return callback(new Error('评分分值只可为1分'))
} else {
callback()
}
};
const numberCode = (rule, value, callback) => {
if(value === undefined || value === ''){
return callback(new Error('评分分值不可为空'))
}
let pattern = /^[0-9]*$/
if (!pattern.test(value)) {
return callback(new Error('只能输入数字'))
} else {
callback()
}
};
const validateZrUserIdName = (rule, value, callback) => { const validateZrUserIdName = (rule, value, callback) => {
if(this.FBGBUSSFileList.length === 0){ if(this.FBGBUSSFileList.length === 0){
callback(new Error('请上传发布稿文件!')) callback(new Error('请上传发布稿文件!'))
@@ -885,6 +1003,7 @@
}, },
loading: false, loading: false,
drawerModal: false, drawerModal: false,
taskInfo:'技术委员会负责人/起草中心主任审核',
assigneeNewLoading: false, assigneeNewLoading: false,
disabledState: true, disabledState: true,
userId:this.$store.getters.userInfo.userId, userId:this.$store.getters.userInfo.userId,
@@ -1032,6 +1151,7 @@
countryArr:'', countryArr:'',
commentCycleDate:'', commentCycleDate:'',
form: { form: {
evaluationData:[],
modelData:[], modelData:[],
modelDataNameVerify:[], modelDataNameVerify:[],
modelDataZrUserVerify:[], modelDataZrUserVerify:[],
@@ -1207,6 +1327,14 @@
], ],
}, },
rules:{ rules:{
scoreNot:[
{required: false, validator: numberCodeNot, trigger: 'blur'},
],
score: [
{required: true, validator: numberCode, trigger: 'blur'},
{ type: 'number',min: 0, max: 10, message: '分值 0 ~ 10 分 ', trigger: 'blur' },
],
reason: [{ required: true, message: '请填写扣分理由', trigger: 'blur' }],
commentText: [{ required: true, message: '请输入意见', trigger: 'blur' }], commentText: [{ required: true, message: '请输入意见', trigger: 'blur' }],
approvalOpinion: [{ required: true, message: '请选择审批意见', trigger: 'change' }], approvalOpinion: [{ required: true, message: '请选择审批意见', trigger: 'change' }],
zrUserIdName: [ zrUserIdName: [
@@ -1337,6 +1465,84 @@
}, },
}, },
methods: { methods: {
filterData2(){
let spanOneArr = []
let concatOne = 0
this.form.evaluationData.forEach((item,index)=>{//循环后端查询出来的数据(orderdata)
if(index === 0){
spanOneArr.push(1)
}else{
//name 修改
if(item.twoIndexTitle === this.form.evaluationData[index - 1].twoIndexTitle){ //第一列需合并相同内容的字段
spanOneArr[concatOne] += 1
spanOneArr.push(0)
}else{
spanOneArr.push(1)
concatOne = index
}
}
})
return {
one: spanOneArr,
}
},
setScoreMin(row){
return row.scoreMin = ((row.score === undefined || row.score === '') ? '' : row.valueType === 'add' ? row.score : (row.score / 10).toFixed(1))
},
getSummaries(param) {
const { columns, data } = param;
const sums = [];
columns.forEach((column, index) => {
if (index === 3) {
sums[index] = '合计:';
return;
}else if(index === 6){
sums[index] = '';
return;
}
const values = data.map(item => Number(item[column.property]));
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr);
if (!isNaN(value)) {
return prev + curr;
} else {
return prev;
}
}, 0);
sums[index] += ' ';
} else {
sums[index] = '';
}
if(sums[index] !== '' && sums[index].indexOf(".") !== -1){
sums[index] = parseFloat(sums[index]).toFixed(1);
}
});
return sums;
},
objectSpanMethod({ row, column, rowIndex, columnIndex },value) {
if (columnIndex === 0) {
if (rowIndex === 0) {
return {
rowspan: value.length,
colspan: 1
};
} else {
return {
rowspan: 0,
colspan: 0
};
}
}else if(columnIndex === 1 ) {
const _row = (this.filterData2(this.form.evaluationData).one)[rowIndex]
const _col = _row > 0 ? 1 : 0
return {
rowspan: _row,
colspan: _col
}
}
},
modelProp(row,index){ modelProp(row,index){
console.log(row) console.log(row)
console.log(index) console.log(index)
@@ -1558,6 +1764,11 @@
let mes = JSON.parse(res.mes) let mes = JSON.parse(res.mes)
mes.form.date = new Date(this.$moment(mes.form.date).format('YYYY-MM-DD')) mes.form.date = new Date(this.$moment(mes.form.date).format('YYYY-MM-DD'))
this.form = mes.form this.form = mes.form
this.FBGBUSSFileList=this.assemble(this.form.FBGBUSS,this.form.FBGBUSSName);
this.BZSMBUSSFileList=this.assemble(this.form.BZSMBUSS,this.form.BZSMBUSSName);
this.LSBBBUSSFileList=this.assemble(this.form.LSBBBUSS,this.form.LSBBBUSSName);
this.QTWJBUSSFileList=this.assemble(this.form.QTWJBUSS,this.form.QTWJBUSSName);
this.GLWJBUSSFileList=this.assemble(this.form.GLWJBUSS,this.form.GLWJBUSSName);
this.roleForm = mes.roleForm this.roleForm = mes.roleForm
this.commentText = mes.commentText this.commentText = mes.commentText
}) })
@@ -2363,16 +2574,10 @@
// _formData.append('id', this.bpnId) // _formData.append('id', this.bpnId)
_formData.append('createUser', this.$store.getters.userInfo.userId) _formData.append('createUser', this.$store.getters.userInfo.userId)
_formData.append('createUserName', this.$store.getters.userInfo.uName) _formData.append('createUserName', this.$store.getters.userInfo.uName)
_formData.append('prcType', 'laws1') _formData.append('prcType', 'buss1')
_formData.append('prcName', '政策入库流程') _formData.append('prcName', '企标制修订流程及企业标准库流程')
_formData.append('json', JSON.stringify({ _formData.append('json', JSON.stringify({
// prcForm: this.prcForm, taskInfo: this.taskInfo,
// sarAccessInfoList: this.sarAccessInfoList,
// sarAccessInfoListADMIN: this.sarAccessInfoListADMIN,
// bzqdForm: this.bzqdForm,
// listInfo: this.listInfo,
// id: this.id
taskInfo: '申请人发起',
form: this.form, form: this.form,
roleForm: this.roleForm, roleForm: this.roleForm,
commentText: this.commentText commentText: this.commentText
@@ -2479,7 +2684,11 @@
}, },
handle2(){ handle2(){
this.formTongGuo.approvalOpinion = 0 this.formTongGuo.approvalOpinion = 0
this.handleSubmit() this.$refs['form'].validate((valid) => {
if (valid) {
this.handleSubmit()
}
})
}, },
getRule(){ getRule(){
if (this.formTongGuo.approvalOpinion === 0) { if (this.formTongGuo.approvalOpinion === 0) {
@@ -2560,6 +2769,7 @@
getFormFieldList (item) { getFormFieldList (item) {
this.$nextTick(() => { this.$nextTick(() => {
this.form = JSON.parse(JSON.stringify(item)) this.form = JSON.parse(JSON.stringify(item))
this.getEvaluation()
this.form.prcNum = this.prcNum this.form.prcNum = this.prcNum
this.form.prcName = this.prcName this.form.prcName = this.prcName
this.form['id'] = item.id this.form['id'] = item.id
@@ -2575,6 +2785,28 @@
return list; return list;
}, },
getEvaluation() {
return new Promise((resolve, reject) => {
getEvaluationIndex({
indexType: 'quality'
}).then(res => {
if (res) {
const evalList = []
res.data.forEach(item =>{
item.score = ''
item.scoreMin = ''
item.reason = ''
item.userId = this.userId
item.processNode = this.taskInfo
evalList.push(item)
})
this.form.evaluationData = evalList
this.$forceUpdate()
}
}).catch(e => {
})
})
},
getData() { getData() {
if(this.taskIds && this.pId){ if(this.taskIds && this.pId){
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
@@ -2635,6 +2867,7 @@
}, },
}, },
mounted () { mounted () {
this.getTaskId()
this.getData() this.getData()
this.processTable() this.processTable()
this.$http.get('sys/dictype/getDicTypeListCode', '', { this.$http.get('sys/dictype/getDicTypeListCode', '', {
@@ -2676,6 +2909,12 @@
<style lang="less" scoped> <style lang="less" scoped>
@import '~@/assets/styles/style'; @import '~@/assets/styles/style';
/deep/ .column1{
font-size: 18px !important;
}
/deep/ #active1 .el-form-item__content{
margin-left: 0px !important;
}
/deep/ .el-input__suffix{ /deep/ .el-input__suffix{
display: none !important; display: none !important;
} }
@@ -5,7 +5,8 @@
<template slot="proNode">标准法规部部长审核</template> <template slot="proNode">标准法规部部长审核</template>
</ProcessHeader> </ProcessHeader>
<div class="headerTabs"> <div class="headerTabs">
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div> <div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">审核评分</div>
<div class="headerTabsItem" :class="active === '2' ? 'active' : ''" @click="handleTabs('2')">基础信息</div>
<!-- <div class="headerTabsItem" :class="active === '2' ? 'active' : ''" @click="handleTabs('2')">模块信息</div>--> <!-- <div class="headerTabsItem" :class="active === '2' ? 'active' : ''" @click="handleTabs('2')">模块信息</div>-->
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div> <div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
</div> </div>
@@ -17,7 +18,135 @@
class="label-input-form" class="label-input-form"
label-width="210px" label-width="210px"
> >
<div style="flex: auto;" v-show="active === '1'"> <div style="flex: auto;" id="active1" v-show="active === '1'">
<template>
<el-table
:data="form.evaluationData"
:summary-method="getSummaries"
show-summary
:span-method="(({row, column, rowIndex, columnIndex})=>objectSpanMethod({row, column, rowIndex, columnIndex},form.evaluationData))"
style="width: 100%">
<el-table-column label="企业标准编写质量评价表" align="center" label-class-name="column1">
<el-table-column
label="标准代号"
>
<el-table-column
prop="oneIndexTitle"
align="center"
label="一级指标"
width = '120'
>
</el-table-column>
</el-table-column>
<el-table-column
:label="form.standCode"
>
<el-table-column
prop="twoIndexTitle"
align="center"
label="二级指标"
width = '120'
>
</el-table-column>
<el-table-column
prop="threeIndexTitle"
label="三级指标"
width="300"
>
</el-table-column>
</el-table-column>
<el-table-column
label="标准名称"
>
<el-table-column
prop="weight"
align="center"
label="指标权重 %"
width = '100'
>
<template slot-scope="scope">
{{scope.row.valueType === 'number' ? scope.row.weight * 100 : '加分项('+scope.row.weight+'分)'}}
</template>
</el-table-column>
</el-table-column>
<el-table-column
:label="form.standName"
>
<el-table-column
prop="score"
align="center"
label="指标分值10分制8合格68不合格6"
width = '200'
>
<template slot-scope="scope">
<el-form-item
:prop="'evaluationData.'+scope.$index + '.score'"
:rules="scope.row.valueType !== 'add' ? rules.score : rules.scoreNot" >
<el-input v-model.number="scope.row.score" placeholder="请填写分值" />
</el-form-item>
</template>
</el-table-column>
<el-table-column
prop="scoreMin"
align="center"
label="分值小计"
width = '80'
>
<template slot-scope="scope">
{{setScoreMin(scope.row)}}
</template>
</el-table-column>
<el-table-column
prop="reason"
align="center"
label="简述扣分理由不合格6必填"
>
<template slot-scope="scope" v-if="(scope.row.valueType !== 'add' && scope.row.score !== undefined && scope.row.score !== '' && scope.row.score < 6)">
<el-form-item
:prop="'evaluationData.'+scope.$index + '.reason'"
:rules="rules.reason" >
<el-input v-model="scope.row.reason" placeholder="请填写扣分理由" />
</el-form-item>
</template>
</el-table-column>
</el-table-column>
</el-table-column>
</el-table>
</template>
<div>
<el-collapse accordion v-model="activeName">
<el-collapse-item title="审批意见" name = "1">
<div style="margin: 10px 0;">
<el-form
ref="formTongGuo"
:model="formTongGuo"
:rules="rules">
<!-- <el-form-item-->
<!-- prop="approvalOpinion"-->
<!-- >-->
<!-- <el-select @change="getRule" v-model="formTongGuo.approvalOpinion" placeholder="请审批" style="margin-bottom: 20px;">-->
<!-- <el-option label="驳回" value="1"></el-option>-->
<!-- <el-option label="通过" value="0"></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item
prop="commentText"
>
<el-input
type="textarea"
:rows="3"
resize="none"
placeholder="请输入意见"
v-model="formTongGuo.commentText">
</el-input>
</el-form-item>
</el-form>
</div>
</el-collapse-item>
</el-collapse>
</div>
</div>
<div style="flex: auto;" v-show="active === '2'">
<ProcessTitle> <ProcessTitle>
<template slot="title">基础信息</template> <template slot="title">基础信息</template>
</ProcessTitle> </ProcessTitle>
@@ -267,38 +396,6 @@
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
<div>
<el-collapse accordion v-model="activeName">
<el-collapse-item title="审批意见" name = "1">
<div style="margin: 10px 0;">
<el-form
ref="formTongGuo"
:model="formTongGuo"
:rules="rules">
<!-- <el-form-item-->
<!-- prop="approvalOpinion"-->
<!-- >-->
<!-- <el-select @change="getRule" v-model="formTongGuo.approvalOpinion" placeholder="请审批" style="margin-bottom: 20px;">-->
<!-- <el-option label="驳回" value="1"></el-option>-->
<!-- <el-option label="通过" value="0"></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item
prop="commentText"
>
<el-input
type="textarea"
:rows="3"
resize="none"
placeholder="请输入意见"
v-model="formTongGuo.commentText">
</el-input>
</el-form-item>
</el-form>
</div>
</el-collapse-item>
</el-collapse>
</div>
</div> </div>
<!-- <div class="block" id="active2" v-show="active === '2'">--> <!-- <div class="block" id="active2" v-show="active === '2'">-->
<!-- <ProcessTitle>--> <!-- <ProcessTitle>-->
@@ -453,12 +550,13 @@
<!-- 保存||提交--> <!-- 保存||提交-->
<ProcessFooter <ProcessFooter
v-show="verifySarStandard" v-show="verifySarStandard"
:show-save="false" show-save
show-over2 show-over2
show-submit2 show-submit2
show-transfer show-transfer
:submitLoading="isSubmit" :submitLoading="isSubmit"
:saveLoading="saveLoading" :saveLoading="saveLoading"
@save="handleSave"
@transfer="handleTransfer" @transfer="handleTransfer"
@submit2="handle2" @submit2="handle2"
@over2="handle1" @over2="handle1"
@@ -816,6 +914,7 @@
import ProcessFooter from '../../components/ProcessFooter' import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle' import ProcessTitle from '../../components/ProcessTitle'
import {saveTaskFirst, queryTaskFirst, getBusStandFileByAttId,inboundLiaisonDetail,changeAssigneeNew} from "api/process"; import {saveTaskFirst, queryTaskFirst, getBusStandFileByAttId,inboundLiaisonDetail,changeAssigneeNew} from "api/process";
import {getEvaluationIndex} from "api/businessApi";
import TreeSelect from '@/components/treeSelect/treeSelect.vue'; import TreeSelect from '@/components/treeSelect/treeSelect.vue';
import TreeSelectNew from '@/components/treeSelect/treeSelectNew.vue'; import TreeSelectNew from '@/components/treeSelect/treeSelectNew.vue';
let Base64 = require('js-base64').Base64; let Base64 = require('js-base64').Base64;
@@ -830,6 +929,25 @@
TreeSelectNew TreeSelectNew
}, },
data () { data () {
const numberCodeNot = (rule, value, callback) => {
let pattern = /^[1]*$/
if (!pattern.test(value)) {
return callback(new Error('评分分值只可为1分'))
} else {
callback()
}
};
const numberCode = (rule, value, callback) => {
if(value === undefined || value === ''){
return callback(new Error('评分分值不可为空'))
}
let pattern = /^[0-9]*$/
if (!pattern.test(value)) {
return callback(new Error('只能输入数字'))
} else {
callback()
}
};
const validateZrUserIdName = (rule, value, callback) => { const validateZrUserIdName = (rule, value, callback) => {
if(this.FBGBUSSFileList.length === 0){ if(this.FBGBUSSFileList.length === 0){
callback(new Error('请上传发布稿文件!')) callback(new Error('请上传发布稿文件!'))
@@ -1032,6 +1150,7 @@
countryArr:'', countryArr:'',
commentCycleDate:'', commentCycleDate:'',
form: { form: {
evaluationData:[],
modelData:[], modelData:[],
modelDataNameVerify:[], modelDataNameVerify:[],
modelDataZrUserVerify:[], modelDataZrUserVerify:[],
@@ -1207,6 +1326,14 @@
], ],
}, },
rules:{ rules:{
scoreNot:[
{required: false, validator: numberCodeNot, trigger: 'blur'},
],
score: [
{required: true, validator: numberCode, trigger: 'blur'},
{ type: 'number',min: 0, max: 10, message: '分值 0 ~ 10 分 ', trigger: 'blur' },
],
reason: [{ required: true, message: '请填写扣分理由', trigger: 'blur' }],
commentText: [{ required: true, message: '请输入意见', trigger: 'blur' }], commentText: [{ required: true, message: '请输入意见', trigger: 'blur' }],
approvalOpinion: [{ required: true, message: '请选择审批意见', trigger: 'change' }], approvalOpinion: [{ required: true, message: '请选择审批意见', trigger: 'change' }],
zrUserIdName: [ zrUserIdName: [
@@ -1337,6 +1464,84 @@
}, },
}, },
methods: { methods: {
filterData2(){
let spanOneArr = []
let concatOne = 0
this.form.evaluationData.forEach((item,index)=>{//循环后端查询出来的数据(orderdata)
if(index === 0){
spanOneArr.push(1)
}else{
//name 修改
if(item.twoIndexTitle === this.form.evaluationData[index - 1].twoIndexTitle){ //第一列需合并相同内容的字段
spanOneArr[concatOne] += 1
spanOneArr.push(0)
}else{
spanOneArr.push(1)
concatOne = index
}
}
})
return {
one: spanOneArr,
}
},
setScoreMin(row){
return row.scoreMin = ((row.score === undefined || row.score === '') ? '' : row.valueType === 'add' ? row.score : (row.score / 10).toFixed(1))
},
getSummaries(param) {
const { columns, data } = param;
const sums = [];
columns.forEach((column, index) => {
if (index === 3) {
sums[index] = '合计:';
return;
}else if(index === 6){
sums[index] = '';
return;
}
const values = data.map(item => Number(item[column.property]));
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr);
if (!isNaN(value)) {
return prev + curr;
} else {
return prev;
}
}, 0);
sums[index] += ' ';
} else {
sums[index] = '';
}
if(sums[index] !== '' && sums[index].indexOf(".") !== -1){
sums[index] = parseFloat(sums[index]).toFixed(1);
}
});
return sums;
},
objectSpanMethod({ row, column, rowIndex, columnIndex },value) {
if (columnIndex === 0) {
if (rowIndex === 0) {
return {
rowspan: value.length,
colspan: 1
};
} else {
return {
rowspan: 0,
colspan: 0
};
}
}else if(columnIndex === 1 ) {
const _row = (this.filterData2(this.form.evaluationData).one)[rowIndex]
const _col = _row > 0 ? 1 : 0
return {
rowspan: _row,
colspan: _col
}
}
},
modelProp(row,index){ modelProp(row,index){
console.log(row) console.log(row)
console.log(index) console.log(index)
@@ -1558,6 +1763,11 @@
let mes = JSON.parse(res.mes) let mes = JSON.parse(res.mes)
mes.form.date = new Date(this.$moment(mes.form.date).format('YYYY-MM-DD')) mes.form.date = new Date(this.$moment(mes.form.date).format('YYYY-MM-DD'))
this.form = mes.form this.form = mes.form
this.FBGBUSSFileList=this.assemble(this.form.FBGBUSS,this.form.FBGBUSSName);
this.BZSMBUSSFileList=this.assemble(this.form.BZSMBUSS,this.form.BZSMBUSSName);
this.LSBBBUSSFileList=this.assemble(this.form.LSBBBUSS,this.form.LSBBBUSSName);
this.QTWJBUSSFileList=this.assemble(this.form.QTWJBUSS,this.form.QTWJBUSSName);
this.GLWJBUSSFileList=this.assemble(this.form.GLWJBUSS,this.form.GLWJBUSSName);
this.roleForm = mes.roleForm this.roleForm = mes.roleForm
this.commentText = mes.commentText this.commentText = mes.commentText
}) })
@@ -2363,16 +2573,10 @@
// _formData.append('id', this.bpnId) // _formData.append('id', this.bpnId)
_formData.append('createUser', this.$store.getters.userInfo.userId) _formData.append('createUser', this.$store.getters.userInfo.userId)
_formData.append('createUserName', this.$store.getters.userInfo.uName) _formData.append('createUserName', this.$store.getters.userInfo.uName)
_formData.append('prcType', 'laws1') _formData.append('prcType', 'buss1')
_formData.append('prcName', '政策入库流程') _formData.append('prcName', '企标制修订流程及企业标准库流程')
_formData.append('json', JSON.stringify({ _formData.append('json', JSON.stringify({
// prcForm: this.prcForm, taskInfo: this.taskInfo,
// sarAccessInfoList: this.sarAccessInfoList,
// sarAccessInfoListADMIN: this.sarAccessInfoListADMIN,
// bzqdForm: this.bzqdForm,
// listInfo: this.listInfo,
// id: this.id
taskInfo: '申请人发起',
form: this.form, form: this.form,
roleForm: this.roleForm, roleForm: this.roleForm,
commentText: this.commentText commentText: this.commentText
@@ -2478,8 +2682,14 @@
this.handleSubmit() this.handleSubmit()
}, },
handle2(){ handle2(){
const json = JSON.stringify(this.form);
console.log(json)
this.formTongGuo.approvalOpinion = 0 this.formTongGuo.approvalOpinion = 0
this.handleSubmit() this.$refs['form'].validate((valid) => {
if (valid) {
this.handleSubmit()
}
})
}, },
getRule(){ getRule(){
if (this.formTongGuo.approvalOpinion === 0) { if (this.formTongGuo.approvalOpinion === 0) {
@@ -2560,6 +2770,7 @@
getFormFieldList (item) { getFormFieldList (item) {
this.$nextTick(() => { this.$nextTick(() => {
this.form = JSON.parse(JSON.stringify(item)) this.form = JSON.parse(JSON.stringify(item))
this.getEvaluation()
this.form.prcNum = this.prcNum this.form.prcNum = this.prcNum
this.form.prcName = this.prcName this.form.prcName = this.prcName
this.form['id'] = item.id this.form['id'] = item.id
@@ -2575,6 +2786,28 @@
return list; return list;
}, },
getEvaluation() {
return new Promise((resolve, reject) => {
getEvaluationIndex({
indexType: 'quality'
}).then(res => {
if (res) {
const evalList = []
res.data.forEach(item =>{
item.score = ''
item.scoreMin = ''
item.reason = ''
item.userId = this.userId
item.processNode = this.taskInfo
evalList.push(item)
})
this.form.evaluationData = evalList
this.$forceUpdate()
}
}).catch(e => {
})
})
},
getData() { getData() {
if(this.taskIds && this.pId){ if(this.taskIds && this.pId){
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
@@ -2635,6 +2868,7 @@
}, },
}, },
mounted () { mounted () {
this.getTaskId()
this.getData() this.getData()
this.processTable() this.processTable()
this.$http.get('sys/dictype/getDicTypeListCode', '', { this.$http.get('sys/dictype/getDicTypeListCode', '', {
@@ -2676,6 +2910,12 @@
<style lang="less" scoped> <style lang="less" scoped>
@import '~@/assets/styles/style'; @import '~@/assets/styles/style';
/deep/ .column1{
font-size: 18px !important;
}
/deep/ #active1 .el-form-item__content{
margin-left: 0px !important;
}
/deep/ .el-input__suffix{ /deep/ .el-input__suffix{
display: none !important; display: none !important;
} }