| | |
| | | <p class="tableTopLabel">查询模板名称:</p> |
| | | <el-select v-model="form.itemQtName" placeholder="请选择查询模板" size="mini"> |
| | | <el-option v-for="(item,index) in searchQtNameList" :key="index" :label="item.qtName" |
| | | :value="item.qtName"></el-option> |
| | | :value="item.qtName"></el-option> |
| | | </el-select> |
| | | </span> |
| | | |
| | |
| | | <el-form-item label="权限控制"> |
| | | <div style="display: flex;align-items: center"> |
| | | <el-input v-model="form.itemRight" placeholder="请输入内容" size="mini"></el-input> |
| | | <el-button plain size="mini" style="margin-left: 3px" type="success">选择</el-button> |
| | | <el-button plain size="mini" style="margin-left: 3px" type="success" @click="authClickHandler"> |
| | | 选择 |
| | | </el-button> |
| | | </div> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | </el-col> |
| | | |
| | | <el-col :span="24"> |
| | | <el-form-item label="权限控制"> |
| | | <el-form-item label="属性权限"> |
| | | <div style="display: flex;align-items: center"> |
| | | <el-input v-model="customForm.itemRight" placeholder="请输入内容" size="mini"></el-input> |
| | | <el-button plain size="mini" style="margin-left: 3px" type="success">选择</el-button> |
| | | <el-button plain size="mini" style="margin-left: 3px" type="success" @click="customAuthClickHandler"> |
| | | 选择 |
| | | </el-button> |
| | | </div> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | </el-row> |
| | | </el-form> |
| | | </el-dialog> |
| | | |
| | | <el-dialog |
| | | v-dialogDrag |
| | | :visible.sync="authVisible" |
| | | append-to-body="true" |
| | | class="avue-dialog" |
| | | title="权限控制-人员列表" |
| | | width="60%" |
| | | @close="authDialogClose"> |
| | | <div style="height: 650px"> |
| | | <div style="height: 600px;"> |
| | | <avue-tree :key="refresh" ref="authTree" v-model="treeAuthForm" :data="treeAuthData" :option="treeAuthOption" |
| | | @check-change="treeAuthCheckChange"> |
| | | <span slot-scope="{ node, data }" class="el-tree-node__label"> |
| | | <span style="font-size: 15px"> |
| | | <i class="el-icon-s-promotion"></i> |
| | | {{ (node || {}).label }} |
| | | </span> |
| | | </span> |
| | | </avue-tree> |
| | | </div> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="authDialogClose">取 消</el-button> |
| | | <el-button type="primary" @click="authDialogSaveHandler">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | <script> |
| | | import {getObjTypeQTs, getTreeAttributes, savePortalVI} from "@/api/UI/formDefine/api"; |
| | | import {getObjTypeQTs, getTreeAttributes, savePortalVI, refPersonOrgTree} from "@/api/UI/formDefine/api"; |
| | | import func from "@/util/func"; |
| | | import basicOption from "@/util/basic-option"; |
| | | import {gridAttribute} from "@/api/modeling/attributePool/api"; |
| | | import {getSysModelTreeMenuByPID} from "@/api/systemModel/mangeModel/api"; |
| | | |
| | | export default { |
| | | name: "formDialog", |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | searchQtNameList:[], |
| | | authType: 'default', |
| | | refresh: Math.random(), |
| | | treeAuthOption: { |
| | | multiple: true, |
| | | height: 'auto', |
| | | menu: false, |
| | | addBtn: false, |
| | | defaultExpandAll: true, |
| | | lazy: true, |
| | | props: { |
| | | label: 'text', |
| | | value: 'oid', |
| | | children: 'childNodes', |
| | | }, |
| | | treeLoad: (node, resolve) => { |
| | | // console.log(node); |
| | | const params = { |
| | | 'conditionMap[dataType]': node.data.data, |
| | | 'conditionMap[parentId]': node.data.data, |
| | | 'conditionMap[orgType]': 'all' |
| | | } |
| | | refPersonOrgTree(node.level === 0 ? {} : params).then(res => { |
| | | resolve(res.data.treeData.map(item => { |
| | | return { |
| | | ...item, |
| | | id: item.id, |
| | | name: item.name, |
| | | leaf: item.leaf |
| | | } |
| | | })) |
| | | }) |
| | | } |
| | | }, |
| | | treeAuthData: [], |
| | | treeAuthForm: {}, |
| | | authVisible: false, |
| | | searchQtNameList: [], |
| | | customAttrRow: {}, |
| | | customAttrOption: { |
| | | ...basicOption, |
| | |
| | | const params = { |
| | | text: data.text, |
| | | oid: data.oid, |
| | | itemType: 'text' |
| | | itemType: 'text', |
| | | itemName: data.data.name |
| | | } |
| | | console.log(data); |
| | | const isDuplicate = this.formList.some(item => item.text === data.text); |
| | | |
| | | if (isDuplicate) { |
| | |
| | | this.activeItem = item; |
| | | this.activeItemIndex = index; |
| | | this.form = {...item}; |
| | | console.log(item); |
| | | |
| | | // console.log(item,index); |
| | | this.topForm.position = index += 1; |
| | |
| | | }) |
| | | }, |
| | | |
| | | // 权限选择按钮 |
| | | authClickHandler() { |
| | | this.authVisible = true; |
| | | }, |
| | | |
| | | // 自定义表单选择权限 |
| | | customAuthClickHandler() { |
| | | this.authVisible = true; |
| | | this.authType = 'attr'; |
| | | }, |
| | | |
| | | // 权限树对话框关闭 |
| | | authDialogClose() { |
| | | this.authVisible = false; |
| | | this.refresh = Math.random(); // 刷新左侧树 |
| | | }, |
| | | |
| | | // 权限控制保存 |
| | | authDialogSaveHandler() { |
| | | const filterList = ['root', 'user', 'role', 'department'] |
| | | const data = this.$refs.authTree.getCheckedNodes().filter(item => !filterList.includes(item.oid)); |
| | | if (!data || data.length <= 0) { |
| | | this.$message.error('请检查是否勾选子节点'); |
| | | return; |
| | | } |
| | | |
| | | const resultMap = {}; |
| | | |
| | | data.forEach(item => { |
| | | const key = item.parentBtmName; |
| | | if (!resultMap[key]) { |
| | | resultMap[key] = []; // 初始化数组 |
| | | } |
| | | resultMap[key].push(item.parentBtmName === 'user' ? item.data.userName : item.data.name); |
| | | }); |
| | | |
| | | // 组装字符串 |
| | | const resultString = Object.entries(resultMap).map(([key, oids]) => { |
| | | return `${key}=${oids.join(',')}`; // 用 , 连接同一类型的 oid |
| | | }).join('&&'); // 最后用 && 连接不同类型 |
| | | |
| | | // console.log(resultString); |
| | | if (this.authType === 'attr') { |
| | | this.customForm.itemRight = resultString; |
| | | } else { |
| | | this.form.itemRight = resultString; |
| | | } |
| | | // this.form.itemRight = resultString; |
| | | this.authDialogClose(); |
| | | } |
| | | |
| | | } |
| | | } |
| | | </script> |