Source/UBCS-WEB/src/components/Master/MasterTree.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Source/UBCS-WEB/src/components/Theme/ClassifyAuthDialog.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Source/UBCS-WEB/src/components/Theme/ThemeClassifyTrees.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Source/UBCS-WEB/src/views/integration/integrationIndex.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Source/UBCS-WEB/src/views/statistic/statisticPage.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Source/UBCS-WEB/src/components/Master/MasterTree.vue
@@ -3,8 +3,9 @@ <avue-tree ref="tree" v-model="CloneTreeAvueform" v-loading="loading" :data="Treedata" :defaultExpandAll="false" :option="Treeoption" style="width: fit-content;" @node-click="nodeClick"> <template slot-scope="{ node }"> <el-tooltip class="item" effect="dark" open-delay="350" :content="$createElement('div', { domProps: { innerHTML: node.label } })" placement="right-start"> <span id="labelSize" v-html="node.label" ></span> <el-tooltip :content="$createElement('div', { domProps: { innerHTML: node.label } })" class="item" effect="dark" open-delay="350" placement="right-start"> <span id="labelSize" v-html="node.label"></span> </el-tooltip> </template> </avue-tree> @@ -101,6 +102,7 @@ const index = this.$route.query.id.indexOf('@'); const result = this.$route.query.id.substring(0, index); this.idData = result; this.removeList(); getTreeList({'conditionMap[id]': this.idData}).then(res => { if (res) { if (res.data.length === 0) { @@ -126,7 +128,13 @@ this.$message.error(res) }); }, removeList() { this.$emit('tableHeadDataFateher', []); this.$emit('tableHeadFindData', []); this.$emit('tableHeadBttoms', []); this.$emit('tableDataArray', []) this.$emit('total', null) }, //定义一个修改数据属性名的方法 ModifyProperties(obj, oldName, newName) { for (let key in obj) { @@ -247,7 +255,8 @@ margin-left: 6px; font-size: 18px; } #labelSize{ #labelSize { font-size: 14px !important; } </style> Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
@@ -395,7 +395,10 @@ }, tableHeadDataFateher: { handler(newval, oldval) { this.options = newval.tableDefineVO.seniorQueryColumns // console.log(newval) if (newval.length > 0) { this.options = newval.tableDefineVO.seniorQueryColumns } } }, codeClassifyOid: { @@ -407,16 +410,20 @@ tableDataArray: { handler(newval, oldval) { this.tableData = newval; this.searchResults = newval this.searchResults = newval; this.doLayout(); this.fileOptions = { ownbizOid: "0", ownbizBtm: "0", fileDocClassify: '!=processAuditSuggest', fileDocClassifyName: '', hasDownload: true, hasUpload: true, height: 'auto' if (newval.length > 0) { this.fileOptions = { ownbizOid: "0", ownbizBtm: "0", fileDocClassify: '!=processAuditSuggest', fileDocClassifyName: '', hasDownload: true, hasUpload: true, height: 'auto' } } else { this.fileOptions = {}; } }, }, Source/UBCS-WEB/src/components/Theme/ClassifyAuthDialog.vue
@@ -1,10 +1,12 @@ <template> <el-dialog v-dialogDrag :close-on-click-modal="false" :visible.sync="isShowDialog" @close="closeDialog" append-to-body title="分类授权"> <el-dialog v-dialogDrag :close-on-click-modal="false" :visible.sync="isShowDialog" append-to-body class="avue-dialog avue-dialog--top" title="分类授权" top="-45px" @close="closeDialog"> <el-table ref="dataTable" v-loading="isLoading" @@ -20,13 +22,12 @@ @sort-change="sortChange" > <el-table-column fixed type="selection" width="55" ></el-table-column> <el-table-column v-if="classifyAuthHeader.length !== 0" v-for="(item, index) in classifyAuthHeader" v-if="classifyAuthHeader.length !== 0" :key="index" :label="item.label" :prop="item.prop" @@ -50,12 +51,12 @@ </el-select> <el-input v-if="item.type === 'text'" type="text" readonly v-model="row[item.prop]" readonly type="text" > </el-input> <el-checkbox <el-checkbox v-if="item.type === 'checkbox'" v-model="row[item.prop]"> </el-checkbox> @@ -63,19 +64,20 @@ </el-table-column> </el-table> <div slot="footer" class="dialog-footer"> <el-button type="success" class="el-icon-plus" @click="addClassifyAuth"></el-button> <el-button type="warning" class="el-icon-minus" @click="subClassifyAuth"></el-button> <el-button type="primary" @click="submit">提 交</el-button> <el-button type="danger" @click="isShowDialog = false">关 闭</el-button> <el-button class="el-icon-plus" type="success" plain @click="addClassifyAuth"></el-button> <el-button class="el-icon-minus" type="warning" plain @click="subClassifyAuth"></el-button> <el-button type="primary" plain @click="submit">提 交</el-button> <el-button type="danger" plain @click="isShowDialog = false">关 闭</el-button> </div> </el-dialog> </template> <script> import { getButtonByParentCode } from "@/api/system/menu" import { getPage } from "@/api/system/role" import { saveOrUpdate,getClassifyAuthList } from "@/api/system/classifyAuth" import { v4 as uuidv4 } from 'uuid'; import {getButtonByParentCode} from "@/api/system/menu" import {getPage} from "@/api/system/role" import {saveOrUpdate, getClassifyAuthList} from "@/api/system/classifyAuth" import {v4 as uuidv4} from 'uuid'; export default { name: "classifyAuthDialog.vue", props: { @@ -94,7 +96,7 @@ // 对话框显示控制 isShowDialog: this.visible, isLoading: false, tableHeight: 'calc(100vh - 550px)', tableHeight: '520px', classifyAuthData: [], //列头 classifyAuthHeader: [], @@ -108,11 +110,11 @@ }, watch: { // 监听父组件传的窗口显示隐藏的值 visible (){ if(this.visible){ visible() { if (this.visible) { this.isShowDialog = this.visible; return new Promise((resolve, reject) => { getButtonByParentCode({code:"classifyTree"}).then(res=>{ getButtonByParentCode({code: "classifyTree"}).then(res => { // 记录按钮数据 this.classifyAuthButton = res.data.data; const list = res.data.data; @@ -146,15 +148,15 @@ reject(err) }); // 获取角色列表 getPage(1,-1,null).then(res => { getPage(1, -1, null).then(res => { this.roleList = res.data.data.records; }); // 获取该分类下已授权的分类授权信息 getClassifyAuthList({classifyId:this.classifyData.oid}).then(res => { getClassifyAuthList({classifyId: this.classifyData.oid}).then(res => { //console.log(res.data.data); let authDatas = res.data.data; if (authDatas.length > 0) { authDatas.forEach(authData=>{ authDatas.forEach(authData => { let item = { oid: authData.oid, roleData: authData.roleId, @@ -162,8 +164,8 @@ uuid: uuidv4(),//生成唯一的id } //将按钮设置进去 authData.buttonIdList.forEach(data=>{ Vue.set(item,data,true); authData.buttonIdList.forEach(data => { Vue.set(item, data, true); }); //console.log(item) this.classifyAuthData.push(item); @@ -175,38 +177,40 @@ }, }, computed: {}, mounted() {}, created() {}, mounted() { }, created() { }, methods: { // 关闭对话框 closeDialog(){ closeDialog() { this.$emit('update:visible', false); this.classifyAuthData = []; }, // 增加行 addClassifyAuth(){ addClassifyAuth() { let item = { roleData: this.roleList[0].id, classifyItem: this.classifyData.text, uuid: uuidv4(),//生成唯一的id } //将按钮设置进去 this.classifyAuthButton.forEach(data=>{ Vue.set(item,data.id,false); this.classifyAuthButton.forEach(data => { Vue.set(item, data.id, false); }) //console.log(item) this.classifyAuthData.push(item) // console.log(this.classifyAuthData); }, // 删除行 subClassifyAuth(){ subClassifyAuth() { for (let item of this.selectList) { let index = this.classifyAuthData.findIndex(data => data.index === item.index); if (index !== -1) { this.classifyAuthData.splice(index, 1); let index = this.classifyAuthData.findIndex(data => data.index === item.index); if (index !== -1) { this.classifyAuthData.splice(index, 1); } } } }, }, handleRowClick(row, column) { this.selectList.push(row); this.$refs.dataTable.toggleRowSelection(row); @@ -221,8 +225,8 @@ this.selectList = list; }, // 保存分类授权信息 submit(){ if(this.classifyAuthData.length <= 0){ submit() { if (this.classifyAuthData.length <= 0) { this.$message.warning('授权列表为空!') return; } @@ -236,11 +240,11 @@ break; } } if(isRepeat){ if (isRepeat) { break; } } if(isRepeat) { if (isRepeat) { this.$message.warning("角色和分类已经存在,请重新配置!"); return; } @@ -255,8 +259,8 @@ } } /**如果itemButtonList为空证明是, 添加了角色但是没勾选任何的按钮*/ if(itemButtonList.length <= 0) { 添加了角色但是没勾选任何的按钮*/ if (itemButtonList.length <= 0) { flag = true; return; } @@ -268,19 +272,19 @@ } form.push(data); }); if(flag) { if (flag) { this.$message.warning('有未勾选操作的权限,不允许授权') return; } // console.log(form) // 调用保存分类授权的接口 saveOrUpdate(form).then(res=>{ saveOrUpdate(form).then(res => { this.$message({ type: "success", message: res.data.msg, }); // this.isShowDialog = false },(error) => { }, (error) => { window.console.log(error); }) }, @@ -290,21 +294,25 @@ <style lang="scss" scoped> // 滚动条样式修改 // 滚动条的宽度 /deep/ .el-table__body-wrapper::-webkit-scrollbar { height: 15px; // 纵向滚动条 必写 background: white; border: white; width: 10px; // 滚动条样式修改 // 滚动条的宽度 /deep/ .el-table__body-wrapper::-webkit-scrollbar { height: 15px; // 纵向滚动条 必写 background: white; border: white; width: 10px; } } // 滚动条的滑块 /deep/ .el-table__body-wrapper::-webkit-scrollbar-thumb { background-color: #ececec; border-radius: 20px; border: #ececec; } // 滚动条的滑块 /deep/ .el-table__body-wrapper::-webkit-scrollbar-thumb { background-color: #ececec; border-radius: 20px; border: #ececec; } </style> /deep/ .el-table__body-wrapper { height: calc(100% - 50px) !important; } </style> Source/UBCS-WEB/src/components/Theme/ThemeClassifyTrees.vue
@@ -32,95 +32,98 @@ </div> </div> <div style="display: flex;margin-top: 5px;margin-bottom: 5px"> <el-button v-if="permissionList.flowingBtnStuatus" plain size="mini" type="primary" @click="flowingDependHandler">流水处理 <el-button v-if="permissionList.flowingBtnStuatus" plain size="mini" type="primary" @click="flowingDependHandler">流水处理 </el-button> <el-button v-if="permissionList.classifyAuth" plain size="mini" type="primary" @click="classifyAuthHandler">分类授权 <el-button v-if="permissionList.classifyAuth" plain size="mini" type="primary" @click="classifyAuthHandler">分类授权 </el-button> </div> </div> </div> <!-- 左侧树--> <div style="height: calc(100vh - 230px);overflow: auto"> <avue-tree ref="tree" v-model="CloneTreeAvueform" v-loading="loading" :data="CloneTreedata" :defaultExpandAll="false" :option="Treeoption" class="classifyTree" style="height: calc(100vh - 290px)" @node-click="nodeClick" > <template slot-scope="{ node, data }" class="el-tree-node__label"> <el-tooltip :content="$createElement('div', { domProps: { innerHTML: node.label } })" class="item" effect="dark" open-delay="500" placement="right-start"> <!-- 左侧树--> <div style="height: calc(100vh - 230px);overflow: auto"> <avue-tree ref="tree" v-model="CloneTreeAvueform" v-loading="loading" :data="CloneTreedata" :defaultExpandAll="false" :option="Treeoption" class="classifyTree" style="height: calc(100vh - 290px)" @node-click="nodeClick" > <template slot-scope="{ node, data }" class="el-tree-node__label"> <el-tooltip :content="$createElement('div', { domProps: { innerHTML: node.label } })" class="item" effect="dark" open-delay="500" placement="right-start"> <span style="font-size: 14px;"> {{ (node || {}).label }} </span> </el-tooltip> </template> </avue-tree> </div> </el-tooltip> </template> </avue-tree> </div> <!-- 树节点添加对话框--> <el-dialog v-loading="AddLoading" :before-close="TreeEscHandler" :title="this.TreeFlag ? '添加分类' :'添加主题库'" :visible.sync="TreeAddFormVisible" append-to-body style="width: 1700px;margin: auto"> <el-form ref="myForm" :model="TreeAddform" :rules= "rules"> <el-form-item :label="this.TreeFlag ? '分类编号:' :'主题库编号:'" label-width="150px" prop="id" style="display: inline-block"> <el-input v-model="TreeAddform.id" autocomplete="off" style="width: 170px"></el-input> </el-form-item> <el-form-item :label="this.TreeFlag ? '分类名称:' :'主题库名称:'" label-width="110px" prop="name" style="display: inline-block"> <el-input v-model="TreeAddform.name" autocomplete="off" style="width: 170px"></el-input> </el-form-item> <el-form-item v-if="TreeFlagCode" label="存储的业务类型:" label-width="150px" prop="btmTypeName"> <el-input v-model="TreeAddform.btmTypeName" autocomplete="off" style="width: 585px" @focus="btmFoucus"></el-input> </el-form-item> <el-form-item label="描述:" label-width="150px"> <el-input v-model="TreeAddform.description" autocomplete="off" style="width: 585px"></el-input> </el-form-item> <el-form-item label="编码规则:" label-width="150px"> <el-input v-model="TreeAddform.codeRuleOidName" autocomplete="off" style="width: 585px" @focus="CodeFoucus"></el-input> </el-form-item> <el-form-item label="关键属性查询规则:" label-width="150px"> <el-input v-model="TreeAddform.codeKeyAttrRepeatOidName" autocomplete="off" style="width: 585px" @focus="Keyfouce"></el-input> </el-form-item> <el-form-item label="是否参与关键属性校验:" label-width="170px"> <el-switch v-model="TreeAddform.codeKeyAttrValue" active-color="#13ce66" active-text="是" inactive-color="#ff4949" inactive-text="否" @change="switchChange"> </el-switch> </el-form-item> <el-form-item label="相似查询规则:" label-width="150px"> <el-input v-model="TreeAddform.codeResembleRuleOidName" autocomplete="off" style="width: 585px" @focus="simFouce"></el-input> </el-form-item> </el-form> <div slot="footer" class="dialog-footer"> <el-button @click="TreeEscHandler">取 消</el-button> <el-button type="primary" @click="TreeAddHandler">确 定</el-button> </div> </el-dialog> <!-- 修改对话框--> <el-dialog :visible.sync="TreeEditFormVisible" append-to-body title="修改分类"> <classifyTreeform ref="childForm" :Editclose=" ()=>{TreeEditFormVisible=false}" :TreeFlag="editTreeFLagCode" :flag="'edit'" :loneTreeNewForm="TreeList" :nodeClickList="nodeClickList" :nodeList="nodeList" @MasterHandler="MasterHandler" @flushed="flushed" @referTreeForm="referTreeForm"></classifyTreeform> </el-dialog> <!-- 分类授权对话框--> <classify-auth-dialog :visible.sync="classifyAuthVisible" :classifyData="classifyData" ></classify-auth-dialog> <!-- 树节点添加对话框--> <el-dialog v-loading="AddLoading" :before-close="TreeEscHandler" :title="this.TreeFlag ? '添加分类' :'添加主题库'" :visible.sync="TreeAddFormVisible" append-to-body style="width: 1700px;margin: auto"> <el-form ref="myForm" :model="TreeAddform" :rules="rules"> <el-form-item :label="this.TreeFlag ? '分类编号:' :'主题库编号:'" label-width="150px" prop="id" style="display: inline-block"> <el-input v-model="TreeAddform.id" autocomplete="off" style="width: 170px"></el-input> </el-form-item> <el-form-item :label="this.TreeFlag ? '分类名称:' :'主题库名称:'" label-width="110px" prop="name" style="display: inline-block"> <el-input v-model="TreeAddform.name" autocomplete="off" style="width: 170px"></el-input> </el-form-item> <el-form-item v-if="TreeFlagCode" label="存储的业务类型:" label-width="150px" prop="btmTypeName"> <el-input v-model="TreeAddform.btmTypeName" autocomplete="off" style="width: 585px" @focus="btmFoucus"></el-input> </el-form-item> <el-form-item label="描述:" label-width="150px"> <el-input v-model="TreeAddform.description" autocomplete="off" style="width: 585px"></el-input> </el-form-item> <el-form-item label="编码规则:" label-width="150px"> <el-input v-model="TreeAddform.codeRuleOidName" autocomplete="off" style="width: 585px" @focus="CodeFoucus"></el-input> </el-form-item> <el-form-item label="关键属性查询规则:" label-width="150px"> <el-input v-model="TreeAddform.codeKeyAttrRepeatOidName" autocomplete="off" style="width: 585px" @focus="Keyfouce"></el-input> </el-form-item> <el-form-item label="是否参与关键属性校验:" label-width="170px"> <el-switch v-model="TreeAddform.codeKeyAttrValue" active-color="#13ce66" active-text="是" inactive-color="#ff4949" inactive-text="否" @change="switchChange"> </el-switch> </el-form-item> <el-form-item label="相似查询规则:" label-width="150px"> <el-input v-model="TreeAddform.codeResembleRuleOidName" autocomplete="off" style="width: 585px" @focus="simFouce"></el-input> </el-form-item> </el-form> <div slot="footer" class="dialog-footer"> <el-button @click="TreeEscHandler">取 消</el-button> <el-button type="primary" @click="TreeAddHandler">确 定</el-button> </div> </el-dialog> <!-- 修改对话框--> <el-dialog :visible.sync="TreeEditFormVisible" append-to-body title="修改分类"> <classifyTreeform ref="childForm" :Editclose=" ()=>{TreeEditFormVisible=false}" :TreeFlag="editTreeFLagCode" :flag="'edit'" :loneTreeNewForm="TreeEditObj" :nodeClickList="nodeClickList" :nodeList="nodeList" @MasterHandler="MasterHandler" @flushed="flushed" @referTreeForm="referTreeForm"></classifyTreeform> </el-dialog> <!-- 分类授权对话框--> <classify-auth-dialog :classifyData="classifyData" :visible.sync="classifyAuthVisible" ></classify-auth-dialog> </basic-container> </el-aside> <el-main> @@ -128,7 +131,7 @@ <!-- 右侧表格--> <avue-tabs :option="tabOption" @change="handleChange"></avue-tabs> <span v-if="type.prop==='tab1'"> <classifyTreeform ref="childForm" :flag="'renonly'" :loneTreeNewForm="TreeList" <classifyTreeform ref="childForm" :flag="'renonly'" :loneTreeNewForm="TreeEditObj" :nodeList="nodeList"></classifyTreeform> </span> <span v-else-if="type.prop==='tab2'"> @@ -450,7 +453,7 @@ import ClassifyAuth from './ClassifyAuthDialog.vue'; export default { components: { ClassifyAuth }, components: {ClassifyAuth}, name: "classifyTrees.vue", data() { return { @@ -494,7 +497,7 @@ masterOption: { addBtn: false, index: true, refreshBtn:false, refreshBtn: false, columnBtn: false, border: true, menu: false, @@ -524,7 +527,7 @@ addBtn: false, index: true, columnBtn: false, refreshBtn:false, refreshBtn: false, border: true, menu: false, height: 380, @@ -789,7 +792,7 @@ } ], //传递给子组件动态渲染的数据 TreeList: {}, TreeEditObj: {}, codeClassifyOid: "", upAndStopAndStartData: { upVersion: { @@ -824,9 +827,8 @@ const treeEle = this.$refs.tree.$el treeEle.addEventListener('click', (e) => { if (e.target.nodeName !== 'SPAN') { this.$refs.tree.setCurrentKey(null) this.nodeClickList = {} this.TreeList = [] this.$refs.tree.setCurrentKey(null); this.nodeClickList = {}; this.TreeFlagCode = true; } }, true) @@ -911,16 +913,16 @@ }, methods: { // 分类授权对话框打开 classifyAuthHandler(){ if(this.nodeClickList.oid === '' || this.nodeClickList.oid === undefined){ classifyAuthHandler() { if (this.nodeClickList.oid === '' || this.nodeClickList.oid === undefined) { this.$message.warning('请至少选择一条数据!') return; } this.classifyData = this.nodeClickList; this.classifyAuthVisible = true; }, flowingDependHandler(){ if(this.nodeClickList.length <=0 ){ flowingDependHandler() { if (this.nodeClickList.length <= 0) { this.$message.warning('请至少选择一条数据!') return; } @@ -1153,7 +1155,7 @@ }, //子传父 MasterHandler(val) { this.TreeList = val; this.TreeEditObj = val; }, rowHandle(row, column) { this.selectRow = row.$index; @@ -1333,11 +1335,11 @@ }, //树刷新 async flushed() { await this.getAttr() this.$refs.tree.setCurrentKey(null); this.nodeClickList = {} this.TreeList = [] this.TreeFlagCode = true; await this.getAttr() this.$refs.tree.setCurrentKey(null); this.nodeClickList = {}; this.TreeEditObj = {}; this.TreeFlagCode = true; }, //启用和停用都先判断状态 //启用 @@ -1455,9 +1457,9 @@ this.ProData = []; this.crudOid = '' } this.TreeList = res3.data.data; if (this.TreeList.isParticipateCheck === null || this.TreeList.isParticipateCheck === undefined || this.TreeList.isParticipateCheck === "") { this.$set(this.TreeList, "isParticipateCheck", 1) this.TreeEditObj = res3.data.data; if (this.TreeEditObj.isParticipateCheck === null || this.TreeEditObj.isParticipateCheck === undefined || this.TreeEditObj.isParticipateCheck === "") { this.$set(this.TreeEditObj, "isParticipateCheck", 1) return } } catch (error) { @@ -1494,7 +1496,7 @@ //基本信息表单刷新 referTreeForm() { getObjectByOid(this.nodeClickList.oid).then(res => { this.TreeList = res.data.data; this.TreeEditObj = res.data.data; }).catch(res => { this.$message.error(res) }) Source/UBCS-WEB/src/views/integration/integrationIndex.vue
@@ -268,7 +268,7 @@ // 接口获取集团分类树 async referTree(oid, checked) { this.groupTreeData = [] const response = await referTree({'conditionMap[codeclsfid]': oid, parentOid: null}) const response = await referTree({'conditionMap[codeclsfid]': oid, parentOid: '0'}) if (response.status === 200) { if (checked) { let items = response.data.map(item => { Source/UBCS-WEB/src/views/statistic/statisticPage.vue
@@ -63,7 +63,8 @@ import pieChart from "../../components/StatisticsComponent/pieChart" import ColumnarChart from "../../components/StatisticsComponent/ColumnarChart" import mixCart from "../../components/StatisticsComponent/mixCart" import {getStatisticAnalysis, getBtmAndChart, saveStatisticAnalysis, deleteChartId} from "@/api/statistic/chart" import {getStatisticAnalysis, getBtmAndChart, saveStatisticAnalysis} from "@/api/statistic/chart" //配置表单主数据列表接口 import {getList} from "@/api/system/statistic"; export default { @@ -149,7 +150,7 @@ this.loading = false; } catch (error) { this.loading = false; console.error('Error:', error); // console.error('Error:', error); } }, async handleStatisticAnalysis(btmNames, firstResponse) {