|
|
|
@ -518,45 +518,67 @@ |
|
|
|
title="项目权限" |
|
|
|
:close-on-click-modal="false" |
|
|
|
:visible.sync="projectRoleFlag"> |
|
|
|
<el-form :inline="true" label-position="top" label-width="100px" > |
|
|
|
|
|
|
|
<el-form-item :label="'项目号'"> |
|
|
|
<el-input v-model="projectRoleSearchData.projectId" style="width: 120px" ></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item :label="'项目名称'"> |
|
|
|
<el-input v-model="projectRoleSearchData.projectName" style="width: 120px" ></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item :label="'查询'" > |
|
|
|
<el-select v-model="projectRoleSearchData.searchFlag" clearable style="width: 100px"> |
|
|
|
<el-option label="全部" value=""></el-option> |
|
|
|
<el-option label="允许" value="Y"></el-option> |
|
|
|
<el-option label="不允许" value="N"></el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item :label="'修改'" > |
|
|
|
<el-select v-model="projectRoleSearchData.updateFlag" clearable style="width: 100px"> |
|
|
|
<el-option label="全部" value=""></el-option> |
|
|
|
<el-option label="允许" value="Y"></el-option> |
|
|
|
<el-option label="不允许" value="N"></el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item :label="'下载'" > |
|
|
|
<el-select v-model="projectRoleSearchData.downFlag" clearable style="width: 100px"> |
|
|
|
<el-option label="全部" value=""></el-option> |
|
|
|
<el-option label="允许" value="Y"></el-option> |
|
|
|
<el-option label="不允许" value="N"></el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item :label="'删除'" > |
|
|
|
<el-select v-model="projectRoleSearchData.deleteFlag" clearable style="width: 100px"> |
|
|
|
<el-option label="全部" value=""></el-option> |
|
|
|
<el-option label="允许" value="Y"></el-option> |
|
|
|
<el-option label="不允许" value="N"></el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item :label="' '" > |
|
|
|
<el-button type="primary" @click="searchProjectModel()">{{'查询'}}</el-button> |
|
|
|
</el-form-item> |
|
|
|
<el-form label-position="top" label-width="100px" > |
|
|
|
<el-row :gutter="5"> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item :label="'项目号'"> |
|
|
|
<el-input v-model="projectRoleSearchData.projectId" clearable></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-form-item :label="'项目名称'"> |
|
|
|
<el-input v-model="projectRoleSearchData.projectName" clearable></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-form-item :label="'客户描述'"> |
|
|
|
<el-input v-model="projectRoleSearchData.customerDesc" clearable></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<el-row :gutter="5"> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item :label="'查询'" > |
|
|
|
<el-select v-model="projectRoleSearchData.searchFlag" style="width: 100%;"> |
|
|
|
<el-option label="全部" value=""></el-option> |
|
|
|
<el-option label="允许" value="Y"></el-option> |
|
|
|
<el-option label="不允许" value="N"></el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item :label="'修改'" > |
|
|
|
<el-select v-model="projectRoleSearchData.updateFlag" style="width: 100%;"> |
|
|
|
<el-option label="全部" value=""></el-option> |
|
|
|
<el-option label="允许" value="Y"></el-option> |
|
|
|
<el-option label="不允许" value="N"></el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item :label="'下载'" > |
|
|
|
<el-select v-model="projectRoleSearchData.downFlag" style="width: 100%;"> |
|
|
|
<el-option label="全部" value=""></el-option> |
|
|
|
<el-option label="允许" value="Y"></el-option> |
|
|
|
<el-option label="不允许" value="N"></el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item :label="'删除'" > |
|
|
|
<el-select v-model="projectRoleSearchData.deleteFlag" style="width: 100%;"> |
|
|
|
<el-option label="全部" value=""></el-option> |
|
|
|
<el-option label="允许" value="Y"></el-option> |
|
|
|
<el-option label="不允许" value="N"></el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item :label="' '" > |
|
|
|
<el-button type="primary" @click="searchProjectModel()">{{'查询'}}</el-button> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
</el-form> |
|
|
|
<el-table |
|
|
|
:data="projectRoleList" |
|
|
|
@ -567,23 +589,23 @@ |
|
|
|
<el-table-column |
|
|
|
prop="projectId" |
|
|
|
header-align="center" |
|
|
|
align="center" |
|
|
|
align="left" |
|
|
|
min-width="50" |
|
|
|
label="项目号"> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column |
|
|
|
prop="projectName" |
|
|
|
header-align="center" |
|
|
|
align="center" |
|
|
|
align="left" |
|
|
|
min-width="50" |
|
|
|
label="项目名称"> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column |
|
|
|
prop="projectDesc" |
|
|
|
prop="customerDesc" |
|
|
|
header-align="center" |
|
|
|
align="center" |
|
|
|
min-width="100" |
|
|
|
label="项目描述"> |
|
|
|
align="left" |
|
|
|
min-width="50" |
|
|
|
label="客户描述"> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column |
|
|
|
prop="" |
|
|
|
@ -596,7 +618,13 @@ |
|
|
|
</template> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<!-- 如果数据为Y,显示勾选框,否则不勾选 --> |
|
|
|
<el-checkbox v-model="scope.row.checkAll" @change="changeAll(scope.row)"></el-checkbox> |
|
|
|
<el-checkbox |
|
|
|
:indeterminate="(scope.row.searchFlag === 'Y' || scope.row.updateFlag === 'Y' || scope.row.downFlag === 'Y' || scope.row.deleteFlag === 'Y') && !(scope.row.searchFlag === 'Y' && scope.row.updateFlag === 'Y' && scope.row.downFlag === 'Y' && scope.row.deleteFlag === 'Y')" |
|
|
|
v-model="scope.row.checkAllFlag" |
|
|
|
@change="(val)=>changeAll(val,scope.$index)" |
|
|
|
true-label="Y" |
|
|
|
false-label="N" |
|
|
|
></el-checkbox> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column |
|
|
|
@ -605,9 +633,12 @@ |
|
|
|
align="center" |
|
|
|
min-width="25" |
|
|
|
label="查询"> |
|
|
|
<template slot="header" slot-scope="scope"> |
|
|
|
<el-checkbox :indeterminate="searchCheckAllIndeterminate" v-model="searchCheckAll" true-label="Y" false-label="N" @change="changeSearchCheckAll"></el-checkbox> 查询 |
|
|
|
</template> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<!-- 如果数据为Y,显示勾选框,否则不勾选 --> |
|
|
|
<el-checkbox v-model="scope.row.searchCheck" @change="changeCheck(scope.row,1)"></el-checkbox> |
|
|
|
<el-checkbox v-model="scope.row.searchFlag" true-label="Y" false-label="N"></el-checkbox> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column |
|
|
|
@ -616,9 +647,12 @@ |
|
|
|
align="center" |
|
|
|
min-width="25" |
|
|
|
label="修改"> |
|
|
|
<template slot="header" slot-scope="scope"> |
|
|
|
<el-checkbox :indeterminate="updateCheckAllIndeterminate" v-model="updateCheckAll" true-label="Y" false-label="N" @change="changeUpdateCheckAll"></el-checkbox> 修改 |
|
|
|
</template> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<!-- 如果数据为Y,显示勾选框,否则不勾选 --> |
|
|
|
<el-checkbox v-model="scope.row.updateCheck" @change="changeCheck(scope.row,2)"></el-checkbox> |
|
|
|
<el-checkbox v-model="scope.row.updateFlag" true-label="Y" false-label="N"></el-checkbox> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column |
|
|
|
@ -627,9 +661,12 @@ |
|
|
|
align="center" |
|
|
|
min-width="25" |
|
|
|
label="下载"> |
|
|
|
<template slot="header" slot-scope="scope"> |
|
|
|
<el-checkbox :indeterminate="downCheckAllIndeterminate" v-model="downCheckAll" true-label="Y" false-label="N" @change="changeDownCheckAll"></el-checkbox> 修改 |
|
|
|
</template> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<!-- 如果数据为Y,显示勾选框,否则不勾选 --> |
|
|
|
<el-checkbox v-model="scope.row.downCheck" @change="changeCheck(scope.row,3)"></el-checkbox> |
|
|
|
<el-checkbox v-model="scope.row.downFlag" true-label="Y" false-label="N"></el-checkbox> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column |
|
|
|
@ -638,19 +675,28 @@ |
|
|
|
align="center" |
|
|
|
min-width="25" |
|
|
|
label="删除"> |
|
|
|
<template slot="header" slot-scope="scope"> |
|
|
|
<el-checkbox :indeterminate="deleteCheckAllIndeterminate" v-model="deleteCheckAll" true-label="Y" false-label="N" @change="changeDeleteCheckAll"></el-checkbox> 修改 |
|
|
|
</template> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<!-- 如果数据为Y,显示勾选框,否则不勾选 --> |
|
|
|
<el-checkbox v-model="scope.row.deleteCheck" @change="changeCheck(scope.row,4)"></el-checkbox> |
|
|
|
<el-checkbox v-model="scope.row.deleteFlag" true-label="Y" false-label="N"></el-checkbox> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
|
|
|
|
<el-pagination @size-change="handleSizeChange" |
|
|
|
@current-change="handlePageChange" |
|
|
|
:current-page="projectRoleSearchData.no" |
|
|
|
:page-sizes="[100, 200, 500]" |
|
|
|
:page-size="projectRoleSearchData.size" |
|
|
|
:total="projectRoleTotal" |
|
|
|
layout="total,sizes, prev, pager, next, jumper"> |
|
|
|
</el-pagination> |
|
|
|
<span slot="footer" class="dialog-footer"> |
|
|
|
<div style="margin-top: 5px"> |
|
|
|
<el-button type="primary" @click="saveAccessProject()">确定</el-button> |
|
|
|
<el-button @click="projectRoleFlag = false" type="primary">取消</el-button> |
|
|
|
</div> |
|
|
|
</span> |
|
|
|
<el-button type="primary" @click="saveAccessProject()">确定</el-button> |
|
|
|
<el-button @click="projectRoleFlag = false" type="primary">取消</el-button> |
|
|
|
</span> |
|
|
|
</el-dialog> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
@ -658,7 +704,7 @@ |
|
|
|
<script> |
|
|
|
import {getUserAccessSiteList, saveUserAccessSiteList} from '@/api/factory/accessSite.js' |
|
|
|
import {getSiteList} from '@/api/factory/site.js' |
|
|
|
import {searchAccessBuList,searchAccessRoleList,saveAccessBU,saveAccessRole,searchAccessProjectForUser,saveAccessProject, getUserAccessSiteInfoList, getUserAccessBUInfoList, getUserAccessRoleInfoList, getUserAccessProjectInfoList} from '@/api/base/site.js' |
|
|
|
import {searchAccessBuList,searchAccessRoleList,saveAccessBU,saveAccessRole,searchAccessProjectForUser,searchAccessProjectForUserByPage,saveAccessProject, getUserAccessSiteInfoList, getUserAccessBUInfoList, getUserAccessRoleInfoList, getUserAccessProjectInfoList} from '@/api/base/site.js' |
|
|
|
import { |
|
|
|
searchFieldFunctionList,searchAccessFieldListByUser,saveAccessFieldListByUser,getUserAccessFieldFunctionInfoList |
|
|
|
} from "@/api/base/field.js" |
|
|
|
@ -691,9 +737,14 @@ export default { |
|
|
|
userDisplay:'', |
|
|
|
}, |
|
|
|
saveCheckAll:'N', |
|
|
|
searchCheckAll:'N', |
|
|
|
updateCheckAll:'N', |
|
|
|
downCheckAll:'N', |
|
|
|
deleteCheckAll:'N', |
|
|
|
accessSiteVisible: false, |
|
|
|
projectRoleFlag: false, |
|
|
|
projectRoleList: [], |
|
|
|
projectRoleTotal:0, |
|
|
|
accessSiteList: [], |
|
|
|
showButton: true, |
|
|
|
height: 200, |
|
|
|
@ -749,12 +800,15 @@ export default { |
|
|
|
projectRoleSearchData:{ |
|
|
|
projectId:'', |
|
|
|
projectName:'', |
|
|
|
customerDesc:'', |
|
|
|
searchFlag:'', |
|
|
|
updateFlag:'', |
|
|
|
downFlag:'', |
|
|
|
deleteFlag:'', |
|
|
|
site:this.$store.state.user.site, |
|
|
|
username:'', |
|
|
|
no:1, |
|
|
|
size:100 |
|
|
|
}, |
|
|
|
// 初始页签 |
|
|
|
activeTable: 'factory_information', |
|
|
|
@ -863,10 +917,10 @@ export default { |
|
|
|
}, |
|
|
|
computed:{ |
|
|
|
saveCheckAllIndeterminate(){ |
|
|
|
if (this.projectRoleList.every(item => item.checkAll === true)){ |
|
|
|
if (this.projectRoleList.every(item => item.checkAllFlag === 'Y')){ |
|
|
|
this.saveCheckAll = 'Y' |
|
|
|
return false |
|
|
|
}else if (this.projectRoleList.every(item => item.checkAll === false)){ |
|
|
|
}else if (this.projectRoleList.every(item => item.checkAllFlag === 'N')){ |
|
|
|
this.saveCheckAll = 'N' |
|
|
|
return false |
|
|
|
}else { |
|
|
|
@ -874,6 +928,73 @@ export default { |
|
|
|
return true |
|
|
|
} |
|
|
|
}, |
|
|
|
searchCheckAllIndeterminate(){ |
|
|
|
if (this.projectRoleList.every(item => item.searchFlag === 'Y')){ |
|
|
|
this.searchCheckAll = 'Y' |
|
|
|
return false |
|
|
|
}else if (this.projectRoleList.every(item => item.searchFlag === 'N')){ |
|
|
|
this.searchCheckAll = 'N' |
|
|
|
return false |
|
|
|
}else { |
|
|
|
this.searchCheckAll = 'N' |
|
|
|
return true |
|
|
|
} |
|
|
|
}, |
|
|
|
updateCheckAllIndeterminate(){ |
|
|
|
if (this.projectRoleList.every(item => item.updateFlag === 'Y')){ |
|
|
|
this.updateCheckAll = 'Y' |
|
|
|
return false |
|
|
|
}else if (this.projectRoleList.every(item => item.updateFlag === 'N')){ |
|
|
|
this.updateCheckAll = 'N' |
|
|
|
return false |
|
|
|
}else { |
|
|
|
this.updateCheckAll = 'N' |
|
|
|
return true |
|
|
|
} |
|
|
|
}, |
|
|
|
downCheckAllIndeterminate(){ |
|
|
|
if (this.projectRoleList.every(item => item.downFlag === 'Y')){ |
|
|
|
this.downCheckAll = 'Y' |
|
|
|
return false |
|
|
|
}else if (this.projectRoleList.every(item => item.downFlag === 'N')){ |
|
|
|
this.downCheckAll = 'N' |
|
|
|
return false |
|
|
|
}else { |
|
|
|
this.downCheckAll = 'N' |
|
|
|
return true |
|
|
|
} |
|
|
|
}, |
|
|
|
deleteCheckAllIndeterminate(){ |
|
|
|
if (this.projectRoleList.every(item => item.deleteFlag === 'Y')){ |
|
|
|
this.deleteCheckAll = 'Y' |
|
|
|
return false |
|
|
|
}else if (this.projectRoleList.every(item => item.deleteFlag === 'N')){ |
|
|
|
this.deleteCheckAll = 'N' |
|
|
|
return false |
|
|
|
}else { |
|
|
|
this.deleteCheckAll = 'N' |
|
|
|
return true |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
watch:{ |
|
|
|
projectRoleList:{ |
|
|
|
handler(newVal){ |
|
|
|
newVal.forEach((item, index) => { |
|
|
|
// 当四个标志变化时,重新计算 checkAll |
|
|
|
const isAll = ( |
|
|
|
item.searchFlag === 'Y' && |
|
|
|
item.updateFlag === 'Y' && |
|
|
|
item.downFlag === 'Y' && |
|
|
|
item.deleteFlag === 'Y' |
|
|
|
)?'Y':'N'; |
|
|
|
if (isAll !== item.checkAllFlag){ |
|
|
|
this.$set(this.projectRoleList, index, { ...item, checkAllFlag:isAll}); |
|
|
|
} |
|
|
|
}); |
|
|
|
}, |
|
|
|
deep: true, |
|
|
|
} |
|
|
|
}, |
|
|
|
activated() { |
|
|
|
this.getDataList() |
|
|
|
@ -887,9 +1008,43 @@ export default { |
|
|
|
methods: { |
|
|
|
changeSaveCheckAll(val){ |
|
|
|
for (let i = 0; i < this.projectRoleList.length; i++) { |
|
|
|
let row = this.projectRoleList[i] |
|
|
|
row.checkAll = (val === 'Y') |
|
|
|
this.changeAll(row) |
|
|
|
this.changeAll(val,i) |
|
|
|
} |
|
|
|
}, |
|
|
|
changeSearchCheckAll(val){ |
|
|
|
for (let i = 0; i < this.projectRoleList.length; i++) { |
|
|
|
let row = { |
|
|
|
...this.projectRoleList[i], |
|
|
|
searchFlag: val, |
|
|
|
} |
|
|
|
this.$set(this.projectRoleList, i, row); |
|
|
|
} |
|
|
|
}, |
|
|
|
changeUpdateCheckAll(val){ |
|
|
|
for (let i = 0; i < this.projectRoleList.length; i++) { |
|
|
|
let row = { |
|
|
|
...this.projectRoleList[i], |
|
|
|
updateFlag: val, |
|
|
|
} |
|
|
|
this.$set(this.projectRoleList, i, row); |
|
|
|
} |
|
|
|
}, |
|
|
|
changeDownCheckAll(val){ |
|
|
|
for (let i = 0; i < this.projectRoleList.length; i++) { |
|
|
|
let row = { |
|
|
|
...this.projectRoleList[i], |
|
|
|
downFlag: val, |
|
|
|
} |
|
|
|
this.$set(this.projectRoleList, i, row); |
|
|
|
} |
|
|
|
}, |
|
|
|
changeDeleteCheckAll(val){ |
|
|
|
for (let i = 0; i < this.projectRoleList.length; i++) { |
|
|
|
let row = { |
|
|
|
...this.projectRoleList[i], |
|
|
|
deleteFlag: val, |
|
|
|
} |
|
|
|
this.$set(this.projectRoleList, i, row); |
|
|
|
} |
|
|
|
}, |
|
|
|
// 获取button的词典 |
|
|
|
@ -989,42 +1144,53 @@ export default { |
|
|
|
projectModel(){ |
|
|
|
this.projectRoleSearchData={ |
|
|
|
projectId:'', |
|
|
|
projectName:'', |
|
|
|
projectName:'', |
|
|
|
customerDesc:'', |
|
|
|
searchFlag:'', |
|
|
|
updateFlag:'', |
|
|
|
downFlag:'', |
|
|
|
deleteFlag:'', |
|
|
|
site:this.$store.state.user.site, |
|
|
|
username:this.selectUser.username, |
|
|
|
no:1, |
|
|
|
size:100 |
|
|
|
} |
|
|
|
this.projectRoleTotal = 0 |
|
|
|
this.searchProjectModel(); |
|
|
|
this.projectRoleFlag=true |
|
|
|
}, |
|
|
|
searchProjectModel(){ |
|
|
|
searchAccessProjectForUser(this.projectRoleSearchData).then(({data}) => { |
|
|
|
this.projectRoleList=data.rows |
|
|
|
// searchAccessProjectForUser(this.projectRoleSearchData).then(({data}) => { |
|
|
|
// this.projectRoleList=data.rows |
|
|
|
// }) |
|
|
|
searchAccessProjectForUserByPage(this.projectRoleSearchData).then(({data}) => { |
|
|
|
if (data && data.code === 0) { |
|
|
|
this.projectRoleList=data.rows |
|
|
|
this.projectRoleTotal = data.total |
|
|
|
}else { |
|
|
|
this.$message.warning(data.msg) |
|
|
|
} |
|
|
|
}).catch((error) => { |
|
|
|
this.$message.error(error) |
|
|
|
}) |
|
|
|
}, |
|
|
|
changeAll(row){ |
|
|
|
if(row.checkAll){ |
|
|
|
row.searchCheck=true; |
|
|
|
row.updateCheck=true; |
|
|
|
row.downCheck=true; |
|
|
|
row.deleteCheck=true; |
|
|
|
row.searchFlag='Y' |
|
|
|
row.updateFlag='Y' |
|
|
|
row.downFlag='Y' |
|
|
|
row.deleteFlag='Y' |
|
|
|
}else { |
|
|
|
row.searchCheck=false; |
|
|
|
row.updateCheck=false; |
|
|
|
row.downCheck=false; |
|
|
|
row.deleteCheck=false; |
|
|
|
row.searchFlag='N' |
|
|
|
row.updateFlag='N' |
|
|
|
row.downFlag='N' |
|
|
|
row.deleteFlag='N' |
|
|
|
handleSizeChange(val){ |
|
|
|
this.projectRoleSearchData.size = val |
|
|
|
this.searchProjectModel(); |
|
|
|
}, |
|
|
|
handlePageChange(val){ |
|
|
|
this.projectRoleSearchData.no = val |
|
|
|
this.searchProjectModel(); |
|
|
|
}, |
|
|
|
changeAll(val,index){ |
|
|
|
let row = { |
|
|
|
...this.projectRoleList[index], |
|
|
|
searchFlag: val, |
|
|
|
updateFlag: val, |
|
|
|
deleteFlag: val, |
|
|
|
downFlag: val, |
|
|
|
} |
|
|
|
this.$set(this.projectRoleList, index, row); |
|
|
|
}, |
|
|
|
changeCheck(row,type){ |
|
|
|
if(type==1){ |
|
|
|
|