Browse Source

Merge branch 'han_v0'

han_v2
herenshan112 5 months ago
parent
commit
3f3447922e
  1. 2
      src/views/doc/preview.vue
  2. 17
      src/views/doc/share.vue
  3. 55
      src/views/doc/sharePermission.vue
  4. 4
      trust.host.sh

2
src/views/doc/preview.vue

@ -22,7 +22,7 @@ onMounted(()=>{})
<style>
/* dialog的body内容样式设置*/
.el-dialog__body{
height: 90%;
height: 96%;
display: flex;
flex-direction: column;
align-items: center;

17
src/views/doc/share.vue

@ -25,6 +25,7 @@ import preview from './preview.vue';
const route = useRoute()
const userStore = useUserStore();
const udprt=btoa("d"+userStore.userInfoCont.department);
const uid=btoa("p0"+userStore.userInfoCont.userId);
const siteHost=document.location.origin;
const apiURL=import.meta.env.VITE_APP_BASE_API+"/hxpan/api"
@ -54,7 +55,7 @@ function showShareMessage(row:{uuid:string,code:string,name:string,expireTime:st
type: 'primary',
style: { width: '100px' },
onClick: () => {
let _url=apiURL+`/share/zip?shareUuid=${row.uuid}&code=${row.code}&puuid=root&rootUuid=root`
let _url=apiURL+`/share/zip?shareUuid=${row.uuid}&code=${row.code}&dprt=${udprt}&puuid=root&rootUuid=root`
window.open(_url)
}
},()=>'下载'),
@ -125,7 +126,7 @@ function onShareView(row:matterInfo){
a=`${row.uuid}${row.name}`
}
let _url=`${siteHost}${apiURL}/share/zip?shareUuid=${row.uuid}&code=${row.code}&uid=${uid}&puuid=root&rootUuid=root&fullfilename=${a}`
let _url=`${siteHost}${apiURL}/share/zip?shareUuid=${row.uuid}&code=${row.code}&uid=${uid}&dprt=${udprt}&puuid=root&rootUuid=root&fullfilename=${a}`
dynamicVNode.value=h(preview,{
url:`${officeHost}/kkpreview/onlinePreview?url=`+window.btoa(unescape(encodeURIComponent(_url))),
closeFunc:()=>dynamicVNode.value=null
@ -150,12 +151,18 @@ function handleMouseEnter(row:any){
currentHoverRow.value=row.uuid
}
function getItemSpan(str:string){
let span=parseInt(str.split(":")[0])-3 //3level34,5,6...
if(span<0) span=0
return `margin-left:${span*20}px`
}
onMounted(() => {
const query = route.query
//
if (query.uuid && query.code){
browerMode.value=true
getShareBrowse("",{shareUuid:query.uuid,code:query.code,puuid:'root',rootUuid:'root'}).then((resp)=>{
getShareBrowse("",{shareUuid:query.uuid,code:query.code,puuid:'root',rootUuid:'root',dprt:udprt}).then((resp)=>{
showShareMessage(resp.data)
return
})
@ -221,7 +228,9 @@ onMounted(() => {
</template>
<ul v-if="drawerModel &&permitListRef!=''" style="line-height: 26px;">
<li class="el-text" v-for="item in permitListRef.split('|')"> {{ item }}</li>
<li class="el-text" v-for="item in permitListRef.split('|')" :style="item.includes(':')?getItemSpan(item):''" >
{{ item.replace(/\d:/,'- ') }}
</li>
</ul>
<span v-else-if="permitListRef==''"> 所有人员都可访问</span>
</el-drawer>

55
src/views/doc/sharePermission.vue

@ -6,9 +6,8 @@ import {
memberInfo,
getPermitedList,
postPermitedList} from '@/api/hr/people/share_ctrol'
import { MessageBox } from '@element-plus/icons-vue/dist/types';
import { ElDialog, ElMessageBox,TableInstance } from 'element-plus';
import { ElDialog, ElMessageBox,TableInstance, TreeInstance } from 'element-plus';
const props = withDefaults(defineProps<{
uid:string, //uuid
@ -17,33 +16,47 @@ const props = withDefaults(defineProps<{
closeFunc:(refresh?:boolean)=>void, //
}>(),{})
const treeRef=ref<TreeInstance>() //tree
const treeData =ref<shareOrgInfo[]>([]) //
const members=ref<memberInfo[]>([]) //tablelist's data
const permited=new Set<string>() //id
const treeSelected=new Array<number>() //tree
const permitedInfos=new Set<string>() //
const tableMembersRef=ref<TableInstance>() //table
function onNodeClick(data:shareOrgInfo){
members.value=[]//tableRef
getArchivesListPage({adminorg:data.id, page:1,pagesize:13}).then(resp=>{
if(resp.data.count >200){
ElMessageBox.alert("人数超过200,请按部门分配权限")
if(resp.data.count >100){
ElMessageBox.alert("人数过多,不再显示具体人员,请分配部门可见权限")
return
}
members.value=resp.data.list
//
members.value.forEach(row => {
if (permited.has('p0'+row.keystr)) {
// row-key , :reserve-selection="true"
tableMembersRef.value!.toggleRowSelection(row)
}
})
setTimeout(() => {
members.value.forEach(row => {
if (permited.has('p0'+row.keystr)) {
// row-key , :reserve-selection="true"
tableMembersRef.value.toggleRowSelection(row,true)
}
})
}, 500)
})
}
function onSavePermChange(){
let _dprt= treeRef.value?.getCheckedKeys() //
let _dprtNodes= treeRef.value?.getCheckedNodes(false,true)
let _list = permited.keys().toArray().filter(val=>val!=='') //key
let _infos = permitedInfos.keys().toArray().filter(val=>val!=='') //
let _infos = permitedInfos.keys().toArray().filter(val=>(val!==''&&!val.includes(":"))) //
//list
//dprt:d101d102d303....
_list.push("dprt:d"+_dprt?.join("d"))
//infos
_dprtNodes?.forEach((item=>_infos.push(item.level+":"+item.name)))
//
if(props.confirmFunc&&_list){
@ -80,12 +93,12 @@ function onManualSelect(select:[],row:memberInfo){
function onSelectionAll(news:memberInfo[]){
if(news.length>0){
news.forEach((item)=>{
members.value.forEach((item)=>{
permited.add('p0'+item.keystr)
permitedInfos.add(`${item.name}-${item.maindeparmentname}-${item.positionname}`)
})
}else{
news.forEach((item)=>{
members.value.forEach((item)=>{
permited.delete('p0'+item.keystr)
permitedInfos.delete(`${item.name}-${item.maindeparmentname}-${item.positionname}`)
})
@ -97,8 +110,14 @@ onMounted(()=>{
if(props.uuid!==""){
getPermitedList(props.uid,{uuid:props.uuid}).then(resp=>{
resp.data?.permited?.forEach(item=>{
if (item.startsWith("dprt")){
let arr=item.replace("dprt:d","").split("d")
arr.forEach(val=>treeSelected.push(parseInt(val)))
return
}
permited.add(item) //userUuids constitue the permited list
})
});
resp.data?.infos?.forEach(item=>{
permitedInfos.add(item)
})
@ -122,9 +141,11 @@ onMounted(()=>{
<div class="menus_tree">
<el-tree
ref="treeRef"
key="id"
:data="treeData"
node-key="uuid"
node-key="id"
show-checkbox
:default-checked-keys="treeSelected"
:check-on-click-leaf="false"
:style="{maxHeight:'500px','overflow-y': 'auto'}"
:props="{label: 'name',children:'child',isLeaf:'dir'}"
:default-expanded-keys="['root']"
@ -133,7 +154,7 @@ onMounted(()=>{
</div>
<div class="tablelist">
<el-table ref="tableMembersRef"
:data="members"
:data="members"
:row-key="row => row.keystr"
style="overflow-y: auto;height: 500px;"
@select="onManualSelect"

4
trust.host.sh

@ -0,0 +1,4 @@
#!/bin/bash
#gyhlw.hxgk.group证书文件,需要从官网通过浏览器直接导出
keytool -import -trustcacerts -alias hxgk.group -file ./gyhlw.hxgk.group -keystore /usr/java/jdk1.8.0_121/jre/lib/security/cacerts -storepass changeit
Loading…
Cancel
Save