Merge remote-tracking branch 'origin/master'
| | |
| | | import request from '@/router/axios'; |
| | | |
| | | export const getList = (page, size, params) => { |
| | | export const getList = (page, limit, params) => { |
| | | return request({ |
| | | url: '/api/ubcs-code/dockingManagement/gridSystemConfig', |
| | | method: 'get', |
| | | params: { |
| | | ...params, |
| | | page, |
| | | size |
| | | limit |
| | | } |
| | | }) |
| | | } |
| | |
| | | |
| | | export const update = (row) => { |
| | | return request({ |
| | | url: '/api/ubcs-omd/enum/submit', |
| | | url: '/api/ubcs-omd/enum/update', |
| | | method: 'post', |
| | | data: row |
| | | }) |
| | |
| | | </el-table-column> |
| | | </el-table> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="info" plain @click="selectAllButton">按钮全选</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> |
| | |
| | | }, |
| | | // 增加行 |
| | | addClassifyAuth() { |
| | | if(this.roleList.length<=0){ |
| | | this.$message.warning("当前租户不存在角色信息!"); |
| | | return; |
| | | } |
| | | let item = { |
| | | roleData: this.roleList[0].id, |
| | | classifyItem: this.classifyData.label, |
| | |
| | | window.console.log(error); |
| | | }) |
| | | }, |
| | | // 全选按钮 |
| | | selectAllButton(){ |
| | | if(this.selectList.length!==1){ |
| | | this.$message.warning("请只选择一行需要全选的按钮的数据行!"); |
| | | return; |
| | | } |
| | | this.classifyAuthButton.forEach(item => { |
| | | //console.log("item",item); |
| | | Vue.set(this.classifyAuthData[0], item.id, true); |
| | | }); |
| | | //console.log("this.classifyAuthData",this.classifyAuthData); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | btnAuthList: { |
| | | type:Array |
| | | } |
| | | }, |
| | | watch: { |
| | | crudOid: { |
| | |
| | | ...mapGetters(["permission"]), |
| | | permissionList() { |
| | | return { |
| | | busineStatus: this.vaildData(this.permission.classifyTree.attr_add, false), |
| | | fullscreenStatus: this.vaildData(this.permission.classifyTree.attr_view_edit, false), |
| | | ruleStatus: this.vaildData(this.permission.classifyTree.attr_rule, false), |
| | | attrStatus: this.vaildData(this.permission.classifyTree.attr_group, false), |
| | | saveStatus: this.vaildData(this.permission.classifyTree.attr_save, false), |
| | | resetStatus: this.vaildData(this.permission.classifyTree.attr_reset, false), |
| | | injectStatus: this.vaildData(this.permission.classifyTree.attr_inject, false), |
| | | isShowStatus: this.vaildData(this.permission.classifyTree.attr_formrule, false), |
| | | enumStatus: this.vaildData(this.permission.classifyTree.attr_enum, false), |
| | | cascadStatus: this.vaildData(this.permission.classifyTree.attr_parentcode, false), |
| | | syncStatus: this.vaildData(this.permission.classifyTree.attr_sync, false), |
| | | applicationStatus: this.vaildData(this.permission.classifyTree.attr_application, false), |
| | | orderStatus: this.vaildData(this.permission.classifyTree.attr_sort, false), |
| | | removeStatus: this.vaildData(this.permission.classifyTree.attr_delete, false), |
| | | busineStatus: this.vaildData(this.btnAuthList.attr_add, false), |
| | | fullscreenStatus: this.vaildData(this.btnAuthList.attr_view_edit, false), |
| | | ruleStatus: this.vaildData(this.btnAuthList.attr_rule, false), |
| | | attrStatus: this.vaildData(this.btnAuthList.attr_group, false), |
| | | saveStatus: this.vaildData(this.btnAuthList.attr_save, false), |
| | | resetStatus: this.vaildData(this.btnAuthList.attr_reset, false), |
| | | injectStatus: this.vaildData(this.btnAuthList.attr_inject, false), |
| | | isShowStatus: this.vaildData(this.btnAuthList.attr_formrule, false), |
| | | enumStatus: this.vaildData(this.btnAuthList.attr_enum, false), |
| | | cascadStatus: this.vaildData(this.btnAuthList.attr_parentcode, false), |
| | | syncStatus: this.vaildData(this.btnAuthList.attr_sync, false), |
| | | applicationStatus: this.vaildData(this.btnAuthList.attr_application, false), |
| | | orderStatus: this.vaildData(this.btnAuthList.attr_sort, false), |
| | | removeStatus: this.vaildData(this.btnAuthList.attr_delete, false), |
| | | } |
| | | }, |
| | | attrOids() { |
| | |
| | | <!-- 左侧菜单--> |
| | | <el-aside> |
| | | <basic-container> |
| | | <div> |
| | | <div> |
| | | <div style="display: flex; flex-direction: column;"> |
| | | <div style="display: flex;"> |
| | | <el-button v-if="permissionList.TreeAddStatus" plain size="small" type="primary" @click="TreeAdd">添加 |
| | | </el-button> |
| | | <el-button v-if="permissionList.TreeEditStatus" plain size="small" type="primary" @click="TreeEdit">修改 |
| | | </el-button> |
| | | <el-button v-if="permissionList.TreeDelStatus" plain size="small" type="primary" @click="TreeDel">删除 |
| | | </el-button> |
| | | <el-button v-if="permissionList.flushedStatus" plain size="small" type="primary" @click="flushed">刷新 |
| | | </el-button> |
| | | </div> |
| | | <div style="display: flex; margin-top: 10px"> |
| | | <el-button v-if="permissionList.EnableStatus" plain size="small" type="primary" @click="Enable">启用 |
| | | </el-button> |
| | | <el-button v-if="permissionList.DeactivateStatus" plain size="small" type="primary" @click="Deactivate"> |
| | | 停用 |
| | | </el-button> |
| | | <el-button v-if="permissionList.ImportExcelStatus" plain size="small" type="primary" |
| | | @click.native="ImportExcel">导入 |
| | | </el-button> |
| | | <el-button v-if="permissionList.ExportExcelStatus" plain size="small" type="primary" |
| | | @click="ExportExcel">导出 |
| | | </el-button> |
| | | </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> |
| | | <el-button v-if="permissionList.classifyAuth" plain size="mini" type="primary" |
| | | @click="classifyAuthHandler">分类授权 |
| | | </el-button> |
| | | </div> |
| | | </div> |
| | | <div style="height: calc(100vh - 142px);!important;"> |
| | | <div class="headerCon" style="display: flex; flex-wrap: wrap;margin-bottom: 5px"> |
| | | <el-button v-if="permissionList.TreeAddStatus" plain size="small" type="primary" @click="TreeAdd">添加</el-button> |
| | | <el-button v-if="permissionList.TreeEditStatus" plain size="small" type="primary" @click="TreeEdit">修改</el-button> |
| | | <el-button v-if="permissionList.TreeDelStatus" plain size="small" type="primary" @click="TreeDel">删除</el-button> |
| | | <el-button v-if="permissionList.flushedStatus" plain size="small" type="primary" @click="flushed">刷新</el-button> |
| | | <el-button v-if="permissionList.EnableStatus" plain size="small" type="primary" @click="Enable">启用</el-button> |
| | | <el-button v-if="permissionList.DeactivateStatus" plain size="small" type="primary" @click="Deactivate">停用</el-button> |
| | | <el-button v-if="permissionList.ImportExcelStatus" plain size="small" type="primary" @click.native="ImportExcel">导入</el-button> |
| | | <el-button v-if="permissionList.ExportExcelStatus" plain size="small" type="primary" @click="ExportExcel">导出</el-button> |
| | | <el-button style="width: 56px;text-align: center;padding-left: 3px" v-if="permissionList.flowingBtnStuatus" plain size="small" type="primary" @click="flowingDependHandler">流水处理</el-button> |
| | | <el-button style="width: 56px;text-align: center;padding-left: 3px" v-if="permissionList.classifyAuth" plain size="small" type="primary" @click="classifyAuthHandler">分类授权</el-button> |
| | | </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)" |
| | | style="height: 690px" |
| | | @node-click="nodeClick" |
| | | > |
| | | <template slot-scope="{ node, data }" class="el-tree-node__label"> |
| | |
| | | </el-tooltip> |
| | | </template> |
| | | </avue-tree> |
| | | </div> |
| | | |
| | | </div> |
| | | <!-- 树节点添加对话框--> |
| | | <el-dialog v-loading="AddLoading" :before-close="TreeEscHandler" |
| | | :title="this.TreeFlag ? '添加分类' :'添加主题库'" :visible.sync="TreeAddFormVisible" append-to-body |
| | |
| | | </basic-container> |
| | | <templatePro :Formlist="this.Formlist" :ProData="this.ProData" :codeClassifyOid="this.codeClassifyOid" |
| | | :crudArray="this.crudArray" :crudLCStatus="this.crudLCStatus" :crudOid="this.crudOid" |
| | | :rowIndex="this.selectRow"></templatePro> |
| | | :rowIndex="this.selectRow" :btnAuthList="btnAuthList"></templatePro> |
| | | </span> |
| | | <!-- 编码规则--> |
| | | <el-dialog :before-close="masterEscHandler" :visible.sync="MasterdialogVisible" append-to-body |
| | |
| | | import func from "@/util/func"; |
| | | import {mapGetters} from "vuex"; |
| | | import ClassifyAuth from './ClassifyAuthDialog.vue'; |
| | | import {getAuthButtonList} from '@/api/system/classifyAuth' |
| | | |
| | | export default { |
| | | components: {ClassifyAuth}, |
| | | name: "classifyTrees.vue", |
| | | data() { |
| | | return { |
| | | btnAuthList: [], |
| | | activeName: 'first', |
| | | masterRow: null, |
| | | AddLoading: false, |
| | |
| | | this.$refs.tree.setCurrentKey(null); |
| | | this.nodeClickList = {}; |
| | | this.TreeFlagCode = true; |
| | | // this.$nextTick(()=>{ |
| | | // this.btnAuthList = []; |
| | | // }) |
| | | } |
| | | }, true) |
| | | }, |
| | |
| | | ...mapGetters(["permission"]), |
| | | permissionList() { |
| | | return { |
| | | TreeAddStatus: this.vaildData(this.permission.classifyTree.tree_add, false), |
| | | TreeEditStatus: this.vaildData(this.permission.classifyTree.tree_edit, false), |
| | | TreeDelStatus: this.vaildData(this.permission.classifyTree.tree_delete, false), |
| | | flushedStatus: this.vaildData(this.permission.classifyTree.tree_break, false), |
| | | EnableStatus: this.vaildData(this.permission.classifyTree.tree_enable, false), |
| | | DeactivateStatus: this.vaildData(this.permission.classifyTree.tree_stop, false), |
| | | ImportExcelStatus: this.vaildData(this.permission.classifyTree.tree_import, false), |
| | | ExportExcelStatus: this.vaildData(this.permission.classifyTree.tree_export, false), |
| | | FindStatus: this.vaildData(this.permission.classifyTree.manage_search, false), |
| | | TemRefreshStatus: this.vaildData(this.permission.classifyTree.manage_break, false), |
| | | CloneBtnStuatus: this.vaildData(this.permission.classifyTree.manage_clone, false), |
| | | flowingBtnStuatus: this.vaildData(this.permission.classifyTree.tree_flowing, false), |
| | | classifyAuth: this.vaildData(this.permission.classifyTree.classify_auth, false), |
| | | TreeAddStatus: this.vaildData(this.btnAuthList.tree_add, false), |
| | | TreeEditStatus: this.vaildData(this.btnAuthList.tree_edit, false), |
| | | TreeDelStatus: this.vaildData(this.btnAuthList.tree_delete, false), |
| | | flushedStatus: this.vaildData(this.btnAuthList.tree_break, false), |
| | | EnableStatus: this.vaildData(this.btnAuthList.tree_enable, false), |
| | | DeactivateStatus: this.vaildData(this.btnAuthList.tree_stop, false), |
| | | ImportExcelStatus: this.vaildData(this.btnAuthList.tree_import, false), |
| | | ExportExcelStatus: this.vaildData(this.btnAuthList.tree_export, false), |
| | | FindStatus: this.vaildData(this.btnAuthList.manage_search, false), |
| | | TemRefreshStatus: this.vaildData(this.btnAuthList.manage_break, false), |
| | | CloneBtnStuatus: this.vaildData(this.btnAuthList.manage_clone, false), |
| | | flowingBtnStuatus: this.vaildData(this.btnAuthList.tree_flowing, false), |
| | | classifyAuth: this.vaildData(this.btnAuthList.classify_auth, false), |
| | | } |
| | | }, |
| | | treeStyle() { |
| | | return { |
| | | height: this.btnAuthList.length > 0 ? '620px' : '785px', |
| | | }; |
| | | }, |
| | | crudTreeOption() { |
| | | return { |
| | |
| | | }, |
| | | //树点击事件 |
| | | async nodeClick(data) { |
| | | getAuthButtonList({classifyId: data.oid}).then(res => { |
| | | this.btnAuthList = res.data.data; |
| | | }).catch(error => { |
| | | console.log(error) |
| | | }) |
| | | //操作新增和修改的业务类型隐藏 |
| | | this.TreeFlagCode = !data; |
| | | this.editTreeFLagCode = !data.parentId; |
| | |
| | | width: 500px; |
| | | } |
| | | |
| | | .headerCon{ |
| | | .el-button+.el-button { |
| | | margin-left: 5px; |
| | | } |
| | | .el-button { |
| | | margin-top: 5px; |
| | | } |
| | | } |
| | | .headerCon > .el-button:nth-child(5) { |
| | | margin-left: 0; |
| | | } |
| | | .headerCon > .el-button:nth-child(9) { |
| | | margin-left: 0; |
| | | } |
| | | </style> |
| | |
| | | <basic-container> |
| | | <avue-tabs :option="Taboption" @change="handleChange"></avue-tabs> |
| | | <span v-if="type.prop==='tab1'"> |
| | | <attrCrud :ProData="ProData" :crudOid="crudOid" :checkStatus="checkStatus" :crudLCStatus="crudLCStatus" :crudArray="crudArray" :Formlist="Formlist" :codeClassifyOid="codeClassifyOid"></attrCrud> |
| | | <attrCrud :ProData="ProData" :btnAuthList="btnAuthList" :crudOid="crudOid" :checkStatus="checkStatus" :crudLCStatus="crudLCStatus" :crudArray="crudArray" :Formlist="Formlist" :codeClassifyOid="codeClassifyOid"></attrCrud> |
| | | </span> |
| | | <span v-else-if="type.prop==='tab2'"> |
| | | <FlowPath ref="FlowPath" :code="this.crudOid" :checkStatus="checkStatus" :crudLCStatus="crudLCStatus" :Formlist="Formlist"></FlowPath> |
| | |
| | | <script> |
| | | export default { |
| | | name: "TemplatePro.vue", |
| | | props: ['ProData','crudOid','crudLCStatus','crudArray','Formlist','codeClassifyOid','rowIndex','crudArrayFlag'], |
| | | props: ['ProData','crudOid','crudLCStatus','crudArray','Formlist','codeClassifyOid','rowIndex','crudArrayFlag','btnAuthList'], |
| | | data: function () { |
| | | return { |
| | | type: {}, |
| | |
| | | closeCloneDialog(){ |
| | | this.$emit('update:visible',false); |
| | | this.cloneData = []; |
| | | this.cloneCodeRuleLoading = false; |
| | | }, |
| | | /** 上移下移基础码段*/ |
| | | async upOrderNum(row) { |
| | |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | this.cloneCodeRuleLoading = false; |
| | | }); |
| | | }, |
| | | |
| | |
| | | SaveHandler(){ |
| | | let name = this.SearchObject.searchData[this.formInline.type].prop; |
| | | const requestApi = (api) => { |
| | | api(this.page.currentPage, this.page.pageSize, { [`conditionMap[${name}_like]`]: this.formInline.text}).then(res => { |
| | | api(this.page.currentPage, this.page.pageSize,'createTime','desc',{[`conditionMap[${name}_like]`]: this.formInline.text}).then(res => { |
| | | if(!res.data.data.records){ |
| | | this.$message.error('暂未查到数据!') |
| | | }else { |
| | |
| | | const { cut, state, stateTask, Date, lastDate, taskCut } = this.formInline; |
| | | const requestParams = {}; |
| | | const requestApi = (api) => { |
| | | api(currentPage, pageSize, requestParams).then(res => { |
| | | api(currentPage, pageSize,'createTime','desc',requestParams).then(res => { |
| | | if(!res.data.data.records){ |
| | | this.$message.error('暂未查到数据!'); |
| | | } else { |
| | |
| | | <el-button v-if="permissionList.sync" icon="el-icon-share" size="small" @click="PUSH">同 步 |
| | | </el-button> |
| | | <el-button v-if="permissionList.query" icon="el-icon-search" size="small" |
| | | @click="openAdvancedQuery">查 |
| | | 询 |
| | | @click="openAdvancedQuery">查 询 |
| | | </el-button> |
| | | </template> |
| | | </avue-crud> |
| | |
| | | }, |
| | | onLoad(page, params={}) { |
| | | this.loading = true; |
| | | var query={} |
| | | var queryCondition={} |
| | | if (this.query) { |
| | | for (var key in this.query) { |
| | | query['conditionMap["' + key + '"]'] = this.query[key]; |
| | | queryCondition['conditionMap["' + key + '"]'] = this.query[key]; |
| | | } |
| | | } |
| | | getLogoList(page.currentPage, page.pageSize,'createTime','desc',Object.assign(params,this.params, query,this.query),).then(res => { |
| | | getLogoList(page.currentPage, page.pageSize,'createTime','desc',Object.assign(params,this.params, queryCondition,this.query),).then(res => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | this.data = data.records; |
| | |
| | | <template> |
| | | <div> |
| | | <el-container style="height: 100%; border: 1px solid #fff"> |
| | | <el-card :style="{ marginRight: '10px' }"> |
| | | <el-aside style="background-color: #fff" width="220px"> |
| | | <el-card style="margin-right: 10px;height: calc(100vh - 125px);overflow: auto"> |
| | | <el-aside style="background-color: #fff;" width="210px"> |
| | | <el-input v-model="filterText" placeholder="输入关键字进行过滤"> |
| | | </el-input> |
| | | <el-menu :default-openeds="['1', '3']" > |
| | | <el-tree ref="tree" :data="treeData" :filter-node-method="filterNode" :props="defaultProps" |
| | | accordion class="filter-tree" empty-text="暂无数据" @node-click="handelTreeCell"> |
| | | <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> |
| | | </el-tree> |
| | | </el-menu> |
| | | </el-aside> |
| | | </el-card> |
| | | <el-main> |
| | | <el-card> |
| | | <el-card style="height: calc(100vh - 128px)"> |
| | | <el-form :model="form"> |
| | | <el-form-item label="集团分类" label-width="70px" size="small"> |
| | | <el-form-item label="集团分类" label-width="80px" size="small"> |
| | | <el-select ref="selectTree" v-model="groupVal" clearable placeholder="请选择" |
| | | popper-class="popperTreeSelect"> |
| | | <el-option :label="groupVal" :value="groupVal"> |
| | |
| | | |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-card> |
| | | <el-card style="height:38vh"> |
| | | <avue-crud ref="crudMapping" :data="mappingData" :option="optionMapping" :table-loading="loading" |
| | | @select="setCurrentRow" @row-update="handleMapingUpdate" |
| | | @row-click="handleMapingClick" @row-dblclick="handleMapingRowClick" @selection-change="selectionChange" |
| | |
| | | </template> |
| | | </avue-crud> |
| | | </el-card> |
| | | <el-card :style="{ marginTop: '20px'}"> |
| | | <el-card style="margin-top: 10px;height: 38vh"> |
| | | <avue-crud ref="crudRange" :data="rangeData" :option="optinoRange" :style="{ marginTop: '-20px'}" |
| | | @row-update="handleUpdate" |
| | | @row-dblclick="handleRowClick"> |
| | |
| | | // 属性映射取值表配置 |
| | | optinoRange: { |
| | | title: '属性映射取值范围', |
| | | maxHeight: '300px', |
| | | maxHeight: '280px', |
| | | header: false, |
| | | rowKey: 'oid', |
| | | column: [ |
| | | {label: '属性集团枚举值', prop: 'numTextValue', minWidth: 80}, |
| | | {label: '集团属性枚举显示名称', prop: 'numText', minWidth: 80}, |
| | | { |
| | | label: 'MDM枚举值', |
| | | label: 'CODE枚举值', |
| | | prop: 'targetNumTextValue', |
| | | minWidth: 80, |
| | | cell: true, |
| | | blur: (value) => window.handleBlur(value, 'range') |
| | | }, |
| | | { |
| | | label: 'MDM枚举显示名称', |
| | | label: 'CODE枚举显示名称', |
| | | prop: 'targetNumText', |
| | | minWidth: 80, |
| | | cell: true, |
| | |
| | | }, |
| | | // 属性映射表配置 |
| | | optionMapping: { |
| | | maxHeight: '500px', |
| | | maxHeight: '280px', |
| | | header: true, |
| | | rowKey: 'oid', |
| | | selection: false, |
| | |
| | | <el-main> |
| | | <basic-container> |
| | | <avue-crud v-model="form" ref="crud" :option="option" :data="data" @on-load="onLoad" :page.sync="page" :permission="permissionList" |
| | | @refresh-change="refreshChange" @row-click="rowClick"> |
| | | @refresh-change="refreshChange" @row-click="rowClick" style="height: calc(100vh - 148px)"> |
| | | <template slot="radio" slot-scope="{row}"> |
| | | <el-radio v-model="selectRow" :label="row.$index"> |
| | | </el-radio> |
| | |
| | | </el-main> |
| | | <el-aside> |
| | | <basic-container class="itemForm"> |
| | | <div style="height: 44vh"> |
| | | <el-descriptions class="margin-top" :column="1" size="medium" border title="属性项"> |
| | | <el-descriptions-item> |
| | | <template slot="label"> |
| | |
| | | {{ itemForm.itemData.description }} |
| | | </el-descriptions-item> |
| | | </el-descriptions> |
| | | <div style="height:15px"></div> |
| | | </div> |
| | | <div style="height: 40vh"> |
| | | <el-descriptions class="margin-top" :column="1" size="medium" border title="属性配置"></el-descriptions> |
| | | <el-tabs v-model="itemForm.activeName" @tab-click="handleClick" stretch="true" style="height:235px"> |
| | | <el-tab-pane label="参照" name="referTab"> |
| | |
| | | </el-descriptions> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | </div> |
| | | </basic-container> |
| | | </el-aside> |
| | | <originalAdd ref="originalAdd" @refreshTable="refreshChange" :attribute="editAttribute"></originalAdd> |
| | |
| | | editAttribute: {}, |
| | | applyRangeData: [], |
| | | option: { |
| | | height: "auto", |
| | | height:'auto', |
| | | calcHeight:20, |
| | | headerAlign: "center", |
| | | border: true, |
| | |
| | | prop: "logType", |
| | | width:'160' |
| | | }, |
| | | { |
| | | /*{ |
| | | label: "创建时间", |
| | | prop: "createTime", |
| | | width:'160' |
| | | }, |
| | | },*/ |
| | | { |
| | | label: "最后修改时间", |
| | | prop: "lastModifier", |
| | |
| | | <template> |
| | | <basic-container > |
| | | <avue-crud v-model="form" :option="option" :data="data" ref="crud" @on-load="onLoad" @row-save="rowSave" @row-update="rowUpdate" @row-del="rowDel" :page.sync="page"> |
| | | <avue-crud ref="crud" v-model="form" :data="data" :option="option" :page.sync="page" @on-load="onLoad" |
| | | @row-save="rowSave" @row-update="rowUpdate" @row-del="rowDel"> |
| | | <template slot="menu" slot-scope="{ row, index }"> |
| | | <el-button |
| | | type="text" |
| | | size="small" |
| | | icon="el-icon-edit" |
| | | v-if="permissionList.editBtn" |
| | | icon="el-icon-edit" |
| | | size="small" |
| | | type="text" |
| | | @click="handleEdit(row, index)" |
| | | > |
| | | 编辑 |
| | | </el-button> |
| | | <el-button |
| | | type="text" |
| | | size="small" |
| | | icon="el-icon-delete" |
| | | v-if="permissionList.delBtn" |
| | | icon="el-icon-delete" |
| | | size="small" |
| | | type="text" |
| | | @click="handleDel(row, index)" |
| | | > |
| | | 删除 |
| | |
| | | combination |
| | | } from "@/api/system/passwords"; |
| | | import {mapGetters} from "vuex"; |
| | | |
| | | export default { |
| | | name: "passwords.vue", |
| | | data() { |
| | |
| | | editBtn:false, |
| | | height:700, |
| | | delBtn:false, |
| | | refreshBtn: false, |
| | | column: [ |
| | | { |
| | | label: '策略名称', |
| | |
| | | </template> |
| | | <template slot="tenantName" |
| | | slot-scope="{row}"> |
| | | <el-tag>{{ row.tenantName }}</el-tag> |
| | | <el-tag v-if="row.tenantName">{{ row.tenantName }}</el-tag> |
| | | </template> |
| | | <template slot="roleName" |
| | | slot-scope="{row}"> |
| | | <el-tag>{{ row.roleName }}</el-tag> |
| | | <el-tag v-if="row.roleName">{{ row.roleName }}</el-tag> |
| | | </template> |
| | | <template slot="deptName" |
| | | slot-scope="{row}"> |
| | | <el-tag>{{ row.deptName }}</el-tag> |
| | | <el-tag v-if="row.deptName">{{ row.deptName }}</el-tag> |
| | | </template> |
| | | <template slot="userTypeName" |
| | | slot-scope="{row}"> |
| | | <el-tag>{{ row.userTypeName }}</el-tag> |
| | | <el-tag v-if="row.userTypeName">{{ row.userTypeName }}</el-tag> |
| | | </template> |
| | | </avue-crud> |
| | | </div> |
| | |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <basic-container title="待办流程任务"> |
| | | <avue-crud ref="crud" :table-loading="loading" :data="todoData" :option="todoOption" |
| | | <avue-crud ref="crud" :data="todoData" :option="todoOption" :page.sync="page" |
| | | :table-loading="loading" |
| | | @on-load="onLoad" |
| | | @cell-click="cellHandle" |
| | | :page.sync="page"> |
| | | @cell-click="cellHandle"> |
| | | <template #menu="{size,row,index}"> |
| | | <el-button @click="gotodo(row,index)" |
| | | <el-button :size="size" |
| | | icon="el-icon-check" |
| | | type="text" |
| | | :size="size">执行</el-button> |
| | | @click="gotodo(row,index)">执行 |
| | | </el-button> |
| | | </template> |
| | | </avue-crud> |
| | | </basic-container> |
| | |
| | | |
| | | <!-- </el-col>--> |
| | | </el-row> |
| | | <el-dialog title="修改密码" :visible.sync="dialogFormVisible" append-to-body :close-on-press-escape="false" :before-close="Xdelhandle"> |
| | | <el-form :model="form" :rules="rules" ref="form"> |
| | | <el-form-item label="原密码" :label-width="formLabelWidth" prop="oldPassword"> |
| | | <el-dialog :before-close="Xdelhandle" :close-on-press-escape="false" :visible.sync="dialogFormVisible" |
| | | append-to-body |
| | | title="修改密码"> |
| | | <el-form ref="form" :model="form" :rules="rules"> |
| | | <el-form-item :label-width="formLabelWidth" label="原密码" prop="oldPassword"> |
| | | <el-input v-model="form.oldPassword" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="新密码" :label-width="formLabelWidth" prop="newPassword"> |
| | | <el-form-item :label-width="formLabelWidth" label="新密码" prop="newPassword"> |
| | | <el-input v-model="form.newPassword" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="确认密码" :label-width="formLabelWidth" prop="newPassword1"> |
| | | <el-form-item :label-width="formLabelWidth" label="确认密码" prop="newPassword1"> |
| | | <el-input v-model="form.newPassword1" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | |
| | | import java.nio.file.Files; |
| | | import java.nio.file.Path; |
| | | import java.nio.file.attribute.BasicFileAttributes; |
| | | import java.nio.file.attribute.FileTime; |
| | | import java.rmi.ServerException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | |
| | | LocalLogVO localLog = new LocalLogVO(); |
| | | localLog.setLogName(item.getName()); |
| | | localLog.setLogType(getLogType(item.getName())); |
| | | localLog.setCreateTime(getLastModifiedOrCreatTime(false,logParentPath)); |
| | | localLog.setLastModifier(getLastModifiedOrCreatTime(true,logParentPath)); |
| | | localLog.setCreateTime(getLastModifiedOrCreatTime(false,item.getPath())); |
| | | localLog.setLastModifier(getLastModifiedOrCreatTime(true,item.getPath())); |
| | | localLog.setLogPath(logParentPath); |
| | | String serviceId = getServiceId(logParentPath); |
| | | localLog.setServiceId(serviceId); |
| | |
| | | File file = new File(fullPath); |
| | | if(file.exists()){ |
| | | LocalLogVO localLogVO = new LocalLogVO(); |
| | | localLogVO.setLastModifier(getLastModifiedOrCreatTime(true,fullPath)); |
| | | localLogVO.setCreateTime(getLastModifiedOrCreatTime(false,fullPath)); |
| | | localLogVO.setLastModifier(getLastModifiedOrCreatTime(true,file.getPath())); |
| | | localLogVO.setCreateTime(getLastModifiedOrCreatTime(false,file.getPath())); |
| | | localLogVO.setLogPath(fullPath); |
| | | String serviceId = getServiceId(file.getPath()); |
| | | localLogVO.setServiceId(serviceId); |
| | |
| | | * @param dockingGroupDataVO AO/TO的信息 |
| | | * @return 执行结果 |
| | | */ |
| | | |
| | | @PostMapping("/externalMainData/receiveAddApply") |
| | | DockingResultVO receiveEditApply(@NotNull @RequestBody DockingGroupDataVO dockingGroupDataVO)throws VciBaseException; |
| | | |
| | |
| | | // 设置所有者 |
| | | baseModel.setOwner(AuthUtil.getUserId().toString()); |
| | | } |
| | | |
| | | baseModel.setVersionSeq(1); |
| | | baseModel.setVersionRule("0"); |
| | | baseModel.setVersionValue("1"); |
| | |
| | | @ApiOperationSupport(order = 2) |
| | | @ApiOperation(value = "集团码申请", notes = "dockingPreAttrMappingVOList") |
| | | public R applyGroupCode(String oids,String btmName){ |
| | | List<BaseModelVO> BaseModelVOs=new ArrayList<>(); |
| | | List<BaseModelVO> BaseModelVOS=new ArrayList<>(); |
| | | try { |
| | | return groupMdmInterService.applyGroupCode(oids,btmName); |
| | | }catch (Throwable e){ |
| | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; |
| | | import com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant; |
| | | |
| | | import com.vci.ubcs.code.dto.CodeBasicSecDTO; |
| | |
| | | } |
| | | VciBaseUtil.alertNotNull(codeRuleDTO, "需要添加的数据对象"); |
| | | CodeRule codeRuleDO = new CodeRule(); |
| | | DefaultAttrAssimtUtil.addDefaultAttrAssimt(codeRuleDO,MdmBtmTypeConstant.CODE_RULE); |
| | | BeanUtilForVCI.copyPropertiesIgnoreCase(codeRuleDTO, codeRuleDO); |
| | | boolean exFlag = codeRuleMapper.insert(codeRuleDO)>0; |
| | | DefaultAttrAssimtUtil.addDefaultAttrAssimt(codeRuleDO,MdmBtmTypeConstant.CODE_RULE); |
| | | boolean exFlag = SqlHelper.retBool(codeRuleMapper.insert(codeRuleDO)); |
| | | |
| | | List<CodeBasicSecDTO> secList = codeRuleDTO.getElements(); |
| | | List<CodeBasicSec> codeBasicSecs = new ArrayList<>(); |
| | | List<CodeBasicSec> codeClassifySec = new ArrayList<>(); |
| | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; |
| | | import com.vci.ubcs.code.entity.CodeShowFieldConfig; |
| | | import com.vci.ubcs.code.mapper.CodeShowFieldConfigMapper; |
| | | import com.vci.ubcs.code.service.ICodeShowFieldConfigService; |
| | |
| | | */ |
| | | @Override |
| | | public boolean insert(CodeShowFieldConfig codeShowFieldConfig) { |
| | | return this.codeShowFieldConfigMapper.insert(codeShowFieldConfig)>0; |
| | | return SqlHelper.retBool(this.codeShowFieldConfigMapper.insert(codeShowFieldConfig)); |
| | | } |
| | | |
| | | @Override |
| | |
| | | */ |
| | | @Override |
| | | public boolean deleteById(String oid) { |
| | | return this.codeShowFieldConfigMapper.deleteById(oid) > 0; |
| | | return SqlHelper.retBool(this.codeShowFieldConfigMapper.deleteById(oid)); |
| | | } |
| | | |
| | | @Override |
| | |
| | | LambdaQueryWrapper<CodeShowFieldConfig> lambdaQueryWrapper = Wrappers.<CodeShowFieldConfig>query() |
| | | .lambda() |
| | | .eq(CodeShowFieldConfig::getReferConfigOid, oid); |
| | | return this.codeShowFieldConfigMapper.delete(lambdaQueryWrapper) > 0; |
| | | return SqlHelper.retBool(this.codeShowFieldConfigMapper.delete(lambdaQueryWrapper)); |
| | | } |
| | | |
| | | } |
| | |
| | | |
| | | @Override |
| | | public IPage<DockingSystemConfigVO> page(Map<String,String>codtionMap, Query query) { |
| | | |
| | | IPage<DockingSystemConfig> pages = page(Condition.getPage(query), UBCSSqlKeyword.buildConditionByMapString(codtionMap)); |
| | | List<DockingSystemConfig> dockingSystemConfigList= pages.getRecords(); |
| | | dockingSystemConfigList.stream().forEach(dockingSystemConfig -> { |
| | |
| | | dockingLog.setClassifyName(dockingSystemConfigDTO.getClassifyName()); |
| | | dockingLog.setId(dockingSystemConfigDTO.getId()); |
| | | dockingLog.setUniqueCode(""); |
| | | dockingLog.setCreateTime(new Date()); |
| | | dockingLog.setInterfaceStatus(isSend?"true":"false"); |
| | | dockingLog.setParamString(paramString); |
| | | dockingLog.setType(DATA_LOGE_OUT); |
| | |
| | | import java.util.concurrent.ConcurrentHashMap; |
| | | import java.util.concurrent.CopyOnWriteArrayList; |
| | | import java.util.concurrent.CopyOnWriteArraySet; |
| | | import java.util.concurrent.ForkJoinPool; |
| | | import java.util.concurrent.atomic.AtomicBoolean; |
| | | import java.util.stream.Collectors; |
| | | |
| | |
| | | * 客户现场excel为老版本,导出的总数限制为65535 |
| | | */ |
| | | public static final int EXPORT_LIMIT = 65535; |
| | | |
| | | /** |
| | | * 自定义并发ForkJoinPool |
| | | */ |
| | | private static final ForkJoinPool customForkJoinPool = new ForkJoinPool(Runtime.getRuntime().availableProcessors()-1); |
| | | |
| | | /** |
| | | * 批量申请:选取选中分类下的所有模板关键属性,相似属性,必填属性,写入execl中 |
| | |
| | | // 查询不需要参与关键属性校验的除自己以外的所有分类oid |
| | | final String isParticipateCheckOids = classifyService.selectLeafByParentClassifyOid(classifyFullInfo.getTopClassifyVO().getOid(), classifyFullInfo.getCurrentClassifyVO().getOid()); |
| | | final BladeUser user = AuthUtil.getUser(); |
| | | //cboList = new CopyOnWriteArrayList<>(cboList); |
| | | // TODO:Thread limit exceeded replacing blocked 异常是这部分代码抛出的,所以暂时将parallelStream改成了stream |
| | | List<ClientBusinessObject> repeatDataMap = cboList.stream().filter(cbo -> { |
| | | // TODO:Thread limit exceeded replacing blocked 异常是这部分代码抛出的 |
| | | // ,所以暂时将parallelStream改成了stream,改成了stream之后发现巨慢 |
| | | // customForkJoinPool控制并发度 |
| | | List<ClientBusinessObject> finalCboList = cboList; |
| | | List<ClientBusinessObject> repeatDataMap = (List<ClientBusinessObject>) customForkJoinPool.submit(()->{ |
| | | finalCboList.parallelStream().filter(cbo -> { |
| | | //每行都得查询.如果其中出现了错误,我们就直接抛出异常,其余的显示 |
| | | //VciBaseUtil.setCurrentUserSessionInfo(sessionInfo); |
| | | Map<String, String> conditionMap = new HashMap<>(); |
| | |
| | | return false; |
| | | } |
| | | }).collect(Collectors.toList()); |
| | | }).join(); |
| | | if(!CollectionUtils.isEmpty(repeatDataMap)){ |
| | | resultVO.setKeyAttrRepeatRowIndexList(repeatDataMap.stream().map(s->s.getAttributeValue(IMPORT_ROW_INDEX)).collect(Collectors.toSet())); |
| | | } |
| | |
| | | resultDataObjectDetailDOs.add(xmlResultDataObjectDetailDO); |
| | | }); |
| | | }else{ |
| | | |
| | | XMLResultDataObjectDetailDO xmlResultDataObjectDetailDO = new XMLResultDataObjectDetailDO(); |
| | | xmlResultDataObjectDetailDO.setCode(""); |
| | | xmlResultDataObjectDetailDO.setId(""); |
| | |
| | | resultDataObjectDetailDOs.add(xmlResultDataObjectDetailDO); |
| | | } |
| | | e.printStackTrace(); |
| | | log.error(e.getMessage()); |
| | | }finally { |
| | | XMLResultClassfyVO resultClassfyVO = new XMLResultClassfyVO(); |
| | | resultClassfyVO.setClassCode(classVO.getClassCode()); |
| | |
| | | }catch (Throwable e){ |
| | | e.printStackTrace(); |
| | | msg="申请编码失败:"+e.getMessage(); |
| | | log.error(msg); |
| | | /* XMLResultSystemVO XMLResultSystemVO=new XMLResultSystemVO(); |
| | | XMLResultSystemVO.setErrorid(errorid); |
| | | XMLResultSystemVO.setMsg("申请编码失败:->"+e.getMessage()); |
| | |
| | | this.saveLogs(systemId, systemId, data, resultStr, issucess[0], msg, "applyCode"); |
| | | }catch (Throwable e){ |
| | | e.printStackTrace(); |
| | | log.error(e.getMessage()); |
| | | } |
| | | } |
| | | log.info("返回参数:"+resultStr); |
| | |
| | | @ApiOperationSupport(order = 5) |
| | | @ApiOperation(value = "修改", notes = "传入omdEnum") |
| | | public R update(@Valid @RequestBody Enum omdEnum) { |
| | | return R.status(omdEnumService.updateById(omdEnum)); |
| | | return R.status(omdEnumService.updateOmdEnum(omdEnum)); |
| | | } |
| | | |
| | | /** |
| | |
| | | @ApiOperationSupport(order = 6) |
| | | @ApiOperation(value = "新增或修改", notes = "传入omdEnum") |
| | | public R submit(@Valid @RequestBody Enum omdEnum) { |
| | | return R.status(omdEnumService.saveOrUpdate(omdEnum)); |
| | | return R.status(omdEnumService.submit(omdEnum)); |
| | | } |
| | | |
| | | /** |
| | |
| | | List<EnumVO> tree = omdEnumService.getList(code); |
| | | return R.data(tree); |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | package com.vci.ubcs.omd.service; |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; |
| | | import com.vci.ubcs.omd.entity.Enum; |
| | | import com.vci.ubcs.omd.vo.EnumVO; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import org.apache.poi.ss.formula.functions.T; |
| | | import org.springblade.core.mp.support.Query; |
| | | |
| | | import java.util.List; |
| | |
| | | */ |
| | | IPage<EnumVO> selectOmdEnumPage(IPage<EnumVO> page, EnumVO omdEnum); |
| | | |
| | | /** |
| | | * TableId 注解存在更新记录,否插入一条记录 |
| | | * |
| | | * @param omdEnum 实体对象 |
| | | */ |
| | | boolean submit(Enum omdEnum); |
| | | |
| | | boolean deleteLogic(List<String> toStringList); |
| | | |
| | | /** |
| | | * 根据 ID 选择修改 |
| | | * |
| | | * @param omdEnum 实体对象 |
| | | */ |
| | | boolean updateOmdEnum(Enum omdEnum); |
| | | |
| | | IPage<EnumVO> parentList(Map<String, Object> dict, Query query); |
| | | /** |
| | | * 树形结构 |
| | |
| | | import com.vci.ubcs.omd.wrapper.EnumWrapper; |
| | | import org.springblade.core.mp.support.Condition; |
| | | import org.springblade.core.mp.support.Query; |
| | | import org.springblade.core.secure.utils.AuthUtil; |
| | | import org.springblade.core.tool.utils.Func; |
| | | import org.springblade.core.tool.utils.StringPool; |
| | | import org.springframework.beans.BeanUtils; |
| | |
| | | } |
| | | |
| | | @Override |
| | | public boolean submit(Enum omdEnum) { |
| | | Date date = new Date(); |
| | | omdEnum.setCreator(AuthUtil.getUserAccount()); |
| | | omdEnum.setCreatetime(date); |
| | | omdEnum.setModifier(AuthUtil.getUserAccount()); |
| | | omdEnum.setModifytime(date); |
| | | omdEnum.setTs(date); |
| | | return this.saveOrUpdate(omdEnum); |
| | | } |
| | | |
| | | @Override |
| | | public boolean deleteLogic(List<String> toStringList) { |
| | | return SqlHelper.retBool(baseMapper.deleteBatchIds(toStringList)); |
| | | } |
| | | |
| | | @Override |
| | | public boolean updateOmdEnum(Enum omdEnum) { |
| | | omdEnum.setModifier(AuthUtil.getUserAccount()); |
| | | omdEnum.setModifytime(new Date()); |
| | | return this.updateById(omdEnum); |
| | | } |
| | | |
| | | @Override |
| | | public IPage<EnumVO> parentList(Map<String, Object> dict, Query query) { |
| | | IPage<Enum> page = this.page(Condition.getPage(query), |
| | | Condition.getQueryWrapper(dict, Enum.class).lambda() |
| | |
| | | * @param classifyAuthList |
| | | * @return |
| | | */ |
| | | @PostMapping("saveOrUpdate") |
| | | @PostMapping("/saveOrUpdate") |
| | | public R saveOrUpdate(@RequestBody List<ClassifyAuth> classifyAuthList) { |
| | | return classifyAuthService.submit(classifyAuthList); |
| | | } |
| | |
| | | * @param classifyAuthVO |
| | | * @return |
| | | */ |
| | | @GetMapping("list") |
| | | @GetMapping("/list") |
| | | public R<List<ClassifyAuthVO>> getClassifyAuthList(ClassifyAuthVO classifyAuthVO) { |
| | | return R.data(classifyAuthService.getClassifyAuthList(classifyAuthVO)); |
| | | } |
| | |
| | | * @param classifyId |
| | | * @return |
| | | */ |
| | | @GetMapping("getAuthButtonList") |
| | | public R<Map<String,Boolean>> getAuthButtonList(String classifyId){ |
| | | @GetMapping("/getAuthButtonList") |
| | | public R<Map<String,Boolean>> getAuthButtonList(@RequestParam("classifyId") String classifyId){ |
| | | return R.data(classifyAuthService.getAuthButtonList(classifyId)); |
| | | } |
| | | |
| | |
| | | */ |
| | | public Map<String,Boolean> getAuthButtonList(String classifyId){ |
| | | if(Func.isBlank(classifyId)){ |
| | | return new HashMap<>(); |
| | | throw new ServiceException("必传参数分类oid不能为空!"); |
| | | } |
| | | //查询分类节点的所有父级节点 |
| | | R<List<String>> listR = codeClassifyClient.selectAllParentOid(classifyId); |