From 8be1b149327239d4fb9587e72bc8f438013f9838 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期三, 12 七月 2023 20:26:17 +0800
Subject: [PATCH] Merge branch 'master' of http://dev.vci-tech.com:1065/r/ubcs
---
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMsMapperProcessor.java | 2
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMapperProcessorStrategy.java | 2
Source/UBCS-WEB/src/components/Tree/classifyTrees.vue | 73 ++
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMySqlMapperProcessor.java | 2
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMySqlMapperProcessor.java | 2
Source/UBCS-WEB/src/api/GetItem.js | 8
Source/UBCS-WEB/src/components/template/SetPersonnel.vue | 1
Source/UBCS-WEB/src/components/Tree/classifyTreeform.vue | 12
Source/UBCS-WEB/vue.config.js | 4
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/VciSpringUtil.java | 2
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMapperProcessStrategy.java | 2
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlOracleMapperProcessor.java | 2
Source/UBCS-WEB/src/components/file/inHtml.vue | 3
Source/UBCS-WEB/src/views/modeling/Business.vue | 10
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllOracleMapperProcessor.java | 2
Source/UBCS-WEB/src/components/Master/MasterTree.vue | 2
Source/UBCS-WEB/src/components/work/BusinessWork.vue | 19
Source/UBCS/ubcs-service-api/ubcs-ddl-api/src/main/java/com/vci/ubcs/ddl/bo/DdlFieldMappingAttrBO.java | 13
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMsMapperProcessor.java | 2
Source/UBCS-WEB/src/views/MasterData/items.vue | 14
Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/BtmTypeDTO.java | 2
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlDmMapperProcessor.java | 2
Source/UBCS/ubcs-service/ubcs-omd/src/main/resources/mapper/BtmTypeAttributeMapper.xml | 5
Source/UBCS-WEB/src/views/modeling/BusinessAdd.vue | 1050 ++++++++++++++++++++++---------------------
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllSqlLiteMapperProcessor.java | 2
Source/UBCS-WEB/src/components/file/main.vue | 24
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllDmMapperProcessor.java | 21
Source/UBCS-WEB/src/components/Crud/VciMasterCrud.vue | 74 ++
Source/UBCS-WEB/src/views/work/process/leave/handle.vue | 9
Source/UBCS-WEB/src/components/file/inDialog.vue | 1
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/mapper/BtmTypeAttributeMapper.java | 2
Source/UBCS-WEB/src/components/Tree/attrCrud.vue | 33
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmTypeServiceImpl.java | 4
33 files changed, 780 insertions(+), 626 deletions(-)
diff --git a/Source/UBCS-WEB/src/api/GetItem.js b/Source/UBCS-WEB/src/api/GetItem.js
index a6464c9..9281bd4 100644
--- a/Source/UBCS-WEB/src/api/GetItem.js
+++ b/Source/UBCS-WEB/src/api/GetItem.js
@@ -46,3 +46,11 @@
})
}
+//娴佺▼鎵ц涓〃澶�
+export function FlowTable(data){
+ return request({
+ url: 'api/ubcs-code/mdmEngineController/getFlowdUIInfoByClassifyOid',
+ method: 'get',
+ data
+ })
+}
diff --git a/Source/UBCS-WEB/src/components/Crud/VciMasterCrud.vue b/Source/UBCS-WEB/src/components/Crud/VciMasterCrud.vue
index be3ea00..a7b9b6f 100644
--- a/Source/UBCS-WEB/src/components/Crud/VciMasterCrud.vue
+++ b/Source/UBCS-WEB/src/components/Crud/VciMasterCrud.vue
@@ -27,7 +27,7 @@
</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
}}
@@ -92,7 +92,8 @@
integrationTransfer,
SetPersonnel,
ResembleQueryDialog,
- BatchImport
+ BatchImport,
+ // fileInHtml
},
name: "Crud.vue",
props: {
@@ -148,9 +149,11 @@
type: "PUBLIC",
template: "",
vars: {
- codeClassifyOid: ""
+ codeClassifyOid: "",
+ templateOid:""
}
},
+ visibleNames:[],
visibleFlow: false,
transferData: [],
transferProps: {
@@ -193,7 +196,15 @@
codeClassifyOid: ''
},
// 涓绘暟鎹寜閽�
- masterVrBtnList: []
+ masterVrBtnList: [],
+ fileOptions:{
+ ownbizOid:"1",
+ ownbizBtm:"1",
+ fileDocClassify:'!=processAuditSuggest',
+ fileDocClassifyName:'',
+ hasDownload:true,
+ hasUpload:true
+ }
};
},
computed: {},
@@ -213,8 +224,7 @@
codeClassifyOid: {
handler(newval, oldval) {
this.codeClassifyOid = newval;
- this.parameter.vars.codeClassifyOid = newval;
- console.log('瀛�',newval)
+ this.parameter.vars.codeClassifyOid = newval
},
deep: true,
},
@@ -251,6 +261,8 @@
templateOid: {
handler(newval, oldval) {
this.parameter.code = newval;
+ this.fileOptions.ownbizOid="1";
+ this.parameter.vars.templateOid = newval
},
deep: true,
},
@@ -334,6 +346,10 @@
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);
@@ -352,8 +368,7 @@
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];
@@ -421,19 +436,18 @@
});
},
//澶氶��
- 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() {
@@ -504,9 +518,9 @@
})
},
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
}
},
};
@@ -517,6 +531,7 @@
.el-table--scrollable-x .el-table__body-wrapper {
overflow: auto !important;
}
+
.el-table__fixed-right-patch {
background-color: #f5f7fa !important;
}
@@ -525,4 +540,21 @@
/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>
diff --git a/Source/UBCS-WEB/src/components/Master/MasterTree.vue b/Source/UBCS-WEB/src/components/Master/MasterTree.vue
index ea42225..9c1c430 100644
--- a/Source/UBCS-WEB/src/components/Master/MasterTree.vue
+++ b/Source/UBCS-WEB/src/components/Master/MasterTree.vue
@@ -1,7 +1,7 @@
<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>
diff --git a/Source/UBCS-WEB/src/components/Tree/attrCrud.vue b/Source/UBCS-WEB/src/components/Tree/attrCrud.vue
index 92ee657..5e22116 100644
--- a/Source/UBCS-WEB/src/components/Tree/attrCrud.vue
+++ b/Source/UBCS-WEB/src/components/Tree/attrCrud.vue
@@ -1,7 +1,7 @@
<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>
<!-- 鍏ㄥ睆缂栬緫-->
@@ -10,8 +10,8 @@
<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>
<!-- 缁勫悎瑙勫垯-->
@@ -22,8 +22,8 @@
<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>
<!-- 鍒犻櫎-->
@@ -32,7 +32,7 @@
<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>
<!-- 楠岃瘉瑙勫垯-->
@@ -242,7 +242,7 @@
</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"
@@ -936,13 +936,11 @@
column: [
{
label: "灞炴�ц嫳鏂囧悕绉�",
- prop: "id",
- width:110
+ prop: "id"
},
{
label: "灞炴�т腑鏂囧悕绉�",
- prop: "name",
- width:110
+ prop: "name"
},
{
label: "闀垮害",
@@ -1486,7 +1484,6 @@
//涓氬姟绫诲瀷閫夋嫨
businessSelect(selection, row) {
this.busineSelectList = selection
- console.log(selection)
},
// 浠庝笟鍔$被鍨嬩腑閫夋嫨鏁版嵁寮圭獥
busineHandle() {
@@ -1548,7 +1545,7 @@
console.log(row)
},
//琛ㄦ牸閫夋嫨
- selectionChange(list,) {
+ selectionChange(list) {
this.attrSelectList = list;
console.log(list)
},
@@ -1590,6 +1587,8 @@
}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() {
@@ -1816,9 +1815,7 @@
</script>
<style scoped lang="scss" >
-.app {
- /deep/ .el-button {
- margin: 0 10px 10px 0;
- }
+/deep/ .el-button {
+ margin: 0 10px 10px 0;
}
</style>
diff --git a/Source/UBCS-WEB/src/components/Tree/classifyTreeform.vue b/Source/UBCS-WEB/src/components/Tree/classifyTreeform.vue
index 9a71b38..236d931 100644
--- a/Source/UBCS-WEB/src/components/Tree/classifyTreeform.vue
+++ b/Source/UBCS-WEB/src/components/Tree/classifyTreeform.vue
@@ -94,7 +94,7 @@
</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>
@@ -226,7 +226,7 @@
},
{
label: '瀛樺偍鐨勪笟鍔$被鍨�',
- prop: 'btmtypename',
+ prop: 'btmTypeName',
labelWidth:128,
disabled: true,
rules: [{
@@ -294,7 +294,7 @@
},
{
label: '瀛樺偍鐨勪笟鍔$被鍨�',
- prop: 'btmtypename',
+ prop: 'btmTypeName',
labelWidth:128,
focus:this.btmFoucus,
// readonly: true,
@@ -355,6 +355,8 @@
TreeEditSave(this.loneTreeNewForm).then(res=>{
this.$message.success('淇敼鎴愬姛');
this.Editclose()
+ this.$emit('referTreeForm');
+ this.$emit('flushed');
done()
})
},
@@ -540,8 +542,8 @@
}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)
}
},
diff --git a/Source/UBCS-WEB/src/components/Tree/classifyTrees.vue b/Source/UBCS-WEB/src/components/Tree/classifyTrees.vue
index c659dfa..b1ed81c 100644
--- a/Source/UBCS-WEB/src/components/Tree/classifyTrees.vue
+++ b/Source/UBCS-WEB/src/components/Tree/classifyTrees.vue
@@ -6,13 +6,19 @@
<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>
@@ -52,7 +58,7 @@
</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"
@@ -73,7 +79,7 @@
</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"
@@ -83,8 +89,6 @@
<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="楂樼骇鏌ヨ">
@@ -145,6 +149,7 @@
<avue-crud v-model="ClonecrudForm" v-loading="FormLoing" :data="this.CloneFormlist"
:option="this.ClonecrudTreeOption"
@selection-change="selectionChange"
+
></avue-crud>
</div>
</el-main>
@@ -165,7 +170,16 @@
</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')"
@@ -326,7 +340,7 @@
//浣跨敤inject鎺ユ敹鍙傛暟
//Treeoption宸︿晶鏍戞柊澧炶〃鍗曢」 Treedata宸︿晶鏍戣妭鐐� 閰嶇疆椤� crudTreeOption鍙充晶琛ㄦ牸閰嶇疆椤� crudTreeData鍙充晶琛ㄦ牸鏄剧ず鍐呭
//Treeform鍙充晶琛ㄥ崟閰嶇疆椤�
- inject: [, "crudTreeData"],
+ inject: ["crudTreeData"],
data() {
return {
//鏍戣妭鐐规樉绀洪殣钘�
@@ -621,7 +635,9 @@
funAPi: startRelease,
load: 'startReleaseLoad'
}
- }
+ },
+ //妯℃澘绠$悊缂栬緫
+ showEditBtn:false,
}
},
//tab鏍忛粯璁ゆ槸琛ㄦ牸
@@ -634,9 +650,7 @@
this.$refs.tree.setCurrentKey(null)
this.nodeClickList = {}
this.TreeList=[]
- this.TreeFlagCode=false
- console.log('鍚嶵reeList',this.TreeList)
- console.log('鍚巒odeClickList',this.nodeClickList)
+ this.TreeFlagCode=false;
}
}, true)
},
@@ -648,6 +662,8 @@
height:180,
selection:true,
addBtn:this.Formlist.length<=0 && this.nodeClickList != "",
+ editBtn:false,
+ delBtn:false,
column: [
{
label: "妯℃澘缂栧彿",
@@ -686,6 +702,10 @@
}
},
methods: {
+ //妯℃澘绠$悊宸插彂甯冪紪杈�
+ // checkShowEditBtn() {
+ // this.showEditBtn = this.Formlist.some(item => item.lcStatus === 'Released');
+ // },
//缂栫爜瑙勫垯澶辩劍
CodeFoucus(){
this.MasterdialogVisible=true;
@@ -1129,16 +1149,17 @@
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)
}
@@ -1146,6 +1167,14 @@
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;
diff --git a/Source/UBCS-WEB/src/components/file/inDialog.vue b/Source/UBCS-WEB/src/components/file/inDialog.vue
index 574f0f2..ad21a36 100644
--- a/Source/UBCS-WEB/src/components/file/inDialog.vue
+++ b/Source/UBCS-WEB/src/components/file/inDialog.vue
@@ -9,6 +9,7 @@
:width="options.width|| '80%'">
<fileContent
:options="options"
+ :ownbizOid="options.ownbizOid"
></fileContent>
</el-dialog>
</div>
diff --git a/Source/UBCS-WEB/src/components/file/inHtml.vue b/Source/UBCS-WEB/src/components/file/inHtml.vue
index 66eddf1..31b6ef7 100644
--- a/Source/UBCS-WEB/src/components/file/inHtml.vue
+++ b/Source/UBCS-WEB/src/components/file/inHtml.vue
@@ -1,9 +1,8 @@
<template>
- <basic-container>
<fileContent
:options="options"
+ :ownbizOid="options.ownbizOid"
></fileContent>
- </basic-container>
</template>
<script>
diff --git a/Source/UBCS-WEB/src/components/file/main.vue b/Source/UBCS-WEB/src/components/file/main.vue
index cfbd438..44f196f 100644
--- a/Source/UBCS-WEB/src/components/file/main.vue
+++ b/Source/UBCS-WEB/src/components/file/main.vue
@@ -7,6 +7,7 @@
:before-open="beforeOpen"
:permission="permissionList"
v-model="form"
+ :height="options.height || 200"
ref="crud"
@row-del="rowDel"
@search-change="searchChange"
@@ -67,13 +68,14 @@
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,
@@ -232,6 +234,12 @@
mounted() {
},
+ watch:{
+ ownbizOid(val){
+ this.setParams()
+ this.refreshChange()
+ }
+ },
methods: {
setFormItem(){
/*this.options.formItems=[{
@@ -312,9 +320,9 @@
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) {
@@ -330,6 +338,12 @@
}
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='';
@@ -448,7 +462,7 @@
this.page.pageSize = pageSize;
},
refreshChange() {
- this.onLoad(this.page, this.query);
+ this.onLoad(this.page);
},
onLoad(page, params={}) {
this.loading = true;
diff --git a/Source/UBCS-WEB/src/components/template/SetPersonnel.vue b/Source/UBCS-WEB/src/components/template/SetPersonnel.vue
index 22644e7..2c7a417 100644
--- a/Source/UBCS-WEB/src/components/template/SetPersonnel.vue
+++ b/Source/UBCS-WEB/src/components/template/SetPersonnel.vue
@@ -76,6 +76,7 @@
visible(n) {
this.dialogVisible = n;
if (n) {
+ this.saveParam=this.setSaveParam();
this.apiInit()
this.apiDict()
}
diff --git a/Source/UBCS-WEB/src/components/work/BusinessWork.vue b/Source/UBCS-WEB/src/components/work/BusinessWork.vue
index 4f0b688..3597bfa 100644
--- a/Source/UBCS-WEB/src/components/work/BusinessWork.vue
+++ b/Source/UBCS-WEB/src/components/work/BusinessWork.vue
@@ -40,11 +40,11 @@
<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:[],
@@ -78,9 +78,11 @@
//琛ㄦ牸澶存覆鏌�
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];
@@ -97,9 +99,12 @@
//浼佷笟缂栫爜鐨勯粯璁ゆ坊鍔犺秴閾炬帴,鏆傛湭瀹炵幇
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)
diff --git a/Source/UBCS-WEB/src/views/MasterData/items.vue b/Source/UBCS-WEB/src/views/MasterData/items.vue
index 5a94682..536a6fd 100644
--- a/Source/UBCS-WEB/src/views/MasterData/items.vue
+++ b/Source/UBCS-WEB/src/views/MasterData/items.vue
@@ -1,7 +1,7 @@
<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"
@@ -85,4 +85,14 @@
}
</script>
-<style scoped></style>
+<style scoped>
+.el-container{
+ height: 100%;
+}
+.el-aside {
+ height: calc(100% - 30px);
+}
+.el-main {
+ height: calc(100% - 30px);
+}
+</style>
diff --git a/Source/UBCS-WEB/src/views/modeling/Business.vue b/Source/UBCS-WEB/src/views/modeling/Business.vue
index 35923fd..c29b168 100644
--- a/Source/UBCS-WEB/src/views/modeling/Business.vue
+++ b/Source/UBCS-WEB/src/views/modeling/Business.vue
@@ -82,7 +82,7 @@
<i :class="icons.revisionRule"></i>
鐗堟湰瑙勫垯
</template>
- {{ obj.versionRule }}
+ {{ obj.revisionRuleName }}
</el-descriptions-item>
<el-descriptions-item :labelStyle="descriptionOption.labelStyle"
:contentStyle="descriptionOption.contentStyle">
@@ -350,8 +350,12 @@
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();
},
diff --git a/Source/UBCS-WEB/src/views/modeling/BusinessAdd.vue b/Source/UBCS-WEB/src/views/modeling/BusinessAdd.vue
index e8abccc..ca03ae9 100644
--- a/Source/UBCS-WEB/src/views/modeling/BusinessAdd.vue
+++ b/Source/UBCS-WEB/src/views/modeling/BusinessAdd.vue
@@ -1,555 +1,575 @@
<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>
diff --git a/Source/UBCS-WEB/src/views/work/process/leave/handle.vue b/Source/UBCS-WEB/src/views/work/process/leave/handle.vue
index 50f4ae3..3dcbcb4 100644
--- a/Source/UBCS-WEB/src/views/work/process/leave/handle.vue
+++ b/Source/UBCS-WEB/src/views/work/process/leave/handle.vue
@@ -5,7 +5,7 @@
<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">
@@ -78,6 +78,8 @@
ids:[],
templateId:'',
taskId: '',
+ modelKey:'',
+ codeClassifyOid:'',
businessId: '',
processInstanceId: '',
src: '',
@@ -142,9 +144,12 @@
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) {
diff --git a/Source/UBCS-WEB/vue.config.js b/Source/UBCS-WEB/vue.config.js
index ad43a75..0991057 100644
--- a/Source/UBCS-WEB/vue.config.js
+++ b/Source/UBCS-WEB/vue.config.js
@@ -26,10 +26,10 @@
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',
diff --git a/Source/UBCS/ubcs-service-api/ubcs-ddl-api/src/main/java/com/vci/ubcs/ddl/bo/DdlFieldMappingAttrBO.java b/Source/UBCS/ubcs-service-api/ubcs-ddl-api/src/main/java/com/vci/ubcs/ddl/bo/DdlFieldMappingAttrBO.java
index 038400b..65e6252 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-ddl-api/src/main/java/com/vci/ubcs/ddl/bo/DdlFieldMappingAttrBO.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-ddl-api/src/main/java/com/vci/ubcs/ddl/bo/DdlFieldMappingAttrBO.java
@@ -59,16 +59,19 @@
@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();
}
diff --git a/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/BtmTypeDTO.java b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/BtmTypeDTO.java
index 723c7ea..081469a 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/BtmTypeDTO.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/dto/BtmTypeDTO.java
@@ -147,5 +147,5 @@
/**
* 涓氬姟绫诲瀷鎵�灞為鍩�
*/
- private String domain;
+ private String bizDomain;
}
diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/VciSpringUtil.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/VciSpringUtil.java
index 246345f..9c17440 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/VciSpringUtil.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/VciSpringUtil.java
@@ -12,7 +12,7 @@
* @author LiHang
* @date 2023/4/26
*/
-@Component
+@Component("vciSpringUtil")
public class VciSpringUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext;
diff --git a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlDmMapperProcessor.java b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlDmMapperProcessor.java
index d40064d..0c7eb69 100644
--- a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlDmMapperProcessor.java
+++ b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlDmMapperProcessor.java
@@ -3,12 +3,14 @@
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);
diff --git a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMapperProcessStrategy.java b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMapperProcessStrategy.java
index 578d9b8..f19401a 100644
--- a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMapperProcessStrategy.java
+++ b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMapperProcessStrategy.java
@@ -9,6 +9,7 @@
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;
@@ -21,6 +22,7 @@
* @date 2023/4/24
*/
@Component
+@DependsOn("vciSpringUtil")
public class DdlMapperProcessStrategy {
@Value("${spring.datasource.driver-class-name}")
diff --git a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMsMapperProcessor.java b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMsMapperProcessor.java
index a21d862..b279937 100644
--- a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMsMapperProcessor.java
+++ b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMsMapperProcessor.java
@@ -5,6 +5,7 @@
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;
@@ -20,6 +21,7 @@
* @date 2023/4/24
*/
@Component
+@DependsOn("vciSpringUtil")
public class DdlMsMapperProcessor extends DdlMapperProcessor{
private static DdlMapper mapper = VciSpringUtil.getBean(DdlMSMapper.class);
diff --git a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMySqlMapperProcessor.java b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMySqlMapperProcessor.java
index d7e8ca5..4d278d2 100644
--- a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMySqlMapperProcessor.java
+++ b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlMySqlMapperProcessor.java
@@ -5,6 +5,7 @@
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;
@@ -20,6 +21,7 @@
* @date 2023/4/24
*/
@Component
+@DependsOn("vciSpringUtil")
public class DdlMySqlMapperProcessor extends DdlMapperProcessor{
private static DdlMapper mapper = VciSpringUtil.getBean(DdlMySqlMapper.class);
diff --git a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlOracleMapperProcessor.java b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlOracleMapperProcessor.java
index 174344c..872192c 100644
--- a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlOracleMapperProcessor.java
+++ b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/ddl/DdlOracleMapperProcessor.java
@@ -5,6 +5,7 @@
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;
@@ -17,6 +18,7 @@
* @date 2023/4/24
*/
@Component
+@DependsOn("vciSpringUtil")
public class DdlOracleMapperProcessor extends DdlMapperProcessor{
private static DdlMapper mapper = VciSpringUtil.getBean(DdlOracleMapper.class);
diff --git a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllDmMapperProcessor.java b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllDmMapperProcessor.java
index 2121d5c..ffbe5b0 100644
--- a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllDmMapperProcessor.java
+++ b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllDmMapperProcessor.java
@@ -9,10 +9,12 @@
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: 搴旂敤浜庤揪姊︽暟鎹紝鐢熸垚鍒涘缓琛ㄦ搷浣渟ql鐨勫鐞嗗櫒
@@ -21,6 +23,7 @@
* @date 2023/4/24
*/
@Component
+@DependsOn("vciSpringUtil")
public class DllDmMapperProcessor extends DllMapperProcessor {
private static final DllMapper MAPPER = VciSpringUtil.getBean(DllDmMapper.class);
@@ -29,8 +32,8 @@
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));
@@ -64,17 +67,13 @@
@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娌℃湁瀛楁闀垮害锛屽垯璇存槑杩欎釜绫诲瀷鐢熸垚鐨剆ql涓嶅簲璇ユ寚瀹氶暱搴︺�傚鏋滄寚瀹氫簡闀垮害锛岃鏄庢槸瀛楁闀垮害鐨勬渶澶у�硷紝VARCHAR銆丆LOB闄ゅ
+ 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());
diff --git a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMapperProcessorStrategy.java b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMapperProcessorStrategy.java
index db82496..537a55c 100644
--- a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMapperProcessorStrategy.java
+++ b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMapperProcessorStrategy.java
@@ -9,6 +9,7 @@
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;
@@ -22,6 +23,7 @@
* @date 2023/4/24
*/
@Component
+@DependsOn("vciSpringUtil")
public class DllMapperProcessorStrategy {
@Value("${spring.datasource.driver-class-name}")
diff --git a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMsMapperProcessor.java b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMsMapperProcessor.java
index fa60a49..e446893 100644
--- a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMsMapperProcessor.java
+++ b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMsMapperProcessor.java
@@ -11,6 +11,7 @@
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;
@@ -23,6 +24,7 @@
* @date 2023/4/24
*/
@Component
+@DependsOn("vciSpringUtil")
public class DllMsMapperProcessor extends DllMapperProcessor {
private static DllMapper mapper = VciSpringUtil.getBean(DllMsMapper.class);
diff --git a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMySqlMapperProcessor.java b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMySqlMapperProcessor.java
index 780984d..0340cca 100644
--- a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMySqlMapperProcessor.java
+++ b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMySqlMapperProcessor.java
@@ -7,6 +7,7 @@
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;
@@ -18,6 +19,7 @@
* @date 2023/4/24
*/
@Component
+@DependsOn("vciSpringUtil")
public class DllMySqlMapperProcessor extends DllMapperProcessor {
private static final DllMapper MAPPER = VciSpringUtil.getBean(DllMySqlMapper.class);
diff --git a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllOracleMapperProcessor.java b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllOracleMapperProcessor.java
index 4629964..a171433 100644
--- a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllOracleMapperProcessor.java
+++ b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllOracleMapperProcessor.java
@@ -6,6 +6,7 @@
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;
@@ -18,6 +19,7 @@
* @date 2023/4/24
*/
@Component
+@DependsOn("vciSpringUtil")
public class DllOracleMapperProcessor extends DllMapperProcessor {
private static DllMapper mapper = VciSpringUtil.getBean(DllOracleMapper.class);
diff --git a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllSqlLiteMapperProcessor.java b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllSqlLiteMapperProcessor.java
index 539f540..c47d99e 100644
--- a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllSqlLiteMapperProcessor.java
+++ b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllSqlLiteMapperProcessor.java
@@ -6,6 +6,7 @@
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;
@@ -17,6 +18,7 @@
* @date 2023/4/24
*/
@Component
+@DependsOn("vciSpringUtil")
public class DllSqlLiteMapperProcessor extends DllMapperProcessor{
private static DllMapper mapper = VciSpringUtil.getBean(DllSqlLiteMapper.class);
diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/mapper/BtmTypeAttributeMapper.java b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/mapper/BtmTypeAttributeMapper.java
index 01bc4e0..96d8483 100644
--- a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/mapper/BtmTypeAttributeMapper.java
+++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/mapper/BtmTypeAttributeMapper.java
@@ -1,5 +1,6 @@
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;
@@ -19,6 +20,7 @@
int batchDelete(@Param("records") List<String> records);
+ @InterceptorIgnore(tenantLine = "true")
int batchUpdate(@Param("records") List<BtmTypeAttribute> btmTypeAttributeDOList);
/**
diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmTypeServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmTypeServiceImpl.java
index 2dc1b5f..2a64160 100644
--- a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmTypeServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmTypeServiceImpl.java
@@ -495,7 +495,7 @@
}
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())){
@@ -521,7 +521,7 @@
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();
diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/resources/mapper/BtmTypeAttributeMapper.xml b/Source/UBCS/ubcs-service/ubcs-omd/src/main/resources/mapper/BtmTypeAttributeMapper.xml
index bfa4fe8..55b7372 100644
--- a/Source/UBCS/ubcs-service/ubcs-omd/src/main/resources/mapper/BtmTypeAttributeMapper.xml
+++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/resources/mapper/BtmTypeAttributeMapper.xml
@@ -41,7 +41,8 @@
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},
@@ -65,7 +66,9 @@
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
--
Gitblit v1.9.3