2023-06-02 19:51:39 +08:00
|
|
|
|
<!DOCTYPE html>
|
|
|
|
|
|
<html>
|
|
|
|
|
|
<head>
|
2025-03-27 09:05:18 +08:00
|
|
|
|
<meta charset="UTF-8">
|
|
|
|
|
|
<!-- import CSS -->
|
|
|
|
|
|
<link rel="stylesheet" href="../apps/com.awspaas.user.apps.yili.integration/components/icon.css">
|
2025-05-12 09:34:51 +08:00
|
|
|
|
<link rel="stylesheet" href="../apps/com.awspaas.user.apps.yili.integration/css/department1.css?v=1743065420000">
|
2025-03-27 09:05:18 +08:00
|
|
|
|
<link rel="stylesheet" href="../apps/com.awspaas.user.apps.gpt_interface/css/gpt.css">
|
|
|
|
|
|
<script>
|
|
|
|
|
|
var sid = '<#sid>';
|
|
|
|
|
|
|
|
|
|
|
|
</script>
|
2023-06-02 19:51:39 +08:00
|
|
|
|
</head>
|
|
|
|
|
|
<body>
|
|
|
|
|
|
<div id="app">
|
2025-03-27 09:05:18 +08:00
|
|
|
|
<!-- 新增遮罩层 -->
|
|
|
|
|
|
<div v-if="maskVisible" class="loading-mask">
|
|
|
|
|
|
<div class="loading-text">数据加载中...</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div id="floatingChatIcon" @click="openGptHome" v-show="loading" style="display: none">
|
|
|
|
|
|
<img src="../apps/com.awspaas.user.apps.gpt_interface/img/robot-icon.png" style="border-radius: 5px;">
|
|
|
|
|
|
<span style="margin-top: 6px;font-size: 12px;">AI文件搜索</span>
|
|
|
|
|
|
<el-dialog
|
|
|
|
|
|
:visible.sync="dialogVisible"
|
|
|
|
|
|
width="70%"
|
|
|
|
|
|
top="2%"
|
|
|
|
|
|
custom-class="custom-dialog"
|
|
|
|
|
|
append-to-body>
|
|
|
|
|
|
<span>
|
2024-11-13 15:26:02 +08:00
|
|
|
|
<i class="button-icon" @click="openInFullScreen"></i>
|
2024-10-31 15:06:18 +08:00
|
|
|
|
</span>
|
2025-03-27 09:05:18 +08:00
|
|
|
|
<iframe :src="newPageUrl" frameborder="0" style="width: 100%; height: 100%;"></iframe>
|
|
|
|
|
|
|
|
|
|
|
|
</el-dialog>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div id="main" v-show="loading" style="display: none">
|
|
|
|
|
|
<div id="leftDiv" ref="searchDiv">
|
|
|
|
|
|
<!-- 筛选区域 -->
|
|
|
|
|
|
<div class="section">
|
|
|
|
|
|
<div>
|
|
|
|
|
|
<div class="cartTitleDiv">
|
|
|
|
|
|
<span class="section-title">筛选发布部门</span>
|
|
|
|
|
|
<el-popover
|
|
|
|
|
|
placement="top-start"
|
|
|
|
|
|
title="请选择发布部门"
|
|
|
|
|
|
width="600"
|
|
|
|
|
|
trigger="hover"
|
|
|
|
|
|
>
|
|
|
|
|
|
<div id="postSearchCart">
|
|
|
|
|
|
<div class="search">
|
|
|
|
|
|
<el-input
|
|
|
|
|
|
placeholder="输入关键字进行过滤"
|
|
|
|
|
|
v-model="filterText" style="width:80%;">
|
|
|
|
|
|
</el-input>
|
|
|
|
|
|
<el-checkbox v-model="checked1" label="全选" border @change="chooseAll"
|
|
|
|
|
|
style="float:right;width:18%"></el-checkbox>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="" style="height: 400px;overflow-y: auto;overflow-x: hidden;">
|
|
|
|
|
|
<el-tree
|
|
|
|
|
|
:data="list"
|
|
|
|
|
|
show-checkbox
|
|
|
|
|
|
ref="tree"
|
|
|
|
|
|
empty-text="该部门下暂无文件"
|
|
|
|
|
|
node-key="ID"
|
|
|
|
|
|
:props="defaultProps"
|
|
|
|
|
|
:filter-node-method="filterNode"
|
|
|
|
|
|
:default-checked-keys="idjson"
|
|
|
|
|
|
@check="handleCheckChange"
|
|
|
|
|
|
|
|
|
|
|
|
>
|
2024-10-18 16:15:43 +08:00
|
|
|
|
<span class="custom-tree-node" slot-scope="{ node, data }">
|
|
|
|
|
|
<span :title="node.data.name ">{{ node.data.name }}</span>
|
|
|
|
|
|
</span>
|
2025-03-27 09:05:18 +08:00
|
|
|
|
</el-tree>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<i slot="reference" class="ico dropDown"></i>
|
|
|
|
|
|
</el-popover>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="cartTitleDiv">
|
|
|
|
|
|
<el-button type="primary" size="mini" @click="resetData">重置</el-button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="cartTitleDiv">
|
|
|
|
|
|
<span class="section-title">搜索文件名:</span>
|
|
|
|
|
|
<el-input
|
|
|
|
|
|
placeholder="输入关键字搜索"
|
|
|
|
|
|
v-model="filtertreeText"
|
|
|
|
|
|
@keyup.enter.native="search">
|
|
|
|
|
|
<i slot="prefix" class="el-input__icon el-icon-search"></i>
|
|
|
|
|
|
</el-input>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="cartTitleDiv">
|
|
|
|
|
|
<span class="section-title">筛选文件类型:</span>
|
|
|
|
|
|
<el-select v-model="selectvalue" placeholder="请选择" @change="selcetchangetype">
|
|
|
|
|
|
<el-option
|
|
|
|
|
|
v-for="item in selectoptions"
|
|
|
|
|
|
:key="item.value"
|
|
|
|
|
|
:label="item.label"
|
|
|
|
|
|
:value="item.value">
|
|
|
|
|
|
</el-option>
|
|
|
|
|
|
</el-select>
|
|
|
|
|
|
</div>
|
2024-10-18 16:15:43 +08:00
|
|
|
|
</div>
|
2025-03-27 09:05:18 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
<!-- 部门信息区域 -->
|
|
|
|
|
|
<div class="section"
|
|
|
|
|
|
style="font-size: 14px;border: 0px solid #D4F0FF;background-color: #E6F7FF;padding: 2px 0px 4px;margin-left: 7px;margin-top:7px">
|
|
|
|
|
|
<div class="deptInfoDiv" style="padding-left: 4px;">
|
|
|
|
|
|
<i style="vertical-align: middle;padding-top: 3px;" slot="reference" class="ico tips"></i>
|
|
|
|
|
|
<span v-if="doesItExist==true" class="limited-text">已选择</span>
|
|
|
|
|
|
<span v-if="doesItExist==false" class="limited-text">暂无发布部门</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="deptInfoDiv">
|
|
|
|
|
|
<el-tooltip class="item" effect="dark" :content="concatenatedNamesTooltip">
|
|
|
|
|
|
<span class="limited-text">{{concatenatedNames}}</span>
|
|
|
|
|
|
</el-tooltip>
|
|
|
|
|
|
<span>发布的文件(制度总数:{{ policyFileNum }} 流程总数:{{ processFileNum
|
|
|
|
|
|
}})</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="deptInfoDiv-button">
|
|
|
|
|
|
<el-checkbox v-model="checkedInfo" label="隐藏架构" @change="showOrHideInfo" border
|
|
|
|
|
|
size="mini"></el-checkbox>
|
|
|
|
|
|
<el-button style="height: 28px;" type="primary" size="mini" icon="el-icon-arrow-down"
|
|
|
|
|
|
v-if="isExpand==false && checkedInfo == false" @click="expandTree">展开
|
|
|
|
|
|
</el-button>
|
|
|
|
|
|
<el-button style="height: 28px;" type="primary" size="mini" icon="el-icon-arrow-up"
|
|
|
|
|
|
v-if="isExpand==true && checkedInfo == false" @click="foldTree">折叠
|
|
|
|
|
|
</el-button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div id="processList" style="width: 100%;overflow-y:auto;margin-top:7px">
|
|
|
|
|
|
<div class="collspse">
|
|
|
|
|
|
<el-tree
|
|
|
|
|
|
v-if="checkedInfo == false"
|
|
|
|
|
|
:data="options"
|
|
|
|
|
|
:props="defaultProps1"
|
|
|
|
|
|
ref="treeNode"
|
|
|
|
|
|
:filter-node-method="filtertreeNode"
|
|
|
|
|
|
:default-expand-all="isExpand"
|
|
|
|
|
|
node-key="ID"
|
|
|
|
|
|
:default-expanded-keys="defaultkey">
|
2023-06-02 19:51:39 +08:00
|
|
|
|
<span class="custom-tree-node" slot-scope="{ node, data }">
|
|
|
|
|
|
<span v-if="node.data.path">
|
|
|
|
|
|
<a :href="node.data.path" style="color: #2E74B5" target="_blank">
|
2025-03-27 09:05:18 +08:00
|
|
|
|
<img src="../apps/com.awspaas.user.apps.yili.integration/static/icon2.png"
|
|
|
|
|
|
v-if="node.data.fileType == 'processFile'"
|
|
|
|
|
|
style="vertical-align: middle; width: 15px;height: 15px;border-radius:100%"/>
|
|
|
|
|
|
<img src="../apps/com.awspaas.user.apps.yili.integration/static/icon1.png"
|
|
|
|
|
|
v-if="node.data.fileType == 'policyFile'"
|
|
|
|
|
|
style="vertical-align: middle; width: 15px;height: 15px;border-radius:100%"/>
|
|
|
|
|
|
<img src="../apps/com.awspaas.user.apps.yili.integration/static/icon4.png"
|
|
|
|
|
|
v-if="node.data.fileType == 'guideFile'"
|
|
|
|
|
|
style="vertical-align: middle; width: 15px;height: 15px;border-radius:100%"/>
|
|
|
|
|
|
<img src="../apps/com.awspaas.user.apps.yili.integration/static/icon3.png"
|
|
|
|
|
|
v-if="node.data.fileType == 'formFile'"
|
|
|
|
|
|
style="vertical-align: middle; width: 15px;height: 15px;border-radius:100%"/>
|
2023-06-02 19:51:39 +08:00
|
|
|
|
{{node.data.name}}
|
2025-03-27 09:05:18 +08:00
|
|
|
|
<!--<em style="font-style:normal;margin-left: 100px;float: right;">发布时间:{{node.data.time}}</em><em style="font-style:normal;margin-left: 100px;float: right;">编制人:{{node.data.people}}</em>-->
|
2023-06-02 19:51:39 +08:00
|
|
|
|
</a>
|
|
|
|
|
|
</span>
|
|
|
|
|
|
<span v-else>
|
|
|
|
|
|
{{node.data.name}}
|
|
|
|
|
|
</span>
|
|
|
|
|
|
<label>
|
|
|
|
|
|
{{node.data.desc}}
|
|
|
|
|
|
</label>
|
|
|
|
|
|
</span>
|
2025-03-27 09:05:18 +08:00
|
|
|
|
</el-tree>
|
|
|
|
|
|
<el-table v-if="checkedInfo == true"
|
|
|
|
|
|
:show-header="false"
|
|
|
|
|
|
:data="fitlerNoFrameOptions"
|
|
|
|
|
|
style="width: 100%;height: auto;">
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
|
style="width: 100%;">
|
|
|
|
|
|
<template slot-scope="node">
|
|
|
|
|
|
<a :href="node.row.path" style="color: #2E74B5" target="_blank">
|
|
|
|
|
|
<img src="../apps/com.awspaas.user.apps.yili.integration/static/icon2.png"
|
|
|
|
|
|
v-if="node.row.fileType == 'processFile'"
|
|
|
|
|
|
style="vertical-align: middle; width: 15px;height: 15px;border-radius:100%"/>
|
|
|
|
|
|
<img src="../apps/com.awspaas.user.apps.yili.integration/static/icon1.png"
|
|
|
|
|
|
v-if="node.row.fileType == 'policyFile'"
|
|
|
|
|
|
style="vertical-align: middle; width: 15px;height: 15px;border-radius:100%"/>
|
|
|
|
|
|
<img src="../apps/com.awspaas.user.apps.yili.integration/static/icon4.png"
|
|
|
|
|
|
v-if="node.row.fileType == 'guideFile'"
|
|
|
|
|
|
style="vertical-align: middle; width: 15px;height: 15px;border-radius:100%"/>
|
|
|
|
|
|
<img src="../apps/com.awspaas.user.apps.yili.integration/static/icon3.png"
|
|
|
|
|
|
v-if="node.row.fileType == 'formFile'"
|
|
|
|
|
|
style="vertical-align: middle; width: 15px;height: 15px;border-radius:100%"/>
|
|
|
|
|
|
{{ node.row.name }}
|
|
|
|
|
|
<!--<em style="font-style:normal;margin-left: 100px;float: right;">发布时间:{{node.data.time}}</em><em style="font-style:normal;margin-left: 100px;float: right;">编制人:{{node.data.people}}</em>-->
|
|
|
|
|
|
</a>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
</el-table>
|
|
|
|
|
|
</div>
|
2023-06-02 19:51:39 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
2025-03-27 09:05:18 +08:00
|
|
|
|
<div id="rightDiv" ref="rightHeight">
|
|
|
|
|
|
<div id="rightBottom">
|
|
|
|
|
|
<div id="infoCart">
|
|
|
|
|
|
<div class="cartTitle" style="text-align: center;">
|
|
|
|
|
|
<img style="width: 60px;height:60px;border-radius: 50%;" id="currentUserPhoto" :src="userPhoto">
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="cartTab">
|
|
|
|
|
|
<div v-show="tab==1" id="person" v-for="personInfo in personInfos">
|
|
|
|
|
|
<div class="personInfo leftwidth" style="font-weight:bold">{{ personInfo.title}}</div>
|
|
|
|
|
|
<div class="personInfo rightwidth">{{ personInfo.text }}</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="button-content">
|
|
|
|
|
|
<!-- 查询岗位直接相关文件-->
|
|
|
|
|
|
<el-button @click="openPersionInfo" type="primary" size="small">
|
|
|
|
|
|
查询岗位直接相关文件
|
|
|
|
|
|
</el-button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
2023-06-02 19:51:39 +08:00
|
|
|
|
|
2025-03-27 09:05:18 +08:00
|
|
|
|
</div>
|
2023-06-02 19:51:39 +08:00
|
|
|
|
|
2025-03-27 09:05:18 +08:00
|
|
|
|
</div>
|
2023-06-02 19:51:39 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</body>
|
|
|
|
|
|
<!-- import Vue before Element -->
|
|
|
|
|
|
<script src="../apps/com.awspaas.user.apps.yili.integration/components/vue.js"></script>
|
|
|
|
|
|
<script src="../apps/com.awspaas.user.apps.yili.integration/components/jquery.js"></script>
|
|
|
|
|
|
<!-- import JavaScript -->
|
|
|
|
|
|
<script src="../apps/com.awspaas.user.apps.yili.integration/components/index.js"></script>
|
|
|
|
|
|
<script src="../apps/com.awspaas.user.apps.yili.integration/components/js.js"></script>
|
|
|
|
|
|
<script src="../apps/com.awspaas.user.apps.yili.integration/components/qs.js"></script>
|
|
|
|
|
|
<script>
|
2025-03-27 09:05:18 +08:00
|
|
|
|
new Vue({
|
|
|
|
|
|
el: '#app',
|
|
|
|
|
|
name: "Department",
|
|
|
|
|
|
data() {
|
|
|
|
|
|
return {
|
|
|
|
|
|
dialogVisible: false,
|
|
|
|
|
|
newPageUrl: '', // 新页面的 URL,可以是相对路径或绝对路径
|
|
|
|
|
|
param1: "",
|
|
|
|
|
|
loading: false,
|
|
|
|
|
|
filtertreeText: '',
|
|
|
|
|
|
isExpand: false,
|
|
|
|
|
|
filterText: '',
|
|
|
|
|
|
selectoptions: [],
|
|
|
|
|
|
selectvalue: '',
|
|
|
|
|
|
options: [],
|
|
|
|
|
|
noFrameOptions: [],
|
|
|
|
|
|
fitlerNoFrameOptions: [],
|
|
|
|
|
|
defaultkey: [],
|
|
|
|
|
|
defaultProps1: {
|
|
|
|
|
|
children: 'children',
|
|
|
|
|
|
label: 'name'
|
|
|
|
|
|
},
|
|
|
|
|
|
tab: 1,
|
|
|
|
|
|
personInfos: [],
|
|
|
|
|
|
userPhoto: '',
|
|
|
|
|
|
departmentId: '',
|
|
|
|
|
|
// 右侧部门树数据
|
|
|
|
|
|
list: [],
|
|
|
|
|
|
defaultProps: {
|
|
|
|
|
|
children: 'children',
|
|
|
|
|
|
label: 'name'
|
|
|
|
|
|
},
|
|
|
|
|
|
selectdept: [],
|
|
|
|
|
|
filetype: '',
|
|
|
|
|
|
processFileNum: '',//流程数量
|
|
|
|
|
|
policyFileNum: '',//制度数量
|
|
|
|
|
|
guideFileNum: '',//操作指导数量
|
|
|
|
|
|
formFileNum: '',//表单/模板数量
|
|
|
|
|
|
treelist: [],
|
|
|
|
|
|
treeListNodes: [],//选择树的中文集合
|
|
|
|
|
|
idjson: [],
|
|
|
|
|
|
checkedInfo: false,
|
|
|
|
|
|
checked1: false,//选中状态
|
|
|
|
|
|
concatenatedNamesTooltip: '暂无发布部门',
|
|
|
|
|
|
doesItExist: false,
|
|
|
|
|
|
// 防抖计时器
|
|
|
|
|
|
debounceTimer: null,
|
|
|
|
|
|
maskVisible: false
|
|
|
|
|
|
};
|
2023-06-02 19:51:39 +08:00
|
|
|
|
},
|
2025-03-27 09:05:18 +08:00
|
|
|
|
mounted() {
|
|
|
|
|
|
this.maskVisible = true;
|
|
|
|
|
|
this.treelist = this.$refs.tree.getCheckedKeys();
|
|
|
|
|
|
this.treeListNodes = this.$refs.tree.getCheckedNodes();
|
|
|
|
|
|
this.selectdept = JSON.stringify(this.treelist)
|
|
|
|
|
|
this.leftTreedatabind();
|
|
|
|
|
|
this.loading = true;
|
2023-06-02 19:51:39 +08:00
|
|
|
|
},
|
2025-03-27 09:05:18 +08:00
|
|
|
|
computed: {
|
|
|
|
|
|
concatenatedNames() {
|
|
|
|
|
|
const filterOutChildren = (nodes) => {
|
|
|
|
|
|
// 创建一个集合来存储需要保留的节点ID
|
|
|
|
|
|
const toKeep = new Set();
|
|
|
|
|
|
|
|
|
|
|
|
// 递归函数,用于检查节点是否应被保留
|
|
|
|
|
|
function shouldKeep(node) {
|
|
|
|
|
|
// 如果节点ID已在toKeep中,则无需再次检查
|
|
|
|
|
|
if (toKeep.has(node.ID)) return true;
|
|
|
|
|
|
|
|
|
|
|
|
// 遍历所有节点(包括当前节点的子节点),检查当前节点是否在其他节点的children中
|
|
|
|
|
|
for (const otherNode of nodes) {
|
|
|
|
|
|
if (otherNode.children && otherNode.children.some(child => child.ID === node.ID)) {
|
|
|
|
|
|
// 如果当前节点是某个节点的子节点,则不保留
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
// 如果节点通过了所有检查,则添加到toKeep集合中
|
|
|
|
|
|
toKeep.add(node.ID);
|
|
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 遍历所有节点,检查并标记哪些节点应该被保留
|
|
|
|
|
|
for (const node of nodes) {
|
|
|
|
|
|
shouldKeep(node);
|
|
|
|
|
|
}
|
|
|
|
|
|
// 根据toKeep集合,过滤出需要保留的节点
|
|
|
|
|
|
const filteredNodes = nodes.filter(node => toKeep.has(node.ID));
|
|
|
|
|
|
filteredNodes.sort((a, b) => a.TLEVEL - b.TLEVEL);
|
|
|
|
|
|
return filteredNodes;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
if (this.treeListNodes.length === 0) {
|
|
|
|
|
|
this.doesItExist = false;
|
|
|
|
|
|
this.concatenatedNamesTooltip = "暂无发布部门";
|
|
|
|
|
|
return "";
|
|
|
|
|
|
}
|
|
|
|
|
|
const processedNodes = filterOutChildren(this.treeListNodes);
|
|
|
|
|
|
|
|
|
|
|
|
let names = processedNodes.map(node => node.name).join(',');
|
|
|
|
|
|
if (this.checked1) {
|
|
|
|
|
|
this.doesItExist = true;
|
|
|
|
|
|
this.concatenatedNamesTooltip = "已全选";
|
|
|
|
|
|
names = "已全选";
|
|
|
|
|
|
return names;
|
2023-06-02 19:51:39 +08:00
|
|
|
|
}
|
2025-03-27 09:05:18 +08:00
|
|
|
|
if (names === '') {
|
|
|
|
|
|
names = '';
|
|
|
|
|
|
this.doesItExist = false;
|
|
|
|
|
|
this.concatenatedNamesTooltip = "暂无发布部门";
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.doesItExist = true;
|
|
|
|
|
|
this.concatenatedNamesTooltip = names;
|
|
|
|
|
|
names += ":";
|
|
|
|
|
|
}
|
|
|
|
|
|
if (names.length > 10) {
|
|
|
|
|
|
// 这里简单地在第10个字符后截断并添加省略号
|
|
|
|
|
|
return names.slice(0, 10) + '...';
|
|
|
|
|
|
}
|
|
|
|
|
|
return names;
|
2023-06-02 19:51:39 +08:00
|
|
|
|
}
|
2025-03-27 09:05:18 +08:00
|
|
|
|
},
|
|
|
|
|
|
created() {
|
|
|
|
|
|
this.rightTreedatabind();
|
|
|
|
|
|
this.setDefault();
|
|
|
|
|
|
},
|
|
|
|
|
|
watch: {
|
|
|
|
|
|
filtertreeText(val) {
|
|
|
|
|
|
this.search();
|
|
|
|
|
|
},
|
|
|
|
|
|
filterText(val) {
|
|
|
|
|
|
this.$refs.tree.filter(val);
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
methods: {
|
|
|
|
|
|
|
|
|
|
|
|
// 全部选中
|
|
|
|
|
|
chooseAll() {
|
|
|
|
|
|
this.roleList = "";
|
|
|
|
|
|
// 判断按钮的状态
|
|
|
|
|
|
if (this.checked1) {
|
|
|
|
|
|
this.maskVisible = true; // 显示遮罩
|
|
|
|
|
|
// 设置
|
|
|
|
|
|
this.$refs.tree.setCheckedNodes(this.list);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.$refs.tree.setCheckedNodes([]);
|
|
|
|
|
|
}
|
|
|
|
|
|
this.treeListNodes = this.$refs.tree.getCheckedNodes();
|
|
|
|
|
|
this.treelist = this.$refs.tree.getCheckedKeys();
|
|
|
|
|
|
this.selectdept = JSON.stringify(this.treelist)
|
|
|
|
|
|
this.options = []
|
|
|
|
|
|
if (this.treelist.length == 0) {
|
|
|
|
|
|
this.selectdept = []
|
|
|
|
|
|
}
|
|
|
|
|
|
// 使用 setTimeout 异步执行
|
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
|
this.leftTreedatabind();
|
|
|
|
|
|
}, 0);
|
|
|
|
|
|
},
|
|
|
|
|
|
//增加键盘回车事件
|
|
|
|
|
|
search() {
|
|
|
|
|
|
// 清除之前的计时器
|
|
|
|
|
|
if (this.debounceTimer) {
|
|
|
|
|
|
clearTimeout(this.debounceTimer);
|
|
|
|
|
|
}
|
|
|
|
|
|
// 设置新的计时器
|
|
|
|
|
|
this.debounceTimer = setTimeout(() => {
|
|
|
|
|
|
// 调用查询接口的方法
|
|
|
|
|
|
this.maskVisible = true; // 显示遮罩
|
|
|
|
|
|
this.options = [];
|
|
|
|
|
|
if (this.checkedInfo == true) {
|
|
|
|
|
|
this.leftTreedatabindNew();//隐藏架构的
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.leftTreedatabind();//不需要隐藏架构
|
|
|
|
|
|
}
|
2025-05-12 09:34:51 +08:00
|
|
|
|
}, 1500); // 500 毫秒的延迟,可以根据实际需求调整
|
2025-03-27 09:05:18 +08:00
|
|
|
|
},
|
|
|
|
|
|
navtab(e) {
|
|
|
|
|
|
this.tab = e;
|
|
|
|
|
|
this.selectdept = []
|
|
|
|
|
|
this.filetype = ''
|
|
|
|
|
|
this.list = []
|
|
|
|
|
|
this.personInfos = []
|
|
|
|
|
|
this.selectoptions = []
|
|
|
|
|
|
this.rightTreedatabind()
|
|
|
|
|
|
this.leftTreedatabind();
|
|
|
|
|
|
},
|
|
|
|
|
|
//展开树
|
|
|
|
|
|
expandTree() {
|
|
|
|
|
|
this.isExpand = true
|
|
|
|
|
|
this.buildData()
|
|
|
|
|
|
},
|
|
|
|
|
|
//折叠树
|
|
|
|
|
|
foldTree() {
|
|
|
|
|
|
this.isExpand = false
|
|
|
|
|
|
this.buildData()
|
|
|
|
|
|
},
|
|
|
|
|
|
buildData() {
|
|
|
|
|
|
for (let i = 0; i < this.$refs.treeNode.store._getAllNodes().length; i++) {
|
|
|
|
|
|
this.$refs.treeNode.store._getAllNodes()[i].expanded = this.isExpand;
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
//右侧树结构
|
|
|
|
|
|
rightTreedatabind() {
|
|
|
|
|
|
let _this = this;
|
|
|
|
|
|
$.ajax({
|
|
|
|
|
|
url: api.rightTreeurl,
|
|
|
|
|
|
data: {},
|
|
|
|
|
|
dataType: "json",
|
|
|
|
|
|
type: "post",
|
|
|
|
|
|
async: false,
|
|
|
|
|
|
success: function (res) {
|
|
|
|
|
|
this.maskVisible = true; // 显示遮罩
|
|
|
|
|
|
_this.list = res.data.deptTree;
|
|
|
|
|
|
_this.personInfos = res.data.personInfos;
|
|
|
|
|
|
_this.userPhoto = res.data.userPhoto;
|
|
|
|
|
|
_this.departmentId = res.data.departmentId;
|
|
|
|
|
|
if (res.data.fileTypes.length > 0) {
|
|
|
|
|
|
for (let i = 0; i < res.data.fileTypes.length; i++) {
|
|
|
|
|
|
let obj = {
|
|
|
|
|
|
value: res.data.fileTypes[i].termsKey,
|
|
|
|
|
|
label: res.data.fileTypes[i].termsVal
|
|
|
|
|
|
}
|
|
|
|
|
|
_this.selectoptions.push(obj)
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
leftTreedatabind() {
|
|
|
|
|
|
return new Promise((resolve) => {
|
|
|
|
|
|
let _this = this;
|
|
|
|
|
|
let qs = Qs;
|
|
|
|
|
|
this.options = []
|
|
|
|
|
|
let params = {
|
|
|
|
|
|
dept: _this.selectdept,
|
|
|
|
|
|
fileType: _this.filetype,
|
|
|
|
|
|
filtertreeText: _this.filtertreeText
|
|
|
|
|
|
}
|
|
|
|
|
|
$.ajax({
|
|
|
|
|
|
url: api.leftTreeurl,
|
|
|
|
|
|
method: 'post',
|
|
|
|
|
|
data: qs.stringify(params),
|
|
|
|
|
|
headers: {
|
|
|
|
|
|
'Content-Type': 'application/x-www-form-urlencoded'
|
|
|
|
|
|
}
|
|
|
|
|
|
}).then((res) => {
|
|
|
|
|
|
this.maskVisible = true; // 显示遮罩
|
|
|
|
|
|
if (res.data !== undefined) {
|
|
|
|
|
|
if (res.data.fileMaps.length > 0) {
|
|
|
|
|
|
_this.options = res.data.fileMaps;
|
|
|
|
|
|
res.data.fileMaps.forEach(element => {
|
|
|
|
|
|
_this.defaultkey.push(element.ID)
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
let count = res.data.filesCount;
|
|
|
|
|
|
_this.processFileNum = count.processFileNum
|
|
|
|
|
|
_this.policyFileNum = count.policyFileNum
|
|
|
|
|
|
_this.guideFileNum = count.guideFileNum
|
|
|
|
|
|
_this.formFileNum = count.formFileNum
|
|
|
|
|
|
// 数据加载完成后,手动触发展开
|
|
|
|
|
|
_this.$nextTick(() => {
|
|
|
|
|
|
this.isExpand = true;
|
|
|
|
|
|
_this.buildData();
|
|
|
|
|
|
//_this.$refs.treeNode.filter(_this.filtertreeText);
|
|
|
|
|
|
});
|
|
|
|
|
|
} else {
|
|
|
|
|
|
_this.processFileNum = 0
|
|
|
|
|
|
_this.policyFileNum = 0
|
|
|
|
|
|
_this.guideFileNum = 0
|
|
|
|
|
|
_this.formFileNum = 0
|
|
|
|
|
|
}
|
|
|
|
|
|
_this.maskVisible=false;
|
|
|
|
|
|
resolve();
|
|
|
|
|
|
});
|
2024-10-18 16:15:43 +08:00
|
|
|
|
});
|
2025-03-27 09:05:18 +08:00
|
|
|
|
},
|
|
|
|
|
|
leftTreedatabindNew() {
|
|
|
|
|
|
return new Promise((resolve) => {
|
|
|
|
|
|
let _this = this;
|
|
|
|
|
|
let qs = Qs;
|
|
|
|
|
|
this.options = []
|
|
|
|
|
|
let params = {
|
|
|
|
|
|
dept: _this.selectdept,
|
|
|
|
|
|
fileType: _this.filetype,
|
|
|
|
|
|
filtertreeText: _this.filtertreeText
|
|
|
|
|
|
}
|
|
|
|
|
|
$.ajax({
|
|
|
|
|
|
url: api.leftTreeurl,
|
|
|
|
|
|
method: 'post',
|
|
|
|
|
|
data: qs.stringify(params),
|
|
|
|
|
|
headers: {
|
|
|
|
|
|
'Content-Type': 'application/x-www-form-urlencoded'
|
|
|
|
|
|
}
|
|
|
|
|
|
}).then((res) => {
|
|
|
|
|
|
this.maskVisible = true; // 显示遮罩
|
|
|
|
|
|
if (res.data.fileMaps.length > 0) {
|
|
|
|
|
|
var fileMaps = res.data.fileMaps;
|
|
|
|
|
|
var newMaps = this.filterFileMaps(fileMaps);
|
|
|
|
|
|
//过滤架构的数据
|
|
|
|
|
|
//var newMaps = fileMaps.filter(file => file.nodeType !== 'frame');
|
|
|
|
|
|
_this.noFrameOptions = newMaps;
|
|
|
|
|
|
_this.fitlerNoFrameOptions = newMaps;
|
|
|
|
|
|
res.data.fileMaps.forEach(element => {
|
|
|
|
|
|
_this.defaultkey.push(element.ID)
|
|
|
|
|
|
});
|
|
|
|
|
|
if (newMaps !== undefined) {
|
|
|
|
|
|
let count = res.data.filesCount;
|
|
|
|
|
|
_this.processFileNum = count.processFileNum
|
|
|
|
|
|
_this.policyFileNum = count.policyFileNum
|
|
|
|
|
|
_this.guideFileNum = count.guideFileNum
|
|
|
|
|
|
_this.formFileNum = count.formFileNum
|
|
|
|
|
|
} else {
|
|
|
|
|
|
_this.processFileNum = 0
|
|
|
|
|
|
_this.policyFileNum = 0
|
|
|
|
|
|
_this.guideFileNum = 0
|
|
|
|
|
|
_this.formFileNum = 0
|
|
|
|
|
|
}
|
|
|
|
|
|
//最后搜索一下
|
|
|
|
|
|
}
|
|
|
|
|
|
_this.maskVisible=false;
|
|
|
|
|
|
resolve();
|
2023-06-02 19:51:39 +08:00
|
|
|
|
});
|
2025-03-27 09:05:18 +08:00
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
handleCheckChange(data) {
|
|
|
|
|
|
this.maskVisible = true; // 显示遮罩
|
|
|
|
|
|
this.treelist = this.$refs.tree.getCheckedKeys()
|
|
|
|
|
|
this.treeListNodes = this.$refs.tree.getCheckedNodes();
|
|
|
|
|
|
this.selectdept = JSON.stringify(this.treelist)
|
|
|
|
|
|
this.options = []
|
|
|
|
|
|
if (this.treelist.length == 0) {
|
|
|
|
|
|
this.selectdept = []
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.maskVisible = true; // 显示遮罩
|
|
|
|
|
|
}
|
|
|
|
|
|
const loadPromise = this.checkedInfo
|
|
|
|
|
|
? this.leftTreedatabindNew()
|
|
|
|
|
|
: this.leftTreedatabind();
|
|
|
|
|
|
// 统一处理Promise
|
|
|
|
|
|
Promise.resolve(loadPromise).finally(() => {
|
|
|
|
|
|
this.maskVisible = false; // 无论成功失败都关闭遮罩
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
selcetchangetype(e) {
|
|
|
|
|
|
this.maskVisible = true; // 显示遮罩
|
|
|
|
|
|
this.filetype = this.selectvalue
|
|
|
|
|
|
this.options = []
|
|
|
|
|
|
if (this.checkedInfo == true) {
|
|
|
|
|
|
this.leftTreedatabindNew();//隐藏架构的
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.leftTreedatabind();//不需要隐藏架构
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
filtertreeNode(value, data) {
|
|
|
|
|
|
if (!value) return true;
|
|
|
|
|
|
return data.name.indexOf(value) !== -1;
|
|
|
|
|
|
},
|
|
|
|
|
|
filterNode(value, data) {
|
|
|
|
|
|
if (!value) return true;
|
|
|
|
|
|
return data.name.indexOf(value) !== -1;
|
|
|
|
|
|
},
|
|
|
|
|
|
openPersionInfo() {
|
|
|
|
|
|
window.open("./w?sid=" + sid + "&cmd=com.awspaas.user.apps.yili.integration.service.ToPageService_toPersonView");
|
|
|
|
|
|
},
|
|
|
|
|
|
showOrHideInfo() {
|
|
|
|
|
|
this.maskVisible = true; // 显示遮罩
|
|
|
|
|
|
if (this.checkedInfo == true) {
|
|
|
|
|
|
this.leftTreedatabindNew();//隐藏架构的
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.leftTreedatabind();//不需要隐藏架构
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
resetData() {
|
|
|
|
|
|
this.checked1 = false;//全选,取消勾选
|
|
|
|
|
|
let currentFilterTreeText = this.filtertreeText;
|
|
|
|
|
|
this.idjson = [];
|
|
|
|
|
|
this.idjson.push(this.departmentId);
|
|
|
|
|
|
var nodeObj = this.$refs.tree.getNode(this.departmentId);
|
|
|
|
|
|
if (nodeObj !== null) {
|
|
|
|
|
|
var nodeArry = [];
|
|
|
|
|
|
nodeArry.push(nodeObj.data)
|
|
|
|
|
|
this.$refs.tree.setCheckedNodes(nodeArry);
|
|
|
|
|
|
this.treeListNodes = this.$refs.tree.getCheckedNodes();
|
|
|
|
|
|
}
|
|
|
|
|
|
this.treelist = this.$refs.tree.getCheckedKeys();
|
|
|
|
|
|
this.selectdept = JSON.stringify(this.treelist)
|
|
|
|
|
|
this.processFileNum = '';//流程数量
|
|
|
|
|
|
this.policyFileNum = '';//制度数量
|
|
|
|
|
|
this.filtertreeText = '';
|
|
|
|
|
|
if (currentFilterTreeText === '') {//如果为,则执行。因为不为空时,filtertreeText的变化就会查询了
|
|
|
|
|
|
if (this.checkedInfo == true) {
|
|
|
|
|
|
this.leftTreedatabindNew();//隐藏架构的
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.leftTreedatabind();//不需要隐藏架构
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
filterFileMaps(items) {
|
|
|
|
|
|
const result = [];
|
|
|
|
|
|
items.forEach(item => {
|
|
|
|
|
|
if (item.nodeType !== 'frame') {
|
|
|
|
|
|
result.push({...item}); // 复制对象以避免直接引用原始对象(可选)
|
|
|
|
|
|
}
|
|
|
|
|
|
if (item.children && item.children.length > 0) {
|
|
|
|
|
|
// 递归调用以处理子对象
|
|
|
|
|
|
const childrenResult = this.filterFileMaps(item.children);
|
|
|
|
|
|
result.push(...childrenResult); // 将子对象的结果合并到当前结果中
|
2025-03-07 21:47:22 +08:00
|
|
|
|
}
|
2023-06-02 19:51:39 +08:00
|
|
|
|
});
|
2025-03-27 09:05:18 +08:00
|
|
|
|
return result;
|
|
|
|
|
|
},
|
|
|
|
|
|
setDefault() {
|
|
|
|
|
|
this.treelist.push(this.departmentId);
|
|
|
|
|
|
this.idjson.push(this.departmentId);
|
|
|
|
|
|
this.selectdept = JSON.stringify(this.treelist)
|
|
|
|
|
|
},
|
|
|
|
|
|
openGptHome() {
|
|
|
|
|
|
var sids = encodeURIComponent(sid);
|
|
|
|
|
|
//this.newPageUrl = "https://iam.digitalyili.com/proxy/sso?target=https%3A%2F%2Fyiligpt.x.digitalyili.com%2Flibchat%3Flib%3Db8e082947190f2aa4fca0d96a5a95ea5%26priv%3D1%26sid%3D"+ sids;
|
2025-05-23 15:52:30 +08:00
|
|
|
|
this.newPageUrl = "https://iam.digitalyili.com/proxy/sso?target=https://yiligpt.x.digitalyili.com/auth-center%25253Fplatform=oa%252526lib=b8e082947190f2aa4fca0d96a5a95ea5%252526priv=1%252526sid=" + sids;
|
2025-03-27 09:05:18 +08:00
|
|
|
|
document.cookie = "AWSSESSIONID=" + sid;
|
|
|
|
|
|
this.param1 = sid;
|
|
|
|
|
|
this.dialogVisible = true;
|
|
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
closeDialog() {
|
|
|
|
|
|
this.dialogVisible = false;
|
|
|
|
|
|
},
|
|
|
|
|
|
openInFullScreen() {
|
2025-05-23 15:52:30 +08:00
|
|
|
|
var sids = encodeURIComponent(sid);
|
2025-03-27 09:05:18 +08:00
|
|
|
|
this.dialogVisible = false;
|
2025-05-23 15:52:30 +08:00
|
|
|
|
window.open("https://iam.digitalyili.com/proxy/sso?target=https://yiligpt.x.digitalyili.com/auth-center%25253Fplatform=oa%252526lib=b8e082947190f2aa4fca0d96a5a95ea5%252526priv=1%252526sid="+ sids, "_blank");
|
2025-03-27 09:05:18 +08:00
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
});
|
2023-06-02 19:51:39 +08:00
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
<style scoped>
|
2025-03-27 09:05:18 +08:00
|
|
|
|
#main {
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
background: #FFFFFF;
|
|
|
|
|
|
clear: both;
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#leftDiv {
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
float: left;
|
|
|
|
|
|
width: 80%;
|
|
|
|
|
|
min-height: 508px;
|
|
|
|
|
|
border-right: 10px solid #eeeeee;
|
|
|
|
|
|
padding-right: 20px;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
padding-bottom: 30px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#leftDiv .cartTitle {
|
|
|
|
|
|
padding-top: 20px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#rightDiv {
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
width: 19.99%;
|
|
|
|
|
|
float: left;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#rightTop {
|
|
|
|
|
|
border-bottom: 10px solid #eeeeee;
|
|
|
|
|
|
padding: 20px 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#rightBottom {
|
|
|
|
|
|
margin-top: 15px;
|
|
|
|
|
|
padding: 10px 0 20px 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.search {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
margin-bottom: 10px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.cartTitle {
|
|
|
|
|
|
text-align: left;
|
|
|
|
|
|
margin-left: 10px;
|
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.cartTitle span {
|
|
|
|
|
|
font-size: 16px;
|
|
|
|
|
|
margin-left: 10px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.cartTab {
|
|
|
|
|
|
text-align: left;
|
|
|
|
|
|
margin-top: 10px;
|
|
|
|
|
|
margin-left: 20px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.cartTab span {
|
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.active {
|
|
|
|
|
|
color: rgb(20, 19, 19);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.custom-tree-node span:hover {
|
|
|
|
|
|
color: rgb(39, 127, 244);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* 右侧上方信息样式 */
|
|
|
|
|
|
#person {
|
|
|
|
|
|
margin-top: 20px;
|
|
|
|
|
|
height: 30px;
|
|
|
|
|
|
line-height: 35px;
|
|
|
|
|
|
padding-right: 20px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.personInfo {
|
|
|
|
|
|
line-height: 12px;
|
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
|
display: block;
|
|
|
|
|
|
height: 30px;
|
|
|
|
|
|
padding-bottom: 5px;
|
|
|
|
|
|
text-indent: 10px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.leftwidth {
|
|
|
|
|
|
width: 20%;
|
|
|
|
|
|
float: left;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.rightwidth {
|
|
|
|
|
|
width: 79%;
|
|
|
|
|
|
float: right;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#postSearchCart {
|
|
|
|
|
|
border-radius: 5px;
|
|
|
|
|
|
margin-top: 10px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.el-input {
|
|
|
|
|
|
width: auto !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/deep/ .el-input {
|
|
|
|
|
|
width: auto !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.el-input--prefix .el-input__inner {
|
|
|
|
|
|
padding-left: 45px;
|
|
|
|
|
|
height: 35px;
|
|
|
|
|
|
line-height: 35px;
|
|
|
|
|
|
width: 90%;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.el-input__icon {
|
|
|
|
|
|
line-height: 35px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.el-input--suffix .el-input__inner {
|
|
|
|
|
|
height: 35px;
|
|
|
|
|
|
line-height: 35px;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#postSearchCart .el-input {
|
|
|
|
|
|
width: 81% !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.el-input__suffix {
|
|
|
|
|
|
right: 25px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* 左侧手风琴样式 */
|
|
|
|
|
|
.el-tree-node__content {
|
|
|
|
|
|
background-color: #f1f5fa !important;
|
|
|
|
|
|
padding: 6px 10px !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.el-tree-node__children {
|
|
|
|
|
|
margin: 0 10px;
|
|
|
|
|
|
background: #FFFFFF;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.el-tree-node__children .el-tree-node__content {
|
|
|
|
|
|
background: #FFFFFF !important;
|
|
|
|
|
|
border-bottom: 1px solid #eceff5
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.custom-tree-node {
|
|
|
|
|
|
display: block;
|
|
|
|
|
|
width: 100%
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.custom-tree-node label {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
right: 40px;
|
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
|
color: #999999
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.custom-tree-node a {
|
|
|
|
|
|
color: #606266
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.custom-tree-node {
|
|
|
|
|
|
display: block;
|
|
|
|
|
|
width: 100%
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.custom-tree-node label {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
right: 40px;
|
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
|
color: #999999
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.custom-tree-node a {
|
|
|
|
|
|
color: #606266
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.el-tree-node__content:hover {
|
|
|
|
|
|
background-color: #cee4ff !important
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.collspse {
|
|
|
|
|
|
width: 98%;
|
|
|
|
|
|
margin-left: 1.5%;
|
|
|
|
|
|
margin-top: 4px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.collapseIteamTitle {
|
|
|
|
|
|
width: 500px;
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
text-align: left;
|
|
|
|
|
|
display: inline-block;
|
|
|
|
|
|
margin-left: 20px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.collapseIteamMark {
|
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
|
line-height: 12px;
|
|
|
|
|
|
color: #92a2b2;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/deep/ .el-collapse-item__content {
|
|
|
|
|
|
text-align: left;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* 右侧下方岗位总览区域样式 */
|
|
|
|
|
|
.postArea {
|
|
|
|
|
|
margin-top: 20px;
|
|
|
|
|
|
padding-left: 5px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.postInfo {
|
|
|
|
|
|
border-radius: 10px;
|
|
|
|
|
|
box-shadow: 0 0 10px #d1dbe5;
|
|
|
|
|
|
padding: 10px 10px;
|
|
|
|
|
|
margin: 0 20px 10px 0;
|
|
|
|
|
|
float: left;
|
|
|
|
|
|
width: 40%;
|
|
|
|
|
|
margin-right: 2%;
|
|
|
|
|
|
line-height: 30px;
|
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.custom-dialog .el-dialog__body {
|
|
|
|
|
|
/* 设置高度为 70%,注意这里可能需要额外的 CSS 来处理滚动条和布局问题 */
|
|
|
|
|
|
height: 70vh; /* 使用视口高度(viewport height)的 70% */
|
|
|
|
|
|
/*overflow: auto; /* 允许内容滚动 */
|
|
|
|
|
|
padding: 5px 10px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.postInfo.icon1 i {
|
|
|
|
|
|
display: block;
|
|
|
|
|
|
width: 32px;
|
|
|
|
|
|
height: 32px;
|
|
|
|
|
|
float: left;
|
|
|
|
|
|
background: url("../apps/com.awspaas.user.apps.yili.integration/static/icon1.png") no-repeat;
|
|
|
|
|
|
background-size: 100%;
|
|
|
|
|
|
border-radius: 100%;
|
|
|
|
|
|
margin-right: 10px
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.postInfo span {
|
|
|
|
|
|
display: block;
|
|
|
|
|
|
color: #639;
|
|
|
|
|
|
font-size: 20px;
|
|
|
|
|
|
margin-left: 6px
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.postInfo.icon2 i {
|
|
|
|
|
|
display: block;
|
|
|
|
|
|
width: 32px;
|
|
|
|
|
|
height: 32px;
|
|
|
|
|
|
float: left;
|
|
|
|
|
|
background: url("../apps/com.awspaas.user.apps.yili.integration/static/icon2.png") no-repeat;
|
|
|
|
|
|
background-size: 100%;
|
|
|
|
|
|
border-radius: 100%;
|
|
|
|
|
|
margin-right: 10px
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.postInfo.icon3 i {
|
|
|
|
|
|
display: block;
|
|
|
|
|
|
width: 32px;
|
|
|
|
|
|
height: 32px;
|
|
|
|
|
|
float: left;
|
|
|
|
|
|
background: url("../apps/com.awspaas.user.apps.yili.integration/static/icon3.png") no-repeat;
|
|
|
|
|
|
background-size: 100%;
|
|
|
|
|
|
border-radius: 100%;
|
|
|
|
|
|
margin-right: 10px
|
|
|
|
|
|
}
|
2023-06-02 19:51:39 +08:00
|
|
|
|
|
2025-03-27 09:05:18 +08:00
|
|
|
|
.postInfo.icon4 i {
|
|
|
|
|
|
display: block;
|
|
|
|
|
|
width: 32px;
|
|
|
|
|
|
height: 32px;
|
|
|
|
|
|
float: left;
|
|
|
|
|
|
background: url("../apps/com.awspaas.user.apps.yili.integration/static/icon4.png") no-repeat;
|
|
|
|
|
|
background-size: 100%;
|
|
|
|
|
|
border-radius: 100%;
|
|
|
|
|
|
margin-right: 10px
|
|
|
|
|
|
}
|
2023-06-02 19:51:39 +08:00
|
|
|
|
</style>
|
|
|
|
|
|
</html>
|