Merge branch 'master' of http://dev.vci-tech.com:1065/r/ubcs
| | |
| | | }) |
| | | } |
| | | |
| | | //流程执行中表头 |
| | | export function FlowTable(data){ |
| | | return request({ |
| | | url: 'api/ubcs-code/mdmEngineController/getFlowdUIInfoByClassifyOid', |
| | | method: 'get', |
| | | data |
| | | }) |
| | | } |
| | |
| | | </div> |
| | | <el-row style="height: 700px; width: 100%"> |
| | | <div> |
| | | <el-button v-for="(item, index) in masterVrBtnList" :key="index" plain size="small" type="primary" |
| | | <el-button v-for="(item, index) in masterVrBtnList" :key="index" plain size="small" type="primary" v-if="!['PREVIEW', 'DELETEFILE', 'revisefile', 'DOWNLOADFILE', 'UPLOADFILE'].includes(item.uniqueFlag)" |
| | | @click="handelBtnClick(item)">{{ |
| | | item.name |
| | | }} |
| | |
| | | integrationTransfer, |
| | | SetPersonnel, |
| | | ResembleQueryDialog, |
| | | BatchImport |
| | | BatchImport, |
| | | // fileInHtml |
| | | }, |
| | | name: "Crud.vue", |
| | | props: { |
| | |
| | | type: "PUBLIC", |
| | | template: "", |
| | | vars: { |
| | | codeClassifyOid: "" |
| | | codeClassifyOid: "", |
| | | templateOid:"" |
| | | } |
| | | }, |
| | | visibleNames:[], |
| | | visibleFlow: false, |
| | | transferData: [], |
| | | transferProps: { |
| | |
| | | codeClassifyOid: '' |
| | | }, |
| | | // 主数据按钮 |
| | | masterVrBtnList: [] |
| | | masterVrBtnList: [], |
| | | fileOptions:{ |
| | | ownbizOid:"1", |
| | | ownbizBtm:"1", |
| | | fileDocClassify:'!=processAuditSuggest', |
| | | fileDocClassifyName:'', |
| | | hasDownload:true, |
| | | hasUpload:true |
| | | } |
| | | }; |
| | | }, |
| | | computed: {}, |
| | |
| | | codeClassifyOid: { |
| | | handler(newval, oldval) { |
| | | this.codeClassifyOid = newval; |
| | | this.parameter.vars.codeClassifyOid = newval; |
| | | console.log('子',newval) |
| | | this.parameter.vars.codeClassifyOid = newval |
| | | }, |
| | | deep: true, |
| | | }, |
| | |
| | | templateOid: { |
| | | handler(newval, oldval) { |
| | | this.parameter.code = newval; |
| | | this.fileOptions.ownbizOid="1"; |
| | | this.parameter.vars.templateOid = newval |
| | | }, |
| | | deep: true, |
| | | }, |
| | |
| | | this.editShow = column.property; |
| | | this.rowOid = row.oid; |
| | | }, |
| | | handleRowClick(row,column){ |
| | | this.fileOptions.ownbizOid= row.oid; |
| | | this.fileOptions.ownbizBtm=row.btmname; |
| | | }, |
| | | //删除 |
| | | enumDeleteRow(row) { |
| | | this.tableData.splice(row, 1); |
| | |
| | | CrudHeaderRend() { |
| | | if (this.codeClassifyOid != "") { |
| | | MasterTable({ |
| | | codeClassifyOid: this.codeClassifyOid, |
| | | functionId: 5, |
| | | codeClassifyOid: this.codeClassifyOid |
| | | }).then((res) => { |
| | | this.options = res.data.tableDefineVO.seniorQueryColumns; |
| | | this.List = res.data.tableDefineVO.cols[0]; |
| | |
| | | }); |
| | | }, |
| | | //多选 |
| | | handleSelectionChange(row) { |
| | | console.log(row) |
| | | if (this.row) { |
| | | this.rowOid = row[0].oid; |
| | | } else { |
| | | this.rowOid = ""; |
| | | } |
| | | this.selectRow = row; |
| | | handleSelectionChange(list) { |
| | | this.selectRow = list; |
| | | this.parameter.ids = []; |
| | | row.forEach((item) => { |
| | | list.forEach((item) => { |
| | | this.parameter.ids.push(item.oid); |
| | | }); |
| | | console.log(' this.parameter.ids', this.parameter.ids) |
| | | }, |
| | | //选择 |
| | | handleSelection(list,row) { |
| | | this.fileOptions.ownbizOid= row.oid; |
| | | this.fileOptions.ownbizBtm=row.btmname; |
| | | |
| | | }, |
| | | //编辑 |
| | | editHandler() { |
| | |
| | | }) |
| | | }, |
| | | openBatchImport(type) { |
| | | this.batchImportData.visible = true; |
| | | this.batchImportData.type = type; |
| | | this.batchImportData.codeClassifyOid = this.codeClassifyOid; |
| | | this.batchImportData.visible = true |
| | | this.batchImportData.type = type |
| | | this.batchImportData.codeClassifyOid = this.codeClassifyOid |
| | | } |
| | | }, |
| | | }; |
| | |
| | | .el-table--scrollable-x .el-table__body-wrapper { |
| | | overflow: auto !important; |
| | | } |
| | | |
| | | .el-table__fixed-right-patch { |
| | | background-color: #f5f7fa !important; |
| | | } |
| | |
| | | /deep/ .el-button { |
| | | margin: 0 10px 10px 0; |
| | | } |
| | | |
| | | .main { |
| | | display: flex; |
| | | flex-direction: column; |
| | | height: calc(100vh - 150px); |
| | | min-height: 400px; |
| | | } |
| | | .top { |
| | | overflow-y: scroll; |
| | | min-height: 55%; |
| | | } |
| | | |
| | | .bottom { |
| | | margin-top: 20px; |
| | | max-height: 43%; |
| | | overflow-y: scroll; |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <avue-tree ref="tree" v-model="CloneTreeAvueform" v-loading="loading" :data="Treedata" :defaultExpandAll="false" |
| | | :option="Treeoption" |
| | | style="height: 80.5vh;padding-top: 5px;padding-bottom: 30px" |
| | | style="height: calc(100vh - 150px);" |
| | | @node-click=" nodeClick" |
| | | ></avue-tree> |
| | | </template> |
| | |
| | | <template> |
| | | <div> |
| | | <div style="display: flex;flex-wrap: wrap;" v-if="this.crudArrayFlag" class="app"> |
| | | <el-button-group> |
| | | <div style="display: flex;flex-wrap: wrap;" v-if="this.crudArrayFlag"> |
| | | |
| | | <!--新增--> |
| | | <el-button v-if="attrEditVisible == false && attrFlagChiledren==false" size="small" type="primary" icon="el-icon-plus" @click="busineHandle">添加 {{ msg }}</el-button> |
| | | <!-- 全屏编辑--> |
| | |
| | | <el-button icon="el-icon-info" size="small" @click="ruleAddHandler">验证规则</el-button> |
| | | <!-- 属性分组--> |
| | | <el-button icon="el-icon-menu" size="small" @click="attrVisibleHandle">属性分组</el-button> |
| | | </el-button-group> |
| | | <el-button-group> |
| | | |
| | | |
| | | <!-- 分类注入--> |
| | | <el-button icon="el-icon-magic-stick" size="small" @click="injectBtn">分类注入</el-button> |
| | | <!-- 组合规则--> |
| | |
| | | <el-button size="small" @click="CascadeHandle">级联属性</el-button> |
| | | <!-- 预览排序--> |
| | | <el-button size="small" @click="orderHandle" icon="el-icon-arrow-down">预览排序</el-button> |
| | | </el-button-group> |
| | | <el-button-group> |
| | | |
| | | |
| | | <!-- 保存--> |
| | | <el-button size="small" @click="addsHandler" icon="el-icon-check">保存</el-button> |
| | | <!-- 删除--> |
| | |
| | | <el-button size="small" @click="reset" icon="el-icon-refresh-right">重置</el-button> |
| | | <!-- 同步到其他模板--> |
| | | <el-button size="small"@click="syncHandle" icon="el-icon-share">同步到其他模板</el-button> |
| | | </el-button-group> |
| | | |
| | | <!-- 编码申请预览--> |
| | | <el-button size="small" @click="applicationHandle" style="">编码申请预览</el-button> |
| | | <!-- 验证规则--> |
| | |
| | | </div> |
| | | <el-table :data="ProData" |
| | | style="width: 100%" |
| | | :height='attrEditVisible == false && attrFlagChiledren==false?400 :750' |
| | | height="280" |
| | | @cell-click="handleCellClicks" |
| | | @select="selectHandle" |
| | | @selection-change="selectionChange" |
| | |
| | | column: [ |
| | | { |
| | | label: "属性英文名称", |
| | | prop: "id", |
| | | width:110 |
| | | prop: "id" |
| | | }, |
| | | { |
| | | label: "属性中文名称", |
| | | prop: "name", |
| | | width:110 |
| | | prop: "name" |
| | | }, |
| | | { |
| | | label: "长度", |
| | |
| | | //业务类型选择 |
| | | businessSelect(selection, row) { |
| | | this.busineSelectList = selection |
| | | console.log(selection) |
| | | }, |
| | | // 从业务类型中选择数据弹窗 |
| | | busineHandle() { |
| | |
| | | console.log(row) |
| | | }, |
| | | //表格选择 |
| | | selectionChange(list,) { |
| | | selectionChange(list) { |
| | | this.attrSelectList = list; |
| | | console.log(list) |
| | | }, |
| | |
| | | }else if(column.property == 'verifyRule'){ |
| | | this.RulesForm.expressionTextt=this.CurrentCell.verifyRule; |
| | | this.rulesVisible=true; |
| | | console.log(this.CurrentCell.verifyRule) |
| | | console.log(this.RulesForm.expressionText) |
| | | } |
| | | }, |
| | | saveRows() { |
| | |
| | | </script> |
| | | |
| | | <style scoped lang="scss" > |
| | | .app { |
| | | /deep/ .el-button { |
| | | margin: 0 10px 10px 0; |
| | | } |
| | | /deep/ .el-button { |
| | | margin: 0 10px 10px 0; |
| | | } |
| | | </style> |
| | |
| | | </template> |
| | | <avue-crud :data="BtmData" :option="masterOption" @select="btmSelect"></avue-crud> |
| | | <div style="height: 30px"> |
| | | <div style="display: inline-block;float: left;border: 1px solid #eee;padding: 5px;margin-top: 5px;font-size: 14px " >已设置的值为:[{{this.loneTreeNewForm.btmtypename}}]</div> |
| | | <div style="display: inline-block;float: left;border: 1px solid #eee;padding: 5px;margin-top: 5px;font-size: 14px " >已设置的值为:[{{this.loneTreeNewForm.btmTypeName}}]</div> |
| | | <div style="padding-top: 10px;display: flex; justify-content: flex-end;float: right;overflow: hidden" > |
| | | <el-button type="primary" size="small" @click="btmHandlerClick">确定</el-button> |
| | | <el-button size="small" @click="BtmdialogVisible=false">取消</el-button> |
| | |
| | | }, |
| | | { |
| | | label: '存储的业务类型', |
| | | prop: 'btmtypename', |
| | | prop: 'btmTypeName', |
| | | labelWidth:128, |
| | | disabled: true, |
| | | rules: [{ |
| | |
| | | }, |
| | | { |
| | | label: '存储的业务类型', |
| | | prop: 'btmtypename', |
| | | prop: 'btmTypeName', |
| | | labelWidth:128, |
| | | focus:this.btmFoucus, |
| | | // readonly: true, |
| | |
| | | TreeEditSave(this.loneTreeNewForm).then(res=>{ |
| | | this.$message.success('修改成功'); |
| | | this.Editclose() |
| | | this.$emit('referTreeForm'); |
| | | this.$emit('flushed'); |
| | | done() |
| | | }) |
| | | }, |
| | |
| | | }else { |
| | | this.BtmdialogVisible=false; |
| | | this.btmSelectList=[] |
| | | this.$set(this.loneTreeNewForm,'btmtypename',this.btmName ||this.btmOid) |
| | | this.$set(this.loneTreeNewForm,'btmtypeid',this.btmOid) |
| | | this.$set(this.loneTreeNewForm,'btmTypeName',this.btmName ||this.btmOid) |
| | | this.$set(this.loneTreeNewForm,'btmTypeid',this.btmOid) |
| | | this.$emit('MasterHandler',this.loneTreeNewForm) |
| | | } |
| | | }, |
| | |
| | | <basic-container style="height: 85vh; max-height: 155vh; overflow-y: scroll;"> |
| | | <div> |
| | | <div> |
| | | <div style="display: flex;justify-content: space-around"> |
| | | <el-button plain size="small" type="primary" @click="TreeAdd">添加</el-button> |
| | | <el-button plain size="small" type="primary" @click="TreeEdit">修改</el-button> |
| | | <el-button plain size="small" type="primary" @click="TreeDel">删除</el-button> |
| | | <!-- <el-button plain size="small" type="primary" @click="ExportExcel">导出</el-button>--> |
| | | <!-- <el-button plain size="small" type="primary" @click="ImportExcel">导入</el-button>--> |
| | | <el-button plain size="small" type="primary" @click="flushed">刷新</el-button> |
| | | <div style="display: flex; flex-direction: column;"> |
| | | <div style="display: flex;"> |
| | | <el-button plain size="small" type="primary" @click="TreeAdd">添加</el-button> |
| | | <el-button plain size="small" type="primary" @click="TreeEdit">修改</el-button> |
| | | <el-button plain size="small" type="primary" @click="TreeDel">删除</el-button> |
| | | <el-button plain size="small" type="primary" @click="flushed">刷新</el-button> |
| | | </div> |
| | | <div style="display: flex; margin-top: 10px"> |
| | | <el-button plain size="small" type="primary" @click="Enable">启用</el-button> |
| | | <el-button plain size="small" type="primary" @click="Deactivate">停用</el-button> |
| | | <el-button plain size="small" type="primary" @click="ImportExcel">导入</el-button> |
| | | <el-button plain size="small" type="primary" @click="ExportExcel">导出</el-button> |
| | | </div> |
| | | </div> |
| | | <div style="display: flex;justify-content: space-around;margin-top: 5px;margin-bottom: 5px"> |
| | | </div> |
| | |
| | | </el-dialog> |
| | | <!-- 修改对话框--> |
| | | <el-dialog :visible.sync="TreeEditFormVisible" append-to-body title="修改分类"> |
| | | <classifyTreeform ref="childForm" :loneTreeNewForm="TreeList" :nodeList="nodeList" :flag="'edit'" @MasterHandler="MasterHandler" :Editclose=" ()=>{TreeEditFormVisible=false}" :TreeFlag="TreeFlagCode" ::nodeClickList="nodeClickList"></classifyTreeform> |
| | | <classifyTreeform ref="childForm" :loneTreeNewForm="TreeList" :nodeList="nodeList" :flag="'edit'" @MasterHandler="MasterHandler" :Editclose=" ()=>{TreeEditFormVisible=false}" :TreeFlag="TreeFlagCode" ::nodeClickList="nodeClickList" @referTreeForm="referTreeForm" @flushed="flushed"></classifyTreeform> |
| | | </el-dialog> |
| | | <avue-tree ref="tree" v-model="CloneTreeAvueform" v-loading="loading" :data="CloneTreedata" :defaultExpandAll="false" |
| | | :option="Treeoption" |
| | |
| | | </span> |
| | | <span v-else-if="type.prop==='tab2'"> |
| | | <basic-container> |
| | | <avue-crud v-model="crudForm" v-loading="FormLoing" :data="this.Formlist" :option="this.crudTreeOption" |
| | | <avue-crud ref="textCrud" v-model="crudForm" v-loading="FormLoing" :data="this.Formlist" :option="this.crudTreeOption" |
| | | @row-save="CrudRowSave" |
| | | @row-del="CrudRowDel" |
| | | @row-update="CrudRowUpdata" |
| | |
| | | <template slot="menuLeft"> |
| | | <el-button plain size="small" type="primary" @click="FindeHanler">查询</el-button> |
| | | <el-button plain size="small" type="primary" @click="TemRefresh">刷新</el-button> |
| | | <el-button plain size="small" type="primary" @click="Enable">启用</el-button> |
| | | <el-button plain size="small" type="primary" @click="Deactivate">停用</el-button> |
| | | <el-button plain size="small" type="primary" @click="CloneBtn">从其它模板克隆</el-button> |
| | | <!-- 查询对话框--> |
| | | <el-dialog :visible.sync="FindFormVisible" append-to-body title="高级查询"> |
| | |
| | | <avue-crud v-model="ClonecrudForm" v-loading="FormLoing" :data="this.CloneFormlist" |
| | | :option="this.ClonecrudTreeOption" |
| | | @selection-change="selectionChange" |
| | | |
| | | ></avue-crud> |
| | | </div> |
| | | </el-main> |
| | |
| | | </el-dialog> |
| | | </el-dialog> |
| | | </template> |
| | | <template #menu="{ size, row }"> |
| | | <template #menu="{ size, row ,index}"> |
| | | <el-button type="text" |
| | | v-if="row.lcStatus != 'Released'" |
| | | icon="el-icon-edit-outline " |
| | | :size="size" |
| | | @click="$refs.textCrud.rowEdit(row)">编辑</el-button> |
| | | <el-button type="text" |
| | | icon="el-icon-delete" |
| | | :size="size" |
| | | @click="$refs.textCrud.rowDel(row,index)">删除</el-button> |
| | | <el-button |
| | | v-show="row.lcStatus === 'Released'" |
| | | @click="upAndStopAndStart(row, 'upVersion')" |
| | |
| | | //使用inject接收参数 |
| | | //Treeoption左侧树新增表单项 Treedata左侧树节点 配置项 crudTreeOption右侧表格配置项 crudTreeData右侧表格显示内容 |
| | | //Treeform右侧表单配置项 |
| | | inject: [, "crudTreeData"], |
| | | inject: ["crudTreeData"], |
| | | data() { |
| | | return { |
| | | //树节点显示隐藏 |
| | |
| | | funAPi: startRelease, |
| | | load: 'startReleaseLoad' |
| | | } |
| | | } |
| | | }, |
| | | //模板管理编辑 |
| | | showEditBtn:false, |
| | | } |
| | | }, |
| | | //tab栏默认是表格 |
| | |
| | | this.$refs.tree.setCurrentKey(null) |
| | | this.nodeClickList = {} |
| | | this.TreeList=[] |
| | | this.TreeFlagCode=false |
| | | console.log('后TreeList',this.TreeList) |
| | | console.log('后nodeClickList',this.nodeClickList) |
| | | this.TreeFlagCode=false; |
| | | } |
| | | }, true) |
| | | }, |
| | |
| | | height:180, |
| | | selection:true, |
| | | addBtn:this.Formlist.length<=0 && this.nodeClickList != "", |
| | | editBtn:false, |
| | | delBtn:false, |
| | | column: [ |
| | | { |
| | | label: "模板编号", |
| | |
| | | } |
| | | }, |
| | | methods: { |
| | | //模板管理已发布编辑 |
| | | // checkShowEditBtn() { |
| | | // this.showEditBtn = this.Formlist.some(item => item.lcStatus === 'Released'); |
| | | // }, |
| | | //编码规则失焦 |
| | | CodeFoucus(){ |
| | | this.MasterdialogVisible=true; |
| | |
| | | this.codeClassifyOid = item.codeclassifyoid |
| | | return item.codeclassifyoid == this.nodeClickList.oid |
| | | } |
| | | console.log('Formlist',this.Formlist) |
| | | }) |
| | | }).catch(res => { |
| | | this.$message.error(res) |
| | | }) |
| | | // 基本信息表单数据 |
| | | await getObjectByOid(this.nodeClickList.oid).then(res => { |
| | | this.TreeList = res.data.data; |
| | | }).catch(res => { |
| | | this.$message.error(res) |
| | | }) |
| | | await getObjectByOid(this.nodeClickList.oid).then(res => { |
| | | this.TreeList = res.data.data; |
| | | }).catch(res => { |
| | | this.$message.error(res) |
| | | }) |
| | | } catch (error) { |
| | | this.$message.error(error) |
| | | } |
| | |
| | | treeClick(e) { |
| | | console.log(e); |
| | | }, |
| | | //基本信息表单刷新 |
| | | referTreeForm(){ |
| | | getObjectByOid(this.nodeClickList.oid).then(res => { |
| | | this.TreeList = res.data.data; |
| | | }).catch(res => { |
| | | this.$message.error(res) |
| | | }) |
| | | }, |
| | | //克隆模板树的点击切换数据 |
| | | async ClonenodeClick(data){ |
| | | this.ClonenodeClickList=data; |
| | |
| | | :width="options.width|| '80%'"> |
| | | <fileContent |
| | | :options="options" |
| | | :ownbizOid="options.ownbizOid" |
| | | ></fileContent> |
| | | </el-dialog> |
| | | </div> |
| | |
| | | <template> |
| | | <basic-container> |
| | | <fileContent |
| | | :options="options" |
| | | :ownbizOid="options.ownbizOid" |
| | | ></fileContent> |
| | | </basic-container> |
| | | </template> |
| | | |
| | | <script> |
| | |
| | | :before-open="beforeOpen" |
| | | :permission="permissionList" |
| | | v-model="form" |
| | | :height="options.height || 200" |
| | | ref="crud" |
| | | @row-del="rowDel" |
| | | @search-change="searchChange" |
| | |
| | | import {validatenull} from "@/util/validate"; |
| | | |
| | | export default { |
| | | props: ["options","visible"], |
| | | props: ["options","visible","ownbizOid"], |
| | | data() { |
| | | return { |
| | | form: {}, |
| | | query: {}, |
| | | params:{}, |
| | | loading: false, |
| | | hasPage:this.options.hasPage||false, |
| | | page: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | |
| | | mounted() { |
| | | |
| | | }, |
| | | watch:{ |
| | | ownbizOid(val){ |
| | | this.setParams() |
| | | this.refreshChange() |
| | | } |
| | | }, |
| | | methods: { |
| | | setFormItem(){ |
| | | /*this.options.formItems=[{ |
| | |
| | | setParams() { |
| | | var queryMap = { |
| | | currentButtonKey: 'VIEW', |
| | | ownbizOid:this.options.ownbizOid || "share", |
| | | ownBtmName:this.options.ownbizBtm || "share", |
| | | fileDocClassify: this.options.fileDocClassify|| "ADMIN_SHARE", |
| | | ownbizOid: this.options.ownbizOid || "share", |
| | | ownBtmName: this.options.ownbizBtm || "share", |
| | | fileDocClassify: this.options.fileDocClassify || "ADMIN_SHARE", |
| | | fileDocClassifyName: this.options.fileDocClassifyName || "管理员共享文件" |
| | | }; |
| | | if (this.options.where) { |
| | |
| | | } |
| | | this.page.pageSize = this.options.pageObject.limit; |
| | | this.page.currentPage = this.options.pageObject.page; |
| | | |
| | | this.attachOption.column[1].data.ownbizOid = this.options.ownbizOid || "share"; |
| | | this.attachOption.column[1].data.ownBtmName = this.options.ownbizBtm || "share"; |
| | | this.attachOption.column[1].data.fileDocClassify = this.options.fileDocClassify || "ADMIN_SHARE"; |
| | | this.attachOption.column[1].data.fileDocClassifyName = this.options.fileDocClassifyName || "管理员共享文件" |
| | | |
| | | }, |
| | | handleUpload() { |
| | | this.attachOption.column[1].data.fileOid=''; |
| | |
| | | this.page.pageSize = pageSize; |
| | | }, |
| | | refreshChange() { |
| | | this.onLoad(this.page, this.query); |
| | | this.onLoad(this.page); |
| | | }, |
| | | onLoad(page, params={}) { |
| | | this.loading = true; |
| | |
| | | visible(n) { |
| | | this.dialogVisible = n; |
| | | if (n) { |
| | | this.saveParam=this.setSaveParam(); |
| | | this.apiInit() |
| | | this.apiDict() |
| | | } |
| | |
| | | |
| | | <script> |
| | | import {businese} from '@/api/work/businese' |
| | | import {MasterTable} from "@/api/GetItem"; |
| | | import {FlowTable} from "@/api/GetItem"; |
| | | import {validatenull} from "@/util/validate"; |
| | | export default { |
| | | name: "BusinessWork", |
| | | props:['ids','templateId'], |
| | | props:['ids','templateId',"taskId","modelKey","codeClassifyOid"], |
| | | data() { |
| | | return { |
| | | BuinessOids:[], |
| | |
| | | //表格头渲染 |
| | | CrudHeaderRend() { |
| | | if (this.codeClassifyOid != "") { |
| | | MasterTable({ |
| | | codeClassifyOid: this.codeClassifyOid, |
| | | functionId: 5, |
| | | FlowTable({ |
| | | templateId: this.templateId, |
| | | taskId : this.taskId , |
| | | modelKey: this.modelKey, |
| | | codeClassifyOid: this.codeClassifyOid |
| | | }).then((res) => { |
| | | this.options = res.data.tableDefineVO.seniorQueryColumns; |
| | | this.List = res.data.tableDefineVO.cols[0]; |
| | |
| | | //企业编码的默认添加超链接,暂未实现 |
| | | columnItem.formatter = ''; |
| | | }else { |
| | | if (item.templet && typeof (item.templet) == 'string' && !validatenull(item.templet) && item.templet.indexOf("function(row,column)")>-1) { |
| | | if (item.templet && typeof (item.templet) == 'string' && !validatenull(item.templet) && item.templet.indexOf("function(row,column)") > -1) { |
| | | columnItem.formatter = eval("(" + item.templet + ")"); |
| | | //function(row,column){return row[column.property]=='true'?'是':'否'} |
| | | } else if (item.fieldType == "truefalse") { |
| | | columnItem.formatter = function (row, column) { |
| | | return row[column.property] == 'true' || row[column.property] == '1' ? '是' : '否' |
| | | } |
| | | } |
| | | } |
| | | this.tableHeadData.push(columnItem) |
| | |
| | | <template> |
| | | <el-container> |
| | | <el-aside> |
| | | <basic-container style="height: 85vh; max-height: 155vh; overflow-y: scroll;"> |
| | | <basic-container style="overflow: hidden;"> |
| | | <!-- 树组件--> |
| | | <master-tree @codeClassifyOid="codeClassifyOidList" @coderuleoid="coderuleoidList" :pageSize="this.pageSize" |
| | | :currentPage="this.currentPage" @tableDataArray="tableDataArrays" @tableHeadDataFateher="tableHeadDatas" |
| | |
| | | } |
| | | </script> |
| | | |
| | | <style scoped></style> |
| | | <style scoped> |
| | | .el-container{ |
| | | height: 100%; |
| | | } |
| | | .el-aside { |
| | | height: calc(100% - 30px); |
| | | } |
| | | .el-main { |
| | | height: calc(100% - 30px); |
| | | } |
| | | </style> |
| | |
| | | <i :class="icons.revisionRule"></i> |
| | | 版本规则 |
| | | </template> |
| | | {{ obj.versionRule }} |
| | | {{ obj.revisionRuleName }} |
| | | </el-descriptions-item> |
| | | <el-descriptions-item :labelStyle="descriptionOption.labelStyle" |
| | | :contentStyle="descriptionOption.contentStyle"> |
| | |
| | | this.ifRefreshBtmAddRefresh(); |
| | | }, |
| | | businessEdit() { |
| | | var json = JSON.stringify(this.obj); |
| | | this.$refs.btmAdd.btmType = JSON.parse(json); |
| | | if (!this.obj.oid){ |
| | | this.$message.warning("请选择一条叶子节点的业务类型"); |
| | | return; |
| | | } |
| | | const json = JSON.stringify(this.obj); |
| | | this.$refs.btmAdd.btmType =JSON.parse(json); |
| | | this.$refs.btmAdd.showSubmitDialog = true; |
| | | this.ifRefreshBtmAddRefresh(); |
| | | }, |
| | |
| | | <template> |
| | | <el-dialog |
| | | <el-dialog |
| | | title="业务类型" |
| | | :visible.sync="showSubmitDialog" |
| | | append-to-body |
| | | @close="closeSubmitDialog" |
| | | width="70%" |
| | | style="height: 115vh;" |
| | | > |
| | | <el-form ref="form" :model="btmType" show-message="true" inline size="medium" label-suffix=":" class="btmTypeForm" |
| | | :rules="rules" @resetFields="resetForm" status-icon="true"> |
| | | <el-form-item label="英文名称" label-width="100px" required="true" prop="id"> |
| | | <el-input v-model="btmType.id" :prefix-icon="icons.key"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="中文名称" label-width="100px"> |
| | | <el-input v-model="btmType.name" :prefix-icon="icons.name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="数据库表名" label-width="100px"> |
| | | <el-input v-model="btmType.tableName" :prefix-icon="icons.tableName"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="所属领域" label-width="100px" prop="domain" class="domainSelect"> |
| | | <el-select v-model="btmType.bizDomain" :prefix-icon="icons.domain"> |
| | | <el-option v-for="item in domainOption" |
| | | :label="item.label" :value="item.value" :key="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="版本规则" label-width="100px"> |
| | | <el-input v-model="btmType.revisionRuleName" :prefix-icon="icons.revisionRule" class="revisionRule" |
| | | @focus="openRevision" clearable @clear="clearRevision"> |
| | | <i slot="suffix" class="el-input__icon el-icon-search"></i> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="生命周期" label-width="100px"> |
| | | <el-input v-model="btmType.lifeCycleId" :prefix-icon="icons.lifeCycle"> |
| | | <i slot="suffix" class="el-input__icon el-icon-search"></i> |
| | | </el-input> |
| | | </el-form-item> |
| | | <div> |
| | | <el-form-item label="开启视图" label-width="100px" class="viewFlag"> |
| | | <el-switch v-model="btmType.viewFlag" active-color="#13ce66" @change="viewChange"></el-switch> |
| | | </el-form-item> |
| | | <el-form-item label="视图语句" label-width="100px" class="viewInput"> |
| | | <el-input v-model="btmType.view" :prefix-icon="icons.view" :disabled="!btmType.viewFlag"></el-input> |
| | | </el-form-item> |
| | | </div> |
| | | <el-form-item label="描述" label-width="100px" class="description"> |
| | | <el-input v-model="btmType.description" |
| | | :prefix-icon="icons.desc" |
| | | class="descClass" |
| | | id="descId" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <avue-crud :option="option" |
| | | :data="btmType.attributes" |
| | | :page.sync="page" |
| | | ref="attrTable"> |
| | | <template slot-scope="scope" slot="menuLeft"> |
| | | <el-button type="danger" |
| | | icon="el-icon-plus" |
| | | size="small" |
| | | @click="rowAdd()">属性选择 |
| | | </el-button> |
| | | </template> |
| | | <template slot="attrDataTypeText" slot-scope="{row}"> |
| | | <el-tag>{{ row.attrDataTypeText }}</el-tag> |
| | | </template> |
| | | <template slot="menu" slot-scope="{row,index}"> |
| | | <el-button icon="el-icon-edit" size="small" type="text" v-if="!row.$cellEdit" @click="cellEditClick(row)">编辑 |
| | | </el-button> |
| | | <el-button icon="el-icon-delete" size="small" type="text" v-if="!row.$cellEdit" |
| | | @click="removeFormAttrTable(row,index)">移除 |
| | | </el-button> |
| | | <el-button icon="el-icon-check" size="small" type="text" v-if="row.$cellEdit" @click="cellEditSave(row,index)"> |
| | | 保存 |
| | | </el-button> |
| | | </template> |
| | | </avue-crud> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitBtmType">确定</el-button> |
| | | <el-button @click="cancleSubmitBtmType">取消</el-button> |
| | | </div> |
| | | |
| | | <!-- 属性池的选择 --> |
| | | <el-dialog title="属性池" |
| | | :visible="attrRef.visible" |
| | | append-to-body |
| | | @close="closeAttrDialog" |
| | | width="80%" |
| | | > |
| | | <el-form ref="form" :model="btmType" show-message="true" inline size="medium" label-suffix=":" class="btmTypeForm" :rules="rules" @resetFields="resetForm" status-icon="true"> |
| | | <el-form-item label="英文名称" label-width="100px" required="true" prop="id"> |
| | | <el-input v-model="btmType.id" :prefix-icon="icons.key"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="中文名称" label-width="100px"> |
| | | <el-input v-model="btmType.name" :prefix-icon="icons.name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="数据库表名" label-width="100px"> |
| | | <el-input v-model="btmType.tableName" :prefix-icon="icons.tableName"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="所属领域" label-width="100px" prop="domain"> |
| | | <el-select v-model="btmType.domain" :prefix-icon="icons.domain"> |
| | | <el-option v-for="item in domainOption" |
| | | :label="item.label" :value="item.value" :key="item.value"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="版本规则" label-width="100px"> |
| | | <el-input v-model="btmType.revisionRuleName" :prefix-icon="icons.revisionRule" class="revisionRule" |
| | | @focus="openRevision" clearable @clear="clearRevision"> |
| | | <i slot="suffix" class="el-input__icon el-icon-search"></i> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="生命周期" label-width="100px"> |
| | | <el-input v-model="btmType.lifeCycleId" :prefix-icon="icons.lifeCycle"> |
| | | <i slot="suffix" class="el-input__icon el-icon-search"></i> |
| | | </el-input> |
| | | </el-form-item> |
| | | <div> |
| | | <el-form-item label="开启视图" label-width="100px" class="viewFlag"> |
| | | <el-switch v-model="btmType.viewFlag" active-color="#13ce66" @change="viewChange"></el-switch> |
| | | </el-form-item> |
| | | <el-form-item label="视图语句" label-width="100px"> |
| | | <el-input v-model="btmType.view" :prefix-icon="icons.view" :disabled="!btmType.viewFlag"></el-input> |
| | | </el-form-item> |
| | | </div> |
| | | <el-form-item label="描述" label-width="100px" class="description"> |
| | | <el-input v-model="btmType.description" |
| | | :prefix-icon="icons.desc" |
| | | class="descClass" |
| | | id="descId" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <avue-crud :option="option" |
| | | :data="btmType.attributes" |
| | | :page.sync="page" |
| | | ref="attrTable"> |
| | | <template slot-scope="scope" slot="menuLeft"> |
| | | <el-button type="danger" |
| | | icon="el-icon-plus" |
| | | size="small" |
| | | @click="rowAdd()">属性选择</el-button> |
| | | </template> |
| | | <template slot="menu" slot-scope="{row,index}"> |
| | | <el-button icon="el-icon-edit" size="small" type="text" v-if="!row.$cellEdit" @click="cellEditClick(row)">编辑</el-button> |
| | | <el-button icon="el-icon-delete" size="small" type="text" v-if="!row.$cellEdit" @click="removeFormAttrTable(row,index)">移除</el-button> |
| | | <el-button icon="el-icon-check" size="small" type="text" v-if="row.$cellEdit" @click="cellEditSave(row,index)">保存</el-button> |
| | | </template> |
| | | </avue-crud> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitBtmType">确定</el-button> |
| | | <el-button @click="cancleSubmitBtmType">取消</el-button> |
| | | </div> |
| | | |
| | | <!-- 属性池的选择 --> |
| | | <el-dialog title="属性池" |
| | | :visible="attrRef.visible" |
| | | append-to-body |
| | | @close="closeAttrDialog" |
| | | width="80%" |
| | | > |
| | | <avue-crud class="attrRef" |
| | | :option="attrRef.option" |
| | | :data="attrRef.data" |
| | | :page.sync="attrRef.page" |
| | | ref="attrRef" |
| | | @on-load="attrRefOnLoad" |
| | | @search-change="attrRefSearch" |
| | | @selection-change="selectionChange" |
| | | v-loading="attrRef.loading"> |
| | | <template slot="typeValue" slot-scope="scope" > |
| | | <el-tag>{{scope.row.typeValue}}</el-tag> |
| | | </template> |
| | | </avue-crud> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="confirmSelectAttr">确定</el-button> |
| | | <el-button @click="cancleSelectAttr">取消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <!-- 版本规则的参照 --> |
| | | <el-dialog title="请选择版本规则" |
| | | :visible.sync="revisionRef.visible" |
| | | append-to-body |
| | | width="80%"> |
| | | |
| | | <avue-crud class="revisionRef" |
| | | :option="revisionRef.option" |
| | | :data="revisionRef.data" |
| | | :page.sync="revisionRef.page" |
| | | ref="revisionRef" |
| | | @row-click="revisionClick"> |
| | | <template slot="radio" |
| | | slot-scope="{row}"> |
| | | <el-radio v-model="revisionRef.selectRow" |
| | | :label="row.$index"> |
| | | </el-radio> |
| | | </template> |
| | | </avue-crud> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="confirmRevision">确定</el-button> |
| | | <el-button @click="cancelRevision">取消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <avue-crud class="attrRef" |
| | | :option="attrRef.option" |
| | | :data="attrRef.data" |
| | | :page.sync="attrRef.page" |
| | | ref="attrRef" |
| | | @on-load="attrRefOnLoad" |
| | | @search-change="attrRefSearch" |
| | | @selection-change="selectionChange" |
| | | v-loading="attrRef.loading"> |
| | | <template slot="typeValue" slot-scope="scope"> |
| | | <el-tag>{{ scope.row.typeValue }}</el-tag> |
| | | </template> |
| | | </avue-crud> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="confirmSelectAttr">确定</el-button> |
| | | <el-button @click="cancleSelectAttr">取消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <!-- 版本规则的参照 --> |
| | | <el-dialog title="请选择版本规则" |
| | | :visible.sync="revisionRef.visible" |
| | | append-to-body |
| | | width="80%"> |
| | | |
| | | <avue-crud class="revisionRef" |
| | | :option="revisionRef.option" |
| | | :data="revisionRef.data" |
| | | :page.sync="revisionRef.page" |
| | | ref="revisionRef" |
| | | @row-click="revisionClick"> |
| | | <template slot="radio" |
| | | slot-scope="{row}"> |
| | | <el-radio v-model="revisionRef.selectRow" |
| | | :label="row.$index"> |
| | | </el-radio> |
| | | </template> |
| | | </avue-crud> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="confirmRevision">确定</el-button> |
| | | <el-button @click="cancelRevision">取消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | |
| | | <script> |
| | | |
| | | import { add,update } from '@/api/omd/btmType'; |
| | | import { queryPage } from '@/api/omd/OmdAttribute'; |
| | | import { getPage } from '@/api/omd/revisionRule'; |
| | | import {add, update} from '@/api/omd/btmType'; |
| | | import {queryPage} from '@/api/omd/OmdAttribute'; |
| | | import {getPage} from '@/api/omd/revisionRule'; |
| | | |
| | | export default { |
| | | name: 'BusinessAdd', |
| | | props: { |
| | | btmType:{ |
| | | type: Object |
| | | }, |
| | | domainOption:{ |
| | | type: Array |
| | | }, |
| | | icons: { |
| | | type: Array |
| | | } |
| | | name: 'BusinessAdd', |
| | | props: { |
| | | btmType: { |
| | | type: Object |
| | | }, |
| | | watch:{ |
| | | btmType:{ |
| | | handler(newval,oldval){ |
| | | console.log('监听',newval,oldval) |
| | | }, |
| | | deep:true, |
| | | immediate:true |
| | | domainOption: { |
| | | type: Array |
| | | }, |
| | | icons: { |
| | | type: Array |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | form: {}, |
| | | showSubmitDialog : false, |
| | | option: { |
| | | height: "330px", |
| | | selection: false, |
| | | headerAlign: 'center', |
| | | border: true, |
| | | index: true, |
| | | rowKey: 'id', |
| | | tabs: true, |
| | | menu: true, |
| | | editBtn: false, |
| | | delBtn: false, |
| | | menuWidth: 150, |
| | | addBtn:false, |
| | | highlightCurrentRow: true, |
| | | column: [ |
| | | { |
| | | label: '英文名称', |
| | | prop: 'id', |
| | | align: 'center' |
| | | }, { |
| | | label: '中文名称', |
| | | prop: 'name', |
| | | align: 'center', |
| | | cell: true |
| | | }, |
| | | { |
| | | label: "类型", |
| | | prop: "attrDataType", |
| | | align: 'center', |
| | | slot: true |
| | | }, |
| | | { |
| | | label: "默认值", |
| | | prop: "defaultValue", |
| | | align: 'center', |
| | | cell: true |
| | | }, |
| | | { |
| | | label: "说明", |
| | | prop: "description", |
| | | align: 'center', |
| | | cell:true |
| | | } |
| | | ] |
| | | }, |
| | | attrRef:{ |
| | | visible:false, |
| | | page: { |
| | | currentPage:1, |
| | | pageSize:10, |
| | | }, |
| | | loading: false, |
| | | key: null, |
| | | option:{ |
| | | height: 360, |
| | | addBtn: false, |
| | | refreshBtn: false, |
| | | columnBtn: false, |
| | | selection: true, |
| | | menu: false, |
| | | border: true, |
| | | reserveSelection: true, |
| | | searchMenuSpan:8, |
| | | highlightCurrentRow: true, |
| | | rowKey: 'id', |
| | | column: [ |
| | | { |
| | | label: '英文名称', |
| | | prop: 'id', |
| | | align: 'left', |
| | | search: true, |
| | | width: 230 |
| | | }, { |
| | | label: '中文名称', |
| | | prop: 'name', |
| | | align: 'center', |
| | | }, |
| | | { |
| | | label: "类型", |
| | | prop: "typeValue", |
| | | align: 'center', |
| | | slot: true, |
| | | }, |
| | | { |
| | | label: "默认值", |
| | | prop: "defaultValue", |
| | | align: 'center' |
| | | }, |
| | | { |
| | | label: '允许为空', |
| | | prop: 'nullable', |
| | | type: 'switch', |
| | | display: false, |
| | | hide: true, |
| | | labelWidth: 132, |
| | | dicData: [{ |
| | | label: '否', |
| | | value: 1 |
| | | }, { |
| | | label: '是', |
| | | value: 0 |
| | | }] |
| | | }, |
| | | { |
| | | label: "说明", |
| | | prop: "description", |
| | | cell:true, |
| | | align: 'center' |
| | | } |
| | | ] |
| | | }, |
| | | data: [], |
| | | queryNotIn: '' |
| | | }, |
| | | revisionRef: { |
| | | visible: false, |
| | | page: { |
| | | currentPage:1, |
| | | pageSize: 10 |
| | | }, |
| | | selectRow:'', |
| | | searchKey: null, |
| | | option:{ |
| | | height: 360, |
| | | addBtn: false, |
| | | refreshBtn: false, |
| | | columnBtn: false, |
| | | menu: false, |
| | | border: true, |
| | | reserveSelection: true, |
| | | searchMenuSpan:8, |
| | | searchShowBtn: false, |
| | | highlightCurrentRow: true, |
| | | column:[{ |
| | | label: '选择', |
| | | prop: 'radio', |
| | | width: 60, |
| | | hide: false |
| | | }, |
| | | { |
| | | label:'英文名称', |
| | | prop: 'id', |
| | | search:true |
| | | }, |
| | | { |
| | | label:"中文名称", |
| | | prop:"name", |
| | | search:true, |
| | | }, |
| | | { |
| | | label:"跳跃字符", |
| | | prop: "skipCode" |
| | | }, |
| | | { |
| | | label: "初始值", |
| | | prop:"startCode" |
| | | }, |
| | | { |
| | | label: "步长", |
| | | prop: "serialStep" |
| | | }, |
| | | { |
| | | label: "前缀", |
| | | prop:"prefixCode" |
| | | }, |
| | | { |
| | | label: "后缀", |
| | | prop: "suffixCode" |
| | | }, |
| | | { |
| | | label: "描述", |
| | | prop:"description", |
| | | type:"textarea" |
| | | } |
| | | ] |
| | | }, |
| | | }, |
| | | rules: { |
| | | id: [ |
| | | { required: true, message: '请输入业务类型编号', trigger: 'blur' }, |
| | | { pattern: /^[A-Za-z]+$/, message: '业务类型编号只能为英文', trigger: 'blur' }, |
| | | { min: 2, max: 20, message: '长度在2到20个字符', trigger: 'blur' } |
| | | ], |
| | | domain: [ |
| | | { required: true, message: '请选择所属领域', trigger: 'blur' } |
| | | ] |
| | | }, |
| | | } |
| | | }, |
| | | created() { |
| | | |
| | | }, |
| | | methods: { |
| | | // 关闭组件弹窗 |
| | | closeSubmitDialog(){ |
| | | this.showSubmitDialog = false; |
| | | this.btmType.attributes = []; |
| | | this.btmType = {}; |
| | | this.attrRef.selectData = []; |
| | | this.attrRef.queryNotIn = null; |
| | | this.resetForm(); |
| | | }, |
| | | // 关闭属性池查询弹窗 |
| | | closeAttrDialog(){ |
| | | this.attrRef.visible = false; |
| | | }, |
| | | // 属性选择添加 |
| | | async rowAdd() { |
| | | await this.attrRefOnLoad(); |
| | | this.attrRef.visible = true; |
| | | }, |
| | | // 属性池加载 |
| | | attrRefOnLoad(){ |
| | | if (this.attrRef.queryNotIn != ''){ |
| | | this.attrRef.queryNotIn = ''; |
| | | this.btmType.attributes.forEach(item => { |
| | | this.attrRef.queryNotIn += (item.id + ",") |
| | | }) |
| | | } |
| | | this.attrRef.loading = true; |
| | | queryPage(this.attrRef.key,this.attrRef.queryNotIn,this.attrRef.page.currentPage, this.attrRef.page.pageSize).then(res => { |
| | | const data = res.data.data; |
| | | this.attrRef.page.total = data.total; |
| | | this.attrRef.data = data.records; |
| | | }); |
| | | setTimeout(() => { |
| | | this.attrRef.loading = false; |
| | | },600) |
| | | this.$nextTick(() => { |
| | | this.$refs.attrRef.refreshTable(); |
| | | }); |
| | | }, |
| | | // 属性池检索 |
| | | attrRefSearch(form,done){ |
| | | this.attrRef.key = form.id; |
| | | this.attrRefOnLoad(); |
| | | done(); |
| | | this.attrRef.key = null; |
| | | }, |
| | | // 从属性池中移除 |
| | | removeFormAttrTable(row,index){ |
| | | this.btmType.attributes.splice(index,1); |
| | | this.attrRef.queryNotIn = ""; |
| | | this.btmType.attributes.forEach(item => { |
| | | this.attrRef.queryNotIn += (item.id + ",") |
| | | }) |
| | | }, |
| | | // 属性池勾选事件 |
| | | selectionChange(list){ |
| | | this.attrRef.selectData = list; |
| | | }, |
| | | // 确认属性池勾选 |
| | | confirmSelectAttr(){ |
| | | if(!this.btmType.attributes) { |
| | | this.btmType.attributes = []; |
| | | } |
| | | this.attrRef.selectData.forEach(item => { |
| | | this.btmType.attributes.push({ |
| | | id: item.id, |
| | | name: item.name, |
| | | typeValue: item.typeValue, |
| | | typeKey: item.typeValue, |
| | | attrDataType : item.typeKey, |
| | | defaultValue: item.defaultValue, |
| | | description: item.description, |
| | | attributeLength: item.maxLength, |
| | | referBtmTypeId: item.referTypeCode, |
| | | referBtmTypeName: item.referToName, |
| | | enumId: item.dictCode, |
| | | // enumName: item, |
| | | }); |
| | | this.attrRef.queryNotIn += (item.id + ",") |
| | | }); |
| | | this.attrRef.data = []; |
| | | this.closeAttrDialog(); |
| | | }, |
| | | // 取消属性池勾选 |
| | | cancleSelectAttr(){ |
| | | this.attrRef.selectData = []; |
| | | this.closeAttrDialog(); |
| | | }, |
| | | // 添加业务类型 |
| | | submitBtmType(){ |
| | | console.log(this.btmType); |
| | | add(this.btmType,true).then(res => { |
| | | // 添加完成,回调父组件的刷新 |
| | | this.$message.success('保存成功'); |
| | | this.cancleSubmitBtmType(); |
| | | this.$emit('refreshTable'); |
| | | }) |
| | | }, |
| | | // 取消添加业务类型 |
| | | cancleSubmitBtmType(){ |
| | | this.btmType = {}; |
| | | this.btmType.attributes = []; |
| | | this.showSubmitDialog = false; |
| | | }, |
| | | // 刷新属性列表 |
| | | refreshAttrTable(){ |
| | | this.$nextTick( () => { |
| | | this.$refs.attrTable.refreshTable(); |
| | | }) |
| | | }, |
| | | // |
| | | viewChange(){ |
| | | |
| | | }, |
| | | // 列表编辑 |
| | | cellEditClick(cell){ |
| | | console.log(cell); |
| | | cell.$cellEdit = true; |
| | | }, |
| | | // 列表编辑保存 |
| | | cellEditSave(row){ |
| | | this.btmType.attributes[row.$index].name = row.name |
| | | this.btmType.attributes[row.$index].defaultValue = row.defaultValue; |
| | | this.btmType.attributes[row.$index].description = row.description; |
| | | row.$cellEdit = false; |
| | | }, |
| | | // 打开版本规则参照 |
| | | async openRevision(){ |
| | | await getPage().then(res => { |
| | | this.revisionRef.data = res.data.data.records; |
| | | }); |
| | | this.revisionRef.visible = true; |
| | | }, |
| | | // 关闭版本规则参照弹窗 |
| | | closeRevisionDialog(){ |
| | | this.revisionRef.visible = false; |
| | | }, |
| | | // 版本规则参照列表检索 |
| | | revisionRefSearch(){ |
| | | |
| | | }, |
| | | // 版本规则选中事件 |
| | | revisionChange(){}, |
| | | // 确认选中版本规则 |
| | | confirmRevision(){ |
| | | this.btmType.revisionFlag = true; |
| | | this.btmType.revisionRuleId = this.revisionRef.selectData.id; |
| | | this.btmType.revisionRuleName = this.revisionRef.selectData.name; |
| | | this.btmType.inputRevisionFlag = false; |
| | | this.cancelRevision(); |
| | | }, |
| | | // 取消选中版本规则 |
| | | cancelRevision(){ |
| | | this.revisionRef.selectRow = ''; |
| | | this.revisionRef.selectData = {}; |
| | | this.closeRevisionDialog(); |
| | | }, |
| | | // 版本规则单选 |
| | | revisionClick(row){ |
| | | this.revisionRef.selectRow = row.$index; |
| | | this.revisionRef.selectData = { |
| | | id: row.id, |
| | | name: row.name, |
| | | }; |
| | | }, |
| | | clearRevision(){ |
| | | this.$delete(this.btmType,'revisionFlag'); |
| | | this.$delete(this.btmType,'revisionRuleId'); |
| | | this.$delete(this.btmType,'revisionRuleName'); |
| | | this.$delete(this.btmType,'inputRevisionFlag'); |
| | | }, |
| | | resetForm(){ |
| | | this.btmType = {}; |
| | | this.$refs.form.resetFields(); |
| | | } |
| | | watch: { |
| | | btmType: { |
| | | handler(newval, oldval) { |
| | | console.log('监听', newval, oldval) |
| | | }, |
| | | deep: true, |
| | | immediate: true |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | form: {}, |
| | | showSubmitDialog: false, |
| | | option: { |
| | | height: "330px", |
| | | selection: false, |
| | | headerAlign: 'center', |
| | | border: true, |
| | | index: true, |
| | | rowKey: 'id', |
| | | tabs: true, |
| | | menu: true, |
| | | editBtn: false, |
| | | delBtn: false, |
| | | columnBtn: false, |
| | | menuWidth: 150, |
| | | addBtn: false, |
| | | highlightCurrentRow: true, |
| | | column: [ |
| | | { |
| | | label: '英文名称', |
| | | prop: 'id', |
| | | align: 'center' |
| | | }, { |
| | | label: '中文名称', |
| | | prop: 'name', |
| | | align: 'center', |
| | | cell: true |
| | | },{ |
| | | label: "类型", |
| | | prop: "attrDataTypeText", |
| | | align: 'center', |
| | | slot: true |
| | | }, |
| | | { |
| | | label: "默认值", |
| | | prop: "defaultValue", |
| | | align: 'center', |
| | | cell: true |
| | | }, |
| | | { |
| | | label: "说明", |
| | | prop: "description", |
| | | align: 'center', |
| | | cell: true |
| | | } |
| | | ] |
| | | }, |
| | | attrRef: { |
| | | visible: false, |
| | | page: { |
| | | currentPage: 1, |
| | | pageSize: 10, |
| | | }, |
| | | loading: false, |
| | | key: null, |
| | | option: { |
| | | height: 360, |
| | | addBtn: false, |
| | | refreshBtn: false, |
| | | columnBtn: false, |
| | | selection: true, |
| | | menu: false, |
| | | border: true, |
| | | reserveSelection: true, |
| | | searchMenuSpan: 8, |
| | | highlightCurrentRow: true, |
| | | rowKey: 'id', |
| | | column: [ |
| | | { |
| | | label: '英文名称', |
| | | prop: 'id', |
| | | align: 'left', |
| | | search: true, |
| | | width: 230 |
| | | }, { |
| | | label: '中文名称', |
| | | prop: 'name', |
| | | align: 'center', |
| | | }, |
| | | { |
| | | label: "类型", |
| | | prop: "typeValue", |
| | | align: 'center', |
| | | slot: true, |
| | | }, |
| | | { |
| | | label: "默认值", |
| | | prop: "defaultValue", |
| | | align: 'center' |
| | | }, |
| | | { |
| | | label: '允许为空', |
| | | prop: 'nullable', |
| | | type: 'switch', |
| | | display: false, |
| | | hide: true, |
| | | labelWidth: 132, |
| | | dicData: [{ |
| | | label: '否', |
| | | value: 1 |
| | | }, { |
| | | label: '是', |
| | | value: 0 |
| | | }] |
| | | }, |
| | | { |
| | | label: "说明", |
| | | prop: "description", |
| | | cell: true, |
| | | align: 'center' |
| | | } |
| | | ] |
| | | }, |
| | | data: [], |
| | | queryNotIn: '' |
| | | }, |
| | | revisionRef: { |
| | | visible: false, |
| | | page: { |
| | | currentPage: 1, |
| | | pageSize: 10 |
| | | }, |
| | | selectRow: '', |
| | | searchKey: null, |
| | | option: { |
| | | height: 360, |
| | | addBtn: false, |
| | | refreshBtn: false, |
| | | columnBtn: false, |
| | | menu: false, |
| | | border: true, |
| | | reserveSelection: true, |
| | | searchMenuSpan: 8, |
| | | searchShowBtn: false, |
| | | highlightCurrentRow: true, |
| | | column: [{ |
| | | label: '选择', |
| | | prop: 'radio', |
| | | width: 60, |
| | | hide: false |
| | | }, |
| | | { |
| | | label: '英文名称', |
| | | prop: 'id', |
| | | search: true |
| | | }, |
| | | { |
| | | label: "中文名称", |
| | | prop: "name", |
| | | search: true, |
| | | }, |
| | | { |
| | | label: "跳跃字符", |
| | | prop: "skipCode" |
| | | }, |
| | | { |
| | | label: "初始值", |
| | | prop: "startCode" |
| | | }, |
| | | { |
| | | label: "步长", |
| | | prop: "serialStep" |
| | | }, |
| | | { |
| | | label: "前缀", |
| | | prop: "prefixCode" |
| | | }, |
| | | { |
| | | label: "后缀", |
| | | prop: "suffixCode" |
| | | }, |
| | | { |
| | | label: "描述", |
| | | prop: "description", |
| | | type: "textarea" |
| | | } |
| | | ] |
| | | }, |
| | | }, |
| | | rules: { |
| | | id: [ |
| | | {required: true, message: '请输入业务类型编号', trigger: 'blur'}, |
| | | {pattern: /^[A-Za-z]+$/, message: '业务类型编号只能为英文', trigger: 'blur'}, |
| | | {min: 2, max: 20, message: '长度在2到20个字符', trigger: 'blur'} |
| | | ], |
| | | domain: [ |
| | | {required: true, message: '请选择所属领域', trigger: 'blur'} |
| | | ] |
| | | }, |
| | | } |
| | | }, |
| | | created() { |
| | | |
| | | }, |
| | | methods: { |
| | | // 关闭组件弹窗 |
| | | closeSubmitDialog() { |
| | | this.showSubmitDialog = false; |
| | | this.btmType.attributes = []; |
| | | this.btmType = {}; |
| | | this.attrRef.selectData = []; |
| | | this.attrRef.queryNotIn = null; |
| | | this.resetForm(); |
| | | }, |
| | | // 关闭属性池查询弹窗 |
| | | closeAttrDialog() { |
| | | this.attrRef.visible = false; |
| | | }, |
| | | // 属性选择添加 |
| | | async rowAdd() { |
| | | await this.attrRefOnLoad(); |
| | | this.attrRef.visible = true; |
| | | }, |
| | | // 属性池加载 |
| | | attrRefOnLoad() { |
| | | if (this.attrRef.queryNotIn != '' && this.btmType.attributes !== undefined && this.btmType.attributes.length > 0) { |
| | | this.attrRef.queryNotIn = ''; |
| | | this.btmType.attributes.forEach(item => { |
| | | this.attrRef.queryNotIn += (item.id + ",") |
| | | }) |
| | | } |
| | | this.attrRef.loading = true; |
| | | queryPage(this.attrRef.key, this.attrRef.queryNotIn, this.attrRef.page.currentPage, this.attrRef.page.pageSize).then(res => { |
| | | const data = res.data.data; |
| | | this.attrRef.page.total = data.total; |
| | | this.attrRef.data = data.records; |
| | | }); |
| | | setTimeout(() => { |
| | | this.attrRef.loading = false; |
| | | }, 600) |
| | | this.$nextTick(() => { |
| | | this.$refs.attrRef.refreshTable(); |
| | | }); |
| | | }, |
| | | // 属性池检索 |
| | | attrRefSearch(form, done) { |
| | | this.attrRef.key = form.id; |
| | | this.attrRefOnLoad(); |
| | | done(); |
| | | this.attrRef.key = null; |
| | | }, |
| | | // 从属性池中移除 |
| | | removeFormAttrTable(row, index) { |
| | | this.btmType.attributes.splice(index, 1); |
| | | this.attrRef.queryNotIn = ""; |
| | | this.btmType.attributes.forEach(item => { |
| | | this.attrRef.queryNotIn += (item.id + ",") |
| | | }) |
| | | }, |
| | | // 属性池勾选事件 |
| | | selectionChange(list) { |
| | | this.attrRef.selectData = list; |
| | | }, |
| | | // 确认属性池勾选 |
| | | confirmSelectAttr() { |
| | | if (!this.btmType.attributes) { |
| | | this.btmType.attributes = []; |
| | | } |
| | | console.log(this.attrRef.selectData); |
| | | this.attrRef.selectData.forEach(item => { |
| | | this.btmType.attributes.push({ |
| | | id: item.id, |
| | | name: item.name, |
| | | attrDataType: item.typeKey, |
| | | attrDataTypeText: item.typeValue, |
| | | defaultValue: item.defaultValue, |
| | | description: item.description, |
| | | attributeLength: item.maxLength, |
| | | referBtmTypeId: item.referTypeCode, |
| | | referBtmTypeName: item.referToName, |
| | | enumId: item.dictCode, |
| | | }); |
| | | this.attrRef.queryNotIn += (item.id + ",") |
| | | }); |
| | | this.attrRef.data = []; |
| | | this.closeAttrDialog(); |
| | | }, |
| | | // 取消属性池勾选 |
| | | cancleSelectAttr() { |
| | | this.attrRef.selectData = []; |
| | | this.closeAttrDialog(); |
| | | }, |
| | | // 添加业务类型 |
| | | submitBtmType() { |
| | | console.log(this.btmType); |
| | | add(this.btmType, true).then(res => { |
| | | // 添加完成,回调父组件的刷新 |
| | | this.$message.success('保存成功'); |
| | | this.cancleSubmitBtmType(); |
| | | this.$emit('refreshTable'); |
| | | }) |
| | | }, |
| | | // 取消添加业务类型 |
| | | cancleSubmitBtmType() { |
| | | this.btmType = {}; |
| | | this.btmType.attributes = []; |
| | | this.showSubmitDialog = false; |
| | | }, |
| | | // 刷新属性列表 |
| | | refreshAttrTable() { |
| | | this.$nextTick(() => { |
| | | this.$refs.attrTable.refreshTable(); |
| | | }) |
| | | }, |
| | | // |
| | | viewChange() { |
| | | |
| | | }, |
| | | // 列表编辑 |
| | | cellEditClick(cell) { |
| | | console.log(cell); |
| | | cell.$cellEdit = true; |
| | | }, |
| | | // 列表编辑保存 |
| | | cellEditSave(row) { |
| | | this.btmType.attributes[row.$index].name = row.name |
| | | this.btmType.attributes[row.$index].defaultValue = row.defaultValue; |
| | | this.btmType.attributes[row.$index].description = row.description; |
| | | row.$cellEdit = false; |
| | | }, |
| | | // 打开版本规则参照 |
| | | async openRevision() { |
| | | await getPage().then(res => { |
| | | this.revisionRef.data = res.data.data.records; |
| | | }); |
| | | this.revisionRef.visible = true; |
| | | }, |
| | | // 关闭版本规则参照弹窗 |
| | | closeRevisionDialog() { |
| | | this.revisionRef.visible = false; |
| | | }, |
| | | // 版本规则参照列表检索 |
| | | revisionRefSearch() { |
| | | |
| | | }, |
| | | // 版本规则选中事件 |
| | | revisionChange() { |
| | | }, |
| | | // 确认选中版本规则 |
| | | confirmRevision() { |
| | | this.btmType.revisionFlag = true; |
| | | this.btmType.revisionRuleId = this.revisionRef.selectData.id; |
| | | this.btmType.revisionRuleName = this.revisionRef.selectData.name; |
| | | this.btmType.inputRevisionFlag = false; |
| | | this.cancelRevision(); |
| | | }, |
| | | // 取消选中版本规则 |
| | | cancelRevision() { |
| | | this.revisionRef.selectRow = ''; |
| | | this.revisionRef.selectData = {}; |
| | | this.closeRevisionDialog(); |
| | | }, |
| | | // 版本规则单选 |
| | | revisionClick(row) { |
| | | this.revisionRef.selectRow = row.$index; |
| | | this.revisionRef.selectData = { |
| | | id: row.id, |
| | | name: row.name, |
| | | }; |
| | | }, |
| | | clearRevision() { |
| | | this.$delete(this.btmType, 'revisionFlag'); |
| | | this.$delete(this.btmType, 'revisionRuleId'); |
| | | this.$delete(this.btmType, 'revisionRuleName'); |
| | | this.$delete(this.btmType, 'inputRevisionFlag'); |
| | | }, |
| | | resetForm() { |
| | | this.btmType = {}; |
| | | this.$refs.form.resetFields(); |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | /* 属性池参照列表 */ |
| | | .attrRef > .el-card:nth-of-type(2) > .el-card__body > .avue-crud__menu{ |
| | | display: none !important; |
| | | .attrRef > .el-card:nth-of-type(2) > .el-card__body > .avue-crud__menu { |
| | | display: none !important; |
| | | } |
| | | |
| | | .revisionRef > .el-card:nth-of-type(2) > .el-card__body > .avue-crud__menu{ |
| | | display: none !important; |
| | | .revisionRef > .el-card:nth-of-type(2) > .el-card__body > .avue-crud__menu { |
| | | display: none !important; |
| | | } |
| | | |
| | | .btmTypeForm > .el-form-item > .el-form-item__content > .el-input > .el-input__inner { |
| | | width: 200px; |
| | | width: 200px; |
| | | } |
| | | |
| | | .domainSelect > .el-form-item__content > .el-select > .el-input > .el-input__inner { |
| | | width: 200px; |
| | | } |
| | | |
| | | .viewFlag { |
| | | width: 305px; |
| | | width: 305px; |
| | | } |
| | | |
| | | .viewInput > .el-form-item__content > .el-input > .el-input__inner { |
| | | width: 200px; |
| | | } |
| | | |
| | | .descClass > .el-input__inner { |
| | | width: 57vw |
| | | width: 57vw |
| | | } |
| | | |
| | | #descId { |
| | | width: 57vw; |
| | | width: 57vw; |
| | | } |
| | | </style> |
| | |
| | | <el-card class="dialogwarp_tab_card"> |
| | | <el-tabs v-model="activeName" @tab-click="handleClick"> |
| | | <el-tab-pane label="业务数据信息" name="first"> |
| | | <businesswork ref="businesswork":ids="ids" :templateId="templateId"></businesswork> |
| | | <businesswork ref="businesswork":ids="ids" :templateId="templateId" :taskId="taskId" :modelKey="modelKey" :codeClassifyOid="codeClassifyOid"></businesswork> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="流程跟踪" name="second"> |
| | | <avue-crud :data="flowList" :option="option" ref="crud"> |
| | |
| | | ids:[], |
| | | templateId:'', |
| | | taskId: '', |
| | | modelKey:'', |
| | | codeClassifyOid:'', |
| | | businessId: '', |
| | | processInstanceId: '', |
| | | src: '', |
| | |
| | | const res = response.data |
| | | this.ids=res.data.variables.ids; |
| | | this.templateId=res.data.variables.templateId; |
| | | this.modelKey=res.data.variables.modelKey; |
| | | this.codeClassifyOid=res.data.variables.codeClassifyOid; |
| | | this.taskId=res.data.variables.taskId; |
| | | if (res.success) { |
| | | console.log(res) |
| | | this.btnList = res.data.toTasks |
| | | this.btnList = res.data.toTasks; |
| | | } |
| | | }, |
| | | async apiExamineTask(param) { |
| | |
| | | proxy: { |
| | | '/api': { |
| | | //本地服务接口地址 |
| | | target: 'http://localhost:37000', |
| | | // target: 'http://localhost:37000', |
| | | // target: 'http://192.168.1.51:37000', |
| | | // target: 'http://192.168.1.46:37000', |
| | | // target: 'http://dev.vci-tech.com:37000', |
| | | target: 'http://dev.vci-tech.com:37000', |
| | | // target: 'http://192.168.1.51:37000/', |
| | | // target: 'http://192.168.1.104:37000', |
| | | // target: 'http://192.168.1.63:37000', |
| | |
| | | @Override |
| | | public String toString() { |
| | | StringBuilder stringBuilder = new StringBuilder().append(dataType); |
| | | if (dataLength != null && dataPrecision != null){ |
| | | stringBuilder.append(StringPool.SPACE).append(StringPool.LEFT_BRACKET).append(dataLength).append(StringPool.COMMA).append(dataPrecision).append(StringPool.RIGHT_BRACKET).append(StringPool.SPACE); |
| | | }else if (dataLength != null) { |
| | | stringBuilder.append(StringPool.SPACE).append(StringPool.LEFT_BRACKET).append(dataLength).append(StringPool.RIGHT_BRACKET).append(StringPool.SPACE); |
| | | if (dataLength != null){ |
| | | stringBuilder.append(StringPool.SPACE).append(StringPool.LEFT_BRACKET).append(dataLength); |
| | | if (dataPrecision != null){ |
| | | stringBuilder.append(StringPool.COMMA).append(dataPrecision).append(StringPool.RIGHT_BRACKET).append(StringPool.SPACE); |
| | | }else { |
| | | stringBuilder.append(StringPool.RIGHT_BRACKET).append(StringPool.SPACE); |
| | | } |
| | | } |
| | | if (!nullable){ |
| | | stringBuilder.append(StringPool.SPACE).append("not null").append(StringPool.SPACE); |
| | | } |
| | | if (StringUtil.isNotBlank(defaultValue)){ |
| | | stringBuilder.append(StringPool.SPACE).append("default").append(StringPool.SPACE).append(defaultValue).append(StringPool.SPACE); |
| | | stringBuilder.append(StringPool.SPACE).append("default").append(StringPool.SPACE).append(StringPool.SINGLE_QUOTE).append(defaultValue).append(StringPool.SINGLE_QUOTE).append(StringPool.SPACE); |
| | | } |
| | | return stringBuilder.toString(); |
| | | } |
| | |
| | | /** |
| | | * 业务类型所属领域 |
| | | */ |
| | | private String domain; |
| | | private String bizDomain; |
| | | } |
| | |
| | | * @author LiHang |
| | | * @date 2023/4/26 |
| | | */ |
| | | @Component |
| | | @Component("vciSpringUtil") |
| | | public class VciSpringUtil implements ApplicationContextAware { |
| | | |
| | | private static ApplicationContext applicationContext; |
| | |
| | | import com.vci.ubcs.ddl.mapper.DdlDmMapper; |
| | | import com.vci.ubcs.ddl.mapper.DdlMapper; |
| | | import com.vci.ubcs.starter.util.VciSpringUtil; |
| | | import org.springframework.context.annotation.DependsOn; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | /** |
| | | * 达梦数据库执行表操作sql的处理器 |
| | | */ |
| | | @Component |
| | | @DependsOn("vciSpringUtil") |
| | | public class DdlDmMapperProcessor extends DdlMapperProcessor{ |
| | | |
| | | private static final DdlMapper MAPPER = VciSpringUtil.getBean(DdlDmMapper.class); |
| | |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.context.annotation.Bean; |
| | | import org.springframework.context.annotation.Configuration; |
| | | import org.springframework.context.annotation.DependsOn; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.annotation.Resource; |
| | |
| | | * @date 2023/4/24 |
| | | */ |
| | | @Component |
| | | @DependsOn("vciSpringUtil") |
| | | public class DdlMapperProcessStrategy { |
| | | |
| | | @Value("${spring.datasource.driver-class-name}") |
| | |
| | | import com.vci.ubcs.ddl.mapper.DdlMapper; |
| | | import com.vci.ubcs.starter.util.VciSpringUtil; |
| | | import com.vci.ubcs.starter.web.util.VciBaseUtil; |
| | | import org.springframework.context.annotation.DependsOn; |
| | | import org.springframework.stereotype.Component; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | |
| | | * @date 2023/4/24 |
| | | */ |
| | | @Component |
| | | @DependsOn("vciSpringUtil") |
| | | public class DdlMsMapperProcessor extends DdlMapperProcessor{ |
| | | |
| | | private static DdlMapper mapper = VciSpringUtil.getBean(DdlMSMapper.class); |
| | |
| | | import com.vci.ubcs.ddl.mapper.DdlMySqlMapper; |
| | | import com.vci.ubcs.starter.util.VciSpringUtil; |
| | | import com.vci.ubcs.starter.web.util.VciBaseUtil; |
| | | import org.springframework.context.annotation.DependsOn; |
| | | import org.springframework.stereotype.Component; |
| | | import org.springframework.stereotype.Repository; |
| | | import org.springframework.util.CollectionUtils; |
| | |
| | | * @date 2023/4/24 |
| | | */ |
| | | @Component |
| | | @DependsOn("vciSpringUtil") |
| | | public class DdlMySqlMapperProcessor extends DdlMapperProcessor{ |
| | | |
| | | private static DdlMapper mapper = VciSpringUtil.getBean(DdlMySqlMapper.class); |
| | |
| | | import com.vci.ubcs.starter.util.VciSpringUtil; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.context.annotation.DependsOn; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.annotation.PostConstruct; |
| | |
| | | * @date 2023/4/24 |
| | | */ |
| | | @Component |
| | | @DependsOn("vciSpringUtil") |
| | | public class DdlOracleMapperProcessor extends DdlMapperProcessor{ |
| | | |
| | | private static DdlMapper mapper = VciSpringUtil.getBean(DdlOracleMapper.class); |
| | |
| | | import org.apache.commons.collections4.BidiMap; |
| | | import org.springblade.core.tool.utils.StringPool; |
| | | import org.springblade.core.tool.utils.StringUtil; |
| | | import org.springframework.context.annotation.DependsOn; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.util.List; |
| | | import java.util.Locale; |
| | | import java.util.Optional; |
| | | |
| | | /** |
| | | * Description: 应用于达梦数据,生成创建表操作sql的处理器 |
| | |
| | | * @date 2023/4/24 |
| | | */ |
| | | @Component |
| | | @DependsOn("vciSpringUtil") |
| | | public class DllDmMapperProcessor extends DllMapperProcessor { |
| | | |
| | | private static final DllMapper MAPPER = VciSpringUtil.getBean(DllDmMapper.class); |
| | |
| | | |
| | | static { |
| | | // 需要重新映射的字段类型在这里写 |
| | | FIELD_MAP.put(VciFieldTypeEnum.VTDouble, new DdlFieldMappingAttrBO("DOUBLE", 26, 8, true, null)); |
| | | FIELD_MAP.put(VciFieldTypeEnum.VTInteger, new DdlFieldMappingAttrBO("INTEGER", 10, null, true, null)); |
| | | FIELD_MAP.put(VciFieldTypeEnum.VTDouble, new DdlFieldMappingAttrBO("DOUBLE", 53, null, true, null)); |
| | | FIELD_MAP.put(VciFieldTypeEnum.VTInteger, new DdlFieldMappingAttrBO("INTEGER", null, null, true, null)); |
| | | FIELD_MAP.put(VciFieldTypeEnum.VTLong, new DdlFieldMappingAttrBO("NUMBER", 38, null, true, null)); |
| | | FIELD_MAP.put(VciFieldTypeEnum.VTBoolean, new DdlFieldMappingAttrBO("VARCHAR", 5, null, true, null)); |
| | | FIELD_MAP.put(VciFieldTypeEnum.VTDate, new DdlFieldMappingAttrBO("DATE", null, null, true, null)); |
| | |
| | | @Override |
| | | public String getColumnTypeSql(VciFieldTypeEnum fieldType, BtmTypeAttributeVO attributeVO) { |
| | | DdlFieldMappingAttrBO mappingBO = getMappingBO(fieldType); |
| | | if (fieldType.equals(VciFieldTypeEnum.VTDouble)) { |
| | | mappingBO.setDataPrecision(attributeVO.getPrecisionLength() == -1 ? 8 : attributeVO.getPrecisionLength()); |
| | | } |
| | | //先只针对数字类型的进行处理 |
| | | if (fieldType.equals(VciFieldTypeEnum.VTInteger) ){ |
| | | mappingBO.setDataLength(null); |
| | | } else if (fieldType.equals(VciFieldTypeEnum.VTDouble) || fieldType.equals(VciFieldTypeEnum.VTLong)) { |
| | | if (attributeVO.getAttributeLength() <= mappingBO.getDataLength()) { |
| | | if (mappingBO.getDataLength() != null) { |
| | | //mappingBO用来做最后的校验,如果定义的BO没有字段长度,则说明这个类型生成的sql不应该指定长度。如果指定了长度,说明是字段长度的最大值,VARCHAR、CLOB除外 |
| | | if (!(fieldType.equals(VciFieldTypeEnum.VTClob) || fieldType.equals(VciFieldTypeEnum.VTString)) |
| | | && attributeVO.getAttributeLength() > mappingBO.getDataLength()) { |
| | | mappingBO.setDataLength(attributeVO.getAttributeLength()); |
| | | } |
| | | }else { |
| | | } else { |
| | | mappingBO.setDataLength(attributeVO.getAttributeLength()); |
| | | } |
| | | mappingBO.setNullable(attributeVO.isNullableFlag()); |
| | |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.context.annotation.Bean; |
| | | import org.springframework.context.annotation.Configuration; |
| | | import org.springframework.context.annotation.DependsOn; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.annotation.PostConstruct; |
| | |
| | | * @date 2023/4/24 |
| | | */ |
| | | @Component |
| | | @DependsOn("vciSpringUtil") |
| | | public class DllMapperProcessorStrategy { |
| | | |
| | | @Value("${spring.datasource.driver-class-name}") |
| | |
| | | import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum; |
| | | import org.apache.commons.collections4.BidiMap; |
| | | import org.springblade.core.tool.utils.StringPool; |
| | | import org.springframework.context.annotation.DependsOn; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.util.Arrays; |
| | |
| | | * @date 2023/4/24 |
| | | */ |
| | | @Component |
| | | @DependsOn("vciSpringUtil") |
| | | public class DllMsMapperProcessor extends DllMapperProcessor { |
| | | |
| | | private static DllMapper mapper = VciSpringUtil.getBean(DllMsMapper.class); |
| | |
| | | import com.vci.ubcs.starter.util.VciSpringUtil; |
| | | import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum; |
| | | import org.apache.commons.collections4.BidiMap; |
| | | import org.springframework.context.annotation.DependsOn; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.util.List; |
| | |
| | | * @date 2023/4/24 |
| | | */ |
| | | @Component |
| | | @DependsOn("vciSpringUtil") |
| | | public class DllMySqlMapperProcessor extends DllMapperProcessor { |
| | | |
| | | private static final DllMapper MAPPER = VciSpringUtil.getBean(DllMySqlMapper.class); |
| | |
| | | import com.vci.ubcs.starter.util.VciSpringUtil; |
| | | import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum; |
| | | import org.apache.commons.collections4.BidiMap; |
| | | import org.springframework.context.annotation.DependsOn; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.util.List; |
| | |
| | | * @date 2023/4/24 |
| | | */ |
| | | @Component |
| | | @DependsOn("vciSpringUtil") |
| | | public class DllOracleMapperProcessor extends DllMapperProcessor { |
| | | |
| | | private static DllMapper mapper = VciSpringUtil.getBean(DllOracleMapper.class); |
| | |
| | | import com.vci.ubcs.starter.util.VciSpringUtil; |
| | | import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum; |
| | | import org.apache.commons.collections4.BidiMap; |
| | | import org.springframework.context.annotation.DependsOn; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.util.List; |
| | |
| | | * @date 2023/4/24 |
| | | */ |
| | | @Component |
| | | @DependsOn("vciSpringUtil") |
| | | public class DllSqlLiteMapperProcessor extends DllMapperProcessor{ |
| | | private static DllMapper mapper = VciSpringUtil.getBean(DllSqlLiteMapper.class); |
| | | |
| | |
| | | package com.vci.ubcs.omd.mapper; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.InterceptorIgnore; |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.vci.ubcs.omd.entity.BtmTypeAttribute; |
| | | import org.apache.ibatis.annotations.Param; |
| | |
| | | int batchDelete(@Param("records") List<String> records); |
| | | |
| | | |
| | | @InterceptorIgnore(tenantLine = "true") |
| | | int batchUpdate(@Param("records") List<BtmTypeAttribute> btmTypeAttributeDOList); |
| | | |
| | | /** |
| | |
| | | } |
| | | checkBtmTypeBeforeSave(btmTypeDTO); |
| | | BtmType btmTypeDO = Optional.ofNullable(BeanUtil.copy(btmTypeDTO, BtmType.class)).orElseGet(BtmType::new); |
| | | btmTypeDO.setBizDomain(btmTypeDTO.getDomain()); |
| | | btmTypeDO.setBizDomain(btmTypeDTO.getBizDomain()); |
| | | List<BtmTypeLinkAttributesDTO> attributes = btmTypeDTO.getAttributes(); |
| | | List<BtmTypeAttributeVO> afterAttributes; |
| | | if (StringUtils.isBlank(btmTypeDO.getOid())){ |
| | |
| | | try { |
| | | if (autoCreateTable) { |
| | | // checkTableSame(btmTypeVO); |
| | | R result = DomainRepeater.submitBtmType(btmTypeDTO.getDomain(), btmTypeVO); |
| | | R result = DomainRepeater.submitBtmType(btmTypeDTO.getBizDomain(), btmTypeVO); |
| | | if (result.isSuccess()){ |
| | | List<ModifyAttributeInfo> infoList = new ArrayList<>(); |
| | | Object data = result.getData(); |
| | |
| | | pl_omd_btm_type |
| | | </sql> |
| | | <update id="batchUpdate" parameterType="java.util.List"> |
| | | <foreach collection="records" item="item" index="index" open="begin" close=";end;" separator=";"> |
| | | BEGIN |
| | | <foreach collection="records" item="item" index="index" separator=";"> |
| | | update <include refid="tableName"/> set |
| | | id = #{item.id,jdbcType=VARCHAR}, |
| | | name = #{item.name,jdbcType=VARCHAR}, |
| | |
| | | last_modifier = #{item.lastModifier,jdbcType=VARCHAR}, |
| | | last_modify_time = #{item.lastModifyTime,jdbcType=TIMESTAMP}, |
| | | ts = #{item.ts,jdbcType=TIMESTAMP} |
| | | where oid = #{item.oid,jdbcType=VARCHAR} |
| | | </foreach> |
| | | ;END; |
| | | </update> |
| | | <delete id="batchDelete"> |
| | | delete from |