|
@@ -0,0 +1,330 @@
|
|
|
+<template>
|
|
|
+ <view>
|
|
|
+ <u-navbar title="文件权限" ></u-navbar>
|
|
|
+ <view class="main">
|
|
|
+ <view class="item" v-show="show1" >
|
|
|
+
|
|
|
+
|
|
|
+ <view class="name" >
|
|
|
+ 分配部门
|
|
|
+ <u-button style="float: right;" size="mini" @click="show1=false,show2=true" > 编辑</u-button>
|
|
|
+ </view>
|
|
|
+ <view class="value">
|
|
|
+ <view class="tag" v-for="(item,i) in orgListIndex" :class="{
|
|
|
+ tagindex:true
|
|
|
+ }" >
|
|
|
+ {{item.name}}
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <u-divider bgColor="#FFF" v-if="orgListIndex.length==0&&show1"
|
|
|
+ :isnone="orgListIndex.length==0" nonetext="点击编辑设置权限"
|
|
|
+ ></u-divider>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <view class="item" v-show="show2" >
|
|
|
+ <view class="name">部门列表<span>(点击勾选)</span>
|
|
|
+
|
|
|
+ <u-button style="float: right;" size="mini" type="primary" @click="show2=false,show1=true" > 完成</u-button>
|
|
|
+ </view>
|
|
|
+ <view class="value">
|
|
|
+ <view class="tag" v-for="(item,i) in orgList"
|
|
|
+ v-show="item.name.indexOf('测试')==-1"
|
|
|
+ :class="{
|
|
|
+ tagindex:getTagindex(item)
|
|
|
+ }" @click="ckTagindex(item)" >
|
|
|
+ {{item.name}}
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <view class="item" >
|
|
|
+
|
|
|
+
|
|
|
+ <view class="name" >
|
|
|
+ 分配人员<span v-show="show3&&userListIndex.length">(点击删除)</span>
|
|
|
+ <u-button style="float: right;" size="mini" v-show="!show3" @click="show3=true" > 编辑</u-button>
|
|
|
+ <u-button style="float: right;" size="mini" v-show="show3" type="primary" @click="show3=false" > 完成</u-button>
|
|
|
+
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <view class="value">
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ <view class="tag" v-for="(item,i) in userListIndex" :class="{
|
|
|
+ tagindex:true
|
|
|
+
|
|
|
+ }" @click="ckTagindexUser(item)" >
|
|
|
+ {{item.name}}
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <u-divider bgColor="#FFF" v-if="userListIndex.length==0&&!show3"
|
|
|
+ :isnone="userListIndex.length==0" nonetext="点击编辑设置权限"
|
|
|
+ ></u-divider>
|
|
|
+ <view class="query" style="margin-top: 40rpx;" v-show="show3">
|
|
|
+ <view >
|
|
|
+ 搜索人员:
|
|
|
+ <u-input style="border: 1px solid #cfd4db;margin: 12rpx;"
|
|
|
+ v-model="key" placeholder="输入姓名查找"></u-input>
|
|
|
+
|
|
|
+ </view>
|
|
|
+ <view >
|
|
|
+ 查询结果:<span v-if="regUserQuery.length!=0" style="color:red;">(点击勾选)</span>
|
|
|
+ <view class="tag" v-for="(item,i) in regUserQuery" :class="{
|
|
|
+ tagindex:getTagindexUser(item)
|
|
|
+ }" @click="ckTagindexUser(item)" >
|
|
|
+ {{item.name}}
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <u-divider bgColor="#FFF"
|
|
|
+ :isnone="regUserQuery.length==0" nonetext="没有找到相关内容"
|
|
|
+ >最多查询{{regUserQueryLength}}条</u-divider>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <view class="bottom" @click="submit()" >
|
|
|
+ <button>保存权限</button>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+ import * as API from '@/apis/pagejs/addressbook.js'
|
|
|
+
|
|
|
+ export default {
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ id:"",
|
|
|
+ orgList:[],
|
|
|
+ orgRelationList:[],
|
|
|
+ regUserList:[],
|
|
|
+ regUserRelationList:[],
|
|
|
+ show1:true,
|
|
|
+ show2:false,
|
|
|
+ show3:false,
|
|
|
+ regUserQueryLength:10,
|
|
|
+ key:""
|
|
|
+ }
|
|
|
+ },
|
|
|
+ onLoad(op) {
|
|
|
+ if(op.id){
|
|
|
+ this.id=op.id;
|
|
|
+ this.getInfo()
|
|
|
+ }
|
|
|
+ },
|
|
|
+ computed:{
|
|
|
+ regUserQuery(){
|
|
|
+ var sz=[];
|
|
|
+ if(this.key){
|
|
|
+ for(var i=0;i< this.regUserList.length;i++){
|
|
|
+ if(sz.length>=this.regUserQueryLength){
|
|
|
+ break
|
|
|
+ }
|
|
|
+ var item=this.regUserList[i]
|
|
|
+ if(item.name.indexOf(this.key)!=-1){
|
|
|
+ sz.push(item)
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return sz
|
|
|
+ },
|
|
|
+ orgListIndex(){
|
|
|
+ var sz=[]
|
|
|
+ this.orgList.forEach(item1=>{
|
|
|
+ if(this.getTagindex(item1)){
|
|
|
+ sz.push(item1)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ return sz;
|
|
|
+ },
|
|
|
+ userListIndex(){
|
|
|
+ var sz=[]
|
|
|
+ this.regUserList.forEach(item1=>{
|
|
|
+ if(this.getTagindexUser(item1)){
|
|
|
+ sz.push(item1)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ return sz;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ submit(){
|
|
|
+ var orgSelected=this.orgListIndex.map(item=>{
|
|
|
+ return item.id
|
|
|
+ })
|
|
|
+ var relatedUser=this.userListIndex.map(item=>{
|
|
|
+ return item.id
|
|
|
+ })
|
|
|
+ var subForm={
|
|
|
+ fileId:this.id,
|
|
|
+ orgSelected:orgSelected,
|
|
|
+ relatedUser:relatedUser
|
|
|
+ }
|
|
|
+ API.oaFileInfoRelationItem(subForm).then((res) => {
|
|
|
+ uni.hideLoading();
|
|
|
+
|
|
|
+ uni.showModal({
|
|
|
+ title:"提示",
|
|
|
+ showCancel:false,
|
|
|
+ content:"操作成功!",
|
|
|
+
|
|
|
+ success() {
|
|
|
+ uni.navigateBack()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }).catch(error => {
|
|
|
+ uni.showToast({
|
|
|
+ title: error,
|
|
|
+ icon: "none"
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ ckTagindexUser(item){
|
|
|
+ if(!this.show3){
|
|
|
+ return
|
|
|
+ }
|
|
|
+ uni.showLoading({
|
|
|
+ title: "加载中",
|
|
|
+ mask: true,
|
|
|
+ })
|
|
|
+
|
|
|
+ var k =this.regUserRelationList.findIndex(it=>{
|
|
|
+
|
|
|
+ return it.businessId==item.id
|
|
|
+ })
|
|
|
+
|
|
|
+ if(k==-1){
|
|
|
+ this.regUserRelationList.push({
|
|
|
+ businessId:item.id
|
|
|
+ })
|
|
|
+ }else{
|
|
|
+ this.regUserRelationList.splice(k,1)
|
|
|
+ }
|
|
|
+
|
|
|
+ uni.hideLoading();
|
|
|
+
|
|
|
+ },
|
|
|
+ ckTagindex(item){
|
|
|
+ uni.showLoading({
|
|
|
+ title: "加载中",
|
|
|
+ mask: true,
|
|
|
+ })
|
|
|
+
|
|
|
+ var k =this.orgRelationList.findIndex(it=>{
|
|
|
+
|
|
|
+ return it.businessId==item.id
|
|
|
+ })
|
|
|
+
|
|
|
+ if(k==-1){
|
|
|
+ this.orgRelationList.push({
|
|
|
+ businessId:item.id
|
|
|
+ })
|
|
|
+ }else{
|
|
|
+ this.orgRelationList.splice(k,1)
|
|
|
+ }
|
|
|
+ uni.hideLoading();
|
|
|
+
|
|
|
+ },
|
|
|
+ getTagindex(item){
|
|
|
+
|
|
|
+ var k =this.orgRelationList.findIndex(it=>{
|
|
|
+
|
|
|
+ return it.businessId==item.id
|
|
|
+ })
|
|
|
+ return k!=-1
|
|
|
+ },
|
|
|
+ getTagindexUser(item){
|
|
|
+
|
|
|
+ var k =this.regUserRelationList.findIndex(it=>{
|
|
|
+
|
|
|
+ return it.businessId==item.id
|
|
|
+ })
|
|
|
+ return k!=-1
|
|
|
+ },
|
|
|
+ getInfo(){
|
|
|
+ uni.showLoading({
|
|
|
+ title: "加载中",
|
|
|
+ mask: true,
|
|
|
+ })
|
|
|
+
|
|
|
+ API.oaFileInfoQuery(this.id).then((res) => {
|
|
|
+ uni.hideLoading();
|
|
|
+ var info =res.data
|
|
|
+ this.orgList=info.orgList;
|
|
|
+ this.orgRelationList=info.orgRelationList;
|
|
|
+ this.regUserList=info.regUserList;
|
|
|
+ this.regUserList.forEach(item=>{
|
|
|
+ var phone=item.phone
|
|
|
+ var phone1 = phone.slice(0,3);
|
|
|
+ var phone2 = phone.slice(-4);
|
|
|
+ item.name= item.name+"["+ phone1 + '****' + phone2+"]";
|
|
|
+ })
|
|
|
+
|
|
|
+ this.regUserRelationList=info.regUserRelationList;
|
|
|
+ }).catch(error => {
|
|
|
+ uni.showToast({
|
|
|
+ title: error,
|
|
|
+ icon: "none"
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ }
|
|
|
+ }
|
|
|
+</script>
|
|
|
+
|
|
|
+<style scoped lang="scss">
|
|
|
+ .bottom{
|
|
|
+ padding: 16rpx 32rpx;
|
|
|
+ background-color: #fff;
|
|
|
+ position: fixed;
|
|
|
+ z-index: 99999;
|
|
|
+ bottom: 0;
|
|
|
+ left: 0;
|
|
|
+ right: 0;
|
|
|
+ uni-button{
|
|
|
+ border-radius: 8px;
|
|
|
+ background-color: rgba(31, 74, 153, 1);
|
|
|
+ color: rgba(255, 255, 255, 1);
|
|
|
+ font-size: 16px;
|
|
|
+ line-height: 40px;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ .main{
|
|
|
+
|
|
|
+ padding-bottom:120rpx ;
|
|
|
+
|
|
|
+ .name{
|
|
|
+ font-size: 44rpx;
|
|
|
+ font-weight: bold;
|
|
|
+ span{
|
|
|
+ font-size: 32rpx;
|
|
|
+ font-weight: 400;
|
|
|
+ color:red;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .item{
|
|
|
+ padding: 32rpx;
|
|
|
+ margin-bottom: 30rpx;
|
|
|
+ background-color: #fff;
|
|
|
+ }
|
|
|
+ .value{
|
|
|
+ display: flex;
|
|
|
+ flex-wrap: wrap;
|
|
|
+
|
|
|
+ }
|
|
|
+ .tag{
|
|
|
+ border: 1px solid #cfd4db;
|
|
|
+ padding: 12rpx 16rpx;
|
|
|
+ margin: 12rpx ;
|
|
|
+ }
|
|
|
+ .tagindex{
|
|
|
+ border: 1px solid #19be6b;
|
|
|
+ color:#19be6b;
|
|
|
+ }
|
|
|
+ }
|
|
|
+</style>
|