| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- <template>
- <div>
- <div style="text-align: center">
- <!--表头-->
- <div class="form-header">
- <div class="title ibps-tc">用户查阅文件授权</div>
- </div>
- <el-transfer style="text-align: left; display: inline-block" v-model="permissionFilesKey" filterable
- :render-content="renderFunc" :titles="['受限文件', '可查阅文件']" :button-texts="['受限', '可查阅']" :format="{
- noChecked: '${total}',
- hasChecked: '${checked}/${total}'
- }" @change="handleChange" :data="allFiles">
- </el-transfer>
- </div>
- </div>
- </template>
- <script>
- import { getLmitedFile, getUserByFile, saveUserByFile } from '@/api/permission/file'
- export default {
- props: {
- id: {
- type: [String, Number]
- },
- },
- data() {
- return {
- idT: '',
- allFilesDatas: [],// 所有受控文件,与个人无关
- allFiles: [],
- noPermissionFiles: [],
- permissionFiles: [],
- permissionFilesKey: [],
- renderFunc(h, option) {
- return <span>{option.label}</span>;
- }
- };
- },
- methods: {
- handleChange(value, direction, movedKeys) {
- let paramsDatas = []
- for (let i of value) {
- let paramsData = {}
- let filterDatas = this.allFilesDatas.filter(item => item.wenJianId == i)
- paramsData["yongHuId"] = this.idT
- paramsData["wenJianId"] = filterDatas[0].wenJianId
- paramsData["wenJianMingChe"] = filterDatas[0].wenJianMingChe
- paramsDatas.push(paramsData)
- }
- saveUserByFile(paramsDatas).then(res => {
- }).catch(res => {
- })
- },
- getFormData(id) {
- getLmitedFile(id).then(res => {
- for (let i of res.variables.data) {
- this.allFilesDatas.push(i)
- let fileData = {}
- fileData["key"] = i.wenJianId
- fileData["label"] = i.wenJianMingChe
- fileData["yongHuId"] = id
- this.noPermissionFiles.push(fileData)
- this.allFiles.push(fileData)
- }
- }).catch(res => {
- })
- getUserByFile(id).then(res => {
- for (let i of res.variables.data) {
- this.allFilesDatas.push(i)
- let filterFile = {}
- filterFile["key"] = i.wenJianId
- filterFile["label"] = i.wenJianMingChe
- filterFile["yongHuId"] = id
- this.permissionFiles.push(filterFile)
- this.permissionFilesKey.push(i.wenJianId)
- this.allFiles.push(filterFile)
- }
- }).catch(res => {
- })
- },
- },
- watch: {
- id: {
- immediate: true,
- handler: function (val, oldVal) {
- this.allFilesDatas = []
- this.permissionFiles = []
- this.noPermissionFiles = []
- this.allFiles = []
- this.permissionFilesKey = []
- this.idT = val
- this.getFormData(val)
- },
- }
- }
- };
- </script>
-
- <style scoped lang="less">
- .form-header {
- border-bottom: 1px solid #2b34410d;
- margin-bottom: 5px;
- .title {
- font-size: 16px;
- font-weight: bold;
- color: #222;
- text-align: left;
- padding: 8px 10px 10px;
- margin: 0;
- }
- .desc {
- word-wrap: break-word;
- word-break: normal;
- text-indent: 0;
- line-height: 1.6;
- margin: 0 0 11px;
- padding: 3px 30px 8px;
- }
- }
- .transfer-footer {
- margin-left: 20px;
- padding: 6px 5px;
- }
- /deep/.el-transfer {
- width: 100%;
- }
- /deep/ .el-transfer-panel {
- width: 40%;
- }
- /deep/ .el-transfer__buttons {
- width: 10%;
- padding: 0 10px;
- }
- /deep/ .el-transfer-panel__body {
- height: auto;
- }
- /deep/.el-transfer-panel__list {
- height: 650px;
- }
- /deep/ .el-button {
- width: 100%;
- }
- </style>
|