1769 lines
89 KiB
Vue
1769 lines
89 KiB
Vue
<template>
|
||
<div id="enterpriseStandardPlan">
|
||
<div class="search-area">
|
||
<div class="content-top">
|
||
<el-form :modal="form" inline class="label-input-form">
|
||
<el-form-item label="计划状态" class="search-item">
|
||
<el-select v-model="form.planStatus" placeholder="请选择计划状态">
|
||
<el-option label="请选择" value=""></el-option>
|
||
<!-- <el-option label="未开始" value="0"></el-option>-->
|
||
<el-option label="制定中" value="1"></el-option>
|
||
<el-option label="修订中" value="2"></el-option>
|
||
<el-option label="已取消" value="3"></el-option>
|
||
<el-option label="已完成" value="4"></el-option>
|
||
<!-- <el-option label="立项已完成" value="5"></el-option>-->
|
||
<el-option label="计划已确认" value="6"></el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
<el-form-item label="制修订类型" class="search-item">
|
||
<el-select v-model="form.reviseStatus" placeholder="请选择制修订类型">
|
||
<el-option label="请选择" value=""></el-option>
|
||
<el-option label="制定" value="1"></el-option>
|
||
<el-option label="修订" value="2"></el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
<el-form-item label="企标名称" class="search-item">
|
||
<el-input v-model="form.esName"
|
||
placeholder="请输入企标名称"
|
||
clearable
|
||
:maxlength="100"></el-input>
|
||
</el-form-item>
|
||
<el-form-item label="起草责任单位" class="search-item">
|
||
<el-input v-model="form.unit"
|
||
placeholder="请输入起草责任单位"
|
||
clearable
|
||
:maxlength="100"></el-input>
|
||
</el-form-item>
|
||
<el-form-item class="search-item btn-box">
|
||
<el-button
|
||
v-btn-permission="'1595c63ae9b14631ff3adefe51a92bdb'"
|
||
type="primary"
|
||
class="common-button-primary"
|
||
size="mini"
|
||
@click="searchData">
|
||
查询
|
||
</el-button>
|
||
</el-form-item>
|
||
<el-form-item class="search-item btn-box">
|
||
<el-button
|
||
v-btn-permission="'5c8347d102094d48139b30723e187113'"
|
||
class="common-button-default"
|
||
size="mini"
|
||
@click="clearData">
|
||
清空
|
||
</el-button>
|
||
</el-form-item>
|
||
</el-form>
|
||
</div>
|
||
</div>
|
||
<div class="content-center">
|
||
<el-button type="primary"
|
||
class="common-button-primary add-button"
|
||
size="mini"
|
||
v-btn-permission="'66ae947771821e3bd064c5594a14d145'"
|
||
@click="addData"><i class="el-icon-plus"></i>新增
|
||
</el-button>
|
||
<!-- <el-button class="common-button-default in-button"-->
|
||
<!-- size="mini"-->
|
||
<!-- @click=""><i class="iconfont"></i>导入-->
|
||
<!-- </el-button>-->
|
||
<el-button class="common-button-default export-button"
|
||
size="mini"
|
||
v-btn-permission="'f919276a703d3c9062f6a69f6f0400cc'"
|
||
@click="exportData"><i class="iconfont"></i>导出
|
||
</el-button>
|
||
<!-- <el-button class="common-button-default"-->
|
||
<!-- size="mini" @click=""><i class="iconfont"></i>下载-->
|
||
<!-- </el-button>-->
|
||
<el-button class="common-button-default"
|
||
size="mini"
|
||
v-btn-permission="'74c437f9bfce7198144aa08e9a52950e'"
|
||
@click="deleteList"><i class="iconfont"></i>删除
|
||
</el-button>
|
||
</div>
|
||
<div class="container">
|
||
<div class="table-wrap">
|
||
<div class="inner-wrap">
|
||
<el-table
|
||
ref="multipleTable"
|
||
:data="data"
|
||
tooltip-effect="dark"
|
||
border
|
||
style="width: 100%; flex: auto;"
|
||
class="drag-table"
|
||
height="100%"
|
||
@selection-change="dataSelectChange"
|
||
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
|
||
fontWeight: 'bold', height: '48px'}">
|
||
<el-table-column
|
||
type="selection"
|
||
align="center"
|
||
width="55">
|
||
</el-table-column>
|
||
<el-table-column
|
||
type="index"
|
||
width="55"
|
||
label="序号"
|
||
align="center">
|
||
<template slot-scope="{scope, column, $index}">
|
||
{{ ($index + 1) + (form.page - 1) * form.pageSize }}
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="bussSort"
|
||
label="企标类别"
|
||
align="center"
|
||
width="120">
|
||
</el-table-column>
|
||
<el-table-column
|
||
label="企标编号">
|
||
<template slot-scope="scope">
|
||
<a v-if="scope.row.standNumber" class="table-jump" @click="handlePreview(scope.row,'fs')">{{ scope.row.standNumber }}</a>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="esName"
|
||
label="企标名称"
|
||
align="center"
|
||
width="150">
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="planStatus"
|
||
label="计划状态"
|
||
align="center"
|
||
width="150">
|
||
<template slot-scope="scope">
|
||
<div>{{ getMap1(scope.row.planStatus)}}</div>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="reviseStatus"
|
||
width="150"
|
||
align="center"
|
||
label="制修订类型">
|
||
<template slot-scope="scope">
|
||
<div>{{ scope.row.reviseStatus === ''? '' : (scope.row.reviseStatus === '1'? '制定' : '修订') }}</div>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="drafterName"
|
||
width="120"
|
||
align="center"
|
||
label="起草人">
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="resPersonName"
|
||
width="120"
|
||
align="center"
|
||
label="内部评审责任人">
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="wgLeaderName"
|
||
width="120"
|
||
align="center"
|
||
label="技术委员会评审负责人">
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="draftTime"
|
||
width="170"
|
||
align="center"
|
||
label="计划标准初稿完成时间">
|
||
<template slot-scope="scope">
|
||
<span>{{ scope.row.draftTime ? $moment(scope.row.draftTime).format("YYYY-MM-DD") : "" }}</span>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
width="170"
|
||
prop="releaseTime"
|
||
align="center"
|
||
label="计划标准发布时间">
|
||
<template slot-scope="scope">
|
||
<span>{{ scope.row.releaseTime ? $moment(scope.row.releaseTime).format("YYYY-MM-DD") : "" }}</span>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
align="center"
|
||
prop="unitName"
|
||
width="130"
|
||
label="起草责任单位">
|
||
</el-table-column>
|
||
<el-table-column
|
||
align="center"
|
||
prop="actualTime"
|
||
width="150"
|
||
label="实际标准发布时间">
|
||
</el-table-column>
|
||
<el-table-column
|
||
align="center"
|
||
prop="score"
|
||
label="质量评分">
|
||
</el-table-column>
|
||
<el-table-column
|
||
label="更新记录">
|
||
<template slot-scope="scope">
|
||
<el-button class="common-button-default"
|
||
size="mini" @click="relateEvent(scope.row)">查看</el-button>
|
||
</template>
|
||
</el-table-column>
|
||
<!-- <el-table-column fixed="right" v-if="isPermission('f9745194958bc9ed3ee5127459795dbc,e8d690904ee1895dd0d17d9c794fbcd7,b299fa5edb3f3f35badb2adb6bda9f2e')>0" label="操作" align="center" width="100">-->
|
||
<el-table-column fixed="right" label="操作" align="center" width="60">
|
||
<template slot-scope="scope">
|
||
<div @click.stop style="display: inline-block">
|
||
<el-dropdown trigger="click" @command="handleCommand">
|
||
<i class="iconfont"></i>
|
||
<el-dropdown-menu slot="dropdown">
|
||
<el-dropdown-item v-btn-permission="'68bc53399a9e0daf1cc2f1bb2aa1d566'" :command="[scope.row, '查看']">
|
||
查看
|
||
</el-dropdown-item>
|
||
<el-dropdown-item v-btn-permission="'cc5d8f1a15726c62c5016e595246ec8b'" :command="[scope.row, '编辑']">
|
||
编辑
|
||
</el-dropdown-item>
|
||
<el-dropdown-item v-btn-permission="'74c437f9bfce7198144aa08e9a52950e'" :command="[scope.row, '删除']">
|
||
删除
|
||
</el-dropdown-item>
|
||
</el-dropdown-menu>
|
||
</el-dropdown>
|
||
</div>
|
||
</template>
|
||
</el-table-column>
|
||
</el-table>
|
||
<loading :loading="loading">加载中...</loading>
|
||
</div>
|
||
</div>
|
||
<div class="footer">
|
||
<pagination :page="form.page" :total="total"
|
||
@pageChange="pageChange" @pageSizeChange="pageSizeChange"></pagination>
|
||
</div>
|
||
<el-drawer
|
||
ref="standard"
|
||
size="700px"
|
||
:title="addDrawerTitle"
|
||
:visible.sync="addDrawer"
|
||
:before-close="addDrawerClose">
|
||
<div class="demo-drawer-content" v-if="addDrawer">
|
||
<div class="content">
|
||
<div class="standard-table-search">
|
||
<el-row :gutter="24">
|
||
<el-col :span="24">
|
||
<el-form :model="addForm" inline class="label-input-form" label-width="180px" :rules="addFormRules" ref="addForm">
|
||
<el-form-item prop="bussSort" label="企标类别" style="width: 100%; margin-right:10px" class="add-form-item" :class="DrawerType === 'see' ? 'form-item-disabled' : ''">
|
||
<el-select :disabled="DrawerType === 'see'" v-model="addForm.bussSort" filterable clearable placeholder="" style="appearance: none" placeholder="请选择企标类别">
|
||
<el-option
|
||
v-for="(item, index) in standSortOptions"
|
||
:key="index"
|
||
:value="item.value"
|
||
:label="item.label"
|
||
></el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
<el-form-item prop="esName" label="企标名称" style="width: 100%; margin-right:10px" class="add-form-item" :class="DrawerType === 'see' ? 'form-item-disabled' : ''">
|
||
<el-input
|
||
:disabled="DrawerType === 'see'"
|
||
v-model="addForm.esName"
|
||
placeholder="请输入企标名称"
|
||
:maxlength="500"/>
|
||
</el-form-item>
|
||
<el-form-item label="适用车型" style="width: 100%; margin-right:10px" class="add-form-item" prop="area" :class="DrawerType === 'see' ? 'form-item-disabled' : ''">
|
||
<div style="display: flex;justify-content: space-between;align-items: center;">
|
||
<el-select :disabled="DrawerType === 'see'" v-model="addForm.area" multiple filterable placeholder="请选择适用车型" style="width: 100%;">
|
||
<el-option
|
||
v-for="item in BZList"
|
||
:key="item.value"
|
||
:label="item.label"
|
||
:value="item.value">
|
||
</el-option>
|
||
</el-select>
|
||
</div>
|
||
</el-form-item>
|
||
<el-form-item prop="planStatus" label="计划状态" style="width: 100%; margin-right:10px" class="add-form-item" :class="DrawerType === 'see' ? 'form-item-disabled' : ''">
|
||
<el-select :disabled="DrawerType === 'see' || DrawerType === 'add' " v-model="addForm.planStatus" placeholder="请选择计划状态">
|
||
<!-- <el-option label="未完成" value="0"></el-option>-->
|
||
<el-option label="制定中" value="1"></el-option>
|
||
<el-option label="修订中" value="2"></el-option>
|
||
<el-option label="已取消" value="3"></el-option>
|
||
<el-option label="已完成" value="4"></el-option>
|
||
<!-- <el-option label="立项已完成" value="5"></el-option>-->
|
||
<el-option label="计划已确认" value="6"></el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
<el-form-item prop="reviseStatus" label="制修订类型" style="width: 100%; margin-right:10px" class="add-form-item" :class="DrawerType === 'see' ? 'form-item-disabled' : ''">
|
||
<el-select :disabled="DrawerType === 'see'" v-model="addForm.reviseStatus" placeholder="请选择制修订类型">
|
||
<el-option label="制定" value="1"></el-option>
|
||
<el-option label="修订" value="2"></el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
<el-form-item label="代替企标编号" style="width: 100%; margin-right:10px" class="add-form-item" prop="rqbJson" :required="addForm.reviseStatus === '2'" :class="DrawerType === 'see' ? 'form-item-disabled' : ''">
|
||
<div style="display: flex;justify-content: space-between;align-items: center;">
|
||
<el-input
|
||
style="display: none;"
|
||
v-model="addForm.rqbJson">
|
||
</el-input>
|
||
<el-input
|
||
clearable
|
||
v-model="addForm.rqbName"
|
||
placeholder="请选择代替企标编号"
|
||
readonly
|
||
@click.native="choiceQYBZ(addForm.rqbJson)">
|
||
</el-input>
|
||
</div>
|
||
</el-form-item>
|
||
<el-form-item label="起草责任单位" style="width: 100%; margin-right:10px" class="add-form-item" prop="unit" :class="DrawerType === 'see' ? 'form-item-disabled' : ''">
|
||
<div style="display: flex;justify-content: space-between;align-items: center;">
|
||
<el-input
|
||
style="display: none;"
|
||
v-model="addForm.unit">
|
||
</el-input>
|
||
<!-- <el-input-->
|
||
<!-- clearable-->
|
||
<!-- v-model="addForm.unitName"-->
|
||
<!-- readonly>-->
|
||
<!-- </el-input>-->
|
||
<el-input
|
||
clearable
|
||
v-model="addForm.unitName"
|
||
placeholder="请选择起草责任单位"
|
||
readonly
|
||
@click.native="choiceZRBM(addForm.unit)">
|
||
</el-input>
|
||
</div>
|
||
</el-form-item>
|
||
<el-form-item prop="drafter" label="起草人" style="width: 100%; margin-right:10px" class="add-form-item" :class="DrawerType === 'see' ? 'form-item-disabled' : ''">
|
||
<el-input
|
||
style="display: none;"
|
||
v-model="addForm.drafter"
|
||
:maxlength="500"/>
|
||
<el-input :disabled="DrawerType === 'see'" v-model="addForm.drafterName" placeholder="请选择起草人" readonly="readonly" @click.native="choiceZRRS('drafter', '选择起草人', addForm.drafter)"></el-input>
|
||
</el-form-item>
|
||
<el-form-item prop="resPerson" label="内部评审责任人" style="width: 100%; margin-right:10px" class="add-form-item" :class="DrawerType === 'see' ? 'form-item-disabled' : ''">
|
||
<el-input
|
||
style="display: none;"
|
||
v-model="addForm.resPerson"
|
||
:maxlength="500"/>
|
||
<el-input :disabled="DrawerType === 'see'" v-model="addForm.resPersonName" placeholder="请选择内部评审责任人" readonly="readonly" @click.native="choiceZRRS('resPerson', '选择内部评审责任人', addForm.resPerson)"></el-input>
|
||
</el-form-item>
|
||
<el-form-item prop="wgLeader" label="技术委员会评审负责人" style="width: 100%; margin-right:10px" class="add-form-item" :class="DrawerType === 'see' ? 'form-item-disabled' : ''">
|
||
<template v-slot:label>
|
||
<el-tooltip content="技术委员会评审负责人" placement="top">
|
||
<span>技术委员会评审负责人</span>
|
||
</el-tooltip>
|
||
</template>
|
||
<el-input
|
||
style="display: none;"
|
||
v-model="addForm.wgLeader"
|
||
:maxlength="500"/>
|
||
<el-input :disabled="DrawerType === 'see'" v-model="addForm.wgLeaderName" placeholder="请选择技术委员会评审负责人" readonly="readonly" @click.native="workGroupUnfold('workLeader', '选择技术委员会评审负责人', addForm.wgLeader)"></el-input>
|
||
</el-form-item>
|
||
<!--<el-form-item prop="wgLeader" label="工作组组长" style="width: 100%; margin-right:10px" class="add-form-item" :class="DrawerType === 'see' ? 'form-item-disabled' : ''">-->
|
||
<!-- <el-input-->
|
||
<!-- style="display: none;"-->
|
||
<!-- v-model="addForm.wgLeader"-->
|
||
<!-- :maxlength="500"/>-->
|
||
<!-- <el-input :disabled="DrawerType === 'see'" v-model="addForm.wgLeaderName" placeholder="请选择工作组组长" readonly="readonly" @click.native="workGroup(addForm.wgLeader)"></el-input>-->
|
||
<!-- <!– <el-input :disabled="DrawerType === 'see'" v-model="addForm.wgLeaderName" placeholder="请选择工作组组长" readonly="readonly" @click.native="choiceZRR('wgLeader', '选择工作组组长', addForm.wgLeader)"></el-input>–>-->
|
||
<!--</el-form-item>-->
|
||
<el-form-item label="计划标准初稿完成时间" style="width: 100%; margin-right:10px" prop="draftTime" class="add-form-item" :class="DrawerType === 'see' ? 'form-item-disabled' : ''">
|
||
<el-date-picker
|
||
v-model="addForm.draftTime"
|
||
:disabled="DrawerType === 'see'"
|
||
value-format="yyyy-MM-dd"
|
||
type="date"
|
||
placeholder="请选择计划标准初稿完成时间">
|
||
</el-date-picker>
|
||
</el-form-item>
|
||
<el-form-item label="计划标准发布时间" style="width: 100%; margin-right:10px" prop="releaseTime" class="add-form-item" :class="DrawerType === 'see' ? 'form-item-disabled' : ''">
|
||
<el-date-picker
|
||
v-model="addForm.releaseTime"
|
||
:disabled="DrawerType === 'see'"
|
||
value-format="yyyy-MM-dd"
|
||
type="date"
|
||
placeholder="请选择计划标准发布时间">
|
||
</el-date-picker>
|
||
</el-form-item>
|
||
<el-form-item label="体系结构" style="width: 100%; margin-right:10px" class="add-form-item" prop="tsJson" :class="DrawerType === 'see' ? 'form-item-disabled' : ''">
|
||
<div style="display: flex;justify-content: space-between;align-items: center;">
|
||
<el-input
|
||
style="display: none;"
|
||
v-model="addForm.tsJson">
|
||
</el-input>
|
||
<el-input
|
||
clearable
|
||
v-model="addForm.tsJsonName"
|
||
placeholder="请选择体系结构"
|
||
readonly
|
||
@click.native="choiceTXJG(addForm.tsJson)">
|
||
</el-input>
|
||
</div>
|
||
</el-form-item>
|
||
<el-form-item label="采用国内外标准情况" style="width: 100%; margin-right:10px" class="add-form-item" prop="isRelate" :class="DrawerType === 'see' ? 'form-item-disabled' : ''">
|
||
<div style="display: flex; height: 100%; justify-content: space-between;align-items: center;">
|
||
<el-radio-group :disabled="DrawerType === 'see'" v-model="addForm.isRelate">
|
||
<el-radio label="是" value="是"></el-radio>
|
||
<el-radio label="否" value="否"></el-radio>
|
||
</el-radio-group>
|
||
</div>
|
||
</el-form-item>
|
||
<template v-if="addForm.isRelate === '是'">
|
||
<custom-input-for-all-standards2
|
||
class="classDisplay"
|
||
:config="{attrName: '采用标准'}"
|
||
:disabled="DrawerType === 'see'"
|
||
:labelWidth="'180px'"
|
||
v-model="addForm.esStandRelations"
|
||
></custom-input-for-all-standards2>
|
||
</template>
|
||
<el-form-item v-if="addForm.isRelate === '是'" label="采标程度" style="width: 100%; margin-right:10px" class="add-form-item" prop="useLevel" :class="DrawerType === 'see' ? 'form-item-disabled' : ''">
|
||
<div style="display: flex; height: 100%; justify-content: space-between;align-items: center;">
|
||
<el-select :disabled="DrawerType === 'see'" v-model="addForm.useLevel" filterable placeholder="请选择采标程度" style="width: 100%;">
|
||
<el-option
|
||
v-for="(item, index) in CBList"
|
||
:key="index"
|
||
:label="item.label"
|
||
:value="item.value">
|
||
</el-option>
|
||
</el-select>
|
||
</div>
|
||
</el-form-item>
|
||
<el-form-item v-if="addForm.isRelate === '否'" label="简述技术指标依据" style="width: 100%; margin-right:10px" class="add-form-item" prop="technologic" :class="DrawerType === 'see' ? 'form-item-disabled' : ''">
|
||
<div style="display: flex;justify-content: space-between;align-items: center;">
|
||
<el-input
|
||
:disabled="DrawerType === 'see'"
|
||
v-model="addForm.technologic"
|
||
placeholder="请简述技术指标依据">
|
||
</el-input>
|
||
</div>
|
||
</el-form-item>
|
||
<template>
|
||
<custom-input-for-all-standards2
|
||
class="classDisplay"
|
||
:enterpriseStandard="true"
|
||
:placeholderText="'包括已有、应有的关联标准,如企业标准、行业标准、国家标准'"
|
||
:disabled="DrawerType === 'see'"
|
||
:config="{attrName: '引用标准'}"
|
||
:labelWidth="'180px'"
|
||
v-model="addForm.esMatingRelations"
|
||
></custom-input-for-all-standards2>
|
||
</template>
|
||
<el-form-item label="立项单" prop="LXDName" class="add-form-item" :class="DrawerType === 'see' ? 'form-item-disabled' : ''">
|
||
<div v-if="LXDList.length > 0" v-for="(item,index) in LXDList" :key="index" style="color: #409eff;cursor:pointer">
|
||
<span style="width: 80%;" @click="handleFilePreview(item,'preview')">{{ item.name }}</span>
|
||
<span style="width: 20%;margin-left: 15px;" v-if="item.id !== ''">
|
||
<el-button type="primary" size="mini" plain icon="el-icon-download" @click="handleFilePreview(item,'down')"></el-button>
|
||
</span>
|
||
<span style="width: 20%;margin-left: 15px;" v-if="item.id !== '' && DrawerType !== 'see'">
|
||
<el-button type="primary" size="mini" plain icon="el-icon-edit" @click="handleFilePreview(item,'onlineEdit')"></el-button>
|
||
</span>
|
||
</div>
|
||
</el-form-item>
|
||
</el-form>
|
||
</el-col>
|
||
</el-row>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="demo-drawer-footer" v-if="DrawerType !== 'see'">
|
||
<el-button
|
||
size="mini"
|
||
class="common-button-primary"
|
||
icon="el-icon-check"
|
||
type="primary"
|
||
:loading="submitLoading"
|
||
@click="addDrawerSubmit">提交
|
||
</el-button>
|
||
<el-button
|
||
size="mini"
|
||
class="common-button-default"
|
||
icon="el-icon-close"
|
||
@click="addDrawerClose">取消</el-button>
|
||
</div>
|
||
</el-drawer>
|
||
<Role-tree
|
||
:is-title="drawerTitle"
|
||
:is-visible.sync="modalshowflag2"
|
||
@checkedRole="checkedRole2"
|
||
:nodeList="nodeList2"
|
||
></Role-tree>
|
||
<Role-tree
|
||
check-box
|
||
:is-title="drawerTitle"
|
||
:is-visible.sync="modalshowflag"
|
||
@checkedRole="checkedRole"
|
||
:nodeList="nodeList"
|
||
></Role-tree>
|
||
<!--技术委员会评审负责人-->
|
||
<Role-tree
|
||
check-box
|
||
is-title="选择技术委员会评审负责人"
|
||
:is-visible.sync="workLeaderVisible"
|
||
:node-list="workLeaderNodeList"
|
||
@checkedRole="workLeaderCheckedRole" />
|
||
<el-dialog
|
||
:visible.sync="QCDWmodal"
|
||
width="500px"
|
||
title="选择起草部门"
|
||
destroy-on-close
|
||
:close-on-click-modal="false"
|
||
@closed="QCDWmodal = false">
|
||
<el-select v-model="QCDWValue" multiple filterable placeholder="请选择" style="width: 100%;">
|
||
<el-option
|
||
v-for="item in QCDWList"
|
||
:key="item.value"
|
||
:label="item.label"
|
||
:value="item.label">
|
||
</el-option>
|
||
</el-select>
|
||
<div slot="footer" class="demo-drawer-footer">
|
||
<el-button size="mini" type="primary" class="common-button-default" icon="el-icon-check"
|
||
@click="QCDWOK">确认
|
||
</el-button>
|
||
</div>
|
||
</el-dialog>
|
||
<Mechanism-tree
|
||
is-title="选择起草责任部门"
|
||
:is-visible.sync="modalshowflagZRBM"
|
||
:nodeList="nodeListZRBM"
|
||
@checkedRole="drawerCheckZRBM"
|
||
/>
|
||
<el-drawer
|
||
title="选择企业标准"
|
||
:visible.sync="QYBZmodal"
|
||
size="900px"
|
||
custom-class="demo-drawer"
|
||
>
|
||
<div class="standardForComments">
|
||
<div class="content" style="height: 100%;">
|
||
<!-- 顶部工具栏 -->
|
||
<div class="search-area">
|
||
<el-form :model="QYBZform" inline class="label-input-form">
|
||
<el-formItem label="标准号" prop="numberName" class="search-item">
|
||
<el-input v-model="QYBZform.standCode" clearable placeholder="根据标准号查找" :maxlength="100"/>
|
||
</el-formItem>
|
||
<el-formItem label="标准名称" prop="standName" class="search-item">
|
||
<el-input v-model="QYBZform.standName" clearable placeholder="根据标准名称查找" :maxlength="100"/>
|
||
</el-formItem>
|
||
<el-formItem class="search-item btn-box">
|
||
<el-button
|
||
type="primary"
|
||
size="mini"
|
||
class="common-button-primary"
|
||
@click="QYBZget('1')">查询
|
||
</el-button>
|
||
<el-button
|
||
class="common-button-default"
|
||
size="mini"
|
||
@click="clearQYBZ">清空
|
||
</el-button>
|
||
</el-formItem>
|
||
</el-form>
|
||
</div>
|
||
<div class="table-wrap" style="height: 100%;">
|
||
<div style="position: absolute;height: calc(100% - 10px);width: 100%;">
|
||
<el-table
|
||
ref="selection"
|
||
:data="QYBZList"
|
||
tooltip-effect="dark"
|
||
style="width: 100%;padding:0 0 20px 0;"
|
||
height="100%"
|
||
border
|
||
@selection-change="handleSelectionQYBZ"
|
||
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}">
|
||
<el-table-column type="selection" width="55" align="center"/>
|
||
<el-table-column
|
||
label="企标编号"
|
||
prop="standCode"
|
||
>
|
||
</el-table-column>
|
||
<el-table-column
|
||
show-overflow-tooltip
|
||
prop="standName"
|
||
label="中文名称"
|
||
>
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="issueTime"
|
||
label="发布日期"
|
||
width="120"
|
||
>
|
||
<template slot-scope="scope">
|
||
<span>{{scope.row.issueTime ? scope.row.issueTime.slice(0, 10) : ''}}</span>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="putTime"
|
||
label="实施日期"
|
||
sortable
|
||
width="120"
|
||
>
|
||
<template slot-scope="scope">
|
||
<span>{{scope.row.putTime ? scope.row.putTime.slice(0, 10) : ''}}</span>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="standStatusShow"
|
||
label="文本状态"
|
||
width="110"
|
||
>
|
||
<template slot-scope="scope">
|
||
<span>{{scope.row.standStatusShow}}</span>
|
||
</template>
|
||
</el-table-column>
|
||
</el-table>
|
||
</div>
|
||
<pagination :page="QYBZform.page" :total="QYBZform.total" @pageChange="QYBZpageChange" @pageSizeChange="QYBZpageSizeChange"></pagination>
|
||
<loading :loading="QYBZShow">数据加载中……</loading>
|
||
</div>
|
||
</div>
|
||
<div class="demo-drawer-footer">
|
||
<el-button size="mini" @click="QYBZcloseDrawer">取消</el-button>
|
||
<el-button type="primary" size="mini" @click="QYBZenterDrawer">导入</el-button>
|
||
</div>
|
||
</div>
|
||
</el-drawer>
|
||
<el-drawer
|
||
title="选择体系结构"
|
||
:visible.sync="TXJGmodal"
|
||
size="900px"
|
||
custom-class="demo-drawer"
|
||
>
|
||
<div class="standardForComments">
|
||
<div class="content" style="height: 100%;">
|
||
<el-tree
|
||
v-if="TXJGmodal"
|
||
ref="TXJGTree"
|
||
:data="standSystemOptions"
|
||
show-checkbox
|
||
node-key="id"
|
||
check-strictly
|
||
:default-checked-keys="TXJGList"
|
||
:props="defaultProps">
|
||
</el-tree>
|
||
</div>
|
||
<div class="demo-drawer-footer">
|
||
<el-button size="mini" @click="TXJGcloseDrawer">取消</el-button>
|
||
<el-button type="primary" size="mini" @click="TXJGenterDrawer">确定</el-button>
|
||
</div>
|
||
</div>
|
||
</el-drawer>
|
||
<el-dialog
|
||
:visible.sync="workGroupFlag"
|
||
width="1000px"
|
||
title="选择工作组组长"
|
||
destroy-on-close
|
||
:close-on-click-modal="false"
|
||
@closed="workGroupClose">
|
||
<div>
|
||
<div class="search-area">
|
||
<el-form :model="workSearch" inline class="label-input-form">
|
||
<el-form-item label="工作组" class="search-item">
|
||
<el-input
|
||
v-model="workSearch.workGroupName"
|
||
clearable
|
||
placeholder="根据工作组进行查找"
|
||
/>
|
||
</el-form-item>
|
||
<el-form-item label="工作组组长" class="search-item">
|
||
<el-input
|
||
v-model="workSearch.leaderName"
|
||
clearable
|
||
placeholder="根据工作组组长进行查找"
|
||
/>
|
||
</el-form-item>
|
||
<el-form-item label="" class="search-item btn-box">
|
||
<el-button class="common-button-primary" type="primary" size="mini" @click="searchPostName"
|
||
v-btn-permission="">查询
|
||
</el-button>
|
||
</el-form-item>
|
||
<el-form-item label="" class="search-item btn-box">
|
||
<el-button class="common-button-default" @click="resetSelect" size="mini"
|
||
v-btn-permission="">清空
|
||
</el-button>
|
||
</el-form-item>
|
||
</el-form>
|
||
</div>
|
||
<div style="height: 500px;">
|
||
<el-table
|
||
ref="workGroup"
|
||
:data="workData"
|
||
tooltip-effect="dark"
|
||
border
|
||
style="width: 100%; flex: auto;"
|
||
class="drag-table"
|
||
height="443px"
|
||
@selection-change="workChange"
|
||
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
|
||
fontWeight: 'bold', height: '48px'}">
|
||
<el-table-column
|
||
type="selection"
|
||
width="55"
|
||
align="center"
|
||
/>
|
||
<el-table-column
|
||
align="center"
|
||
prop="workGroup"
|
||
min-width="300"
|
||
label="工作组">
|
||
</el-table-column>
|
||
<el-table-column
|
||
align="center"
|
||
label="工作组组长"
|
||
min-width="400px">
|
||
<template slot-scope="scope">
|
||
<span v-if="scope.row.workLeaderGroup.length > 1" v-for="item in scope.row.workLeaderGroup"
|
||
:key="item.id">{{ item.name + "," }}</span>
|
||
<span v-else v-for="item in scope.row.workLeaderGroup" :key="item.id">{{ item.name }}</span>
|
||
</template>
|
||
</el-table-column>
|
||
</el-table>
|
||
<pagination style="bottom: 57px;" :page="workSearch.page" :total="workTotal" :pageSize="workSearch.pageSize" @pageChange="workpageChange"
|
||
@pageSizeChange="workpageSizeChange"></pagination>
|
||
</div>
|
||
<loading :loading="workGroupLoading">加载中...</loading>
|
||
</div>
|
||
<div slot="footer" class="demo-drawer-footer">
|
||
<el-button size="mini" type="primary" class="common-button-default" icon="el-icon-check"
|
||
@click="workGroupOk">确认
|
||
</el-button>
|
||
<el-button size="mini" class="common-button-default" icon="el-icon-check"
|
||
@click="workGroupClose">取消
|
||
</el-button>
|
||
</div>
|
||
</el-dialog>
|
||
<!-- 更新LOG -->
|
||
<el-dialog
|
||
title="更新记录"
|
||
:visible.sync="relateDialog"
|
||
class="relateClass"
|
||
width="60%"
|
||
:before-close="relateDialogClose">
|
||
<div
|
||
v-for="(item, index) in relateNowList"
|
||
:key="index"
|
||
v-if="relateNowList"
|
||
style="margin-bottom: 10px;line-height: 20px;max-height: 300px"
|
||
>
|
||
{{ index + 1 }}. {{ item.creationUserName }} {{ item.creationTime }} {{ item.content }}
|
||
<div v-if="relateNowList.length >1">
|
||
<el-divider></el-divider>
|
||
</div>
|
||
</div>
|
||
<div slot="footer" class="dialog-footer">
|
||
<el-button type="primary" @click="relateDialogClose">关 闭</el-button>
|
||
</div>
|
||
</el-dialog>
|
||
</div>
|
||
<!--导出文件改名字模态框-->
|
||
<exportDialog ref="exportDialogRef" @exportName="handleExport" />
|
||
</div>
|
||
</template>
|
||
|
||
<script>
|
||
import CustomInputForAllStandards2 from '@/components/CustomFormComponents/InputForAllStandards2'
|
||
import exportDialog from './components/exportDialog'
|
||
export default {
|
||
name: "enterpriseStandardPlan",
|
||
components: {
|
||
exportDialog,
|
||
CustomInputForAllStandards2
|
||
},
|
||
data() {
|
||
return {
|
||
workData: [],
|
||
workGroupLoading: false,
|
||
workTotal: 0,
|
||
workGroupFlag: false,
|
||
workGroupList: [],
|
||
workSearch: {
|
||
workGroupName: '',
|
||
leaderName: '',
|
||
page: 1,
|
||
pageSize: this.$store.getters.userInfo.configContent,
|
||
},
|
||
relateNowList: [],
|
||
LXDList: [],
|
||
CBList: [],
|
||
BZList: [],
|
||
TXJGList: [],
|
||
TXJGmodal: false,
|
||
standSystemOptions: [],
|
||
standSortOptions: [],
|
||
defaultProps: {
|
||
children: 'children',
|
||
label: 'menuName'
|
||
},
|
||
QYBZShow: false,
|
||
QYBZList: [],
|
||
modalshowflagZRBM: false,
|
||
nodeListZRBM: [],
|
||
QYBZformSelect: [],
|
||
QYBZmodal: false,
|
||
QYBZform: {
|
||
page: 1,
|
||
pageSzie: this.$store.getters.userInfo.configContent,
|
||
validFlag: '0',
|
||
userId: this.$store.getters.userInfo.userId,
|
||
standCode: '',
|
||
standName: '',
|
||
total: 0,
|
||
},
|
||
QCDWmodal: false,
|
||
QCDWValue: [],
|
||
QCDWList: [],
|
||
type: '',
|
||
drawerTitle: '',
|
||
relateDialog: false,
|
||
modalshowflag2: false,
|
||
modalshowflag: false,
|
||
nodeList: [],
|
||
nodeList2: [],
|
||
loading: false,
|
||
submitLoading: false,
|
||
addDrawerTitle: '',
|
||
addDrawer: false,
|
||
DrawerType: '',
|
||
ids: [],
|
||
addForm: {
|
||
bussSort:'',
|
||
esMatingRelations: '',
|
||
technologic: '',
|
||
useLevel: '',
|
||
isRelate: '',
|
||
esStandRelations: '',
|
||
area: [],
|
||
tsJson: '',
|
||
tsJsonName: '',
|
||
rqbJson: '',
|
||
rqbName: '',
|
||
unit: '', // 单位
|
||
unitName: '',
|
||
esName: '', // 企标名称
|
||
planStatus: '', // 计划状态
|
||
reviseStatus: '', // 制修订状态
|
||
resPerson: '', // 评审责任人
|
||
resPersonName: '',
|
||
wgLeader: '', // 工作组组长
|
||
wgLeaderName: '',
|
||
draftTime: '', // 计划标准初稿完成时间
|
||
releaseTime: '', // 计划标准发布时间
|
||
drafter: '', // 起草人
|
||
drafterName: '',
|
||
lxd:'',
|
||
lxdName:'',
|
||
// remarks: '', // 备注
|
||
},
|
||
addFormRules: {
|
||
unit: [
|
||
{required: true, message: '请输入单位', trigger: 'change'},
|
||
],
|
||
esName: [
|
||
{required: true, message: '请输入企标名称', trigger: 'blur'},
|
||
],
|
||
bussSort: [
|
||
{required: true, message: '请选择企标类别', trigger: 'change'},
|
||
],
|
||
planStatus: [
|
||
{required: true, message: '请选择计划状态', trigger: 'change'},
|
||
],
|
||
reviseStatus: [
|
||
{required: true, message: '请选择制修订状态', trigger: 'change'},
|
||
],
|
||
resPerson: [
|
||
{required: true, message: '请选择内部评审责任人', trigger: 'change'},
|
||
],
|
||
wgLeader: [
|
||
{required: true, message: '请选择工作组组长', trigger: 'change'},
|
||
],
|
||
draftTime: [
|
||
{required: true, message: '请输入计划标准初稿完成时间', trigger: 'change'},
|
||
],
|
||
releaseTime: [
|
||
{required: true, message: '请输入计划标准发布时间', trigger: 'blur'},
|
||
],
|
||
drafter: [
|
||
{required: true, message: '请选择起草人', trigger: 'change'},
|
||
],
|
||
rqbJson: [
|
||
{ validator: this.validationRqbJson, trigger: 'change'},
|
||
],
|
||
},
|
||
form: {
|
||
page: 1,
|
||
pageSize: this.$store.getters.userInfo.configContent,
|
||
unit: '',
|
||
esName: '',
|
||
planStatus: '',
|
||
reviseStatus: '',
|
||
},
|
||
total: 0,
|
||
data: [],
|
||
// 工作组组长
|
||
workLeaderVisible: false,
|
||
workLeaderNodeList: []
|
||
}
|
||
},
|
||
props: {},
|
||
watch: {
|
||
'addForm.esMatingRelations': {
|
||
handler: function(val) {
|
||
if(val && val !== ''){
|
||
if(val.indexOf(",") !== -1){
|
||
const list = val.split(",")
|
||
const filterList = list.filter(s => s !== 'null');
|
||
this.addForm.esMatingRelations = filterList.join(",");
|
||
}else if(val === 'null'){
|
||
this.addForm.esMatingRelations = null;
|
||
}
|
||
}else {
|
||
this.addForm.esMatingRelations = null
|
||
}
|
||
}
|
||
},
|
||
},
|
||
methods: {
|
||
exportData () {
|
||
this.$refs.exportDialogRef.openModel()
|
||
},
|
||
handleExport (exportName) {
|
||
const params = {
|
||
...this.form,
|
||
exportName: exportName,
|
||
userId: this.$store.getters.userInfo.userId,
|
||
exportIds: this.ids.join(',')
|
||
}
|
||
let query = '?'
|
||
for(let i in params){
|
||
if (params[i] && params[i]!=='') {
|
||
query = query + i + '=' + params[i] + '&'
|
||
}
|
||
}
|
||
query = query.slice(0,-1)
|
||
window.open('/api/esRevisePlan/es-revise-plan/exportEsRevisePlanInfoExcel' + query)
|
||
this.$message({
|
||
message: '导出信息成功',
|
||
type: 'success'
|
||
})
|
||
},
|
||
validationRqbJson(rule, value, callback){
|
||
if(this.addForm.reviseStatus === '2'){
|
||
if(!this.addForm.rqbJson || this.addForm.rqbJson === ''){
|
||
return callback(new Error('请选择代替企标编号'))
|
||
}else{
|
||
callback()
|
||
}
|
||
}else{
|
||
callback()
|
||
}
|
||
},
|
||
workChange (data) {
|
||
this.workGroupList = data
|
||
},
|
||
workpageChange (page) {
|
||
this.workSearch.page = page;
|
||
this.getWorkData()
|
||
},
|
||
workpageSizeChange (pageSize) {
|
||
this.workSearch.pageSize = pageSize;
|
||
this.getWorkData()
|
||
},
|
||
searchPostName () {
|
||
this.workSearch.page = 1;
|
||
this.getWorkData();
|
||
},
|
||
resetSelect () {
|
||
this.workSearch = {
|
||
leaderName: '',
|
||
workGroupName: '',
|
||
page: 1,
|
||
pageSize: this.$store.getters.userInfo.configContent
|
||
};
|
||
this.getWorkData();
|
||
},
|
||
getWorkData () {
|
||
this.workGroupLoading = true
|
||
this.$http.get("workGroup/work-group", {
|
||
...this.workSearch
|
||
}, {
|
||
_this: this
|
||
}, res => {
|
||
this.workGroupLoading = false
|
||
res.data.records.map(item => {
|
||
item.workLeaderGroup = [];
|
||
item.workPeopleGroup = [];
|
||
var workLeaderArray = item.workLeader.split(",");
|
||
var workPeopleArray = item.workPeople.split(",");
|
||
var workLeaderIdArray = item.workLeaderId.split(",");
|
||
var workPeopleIdArray = item.workPeopleId.split(",");
|
||
for (var i = 0; i < workLeaderArray.length; i++) {
|
||
item.workLeaderGroup.push({ name: workLeaderArray[i], id: workLeaderIdArray[i] });
|
||
}
|
||
for (var j = 0; j < workPeopleArray.length; j++) {
|
||
item.workPeopleGroup.push({ name: workPeopleArray[j], id: workPeopleIdArray[j] });
|
||
}
|
||
});
|
||
this.workData = res.data.records;
|
||
this.workTotal = res.data.total;
|
||
}, e => {
|
||
});
|
||
},
|
||
// 点击查看
|
||
handlePreview(item,fs) {
|
||
let routeUrl = this.$router.resolve({
|
||
name: 'OtherBussStandardDetails',
|
||
params: {
|
||
id: item.standId,
|
||
pageType: 'BUSINESS_STAND'
|
||
}
|
||
})
|
||
console.log(routeUrl)
|
||
window.open(routeUrl.href, '_blank')
|
||
},
|
||
workGroupOk () {
|
||
if (this.workGroupList.length > 1) {
|
||
this.$message.warning('仅能选择一个工作组')
|
||
} else if (this.workGroupList.length === 1) {
|
||
this.addForm.wgLeader = this.workGroupList[0].workLeaderId
|
||
this.addForm.wgLeaderName = this.workGroupList[0].workLeader
|
||
this.workGroupFlag = false
|
||
} else {
|
||
this.$message.warning('请选择一个工作组')
|
||
}
|
||
},
|
||
workGroupClose () {
|
||
this.workGroupList = []
|
||
this.workSearch = {
|
||
leaderName: '',
|
||
workGroupName: '',
|
||
page: 1,
|
||
pageSize: this.$store.getters.userInfo.configContent
|
||
}
|
||
this.workGroupFlag = false
|
||
},
|
||
workGroup (id) {
|
||
this.workGroupFlag = true
|
||
this.getWorkData()
|
||
},
|
||
getMap1(item){
|
||
const map = new Map();
|
||
map.set('0','未开始')
|
||
map.set('1','制定中')
|
||
map.set('2','修订中')
|
||
map.set('3','已取消')
|
||
map.set('4','已完成')
|
||
map.set('5','立项已完成')
|
||
map.set('6','计划已确认')
|
||
return map.get(item)
|
||
},
|
||
TXJGcloseDrawer () {
|
||
this.TXJGmodal = false
|
||
},
|
||
TXJGenterDrawer () {
|
||
if (this.$refs.TXJGTree.getCheckedNodes().length > 1) {
|
||
this.$message.warning('仅能选择一个体系结构')
|
||
return;
|
||
}
|
||
let list = this.$refs.TXJGTree.getCheckedNodes()
|
||
if(list.length > 0){
|
||
let parenList = list.filter ( item => item.parentId === null || item.parentId === '');
|
||
if (parenList.length > 0) {
|
||
this.$message.error('请选择二级及以下目录')
|
||
return
|
||
}
|
||
}
|
||
let id = ''
|
||
let name = ''
|
||
list.map(item => {
|
||
if (id.length > 0) {
|
||
id += ','
|
||
id += item.id
|
||
name += ','
|
||
name += item.menuName
|
||
} else {
|
||
id = item.id
|
||
name = item.menuName
|
||
}
|
||
})
|
||
this.addForm.tsJson = id
|
||
this.addForm.tsJsonName = name
|
||
this.TXJGmodal = false
|
||
},
|
||
choiceTXJG (id) {
|
||
if ( this.DrawerType === 'see') {
|
||
return
|
||
} else {
|
||
if (id) {
|
||
this.TXJGList = id.split(',')
|
||
} else {
|
||
this.TXJGList = []
|
||
}
|
||
this.TXJGmodal = true
|
||
}
|
||
},
|
||
QYBZcloseDrawer () {
|
||
this.QYBZform = {
|
||
page: 1,
|
||
standCode: '',
|
||
standName: '',
|
||
}
|
||
this.QYBZmodal = false
|
||
},
|
||
QYBZenterDrawer () {
|
||
if (this.QYBZformSelect.length > 1) {
|
||
this.$message.warning('请选择一条标准')
|
||
} else if (this.QYBZformSelect.length < 1){
|
||
this.$message.warning('请选择要带入的标准')
|
||
} else {
|
||
this.addForm.rqbJson = this.QYBZformSelect[0].id
|
||
this.addForm.rqbName = this.QYBZformSelect[0].standCode
|
||
this.addForm.standNum = this.QYBZformSelect[0].standNumber
|
||
this.QYBZform = {
|
||
page: 1,
|
||
standCode: '',
|
||
standName: '',
|
||
}
|
||
this.QYBZmodal = false
|
||
}
|
||
},
|
||
handleSelectionQYBZ (val) {
|
||
this.QYBZformSelect = val
|
||
},
|
||
QYBZpageChange (page) {
|
||
this.QYBZform.page = page
|
||
this.QYBZget()
|
||
},
|
||
QYBZpageSizeChange (pageSize) {
|
||
this.QYBZform.pageSize = pageSize
|
||
this.QYBZget()
|
||
},
|
||
QYBZget (type) {
|
||
if (type === '1') {
|
||
this.QYBZform.page = 1
|
||
}
|
||
this.$http.get('lawss/sarBussionessStand/getSarBussionStandPage', this.QYBZform, {
|
||
_this: this, loading: 'QYBZShow'
|
||
}, res => {
|
||
this.QYBZList = res.data.list
|
||
this.QYBZform.total = res.data.count
|
||
}, e => {
|
||
})
|
||
},
|
||
clearQYBZ () {
|
||
this.QYBZform = {
|
||
page: 1,
|
||
standCode: '',
|
||
standName: '',
|
||
}
|
||
this.QYBZget()
|
||
},
|
||
choiceQYBZ (id) {
|
||
if (this.DrawerType === 'see') {
|
||
return
|
||
} else {
|
||
this.QYBZformSelect = []
|
||
this.QYBZget()
|
||
this.QYBZmodal = true
|
||
}
|
||
},
|
||
drawerCheckZRBM (data) {
|
||
let list = ''
|
||
let listName = ''
|
||
for (let a = 0; a < data.length; a++) {
|
||
if (list.length > 0) {
|
||
list += ','
|
||
list += data[a].id
|
||
listName += ','
|
||
listName += data[a].name
|
||
} else {
|
||
list = data[a].id
|
||
listName = data[a].name
|
||
}
|
||
}
|
||
this.addForm.unit = list
|
||
this.addForm.unitName = listName
|
||
this.$refs.addForm.validateField('unitName')
|
||
this.modalshowflagZRBM = false
|
||
},
|
||
choiceZRBM(id) {
|
||
if (this.DrawerType === 'see') {
|
||
return
|
||
}
|
||
this.nodeListZRBM = []
|
||
if (id) {
|
||
this.nodeListZRBM = id.split(',')
|
||
}
|
||
this.modalshowflagZRBM = true
|
||
},
|
||
QCDWOK () {
|
||
let arr1 = []
|
||
if (this.addForm.unit) {
|
||
let str = this.addForm.unit.replace(/,/g, ',')
|
||
arr1 = str.split(',')
|
||
}
|
||
let arr2 = arr1.concat(this.QCDWValue)
|
||
this.addForm.unit = Array.from(new Set(arr2)).join(',')
|
||
this.QCDWmodal = false
|
||
},
|
||
QCDWClick () {
|
||
this.QCDWValue = []
|
||
this.QCDWmodal = true
|
||
},
|
||
choiceZRR (type, title, id) {
|
||
if (this.DrawerType === 'see') {
|
||
return
|
||
}
|
||
this.nodeList = []
|
||
this.nodeList.push(id)
|
||
this.type = type
|
||
this.drawerTitle = title
|
||
this.modalshowflag = true
|
||
},
|
||
checkedRole (data) {
|
||
this.addForm.wgLeader = data[0].id
|
||
this.addForm.wgLeaderName = data[0].name
|
||
},
|
||
choiceZRRS (type, title, id) {
|
||
if (this.DrawerType === 'see') {
|
||
return
|
||
}
|
||
this.type = type
|
||
this.drawerTitle = title
|
||
this.nodeList2 = []
|
||
if (id) {
|
||
this.nodeList2 = id.split(',')
|
||
}
|
||
this.modalshowflag2 = true
|
||
},
|
||
workGroupUnfold(type, title, ids){
|
||
if(ids){
|
||
this.workLeaderNodeList = ids.split(',')
|
||
}
|
||
// 展开弹窗
|
||
this.workLeaderVisible = true
|
||
},
|
||
workLeaderCheckedRole(data){
|
||
this.addForm.wgLeader = data[0].id
|
||
this.addForm.wgLeaderName = data[0].name
|
||
},
|
||
checkedRole2 (data) {
|
||
|
||
let idList = ''
|
||
let nameList = ''
|
||
data.forEach( item => {
|
||
if (nameList.length > 0) {
|
||
nameList += ','
|
||
idList += ','
|
||
}
|
||
idList += item.id
|
||
nameList += item.name
|
||
})
|
||
|
||
if (this.type === 'resPerson') {
|
||
this.addForm.resPerson = idList
|
||
this.addForm.resPersonName = nameList
|
||
} else if (this.type === 'drafter') {
|
||
this.addForm.drafter = idList
|
||
this.addForm.drafterName = nameList
|
||
if(data && data.length > 0){
|
||
const institutionIdList = this.unique(data.map(item => item.topUnitId)).join(",")
|
||
const institutionNameList = this.unique(data.map(item => item.topUnit)).join(",")
|
||
this.addForm.unitName = institutionNameList
|
||
this.addForm.unit = institutionIdList
|
||
}
|
||
}
|
||
},
|
||
unique(newArr) {
|
||
const res = new Map();
|
||
return newArr.filter((newArr) => !res.has(newArr) && res.set(newArr, 1));
|
||
},
|
||
addDrawerSubmit () {
|
||
this.$refs['addForm'].validate((valid) => {
|
||
if (valid) {
|
||
this.submitLoading = true
|
||
let url = ''
|
||
let tips = ''
|
||
if (this.DrawerType === 'edit') {
|
||
url = 'esRevisePlan/es-revise-plan/modPlan'
|
||
tips = '编辑'
|
||
}else if (this.DrawerType === 'add') {
|
||
url = 'esRevisePlan/es-revise-plan/addPlan'
|
||
tips = '添加'
|
||
}
|
||
let arr = JSON.parse(JSON.stringify(this.addForm))
|
||
this.addForm.unitName = arr.unitName
|
||
arr.area = arr.area.join(',')
|
||
this.addForm = {...this.addForm}
|
||
this.$http.post(url, this.addForm, {
|
||
_this: this
|
||
}, res => {
|
||
if (res.ok) {
|
||
if (res.message === '操作成功') {
|
||
this.$message.success(tips + '成功')
|
||
if(this.DrawerType === 'add'){
|
||
this.addForm.esId = res.data
|
||
}
|
||
this.getData()
|
||
if(this.DrawerType === 'add'){
|
||
this.addForm.addFlag = '1'
|
||
this.addForm.prcCreateUser = this.$store.getters.userInfo.userId
|
||
this.addForm.prcCreateUserName = this.$store.getters.userInfo.userName
|
||
this.addForm.nowEsId = res.data
|
||
this.addForm.type = '5'
|
||
var json = Object.assign(this.addForm)
|
||
this.$http.post('lawss/activiti/startProcessRollBack', {
|
||
createUser: this.$store.getters.userInfo.userId,
|
||
createUserName: this.$store.getters.userInfo.userName,
|
||
type: '25',
|
||
json: JSON.stringify({
|
||
qbfsForm: this.addForm
|
||
})
|
||
}, {}, res => {
|
||
if (res.ok) {
|
||
this.$http.post('lawss/activiti/completeTask', {
|
||
taskIds: res.data,
|
||
userId : this.$store.getters.userInfo.userId,
|
||
json: JSON.stringify(json)
|
||
}, {
|
||
_this: this
|
||
}, res => {
|
||
if (res.success) {
|
||
this.submitLoading = false
|
||
this.addDrawer = false
|
||
// this.$message.success(res.message)
|
||
}
|
||
})
|
||
}
|
||
})
|
||
}
|
||
} else {
|
||
this.addDrawer = false
|
||
this.$message.warning(res.data)
|
||
this.getData()
|
||
}
|
||
} else {
|
||
this.$message.warning(tips + '失败')
|
||
}
|
||
})
|
||
} else {
|
||
this.$message.warning('请检查表单是否填写正确')
|
||
}
|
||
})
|
||
},
|
||
addDrawerClose () {
|
||
this.addDrawer = false
|
||
this.LXDList = []
|
||
},
|
||
addData () {
|
||
this.addDrawerTitle = '新增'
|
||
this.addForm = {
|
||
bussSort:'',
|
||
esMatingRelations: '',
|
||
technologic: '',
|
||
useLevel: '',
|
||
isRelate: '',
|
||
esStandRelations: '',
|
||
area: [],
|
||
tsJson: '',
|
||
tsJsonName: '',
|
||
rqbJson: '',
|
||
rqbName: '',
|
||
unit: '', // 单位
|
||
unitName: '',
|
||
esName: '', // 企标名称
|
||
planStatus: '', // 计划状态
|
||
reviseStatus: '', // 制修订状态
|
||
resPerson: '', // 评审责任人
|
||
resPersonName: '',
|
||
wgLeader: '', // 工作组组长
|
||
wgLeaderName: '',
|
||
draftTime: '', // 计划标准初稿完成时间
|
||
releaseTime: '', // 计划标准发布时间
|
||
drafter: '', // 起草人
|
||
drafterName: '',
|
||
LXD:'',
|
||
LXDName:'',
|
||
standNum: ''
|
||
}
|
||
this.DrawerType = 'add'
|
||
this.addForm.planStatus = '6'
|
||
this.$http.get('/lawss/activiti/saveEditFile', {
|
||
model: 'model_lx'
|
||
},{
|
||
_this: this
|
||
}, res => {
|
||
if(res){
|
||
this.addForm.lxd = res.id
|
||
this.addForm.lxdName = '立项单'
|
||
this.LXDList=this.assemble(res.id,'立项单');
|
||
this.addDrawer = true
|
||
}
|
||
|
||
})
|
||
},
|
||
// 更新事件
|
||
relateEvent (item) {
|
||
this.$http.get('esRevisePlanLog/log/queryLogsByPlanId', {
|
||
planId: item.id,
|
||
}, {
|
||
_this: this
|
||
}, res => {
|
||
if (res.data.length > 0) {
|
||
this.relateDialog = true
|
||
this.relateList = res.data
|
||
var i
|
||
for (i = 0; i < this.relateList.length; i++) {
|
||
let obj = {creationUserName: '', creationTime: '', content: ''}
|
||
obj.creationUserName = this.relateList[i].creationUserName
|
||
obj.creationTime = this.relateList[i].creationTime
|
||
obj.content = this.relateList[i].content
|
||
this.relateNowList.push(obj)
|
||
}
|
||
} else {
|
||
this.$message({
|
||
message: '暂无数据',
|
||
type: 'warning'
|
||
})
|
||
}
|
||
}, e => {
|
||
|
||
})
|
||
},
|
||
relateDialogClose () {
|
||
this.relateDialog = false
|
||
this.relateNowList = []
|
||
},
|
||
// 新增数据
|
||
deleteList () {
|
||
if (this.ids.length) {
|
||
this.$confirm('您是否确认删除选中数据?', '提示', {
|
||
confirmButtonText: '确定',
|
||
cancelButtonText: '取消',
|
||
type: 'warning',
|
||
confirmButtonClass: 'common-button-primary',
|
||
roundButton: true
|
||
}).then(() => {
|
||
let ids = ''
|
||
this.ids.forEach(item => {
|
||
if (ids.length > 0) {
|
||
ids += ','
|
||
ids += item
|
||
} else {
|
||
ids = item
|
||
}
|
||
})
|
||
this.$http.get('esRevisePlan/es-revise-plan/delPlans', {
|
||
ids: ids
|
||
}, {
|
||
_this: this
|
||
}, res => {
|
||
if (res.ok) {
|
||
this.$message.success('删除成功')
|
||
this.form.page = 1
|
||
this.getData()
|
||
} else {
|
||
this.$message.warning('删除失败')
|
||
}
|
||
})
|
||
}).catch(() => {})
|
||
} else {
|
||
this.$message.warning('请选择要删除的数据')
|
||
}
|
||
},
|
||
dataSelectChange (val) {
|
||
this.ids = []
|
||
val.forEach(item =>{
|
||
this.ids.push(item.id)
|
||
})
|
||
},
|
||
searchData () {
|
||
this.form.page = 1
|
||
this.getData()
|
||
},
|
||
clearData () {
|
||
this.form.page = 1
|
||
this.form.unit = ''
|
||
this.form.esName = ''
|
||
this.form.planStatus = ''
|
||
this.form.reviseStatus = ''
|
||
this.getData()
|
||
},
|
||
pageChange (page) {
|
||
this.form.page = page
|
||
this.getData()
|
||
},
|
||
pageSizeChange (pageSize) {
|
||
this.form.pageSize = pageSize
|
||
this.getData()
|
||
},
|
||
handleFilePreview(file,type) {
|
||
let id = ""
|
||
let fileName = ""
|
||
let fileNam2 = ""
|
||
if(this.addForm.esName && this.addForm.esName !== ''){
|
||
fileName = this.addForm.esName+'-立项单.docx'
|
||
fileNam2 = this.addForm.esName+'-立项单'
|
||
}else {
|
||
fileName = '立项单.docx'
|
||
fileNam2 = '立项单'
|
||
}
|
||
if(file && file.id){
|
||
id = file.id
|
||
}else {
|
||
id = file.response.data.id
|
||
}
|
||
if (type === 'down') {
|
||
if (id) {
|
||
window.open('/api/lawss/activiti/downloadFileForSar?fileId=' + id +'&oldFileName='+fileName)
|
||
} else {
|
||
this.$message.warning('文件不存在,下载失败')
|
||
}
|
||
} else if(type === 'preview'){
|
||
this.$onlineEditPreview(id,fileNam2,this.$store.getters.userInfo.userId,this.$store.getters.userInfo.userName)
|
||
}else {
|
||
this.$onlineEdit(id,fileNam2,this.$store.getters.userInfo.userId,this.$store.getters.userInfo.userName)
|
||
}
|
||
},
|
||
handleCommand (command) {
|
||
switch (command[1]) {
|
||
case '编辑':
|
||
this.addDrawerTitle = '编辑'
|
||
this.DrawerType = 'edit'
|
||
this.addDrawer = true
|
||
this.addForm = {
|
||
bussSort: command[0].bussSort,
|
||
esMatingRelations: command[0].esMatingRelations,
|
||
technologic: command[0].technologic,
|
||
useLevel: command[0].useLevel,
|
||
isRelate: command[0].isRelate,
|
||
esStandRelations: command[0].esStandRelations,
|
||
area: command[0].area,
|
||
tsJson: command[0].tsJson,
|
||
tsJsonName: command[0].tsJsonName,
|
||
rqbJson: command[0].rqbJson,
|
||
rqbName: command[0].rqbName,
|
||
unitName:command[0].unitName,
|
||
id: command[0].id,
|
||
unit: command[0].unit, // 单位
|
||
esName: command[0].esName, // 企标名称
|
||
planStatus: command[0].planStatus, // 计划状态
|
||
reviseStatus: command[0].reviseStatus, // 制修订状态
|
||
resPerson: command[0].resPerson, // 评审责任人
|
||
wgLeader: command[0].wgLeader, // 工作组组长
|
||
resPersonName: command[0].resPersonName, // 评审责任人
|
||
wgLeaderName: command[0].wgLeaderName, // 工作组组长
|
||
draftTime: command[0].draftTime, // 计划标准初稿完成时间
|
||
releaseTime: command[0].releaseTime, // 计划标准发布时间
|
||
drafterName: command[0].drafterName, // 起草人
|
||
drafter: command[0].drafter,
|
||
}
|
||
if(command[0].lxd && command[0].lxd !== 'null'){
|
||
this.addForm.LXD = command[0].lxd
|
||
let fileName1 = ""
|
||
if(this.addForm.esName && this.addForm.esName !== ''){
|
||
fileName1 = this.addForm.esName+'-立项单'
|
||
}else {
|
||
fileName1 = '立项单'
|
||
}
|
||
this.addForm.lxdName = fileName1
|
||
this.LXDList=this.assemble(command[0].lxd,fileName1)
|
||
}else {
|
||
this.$http.get('/lawss/activiti/saveEditFile', {
|
||
model: 'model_lx'
|
||
},{
|
||
_this: this
|
||
}, res => {
|
||
if(res){
|
||
this.addForm.lxd = res.id
|
||
this.addForm.lxdName = '立项单'
|
||
this.LXDList=this.assemble(res.id,'立项单');
|
||
}
|
||
|
||
})
|
||
}
|
||
|
||
if (typeof (this.addForm.area) === 'string') {
|
||
this.addForm.area = command[0].area.split(',')
|
||
}
|
||
break
|
||
case '删除':
|
||
this.$confirm('您是否确认删除选中数据?', '提示', {
|
||
confirmButtonText: '确定',
|
||
cancelButtonText: '取消',
|
||
type: 'warning',
|
||
confirmButtonClass: 'common-button-primary',
|
||
roundButton: true
|
||
}).then(() => {
|
||
this.$http.get('esRevisePlan/es-revise-plan/delPlans', {
|
||
ids: command[0].id
|
||
}, {
|
||
_this: this
|
||
}, res => {
|
||
if (res.ok) {
|
||
this.$message.success('删除成功')
|
||
this.form.page = 1
|
||
this.getData()
|
||
} else {
|
||
this.$message.warning('删除失败')
|
||
}
|
||
})
|
||
}).catch(() => {})
|
||
break
|
||
case '查看':
|
||
this.addDrawerTitle = '查看'
|
||
this.DrawerType = 'see'
|
||
this.addDrawer = true
|
||
this.addForm = command[0]
|
||
this.addForm.LXD = command[0].lxd
|
||
if(command[0].lxd && command[0].lxd !== 'null'){
|
||
this.addForm.LXD = command[0].lxd
|
||
let fileName1 = ""
|
||
if(this.addForm.esName && this.addForm.esName !== ''){
|
||
fileName1 = this.addForm.esName+'-立项单'
|
||
}else {
|
||
fileName1 = '立项单'
|
||
}
|
||
this.addForm.lxdName = fileName1
|
||
this.LXDList=this.assemble(command[0].lxd,fileName1)
|
||
}else {
|
||
this.$http.get('/lawss/activiti/saveEditFile', {
|
||
model: 'model_lx'
|
||
},{
|
||
_this: this
|
||
}, res => {
|
||
if(res){
|
||
this.addForm.lxd = res.id
|
||
this.addForm.lxdName = '立项单'
|
||
this.LXDList=this.assemble(res.id,'立项单');
|
||
}
|
||
|
||
})
|
||
}
|
||
if (typeof (this.addForm.area) === 'string') {
|
||
this.addForm.area = command[0].area.split(',')
|
||
}
|
||
break
|
||
}
|
||
},
|
||
assemble(ids,names){
|
||
let list= new Array();
|
||
let nameArray=names.split(',');
|
||
if (ids) {
|
||
let idArray=ids.split(',');
|
||
for(let i=0; i<idArray.length; i++){
|
||
list.push({id:idArray[i],name:nameArray[i]});
|
||
}
|
||
}
|
||
return list;
|
||
},
|
||
getData () {
|
||
this.loading = true
|
||
this.$http.post('esRevisePlan/es-revise-plan/queryAllPlans', this.form, {
|
||
_this: this
|
||
}, res => {
|
||
this.loading = false
|
||
if (res.ok) {
|
||
this.data = res.data.list
|
||
this.total = res.data.count
|
||
}
|
||
})
|
||
},
|
||
},
|
||
computed: {},
|
||
mounted() {
|
||
this.getData()
|
||
this.$http.get('sys/dictype/getDicTypeListCode', '', {
|
||
_this: this
|
||
}, res => {
|
||
this.QCDWList = res.data.QCDW // 起草单位
|
||
this.standSystemOptions = res.data.TXLBBUSS // 体系结构
|
||
this.standSortOptions = res.data.BUSSSTANDCLASS // 标准类别
|
||
this.BZList = res.data.ENERGYTYPES
|
||
this.CBList = res.data.DEGREESTANDARD
|
||
}, e => {
|
||
})
|
||
},
|
||
}
|
||
</script>
|
||
|
||
<style lang="less" scoped>
|
||
@import '~@/assets/styles/mixins';
|
||
@import '~@/assets/styles/style';
|
||
#enterpriseStandardPlan {
|
||
height: 100%;
|
||
background: #fff;
|
||
.classDisplay {
|
||
/deep/.el-form-item__content {
|
||
width: calc(~'100% - 180px');
|
||
.el-input__inner {
|
||
width: calc(~'100% - 80px');
|
||
}
|
||
}
|
||
}
|
||
.standardForComments {
|
||
height: calc(~'100% - 56px');
|
||
background: #fff;
|
||
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;
|
||
}
|
||
}
|
||
}
|
||
/deep/.table-wrap {
|
||
.el-table__fixed {
|
||
height: calc(~'100% - 20px') !important;
|
||
}
|
||
}
|
||
.add-form-item {
|
||
/deep/.el-form-item__content {
|
||
width: calc(~'100% - 180px');
|
||
height: 50px;
|
||
}
|
||
}
|
||
display: flex;
|
||
flex-direction: column;
|
||
.content-center {
|
||
padding: 10px;
|
||
}
|
||
.container {
|
||
flex: 1;
|
||
overflow: hidden;
|
||
display: flex;
|
||
flex-direction: column;
|
||
.table-wrap {
|
||
flex: 1;
|
||
overflow: hidden;
|
||
position: relative;
|
||
.inner-wrap {
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
}
|
||
.footer {
|
||
/deep/ .pagination {
|
||
position: static;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
</style>
|