Merge branch 'develop' into 'FOTON'

Develop

See merge request LAWS/laws-system-front-FOTON!227
This commit is contained in:
王夏晖
2021-12-09 19:35:28 +08:00
44 changed files with 4096 additions and 300 deletions
@@ -23,65 +23,66 @@
<div class="modular-header" style="height: 50px;">
<div class="modular-header-btn">
<el-button type="warning" icon="el-icon-edit" @click="businessCommentDialog = true">企标评价</el-button>
<el-dialog title="企业标准动态评价" :visible.sync="businessCommentDialog" width="54%" :close-on-click-modal="false">
<el-table ref="businessCommentTable" :data="businessCommentTable.filter((v) => v.code !== '3U9lb')" border style="width: 100%; flex: auto;margin-bottom: 2%"
class="comment-table"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
<el-dialog title="企业标准评价" :visible.sync="businessCommentDialog" :width="(commentAverageScoreTag === '1' && commentActiveName !== 'dynamicComment')?'90%':'65%'" :close-on-click-modal="false">
<el-tabs v-model="commentActiveName" @tab-click="tabsClick">
<el-tab-pane label="动态评价" name="dynamicComment">
<el-table ref="businessCommentTable" :data="businessCommentTable.filter((v) => v.code !== '3U9lb')" border style="width: 100%; flex: auto;margin-bottom: 2%"
class="comment-table"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="index"
label="序号"
width="55"
align="center"
/>
<el-table-column prop="threeIndexTitle" label="评价指标" width="300">
<!--commentTarget-->
<template slot-scope="scope">
<span>{{scope.row.threeIndexTitle}}</span>
</template>
</el-table-column>
<el-table-column prop="targetScore" label="指标分值" width="165">
<template slot-scope="scope">
<el-col :span="20">
<el-rate
v-model="scope.row.targetScore"
@change="targetScoreChange(scope.row)"
allow-half>
</el-rate>
</el-col>
<b style="margin-left: 5px;font-size: 12px;">{{ scope.row.targetScore * 2 }}</b>
</template>
</el-table-column>
<el-table-column property="reason" label="简述理由">
<template slot-scope="scope">
<el-input clearable size="mini" placeholder="请简述评分理由" @change="commentReasonChange(scope.row)" v-model="scope.row.commentReason" />
</template>
</el-table-column>
</el-table>
<el-form :model="businessCommentForm">
<el-form-item label="动态评价分值">
<el-col :span="4">
<el-rate
v-model="businessCommentForm.averageScore"
disabled
style="margin-top: 12px"
text-color="#ff9900">
</el-rate>
</el-col>
<b style="margin-top: 5px">{{ businessCommentForm.averageScore * 2 }}</b>
</el-form-item>
<el-form-item label="对标准的意见和建议,是否需要修订">
<template>
<el-radio v-model="businessCommentForm.revise" label="1"></el-radio>
<el-radio v-model="businessCommentForm.revise" label="0"></el-radio>
<el-input v-show="businessCommentForm.revise === '1'"
v-model="businessCommentForm.reviseReason"
placeholder="请填写修订理由"
type="textarea"
:rows="2"></el-input>
</template>
</el-form-item>
</el-form>
<el-table-column
type="index"
label="序号"
width="55"
align="center"
/>
<el-table-column prop="threeIndexTitle" label="评价指标" width="300">
<!--commentTarget-->
<template slot-scope="scope">
<span>{{scope.row.threeIndexTitle}}</span>
</template>
</el-table-column>
<el-table-column prop="targetScore" label="指标分值" width="165">
<template slot-scope="scope">
<el-col :span="20">
<el-rate
v-model="scope.row.targetScore"
@change="targetScoreChange(scope.row)"
allow-half>
</el-rate>
</el-col>
<b style="margin-left: 5px;font-size: 12px;color: #ff9900">{{ scope.row.targetScore * 2 }}</b>
</template>
</el-table-column>
<el-table-column property="reason" label="简述理由">
<template slot-scope="scope">
<el-input clearable size="mini" placeholder="请简述评分理由" @change="commentReasonChange(scope.row)" v-model="scope.row.commentReason" />
</template>
</el-table-column>
</el-table>
<el-form :model="businessCommentForm">
<el-form-item label="动态评价分值">
<el-col :span="4">
<el-rate
v-model="businessCommentForm.averageScore"
disabled
style="margin-top: 12px">
</el-rate>
</el-col>
<b style="margin-top: 5px;margin-left: -2%;color: #ff9900">{{ businessCommentForm.averageScore * 2 }}</b>
</el-form-item>
<el-form-item label="对标准的意见和建议,是否需要修订">
<template>
<el-radio v-model="businessCommentForm.revise" label="1"></el-radio>
<el-radio v-model="businessCommentForm.revise" label="0"></el-radio>
<el-input v-show="businessCommentForm.revise === '1'"
v-model="businessCommentForm.reviseReason"
placeholder="请填写修订理由"
type="textarea"
:rows="2"></el-input>
</template>
</el-form-item>
</el-form>
<div style="padding-left: 80%">
<el-button
type="primary"
@@ -100,6 +101,230 @@
>取消
</el-button>
</div>
</el-tab-pane>
<el-tab-pane label="历史评价" name="historyComment">
<el-form>
<el-row>
<el-col :span="10" :offset="4">
<el-form-item>
<el-radio v-model="commentAverageScoreTag" label="1" border @change="tabsClick">质量评价总平均分</el-radio>
<b style="margin-top: 30px;margin-left: 5px;font-size: 20px;color: #ff9900">{{
qualityCommentScore * 2
}}</b>
</el-form-item>
</el-col>
<el-col :span="8" :offset="2">
<el-form-item>
<el-radio v-model="commentAverageScoreTag" label="2" border @change="tabsClick">动态评价总平均分</el-radio>
<b style="margin-top: 30px;margin-left: 5px;font-size: 20px;color: #ff9900">{{
dynamicCommentScore * 2
}}</b>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4">
<el-table
v-if="commentAverageScoreTag === '1'"
:data="qualityHistoryPeopleTable"
style="width: 100%"
height="345px"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
prop="historyPeopleName"
align="center"
label="质量评价人"
width="130px"
show-overflow-tooltip>
<template slot-scope="scope">
<el-button type="default"
style="width: 100px;" size="mini" @click="historyPeopleChange(scope.row)">
{{ scope.row.userName }}
</el-button>
</template>
</el-table-column>
</el-table>
<el-table
v-else-if="commentAverageScoreTag === '2'"
:data="dynamicHistoryPeopleTable"
style="width: 100%"
height="345px"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
prop="historyPeopleName"
align="center"
label="动态评价人"
width="130px"
show-overflow-tooltip>
<template slot-scope="scope">
<el-button type="default"
style="width: 100px;" size="mini" @click="historyPeopleChange(scope.row)">
{{ scope.row.userName }}
</el-button>
</template>
</el-table-column>
</el-table>
</el-col>
<el-col :span="20" >
<div style="width: 100%;padding: 0 1% 2% 0" v-loading="historyInfoLoading" v-show="commentAverageScoreTag === '1'">
<el-table
:data="qualityHistoryCommentTable"
:summary-method="getSummaries"
show-summary
:span-method="(({row, column, rowIndex, columnIndex})=>objectSpanMethod({row, column, rowIndex, columnIndex},qualityHistoryCommentTable))"
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="sarStandardsInfoEO.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="sarStandardsInfoEO.standName"
>
<el-table-column
prop="targetScore"
align="center"
label="指标分值10分制8合格68不合格6"
width = '200'
>
<template slot-scope="scope">
<el-form-item
:prop="'qualityHistoryCommentTable.'+scope.$index + '.targetScore'">
<el-input v-model.number="scope.row.targetScore" 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="commentReason"
align="center"
label="简述扣分理由不合格6必填"
>
<template slot-scope="scope" v-if="scope.row.valueType !== 'add'">
<el-form-item
:prop="'qualityHistoryCommentTable.'+scope.$index + '.commentReason'">
<el-input v-model="scope.row.commentReason" placeholder="请填写扣分理由" />
</el-form-item>
</template>
</el-table-column>
</el-table-column>
</el-table-column>
</el-table>
</div>
<div style="width: 100%" v-loading="historyInfoLoading" v-show="commentAverageScoreTag === '2'">
<el-table ref="businessCommentTable" :data="dynamicHistoryCommentTable.filter((v) => v.code !== '3U9lb')" border style="width: 100%; flex: auto;margin-bottom: 2%"
class="comment-table"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="index"
label="序号"
width="55"
align="center"
/>
<el-table-column prop="threeIndexTitle" label="评价指标" width="300">
<!--commentTarget-->
<template slot-scope="scope">
<span>{{scope.row.indexTitle}}</span>
</template>
</el-table-column>
<el-table-column prop="targetScore" label="指标分值" width="165">
<template slot-scope="scope">
<el-col :span="20">
<el-rate
v-model="scope.row.targetScore / 2"
disabled
allow-half>
</el-rate>
</el-col>
<b style="margin-left: 5px;font-size: 12px;color: #ff9900">{{ parseInt(scope.row.targetScore) }}</b>
</template>
</el-table-column>
<el-table-column property="reason" label="简述理由">
<template slot-scope="scope">
<el-input clearable size="mini" placeholder="该用户没有填写评分理由" disabled v-model="scope.row.commentReason" />
</template>
</el-table-column>
</el-table>
<el-form :model="historyCommentForm">
<el-form-item label="动态评价分值">
<el-col :span="5">
<el-rate
v-model="historyCommentForm.averageScore / 2"
disabled
style="margin-top: 12px;">
</el-rate>
</el-col>
<b style="margin-top: 5px;margin-left: -2%;color: #ff9900">{{ historyCommentForm.averageScore }}</b>
</el-form-item>
<el-form-item label="对标准的意见和建议是否需要修订">
<template>
<el-radio v-model="historyCommentForm.revise" label="1" disabled>是</el-radio>
<el-radio v-model="historyCommentForm.revise" label="0" disabled>否</el-radio>
<el-input v-show="historyCommentForm.revise === '1'"
v-model="historyCommentForm.reviseReason"
disabled
placeholder="请填写修订理由"
type="textarea"
:rows="2"></el-input>
</template>
</el-form-item>
</el-form>
</div>
</el-col>
</el-row>
</el-form>
</el-tab-pane>
</el-tabs>
</el-dialog>
<el-button v-if="sarStandardsInfoEO.collectId" @click="collectClick(sarStandardsInfoEO.collectId)" title="取消收藏" class="collection-btn" icon="el-icon-star-on" :loading="isSubmit"></el-button>
<el-button v-else @click="collectClick()" title="收藏" class="collection-btn" icon="el-icon-star-off" :loading="isSubmit"></el-button>
@@ -1066,6 +1291,21 @@ export default {
},
data () {
return {
commentAverageScoreTag: '1',
firstHistoryPeopleId: '',//最新评价的人的id
historyInfoLoading: false,//历史评价信息的loading
historyCommentForm: {
averageScore: 0, // 平均分值
revise: '',
reviseReason: '', // 修订理由
}, // 历史评价表单
dynamicHistoryCommentTable: [], // 动态评价历史评价表格
qualityHistoryCommentTable: [], // 质量评价历史评价表格
dynamicHistoryPeopleTable: [], // 动态评价历史评价人表格
qualityHistoryPeopleTable: [], // 质量评价历史评价人表格
dynamicCommentScore: 0,// 动态评价总平均分
qualityCommentScore: 0,// 质量评价总平均分
commentActiveName: 'dynamicComment',
indexType: 'dynamic',
commentReason: '', // 评价理由
commentReason1: '', // 评价理由
@@ -1293,6 +1533,108 @@ export default {
watch: {
},
methods: {
historyPeopleChange(row){
this.historyInfoLoading = true
const allData = {
lawId: this.sarStandardsInfoEO.id,
userId: row.userId,
evaluationType: this.indexType
}
if (this.indexType === 'quality'){
this.$http.get('sarEnterpriseStandardEvaluation/quality-evaluation/getEvaluationForm', allData , {
_this: this
}, res => {
this.qualityHistoryCommentTable = res.data
this.historyInfoLoading = false
}, e => {
this.historyInfoLoading = false
})
}else if (this.indexType === 'dynamic'){
this.$http.get('sarEnterpriseStandardEvaluation/quality-evaluation/getEvaluationForm', allData , {
_this: this
}, res => {
this.dynamicHistoryCommentTable = res.data
this.historyCommentForm.revise = res.data[0].targetScore
this.historyCommentForm.reviseReason = res.data[0].commentReason
let averageScore = 0
res.data.forEach(item => {
if (item.valueType === 'number'){
averageScore += parseInt(item.targetScore)
}
})
averageScore = averageScore / 4
this.historyCommentForm.averageScore = averageScore
this.historyInfoLoading = false
}, e => {
this.historyInfoLoading = false
})
}
},
tabsClick(tab, event){
this.historyInfoLoading = true
if (this.commentAverageScoreTag === '1'){
this.indexType = 'quality'
//查询评分表
const allData = {
lawId: this.sarStandardsInfoEO.id,
userId: this.firstHistoryPeopleId,
evaluationType: this.indexType
}
this.$http.get('sarEnterpriseStandardEvaluation/quality-evaluation/getEvaluationForm', allData , {
_this: this
}, res => {
this.qualityHistoryCommentTable = res.data
this.historyInfoLoading = false
}, e => {
this.historyInfoLoading = false
})
}
else if (this.commentAverageScoreTag === '2'){
this.indexType = 'dynamic'
//查询评分表
const allData = {
lawId: this.sarStandardsInfoEO.id,
userId: this.firstHistoryPeopleId,
evaluationType: this.indexType
}
this.$http.get('sarEnterpriseStandardEvaluation/quality-evaluation/getEvaluationForm', allData , {
_this: this
}, res => {
this.dynamicHistoryCommentTable = res.data
this.historyCommentForm.revise = res.data[0].targetScore
this.historyCommentForm.reviseReason = res.data[0].commentReason
let averageScore = 0
res.data.forEach(item => {
if (item.valueType === 'number'){
averageScore += parseInt(item.targetScore)
}
})
averageScore = averageScore / 4
this.historyCommentForm.averageScore = averageScore
this.historyInfoLoading = false
}, e => {
this.historyInfoLoading = false
})
}
//查询动态评价总平均分和质量评价总平均分
let standId = this.sarStandardsInfoEO.id
this.$http.get('sarEnterpriseStandardEvaluation/quality-evaluation/getScore', {lawId:standId}, {
_this: this
}, res => {
this.qualityCommentScore = res.data.quality.toFixed(3)/2
this.dynamicCommentScore = res.data.dynamic.toFixed(3)/2
}, e => {
})
},
targetScoreChange(row){
if (this.targetScore1 === '') {
this.targetScore1 = 0
@@ -1368,26 +1710,120 @@ export default {
this.$message.warning('请填写修订理由')
}
if (submitFlag === true) {
this.$message.success('通过')
this.commentSubmitLoading = true
const allData = {
tableData: this.businessCommentTable,
formData: JSON.stringify(this.businessCommentForm),
standId: this.sarStandardsInfoEO.id,
userId: this.$store.getters.userInfo.userId
userId: this.$store.getters.userInfo.userId,
evaluationType: this.indexType
}
console.log(allData)
this.$http.postData('sarEnterpriseStandardEvaluation/quality-evaluation/submitEvaluationForm', allData, {
_this: this
}, res => {
console.log(res)
if (res.ok){
this.$message.success('提交成功')
this.commentSubmitLoading = false
//重新评分之后刷新历史评分人
let standId = this.sarStandardsInfoEO.id
this.$http.get('sarEnterpriseStandardEvaluation/quality-evaluation/getHistory', {lawId:standId}, {
_this: this
}, res => {
this.dynamicHistoryPeopleTable = []
this.dynamicHistoryPeopleTable = res.data.records
this.firstHistoryPeopleId = res.data.records[0].userId
// for (let i = 0; i < res.data.records.length; i++) {
// this.dynamicHistoryPeopleTable.push(res.data.records[i].userName)
// }
}, e => {
})
}
}, e => {
})
}
},
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.qualityHistoryCommentTable).one)[rowIndex]
const _col = _row > 0 ? 1 : 0
return {
rowspan: _row,
colspan: _col
}
}
},
setScoreMin(row){
return row.scoreMin = ((row.targetScore === undefined || row.targetScore === '') ? '' : row.valueType === 'add' ? row.targetScore : (row.targetScore / 10).toFixed(1))
},
filterData2(){
let spanOneArr = []
let concatOne = 0
this.qualityHistoryCommentTable.forEach((item,index)=>{//循环后端查询出来的数据(orderdata)
if(index === 0){
spanOneArr.push(1)
}else{
//name 修改
if(item.twoIndexTitle === this.qualityHistoryCommentTable[index - 1].twoIndexTitle){ //第一列需合并相同内容的字段
spanOneArr[concatOne] += 1
spanOneArr.push(0)
}else{
spanOneArr.push(1)
concatOne = index
}
}
})
return {
one: spanOneArr,
}
},
child1Func(child1){
const list = []
if(child1 && child1.length > 1){
@@ -2383,12 +2819,34 @@ export default {
// }
},
async mounted () {
const qualityRequest = {
lawId: this.sarStandardsInfoEO.id,
evaluationType: 'quality'
}
this.$http.get('sarEnterpriseStandardEvaluation/quality-evaluation/getHistory', qualityRequest, {
_this: this
}, res => {
this.qualityHistoryPeopleTable = res.data.records
this.firstHistoryPeopleId = res.data.records[0].userId
}, e => {
})
const dynamicRequest = {
lawId: this.sarStandardsInfoEO.id,
evaluationType: 'dynamic'
}
this.$http.get('sarEnterpriseStandardEvaluation/quality-evaluation/getHistory', dynamicRequest, {
_this: this
}, res => {
this.dynamicHistoryPeopleTable = res.data.records
this.firstHistoryPeopleId = res.data.records[0].userId
}, e => {
})
this.$http.get('sarEnterpriseStandardEvaluation/evaluation-index/getEvaluationIndex', {indexType:this.indexType}, {
_this: this
}, res => {
console.log('2371',res)
this.businessCommentTable = res.data
console.log(this.businessCommentTable)
}, e => {
})
this.sarStandardsInfoEO.id = this.$route.params.id
@@ -722,17 +722,11 @@
prop="xccssrq"
label="新车型实施日期(文本)"
width="180">
<template slot-scope="scope">
<span>{{ scope.row.xccssrq ? $moment(scope.row.xccssrq).format('YYYY-MM-DD') : '' }}</span>
</template>
</el-table-column>
<el-table-column
prop="zccssrq"
label="在产车实施日期(文本)"
width="170">
<template slot-scope="scope">
<span>{{ scope.row.zccssrq ? $moment(scope.row.zccssrq).format('YYYY-MM-DD') : '' }}</span>
</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
+51 -1
View File
@@ -113,6 +113,9 @@
</el-row>
</el-form>
</div>
<div style="float: right;margin: 0 3% 10px 0">
<el-button type="primary" size="mini" @click="exportExcelBtn">导出Excel</el-button>
</div>
<div class="content">
<!-- <el-divider content-position="left" class="dynamic-child-title">实施日期预警</el-divider>-->
<el-table
@@ -123,7 +126,13 @@
:resizable="false"
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
v-loading="warningTableLoading"
@selection-change="selectChange"
>
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column prop="standType" label="类型" width="100" align="center">
<template slot-scope="scope">
<div v-if="scope.row.sortName === 'BUSINESS_STAND'">企业标准</div>
@@ -199,17 +208,33 @@
</div>
</div>
<adc-back-top scroll-bind="dynamicInformation"></adc-back-top>
<!--导出模态框区域-->
<el-dialog :visible.sync="exportModelFlag" title="导出文件" width="300px">
<el-form :inline="true" class="label-input-form search-area">
<el-form-item label="导出名称" class="search-item">
<el-input v-model="exportName" placeholder="请输入导出文件名称" :maxlength="30" clearable label="导出名称"/>
</el-form-item>
</el-form>
<span slot="footer" class="demo-drawer-footer">
<el-button size="mini" class="common-button-default" icon="el-icon-close" @click="cancal">取消</el-button>
<el-button type="primary" size="mini" class="common-button-primary" icon="el-icon-check"
@click="exportExcel">提交</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import {mapMutations} from "vuex";
import {interfaceUrl} from "@/sysConfig";
export default {
name: "standardWarning",
data() {
return {
//
selectedList: [],
exportName: '',
exportModelFlag: false,
warningTableDatas:[],
warningTableHeight: '',
applyArcticOptions: [], // 适用车型下拉框
@@ -259,6 +284,31 @@ export default {
};
},
methods: {
//取消导出
cancal() {
this.exportModelFlag = false
},
//确认导出
exportExcel() {
console.log('293',this.selectedList)
const exportURL = interfaceUrl + 'sys/EarlyWarning/exportWarning?' +
'&ids=' + this.selectedList.join(',') + '&exportName=' + this.exportName
window.open(exportURL)
this.$message.success('导出信息成功')
this.exportModelFlag = false
},
exportExcelBtn(){
console.log('302',this.selectedList)
this.exportName = ''
this.exportModelFlag = true
},
selectChange(alldata){
console.log('307',alldata)
this.selectedList = []
for (let i = 0; i < alldata.length; i++) {
this.selectedList.push(alldata[i]['id'])
}
},
// 获取标准预警数据 (type用于区别分页器切换)
getEarlyDate() {
this.warningTableLoading = true
@@ -303,7 +303,7 @@
<h4>标准法规部人员</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input v-model="roleForm.startUser" style="display: none;"></el-input>
<el-input v-model="roleForm.startUserName" :disabled="true" placeholder="选择标准法规部人员" @click.native="choiceZRR('dockUser', '选择标准法规部人员', roleForm.dockUser)">
<el-input v-model="roleForm.startUserName" :disabled="true" placeholder="选择标准法规部人员">
</el-input>
</div>
</el-form-item>
@@ -351,7 +351,7 @@
<h4>总院技术委员会主任</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input v-model="roleForm.startUser" style="display: none;"></el-input>
<el-input v-model="roleForm.startUserName" :disabled="true" placeholder="选择总院技术委员会主任" @click.native="choiceZRROne('startUser', '选择总院技术委员会主任', roleForm.startUser)">
<el-input v-model="roleForm.startUserName" :disabled="true" placeholder="选择总院技术委员会主任">
</el-input>
</div>
</el-form-item>
@@ -68,7 +68,10 @@
<el-form-item class="add-form-item" label="信息来源:" prop="infoSources">
<span v-if="infoSourcesLength === 0">{{ '-' }}</span>
<span v-for="item in rh_pageData.infoSources" :key="item.id" style="color: #409EFF;" @click="previews(item.id)">
{{ item.name }} {{ ';' }}
<a v-if="item.name.length > 30">
{{ item.name.slice(0,30) + '...' }} {{ ';' }}
</a>
<a v-else>{{ item.name }} {{ ';' }}</a>
</span>
</el-form-item>
</el-col>
@@ -256,7 +259,8 @@ export default {
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
infoSourcesLength: ''
infoSourcesLength: '',
showHover: false
}
},
computed: {
@@ -68,7 +68,10 @@
<el-form-item class="add-form-item" label="信息来源:" prop="infoSources">
<span v-if="infoSourcesLength < 1">{{ '-' }}</span>
<span v-for="item in rh_pageData.infoSources" :key="item.id" style="color: #409EFF;" @click="previews(item.id)">
{{ item.name }} {{ ';' }}
<a v-if="item.name.length > 30">
{{ item.name.slice(0,30) + '...' }} {{ ';' }}
</a>
<a v-else>{{ item.name }} {{ ';' }}</a>
</span>
</el-form-item>
</el-col>
@@ -68,7 +68,10 @@
<el-form-item class="add-form-item" label="信息来源:" prop="infoSources">
<span v-if="infoSourcesLength === 0">{{ '-' }}</span>
<span v-for="item in rh_pageData.infoSources" :key="item.id" style="color: #409EFF;" @click="previews(item.id)">
{{ item.name }} {{ ';' }}
<a v-if="item.name.length > 30">
{{ item.name.slice(0,30) + '...' }} {{ ';' }}
</a>
<a v-else>{{ item.name }} {{ ';' }}</a>
</span>
</el-form-item>
</el-col>
@@ -68,7 +68,10 @@
<el-form-item class="add-form-item" label="信息来源:" prop="infoSources">
<span v-if="infoSourcesLength === 0">{{ '-' }}</span>
<span v-for="item in rh_pageData.infoSources" :key="item.id" style="color: #409EFF;" @click="previews(item.id)">
{{ item.name }} {{ ';' }}
<a v-if="item.name.length > 30">
{{ item.name.slice(0,30) + '...' }} {{ ';' }}
</a>
<a v-else>{{ item.name }} {{ ';' }}</a>
</span>
</el-form-item>
</el-col>
@@ -68,7 +68,10 @@
<el-form-item class="add-form-item" label="信息来源:" prop="infoSources">
<span v-if="infoSourcesLength < 1">{{ '-' }}</span>
<span v-for="item in rh_pageData.infoSources" :key="item.id" style="color: #409EFF;" @click="previews(item.id)">
{{ item.name }} {{ ';'}}
<a v-if="item.name.length > 30">
{{ item.name.slice(0,30) + '...' }} {{ ';' }}
</a>
<a v-else>{{ item.name }} {{ ';' }}</a>
</span>
</el-form-item>
</el-col>
@@ -71,7 +71,10 @@
<el-form-item class="add-form-item" label="信息来源:" prop="infoSources">
<span v-if="infoSourcesLength < 1">{{ '-' }}</span>
<span v-for="item in rh_pageData.infoSources" :key="item.id" style="color: #409EFF;" @click="previews(item.id)">
{{ item.name }} {{ ';' }}
<a v-if="item.name.length > 30">
{{ item.name.slice(0,30) + '...' }} {{ ';' }}
</a>
<a v-else>{{ item.name }} {{ ';' }}</a>
</span>
</el-form-item>
</el-col>
@@ -625,6 +625,8 @@ export default {
})
}
})
} else {
this.$message.warning('请完成流程信息的人员选择')
}
})
}
@@ -645,6 +645,8 @@ export default {
this.isSubmit = false
})
})
} else {
this.$message.warning('请完成流程信息的人员选择')
}
})
}
@@ -61,7 +61,12 @@
<el-form-item class="add-form-item" label="上传附件:" prop="uploadFile">
<span v-if="uploadFileLength < 1">{{ '-' }}</span>
<span v-for="item in ch_pageData.fileTextList" :key="item.id" style="color: #409EFF;" @click="previews(item.id)">
{{ item.name }} {{ ';' }}
<a v-if="item.name.length > 30">
{{ item.name.slice(0,30) + '...' }} {{ ';' }}
</a>
<a v-else>
{{ item.name }} {{ ';' }}
</a>
</span>
</el-form-item>
</el-col>
@@ -6,7 +6,7 @@
</ProcessHeader>
<div class="headerTabs">
<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 === '3' ? 'active' : ''" @click="handleTabs('3')">流程信息</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
@@ -61,7 +61,12 @@
<el-form-item class="add-form-item" label="上传附件:" prop="uploadFile">
<span v-if="uploadFileLength < 1">{{ '-' }}</span>
<span v-for="item in ch_pageData.fileTextList" :key="item.id" style="color: #409EFF;" @click="previews(item.id)">
{{ item.name }} {{ ';' }}
<a v-if="item.name.length > 30">
{{ item.name.slice(0,30) + '...' }} {{ ';' }}
</a>
<a v-else>
{{ item.name }} {{ ';' }}
</a>
</span>
</el-form-item>
</el-col>
@@ -352,9 +357,9 @@ export default {
this.$nextTick(() => {
this.ch_pageData = JSON.parse(JSON.stringify(item)).ch_pageData
this.uploadFileLength = this.ch_pageData.fileTextList.length
this.rh_pageData.fillDept = this.$store.getters.userInfo.institutionName
this.rh_pageData.fillUnit = this.$store.getters.userInfo.upDeptName
this.rh_pageData.fillTel = this.$store.getters.userInfo.phone
this.ch_pageData.fillDept = this.$store.getters.userInfo.institutionName
this.ch_pageData.fillUnit = this.$store.getters.userInfo.upDeptName
this.ch_pageData.fillTel = this.$store.getters.userInfo.phone
this.ch_pageData.fillPeopleId = this.$store.getters.userInfo.userId
this.ch_pageData.fillPeople = this.$store.getters.userInfo.userName
this.roleForm = JSON.parse(JSON.stringify(item)).roleList
@@ -61,7 +61,12 @@
<el-form-item class="add-form-item" label="上传附件:" prop="uploadFile">
<span v-if="uploadFileLength < 1">{{ '-' }}</span>
<span v-for="item in ch_pageData.fileTextList" :key="item.id" style="color: #409EFF;" @click="previews(item.id)">
{{ item.name }} {{ ';' }}
<a v-if="item.name.length > 30">
{{ item.name.slice(0,30) + '...' }} {{ ';' }}
</a>
<a v-else>
{{ item.name }} {{ ';' }}
</a>
</span>
</el-form-item>
</el-col>
@@ -61,7 +61,12 @@
<el-form-item class="add-form-item" label="上传附件:" prop="uploadFile">
<span v-if="uploadFileLength < 1">{{ '-' }}</span>
<span v-for="item in ch_pageData.fileTextList" :key="item.id" style="color: #409EFF;" @click="previews(item.id)">
{{ item.name }} {{ ';' }}
<a v-if="item.name.length > 30">
{{ item.name.slice(0,30) + '...' }} {{ ';' }}
</a>
<a v-else>
{{ item.name }} {{ ';' }}
</a>
</span>
</el-form-item>
</el-col>
@@ -61,7 +61,12 @@
<el-form-item class="add-form-item" label="上传附件:" prop="uploadFile">
<span v-if="uploadFileLength < 1">{{ '-' }}</span>
<span v-for="item in ch_pageData.fileTextList" :key="item.id" style="color: #409EFF;" @click="previews(item.id)">
{{ item.name }} {{ ';'}}
<a v-if="item.name.length > 30">
{{ item.name.slice(0,30) + '...' }} {{ ';' }}
</a>
<a v-else>
{{ item.name }} {{ ';' }}
</a>
</span>
</el-form-item>
</el-col>
@@ -64,7 +64,12 @@
<el-form-item class="add-form-item" label="上传附件:" prop="uploadFile">
<span v-if="uploadFileLength < 1">{{ '-' }}</span>
<span v-for="item in ch_pageData.fileTextList" :key="item.id" style="color: #409EFF;" @click="previews(item.id)">
{{ item.name }} {{ ';' }}
<a v-if="item.name.length > 30">
{{ item.name.slice(0,30) + '...' }} {{ ';' }}
</a>
<a v-else>
{{ item.name }} {{ ';' }}
</a>
</span>
</el-form-item>
</el-col>
@@ -171,12 +171,8 @@
prop="technicalRequir"
width="200"
label="核心技术要求"
show-overflow-tooltip
align="center">
<template slot-scope="scope">
<div class="el-input">
<input class="el-input__inner" type="text" v-model.lazy="scope.row.technicalRequir" placeholder="请输入核心技术要求" maxlength="500">
</div>
</template>
</el-table-column>
<el-table-column
:disabled="acceptShow"
@@ -184,94 +180,80 @@
width="150"
v-if="form.itemsNum1"
label="基于上一版本差异"
show-overflow-tooltip
align="center">
<template slot-scope="scope">
<div class="el-input">
<input :disabled="acceptShow" class="el-input__inner" type="text" v-model.lazy="scope.row.changePoint" placeholder="请输入基于上一版本差异" maxlength="500">
</div>
</template>
</el-table-column>
<el-table-column
v-if="sarType === 'FOREIGN' && form.itemsNum1"
prop="changePoint"
width="150"
label="相对于国行标差异点"
show-overflow-tooltip
align="center">
<template slot-scope="scope">
<div class="el-input">
<input :disabled="acceptShow" class="el-input__inner" type="text" v-model.lazy="scope.row.changePoint" placeholder="请输入相对于国行标差异点" maxlength="500" >
</div>
</template>
</el-table-column>
<el-table-column
prop="complianceRequir"
width="150"
label="符合项状态"
show-overflow-tooltip
align="center">
<template slot-scope="scope">
<My-select :disabled="acceptShow" v-model="scope.row.complianceRequir" :options="fhList"></My-select>
{{ scope.row.complianceRequir === '1' ? '符合' : '不符合' }}
</template>
</el-table-column>
<el-table-column
prop="complianceState"
width="200"
label="合规性分析"
show-overflow-tooltip
align="center">
<template slot-scope="scope">
<div class="el-input">
<input :disabled="acceptShow" class="el-input__inner" type="text" v-model.lazy="scope.row.complianceState" placeholder="请输入合规性分析" maxlength="500">
</div>
</template>
</el-table-column>
<el-table-column
prop="newData"
width="150"
width="180"
show-overflow-tooltip
label="新车型实施日期"
align="center">
<template slot-scope="scope">
<el-date-picker
:disabled="acceptShow"
v-model.lazy="scope.row.newData"
type="date"
placeholder="选择新车型实施日期">
</el-date-picker>
</template>
</el-table-column>
<el-table-column
prop="onlineData"
width="150"
width="180"
show-overflow-tooltip
label="在产车型实施日期"
align="center">
<template slot-scope="scope">
<el-date-picker
:disabled="acceptShow"
v-model.lazy="scope.row.onlineData"
type="date"
placeholder="选择新车型实施日期">
</el-date-picker>
</template>
</el-table-column>
<el-table-column
prop="applyArctic"
width="150"
width="200"
label="适用车型"
show-overflow-tooltip
align="center">
<template slot-scope="scope">
<My-select :disabled="acceptShow" v-model="scope.row.applyArctic" :options="cxList"></My-select>
{{ scope.row.applyArctic.toString() }}
</template>
</el-table-column>
<el-table-column
prop="unitDeptName"
label="责任部门"
width="170"
width="200"
show-overflow-tooltip
align="center">
</el-table-column>
<el-table-column
label="责任人"
width="170"
prop="zrUserIdName"
show-overflow-tooltip
align="center">
</el-table-column>
<el-table-column
label="操作"
width="100"
align="center">
<template slot-scope="scope">
<el-button class="common-button-primary" size="mini" type="primary" @click="itemEdit(scope.row)">编辑</el-button>
</template>
</el-table-column>
</el-table>
<el-collapse accordion>
<el-collapse-item title="回执说明">
@@ -410,21 +392,29 @@
></el-input>
</el-form-item>
<el-form-item label="新车型实施日期" prop="newData" class="add-form-item" >
<el-date-picker
<!-- <el-date-picker-->
<!-- v-model="plForm.newData"-->
<!-- type="date"-->
<!-- placeholder="选择新车型实施日期">-->
<!-- </el-date-picker>-->
<custom-date-pick-group
:config="plForm"
v-model="plForm.newData"
type="date"
placeholder="选择新车型实施日期">
</el-date-picker>
></custom-date-pick-group>
</el-form-item>
<el-form-item label="在产车实施日期" prop="onlineData" class="add-form-item" >
<el-date-picker
<!-- <el-date-picker-->
<!-- v-model="plForm.onlineData"-->
<!-- type="date"-->
<!-- placeholder="选择在产车实施日期">-->
<!-- </el-date-picker>-->
<custom-date-pick-group
:config="plForm"
v-model="plForm.onlineData"
type="date"
placeholder="选择在产车实施日期">
</el-date-picker>
></custom-date-pick-group>
</el-form-item>
<el-form-item label="适用车型" prop="applyArctic" class="add-form-item" >
<el-select v-model="plForm.applyArctic">
<el-select multiple v-model="plForm.applyArctic">
<el-option v-for="(item,index) in cxList" :value="item.label" :label="item.label" :key="index"></el-option>
</el-select>
</el-form-item>
@@ -435,6 +425,73 @@
<el-button class="common-button-default" size="mini" icon="el-icon-close" @click="cancleUserInfo">取消</el-button>
</div>
</el-drawer>
<el-drawer
title="编辑"
:visible.sync="modalshowflag2"
:wrapperClosable="false"
size="800px">
<div class="demo-drawer-content">
<el-form :model="editForm" class="label-input-form" ref="plForm" label-width=150>
<el-form-item label="核心技术要求" prop="technicalRequir" class="add-form-item" v-if="!form.itemsNum1">
<el-input
v-model="editForm.technicalRequir"
placeholder="请输入核心技术要求"
maxlength="500"
></el-input>
</el-form-item>
<el-form-item label="国内标准的差异点" prop="changePoint" class="add-form-item" v-if="sarType !== 'INLAND' && form.itemsNum1">
<el-input
v-model="editForm.changePoint"
placeholder="请输入国内标准的差异点"
maxlength="500"
></el-input>
</el-form-item>
<el-form-item label="上一版本差异点" prop="changePoint" class="add-form-item" v-if="sarType === 'INLAND' && form.itemsNum1">
<el-input
v-model="editForm.changePoint"
placeholder="请输入上一版本差异点"
maxlength="500"
></el-input>
</el-form-item>
<el-form-item label="符合性要求" prop="complianceRequir" class="add-form-item" >
<el-select
v-model="editForm.complianceRequir"
placeholder="请选择符合性要求">
<el-option value="1" label="符合"></el-option>
<el-option value="2" label="不符合"></el-option>
</el-select>
</el-form-item>
<el-form-item label="合规性分析" prop="complianceState" class="add-form-item" >
<el-input
v-model="editForm.complianceState"
placeholder="请输入合规性分析"
maxlength="500"
></el-input>
</el-form-item>
<el-form-item label="新车型实施日期" prop="newData" class="add-form-item" >
<custom-date-pick-group
:config="editForm"
v-model="editForm.newData"
></custom-date-pick-group>
</el-form-item>
<el-form-item label="在产车实施日期" prop="onlineData" class="add-form-item" >
<custom-date-pick-group
:config="editForm"
v-model="editForm.onlineData"
></custom-date-pick-group>
</el-form-item>
<el-form-item label="适用车型" prop="applyArctic" class="add-form-item" >
<el-select multiple v-model="editForm.applyArctic">
<el-option v-for="(item,index) in cxList" :value="item.label" :label="item.label" :key="index"></el-option>
</el-select>
</el-form-item>
</el-form>
</div>
<div id="roleFormButton3" class="demo-drawer-footer">
<el-button class="common-button-primary" size="mini" icon="el-icon-check" type="primary" @click="saveUserInfo2">确定</el-button>
<el-button class="common-button-default" size="mini" icon="el-icon-close" @click="cancleUserInfo2">取消</el-button>
</div>
</el-drawer>
<el-dialog
title="查看条款内容"
:visible.sync="itermsConditionsFlag"
@@ -449,6 +506,7 @@
</template>
<script>
import CustomDatePickGroup from '@/components/CustomFormComponents/DatePickerGroup'
import ProcessHeader from '../../components/ProcessHeader'
import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle'
@@ -459,6 +517,8 @@
name: "bzjdStep3",
data() {
return {
modalshowflag2: false,
itemId: '',
drawerModal: false,
//折叠的标志,true为折叠,false为不折叠
foldFormFlag: false,
@@ -485,6 +545,15 @@
onlineData: '', // 在产车实施日期
applyArctic: '', // 适用车型
},
editForm: {
technicalRequir: '', // 核心技术要求
changePoint: '', // 国内标准的差异点
complianceRequir: '1', // 符合性要求
complianceState: '', // 合规性分析
newData: '', // 新车型实施日期
onlineData: '', // 在产车实施日期
applyArctic: '', // 适用车型
},
modalshowflag: false,
sarType: '',
itemList: [],
@@ -510,11 +579,42 @@
}
},
components: {
CustomDatePickGroup,
ProcessHeader,
ProcessFooter,
ProcessTitle
},
methods: {
itemEdit (row) {
this.itemId = row.id
this.modalshowflag2 = true
this.editForm = {
technicalRequir: row.technicalRequir, // 核心技术要求
changePoint: row.changePoint, // 国内标准的差异点
complianceRequir: row.complianceRequir || '1', // 符合性要求
complianceState: row.complianceState, // 合规性分析
newData: row.newData, // 新车型实施日期
onlineData: row.onlineData, // 在产车实施日期
applyArctic: row.applyArctic, // 适用车型
}
},
saveUserInfo2 () {
for( let a = 0; a < this.itemList.length; a++) {
if (this.itemList[a].id === this.itemId) {
this.itemList[a].technicalRequir = this.editForm.technicalRequir
this.itemList[a].changePoint = this.editForm.changePoint
this.itemList[a].complianceRequir = this.editForm.complianceRequir
this.itemList[a].complianceState = this.editForm.complianceState
this.itemList[a].newData = this.editForm.newData
this.itemList[a].onlineData = this.editForm.onlineData
this.itemList[a].applyArctic = this.editForm.applyArctic
}
}
this.modalshowflag2 = false
},
cancleUserInfo2 () {
this.modalshowflag2 = false
},
handleTransfer() {
this.drawerModal = true
},
@@ -751,7 +851,7 @@
item.changePoint = item.changePoint || ''
item.technicalRequir = item.technicalRequir || ''
item.itemsTitle = item.itermsConditions
item.applyArctic = item.applyArctic || ''
item.applyArctic = item.applyArctic || []
})
this.itemList = itemList
this.loading = false
@@ -203,27 +203,27 @@
</el-table-column>
<el-table-column
prop="newData"
show-overflow-tooltip
width="150"
label="新车型实施日期"
align="center">
<template slot-scope="scope">
<div>{{ scope.row.newData ? $moment(scope.row.newData).format('YYYY-MM-DD') : scope.row.newData }}</div>
</template>
</el-table-column>
<el-table-column
prop="onlineData"
show-overflow-tooltip
width="150"
label="在产车型实施日期"
align="center">
<template slot-scope="scope">
<div>{{ scope.row.onlineData ? $moment(scope.row.onlineData).format('YYYY-MM-DD') : scope.row.onlineData }}</div>
</template>
</el-table-column>
<el-table-column
prop="applyArctic"
width="150"
label="适用车型"
show-overflow-tooltip
align="center">
<template slot-scope="scope">
{{ scope.row.applyArctic.toString() }}
</template>
</el-table-column>
<el-table-column
prop="unitDeptName"
@@ -202,28 +202,28 @@
align="center">
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="newData"
width="150"
label="新车型实施日期"
align="center">
<template slot-scope="scope">
<div>{{ scope.row.newData ? $moment(scope.row.newData).format('YYYY-MM-DD') : scope.row.newData }}</div>
</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="onlineData"
width="150"
label="在产车型实施日期"
align="center">
<template slot-scope="scope">
<div>{{ scope.row.onlineData ? $moment(scope.row.onlineData).format('YYYY-MM-DD') : scope.row.onlineData }}</div>
</template>
</el-table-column>
<el-table-column
prop="applyArctic"
width="150"
label="适用车型"
show-overflow-tooltip
align="center">
<template slot-scope="scope">
{{ scope.row.applyArctic.toString() }}
</template>
</el-table-column>
<el-table-column
prop="unitDeptName"
@@ -205,26 +205,26 @@
<el-table-column
prop="newData"
width="150"
show-overflow-tooltip
label="新车型实施日期"
align="center">
<template slot-scope="scope">
<div>{{ scope.row.newData ? $moment(scope.row.newData).format('YYYY-MM-DD') : scope.row.newData }}</div>
</template>
</el-table-column>
<el-table-column
prop="onlineData"
width="150"
show-overflow-tooltip
label="在产车型实施日期"
align="center">
<template slot-scope="scope">
<div>{{ scope.row.onlineData ? $moment(scope.row.onlineData).format('YYYY-MM-DD') : scope.row.onlineData }}</div>
</template>
</el-table-column>
<el-table-column
prop="applyArctic"
width="150"
label="适用车型"
show-overflow-tooltip
align="center">
<template slot-scope="scope">
{{ scope.row.applyArctic.toString() }}
</template>
</el-table-column>
<el-table-column
prop="unitDeptName"
@@ -134,18 +134,12 @@
prop="XCXSSRQ"
align="center"
label="新车型实施日期">
<template slot-scope="scope">
<span>{{ scope.row.XCXSSRQ ? $moment(scope.row.XCXSSRQ).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="ZCCSSRQ"
align="center"
label="在产车实施日期">
<template slot-scope="scope">
<span>{{ scope.row.ZCCSSRQ ? $moment(scope.row.ZCCSSRQ).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
@@ -645,18 +639,12 @@
prop="XCXSSRQ"
align="center"
label="新车型实施日期">
<template slot-scope="scope">
<span>{{ scope.row.XCXSSRQ ? $moment(scope.row.XCXSSRQ).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="ZCCSSRQ"
align="center"
label="在产车实施日期">
<template slot-scope="scope">
<span>{{ scope.row.ZCCSSRQ ? $moment(scope.row.ZCCSSRQ).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
@@ -1052,7 +1040,7 @@ export default {
this.getStandData();
},
getStandData() {
this.$http.get("sarStandardsInfo/sar-standards-info/getSarStandardsInfoPage", {
this.$http.get("sarStandardsInfo/sar-standards-info/getSarStandardsInfoPageByWk1", {
standType: this.standardSearch.standType,
standNumber: this.standardSearch.standNumber,
page: this.pageNo,
@@ -1062,9 +1050,9 @@ export default {
}, res => {
this.standardData = res.data.list;
this.standardData.forEach(item => {
this.$set(item, "ZCCSSRQ", item.attrInfoMap.ZCCSSRQ);
this.$set(item, "XCXSSRQ", item.attrInfoMap.XCXSSRQ);
});
this.$set(item, "ZCCSSRQ", item.zccssrq);
this.$set(item, "XCXSSRQ", item.xcxssrq);
})
this.totalNo = res.data.count;
}, e => {
});
@@ -134,18 +134,12 @@
prop="XCXSSRQ"
align="center"
label="新车型实施日期">
<template slot-scope="scope">
<span>{{ scope.row.XCXSSRQ ? $moment(scope.row.XCXSSRQ).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="ZCCSSRQ"
align="center"
label="在产车实施日期">
<template slot-scope="scope">
<span>{{ scope.row.ZCCSSRQ ? $moment(scope.row.ZCCSSRQ).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
@@ -615,18 +609,12 @@
prop="XCXSSRQ"
align="center"
label="新车型实施日期">
<template slot-scope="scope">
<span>{{ scope.row.XCXSSRQ ? $moment(scope.row.XCXSSRQ).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="ZCCSSRQ"
align="center"
label="在产车实施日期">
<template slot-scope="scope">
<span>{{ scope.row.ZCCSSRQ ? $moment(scope.row.ZCCSSRQ).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
@@ -984,7 +972,7 @@ export default {
},
//查询项目下的标准
getStandData() {
this.$http.get("sarStandardsInfo/sar-standards-info/getSarStandardsInfoPage", {
this.$http.get("sarStandardsInfo/sar-standards-info/getSarStandardsInfoPageByWk1", {
standType: this.standardSearch.standType,
standNumber: this.standardSearch.standNumber,
page: this.pageNo,
@@ -994,13 +982,8 @@ export default {
}, res => {
this.standardData = res.data.list;
this.standardData.forEach(item => {
if (item.attrInfoMap === null) {
this.$set(item, "ZCCSSRQ", '');
this.$set(item, "XCXSSRQ", '');
} else {
this.$set(item, "ZCCSSRQ", item.attrInfoMap.ZCCSSRQ);
this.$set(item, "XCXSSRQ", item.attrInfoMap.XCXSSRQ);
}
this.$set(item, "ZCCSSRQ", item.zccssrq);
this.$set(item, "XCXSSRQ", item.xcxssrq);
})
this.totalNo = res.data.count;
}, e => {
@@ -97,12 +97,24 @@
</el-date-picker>
</el-form-item>
<el-form-item label="起草责任单位" prop="unit" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="qbfsForm.unit"
placeholder="请输入起草责任单位"
clearable
></el-input>
<div v-if="qbfsForm.unit.length > 0">
<el-tooltip class="item" effect="dark" :content="qbfsForm.unit" placement="top-start">
<el-input
readonly
v-model="qbfsForm.unit"
placeholder="请输入起草责任单位"
clearable
></el-input>
</el-tooltip>
</div>
<div v-else>
<el-input
readonly
v-model="qbfsForm.unit"
placeholder="请输入起草责任单位"
clearable
></el-input>
</div>
</el-form-item>
</el-col>
</el-row>
@@ -105,12 +105,24 @@
</el-date-picker>
</el-form-item>
<el-form-item label="起草责任单位" prop="unit" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="qbfsForm.unit"
placeholder="请输入起草责任单位"
clearable
></el-input>
<div v-if="qbfsForm.unit.length > 0">
<el-tooltip class="item" effect="dark" :content="qbfsForm.unit" placement="top-start">
<el-input
readonly
v-model="qbfsForm.unit"
placeholder="请输入起草责任单位"
clearable
></el-input>
</el-tooltip>
</div>
<div v-else>
<el-input
readonly
v-model="qbfsForm.unit"
placeholder="请输入起草责任单位"
clearable
></el-input>
</div>
</el-form-item>
<el-form-item label="延期后标准发布时间" prop="yqReleaseTime" class="add-form-item form-item-disabled">
<el-date-picker
@@ -64,33 +64,33 @@
placeholder="请选择计划标准发布时间">
</el-date-picker>
</el-form-item>
<el-form-item label="起草责任单位" style="width: 100%; margin-right:10px" class="add-form-item" prop="unit" >
<div style="display: flex;justify-content: space-between;align-items: center;">
<el-input
clearable
v-model="qbfsForm.unit"
placeholder="选择或输入起草单位">
</el-input>
<div>
<el-button
size="mini"
type="primary"
@click="QCDWClick"
class="common-button-primary">手动查找</el-button>
</div>
</div>
</el-form-item>
<!-- <el-form-item label="起草责任单位" style="width: 100%; margin-right:10px" prop="unit" class="add-form-item form-item-disabled">-->
<!-- <el-select v-model="qbfsForm.unit" filterable multiple clearable>-->
<!-- <el-option-->
<!-- v-for="item in qcdwOptions"-->
<!-- placeholder="请选择起草责任单位"-->
<!-- :key="item.value"-->
<!-- :value="item.label"-->
<!-- :label="item.label"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<!-- <el-form-item label="起草责任单位" style="width: 100%; margin-right:10px" class="add-form-item" prop="unit" >-->
<!-- <div style="display: flex;justify-content: space-between;align-items: center;">-->
<!-- <el-input-->
<!-- clearable-->
<!-- v-model="qbfsForm.unit"-->
<!-- placeholder="选择或输入起草单位">-->
<!-- </el-input>-->
<!-- <div>-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="primary"-->
<!-- @click="QCDWClick"-->
<!-- class="common-button-primary">手动查找</el-button>-->
<!-- </div>-->
<!-- </div>-->
<!-- </el-form-item>-->
<el-form-item label="起草责任单位" style="width: 100%; margin-right:10px" prop="unit" class="add-form-item form-item-disabled">
<el-select v-model="qbfsForm.unit" filterable multiple clearable>
<el-option
v-for="item in qcdwOptions"
placeholder="请选择起草责任单位"
:key="item.value"
:value="item.label"
:label="item.label"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="新增原因" style="width: 100%; margin-right:10px" prop="newReason" class="add-form-item form-item-disabled">
<el-input
type="textarea"
@@ -185,7 +185,7 @@ export default {
},
qbfsFormRules: {
unit: [
{required: true, message: '请输入单位', trigger: 'blur'},
{required: true, message: '请选择起草单位', trigger: 'change'},
],
esName: [
{required: true, message: '请输入企标名称', trigger: 'blur'},
@@ -81,22 +81,33 @@
placeholder="请选择初稿完成时间">
</el-date-picker>
</el-form-item>
<el-form-item label="起草责任单位" style="width: 100%; margin-right:10px" class="add-form-item" prop="unit" >
<div style="display: flex;justify-content: space-between;align-items: center;">
<el-input
clearable
v-model="qbfsForm.unit"
placeholder="选择或输入起草单位">
</el-input>
<div>
<el-button
size="mini"
type="primary"
@click="QCDWClick"
class="common-button-primary">手动查找</el-button>
</div>
</div>
<el-form-item label="起草责任单位" style="width: 100%; margin-right:10px" prop="unit" class="add-form-item form-item-disabled">
<el-select v-model="qbfsForm.unit" filterable multiple clearable>
<el-option
v-for="item in qcdwOptions"
placeholder="请选择起草责任单位"
:key="item.value"
:value="item.label"
:label="item.label"
></el-option>
</el-select>
</el-form-item>
<!-- <el-form-item label="起草责任单位" style="width: 100%; margin-right:10px" class="add-form-item" prop="unit" >-->
<!-- <div style="display: flex;justify-content: space-between;align-items: center;">-->
<!-- <el-input-->
<!-- clearable-->
<!-- v-model="qbfsForm.unit"-->
<!-- placeholder="选择或输入起草单位">-->
<!-- </el-input>-->
<!-- <div>-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="primary"-->
<!-- @click="QCDWClick"-->
<!-- class="common-button-primary">手动查找</el-button>-->
<!-- </div>-->
<!-- </div>-->
<!-- </el-form-item>-->
</el-col>
<el-col :span="12">
<el-form-item prop="planStatus" label="计划状态" style="width: 100%; margin-right:10px" class="add-form-item form-item-disabled">
@@ -340,7 +351,7 @@ export default {
{required: true, message: '请选择合并计划企标名称', trigger: 'blur'},
],
unit: [
{required: true, message: '请输入单位', trigger: 'blur'},
{required: true, message: '请选择起草单位', trigger: 'change'},
],
esName: [
{required: true, message: '请输入企标名称', trigger: 'blur'},
@@ -96,12 +96,24 @@
</el-date-picker>
</el-form-item>
<el-form-item label="起草责任单位" prop="unit" class="add-form-item form-item-disabled">
<el-input
readonly
v-model="qbfsForm.unit"
placeholder="请输入起草责任单位"
clearable
></el-input>
<div v-if="qbfsForm.unit.length > 0">
<el-tooltip class="item" effect="dark" :content="qbfsForm.unit" placement="top-start">
<el-input
readonly
v-model="qbfsForm.unit"
placeholder="请输入起草责任单位"
clearable
></el-input>
</el-tooltip>
</div>
<div v-else>
<el-input
readonly
v-model="qbfsForm.unit"
placeholder="请输入起草责任单位"
clearable
></el-input>
</div>
</el-form-item>
<el-form-item label="更名原因" prop="renameReason" class="add-form-item form-item-disabled">
<el-input
@@ -866,7 +866,7 @@ export default {
saveBatchEditForm() {
this.dataList.forEach(item => {
this.selectList.forEach(items => {
if (item.id === items) {
if (item.itemNum === items.itemNum) {
item.complianceReasons = this.batchEditForm.complianceReasons;
//
item.noCompliance = this.batchEditForm.noCompliance;
@@ -884,10 +884,10 @@ export default {
},
//
selectStandChange(data) {
this.selectList = [];
for (let i = 0; i < data.length; i++) {
this.selectList.push(data[i].id);
}
this.selectList = data;
// for (let i = 0; i < data.length; i++) {
// this.selectList.push(data[i].id);
// }
},
selectThree() {
@@ -867,6 +867,7 @@ export default {
},
//
getFormFieldList(item) {
console.log(item);
this.$nextTick(() => {
if(item.form === undefined){
this.qdform = JSON.parse(JSON.stringify(item));
@@ -911,6 +912,8 @@ export default {
if(item.zrbm === '[]'){
item.zrbm = ''
}
this.$set(item, 'zccssrq', item.zccssrqgj)
this.$set(item, 'xcxssrq', item.xcxssrqgj)
})
});
},
@@ -953,13 +953,6 @@ export default {
this.saveLoading = false;
});
},
handleRemark(){
this.dataList.map(item => {
if(item.involve === 'noInvolve'){
comFlag
}
})
},
//
handleSubmit() {
let comFlag = 0
@@ -971,6 +964,9 @@ export default {
if(comFlag > 0){
this.$message.warning('请填写不涉及的备注信息')
}else{
this.dataList.forEach(item => {
this.$set(item, 'standId', item.id)
})
this.isSubmit = true;
this.qdform.currentPerson = this.$store.getters.userInfo.userName;
this.qdform.commentText = this.commentText;
@@ -965,6 +965,9 @@ export default {
if(comFlag > 0){
this.$message.warning('请填写不涉及的备注信息')
}else{
this.dataList.forEach(item => {
this.$set(item, 'standId', item.id)
})
this.isSubmit = true;
this.qdform.commentText = this.commentText;
this.qdform.dataList = this.dataList
@@ -1151,6 +1154,8 @@ export default {
}
})
this.handleSelectTableList.map(item => {
this.$set(item, 'involve', '涉及')
this.$set(item, 'remarks', '')
let addIndex
addIndex = this.dataList.findIndex(items =>{
return items.id === item.id
@@ -1161,10 +1166,6 @@ export default {
this.dataList.push(item)
}
})
this.dataList.forEach(item => {
this.$set(item, 'involve', 'involve')
this.$set(item, 'remarks', '')
})
this.standModel = false
}
},
@@ -442,13 +442,6 @@ export default {
this.qdform.prcName = this.prcName;
this.qdform["id"] = item.id;
this.dataList = item.dataList
this.dataList.forEach(item => {
if(item.involve === 'involve'){
item.involve = '涉及'
}else if(item.involve === 'noInvolve'){
item.involve = '不涉及'
}
})
// this.projectId = item.projectId;
// //id
// this.detailedId = item.detailedListId;
@@ -520,13 +513,6 @@ export default {
this.saveLoading = false;
});
},
handleRemark(){
this.dataList.map(item => {
if(item.involve === 'noInvolve'){
comFlag
}
})
},
//
beforeBack() {
if (this.commentText === null || this.commentText === undefined || this.commentText === "") {
@@ -134,9 +134,9 @@
tooltip-effect="dark"
style="width: 100%;"
height="100%"
row-key="id"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}"
row-key="id"
>
<el-table-column
prop="itemsNum"
@@ -202,27 +202,27 @@
</el-table-column>
<el-table-column
prop="newData"
width="150"
width="180"
show-overflow-tooltip
label="新车型实施日期"
align="center">
<template slot-scope="scope">
<div>{{ scope.row.newData ? $moment(scope.row.newData).format('YYYY-MM-DD') : scope.row.newData }}</div>
</template>
</el-table-column>
<el-table-column
prop="onlineData"
width="150"
width="180"
show-overflow-tooltip
label="在产车型实施日期"
align="center">
<template slot-scope="scope">
<div>{{ scope.row.onlineData ? $moment(scope.row.onlineData).format('YYYY-MM-DD') : scope.row.onlineData }}</div>
</template>
</el-table-column>
<el-table-column
prop="applyArctic"
width="150"
show-overflow-tooltip
label="适用车型"
align="center">
<template slot-scope="scope">
{{ scope.row.applyArctic.toString() }}
</template>
</el-table-column>
<el-table-column
prop="unitDeptName"
@@ -237,6 +237,7 @@
align="center">
</el-table-column>
</el-table>
<el-button v-if="itemLists.length > 20 && tableIndex * 20 < itemLists.length" style="width: 100%; margin-top: 5px;" icon="el-icon-caret-bottom" @click="tableLoading">加载更多...</el-button>
<el-collapse accordion>
<el-collapse-item title="审批意见">
<div style="margin: 10px 0;">
@@ -341,6 +342,8 @@
name: "phoneBzjdStep4",
data() {
return {
tableIndex: 0,
itemLists: [],
dialogMadal: false,
drawerModal: false,
//truefalse
@@ -374,6 +377,13 @@
ProcessTitle
},
methods: {
tableLoading () {
this.tableIndex++
let index = this.tableIndex * 20
let endIndex = index + 20
let newData = this.itemLists.slice(index, endIndex)
this.itemList = this.itemList.concat(newData)
},
dialogOk () {
this.dialogMadal = false
},
@@ -488,7 +498,8 @@
}
this.sarType = data.standInData || data.sarType
this.json = data
this.itemList = data.itemList
this.itemLists = data.itemList
this.itemList = this.itemLists.slice(this.tableIndex, 20)
this.loading = false
}).catch(e => {
})
@@ -507,6 +518,8 @@
.phoneBzjdStep4 {
/deep/.van-dialog__content {
min-height: 300px;
max-height: 500px;
overflow: auto;
padding: 10px;
}
.prc-content-border {
@@ -0,0 +1,457 @@
<template>
<div class="phoneZczqyjStep4">
<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 === '2' ? 'active' : ''" @click="handleTabs('2')">审批历史</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="zczqyjForm"
:model="form"
:rules="formRules"
class="label-input-form"
label-width="210px"
>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<div class="prc-content-border">
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="政策编号" prop="lawsNumber" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="form.lawsNumber"
placeholder="请输入政策编号"
clearable
></el-input>
</el-form-item>
<el-form-item label="政策名称" prop="lawsName" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="form.lawsName"
placeholder="请输入政策名称"
clearable
></el-input>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
<ProcessTitle>
<template slot="title">征求意见列表</template>
</ProcessTitle>
<el-table
ref="multipleTable"
:data="data"
tooltip-effect="dark"
border
style="width: 100%; flex: auto;"
class="drag-table"
:default-sort = "{prop: 'chapterNumber', order: 'ascending'}"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="index"
label="序号"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="chapterNumber"
align="center"
sortable
label="章条编号"
width="101px">
</el-table-column>
<el-table-column
prop="chapterName"
align="center"
label="章节名称"
width="200px">
</el-table-column>
<el-table-column
align="center"
prop="commentText"
label="修改意见内容(包括理由或依据)">
<el-table-column
prop="oldText"
align="center"
label="修改前">
</el-table-column>
<el-table-column
prop="newText"
align="center"
label="修改后">
</el-table-column>
<el-table-column
prop="changeReason"
align="center"
label="修改理由">
</el-table-column>
</el-table-column>
<el-table-column
prop="reason"
align="center"
label="原因"
width="200px">
</el-table-column>
<el-table-column
prop="department"
align="center"
label="提出部门">
</el-table-column>
<el-table-column
prop="responUserName"
align="center"
label="提出人">
</el-table-column>
</el-table>
</div>
<el-collapse accordion>
<el-collapse-item title="审批意见">
<div style="margin: 10px 0;">
<el-input
type="textarea"
:rows="3"
resize="none"
placeholder="请输入意见"
v-model="commentText">
</el-input>
</div>
</el-collapse-item>
</el-collapse>
</div>
<div class="content" v-show="active === '2'">
<el-table
height="100%"
ref="selection"
:data="histortData"
tooltip-effect="dark"
style="width: 100%"
border
row-key="id"
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}">
<el-table-column
prop="name"
label="任务步骤"
min-width="130"
align="center"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
min-width="130"
align="center"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
min-width="130"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format('YYYY-MM-DD') : '' }}</span>
</template>
</el-table-column>
<el-table-column
prop="endTime"
min-width="130"
label="完成时间"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? $moment(scope.row.endTime).format('YYYY-MM-DD') : '' }}</span>
</template>
</el-table-column>
<el-table-column
prop="comment"
label="流程信息"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.commentText }}</span>
</template>
</el-table-column>
<el-table-column
prop="completeFlag"
label="状态"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? '已完成' : '未完成' }}</span>
</template>
</el-table-column>
</el-table>
</div>
<ProcessFooter
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
show-transfer
@transfer="handleTransfer"
@save="handleSave"
@submit="handleSubmit"
show-back
@back="handleSubmitNo"
approval
submitBTNText="同意"
>
</ProcessFooter>
<Role-tree
check-box
is-title="转办处理人"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
></Role-tree>
</div>
</template>
<script>
import { Dialog } from 'vant';
import ProcessHeaderPhone from "process/components/ProcessHeaderPhone";
import ProcessHeader from '../../components/ProcessHeader'
import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle'
import {inboundLiaisonDetail, processCreateStand,changeAssigneeNew} from 'api/process'
import axios from "axios";
export default {
name: "phoneZczqyjStep4",
data() {
return {
drawerModal: false,
histortData: [],
data: [],
commentText: '',
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
roleRow: {},
nodeList: [],
type: '',
defaultProps: {
children: 'children',
label: 'name'
},
treeData: [], //
modalshowflag: false, // drawer
drawerTitle: '', //drawer
textarea: '', //
ListModel: false, //
active: '1', //
isSubmit: false,
saveLoading: false,
form: {
lawsNumber: '', //
lawsName: '', //
endTime: '', //
cname: '', //
fjList: [],
fjListId: '',
},
formRules: {
responUserList: [
{required: true, message: '请选择责任人', trigger: 'change'},
]
},
json: {}
}
},
components: {
ProcessHeaderPhone,
ProcessHeader,
ProcessFooter,
ProcessTitle
},
methods: {
handleTransfer() {
this.drawerModal = true
},
checkedRole (data) {
changeAssigneeNew({
taskId: this.$route.query.taskIds, // id
userId:this.$store.getters.userInfo.userId, //
assignee: data[0].id, //
pId: this.$route.query.prcId, //
}).then(res => {
if (res.success) {
this.drawerModal = false
this.$message.success('调整成功')
this.processNum()
this.$router.push({path:'/processCenter?tabsName=ProcessCenter'})
} else {
this.$message.warning(res.message)
}
})
},
//
processNum (row) {
axios.request({
url: '/api/lawss/activiti/getImg?_t=' + new Date().getTime(),
responseType: 'blob',
method: 'get',
params: {
prcNum: this.$route.query.prcNum
}
}).then(res => {
this.processStep = window.URL.createObjectURL(res.data)
})
},
getHistoryData() {
this.$http.get('lawss/activiti/get_list_by_instance', {
prcNum: this.$route.query.prcNum,
}, {}, res => {
this.histortData = res
}, e => {
})
},
handleTabs(name) {
this.active = name
},
handleSave() {
},
handleSubmit() {
this.isSubmit = true
var json = this.json
//actionFlag
json.actionFlag = 0
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
this.isSubmit = false
})
},
handleSubmitNo() {
if (this.commentText) {
var json = this.json
//actionFlag
json.actionFlag = 1
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('提交成功')
this.$router.push('/processCenter')
}
})
} else {
this.$message.warning('请输入反馈意见')
}
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
if (res) {
const processForm = JSON.parse(res.mesg)
this.getFormFieldList(processForm)
}
let data = JSON.parse(res.mesg)
this.form.fjList = data.fjList || data.form.fjList
this.form.fjListId = data.fjListId || data.form.fjListId
this.form.lawsNumber = data.lawsNumber || data.form.lawsNumber
this.form.lawsName = data.lawsName || data.form.lawsName
this.form.endTime = data.endTime || data.form.endTime
this.form.cname = data.cname || data.form.cname
this.json = data
this.data = data.info || data.data
}).catch(e => {
})
})
},
/**
* @description: 动态表单读取
*/
getFormFieldList(item) {
this.$nextTick(() => {
this.form = JSON.parse(JSON.stringify(item));
this.form.lawsNumber = item.form.lawsNumber
this.form.lawsName = item.form.lawsName
});
},
},
mounted() {
this.getHistoryData()
this.getData()
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.phoneZczqyjStep4 {
/deep/.van-dialog__content {
min-height: 300px;
padding: 10px;
}
.prc-content-border {
overflow: auto;
}
/deep/.prc-content-border .el-form-item__content {
width: 270px;
}
.headerTabs {
height: 52px;
display: flex;
align-items: center;
position: absolute;
top: 52px;
right: 10px;
.headerTabsItem {
border: 1px solid #c1c1c1;
padding: 0 5px;
height: 30px;
line-height: 30px;
cursor: pointer;
}
.active {
border: 1px solid #E6A23C;
color: #fff;
background: #E6A23C;
}
}
.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>
@@ -0,0 +1,629 @@
<template>
<div class="phoneZczqyjStep5">
<!-- 标准调研流程-->
<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 === '2' ? 'active' : ''" @click="handleTabs('2')">审批历史</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="zczqyjForm"
:model="form"
:rules="formRules"
class="label-input-form"
label-width="210px"
>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<div class="prc-content-border">
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="政策编号" prop="lawsNumber" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="form.lawsNumber"
placeholder="请输入政策编号"
clearable
></el-input>
</el-form-item>
<el-form-item label="政策名称" prop="lawsName" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="form.lawsName"
placeholder="请输入政策名称"
clearable
></el-input>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
<ProcessTitle>
<template slot="title">征求意见列表</template>
</ProcessTitle>
<div class="button-list">
<el-button type="primary"
class="common-button-primary add-button"
:disabled="acceptShow"
@click="addModal"
size="mini">新增
</el-button>
<el-button type="primary"
class="common-button-primary add-button"
@click="upload(data, '汇总单.xls')"
size="mini">导出Excel
</el-button>
<!-- <el-button type="primary"-->
<!-- class="common-button-primary add-button"-->
<!-- @click="upload(oldData, '上报意见.xls')"-->
<!-- size="mini">导出Word-->
<!-- </el-button>-->
</div>
<el-table
ref="multipleTable"
:data="data"
tooltip-effect="dark"
border
style="width: 100%; flex: auto;"
class="drag-table"
:default-sort = "{prop: 'chapterNumber', order: 'ascending'}"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="index"
label="序号"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="chapterNumber"
align="center"
sortable
label="章条编号"
width="101px">
<template slot-scope="scope">
<el-input style="margin: 10px 0;background-color: red" v-model="scope.row.chapterNumber" v-if="changeFlag && scope.row.chapterNumber === ''"></el-input>
<el-input style="margin: 10px 0;background-color: orange" v-model="scope.row.chapterNumber" v-else-if="changeFlag && scope.row.addFlag"></el-input>
<el-input style="margin: 10px 0;background-color: orange" v-model="scope.row.chapterNumber" v-else-if="changeFlag && !scope.row.addFlag" readonly></el-input>
<el-input style="margin: 10px 0;" v-model="scope.row.chapterNumber" v-else readonly></el-input>
</template>
</el-table-column>
<el-table-column
prop="chapterName"
align="center"
width="200px"
label="章节名称">
<template slot-scope="scope">
<el-input style="margin: 10px 0;background-color: red" v-model="scope.row.chapterName" v-if="changeFlag && scope.row.chapterName === ''"></el-input>
<el-input style="margin: 10px 0;background-color: orange" v-model="scope.row.chapterName" v-else-if="changeFlag && scope.row.addFlag"></el-input>
<el-input style="margin: 10px 0;background-color: orange" v-model="scope.row.chapterName" v-else-if="changeFlag && !scope.row.addFlag" readonly></el-input>
<el-input style="margin: 10px 0;" v-model="scope.row.chapterName" v-else readonly></el-input>
</template>
</el-table-column>
<el-table-column
prop="commentText"
align="center"
label="修改意见内容(包括理由或依据)">
<el-table-column
prop="oldText"
align="center"
label="修改前">
<template slot-scope="scope">
<el-input style="margin: 10px 0;background-color: red" v-model="scope.row.oldText" v-if="changeFlag && scope.row.oldText === ''"></el-input>
<el-input style="margin: 10px 0;background-color: #409eff" v-model="scope.row.oldText" v-else-if="changeFlag"></el-input>
<el-input style="margin: 10px 0;" v-model="scope.row.oldText" v-else readonly></el-input>
</template>
</el-table-column>
<el-table-column
prop="newText"
align="center"
label="修改后">
<template slot-scope="scope">
<el-input style="margin: 10px 0;background-color: red" v-model="scope.row.newText" v-if="changeFlag && scope.row.newText === ''"></el-input>
<el-input style="margin: 10px 0;background-color: #409eff" v-model="scope.row.newText" v-else-if="changeFlag"></el-input>
<el-input style="margin: 10px 0;" v-model="scope.row.newText" v-else readonly></el-input>
</template>
</el-table-column>
<el-table-column
prop="changeReason"
align="center"
label="修改理由">
<template slot-scope="scope">
<el-input style="margin: 10px 0;background-color: red" v-model="scope.row.changeReason" v-if="changeFlag && scope.row.changeReason === ''"></el-input>
<el-input style="margin: 10px 0;background-color: #409eff" v-model="scope.row.changeReason" v-else-if="changeFlag"></el-input>
<el-input style="margin: 10px 0;" v-model="scope.row.changeReason" v-else readonly></el-input>
</template>
</el-table-column>
</el-table-column>
<el-table-column
prop="reason"
align="center"
label="原因"
width="200px">
<template slot-scope="scope">
<el-input style="margin: 10px 0;background-color: red" v-model="scope.row.reason" v-if="changeFlag && scope.row.reason === ''"></el-input>
<el-input style="margin: 10px 0;background-color: #409eff" v-model="scope.row.reason" v-else-if="changeFlag"></el-input>
<el-input style="margin: 10px 0;" v-model="scope.row.reason" v-else readonly></el-input>
</template>
</el-table-column>
<el-table-column
prop="department"
align="center"
label="提出部门">
</el-table-column>
<el-table-column
prop="responUserName"
align="center"
label="提出人">
</el-table-column>
<el-table-column
prop="operation"
align="center"
width="150px"
label="操作">
<template slot-scope="scope">
<el-button type="primary"
class="common-button-primary add-button"
@click="changeOpinion"
size="mini">{{changeFlag?'完成':'修订'}}</el-button>
<el-button type="primary"
class="common-button-primary add-button"
@click="addDelete(scope.$index, scope.row)"
size="mini">删除</el-button>
<div>{{ stateText(scope.row.state) }}</div>
</template>
</el-table-column>
</el-table>
</div>
<el-collapse accordion>
<el-collapse-item title="审批意见">
<div style="margin: 10px 0;">
<el-input
type="textarea"
:rows="3"
resize="none"
placeholder="请输入意见"
v-model="commentText">
</el-input>
</div>
</el-collapse-item>
</el-collapse>
</div>
<div class="content" v-show="active === '2'">
<el-table
height="100%"
ref="selection"
:data="histortData"
tooltip-effect="dark"
style="width: 100%"
border
row-key="id"
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}">
<el-table-column
prop="name"
label="任务步骤"
align="center"
min-width="130"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
min-width="130"
align="center"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
min-width="130"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
prop="endTime"
label="完成时间"
min-width="130"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? $moment(scope.row.endTime).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
prop="comment"
label="流程信息"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.commentText }}</span>
</template>
</el-table-column>
<el-table-column
prop="completeFlag"
label="状态"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? "已完成" : "未完成" }}</span>
</template>
</el-table-column>
</el-table>
</div>
<ProcessFooter
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
@save="handleSave"
@submit="handleSubmit"
show-back
@back="handleSubmitNo"
show-transfer
@transfer="handleTransfer"
approval
submitBTNText="同意"
>
</ProcessFooter>
<Role-tree
check-box
is-title="转办处理人"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
></Role-tree>
</div>
</template>
<script>
import { Dialog } from 'vant';
import ProcessHeaderPhone from "process/components/ProcessHeaderPhone";
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import { inboundLiaisonDetail, processCreateStand, changeAssigneeNew } from "api/process";
import axios from "axios";
export default {
name: "phoneZczqyjStep5",
data() {
return {
//
changeFlag:false,
acceptShow: false,
drawerModal: false,
histortData: [],
oldData: [],
data: [],
commentText: "",
oldText: "",
newText: "",
reason: "",
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
roleRow: {},
nodeList: [],
type: "",
defaultProps: {
children: "children",
label: "name"
},
treeData: [], //
modalshowflag: false, // drawer
drawerTitle: "", //drawer
textarea: "", //
ListModel: false, //
active: "1", //
isSubmit: false,
saveLoading: false,
form: {
lawsNumber: '', //
lawsName: '', //
department: '',//
endTime: "", //
cname: "", //
fjList: [],
fjListId: '',
},
formRules: {
responUserList: [
{required: true, message: "请选择责任人", trigger: "change"}
]
},
json: {}
};
},
components: {
ProcessHeader,
ProcessHeaderPhone,
ProcessFooter,
ProcessTitle
},
methods: {
changeOpinion() {
this.changeFlag = !this.changeFlag
},
addDelete(index, row) {
console.log('362',index, row);
this.$confirm('此操作将删除该数据, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.data.splice(index, 1)
this.$message({
type: 'success',
message: '删除成功!'
});
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
console.log('379',this.data)
},
addModal() {
console.log('318',this.form.form.department)
this.changeFlag = true
var id = Number(Math.random().toString().substr(3, 3) + Date.now()).toString(36);
var json = {
chapterNumber: '',
chapterName: '',
commentText: '',
oldText: '',
newText: '',
changeReason: '',
reason: '',
department: this.form.form.department,
id: id,
responUserName: this.$store.getters.userInfo.userName,
responUser: this.$store.getters.userInfo.userId,
addFlag:true,
// department: this.$store.getters.userInfo.orgName
}
this.data.unshift(json)
},
handleTransfer() {
this.drawerModal = true
},
checkedRole (data) {
changeAssigneeNew({
taskId: this.$route.query.taskIds, // id
userId:this.$store.getters.userInfo.userId, //
assignee: data[0].id, //
pId: this.$route.query.prcId, //
}).then(res => {
if (res.success) {
this.drawerModal = false
this.$message.success('调整成功')
this.processNum()
this.$router.push({path:'/processCenter?tabsName=ProcessCenter'})
} else {
this.$message.warning(res.message)
}
})
},
//
processNum (row) {
axios.request({
url: '/api/lawss/activiti/getImg?_t=' + new Date().getTime(),
responseType: 'blob',
method: 'get',
params: {
prcNum: this.$route.query.prcNum
}
}).then(res => {
this.processStep = window.URL.createObjectURL(res.data)
})
},
getHistoryData() {
this.$http.get("lawss/activiti/get_list_by_instance", {
prcNum: this.$route.query.prcNum
}, {}, res => {
this.histortData = res;
}, e => {
});
},
stateText(row) {
if (row === "1") {
return "上报";
} else if (row === "2") {
return "处理后上报";
}
},
upload(row, title) {
var params = {
columnName: {
chapterNumber: "章条编号",
chapterName: "章节名称",
commentText: "修改意见内容(包括理由或依据)",
oldText: "修改前",
newText: "修改后",
changeReason: "修改理由",
reason:"原因",
department: "提出部门",
responUserName: "提出人",
},
dataList: []
};
params.dataList = JSON.parse(JSON.stringify(row));
this.$http.downloadFile("/api/policy/activiti/exportExcel", params, title, res => {
});
},
handleTabs(name) {
this.active = name;
},
handleSave() {
},
handleSubmit() {
if (this.data.length < 1) {
this.$message.warning("请输入征求意见稿");
} else {
this.isSubmit = true;
var json = this.json;
json.actionFlag = 0;
json.commentText = this.commentText;
json.info = this.data
json.form = this.form
this.$http.post("lawss/activiti/completeTask", {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success("提交成功");
this.$router.push("/processCenter");
}
this.isSubmit = false;
});
}
},
handleSubmitNo() {
if (this.commentText) {
this.isSubmit = true;
var json = this.json;
json.actionFlag = 1;
json.commentText = this.commentText;
this.$http.post("lawss/activiti/completeTask", {
json: JSON.stringify(json),
taskIds: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success("驳回成功");
this.$router.push("/processCenter");
}
this.isSubmit = false;
});
} else {
this.$message.warning("请输入反馈意见");
}
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
if (res) {
const processForm = JSON.parse(res.mesg)
this.getFormFieldList(processForm)
}
let data = JSON.parse(res.mesg);
this.form.department = data.form.department
console.log(this.form.department,'517')
//
this.form.responUserAndInstitutionNameMap = data.form.responUserAndInstitutionNameMap
this.form.fjList = data.fjList || data.form.fjList
this.form.fjListId = data.fjListId || data.form.fjListId
this.form.lawsNumber = data.lawsNumber || data.form.lawsNumber
this.form.lawsName = data.lawsName || data.form.lawsName
this.form.endTime = data.endTime || data.form.endTime;
this.form.cname = data.cname || data.form.cname;
this.oldData = JSON.parse(JSON.stringify(data.info))
var arr = []
data.info.forEach(item => {
if (item.state != '3') {
arr.push(item)
}
})
// for (let i = 0; i < this.data.length; i++) {
// this.data[i].department = data.department
// }
this.json = data
this.data = arr
this.oldData = data.oldinfo
}).catch(e => {
});
});
},
/**
* @description: 动态表单读取
*/
getFormFieldList(item) {
this.$nextTick(() => {
this.form = JSON.parse(JSON.stringify(item));
this.form.lawsNumber = item.form.lawsNumber
this.form.lawsName = item.form.lawsName
});
},
},
mounted() {
this.getHistoryData();
this.getData();
}
};
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.phoneZczqyjStep5 {
/deep/.van-dialog__content {
min-height: 300px;
padding: 10px;
}
.prc-content-border {
overflow: auto;
}
/deep/.prc-content-border .el-form-item__content {
width: 270px;
}
.headerTabs {
height: 52px;
display: flex;
align-items: center;
position: absolute;
top: 52px;
right: 10px;
.headerTabsItem {
border: 1px solid #c1c1c1;
padding: 0 5px;
height: 30px;
line-height: 30px;
cursor: pointer;
}
.active {
border: 1px solid #E6A23C;
color: #fff;
background: #E6A23C;
}
}
.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>
@@ -0,0 +1,494 @@
<template>
<div class="phoneZczqyjStep6">
<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 === '2' ? 'active' : ''" @click="handleTabs('2')">审批历史</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="zczqyjForm"
:model="form"
:rules="formRules"
class="label-input-form"
label-width="210px"
>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<div class="prc-content-border">
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="政策编号" prop="lawsNumber" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="form.lawsNumber"
placeholder="请输入政策编号"
clearable
></el-input>
</el-form-item>
<el-form-item label="政策名称" prop="lawsName" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="form.lawsName"
placeholder="请输入政策名称"
clearable
></el-input>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
<ProcessTitle>
<template slot="title">征求意见列表</template>
</ProcessTitle>
<el-table
ref="multipleTable"
:data="data"
tooltip-effect="dark"
border
style="width: 100%; flex: auto;"
class="drag-table"
:default-sort = "{prop: 'chapterNumber', order: 'ascending'}"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="index"
label="序号"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="chapterNumber"
align="center"
sortable
label="章条编号"
width="101px">
</el-table-column>
<el-table-column
prop="chapterName"
align="center"
width="200px"
label="章节名称">
</el-table-column>
<el-table-column
align="center"
prop="commentText"
label="修改意见内容(包括理由或依据)">
<el-table-column
prop="oldText"
align="center"
label="修改前">
</el-table-column>
<el-table-column
prop="newText"
align="center"
label="修改后">
</el-table-column>
<el-table-column
prop="changeReason"
align="center"
label="修改理由">
</el-table-column>
</el-table-column>
<el-table-column
prop="reason"
align="center"
label="原因"
width="200px">
</el-table-column>
<el-table-column
prop="department"
align="center"
label="提出部门">
</el-table-column>
<el-table-column
prop="responUserName"
align="center"
label="提出人">
</el-table-column>
<!-- <el-table-column-->
<!-- prop="dealComment"-->
<!-- align="center"-->
<!-- label="处理意见">-->
<!-- <template slot-scope="scope">-->
<!-- <div>{{ stateText(scope.row.state) }}</div>-->
<!-- </template>-->
<!-- </el-table-column>-->
</el-table>
</div>
<el-collapse accordion>
<el-collapse-item title="审批意见">
<div style="margin: 10px 0;">
<el-input
type="textarea"
:rows="3"
resize="none"
placeholder="请输入意见"
v-model="commentText">
</el-input>
</div>
</el-collapse-item>
</el-collapse>
</div>
<div class="content" v-show="active === '2'">
<el-table
height="100%"
ref="selection"
:data="histortData"
tooltip-effect="dark"
style="width: 100%"
border
row-key="id"
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}">
<el-table-column
prop="name"
label="任务步骤"
min-width="130"
align="center"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="assignee"
min-width="130"
label="任务受理人"
align="center"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
min-width="130"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
prop="endTime"
min-width="130"
label="完成时间"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? $moment(scope.row.endTime).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
prop="comment"
label="流程信息"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.commentText }}</span>
</template>
</el-table-column>
<el-table-column
prop="completeFlag"
label="状态"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? "已完成" : "未完成" }}</span>
</template>
</el-table-column>
</el-table>
</div>
<ProcessFooter
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
@save="handleSave"
@submit="handleSubmit"
show-back
@back="handleSubmitNo"
approval
submitBTNText="同意"
show-transfer
@transfer="handleTransfer"
>
</ProcessFooter>
<Role-tree
check-box
is-title="转办处理人"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
></Role-tree>
</div>
</template>
<script>
import { Dialog } from 'vant';
import ProcessHeaderPhone from "process/components/ProcessHeaderPhone";
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import { inboundLiaisonDetail, processCreateStand, changeAssigneeNew } from "api/process";
import axios from "axios";
export default {
name: "phoneZczqyjStep6",
data() {
return {
drawerModal: false,
histortData: [],
oldData: [],
data: [],
commentText: "",
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
roleRow: {},
nodeList: [],
type: "",
defaultProps: {
children: "children",
label: "name"
},
treeData: [], //
modalshowflag: false, // drawer
drawerTitle: "", //drawer
textarea: "", //
ListModel: false, //
active: "1", //
isSubmit: false,
saveLoading: false,
form: {
lawsNumber: '', //
lawsName: '', //
endTime: "", //
cname: "", //
fjList: [],
fjListId: '',
},
formRules: {
responUserList: [
{required: true, message: "请选择责任人", trigger: "change"}
]
},
json: {}
};
},
components: {
ProcessHeader,
ProcessHeaderPhone,
ProcessFooter,
ProcessTitle
},
methods: {
handleTransfer() {
this.drawerModal = true
},
checkedRole (data) {
changeAssigneeNew({
taskId: this.$route.query.taskIds, // id
userId:this.$store.getters.userInfo.userId, //
assignee: data[0].id, //
pId: this.$route.query.prcId, //
}).then(res => {
if (res.success) {
this.drawerModal = false
this.$message.success('调整成功')
this.processNum()
this.$router.push({path:'/processCenter?tabsName=ProcessCenter'})
} else {
this.$message.warning(res.message)
}
})
},
//
processNum (row) {
axios.request({
url: '/api/lawss/activiti/getImg?_t=' + new Date().getTime(),
responseType: 'blob',
method: 'get',
params: {
prcNum: this.$route.query.prcNum
}
}).then(res => {
this.processStep = window.URL.createObjectURL(res.data)
})
},
getHistoryData() {
this.$http.get("lawss/activiti/get_list_by_instance", {
prcNum: this.$route.query.prcNum
}, {}, res => {
this.histortData = res;
}, e => {
});
},
upload(row, title) {
var params = {
columnName: {
chapterNumber: "章条编号",
chapterName: "章节名称",
commentText: "修改意见内容(包括理由或依据)",
department: "提出部门",
responUserName: "提出人",
stateText: "处理意见"
},
dataList: []
};
params.dataList = JSON.parse(JSON.stringify(row));
params.dataList.forEach(item => {
if (item.state === "1") {
item.stateText = "上报";
} else if (item.state === "2") {
item.stateText = "处理后上报";
} else {
item.stateText = "不上报";
}
});
this.$http.downloadFile("/api/lawss/activiti/export_excel", params, title, res => {
});
},
stateText(row) {
if (row === "1") {
return "上报";
} else if (row === "2") {
return "处理后上报";
}
},
handleTabs(name) {
this.active = name;
},
handleSave() {
},
handleSubmit() {
if (this.data.length < 1) {
this.$message.warning("请输入征求意见搞");
} else {
this.isSubmit = true;
var json = this.json;
json.actionFlag = 0;
json.commentText = this.commentText;
this.$http.post("lawss/activiti/completeTask", {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success("提交成功");
this.$router.push("/processCenter");
}
this.isSubmit = false;
});
}
},
handleSubmitNo() {
if (this.commentText) {
this.isSubmit = true;
var json = this.json;
json.actionFlag = 1;
json.commentText = this.commentText;
this.$http.post("lawss/activiti/completeTask", {
json: JSON.stringify(json),
taskIds: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success("驳回成功");
this.$router.push("/processCenter");
}
this.isSubmit = false;
});
} else {
this.$message.warning("请输入反馈意见");
}
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
let data = JSON.parse(res.mesg)
this.form.fjList = data.fjList || data.form.fjList
this.form.fjListId = data.fjListId || data.form.fjListId
this.form.lawsNumber = data.lawsNumber || data.form.lawsNumber
this.form.lawsName = data.lawsName || data.form.lawsName
this.form.endTime = data.endTime || data.form.endTime;
this.form.cname = data.cname || data.form.cname;
this.oldData = JSON.parse(JSON.stringify(data.info))
var arr = []
data.info.forEach(item => {
if (item.state != '3') {
arr.push(item)
}
})
this.json = data
this.data = arr
this.oldData = data.oldinfo
}).catch(e => {
});
});
}
},
mounted() {
this.getHistoryData();
this.getData();
}
};
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.phoneZczqyjStep6 {
/deep/.van-dialog__content {
min-height: 300px;
padding: 10px;
}
.prc-content-border {
overflow: auto;
}
/deep/.prc-content-border .el-form-item__content {
width: 270px;
}
.headerTabs {
height: 52px;
display: flex;
align-items: center;
position: absolute;
top: 52px;
right: 10px;
.headerTabsItem {
border: 1px solid #c1c1c1;
padding: 0 5px;
height: 30px;
line-height: 30px;
cursor: pointer;
}
.active {
border: 1px solid #E6A23C;
color: #fff;
background: #E6A23C;
}
}
.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>
@@ -0,0 +1,495 @@
<template>
<div class="phoneZczqyjStep7">
<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 === '2' ? 'active' : ''" @click="handleTabs('2')">审批历史</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="zczqyjForm"
:model="form"
:rules="formRules"
class="label-input-form"
label-width="210px"
>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<div class="prc-content-border">
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="政策编号" prop="lawsNumber" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="form.lawsNumber"
placeholder="请输入政策编号"
clearable
></el-input>
</el-form-item>
<el-form-item label="政策名称" prop="lawsName" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="form.lawsName"
placeholder="请输入政策名称"
clearable
></el-input>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
<ProcessTitle>
<template slot="title">征求意见列表</template>
</ProcessTitle>
<el-table
ref="multipleTable"
:data="data"
tooltip-effect="dark"
border
style="width: 100%; flex: auto;"
class="drag-table"
:default-sort = "{prop: 'chapterNumber', order: 'ascending'}"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="index"
label="序号"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="chapterNumber"
align="center"
sortable
label="章条编号"
width="101px">
</el-table-column>
<el-table-column
prop="chapterName"
align="center"
width="200px"
label="章节名称">
</el-table-column>
<el-table-column
align="center"
prop="commentText"
label="修改意见内容(包括理由或依据)">
<el-table-column
prop="oldText"
align="center"
label="修改前">
</el-table-column>
<el-table-column
prop="newText"
align="center"
label="修改后">
</el-table-column>
<el-table-column
prop="changeReason"
align="center"
label="修改理由">
</el-table-column>
</el-table-column>
<el-table-column
prop="reason"
align="center"
label="原因"
width="200px">
</el-table-column>
<el-table-column
prop="department"
align="center"
label="提出部门">
</el-table-column>
<el-table-column
prop="responUserName"
align="center"
label="提出人">
</el-table-column>
<!-- <el-table-column-->
<!-- prop="dealComment"-->
<!-- align="center"-->
<!-- label="处理意见">-->
<!-- <template slot-scope="scope">-->
<!-- <div>{{ stateText(scope.row.state) }}</div>-->
<!-- </template>-->
<!-- </el-table-column>-->
</el-table>
</div>
<el-collapse accordion>
<el-collapse-item title="审批意见">
<div style="margin: 10px 0;">
<el-input
type="textarea"
:rows="3"
resize="none"
placeholder="请输入意见"
v-model="commentText">
</el-input>
</div>
</el-collapse-item>
</el-collapse>
</div>
<div class="content" v-show="active === '2'">
<el-table
height="100%"
ref="selection"
:data="histortData"
tooltip-effect="dark"
style="width: 100%"
border
row-key="id"
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}">
<el-table-column
prop="name"
min-width="130"
label="任务步骤"
align="center"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
min-width="130"
align="center"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
min-width="130"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
prop="endTime"
label="完成时间"
min-width="130"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? $moment(scope.row.endTime).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
prop="comment"
label="流程信息"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.commentText }}</span>
</template>
</el-table-column>
<el-table-column
prop="completeFlag"
label="状态"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? "已完成" : "未完成" }}</span>
</template>
</el-table-column>
</el-table>
</div>
<ProcessFooter
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
@save="handleSave"
@submit="handleSubmit"
show-back
@back="handleSubmitNo"
approval
submitBTNText="同意"
show-transfer
@transfer="handleTransfer"
>
</ProcessFooter>
<Role-tree
check-box
is-title="转办处理人"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
></Role-tree>
</div>
</template>
<script>
import { Dialog } from 'vant';
import ProcessHeaderPhone from "process/components/ProcessHeaderPhone";
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import { inboundLiaisonDetail, processCreateStand, changeAssigneeNew } from "api/process";
import axios from "axios";
export default {
name: "phoneZczqyjStep7",
data() {
return {
drawerModal: false,
histortData: [],
oldData: [],
data: [],
commentText: "",
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
roleRow: {},
nodeList: [],
type: "",
defaultProps: {
children: "children",
label: "name"
},
treeData: [], //
modalshowflag: false, // drawer
drawerTitle: "", //drawer
textarea: "", //
ListModel: false, //
active: "1", //
isSubmit: false,
saveLoading: false,
form: {
lawsNumber: '', //
lawsName: '', //
endTime: "", //
cname: "", //
fjList: [],
fjListId: '',
},
formRules: {
responUserList: [
{required: true, message: "请选择责任人", trigger: "change"}
]
},
json: {}
};
},
components: {
ProcessHeaderPhone,
ProcessHeader,
ProcessFooter,
ProcessTitle
},
methods: {
handleTransfer() {
this.drawerModal = true
},
checkedRole (data) {
changeAssigneeNew({
taskId: this.$route.query.taskIds, // id
userId:this.$store.getters.userInfo.userId, //
assignee: data[0].id, //
pId: this.$route.query.prcId, //
}).then(res => {
if (res.success) {
this.drawerModal = false
this.$message.success('调整成功')
this.processNum()
this.$router.push({path:'/processCenter?tabsName=ProcessCenter'})
} else {
this.$message.warning(res.message)
}
})
},
//
processNum (row) {
axios.request({
url: '/api/lawss/activiti/getImg?_t=' + new Date().getTime(),
responseType: 'blob',
method: 'get',
params: {
prcNum: this.$route.query.prcNum
}
}).then(res => {
this.processStep = window.URL.createObjectURL(res.data)
})
},
getHistoryData() {
this.$http.get("lawss/activiti/get_list_by_instance", {
prcNum: this.$route.query.prcNum
}, {}, res => {
this.histortData = res;
}, e => {
});
},
upload(row, title) {
var params = {
columnName: {
chapterNumber: "章条编号",
chapterName: "章节名称",
commentText: "修改意见内容(包括理由或依据)",
department: "提出部门",
responUserName: "提出人",
stateText: "处理意见"
},
dataList: []
};
params.dataList = JSON.parse(JSON.stringify(row));
params.dataList.forEach(item => {
if (item.state === "1") {
item.stateText = "上报";
} else if (item.state === "2") {
item.stateText = "处理后上报";
} else {
item.stateText = "不上报";
}
});
this.$http.downloadFile("/api/lawss/activiti/export_excel", params, title, res => {
});
},
stateText(row) {
if (row === "1") {
return "上报";
} else if (row === "2") {
return "处理后上报";
}
},
handleTabs(name) {
this.active = name;
},
handleSave() {
},
handleSubmit() {
if (this.data.length < 1) {
this.$message.warning("请输入征求意见搞");
} else {
this.isSubmit = true;
var json = this.json;
json.actionFlag = 0;
json.commentText = this.commentText;
this.$http.post("lawss/activiti/completeTask", {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success("提交成功");
this.$router.push("/processCenter");
}
this.isSubmit = false;
});
}
},
handleSubmitNo() {
if (this.commentText) {
this.isSubmit = true;
var json = this.json;
json.actionFlag = 1;
json.commentText = this.commentText;
this.$http.post("lawss/activiti/completeTask", {
json: JSON.stringify(json),
taskIds: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success("驳回成功");
this.$router.push("/processCenter");
}
this.isSubmit = false;
});
} else {
this.$message.warning("请输入反馈意见");
}
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
let data = JSON.parse(res.mesg)
this.form.fjList = data.fjList || data.form.fjList
this.form.fjListId = data.fjListId || data.form.fjListId
this.form.lawsNumber = data.lawsNumber || data.form.lawsNumber
this.form.lawsName = data.lawsName || data.form.lawsName
this.form.endTime = data.endTime || data.form.endTime;
this.form.cname = data.cname || data.form.cname;
this.oldData = JSON.parse(JSON.stringify(data.info))
var arr = []
data.info.forEach(item => {
if (item.state != '3') {
arr.push(item)
}
})
this.json = data
this.data = arr
this.oldData = data.oldinfo
}).catch(e => {
});
});
}
},
mounted() {
this.getHistoryData();
this.getData();
}
};
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.phoneZczqyjStep7 {
/deep/.van-dialog__content {
min-height: 300px;
padding: 10px;
}
.prc-content-border {
overflow: auto;
}
/deep/.prc-content-border .el-form-item__content {
width: 270px;
}
.headerTabs {
height: 52px;
display: flex;
align-items: center;
position: absolute;
top: 52px;
right: 10px;
.headerTabsItem {
border: 1px solid #c1c1c1;
padding: 0 5px;
height: 30px;
line-height: 30px;
cursor: pointer;
}
.active {
border: 1px solid #E6A23C;
color: #fff;
background: #E6A23C;
}
}
.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>
@@ -0,0 +1,494 @@
<template>
<div class="phoneZczqyjStep8">
<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 === '2' ? 'active' : ''" @click="handleTabs('2')">审批历史</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="zczqyjForm"
:model="form"
:rules="formRules"
class="label-input-form"
label-width="210px"
>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<div class="prc-content-border">
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="政策编号" prop="lawsNumber" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="form.lawsNumber"
placeholder="请输入政策编号"
clearable
></el-input>
</el-form-item>
<el-form-item label="政策名称" prop="lawsName" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="form.lawsName"
placeholder="请输入政策名称"
clearable
></el-input>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
<ProcessTitle>
<template slot="title">征求意见列表</template>
</ProcessTitle>
<el-table
ref="multipleTable"
:data="data"
tooltip-effect="dark"
border
style="width: 100%; flex: auto;"
class="drag-table"
:default-sort = "{prop: 'chapterNumber', order: 'ascending'}"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="index"
label="序号"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="chapterNumber"
align="center"
sortable
label="章条编号"
width="101px">
</el-table-column>
<el-table-column
prop="chapterName"
align="center"
width="200px"
label="章节名称">
</el-table-column>
<el-table-column
align="center"
prop="commentText"
label="修改意见内容(包括理由或依据)">
<el-table-column
prop="oldText"
align="center"
label="修改前">
</el-table-column>
<el-table-column
prop="newText"
align="center"
label="修改后">
</el-table-column>
<el-table-column
prop="changeReason"
align="center"
label="修改理由">
</el-table-column>
</el-table-column>
<el-table-column
prop="reason"
align="center"
label="原因"
width="200px">
</el-table-column>
<el-table-column
prop="department"
align="center"
label="提出部门">
</el-table-column>
<el-table-column
prop="responUserName"
align="center"
label="提出人">
</el-table-column>
<!-- <el-table-column-->
<!-- prop="dealComment"-->
<!-- align="center"-->
<!-- label="处理意见">-->
<!-- <template slot-scope="scope">-->
<!-- <div>{{ stateText(scope.row.state) }}</div>-->
<!-- </template>-->
<!-- </el-table-column>-->
</el-table>
</div>
<el-collapse accordion>
<el-collapse-item title="审批意见">
<div style="margin: 10px 0;">
<el-input
type="textarea"
:rows="3"
resize="none"
placeholder="请输入意见"
v-model="commentText">
</el-input>
</div>
</el-collapse-item>
</el-collapse>
</div>
<div class="content" v-show="active === '2'">
<el-table
height="100%"
ref="selection"
:data="histortData"
tooltip-effect="dark"
style="width: 100%"
border
row-key="id"
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}">
<el-table-column
prop="name"
label="任务步骤"
min-width="130"
align="center"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="assignee"
min-width="130"
label="任务受理人"
align="center"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
min-width="130"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
prop="endTime"
label="完成时间"
min-width="130"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? $moment(scope.row.endTime).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
prop="comment"
label="流程信息"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.commentText }}</span>
</template>
</el-table-column>
<el-table-column
prop="completeFlag"
label="状态"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? "已完成" : "未完成" }}</span>
</template>
</el-table-column>
</el-table>
</div>
<ProcessFooter
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
@save="handleSave"
@submit="handleSubmit"
show-back
@back="handleSubmitNo"
approval
submitBTNText="同意"
show-transfer
@transfer="handleTransfer"
>
</ProcessFooter>
<Role-tree
check-box
is-title="转办处理人"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
></Role-tree>
</div>
</template>
<script>
import { Dialog } from 'vant';
import ProcessHeaderPhone from "process/components/ProcessHeaderPhone";
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import { inboundLiaisonDetail, processCreateStand, changeAssigneeNew } from "api/process";
import axios from "axios";
export default {
name: "phoneZczqyjStep8",
data() {
return {
drawerModal: false,
histortData: [],
oldData: [],
data: [],
commentText: "",
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
roleRow: {},
nodeList: [],
type: "",
defaultProps: {
children: "children",
label: "name"
},
treeData: [], //
modalshowflag: false, // drawer
drawerTitle: "", //drawer
textarea: "", //
ListModel: false, //
active: "1", //
isSubmit: false,
saveLoading: false,
form: {
lawsNumber: '', //
lawsName: '', //
endTime: "", //
cname: "", //
fjList: [],
fjListId: '',
},
formRules: {
responUserList: [
{required: true, message: "请选择责任人", trigger: "change"}
]
},
json: {}
};
},
components: {
ProcessHeaderPhone,
ProcessHeader,
ProcessFooter,
ProcessTitle
},
methods: {
handleTransfer() {
this.drawerModal = true
},
checkedRole (data) {
changeAssigneeNew({
taskId: this.$route.query.taskIds, // id
userId:this.$store.getters.userInfo.userId, //
assignee: data[0].id, //
pId: this.$route.query.prcId, //
}).then(res => {
if (res.success) {
this.drawerModal = false
this.$message.success('调整成功')
this.processNum()
this.$router.push({path:'/processCenter?tabsName=ProcessCenter'})
} else {
this.$message.warning(res.message)
}
})
},
//
processNum (row) {
axios.request({
url: '/api/lawss/activiti/getImg?_t=' + new Date().getTime(),
responseType: 'blob',
method: 'get',
params: {
prcNum: this.$route.query.prcNum
}
}).then(res => {
this.processStep = window.URL.createObjectURL(res.data)
})
},
getHistoryData() {
this.$http.get("lawss/activiti/get_list_by_instance", {
prcNum: this.$route.query.prcNum
}, {}, res => {
this.histortData = res;
}, e => {
});
},
upload(row, title) {
var params = {
columnName: {
chapterNumber: "章条编号",
chapterName: "章节名称",
commentText: "修改意见内容(包括理由或依据)",
department: "提出部门",
responUserName: "提出人",
stateText: "处理意见"
},
dataList: []
};
params.dataList = JSON.parse(JSON.stringify(row));
params.dataList.forEach(item => {
if (item.state === "1") {
item.stateText = "上报";
} else if (item.state === "2") {
item.stateText = "处理后上报";
} else {
item.stateText = "不上报";
}
});
this.$http.downloadFile("/api/lawss/activiti/export_excel", params, title, res => {
});
},
stateText(row) {
if (row === "1") {
return "上报";
} else if (row === "2") {
return "处理后上报";
}
},
handleTabs(name) {
this.active = name;
},
handleSave() {
},
handleSubmit() {
if (this.data.length < 1) {
this.$message.warning("请输入征求意见搞");
} else {
this.isSubmit = true;
var json = this.json;
json.actionFlag = 0;
json.commentText = this.commentText;
this.$http.post("lawss/activiti/completeTask", {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success("提交成功");
this.$router.push("/processCenter");
}
this.isSubmit = false;
});
}
},
handleSubmitNo() {
if (this.commentText) {
this.isSubmit = true;
var json = this.json;
json.actionFlag = 1;
json.commentText = this.commentText;
this.$http.post("lawss/activiti/completeTask", {
json: JSON.stringify(json),
taskIds: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success("驳回成功");
this.$router.push("/processCenter");
}
this.isSubmit = false;
});
} else {
this.$message.warning("请输入反馈意见");
}
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
let data = JSON.parse(res.mesg)
this.form.fjList = data.fjList || data.form.fjList
this.form.fjListId = data.fjListId || data.form.fjListId
this.form.lawsNumber = data.lawsNumber || data.form.lawsNumber
this.form.lawsName = data.lawsName || data.form.lawsName
this.form.endTime = data.endTime || data.form.endTime;
this.form.cname = data.cname || data.form.cname;
this.oldData = JSON.parse(JSON.stringify(data.info))
var arr = []
data.info.forEach(item => {
if (item.state != '3') {
arr.push(item)
}
})
this.json = data
this.data = arr
this.oldData = data.oldinfo
}).catch(e => {
});
});
}
},
mounted() {
this.getHistoryData();
this.getData();
}
};
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.phoneZczqyjStep8 {
/deep/.van-dialog__content {
min-height: 300px;
padding: 10px;
}
.prc-content-border {
overflow: auto;
}
/deep/.prc-content-border .el-form-item__content {
width: 270px;
}
.headerTabs {
height: 52px;
display: flex;
align-items: center;
position: absolute;
top: 52px;
right: 10px;
.headerTabsItem {
border: 1px solid #c1c1c1;
padding: 0 5px;
height: 30px;
line-height: 30px;
cursor: pointer;
}
.active {
border: 1px solid #E6A23C;
color: #fff;
background: #E6A23C;
}
}
.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>
@@ -0,0 +1,494 @@
<template>
<div class="phoneZczqyjStep9">
<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 === '2' ? 'active' : ''" @click="handleTabs('2')">审批历史</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="zczqyjForm"
:model="form"
:rules="formRules"
class="label-input-form"
label-width="210px"
>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<div class="prc-content-border">
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="政策编号" prop="lawsNumber" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="form.lawsNumber"
placeholder="请输入政策编号"
clearable
></el-input>
</el-form-item>
<el-form-item label="政策名称" prop="lawsName" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="form.lawsName"
placeholder="请输入政策名称"
clearable
></el-input>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
<ProcessTitle>
<template slot="title">征求意见列表</template>
</ProcessTitle>
<el-table
ref="multipleTable"
:data="data"
tooltip-effect="dark"
border
style="width: 100%; flex: auto;"
class="drag-table"
:default-sort = "{prop: 'chapterNumber', order: 'ascending'}"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="index"
label="序号"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="chapterNumber"
align="center"
sortable
label="章条编号"
width="101px">
</el-table-column>
<el-table-column
prop="chapterName"
align="center"
width="200px"
label="章节名称">
</el-table-column>
<el-table-column
align="center"
prop="commentText"
label="修改意见内容(包括理由或依据)">
<el-table-column
prop="oldText"
align="center"
label="修改前">
</el-table-column>
<el-table-column
prop="newText"
align="center"
label="修改后">
</el-table-column>
<el-table-column
prop="changeReason"
align="center"
label="修改理由">
</el-table-column>
</el-table-column>
<el-table-column
prop="reason"
align="center"
label="原因"
width="200px">
</el-table-column>
<el-table-column
prop="department"
align="center"
label="提出部门">
</el-table-column>
<el-table-column
prop="responUserName"
align="center"
label="提出人">
</el-table-column>
<!-- <el-table-column-->
<!-- prop="dealComment"-->
<!-- align="center"-->
<!-- label="处理意见">-->
<!-- <template slot-scope="scope">-->
<!-- <div>{{ stateText(scope.row.state) }}</div>-->
<!-- </template>-->
<!-- </el-table-column>-->
</el-table>
</div>
<el-collapse accordion>
<el-collapse-item title="审批意见">
<div style="margin: 10px 0;">
<el-input
type="textarea"
:rows="3"
resize="none"
placeholder="请输入意见"
v-model="commentText">
</el-input>
</div>
</el-collapse-item>
</el-collapse>
</div>
<div class="content" v-show="active === '2'">
<el-table
height="100%"
ref="selection"
:data="histortData"
tooltip-effect="dark"
style="width: 100%"
border
row-key="id"
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}">
<el-table-column
prop="name"
label="任务步骤"
align="center"
min-width="130"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
min-width="130"
sortable="custom"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
min-width="130"
sortable="custom"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
prop="endTime"
label="完成时间"
min-width="130"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? $moment(scope.row.endTime).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
prop="comment"
label="流程信息"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.commentText }}</span>
</template>
</el-table-column>
<el-table-column
prop="completeFlag"
label="状态"
align="center">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? "已完成" : "未完成" }}</span>
</template>
</el-table-column>
</el-table>
</div>
<ProcessFooter
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
@save="handleSave"
@submit="handleSubmit"
show-back
@back="handleSubmitNo"
approval
submitBTNText="同意"
show-transfer
@transfer="handleTransfer"
>
</ProcessFooter>
<Role-tree
check-box
is-title="转办处理人"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
></Role-tree>
</div>
</template>
<script>
import { Dialog } from 'vant';
import ProcessHeaderPhone from "process/components/ProcessHeaderPhone";
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import { inboundLiaisonDetail, processCreateStand, changeAssigneeNew } from "api/process";
import axios from "axios";
export default {
name: "phoneZczqyjStep9",
data() {
return {
drawerModal: false,
histortData: [],
oldData: [],
data: [],
commentText: "",
taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId,
roleRow: {},
nodeList: [],
type: "",
defaultProps: {
children: "children",
label: "name"
},
treeData: [], //
modalshowflag: false, // drawer
drawerTitle: "", //drawer
textarea: "", //
ListModel: false, //
active: "1", //
isSubmit: false,
saveLoading: false,
form: {
lawsNumber: '', //
lawsName: '', //
endTime: "", //
cname: "", //
fjList: [],
fjListId: '',
},
formRules: {
responUserList: [
{required: true, message: "请选择责任人", trigger: "change"}
]
},
json: {}
};
},
components: {
ProcessHeaderPhone,
ProcessHeader,
ProcessFooter,
ProcessTitle
},
methods: {
handleTransfer() {
this.drawerModal = true
},
checkedRole (data) {
changeAssigneeNew({
taskId: this.$route.query.taskIds, // id
userId:this.$store.getters.userInfo.userId, //
assignee: data[0].id, //
pId: this.$route.query.prcId, //
}).then(res => {
if (res.success) {
this.drawerModal = false
this.$message.success('调整成功')
this.processNum()
this.$router.push({path:'/processCenter?tabsName=ProcessCenter'})
} else {
this.$message.warning(res.message)
}
})
},
//
processNum (row) {
axios.request({
url: '/api/lawss/activiti/getImg?_t=' + new Date().getTime(),
responseType: 'blob',
method: 'get',
params: {
prcNum: this.$route.query.prcNum
}
}).then(res => {
this.processStep = window.URL.createObjectURL(res.data)
})
},
getHistoryData() {
this.$http.get("lawss/activiti/get_list_by_instance", {
prcNum: this.$route.query.prcNum
}, {}, res => {
this.histortData = res;
}, e => {
});
},
upload(row, title) {
var params = {
columnName: {
chapterNumber: "章条编号",
chapterName: "章节名称",
commentText: "修改意见内容(包括理由或依据)",
department: "提出部门",
responUserName: "提出人",
stateText: "处理意见"
},
dataList: []
};
params.dataList = JSON.parse(JSON.stringify(row));
params.dataList.forEach(item => {
if (item.state === "1") {
item.stateText = "上报";
} else if (item.state === "2") {
item.stateText = "处理后上报";
} else {
item.stateText = "不上报";
}
});
this.$http.downloadFile("/api/lawss/activiti/export_excel", params, title, res => {
});
},
stateText(row) {
if (row === "1") {
return "上报";
} else if (row === "2") {
return "处理后上报";
}
},
handleTabs(name) {
this.active = name;
},
handleSave() {
},
handleSubmit() {
if (this.data.length < 1) {
this.$message.warning("请输入征求意见搞");
} else {
this.isSubmit = true;
var json = this.json;
json.actionFlag = 0;
json.commentText = this.commentText;
this.$http.post("lawss/activiti/completeTask", {
json: JSON.stringify(json),
taskId: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success("提交成功");
this.$router.push("/processCenter");
}
this.isSubmit = false;
});
}
},
handleSubmitNo() {
if (this.commentText) {
this.isSubmit = true;
var json = this.json;
json.actionFlag = 1;
json.commentText = this.commentText;
this.$http.post("lawss/activiti/completeTask", {
json: JSON.stringify(json),
taskIds: this.taskIds,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success("驳回成功");
this.$router.push("/processCenter");
}
this.isSubmit = false;
});
} else {
this.$message.warning("请输入反馈意见");
}
},
getData() {
return new Promise((resolve, reject) => {
inboundLiaisonDetail({
taskIds: this.taskIds,
pId: this.pId
}).then(res => {
let data = JSON.parse(res.mesg)
this.form.fjList = data.fjList || data.form.fjList
this.form.fjListId = data.fjListId || data.form.fjListId
this.form.lawsNumber = data.lawsNumber || data.form.lawsNumber
this.form.lawsName = data.lawsName || data.form.lawsName
this.form.endTime = data.endTime || data.form.endTime;
this.form.cname = data.cname || data.form.cname;
this.oldData = JSON.parse(JSON.stringify(data.info))
var arr = []
data.info.forEach(item => {
if (item.state != '3') {
arr.push(item)
}
})
this.json = data
this.data = arr
this.oldData = data.oldinfo
}).catch(e => {
});
});
}
},
mounted() {
this.getHistoryData();
this.getData();
}
};
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.phoneZczqyjStep9 {
/deep/.van-dialog__content {
min-height: 300px;
padding: 10px;
}
.prc-content-border {
overflow: auto;
}
/deep/.prc-content-border .el-form-item__content {
width: 270px;
}
.headerTabs {
height: 52px;
display: flex;
align-items: center;
position: absolute;
top: 52px;
right: 10px;
.headerTabsItem {
border: 1px solid #c1c1c1;
padding: 0 5px;
height: 30px;
line-height: 30px;
cursor: pointer;
}
.active {
border: 1px solid #E6A23C;
color: #fff;
background: #E6A23C;
}
}
.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>
@@ -980,7 +980,7 @@ export default {
})
} else if (row.taskInfo === '责任人审核') {
this.$router.push({
name: 'bzjdStep4',
name: 'phoneBzjdStep4',
query: {
taskIds: row.taskIds,
prcId: row.prcId,
@@ -1262,7 +1262,8 @@ export default {
});
}).catch(() => {
//
this.selectedList = [];
// console.log(this.selectedList)
// this.selectedList = [];
})
}
},
+60
View File
@@ -2094,6 +2094,66 @@ const routes = [
title: '未符合项整改流程'
}
},
{
path: '/phoneZczqyjStep4',
name: 'phoneZczqyjStep4',
component: () => import('@/pages/processCenter/pages/phone/zczqyj/step4.vue'),
meta: {
isBoolean: true,
requireAuth: true,
title: '政策征求意见流程'
}
},
{
path: '/phoneZczqyjStep5',
name: 'phoneZczqyjStep5',
component: () => import('@/pages/processCenter/pages/phone/zczqyj/step5.vue'),
meta: {
isBoolean: true,
requireAuth: true,
title: '政策征求意见流程'
}
},
{
path: '/phoneZczqyjStep6',
name: 'phoneZczqyjStep6',
component: () => import('@/pages/processCenter/pages/phone/zczqyj/step6.vue'),
meta: {
isBoolean: true,
requireAuth: true,
title: '政策征求意见流程'
}
},
{
path: '/phoneZczqyjStep7',
name: 'phoneZczqyjStep7',
component: () => import('@/pages/processCenter/pages/phone/zczqyj/step7.vue'),
meta: {
isBoolean: true,
requireAuth: true,
title: '政策征求意见流程'
}
},
{
path: '/phoneZczqyjStep8',
name: 'phoneZczqyjStep8',
component: () => import('@/pages/processCenter/pages/phone/zczqyj/step8.vue'),
meta: {
isBoolean: true,
requireAuth: true,
title: '政策征求意见流程'
}
},
{
path: '/phoneZczqyjStep9',
name: 'phoneZczqyjStep9',
component: () => import('@/pages/processCenter/pages/phone/zczqyj/step9.vue'),
meta: {
isBoolean: true,
requireAuth: true,
title: '政策征求意见流程'
}
},
]
},