1276 lines
44 KiB
Vue
1276 lines
44 KiB
Vue
<template>
|
|
<div class="bzjdStep1">
|
|
<!-- 标准征求意见流程-->
|
|
<ProcessHeader toggle>
|
|
<template slot="proName">标准解读流程</template>
|
|
<template slot="proNode">发起流程</template>
|
|
</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>
|
|
<div class="content" v-show="active === '1'">
|
|
<div style="overflow: auto;">
|
|
<el-form
|
|
ref="bzzqyjForm"
|
|
:model="form"
|
|
:rules="formRules"
|
|
class="label-input-form"
|
|
label-width="210px"
|
|
>
|
|
<ProcessTitle>
|
|
<template slot="title">基础信息</template>
|
|
</ProcessTitle>
|
|
<el-collapse-transition>
|
|
<div class="prc-content-border" v-if="foldFormFlag === false">
|
|
<el-row :gutter="24">
|
|
<el-col :span="24">
|
|
<el-form-item label="标准拆分数据" class="add-form-item form-item-disabled">
|
|
<div class="addButton">
|
|
<el-button size="small" type="primary" @click="addZqyjList">导入</el-button>
|
|
</div>
|
|
</el-form-item>
|
|
<el-form-item label="标准号/政策号" prop="itemsNum" class="add-form-item form-item-disabled">
|
|
<el-input
|
|
disabled
|
|
v-model="form.itemsNum"
|
|
placeholder="请输入标准编号"
|
|
clearable
|
|
></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="标准名称/政策名称" prop="itemsName" class="add-form-item form-item-disabled">
|
|
<el-input
|
|
disabled
|
|
v-model="form.itemsName"
|
|
placeholder="请输入标准名称"
|
|
clearable
|
|
></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="对比拆分数据" class="add-form-item form-item-disabled">
|
|
<div class="addButton">
|
|
<el-button size="small" :disabled="!form.itemsNum" type="primary" @click="addDbList">导入</el-button>
|
|
</div>
|
|
</el-form-item>
|
|
<el-form-item label="上一版本标准号/政策号" class="add-form-item form-item-disabled">
|
|
<el-input
|
|
disabled
|
|
v-model="form.itemsNum1"
|
|
clearable
|
|
></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="上一版本标准名称/政策名称" class="add-form-item form-item-disabled">
|
|
<el-input
|
|
disabled
|
|
v-model="form.itemsName1"
|
|
clearable
|
|
></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="截止日期" prop="endTime" class="add-form-item form-item-disabled">
|
|
<el-date-picker
|
|
v-model="form.endTime"
|
|
type="date"
|
|
:picker-options="pickerOptions"
|
|
placeholder="请选择截止日期"
|
|
value-format="yyyy-MM-dd">
|
|
</el-date-picker>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
</div>
|
|
</el-collapse-transition>
|
|
<el-button v-if="foldFormFlag === false" style="width: 100%" icon="el-icon-caret-top" @click="foldForm">隐藏基础信息</el-button>
|
|
<el-button v-if="foldFormFlag === true" style="width: 100%" icon="el-icon-caret-bottom" @click="foldForm">展开基础信息</el-button>
|
|
</el-form>
|
|
</div>
|
|
<ProcessTitle>
|
|
<template slot="title">拆分信息</template>
|
|
</ProcessTitle>
|
|
<div class="action-bar">
|
|
<el-button :disabled="!itemList.length" type="primary" class="common-button-primary add-button" size="mini" @click="PLedit">
|
|
批量编辑
|
|
</el-button>
|
|
</div>
|
|
<el-table border
|
|
ref="filterTable"
|
|
:data="itemList"
|
|
tooltip-effect="dark"
|
|
style="width: 100%;"
|
|
height="100%"
|
|
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',fontWeight: 'bold', height: '48px'}"
|
|
@selection-change="handleSelectionChange"
|
|
row-key="id">
|
|
<el-table-column
|
|
type="selection"
|
|
width="55"
|
|
align="center">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="itemsNum"
|
|
label="条款号"
|
|
fixed
|
|
width="120"
|
|
align="center">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="itemsName"
|
|
width="170"
|
|
fixed
|
|
label="条款名称"
|
|
show-overflow-tooltip
|
|
align="center">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="itermsConditions"
|
|
label="条款内容"
|
|
fixed
|
|
width="200"
|
|
show-overflow-tooltip
|
|
align="center">
|
|
<template slot-scope="scope">
|
|
<el-button size="mini" type="primary" @click="itermsConditionsOpen(scope.row.itermsConditions)" class="common-button-primary">
|
|
查看条款内容
|
|
</el-button>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="newData"
|
|
width="180"
|
|
show-overflow-tooltip
|
|
label="新车型实施日期"
|
|
align="center">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="onlineData"
|
|
width="180"
|
|
show-overflow-tooltip
|
|
label="在产车型实施日期"
|
|
align="center">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="applyArctic"
|
|
width="200"
|
|
label="适用车型"
|
|
show-overflow-tooltip
|
|
align="center">
|
|
<template slot-scope="scope">
|
|
{{ scope.row.applyArctic.toString() }}
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column
|
|
v-if="!form.itemsNum1"
|
|
prop="technicalRequir"
|
|
label="核心技术要求"
|
|
show-overflow-tooltip
|
|
align="center">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="changePoint"
|
|
v-if="form.itemsNum1"
|
|
label="基于上一版本差异"
|
|
show-overflow-tooltip
|
|
align="center">
|
|
</el-table-column>
|
|
<el-table-column
|
|
v-if="sarType === 'FOREIGN' && form.itemsNum1"
|
|
prop="changePoint"
|
|
width="150"
|
|
label="相对于国行标差异点"
|
|
show-overflow-tooltip
|
|
align="center">
|
|
</el-table-column>
|
|
<el-table-column
|
|
label="责任人"
|
|
width="170"
|
|
prop="zrUserName"
|
|
align="center">
|
|
</el-table-column>
|
|
<el-table-column
|
|
label="操作"
|
|
width="240"
|
|
align="center">
|
|
<template slot-scope="scope">
|
|
<el-button class="common-button-primary" size="mini" type="primary" @click="itemEdit(scope.row, 1, scope.$index)">编辑</el-button>
|
|
<el-button v-if="form.itemsNum1" class="common-button-primary" size="mini" type="primary" @click="checkBD(scope.row.itemsId, scope.row.itemsId2, scope.row.itemsNum)">查看比对</el-button>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
<loading :loading="loading">数据获取中</loading>
|
|
<el-collapse accordion>
|
|
<el-collapse-item title="回执说明">
|
|
<div style="margin: 10px 0;">
|
|
<el-input
|
|
type="textarea"
|
|
:rows="3"
|
|
resize="none"
|
|
placeholder="请输入意见"
|
|
v-model="commentText1">
|
|
</el-input>
|
|
</div>
|
|
</el-collapse-item>
|
|
</el-collapse>
|
|
</div>
|
|
<div class="content" v-show="active === '2'">
|
|
<div class="block" style="padding-top: 20px;">
|
|
<el-timeline>
|
|
<el-form
|
|
ref="Form"
|
|
:model="roleForm"
|
|
:rules="roleFormRules"
|
|
class="label-input-form">
|
|
<el-timeline-item timestamp="起草" placement="top" :color="roleForm.applyUserId ? '#66b1ff' : ''">
|
|
<el-card>
|
|
<el-form-item prop="applyUserId" style="margin-bottom: 0">
|
|
<h4>标准法规工程师</h4>
|
|
<div style="margin-top: 10px;width: 300px;">
|
|
<el-input v-model="roleForm.applyUserId" style="display: none;"/>
|
|
<el-input v-model="roleForm.applyUserIdName" placeholder="标准法规工程师" disabled/>
|
|
</div>
|
|
</el-form-item>
|
|
</el-card>
|
|
</el-timeline-item>
|
|
<el-timeline-item timestamp="批准" placement="top" :color="roleForm.deptUserId ? '#66b1ff' : ''">
|
|
<el-card>
|
|
<el-form-item prop="deptUserId" style="margin-bottom: 0">
|
|
<h4>标准法规部高级经理</h4>
|
|
<div style="margin-top: 10px;width: 300px;">
|
|
<el-input v-model="roleForm.deptUserId" style="display: none;"/>
|
|
<el-input
|
|
v-model="roleForm.deptUserIdName"
|
|
placeholder="选择标准法规部高级经理"
|
|
@click.native="choiceZRRS(roleForm.deptUserId, 0, '')"
|
|
/>
|
|
</div>
|
|
</el-form-item>
|
|
</el-card>
|
|
</el-timeline-item>
|
|
</el-form>
|
|
</el-timeline>
|
|
</div>
|
|
</div>
|
|
<ProcessFooter
|
|
show-save
|
|
show-submit
|
|
:submitLoading="isSubmit"
|
|
:saveLoading="saveLoading"
|
|
@save="handleSave"
|
|
@submit="handleSubmit"
|
|
>
|
|
</ProcessFooter>
|
|
<el-drawer
|
|
title="标准拆分数据库"
|
|
:visible.sync="listModel"
|
|
size="900px"
|
|
custom-class="demo-drawer"
|
|
>
|
|
<div class="standardForComments">
|
|
<div class="content">
|
|
<!-- 顶部工具栏 -->
|
|
<table-tools-bar>
|
|
<div slot="left">
|
|
<div class="search-area">
|
|
<el-form :model="standCommonlySearch" inline class="label-input-form">
|
|
<el-formItem label="标准号/名称" class="search-item">
|
|
<el-input v-model="standCommonlySearch.numOrName" class="s-c-input" placeholder="请输入标准号/名称" clearable :maxlength="100"></el-input>
|
|
</el-formItem>
|
|
<el-formItem class="search-item btn-box">
|
|
<el-button
|
|
type="primary"
|
|
size="mini"
|
|
class="common-button-primary"
|
|
|
|
@click="sarStandCompareHisInfo">查询
|
|
</el-button>
|
|
<el-button
|
|
class="common-button-default"
|
|
size="mini"
|
|
@click="clearSearchStand">清空
|
|
</el-button>
|
|
</el-formItem>
|
|
</el-form>
|
|
</div>
|
|
</div>
|
|
</table-tools-bar>
|
|
<div class="table-wrap">
|
|
<div style="position: absolute;height: calc(100% - 10px);width: 100%;">
|
|
<el-table
|
|
ref="selection"
|
|
:data="standInfoList"
|
|
tooltip-effect="dark"
|
|
style="width: 100%;padding:0 0 20px 0;"
|
|
height="100%"
|
|
border
|
|
@selection-change="handleSelection"
|
|
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}">
|
|
<el-table-column type="selection" width="55" align="center"/>
|
|
<el-table-column
|
|
prop="showNumber"
|
|
label="标准号/政策号"
|
|
width="170"
|
|
align="center">
|
|
<!-- <template slot-scope="scope">-->
|
|
<!-- <div @click="showUser(scope.row)" class="table-jump">{{ scope.row.showNumber }}</div>-->
|
|
<!-- </template>-->
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="standName"
|
|
label="标准名称/政策名称"
|
|
show-overflow-tooltip
|
|
align="center">
|
|
<!-- <template slot-scope="scope">-->
|
|
<!-- <span @click="showUser(scope.row)" class="table-jump">{{ scope.row.standName }}</span>-->
|
|
<!-- </template>-->
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="fileTypeShow"
|
|
label="文本状态"
|
|
align="center">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="fileName"
|
|
label="文件名称"
|
|
show-overflow-tooltip
|
|
align="center">
|
|
</el-table-column>
|
|
</el-table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<pagination :page="standCommonlySearch.page" :total="total" @pageChange="pageChange" @pageSizeChange="pageSizeChange"></pagination>
|
|
<loading :loading="spinShow">数据加载中……</loading>
|
|
<div class="demo-drawer-footer">
|
|
<el-button size="mini" @click="closeDrawer">取消</el-button>
|
|
<el-button type="primary" size="mini" @click="enterDrawer">导入</el-button>
|
|
</div>
|
|
</div>
|
|
</el-drawer>
|
|
<el-dialog
|
|
title="查看条款内容"
|
|
:visible.sync="itermsConditionsFlag"
|
|
size="800px">
|
|
<div class="itemsTextBox" v-html="itermsConditionsTitle"></div>
|
|
<div slot="footer">
|
|
<el-button class="common-button-default" size="mini" icon="el-icon-close" @click="itermsConditionsClose">关闭
|
|
</el-button>
|
|
</div>
|
|
</el-dialog>
|
|
<Role-tree
|
|
check-box
|
|
:is-title="drawerTitle"
|
|
:is-visible.sync="modalshowflag"
|
|
@checkedRole="saveUserInfo"
|
|
:nodeList="nodeList"
|
|
></Role-tree>
|
|
<el-drawer
|
|
title="对比拆分数据库"
|
|
:visible.sync="listModel3"
|
|
size="900px"
|
|
custom-class="demo-drawer"
|
|
>
|
|
<div class="standardForComments">
|
|
<div class="content content2">
|
|
<div class="table-wrap">
|
|
<div style="position: absolute;height: calc(100% - 10px);width: 100%;">
|
|
<el-table
|
|
ref="selection"
|
|
:data="standInfoList3"
|
|
tooltip-effect="dark"
|
|
style="width: 100%;padding:0 0 20px 0;"
|
|
height="100%"
|
|
border
|
|
@selection-change="handleSelection3"
|
|
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}">
|
|
<el-table-column type="selection" width="55" align="center"/>
|
|
<el-table-column
|
|
prop="oldStandNum"
|
|
label="标准号/政策号"
|
|
width="170"
|
|
align="center">
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="oldStandName"
|
|
label="标准名称/政策名称"
|
|
show-overflow-tooltip
|
|
align="center">
|
|
</el-table-column>
|
|
</el-table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<loading :loading="spinShow3">数据加载中……</loading>
|
|
<div class="demo-drawer-footer">
|
|
<el-button size="mini" @click="closeDrawer3">取消</el-button>
|
|
<el-button type="primary" size="mini" @click="enterDrawer3">导入</el-button>
|
|
</div>
|
|
</div>
|
|
</el-drawer>
|
|
<el-drawer
|
|
:title="PLmodalTitle"
|
|
:visible.sync="PLmodalshowflag"
|
|
:wrapperClosable="false"
|
|
:size="PLmodalType === 1 && form.itemsNum1 ? '1200px' : '800px'">
|
|
<div class="demo-drawer-content">
|
|
<div style="display: flex; height: 100%;">
|
|
<div style="width: 600px; border-right: 1px solid #ccc;" v-if="form.itemsNum1 && PLmodalType === 1 ">
|
|
<div v-if="BDtext" style="width: 100%; height: 100%;display: flex;">
|
|
<div v-if="itermsConditions" v-html="itermsConditions" class="itemsTextBox" style="margin: 5px; padding: 5px; width: 100%; overflow: auto;"></div>
|
|
<div v-else style="margin: 5px; padding: 5px; width: 100%; overflow: auto;">无内容</div>
|
|
</div>
|
|
<div v-else style="height: 100%;">
|
|
<div style="margin: 10px 5px;">比对条款: {{ plForm.itemsNum }}</div>
|
|
<div style="margin: 10px 5px 5px;">相似度: {{ similarityDegree }}</div>
|
|
<div style="overflow: auto;display: flex;" class="BDclass">
|
|
<div v-html="leftData" style="margin: 5px; border: 1px solid #ccc; border-radius: 5px; padding: 5px; width: 50%; overflow: auto;"></div>
|
|
<div v-html="rightData" style="margin: 5px; border: 1px solid #ccc; border-radius: 5px; padding: 5px; width: 50%; overflow: auto;"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div style="width: 600px; border-right: 1px solid #ccc;" v-if="!form.itemsNum1 && PLmodalType === 1 ">
|
|
<div v-if="itermsConditions" v-html="itermsConditions" class="itemsTextBox" style="margin: 5px; padding: 5px; width: 100%; overflow: auto;"></div>
|
|
<div v-else style="margin: 5px; padding: 5px; width: 100%; overflow: auto;">无内容</div>
|
|
</div>
|
|
<el-form :model="plForm" class="label-input-form" ref="plForm" label-width=150 :style="PLmodalType === 2 ? 'width: 100%;' : ''">
|
|
<el-form-item label="核心技术要求" prop="technicalRequir" class="add-form-item" v-if="!form.itemsNum1">
|
|
<el-input
|
|
type="textarea"
|
|
v-model="plForm.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
|
|
type="textarea"
|
|
v-model="plForm.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
|
|
type="textarea"
|
|
v-model="plForm.changePoint"
|
|
placeholder="请输入上一版本差异点"
|
|
maxlength="500"
|
|
></el-input>
|
|
</el-form-item>
|
|
<custom-date-pick-group
|
|
class="myDataPick"
|
|
:config="{attrName: '新车型实施日期'}"
|
|
v-model="plForm.newData"
|
|
></custom-date-pick-group>
|
|
<custom-date-pick-group
|
|
class="myDataPick"
|
|
:config="{attrName: '在产车实施日期'}"
|
|
v-model="plForm.onlineData"
|
|
></custom-date-pick-group>
|
|
<el-form-item label="适用车型" prop="applyArctic" class="add-form-item" >
|
|
<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>
|
|
<el-form-item label="责任人" prop="zrUserId" class="add-form-item">
|
|
<el-input
|
|
style="display: none;"
|
|
v-model="plForm.zrUserId"
|
|
></el-input>
|
|
<el-input
|
|
@click.native="choiceZRRS(plForm.zrUserId, PLmodalType, PLmodalIndex)"
|
|
placeholder="请选择责任人"
|
|
v-model="plForm.zrUserName"
|
|
></el-input>
|
|
</el-form-item>
|
|
</el-form>
|
|
</div>
|
|
</div>
|
|
<div id="roleFormButton2" 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="BDmodel"
|
|
size="1100px">
|
|
<div>比对条款: {{ itemsNum }}</div>
|
|
<div>相似度: {{ similarityDegree }}</div>
|
|
<div style="height: 600px;overflow: auto;display: flex;">
|
|
<div v-html="leftData" style="margin: 5px; border: 1px solid #ccc; border-radius: 5px; padding: 5px; width: 50%; overflow: auto;"></div>
|
|
<div v-html="rightData" style="margin: 5px; border: 1px solid #ccc; border-radius: 5px; padding: 5px; width: 50%; overflow: auto;"></div>
|
|
</div>
|
|
</el-dialog>
|
|
</div>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
import CustomDatePickGroup from '@/components/CustomFormComponents/DatePickerGroup'
|
|
import ProcessHeader from '../../components/ProcessHeader'
|
|
import ProcessFooter from '../../components/ProcessFooter'
|
|
import ProcessTitle from '../../components/ProcessTitle'
|
|
import {saveTaskFirst, taskDel} from 'api/process'
|
|
|
|
export default {
|
|
name: "bzjdStep1",
|
|
data() {
|
|
return {
|
|
itermsConditions: '',
|
|
commentText1: '',
|
|
itemsNum: '',
|
|
BDtext: false,
|
|
pickerOptions: {
|
|
disabledDate(time) {
|
|
return time.getTime() < Date.now() - 8.64e7;//如果没有后面的-8.64e7就是不可以选择今天的
|
|
}
|
|
},
|
|
similarityDegree: '',
|
|
leftData: [],
|
|
rightData: [],
|
|
BDmodel: false,
|
|
PLmodalType: '',
|
|
PLmodalIndex: '',
|
|
PLmodalshowflag: false,
|
|
PLmodalTitle: '',
|
|
plForm: {
|
|
itemsNum: '',
|
|
itemsId: '',
|
|
itemsId2: '',
|
|
technicalRequir: '',
|
|
changePoint: '',
|
|
newData: '',
|
|
onlineData: '',
|
|
applyArctic: [],
|
|
zrUserId: '',
|
|
zrUserName: '',
|
|
},
|
|
cxList: [],
|
|
bpnId: '',
|
|
listModel3: false,
|
|
standInfoList3: [],
|
|
spinShow3: false,
|
|
selectedList3: [],
|
|
//折叠的标志,true为折叠,false为不折叠
|
|
foldFormFlag: false,
|
|
itermsConditionsFlag: false,
|
|
itermsConditionsTitle: '',
|
|
textStatusMap: {},
|
|
sarType: '',
|
|
loading: false,
|
|
standId: '',
|
|
statusId: '',
|
|
commentText: '',
|
|
textarea: '', // 意见
|
|
title: '', // 新增抽屉标题
|
|
listModel: false, // 新增抽屉开关
|
|
active: '1', // 默认显示
|
|
isSubmit: false,
|
|
saveLoading: false,
|
|
// 基础信息form表单
|
|
form: {
|
|
id: '',
|
|
itemsNum: '',
|
|
itemsName: '',
|
|
endTime: '',
|
|
standId: '',
|
|
statusId: '',
|
|
itemsNum1: '',
|
|
itemsName1: '',
|
|
oldNumber: '',
|
|
fileType: '',
|
|
},
|
|
formRules: {
|
|
itemsNum: [
|
|
{required: true, message: '请输入标准号/政策号', trigger: 'change'},
|
|
],
|
|
itemsName: [
|
|
{required: true, message: '请输入标准名称/政策名称', trigger: 'change'},
|
|
],
|
|
endTime: [
|
|
{required: true, message: '请输入截止时间', trigger: 'change'},
|
|
],
|
|
},
|
|
// 标准征求意见数据可库
|
|
standCommonlySearch: {
|
|
numOrName: '',
|
|
page: 1,
|
|
pageSize: this.$store.getters.userInfo.configContent,
|
|
result: '1',
|
|
},
|
|
standCommonlySearch2: {
|
|
page: 1,
|
|
pageSize: this.$store.getters.userInfo.configContent,
|
|
userId: this.$store.getters.userInfo.userId,
|
|
standType: 'INLAND'
|
|
},
|
|
spinShow: false,
|
|
standInfoList: [],
|
|
tableHeight: null,
|
|
total: 0,
|
|
total2: 0,
|
|
selectedList: [],
|
|
data: [],
|
|
roleForm: {
|
|
applyUserIdName: this.$store.getters.userInfo.userName,
|
|
applyUserId: this.$store.getters.userInfo.userId,
|
|
deptUserId: '',
|
|
deptUserIdName: ''
|
|
},
|
|
roleFormRules: {
|
|
zrUserId: [
|
|
{required: true, message: '请选择责任部门对接人', trigger: 'change'},
|
|
],
|
|
deptUserId: [
|
|
{required: true, message: '请选择标准法规部部长', trigger: 'change'},
|
|
],
|
|
},
|
|
treeData: [],
|
|
nodeList: [],
|
|
nodeList2: [],
|
|
type: '',
|
|
drawerTitle: '',
|
|
modalshowflag: false,
|
|
modalshowflag2: false,
|
|
defaultProps: {
|
|
children: 'children',
|
|
label: 'name'
|
|
},
|
|
roleRow: {},
|
|
itemList: [],
|
|
itemListOld: [],
|
|
zrType: '',
|
|
zrIndex: '',
|
|
zrIdList: []
|
|
}
|
|
},
|
|
components: {
|
|
CustomDatePickGroup,
|
|
ProcessHeader,
|
|
ProcessFooter,
|
|
ProcessTitle
|
|
},
|
|
methods: {
|
|
handleResize() {
|
|
this.$nextTick(()=> {
|
|
this.$refs.filterTable.doLayout();
|
|
});
|
|
},
|
|
PLedit () {
|
|
if (this.zrIdList.length > 0) {
|
|
this.PLmodalType = 2
|
|
this.PLmodalTitle = '批量编辑'
|
|
this.plForm = {
|
|
technicalRequir: '',
|
|
changePoint: '',
|
|
newData: '',
|
|
onlineData: '',
|
|
applyArctic: [],
|
|
zrUserId: '',
|
|
zrUserName: '',
|
|
}
|
|
this.PLmodalshowflag = true
|
|
} else {
|
|
this.$message.warning('请选择要编辑的数据')
|
|
}
|
|
},
|
|
getBDList () {
|
|
this.$http.get('lawss/sarStandItemsCompareHis/getStandItemsCompareHisList', {
|
|
standHisId: this.form.oldNumber,
|
|
leftOrRight: 'RIGHT'
|
|
}, {
|
|
_this: this
|
|
}, res => {
|
|
for (let a = 0; a < this.itemList.length; a++) {
|
|
for (let b = 0; b < res.data.length; b++) {
|
|
if (this.itemList[a].itemsNum === res.data[b].itemsNum) {
|
|
this.itemList[a].itemsId = res.data[b].itemsId
|
|
this.itemList[a].targetStand = res.data[b].targetStand
|
|
}
|
|
}
|
|
}
|
|
this.$http.get('lawss/sarStandItemsCompareHis/getStandItemsCompareHisList', {
|
|
standHisId: this.form.oldNumber,
|
|
leftOrRight: 'LEFT'
|
|
}, {
|
|
_this: this
|
|
}, res => {
|
|
for (let a = 0; a < this.itemList.length; a++) {
|
|
for (let b = 0; b < res.data.length; b++) {
|
|
if (this.itemList[a].targetStand === res.data[b].itemsDisplayNum) {
|
|
this.itemList[a].itemsId2 = res.data[b].itemsId
|
|
}
|
|
}
|
|
}
|
|
}, e => {
|
|
})
|
|
}, e => {
|
|
})
|
|
},
|
|
checkBD (id,id2, itemsNum) {
|
|
let itemsEoPage = {
|
|
oldItemId: id,
|
|
newItemId: id2,
|
|
flag: 1
|
|
}
|
|
if (!id || !id2) {
|
|
this.$message.warning('暂无找到相似的文本')
|
|
return
|
|
}
|
|
this.$http.post('lawss/sarStandCompareHis/clauseComparison', itemsEoPage, {
|
|
_this: this
|
|
}, res => {
|
|
if (res.data.leftString === '' && res.data.rightString === '') {
|
|
this.$message.warning('暂无找到相似的文本')
|
|
} else {
|
|
this.itemsNum = itemsNum
|
|
this.leftData = res.data.leftString
|
|
this.rightData = res.data.rightString
|
|
this.BDmodel = true
|
|
this.similarityDegree = res.data.similarityDegree
|
|
}
|
|
})
|
|
},
|
|
itemEdit (row, type, index) {
|
|
this.itermsConditions = row.itermsConditions.replace(/''/g, '\'')
|
|
let itemsEoPage = {
|
|
oldItemId: row.itemsId,
|
|
newItemId: row.itemsId2,
|
|
flag: 1
|
|
}
|
|
this.$http.post('lawss/sarStandCompareHis/clauseComparison', itemsEoPage, {
|
|
_this: this
|
|
}, res => {
|
|
this.PLmodalType = type
|
|
this.PLmodalIndex = index
|
|
this.PLmodalTitle = '编辑'
|
|
if (res.data.leftString === '' && res.data.rightString === '') {
|
|
this.BDtext = true
|
|
} else if (!row.itemsId || !row.itemsId2) {
|
|
this.BDtext = true
|
|
} else {
|
|
this.BDtext = false
|
|
this.leftData = res.data.leftString
|
|
this.rightData = res.data.rightString
|
|
this.similarityDegree = res.data.similarityDegree
|
|
}
|
|
this.plForm = {
|
|
itemsNum: row.itemsNum,
|
|
technicalRequir: row.technicalRequir,
|
|
changePoint: row.changePoint,
|
|
newData: row.newData,
|
|
onlineData: row.onlineData,
|
|
applyArctic: row.applyArctic,
|
|
zrUserId: row.zrUserId,
|
|
zrUserName: row.zrUserName,
|
|
itemsId: row.itemsId,
|
|
itemsId2: row.itemsId2
|
|
}
|
|
this.PLmodalshowflag = true
|
|
})
|
|
},
|
|
saveUserInfo2 () {
|
|
if (this.PLmodalType === 1) {
|
|
const row = JSON.parse(JSON.stringify(this.itemList[this.PLmodalIndex]))
|
|
row.technicalRequir = this.plForm.technicalRequir
|
|
row.changePoint = this.plForm.changePoint
|
|
row.newData = this.plForm.newData
|
|
row.onlineData = this.plForm.onlineData
|
|
row.applyArctic = this.plForm.applyArctic
|
|
row.zrUserId = this.plForm.zrUserId
|
|
row.zrUserName = this.plForm.zrUserName
|
|
this.$set(this.itemList, this.PLmodalIndex, row)
|
|
} else {
|
|
for (let a = 0; a < this.itemList.length; a++) {
|
|
for (let b = 0; b < this.zrIdList.length; b++) {
|
|
if (this.itemList[a].id === this.zrIdList[b]) {
|
|
this.itemList[a].technicalRequir = this.plForm.technicalRequir
|
|
this.itemList[a].changePoint = this.plForm.changePoint
|
|
this.itemList[a].newData = this.plForm.newData
|
|
this.itemList[a].onlineData = this.plForm.onlineData
|
|
this.itemList[a].applyArctic = this.plForm.applyArctic
|
|
this.itemList[a].zrUserId = this.plForm.zrUserId
|
|
this.itemList[a].zrUserName = this.plForm.zrUserName
|
|
}
|
|
}
|
|
}
|
|
}
|
|
this.PLmodalshowflag = false
|
|
},
|
|
cancleUserInfo2 () {
|
|
this.plForm = {
|
|
technicalRequir: '',
|
|
changePoint: '',
|
|
newData: '',
|
|
onlineData: '',
|
|
applyArctic: [],
|
|
zrUserId: '',
|
|
zrUserName: '',
|
|
itemsId: '',
|
|
itemsId2: ''
|
|
}
|
|
this.PLmodalshowflag = false
|
|
},
|
|
handleSelection3 (data) {
|
|
this.selectedList3 = [];
|
|
for (let i = 0; i < data.length; i++) {
|
|
this.selectedList3.push(data[i].id);
|
|
}
|
|
},
|
|
getDbList () {
|
|
this.$http.get('lawss/sarStandCompareHis/page', {
|
|
page: 1,
|
|
pageSize: 9999,
|
|
newNumOrName: this.form.itemsNum,
|
|
newFileType: this.form.fileType,
|
|
}, {
|
|
_this: this
|
|
}, res => {
|
|
this.standInfoList3 = res.data.list
|
|
}, e => {
|
|
})
|
|
},
|
|
addDbList () {
|
|
this.listModel3 = true
|
|
},
|
|
closeDrawer3 () {
|
|
this.listModel3 = false
|
|
},
|
|
enterDrawer3 () {
|
|
if (this.selectedList3.length === 1) {
|
|
let deposit = new Map();
|
|
this.standInfoList3.forEach(item => {
|
|
deposit.set(item.id, item);
|
|
});
|
|
let bringData = [];
|
|
for (let i = 0; i < this.selectedList3.length; i++) {
|
|
bringData.push(deposit.get(this.selectedList3[i]));
|
|
}
|
|
this.form.itemsNum1 = bringData[0].oldStandNum
|
|
this.form.itemsName1 = bringData[0].oldStandName
|
|
this.form.oldNumber = bringData[0].id
|
|
this.listModel3 = false
|
|
this.getBDList()
|
|
} else if (this.selectedList3.length > 1) {
|
|
this.$message.warning("只能选择一条数据进行导入");
|
|
} else {
|
|
this.$message.warning("请选择一条数据进行导入");
|
|
}
|
|
},
|
|
//折叠/展开基础信息方法
|
|
foldForm() {
|
|
this.foldFormFlag = !this.foldFormFlag
|
|
},
|
|
itermsConditionsClose() {
|
|
this.itermsConditionsFlag = false
|
|
},
|
|
itermsConditionsOpen(row) {
|
|
this.itermsConditionsFlag = true
|
|
this.itermsConditionsTitle = row.replace(/''/g, '\'')
|
|
},
|
|
showUser(row) {
|
|
let routeUrl = this.$router.resolve({
|
|
name: 'ItemSplitInfo',
|
|
query: {
|
|
infoId: row.id,
|
|
result: row.result,
|
|
}
|
|
})
|
|
window.open(routeUrl.href, '_blank')
|
|
},
|
|
setMap(data) {
|
|
data.forEach(item => {
|
|
this.$set(this.textStatusMap, item.value, item.label)
|
|
})
|
|
},
|
|
formatIssueDate(str) {
|
|
const momentDate = this.$moment(str)
|
|
if (momentDate.isValid()) {
|
|
return this.$moment(str).format('YYYY-MM-DD')
|
|
} else {
|
|
return str
|
|
}
|
|
},
|
|
addZqyjList() {
|
|
this.title = '标准拆分数据库'
|
|
this.listModel = true
|
|
},
|
|
/** 标准征求意见库方法*
|
|
* **********************************************/
|
|
// 清空
|
|
clearSearchStand() {
|
|
this.standCommonlySearch.page = 1
|
|
this.standCommonlySearch.numOrName = ''
|
|
this.sarStandCompareHis()
|
|
},
|
|
// 搜索
|
|
sarStandCompareHisInfo() {
|
|
this.standCommonlySearch.page = 1
|
|
this.sarStandCompareHis()
|
|
},
|
|
// 查询表格
|
|
sarStandCompareHis() {
|
|
this.spinShow = true
|
|
var form = this.standCommonlySearch
|
|
this.$http.get('lawss/sarFileSplitInfo/getSarFileSplitInfoEOPage', form, {
|
|
_this: this
|
|
}, res => {
|
|
this.standInfoList = res.data.list
|
|
this.total = res.data.count
|
|
this.spinShow = false
|
|
}, e => {
|
|
})
|
|
},
|
|
pageChange(page) {
|
|
this.standCommonlySearch.page = page
|
|
this.sarStandCompareHis()
|
|
},
|
|
// 分页每页显示数改变后方法
|
|
pageSizeChange(pageSize) {
|
|
this.$store.getters.userInfo.configContent = pageSize
|
|
this.standCommonlySearch.pageSize = pageSize
|
|
this.sarStandCompareHis()
|
|
},
|
|
/** 选择导入数据的方法操作
|
|
* */
|
|
handleSelection(data) {
|
|
this.selectedList = [];
|
|
for (let i = 0; i < data.length; i++) {
|
|
this.selectedList.push(data[i].id);
|
|
}
|
|
},
|
|
closeDrawer() {
|
|
this.listModel = false
|
|
},
|
|
enterDrawer() {
|
|
if (this.selectedList.length === 1) {
|
|
this.loading = true
|
|
let deposit = new Map();
|
|
this.standInfoList.forEach(item => {
|
|
deposit.set(item.id, item);
|
|
});
|
|
let bringData = [];
|
|
for (let i = 0; i < this.selectedList.length; i++) {
|
|
bringData.push(deposit.get(this.selectedList[i]));
|
|
}
|
|
this.form.itemsNum = bringData[0].showNumber
|
|
this.form.itemsName = bringData[0].standName
|
|
this.form.standId = bringData[0].standId
|
|
this.sarType = bringData[0].standType
|
|
this.standId = bringData[0].standId
|
|
this.statusId = bringData[0].id
|
|
this.form.statusId = bringData[0].id
|
|
this.form.fileType = bringData[0].fileType
|
|
this.listModel = false;
|
|
this.getDbList()
|
|
this.$http.get('lawss/sarFileSplitItems/getSplitItemsByPage', {
|
|
infoId: bringData[0].id,
|
|
page: 1,
|
|
pageSize: 9999
|
|
}, {
|
|
_this: this
|
|
}, res => {
|
|
if (res.ok) {
|
|
this.listModel3 = true
|
|
res.data.list.forEach(item => {
|
|
item.zrUserId = ''
|
|
item.zrUserIdName = ''
|
|
})
|
|
this.itemList = res.data.list.filter(item =>{
|
|
return item.workFlowShow === '1'
|
|
})
|
|
this.itemList.map(item => {
|
|
item.technicalRequir = ''
|
|
item.changePoint = ''
|
|
item.newData = ''
|
|
item.onlineData = ''
|
|
item.applyArctic = []
|
|
})
|
|
this.itemListOld = res.data.list.filter(item =>{
|
|
return item.workFlowShow === '0'
|
|
})
|
|
}
|
|
this.loading = false
|
|
})
|
|
} else if (this.selectedList.length > 1) {
|
|
this.$message.warning("只能选择一条数据进行导入");
|
|
} else {
|
|
this.$message.warning("请选择一条数据进行导入");
|
|
}
|
|
},
|
|
/*** **********************************************/
|
|
/** 流程节点负责人的选择 *****************************/
|
|
saveUserInfo(data) {
|
|
if (this.type === 0) {
|
|
this.roleForm.deptUserId = data[0].id
|
|
this.roleForm.deptUserIdName = data[0].name
|
|
} else {
|
|
this.plForm.zrUserId = data[0].id
|
|
this.plForm.zrUserName = data[0].name
|
|
}
|
|
this.modalshowflag = false
|
|
},
|
|
choiceZRRS(row, type, index) {
|
|
this.type = type
|
|
if (type === 0) {
|
|
this.nodeList = []
|
|
this.nodeList.push(row)
|
|
this.drawerTitle = '选择标准法规部高级经理'
|
|
this.modalshowflag = true
|
|
} else {
|
|
this.drawerTitle = '选择责任人'
|
|
this.nodeList = []
|
|
this.zrIndex = index
|
|
this.zrType = type
|
|
this.nodeList.push(row)
|
|
this.modalshowflag = true
|
|
}
|
|
},
|
|
handleSelectionChange(val) {
|
|
this.zrIdList = []
|
|
val.forEach(item => {
|
|
this.zrIdList.push(item.id)
|
|
})
|
|
},
|
|
handleTabs(name) {
|
|
this.active = name
|
|
},
|
|
handleSave() {
|
|
this.saveLoading = true
|
|
let _formData = new FormData()
|
|
_formData.append('id', this.bpnId || '')
|
|
_formData.append('createUser', this.$store.getters.userInfo.userId)
|
|
_formData.append('createUserName', this.$store.getters.userInfo.userName)
|
|
_formData.append('prcType', '9')
|
|
_formData.append('json', JSON.stringify({
|
|
form: this.form,
|
|
roleForm: this.roleForm,
|
|
commentText1: this.commentText1,
|
|
itemList: this.itemList,
|
|
sarType: this.sarType
|
|
}))
|
|
saveTaskFirst(_formData).then(res => {
|
|
this.saveLoading = false
|
|
this.$message.success('保存成功')
|
|
this.bpnId = res.result
|
|
}).catch(e => {
|
|
this.saveLoading = false
|
|
})
|
|
},
|
|
handleSubmit() {
|
|
this.$refs['bzzqyjForm'].validate((valid) => {
|
|
if (valid) {
|
|
this.$refs['Form'].validate((valid) => {
|
|
if (valid) {
|
|
let num1 = 0, num2 = 0, num4 = 0, num5 = 0, num6 = 0, b = 0
|
|
for (let a = 0; a < this.itemList.length; a++) {
|
|
if (!this.itemList[a].technicalRequir) {
|
|
num1++
|
|
}
|
|
if (!this.itemList[a].changePoint) {
|
|
num2++
|
|
}
|
|
if (!this.itemList[a].newData) {
|
|
num4++
|
|
}
|
|
if (!this.itemList[a].onlineData) {
|
|
num5++
|
|
}
|
|
if (!this.itemList[a].applyArctic.length) {
|
|
num6++
|
|
}
|
|
if (!this.itemList[a].zrUserId) {
|
|
b++
|
|
}
|
|
}
|
|
if (!this.form.itemsNum1) {
|
|
if (num1 > 0) {
|
|
this.$message.warning('请输入核心技术要求')
|
|
return
|
|
}
|
|
} else {
|
|
if (num2 > 0) {
|
|
if (this.sarType !== 'INLAND') {
|
|
this.$message.warning('请输入国内标准的差异点')
|
|
return
|
|
} else {
|
|
this.$message.warning('请输入基于上一版本差异')
|
|
return
|
|
}
|
|
}
|
|
}
|
|
// if (num4 > 0) {
|
|
// this.$message.warning('请输入新车型实施日期')
|
|
// } else if (num5 > 0) {
|
|
// this.$message.warning('请输入在产车实施日期')
|
|
// } else
|
|
if (num6 > 0) {
|
|
this.$message.warning('请选择适用车型')
|
|
} else if (b > 0) {
|
|
this.$message.warning('请选择责任人')
|
|
} else {
|
|
this.isSubmit = true
|
|
this.$http.post('lawss/activiti/startProcessRollBack', {
|
|
id: this.bpnId || '',
|
|
createUser: this.$store.getters.userInfo.userId,
|
|
createUserName: this.$store.getters.userInfo.userName,
|
|
type: '9',
|
|
json: JSON.stringify({
|
|
form: this.form,
|
|
roleForm: this.roleForm,
|
|
commentText1: this.commentText1,
|
|
itemList: this.itemList,
|
|
sarType: this.sarType
|
|
})
|
|
}, {}, res => {
|
|
if (res.ok) {
|
|
var json = Object.assign(this.form, this.roleForm)
|
|
json.commentText = this.commentText1
|
|
json.standInData = this.sarType
|
|
json.itemList = this.itemList
|
|
json.itemListOld = this.itemListOld
|
|
this.$http.post('lawss/activiti/completeTask', {
|
|
json: JSON.stringify(json),
|
|
taskId: res.data,
|
|
userId: this.$store.getters.userInfo.userId
|
|
}, {}, res => {
|
|
if (res.success) {
|
|
this.$message.success('流程发起成功')
|
|
if (this.bpnId !== '') {
|
|
let taskId = {
|
|
id: this.bpnId
|
|
}
|
|
taskDel(taskId).then(res=>{
|
|
return res
|
|
})
|
|
}
|
|
this.$router.push('/processCenter')
|
|
}
|
|
})
|
|
} else {
|
|
this.$message.warning('流程启动失败')
|
|
this.isSubmit = false
|
|
}
|
|
})
|
|
}
|
|
} else {
|
|
return this.$message.warning('请完善人员信息')
|
|
}
|
|
})
|
|
} else {
|
|
return this.$message.warning('请完善基础信息')
|
|
}
|
|
})
|
|
}
|
|
},
|
|
mounted() {
|
|
window.addEventListener('resize', this.handleResize);
|
|
this.$http.get('sys/dictype/getDicTypeListCode', '', {
|
|
_this: this
|
|
}, res => {
|
|
this.cxList = res.data.ENERGYTYPES // 适用车型
|
|
this.cxList.forEach(item => {
|
|
item.value = item.label
|
|
})
|
|
})
|
|
|
|
this.sarStandCompareHis()
|
|
this.tableHeight = $('.content').height() - 44
|
|
window.onresize = () => {
|
|
this.tableHeight = $('.content').height() - 44
|
|
}
|
|
},
|
|
}
|
|
</script>
|
|
|
|
<style lang="less" scoped>
|
|
@import '~@/assets/styles/style';
|
|
@import '~@/assets/styles/mixins';
|
|
|
|
.bzjdStep1 {
|
|
/deep/ .el-drawer__container {
|
|
.prc-content-border {
|
|
border: none;
|
|
padding: 0 20px 0;
|
|
}
|
|
}
|
|
|
|
position: relative;
|
|
height: 100%;
|
|
.BDclass {
|
|
height: calc(~'100% - 53px');
|
|
}
|
|
.headerTabs {
|
|
height: 52px;
|
|
display: flex;
|
|
align-items: center;
|
|
position: absolute;
|
|
top: 0;
|
|
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 {
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: space-between;
|
|
height: calc(~'100% - 107px');
|
|
overflow: auto;
|
|
}
|
|
.content2 {
|
|
height: calc(~'100% - 57px') !important;
|
|
}
|
|
|
|
.standardForComments {
|
|
height: 100%;
|
|
background: #fff;
|
|
|
|
.el-divider--horizontal {
|
|
display: block;
|
|
height: 1px;
|
|
width: 100%;
|
|
margin: 0;
|
|
}
|
|
|
|
flex-direction: column;
|
|
|
|
.action-bar {
|
|
margin-bottom: 5px;
|
|
padding: 0;
|
|
}
|
|
|
|
.content {
|
|
flex: auto;
|
|
overflow: hidden;
|
|
display: flex;
|
|
flex-direction: column;
|
|
|
|
.table-wrap {
|
|
flex: auto;
|
|
overflow: hidden;
|
|
position: relative;
|
|
}
|
|
}
|
|
|
|
& > .pagination {
|
|
position: static;
|
|
|
|
/deep/ .pagination-slot {
|
|
padding: 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</style>
|
|
|