Files
foton-laws-system-front/src/pages/knowledgeGraph/index.vue
T
2021-05-25 18:06:45 +08:00

2865 lines
102 KiB
Vue

<template>
<div class="work-group">
<div class="work-group-header">
<div class="header-btn-group">
<el-button
type="primary"
class="common-button-primary"
round
@click="insertData"
:disabled="addForm.sarGroupMenuEO.pid === '' || addForm.menuType === 'STAND'"
v-btn-permission="'NK2ZAYPPM7RE8YLECWK7'"
>新增
</el-button>
<el-button
type="default"
class="common-button-default"
round
@click="updateData"
:disabled="!detailData.menuId || addForm.pMenuName === '标准工作组' || detailData.nodeType === 'STAND'"
v-btn-permission="'EQBDWRYLUTQPULTWMSGY'"
>编辑
</el-button>
<el-button
type="default"
class="common-button-default"
round
@click="selectData"
:disabled="!detailData.menuId || addForm.pMenuName === '标准工作组'"
v-btn-permission="'HSQA4LBTXJ55B9JWGLZD'"
>查看
</el-button>
<el-button
type="default"
class="common-button-default"
round
@click="handleDelData"
:disabled="!detailData.menuId || addForm.pMenuName === '标准工作组'"
v-btn-permission="'M33UXVE66VLBKZUE6MGA'"
>删除
</el-button>
<el-button
v-show="detailData.nodeType === 'GROUP'"
type="default"
class="common-button-default"
round
@click="handleAddStandardBtnClick"
v-btn-permission="'KHNQ2FGSJTUDACW4SR7X'"
>添加标准
</el-button>
</div>
<div class="node-info">
<!-- <el-button>停用</el-button>-->
<!-- <el-button>启用</el-button>-->
<!-- <el-button>派发</el-button>-->
<!-- <el-button>编辑Master方案</el-button>-->
<span v-if="currentNode !== ''"><a>当前节点:</a> {{ currentNode }}</span>
</div>
<div class="export">
<el-button
type="primary"
round
@click="handleExport"
class="common-button-primary"
v-if="detailData.nodeType !== 'STAND'"
v-btn-permission="'H99FTZPBPCE57SE5JTVS'"
>导出</el-button>
</div>
</div>
<div class="content">
<graph
class="graph"
:data="kgTreeList"
@nodeClick="handleNodeClick"
@edgeClick="handleEdgeClick"
></graph>
</div>
<!-- 新增节点抽屉 -->
<el-drawer :title="addDrawerTitle"
:visible.sync="drawerAddFormVisible"
:wrapperClosable="false"
@close="handleCloseDrawer"
v-if="drawerAddFormVisible"
size="800px">
<div class="demo-drawer-content">
<div class="el-drawer-form">
<el-form
ref="addForm"
:model="addForm"
:rules="addFormRules"
class="label-input-form"
>
<el-form-item :label="belongLabel" prop="pMenuName" label-width="150px" class="add-form-item form-item-disabled">
<el-input v-model="addForm.pMenuName"
:placeholder="'请输入' + belongLabel + '名称'"
clearable
max-length="30"
disabled
></el-input>
</el-form-item>
<!----------------------- 节点类型 ----------------------->
<el-form-item label="节点类型" prop="menuType" label-width="150px" class="add-form-item form-item-disabled">
<el-select v-model="addForm.menuType"
placeholder="请选择节点类型"
max-length="30"
disabled
clearable>
<el-option value="BWH" label="标委会"></el-option>
<el-option value="FBW" label="分标委"></el-option>
<el-option value="GROUP" label="工作组"></el-option>
<el-option value="STAND" label="标准"></el-option>
</el-select>
</el-form-item>
<!----------------------- 编号 ----------------------->
<el-form-item
label="编号"
prop="meunNo"
label-width="150px"
class="add-form-item"
v-if="type1">
<el-input v-model="addForm.meunNo"
placeholder="请输入编号"
maxlength="30"
clearable
></el-input>
</el-form-item>
<el-form-item :label="addMenuNameLabel" prop="menuName" label-width="150px" class="add-form-item">
<el-input v-model="addForm.menuName"
:placeholder="'请输入' + addMenuNameLabel"
maxlength="30"
clearable
></el-input>
</el-form-item>
<!----------------------- 性质 ----------------------->
<el-form-item
label="性质"
prop="menuQuality"
label-width="150px"
class="add-form-item"
v-if="type1">
<el-select v-model="addForm.menuQuality"
placeholder="请选择性质"
clearable>
<el-option value="1" label="技术委员会"></el-option>
<el-option value="2" label="行业协会"></el-option>
<el-option value="3" label="团体联盟"></el-option>
</el-select>
</el-form-item>
<!----------------------- 状态 ----------------------->
<el-form-item label="状态" prop="menuState" label-width="150px" class="add-form-item">
<el-select v-model="addForm.menuState"
placeholder="请选择节点类型"
clearable>
<el-option value="1" label="计划成立"></el-option>
<el-option value="2" label="运行中"></el-option>
<el-option value="3" label="已结束"></el-option>
</el-select>
</el-form-item>
<!----------------------- 换届时间 ----------------------->
<el-form-item
label="换届时间"
prop="menuChangeTime"
label-width="150px"
class="add-form-item"
v-if="type3">
<el-date-picker
v-model="addForm.menuChangeTime"
placeholder="请选择换届时间"
:editable="false"
clearable>
</el-date-picker>
</el-form-item>
<!----------------------- 标准化工作领域 ----------------------->
<el-form-item
label="标准化工作领域"
prop="menuField"
label-width="150px"
class="add-form-item"
v-if="type3">
<el-input
v-model="addForm.menuField"
placeholder="请填写标准化工作领域"
maxlength="500"
clearable>
</el-input>
</el-form-item>
<!----------------------- 备注 ----------------------->
<el-form-item
label="备注"
prop="menuRemark"
label-width="150px"
class="add-form-item"
v-if="type3">
<el-input
v-model="addForm.menuRemark"
placeholder="请填写备注"
maxlength="500"
clearable>
</el-input>
</el-form-item>
<!----------------------- 秘书处联系方式 ----------------------->
<el-form-item
prop="nodeType"
class="add-form-item add-form-table-item"
v-if="type3">
<div slot="label" class="table-item-label">
<span>秘书处联系方式</span>
<div class="button-wrap">
<el-button
type="danger"
size="mini"
@click="handleDelContactItem"
v-if="addForm.joinpersonEOList0.length">删除</el-button>
<el-button
type="primary"
size="mini"
@click="handleAddContact">添加联系方式</el-button>
</div>
</div>
<el-table
:data="addForm.joinpersonEOList0"
style="width: 100%"
border
@selection-change="val => delContactList = val"
>
<el-table-column
type="selection"
align="center"
width="55"
v-if="addForm.joinpersonEOList0.length">
</el-table-column>
<el-table-column
label="单位"
min-width="180"
show-overflow-tooltip
prop="joinPersonCompany"
>
<template slot-scope="scope">
<el-input
v-model="scope.row.joinPersonCompany"
placeholder="请填写单位名称"
maxlength="30"></el-input>
</template>
</el-table-column>
<el-table-column
prop="joinPerson"
label="联络人"
min-width="100"
>
<template slot-scope="scope">
<el-input
v-model="scope.row.joinPerson"
placeholder="请填写联络人"
maxlength="30"></el-input>
</template>
</el-table-column>
<el-table-column
prop="joinPersonPhone"
min-width="120"
label="电话"
>
<template slot-scope="scope">
<el-input
v-model="scope.row.joinPersonPhone"
placeholder="请填写电话"
maxlength="30"></el-input>
</template>
</el-table-column>
<el-table-column
prop="joinPersonEmail"
label="邮箱"
min-width="120"
show-overflow-tooltip
>
<template slot-scope="scope">
<el-input
v-model="scope.row.joinPersonEmail"
placeholder="请填写邮箱"
maxlength="30"></el-input>
</template>
</el-table-column>
</el-table>
</el-form-item>
<!----------------------- 我司参与人员 ----------------------->
<el-form-item
prop="nodeType"
class="add-form-item add-form-table-item"
v-if="type3">
<div slot="label" class="table-item-label">
<span>我司参与人员</span>
<div class="button-wrap">
<el-button
type="danger"
size="mini"
@click="handleDelParticipantItem"
v-if="addForm.joinpersonEOList1.length">删除</el-button>
<el-button
type="primary"
size="mini"
@click="handleAddParticipants">添加参与人员</el-button>
</div>
</div>
<el-table
:data="addForm.joinpersonEOList1"
style="width: 100%"
border
@selection-change="val => delParticipantList = val">
<el-table-column
type="selection"
align="center"
width="55"
v-if="addForm.joinpersonEOList1.length">
</el-table-column>
<el-table-column
:label="addForm.sarGroupMenuEO.menuType === 'FBW' ? '我司人员' : '我司委员'"
prop="joinPerson"
show-overflow-tooltip
min-width="180"
>
<template slot-scope="scope">
<el-input
v-model="scope.row.joinPerson"
placeholder="请填写"
maxlength="30"
></el-input>
</template>
</el-table-column>
<el-table-column
prop="joinPersonDept"
label="部门"
width="180"
>
<template slot-scope="scope">
<el-input
v-model="scope.row.joinPersonDept"
placeholder="请填写"
maxlength="30"></el-input>
</template>
</el-table-column>
<el-table-column
label="资料"
prop="joinMaterials"
min-width="130"
>
<template slot-scope="scope">
<table-file
:allowType="['.doc', '.docx', '.xls', '.xlsx', '.pdf']"
v-model="scope.row.joinMaterials"
></table-file>
</template>
</el-table-column>
</el-table>
</el-form-item>
<!----------------------- 集团参与情况 ----------------------->
<el-form-item
label="集团参与情况"
prop="menuJoinPosition"
label-width="150px"
class="add-form-item"
v-if="type3">
<el-input
v-model="addForm.menuJoinPosition"
class="clearable-item"
placeholder="请填写集团参与情况"
clearable>
</el-input>
</el-form-item>
<!----------------------- 支付信息 ----------------------->
<el-form-item
prop="payEOList"
class="add-form-item add-form-table-item"
v-if="type3">
<div slot="label" class="table-item-label">
<span>支付信息</span>
<div class="button-wrap">
<el-button
type="danger"
size="mini"
@click="handleDelPayItem"
v-if="addForm.payEOList.length">删除</el-button>
<el-button
type="primary"
size="mini"
@click="handleAddPay">添加支付信息</el-button>
</div>
</div>
<el-table
:data="addForm.payEOList"
style="width: 100%"
border
@selection-change="val => delPayList = val">
<el-table-column
type="selection"
align="center"
width="55"
v-if="addForm.payEOList.length">
</el-table-column>
<el-table-column
prop="payMoney"
label="费用"
show-overflow-tooltip
min-width="100"
>
<template slot-scope="scope">
<el-input
v-model="scope.row.payMoney"
placeholder="请填写"
maxlength="10"></el-input>
</template>
</el-table-column>
<el-table-column
prop="payYear"
label="年份"
min-width="100"
>
<template slot-scope="scope">
<el-date-picker
v-model="scope.row.payYear"
type="year"
placeholder="请选择"
:editable="false"
></el-date-picker>
</template>
</el-table-column>
<el-table-column
prop="payState"
label="状态"
min-width="80"
>
<template slot-scope="scope">
<el-select
v-model="scope.row.payState"
placeholder="请选择"
>
<el-option value="1" label="已交"></el-option>
<el-option value="2" label="待交"></el-option>
<el-option value="3" label="预算"></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column
prop="payPlan"
label="计划内"
min-width="80"
>
<template slot-scope="scope">
<el-select
v-model="scope.row.payPlan"
placeholder="是否计划内"
>
<el-option value="1" label="是"></el-option>
<el-option value="2" label="否"></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column
prop="payStyle"
label="缴费方式"
min-width="100"
>
<template slot-scope="scope">
<el-select
v-model="scope.row.payStyle"
placeholder="请选择"
>
<el-option value="1" label="年缴"></el-option>
<el-option value="2" label="趸缴"></el-option>
</el-select>
</template>
</el-table-column>
</el-table>
</el-form-item>
<!----------------------- 资料 ----------------------->
<file
class="add-form-item"
:config="{
attrName: '资料',
attrField: 'menuMaterial'
}"
:allowType="['.doc', '.docx', '.xls', '.xlsx', '.pdf']"
v-model="addForm.menuMaterial"
v-if="type3"
></file>
<!----------------------- 参会记录及资料 ----------------------->
<el-form-item
prop="meetEOList"
class="add-form-item add-form-table-item"
v-if="type3 && addForm.sarGroupMenuEO.menuType !== 'GROUP'">
<div slot="label" class="table-item-label">
<span>参会记录及资料</span>
<div class="button-wrap">
<el-button
type="danger"
size="mini"
@click="handleDelMeetItem"
v-if="addForm.meetEOList.length">删除</el-button>
<el-button
type="primary"
size="mini"
@click="handleAddMeet">添加参会记录及资料</el-button>
</div>
</div>
<el-table
:data="addForm.meetEOList"
style="width: 100%"
border
@selection-change="handleMeetEOSelectChange"
>
<el-table-column
width="55"
align="center"
type="selection"
v-if="addForm.meetEOList.length"
></el-table-column>
<el-table-column
label="会议日期"
prop="meetDate"
>
<template slot-scope="scope">
<el-date-picker
v-model="scope.row.meetDate"
placeholder="请选择"
:editable="false"></el-date-picker>
</template>
</el-table-column>
<el-table-column
label="会议名称"
prop="meetName"
>
<template slot-scope="scope">
<el-input
v-model="scope.row.meetName"
placeholder="请输入"
maxlength="10"></el-input>
</template>
</el-table-column>
<el-table-column
label="参会人员"
prop="meetPerson"
>
<template slot-scope="scope">
<input v-model="scope.row.meetPerson" v-show="false">
<el-input
v-model="scope.row.meetPersonNameShow"
placeholder="请选择"
readonly
style="margin-right: 0;"
@click.native="handleVisibleRole(scope.row, scope.$index)"
/>
</template>
</el-table-column>
<!-- <el-table-column-->
<!-- label="参会报告"-->
<!-- prop="meetReport"-->
<!-- >-->
<!-- <template slot-scope="scope">-->
<!-- <el-input-->
<!-- v-model="scope.row.meetReport"-->
<!-- placeholder="请输入"></el-input>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column
label="会议资料"
width="170"
prop="meetMaterial">
<template slot-scope="scope">
<table-file
:allowType="['.doc', '.docx', '.xls', '.xlsx', '.pdf']"
v-model="scope.row.meetMaterial"
></table-file>
</template>
</el-table-column>
</el-table>
</el-form-item>
</el-form>
<loading :loading="loading.submit">正在提交数据</loading>
</div>
</div>
<div class="demo-drawer-footer">
<el-button
round
class="common-button-primary"
icon="el-icon-check"
type="primary"
@click="handleDrawerSubmit"
:loading="loading.submit">提交
</el-button>
<el-button
round
class="common-button-default"
icon="el-icon-close"
@click="handleCloseDrawer">取消</el-button>
</div>
</el-drawer>
<!-- 编辑节点抽屉 -->
<el-drawer :title="addDrawerTitle"
:visible.sync="drawerEditFormVisible"
:wrapperClosable="false"
class="edit-drawer"
destroy-on-close
@close="handleCloseDrawer"
v-if="drawerEditFormVisible"
size="800px">
<div class="demo-drawer-content" v-if="!loading.loadDetail">
<div class="el-drawer-form">
<el-form
ref="addForm"
:model="editForm"
:rules="addFormRules"
class="label-input-form"
>
<el-form-item :label="belongEditLabel" prop="pMenuName" label-width="150px" class="add-form-item form-item-disabled">
<el-input v-model="editForm.pMenuName"
:placeholder="'请输入' + belongLabel + '名称'"
clearable
max-length="30"
disabled
></el-input>
</el-form-item>
<!----------------------- 节点类型 ----------------------->
<el-form-item label="节点类型" prop="menuType" label-width="150px" class="add-form-item form-item-disabled">
<el-select v-model="editForm.menuType"
placeholder="请选择节点类型"
max-length="30"
disabled
clearable>
<el-option value="BWH" label="标委会"></el-option>
<el-option value="FBW" label="分标委"></el-option>
<el-option value="GROUP" label="工作组"></el-option>
<el-option value="STAND" label="标准"></el-option>
</el-select>
</el-form-item>
<!----------------------- 编号 ----------------------->
<el-form-item
label="编号"
prop="meunNo"
label-width="150px"
class="add-form-item"
v-if="editType1">
<el-input v-model="editForm.meunNo"
placeholder="请输入编号"
maxlength="30"
clearable
></el-input>
</el-form-item>
<el-form-item :label="editMenuNameLabel" prop="menuName" label-width="150px" class="add-form-item">
<el-input v-model="editForm.menuName"
:placeholder="'请输入' + editMenuNameLabel"
maxlength="30"
clearable
></el-input>
</el-form-item>
<!----------------------- 性质 ----------------------->
<el-form-item
label="性质"
prop="menuQuality"
label-width="150px"
class="add-form-item"
v-if="editType1">
<el-select v-model="editForm.menuQuality"
placeholder="请选择性质"
clearable>
<el-option value="1" label="技术委员会"></el-option>
<el-option value="2" label="行业协会"></el-option>
<el-option value="3" label="团体联盟"></el-option>
</el-select>
</el-form-item>
<!----------------------- 状态 ----------------------->
<el-form-item label="状态" prop="menuState" label-width="150px" class="add-form-item">
<el-select v-model="editForm.menuState"
placeholder="请选择节点类型"
clearable>
<el-option value="1" label="计划成立"></el-option>
<el-option value="2" label="运行中"></el-option>
<el-option value="3" label="已结束"></el-option>
</el-select>
</el-form-item>
<!----------------------- 换届时间 ----------------------->
<el-form-item
label="换届时间"
prop="menuChangeTime"
label-width="150px"
class="add-form-item"
v-if="editType3">
<el-date-picker
v-model="editForm.menuChangeTime"
placeholder="请选择换届时间"
:editable="false"
clearable>
</el-date-picker>
</el-form-item>
<!----------------------- 标准化工作领域 ----------------------->
<el-form-item
label="标准化工作领域"
prop="menuField"
label-width="150px"
class="add-form-item"
v-if="editType3">
<el-input
v-model="editForm.menuField"
placeholder="请填写标准化工作领域"
maxlength="500"
clearable>
</el-input>
</el-form-item>
<!----------------------- 备注 ----------------------->
<el-form-item
label="备注"
prop="menuRemark"
label-width="150px"
class="add-form-item"
v-if="editType3">
<el-input
v-model="editForm.menuRemark"
placeholder="请填写备注"
maxlength="500"
clearable>
</el-input>
</el-form-item>
<!----------------------- 秘书处联系方式 ----------------------->
<el-form-item
prop="nodeType"
class="add-form-item add-form-table-item"
v-if="editType3">
<div slot="label" class="table-item-label">
<span>秘书处联系方式</span>
<div class="button-wrap">
<el-button
type="danger"
size="mini"
@click="handleDelContactItem"
v-if="editForm.joinpersonEOList0.length">删除</el-button>
<el-button
type="primary"
size="mini"
@click="handleAddContact">添加联系方式</el-button>
</div>
</div>
<el-table
:data="editForm.joinpersonEOList0"
style="width: 100%"
border
@selection-change="val => delContactList = val"
>
<el-table-column
type="selection"
align="center"
width="55"
v-if="editForm.joinpersonEOList0.length">
</el-table-column>
<el-table-column
label="单位"
min-width="180"
show-overflow-tooltip
prop="joinPersonCompany"
>
<template slot-scope="scope">
<el-input
v-model="scope.row.joinPersonCompany"
placeholder="请填写单位名称"
maxlength="30"></el-input>
</template>
</el-table-column>
<el-table-column
prop="joinPerson"
label="联络人"
min-width="100"
>
<template slot-scope="scope">
<el-input
v-model="scope.row.joinPerson"
placeholder="请填写联络人"
maxlength="30"></el-input>
</template>
</el-table-column>
<el-table-column
prop="joinPersonPhone"
min-width="120"
label="电话"
>
<template slot-scope="scope">
<el-input
v-model="scope.row.joinPersonPhone"
placeholder="请填写电话"
maxlength="30"></el-input>
</template>
</el-table-column>
<el-table-column
prop="joinPersonEmail"
label="邮箱"
min-width="120"
show-overflow-tooltip
>
<template slot-scope="scope">
<el-input
v-model="scope.row.joinPersonEmail"
placeholder="请填写邮箱"
maxlength="30"></el-input>
</template>
</el-table-column>
</el-table>
</el-form-item>
<!----------------------- 我司参与人员 ----------------------->
<el-form-item
prop="nodeType"
class="add-form-item add-form-table-item"
v-if="editType3">
<div slot="label" class="table-item-label">
<span>我司参与人员</span>
<div class="button-wrap">
<el-button
type="danger"
size="mini"
@click="handleDelParticipantItem"
v-if="editForm.joinpersonEOList1.length">删除</el-button>
<el-button
type="primary"
size="mini"
@click="handleAddParticipants">添加参与人员</el-button>
</div>
</div>
<el-table
:data="editForm.joinpersonEOList1"
style="width: 100%"
border
@selection-change="val => delParticipantList = val">
<el-table-column
type="selection"
align="center"
width="55"
v-if="editForm.joinpersonEOList1.length">
</el-table-column>
<el-table-column
:label="editForm.sarGroupMenuEO.menuType === 'FBW' ? '我司人员' : '我司委员'"
prop="joinPerson"
show-overflow-tooltip
min-width="180"
>
<template slot-scope="scope">
<el-input
v-model="scope.row.joinPerson"
placeholder="请填写"
maxlength="30"
></el-input>
</template>
</el-table-column>
<el-table-column
prop="joinPersonDept"
label="部门"
width="180"
>
<template slot-scope="scope">
<el-input
v-model="scope.row.joinPersonDept"
placeholder="请填写"
maxlength="30"></el-input>
</template>
</el-table-column>
<el-table-column
label="资料"
prop="joinMaterials"
min-width="130"
>
<template slot-scope="scope">
<table-file
:allowType="['.doc', '.docx', '.xls', '.xlsx', '.pdf']"
v-model="scope.row.joinMaterials"
></table-file>
</template>
</el-table-column>
</el-table>
</el-form-item>
<!----------------------- 集团参与情况 ----------------------->
<el-form-item
label="集团参与情况"
prop="menuJoinPosition"
label-width="150px"
class="add-form-item"
v-if="editType3">
<el-input
v-model="editForm.menuJoinPosition"
class="clearable-item"
placeholder="请填写集团参与情况"
clearable>
</el-input>
</el-form-item>
<!----------------------- 支付信息 ----------------------->
<el-form-item
prop="payEOList"
class="add-form-item add-form-table-item"
v-if="editType3">
<div slot="label" class="table-item-label">
<span>支付信息</span>
<div class="button-wrap">
<el-button
type="danger"
size="mini"
@click="handleDelPayItem"
v-if="editForm.payEOList.length">删除</el-button>
<el-button
type="primary"
size="mini"
@click="handleAddPay">添加支付信息</el-button>
</div>
</div>
<el-table
:data="editForm.payEOList"
style="width: 100%"
border
@selection-change="val => delPayList = val">
<el-table-column
type="selection"
align="center"
width="55"
v-if="editForm.payEOList.length">
</el-table-column>
<el-table-column
prop="payMoney"
label="费用"
show-overflow-tooltip
min-width="100"
>
<template slot-scope="scope">
<el-input
v-model="scope.row.payMoney"
placeholder="请填写"
maxlength="10"></el-input>
</template>
</el-table-column>
<el-table-column
prop="payYear"
label="年份"
min-width="100"
>
<template slot-scope="scope">
<el-date-picker
v-model="scope.row.payYear"
type="year"
placeholder="请选择"
:editable="false"
></el-date-picker>
</template>
</el-table-column>
<el-table-column
prop="payState"
label="状态"
min-width="80"
>
<template slot-scope="scope">
<el-select
v-model="scope.row.payState"
placeholder="请选择"
>
<el-option value="1" label="已交"></el-option>
<el-option value="2" label="待交"></el-option>
<el-option value="3" label="预算"></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column
prop="payPlan"
label="计划内"
min-width="80"
>
<template slot-scope="scope">
<el-select
v-model="scope.row.payPlan"
placeholder="是否计划内"
>
<el-option value="1" label="是"></el-option>
<el-option value="2" label="否"></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column
prop="payStyle"
label="缴费方式"
min-width="100"
>
<template slot-scope="scope">
<el-select
v-model="scope.row.payStyle"
placeholder="请选择"
>
<el-option value="1" label="年缴"></el-option>
<el-option value="2" label="趸缴"></el-option>
</el-select>
</template>
</el-table-column>
</el-table>
</el-form-item>
<!----------------------- 资料 ----------------------->
<file
class="add-form-item"
:config="{
attrName: '资料',
attrField: 'menuMaterial'
}"
:allowType="['.doc', '.docx', '.xls', '.xlsx', '.pdf']"
v-model="editForm.menuMaterial"
v-if="editType3"
></file>
<!----------------------- 参会记录及资料 ----------------------->
<el-form-item
prop="meetEOList"
class="add-form-item add-form-table-item"
v-if="editType3 && editForm.sarGroupMenuEO.menuType !== 'GROUP'">
<div slot="label" class="table-item-label">
<span>参会记录及资料</span>
<div class="button-wrap">
<el-button
type="danger"
size="mini"
@click="handleDelMeetItem"
v-if="editForm.meetEOList.length">删除</el-button>
<el-button
type="primary"
size="mini"
@click="handleAddMeet">添加参会记录及资料</el-button>
</div>
</div>
<el-table
:data="editForm.meetEOList"
style="width: 100%"
border
@selection-change="handleMeetEOSelectChange"
>
<el-table-column
width="55"
align="center"
type="selection"
v-if="editForm.meetEOList.length"
></el-table-column>
<el-table-column
label="会议日期"
prop="meetDate"
>
<template slot-scope="scope">
<el-date-picker
v-model="scope.row.meetDate"
placeholder="请选择"
:editable="false"></el-date-picker>
</template>
</el-table-column>
<el-table-column
label="会议名称"
prop="meetName"
>
<template slot-scope="scope">
<el-input
v-model="scope.row.meetName"
placeholder="请输入"
maxlength="10"></el-input>
</template>
</el-table-column>
<el-table-column
label="参会人员"
prop="meetPerson"
>
<template slot-scope="scope">
<el-popover
placement="bottom"
trigger="click"
:value="false"
>
<input v-model="scope.row.meetPerson" v-show="false">
<el-input
v-model="scope.row.meetPersonNameShow"
slot="reference"
placeholder="请选择"
readonly
style="margin-right: 0;" />
<div class="api">
<tree :treeDivId="`meetPersonTree-${scope.row.delId}`"
ref="meetPerson"
showUser
allDept
check-enable
:editable="false"
@personCheck="(idChecked, nameChecked) => handleMeetPersonChecked(scope.$index, idChecked, nameChecked)"
:spliceNode="scope.row.meetPerson.split(',')"
style="width: 200px;height: 500px;overflow: auto"></tree>
</div>
</el-popover>
</template>
</el-table-column>
<!-- <el-table-column-->
<!-- label="参会报告"-->
<!-- prop="meetReport"-->
<!-- >-->
<!-- <template slot-scope="scope">-->
<!-- <el-input-->
<!-- v-model="scope.row.meetReport"-->
<!-- placeholder="请输入"></el-input>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column
label="会议资料"
width="170"
prop="meetMaterial">
<template slot-scope="scope">
<table-file
:allowType="['.doc', '.docx', '.xls', '.xlsx', '.pdf']"
v-model="scope.row.meetMaterial"
></table-file>
</template>
</el-table-column>
</el-table>
</el-form-item>
</el-form>
<loading :loading="loading.submit">正在提交数据</loading>
</div>
</div>
<div class="demo-drawer-footer" v-if="!loading.loadDetail">
<el-button
round
class="common-button-primary"
icon="el-icon-check"
type="primary"
@click="handleDrawerEditSubmit"
:loading="loading.submit">提交
</el-button>
<el-button
round
class="common-button-default"
icon="el-icon-close"
@click="handleCloseEditDrawer">取消</el-button>
</div>
<loading :loading="loading.loadDetail">正在查询详情</loading>
</el-drawer>
<el-drawer :title="checkTitle"
:visible.sync="detailDrawerVisible"
:wrapperClosable="false"
@close="handleCloseDetailDrawer"
size="800px">
<loading :loading="loading.loadDetail">正在查询详情</loading>
<div class="demo-drawer-content">
<div>
<div class="modular-content">
<div class="modular-item" v-if="detailData.nodeType === 'FBW' || detailData.nodeType === 'BWH'">
<label class="modular-content-p-name">编号</label>
<span class="modular-content-p-val">
{{ detailData.meunNo || '-' }}
</span>
</div>
<div class="modular-item">
<label class="modular-content-p-name">名称</label>
<span class="modular-content-p-val">
{{ detailData.menuName || '-' }}
</span>
</div>
<div class="modular-item" v-if="detailData.nodeType === 'FBW' || detailData.nodeType === 'BWH'">
<label class="modular-content-p-name">性质</label>
<span class="modular-content-p-val">
{{ detailData.menuQuality ? (detailData.menuQuality === '1' ? '技术委员会' : (detailData.menuQuality === '2' ? '行业协会' : '团体联盟')) : '-' }}
</span>
</div>
<div class="modular-item">
<label class="modular-content-p-name">状态</label>
<span class="modular-content-p-val">
{{ detailData.menuState ? (detailData.menuState === '1' ? '计划成立' : (detailData.menuState === '2' ? '运行中' : '已结束')) : '-' }}
</span>
</div>
<!-- <div class="modular-item" v-if="detailData.nodeType === 'GROUP'">-->
<!-- <label class="modular-content-p-name">成立时间</label>-->
<!-- <span class="modular-content-p-val">-->
<!-- {{ $dateFormat(new Date(detailData.joinTime), 'yyyy-MM-dd') }}、{{ $dateFormat(new Date(detailData.stopTime), 'yyyy-MM-dd') }}-->
<!-- </span>-->
<!-- </div>-->
<div class="modular-item" v-if="detailData.nodeType === 'FBW' || detailData.nodeType === 'BWH'">
<label class="modular-content-p-name">换届时间</label>
<span class="modular-content-p-val">
{{ detailData.menuChangeTime ? $dateFormat(detailData.menuChangeTime, 'yyyy-MM-dd') : '-' }}
</span>
</div>
<div class="modular-item" v-if="detailData.nodeType === 'FBW' || detailData.nodeType === 'BWH'">
<label class="modular-content-p-name">标准化工作领域</label>
<span class="modular-content-p-val">
{{ detailData.menuField || '-' }}
</span>
</div>
<div class="modular-item">
<label class="modular-content-p-name">备注</label>
<span class="modular-content-p-val">
{{ detailData.menuRemark || '-' }}
</span>
</div>
<div class="modular-item" v-if="detailData.nodeType === 'FBW' || detailData.nodeType === 'BWH'">
<label class="modular-content-p-name">秘书处联系方式</label>
<div class="modular-content-p-table">
<el-table
:data="detailData.joinpersonEOList0"
border
style="width: 100%">
<el-table-column
prop="joinPersonCompany"
label="单位"
show-overflow-tooltip
min-width="180">
<template slot-scope="scope">
{{ scope.row.joinPersonCompany || '-' }}
</template>
</el-table-column>
<el-table-column
prop="joinPerson"
label="联络人"
min-width="100">
<template slot-scope="scope">
{{ scope.row.joinPerson || '-' }}
</template>
</el-table-column>
<el-table-column
prop="joinPersonPhone"
min-width="120"
label="电话">
<template slot-scope="scope">
{{ scope.row.joinPersonPhone || '-' }}
</template>
</el-table-column>
<el-table-column
prop="joinPersonEmail"
label="邮箱"
min-width="120"
show-overflow-tooltip>
<template slot-scope="scope">
{{ scope.row.joinPersonEmail || '-' }}
</template>
</el-table-column>
</el-table>
</div>
</div>
<div class="modular-item" v-if="detailData.nodeType === 'GROUP'">
<label class="modular-content-p-name">工作组联系方式</label>
<div class="modular-content-p-table">
<el-table
:data="detailData.joinpersonEOList0"
border
style="width: 100%">
<el-table-column
prop="joinPersonCompany"
label="单位"
show-overflow-tooltip
min-width="180">
<template slot-scope="scope">
{{ scope.row.joinPersonCompany || '-' }}
</template>
</el-table-column>
<el-table-column
prop="joinPerson"
label="联络人"
min-width="100">
<template slot-scope="scope">
{{ scope.row.joinPerson || '-' }}
</template>
</el-table-column>
<el-table-column
prop="joinPersonPhone"
min-width="120"
label="电话">
<template slot-scope="scope">
{{ scope.row.joinPersonPhone || '-' }}
</template>
</el-table-column>
<el-table-column
prop="joinPersonEmail"
label="邮箱"
width="120"
show-overflow-tooltip>
<template slot-scope="scope">
{{ scope.row.joinPersonEmail || '-' }}
</template>
</el-table-column>
</el-table>
</div>
</div>
<div class="modular-item" v-if="detailData.nodeType === 'FBW' || detailData.nodeType === 'BWH'">
<label class="modular-content-p-name">我司参与人员</label>
<div class="modular-content-p-table">
<el-table
:data="detailData.joinpersonEOList1"
border
style="width: 100%">
<el-table-column
prop="joinPerson"
label="我司人员"
width="180">
<template slot-scope="scope">
{{ scope.row.joinPerson || '-' }}
</template>
</el-table-column>
<el-table-column
prop="joinPersonDept"
label="部门"
width="180">
<template slot-scope="scope">
{{ scope.row.joinPersonDept || '-' }}
</template>
</el-table-column>
<el-table-column
prop="joinMaterials"
label="资料">
<template slot-scope="scope" v-if="scope.row.joinMaterialsList.length">
<p class="file" :title="item.oldFileName" v-for="item in scope.row.joinMaterials" :key="item.id" @click="downloadFile(item.id)">
{{ item.oldFileName }}
</p>
</template>
<template v-else>-</template>
</el-table-column>
</el-table>
</div>
</div>
<div class="modular-item" v-if="detailData.nodeType === 'GROUP'">
<label class="modular-content-p-name">我司参与人员</label>
<div class="modular-content-p-table">
<el-table
:data="detailData.joinpersonEOList1"
border
style="width: 100%">
<el-table-column
prop="joinPerson"
label="我司委员"
width="180">
<template slot-scope="scope">
{{ scope.row.joinPerson || '-' }}
</template>
</el-table-column>
<el-table-column
prop="joinPersonDept"
label="部门"
width="180">
<template slot-scope="scope">
{{ scope.row.joinPersonDept || '-' }}
</template>
</el-table-column>
<el-table-column
prop="joinMaterials"
label="资料">
<template slot-scope="scope" v-if="scope.row.joinMaterialsList.length">
<p class="file" :title="item.oldFileName" v-for="item in scope.row.joinMaterials" :key="item.id" @click="downloadFile(item.id)">
{{ item.oldFileName }}
</p>
</template>
<template slot-scope="scope" v-if="!scope.row.joinMaterialsList.length">-</template>
</el-table-column>
</el-table>
</div>
</div>
<div class="modular-item">
<label class="modular-content-p-name">集团参与情况</label>
<span class="modular-content-p-val">
{{ detailData.menuJoinPosition || '-' }}
</span>
</div>
<div class="modular-item">
<label class="modular-content-p-name">支付信息</label>
<div class="modular-content-p-table">
<el-table
:data="detailData.payEOList"
border
style="width: 100%">
<el-table-column
prop="payMoney"
label="费用"
show-overflow-tooltip
min-width="100">
</el-table-column>
<el-table-column
prop="payYear"
label="年份"
min-width="100">
<template slot-scope="scope">
{{ $dateFormat(new Date(scope.row.payYear), 'yyyy') }}
</template>
</el-table-column>
<el-table-column
prop="payState"
label="状态"
min-width="80">
<template slot-scope="scope">
{{ scope.row.payState === '1' ? '已交' : (scope.row.payStatus === '2' ? '待交' : '预算') }}
</template>
</el-table-column>
<el-table-column
prop="payPlan"
label="计划内"
min-width="80">
<template slot-scope="scope">
{{ scope.row.payPlan === '1' ? '是' : '否' }}
</template>
</el-table-column>
<el-table-column
prop="payStyle"
label="缴费方式"
min-width="100">
<template slot-scope="scope">
{{ scope.row.payStyle === '1' ? '年缴' : '趸交' }}
</template>
</el-table-column>
</el-table>
</div>
</div>
<div class="modular-item" v-if="detailData.nodeType === 'FBW' || detailData.nodeType === 'BWH'">
<label class="modular-content-p-name">资料</label>
<div class="modular-content-p-flies">
<p
class="files-title"
v-for="(file, index) in detailData.materialList"
:key="index"
@click="downloadFile(file.id)"
>
{{ file.oldFileName }}
</p>
</div>
</div>
<div class="modular-item" v-if="detailData.nodeType === 'GROUP'">
<label class="modular-content-p-name">工作组资料</label>
<div class="modular-content-p-flies">
<p
class="files-title"
v-for="(file, index) in detailData.materialList"
:key="index"
@click="downloadFile(file.id)"
>
{{ file.oldFileName }}
</p>
</div>
</div>
<!-- <div class="modular-item">-->
<!-- <label class="modular-content-p-name">相关标准</label>-->
<!-- <div class="modular-content-p-flies">-->
<!-- <p-->
<!-- class="files-title"-->
<!-- v-for="(stand, index) in detailData.standList"-->
<!-- :key="index"-->
<!-- @click="downloadFile(stand.id)"-->
<!-- >-->
<!-- {{ stand.menuName }}-->
<!-- </p>-->
<!-- </div>-->
<!-- </div>-->
<div class="modular-item">
<label class="modular-content-p-name">参会记录及资料</label>
<div class="modular-content-p-table">
<!-- <div-->
<!-- class="modular-content-p-list-item"-->
<!-- v-for="(meet, index) in detailData.meetEOList"-->
<!-- :key="index"-->
<!-- >-->
<!-- <div>-->
<!-- <label class="modular-content-p-name">参会人员</label>-->
<!-- <span class="modular-content-p-val">-->
<!-- {{ meet.joinPersonIds || '-' }}-->
<!-- </span>-->
<!-- </div>-->
<!-- <div>-->
<!-- <label class="modular-content-p-name">参会时间</label>-->
<!-- <span class="modular-content-p-val">-->
<!-- {{ meet.meetTime || '-' }}-->
<!-- </span>-->
<!-- </div>-->
<!-- <div>-->
<!-- <label class="modular-content-p-name">相关资料</label>-->
<!-- <div class="modular-content-p-flies">-->
<!-- <p-->
<!-- class="files-title"-->
<!-- v-for="(file, index) in meet.attFiles"-->
<!-- :key="index"-->
<!-- >-->
<!-- <a @click="openFileInPdf(file.id, file.oldFileName)" target="_blank"-->
<!-- style="width: calc(100% - 60px);display: inline-block;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;">{{-->
<!-- file.oldFileName-->
<!-- }}</a>-->
<!-- <i title="下载" @click="downloadFile(file.id)" class="icon-download"-->
<!-- style="margin-bottom: 20px;"/>-->
<!-- <i title="下载带水印" @click="downloadFileByWater(file.id, file.fileSuffix)" class="icon-download2"-->
<!-- style="margin-bottom: 20px;"/>-->
<!-- </p>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<el-table
:data="detailData.meetEOList"
border
style="width: 100%">
<el-table-column
prop="meetName"
label="会议名称"
show-overflow-tooltip
width="180">
<template slot-scope="scope">
<!-- {{ $dateFormat(scope.row.meetDate, 'yyyy-MM-dd') }} - {{ scope.row.meetName }}-->
{{ scope.row.meetName }}
</template>
</el-table-column>
<el-table-column
label="会议时间"
show-overflow-tooltip
width="180">
<template slot-scope="scope">
{{ scope.row.meetingTime ? $moment(scope.row.meetingTime).format('YYYY-MM-DD') :
scope.row.meetDate ? $moment(scope.row.meetDate).format('YYYY-MM-DD') : '' }}
</template>
</el-table-column>
<el-table-column
prop="meetPersonName"
label="参会人员"
show-overflow-tooltip
>
<template slot-scope="scope">
{{ scope.row.meetPersonName ? scope.row.meetPersonName.join(',') : '-' }}
</template>
</el-table-column>
<el-table-column
prop="deptName"
label="部门"
show-overflow-tooltip
width="100">
<template slot-scope="scope">
{{ scope.row.deptName ? scope.row.deptName.join(',') : '-' }}
</template>
</el-table-column>
<!-- <el-table-column-->
<!-- prop="meetReport"-->
<!-- show-overflow-tooltip-->
<!-- label="参会报告">-->
<!-- <template slot-scope="scope">-->
<!-- <p>{{ scope.row.meetReport }}</p>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column
prop="materialsList"
show-overflow-tooltip
label="会议报告及资料"
width="180"
>
<template slot-scope="scope" v-if="scope.row.materialsList.length">
<p class="file" :title="item.oldFileName" v-for="item in scope.row.materialsList" :key="item.id" @click="downloadFile(item.id)">
{{ item.oldFileName }}
</p>
</template>
<template v-else>-</template>
</el-table-column>
</el-table>
</div>
</div>
</div>
</div>
<!-- <div class="demo-drawer-footer">-->
<!-- <el-button round class="common-button-primary" icon="el-icon-check" type="primary" @click="handleDetailDrawerSubmit" :loading="drawerSubmitLoading">提交</el-button>-->
<!-- <el-button round class="common-button-default" icon="el-icon-close" @click="handleCloseDetailDrawer">取消</el-button>-->
<!-- </div>-->
</div>
</el-drawer>
<!-- 添加标准抽屉 -->
<el-drawer title="添加标准"
:visible.sync="drawerAddStandardFormVisible"
:wrapperClosable="false"
@close="handleCloseAddStandardDrawer"
v-if="drawerAddStandardFormVisible"
size="800px">
<div class="demo-drawer-content">
<div class="el-drawer-form">
<el-form
ref="addStandardForm"
:model="addStandardForm"
:rules="addStandardFormRules"
class="label-input-form"
>
<el-form-item label="所属工作组" prop="pId" label-width="150px" class="add-form-item form-item-disabled">
<el-input v-model="addStandardForm.pId" v-show="false"></el-input>
<el-input v-model="addStandardForm.gzzName"
placeholder="请选择所属工作组"
clearable
disabled
></el-input>
</el-form-item>
<el-form-item label="标准名称" prop="standardName" label-width="150px" class="add-form-item">
<el-input v-model="addStandardForm.standardName"
placeholder="请输入标准名称"
clearable
></el-input>
</el-form-item>
<el-form-item label="标准号" prop="standardNumber" label-width="150px" class="add-form-item">
<el-input v-model="addStandardForm.standardNumber"
placeholder="请输入标准号"
clearable
></el-input>
</el-form-item>
</el-form>
<loading :loading="loading.submit">正在提交数据</loading>
</div>
<div class="demo-drawer-footer">
<el-button
round
class="common-button-primary"
icon="el-icon-check"
type="primary"
@click="handleAddStandardDrawerSubmit"
:loading="loading.submit">提交
</el-button>
<el-button
round
class="common-button-default"
icon="el-icon-close"
@click="handleCloseAddStandardDrawer">取消</el-button>
</div>
</div>
</el-drawer>
<!-- 2021-03-23上汽全公司选人需求 -->
<org-table
:visible.sync="visibleOrgTable"
title="参会人员"
dialog-model
:config="{
value: orgTableVal,
valueName: orgTableValName
}"
@confirm="isTreeOk"
></org-table>
<loading :loading="loading.loadData">数据正在加载中……</loading>
</div>
</template>
<script>
import Graph from './components/knowledgeGraph'
import PersonSelect from './components/personSelect'
import StandSelect from './components/standSelect'
import axios from 'axios'
import File from './components/file'
import TableFile from './components/tableFile'
import Tree from './components/tree'
export default {
name: 'knowledgeGraphPage',
components: {
Graph,
PersonSelect,
StandSelect,
File,
TableFile,
Tree
},
data () {
return {
kgTreeList: {},
personSelect: [],
drawerVisible: false,
detailDrawerVisible: false,
participantsPopover: false,
drawerAddStandardFormVisible: false,
formData: {
fzwName: '',
gzzName: '',
participants: [],
standard: '',
process: '',
record: ''
},
formRules: {
fzwName: [
{ required: true, message: '请输入分标委名称', trigger: 'blur' },
{ min: 1, max: 100, message: '长度在 1 到 100 个字符', trigger: 'blur' }
],
gzzName: [
{ required: true, message: '请输入工作组名称', trigger: 'blur' },
{ min: 1, max: 100, message: '长度在 1 到 100 个字符', trigger: 'blur' }
],
participants: [
{ required: true, type: 'array', message: '请选择参与人员', trigger: 'change' },
],
standard: [
{ required: true, message: '请输入相关标准', trigger: 'blur' },
],
},
detailData: {
id: ''
},
loading: {
loadData: false,
loadDetail: false,
submit: false
},
checkTitle: '',
editVisible: false,
editForm: {
// 父节点名称
pMenuName: '',
// 节点类型
menuType: '',
sarGroupMenuEO: {
// 父节点id
pid: '',
// 节点类型
nodeType: '',
// 新增节点名称
menuName: '',
// 层级
menuLevel: ''
},
// 编号
meunNo: '',
// 性质
menuQuality: '',
// 状态
menuState: '',
// 换届时间
menuChangeTime: '',
// 集团参与情况
menuJoinPosition: '',
// 秘书处联系方式
joinpersonEOList0: [],
// 我司参与人员
joinpersonEOList1: [],
// 备注
menuRemark: '',
// 标准化工作领域
menuField: '',
// 支付信息
payEOList: [],
// 资料
menuMaterial: '',
// 参会记录及资料
meetEOList: []
},
pMenuName: '',
menuType: '',
// 新增
addForm: {
// 父节点名称
pMenuName: '',
// 节点类型
menuType: '',
sarGroupMenuEO: {
// 父节点id
pid: '',
// 节点类型
nodeType: '',
// 新增节点名称
menuName: '',
// 层级
menuLevel: ''
},
// 编号
meunNo: '',
// 性质
menuQuality: '',
// 状态
menuState: '',
// 换届时间
menuChangeTime: '',
// 集团参与情况
menuJoinPosition: '',
// 秘书处联系方式
joinpersonEOList0: [],
// 我司参与人员
joinpersonEOList1: [],
// 备注
menuRemark: '',
// 标准化工作领域
menuField: '',
// 支付信息
payEOList: [],
// 资料
menuMaterial: '',
// 参会记录及资料
meetEOList: []
}, // 新增
addFormDefault: {
// 父节点名称
pMenuName: '',
// 节点类型
menuType: '',
// sarGroupMenuEO: {
// // 父节点id
// pid: '',
// // 节点类型
// nodeType: '',
// // 新增节点名称
// menuName: '',
// // 层级
// menuLevel: ''
// },
// 编号
meunNo: '',
// 性质
menuQuality: '',
// 状态
menuState: '',
// 换届时间
menuChangeTime: '',
// 集团参与情况
menuJoinPosition: '',
// 秘书处联系方式
joinpersonEOList0: [],
// 我司参与人员
joinpersonEOList1: [],
// 备注
menuRemark: '',
// 标准化工作领域
menuField: '',
// 支付信息
payEOList: [],
// 资料
menuMaterial: '',
// 参会记录及资料
meetEOList: []
},
// 是否正在编辑
isEdit: false,
// 新增或者编辑的弹窗是否可见
drawerAddFormVisible: false,
drawerEditFormVisible: false,
// 新增节点表单校验规则
addFormRules: {
pMenuName: [
{ required: true, message: '父节点名称不能为空', trigger: 'blur' }
],
menuType: [
{ required: true, message: '节点类型不能为空', trigger: 'change' }
],
menuQuality: [
{ required: true, message: '性质不能为空', trigger: 'change' }
],
menuState: [
{ required: true, message: '状态不能为空', trigger: 'change' }
],
meunNo: [
{ required: true, message: '编号不能为空', trigger: 'blur' }
],
menuName: [
{ required: true, validator: this.validMenuName, trigger: 'blur' }
]
},
delContactList: [],
delParticipantList: [],
delPayList: [],
delMeetList: [],
delData: {},
// 当前节点
currentNode: '',
currentNodeData: {},
// 新增表单备份
addFormOrigin: '',
addStandardForm: {
pId: '',
gzzName: '',
standardName: '',
standardNumber: ''
},
addStandardFormForReset: {
pId: '',
gzzName: '',
standardName: '',
standardNumber: ''
},
addStandardFormRules: {
pId: [
{ required: true, message: '所属工作组不能为空', trigger: 'blur' }
],
gzzName: [
{ required: true, message: '所属工作组不能为空', trigger: 'blur' }
],
standardName: [
{ required: true, message: '标准名称不能为空', trigger: 'blur' }
],
standardNumber: [
{ required: true, message: '标准号不能为空', trigger: 'blur' }
]
},
visibleOrgTable: false,
orgTableVal: '',
orgTableValName: '',
meetIndex: ''
}
},
computed: {
drawerTitle () {
return this.formData.id ? '编辑' : '新增'
},
addDrawerTitle() {
if (this.isEdit) {
const type = this.detailData.nodeType
switch (type) {
case 'BWH':
return '标委会编辑'
case 'FBW':
return '分标委编辑'
case 'GROUP':
return '工作组编辑'
case 'STAND':
return '标准编辑'
}
} else {
switch (this.addForm.sarGroupMenuEO.menuType) {
case 'BWH':
return '标委会新增'
case 'FBW':
return '分标委新增'
case 'GROUP':
return '工作组新增'
case 'STAND':
return '标准新增'
}
}
},
// 菜单名称
addMenuNameLabel() {
return this.addForm.sarGroupMenuEO.menuType === 'BWH' ? '标委会名称' : (this.addForm.sarGroupMenuEO.menuType === 'FBW' ? '分标委名称' : (this.addForm.sarGroupMenuEO.menuType === 'GROUP' ? '工作组名称' : '标准名称'))
},
editMenuNameLabel() {
return this.editForm.sarGroupMenuEO.menuType === 'BWH' ? '标委会名称' : (this.editForm.sarGroupMenuEO.menuType === 'FBW' ? '分标委名称' : (this.editForm.sarGroupMenuEO.menuType === 'GROUP' ? '工作组名称' : '标准名称'))
},
// 所属
belongLabel() {
return this.addForm.sarGroupMenuEO.menuType === 'BWH' ? '所属标准工作组' : (this.addForm.sarGroupMenuEO.menuType === 'FBW' ? '所属标委会' : (this.addForm.sarGroupMenuEO.menuType === 'GROUP' ? '所属分标委' : '所属工作组'))
},
belongEditLabel() {
return this.editForm.sarGroupMenuEO.menuType === 'BWH' ? '所属标准工作组' : (this.editForm.sarGroupMenuEO.menuType === 'FBW' ? '所属标委会' : (this.editForm.sarGroupMenuEO.menuType === 'GROUP' ? '所属分标委' : '所属工作组'))
},
// 节点类型是标委会或者分标委
type1() {
return this.addForm.sarGroupMenuEO.menuType === 'BWH' || this.addForm.sarGroupMenuEO.menuType === 'FBW'
},
editType1() {
return this.editForm.sarGroupMenuEO.menuType === 'BWH' || this.editForm.sarGroupMenuEO.menuType === 'FBW'
},
// 节点类型是工作组或者标准
type2() {
return this.addForm.sarGroupMenuEO.menuType === 'GROUP' || this.addForm.sarGroupMenuEO.menuType === 'STAND'
},
editType2() {
return this.editForm.sarGroupMenuEO.menuType === 'GROUP' || this.editForm.sarGroupMenuEO.menuType === 'STAND'
},
// 节点类型
type3() {
return this.addForm.sarGroupMenuEO.menuType !== ''
},
editType3() {
return this.editForm.sarGroupMenuEO.menuType !== ''
}
},
methods: {
handleNodeClick (node) {
const data = node._cfg.model
this.currentNode = data.nodeName
this.currentNodeData = data
this.addForm.pMenuName = data.nodeName
this.addForm.menuType = data.nodeType === 'ROOT' ? 'BWH' : (data.nodeType === 'BWH' ? 'FBW' : (data.nodeType === 'FBW' ? 'GROUP' : 'STAND'))
this.pMenuName = this.addForm.pMenuName
this.menuType = this.addForm.menuType
this.addForm.sarGroupMenuEO = {
pid: data.id,
menuType: data.nodeType === 'ROOT' ? 'BWH' : (data.nodeType === 'BWH' ? 'FBW' : (data.nodeType === 'FBW' ? 'GROUP' : 'STAND')),
menuLevel: data.nodeType === 'ROOT' ? '1' : (data.nodeType === 'BWH' ? '2' : (data.nodeType === 'FBW' ? '3' : '4'))
}
if (data.nodeType !== 'ROOT') {
const level = parseInt(data.level)
this.detailData = {
menuId: data.id,
nodeType: data.nodeType,
nodeName: data.nodeName,
parentId: data.parentNodeId,
standFlag: data.standFlag,
data: data.data
}
}
this.delData = {
menuId: data.id,
menuName: data.nodeName,
children: data.children,
nodeType: data.nodeType,
pid: data.parentNodeId,
menuLevel: data.level
}
// this.$message.success('节点被点击' + data.name)
},
handleEdgeClick (edge) {
// this.$message.success('边被点击')
},
handleCloseAddStandardDrawer () {
this.drawerAddStandardFormVisible = false
},
handleCloseEditDrawer() {
this.drawerEditFormVisible = false
},
/**
* @description: 节点新增/编辑提交
* @date: 2020-11-06 15:10:26
* @auth: chenxiaoxi
*/
handleDrawerSubmit () {
this.$refs['addForm'].validate((valid) => {
if (valid) {
this.loading.submit = true
const data = JSON.parse(JSON.stringify(this.addForm))
if (data.menuChangeTime !== '') {
data.menuChangeTime = new Date(data.menuChangeTime).getTime()
}
data.sarGroupMenuEO.menuName = data.menuName
data.menuName = undefined
data.menuType = undefined
this.$http.axios({
url: '/api/lawss/sarGroupMenu/insertMenu',
method: 'post',
data
}).then(res => {
this.loading.submit = false
if (res.data.ok) {
this.$message.success('新增成功')
this.selectKGTreeList()
this.drawerAddFormVisible = false
this.$refs['addForm'].resetFields()
} else {
this.$message.warning(res.data.message)
}
}).catch(e => {
this.loading.submit = false
this.$message.warning(res.data.message)
})
}
})
// this.drawerVisible = false
},
handleDrawerEditSubmit () {
this.$refs['addForm'].validate((valid) => {
if (valid) {
this.loading.submit = true
const data = JSON.parse(JSON.stringify(this.editForm))
if (data.menuChangeTime !== '') {
data.menuChangeTime = new Date(data.menuChangeTime).getTime()
}
data.sarGroupMenuEO.menuName = data.menuName
data.menuName = undefined
data.menuType = undefined
this.$http.axios({
url: '/api/lawss/sarGroupDetail/updateDetail',
method: 'post',
data
}).then(res => {
this.loading.submit = false
if (res.data.ok) {
this.$message.success('更新成功')
this.selectKGTreeList()
this.drawerEditFormVisible = false
} else {
this.$message.warning(res.data.message)
}
}).catch(e => {
this.loading.submit = false
this.$message.warning(res.data.message)
})
}
})
// this.drawerVisible = false
},
handleCloseDetailDrawer () {
},
insertData () {
this.isEdit = false
if (this.addForm.sarGroupMenuEO.pid !== '') {
this.drawerAddFormVisible = true
this.$nextTick(() => {
this.$refs['addForm'].resetFields()
// 清空表单内容
let sarGroupMenuEO = this.addForm.sarGroupMenuEO
this.addForm = {...this.addFormDefault}
this.addForm.pMenuName = this.pMenuName
this.addForm.menuType = this.menuType
this.addForm.sarGroupMenuEO = sarGroupMenuEO
this.addForm.joinpersonEOList0 = []
this.addForm.joinpersonEOList1 = []
this.addForm.payEOList = []
this.addForm.meetEOList = []
})
}
},
/**
* @description: 节点更新
* @date: 2020-11-18 14:36:27
* @auth: chenxiaoxi
*/
updateData () {
this.isEdit = true
this.drawerEditFormVisible = true
this.getMenuDetail(this.detailData['menuId'])
.then(res => {
this.editForm = JSON.parse(JSON.stringify(res))
this.editForm.pMenuName = res.pidDetail.menuName
this.editForm.menuType = res.nodeType
})
},
// 查看
selectData () {
const detailData = this.detailData
if (detailData.nodeType === 'STAND') {
if (detailData.standFlag === 1) {
const { standType, id } = detailData.data
let routeUrl = this.$router.resolve({
name: 'OtherStandardDetails',
params: {
id,
pageType: `${standType}_STAND`
}
})
window.open(routeUrl.href, '_blank')
} else {
this.$message.warning('该标准不在系统内')
}
} else {
this.checkTitle = this.detailData.nodeName + '详情'
this.detailDrawerVisible = true
this.getMenuDetail(this.detailData['menuId'])
.then(res => {
this.detailData = Object.assign({}, this.detailData, res)
})
}
},
// 删除
handleDelData() {
if (this.delData.children.length && this.delData.nodeType !== 'GROUP') {
this.$message.warning('删除失败,该节点下包含子节点')
} else {
this.$confirm('您是否确认删除?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$http.axios({
url: '/api/lawss/sarGroupMenu/deleteMenu',
method: 'post',
data: {
id: this.delData.menuId,
menuName: this.delData.menuName,
menuType: this.delData.nodeType,
menuLevel: this.delData.menuLevel,
pid: this.delData.pid
}
}).then(res => {
if (res.data.ok) {
this.$message({
type: 'success',
message: '删除成功!'
})
this.selectKGTreeList()
} else {
this.$message({
type: 'warning',
message: res.data.message
})
}
}).catch(e => {
})
}).catch(() => {
})
}
},
selectKGTreeList () {
this.delData = {}
return new Promise((resolve, reject) => {
this.loading.loadData = true
this.$http.get('lawss/sarGroupMenu/getMenu', {}, {},
res => {
const dataObj = JSON.parse(res.data)
this.kgTreeList = dataObj[0]
this.loading.loadData = false
resolve(res)
},
err => {
this.loading.loadData = false
reject(err)
}
)
})
},
openFileInPdf (attId, oldFileName) {
// 缺少文件
if (this.$hasPermission('ZWBGBNTL11')) {
this.$http.get('lawss/sarStandFile/queryConvertAtt', {
attId: attId
}, {
_this: this
}, res => {
if (res.data) {
let fileObj = {}
fileObj.fileId = res.data.attId
fileObj.fileName = oldFileName
let fileList = []
let repeatData = 0
if (sessionStorage.getItem('fileInfo')) {
fileList = JSON.parse(sessionStorage.getItem('fileInfo'))
if (fileList != null && fileList.length > 0) {
for (let i = 0; i < fileList.length; i++) {
if (fileList[i].fileId === res.data.attId) {
repeatData = 1
break
}
}
if (repeatData === 0) {
fileList.push(fileObj)
fileList = JSON.stringify(fileList)
sessionStorage.setItem('fileInfo', fileList)
}
}
} else {
fileList.push(fileObj)
fileList = JSON.stringify(fileList)
sessionStorage.setItem('fileInfo', fileList)
}
window.open('/static/pdf/web/viewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + res.data.attId))
} else {
this.$message.error('文档未转换成功或本地读取不到该文档')
}
}, e => {
this.$message.error('文档未转换成功或本地读取不到该文档')
})
} else {
this.$message.error('没有在线预览文档权限!')
}
},
downloadFile (attId) {
if (attId != null && attId !== '') {
window.location.href = '/api/att/attFile/downloadFileForSar?fileId=' + attId
} else {
this.$message.error('请选择要下载的文件')
}
},
downloadFileByWater (attId, fileSuffix) {
if (fileSuffix !== 'pdf' && fileSuffix !== 'PDF') {
this.$message.error('水印下载仅支持PDF,pdf格式文件')
} else {
if (attId != null && attId !== '') {
window.location.href = '/api/att/attFile/downloadFileForSarWaterMark?fileId=' + attId
} else {
this.$message.error('请选择要下载的文件')
}
}
},
// 查看详情
getMenuDetail(menuId) {
return new Promise((resolve, reject) => {
this.loading.loadDetail = true
this.$http.post('lawss/sarGroupDetail/getMenuDetail', {
menuId: menuId
}, {}, res => {
this.loading.loadDetail = false
if (res.data.meetEOList && res.data.meetEOList.length) {
res.data.meetEOList.map(item => {
item.meetPersonNameShow = item.meetPersonName.join(',')
})
}
const data = {
...res.data,
nodeType: this.detailData.nodeType
}
resolve(data)
}, e => {
this.loading.loadDetail = false
})
})
},
/**
* @description: 节点名称自定义校验
* @date: 2020-11-06 15:01:22
* @auth: chenxiaoxi
*/
validMenuName(rule, value, callback) {
if (!value) {
const nodeType = this.addForm.sarGroupMenuEO.menuType
const ERR_TIPS = nodeType === 'BWH' ? '标委会名称不能为空' : (nodeType === 'FBW' ? '分标委名称不能为空' : (nodeType === 'GROUP' ? '工作组名称不能为空' : '标准'))
return callback(new Error(ERR_TIPS))
} else {
callback()
}
},
// 添加联系方式条目
handleAddContact() {
if (this.isEdit) {
this.editForm.joinpersonEOList0.push({
id: new Date().getTime(),
joinPersonCompany: '',
joinPerson: '',
joinPersonPhone: '',
joinPersonEmail: ''
})
} else {
this.addForm.joinpersonEOList0.push({
id: new Date().getTime(),
joinPersonCompany: '',
joinPerson: '',
joinPersonPhone: '',
joinPersonEmail: ''
})
}
},
// 移除联系方式条目
handleDelContactItem() {
if (this.delContactList.length) {
this.$confirm('您是否确认删除选中条目?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
confirmButtonClass: 'common-button-primary',
roundButton: true
}).then(() => {
new Promise((resolve, reject) => {
const sourceData = this.isEdit ? JSON.parse(JSON.stringify(this.editForm.joinpersonEOList0)) : JSON.parse(JSON.stringify(this.addForm.joinpersonEOList0))
for (let i = 0; i < this.delContactList.length; i++) {
let delIndex = -1
for (let j = 0; j < sourceData.length; j++) {
if (this.delContactList[i].id === sourceData[j].id) {
delIndex = j
}
}
if (delIndex !== -1) {
this.delContactList.splice(delIndex, 1)
i = i - 1
sourceData.splice(delIndex, 1)
}
if (i === this.delParticipantList.length - 1) {
resolve(sourceData)
}
}
}).then((sourceData) => {
setTimeout(() => {
if (this.isEdit) {
this.editForm.joinpersonEOList0 = JSON.parse(JSON.stringify(sourceData))
} else {
this.addForm.joinpersonEOList0 = JSON.parse(JSON.stringify(sourceData))
}
})
})
}).catch(() => {})
} else {
this.$message.warning('请选择要移除的联系方式条目')
}
},
// 添加参与人员
handleAddParticipants() {
if (this.isEdit) {
this.editForm.joinpersonEOList1.push({
id: new Date().getTime(),
joinPerson: '',
joinPersonDept: '',
joinMaterials: ''
})
} else {
this.addForm.joinpersonEOList1.push({
id: new Date().getTime(),
joinPerson: '',
joinPersonDept: '',
joinMaterials: ''
})
}
},
// 移除参与人员条目
handleDelParticipantItem() {
if (this.delParticipantList.length) {
this.$confirm('您是否确认删除选中条目?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
confirmButtonClass: 'common-button-primary',
roundButton: true
}).then(() => {
new Promise((resolve, reject) => {
const sourceData = this.isEdit ? JSON.parse(JSON.stringify(this.editForm.joinpersonEOList1)) : JSON.parse(JSON.stringify(this.addForm.joinpersonEOList1))
for (let i = 0; i < this.delParticipantList.length; i++) {
let delIndex = -1
for (let j = 0; j < sourceData.length; j++) {
if (this.delParticipantList[i].id === sourceData[j].id) {
delIndex = j
}
}
if (delIndex !== -1) {
this.delParticipantList.splice(delIndex, 1)
i = i - 1
sourceData.splice(delIndex, 1)
}
if (i === this.delParticipantList.length - 1) {
resolve(sourceData)
}
}
}).then((sourceData) => {
setTimeout(() => {
if (this.isEdit) {
this.editForm.joinpersonEOList1 = JSON.parse(JSON.stringify(sourceData))
} else {
this.addForm.joinpersonEOList1 = JSON.parse(JSON.stringify(sourceData))
}
})
})
}).catch(() => {})
} else {
this.$message.warning('请选择要移除的参与人员条目')
}
},
// 添加支付信息
handleAddPay() {
if (this.isEdit) {
this.editForm.payEOList.push({
id: new Date().getTime(),
payMoney: '',
payYear: '',
payState: '',
payPlan: '',
payStyle: ''
})
} else {
this.addForm.payEOList.push({
id: new Date().getTime(),
payMoney: '',
payYear: '',
payState: '',
payPlan: '',
payStyle: ''
})
}
},
// 移除支付信息条目
handleDelPayItem() {
if (this.delPayList.length) {
this.$confirm('您是否确认删除选中条目?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
confirmButtonClass: 'common-button-primary',
roundButton: true
}).then(() => {
new Promise((resolve, reject) => {
const sourceData = this.isEdit ? JSON.parse(JSON.stringify(this.editForm.payEOList)) : JSON.parse(JSON.stringify(this.addForm.payEOList))
for (let i = 0; i < this.delPayList.length; i++) {
let delIndex = -1
for (let j = 0; j < sourceData.length; j++) {
if (this.delPayList[i].id === sourceData[j].id) {
delIndex = j
}
}
if (delIndex !== -1) {
this.delPayList.splice(delIndex, 1)
i = i - 1
sourceData.splice(delIndex, 1)
}
if (i === this.delPayList.length - 1) {
resolve(sourceData)
}
}
}).then((sourceData) => {
setTimeout(() => {
if (this.isEdit) {
this.editForm.payEOList = JSON.parse(JSON.stringify(sourceData))
} else {
this.addForm.payEOList = JSON.parse(JSON.stringify(sourceData))
}
})
})
}).catch(() => {})
} else {
this.$message.warning('请选择要移除的支付信息条目')
}
},
// 添加参会记录及资料
handleAddMeet() {
if (this.isEdit) {
this.editForm.meetEOList.push({
delId: new Date().getTime(),
meetDate: '',
meetName: '',
meetPerson: '',
meetReport: '',
meetPersonNameShow: ''
})
} else {
this.addForm.meetEOList.push({
delId: new Date().getTime(),
meetDate: '',
meetName: '',
meetPerson: '',
meetReport: '',
meetPersonNameShow: ''
})
}
},
// 移除参会记录及资料条目
handleDelMeetItem() {
if (this.delMeetList.length) {
this.$confirm('您是否确认删除选中条目?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
confirmButtonClass: 'common-button-primary',
roundButton: true
}).then(() => {
new Promise((resolve, reject) => {
const sourceData = this.isEdit ? JSON.parse(JSON.stringify(this.editForm.meetEOList)) : JSON.parse(JSON.stringify(this.addForm.meetEOList))
for (let i = 0; i < this.delMeetList.length; i++) {
let delIndex = -1
for (let j = 0; j < sourceData.length; j++) {
if (this.delMeetList[i].delId === sourceData[j].delId) {
delIndex = j
}
}
if (delIndex !== -1) {
this.delMeetList.splice(delIndex, 1)
i = i - 1
sourceData.splice(delIndex, 1)
}
if (i === this.delMeetList.length - 1) {
resolve(sourceData)
}
}
}).then((sourceData) => {
setTimeout(() => {
if (this.isEdit) {
this.editForm.meetEOList = JSON.parse(JSON.stringify(sourceData))
} else {
this.addForm.meetEOList = JSON.parse(JSON.stringify(sourceData))
}
})
})
}).catch(() => {})
} else {
this.$message.warning('请选择要移除的参会记录条目')
}
},
handleMeetEOSelectChange (val) {
this.delMeetList = val
},
// 参会人员选择
handleMeetPersonChecked(index, ids, names) {
if (this.isEdit) {
this.editForm.meetEOList[index].meetPerson = ids
this.editForm.meetEOList[index].meetPersonNameShow = names
} else {
this.addForm.meetEOList[index].meetPerson = ids
this.addForm.meetEOList[index].meetPersonNameShow = names
}
},
handleExport() {
const nodeData = this.currentNodeData
if (!nodeData.id) {
window.open(`/api/lawss/sarGroupDetail/exportInfo`)
} else {
window.open(`/api/lawss/sarGroupDetail/exportInfo?nodeId=${nodeData.nodeId}`)
}
},
handleAddStandardBtnClick() {
this.addStandardForm = {
...this.addStandardFormForReset,
}
this.addStandardForm.pId = this.detailData.menuId
this.addStandardForm.gzzName = this.detailData.nodeName
this.drawerAddStandardFormVisible = true
},
/**
* 添加标准
*/
handleAddStandardDrawerSubmit () {
this.$refs['addStandardForm'].validate((valid) => {
if (valid) {
this.loading.submit = true
const formData = {
"sarGroupMenuEO": {
"menuLevel": 4,
"menuName": this.addStandardForm.standardName,
"menuType": "STAND",
"pid": this.addStandardForm.pId,
"standNo": this.addStandardForm.standardNumber
}
}
this.$http.axios({
url: '/api/lawss/sarGroupMenu/insertMenu',
method: 'post',
data: formData
}).then(res => {
this.loading.submit = false
if (res.data.ok) {
this.$message.success('新增成功')
this.selectKGTreeList()
this.drawerAddStandardFormVisible = false
} else {
this.$message.warning(res.data.message)
}
}).catch(e => {
this.loading.submit = false
this.$message.warning(res.data.message)
})
}
})
// this.drawerVisible = false
},
handleCloseDrawer() {
this.drawerAddFormVisible = false
this.$refs['addForm'].clearValidate()
this.$refs['addForm'].resetFields()
},
// 打开选择参会人员组件
handleVisibleRole (item, index) {
this.meetIndex = index
this.visibleOrgTable = true
this.orgTableVal = item.meetPerson
this.orgTableValName = item.meetPersonNameShow
},
// 点击确定赋值人员
isTreeOk (checkedList) {
let treeUserNameList = []
let treeUserIdList = []
checkedList.map((item, index) => {
if (!item.isParent) {
treeUserNameList.push(item.userName)
treeUserIdList.push(item.userId)
}
})
this.addForm.meetEOList[this.meetIndex].meetPersonNameShow = treeUserNameList.join(',')
this.addForm.meetEOList[this.meetIndex].meetPerson = treeUserIdList.join(',')
this.visibleOrgTable = false
}
},
watch: {
},
mounted() {
this.selectKGTreeList()
$('.container-box').addClass('work-group-wrap')
},
destroyed() {
$('.container-box').removeClass('work-group-wrap')
}
}
</script>
<style lang="less" scoped>
.modular-content {
& > div {
border-bottom: 1px solid #E5E5E5;
.modular-content-p-list {
margin-left: 20px;
.modular-content-p-list-item {
border-bottom: 1px solid #E5E5E5;
&:last-child {
border-bottom: none;
}
}
}
.modular-content-p-name {
display: inline-block;
width: 220px;
height: 50px;
line-height: 50px;
font-size: 14px;
color: #333333;
vertical-align: top;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.modular-content-p-val {
display: inline-block;
width: calc(~'100% - 225px');
height: 50px;
line-height: 50px;
font-size: 14px;
color: #999999;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
/deep/ .el-input__inner {
border: none;
}
/deep/ .el-select {
width: 100%;
}
/deep/ .el-date-editor {
width: 100%;
}
&.join-and-stop {
display: inline-flex;
.el-date-editor {
flex: auto;
overflow: hidden;
}
}
}
.modular-content-p-flies {
position: relative;
display: inline-block;
width: calc(~'100% - 225px');
min-height: 50px;
& > .files-title {
height: 50px;
line-height: 50px;
font-size: 16px;
color: #409EFF;
max-width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
&:hover {
cursor: pointer;
text-decoration: underline;
}
& > a {
cursor: pointer;
}
& > i {
display: inline-block;
margin-left: 3px;
width: 18px;
height: 16px;
background-repeat: no-repeat;
background-size: 100% 100%;
background-position: center center;
vertical-align: sub;
cursor: pointer;
}
.icon-download {
background-image: url("~assets/images/shangqi/img/download.png");
}
.icon-download2 {
background-image: url("~assets/images/shangqi/img/download2.png");
}
}
.decomposition-btn {
position: absolute;
top: 10px;
right: 0;
padding: 0 10px;
height: 30px;
line-height: 30px;
font-size: 14px;
border-radius: 15px;
color: #07C160;
border: 1px solid #07C160;
background: rgba(1, 193, 96, 0.1);
.icon-separate {
display: inline-block;
margin-right: 3px;
width: 16px;
height: 16px;
background-repeat: no-repeat;
background-size: 100% 100%;
background-position: center center;
vertical-align: sub;
background-image: url("~assets/images/shangqi/standardDetails/separate.png");
}
}
}
}
.modular-content-p-table {
.file {
color: #409EFF;
width: 100%;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
&:hover {
cursor: pointer;
text-decoration: underline;
}
}
}
}
.work-group {
height: 100%;
display: flex;
flex-direction: column;
.work-group-header {
display: flex;
position: relative;
justify-content: center;
align-items: center;
height: 40px;
line-height: 40px;
.node-info {
height: 100%;
a {
font-weight: 600;
font-size: 16px;
color: #666;
}
}
.header-btn-group {
position: absolute;
top: 0;
left: 0;
}
.export {
position: absolute;
top: 0;
right: 0;
}
}
.content {
flex: auto;
overflow-y: auto;
height: 100%;
.graph {
height: inherit;
}
}
.el-drawer-form {
height: 100%;
}
.clearable-item {
/deep/ .el-input__inner {
padding-right: 30px !important;
}
}
.add-form-table-item {
&:last-child {
margin-bottom: 10px;
}
}
}
/deep/ .demo-drawer-content {
overflow-y: auto !important;
padding: 0 10px 0 20px !important;
}
</style>